Cryptography Reference
In-Depth Information
lauter Null-Bits. Die Länge des Urbilds vor dem Auffüllen muss im Übrigen
kein Vielfaches von 8 betragen. Die 1 kann daher auch mitten in einem Byte
stehen.
3.
In die verbleibenden 64 Bit schreibe die Bit-Länge der ursprünglichen Nach-
richt. Ist das Urbild länger als 2
64
Bit (in der Praxis dürfte dies kaum vor-
kommen), dann werden nur die 64 niederwertigsten Bits verwendet.
Eine zentrale Rolle bei der Funktionsweise von SHA-1 spielen fünf 32-Bit-Varia-
blen (
Kettenvariablen
), die zusammen auch als
Status
bezeichnet werden. Wir
bezeichnen diese als
A
,
B
,
C
,
D
und
E
. Am Anfang stehen in den Kettenvariablen
(in hexadezimaler Schreibweise) die Werte
A
=67452301,
B
=EFCDAB89,
C
=98BADCFE,
D
=10325476 und
E
=C3D2E1F0. Eine weitere wichtige Rolle
spielt die sogenannte
Kompressionsfunktion
, die wir mit dem Buchstaben
f
bezeichnen wollen. Die Kompressionsfunktion nimmt den aktuellen Inhalt der
fünf Kettenvariablen sowie einen 512-Bit-Block des Urbilds entgegen und liefert
den neuen Wert der Kettenvariablen als Ausgabe.
Die Generierung eines SHA-1-Hashwerts läuft wie folgt ab: Die Kompres-
sionsfunktion wird zunächst auf
U
0
angewendet, dann auf
U
1
, dann auf
U
2
usw.
Der Inhalt der Kettenvariablen ändert sich dabei mit jedem Abarbeiten der Kom-
pressionsfunktion. Die fünf Werte, die am Ende in den Kettenvariablen stehen,
bilden zusammen den Hashwert. In Pseudocode sieht das so aus:
A
=67452301,
B
=EFCDAB89
C
=98BADCFE
, D
=10325476
E
=C3D2E1F0
Für i:=0 bis (Urbildlänge
−
1): (A,B,C,D,E):=f(U
i
,A,B,C,D,E)
Hashwert := (A,B,C,D,E)
Urbild-Block (64 Byte)
A
A
B
B
C
C
Runde 1
Runde 2
Runde 3
Runde 4
D
D
E
E
Abb. 14-2
Die Kompressionsfunktion von SHA-1 arbeitet in vier Runden.