Ist es möglich, eine gefälschte Datei zu erstellen, die die gleichen Prüfsummen mit zwei verschiedenen Algorithmen hat?

8

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%     
Mauli 24.07.2009, 12:27
quelle

5 Antworten

7

"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. "

    
moonshadow 24.07.2009, 12:34
quelle
0

Für eine naive Antwort hätten wir einige (falsche) Annahmen getroffen:

  • Sowohl die SHA1- als auch die MD5-Hashing-Algorithmen führen zu einer gleichmäßigen Verteilung von Hash-Werten für einen Satz zufälliger Eingaben
  • Algorithmus Details beiseite - eine zufällige Eingabe-String hat eine gleiche Wahrscheinlichkeit, jeden Hash-Wert
  • zu produzieren

(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.

    
Greg 24.07.2009 13:16
quelle
-1
  

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.

    
samoz 24.07.2009 12:39
quelle
-1

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.

    
dr. evil 24.07.2009 12:51
quelle
-2

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).

    
Fenton 24.07.2009 12:31
quelle

Tags und Links