C’est quoi le hachage ?
Le hachage est le processus de transformation d’une clé donnée ou d’une série de caractères en une autre valeur. Celle-ci est généralement représentée par une valeur ou une clé plus courte, de longueur fixe, afin de faciliter la recherche et l’utilisation de la chaîne de caractères d’origine.
Le hachage se rapporte notamment à l’indexation des données, à la cryptographie ainsi qu’à la sécurité des mots de passe.
Hachage vs. chiffrement : quelle est la différence ?
Les termes de hachage (ou hashing) et de chiffrement sont souvent utilisés de manière interchangeable. Néanmoins, le hachage se réfère toujours à une forme de chiffrement à sens unique, de sorte qu’il n’est pas possible de déchiffrer une valeur en utilisant le même algorithme.
Qu’est-ce que la fonction de hachage ?
La fonction de hachage génère de nouvelles valeurs en se basant sur un algorithme mathématique. Celui-ci fonctionne à sens unique afin d’éviter que ces nouvelles valeurs ne soient reconverties dans les clés d’origine.
En d’autres termes, la fonction de hachage est chargée de calculer une signature unique à partir de la clé d’entrée. La même valeur d’entrée donnera toujours la même valeur de sortie. Par ailleurs, la longueur et la complexité de la valeur de hachage dépendent de l’algorithme de hachage utilisé.
À quoi sert le hachage ?
Le hachage peut servir différentes fonctions, allant de l’indexation des données à la cybersécurité. Voici quelques exemples d’applications parmi les plus courantes.
Récupération de données
Le hachage utilise des fonctions ou des algorithmes pour faire correspondre les données d’un objet à une valeur représentative. Lorsque quelqu’un recherche un élément dans une carte de données, le hachage permet ainsi d’affiner la recherche en générant des valeurs plus courtes et faciles à retrouver.
Par exemple, un développeur peut stocker les données contenues dans une base de données client sous forme de paires clé-valeur au sein d’une table de hachage, afin de retrouver et d’extraire plus facilement les informations dont il a besoin.
Signatures numériques
Le hachage permet également de chiffrer et déchiffrer les signatures numériques, aussi appelées empreintes, utilisées pour authentifier les expéditeurs et les destinataires de messages. La fonction de hachage se charge alors de créer une nouvelle signature (également appelée résumé de message), avant d’envoyer ces deux éléments séparément au destinataire.
À la réception du message, la fonction de hachage compare les deux signatures transmises afin de s’assurer que les deux valeurs sont identiques.
Sécurité des mots de passe
Le hachage de mot de passe est fréquemment utilisé pour protéger les mots de passe des utilisateurs en les rendant indéchiffrables, comme dans le cas d’un gestionnaire de mots de passe. Grâce au hachage, seule la personne possédant la clé de décryptage est en mesure de reconvertir la valeur hachée vers le mot de passe d’origine.
La fonction de hachage associe chaque clé à une valeur par le biais d’un procédé appelé table de hachage. Détaillons maintenant en quoi consiste cette méthode.
Qu’est-ce qu’une table de hachage
Une table de hachage répertorie l’ensemble des paires clé-valeur au sein d’une liste accessible via son index. Cela permet à la fonction de hachage de retrouver facilement la valeur correspondant à une clé donnée. Cette valeur de hachage devient alors l’index d’un élément spécifique.
Les paires de clés et de valeurs étant illimitées, la fonction de hachage adapte (ou “mappe”) les clés selon la taille de la table de hachage.
Fonctions de hachage populaires
Les algorithmes de hachage les plus couramment utilisés sont les suivants :
- SHA-1 (Secure Hash Algorithm 1) ;
- SHA-2 ;
- SHA-3 ;
- MD4 (Message Digest 4) ;
- MD5.
La fonction MD5 est toujours très répandue. Cependant, des failles de sécurité sous la forme de séries de collision ont été trouvées, il est donc recommandé de passer à un algorithme de hachage plus robuste.
SHA-3 est la version la plus récente de l’algorithme SHA et présente actuellement le plus haut niveau de sécurité.
Qu’est-ce qu’une collision ?
Il se peut que deux clés différentes génèrent la même valeur de hachage : ce phénomène est appelé collision.
Une bonne fonction de hachage ne produit jamais la même valeur à partir de deux entrées différentes. Ainsi, seule une fonction de hachage possédant un risque infime de collision est considérée comme acceptable.
L’adressage ouvert et le chaînage séparé sont deux façons de traiter les collisions lorsqu’elles se produisent. L’adressage ouvert gère les collisions en stockant toutes les données dans la table de hachage elle-même, puis en recherchant la disponibilité dans le prochain emplacement créé par l’algorithme.
Le chaînage séparé, en revanche, évite les collisions en faisant en sorte que chaque cellule de la table de hachage pointe vers des listes liées d’enregistrements ayant des valeurs de fonction de hachage identiques.
Hachage et blockchain
Le hachage est utilisé dans le cadre de la technologie blockchain, et notamment dans l’univers de la crypto-monnaie, pour vérifier l’intégrité d’une série de données. Ce procédé assure ainsi que les transactions enregistrées sur la blockchain sont immuables.
Chaque transaction effectuée génère un nouveau bloc de données, sur lequel est appliquée une fonction de hachage, créant une valeur hash unique. Dans le cas de la blockchain, des nombres uniques appelés nonces sont également ajoutés afin d’empêcher les attaques par rejeu (replay attacks) et de protéger l’intégrité des transactions.
Les fonctions de hachage entrent ainsi en jeu de différentes manières tout au long du cycle continu qu’est la blockchain.
Hachage et cybersécurité
De nombreux procédés de chiffrement utilisent un algorithme de hachage à sens unique pour renforcer la cybersécurité.
L’utilisation du hachage permet notamment de ne pas conserver les mots de passe en clair dans une base de données, mais de les chiffrer et de n’en conserver qu’une empreinte.
Sans la clé de déchiffrement nécessaire, les informations récupérées par les pirates informatiques sont inutilisables. En piratant une base de données, au lieu de trouver des données en clair qui pourraient être facilement exploitées ou vendues sur le darknet, les hackers ne trouveront que des valeurs alphanumériques telles que “h67e5” qui ne leur seront d’aucune utilité.
Les fonctions de hachage sont ainsi particulièrement utiles pour chiffrer les données personnelles telles que les numéros de sécurité sociale, les informations de carte de crédit ou les mots de passe.
Le hachage peut également être utilisé pour analyser ou empêcher la falsification de fichiers. En effet, chaque fichier original génère un hachage et le stocke dans les données du fichier. Lorsqu’un destinataire reçoit le fichier et la valeur de hachage ensemble, il peut vérifier cette dernière pour déterminer si le fichier a été compromis. Si quelqu’un a manipulé le fichier en transit, le hachage reflétera ce changement.
Chiffrez vos données et profitez de l’ultime sécurité en ligne avec NordVPN.