Une collision sha256 est-elle possible ? [Hash, Math, Blog]

in #fr5 years ago

Oui, c'est possible. Mais la(les) question(s) devrais être :

  • Quand ?
  • Avec quel conditions ?

Avant d'y répondre, il faut savoir que les calcules que je vais faire plus bas, sont des estimations. Une collisions arrive de façon "aléatoire" et non prévisible. La réponse a la question "Quand ?" seras le nombre d'années MAXIMALES pour tomber sur une collisions. ( En fonction des paramètres pris en compte ). La réponse vas donc varier en fonction des scénarios dans la quel le calcule est effectué.

Un Sha256 retourne une valeur constitué de lettres majuscule, minuscules et de chiffre de 0 à 9. Il y à donc ~64^36 combinaisons possible. Pour que ce nombre soit plus parlant ...

Sha256 : 105 312 291 668 557 186 697 918 027 683 670 432 318 895 095 400 549 111 254 310 977 536

Il vas donc maintenant être question : Avec quel conditions ?

Et pour ça on vas regarder la force de calcule du Bitcoin. Le hasrate TOTAL du bitcoin a cette heure si est de :
42 672 924 Trillion/Hash/s.

Avec cette force de calcule, et si elle n'évolue pas avec le temps. ( Oui car sur 1 ans la force de calcule et les technologie évolue beaucoup. Et comme on vas parler en nombre d'années avec plus de 30 chiffres.. ça pourrais tout changer ! ). Il nous faudrait environs : ...

78 256 434 036 333 969 729 345 924 683 144 455 907 Années pour générer la totalité des combinaisons du sha256 et donc de tomber sur notre première collision, suivis uniquement de collision car on déjà tout.. Enfin..

Ps : Si vous voulez refaire le calcule avec des scénario différent, j'ai fait une petite calculatrice en javascript :)

var hashPerSeconds = 42672924000000000000;
var sha256Posibility = 105312291668557186697918027683670432318895095400549111254310977536;
var secondsPerYear = 31536000;
var hashPerYear = hashPerSeconds * secondsPerYear;
var result = sha256Posibility / hashPerYear;
console.log( result );

Liens utiles :
https://defuse.ca/big-number-calculator.htm
https://www.blockchain.com/fr/charts/hash-rate
https://en.bitcoin.it/wiki/SHA-256
https://fr.wikipedia.org/wiki/SHA-2

Sort:  

Article intéressant, tu aurais pu préciser que SHA256 signifie Secure Hash Algorithm sur 256 bits codés en hexadécimal sur 64 caractères (64x4=256). Cela permet notamment de calculer les fameuses « chains » des blockchains.

intéressant, mais pour quelle raison calcule,au lieu de calcul ?
en informatique rien n'est impossible !

Congratulations @peneinc! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You received more than 250 upvotes. Your next target is to reach 500 upvotes.

Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last post from @steemitboard:

Meet the Steemians Contest - Intermediate results

Support SteemitBoard's project! Vote for its witness and get one more award!

Congratulations @peneinc! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

Click here to view your Board

Do not miss the last post from @steemitboard:

Carnival Challenge - Collect badge and win 5 STEEM
Vote for @Steemitboard as a witness and get one more award and increased upvotes!

Congratulations @peneinc! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Do not miss the last post from @steemitboard:

Use your witness votes and get the Community Badge
Vote for @Steemitboard as a witness to get one more award and increased upvotes!