A US government agency will soon announce which of five remaining candidate algorithms will become SHA-3, the new hash function to replace SHA-1 and SHA-2. The latter is a key component in various security technologies, from SSL and SSH to PGP and IPsec, and must be used by law in certain US government applications.
The US National Institute of Standards and Technology's decision to name the winning algorithm will mark the end of a six-year competition.
However one of the software authors still in the running, cryptography guru Bruce Schneier, hopes that all five functions - including his own - will be passed over. The "no award" decision Schneier wants would effectively leave the competition open until a compelling reason to make a change emerges.
"It's not that the new hash functions aren't any good, it's that we don't really need one," Schneier explained in a blog post. "When we started this process back in 2006, it looked as if we would be needing a new hash function soon. The SHA family (which is really part of the MD4 and MD5 family), was under increasing pressure from new types of cryptanalysis. We didn't know how long the various SHA-2 variants would remain secure. But it's 2012, and SHA-512 is still looking good.
"Even worse, none of the SHA-3 candidates is significantly better. Some are faster, but not orders of magnitude faster. Some are smaller in hardware, but not orders of magnitude smaller. When SHA-3 is announced, I'm going to recommend that, unless the improvements are critical to their application, people stick with the tried and true SHA-512. At least for a while."
A cryptographic hash algorithm converts data into a shortened "message digest" from which it is, ideally, impossible to recover the original information. This one-way technique is used to generate digital signatures that confirm a message or file is from a genuine source - and other scenarios where you don't want to reveal your secret cryptographic key, but at least prove you have it in your possession.
As well as the strength and elegance of each wannabe SHA-3 algorithm, the performance and power consumption on battery-powered computers, such as smartphones, will be a crucial deciding factor.
Teams of competing cryptographers were invited take a crack at smashing rival algorithms, or at least unearthing potential flaws.
The overall competition is similar to the contest for the function to underpin the Advanced Encryption Standard (AES). The Rijndael cipher won this competition in 2002, and was adopted as the standard for AES. Its subsequent adoption by the US made it the gold standard for cryptography, superseding the Data Encryption Standard (DES).
Schneier's Twofish algorithm made it into the final five of the AES competition, but lost out because it was slightly slower than Rijndael. No call was made to drag out the AES competition by Schneier or anyone else, because there was a general acceptance that DES was potentially vulnerable and not particularly fast.
Both DES and AES deal with the encryption of the complete content of an electronic message in a way that the encrypted data can be decrypted with the correct key. Hashing algorithms deal with message digests and cannot, ideally, be reversed without brute-forcing the function. Problems arise where two different inputs to the one-way function produce the same message digest, known as a cryptographic collision. These collisions can be used to fake digital certificates, and featured in the recent Flame cyber-espionage malware - a very rare real-world example of this kind of attack.
If NIST does announce a SHA-3 winning candidate - and after spending years whittling 64 initial candidates down to five, this does some likely - then it could do worse in selecting Schneier's Skein algorithm instead of its four rivals (BLAKE, Grøstl, JH, Keccak).
"Of course I want Skein to win, but that's out of personal pride, not for some objective reason," Schneier writes. "And while I like some more than others, I think any would be okay."
"Well, maybe there's one reason NIST should choose Skein. Skein isn't just a hash function, it's the large-block cipher Threefish and a mechanism to turn it into a hash function. I think the world actually needs a large-block cipher, and if NIST chooses Skein, we'll get one." ®