AnalyseObjet mathématique · Glossaire
fonction de hachage
Une fonction de hachage transforme de façon déterministe un message de longueur arbitraire en une empreinte de taille fixe. Dans le cas cryptographique, elle est conçue pour rendre calculatoirement difficile la recherche d’un message à partir de son empreinte ou de deux messages distincts ayant la même empreinte, et une faible modification de l’entrée change fortement le résultat. Elle sert notamment à vérifier l’intégrité de données.
Sommaire
Ce que vous allez apprendre
- Relier un message de longueur variable à un condensé de taille fixe.
- Refaire un exemple SHA-256 sur deux messages presque identiques.
- Distinguer hachage, chiffrement, encodage et MAC.
- Repérer les collisions, les différences d'octets et les usages qui exigent un procédé spécialisé.
En clair
Prenez le message « Rendez-vous à 10 h » et faites-le passer dans SHA-256. Vous obtenez une empreinte de 64 caractères hexadécimaux. Le même message redonne toujours cette empreinte, mais remplacer le « h » final par « H » bouleverse le résultat.
Cette empreinte de taille fixe joue le rôle d'un témoin : on compare deux condensés pour détecter une modification sans confondre le condensé avec le message lui-même.
Définition
Une fonction de hachage associe à chaque message d'un domaine donné un condensé appartenant à un ensemble de taille fixe. Si l'on note m le message, h la fonction et n le nombre de bits du condensé, la relation s'écrit . La longueur de m peut varier, tandis que n est fixé par la fonction choisie.
Le déterminisme impose qu'une même suite de données produise toujours le même condensé. Pour un usage cryptographique, on recherche aussi la résistance à la préimage, la résistance à la recherche d'une seconde préimage et la résistance aux collisions. Une collision existe lorsque deux messages distincts m1 et m2 ont le même condensé : . La sensibilité aux petites modifications est appelée effet d'avalanche.
Ces résistances sont des objectifs calculatoires, non des impossibilités absolues. MD5, SHA-1, SHA-256 et SHA-3 appartiennent à la famille des fonctions cryptographiques, mais leur simple présence dans une liste ne garantit pas qu'elles offrent toutes le même niveau de sécurité.
De quoi c'est fait
Le mécanisme réunit quatre éléments. Le message est la suite de données d'entrée. La fonction fixe la règle de transformation. Le condensé est la sortie de longueur constante. Enfin, les propriétés de sécurité précisent quelles recherches doivent rester impraticables, par exemple retrouver une préimage ou construire une collision.
La fonction choisie détermine la longueur et le calcul du condensé ; le moindre changement du message peut donc changer toute l'empreinte. Le couple formé par la fonction et le message suffit à recalculer le condensé, mais celui-ci ne suffit généralement pas à reconstituer l'entrée. La couleur ou la présentation d'une empreinte ne fait pas partie de sa définition : seule compte la suite de bits, souvent affichée en hexadécimal.
Un exemple, pas à pas
On veut contrôler si le message « Rendez-vous à 10 h » a changé. Les données sont le texte exact, son encodage en octets, la fonction SHA-256 et une empreinte de référence de 256 bits, affichée par 64 caractères hexadécimaux.
1. Appliquez SHA-256 au message sans saut de ligne final.
2. Le condensé obtenu est e5be91b5ac9b24f7c705e748ae4ff7ebb4def15f3a34f8ea1ea393e64944007a.
3. Remplacez seulement le dernier « h » par « H ».
4. Le second condensé est 996c316a0479a741195b4c7d713a5e1d046a6e04ffc1b04802004dbf2169d1e6.
5. Comparez les deux chaînes : elles diffèrent largement, donc les deux entrées ne sont pas identiques.
2. Le condensé obtenu est e5be91b5ac9b24f7c705e748ae4ff7ebb4def15f3a34f8ea1ea393e64944007a.
3. Remplacez seulement le dernier « h » par « H ».
4. Le second condensé est 996c316a0479a741195b4c7d713a5e1d046a6e04ffc1b04802004dbf2169d1e6.
5. Comparez les deux chaînes : elles diffèrent largement, donc les deux entrées ne sont pas identiques.
Le contrôle est refaisable : recalculer SHA-256 sur le premier texte, avec exactement les mêmes octets, doit redonner les 64 caractères de référence. Un espace ou un saut de ligne supplémentaire constituerait déjà un autre message.
En pratique
Pour vérifier un fichier téléchargé, on recalcule son condensé puis on le compare à une empreinte obtenue par une voie fiable. Si les valeurs divergent, le fichier a changé ; une comparaison directe des fichiers reste l'alternative lorsque les deux copies sont disponibles.
Dans une signature numérique, le condensé représente le message dans l'opération de signature. Pour authentifier un message avec un secret partagé, on emploie un MAC, et non un hachage ordinaire isolé.
Pour conserver des mots de passe, une empreinte rapide destinée aux fichiers n'est pas le choix adapté. On préfère un procédé spécialisé qui ralentit les essais et associe une valeur aléatoire propre à chaque mot de passe.
À ne pas confondre
Chiffrement. Un chiffrement est conçu pour être inversé avec la clé adéquate afin de retrouver le message. Une fonction de hachage produit au contraire un condensé sans opération normale de déchiffrement.
Encodage. Un encodage change la représentation de données et se renverse selon une règle publique. Si la transformation doit restituer exactement le texte d'origine, il s'agit d'encodage, pas de hachage.
MAC. Un code d'authentification de message dépend d'une clé secrète et atteste à la fois l'intégrité et l'authenticité. Un condensé sans clé peut signaler une différence, mais un adversaire capable de modifier le message peut aussi le recalculer.
Limites et pièges
Une collision doit exister. Le nombre de messages possibles dépasse celui des condensés de taille fixe. Le symptôme n'est donc pas l'existence d'une collision, mais la possibilité d'en construire une avec des ressources réalistes. Il faut choisir une fonction dont la résistance correspond à l'usage.
Une empreinte égale n'est pas une preuve absolue d'identité. Deux entrées distinctes peuvent partager un condensé. Pour une fonction adaptée, cette éventualité doit être calculatoirement difficile à provoquer ; une exigence de preuve parfaite appelle une comparaison des données elles-mêmes.
Les octets exacts comptent. Dans l'exemple, ajouter un saut de ligne au message produit f910b4ffe1357d06076fcdaee10df45209cda9f53999a434f429c5c9ff7e3f26. Quand un résultat paraît incohérent, il faut contrôler l'encodage, les espaces et les fins de ligne avant d'accuser la fonction.
Une fonction connue n'est pas automatiquement un choix actuel. Les propriétés attendues dépendent de la fonction et de l'usage. Il faut distinguer la vérification d'intégrité, l'authentification et le stockage des mots de passe avant de sélectionner le procédé.
Pour aller plus loin
La cryptographie replace le hachage parmi les procédés qui protègent l'information et précise les objectifs de confidentialité, d'intégrité et d'authentification.
La signature numérique montre comment un condensé intervient dans un mécanisme qui relie un message à son signataire.
La notion d'algorithme aide à distinguer la règle abstraite de hachage de sa mise en œuvre calculatoire.
Explorez les mathématiques autrement
Retrouvez nos magazines, podcasts et jeux pour explorer les mathématiques autrement.
Découvrir les offres
