Dark ITSec

SHA Secure Hash Algorithm

NIST entwickelte zusammen mit NSA den Secure Hash Algorithm für den Einsatz mit dem Digital Signature Standard. SHA produziert einen 160 Bit langen Hashwert.

Beschreibung des Algorithmus
Zuerst wird die Nachricht wie bei MD5 auf ein Vielfaches von 512Bit gebracht. Anschliessend werden 5 Variablen initialisiert:

A = 0x67452301
B = 0xefcdab89
C = 0x98badcfe
D = 0x10325476
E = 0xc3d2e1f0

Danach beginnt die Hauptschleife, die für alle Blöcke wiederholt wird.

Nicht lineare Funktionen:
ft(X, Y, Z) = (X and Y) or ((not X) and Z)              für t = 0 bis 19
ft(X, Y, Z) = X ^ Y ^ Z                                        für t = 20 bis 39
ft(X, Y, Z) = (X and Y) or (X and Z) or (Y and Z)    für t = 40 bis 59
ft(X, Y, Z) = X ^ Y ^ Z                                        für t = 60 bis 79

Der Nachrichtenblock von 16 32Bit Wörtern (M0 - M15) wird in 80 32Bit Wörter (W0 - W79) umgewandelt:

Wt = Mt       für t = 0 bis 15
Wt = (W(t-3) ^ W(t-8) ^ W(t-14) ^ W(t-16)) <<< 1 für t = 16 - 79

Schliesslich wird abcde zu ABCDE addiert und der nächste Block in Angriff genommen.
Die Ausgabe besteht aus der Zusammensetzung von ABCDE.