Imaginez que vous puissiez prendre n'importe quelle donnée — un seul mot, un roman entier, une vidéo de 4 Go — et la réduire à une courte chaîne de caractères de longueur fixe qui l'identifie de manière unique. Changez une seule virgule dans l'original et cette chaîne devient complètement différente. Et il est impossible d'inverser le processus pour retrouver la donnée d'origine.
C'est exactement ce que fait une fonction de hachage cryptographique. C'est l'une des briques fondamentales de la sécurité moderne, et elle protège silencieusement presque tout ce que vous faites en ligne.
La métaphore de l'empreinte digitale
Un hash fonctionne comme une empreinte digitale numérique. Votre empreinte vous identifie de manière unique, mais personne ne peut reconstituer votre visage à partir d'elle. De la même façon, un hash cryptographique identifie une donnée sans révéler son contenu.
Passez n'importe quelle entrée dans une fonction de hachage et vous obtenez un condensé (aussi appelé empreinte, hash ou checksum) — une chaîne de caractères hexadécimaux de longueur fixe. SHA-256, l'un des algorithmes les plus courants, produit toujours une sortie de 64 caractères, quelle que soit la taille de l'entrée.
| Entrée | Condensé SHA-256 (16 premiers car.) |
|---|---|
Bonjour |
3863ebc18eef346b... |
bonjour |
2d282102fa6711b7... |
| Tout le contenu de Wikipédia | (toujours 64 caractères) |
Les quatre propriétés essentielles
Une fonction n'est qualifiée de hachage cryptographique que si elle satisfait ces propriétés :
- Déterministe. La même entrée produit toujours la même sortie, sur n'importe quelle machine, à n'importe quel moment.
- Irréversible (résistance à la pré-image). À partir d'un hash, il est impossible de retrouver l'entrée d'origine. On ne peut pas « déhacher » une donnée.
- Résistante aux collisions. Il est pratiquement impossible de trouver deux entrées différentes qui produisent le même condensé. Pour SHA-256, la probabilité d'une collision accidentelle est d'environ 1 sur 2^128 — un nombre supérieur au nombre d'atomes dans l'univers observable.
- Effet avalanche. Modifier un seul bit dans l'entrée change environ la moitié des bits de la sortie. Il n'y a aucune corrélation détectable entre des entrées similaires.
Distinction clé : Le hachage n'est pas du chiffrement. Le chiffrement est réversible avec une clé ; le hachage est délibérément irréversible. On chiffre des données pour les protéger pendant le transport. On hache des données pour vérifier leur intégrité ou stocker une preuve sans conserver l'original.
Les algorithmes de hachage courants
MD5 (1991)
- Sortie : 128 bits (32 caractères hexadécimaux)
- Statut : Cassé. Des chercheurs peuvent générer des collisions en quelques secondes sur un ordinateur portable.
- Encore utilisé pour : Les sommes de contrôle non sécuritaires et les systèmes hérités.
SHA-1 (1995)
- Sortie : 160 bits (40 caractères hexadécimaux)
- Statut : Obsolète pour la sécurité. Google a démontré une collision pratique en 2017 (l'attaque « SHAttered »).
- Encore utilisé pour : Les anciens dépôts Git, certains certificats hérités.
SHA-256 (2001)
- Sortie : 256 bits (64 caractères hexadécimaux)
- Statut : Standard actuel. Aucune attaque pratique connue.
- Utilisé dans : Les certificats TLS, Bitcoin, le stockage de mots de passe, les signatures numériques, la vérification d'intégrité.
SHA-3 (2015)
- Sortie : Variable (couramment 256 bits)
- Statut : Dernier standard, basé sur une conception interne entièrement différente (construction en éponge Keccak) de la famille SHA-2.
- Utilisé dans : Les systèmes tournés vers l'avenir, Ethereum, les situations nécessitant une diversité algorithmique.
| Algorithme | Taille de sortie | Sûr ? | Vitesse |
|---|---|---|---|
| MD5 | 128 bits | Non | Très rapide |
| SHA-1 | 160 bits | Non | Rapide |
| SHA-256 | 256 bits | Oui | Modérée |
| SHA-3-256 | 256 bits | Oui | Modérée |
Où le hachage cryptographique est utilisé
Stockage des mots de passe
Quand vous créez un compte, un système bien conçu ne stocke jamais votre mot de passe en clair. Il stocke son hash. Quand vous vous connectez, le système hache ce que vous tapez et compare le résultat à la valeur stockée. Même en cas de fuite de la base de données, les attaquants n'obtiennent que des hashs — pas des mots de passe.
Les systèmes modernes vont plus loin en ajoutant un sel aléatoire (données supplémentaires ajoutées avant le hachage) et en utilisant des algorithmes volontairement lents comme bcrypt, scrypt ou Argon2 pour rendre le forçage brut impraticable.
Vérification de l'intégrité des fichiers
Les éditeurs de logiciels publient des sommes de contrôle SHA-256 avec leurs téléchargements. Après le téléchargement, vous calculez le hash du fichier sur votre machine et comparez. Une correspondance prouve que le fichier n'a pas été corrompu ni altéré pendant le transfert.
Signatures numériques
Quand vous signez numériquement un document, le système hache d'abord le document, puis chiffre le hash avec votre clé privée. Le destinataire le déchiffre avec votre clé publique et le compare à son propre hash du document. C'est bien plus efficace que de chiffrer tout le document, et cela prouve à la fois l'authenticité et l'intégrité.
Blockchain
Chaque bloc d'une blockchain contient le hash du bloc précédent, créant une chaîne immuable. Modifier une transaction passée change le hash de son bloc, ce qui brise la chaîne à partir de ce point, rendant toute falsification immédiatement visible.
Pourquoi MD5 et SHA-1 sont considérés comme cassés
Un algorithme de hachage est « cassé » lorsque quelqu'un peut délibérément créer deux entrées différentes qui produisent le même hash (une collision). Cela compromet tous les cas d'usage qui reposent sur l'unicité.
- MD5 : Des collisions peuvent être générées en quelques secondes. Des chercheurs ont créé deux fichiers PDF différents avec des hashs MD5 identiques.
- SHA-1 : L'attaque SHAttered de 2017 a produit deux PDF différents avec le même hash SHA-1, nécessitant environ 6 500 ans de calcul sur un seul processeur (réalisable avec des ressources cloud).
Règle pratique : N'utilisez jamais MD5 ou SHA-1 pour quoi que ce soit lié à la sécurité — mots de passe, certificats, signatures numériques ou vérifications d'intégrité face à un adversaire. Utilisez SHA-256 ou SHA-3 à la place.
Pour aller plus loin
Le hachage est un concept qui devient intuitif dès que l'on expérimente. Essayez de hacher une phrase, puis changez un seul caractère et observez l'effet avalanche par vous-même.
- Comment générer et vérifier des hashs — tutoriel pas à pas
- Générateur de hash — calculez SHA-256, MD5, SHA-512 et plus, instantanément dans votre navigateur
- Identifieur de hash — collez un hash inconnu et identifiez son algorithme