- CSRC Home
- About CSD
- Projects / Research
- news & events
A cryptographic hash algorithm (alternatively, hash "function") is designed to provide a random mapping from a string of binary data to a fixed-size “message digest” and achieve certain security properties. Hash algorithms can be used for digital signatures, message authentication codes, key derivation functions, pseudo random functions, and many other security applications in the information infrastructure. The Federal Information Processing Standard 180-4, Secure Hash Standard, specifies seven cryptographic hash algorithms — SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, and SHA-512/256 for federal use; the standard is also widely adopted by the information technology industry.
In 2004-2005, several cryptographic hash algorithms were successfully attacked, and serious attacks were published against the NIST-approved SHA-1. In response, NIST held two public workshops to assess the status of its approved hash algorithms, and to solicit public input on its cryptographic hash algorithm policy and standard. As a result of these workshops, NIST decided to develop a new cryptographic hash algorithm for standardization through a public competition. The new hash algorithm would be referred to as SHA-3. NIST announced the SHA-3 Cryptographic Hash Algorithm Competition in November 2007, and ended the competition on October 2, 2012, when it announced KECCAK as the winner of the competition, and the new SHA-3 hash algorithm.
This page is organized in three major sections in chronological order:
References to NIST’s policy on hash functions, and a public forum for dialogue and feedback are also provided.