ANNÉES 2000

SHA-256

La fin des années 1970 marque les débuts des fonctions de hachage cryptographique. Ces algorithmes, qui transforment n'importe quelle donnée en une empreinte numérique de taille fixe, allaient devenir des briques majeures de la sécurité informatique.

En 1976, Whitfield Diffie et Martin Hellman publient leur article fondateur sur la cryptographie à clé publique. Ils y expliquent qu'une fonction de hachage à sens unique est nécessaire pour construire des signatures numériques. Les premiers travaux concrets arrivent peu après : Michael Rabin propose une conception basée sur le chiffrement DES qui produit un résultat de 64 bits. Gideon Yuval démontre qu'on peut trouver des collisions en exploitant le paradoxe des anniversaires avec une complexité de 2^(n/2). Ralph Merkle établit quant à lui les exigences de base : résistance aux collisions, aux pré-images secondaires et aux pré-images.

Les années 1980 voient fleurir de nombreuses propositions. La communauté cryptographique réalise l'importance de ces primitives pour sécuriser les communications numériques. Ivan Damgård formalise en 1987 la définition de la résistance aux collisions. Deux ans plus tard, Moni Naor et Moti Yung introduisent une variante appelée Universal One Way Hash Functions.

Au tournant des années 1990, Ronald Rivest crée MD5, une évolution de MD4 optimisée pour le logiciel. Cette fonction connaît un succès rapide : elle s'avère environ dix fois plus rapide que DES en implémentation logicielle. Surtout, MD5 échappe aux restrictions d'exportation qui pèsent sur les algorithmes de chiffrement et peut être utilisée librement.

La National Security Agency développe alors la famille SHA (Secure Hash Algorithm). Le NIST publie SHA-0 en 1993. Mais l'agence découvre une vulnérabilité deux ans plus tard et sort une version corrigée baptisée SHA-1. En 2001, face aux progrès de la cryptanalyse et à la montée en puissance des ordinateurs, la NSA conçoit la famille SHA-2. SHA-256 en fait partie.

SHA-256 produit une empreinte de 256 bits et travaille sur des mots de 32 bits. L'algorithme traite les messages par blocs de 512 bits après un padding spécifique. Le processus comprend une expansion de message et une compression itérative basée sur une fonction de Merkle-Damgård. Cette construction garantit que la sécurité de la fonction de compression s'étend à celle de la fonction de hachage complète.

Les premières fissures dans MD5 apparaissent en 1992. Den Boer et Bosselaers trouvent des collisions pour la fonction de compression. En 1996, Hans Dobbertin découvre des collisions pour MD5 avec une valeur initiale aléatoire. Ces résultats n'inquiètent pas encore vraiment la communauté.

Tout bascule en 2004. L'équipe de Xiaoyun Wang réalise une percée en perfectionnant la cryptanalyse différentielle. Leurs travaux permettent de trouver des collisions pour MD5 en quelques millisecondes. Les techniques développées par Wang réduisent considérablement la marge de sécurité de SHA-1. La communauté cryptographique se lance dans une vague de recherches.

Le 31 décembre 2008, Alexander Sotirov et son équipe frappent un grand coup. Ils créent un certificat CA malveillant qui exploite les collisions de MD5. Cette attaque permet théoriquement d'usurper l'identité de n'importe quel site web. L'industrie comprend qu'il faut abandonner MD5, malgré sa présence massive dans les systèmes existants.

Le NIST lance en novembre 2007 une compétition pour sélectionner SHA-3, un nouvel algorithme de hachage standard. L'objectif : diversifier les options disponibles et préparer le remplacement de SHA-2 si besoin. La compétition attire 64 soumissions dont 51 sont retenues pour le premier tour. En juillet 2009, 14 candidats accèdent au second tour.

Pendant ce temps, SHA-256 tient bon. Les meilleures attaques connues ne compromettent qu'un nombre limité d'étapes de l'algorithme. SHA-256 résiste aux techniques qui ont cassé MD5 et affaibli SHA-1. Cette solidité explique son adoption croissante dans de nombreux protocoles et applications de sécurité.

L'arrivée de Bitcoin en 2009 donne une dimension inattendue à SHA-256. La preuve de travail de la cryptomonnaie repose sur la recherche de collisions partielles, exploitant la résistance aux préimages de la fonction. Cette application démontre la polyvalence de SHA-256.

On retrouve aussi SHA-256 dans l'Internet des objets, les systèmes embarqués distribués, la génération de nombres aléatoires et le chiffrement de données. Cette diversification témoigne de sa maturité et de la confiance qu'il inspire.

Cette histoire montre qu'il faut toujours disposer d'alternatives fiables quand des faiblesses apparaissent dans les standards existants. Elle rappelle l'intérêt de maintenir des options standardisées. La longévité de SHA-256 prouve qu'une conception rigoureuse anticipe les évolutions de la cryptanalyse et de la puissance de calcul disponible.