Comparaison des algorithmes de hachage : MD5, SHA-1, SHA-256 et au-delĂ
Les fonctions de hachage cryptographiques sont fondamentales pour l'informatique moderne. Elles vérifient l'intégrité des fichiers, sécurisent les mots de passe, authentifient les messages et sous-tendent la technologie blockchain. Mais tous les algorithmes de hachage ne se valent pas. Ce guide compare les algorithmes les plus utilisés et vous aide à choisir le bon.
Qu'est-ce qu'une fonction de hachage ?
Une fonction de hachage prend une entrée de n'importe quelle taille et produit une sortie de longueur fixe (le « condensé » ou « hash »). Les bonnes fonctions de hachage ont trois propriétés clés :
- DĂ©terministe : La mĂȘme entrĂ©e produit toujours la mĂȘme sortie
- Effet avalanche : Un changement minime en entrée modifie complÚtement la sortie
- Sens unique : Il est informatiquement irréalisable de retrouver l'entrée à partir du hash
Ces propriétés rendent les hachages inestimables pour la vérification de l'intégrité des données et les applications de sécurité.
Comparaison des algorithmes
| Algorithme | Taille de sortie | Vitesse | Ătat de sĂ©curitĂ© | Utiliser aujourd'hui ? |
|---|---|---|---|---|
| MD5 | 128 bits | TrÚs rapide | Cassé | Sommes de contrÎle uniquement |
| SHA-1 | 160 bits | Rapide | Cassé | Non |
| SHA-256 | 256 bits | Modérée | Sûr | Oui |
| SHA-384 | 384 bits | Modérée | Sûr | Oui |
| SHA-512 | 512 bits | Rapide en 64 bits | Sûr | Oui |
| SHA-3-256 | 256 bits | Modérée | Sûr | Oui |
| BLAKE2b | 256-512 bits | TrÚs rapide | Sûr | Oui |
| BLAKE3 | 256 bits | ExtrĂȘmement rapide | SĂ»r | Oui |
MD5 : le standard cassé
MD5 a été conçu par Ronald Rivest en 1991, produisant un hash de 128 bits. Pendant plus d'une décennie, c'était le choix par défaut pour les sommes de contrÎle et la vérification d'intégrité.
Pourquoi MD5 est cassĂ© : En 2004, des chercheurs ont dĂ©montrĂ© des attaques par collision pratiques â trouver deux entrĂ©es diffĂ©rentes qui produisent le mĂȘme hash. En 2008, des chercheurs ont créé un faux certificat CA en utilisant des collisions MD5. Aujourd'hui, des collisions peuvent ĂȘtre trouvĂ©es en quelques secondes sur du matĂ©riel grand public.
Quand MD5 est encore acceptable : Les sommes de contrÎle non liées à la sécurité, comme la vérification de téléchargements de fichiers lorsque la falsification n'est pas une préoccupation. Pour tout ce qui est lié à la sécurité, évitez MD5 entiÚrement.
SHA-1 : obsolĂšte mais persistant
SHA-1, conçu par la NSA et publié en 1995, produit un hash de 160 bits. Il a remplacé MD5 comme standard pendant de nombreuses années.
Pourquoi SHA-1 est cassé : Google et CWI Amsterdam ont démontré une collision pratique en 2017 (l'attaque « SHAttered »). Les principaux navigateurs ont abandonné la prise en charge des certificats SHA-1 en 2017. Git utilisait à l'origine SHA-1 pour les hash de commits et est en transition vers SHA-256.
Ătat actuel : ObsolĂšte pour tous les usages de sĂ©curitĂ©. Si vous rencontrez SHA-1 dans des systĂšmes hĂ©ritĂ©s, planifiez un chemin de migration vers SHA-256 ou SHA-3.
SHA-256 : le standard actuel
SHA-256 appartient à la famille SHA-2, conçue par la NSA et publiée en 2001. Il produit un hash de 256 bits et est l'algorithme de hachage sécurisé le plus utilisé aujourd'hui.
Sécurité : Aucune attaque pratique n'a été trouvée contre SHA-256. Il fournit 128 bits de résistance aux collisions, ce qui est considéré comme suffisant pour l'avenir prévisible.
Performance : SHA-256 est plus lent que MD5 et SHA-1, ce qui est en fait un avantage lorsqu'il est utilisé pour le hachage de mots de passe (plus lent = plus difficile à forcer par force brute). Sur les CPU modernes avec accélération matérielle (instructions SHA-NI), la performance est excellente.
OĂč SHA-256 est utilisĂ© :
- Certificats TLS/SSL
- Minage de Bitcoin
- Signatures numériques
- Signature de code
- Vérification de l'intégrité des fichiers
Générez des hachages SHA-256 instantanément avec notre Générateur de hash.
SHA-3 : le standard alternatif
SHA-3, basé sur l'algorithme Keccak, a remporté le concours de fonctions de hachage du NIST en 2012. Il utilise une structure interne complÚtement différente (construction en éponge) de celle de SHA-2.
Pourquoi SHA-3 est important : Si une percée mathématique compromet SHA-2, SHA-3 fournit une alternative complÚtement indépendante. Sa conception différente signifie qu'une vulnérabilité dans SHA-2 est peu susceptible d'affecter SHA-3.
Adoption : L'adoption de SHA-3 a été plus lente que prévu car SHA-2 reste intact. Il est de plus en plus utilisé dans les applications blockchain et comme hash secondaire dans les architectures de défense en profondeur.
BLAKE2 et BLAKE3 : les champions de la vitesse
BLAKE2 (2012) et BLAKE3 (2020) sont des fonctions de hachage modernes conçues pour la performance sans compromettre la sécurité.
Points forts de BLAKE3 :
- Plus rapide que MD5 sur les CPU modernes
- IntrinsĂšquement parallĂšle (s'adapte aux cĆurs du CPU)
- Sortie de 256 bits
- Prise en charge intégrée du hachage à clé et de la dérivation de clé
Pour les applications oĂč la vitesse est critique et oĂč vous n'ĂȘtes pas contraint par les standards NIST, BLAKE3 est un excellent choix.
Choisir le bon algorithme
Pour le hachage de mots de passe
N'utilisez pas directement l'un des algorithmes ci-dessus. Utilisez des fonctions de hachage de mots de passe dédiées : Argon2id (gagnant du Password Hashing Competition), bcrypt ou scrypt. Celles-ci sont intentionnellement lentes et gourmandes en mémoire pour résister aux attaques par force brute. En savoir plus dans notre guide de sécurité des mots de passe.
Pour l'intégrité des fichiers
SHA-256 est le choix standard. Si la performance est critique et que vous contrÎlez les deux extrémités, BLAKE3 est plus rapide tout en restant sûr.
Pour les signatures numériques
SHA-256 ou SHA-384, selon le niveau de sécurité requis. Les applications gouvernementales et financiÚres imposent souvent SHA-384 ou SHA-512.
Pour les sommes de contrÎle (non sécuritaires)
CRC32 ou xxHash pour la vitesse lorsque la sécurité n'est pas une préoccupation. Si vous avez besoin d'une garantie cryptographique, SHA-256 est le minimum.
Pour les applications blockchain
SHA-256 (Bitcoin), Keccak-256 (Ethereum) ou BLAKE2b (Zcash). Le choix dépend souvent des exigences spécifiques du protocole.
Les collisions de hachage expliquées
Une collision se produit lorsque deux entrĂ©es diffĂ©rentes produisent la mĂȘme sortie de hachage. Le paradoxe des anniversaires signifie que les collisions sont trouvĂ©es beaucoup plus rapidement que vous ne le penseriez :
- Pour un hash de 128 bits (MD5), une collision nécessite environ 2^64 opérations
- Pour un hash de 256 bits (SHA-256), une collision nécessite environ 2^128 opérations
Cette différence exponentielle explique pourquoi doubler la longueur du hash offre bien plus que le double de la sécurité.
Exemple pratique
Voici comment la mĂȘme entrĂ©e apparaĂźt selon diffĂ©rents algorithmes :
Input: "Hello, World!"
MD5: 65a8e27d8879283831b664bd8b7f0ad4
SHA-1: 0a0a9f2a6772942557ab5355d76af442f8f65e01
SHA-256: dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f
Essayez de les gĂ©nĂ©rer vous-mĂȘme avec notre GĂ©nĂ©rateur de hash. Tout le calcul se fait dans votre navigateur â vos donnĂ©es restent privĂ©es.
FAQ
SHA-256 est-il résistant au quantique ?
SHA-256 est partiellement résistant aux attaques quantiques. L'algorithme de Grover pourrait réduire la sécurité effective de 256 bits à 128 bits pour les attaques par préimage, ce qui est toujours considéré comme sûr. Pour la résistance aux collisions, les ordinateurs quantiques offrent moins d'avantage. Les standards de cryptographie post-quantique se concentrent davantage sur le chiffrement et les signatures que sur les fonctions de hachage.
Devrais-je utiliser SHA-512 au lieu de SHA-256 pour plus de sécurité ?
Pour la plupart des applications, SHA-256 offre une sĂ©curitĂ© suffisante. SHA-512 est en fait plus rapide sur les processeurs 64 bits en raison de sa structure interne, donc il peut ĂȘtre un bon choix pour des raisons de performance. La longueur de hash supplĂ©mentaire fournit une rĂ©sistance aux collisions additionnelle mais est rarement le facteur dĂ©terminant.
Ressources connexes
- GĂ©nĂ©rateur de hash â GĂ©nĂ©rez des hachages MD5, SHA-1, SHA-256 et SHA-512 en ligne
- Guide de sĂ©curitĂ© des mots de passe â Meilleures pratiques pour crĂ©er et stocker des mots de passe
- Les tokens JWT expliquĂ©s â Comment les algorithmes de hachage sĂ©curisent les JSON Web Tokens