Hash Functions

From CryptoDox, The Online Encyclopedia on Cryptography and Information Security

Jump to: navigation, search

Hash functions are functions for summarizing or probabilistically identifying data. Such a summary is known as a hash value or simply a hash, and the process of computing such a value is known as hashing.

A hash function takes an input string (message) of arbitrary size and reduces it to a short string. A typical cryptographic hash function takes any input string and makes a 256 bit string from it. The hash value of an input string is analogous to the fingerprint of a person. It is often also called a "message digest." Hash functions are used for digital signatures such as RSA and DSA, but also for the construction of MACs (message authentication codes), the protection of passwords, and for the derivation of independent secret keys from a single master key. Cryptographic hash functions are an essential building block for applications that require data integrity, such as detectors of computer viruses, Internet security (for example PGP or IPSEC), and the security of electronic commerce and banking.

A cryptographic hash function must be a one-way function, which means that finding an input corresponding to a given output string is difficult: Even an opponent who spends a significant amount of money, say $10 million, will have a negligible success probability.



There are various algorithms available for generating message-digests, or hashes. Some of these are listed below. An example of the output generated by hash functions is also shown in the figure.


Current recommended hash functions for cryptographic applications:

Historically important hash functions:

  • Gost-Hash
  • HAS-160 -- designed for use with the Korean KCDSA digital signature algorithm
  • MD2 -- specified in RFC 1319. As of 2004, no longer considered secure.
  • MD4 -- used in the ed2k URI scheme. As of 2004, no longer considered secure.
  • MD5 -- specified in RFC 1321. Designed to replace MD4. Widely used to store passwords, and to check files for tampering.
  • MDC-2 -- U.S. Patent 4,908,861, expires on August 28, 2007.
  • N-hash -- As of 1991, no longer considered secure.
  • Snefru
  • Tiger
  • SHA family -- required by law for use in certain U. S. Government applications
  • SHA-1 -- used to hash objects in the git distributed revision control system.


Books of Interest

External Links