Cryptography Reference
In-Depth Information
Sonst ist die Leistung der eigenständigen Hashfunktionen etwa doppelt so hoch wie für die
Hashfunktion auf Basis der AES-Block-Chiffre. Die weiteren Eigenschaften von Tab. 3-1
werden in den folgenden Unterkapiteln diskutiert.
3.3.1 MD5
Der Algorithmus MD5 war Vorbild für viele Hash-Algorithmen. Deshalb hier ein kurzer Blick
auf die prinzipielle Arbeitsweise von MD5.
Die Nachricht, für die der Hashwert ermittelt werden soll, wird in Blöcke von jeweils 512 Bit
unterteilt. Der letzte Block wird durch Padding und eine Längenangabe aufgefüllt. Die Län-
genangabe markiert die Grenze zwischen Nachricht und Padding. Jeder 512-Bit-Block wird
wiederum in 16 Wörter w j (j=0...15) zu je 32 Bit heruntergebrochen. Die Verarbeitung eines
Blocks erfolgt in 64 Runden , wobei je eines der 16 Wörter w i einfließt. Jedes 32-Bit-Wort w j
wird dabei in 4 unterschiedlichen Runden verwendet.
B
A
C
D
Abb. 3-3: MD5-Algorithmus. Der Algorithmus
arbeitet mit einem Zustand von 4 Worten zu je 32
Bit, die mit A, B, C, D bezeichnet sind. Der Zu-
stand von 4*32=128 Bit liefert am Ende der Nach-
richt den Hashwert.
F
M i
Es bedeuten:
F eine Funktion, die einen 32-Bit-Wert liefert,
eine Addition mod 2 32 ,
<<<s einen zyklischen Links-Shift um s Stellen,
M i ein 32-Bit-Wort der Nachricht,
K i eine 32-Bit-Konstante für die Runde i.
K i
<<<s
Das Bild zeigt eine Runde, die für jeden Block
64mal durchlaufen wird.
A
B
C
D
Der MD5 arbeitet mit einem Zustand von 4 Worten zu je 32 Bit, die in Abb. 3-3 mit A, B, C,
D bezeichnet sind. Anfangs vor dem ersten Block werden die 32-Bit-Wörter (A, B, C, D) je
mit einer definierten Konstanten vorbelegt. Am Ende der Nachricht liefert dieser Zustand den
Hashwert von 4*32=128 Bit.
Abb. 3-3 zeigt eine „Runde“. Innerhalb einer Runde werden die Wörter (B, C, D)/ alter Zu-
stand den Wörtern (C, D, A)/ neuer Zustand entsprechend den Pfeilen in Abb. 3-3 zugewiesen.
Die Zuweisung an das Wort B/neu erfolgt über eine Funktion F i (B, C, D). Deren Ausgang
wird mit dem Wort A, einem Nachrichtenwort M i und mit einer Konstanten K i modulo 2 32
addiert. Es folgt ein zyklischer Links-Shift um s Stellen, und schließlich wird das Wort B mod
2 32 addiert. In jeder Runde wird mit M i ein 32-Bit-Wort der Nachricht verarbeitet.
B
A
F (B, C, D)
M
K
B
dabei "
" Addition mod ulo 2
32
(3.3-1)
neu
i
i
i
Search WWH ::




Custom Search