|
|
|
|
Cryptographic hash functions are used
in various contexts, for example to compute the message digest when
making a digital signature. A hash function compresses the bits of a
message to a fixed-size hash value in a way that distributes
the possible messages evenly among the possible hash values. A
cryptographic hash function does this in a way that makes it
extremely difficult to come up with a message that would hash to a
particular hash value. Some of the best known and most widely used
hash functions are briefly described below.
- SHA-1 (Secure Hash Algorithm) (also SHS, Secure
Hash Standard): This is a cryptographic hash algorithm published
by the United States Government. It produces an 160 bit hash value
from an arbitrary length string. It is considered to be very good.
The official standard text can be found here.
- RIPEMD-160 is a hash algorithm designed to replace MD4
and MD5 (see below). It produces a digest of 20 bytes
(160 bits, hence the name), reportedly runs at 40
Mb/s on a 90 MHz Pentium and has been placed in the public
domain by its designers. The RIPEMD-160 homepage is at www.esat.kuleuven.ac.be/~bosselae/ripemd160.html
- MD5 (Message Digest Algorithm 5) is a cryptographic
hash algorithm developed at RSA Laboratories. It can be used to hash an arbitrary length
byte string into a 128 bit value.
MD5's
ancestor, MD4 has been broken, and there are some concerns about
the safety of MD5 as well. In 1996 a collision of the MD5
compression function was found by Hans Dobbertin. Although this
result does not directly compromise its security, as a precaution
the use of MD5 is not recommended in new applications.
- Tiger is a recent hash algorithm developed by Anderson
and Biham. It is available from ftp://ftp.funet.fi/pub/crypt/hash/tiger.
- MD2, MD4: These are older hash algorithms from
RSA Data Security. They have known flaws (Hans Dobbertin, FSE'96,
LNCS 1039), and their use is not recommended.
| |
|