Que vaut la sécurité 256 bit du bitcoin ?

Partagez cette page

Si on voulait casser la sécurité Bitcoin, une manière de faire pourrait être de casser les signatures numériques passées par la moulinette de la fonction de hashage SHA256. Une autre serait par exemple de pouvoir deviner directement une clé privée depuis une clé publique. Dans les deux cas, les outils mathématiques utilisés par le protocole Bitcoin étant à « sens unique » (calcul facile dans un sens, impossible dans l’autre…) il n’y aurait d’autre choix que de procéder par la « force brute ».



 

C’est à dire que pour chaque signature ou clé, il faudrait deviner au hasard des nombres 256 bit jusqu’à ce qu’on tombe sur le résultat qu’on cherche. Via SHA256 dans le cas de la découverte d’une signature numérique, ou via l’algorithme cryptographique ECDSA (Elliptic Curve Digital Signature Algorithm, un truc qui envoie du rêve…) avec les bons paramètres si on veut casser une adresse bitcoin.

La question est donc de savoir si c’est vraiment difficile de trouver le bon nombre parmi tous les nombres 256 bits existant dans nos cas de figure.

Ce billet est une libre adaptation en français de la vidéo de 3Blue1Brown intitulée « How secure is 256 bit security ? » ci-dessous.

Un nombre binaire 256 bit est une suite de 256 « zéro » ou « un », c’est à dire qu’il existe 2256 chiffres différents en 256 bit.

2256 c’est 232 X 232 (…) 8 fois de suite, c’est à dire à peu près 4 milliards x 4 milliards (…) 8 fois de suite. À partir de là, voyons ce qu’il faut pour casser nos hash SHA256 ou nos clés…

  • 1er « 4 milliards »

Une très bonne carte graphique de jeu, utilisée pour du « minage » bitcoin, calcule à peu près 1 milliards de hash par seconde. Disons donc qu’un « mining rig » traditionnel avec six cartes graphiques en calcule 4 milliards.

  • 2nd « 4 milliards »

En 2014, on estimait que Google disposait d’environ 1 million de serveurs pour faire fonctionner toutes ses activités liées à internet. Admettons qu’en 2018 le géant du web en dispose de 4 millions.

  • 3ème « 4 milliards »

En 2017, la terre a passé les 7,5 milliards d’habitants. Arrondissons en disant que « 4 milliards » revient à la moitié des habitants de la planète.

  • 4ème et 5ème « 4 milliards »

On estime que notre galaxie, la Voie Lactée, contiendrait jusqu’à 400 milliards d’étoiles.

  • le über-calculateur-megalactique

On peut dès lors imaginer un über-calculateur-megalactique qui contiendrait :
– 40 millions de galaxie, comme la Voie Lactée, à 400 milliards d’étoiles…
– des étoiles qui seraient en fait toutes des planètes habitables à l’image de la terre, dont un sur deux de leurs huit milliards d’habitants…
– disposerait d’autant d’ordinateurs optimisés pour le calculs de hash que mille Google n’ont de serveurs…

Cela commence à faire pas mal de matos. Le geek en chacun de nous frétille ! Cependant, avec tout ça, on ne calcule que 2160 combinaisons par seconde…

  • 6ème et 7ème « 4 milliards »

4 milliards de secondes, c’est environ 126,7 ans.

4 milliards de fois 126,7 ans, c’est 507 milliards d’années.

  • Conclusion

Si on fait tourner ce modeste dispositif informatique pendant 507 milliards d’années, c’est à dire 36 fois l’âge supposé de l’univers (14 milliards d’années…), on aura une chance sur 2 milliards d’avoir trouvé la bonne réponse (en effet, si on cherche une bonne combinaison parmi 2256 possibles, en moyenne il aura fallu faire 2255 opérations).

Et encore, on a souvent arrondi à la baisse, on peut en réalité prévoir quelques millions d’années de marge…

La morale de cette histoire est donc que si vous avez un jour un pépin avec vos bitcoins, il y a assez peu de chance que ce soit parce qu’on vous aura craqué votre clé privée ou que la fonction de hashage SHA256 aura été compromise.

 

0 réponses

Répondre

Se joindre à la discussion ?
Vous êtes libre de contribuer !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *