Was würde passieren, wenn das Pre-Image oder die Kollisionsresistenz von SHA256 gebrochen würde?

Ich experimentiere mit Kryptografie zum Selbststudium und war neugierig auf die beiden folgenden Szenarien (einfache Antworten und/oder in Bezug auf Bitcoin)

Wenn festgestellt wird, dass SHA256 keinen Pre-Image-Widerstand aufweist, würde dies die Lösung des Rätsels erleichtern?

Alternativ, wenn sich herausstellt, dass der Algorithmus nicht kollisionsbeständig ist – wäre das Rätsel wieder einfacher zu lösen?

Danke

Antworten (2)

Preimage-Resistenz und Kollisionsresistenz sind nicht absolut, sie sind nur eine Frage des Rechenaufwands, der notwendig ist, um bestimmte Probleme zu lösen. Beispielsweise wird für eine ideale Hash-Funktion mit 256-Bit-Ausgabe eine Ordnung von 2.256 Bewertungen benötigt, um ein Urbild zu finden, und eine Ordnung von 2.128 Bewertungen wird benötigt, um eine Kollision zu finden. Alles andere gilt als Angriff.

Wenn Sie beispielsweise Kollisionen mit nur 2 124 Auswertungen finden (und nicht weil Sie Glück haben, sondern weil Sie einen funktionsspezifischen Ansatz verwenden), ist dies ein Angriff, aber nicht praktikabel, da 2 124 immer noch immens groß ist .

Darüber hinaus müssen Sie für das Bitcoin-Mining nur partielle Preimages finden, keine vollständigen Preimages. Um beispielsweise einen Wert zu finden, bei dem die ersten 50 Bits seines Hashs Nullen sind, benötigen Sie 2 50 Hash-Auswertungen, vorausgesetzt, der Hash ist ideal. Und es gibt ein Problem: Wenn der Hash nicht preimage-resistent ist (also zum Beispiel nur 2 240 Auswertungen benötigt, um ein preimage zu finden, anstatt 2 256 ), sagt dies nichts über die Resistenz gegen das Finden von partiellen preimages ( Das obige Problem kann also immer noch 2 50 Bewertungen erfordern, aber möglicherweise nur 2 34). Und fehlender Kollisionswiderstand sagt überhaupt nichts über die Schwierigkeit aus, partielle Urbilder zu finden. Bitcoin ist jedoch an anderen Stellen auf die Kollisionsresistenz von SHA256 angewiesen, daher ist es immer noch wichtig.

Jede kollisionsresistente Hash-Funktion H k : {0,1} * → {0,1} k ist vorbildresistent bezüglich der Gleichverteilung auf {0,1} 2k .

A ⇒ B ⇔ ¬B ⇒ ¬A: Dh wenn eine Funktion nicht preimageresistent ist, ist sie auch nicht kollisionsresistent.

SHA256 ist eine Funktion, die eine potenziell unbegrenzte Menge von Zahlen auf eine kleinere Menge von Zahlen abbildet.

H k : {0,1} * → {0,1} k

Kollisionsfestigkeit ist eine Eigenschaft, die grob sagt, dass es schwierig ist, zwei inverse Bilder X ≠ X' zu finden , die dasselbe Bild H(X) = H(X') haben .

Genauer gesagt:
Eine Funktion Hist kollisionsresistent , wenn jeder Algorithmus eine Kollision nur mit vernachlässigbarer Wahrscheinlichkeit in probabilistischer Polynomialzeit finden kann.

Dh wenn sich SHA256 als nicht kollisionsresistent herausstellen würde , könnte man versuchen, Hashes auszuwählen, die bei der aktuellen Schwierigkeit erfolgreich wären, die oben vorhergesagte Umkehrfunktion von SHA256 verwenden, um inverse Bildkandidaten zu berechnen , und schließlich prüfen, ob man sie damit zufrieden stellen kann aktuell verfügbarer Blockeingang.

Mein Bauchgefühl wäre jedoch, dass es ziemlich schwierig wäre, inverse Bilder zu finden, die auch die erforderliche Struktur der Blockeingabe erfüllen, insbesondere den Hash des übergeordneten Blocks richtig zu machen und eine Adresse abzugleichen, die man für die Coinbase-Transaktion kontrolliert.

Leider habe ich keine Ahnung, ob die Komplexität größer oder kleiner als das Bruteforce-Mining wäre.

Ich lerne gerade für eine Prüfung, deren Thema Kollisionsfestigkeit, Pre-Image-Resistenz und so weiter umfasst. Bitte berücksichtigen Sie also, dass ich keineswegs ein Kryptographie-Experte bin, bevor Sie auf meiner Antwort aufbauen. :)
Ich dachte, Pre-Image-Resistenz und Kollisionsresistenz schließen sich gegenseitig aus? Es ist eher eine Beziehung zwischen Kollisionswiderstand und sekundärem Pre-Image-Widerstand, oder?
@mcdoomington: Target Collision Resistance (oder Second Pre-Image Resistance) liegt zwischen den beiden: Für große Domains, die in kleinere Bildsätze gehasht werden, ist es Collision Resistance ⇒ Second Pre-Image Resistance ⇒ Pre-Image resistance. Siehe auch Bedeutet Kollisionsresistenz (oder nicht) Second-Preimage-Resistenz?