Secure Hash Functions

We have seen how public-key and symmetric-key cryptography techniques can provide data privacy and sender authentication. The elements remaining in our wish list are integrity and accountability (see 1.1.1, “Security Objectives” on page 2). The techniques usually used to implement these features are hashing or message digest algorithms. The principal attributes of a secure hashing junction are the following:

It is a one-way process. That is, it is impossible (or at least extremely difficult) to reconstruct the original data from the hashed result.
The hashed result is not predictable. That is, given one set of source data it is extremely difficult to find another set of data with the same hashed result.

You can compare the process to mashing a potato. No two potatoes will produce exactly the same heap of mash, and you cannot recreate the original potato after you have mashed it.

How can we use these functions to our advantage? Say the sender of a message includes a hashed digest of the message in the transmission. When the message arrives, the receiver can execute the same hash function and should get the same digest. If the two digests do not match, it indicates that the message may have been altered in transit and should not be trusted. Thus we have achieved our integrity objective. For the question of accountability, we need to combine a hashing algorithm (to assure the identity of the session partners) and place a time stamp in the source data.

The following secure hash functions are in general use:

- MD2 and MD5 from RSA Data Security Inc (MD stands for Message Digest). MD5 is the most commonly used of the two. MD2 and MD5 produce a 128-bit digest.
- Secure Hash Standard (SHS) which has been adopted by the US Government as a standard. It generates a 160-bit digest, so it may be more secure than MD5 (but no successful attack on MD5 has ever been demonstrated).

0 ความคิดเห็น: