ECHO is an AES-based cryptographic hash function submitted to the NIST SHA-3 competition (Round 2). It processes a 512-bit (small variants) or 1024-bit (large variants) state through 8 or 10 double-AES-round permutations, with a counter mixed into the AES round keys. It did not advance to the SHA-3 final round.
| Property | Value |
|---|---|
| Category | Hash Functions |
| Sub-category | Cryptographic Hash |
| Security status | 🎓 Educational Only |
| Complexity | Advanced |
| Inventor | Ryad Benadjila, Olivier Billet, Henri Gilbert, Gilles Macario-Rat, Thomas Peyrin, Matt Robshaw, Yannick Seurin |
| Year | 2008 |
| Origin | 🇫🇷 France |
| Source | algorithms/hash/echo.js |
| Parameter | Supported values |
|---|---|
| Output sizes | 28 bytes (224 bits); 32 bytes (256 bits); 48 bytes (384 bits); 64 bytes (512 bits) |
Status: 🎓 Educational Only
No vulnerabilities are recorded for this implementation.
8 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 — sphlib NIST-style test vector (0-bit / empty message) - ECHO-224
| Field | Value |
|---|---|
outputSize |
28 |
input |
(empty) |
expected |
17da087595166f733fff7cdb0bca6438f303d0e00c48b5e7a3075905 |
Vector 2 — sphlib NIST-style test vector (8-bit message 0xCC) - ECHO-224
| Field | Value |
|---|---|
outputSize |
28 |
input |
cc |
expected |
34d81c434b63c8fbcf023b6417af87d906942ebd7b56c1d7b08baddc |
Vector 3 — sphlib NIST-style test vector (0-bit / empty message) - ECHO-256
| Field | Value |
|---|---|
outputSize |
32 |
input |
(empty) |
expected |
4496cd09d425999aefa75189ee7fd3c97362aa9e4ca898328002d20a4b519788 |
Vector 4 — sphlib NIST-style test vector (8-bit message 0xCC) - ECHO-256
| Field | Value |
|---|---|
outputSize |
32 |
input |
cc |
expected |
01c382b5b9d7d10ec36c98785c27eaccfb2f772a7e58b6b97bf62212b8584ae5 |
Vector 5 — sphlib NIST-style test vector (0-bit / empty message) - ECHO-384
| Field | Value |
|---|---|
outputSize |
48 |
input |
(empty) |
expected |
134040763f840559b84b7a1ae5d6d64f c3659821a789cc64a7f1444c09ee7f81 a54d72beee8273bae5ef18ec43aa5f34 |
Vector 6 — sphlib NIST-style test vector (8-bit message 0xCC) - ECHO-384
| Field | Value |
|---|---|
outputSize |
48 |
input |
cc |
expected |
90875a2649cab90018ff8aecd334482c 92b15d76b378574eeaacd3b7598020db 11e2c7480614eea8793de3daf2093f73 |
Vector 7 — sphlib NIST-style test vector (0-bit / empty message) - ECHO-512
| Field | Value |
|---|---|
outputSize |
64 |
input |
(empty) |
expected |
158f58cc79d300a9aa292515049275d0 51a28ab931726d0ec44bdd9faef4a702 c36db9e7922fff077402236465833c5c c76af4efc352b4b44c7fa15aa0ef234e |
Vector 8 — sphlib NIST-style test vector (8-bit message 0xCC) - ECHO-512
| Field | Value |
|---|---|
outputSize |
64 |
input |
cc |
expected |
dfce37ca6f32ba4c3a72e77bca20e511 a39b31a6075815f083db2ecfd5c32cfd 6a4e0dd9bd51921199758edd2fe8ed0f a31e06aa821c7030653d15408e8728dd |