Signing data
To prove that some data has come from someone we trust, it can be signed. Actually, you do not sign the data itself; instead, you sign a hash of the data.
We will be using the SHA256 algorithm for generating the hash, combined with the RSA algorithm for signing the hash.
We could use DSA for both hashing and signing. DSA is faster than RSA for generating a signature, but it is slower than RSA for validating a signature. Since a signature is generated once but validated many times, it is best to have faster validation than generation.
More Information: The RSA algorithm is based on the factorization of large integers, compared to the DSA algorithm, which is based on the discrete logarithm calculation. You can read more at the following link: http://mathworld.wolfram.com/RSAEncryption.html
Signing with SHA256 and RSA
Let's explore signing data and checking the signature with a public key:
- In the
CryptographyLib
class library...