Cryptografie: Warum kann man Hashes nicht knacken?

the snake II

Erfahrenes Mitglied
Hallo zusammen,

ich hoffe ich bin richtig, wenn ich eine Frage zum Thema Cryptografie habe.

Warum kann man Hashes nicht "zurückrechnen"? MD5 z.B. erzeugt einen Hash den man angeblich nicht zurückverfolgen kann.
Nun, vermutlich irre ich mich, aber rein theoretisch muss das doch möglich sein, denn das hashen von Zeichenketten muss eine mathematische Operation sein, die nicht zufällig sein kann, denn jede Zeichenkette hat "ihren eigenen" hash, den sie bei jedem verschlüsseln wider bekommt.
Dahinter steckt, so mutmaße ich, ein Algorithmus, oder? Und da jeder Hash eindeutig ist, muss man diesen Algorithmus doch rückgängig machen können, oder nicht?

PS: Das ist nur eine Intressefrage. Ich will keinesfalls einen MD5-decoder (o.Ä.) programmieren!
 
Ein Hash ist keine Verschlüsselung, sondern eine Beschränkung von Zeichenketten auf eine bestimmte Anzahl von Zeichen (bei MD5 32 Bit, also 32 Zeichen). Deshalb kann es auch vorkommen, dass einige Zeichenketten den selben Hashwert besitzen (Kollision).

Wenn du wissen willst, wie ein Hash funktioniert, solltest du mal hier vorbeisehen!
http://www.lexikon-definition.de/Hash-Funktion.html
 
Hi.

Sagen wir du hast eine 1GB große Datei. Von der errechnest du dir den 128bit großen MD5-Hash.

Jetzt hast du eine 1kb große Datei. Von der errechnest du wieder den 128bit großen MD5-Hash.

Na? Was fällt dir jetzt mal auf. Genau, jede beliebige Datenmenge wird auf 128bit abgebildet.

Hash funktionen bilden also eine beliebig große Menge von Daten auf eine kleinere Menge ab.

Mehr dazu findest bei Wikipedia: Hash-Funktion MD5

PS: Das ist nur eine Intressefrage. Ich will keinesfalls einen MD5-decoder (o.Ä.) programmieren!
Könntest eh nicht. :D

MfG,
Alex
 
Und da jeder Hash eindeutig ist
Hier liegt dein Fehler. Überleg mal, z. B. beim MD5-Hash gibt es genau ähm … *grübel* ich glaube 16^32 Möglichkeiten. Das sind zwar sehr viele, ohne Frage, aber es gibt weitaus mehr Dateien. Also müssen zwangsläufig zwei Dateien (oder meinetwegen auch Strings) den gleichen Hash haben – deshalb ist er nicht eindeutig und kann nicht zurückberechnet werden.
 
Oder pseudomathematisch ausgedrückt: Die Abbildung einer Zeichenkette auf einen MD5-Hash ist eindeutig, aber nicht eineindeutig (= umkehrbar eindeutig).

Oder mit einem Beispiel auf niedrigerem Level: Betrachte die Zeichenkette als Zahl und den Hash als deren Quersumme. Bsp: 13 hat Quersumme 4, 121 hat auch Quersumme 4. Die Quersumme 4 kann also nicht eindeutig einer Zahl zugeordnet werden (insbesondere gibt es unendlich viele Zahlen, deren Quersumme 4 ist).
 
Exakt diese Frage habe ich in einem anderen Thread schon mal beantwortet -- wieder mal ein klassischer Fall für die Suchmaschine. :rolleyes:
 

Neue Beiträge

Zurück