2012-04-09 4 views
0

Ich sah in der Implementierung von SHA2 in Python und es sieht aus wie es einen Standardschlüssel für Hash verwendet . Wenn der Schlüssel bekannt ist und der Digest bekannt ist, ist es möglich, den Klartext zurück zu bekommen? (Vorimage-Angriff ohne Brute-Force) http://en.wikipedia.org/wiki/Preimage_attackSHA2 - Warum ist es schwierig (eigentlich unmöglich ohne Brute-Force), die Nachricht wiederherzustellen, wenn Sie den Digest und den Schlüssel haben

Meine Intuition sagt NEIN, da die Blockgröße (Eingangsgröße) 512 Bit und die Ausgangsgröße 256 Bit ist. Es bedeutet, dass die Funktion (um kryptografisch) eine gute Hashing-Funktion zu sein, eine Funktion von viel zu eins (nicht invertierbar) sein sollte. {Dies ist das genaue Gegenteil zu der Anforderung einer Blockchiffre, bei der die Funktion invertierbar sein sollte (eins zu eins).}

Soweit ich verstanden habe, ist die Anforderung eine zufällige Viele-zu-Eins-Funktion!

Antwort

4

Es ist unmöglich, auch mit Brute Force, den einfachen Text für einen bestimmten Hash wiederherzustellen, da es viele Texte gibt, die demselben N-Bit-Schlüssel zugeordnet sind (für jeden Wert von N). Das heißt, es gibt verschiedene Nachrichten, die denselben Digest-Wert haben.

+0

Ja, aber es ist wahrscheinlich, dass nur ein paar nicht vollständig verstümmelten Unsinn sind (was man programmgesteuert überprüfen kann). –

+1

@arxanas Falsch, der Begriff heißt "Entropie". Wenn der Hash-Wert wesentlich weniger Entropie ist als die Nachricht, dann könnte es (exponentiell) viele gültige Nachrichten geben, die zum selben Digest hashen. – Mysticial

+0

Definieren Sie "gültig". –