Qu'est-ce que la fonction de hachage cryptographique ?

Débutant3/17/2024, 2:00:25 PM
Cet article donne un aperçu complet des fonctions de hachage cryptographiques, en explorant leur historique, leurs caractéristiques, leurs applications dans la blockchain et leurs principes de fonctionnement. Les fonctions de hachage cryptographiques jouent un rôle crucial pour garantir la sécurité et la fiabilité de la technologie blockchain.

Historique de la fonction de hachage cryptographique

La fonction de hachage cryptographique (CHF) existe depuis les années 1980 et est très utile dans les domaines de la cryptographie, de la vérification de l'intégrité des données, de l'indexation des bases de données et de nombreux autres domaines.

Lors du calcul d'une fonction de hachage cryptographique, des données de longueur arbitraire sont entrées, et la fonction correspondante les transforme en une valeur de sortie de longueur fixe. Cette transformation implique l'application de diverses opérations à différents segments des données d'entrée, communément appelées hachage. La sortie qui en résulte est connue sous le nom de valeur de hachage, et l'opération elle-même est appelée fonction de hachage.

L'algorithme MD5, fréquemment utilisé dans les téléchargeurs P2P, est un exemple illustratif. Il se caractérise par une longueur de 128 bits. Les utilisateurs peuvent comparer la valeur de hachage d'un fichier téléchargé avec celle fournie par la source ; une correspondance indique l'intégrité probable du fichier.

L'authentification par mot de passe sur les sites Web est une autre application courante. Pour protéger les mots de passe des utilisateurs, la plupart des plateformes stockent des mots de passe hachés plutôt que des entrées en texte brut. Lorsqu'un utilisateur se connecte, le système calcule la fonction de hachage du mot de passe saisi et le compare à la valeur stockée associée au nom d'utilisateur. La nature irréversible de la fonction de hachage cryptographique empêche le déchiffrement des mots de passe, même si les pirates informatiques obtiennent les valeurs de hachage des bases de données.

Caractéristiques des fonctions de hachage cryptographiques

Une recherche sur « SHA256 Generator » révèle que différents sites Web utilisant le même algorithme génèrent régulièrement des valeurs de hachage identiques pour des textes d'entrée similaires.

De plus, le fait de modifier les majuscules du texte saisi produit des valeurs de hachage en sortie totalement distinctes, connues sous le nom d'effet Avalanche. Les caractéristiques suivantes évaluent la sécurité d'une fonction de hachage cryptographique :

  • Résistance avant l'image : il est très difficile de récupérer la valeur d'entrée d'origine à partir de la valeur de hachage de sortie en raison des propriétés de la fonction unidirectionnelle.

Dans l'exemple ci-dessus, la reconstruction du mot de passe d'un utilisateur à partir de valeurs de hachage volées pose de grandes difficultés. Les opérations complexes et la compression des informations associées aux fonctions de hachage cryptographiques entravent la rétro-ingénierie, soulignant ainsi leur nature unidirectionnelle.

  • Deuxième résistance avant l'image : il est difficile d'identifier une autre valeur d'entrée produisant la même valeur de hachage à partir d'une entrée initiale. **Cette fonctionnalité est qualifiée de faible résistance aux collisions.

  • Résistance aux collisions : il est difficile de découvrir deux valeurs distinctes produisant des valeurs de hachage identiques. C'est ce que l'on appelle une collision de hachage cryptographique. Cette propriété indique une forte résistance aux collisions.

En prenant l'exemple du MD5 mentionné, est-il possible que différents fichiers génèrent la même valeur de hachage ? La réponse est oui, mais la probabilité est extrêmement faible. Ce phénomène est connu sous le nom de collision de hachage cryptographique, qui peut se produire accidentellement ou à la suite d'une attaque délibérée. La probabilité de collision standard pour l'algorithme MD5 est d'environ 1/2¹ ², ce qui rend les accidents très improbables. Cependant, le MD5 est considéré comme vulnérable aux attaques par collision délibérées, car il est relativement facile de produire la même valeur de hachage pour deux textes en clair différents. Par conséquent, même si l'algorithme MD5 peut toujours être utilisé pour des tâches qui ne concernent pas la sécurité, il n'est plus adapté aux tâches d'authentification de sécurité (telles que l'authentification par clé ou les signatures numériques).

Fonction de hachage cryptographique dans la blockchain

Ethereum utilise la fonction de hachage cryptographique KECCAK-256, que de nombreuses personnes identifient par erreur comme étant SHA-3 (y compris dans la thèse de doctorat du fondateur de Celestia) parce que cette fonction a été initialement écrite sous la forme « sha3 » dans Solidity. À cause de la confusion, il a ensuite été renommé Keccak256.

MetaMask utilise différentes fonctions de hachage cryptographique dans ses opérations :

  • Un ensemble de 12 mots issus d'une combinaison aléatoire de 2 048 mots proposés par le BIP39 forme des mots auxiliaires.
  • Chaque mot correspond à une valeur, créant collectivement des nombres entiers de départ.
  • MetaMask applique la fonction SHA-256 à l'entier de départ, générant ainsi une clé privée pour importer des portefeuilles existants. C'est parfois ce qui doit être saisi lors de l'importation d'un portefeuille existant sur un nouvel appareil.
  • L'algorithme ECDSA traite la clé privée pour en déduire une clé publique.
  • MetaMask génère un hachage de la clé publique à l'aide de la fonction Keccak-256, en prenant les 20 derniers octets du hachage (convertis en hexadécimal, c'est-à-dire 40 lettres ou chiffres) et en les préfixant d'un 0x, qui devient l'adresse ETH.

Comment fonctionne la fonction de hachage cryptographique dans la blockchain

Bitcoin utilise la fonction de hachage cryptographique SHA-256. Nous allons expliquer ici le processus par lequel les mineurs de bitcoins utilisent les fonctions de hachage cryptographiques pendant les activités de minage.

Dans le minage de bitcoins, les mineurs fusionnent les données des transactions avec un en-tête de bloc, comprenant les détails des transactions ainsi que des métadonnées telles que des horodatages et des nombres aléatoires. Les mineurs s'efforcent de produire un hachage SHA-256 spécifique en ajustant de manière itérative les nombres aléatoires (appelés « nonce ») figurant dans l'en-tête du bloc afin de répondre à des critères spécifiques, en commençant généralement par un certain nombre de zéros non significatifs. Compte tenu de la nature de la fonction de hachage SHA-256, la seule méthode pour découvrir un hachage conforme consiste à expérimenter en permanence différents nombres aléatoires.

Une fois qu'ils ont trouvé un hash répondant aux exigences, les mineurs peuvent ajouter le bloc à la blockchain du réseau Bitcoin et recevoir une quantité désignée de Bitcoins en récompense. Ce processus, connu sous le nom de « minage », implique l'exécution continue de fonctions de hachage afin d'identifier une valeur de hachage répondant aux critères spécifiés.

Au-delà du minage, les fonctions de hachage cryptographiques jouent un rôle essentiel pour établir des liens entre les blocs et suivre les modifications des transactions au sein des systèmes blockchain. Les pointeurs de hachage servent de structures de données qui facilitent l'indexation, la récupération et la vérification des modifications des données. Chaque transaction au sein de la blockchain est hachée avant d'être organisée en blocs. Ensuite, un pointeur de hachage connecte chaque bloc à son antécédent en stockant un hachage des données du bloc précédent. La nature interconnectée des blocs garantit l'immuabilité au sein de la blockchain ; toute modification d'une transaction donne lieu à une valeur de hachage distincte, modifiant ainsi le hachage de tous les blocs suivants. Par exemple, considérez une blockchain composée de deux blocs :

  • Bloc 1 : contient le hachage des transactions T1, T2 et T3.

  • Bloc 2 : contient le hachage des transactions T4, T5 et T6, ainsi que le hachage du bloc 1.

Si une personne tente de modifier la transaction T1 dans le bloc 1, elle devra recalibrer la valeur de hachage du bloc 1 et mettre à jour la nouvelle valeur du bloc 2. Cependant, en raison de la nature unidirectionnelle et de la résistance pré-image des fonctions de hachage cryptographiques, il s'avère difficile d'inverser la transaction T1 dans le bloc 1 en fonction de la valeur de hachage du bloc 2.

De plus, étant donné que le bloc 2 intègre la valeur de hachage du bloc 1, toute modification du bloc 1 modifierait par conséquent la valeur de hachage du bloc 2. Cela nécessite de modifier simultanément tous les blocs suivants pour toute modification apportée à la blockchain, une tâche formidable. Par conséquent, les fonctions de hachage cryptographique garantissent efficacement la cohérence et l'intégrité des données de la blockchain.

Dans le domaine de la blockchain, la fonction de hachage cryptographique joue plusieurs rôles essentiels :

  • Block Linking : l'en-tête de chaque bloc contient la valeur de hachage du bloc précédent, ce qui permet de créer une chaîne de blocs connectée garantissant une intégrité inviolable.

  • Validation des transactions : Les données des transactions sont hachées, la valeur de hachage qui en résulte étant incluse dans le bloc, afin de valider l'authenticité et l'intégrité des transactions.

  • Mécanisme de consensus : Dans le cadre du mécanisme de consensus Proof of Work (PoW), les mineurs doivent identifier une valeur de nonce répondant aux exigences de difficulté en exécutant des fonctions de hachage.

L'avenir des fonctions de hachage cryptographiques

Le 2 septembre 2022, Vitalik a publié une question sur Twitter (X), demandant quelle fonction de hachage cryptographique resterait sécurisée si un ordinateur quantique utilisant l'algorithme de Shor était inventé.

Source : Tweet de Vitalik

Il a indiqué qu'un ordinateur quantique capable d'utiliser l'algorithme de Shor pourrait percer le RSA (un cryptosystème à clé publique de longue date) ou tout autre système basé sur la factorisation, les courbes elliptiques et les groupes d'ordre inconnu. Cependant, les valeurs de hachage (comme le SHA-256) se portent bien dans le contexte de l'informatique quantique, même si leur sécurité serait quelque peu réduite. Il est recommandé d'utiliser des valeurs de hachage plus longues.

Conclusion

Les fonctions de hachage cryptographiques, telles que le SHA-256, sont-elles robustes ? Le « 256 » en SHA-256 représente 2 augmenté à la puissance 256, un chiffre si grand qu'il est difficile de le saisir concrètement.

Source : 3Blue1Brown

3Blue1Brown a néanmoins présenté une analogie frappante pour mieux comprendre la sécurité des fonctions de hachage cryptographiques : imaginez un scénario dans lequel 4 milliards de personnes sur Terre possèdent chacune un ordinateur doté de capacités informatiques exceptionnelles, soit 1 000 fois la puissance informatique de Google dans le monde entier. Simultanément, imaginez un cosmos composé de 4 milliards de planètes et de 4 milliards de galaxies, comme la Voie lactée ! Même dans ces conditions extrêmes, il faudrait plus de 500 milliards d'années pour qu'il y ait 1 chance sur 4 milliards de deviner avec précision « l'entrée spécifique requise pour générer la valeur de hachage de sortie SHA-256 ».

作者: Morris
译者: Paine
审校: Wayne、Edward、Elisa、Ashley、Joyce
* 投资有风险,入市须谨慎。本文不作为Gate.io提供的投资理财建议或其他任何类型的建议。
* 在未提及Gate.io的情况下,复制、传播或抄袭本文将违反《版权法》,Gate.io有权追究其法律责任。

Qu'est-ce que la fonction de hachage cryptographique ?

Débutant3/17/2024, 2:00:25 PM
Cet article donne un aperçu complet des fonctions de hachage cryptographiques, en explorant leur historique, leurs caractéristiques, leurs applications dans la blockchain et leurs principes de fonctionnement. Les fonctions de hachage cryptographiques jouent un rôle crucial pour garantir la sécurité et la fiabilité de la technologie blockchain.

Historique de la fonction de hachage cryptographique

La fonction de hachage cryptographique (CHF) existe depuis les années 1980 et est très utile dans les domaines de la cryptographie, de la vérification de l'intégrité des données, de l'indexation des bases de données et de nombreux autres domaines.

Lors du calcul d'une fonction de hachage cryptographique, des données de longueur arbitraire sont entrées, et la fonction correspondante les transforme en une valeur de sortie de longueur fixe. Cette transformation implique l'application de diverses opérations à différents segments des données d'entrée, communément appelées hachage. La sortie qui en résulte est connue sous le nom de valeur de hachage, et l'opération elle-même est appelée fonction de hachage.

L'algorithme MD5, fréquemment utilisé dans les téléchargeurs P2P, est un exemple illustratif. Il se caractérise par une longueur de 128 bits. Les utilisateurs peuvent comparer la valeur de hachage d'un fichier téléchargé avec celle fournie par la source ; une correspondance indique l'intégrité probable du fichier.

L'authentification par mot de passe sur les sites Web est une autre application courante. Pour protéger les mots de passe des utilisateurs, la plupart des plateformes stockent des mots de passe hachés plutôt que des entrées en texte brut. Lorsqu'un utilisateur se connecte, le système calcule la fonction de hachage du mot de passe saisi et le compare à la valeur stockée associée au nom d'utilisateur. La nature irréversible de la fonction de hachage cryptographique empêche le déchiffrement des mots de passe, même si les pirates informatiques obtiennent les valeurs de hachage des bases de données.

Caractéristiques des fonctions de hachage cryptographiques

Une recherche sur « SHA256 Generator » révèle que différents sites Web utilisant le même algorithme génèrent régulièrement des valeurs de hachage identiques pour des textes d'entrée similaires.

De plus, le fait de modifier les majuscules du texte saisi produit des valeurs de hachage en sortie totalement distinctes, connues sous le nom d'effet Avalanche. Les caractéristiques suivantes évaluent la sécurité d'une fonction de hachage cryptographique :

  • Résistance avant l'image : il est très difficile de récupérer la valeur d'entrée d'origine à partir de la valeur de hachage de sortie en raison des propriétés de la fonction unidirectionnelle.

Dans l'exemple ci-dessus, la reconstruction du mot de passe d'un utilisateur à partir de valeurs de hachage volées pose de grandes difficultés. Les opérations complexes et la compression des informations associées aux fonctions de hachage cryptographiques entravent la rétro-ingénierie, soulignant ainsi leur nature unidirectionnelle.

  • Deuxième résistance avant l'image : il est difficile d'identifier une autre valeur d'entrée produisant la même valeur de hachage à partir d'une entrée initiale. **Cette fonctionnalité est qualifiée de faible résistance aux collisions.

  • Résistance aux collisions : il est difficile de découvrir deux valeurs distinctes produisant des valeurs de hachage identiques. C'est ce que l'on appelle une collision de hachage cryptographique. Cette propriété indique une forte résistance aux collisions.

En prenant l'exemple du MD5 mentionné, est-il possible que différents fichiers génèrent la même valeur de hachage ? La réponse est oui, mais la probabilité est extrêmement faible. Ce phénomène est connu sous le nom de collision de hachage cryptographique, qui peut se produire accidentellement ou à la suite d'une attaque délibérée. La probabilité de collision standard pour l'algorithme MD5 est d'environ 1/2¹ ², ce qui rend les accidents très improbables. Cependant, le MD5 est considéré comme vulnérable aux attaques par collision délibérées, car il est relativement facile de produire la même valeur de hachage pour deux textes en clair différents. Par conséquent, même si l'algorithme MD5 peut toujours être utilisé pour des tâches qui ne concernent pas la sécurité, il n'est plus adapté aux tâches d'authentification de sécurité (telles que l'authentification par clé ou les signatures numériques).

Fonction de hachage cryptographique dans la blockchain

Ethereum utilise la fonction de hachage cryptographique KECCAK-256, que de nombreuses personnes identifient par erreur comme étant SHA-3 (y compris dans la thèse de doctorat du fondateur de Celestia) parce que cette fonction a été initialement écrite sous la forme « sha3 » dans Solidity. À cause de la confusion, il a ensuite été renommé Keccak256.

MetaMask utilise différentes fonctions de hachage cryptographique dans ses opérations :

  • Un ensemble de 12 mots issus d'une combinaison aléatoire de 2 048 mots proposés par le BIP39 forme des mots auxiliaires.
  • Chaque mot correspond à une valeur, créant collectivement des nombres entiers de départ.
  • MetaMask applique la fonction SHA-256 à l'entier de départ, générant ainsi une clé privée pour importer des portefeuilles existants. C'est parfois ce qui doit être saisi lors de l'importation d'un portefeuille existant sur un nouvel appareil.
  • L'algorithme ECDSA traite la clé privée pour en déduire une clé publique.
  • MetaMask génère un hachage de la clé publique à l'aide de la fonction Keccak-256, en prenant les 20 derniers octets du hachage (convertis en hexadécimal, c'est-à-dire 40 lettres ou chiffres) et en les préfixant d'un 0x, qui devient l'adresse ETH.

Comment fonctionne la fonction de hachage cryptographique dans la blockchain

Bitcoin utilise la fonction de hachage cryptographique SHA-256. Nous allons expliquer ici le processus par lequel les mineurs de bitcoins utilisent les fonctions de hachage cryptographiques pendant les activités de minage.

Dans le minage de bitcoins, les mineurs fusionnent les données des transactions avec un en-tête de bloc, comprenant les détails des transactions ainsi que des métadonnées telles que des horodatages et des nombres aléatoires. Les mineurs s'efforcent de produire un hachage SHA-256 spécifique en ajustant de manière itérative les nombres aléatoires (appelés « nonce ») figurant dans l'en-tête du bloc afin de répondre à des critères spécifiques, en commençant généralement par un certain nombre de zéros non significatifs. Compte tenu de la nature de la fonction de hachage SHA-256, la seule méthode pour découvrir un hachage conforme consiste à expérimenter en permanence différents nombres aléatoires.

Une fois qu'ils ont trouvé un hash répondant aux exigences, les mineurs peuvent ajouter le bloc à la blockchain du réseau Bitcoin et recevoir une quantité désignée de Bitcoins en récompense. Ce processus, connu sous le nom de « minage », implique l'exécution continue de fonctions de hachage afin d'identifier une valeur de hachage répondant aux critères spécifiés.

Au-delà du minage, les fonctions de hachage cryptographiques jouent un rôle essentiel pour établir des liens entre les blocs et suivre les modifications des transactions au sein des systèmes blockchain. Les pointeurs de hachage servent de structures de données qui facilitent l'indexation, la récupération et la vérification des modifications des données. Chaque transaction au sein de la blockchain est hachée avant d'être organisée en blocs. Ensuite, un pointeur de hachage connecte chaque bloc à son antécédent en stockant un hachage des données du bloc précédent. La nature interconnectée des blocs garantit l'immuabilité au sein de la blockchain ; toute modification d'une transaction donne lieu à une valeur de hachage distincte, modifiant ainsi le hachage de tous les blocs suivants. Par exemple, considérez une blockchain composée de deux blocs :

  • Bloc 1 : contient le hachage des transactions T1, T2 et T3.

  • Bloc 2 : contient le hachage des transactions T4, T5 et T6, ainsi que le hachage du bloc 1.

Si une personne tente de modifier la transaction T1 dans le bloc 1, elle devra recalibrer la valeur de hachage du bloc 1 et mettre à jour la nouvelle valeur du bloc 2. Cependant, en raison de la nature unidirectionnelle et de la résistance pré-image des fonctions de hachage cryptographiques, il s'avère difficile d'inverser la transaction T1 dans le bloc 1 en fonction de la valeur de hachage du bloc 2.

De plus, étant donné que le bloc 2 intègre la valeur de hachage du bloc 1, toute modification du bloc 1 modifierait par conséquent la valeur de hachage du bloc 2. Cela nécessite de modifier simultanément tous les blocs suivants pour toute modification apportée à la blockchain, une tâche formidable. Par conséquent, les fonctions de hachage cryptographique garantissent efficacement la cohérence et l'intégrité des données de la blockchain.

Dans le domaine de la blockchain, la fonction de hachage cryptographique joue plusieurs rôles essentiels :

  • Block Linking : l'en-tête de chaque bloc contient la valeur de hachage du bloc précédent, ce qui permet de créer une chaîne de blocs connectée garantissant une intégrité inviolable.

  • Validation des transactions : Les données des transactions sont hachées, la valeur de hachage qui en résulte étant incluse dans le bloc, afin de valider l'authenticité et l'intégrité des transactions.

  • Mécanisme de consensus : Dans le cadre du mécanisme de consensus Proof of Work (PoW), les mineurs doivent identifier une valeur de nonce répondant aux exigences de difficulté en exécutant des fonctions de hachage.

L'avenir des fonctions de hachage cryptographiques

Le 2 septembre 2022, Vitalik a publié une question sur Twitter (X), demandant quelle fonction de hachage cryptographique resterait sécurisée si un ordinateur quantique utilisant l'algorithme de Shor était inventé.

Source : Tweet de Vitalik

Il a indiqué qu'un ordinateur quantique capable d'utiliser l'algorithme de Shor pourrait percer le RSA (un cryptosystème à clé publique de longue date) ou tout autre système basé sur la factorisation, les courbes elliptiques et les groupes d'ordre inconnu. Cependant, les valeurs de hachage (comme le SHA-256) se portent bien dans le contexte de l'informatique quantique, même si leur sécurité serait quelque peu réduite. Il est recommandé d'utiliser des valeurs de hachage plus longues.

Conclusion

Les fonctions de hachage cryptographiques, telles que le SHA-256, sont-elles robustes ? Le « 256 » en SHA-256 représente 2 augmenté à la puissance 256, un chiffre si grand qu'il est difficile de le saisir concrètement.

Source : 3Blue1Brown

3Blue1Brown a néanmoins présenté une analogie frappante pour mieux comprendre la sécurité des fonctions de hachage cryptographiques : imaginez un scénario dans lequel 4 milliards de personnes sur Terre possèdent chacune un ordinateur doté de capacités informatiques exceptionnelles, soit 1 000 fois la puissance informatique de Google dans le monde entier. Simultanément, imaginez un cosmos composé de 4 milliards de planètes et de 4 milliards de galaxies, comme la Voie lactée ! Même dans ces conditions extrêmes, il faudrait plus de 500 milliards d'années pour qu'il y ait 1 chance sur 4 milliards de deviner avec précision « l'entrée spécifique requise pour générer la valeur de hachage de sortie SHA-256 ».

作者: Morris
译者: Paine
审校: Wayne、Edward、Elisa、Ashley、Joyce
* 投资有风险,入市须谨慎。本文不作为Gate.io提供的投资理财建议或其他任何类型的建议。
* 在未提及Gate.io的情况下,复制、传播或抄袭本文将违反《版权法》,Gate.io有权追究其法律责任。
即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!