Qu'est-ce que le hachage?
Accueil
Articles
Qu'est-ce que le hachage?

Qu'est-ce que le hachage?

Avancé
Publié le Jul 29, 2019Mis à jour le Jan 31, 2023
7m
Le hachage fait référence au processus de génération d'une sortie de taille fixe à partir d'une entrée de taille variable. Un tel procédé est acompli au travers de l'utilisation de formules mathématiques connues en tant que fonctions de hachage (implémentées en tant qu'algorithmes de hachage). 
Bien que toutes les fonctions de hachage n'incluent pas systĂ©matiquement l'utilisation de la cryptographie, les fonctions de hachage cryptographiques sont au cƓur des crypto-monnaies. GrĂące Ă  ces fonctions, les blockchains et d'autres types de systĂšmes distribuĂ©s sont en mesure d'atteindre des niveaux significatifs d'intĂ©gritĂ© des donnĂ©es et de sĂ©curitĂ©.

Les fonctions de hachage conventionnelles et cryptographiques sont dĂ©terministes. Cela signifie que tant que l'entrĂ©e ne change pas, l'algorithme de hachage produira toujours la mĂȘme sortie (aussi connue sous le nom de hachage ou d'empreinte).

En gĂ©nĂ©ral, les algorithmes de hachage des crypto-monnaies sont conçus comme des fonctions Ă  sens unique, ce qui signifie qu'ils ne peuvent ĂȘtre facilement rĂ©voquĂ©s sans de grandes quantitĂ©s de temps et de ressources informatiques. En d'autres termes, il est assez facile de crĂ©er une sortie Ă  partir d'une entrĂ©e, mais relativement difficile d'aller dans la direction opposĂ©e (pour gĂ©nĂ©rer l'entrĂ©e Ă  partir de la sortie seule). Globalement, plus il est difficile de trouver l'entrĂ©e, plus l'algorithme de hachage est considĂ©rĂ© comme sĂ»r.


Comment fonctionne une fonction de hachage ?

Différentes fonctions de hachage produiront des sorties de tailles différentes, mais les tailles de sortie possibles propres à chaque algorithme de hachage sont toujours constantes. Par exemple, l'algorithme SHA-256 ne peut produire que des sorties de 256 bits, tandis que le SHA-1 génÚrera toujours une empreinte de 160 bits.

Pour illustrer, appliquons une fonction de hachage SHA-256 (utilisé pour Bitcoin) aux mots Binance et binance.

SHA-256

Entrée

Sortie (256 bits)

Binance

f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191

binance

59bba357145ca539dcd1ac957abc1ec58339ddcae7f5e8b5da0c36624784b2


Notez comme un changement mineur (ici la casse de la premiĂšre lettre) a entraĂźnĂ© une valeur de hachage totalement diffĂ©rente. Puisque nous utilisons SHA-256, les sorties auront toujours une taille fixe de 256 bits (ou 64 caractĂšres) - indĂ©pendamment de la taille de l'entrĂ©e. De plus, peu importe le nombre de fois que l'on applique cet algorithme Ă  ces mots en particulier, les deux sorties seront toujours les mĂȘmes.

Par contre, si nous utilisons les mĂȘmes entrĂ©es Ă  travers l'algorithme de hachage SHA-1, on obtiendrait les rĂ©sultats suivant:

SHA-1

Entrée

Sortie (160 bits)

Binance

7f0dc9146570c608ac9d6e0d11f8d409a1ee6ed1

binance

e58605c14a76ff98679322cca0eae7b3c4e08936


L'acronyme SHA signifie Secure Hash Algorithms, pour algorithmes de hachage sécurisés. Cela réfÚre à un set de fonctions cryptographiques qui incluent les algorithmes SHA-0 et SHA-1 ainsi que les groupes SHA-2 et SHA-3. Le SHA-256 fait partie du groupe SHA-2, avec les SHA-512 et d'autres variantes. Actuellement, seuls les groupes SHA-2 et SHA-3 sont considérés comme sûrs.


Pourquoi sont-ils importants?

Les fonctions de hachage conventionnelles ont une large gamme de cas d'utilisation, incluant les recherches au sein de bases de données, les analyses de fichiers de grande envergure et la gestion de données. D'autre part, les fonctions de hachage cryptographiques sont largement utilisées dans les applications de sécurité de l'information, comme l'authentification des messages et l'impression d'empreintes digitales. En ce qui concerne Bitcoin, les fonctions de hachage cryptographiques sont une partie essentielle du processus de minage et jouent également un rÎle dans la génération de nouvelles adresses et clés.

La véritable puissance du hachage se révÚle lorsqu'il s'agit de traiter d'énormes quantités d'informations. Par exemple, on peut exécuter un fichier ou un set de données à travers une fonction de hachage et ensuite utiliser sa sortie pour vérifier rapidement l'exactitude et l'intégrité des données. Ceci est possible en raison de la nature déterministe des fonctions de hachage : l'entrée entraßnera toujours une sortie simplifiée et condensée (hachage). Une telle technique supprime la nécessité de stocker et de se souvenirde grandes quantités de données.

Le hachage est particuliÚrement utile dans le contexte de la technologie de la blockchain. La blockchain Bitcoin a plusieurs opérations qui impliquent du hachage, la plupart intervenant dans le processus de minage. En fait, presque tous les protocoles de crypto-monnaie dépendent du hachage pour relier et condenser les groupes de transactions en blocs, ainsi que pour produire des liens cryptographiques entre chaque bloc pour finalement créer une blockchain, une chaßne de blocs.


Fonctions de hachage cryptographique

Une fonction de hachage qui dĂ©ploie des techniques de cryptographie peut ĂȘtre dĂ©finie comme une fonction de hachage cryptographique. En gĂ©nĂ©ral, la rupture d'une fonction de hachage cryptographique nĂ©cessite une myriade de tentatives de force brute. Pour qu'un individu arrive Ă  inverser une fonction de hachage cryptographique, il aurait besoin de deviner quelle Ă©tait l'entrĂ©e au travers de nombreuses tentatives et d'Ă©checs jusqu'Ă  produire la bonne sortie. Cependant, il existe aussi une possibilitĂ© de diffĂ©rentes entrĂ©es produisant l'exacte mĂȘme sortie, dans ce cas une collusion se produit.

Techniquement, une fonction de hachage cryptographique doit suivre trois propriĂ©tĂ©s pour ĂȘtre considĂ©rĂ©e comme efficacement sĂ©curisĂ©e. Nous pouvons dĂ©crire celle-ci comme: une rĂ©sistance Ă  la collision, une rĂ©sistance Ă  la prĂ©image et une rĂ©sistance Ă  la seconde prĂ©image.

Avant de discuter de chaque propriété, résumons leur logique en trois phrases courtes.

  • RĂ©sistance Ă  la collision : il est infaisable de trouver deux entrĂ©es distinctes qui produisent le mĂȘme hachage en tant que sortie.

  • RĂ©sistance de la prĂ©image :il est impossible d'inverser la fonction de hachage (trouver l'entrĂ©e Ă  partir d'une sortie donnĂ©e).

  • RĂ©sistance de la seconde prĂ©image: il est impossible de trouver une seconde entrĂ©e qui entre en collision avec une entrĂ©e spĂ©cifiĂ©e.


RĂ©sistance Ă  la collision

Comme mentionnĂ©, une collision se produit lorsque des entrĂ©es diffĂ©rentes produisent l'exact mĂȘme hachage. Ainsi, une fonction de hachage est considĂ©rĂ©e comme rĂ©sistante Ă  la collision jusqu'Ă  ce que quelqu'un trouve une collision. Notez que les collisions existeront toujours pour n'importe quelle fonction de hachage car les entrĂ©es possibles sont infinies, tandis que les sorties possibles sont finies.

En d'autres termes, une fonction de hachage est rĂ©sistante Ă  la collision lorsque la possibilitĂ© de trouver une collision est si faible qu'elle nĂ©cessiterait des millions d'annĂ©es de calcul. Alors, bien qu'il n'y ait pas de fonction de hachage sans collision, certaines d'entre elles sont assez fortes pour ĂȘtre considĂ©rĂ©es comme rĂ©sistantes (par exemple SHA-256).

Parmi les différents algorithmes SHA, les groupes SHA-0 et SHA-1 ne sont plus considérés comme sécurisés parce que des collisions ont été trouvées. Actuellement, les groupes SHA-2 et SHA-3 sont considérés comme résistants aux collisions.


Résistance à la préimage

La propriété de la résistance à la préimage est liée au concept de fonctions à sens unique. Une fonction de hachage est considérée comme résistante à l'image lorsqu'il y a une probabilité trÚs faible de trouver l'entrée qui a généré une sortie particuliÚre.

Notez que cette propriĂ©tĂ© est diffĂ©rente de la prĂ©cĂ©dente, car ici un attaquant hypothĂ©tique essayerait de deviner l'entrĂ©e en regardant une sortie donnĂ©e. Une collision, par contre, se produit lorsque quelqu'un trouve deux entrĂ©es diffĂ©rentes qui gĂ©nĂšrent la mĂȘme sortie, mais il n'y pas d'importance spĂ©cifique quand Ă  l'entrĂ©e qui a Ă©tĂ© utilisĂ©e.

La propriété de résistance à la préimage est précieuse pour protéger les données parce que le simple hachage d'un message peut prouver son authenticité, sans avoir à en divulguer le contenu. En pratique, de nombreux fournisseurs de services et applications Web stockent et utilisent des hachages générés à partir de mots de passe plutÎt que des mots de passe en texte clair.


Résistance à la seconde préimage

Pour simplifier, nous pouvons dire que la rĂ©sistance Ă  la seconde prĂ©image se situe quelque part entre les deux autres propriĂ©tĂ©s. Une attaque de seconde prĂ©image se produit lorsque quelqu'un est en mesure de trouver une entrĂ©e spĂ©cifique qui gĂ©nĂšre la mĂȘme sortie qu'une autre entrĂ©e qu'il connaĂźt dĂ©jĂ .

En d'autres termes, une attaque de seconde prĂ©image implique de trouver une collision, mais au lieu de chercher deux entrĂ©es alĂ©atoires qui gĂ©nĂšrent le mĂȘme hachage, on cherche une entrĂ©e qui gĂ©nĂšre le mĂȘme hachage qu'une autre entrĂ©e spĂ©cifique.

Par conséquent, toute fonction de hachage résistante aux collisions est également résistante aux attaques de seconde préimage, car celles-ci impliqueront toujours une collision. Cependant, on peut toujours effectuer une attaque de préimage sur une fonction résistante à la collision, car elle implique de trouver une seule entrée à partir d'une seule sortie.


Minage

Il y a de nombreuses étapes dans le minage de Bitcoin qui impliquent des fonctions de hachage, comme la vérification des soldes, la constitution du lien entrées/sorties des transactions, et le hachage des transactions dans un bloc pour former un Arbre de Merkle. Mais l'une des principales raisons qui fait que la blockchain Bitcoin est sécurisée tient dans le fait que les mineurs doivent effectuer une myriade d'opérations de hachage afin de trouver une solution valide pour créer et ajouter bloc.
Plus précisément, un mineur doit essayer plusieurs entrées différentes lors de la création d'une valeur de hachage pour le bloc auquel il candidate. En substance, ils ne pourront valider leur bloc que s'ils génÚrent un hash de sortie qui commence par un certain nombre de zeros. Le nombre de zeros est ce qui détermine la difficulté de minage, et il varie selon le taux de hachage consacré au réseau.

Dans ce cas, le taux de hachage reprĂ©sente le montant d'Ă©nergie informatique investie dans le minage de Bitcoin. Si le taux de hachage du rĂ©seau augmente, le protocole Bitcoin ajustera automatiquement la difficultĂ© de miange afin que le temps moyen nĂ©cessaire pour miner un bloc reste proche de 10 minutes. Par contre, si plusieurs mineurs dĂ©cident d'arrĂȘter de miner, en entraĂźnant une baisse significative du taux de hachage, la difficultĂ© de minage sera ajustĂ©e, ce qui facilitera le minage (jusqu'Ă  ce que le temps de bloc moyen soit ramenĂ© Ă  10 minutes).

Notez que les mineurs n'ont pas besoin de chercher d'éventuelles collisions parce qu'il existe de multiples hachages qu'ils peuvent générer en tant que sortie valide (commençant avec un nombre de zéros spécifique). Il y a donc plusieurs solutions possibles pour un certain bloc, et les mineurs doivent en trouver une - selon le seuil déterminé par la difficulté miniÚre.

Étant donnĂ© que le minage de Bitcoin est une tĂąche Ă  impliquant des coĂ»ts Ă©levĂ©s, les mineurs n'ont aucune raison de tricher au sein du systĂšme car cela entraĂźnerait des pertes financiĂšres importantes. Plus il y a de mineurs dans une blockchain, et donc plus elle grossit, et plus elle devient solide.


Pour conclure

Il ne fait aucun doute que les fonctions de hachage sont des outils essentiels en informatique, surtout lorsqu'il s'agit de traiter des quantitĂ©s Ă©normes de donnĂ©es. En combinaison avec la cryptographie, les algorithmes de hachage peuvent ĂȘtre assez polyvalents, en particulier pour la sĂ©curitĂ© et l'authentification, et ce de plusieurs façons. Ainsi, les fonctions de hachage cryptographique sont vitales pour presque tous les rĂ©seaux de crypto-monnaie, de sorte que la comprĂ©hension de leurs propriĂ©tĂ©s et mĂ©canismes de travail est certainement utile pour toute personne intĂ©ressĂ©e par la technologie de la blockchain.

Partager des publications
S’inscrire pour un compte.
Mettez vos connaissances en pratique en ouvrant un compte Binance dùs aujourd’hui.