Digital Signatures
Overview
Digital signatures make use of public key cryptography to provide a way for the recipient to verify the authenticity of a document.
Anyone with muy public key can quickly verify that I did indeed sign a message.
They satisfy three useful claims:
- Authenticity: This could've only been signed by the sender.
- Integrity: This data wasn't forged or tampered with.
- Non-repudiation: The sender can't deny having sent the data.
Digitally signing a document
- Unencrypted plaintext data is hashed (prevents tampering).
- The hash is encrypted using the private key.
- We attach (concatenate) the encrypted hash to the data.
Verifying the authenticity of a document
- Remove signature from document
- Hash the document, get hash
h
. - Decrypt signature using signer's public key.
- Verify that the hash
h
matches the decrypted signature.