Commencer gratuitement
KZero Staff / 3 min de lecture / 27 juill. 2023

Définition des fonctions de hachage

Que sont les fonctions de hachage ?

Les fonctions de hachage sont des algorithmes cryptographiques couramment utilisés pour assurer l'intégrité des données, et non leur confidentialité. Elles peuvent prendre n'importe quelle entrée et la convertir en une sortie de taille fixe au moyen d'une fonction à sens unique. Les fonctions de hachage sont déterministes, ce qui signifie que hacher la même entrée produit toujours la même sortie, mais il est irréalisable de déterminer l'entrée qui a produit une sortie donnée.

Les fonctions de hachage ont de nombreuses applications possibles. Elles servent à l'intégrité des données, à l'indexation et font partie des algorithmes de signature numérique. Parmi les exemples de fonctions de hachage bien connues, on trouve SHA-256, SHA-1 et MD5, dont seule SHA-256 est considérée comme pleinement sécurisée.

Caractéristiques déterminantes des algorithmes de hachage

Les algorithmes de hachage diffèrent des algorithmes de chiffrement parce qu'ils ne comportent pas de clés secrètes; n'importe qui peut calculer le hachage d'une donnée. De plus, les fonctions de hachage sont irréversibles, elles servent donc à assurer l'intégrité des données plutôt que leur confidentialité. Parmi les caractéristiques déterminantes des fonctions de hachage, on trouve :

  • Déterminisme : hacher la même entrée produira toujours la même sortie. Les fonctions de hachage n'intègrent aucun aléa.
  • Sorties de longueur fixe : une fonction de hachage produit toujours des sorties d'une longueur donnée. Par exemple, la fonction de hachage SHA-256 produit des hachages de 256 bits.
  • Fonctions à sens unique : les fonctions de hachage sont des fonctions à sens unique. Il est irréalisable sur le plan computationnel de déterminer l'entrée qui a produit une sortie particulière.
  • Résistance aux collisions : une collision de fonction de hachage désigne deux entrées qui produisent les mêmes sorties. Bien que l'existence de collisions soit garantie, il devrait être irréalisable d'en trouver une pour une fonction de hachage sécurisée.

Applications courantes des fonctions de hachage

Les fonctions de hachage sont des fonctions à sens unique, résistantes aux collisions, qui produisent des sorties de taille fixe. Ces caractéristiques les rendent utiles pour une variété d'applications, dont les suivantes :

  • Intégrité des données : modifier un seul bit d'une valeur hachée change radicalement son hachage, et il est irréalisable de trouver deux entrées qui produisent la même sortie. Comparer le hachage d'un fichier à un hachage stocké peut aider à repérer toute modification.
  • Stockage des mots de passe : les informations de mot de passe sont couramment stockées sous forme de hachages, qui sont comparés au hachage du mot de passe fourni par l'utilisateur lors de l'authentification. En stockant des hachages plutôt que des mots de passe, on protège les mots de passe contre les brèches ou les abus potentiels.
  • Tables de hachage : les tables de hachage utilisent des fonctions de hachage pour faciliter la récupération rapide des données. La résistance aux collisions des fonctions de hachage permet d'organiser les données en compartiments avec peu de risque que plusieurs données se retrouvent dans le même compartiment.
  • Signatures numériques : les signatures numériques utilisent des fonctions de hachage pour résumer les données. Le hachage du message signé est signé au moyen d'une clé privée afin de créer une signature vérifiable.
  • Chaîne de blocs : la technologie des chaînes de blocs fait un usage intensif des fonctions de hachage. Par exemple, les blocs d'une chaîne de blocs contiennent le hachage du bloc précédent — ce qui contribue à assurer l'immuabilité — et l'algorithme de consensus par preuve de travail (PoW) repose sur les fonctions de hachage.

Conclusion

Les fonctions de hachage sont des algorithmes cryptographiques à sens unique et résistants aux collisions. Elles peuvent servir à de nombreuses applications, comme l'intégrité des données, les tables de hachage, les chaînes de blocs et les signatures numériques. Les fonctions de hachage sont utiles pour ces applications parce qu'elles produisent des sorties déterministes de taille fixe et qu'il est irréalisable de déterminer quelle entrée a produit une sortie particulière.

L'équipe KZero



Explorez d'autres contenus enrichissants de l'équipe compétente de KZero dans nos sections blogue et guides.