Bei der Verwendung md5sum
der Integrität einer Datei , um zu überprüfen, wie genau ist der Prozess?
Bedeutet ein verifiziertes MD5, dass JEDES Bit genau gleich ist, oder gibt es einen Schwellenwert, der unterbrochen werden muss, bevor die binäre Änderung im MD5 widergespiegelt wird?
Jede Dokumentation darüber, wie ein MD5 generiert wird, wäre auch dankbar.
Antworten:
MD5 wird zu diesem Zweck gegen einen intelligenten Gegner gebrochen. Es ist möglich, böswillig zwei verschiedene Datenblöcke zu erstellen, die denselben MD5-Hash erzeugen.
Es ist jedoch durchaus geeignet (obwohl es mit ziemlicher Sicherheit bessere Möglichkeiten gibt), MD5 zum Schutz vor versehentlicher Datenkorruption während des Transports oder der Speicherung zu verwenden. Während es denkbar ist, dass ein solches Ereignis dazu führen könnte, dass der MD5-Hash gleich ist, ist die Wahrscheinlichkeit so gering, dass es fast unvorstellbar ist, dass es sich um eine bedenkenswerte Wahrscheinlichkeit handelt. Ausfälle durch Hintergrundstrahlung, Tunneleffekte, statische Aufladung und Dutzende anderer Quellen wären um Größenordnungen wahrscheinlicher.
Selbst wenn Sie Billiarden Dateneinheiten hätten, ist die Wahrscheinlichkeit, dass ein nicht übereinstimmender MD5 einen MD5-Hash erzeugt, der zu einer dieser Billiarden Einheiten gehört, viel geringer als eine Billiarde.
quelle
MD5 ist ein Hash. Grundsätzlich wird der gesamte Inhalt einer Datei in eine kleine Zeichenfolge mit einer Länge von 16 Byte (IIRC) abgebildet.
Es wird offensichtlich mehrere Dateien geben, die die gleiche MD5-Summe haben. Daher ist eine übereinstimmende MD5-Summe keine Garantie für eine genaue Übereinstimmung zwischen Dateien.
Es gibt keine Schwelle als solche, da die Art und Weise, wie Hashes funktionieren. So kann eine MD5-Summe sogar eine einzelne Bitänderung erfassen. Viele einzelne Bitänderungen zusammen können jedoch dazu führen, dass der MD5-Hash identisch ist. Es ist daher durchaus sinnvoll, MD5 zu verwenden, um die Dateiintegrität gegen zufällige Beschädigung zu überprüfen. Wenn jedoch eine böswillige Absicht vorliegt, kann eine Datei geändert werden, während sichergestellt wird, dass der MD5-Hash identisch ist.
quelle
Ein MD5-Hash besteht aus 128 Bit. Ein einzelnes gekipptes Bit in der Quelle kippt (im Durchschnitt) 64 Bits im Hash.
Die Wahrscheinlichkeit, dass zwei Hashes versehentlich kollidieren, ist 1/2 ^ 128, was 1 zu 340 undecillion 282 decillion 366 nonillion 920 octillion 938 septillion 463 sextillion 463 quintillion 374 quadrillion 607 trillion 431 milliarden 768 millionen 211 tausend 456 ist.
Wenn Sie jedoch alle Hashes behalten, ist die Wahrscheinlichkeit dank des Geburtstagsparadoxons etwas höher. Um eine Wahrscheinlichkeit von 50% für eine Hash-Kollision zu haben, benötigen Sie 2 ^ 64 Hashes. Dies bedeutet, dass Sie für eine Kollision im Durchschnitt 100 Jahre lang 6 Milliarden Dateien pro Sekunde hacken müssen.
Quelle: porneL, https://stackoverflow.com/questions/201705/how-many-random-elements-before-md5-produces-collisions
quelle