Qu'est-ce que hash ?

Le hashing fait référence au processus de génération d'une sortie de taille fixe à partir d'une entrée de taille variable. Cela se fait par des formules mathématiques connues sous le nom de fonctions hash ( mises en œuvre sous forme d'algorithmes hash).

Bien que toutes les fonctions hash ne concernent pas la cryptographie, les fonctions hash cryptographiques appelées sont fondamentales dans le monde crypto. Grâce à elles, les blockchains et d'autres systèmes distribués atteignent des niveaux significatifs d'intégrité et de sécurité des données, ce que je trouve personnellement fascinant.

Les fonctions hash conventionnelles et cryptographiques sont déterministes. Cela signifie que, tant que l'entrée ne change pas, l'algorithme produira toujours la même sortie ( également connue sous le nom de résumé ou hash). Je trouve incroyable comment quelque chose d'aussi complexe peut être aussi prévisible.

Les algorithmes hash dans les cryptomonnaies sont conçus comme des fonctions unidirectionnelles, ce qui signifie qu'ils ne peuvent pas être facilement inversés sans d'énormes ressources informatiques. Il est assez simple de créer la sortie à partir de l'entrée, mais presque impossible de faire le contraire. En général, plus il est difficile de trouver l'entrée, plus l'algorithme est considéré comme sûr. Et croyez-moi, certains de ces algorithmes sont pratiquement impénétrables.

Comment fonctionne une fonction hash ?

Différentes fonctions hash produisent des sorties de tailles différentes, mais les tailles de sortie pour chaque algorithme sont toujours constantes. Par exemple, SHA-256 ne peut produire que des sorties de 256 bits, tandis que SHA-1 générera toujours un résumé de 160 bits.

Pour l'illustrer, exécutons les mots "Binance" et "binance" à travers l'algorithme SHA-256 ( utilisé dans Bitcoin ).

SHA-256 Entrée : Binance Sortie : f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191

Entrée : binance Sortie : 59bba357145ca539dcd1ac957abc1ec5833319ddcae7f5e8b5da0c36624784b2

Voyez comment un petit changement (la première lettre en majuscule) entraîne un hash complètement différent ? Cela me fascine cette sensibilité. Mais en utilisant SHA-256, les sorties auront toujours une taille fixe de 256 bits (64 caractères) indépendamment de la taille d'entrée.

D'autre part, si nous exécutons les mêmes entrées par SHA-1, nous obtenons :

SHA-1 Entrée : Binance Sortie : 7f0dc9146570c608ac9d6e0d11f8d409a1ee6ed1

Entrée : binance Sortie : e58605c14a76ff98679322cca0eae7b3c4e08936

SHA signifie Secure Hash Algorithms, faisant référence à un ensemble de fonctions de hachage cryptographiques qui incluent SHA-0, SHA-1, SHA-2 et SHA-3. SHA-256 appartient au groupe SHA-2. Actuellement, seuls SHA-2 et SHA-3 sont considérés comme sûrs, ce qui me fait me demander pourquoi certains systèmes utilisent encore les anciens algorithmes.

Pourquoi sont-ils importants ?

Les fonctions hash conventionnelles ont de multiples usages : recherches dans des bases de données, analyse de fichiers volumineux et gestion des données. Les fonctions hash cryptographiques sont largement utilisées en sécurité informatique, authentification des messages et identification numérique. Dans Bitcoin, elles sont essentielles pour le minage et la génération d'adresses et de clés.

Le véritable pouvoir du hashing émerge avec de grandes quantités d'informations. Vous pouvez exécuter un fichier énorme à travers une fonction hash et utiliser sa sortie pour vérifier rapidement la précision et l'intégrité des données. Cela élimine la nécessité de stocker et de "se souvenir" de grandes quantités d'informations, quelque chose que je considère brillant dans sa simplicité.

Le hashing est particulièrement utile dans la blockchain. La chaîne de Bitcoin a de nombreuses opérations impliquant le hashing, principalement dans le minage. Presque tous les protocoles crypto dépendent du hashing pour lier les transactions en blocs et créer des liens cryptographiques entre eux, formant effectivement une blockchain.

Fonctions de hash cryptographiques

Une fonction hash qui implémente des techniques cryptographiques peut être définie comme une fonction hash cryptographique. Casser l'une de ces fonctions nécessite des tests de force brute infinis. Pour "revenir" à une fonction hash cryptographique, quelqu'un devrait deviner l'entrée par essais et erreurs jusqu'à produire la sortie correspondante. Cependant, il existe la possibilité que différentes entrées produisent exactement la même sortie, provoquant une "collision".

Techniquement, une fonction de hashage cryptographique doit suivre trois propriétés pour être considérée comme sécurisée :

  • Résistance aux collisions : impossible de trouver deux entrées distinctes qui produisent le même hash
  • Résistance à la pré-image : impossible de "revenir en arrière" sur la fonction hash
  • Résistance à la seconde pré-image : impossible de trouver une autre entrée qui entre en collision avec une entrée spécifique

Résistance aux collisions

Une collision se produit lorsque des entrées différentes produisent exactement le même hash. Une fonction de hash est considérée comme résistante aux collisions jusqu'à ce que quelqu'un en trouve une. Il y aura toujours des collisions pour toute fonction de hash car les entrées possibles sont infinies, tandis que les sorties sont finies.

Une fonction hash est résistante aux collisions lorsque la probabilité de trouver une collision est si faible qu'elle nécessiterait des millions d'années de calculs. SHA-0 et SHA-1 ne sont plus sécurisés car des collisions ont été trouvées. Actuellement, SHA-2 et SHA-3 sont considérés comme résistants aux collisions.

Résistance à pré-image

Cette propriété est liée au concept de fonctions unidirectionnelles. Une fonction hash est résistante à la pré-image lorsque la probabilité que quelqu'un trouve l'entrée qui a généré une sortie spécifique est très faible.

Cette propriété est précieuse pour la protection des données car un simple hash peut prouver l'authenticité d'un message sans révéler l'information. De nombreux fournisseurs web stockent des hashes de mots de passe plutôt que des mots de passe en texte brut, ce que tous devraient faire, à mon avis.

Résistance à la seconde pré-image

Une attaque de seconde pré-image se produit lorsque quelqu'un trouve une entrée spécifique qui génère la même sortie qu'une autre entrée connue. Cela implique de trouver une collision, mais en cherchant une entrée qui génère le même hash qu'une autre entrée spécifique.

Toute fonction hash résistante aux collisions est également résistante aux attaques de seconde pré-image. Cependant, il est encore possible de réaliser une attaque de pré-image sur une fonction résistante aux collisions.

Minage

L'extraction de Bitcoin implique de nombreuses opérations de hash : vérification des soldes, liaison des entrées et des sorties des transactions, et hash des transactions dans un bloc pour former un arbre Merkle. Mais ce qui sécurise réellement la blockchain de Bitcoin, c'est que les mineurs doivent effectuer d'innombrables opérations de hash pour trouver une solution valide pour le prochain bloc.

Un mineur doit tester plusieurs entrées différentes pour créer une valeur hash pour son bloc candidat. Il ne pourra valider son bloc que s'il génère un hash qui commence par un certain nombre de zéros. Ce nombre détermine la difficulté de minage et varie en fonction du hashrate dédié au réseau.

Le hashrate représente combien de puissance de calcul est investie dans le minage. S'il augmente, le protocole Bitcoin ajustera automatiquement la difficulté pour maintenir le temps moyen de minage à environ 10 minutes. Si plusieurs mineurs cessent de miner, la difficulté diminuera.

Les mineurs n'ont pas besoin de trouver des collisions car il existe plusieurs hashes valides ( qui commencent par un certain nombre de zéros ). Il existe de multiples solutions possibles pour un bloc donné, et les mineurs n'ont besoin de trouver qu'une seule.

Comme le minage est coûteux, les mineurs n'ont pas de raisons de tromper le système, car cela entraînerait des pertes financières significatives. Plus il y a de mineurs dans une blockchain, plus le réseau devient fort.

Sans aucun doute, les fonctions hash sont des outils essentiels en informatique, en particulier avec de grandes quantités de données. Combinées avec la cryptographie, elles offrent sécurité et authentification de plusieurs manières. Elles sont vitales pour presque tous les réseaux crypto, c'est pourquoi comprendre leurs propriétés et mécanismes est utile pour quiconque s'intéresse à la blockchain.

BTC0.5%
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • Commentaire
  • Reposter
  • Partager
Commentaire
0/400
Aucun commentaire
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)