Zum Inhalt springen
ecdsa.com

SHAKE128 und SHAKE256

Die Extendable-Output-Funktionen (XOFs) aus FIPS 202, die aus dem Keccak-Sponge eine Ausgabe beliebiger gewünschter Länge erzeugen, bei ausreichend langer Ausgabe mit 128 Bit Sicherheit für SHAKE128 und 256 Bit für SHAKE256.
Auch geschrieben alsSHAKE128SHAKE256XOFextendable-output function

Anders als bei einem Hash mit festem Digest legt der Aufrufer bei einer XOF die Ausgabelänge von d Bit fest; ihre Kollisionsresistenz beträgt min(d/2, Kapazität/2), ihre Urbildresistenz min(d, Kapazität/2). SHAKE128 hat eine Kapazität von 256 Bit, SHAKE256 eine von 512 Bit. Wer von SHAKE256 32 oder 64 Byte anfordert, erhält Präfixe desselben Datenstroms, deshalb müssen Aufrufer verschiedene Verwendungen per Domain-Separation trennen; cSHAKE (SP 800-185) ergänzt dafür explizite Customization-Strings.

SHAKE steckt überall in der Post-Quanten-Kryptografie: ML-KEM und ML-DSA expandieren ihre öffentlichen Matrizen mit SHAKE128 und leiten andere Werte mit SHAKE256 ab (FIPS 203 und FIPS 204 nennen sie XOF, H, J und G), SLH-DSA hat SHAKE-Parametersätze, und Ed448 hasht mit SHAKE256. FIPS 186-5 erlaubt SHAKE außerdem als Hash- und Maskenfunktion in RSASSA-PSS.

Kennungen: OIDs 2.16.840.1.101.3.4.2.11 (SHAKE128) und …2.12 (SHAKE256); in OpenSSL shake128 und shake256 mit -xoflen; in Python hashlib.shake_256(data).digest(n).

Standards und Quellen

Alle Begriffe