Lors de l'utilisation md5sum
pour vérifier l'intégrité d'un fichier, quelle est la précision du processus?
Un MD5 vérifié signifie-t-il que CHAQUE bit est exactement le même, ou existe-t-il un seuil qui doit être franchi avant que l'altération binaire se reflète dans le MD5?
Toute documentation sur la façon dont un md5 est généré serait également appréciée.
Réponses:
MD5 est cassé à cet effet contre un adversaire intelligent. Il est possible de construire par malveillance deux blocs de données différents qui produisent le même hachage MD5.
Cependant, il est tout à fait approprié (bien qu'il existe presque certainement de meilleures façons) d'utiliser MD5 pour se protéger contre la corruption accidentelle de données en transit ou en stockage. Bien qu'il soit concevable qu'un tel événement puisse faire en sorte que le hachage MD5 soit le même, la probabilité est si faible qu'il est presque inimaginable que ce serait une probabilité qui mérite d'être inquiétée. Les pannes causées par le rayonnement de fond, les tunnels, l'électricité statique et des dizaines d'autres sources seraient des ordres de grandeur plus probables.
Même si vous disposiez d'un quadrillion d'unités de données, la probabilité qu'un MD5 dépareillé produise un hachage MD5 appartenant à l'une de ces quadrillions est bien inférieure à celle d'un quadrillion.
la source
MD5 est un hachage. Il mappe fondamentalement tout le contenu d'un fichier en une petite chaîne de 16 octets de long IIRC.
Il y aura évidemment plusieurs fichiers qui hachent la même somme MD5. Par conséquent, une somme MD5 correspondante n'est pas une garantie d'une correspondance exacte entre les fichiers.
Il n'y a pas de seuil en tant que tel car la façon dont les hachages fonctionnent. Ainsi, une somme MD5 peut détecter même un seul changement de bit. Cependant, de nombreux changements de bit unique peuvent entraîner la même hachage MD5. Il est donc tout à fait raisonnable d'utiliser MD5 pour valider l'intégrité du fichier contre la corruption aléatoire, mais non si une intention malveillante est possible car quelqu'un pourrait modifier un fichier tout en s'assurant que le hachage MD5 est le même.
la source
Un MD5-Hash se compose de 128 bits. Un seul bit inversé dans la source retourne (en moyenne) 64 bits dans le hachage.
La probabilité de collision accidentelle de deux hachages est de 1/2 ^ 128, soit 1 sur 340 undécillions 282 décillions 366 nonillions 920 octillions 938 septillions 463 sextillions 463 quintillions 374 quadrillions 607 billions 431 milliards 768 millions 211 milliers 456.
Cependant, si vous conservez tous les hachages, grâce au paradoxe d'anniversaire, la probabilité est un peu plus élevée. Pour avoir 50% de chances de collision de hachage, vous avez besoin de 2 ^ 64 hachages. Cela signifie que pour obtenir une collision, vous devrez hacher en moyenne 6 milliards de fichiers par seconde pendant 100 ans.
Source: porneL, /programming/201705/how-many-random-elements-before-md5-produces-collisions
la source