Définition de hachage



Qu’est-ce qu’un hachage ?

Un hachage est une fonction mathématique qui convertit une entrée de longueur arbitraire en une sortie cryptée d’une longueur fixe. Ainsi, quelle que soit la quantité d’origine de données ou la taille de fichier impliquée, son hachage unique sera toujours de la même taille. De plus, les hachages ne peuvent pas être utilisés pour « reverse-engineer » l’entrée de la sortie hachée, car les fonctions de hachage sont « à sens unique » (comme un hachoir à viande ; vous ne pouvez pas remettre le bœuf haché dans un steak). Néanmoins, si vous utilisez une telle fonction sur les mêmes données, son hachage sera identique, vous pouvez donc valider que les données sont les mêmes (c’est-à-dire inchangées) si vous connaissez déjà son hachage.

Le hachage est également essentiel à la gestion de la blockchain en crypto-monnaie.

Points clés à retenir

  • Un hachage est une fonction qui répond aux demandes chiffrées nécessaires pour résoudre un calcul de blockchain.
  • Les hachages ont une longueur fixe car il est presque impossible de deviner la longueur du hachage si quelqu’un essayait de casser la blockchain.
  • Les mêmes données produiront toujours la même valeur hachée.
  • Un hachage, comme un nonce ou une solution, est l’épine dorsale du réseau blockchain.
  • Un hachage est développé sur la base des informations présentes dans l’en-tête du bloc.

Comment fonctionnent les hachages

Les fonctions de hachage typiques prennent des entrées de longueurs variables pour renvoyer des sorties de longueur fixe. Une fonction de hachage cryptographique combine les capacités de transmission de messages des fonctions de hachage avec des propriétés de sécurité.

Les fonctions de hachage sont des structures de données couramment utilisées dans les systèmes informatiques pour des tâches, telles que la vérification de l’intégrité des messages et l’authentification des informations. Bien qu’ils soient considérés comme cryptographiquement « faibles » car ils peuvent être résolus en temps polynomial, ils ne sont pas facilement déchiffrables.

Les fonctions de hachage cryptographique ajoutent des fonctionnalités de sécurité aux fonctions de hachage typiques, ce qui rend plus difficile la détection du contenu d’un message ou d’informations sur les destinataires et les expéditeurs.

En particulier, les fonctions de hachage cryptographique présentent ces trois propriétés :

  • Ils sont « sans collision ». Cela signifie que deux hachages d’entrée ne doivent pas correspondre au même hachage de sortie.
  • Ils peuvent être cachés. Il devrait être difficile de deviner la valeur d’entrée d’une fonction de hachage à partir de sa sortie.
  • Ils doivent être adaptés aux puzzles. Il devrait être difficile de sélectionner une entrée qui fournit une sortie prédéfinie. Ainsi, l’entrée doit être sélectionnée à partir d’une distribution aussi large que possible.

En raison des fonctionnalités d’un hachage, ils sont largement utilisés dans la sécurité en ligne, de la protection des mots de passe à la détection des violations de données en passant par la vérification de l’intégrité d’un fichier téléchargé.

Hachage et crypto-monnaies

L’épine dorsale d’une crypto-monnaie est la blockchain, qui est un grand livre mondial formé en reliant des blocs individuels de données de transaction. La blockchain ne contient que des transactions validées, ce qui évite les transactions frauduleuses et la double dépense de la devise. La valeur cryptée résultante est une série de chiffres et de lettres qui ne ressemblent pas aux données d’origine et est appelée un hachage. L’extraction de crypto-monnaie implique de travailler avec ce hachage.

Le hachage nécessite le traitement des données d’un bloc via une fonction mathématique, ce qui donne une sortie d’une longueur fixe. L’utilisation d’une sortie de longueur fixe augmente la sécurité, car quiconque essaie de déchiffrer le hachage ne sera pas en mesure de déterminer la longueur ou la longueur de l’entrée simplement en regardant la longueur de la sortie.

La résolution du hachage commence par les données disponibles dans l’en-tête du bloc et résout essentiellement un problème mathématique complexe. Chaque en-tête de bloc contient un numéro de version, un horodatage, le hachage utilisé dans le bloc précédent, le hachage de la racine Merkle, le nonce et le hachage cible.

Le mineur se concentre sur le nonce, une chaîne de chiffres. Ce numéro est ajouté au contenu haché du bloc précédent, qui est ensuite haché. Si ce nouveau hachage est inférieur ou égal au hachage cible, il est alors accepté comme solution, le mineur reçoit la récompense et le bloc est ajouté à la blockchain.

Le processus de validation des transactions blockchain repose sur le cryptage des données à l’aide d’un hachage algorithmique.

Considérations particulières

Pour résoudre le hachage, le mineur doit déterminer quelle chaîne utiliser comme nonce, ce qui nécessite lui-même une quantité importante d’essais et d’erreurs. C’est parce que le nonce est une chaîne aléatoire. Il est très peu probable qu’un mineur réussisse à trouver le bon nonce du premier coup, ce qui signifie que le mineur peut potentiellement tester un grand nombre d’options de nonce avant de bien faire les choses. Plus la difficulté est grande – une mesure de la difficulté de créer un hachage qui répond aux exigences du hachage cible – plus il faudra probablement de temps pour générer une solution.

Un exemple de hachage

Le hachage du mot « bonjour » produira une sortie de la même longueur que le hachage pour « Je vais au magasin ». La fonction utilisée pour générer le hachage est déterministe, ce qui signifie qu’elle produira le même résultat à chaque fois que la même entrée est utilisée. Il peut générer efficacement une entrée hachée ; cela rend également la détermination de l’entrée difficile (conduisant à l’exploitation minière), ainsi que de petits changements à l’entrée résultant en un hachage méconnaissable et entièrement différent.

Le traitement des fonctions de hachage nécessaires au chiffrement de nouveaux blocs nécessite une puissance de traitement informatique importante, ce qui peut être coûteux. Pour inciter les particuliers et les entreprises, appelés mineurs, à investir dans la technologie requise, les réseaux de crypto-monnaie les récompensent à la fois avec de nouveaux jetons de crypto-monnaie et des frais de transaction. Les mineurs ne sont rémunérés que s’ils sont les premiers à créer un hachage qui répond aux exigences décrites dans le hachage cible.

Questions fréquemment posées

Qu’est-ce qu’une fonction de hachage ?

Les fonctions de hachage sont des fonctions mathématiques qui transforment ou « mapper » un ensemble donné de données en une chaîne de bits de taille fixe, également connue sous le nom de « valeur de hachage ».

Comment une valeur de hachage est-elle calculée ?

Une fonction de hachage utilise des algorithmes mathématiques complexes qui convertissent des données de longueur arbitraire en données de longueur fixe (par exemple, 256 caractères). Si vous modifiez un bit n’importe où dans les données d’origine, toute la valeur de hachage change, ce qui la rend utile pour vérifier la fidélité des fichiers numériques et d’autres données.

A quoi servent les hachages dans les blockchains ?

Les hachages sont utilisés dans plusieurs parties d’un système de blockchain. Tout d’abord, chaque bloc contient le hachage de l’en-tête de bloc du bloc précédent, garantissant que rien n’a été falsifié lors de l’ajout de nouveaux blocs. L’extraction de crypto-monnaie à l’aide d’une preuve de travail (PoW) utilise en outre le hachage de nombres générés aléatoirement afin d’arriver à une valeur hachée spécifique contenant une série de zéros non significatifs. Cette fonction arbitraire est gourmande en ressources, ce qui rend difficile pour un mauvais acteur de dépasser le réseau.

Laisser un commentaire