Message digests, or one-way hash functions, generate fixed-sized
signatures from variable-sized texts, in such a way that it is
computationally infeasible to determine the source text from the
signature or to find a different text that hashes to the same
signature. Hash functions in GNU Crypto are in the
gnu.crypto.hash package, and are:
- MD2. MD2 is an early-generation hash function with an 128 bit output
size, developed by Ron Rivest at RSA Data Security, Inc., and described
by Burton Kaliski in RFC 1319 [Kal92]. No significant cryptanalysis has
been published about MD2, but it is still recommended that new
applications use a different message digest algorithm.
- MD4. MD4 was also developed by Ron Rivest at RSA Data Security, Inc.
and is described by Rivest in RFC 1320 [Riv92a]. MD4 has a 128 bit
output size. It is not recommended that MD4 be used in new applications.
- MD5. MD5 is a successor to MD4, developed by Ron Rivest and
described in RFC 1321 [Riv92b], and has a 128 bit output size. MD5 is
not widely considered secure any longer, and using other message digests
with longer output sizes is recommended.
- RIPEMD. RIPEMD-128 and RIPEMD-160 have 128 bit and 160 bit output
sizes, and were developed by Hans Dobbertin, Antoon Bosselaers, and Bart
Preneel as successors to the RIPEMD hash.
- The Secure Hash Algorithm, SHA-1. The secure hash algorithm was
developed by the National Institute for Standards and Technology,
published in FIPS 180-1. SHA-1 has a 160 bit output length. FIPS 180-2,
dated August 2002, added the specifications for three additional SHA
implementations for output sizes of 256-, 384- and 512-bit respectively.
These three algorithms are referred to as SHA-256, SHA-384 and
- Tiger is a hash function created by Lars Anderson and Eli Biham,
optimized for 64-bit architectures. It can produce a 192, 160, or 128
bit hash. [AnB96]
- Whirlpool. Whirlpool was designed by Paulo S. L. M. Barreto and
Vincent Rijmen, and has a 512 bit output length.