Cryptographic
Whirlpool
A 512-bit cryptographic hash function designed by Paulo Barreto and Vincent Rijmen (the co-designer of AES) in 2000. Whirlpool is built around an AES-like block cipher and used via the Miyaguchi-Preneel mode. Standardized as part of ISO/IEC 10118-3.
At a glance
| Output | 512 bits (64 bytes, 128 hex chars) |
|---|---|
| Block size | 512 bits |
| Construction | Miyaguchi-Preneel over a 512-bit block cipher |
| Rounds | 10 |
| Standard | ISO/IEC 10118-3 |
| Collision security | 2256 generic |
| Preimage security | 2512 |
| Length extension | No (output equals state size, but matrix MMOC compression) |
| Status | Holds up cryptographically; rarely chosen for new designs |
Where it shows up
- TrueCrypt / VeraCrypt , selectable hash for header authentication.
- Linux
crypt, the$whirl$identifier (rare). - NESSIE project , recommended in 2003 alongside SHA-256.
- Legacy storage products , some enterprise integrity products.
Why it is not more popular
Whirlpool is solid cryptographically , no practical break is known , but it competes against algorithms with significant ecosystem advantages: SHA-2 has NSA / NIST blessing and hardware acceleration on every CPU since 2013; SHA-3 has the same NIST status with a different construction; BLAKE2/3 are dramatically faster. Whirlpool ended up chosen for niche use cases where ISO/IEC mattered more than speed or ubiquity.
Internal structure
The block cipher at the heart of Whirlpool is AES-like: a 8×8 byte state, 10 rounds of SubBytes / ShiftColumns / MixRows / AddRoundKey. Whirlpool’s S-box is its own design (chosen to maximize differential and linear resistance). The Miyaguchi-Preneel mode XORs each block’s ciphertext, plaintext, and previous state to update the chaining variable.
Try it
Whirlpool is in the algorithm catalog and available via the comparator for side-by-side specs.
References
- ISO/IEC 10118-3:2018 , Information technology , Security techniques , Hash-functions
- Paulo Barreto , The Whirlpool Hash Function page
- NESSIE project , final report (2003)
Visualize
Whirlpool on your input
11 bytes · 0-bit digest
Hex digest
Bit grid (0 bits, teal = 1, slate = 0)
Byte pixel art (0 bytes, hue = byte value mod 360°)
Avalanche , flipping the lowest bit of the first input byte changed 0 of 0 output bits