NIST hash function competition

Competition to develop SHA-3

The NIST hash function competition was an open competition held by the US National Institute of Standards and Technology (NIST) to develop a new hash function called SHA-3 to complement the older SHA-1 and SHA-2. The competition was formally announced in the Federal Register on November 2, 2007.[1] "NIST is initiating an effort to develop one or more additional hash algorithms through a public competition, similar to the development process for the Advanced Encryption Standard (AES)."[2] The competition ended on October 2, 2012, when NIST announced that Keccak would be the new SHA-3 hash algorithm.[3]

The winning hash function has been published as NIST FIPS 202 the "SHA-3 Standard", to complement FIPS 180-4, the Secure Hash Standard.

The NIST competition has inspired other competitions such as the Password Hashing Competition.

## Process

[edit]

Submissions were due October 31, 2008 and the list of candidates accepted for the first round was published on December 9, 2008.[4] NIST held a conference in late February 2009 where submitters presented their algorithms and NIST officials discussed criteria for narrowing down the field of candidates for Round 2.[5] The list of 14 candidates accepted to Round 2 was published on July 24, 2009.[6] Another conference was held on August 23–24, 2010 (after CRYPTO 2010) at the University of California, Santa Barbara, where the second-round candidates were discussed.[7] The announcement of the final round candidates occurred on December 10, 2010.[8] On October 2, 2012, NIST announced its winner, choosing Keccak, created by Guido Bertoni, Joan Daemen, and Gilles Van Assche of STMicroelectronics and Michaël Peeters of NXP.[3]

## Entrants

[edit]

This is an incomplete list of known submissions. NIST selected 51 entries for round 1.[4] 14 of them advanced to round 2,[6] from which 5 finalists were selected.

### Winner

[edit]

The winner was announced to be Keccak on October 2, 2012.[9]

### Finalists

[edit]

NIST selected five SHA-3 candidate algorithms to advance to the third (and final) round:[10]

* BLAKE (Aumasson et al.)
* Grøstl (Knudsen et al.)
* JH (Hongjun Wu)
* Keccak (Keccak team, Daemen et al.)
* Skein (Schneier et al.)

NIST noted some factors that figured into its selection as it announced the finalists:[11]

* Performance: "A couple of algorithms were wounded or eliminated by very large [hardware gate] area requirement – it seemed that the area they required precluded their use in too much of the potential application space."
* Security: "We preferred to be conservative about security, and in some cases did not select algorithms with exceptional performance, largely because something about them made us 'nervous,' even though we knew of no clear attack against the full algorithm."
* Analysis: "NIST eliminated several algorithms because of the extent of their second-round tweaks or because of a relative lack of reported cryptanalysis – either tended to create the suspicion that the design might not yet be fully tested and mature."
* Diversity: The finalists included hashes based on different modes of operation, including the HAIFA and sponge function constructions, and with different internal structures, including ones based on AES, bitslicing, and alternating XOR with addition.

NIST has released a report explaining its evaluation algorithm-by-algorithm.[12][13][14]

### Did not pass to final round

[edit]

The following hash function submissions were accepted for round two, but did not make it to the final round. As noted in the announcement of the finalists, "none of these candidates was clearly broken".

* Blue Midnight Wish[15][16]
* CubeHash (Bernstein)
* ECHO (France Telecom)[17]
* Fugue (IBM)
* Hamsi[18]
* Luffa[19]
* Shabal[20]
* SHAvite-3[21]
* SIMD

### Did not pass to round two

[edit]

The following hash function submissions were accepted for round one but did not pass to round two. They have neither been conceded by the submitters nor have had substantial cryptographic weaknesses. However, most of them have some weaknesses in the design components, or performance issues.

* ARIRANG[22] (CIST – Korea University)
* CHI[23]
* CRUNCH[24]
* FSB
* Lane
* Lesamnta[25]
* MD6 (Rivest et al.)
* SANDstorm (Sandia National Laboratories)
* Sarmal[26]
* SWIFFTX
* TIB3[27]

#### Entrants with substantial weaknesses

[edit]

The following non-conceded round one entrants have had substantial cryptographic weaknesses announced:

* AURORA (Sony and Nagoya University)[28][29]
* Blender[30][31][32]
* Cheetah[33][34]
* Dynamic SHA[35][36]
* Dynamic SHA2[37][38]
* ECOH
* Edon-R[39][40]
* EnRUPT[41][42]
* ESSENCE[43][44]
* LUX[45]
* MCSSHA-3[46][47]
* NaSHA
* Sgàil[48][49]
* Spectral Hash
* Twister[50][51]
* Vortex[52][53]

#### Conceded entrants

[edit]

The following round one entrants have been officially retracted from the competition by their submitters; they are considered broken according to the NIST official round one candidates web site.[54] As such, they are withdrawn from the competition.

* Abacus[4][55]
* Boole[56][57]
* DCH[4][58]
* Khichidi-1[4][59]
* MeshHash[4][60]
* SHAMATA[4][61]
* StreamHash[4][62]
* Tangle[4][63]
* WaMM[64][65]
* Waterfall[66][67]

### Rejected entrants

[edit]

Several submissions received by NIST were not accepted as first-round candidates, following an internal review by NIST.[4] In general, NIST gave no details as to why each was rejected. NIST also has not given a comprehensive list of rejected algorithms; there are known to be 13,[4][68] but only the following are public.

* HASH 2X[citation needed]
* Maraca[69][70]
* MIXIT[71]
* NKS 2D[72][73][74]
* Ponic[75][76]
* ZK-Crypt[77]

## See also

[edit]

* Advanced Encryption Standard process
* CAESAR Competition – Competition to design authenticated encryption schemes
* Post-Quantum Cryptography Standardization

## References

[edit]

1. ^ "Federal Register / Vol. 72, No. 212" (PDF). Federal Register. Government Printing Office. November 2, 2007. Retrieved November 6, 2008.
2. ^ "cryptographic hash project – Background Information". Computer Security Resource Center. National Institute of Standards and Technology. November 2, 2007. Retrieved November 6, 2008.
3. ^ a b "NIST Selects Winner of Secure Hash Algorithm (SHA-3) Competition". NIST. October 2, 2012. Retrieved October 2, 2012.
4. ^ a b c d e f g h i j k "Round 1". December 9, 2008. Retrieved December 10, 2008.
5. ^ National Institute of Standards and Technology (December 9, 2008). "The First SHA-3 Candidate Conference". Retrieved December 23, 2008.
6. ^ a b "Second Round Candidates". National Institute for Standards and Technology. July 24, 2009. Retrieved July 24, 2009.
7. ^ National Institute of Standards and Technology (June 30, 2010). "The Second SHA-3 Candidate Conference".
8. ^ "Tentative Timeline of the Development of New Hash Functions". NIST. December 10, 2008. Retrieved September 15, 2009.
9. ^ NIST Selects Winner of Secure Hash Algorithm (SHA-3) Competition
10. ^ Third (Final) Round Candidates Retrieved 9 Nov 2011
11. ^ SHA-3 Finalists Announced by NIST Archived July 9, 2011, at the Wayback Machine, blog post quoting NIST's announcement in full.
12. ^ Status Report on the first round of the SHA-3 Cryptographic Hash Algorithm Competition (PDF).
13. ^ Status Report on the second round of the SHA-3 Cryptographic Hash Algorithm Competition (PDF). Retrieved 2 March 2011
14. ^ Third-Round Report of the SHA-3 Cryptographic Hash Algorithm Competition (PDF).
15. ^ Svein Johan Knapskog; Danilo Gligoroski; Vlastimil Klima; Mohamed El-Hadedy; Jørn Amundsen; Stig Frode Mjølsnes (November 4, 2008). "blue_midnight_wish". Retrieved November 10, 2008.
16. ^ Søren S. Thomsen (2009). "Pseudo-cryptanalysis of Blue Midnight Wish" (PDF). Archived from the original (PDF) on September 2, 2009. Retrieved May 19, 2009.
17. ^ Henri Gilbert; Ryad Benadjila; Olivier Billet; Gilles Macario-Rat; Thomas Peyrin; Matt Robshaw; Yannick Seurin (October 29, 2008). "SHA-3 Proposal: ECHO" (PDF). Retrieved December 11, 2008.
18. ^ Özgül Kücük (October 31, 2008). "The Hash Function Hamsi" (PDF). Retrieved December 11, 2008.
19. ^ Dai Watanabe; Christophe De Canniere; Hisayoshi Sato (October 31, 2008). "Hash Function Luffa: Specification" (PDF). Retrieved December 11, 2008.
20. ^ Jean-François Misarsky; Emmanuel Bresson; Anne Canteaut; Benoît Chevallier-Mames; Christophe Clavier; Thomas Fuhr; Aline Gouget; Thomas Icart; Jean-François Misarsky; Marìa Naya-Plasencia; Pascal Paillier; Thomas Pornin; Jean-René Reinhard; Céline Thuillet; Marion Videau (October 28, 2008). "Shabal, a Submission to NIST's Cryptographic Hash Algorithm Competition" (PDF). Retrieved December 11, 2008.
21. ^ Eli Biham; Orr Dunkelman. "The SHAvite-3 Hash Function" (PDF). Retrieved December 11, 2008.
22. ^ Jongin Lim; Donghoon Chang; Seokhie Hong; Changheon Kang; Jinkeon Kang; Jongsung Kim; Changhoon Lee; Jesang Lee; Jongtae Lee; Sangjin Lee; Yuseop Lee; Jaechul Sung (October 29, 2008). "ARIRANG" (PDF). Retrieved December 11, 2008.
23. ^ Philip Hawkes; Cameron McDonald (October 30, 2008). "Submission to the SHA-3 Competition: The CHI Family of Cryptographic Hash Algorithms" (PDF). Retrieved November 11, 2008.
24. ^ Jacques Patarin; Louis Goubin; Mickael Ivascot; William Jalby; Olivier Ly; Valerie Nachef; Joana Treger; Emmanuel Volte. "CRUNCH". Archived from the original on January 29, 2009. Retrieved November 14, 2008.
25. ^ Hirotaka Yoshida; Shoichi Hirose; Hidenori Kuwakado (October 30, 2008). "SHA-3 Proposal: Lesamnta" (PDF). Retrieved December 11, 2008.
26. ^ Kerem Varıcı; Onur Özen; Çelebi Kocair. "The Sarmal Hash Function". Archived from the original on June 11, 2011. Retrieved October 12, 2010.
27. ^ Daniel Penazzi; Miguel Montes. "The TIB3 Hash" (PDF). Retrieved November 29, 2008.[permanent dead link]
28. ^ Tetsu Iwata; Kyoji Shibutani; Taizo Shirai; Shiho Moriai; Toru Akishita (October 31, 2008). "AURORA: A Cryptographic Hash Algorithm Family" (PDF). Retrieved December 11, 2008.
29. ^ Niels Ferguson; Stefan Lucks (2009). "Attacks on AURORA-512 and the Double-MIX Merkle–Damgård Transform" (PDF). Retrieved July 10, 2009.
30. ^ Colin Bradbury (October 25, 2008). "BLENDER: A Proposed New Family of Cryptographic Hash Algorithms" (PDF). Retrieved December 11, 2008.
31. ^ Craig Newbold. "Observations and Attacks On The SHA-3 Candidate Blender" (PDF). Retrieved December 23, 2008.
32. ^ Florian Mendel. "Preimage Attack on Blender" (PDF). Retrieved December 23, 2008.
33. ^ Dmitry Khovratovich; Alex Biryukov; Ivica Nikolić (October 30, 2008). "The Hash Function Cheetah: Specification and Supporting Documentation" (PDF). Retrieved December 11, 2008.
34. ^ Danilo Gligoroski (December 12, 2008). "Danilo Gligoroski – Cheetah hash function is not resistant against length-extension attack". Retrieved December 21, 2008.
35. ^ Zijie Xu. "Dynamic SHA" (PDF). Retrieved December 11, 2008.
36. ^ Vlastimil Klima (December 14, 2008). "Dynamic SHA is vulnerable to generic attacks". Retrieved December 21, 2008.
37. ^ Zijie Xu. "Dynamic SHA2" (PDF). NIST. Retrieved December 11, 2008.
38. ^ Vlastimil Klima (December 14, 2008). "Dynamic SHA2 is vulnerable to generic attacks". Retrieved December 21, 2008.
39. ^ Danilo Gligoroski; Rune Steinsmo Ødegård; Marija Mihova; Svein Johan Knapskog; Ljupco Kocarev; Aleš Drápal (November 4, 2008). "edon-r". Retrieved November 10, 2008.
40. ^ Dmitry Khovratovich; Ivica Nikolić; Ralf-Philipp Weinmann (2008). "Cryptanalysis of Edon-R" (PDF). Retrieved July 10, 2009.
41. ^ Sean O'Neil; Karsten Nohl; Luca Henzen (October 31, 2008). "EnRUPT – The Simpler The Better". Retrieved November 10, 2008.
42. ^ Sebastiaan Indesteege (November 6, 2008). "Collisions for EnRUPT". Archived from the original on February 18, 2009. Retrieved November 7, 2008.
43. ^ Jason Worth Martin (October 21, 2008). "ESSENCE: A Candidate Hashing Algorithm for the NIST Competition" (PDF). Archived from the original (PDF) on June 12, 2010. Retrieved November 8, 2008.
44. ^ "Cryptanalysis of ESSENCE" (PDF).
45. ^ Ivica Nikolić; Alex Biryukov; Dmitry Khovratovich. "Hash family LUX – Algorithm Specifications and Supporting Documentation" (PDF). Retrieved December 11, 2008.
46. ^ Mikhail Maslennikov. "MCSSHA-3 hash algorithm". Archived from the original on May 2, 2009. Retrieved November 8, 2008.
47. ^ Jean-Philippe Aumasson; María Naya-Plasencia. "Second preimages on MCSSHA-3" (PDF). Retrieved November 14, 2008.[permanent dead link]
48. ^ Peter Maxwell (September 2008). "The Sgàil Cryptographic Hash Function" (PDF). Archived from the original (PDF) on November 12, 2013. Retrieved November 9, 2008.
49. ^ Peter Maxwell (November 5, 2008). "Aww, p*sh!". Archived from the original on November 9, 2008. Retrieved November 6, 2008.
50. ^ Michael Gorski; Ewan Fleischmann; Christian Forler (October 28, 2008). "The Twister Hash Function Family" (PDF). Retrieved December 11, 2008.
51. ^ Florian Mendel; Christian Rechberger; Martin Schläffer (2008). "Cryptanalysis of Twister" (PDF). Retrieved May 19, 2009.
52. ^ Michael Kounavis; Shay Gueron (November 3, 2008). "Vortex: A New Family of One Way Hash Functions based on Rijndael Rounds and Carry-less Multiplication". Retrieved November 11, 2008.
53. ^ Jean-Philippe Aumasson; Orr Dunkelman; Florian Mendel; Christian Rechberger; Søren S. Thomsen (2009). "Cryptanalysis of Vortex" (PDF). Retrieved May 19, 2009.
54. ^ Computer Security Division, Information Technology Laboratory (January 4, 2017). "SHA-3 Project – Hash Functions". CSRC: NIST. Retrieved April 26, 2019.
55. ^ Neil Sholer (October 29, 2008). "Abacus: A Candidate for SHA-3" (PDF). Retrieved December 11, 2008.
56. ^ Gregory G. Rose. "Design and Primitive Specification for Boole" (PDF). Retrieved November 8, 2008.
57. ^ Gregory G. Rose (December 10, 2008). "Official Comment: Boole" (PDF). Retrieved December 23, 2008.
58. ^ David A. Wilson (October 23, 2008). "The DCH Hash Function" (PDF). Retrieved November 23, 2008.
59. ^ Natarajan Vijayarangan. "A New Hash Algorithm: Khichidi-1" (PDF). Retrieved December 11, 2008.
60. ^ Björn Fay. "MeshHash" (PDF). Retrieved November 30, 2008.
61. ^ Orhun Kara; Adem Atalay; Ferhat Karakoc; Cevat Manap. "SHAMATA hash function: A candidate algorithm for NIST competition". Archived from the original on February 1, 2009. Retrieved November 10, 2008.
62. ^ Michal Trojnara (October 14, 2008). "StreamHash Algorithm Specifications and Supporting Documentation" (PDF). Retrieved December 15, 2008.
63. ^ Rafael Alvarez; Gary McGuire; Antonio Zamora. "The Tangle Hash Function" (PDF). Retrieved December 11, 2008.
64. ^ John Washburn. "WaMM: A Candidate Algorithm for the SHA-3 Competition" (PDF). Archived from the original (PDF) on April 19, 2009. Retrieved November 9, 2008.
65. ^ "Official Comment: WaMM is Withdrawn" (PDFauthor=John Washburn). December 20, 2008. Retrieved December 23, 2008.
66. ^ Bob Hattersly (October 15, 2008). "Waterfall Hash – Algorithm Specification and Analysis" (PDF). Retrieved November 9, 2008.
67. ^ Bob Hattersley (December 20, 2008). "Official Comment: Waterfall is broken" (PDF). Retrieved December 23, 2008.
68. ^ Bruce Schneier (November 19, 2008). "Skein and SHA-3 News". Retrieved December 23, 2008.
69. ^ Robert J. Jenkins Jr. "Algorithm Specification". Retrieved December 15, 2008.
70. ^ Anne Canteaut & María Naya-Plasencia. "Internal collision attack on Maraca" (PDF). Retrieved December 15, 2008.
71. ^ Michael P. Frank. "Algorithm Specification for MIXIT: a SHA-3 Candidate Cryptographic Hash Algorithm" (PDF). Archived from the original (PDF) on March 4, 2016. Retrieved January 12, 2014.
72. ^ Geoffrey Park. "NKS 2D Cellular Automata Hash" (PDF). Retrieved November 9, 2008.
73. ^ Cristophe De Cannière (November 13, 2008). "Collisions for NKS2D-224". Retrieved November 14, 2008.
74. ^ Brandon Enright (November 14, 2008). "Collisions for NKS2D-512". Retrieved November 14, 2008.
75. ^ Peter Schmidt-Nielsen. "Ponic" (PDF). Retrieved November 9, 2008.
76. ^ María Naya-Plasencia. "Second preimage attack on Ponic" (PDF). Retrieved November 30, 2008.
77. ^ Nicolas T. Courtois; Carmi Gressel; Avi Hecht; Gregory V. Bard; Ran Granot. "ZK-Crypt Homepage". Archived from the original on February 9, 2009. Retrieved March 1, 2009.

## External links

[edit]

* NIST website for competition
* Official list of second round candidates
* Official list of first round candidates
* SHA-3 Zoo
* Classification of the SHA-3 Candidates
* Hash Function Lounge
* VHDL source code developed by the Cryptographic Engineering Research Group (CERG) at George Mason University
* FIPS 202 – The SHA-3 Standard

* v
* t
* e

Cryptographic hash functions and message authentication codes

* List
* Comparison
* Known attacks

Common functions|

* MD5 (compromised)
* SHA-1 (compromised)
* SHA-2
* SHA-3
* BLAKE2

SHA-3 finalists|

* BLAKE
* Grøstl
* JH
* Skein
* Keccak (winner)

Other functions|

* BLAKE3
* CubeHash
* ECOH
* FSB
* Fugue
* GOST
* HAS-160
* HAVAL
* Kupyna
* LSH
* Lane
* MASH-1
* MASH-2
* MD2
* MD4
* MD6
* MDC-2
* N-hash
* RIPEMD
* RadioGatún
* SIMD
* SM3
* SWIFFT
* Shabal
* Snefru
* Streebog
* Tiger
* VSH
* Whirlpool

Password hashing/
key stretching functions|

* Argon2
* Balloon
* bcrypt
* Catena
* crypt
* LM hash
* Lyra2
* Makwa
* PBKDF2
* scrypt
* yescrypt

General purpose
key derivation functions|

* HKDF
* KDF1/KDF2

MAC functions|

* CBC-MAC
* DAA
* GMAC
* HMAC
* NMAC
* OMAC/CMAC
* PMAC
* Poly1305
* SipHash
* UMAC
* VMAC

Authenticated
encryption modes|

* CCM
* ChaCha20-Poly1305
* CWC
* EAX
* GCM
* IAPM
* OCB

Attacks|

* Collision attack
* Preimage attack
* Birthday attack
* Brute-force attack
* Rainbow table
* Side-channel attack
* Length extension attack

Design|

* Avalanche effect
* Hash collision
* Merkle–Damgård construction
* Sponge function
* HAIFA construction

Standardization|

* CAESAR Competition
* CRYPTREC
* NESSIE
* NIST hash function competition
* Password Hashing Competition
* NSA Suite B
* CNSA

Utilization|

* Hash-based cryptography
* Merkle tree
* Message authentication
* Proof of work
* Salt
* Pepper

* v
* t
* e

Cryptography

General|

* History of cryptography
* Outline of cryptography
* Classical cipher
* Cryptographic protocol
* Authentication protocol
* Cryptographic primitive
* Cryptanalysis
* Cryptocurrency
* Cryptosystem
* Cryptographic nonce
* Cryptovirology
* Hash function
* Cryptographic hash function
* Key derivation function
* Secure Hash Algorithms
* Digital signature
* Kleptography
* Key (cryptography)
* Key exchange
* Key generator
* Key schedule
* Key stretching
* Keygen
* Machines
* Cryptojacking malware
* Ransomware
* Random number generation
* Cryptographically secure pseudorandom number generator (CSPRNG)
* Pseudorandom noise (PRN)
* Secure channel
* Insecure channel
* Subliminal channel
* Encryption
* Decryption
* End-to-end encryption
* Harvest now, decrypt later
* Information-theoretic security
* Plaintext
* Codetext
* Ciphertext
* Shared secret
* Trapdoor function
* Trusted timestamping
* Key-based routing
* Onion routing
* Garlic routing
* Kademlia
* Mix network

Mathematics|

* Cryptographic hash function
* Block cipher
* Stream cipher
* Symmetric-key algorithm
* Authenticated encryption
* Public-key cryptography
* Quantum key distribution
* Quantum cryptography
* Post-quantum cryptography
* Message authentication code
* Random numbers
* Steganography

* Category

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template