Hash-Funktionen: Kollisionen und preimage-attack

Neue Frage »

MrWoodpecker Auf diesen Beitrag antworten »
Hash-Funktionen: Kollisionen und preimage-attack
Erstmal noch ein frohes neues Jahr, an alle die das hier lesen smile

Hey,
ich sitze schon seit etwas längerer Zeit an einer bzw. an zwei Fragen, mit denen ich noch nicht so richtig umzugehen weiß.

Ich darf noch keine URLs posten, deswegen habe ich im Text alle Links gekennzeichnet und ganz unten eine Übersicht erstellt - sorry dafür, aber eine andere Lösung ist mir dazu nicht eingefallen...

Es geht um folgende Aufgaben:

Geben Sie an, wie die Wahrscheinlichkeiten,
- zu einem gegebenen Hash-Wert einen passenden Text zu finden (Teilaufgabe 1)
- zwei Texte mit gleichem Hash-Wert zu finden (Teilaufgabe 2)
von der Länge des Hash-Wertes anhängt.

---

Zu Hash-Funktionen habe ich mittlerweile eine ganze Menge gelesen und verstanden:
Wir haben eine Hash-Funktion mit , wobei die Eingabegröße und der Hash-Wert von ist.

zu Teilaufgabe 1:
Hier bin ich immerhin schonmal soweit, dass ich sagen kann, dass es sich um eine ( Link 1 ) preimage-attack handelt.
Also:
Wir haben ein und suchen ein für das gilt .
Hier habe ich mich noch gar nicht weiter mit beschäftigt. Vielleicht könnten wir uns erstmal Teilaufaufgabe 2 anschauen. smile

zu Teilaufgabe 2:
Das habe ich erstmal als Kollision ausgelegt. Also quasi mit . Was bedeuten würde, dass zwei völlig verschiedene Dateien die gleiche Signatur bekommen würden.
Also habe ich mich dazu etwas belesen und bin dann relativ schnell zum "( Link 2 ) Geburtstagsparadoxon" gedrängt worden. Dazu bin ich auf einen ( Link 3 ) Foliensatz der Uni Potsdam (ab PDF-Seite 9) gestoßen, der mir auch weitergeholfen hat.

Auf Seite 10 sind dann Beispiele für die Kollisionen mehrere Hash-Werte innerhalb einer Hash-Funktion.

Beispiel 1:
Das Alphabet:
Anzahl aller Möglichkeiten für eine 32-Bit Hash-Funktion
Anzahl der zu finden Kollisionen

Dann wäre meine Formel:
für

Das würde zu einer allgemeinen Formel


Beispiel 2:


...

Dazu wäre meine Frage, ob ich mich damit auf dem richtigen Weg befinde, oder ist das kompletter Blödsinn, den ich hier fabriziert habe?
Ich bin ehrlich gesagt noch nicht 100%ig von meinem Vorgehen überzeugt.

Danke für die Mühe - ich hoffe mir kann jemand helfen. smile
MrWoodpecker Auf diesen Beitrag antworten »
Die Links
Das mit den Links funktioniert leider auch so nicht Big Laugh ...

code:
1:
2:
3:
4:
Link 1 - Wikipedia -> Preimage-Angriff
Link 2 - Wikipedia -> Geburtstagsparadoxon 
Link 3 - cs.uni-potsdam.  
           de/ti/lehre/05-Kryptographie/slides/bremser_crypt-hashpdf.pdf
HAL 9000 Auf diesen Beitrag antworten »

Zitat:
Original von MrWoodpecker
Geben Sie an, wie die Wahrscheinlichkeiten,
- zu einem gegebenen Hash-Wert einen passenden Text zu finden (Teilaufgabe 1)
- zwei Texte mit gleichem Hash-Wert zu finden (Teilaufgabe 2)
von der Länge des Hash-Wertes anhängt.

Irgendwie fehlt mir da noch eine Information: Es sollte doch zumindest auch noch die Anzahl der hier betrachteten Texte bekannt sein, vielleicht auch als Parameter für die Lösungsangabe? verwirrt

Und ich gehe mal davon aus, dass die Hash-Werte unterschiedlicher Texte als unabhängig, identisch gleichverteilt in der Menge der möglichen Werte angenommen wird.
MrWoodpecker Auf diesen Beitrag antworten »

Hey,

die Aufgabenstellung oben ist alles, was ich zu dem Thema bekommen habe. Keine zusätzlichen Informationen. Der Dozent meinte nur "Sie kriegen das schon hin"..

Zitat:
Und ich gehe mal davon aus, dass die Hash-Werte unterschiedlicher Texte als unabhängig, identisch gleichverteilt in der Menge der 2L möglichen Werte angenommen wird.


Das denke ich auch..
HAL 9000 Auf diesen Beitrag antworten »

Naja gut, in dem Fall würde ich diese Anzahl an Texten als Parameter aufnehmen, von dem das Ergebnis dann abhängig ist - ist einfach notwendig!

Zu Teilaufgabe 1: Betrachte das Gegenereignis, d.h. dass alle Texte nicht den vorgegebenen Hashwert haben. Wegen der angenommenen Unabhängigkeit ist die Wahrscheinlichkeit dieses Gegenereignisses gleich .


Bei der an sich schwierigerenTeilaufgabe 2 hast du ja schon den richtigen Ansatz ("Geburtstagsproblem"), allerdings betrachtest du in deiner Formel nur den Fall , warum auch immer. Allgemein wäre mit der Wahrscheinlichkeit zu arbeiten.
MrWoodpecker Auf diesen Beitrag antworten »

Hey,

danke schonmal für die Hilfe smile

Ich habe jetzt mal ein bisschen was zusammengebastelt:

zu Teilaufgabe 1:

zur Erinnerung: zu einem gegebenen Hash-Wert einen passenden Text finden

Wir haben nun also festgelegt, dass



ist.

Ich habe erstes eine Art allgemeine Aussage formuliert:

Die Wahrscheinlichkeit, dass zu einem gegeben Hash-Wert der Hash-Funktion mit der Länge ein passender Text aus Texten gefunden wird.

---

ist die Anzahl der Texte
ist die Länge der Hash-Werte in Bit

Beispiel 1:

(32-Bit-Hash-Funktion)









(128-Bit-Hash-Funktion)









...

Das kann man natürlich dann unendlich weiter spinnen. Aber es zeigt eben, dass umso länger ein Hash-Wert ist, desto geringer wird die Wahrscheinlichkeit eine Kollision zwischen Texten.

---

Man könnte die Formel ja auch noch umbauen um zu errechnen, wie viele Texte man generieren müsste um mit sehr großer Wahrscheinlichkeit auf den gesuchten Hash-Wert zu treffen.

Beispiel 2:













Also kann man allgmein sagen:

Um zu einen gegeben Hash-Wert mit hoher Wahrscheinlichkeit einen passenden Text zu finden, kann man mit Hilfe von



errechnen.

Das müsste doch so der Aufgabe entsprechen, oder?

zu Teilaufgabe 2:

zur Erinnerung: zwei Texte mit gleichem Hash-Wert finden (Kollision)

Wir haben nun also festgelegt, dass



ist.

Beispiel 3:

Für und würde es also wie folgt aussehen:



Das entspricht also der Wahrscheinlichkeit bei 100 generierten 32-Bit-Hash-Werten mindestens eine Kollision zu finden.

---

Das lässt sich dann natürlich auch alles in größeren Dimensionen berechnen - z.B. für 128-Bit-Hash-Funktionen mit mehr Texten usw.

Auch hier wird sicherlich zu erkennen sein, dass mit größerer Länge eines Hash-Wertes auch die Kollisionswahrscheinlichkeit sinken wird.

Mit der auf Seite 11 vorgestellten Formel (cs.uni-potsdam) lässt sich dann noch berechnen wie viele Zeichenketten es braucht um zwei gleiche Zeichenketten in zu finden (mit einer Wahrscheinlichkeit von 50%, wobei man hier auch variieren könnte um wieder eine möglichst hohe Wahrscheinlichkeit zu erreichen)



Beispiel 4:





Das würde doch bedeuten, dass man 77333 Hash-Werte erzeugen müsste um mit 50% Wahrscheinlichkeit eine Kollision dabei zu haben.
Aber die Wahrscheinlichkeit auf Teilaufgabe 1 (also zu einem gegebenen Hash-Wert einen Text zu finden) liegt bei:



Mehr fällt mir nun zu Teilaufgabe 2 nicht ein...

Ich wäre dankbar, wenn sich nochmal jemand meine Gedanken dazu anschauen und mir seine Meinung dazu schreiben könnte.
Danke für die Mühe smile
 
 
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »