L'algorithme de minage sha 256 quelles crypto-monnaies. Qu'est-ce que l'algorithme de cryptage Bitcoin ? Utilisation dans les crypto-monnaies

Lorsqu’il compare des algorithmes de hachage, un mineur s’intéresse avant tout à la rentabilité des cryptomonnaies dont le fonctionnement repose sur ces algorithmes, et aux questions dérivées :

  • comment gérer au mieux votre propre équipement (CPU, carte vidéo, mineur ASIC) ;
  • où diriger la puissance de calcul louée pour le moment ;
  • quelles pièces - Scrypt ou SHA 256 - apportent plus de revenus, en tenant compte de l'égalité d'autres paramètres (complexité du réseau, tendances de développement, dynamique des taux de change, etc.).

Dans cet article, nous examinerons ce que sont Scrypt et SHA 256, déterminerons leurs différences fondamentales et comparerons la rentabilité.

Caractéristiques comparatives des algorithmes par rapport au minage

La différence fondamentale entre Scrypt et SHA 256 (ou comme ils l'écrivent parfois sur RuNet « Script from Sha ») est que dans le premier cas, l'extraction de crypto-monnaies nécessite une quantité de mémoire beaucoup plus importante sur l'appareil informatique que dans le second cas avec le SHA 256. algorithme.

En fait, Scrypt est apparu en 2009 comme alternative à SHA 256.

Es-crypt (Script) est souvent appelé fonction de hachage cryptographique, mais il s'agit plutôt d'une fonction de génération de clé secrète - KDF. Le but de la fonction est de compliquer la génération des mots de passe, mais « dans la mesure » pour que la procédure puisse être utilisée dans des tâches appliquées.

Scrypt utilise la fonction de hachage SHA 256 elle-même comme sous-programme. Grâce à l'utilisation du Script dans les cryptosystèmes lors du minage, le dispositif informatique doit simultanément :

  • effectuer un grand nombre de calculs mathématiques ;
  • établir un accès rapide à la mémoire ;
  • utiliser de grandes quantités de RAM.

De telles exigences au cours des premières années d'utilisation de l'algorithme ont rendu très difficile la fabrication d'équipements spécialisés (mineurs ASIC) et rendent toujours le prix de production et le coût final de ces dispositifs plus élevés que pour la fabrication d'ASIC pour SHA 256, qui étaient parmi les premiers être libéré. Cependant, compte tenu du fait que les appareils GPU modernes sont équipés d'une quantité de mémoire assez importante, il est toujours conseillé d'exploiter les crypto-monnaies de la famille Scrypt sur des cartes vidéo assemblées dans des fermes minières et connectées à des pools. Ainsi, si nous parlons d'exploitation minière à domicile, le dilemme du Sha-256 ou du Scrypt est résolu simplement - en fonction de la disponibilité des appareils informatiques.

Si un mineur dispose d'un ASIC pour extraire des crypto-monnaies sur Sha-256 (et il existe maintenant de nombreux modèles chers et moins chers avec une puissance de calcul différente provenant de différents fabricants), alors, en conséquence, les crypto-monnaies seront sélectionnées dans la liste des pièces de monnaie. la famille Sha-256. Les meilleures pièces Sha 256 : Bitcoin, Steemit, NeosCoin, Peercoin, PascalCoin et des dizaines d'autres. SHA 256, avec Scrypt, fait invariablement partie des cinq fonctions de hachage cryptographique les plus courantes.

Si le mineur ne dispose que de cartes vidéo, alors lorsqu'il choisit entre ces deux algorithmes, il est plus rentable d'extraire des pièces de la famille Scrypt. La liste de ces altcoins comprend désormais plus de 300 éléments. En 2013, des cryptosystèmes basés sur cet algorithme ont été lancés presque chaque semaine. De plus, la plupart d'entre eux étaient des forks de Litecoin - une crypto-monnaie qui figure toujours en tête de liste de cette famille en termes d'importance, de demande et d'autres paramètres d'évaluation (capitalisation, volume des ventes, prix des pièces, etc.). En plus du Litecoin, Dogecoin, BitConnect, Syscoin, Novacoin, Bitmark et d'autres crypto-monnaies encore plus exotiques fonctionnent sur Scrypt.

Il convient de garder à l’esprit que malgré l’annonce des fabricants d’équipements concernant les ASIC Scrypt, les développeurs de crypto-monnaie ne restent pas non plus les bras croisés. Les fonctions de hachage s'améliorent et deviennent plus complexes. Ainsi, par exemple, après avoir travaillé avec les paramètres de la mémoire dynamique (augmentation de la quantité de mémoire et du nombre de lectures aléatoires), les développeurs de Script ont publié des variantes de l'algorithme : Scrypt-N et Scrypt-jane.

Par conséquent, les mineurs transfèrent de plus en plus la charge de la mise à jour, de l’amélioration et de la maintenance des équipements informatiques sur les épaules des propriétaires de services cloud, auprès desquels ils peuvent louer de la capacité. Pour comprendre où il est plus rentable de les envoyer (vers Sha-256 ou vers Scrypt), nous procéderons à une analyse comparative.

Application de la puissance de calcul : choisir la direction de la production

Si nous effectuons une analyse rétrospective de la comparaison de la rentabilité des deux fonctions de hachage au cours des dernières années, alors, sans compter les super-bénéfices résultant de la hausse à court terme du Bitcoin à 20 000 dollars, le minage des crypto-monnaies Scrypt se révèle être systématiquement plus rentable.

Au tournant de l'année 2015-2016, l'achat de capacité pour Sha-256 rapportait environ 0,02 à 0,03 $ par jour, tandis que la capacité pour Scrypt rapportait environ 0,06 à 0,09 $ par jour, en fonction de la complexité de la cryptomonnaie du réseau. Un an plus tard, en raison de la complexité accrue du réseau de la plupart des crypto-monnaies, le ratio a quelque peu changé et la différence n'était plus aussi impressionnante. Mais le retard dans la rentabilité du Sha-256 persiste.

Il est important que même avec la même rentabilité minière, la rentabilité puisse différer considérablement, car le loyer « mange » inégalement une partie des revenus. Ainsi, par exemple, en investissant le même montant de 1 500 $, selon l'algorithme choisi, il était possible d'acheter différentes quantités d'énergie, dont le paiement pour Sha 256 coûtait 105 $ par mois et pour Scrypt - 30 $ par mois. Ainsi, avec un rendement mensuel égal de 284 $, le profit était différent et s'élevait à :

  • 179 $ pour Sha 256 (avec un retour sur investissement de 8,5 mois) ;
  • 254 $ pour Scrypt (avec un retour sur investissement de 6 mois).

Début 2018, la rentabilité de Scrypt était d'environ 40 à 46 % supérieure à celle de SHA 256 (sur la base du bénéfice perçu par dollar investi). La relation suivante peut être considérée comme correcte :

  • Pour SHA 256, profitez de 1 $ = 0,0038 $ ;
  • Pour Scrypt, profitez de 1 $ = 0,0056 $

En conclusion, nous devons vous prévenir qu'il n'est pas toujours possible de calculer correctement la différence de rentabilité au premier coup d'œil, puisque comparés sur les mêmes sites, des tableaux sont présentés avec différentes unités de mesure, réduites au volume des frais de service et au minimum valeur de hachage. Par conséquent, vous pouvez parfois simplement utiliser les statistiques de revenus déjà recalculées en pourcentage des investissements, fournies par diverses ressources (par exemple, BitMakler).

Quiconque a essayé d’exploiter et d’extraire de la monnaie numérique est tombé tôt ou tard sur le terme SHA256. Que signifie ce sigle, quelles sont ses caractéristiques, comment ça marche ? Parlons de tout cela et bien plus encore plus en détail.

SHA256.

Décryptage SHA256 - abréviation de Secure Hashing Algorithm - est l'algorithme de hachage actuel créé par la National Security Agency - l'Agence nationale de sécurité des États-Unis. La tâche de cet algorithme est d'effectuer certaines valeurs à partir d'un ensemble aléatoire de données d'une longueur fixe. Cette longueur est l'identifiant. La valeur résultante est comparée aux doublons des données originales, qui ne peuvent pas être obtenues.

Le principal domaine dans lequel l'algorithme SHA256 est utilisé est celui de diverses applications ou services liés à la protection des données d'information, où l'algorithme de hachage sécurisé s'est répandu. L’algorithme exploite également les monnaies numériques.

SHA-256 est une fonction de hachage cryptographique.

Comme nous le savons tous, lors de l’extraction de pièces cryptées, nous résolvons le problème initial en utilisant des processeurs CPU ou GPU. Les processus sont reflétés dans l'interface du programme pour la voie, par exemple sous la forme de la ligne « Accepté 0aef41a3b ». 0aef41a3b est le hachage. Il s'agit des informations de décodage qui correspondent au code haché qui sera reçu. En d’autres termes, il s’agit d’une ligne de données décryptées, alors que le principal bloc de données virtuel comprend des milliers, voire des millions, de ces lignes.


Cela peut expliquer la situation dans laquelle vous devez résoudre un grand nombre de problèmes avant de pouvoir trouver le bloc requis de votre pièce cryptée. Il s'avère qu'il y a une seule chance sur 1, 10, 100 000 ou même un million de décisions que la chaîne décryptée ait la valeur exacte requise pour supprimer le verrou, ou qu'il s'agisse de données personnelles (ou de blocage). C’est comme un dessin, un jeu, mais avec un équipement capable de calculer la combinaison gagnante plus rapidement et mieux que n’importe quel mineur.

Beaucoup de gens pensent que pour résoudre les problèmes liés au hachage lors de l'utilisation du protocole SHA256, vous aurez besoin d'un matériel puissant ?


Oui, c'est le cas. Plus la puissance de calcul est utilisée, mieux c'est, car les chances d'exploiter une cryptomonnaie (mineur SHA256) augmentent. Cependant, il est important de comprendre qu’un grand nombre de mineurs gagnent des pièces sur SHA256. Il y a ceux qui disposent du matériel le plus puissant. Mais il ne faut pas s’énerver, tout le monde a toutes ses chances de gagner. C'est comme un tirage au sort : il est impossible de prédire quand la fortune sourira ! Le minage SHA256 est un processus amusant et intéressant qui vous permet de gagner des pièces virtuelles.

Principe technique de l'algorithme


L'algorithme SHA256 est actuellement implémenté dans tous les mineurs ASIC opérant sur la plateforme de marché, tandis que l'équipement ASIC pour d'autres fonctions de hachage minier n'en est encore qu'au stade de développement.

En plus du Bitcoin, les mines utilisant l'algorithme SHA256 sont utilisées dans de nombreuses autres monnaies de clone virtuel. Par exemple, il est utilisé par les altcoins Peircoin et Namecoin. De nombreuses personnes souhaitent savoir quelles crypto-monnaies sont utilisées lors de l'utilisation de SHA256.

Les plus pertinents sont les suivants :

  1. Ocoin.
  2. Tekcoin.
  3. Zetacoin et autres

Sha256 et Scrypt sont des algorithmes. Tous ceux qui comprennent le minage de volutes virtuelles comprennent que pour gagner une pièce, il est nécessaire de la miner (c'est-à-dire de télécharger le logiciel, de l'exécuter et d'attendre que l'équipement informatique commence à fonctionner). L’intérêt du minage est donc que le PC résout les problèmes les plus complexes (fonctions de hachage) et que plus l’équipement informatique fonctionne, plus la monnaie sera extraite.

Et les tâches qu'un PC résout peuvent ne pas être structurées de la même manière - certaines sont basées sur l'algorithme SHA256 et d'autres sur Scrypt (d'autres ont été développées, mais celles-ci sont les plus pertinentes parmi les mineurs). Par exemple, le Bitcoin familier est gagné à l'aide de l'algorithme Sha256 et la crypto-monnaie DogeCoin est extraite à l'aide de Scrypt. En d’autres termes, différentes monnaies numériques utilisent des algorithmes différents. Pour quelle raison?

Et voici pourquoi - Sha256 s'est avéré simple et aujourd'hui, un grand nombre de dispositifs spéciaux sont apparus (appelés ASIC), qui résolvent les problèmes en utilisant cet algorithme très rapidement, plus rapidement que les processeurs puissants standard, ces ASIC apportent donc de nombreux mineurs fois plus de crypto-monnaie que les équipements informatiques conventionnels. Ci-dessous une vidéo dans laquelle vous pourrez comprendre le principe technique de l'algorithme.

Caractéristiques du protocole SHA-256


SHA256 présente certains avantages par rapport aux autres algorithmes. Il s’agit de l’algorithme de minage le plus populaire parmi tous ceux existants. Il s’est avéré fiable pour le piratage (ce qui n’arrive pas souvent) et constitue un algorithme efficace pour les problèmes de minage et à d’autres fins.

Il y a aussi des inconvénients :

  1. Le principal inconvénient de la monnaie SHA256 est le contrôle exercé par les mineurs.
  2. Ceux qui disposent d’une énorme puissance de calcul reçoivent la majeure partie de la cryptographie, ce qui élimine l’un des principes fondamentaux de la monnaie virtuelle : la décentralisation.
  3. À mesure que des investissements ont commencé à être réalisés dans la puissance de calcul d’une mine industrielle de Bitcoin, la difficulté du minage a considérablement augmenté et a commencé à nécessiter une puissance de calcul exceptionnelle. Ce moins est corrigé dans d'autres protocoles, les plus innovants et « adaptés » à l'utilisation des monnaies numériques dans la mine, comme Script.

Même si SHA256 domine aujourd’hui le marché des cryptomonnaies, il affaiblira son influence au profit des protocoles les plus fiables et les plus modernes. Les pools SHA256 perdront du terrain. Ainsi, les algorithmes SHA-1 n'offrent plus le niveau de protection requis en raison du développement probable de collisions.

Les crypto-monnaies SHA256, comme SHA512, sont les plus protégées de ce point négatif, mais il existe toujours une possibilité de développement de risques. Miner sur SHA256, comme tout autre hachage, est le processus de résolution d'un problème cryptographique complexe généré par un programme de minage basé sur les informations reçues des blocs.

Le minage à l'aide de la fonction de hachage SHA256 peut être effectué selon 3 méthodes :

  1. ASIC.

Dans la mine, la somme de hachage est utilisée comme identifiant des blocs déjà présents et pour la création de nouveaux en fonction de ceux disponibles. Le processus de voie est reflété dans l'interface comme « accepté f33ae3bc9... ». Où f33ae3bc9 est le montant haché, la partie des données requise pour le décryptage. Le bloc principal comprend un grand nombre de sommes de hachage de ce type. Autrement dit, l'exploitation minière avec l'algorithme SHA256 signifie sélectionner la valeur correcte du montant haché sans s'arrêter, énumérer les nombres afin de créer le bloc suivant. Plus l'équipement est puissant, plus grandes sont les chances de devenir propriétaire du bloc très correct : la rapidité de tri des différents types de montants dépend de la capacité. Étant donné que Bitcoin est construit sur l’algorithme SHA256, une mine compétitive nécessite une puissance de calcul extrêmement importante.

Cela est dû au fait que la production d’ASIC, à savoir un circuit spécial destiné à un usage particulier, est suffisante pour extraire des cryptomonnaies. ASICS permet d'exploiter des Bitcoins et d'autres crypto-monnaies à l'aide de la fonction de hachage SHA-256 plus rapidement, plus efficacement et à moindre coût.

Quelles autres crypto-monnaies SHA-256 peuvent être exploitées ? SHA-256 est un classique des monnaies numériques : la principale monnaie virtuelle, Bitcoin, est construite dessus. C’est pourquoi ce hachage est utilisé dans les forks Bitcoin : dans Bitcoin cash, Gold, Diamond.

En plus d’eux, SHA-256 est également utilisé dans :

  1. Vapeur.
  2. Digioctet.
  3. Peercoin.
  4. Coin de nom.
  5. Tikkoin.
  6. Ocoin.
  7. Zétacoin.
  8. Émircoin.

L'algorithme est également utilisé comme sous-programme dans la monnaie numérique Litecoin, et l'algorithme principal de la mine sera Scrypt.

Hachage de pseudocode : fonctions


Ce qui différencie Scypt-Jane, c'est qu'il prend en charge plus de 3 systèmes de chiffrement de flux différents. Et afin de bien comprendre l'algorithme, vous devez vous familiariser avec les caractéristiques de la fonctionnalité. Fonctions principales:

  1. ChaCha20.
  2. Salsa6420/8.

Tout d’abord, nous avons Salsa20/8. Il s'agit d'une fonction assez simple dont la tâche principale est de recevoir une chaîne de 192 octets (de chiffres et de lettres), puis de la convertir en une chaîne Salsa20 (x) de 64 octets.


Salsa20 est composé de deux composants : un cryptage de flux pour le cryptage des données et une fonction de compression (algorithme Rumba20), nécessaire pour compresser une chaîne de 192 octets en une chaîne de 64 octets. En d’autres termes : une ligne peut faire plus de 64 octets jusqu’à atteindre 192 octets, et la ligne sera compressée à 64 octets. ChaCha20 présente de légères similitudes avec Salsa20 : il s'agit également d'un cryptage de flux, mais il apporte quelques fonctionnalités supplémentaires, par exemple une résistance accrue à la cryptanalyse.

Chacha20 augmente également le brassage des données par tour. En d’autres termes, lorsque vous extrayez des pièces numériques dans le cadre d’un pool, vous remarquerez qu’un cycle d’extraction peut inclure une période courte ou longue. Le temps nécessaire à un pool minier pour trouver un seul bloc est en partie déterminé par le meilleur mélange proposé par Chacha20 de Skript-Jane.

À propos, divers facteurs influencent la diminution du temps de parcours. Une autre fonction importante pour mélanger les informations dans Script Jane est Salsa6420/8. Il s'agit d'une version améliorée de Salsa20/8, et permet de travailler avec les blocs d'octets les plus élevés. En plus de ces fonctions, Jane's Script prend également en charge un certain nombre de hachages, notamment SHA256. L'algorithme prend également en charge sa version la plus innovante, SHA512.

Exemple de hachage


Qu’est-ce que le hachage ? L'idée d'un hachage est basée sur la distribution des clés dans un tableau standard H. La distribution s'effectue en calculant une fonction hachée h pour chaque clé d'élément. Sur la base de la clé, il est utile d'obtenir un entier n, qui servira d'index pour le tableau H. Il est clair que vous devriez proposer une fonction hachée qui donnerait différents codes pour différents objets. Par exemple, si des chaînes doivent être utilisées comme clé d'une table hachée, vous pouvez alors sélectionner une fonction hachée basée sur l'algorithme suivant (exemple en C) : int hash(char* str) (int h = 0; pour (int je=0; je

Où m est la taille de la table hachée, C est une constante supérieure à n'importe quel ord(c) et ord() est une fonction qui renvoie le code du caractère (un nombre). Vous pouvez créer votre propre fonction de hachage pour un type de données spécifique. Mais les exigences de base pour la fonction ont été développées : elle doit disposer les clés parmi les cellules de la table hachée aussi uniformément que possible et elle doit être facile à trouver. Ci-dessous un tableau. On peut comprendre que les index des clés dans une table hachée sont le résultat de la fonction h appliquée à la clé.


L'image montre également l'un des principaux problèmes. Avec une valeur assez faible de m (la taille de la table hachée) par rapport à n (le nombre de clés) ou avec une mauvaise fonction, il peut arriver que 2 clés soient hachées dans une cellule commune du tableau H. C'est un collision.

Les bonnes fonctions ont tendance à réduire à zéro le risque de collision, mais étant donné que l'espace de toutes les clés possibles peut être plus grand que la taille de la table de hachage H, cela ne peut toujours pas être évité. Mais les experts ont développé un certain nombre de technologies pour résoudre les collisions. La configuration du pool SHA256 pour l'extraction de pièces de monnaie est présentée dans la vidéo. Vous pouvez comprendre comment exploiter la crypto-monnaie.

SHA-256 est une fonction unidirectionnelle permettant de créer une empreinte numérique de longueur fixe (256 bits, 32 octets) à partir de données d'entrée d'une taille maximale de 2,31 exaoctets (2⁶⁴ bits) et constitue un cas particulier de la famille SHA-2 de cryptographie. algorithmes ( Algorithme de hachage sécurisé version 2) publié par la NSA américaine en 2002.

Fonctions de hachage familial SHA-2 sont construits sur la base de la structure Merkle - Damgard.

Le message original après addition est divisé en blocs, chaque bloc de 16 mots. L'algorithme fait passer chaque bloc de message dans une boucle de 64 itérations. A chaque itération, 2 mots sont transformés, la fonction de transformation est fixée par les mots restants. Les résultats du traitement de chaque bloc sont additionnés, la somme est la valeur de la fonction de hachage. L'état interne étant initialisé suite au traitement du bloc précédent, il n'est pas possible de traiter les blocs en parallèle. Représentation graphique d'une itération de traitement d'un bloc de données :

Actuellement, des méthodes sont connues pour construire des collisions jusqu'à 31 itérations. En raison de la similitude algorithmique SHA-2 Avec SHA-1 et la présence de vulnérabilités potentielles dans ce dernier, il a été décidé que SHA-3 serait basé sur un algorithme complètement différent. Le 2 octobre 2012, le NIST a approuvé l'algorithme Keccak comme SHA-3.

Algorithme de calcul d'une empreinte digitale sous forme de pseudocode :

Explications :
Toutes les variables ne sont pas signées, ont une taille de 32 bits et lors des calculs sont additionnées modulo 232
message- message binaire original
m- message converti Initialisation des variables
(32 premiers bits parties fractionnaires racines carrées des huit premiers nombres premiers [2 à 19]) :
h0 := 0x6A09E667
h1 := 0xBB67AE85
h2 := 0x3C6EF372
h3 := 0xA54FF53A
h4 := 0x510E527F
h5 := 0x9B05688C
h6 := 0x1F83D9AB
h7 := 0x5BE0CD19 Tableau des constantes
(32 premiers bits parties fractionnaires racines cubiques des 64 premiers nombres premiers [2 à 311]) :
k :=
0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,
0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,
0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,
0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,
0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,
0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,
0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,
0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2 Traitement préliminaire :
m:= message ǁ [ un peu]
m:= m ǁ , où k- le plus petit nombre non négatif tel que
(L + 1 + K) mod 512 = 448, où L est le nombre de bits du message (comparable modulo 512 à 448)
m:= m Longueur(message) - longueur du message d'origine en bits sous la forme d'un nombre de 64 bits dans l'ordre des octets big-endian Ensuite, le message est traité par blocs successifs de 512 bits :
diviser le message en morceaux de 512 bits
Pour de chaque morceau, divisez le morceau en 16 mots de longueur 32 bits (avec l'ordre des octets de haut en bas dans le mot) : w Générez 48 mots supplémentaires :
Pour je depuis 16 avant 63
s0:= (w rot 7) xor(w rot 18) xor(w shr 3)
s1:= (w rot 17) xor(w rot 19) xor(w shr 10)
w[je] := w + s0 + w + s1
Initialisation des variables auxiliaires :
une:= h0
b:=h1
c:=h2
d:=h3
e:=h4
f:=h5
g:=h6
h:=h7 Boucle principale:
Pour je depuis 0 avant 63
Σ0:= (une rot 2) xor(un rot 13) xor(un rot 22)
Ma:= (un et b) xor(un et c) xor(b et c)
t2:= Σ0 + Ma
Σ1:= (e rot 6) xor(e rot 11) xor(e rot 25)
Ch:= (e et F) xor ((pas e) et g)
t1:= h + Σ1 + Ch + k[i] + w[i] h:= g
g:=f
f:=e
e:= d + t1
d:=c
c:=b
b:=un
une:= t1 + t2 Ajoutez les valeurs obtenues au résultat calculé précédemment :
h0:= h0 + une
h1:= h1 + b
h2:= h2 + c
h3:= h3 + ré
h4:= h4 + e
h5:= h5 + f
h6:= h6 + g
h7:= h7 + h Obtenez la valeur de hachage finale :
résumé = hachage = h0 ǁ h1 ǁ h2 ǁ h3 ǁ h4 ǁ h5 ǁ h6 ǁ h7

L'algorithme est utilisé :

  • Bitcoin- émission de crypto-monnaie grâce à la recherche d'empreintes digitales avec une certaine plage de valeurs
  • DNSSEC- digère CLÉ DNS
  • DSA- utilisé pour créer une signature numérique électronique
  • IPSec- dans les protocoles ESP Et IKÉ
  • OuvertLDAP- hachages de mots de passe
  • PGP- utilisé pour créer une signature numérique électronique
  • S/MIME- résumés de messages
  • SHACAL-2- bloquer l'algorithme de cryptage
  • X.509- utilisé pour créer une signature numérique électronique d'un certificat

On sait que les crypto-monnaies sont générées par le biais du minage, ce qui constitue également le point principal de la protection du réseau blockchain. Le minage de crypto-monnaie est basé sur l’utilisation de l’algorithme de hachage SHA-2. Grâce à cet algorithme, la principale cryptomonnaie Bitcoin est minée et sa sécurité est assurée. SHA-2 est également utilisé pour extraire des altcoins : Bitcoin Cash, Bitcoin Gold, Litecoin Cash, Auroracoin et autres. Certains protocoles de transmission d'informations sécurisées, TLS, SSH, PGP, dont les protocoles TCP/IP de transmission de données sur Internet, sont basés sur l'algorithme SHA-2.

L'algorithme de hachage sécurisé SHA-2 (Secure Hash Algorithm Version 2) est un ensemble de fonctions de hachage cryptographique visant à chiffrer les informations afin de les protéger. L'une des fonctions de hachage de l'algorithme SHA-2 est SHA-256, qui est utilisée pour extraire des crypto-monnaies.

Comme toute fonction de hachage, SHA-256 est un morceau de code logiciel qui convertit les informations entrantes en une séquence de lettres et de chiffres d'une certaine longueur. Ce processus de transformation est appelé hachage (de l'anglais hachage - hacher, confondre).

Caractéristiques du protocole SHA-256

La fonction de hachage SHA-2 est basée sur la structure Merkle-Damgaard, qui porte le nom de ses créateurs. La méthode de construction d'une fonction de hachage cryptographique consiste à diviser les informations d'entrée en blocs de taille égale et chaque bloc en un nombre hexadécimal avec lequel vous pouvez effectuer des opérations mathématiques. Après leur avoir appliqué une fonction de hachage, à la suite de 64 ou 80 itérations (traitement de données répété), le résultat est une somme de hachage - une séquence d'une longueur donnée de lettres et de chiffres, également appelée hachage, image, distribution. , un code de hachage.

Le bloc suivant, selon la méthode utilisée, ne commence à être traité qu'après avoir reçu la sortie du précédent. Et si la modification la plus insignifiante est apportée aux informations entrantes, le hachage ne sera plus le même. Si les valeurs de la fonction de hachage sont les mêmes dans différents blocs d'informations, une collision peut se produire (un conflit dans le fonctionnement de la fonction de hachage). Étant donné que les fonctions de hachage dans le processus d'extraction de crypto-monnaie confirment l'immuabilité des informations entrantes, si une collision est rapidement détectée, la fiabilité et la sécurité de l'ensemble du réseau blockchain sont immédiatement discréditées. Par exemple, une signature numérique est créée à l'aide d'une fonction de hachage. Si une collision est détectée, cette signature peut être falsifiée. Pour calculer la collision, la méthode de complexité informatique de recherche exhaustive est utilisée, ce qui augmente la force cryptographique de la fonction de hachage et est considérée comme la plus rapide à ce jour.

La pureté de l'algorithme, c'est-à-dire son fonctionnement sans conflits est déterminé par quatre exigences réglementaires :

1. Lorsque les informations entrantes changent, la somme de hachage doit changer.

2. Pendant le processus de hachage, il est nécessaire d'obtenir une quantité de hachage unique.

3. Les hachages doivent être irréversibles, c'est-à-dire vous pouvez travailler avec des informations entrantes, mais vous ne pouvez pas inverser le processus.

4. La génération de clés par hachage doit être rendue aussi difficile que possible.

Chaque nœud d'un réseau de cryptomonnaie peer-to-peer doit « capter » parmi les transactions sur le réseau une transaction qui l'intéresse (principalement par le montant des commissions) et la vérifier : vérifier l'entrée, la sortie et l'authenticité de la signature électronique. Commencez ensuite à former un bloc d'une capacité donnée, pour Bitcoin - 1 Mo. En plus de la version et de l'heure de création, un bloc comprend le hachage des transactions qu'il contient, le hachage du bloc précédent, des noms occasionnels et des bits - des paramètres spéciaux qui expriment la condition de création d'un hachage unique. Ensemble, ils subissent des hachages répétés et génèrent un hachage du titre du bloc en cours de formation, qui deviendra sa sortie, et pour le bloc suivant, son entrée.

Imaginons qu'il doive y avoir un certain nombre de zéros au début du hachage, par exemple nonce =18. Trouver un tel hachage est incroyablement difficile en utilisant la force brute. Mais c’est précisément ce qui garantit la sécurité des informations dans le réseau blockchain. Pour générer un hachage de bloc, vous avez juste besoin d’un nombre gigantesque de nombres. Mais une fois le numéro trouvé, il est transmis à travers les nœuds du réseau avec le bloc terminé et le hachage résultant avec 18 zéros. Chaque participant au réseau vérifie le hachage en combinant le numéro avec les données du bloc. Si le protocole Proof of Work est implémenté, le bloc est établi à la fin de la branche la plus longue de la blockchain.

En 2003, le protocole a été pour la première fois sous le feu des projecteurs des spécialistes. Les équipes de développement du monde entier étaient occupées à faire des recherches. Le principal vecteur de travail était la recherche de vulnérabilités, mais jusqu'en 2008, personne n'a pu détecter un seul problème. Pour la première fois, des spécialistes indiens ont réussi à faire une percée. Au cours de leurs recherches, 22 vulnérabilités ont été identifiées, pour lesquelles des solutions ont ensuite été proposées.

Données techniques SHA-256

    La taille du bloc en octets est de 64.

    La longueur maximale du message en octets est de 33.

    Résumé du message en octets – 32.

    La taille du mot en octets est de 4.

    Position interne (longueur) en octets – 32.

    Le nombre maximum d'itérations par cycle est de 64.

    Vitesse de protocole spécifique (MiB/s) ≈ 140.

La méthode de fonctionnement de l'algorithme SHA-256 consiste à diviser l'indicateur initial après y avoir apporté des ajustements en blocs. Ces derniers sont ensuite divisés en 16 mots.

Les opérations binaires du protocole sont représentées comme suit :

    et - signification sémantique de « et » ;

    shr - affiche le déplacement de la valeur sélectionnée d'un nombre spécifié de bits vers la droite ;

    pourrit - la valeur principale est un décalage cyclique forcé;

    || - permet de relier des structures linéaires (les principaux éléments concernés sont les lignes) ;

    xor - la valeur dont l'entrée élimine la commande « ou » ;

    Connexion standard de valeurs (ajout).

L'ensemble d'opérations présenté peut être qualifié de standard - il ne contient aucune fonction spéciale qui se démarquerait du total.

Important! Le haut niveau de connaissance de l’algorithme est devenu la base de son avancement en programmation. La preuve de confiance est l'autorisation officielle du gouvernement américain d'utiliser SHA-256 comme algorithme de protection des informations.

Son fonctionnement, contrairement à l’algorithme Scrypt, nécessite moins de puissance de calcul. Cependant, SHA-256 semble être trop facile à contourner pour les ASIC. En conséquence, l’algorithme constitue une menace directe pour la décentralisation des crypto-monnaies. Dans le contexte des données présentées, Scrypt semble être une solution plus moderne et plus efficace.

Résumons-le

Ainsi, il est probable que Scrypt et d’autres algorithmes plus modernes pourront dans un avenir proche remplacer SHA-256, qui représente actuellement plus d’un tiers du volume total du marché. De nombreuses crypto-monnaies sont déjà utilisées pour le minage ou le .

Avec la popularité croissante de la cryptomonnaie, de plus en plus de personnes commencent à la percevoir comme un instrument financier prometteur. Pourtant, peu de gens pensent à la valeur qu’elle représente pour le progrès scientifique et technologique. Après tout, pour comprendre l'essence de ce phénomène, il est nécessaire de parcourir la véritable jungle des concepts cryptographiques, ainsi que des abréviations inhabituelles et mystérieuses comme SHA-256. Ceci sera discuté dans l’article d’aujourd’hui.

Qu’est-ce que l’exploitation minière ?

Le minage est le composant principal du mécanisme de sécurité de toute monnaie numérique. Le principe de fonctionnement est que les mineurs regroupent une opération terminée en 1 bloc, qui a déjà été transformé un grand nombre de fois pour établir un code de hachage rare et exceptionnel répondant à des exigences particulières. Si une telle valeur est trouvée, le bloc est extrait et ajouté à la blockchain de la pièce. Une telle activité de calcul n'apporte aucun avantage autre que celui d'augmenter la complexité de génération du bloc requis. En revanche, ce n'est que grâce à elle que les utilisateurs de monnaie électronique peuvent être sûrs que leur plateforme ne sera pas prise sous contrôle et centralisée.

Une fonction de hachage standard prend en entrée un bloc contenant certaines informations, produisant en sortie une valeur aléatoire et imprévisible. Il est conçu de telle manière qu'il n'existe pas de méthode optimale pour trouver l'indicateur requis, vous devez continuer à chercher encore et encore jusqu'à ce que vous trouviez un code de hachage approprié.

L'un des protocoles informatiques les plus populaires est SHA-256. Il est utilisé par la première crypto-monnaie au monde – Bitcoin. De plus, pour augmenter le niveau de sécurité, l'algorithme est utilisé 2 fois et est appelé double.

Dans Bitcoin, le critère d’adéquation d’un hachage est le nombre requis de « 0 » au début. Trouver une telle valeur est également incroyablement difficile, comme, par exemple, trouver un numéro de voiture ou de téléphone portable se terminant par une paire de 0. Bien sûr, faire cela pour une fonction de hachage est bien plus difficile. Actuellement, la valeur correcte comprendrait environ 17 zéros non significatifs, ce qui ne représente que l’un des 1,4 fois 10 à la puissance 20. En faisant une comparaison, trouver un tel haschich est bien plus difficile que trouver un grain de sable spécifique parmi toute la masse infinie de sable de la planète.

La version originale de l'algorithme SHA-256 a été créée par la National Security Agency des États-Unis au printemps 2002. Quelques mois plus tard, l'Université nationale de métrologie a publié le nouveau protocole de cryptage dans la norme de sécurité FIPS PUB 180-2 acceptée au niveau fédéral. À l'hiver 2004, il a été complété par la deuxième version de l'algorithme.

Au cours des trois années suivantes, la NSA a déposé un brevet pour le SHA de deuxième génération sous une licence libre de droits. C’est ce qui a donné naissance à l’utilisation de la technologie dans les domaines civils.

Note! Un fait assez intéressant : chaque utilisateur du World Wide Web, sans le savoir, utilise ce protocole lors de ses déplacements sur Internet. La visite de n'importe quelle ressource Web protégée par un certificat de sécurité SSL déclenche automatiquement l'exécution de l'algorithme SHA-256.

Ce protocole fonctionne avec des informations divisées en parties de 512 bits (soit 64 octets). Il en effectue un « mélange » cryptographique puis produit un code de hachage de 256 bits. L’algorithme consiste en un tour relativement simple répété 64 fois.

De plus, SHA-256 possède d'assez bons paramètres techniques :

  • Indicateur de taille de bloc (octets) – 64.
  • La longueur maximale autorisée des messages (octets) est de 33.
  • Spécification de la taille du résumé du message (octets) – 32.
  • La taille de mot standard (octets) est de 4.
  • Paramètre de longueur de position interne (octets) – 32.
  • Le nombre d'itérations dans une boucle n'est que de 64.
  • La vitesse atteinte par le protocole (MiB/s) est d'environ 140.

Le fonctionnement de l'algorithme SHA-256 est basé sur la méthode de construction Merkle-Damgard, selon laquelle l'indicateur initial immédiatement après la modification est divisé en blocs, et ceux-ci, à leur tour, en 16 mots.

L'ensemble de données parcourt une boucle de 80 ou 64 itérations. Chaque étape est caractérisée par le lancement du hachage à partir des mots qui composent le bloc. Quelques-uns d’entre eux sont gérés par l’instrumentation de la fonction. Ensuite, les résultats de la conversion sont additionnés, ce qui donne le code de hachage correct. Pour générer le bloc suivant, la valeur du précédent est utilisée. Il ne sera pas possible de les convertir séparément les uns des autres.

Il convient également de mentionner les opérations 6 bits sur lesquelles le protocole opère :

  • "et" - opération "ET" au niveau du bit ;
  • "shr" - déplace la valeur du nombre de bits requis vers la droite ;
  • "pourrit" - une commande d'action similaire à la précédente, la seule différence étant qu'un changement de vitesse cyclique est effectué ;
  • "||" ou concaténation - l'opération de connexion de parties d'une structure linéaire, le plus souvent des chaînes ;
  • « xor » est une commande qui supprime « OR » ;
  • «+» est une opération d'addition ordinaire.

Comme vous pouvez le constater, il s'agit d'un ensemble d'opérations assez typique pour tout algorithme de chiffrement.

Afin de déterminer la valeur de cet algorithme, il faut se tourner vers la cryptanalyse. Cette discipline trouve des méthodes pour décrypter les informations sans utiliser de clé spécialisée.

Les premières études de SHA-256 pour la présence de vulnérabilités ont commencé à être réalisées par des spécialistes en 2003. À cette époque, aucune erreur n’avait été détectée dans le protocole.

Cependant, déjà à la mi-2008, un groupe d'experts indiens a pu détecter des collisions pour 22 itérations de la famille d'architectures SHA. Quelques mois plus tard, une méthode a été proposée pour développer des collisions pour une version tronquée du protocole, puis pour 31 itérations de hachage du SHA-256 lui-même.

Lors de l'analyse de la fonction de convolution, sa résistance à 2 types d'attaques est testée :

  1. La présence d'une préimage correspond au décryptage du message initial à l'aide de son code de hachage. La résistance à ce type d'influence garantit une protection fiable des résultats de conversion.
  2. Recherche de collisions : données de sortie similaires avec des caractéristiques d'entrée différentes. La sécurité d'une signature électronique utilisant le protocole actuel dépend directement de la résistance à ce type d'attaque.

Les créateurs de la deuxième génération de l'algorithme SHA ont décidé que le nouveau mécanisme de cryptage fonctionnerait sur la base de principes complètement différents. Ainsi, à l’automne 2012, le protocole de la troisième série – Keccak – est né.

Application pratique et certification de la technologie

La loi américaine autorise l'utilisation de SHA-256 et d'autres méthodes de hachage similaires dans certains programmes gouvernementaux pour protéger les informations. De plus, l’algorithme peut être utilisé par des sociétés commerciales.

Important! Il n’est donc pas surprenant que ce protocole ait été utilisé dans la première monnaie numérique. L'émission de nouvelles pièces Bitcoin s'effectue en recherchant des chaînes selon leur architecture SHA-256 spécifiée.

Comment cela affecte-t-il les appareils spécialisés pour le minage de crypto-monnaie ? Chaque étape de cet algorithme a une forme assez simple - une opération sur bits primitive et un ajout de 32 bits (quiconque connaît les bases des circuits peut facilement imaginer à quoi cela ressemble dans le matériel). Par conséquent, pour que les mineurs ASIC fonctionnent efficacement, vous n'avez besoin que d'une douzaine de blocs pour exécuter les étapes de l'algorithme.

Contrairement au Bitcoin, le Litecoin, le Dogecoin et d’autres « pièces » similaires utilisent le protocole de cryptage Scrypt, doté d’une fonction permettant d’augmenter la complexité. Au cours de son fonctionnement, cet algorithme stocke 1024 valeurs de fonction de hachage différentes, et en sortie il les connecte et obtient le résultat transformé. Pour cette raison, la mise en œuvre du protocole nécessite une puissance de calcul incomparablement plus grande.

Conclusion

En résumé, nous pouvons dire que le protocole SHA-256 s'est avéré trop simple et qu'il existe aujourd'hui de nombreux appareils spécialisés (appelés mineurs) qui réussissent à le contourner. Avec leur avènement, il n'était plus nécessaire d'exploiter un processeur ou d'assembler des fermes à partir de cartes vidéo, car les dispositifs ASIC permettent à leurs propriétaires de gagner beaucoup plus. Cependant, cela présente également un inconvénient. Le recours aux mineurs centralise trop la cryptomonnaie, ce qui nécessite l’introduction de nouveaux protocoles de hachage. Cet algorithme est devenu Scrypt - un mécanisme de sécurité beaucoup plus avancé qui nécessite des performances importantes et prive donc théoriquement les appareils spéciaux d'un avantage particulier.

Du point de vue de l'utilisateur moyen, il n'y a aucune différence entre les protocoles SHA-256 et Scrypt. Vous pouvez extraire de la monnaie numérique avec votre ordinateur ou votre ferme en utilisant n'importe lequel de ces protocoles.

L’algorithme SHA-256 représente actuellement plus de 40 % du marché total, mais il en existe sans doute d’autres. Et bientôt ils supplanteront leur illustre prédécesseur. Ainsi, parmi les relativement récents, il faut citer le protocole Dagger, particulièrement « résistant aux mineurs », qui va être utilisé dans la plateforme décentralisée Ethereum. Ce sera peut-être lui qui prendra le relais de leader dans le domaine du hachage et remplacera SHA-256.

Partager