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.