Security in Computer Networks

8.4.2 Message Digests

Home | Introduction | 8.1 What Is Network Security? | 8.2 Principles of Cryptography | 8.3 Authentication | 8.4 Integrity | 8.5 Key Distribution and Certification | 8.6 Access Control: Firewalls | 8.7 Attacks and Countermeasures | 8.8 Security in Many Layers: Case Studies

One concern with signature data by encryption is that encryption and decryption are computationally expensive.  When you are digitally signing a really important document, computational cost may not be important.  Many network devices and processes routinely exchanged data that may not need to be encryped.  Nonetheless, they do want to ensure that
 
The sender of the data is as claimed; that is, the sender has signed the data and this signature can be checked.
The transmitted data has not been changed since the sender created and signed the data.
 
Given the overheads of encryption and decryption, signing data via complete encryption/decryption can be overkill.  Using message digests, can accomplish these two goals without full message encryption.
 
A message digest is in many ways like a checksum.  Message digest algorithms take a message, m, of arbitrary length and compute a fixed-length "fingerprint" of the data known as a message digest, H(m).  The message digest protects the data in the sense that if m is changed to m' then H(m), computed for the original data will not match the H(m') computed over the changed data, m'.
 
Our definition of a message digest may seem quite similar to the definition of a checksum or a more powerful error-detection code such as a cyclic redundancy check.  Checksums, cyclic redundancy checks, and message digests are all examples of hash functions.  The Internet checksu, CRCs, and message digests all meet this definition.  If signing a message digest is going to be just as good as signing the entire message, it is going to satisfy the nonforgeability requirement, then a message digest algorithm must have the following additional property:
 
It is computationally infeasible to find any two different messages x and y such that H(x)=H(y).
 
This property means that it is computationally infeasible for an intruder to substitute one message for another message that is protected by a message digest.  If (m,H(m)) are the message and message digest pair created by the sender, then an intruder cannot forge the contents of another message, y, that has the same message digest value as the original message.

kurose_320719_c08f15.gif