HMAC
Ein HMAC ist ein MAC basierend auf einer kryptografischen Hash-Funktion. HMACs werden in vielen modernen Protokollen wie beispielsweise TLS oder IPsec verwendet. Ein Vorteil von HMAC ist, dass er unter gewissen Voraussetzungen als beweisbar sicher gilt. Das heißt, dass die benutzte Hash-Funktion gebrochen werden muss, um den HMAC zu brechen.
Die grundlegende Idee ist, das man die Nachricht mit einem geheimen Schlüssel verknüpft und davon einen Hash-Wert berechnet:
Im Detail sieht der HMAC wie folgt aus:
K ist der geheime Schlüssel, welcher von links mit Nullen aufgefüllt wird um die entsprechende Blocklänge zu erreichen. Die zwei Konstanten ipad und opad sind definiert als ipad = 00110110 und opad = 01011010 in binärer Form. Sie werden mit dem Schlüssel K mittels XOR verknüpft.
Weblinks
- RFC 2104, HMAC: Keyed-Hashing for Message Authentication
- RFC 2202, HMAC-MD5 and HMAC-SHA1 Test Vectors, HMAC-SHA1 implementation in C
- FIPS PUB 198, The Keyed-Hash Message Authentication Code
- HMAC Algorithm in Detail