Aller au contenu
ecdsa.com

SHA-3

La famille de fonctions de hachage fondée sur Keccak et normalisée dans FIPS 202 (2015), construite sur une éponge plutôt que sur Merkle–Damgård : SHA3-224, SHA3-256, SHA3-384, SHA3-512 et les fonctions à sortie extensible SHAKE128 et SHAKE256.
Autres graphiesSHA3SHA3-256SHA3-512Keccak (FIPS 202)

Une éponge absorbe l’entrée dans un état de 1600 bits au moyen de la permutation Keccak-f, puis en extrait (essore) la sortie. L’état se divise en un débit (rate, la partie touchée par l’entrée et la sortie) et une capacité c qui fixe la sécurité ; SHA3-256 utilise un débit de 1088 bits et une capacité de 512. Comme la capacité n’est jamais produite en sortie, SHA-3 est insensible à l’extension de longueur, et SHA3-256(key ‖ message) est une construction de MAC sûre, même si KMAC est la construction normalisée.

Vecteur de test : le SHA3-256 de la chaîne vide est a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a. Le « SHA3 » d’Ethereum est Keccak-256 avec le remplissage d’origine, et il donne un condensat différent ; FIPS 202 a ajouté des bits de séparation de domaine.

En logiciel, SHA-3 est plus lent que SHA-256 sur les processeurs dotés d’instructions SHA-2 : environ 1,01 Go/s pour SHA3-256 contre 2,85 Go/s pour SHA-256 sur un cœur d’Apple M4 Max avec OpenSSL 3.6.5. Il a été normalisé comme solution de secours de structure différente de SHA-2, et non comme son remplaçant, et ses fonctions SHAKE sont les principales primitives de hachage dans ML-KEM, ML-DSA et SLH-DSA.

Normes et références

Tous les termes