Non-repudiation
Foundations of Cryptography
Importance of Authenticity in Data Transmission
- Cryptography ensures that when data is sent to a third party, that third party can verify the information actually came from the sender.
- This concept parallels signing contracts; signatures confirm authorship and intention.
Nonrepudiation
- Nonrepudiation is achieved through proof of integrity and proof of origin, which together ensure high assurance of authenticity.
Proof of Integrity
Definition of Proof of Integrity
- It confirms that the received data is identical to what was originally sent.
- Guarantees accuracy and consistency in data transmission, ensuring that no alterations have occurred.
Hashing in Cryptography
- A hash is a short string of text generated from the original data, often referred to as a message digest or fingerprint.
- If the data changes, the generated hash will also change, indicating a modification.
- Analogy: A physical fingerprint; any change in the data corresponds to a different fingerprint.
Practical Example Using Project Gutenberg
- An example involves downloading volume one of the Gutenberg Encyclopedia, which is 8.1 megabytes in size.
- A hash of this volume is created; if even a single character changes, the hash will differ significantly.
- Size remains constant, but content integrity can be verified through hashing.
- Difficulty in manual verification: Human analysis of 8.1 MB to identify changes is impractical.
- Hash Comparison
- Performing a hash on the altered data will yield a different hash value from the original.
- Comparing hashes allows users to determine if the data has been corrupted or altered.
Proof of Origin
Definition of Proof of Origin
- Verifies the identity of the sender of the data, adding an authentication layer to data integrity.
- Ensures that the sender cannot deny sending the message (nonrepudiation).
Digital Signatures
- A digital signature works similarly to a paper signature, establishing authenticity.
- Utilizes two keys: a private key known only to the sender and a public key available to everyone.
- The private key is used for signing (encrypting the hash), and the public key is used for verification (decrypting the hash).
Practical Application of Digital Signature
Process of Sending a Digital Signature
- Utilizing a software interface, one clicks to add a digital signature to a document.
- Example scenario: Alice sends a message to Bob stating, "You're hired, Bob."
- Steps:
- Alice creates a hash of the plaintext message (‘You’re hired, Bob’).
- Alice encrypts this hash with her private key.
- Both the original message and the encrypted hash (digital signature) are sent to Bob.
Verification by Receiver
- Bob receives the message along with the digital signature.
- Bob uses Alice's public key to decrypt the digital signature and retrieve the hash.
- Bob then hashes the received plaintext using the same hashing algorithm.
- If Bob’s calculated hash matches the decrypted hash, it confirms both integrity and origin.
Understanding the Process
- The creation and verification of a digital signature typically occur automatically in background processes.
- Awareness of how digital signatures function aids in understanding data integrity and origin verification in transactions.