Ich war ein bisschen inspiriert von diesem Blogeintrag Ссылка (Deutsch)
Der aktuelle Gedanke ist, dass md5 und sha1 beide etwas gebrochen sind. Nicht einfach und schnell, aber zumindest für MD5 im Bereich einer praktischen Möglichkeit. (Ich bin überhaupt kein Kryptoexperte, also liege ich in solchen Dingen vielleicht falsch).
Also habe ich mich gefragt, ob es möglich wäre, eine Datei A 'mit der gleichen Größe , die gleiche md5 Summe und die gleiche sha1 zu erstellen sum als die Originaldatei A.
Erstens, wäre es überhaupt möglich?
Zweitens, wäre es in der Realität mit aktueller Hardware / Software möglich?
Wenn nicht, wäre das nicht der einfachste Weg, die Integrität einer Datei zu gewährleisten, um immer zwei verschiedene Algorithmen zu verwenden, selbst wenn sie eine Art Schwäche haben?
Aktualisiert :
Nur um klarzustellen: Die Idee ist, eine Datei A und eine Datei A zu haben, die die Bedingungen erfüllt:
%Vor%"Wäre es überhaupt möglich?" - Ja, wenn die Gesamtgröße der Prüfsummen kleiner als die Gesamtgröße der Datei ist, ist es unmöglich, Kollisionen zu vermeiden.
"wäre es in der Realität mit der aktuellen Hardware / Software möglich?" - Wenn es möglich ist, einen Text zu konstruieren, der einer gegebenen Prüfsumme für jede der verwendeten Prüfsummen entspricht, dann ja.
Siehe Wikipedia zur Verkettung von kryptografischen Hash-Funktionen , was auch ein nützlicher Begriff für Google ist.
Von dieser Seite:
"Allerdings für Merkle-Damgård Hash Funktionen, die verkettete Funktion ist nur so stark wie das Beste Komponente, nicht stärker. Joux bemerkt dass 2-Kollisionen dazu führen n-Kollisionen: wenn es machbar ist finde zwei Nachrichten mit demselben MD5 Hash, es ist effektiv nicht mehr schwer zu finden so viele Nachrichten wie der Angreifer begehrt mit identisch MD5-Hashwerte Unter den n Nachrichten mit der gleiche MD5-Hash, wird es wahrscheinlich sei eine Kollision in SHA-1. Das zusätzliche Arbeit benötigt, um die SHA-1 Kollision (jenseits der exponentielle Geburtstagssuche) ist Polynom. Dieses Argument ist zusammengefasst von Finney. "
Für eine naive Antwort hätten wir einige (falsche) Annahmen getroffen:
(Im Grunde genommen keine verkleinerten und schön verteilten Domains.)
Wenn die Wahrscheinlichkeit, einen String zu finden, der mit dem SHA1-Hash eines anderen kollidiert, p1 ist, und ähnlich p2 für MD5, ist die naive Antwort die Wahrscheinlichkeit, einen mit beiden kollidierenden p1 * p2 zu finden.
Die Hashes sind jedoch beide gebrochen, daher wissen wir, dass unsere Annahmen falsch sind.
Die Hashes haben Verklumpungen, reagieren empfindlicher auf Änderungen mit einigen Daten als andere und sind mit anderen Worten nicht perfekt. Auf der anderen Seite wird ein perfekter, nicht gebrochener Hash-Algorithmus die obigen Eigenschaften haben, und genau das macht es schwierig, Kollisionen zu finden. Sie sind zufällig.
Die Wahrscheinlichkeit hängt von den Eigenschaften des Algorithmus ab - im Grunde, da unsere Annahmen nicht gültig sind, können wir nicht "einfach" bestimmen, wie schwer es ist. In der Tat hängt das schwierige Finden einer Eingabe, die wahrscheinlich kollidiert, sehr stark von den Eigenschaften der Eingabezeichenfolge selbst ab. Einige sind relativ einfach (aber auf der heutigen Hardware wahrscheinlich immer noch unpraktisch), und aufgrund der unterschiedlichen Art der beiden Algorithmen können einige tatsächlich unmöglich sein.
Also habe ich mich gefragt, ob es sein würde möglich, eine Datei A 'zu erstellen, die hat die gleiche Größe, die gleiche MD5 Summe und die gleiche sha1 Summe wie die Originaldatei A.
Ja, erstellen Sie eine Kopie der Datei.
Abgesehen davon, nicht ohne große Mengen an Rechenressourcen, um Tonnen von Permutationen zu überprüfen (unter der Annahme, dass die Dateigröße nicht trivial ist).
Sie können es sich so vorstellen:
Wenn die Dateigröße um n zunimmt, erhöht sich die Wahrscheinlichkeit einer möglichen Fälschung, aber die für das Testen der Kombinationen erforderlichen Rechenkosten steigen exponentiell um 2 ^ n an.
Je größer also Ihre Datei ist, desto wahrscheinlicher ist ein Betrüger da draußen, aber desto weniger wahrscheinlich finden Sie sie.
In der Theorie, ja, Sie können es haben, in der Praxis ist es höllisch eine Kollusion. In der Praxis kann niemand eine SHA1-Kollusion schaffen, geschweige denn MD5 + SHA1 + Size. Diese Kombination ist im Moment einfach unmöglich, ohne die ganze Computerleistung in der Welt zu haben und sie eine Zeit lang zu betreiben.
Obwohl wir in naher Zukunft mehr Schwachstellen in SHA1 und MD5 sehen werden. Und mit der Unterstützung von besserer Hardware (besonders GPU) warum nicht.
Theoretisch könnte man das machen. Wenn Sie in der Praxis mit den beiden Prüfsummen von MD5 und SHA1 begonnen und versucht haben, eine Datei zu erstellen, die die gleichen zwei Prüfsummen erzeugt, wäre das sehr schwierig (viel schwieriger als das Erstellen einer Datei, die dieselbe MD5-Prüfsumme erzeugt) SHA1 Prüfsumme isoliert).
Tags und Links security cryptography