SHAKE¶
SHAKE are extendable-output functions from the KECCAK family.
Overview¶
Standardised in FIPS 202, SHAKE128 and SHAKE256 are two algorithms from the KECCAK family. They are based on a sponge construction. As extendable-output functions (XOFs), they take an arbitrarily long message as input and output a digest. As the name suggests, contrary to hash functions, the output of a XOF can also be arbitrarily long. From FIPS 202:
The suffixes “128” and “256” indicate the security strengths that these two
functions can generally support, in contrast to the suffixes for the hash
functions, which indicate the digest lengths.
| Function name | Output size (bits) | Collision resistance | Preimage resistance | 2nd preimage resistance | 
|---|---|---|---|---|
| SHAKE128 | Variable \(d\) | \(\min(d/2, 128)\) | \(\ge \min(d/2, 128)\) | \(\min(d/2, 128)\) | 
| SHAKE256 | Variable \(d\) | \(\min(d/2, 256)\) | \(\ge \min(d/2, 256)\) | \(\min(d/2, 256)\) | 
| SHA-256 | 256 | 128 | 256 | 256 | 
While FIPS 202 does not approve any particular usage, SP 800-185 specifies four SHA-3 derived functions, based on SHAKE:
- cSHAKE, a customizable variant of the SHAKE functions; 
- KMAC (KECCAK Message Authentication Code), based on cSHAKE; 
- TupleHash, a hash function based on cSHAKE to hash a tuple of input strings in an unambiguous way; 
- ParallelHash, for efficiently hashing very long strings. 
Another possible usage is as a key derivation function (KDF), in which case we
note that XOFs produce related outputs: producing a shorter digest of a
previously hashed message is simply the truncation of the first digest, e.g.
XOF(K, 32) == XOF(K, 64)[:32].
ANSSI rules and recommendations¶
There are currently no rules or recommendations.
ANSSI notes and recommendations¶
There are currently no notes or recommendations.