Cryptography Reference
In-Depth Information
HMAC
Es gibt mehrere einfache Methoden, um aus einer kryptografischen Hashfunk-
tion eine schlüsselabhängige Hashfunktion zu konstruieren ( k ist im Folgenden
der Schlüssel, U das Urbild, H eine kryptografische Hashfunktion und h der
Hashwert). Von diesen einfachen Methoden gilt folgende als die beste: h =
H ( k , U , k ). Der Schlüssel wird also sowohl vor dem Urbild als auch dahinter plat-
ziert. Allerdings hat diese Methode theoretische Schwächen [PreOor], weshalb
sie oft gemieden wird.
Als sicher gilt dagegen eine Methode namens HMAC (»H« steht hierbei für
Hashfunktion; »MAC« ist, wie erwähnt, ein anderes Wort für eine schlüsselab-
hängige Hashfunktion). Die HMAC-Methode ist mehrfach standardisiert
[RFC2104, RFC2202, FIPS-198]. Sie lässt sich mit jeder beliebigen kryptografi-
schen Hashfunktion realisieren, vorteilhaft ist jedoch eine Funktion, die auf die
gängige Art mit einem Status arbeitet. Ist b die Blocklänge der Hashfunktion,
dann muss die Schlüssellänge ebenfalls b betragen (falls notwendig wird ein kür-
zerer Schlüssel mit Null-Bits aufgefüllt). Zur Definition von HMAC benötigen
wir außerdem die beiden Variablen opad und ipad . Beide sind Bit-Folgen der
Länge b . opad besteht aus lauter Bytes mit dem Wert 01011100, ipad aus lauter
Bytes mit dem Wert 00110110. Eine HMAC-Funktion ist nun wie folgt definiert
(»||« steht für die Konkatenation):
h = H (( k
opad)||H (( k
ipad ) ||U) )
Die verwendete kryptografische Hashfunktion kommt also doppelt zum Einsatz.
Dieser Nachteil lässt sich kompensieren, wenn derselbe Schlüssel für unterschied-
liche Urbilder verwendet wird und ein mit Status arbeitendes Verfahren wie SHA-
1 verwendet wird. In diesem Fall hat k
opad immer denselben Wert, wodurch
die Initialisierung des Status für eine der beiden Abarbeitungen der Hashfunktion
vorberechnet werden kann. Durch diese Besonderheit sind HMAC-Funktionen
relativ performant. Obendrein gelten sie als sicher. Kein Wunder, dass sie in der
Praxis häufig eingesetzt werden.
CBC-MAC
Es gibt zahlreiche Möglichkeiten, aus einem symmetrischen Verschlüsselungsver-
fahren eine schlüsselabhängige Hashfunktion zu generieren. Die wichtigste
davon hat den Namen CBC-MAC . Diese Methode ist mit jeder beliebigen Block-
chiffre (z.B. AES) anwendbar. Sie sieht vor, dass Alice das Urbild im CBC-Modus
verschlüsselt (mit k als Schlüssel). Der letzte Block des Geheimtexts ist der Hash-
wert. Als Initialisierungsvektor wird meist eine Folge von Null-Bits verwendet,
zudem ist ein Padding des Urbilds notwendig.
Die Idee des CBC-MAC ist schon recht alt. Bereits 1985 wurde diese
Methode in Form des (inzwischen nicht mehr gültigen) US-Standards FIPS-113
standardisiert. Als symmetrisches Verschlüsselungsverfahren ist dabei der DES
Search WWH ::




Custom Search