ANNÉES 2010

SHA-3

Fin des années 1970, les fonctions de hachage cryptographique commencent à prendre forme. Ces algorithmes transforment n’importe quelle donnée en une empreinte numérique de taille fixe, pour vérifier l’intégrité des données et créer des signatures électroniques. En 1976, Diffie et Hellman publient leur article fondateur sur la cryptographie à clé publique ; ils y identifient le besoin d’une fonction de hachage à sens unique pour construire des schémas de signature numérique.

Entre 1978 et 1979, Rabin, Yuval et Merkle posent les bases théoriques. Rabin propose une conception basée sur le chiffrement DES avec une sortie de 64 bits. Yuval démontre qu’on peut trouver des collisions pour une fonction de hachage de n bits en temps 2n∕2 grâce au paradoxe des anniversaires. Merkle introduit les exigences de résistance aux collisions, aux pré-images et aux secondes pré-images, qui restent les propriétés fondamentales attendues d’une fonction de hachage cryptographique.

Les années 1990 voient l’émergence de MD4 et MD5, conçus par Ron Rivest, qui seront des standards très utilisés. SHA-1, publié par la NSA en 1995, s’impose comme le successeur de MD5 avec une sortie de 160 bits. SHA-2 arrive en 2001 avec des variantes générant des condensats de 224 à 512 bits. Ces algorithmes reposent sur la construction Merkle-Damgård : le message d’entrée est découpé en blocs de taille fixe auxquels on applique itérativement une fonction de compression.

En 2004, l’équipe de Xiaoyun Wang bouleverse le domaine en perfectionnant la cryptanalyse différentielle jusqu’à rendre triviale la recherche de collisions pour MD5. Ces travaux réduisent aussi considérablement la sécurité de SHA-1. En 2008, une équipe parvient à créer un certificat CA malveillant en exploitant les faiblesses de MD5. La communauté cryptographique s’inquiète de la robustesse des fonctions de hachage existantes. SHA-2 utilise des principes de construction similaires à SHA-1, ce qui pose question sur sa résistance future.

Le NIST lance en 2007 un concours public pour sélectionner un nouvel algorithme qui deviendra SHA-3. Le cahier des charges impose que les candidats supportent des sorties de 224, 256, 384 et 512 bits pour assurer la compatibilité avec SHA-2. Les soumissions doivent être libres de droits et utilisables mondialement sans restriction.

64 candidatures arrivent en 2008, dont 51 sont retenues pour le premier tour. À la mi-2009, environ la moitié des algorithmes sont cassés. Cette hécatombe démontre qu’il est difficile de concevoir une fonction de hachage sûre et efficace. En juillet 2009, le NIST sélectionne 14 candidats pour le second tour : Blake, Blue Midnight Wish, CubeHash, ECHO, Fugue, Grøstl, Hamsi, JH, Keccak, Luffa, Shabal, SHAvite-3, SIMD et Skein.

L’algorithme Keccak, développé par Guido Bertoni, Joan Daemen, Michaël Peeters et Gilles Van Assche, se distingue par son architecture novatrice basée sur la construction éponge. Contrairement à la construction Merkle-Damgård, cette approche absorbe le message bloc par bloc avec une partie appelée « taux » de 1 152 bits, tandis que les 448 bits restants servent de paramètre de sécurité. L’état interne forme un cube de 5×5×64 bits totalisant 1 600 bits.

En octobre 2012, le NIST désigne Keccak comme vainqueur du concours SHA-3. La décision s’appuie sur ses excellentes performances matérielles, sa marge de sécurité confortable et son architecture différente des autres SHA. La standardisation aboutit en août 2015 avec la publication du FIPS 202. SHA-3 comprend quatre fonctions de hachage classiques (SHA3-224, SHA3-256, SHA3-384 et SHA3-512) ainsi que deux fonctions à sortie extensible SHAKE128 et SHAKE256.

Les premières mises en œuvre de SHA-3 révèlent des caractéristiques intéressantes. Sur FPGA, l’algorithme nécessite plus de ressources matérielles que SHA-1 mais offre une meilleure résistance cryptographique. Les tests de performance indiquent que SHA-3 est environ 5,5 fois plus lent que SHA-1 du fait de sa complexité accrue. Pour le cassage de mots de passe par force brute, un mot de 6 caractères requiert quelques minutes avec SHA-1 contre plus d’une heure avec SHA-3.

L’introduction de SHA-3 marque une évolution dans l’histoire des fonctions de hachage cryptographique. Sa construction éponge rompt avec l’approche traditionnelle et inspire de nouveaux modes d’utilisation. Les fonctions à sortie extensible SHAKE apportent une innovation : on peut adapter la taille du condensat aux besoins spécifiques des applications. SHA-3 complète la famille SHA-2 en apportant une diversité architecturale qui renforce la résilience globale face aux futures avancées cryptanalytiques.

À ce jour, SHA-3 n’a pas subi d’attaque significative remettant en cause sa sécurité. Les recherches continuent pour explorer les possibilités offertes par la construction éponge, notamment pour la conception de primitives cryptographiques authentifiées. Le succès du concours SHA-3 démontre l’efficacité d’une approche ouverte et collaborative pour développer des standards cryptographiques robustes. Cette méthodologie sert désormais de modèle pour d’autres initiatives de standardisation en cryptographie.