De nombreuses innovations ont contribué à la technologie blockchain, l'une des plus importantes étant le hachage. Mais qu'est-ce que le hachage dans la blockchain ? Sans elle, les blockchains ne seraient pas sûres et seraient tout à fait inutilisables. Ils rendent ainsi les crypto-monnaies sûres et fiables.
Si vous ne souhaitez pas obtenir un diplôme en informatique et que vous voulez connaître les tenants et les aboutissants de cette primitive cryptographique, restez dans les parages. Vous constaterez qu'il n'est pas si difficile de comprendre le hachage.
Le mot cryptographie vient du grec kryptos, qui signifie caché. Il s'agit de l'étude et de l'application de méthodes permettant de communiquer en toute sécurité face à une activité hostile. Il s'agit essentiellement de l'encodage des messages. La cryptographie moderne est centrée sur l'informatique, mais elle remonte à des temps très anciens.
Les hiéroglyphes égyptiens sont un excellent exemple de cryptographie. L'Égypte ancienne a élaboré les premiers messages cryptés sous la forme d'une série de hiéroglyphes désordonnés, afin d'empêcher les non-initiés d'apprendre les secrets des différentes écoles de mystères. Cette méthode de cryptage était très simple et reposait sur une technique connue sous le nom de simple substitution.
Se méfiant de ses messagers, l'empereur romain Jules César envoyait des messages cryptés à ses généraux. Nommé à titre posthume, Jules César a popularisé le chiffre César. Le chiffrement de César est également une technique de substitution simple.
Le hachage est une forme de cryptographie. Une fonction de hachage est une fonction qui peut faire correspondre des données de taille arbitraire à des valeurs de taille fixe. Les valeurs renvoyées par une fonction de hachage sont appelées valeurs de hachage, codes de hachage, condensés ou simplement hachages.
Prenons par exemple le texte en clair "Hello World". En utilisant la fonction de hachage d'Ethereum, la fonction de hachage Keccak-256, nous convertirons le texte en clair en hachage "592fa743889fc7f92ac2a37bb1f5ba1daf2a5c84741ca0e0061d243a2e6707ba". En conséquence, la sortie ressemble à une adresse Ethereum.
Dans la vie de tous les jours, les gens rencontrent des hachages sans le savoir. Vous pouvez rencontrer des hachages tous les jours en utilisant des mots de passe. Lorsque vous créez un compte sur une application, le fournisseur n'enregistre probablement pas votre mot de passe ; il enregistre un hachage de votre mot de passe. Lorsque vous vous connectez à votre compte, l'application analyse le mot de passe que vous saisissez et le compare à celui qu'elle a enregistré dans ses fichiers.
En d'autres termes, toutes les fonctions ne sont pas créées de la même manière. Les fonctions de hachage doivent répondre à des exigences spécifiques pour fonctionner correctement. Ils doivent avoir les propriétés suivantes :
Les ordinateurs doivent être en mesure de renvoyer le hachage rapidement ; la plupart d'entre eux peuvent traiter une fonction de hachage en une fraction de seconde.
Par exemple, en utilisant la fonction de hachage Keccak-256, nous transformerons le message "Hello World" en "hello World". La valeur obtenue est "079813c47d3d4ab9abf0c0747f5b5cdf90e0e264ae09ea44fb2509c559b72ac1". Comme vous pouvez le constater, notre fonction de hachage est sensible à la casse, ce qui modifie radicalement le résultat de notre hachage.
La valeur de hachage exacte doit être produite à chaque fois pour une valeur d'entrée donnée. Vous devez vous rappeler que le hachage est un moyen d'envoyer un message en toute sécurité. Si ce n'était pas le cas, vous pourriez modifier l'entrée d'un hachage, à l'insu du destinataire.
Une attaque par pré-image se produit lorsque la sortie d'un hachage est connue et que la tâche consiste à trouver une entrée. Une attaque par pré-image sur une fonction de hachage cryptographique recherche un message avec une valeur de hachage particulière. Une fonction de hachage cryptographique doit être résistante aux attaques par pré-image (ensemble d'entrées possibles).
Vous ne souhaitez pas utiliser la pré-image (c'est-à-dire la en clair) comme mot de passe dans notre exemple "Hello World". Le texte en clair "Hello World" est extrêmement simple et facile à déterminer. Il existe des bases de données qui enregistrent les entrées connues des fonctions de hachage, même sécurisées, telles que SHA-256.
Propriété attendue d'une fonction de hachage cryptographique dans laquelle la recherche d'une seconde préimage d'un condensé de message connu est calculatoirement impossible.
Il doit être extrêmement difficile, voire impossible, de trouver deux entrées qui produisent le même résultat. Comme la valeur d'entrée peut être de n'importe quelle longueur et de n'importe quels caractères, les possibilités pour cette valeur sont infinies. Les sorties ont une longueur fixe et, pour cette raison, un nombre fixe de possibilités.
Il est donc possible que plusieurs valeurs d'entrée produisent la même sortie. Si la résistance aux collisions n'est pas assez forte, les collisions peuvent être trouvées par le biais d'une "attaque d'anniversaire". Vous avez peut-être remarqué que la résistance à la deuxième image et la résistance aux collisions sont très similaires. Soyez assuré qu'elles sont distinctes et plutôt simples.
Avec la résistance à la deuxième image, une entrée est connue et l'attaquant est capable de trouver une deuxième entrée qui est hachée à la même valeur. Avec la résistance aux collisions, les deux entrées sont inconnues et l'attaquant est en mesure de trouver les deux entrées qui correspondent à la même valeur. La résistance aux collisions implique la résistance aux images.
Il s'agit d'une attaque qui exploite les mathématiques de la théorie des probabilités. Vous avez probablement entendu parler de l'exemple de l'anniversaire. Si vous avez une pièce de 27 personnes, bien que cela semble improbable, il y a en fait 50 % de chances que deux personnes aient le même anniversaire.
Comment cela se fait-il ? Une personne a une probabilité de 1/365 d'avoir le "bon" anniversaire. La probabilité qu'une deuxième personne ait le même anniversaire est également de 1/365. Pour trouver la probabilité que les deux aient la même date d'anniversaire, nous devons multiplier leurs probabilités. Ainsi, si vous avez 365 anniversaires différents et donc 365 possibilités, vous avez besoin de la racine carrée de 365, soit 23 personnes choisies au hasard pour avoir 50 % de chances que les personnes correspondent.
En appliquant cette théorie au hachage, on se rend compte que, techniquement, aucune fonction de hachage n'est exempte de collision, mais qu'il faut beaucoup de temps pour que cela se produise !
Taux de hachage total du bitcoin : Blockchain.com
Le bitcoin fonctionne sur une chaîne de blocs et utilise l'algorithme de hachage SHA-256 (Secure Hashing Algorithm 256). Pour le bitcoin, les fonctions de hachage sont utilisées pour trois fonctions principales :
Les mineurs font la course pour résoudre une énigme ; chaque mineur prend des informations sur les blocs qu'il connaît déjà, les hachent et construit un bloc à partir de ces informations. Si le résultat de l'algorithme est inférieur au nombre cible, il sera considéré comme valide et pourra être accepté par le reste du réseau. Ils ont alors le droit de créer le bloc suivant.
Pour plus de sécurité, chaque bloc de la blockchain est lié au précédent. Pour ce faire, on utilise un pointeur de hachage (variables qui stockent l'adresse d'une autre variable). En principe, chaque bloc contient le résultat du hachage du bloc précédent sur la blockchain. Cela permet de suivre facilement l'historique de la blockchain et d'éliminer la possibilité d'ajouter un bloc malveillant.
Pour envoyer ou recevoir de la crypto-monnaie, vous avez besoin d'une clé privée et d'une clé publique. Ces deux clés sont reliées entre elles par une fonction de hachage. Il s'agit d'un élément essentiel pour garantir que personne ne puisse calculer votre clé privée à partir de votre clé publique.
La fonction de hachage confère aux crypto-monnaies un niveau de sécurité élevé. Même si, en théorie, rien en ligne n'est à l'abri du piratage, la fonction de hachage offre le niveau de difficulté maximal actuellement disponible.
De nombreuses innovations ont contribué à la technologie blockchain, l'une des plus importantes étant le hachage. Mais qu'est-ce que le hachage dans la blockchain ? Sans elle, les blockchains ne seraient pas sûres et seraient tout à fait inutilisables. Ils rendent ainsi les crypto-monnaies sûres et fiables.
Si vous ne souhaitez pas obtenir un diplôme en informatique et que vous voulez connaître les tenants et les aboutissants de cette primitive cryptographique, restez dans les parages. Vous constaterez qu'il n'est pas si difficile de comprendre le hachage.
Le mot cryptographie vient du grec kryptos, qui signifie caché. Il s'agit de l'étude et de l'application de méthodes permettant de communiquer en toute sécurité face à une activité hostile. Il s'agit essentiellement de l'encodage des messages. La cryptographie moderne est centrée sur l'informatique, mais elle remonte à des temps très anciens.
Les hiéroglyphes égyptiens sont un excellent exemple de cryptographie. L'Égypte ancienne a élaboré les premiers messages cryptés sous la forme d'une série de hiéroglyphes désordonnés, afin d'empêcher les non-initiés d'apprendre les secrets des différentes écoles de mystères. Cette méthode de cryptage était très simple et reposait sur une technique connue sous le nom de simple substitution.
Se méfiant de ses messagers, l'empereur romain Jules César envoyait des messages cryptés à ses généraux. Nommé à titre posthume, Jules César a popularisé le chiffre César. Le chiffrement de César est également une technique de substitution simple.
Le hachage est une forme de cryptographie. Une fonction de hachage est une fonction qui peut faire correspondre des données de taille arbitraire à des valeurs de taille fixe. Les valeurs renvoyées par une fonction de hachage sont appelées valeurs de hachage, codes de hachage, condensés ou simplement hachages.
Prenons par exemple le texte en clair "Hello World". En utilisant la fonction de hachage d'Ethereum, la fonction de hachage Keccak-256, nous convertirons le texte en clair en hachage "592fa743889fc7f92ac2a37bb1f5ba1daf2a5c84741ca0e0061d243a2e6707ba". En conséquence, la sortie ressemble à une adresse Ethereum.
Dans la vie de tous les jours, les gens rencontrent des hachages sans le savoir. Vous pouvez rencontrer des hachages tous les jours en utilisant des mots de passe. Lorsque vous créez un compte sur une application, le fournisseur n'enregistre probablement pas votre mot de passe ; il enregistre un hachage de votre mot de passe. Lorsque vous vous connectez à votre compte, l'application analyse le mot de passe que vous saisissez et le compare à celui qu'elle a enregistré dans ses fichiers.
En d'autres termes, toutes les fonctions ne sont pas créées de la même manière. Les fonctions de hachage doivent répondre à des exigences spécifiques pour fonctionner correctement. Ils doivent avoir les propriétés suivantes :
Les ordinateurs doivent être en mesure de renvoyer le hachage rapidement ; la plupart d'entre eux peuvent traiter une fonction de hachage en une fraction de seconde.
Par exemple, en utilisant la fonction de hachage Keccak-256, nous transformerons le message "Hello World" en "hello World". La valeur obtenue est "079813c47d3d4ab9abf0c0747f5b5cdf90e0e264ae09ea44fb2509c559b72ac1". Comme vous pouvez le constater, notre fonction de hachage est sensible à la casse, ce qui modifie radicalement le résultat de notre hachage.
La valeur de hachage exacte doit être produite à chaque fois pour une valeur d'entrée donnée. Vous devez vous rappeler que le hachage est un moyen d'envoyer un message en toute sécurité. Si ce n'était pas le cas, vous pourriez modifier l'entrée d'un hachage, à l'insu du destinataire.
Une attaque par pré-image se produit lorsque la sortie d'un hachage est connue et que la tâche consiste à trouver une entrée. Une attaque par pré-image sur une fonction de hachage cryptographique recherche un message avec une valeur de hachage particulière. Une fonction de hachage cryptographique doit être résistante aux attaques par pré-image (ensemble d'entrées possibles).
Vous ne souhaitez pas utiliser la pré-image (c'est-à-dire la en clair) comme mot de passe dans notre exemple "Hello World". Le texte en clair "Hello World" est extrêmement simple et facile à déterminer. Il existe des bases de données qui enregistrent les entrées connues des fonctions de hachage, même sécurisées, telles que SHA-256.
Propriété attendue d'une fonction de hachage cryptographique dans laquelle la recherche d'une seconde préimage d'un condensé de message connu est calculatoirement impossible.
Il doit être extrêmement difficile, voire impossible, de trouver deux entrées qui produisent le même résultat. Comme la valeur d'entrée peut être de n'importe quelle longueur et de n'importe quels caractères, les possibilités pour cette valeur sont infinies. Les sorties ont une longueur fixe et, pour cette raison, un nombre fixe de possibilités.
Il est donc possible que plusieurs valeurs d'entrée produisent la même sortie. Si la résistance aux collisions n'est pas assez forte, les collisions peuvent être trouvées par le biais d'une "attaque d'anniversaire". Vous avez peut-être remarqué que la résistance à la deuxième image et la résistance aux collisions sont très similaires. Soyez assuré qu'elles sont distinctes et plutôt simples.
Avec la résistance à la deuxième image, une entrée est connue et l'attaquant est capable de trouver une deuxième entrée qui est hachée à la même valeur. Avec la résistance aux collisions, les deux entrées sont inconnues et l'attaquant est en mesure de trouver les deux entrées qui correspondent à la même valeur. La résistance aux collisions implique la résistance aux images.
Il s'agit d'une attaque qui exploite les mathématiques de la théorie des probabilités. Vous avez probablement entendu parler de l'exemple de l'anniversaire. Si vous avez une pièce de 27 personnes, bien que cela semble improbable, il y a en fait 50 % de chances que deux personnes aient le même anniversaire.
Comment cela se fait-il ? Une personne a une probabilité de 1/365 d'avoir le "bon" anniversaire. La probabilité qu'une deuxième personne ait le même anniversaire est également de 1/365. Pour trouver la probabilité que les deux aient la même date d'anniversaire, nous devons multiplier leurs probabilités. Ainsi, si vous avez 365 anniversaires différents et donc 365 possibilités, vous avez besoin de la racine carrée de 365, soit 23 personnes choisies au hasard pour avoir 50 % de chances que les personnes correspondent.
En appliquant cette théorie au hachage, on se rend compte que, techniquement, aucune fonction de hachage n'est exempte de collision, mais qu'il faut beaucoup de temps pour que cela se produise !
Taux de hachage total du bitcoin : Blockchain.com
Le bitcoin fonctionne sur une chaîne de blocs et utilise l'algorithme de hachage SHA-256 (Secure Hashing Algorithm 256). Pour le bitcoin, les fonctions de hachage sont utilisées pour trois fonctions principales :
Les mineurs font la course pour résoudre une énigme ; chaque mineur prend des informations sur les blocs qu'il connaît déjà, les hachent et construit un bloc à partir de ces informations. Si le résultat de l'algorithme est inférieur au nombre cible, il sera considéré comme valide et pourra être accepté par le reste du réseau. Ils ont alors le droit de créer le bloc suivant.
Pour plus de sécurité, chaque bloc de la blockchain est lié au précédent. Pour ce faire, on utilise un pointeur de hachage (variables qui stockent l'adresse d'une autre variable). En principe, chaque bloc contient le résultat du hachage du bloc précédent sur la blockchain. Cela permet de suivre facilement l'historique de la blockchain et d'éliminer la possibilité d'ajouter un bloc malveillant.
Pour envoyer ou recevoir de la crypto-monnaie, vous avez besoin d'une clé privée et d'une clé publique. Ces deux clés sont reliées entre elles par une fonction de hachage. Il s'agit d'un élément essentiel pour garantir que personne ne puisse calculer votre clé privée à partir de votre clé publique.
La fonction de hachage confère aux crypto-monnaies un niveau de sécurité élevé. Même si, en théorie, rien en ligne n'est à l'abri du piratage, la fonction de hachage offre le niveau de difficulté maximal actuellement disponible.