Zum Inhalt springen
ecdsa.com

SHA-3

Die auf Keccak basierende Familie von Hashfunktionen aus FIPS 202 (2015) – SHA3-224, SHA3-256, SHA3-384, SHA3-512 und die Extendable-Output-Funktionen SHAKE128 und SHAKE256 –, aufgebaut auf einer Sponge-Konstruktion statt auf Merkle–Damgård.
Auch geschrieben alsSHA3SHA3-256SHA3-512Keccak (FIPS 202)

Eine Sponge-Konstruktion nimmt die Eingabe über die Permutation Keccak-f in einen 1600-Bit-Zustand auf (Absorbing) und entnimmt ihm die Ausgabe (Squeezing). Der Zustand teilt sich in eine Rate (den Teil, den Ein- und Ausgabe berühren) und eine Kapazität c, die die Sicherheit bestimmt; SHA3-256 verwendet eine Rate von 1088 Bit und eine Kapazität von 512. Weil die Kapazität nie ausgegeben wird, ist SHA-3 immun gegen Length-Extension-Angriffe, und SHA3-256(key ‖ message) ist eine solide MAC-Konstruktion, auch wenn KMAC die standardisierte ist.

Testvektor: SHA3-256 des leeren Strings ist a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a. Das „SHA3“ von Ethereum ist Keccak-256 mit dem ursprünglichen Padding und liefert einen anderen Digest; FIPS 202 hat Bits zur Domain-Separation ergänzt.

In Software ist SHA-3 auf CPUs mit SHA-2-Befehlen langsamer als SHA-256: etwa 1,01 GB/s für SHA3-256 gegenüber 2,85 GB/s für SHA-256 auf einem Kern eines Apple M4 Max mit OpenSSL 3.6.5. Standardisiert wurde SHA-3 als strukturell andere Rückfalloption zu SHA-2, nicht als Ersatz, und seine SHAKE-Funktionen sind die wichtigsten Hash-Primitive in ML-KEM, ML-DSA und SLH-DSA.

Standards und Quellen

Alle Begriffe