Logo Paymium
Tout savoir sur le hachage
Rédigé parTeam Paymium
Publié le

Tout savoir sur le hachage

Première publication : 29/08/2023

Dernière mise à jour : 01/06/2025

 

Le hachage : définition, propriétés et intérêt pour la blockchain

Le hachage est aujourd'hui utilisé par tous, mais reste méconnu du grand public. Indispensables dans le domaine de la sécurité informatique, les fonctions de hachage garantissent l'intégrité des transferts ainsi que le stockage des informations nécessitant un haut niveau de protection.

Elles sont utilisées pour l'authentification d'un utilisateur ou la signature électronique. Essentielles dans le domaine des cryptomonnaies pour éviter les malversations, elles garantissent aux blockchains un haut niveau de sécurité. Mais qu'est-ce que le hachage ?

Retour sur l'historique et les faiblesses des systèmes précédents, les critères indispensables à une bonne fonction de hachage et son intérêt pour la blockchain. Un point complet dans cet article.

 

Qu'est-ce que le hachage ?

Le hachage est un processus informatique et mathématique qui permet de compresser la taille des données à traiter grâce à la fonction de cryptage. Associé à des fonctions mathématiques, qui sont les « fonctions de hachage », il permet de générer, à partir d'une entrée de taille variable, un résultat de taille fixe, quelle que soit la longueur de la chaîne.

L'input , qui peut être un texte, est transformé, avec la fonction hachage, en chaînes de caractères alphanumériques, dont la longueur et la structure sont fixes. La valeur obtenue, l'output, est appelée selon le contexte, valeur de hachage, somme de contrôle, résumé de message, hash ou encore empreinte.

La fonction modulo n, qui consiste à ordonner un grand nombre de données dans un tableau de n cases, est un exemple classique. Si l'élément i est rangé dans la case n° (i modulo n), il ne sera plus nécessaire de parcourir tous les éléments pour retrouver l'élément i, mais juste de parcourir les éléments de la case n° (i modulo n) et gagner beaucoup de temps.

Il existe plusieurs fonctions de hachage, répondant à une succession d'opérations mathématiques différentes, donnant lieu à des empreintes distinctes, plus ou moins efficaces en termes de niveau de sécurité.

 

Evolution des fonctions de hachage cryptographiques : du MD4 au SH3

Le précurseur de la fonction de hachage est Donald Rivest, professeur au MIT et cryptographe, qui a inventé, au début des années 1990, la fonction de hachage MD4 (Message Digest 4) pour assurer la sécurité des données lors des transmissions électroniques, puis le MD5. S'inspirant de ces fonctions de hachage, la NSA (National Security Agency) a mis au point en 1995 un algorithme générant une chaîne de longueur fixe de 160 bits pour toute donnée en entrée, nommée SHA-1 (Secure Hash Algorithm 1).

Le SHA-1 a été utilisé pendant de nombreuses années, notamment pour le hachage des mots de passe et leur stockage. À chaque nouvelle connexion, le mot de passe est haché et comparé à celui qui a été stocké "l'empreinte numérique". La découverte de collisions successives, issues de deux messages différents produisant le même hachage, a conduit à l'abandon progressif du SHA-1.

La mise en cause de l'algorithme était préoccupante pour toutes les signatures électroniques et les transactions financières. Dès 2015, Google annonce que les certificats HTTPS utilisant le SHA-1 seront bloqués. La fin de l'utilisation du SHA-1 est définitive avec Microsoft qui le retire de tous ses produits en 2020. Le SHA-2 et le SHA-3 sont des algorithmes de hachage plus sécurisés, grâce à des tailles de sortie de 224, 256, 324 et 512 bits et d'un processus plus complexe. Le SHA-256 est à la base de la fondation de l'algorithme du bitcoin.

 

Les vulnérabilités du SHA-1 face à la sécurité informatique

 

La résistance à la collision mise en cause

Malgré les 160 bits de longueur du SHA-1 produisant un nombre important d'empreintes numériques différentes et garantissant une sécurité maximum, une première collision a été mise en évidence par des chercheurs chinois en 2005. Elle se produit lorsque, lors d'une attaque, deux messages différents peuvent produire le même résultat, ce qui peut permettre à un cybercriminel de se faire passer pour une personne ou une entité de confiance. Dès lors, le SHA-1 n'apporte plus les garanties de sécurité suffisantes pour être utilisé dans les systèmes critiques. C'est un tournant dans l'histoire de la cryptographie.

Une résistance limitée aux attaques par force brute

Une attaque par force brute vise à tester diverses combinaisons pour cracker un mot de passe, un nom d'utilisateur ou une page web cachée. L'automatisation des outils permet à un cybercriminel de rapidement enchaîner les tentatives de connexion en testant différentes combinaisons pour trouver une correspondance et accéder aux informations d'identification.

 

Les critères des fonctions de hachage

Les fonctions de hachage doivent répondre à un certain nombre de caractéristiques, pour remplir leur mission et faire face à l'avancée technologique. Le résultat obtenu doit être :

  • Efficace et immédiat, pour éviter au maximum le ralentissement du système.
  • Déterministe : à chaque input entré, il doit être invariable en toutes circonstances, quel que soit le moment, le nombre de fois ou la personne
  • Il doit résister à la préimage : pour une valeur de sortie spécifiée, il est impossible de trouver la valeur d'entrée qui a produit cette valeur, sauf à essayer une par une toutes les possibilités, ce qui est impossible ;
  • Il doit résister à la collision : deux entrées distinctes ne peuvent avoir une valeur de hachage identique ;
  • Il doit être facilement différencié : deux entrées très similaires doivent avoir des empreintes différentes, facilement différenciables.

 

L'intérêt du hachage dans la fonction blockchain

De nombreuses applications ont recours aux algorithmes de hachage, notamment cryptographiques, pour un besoin d'uniformisation de la longueur des contenus ou d'identification. Elles sont utilisées pour l'identification des mots de passe, la recherche d'informations dans les bases de données ou l'analyse de fichiers volumineux, mais aussi pour la génération de signatures électroniques.

En cryptographie, les contraintes sont plus strictes, en raison notamment de la taille des empreintes nécessaires. Les fonctions de hachage cryptographiques sont donc essentielles dans le fonctionnement des crypto-monnaies. Elles permettent de sécuriser les transferts d'informations entre plusieurs systèmes, garantissant aux blockchains l'intégrité des données et un haut niveau de sécurité. Répondant au critère de déterminisme, elles sont aussi à sens unique. Générer une sortie à partir d'une entrée est facile, l'inverse est complexe à réaliser et nécessite une importante puissance de calcul, ainsi que du temps.

Ce double critère les rend particulièrement sécurisées. Chaque crypto actif utilise des fonctions de hachage, dont les détails varient. La fonction de hachage SHA-256 est largement utilisé pour son équilibre entre temps, coûts de production et sécurité, notamment dans l'écosystème bitcoin dans deux domaines :

  • Le processus de génération de l'adresse Bitcoin via la fonction de hachage est utilisé jusqu'à 3 fois. Cela permet, entre autres, de réduire la taille de l'adresse par rapport à la clé publique dont elle provient.
  • Le minage du bitcoin : Elle est essentielle pour le mécanisme de la preuve de travail. Le minage est assuré par des personnes « les mineurs » qui mettent leur puissance de calcul au service du bitcoin, pour vérifier et valider les transactions. En préalable au minage, le mineur insère dans le nouveau bloc l'empreinte SHA-256 du bloc précédent ainsi que l'empreinte de la somme des empreintes des transactions effectuées. Cela permet de s'assurer du bon ordre des blocs et de la présence de l'ensemble des transactions.

Toute modification sur le réseau nécessite de modifier l'ensemble des blocs et des hashs correspondants. Pour valider le bloc, le mineur doit trouver l'empreinte correspondante, déterminée en fonction des valeurs numériques associées aux lettres et chiffres la composant.

Pour cela, il doit choisir un nonce, chaîne de caractères, choisi aléatoirement dont l'empreinte est calculée. Ce processus permet de varier les données d'entrée du hachage cryptographique et d'en augmenter le caractère aléatoire. Pour trouver le hash valide correspondant à la solution mathématique et valider le bloc, le mineur doit procéder à des centaines, voire des millions de hachages. Le processus de mining est répétitif et nécessite une puissance de calcul élevée. Le hachage est fondamental pour l'intégralité du processus de la blockchain : constitution, création des blocs et de liens cryptographiques pour les relier entre eux. Il est à la base de la preuve de travail : grâce à la production de hash de transactions et à la validation, la blockchain apparaît comme inaltérable.

Mixer plusieurs fonctions de hachage, ayant des propriétés différentes est possible, pour les cryptomonnaies : système hexadécimal, longueur de chaîne.. Par exemple, la fonction Scrypt est utilisée par Litecoin pour le minage et SHA-256 pour la création d'adresses.

Les fonctions de hachage jouant un rôle essentiel dans le bon fonctionnement des crypto-monnaies, il est donc indispensable de connaître la fonction qui régit les cryptos actifs dans lesquels vous souhaitez investir et vérifier si la version est la plus récente. Si la fonction SHA-256 paraît sécurisée aujourd'hui, elle n'est pas la seule et de nombreux cryptographes étudient des solutions alternatives, en termes de rapidité et de sécurité. La fonction SHA-3, appelée Keccak, est aujourd'hui utilisée par Ethereum.

 


 

FAQ

Qu'est-ce que le hachage et comment cela fonctionne-t-il ?

C'est un procédé mathématique qui prend n'importe quelle donnée en entrée (un mot, un texte ou un fichier entier) et la compresse en une signature numérique unique de taille fixe, appelée un "hash". Peu importe que vous y entriez un seul mot ou l'encyclopédie universelle, le résultat affichera toujours le même nombre de caractères. C’est un outil "déterministe" : une même donnée donnera toujours exactement le même hash, mais si vous changez une seule minuscule par une majuscule, l'empreinte finale devient totalement différente.

Pourquoi les anciennes fonctions comme le SHA-1 ont-elles été abandonnées ?

Le SHA-1 a été retiré des systèmes de sécurité mondiaux (notamment par Google et Microsoft) car il est devenu vulnérable aux "collisions". Une collision se produit lorsque deux données d'entrée totalement différentes réussissent à générer par accident le même hash. Pour les cybercriminels, c’était une faille idéale pour falsifier des signatures électroniques ou pirater des mots de passe. C'est pourquoi la sécurité informatique s'est tournée vers des algorithmes bien plus complexes et robustes, comme le SHA-256 ou le SHA-3.

Comment le hachage garantit-il que personne ne peut modifier l'historique de la blockchain ?

Chaque fois qu'un nouveau bloc de transactions est créé sur Bitcoin, il intègre à l'intérieur de son propre code le hash (l'empreinte) du bloc précédent. Cela crée une chaîne mathématique indissociable. Si un fraudeur tentait de modifier une seule transaction passée, le hash de ce bloc changerait instantanément. Par effet domino, tous les hashs des blocs suivants deviendraient faux, alertant immédiatement le réseau. Pour tricher, il faudrait recalculer tous les blocs de la blockchain, ce qui requiert une puissance de calcul impossible à posséder.

Quel est le rôle du hachage dans le travail des mineurs de Bitcoin ?

Le hachage est le cœur du mécanisme de sécurisation (la preuve de travail). Pour valider un bloc, les ordinateurs des mineurs doivent exécuter des millions de fonctions de hachage SHA-256 à la chaîne pour tenter de résoudre une énigme mathématique. Ils combinent les données des transactions avec un nombre aléatoire (le nonce) jusqu'à trouver un hash spécifique qui valide le bloc. C’est ce travail de hachage répétitif et intensif qui rend le réseau Bitcoin inaltérable et sécurisé.

Toutes les cryptomonnaies utilisent-elles la même méthode de hachage ?

Non, chaque écosystème choisit la fonction de hachage qui correspond le mieux à ses objectifs de rapidité, de coût et de sécurité. Si Bitcoin repose sur le SHA-256, Ethereum utilise le SHA-3 (Keccak), tandis que d'autres comme Litecoin combinent plusieurs méthodes en utilisant Scrypt pour le minage et le SHA-256 pour la création de ses adresses.

Team PaymiumEditorial team, Paymium
Voir tous les articles
Analyse et évolution du cours du Bitcoin
Décryptage

Analyse et évolution du cours du Bitcoin

La valeur d’un bitcoin fluctue quotidiennement, selon plusieurs paramètres. En tant qu’investisseur, analysez régulièrement le cours du BTC !

par Team Paymium
5 min
Comment Bitcoin peut-il bénéficier aux pays en développement ?
Décryptage

Comment Bitcoin peut-il bénéficier aux pays en développement ?

Bitcoin et les crypto-monnaies en général peuvent offrir des avantages potentiels aux pays en développement de plusieurs façons. Dans cet article, nous examinerons en détail les différentes façons dont Bitcoin peut bénéficier aux pays en développement.

par Team Paymium
6 min
Open source et Bitcoin, quels liens entre les deux ?
Décryptage

Open source et Bitcoin, quels liens entre les deux ?

Qu'est-ce que l'open source et quels liens existent-ils entre open source et bitcoin ? Suivez le guide

par Team Paymium
12 min
Le Bitcoin explorer, une plateforme pour explorer les blocs BTC
Décryptage

Le Bitcoin explorer, une plateforme pour explorer les blocs BTC

Les Bitcoin explorers permettent de lire l’historique des blocs de Bitcoin et les détails des transactions. Découvrez leurs caractéristiques.

par Team Paymium
6 min
Clé publique et clé privée : tout savoir sur la cryptographie asymétrique
Décryptage

Clé publique et clé privée : tout savoir sur la cryptographie asymétrique

Clé publique et clé privée sont les deux clés associés à la cryptographie asymétrique. Elles sont indispensables pour la blockchain.

par Team Paymium
7 min
Le Bitcoin node : quels rôles au sein de la Blockchain Bitcoin ?
Décryptage

Le Bitcoin node : quels rôles au sein de la Blockchain Bitcoin ?

Le Bitcoin node sert de relais aux informations circulant sur le réseau Bitcoin. Il participe à la décentralisation et à la sécurité de la Blockchain.

par Team Paymium
9 min