FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Angewandte Informatik (HS)

GBI: MAC / HMAC

GBI: MAC / HMAC 2005-10-08 21:44
Popcorn
Ich konnte mir bisher keinen Reim auf diese Aufteilung machen:

Message Authentication Code und Hashed Message Authentication Code. Bei der MAC wird eine kryptografische Hashfunktion verwendet. Zu HMAC kann man nachlesen, dass dies eine MAC ist, die auf einer Hashfunktion basiert.

Tolle Unterscheidung auch. Was soll das?

Re: GBI: MAC / HMAC 2005-10-09 00:02
Anonymer User
hai, hab nachgelesen das ein MAC ähnlich wie ein HASH funktioniert, jedoch keine feste Länge des Ausgabewertes besitzt (und natürlich das das Ergebnis verschlüsselt ist).
HMAC kombiniert beides.

Re: GBI: MAC / HMAC 2005-10-09 00:08
Popcorn
Super, dankeschön!

RE: GBI: MAC / HMAC 2008-02-18 23:30
Southwood
GBI naht und ich hänge…

Es geht um die HMAC-Funktion:
(das wichtigste habe ich von http://einstein.informatik.uni-oldenburg.de/rechnernetze/seite27.htm kopiert)

HashValue = H(K xor OPAD + H(K xor IPAD + text))

H: Hashalgorithmus,
B: Eingabeblocklänge des Hashalgorithmus H (z.B. 64 Bytes bei MD5 und SHA-1),
L: Länge des Haswerts (Fingerabdrucks) des Hashalgorithmus H (z.B. L=16 Bytes bei MD5 und L=20 Bytes bei SHA-1),
S: Schlüssel der Länge k<B,
K=S+(00_16)B-k, oder falls k>B: K=H(S)+(00_16)B-L,
IPAD = (0011 01102)B = (36_16)B, innerer Pad,
OPAD = (0101 11002)B = (5C_16)B, äußerer Pad.


Und nun meine Fragen:

Warum wird der Key mit dem IPAD XOR-verknüpft? Der Schlüssel gewinnt doch dadurch nichts.

Warum zwei Iterationen? Um bei kurzen Nachrichten trotzdem die Kompressionseigenschaft zu erhalten?

Außerdem verstehe ich bei den angebenen Werten die Zeile für I und OPAD nicht so ganz.


…hilfe!…

RE: GBI: MAC / HMAC 2008-02-21 16:49
Wulf
Zum Zweck der zwei Iterationen und IPAD/OPAD kann ich nur raten. Möge ein Experte das bestätigen oder berichtigen!

Ich vergleiche HMAC mal mit einer üblichen MAC-Funktion:
M = H(text, K)
Als Angreifer kennst du den text und auch den MAC M, aber nicht den Schlüssel K.
Du kennst also den Anfang von der Eingabe für den Hash, und den Ausgabewert. Es ist nicht *so* schwierig, daraus K zu erraten; im Regelfall findet hier auch keine Kompression mehr statt. Wenn die Umkehrung deiner Hashfunktion einfach ist, ist der MAC schon geknackt und du hast den Key.

Bei HMAC kennst du weder Anfang noch Ende der Eingabe. Du kennst nur die Länge von der Eingabe; diese ist B + L (häufig 64 + 20 = 84). Die Ausgabe ist L (20).
In den B Bytes sind, wenn man der Empfehlung im RFC gerade so folgt, B-L Bytes bekannt; bleiben noch L*2 unbekannte Bytes, die auf L abgebildet werden.
HMAC komprimiert also in jedem Fall, wodurch eine Umkehrung unmöglich ist, selbst wenn die HASH-Funktion nicht so toll ist.
Die verschiedenen PADs dienen vermutlich dazu, Schwächen in HASH-Funktionen zu umgehen, die auftreten *könnten* wenn du die Funktion 2x direkt nacheinander auf denselben oder ähnlichen Daten anwendest.

Hier noch ein Beispiel zur Berechnung eines HMAC:

H: sha1
S: "nikolaus"
B: 64 byte (aus SHA-1 Spezifikation)
L: 20 byte (auch daher)
text: "Bismarck biss Mark, bis Mark Bismarck biss."

K:
6e 69 6b 6f 6c 61 75 73 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

ipad:
36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36

opad:
5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c
5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c
5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c
5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c 5c

K xor ipad:
58 5F 5D 59 5A 57 43 45 36 36 36 36 36 36 36 36
36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36

K xor opad:
32 35 37 33 30 3D 29 2F 5C 5C 5C 5C 5C 5C 5C 5C
5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C
5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C
5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C

K XOR ipad, text:
58 5F 5D 59 5A 57 43 45 36 36 36 36 36 36 36 36
36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36
42 69 73 6d 61 72 63 6b 20 62 69 73 73 20 4d 61
72 6b 2c 20 62 69 73 20 4d 61 72 6b 20 42 69 73
6d 61 72 63 6b 20 62 69 73 73 2e

H(K XOR ipad, text):
74 65 68 CC EF 80 3E 11 DB 41 A2 CC C4 C2 AE 70
EB 97 14 CD

K XOR opad, H(K XOR ipad, text):
32 35 37 33 30 3D 29 2F 5C 5C 5C 5C 5C 5C 5C 5C
5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C
5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C
5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C 5C
74 65 68 CC EF 80 3E 11 DB 41 A2 CC C4 C2 AE 70
EB 97 14 CD

H(K XOR opad, H(K XOR ipad, text)):
D3 24 19 48 94 87 E0 3F 86 F4 A9 8C 7C 64 96 72
61 60 FB 10

hth