WHIRLPOOL
|
WHIRLPOOL is a cryptographic hash function designed by Vincent Rijmen and Paulo S. L. M. Barreto. The hash has been recommended by the NESSIE project.
WHIRLPOOL is a hash designed after the Square block cipher. WHIRLPOOL is a Miyaguchi-Preneel construction based on a substantially modified Advanced Encryption Standard (AES). Given a message less than 2256 bits in length, it returns a 512-bit message digest.
The authors have declared that "WHIRLPOOL is not (and will never be) patented. It may be used free of charge for any purpose. The reference implementations are in the public domain."
The algorithm is named after the Whirlpool Galaxy in Canes Venatici.
WHIRLPOOL hashes
The WHIRLPOOL algorithm has undergone two revisions since its original 2000 specification. In the first 2001 revision, the s-box was changed from a randomly generated one with good cryptographic properties to one which has better cryptographic properties and is easier to implement in hardware. In the second 2003 revision, the diffusion matrix was changed.
People incorporating WHIRLPOOL will most likely use the most recent revision of WHIRLPOOL; while there are no known security weaknesses in earlier versions of WHIRLPOOL, the most recent revision has better security and hardware implementation efficiency characteristics.
The original WHIRLPOOL will be called WHIRLPOOL1 and the first revision of WHIRLPOOL will be called WHIRLPOOL2 in the following test vectors.
The 512-bit (32-byte) WHIRLPOOL hashes (also termed message digests) are typically represented as 128-digit hexadecimal numbers. The following demonstrates a 43-byte ASCII input and the corresponding WHIRLPOOL hashes:
- WHIRLPOOL1("The quick brown fox jumps over the lazy dog") =
- 4F8F5CB531E3D49A61CF417CD133792CCFA501FD8DA53EE368FED20E5FE0248C
- 3A0B64F98A6533CEE1DA614C3A8DDEC791FF05FEE6D971D57C1348320F4EB42D
- WHIRLPOOL2("The quick brown fox jumps over the lazy dog") =
- 3CCF8252D8BBB258460D9AA999C06EE38E67CB546CFFCF48E91F700F6FC7C183
- AC8CC3D3096DD30A35B01F4620A1E3A20D79CD5168544D9E1B7CDF49970E87F1
- WHIRLPOOL("The quick brown fox jumps over the lazy dog") =
- B97DE512E91E3828B40D2B0FDCE9CEB3C4A71F9BEA8D88E75C4FA854DF36725F
- D2B52EB6544EDCACD6F8BEDDFEA403CB55AE31F03AD62A5EF54E42EE82C3FB35
Even a small change in the message will (with overwhelming probability) result in a completely different hash, e.g. changing d to c:
- WHIRLPOOL1("The quick brown fox jumps over the lazy cog") =
- CB2CB5F1697A6D8C6609998965F97C243B53A29EB973AEC8D388E893C0E7DD9B
- 6CCA934FE67151300120D409C6F0982923B9D15AA5CA8356BDAF2F97F50351BC
- WHIRLPOOL2("The quick brown fox jumps over the lazy cog") =
- 64D675832795AED30DCD926DBA32F4E0ED95B067D1C563400C4B600721EA100F
- 5BC5EBFB9DAB55AA159CB5C52DFF57CF54443D031EF7F38268E0A059450BB9D1
- WHIRLPOOL("The quick brown fox jumps over the lazy cog") =
- DCE81FC695CFEA3D7E1446509238DAF89F24CC61896F2D265927DAA70F2108F8
- 902F0DFD68BE085D5ABB9FCD2E482C1DC24F2FABF81F40B73495CAD44D7360D3
The hash of a zero-length string is:
- WHIRLPOOL1("") =
- B3E1AB6EAF640A34F784593F2074416ACCD3B8E62C620175FCA0997B1BA23473
- 39AA0D79E754C308209EA36811DFA40C1C32F1A2B9004725D987D3635165D3C8
- WHIRLPOOL2("") =
- 470F0409ABAA446E49667D4EBE12A14387CEDBD10DD17B8243CAD550A089DC0F
- EEA7AA40F6C2AAAB71C6EBD076E43C7CFCA0AD32567897DCB5969861049A0F5A
- WHIRLPOOL("") =
- 19FA61D75522A4669B44E39C1D2E1726C530232130D407F89AFEE0964997F7A7
- 3E83BE698B288FEBCF88E3E03C4F0757EA8964E59B63D93708B138CC42A66EB3
See also
External links
- More information on WHIRLPOOL (http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html)
- An implementation of all three revisions of WHIRLPOOL (http://www.maradns.org/download/whirlpool.tar.bz2)
Template:Cryptographic hash functionsde:Whirlpool (Algorithmus) fr:Whirlpool