Cryptography Reference
In-Depth Information
9.6
Der HMAC
Während Hashfunktionen verbreitete kryptographische Bausteine sind, kann man dies
nicht über Hashfamilien sagen, wie etwa die Familie H in Definition 9.5.2, bei der Initia-
lisierungsvektoren variabel sind. Es ist festzustellen, dass in kryptographischen Bibliothe-
ken meist nur ein Mitglied einer solchen Familie implementiert ist, nämlich eine Hashfunk-
tion mit festem Initialisierungsvektor. Prinzipiell haben Familien von Hashfunktionen
auch den Nachteil, dass sich Kommunikationspartner immer auf den aktuell verwende-
ten Index (Initialisierungsvektor) einigen müssten, was zusätzlichen Aufwand bedeuten
würde. Deshalb stellt sich die Frage, ob es nicht auch möglich ist, ein symmetrisches
Authentifizierungsverfahren allein aus einer Hashfunktion zu konstruieren.
Angelehnt an die Konstruktion des NMACs haben Mihir Bellare, Ran Canetti und
Hugo Krawczyk einen entsprechenden Vorschlag gemacht, der unter dem Namen HMAC
bekannt und später auch standardisiert wurde. HMAC ist ein in der Praxis weit verbrei-
teter MAC, der in vielen Internetprotokollen eingesetzt wird, z. B. SSL/TLS, SSH und
IPsec. Obwohl HMAC ausschließlich eine einzige Hashfunktion einer Hashfamilie benutzt,
kann HMAC als eine Instanziierung von NMAC interpretiert werden. Dazu stellen wir
an die von der Hashfunktion verwendete Füllfunktion besondere Bedingungen, wie aus
der nächsten Definition hervorgeht.
Definition 9.6.1 (HMAC-kompatible Füllfunktion). Es seien b, l, r > 0 und sei D =
{
< 2 r −b . Eine Funktion p :
< 2 r
b + heißt HMAC-kompatible ( r, b, l ) -Füll-
0 , 1
}
{
0 , 1
}
→{
0 , 1
}
funktion ,wenneseineFunktion p :
0 ,..., 2 r
} gibt, so dass p ( x )= x
p (
{
1
}→{
0 , 1
·
|
x
|
)
< 2 r gilt und die Funktion p ( x )= x
p ( b +
für jedes x
∈{
0 , 1
}
·
|
x
|
) eine NMAC-kompatible
( r, D, b, l ) -Füllfunktion ist.
Da p als Füllfunktion der im HMAC verwendeten iterierten Hashfunktion dient, soll-
te p auch MD-kompatibel sein. Für das Folgende ist dies aber nicht wesentlich. Man
überzeugt sich leicht davon, dass für eine geeignete Wahl der Parameter b , l und r
die Merkle-Damgård-Füllfunktion (siehe Definition 8.4.4) eine HMAC-kompatible ( r, b, l ) -
Füllfunktion sowie eine MD-kompatible ( r, b ) -Füllfunktion ist (siehe Aufgabe 9.8.10).
Der HMAC ist nun wie folgt definiert (siehe auch Abbildung 9.1).
Definition 9.6.2 (HMAC). Es sei f eine ( l,b ) -Kompressionsfunktion, p eine HMAC-
kompatible ( r, b, l ) -Füllfunktion, u
l
|
m und 8 | b gilt. Weiter sei ipad = 00110110 und opad = 01011100 . Dann ist das
Authentifizierungsschema HMAC [ f,p,u,m ] definiert durch
∈{
0 , 1
}
und m> 0 ,sodass l
m
b mit 8
m ,T ) ,
HMAC [ f,p,u,m ]=( { 0 , 1 }
(9.6.1)
wobei T durch
< 2 r −b , k
m
T ( x, k )= h ( k o ·
h ( k i ·
x ))
für alle x
∈{
0 , 1
}
∈{
0 , 1
}
mit
h = h f, u ,
k i =( 0 b−m )
ipad b/ 8 ,
opad b/ 8
0 b−m )
k o =( k
·
gegeben ist.
Search WWH ::




Custom Search