Aperçu de l’algorithme de hachage SHA-512
Cet algorithme est couramment utilisé pour le hachage des adresses électroniques, le hachage des mots de passe et la vérification des enregistrements numériques. SHA-512 est également utilisé dans la technologie blockchain, l’exemple le plus notable étant le réseau BitShares.
Dans cet article, nous explorons les origines de SHA-512 et discutons de la manière dont l’algorithme a été utilisé par BitShares ainsi que par d’autres projets de blockchain de premier plan. Enfin, nous examinerons quelques exemples d’applications non liées à la blockchain et comparerons l’algorithme SHA-512 à l’algorithme SHA-256.
Origine du développement de SHA-512
SHA-512 n’est que l’un des nombreux algorithmes de la famille Secure Hashing Algorithm (SHA). En 2001, le SHA-512 a été publié par le National Institute of Standards and Technology (NIST) en tant que norme fédérale américaine de traitement de l’information (FIPS). Avant d’examiner les spécificités de l’utilisation actuelle de SHA-512, revenons brièvement sur l’histoire de ces algorithmes.
Défaillances de SHA-0 et SHA-1
SHA-0 est une fonction de hachage de 160 bits qui a été publiée pour la première fois en 1993 sous le nom de “SHA”. Peu après sa publication, SHA-0 a été retiré du marché en raison de la présence d’une “faille importante”. Après le développement d’itérations ultérieures, son nom a été modifié rétroactivement en “SHA-0”. En 1995, SHA-1 a été publié en tant que fonction de hachage de 160 bits pour résoudre les problèmes de sécurité de SHA-0. Ses caractéristiques sont très similaires à celles de la fonction de hachage MD5, publiée pour la première fois en 1992. Cependant, tout comme SHA-0, SHA-1 n’est plus utilisé dans des applications réelles en raison de failles de sécurité.
Développement de SHA-2
SHA-2 se compose de deux fonctions de hachage avec des tailles de bloc différentes : SHA-256 et SHA-512. Il existe en outre quatre versions tronquées de SHA-2. SHA-256, SHA-384 et SHA-512 ont été publiées en 2001. SHA-224 a été publié en 2004. SHA-512/224 et SHA-512/256 ont été publiés en 2012. L’ensemble de la famille SHA-2 fait l’objet du brevet américain 6829355. Ce brevet est également disponible sous la forme d’une licence libre de droits, ce qui le rend accessible à des personnes comme Satoshi Nakamoto.
Développement de SHA-3
La famille SHA-3, anciennement connue sous le nom de Keccak, se compose de quatre fonctions de hachage cryptographique : SHA3-224, SHA3-256, SHA3-384 et SHA3-512, ainsi que deux fonctions de sortie extensibles (XOF), appelées SHAKE128 et SHAKE256. Tous les algorithmes SHA-3 ont été publiés en 2015. Bien qu’ils soient largement considérés comme plus sûrs que les algorithmes SHA-2, les algorithmes SHA-3 n’ont pas encore été adoptés de manière significative.

Projets de blockchain utilisant l’algorithme SHA 512
Comparé à l’algorithme SHA-256, l’adoption de l’algorithme SHA 512 par les projets de blockchain a été très minime. La plupart des réseaux de blockchain qui ont choisi de ne pas mettre en œuvre l’algorithme SHA-256 ont opté pour d’autres algorithmes de hachage tels que Scrypt, Lyra2REv2, Equihash et CryptoNight. Ceci étant dit, voici quelques exemples de réseaux qui utilisent ou ont utilisé SHA-512. Dans l’ensemble, d’autres algorithmes tels que…
BitShares (BTS)
Bien qu’il n’y ait pas d’informations disponibles sur le premier projet de blockchain à mettre en œuvre SHA-512, nous savons que BitShares (anciennement ProtoShares) a été l’un des premiers à le faire.
Selon le site web de BitShares, le réseau a introduit l’algorithme Momentum Proof of Work (PoW) en octobre 2013. Momentum est un algorithme propriétaire basé sur un graphe qui utilise le SHA-1 de 512 bits (également connu sous le nom de Cuckoo Cycle). Comme l’indique une critique, l’implémentation de Momentum par BitShares présente au moins deux problèmes évidents. Premièrement, le hachage SHA-512 ne tire pas profit des instructions d’accélération SHA-256. Deuxièmement, cette implémentation a été jugée inutilement lente. Ces deux problèmes signifient que les mineurs ASIC seraient en mesure de prendre le dessus sur les CPU et les GPU, ce qui entraînerait des problèmes de centralisation du réseau.
Le bloc de départ du réseau a été miné à l’aide de Momentum PoW en novembre 2013. Cependant, peu de temps après, le fondateur de BitShares, Daniel Larimer, a déterminé que le minage de crypto-monnaie était défectueux. En juillet 2014, BitShares s’est éloigné de la preuve de travail et est devenu le premier projet de blockchain à mettre en œuvre le mécanisme de consensus Delegated Proof of Stake (DPoS).
Crédits LBRY (LBC)
LBRY est un protocole qui permet à quiconque de créer des applications qui interagissent avec le contenu numérique (par exemple, des vidéos, des fichiers audio, des documents ou tout autre type de fichier) sur le réseau LBRY. Sa crypto-monnaie native est le LBRY Credits (LBC), qui peut être utilisé pour accéder à des contenus payants sur le réseau. LBRY possède son propre algorithme de hachage qui utilise une combinaison des fonctions de hachage SHA-512, SHA-256 et RIPEMD.
Le réseau de la blockchain a une durée de bloc ciblée de 2,5 minutes et la taille maximale de chaque bloc est actuellement d’environ 2 Mo (environ 1800 transactions). À partir du bloc 55001, la récompense du bloc du réseau diminue de façon logarithmique sur une période de 20 ans. Le minage de crypto-monnaies sur LBRY est actuellement dominé par les GPU (cartes graphiques) et les FPGA (circuits logiques programmables). L’équipe du projet a déclaré qu’elle ne considérait plus le minage par CPU comme économiquement viable.
Kcash (KCASH)
Kcash utilise l’algorithme de cryptage SHA512-ZERO. Bien qu’il n’y ait pas beaucoup d’informations disponibles sur les spécifications techniques de cette implémentation de SHA-512, l’objectif du réseau de blockchain Kcash est de permettre la confidentialité des données grâce à une technologie appelée “preuves à connaissance nulle” (zero-knowledge proofs). Des réseaux de blockchain populaires tels que Monero et Zcash utilisent également des preuves à connaissance nulle, mais ils ont choisi de mettre en œuvre d’autres algorithmes de hachage.
Autres projets
Un certain nombre d’autres projets de blockchain utilisent actuellement SHA-512 ou l’ont utilisé par le passé. Toutefois, ces projets n’ont pas encore été adoptés de manière significative par les utilisateurs. Bien que des discussions aient eu lieu dès 2010 sur la possibilité pour les réseaux de blockchain de passer de SHA-256 à SHA-512, le consensus général est que cela n’apporterait pas d’avantages pratiques.
Applications de SHA-512 en dehors de la blockchain
SHA-512 est également utilisé dans une variété d’applications non liées à la blockchain. Il est souvent utilisé en conjonction avec SHA-256, mais parfois aussi seul. Néanmoins, comme pour les applications de la blockchain, l’adoption de SHA-512 pour d’autres applications techniques est nettement inférieure à celle de SHA-256.
SHA-512 a été utilisé pour authentifier des vidéos d’archives du Tribunal pénal international sur le génocide rwandais. Les fournisseurs d’Unix et de Linux utilisent à la fois SHA-256 et SHA-512 pour le hachage sécurisé des mots de passe. Une solution de liste de suppression de courrier électronique appelée OPTIZMO permet de stocker et de distribuer des adresses électroniques hachées en SHA-512 pour des clients importants tels que Salesforce, LendingTree, Hotwire et eharmony.
Comparaison entre SHA-256 et SHA-512
Maintenant que nous savons comment SHA-512 est utilisé dans des applications réelles, comparons-le à SHA 256 et 512 en évaluant trois facteurs essentiels : la sécurité, l’efficacité de calcul et la compatibilité.
Sécurité
Bien qu’il existe une variété de vecteurs d’attaque potentiels à évaluer, la résistance aux collisions est probablement la composante la plus importante de la sécurité pour tout algorithme de hachage. L’objectif d’un algorithme de hachage est de garantir qu’il est virtuellement impossible de trouver deux entrées différentes qui produisent le même résultat (ce que l’on appelle une collision). Si une collision est détectée, l’exactitude du message original, non haché, est remise en question. Plusieurs collisions ont été découvertes dans les algorithmes SHA-0 et SHA-1, ce qui signifie que ces algorithmes ne sont pas suffisamment sûrs pour des applications réelles.
Étant donné qu’aucune technologie n’est actuellement capable de casser le cryptage SHA-2 et qu’aucune collision n’a été trouvée, la sécurité fournie par SHA-256 et SHA-512 est pratiquement identique. Il est théoriquement possible que SHA-512 présente un léger avantage en termes de sécurité, compte tenu de l’essor des ordinateurs quantiques. Néanmoins, il est beaucoup plus probable que tous les algorithmes SHA-2 devront être remplacés par de nouvelles générations d’algorithmes résistants aux quanta afin d’atténuer efficacement les attaques par collision potentielles.
Efficacité du calcul
L’algorithme SHA-256 produit des résultats plus petits que l’algorithme SHA-512. Cela signifie qu’il nécessite généralement moins de bande passante pour stocker et transmettre les données. L’utilisation de SHA-256 nécessite généralement moins de mémoire et, dans certains cas, moins de puissance de traitement. Comme le montre ce test, SHA-256 est 31 % plus rapide que SHA-512 lorsqu’il s’agit de hacher des entrées plus courtes. En revanche, SHA-512 n’est que 2,9 % plus rapide lorsqu’il s’agit d’entrées plus longues.
Le réseau Bitcoin traite un grand nombre d’entrées plus petites (par exemple, des clés publiques de 33 octets et des en-têtes de blocs de 80 octets), ce qui explique probablement pourquoi Satoshi Nakamoto a choisi SHA-256 plutôt que SHA-512. Il y a aussi le fait que SHA-512 est meilleur sur les processeurs 64 bits, tandis que SHA-256 est meilleur sur les processeurs 32 bits. Lorsque le réseau Bitcoin a été lancé en 2009, les processeurs 32 bits étaient beaucoup plus répandus que les processeurs 64 bits. En outre, la nécessité d’un plus grand nombre de tours de consensus de la blockchain et d’une taille de bloc plus importante pour SHA-512 ajoute une surcharge de calcul qui ralentit le processus de validation des transactions.
Compatibilité
Un autre facteur expliquant l’adoption limitée de SHA-512 est le risque de problèmes de compatibilité pour les applications blockchain et non blockchain. Par exemple, avec la dépréciation de SHA-1 en raison de vulnérabilités de sécurité, SHA-256 a été choisi comme certificat SSL/TLS par défaut. SHA-512 n’étant pas largement mis en œuvre, il existe quelques problèmes de compatibilité qui en font une solution moins pratique.
Si Bitcoin avait adopté SHA-512, il est très probable que cet algorithme de hachage jouerait un rôle plus important aujourd’hui dans la technologie blockchain. Étant donné que SHA-256 a été mis en œuvre dans le protocole Bitcoin, d’autres réseaux de blockchain (par exemple Bitcoin Cash et Bitcoin SV) qui ont été créés à la suite de hard forks de Bitcoin continuent également d’utiliser SHA-256. De ce fait, de puissantes plates-formes de minage ASIC ont été fabriquées spécifiquement pour l’algorithme SHA-256.
Pour les réseaux de blockchain moins établis, il est également beaucoup plus facile d’attirer les mineurs en utilisant un algorithme de hachage compatible avec leur matériel existant. Même si un réseau plus petit voulait utiliser SHA-512, la possibilité d’une adoption limitée par les mineurs pourrait entraîner des problèmes de sécurité majeurs tels que des attaques 51 % peu coûteuses dues à des taux de hachage faibles.
En outre, dans la famille des algorithmes de hachage sécurisés, SHA-3 (anciennement connu sous le nom de Keccak) offre désormais une solution plus rapide et plus sûre que SHA-256 et SHA-512.
Conclusion
SHA-512 n’a pas réussi à gagner le même niveau de popularité que SHA-256 ou même d’autres types d’algorithmes de hachage plus récents lorsqu’il s’agit d’une utilisation réelle dans la blockchain. Ceci étant dit, il a quelques applications non-blockchain qui sont dignes d’intérêt.