Constructions de hachage (Merkle-Damgård et éponge)

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche

Portail > Fondamentaux

La manière dont une fonction de hachage est construite explique ses forces et ses faiblesses — notamment la vulnérabilité à l'extension de longueur. Deux grandes familles dominent : Merkle-Damgård et l'éponge.

Merkle-Damgård

Le message est découpé en blocs (après remplissage), traités séquentiellement par une fonction de compression qui mélange chaque bloc avec un état chaîné ; l'état final est le condensé.

<mermaid> flowchart LR

   IV[État initial] --> C1[compression]
   M1[Bloc 1] --> C1
   C1 --> C2[compression]
   M2[Bloc 2] --> C2
   C2 --> C3[compression]
   M3[Bloc n] --> C3
   C3 --> H[Condensé]

</mermaid>

(Schéma en Mermaid.)

Utilisée par MD5, SHA-1 et SHA-2.

Faiblesse structurelle : l'extension de longueur. Comme le condensé est l'état interne final, qui connaît H(m) peut calculer H(m ‖ padding ‖ extension) sans connaître m. D'où l'usage de HMAC plutôt que H(clé ‖ message).

Éponge (sponge)

La construction éponge (Keccak / SHA-3) maintient un grand état divisé en deux parties : le débit (rate) et la capacité (capacity, jamais exposée). Deux phases :

  1. Absorption : les blocs du message sont XORés dans le débit et brassés.
  2. Essorage (squeeze) : on lit le condensé depuis le débit, en brassant autant que nécessaire.

Avantages :

  • Pas d'extension de longueur (la capacité n'est jamais révélée) ;
  • sortie extensible (XOF) : SHAKE128/256 produisent une longueur arbitraire.

Autres constructions

  • BLAKE2 : dérivé de la conception de ChaCha, robuste et rapide (BLAKE2 et BLAKE3).
  • BLAKE3 : construction en arbre (Merkle), parallélisable, avec sortie extensible.
  • Whirlpool : bâti autour d'un chiffrement par bloc dédié (construction de Miyaguchi-Preneel) — voir Whirlpool.

Comparaison

Construction Exemples Extension de longueur
Merkle-Damgård MD5, SHA-1, SHA-2 Oui (→ HMAC)
Éponge SHA-3, SHAKE Non
Arbre BLAKE3 Non

Points clés à retenir

  • Merkle-Damgård (MD5/SHA-1/SHA-2) : compression chaînée ; sensible à l'extension de longueur → HMAC.
  • Éponge (SHA-3/SHAKE) : absorption/essorage, capacité cachée → pas d'extension, sortie extensible.
  • BLAKE3 : construction en arbre, parallélisable.
  • La construction conditionne directement les faiblesses exploitables.

Voir aussi

Fonctions de hachage — Portail
Fondamentaux Principe et propriétés · Constructions · Attaques génériques
Algorithmes MD5 et SHA-1 · SHA-2 · SHA-3 et SHAKE · RIPEMD-160 · Whirlpool · BLAKE2 et BLAKE3
Applications Usages · Hachage de mots de passe