0 Daumen
1,7k Aufrufe

Ich verstehe nicht, wieso man nicht 2^32 als Ergebnis bekommt. Wie berechnet man die Möglichkeiten für MD5?

von

Was ist MD5?                            

das ist eine Hashfunktion

Ok und weiter?              

Ja wie viele Möglichkeiten für den Hashwert gibt es?

2 Antworten

+1 Daumen
 
Beste Antwort

Ich nehme an, dass Du weißt, wie MD5 funktioniert. Ein mit MD5 berechneter Hashwert besteht aus \(32\) Hexadezimalzahlen \(z\) mit \(z\in\{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f\}\). Der MD5-Hash für das sehr schwache Passwort 'passwort' lautet z.B. \(e22a63fb76874c99488435f26b117e37\). Für jede der \(32\) Stellen gibt es \(|\{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f\}|=16\) Möglichkeiten. Insgesamt sind somit \(16^{32}\) verschiedene Hashes möglich. Du kannst die Anzahl auch über einen anderen Denkansatz berechnen. Eine Hexadezimalzahl ist nämlich durch \(4\) Bit darstellbar. Folglich kann ein MD5-Hash auch als Bitfolge der Länge \(4\cdot 32=128\) aufgefasst werden.

Daraus ergeben sich \(|\{0,1\}|^{128}=2^{128}=\left(2^{4}\right)^{32}=16^{32}\) Kombinationsmöglichkeiten. Dein Ansatz scheint mir falsch zu sein. Ist die Rechnung nachvollziehbar?

von
+1 Daumen

> wieso man nicht 232

Weil MD5 128 bits produziert, nicht 32.

> Wie berechnet man die Möglichkeiten für MD5?

Das erste bit kann zwei Werte annehmen, 0 und 1. Es gibt 2 Möglicheiten.

Für jede dieser zwei Möglichkeiten kann das zweite bit zwei Werte annehmen, 0 und 1. Es gibt 2·2 = 4 Möglicheiten.

Für jede dieser vier Möglichkeiten kann das dritte bit zwei Werte annehmen, 0 und 1. Es gibt 4·2 = 8 Möglicheiten.

etc.

von 5,3 k

Das sehe ich auch so. Seinen/ihren Ansatz habe ich auch nicht verstanden. \(16^{32}\) hätte man noch nachvollziehen können, da bei MD5 Hexadezimalzahlen die \(32\) Stellen bilden.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community