Une fonction de hachage unidirectionnelle est une fonction mathématique qui génère une empreinte digitale de l'entrée, mais il n'y a aucun moyen de revenir à l'entrée d'origine. Si l'entrée est la même, le hachage est toujours le même, s'il change du tout, même d'un caractère, le hachage de sortie est complètement différent. Un hachage peut être utilisé pour vérifier que l'entrée A est identique à l'entrée B mais ne peut pas être utilisé pour récupérer l'entrée de la sortie comme avec une autre fonction mathématique, le cryptage.
Technipages explique la fonction de hachage à sens unique
La sortie d'un hachage unidirectionnel est toujours de la même longueur, quelle que soit la longueur de l'entrée. Par exemple, la sortie de l'algorithme de hachage md5 est toujours de 32 caractères s'il est représenté dans hexadécimal, cela est vrai si l'entrée fait un caractère ou la longueur de l'ensemble des œuvres de Shakespeare.
Un hachage est idéal pour vérifier que deux choses sont identiques, cela a deux utilisations principales. La « vérification d'intégrité » est utilisée pour vérifier qu'un fichier qui a été téléchargé est identique à celui sur le serveur en comparant un hachage connu du fichier du serveur à un hachage du fichier téléchargé.
Les algorithmes de hachage sont également utilisés dans les bases de données pour vérifier que le hachage du mot de passe soumis correspond au hachage stocké. Cela signifie également que si un pirate obtient un accès non autorisé à la base de données, il n'obtient pas lui-même les mots de passe mais plutôt leurs hachages qui ne peuvent pas être utilisés pour se connecter directement.
La longueur de la sortie d'un algorithme de hachage fixe des limites sur le nombre de sorties possibles et, en tant que telle, décrit sa résistance contre les « attaques par collision » de hachage. Les attaques par collision se produisent lorsque deux entrées différentes génèrent la même sortie. Il est assez difficile de trouver deux entrées aléatoires qui génèrent la même sortie, il est nettement plus difficile de trouver une collision pour une seule sortie de hachage spécifique.
Utilisations courantes de la fonction de hachage unidirectionnelle
- Il existe deux types d'algorithmes de hachage à sens unique, rapide et lent, rapide est utilisé pour la vérification des fichiers et lent pour le hachage de mot de passe.
- L'entrée d'un algorithme de hachage unidirectionnel ne peut pas être déterminée en analysant la sortie ou en l'exécutant via une autre fonction.
- Lorsqu'un pirate informatique a une liste de hachages de mots de passe à partir d'une base de données volée, il détermine quel algorithme de hachage unidirectionnel a été utilisé, puis devine comme autant de mots de passe possibles que possible, lorsqu'ils ont une sortie qui correspond à une entrée dans la base de données, ils savent que l'entrée est celle de l'utilisateur le mot de passe.
Utilisations abusives courantes de la fonction de hachage unidirectionnelle
- Un algorithme de hachage unidirectionnel est un type de cryptage et peut être utilisé pour stocker en toute sécurité des données pour une récupération ultérieure à l'aide d'un mot de passe et d'une autre fonction.