7. HKDF- and SHA-Based HMACs (HKDF und SHA-basierte HMACs)
Im Folgenden finden Sie kurze Beschreibungen und Verweise auf vollständigere Beschreibungen und Code für (1) SHA-basierte HMACs und (2) eine HMAC-basierte Extrahier-und-Erweitern-Schlüsselableitungsfunktion. Sowohl HKDF als auch HMAC wurden von Hugo Krawczyk entwickelt.
7.1. SHA-basierte HMACs (SHA-Based HMACs)
HMAC ist eine Methode zur Berechnung eines schlüsselbasierten MAC (Message Authentication Code) unter Verwendung einer Hash-Funktion, wie in [RFC2104] beschrieben. Es verwendet einen Schlüssel zum Mischen mit dem Eingabetext, um den endgültigen Hash zu erzeugen.
Beispielcode wird auch in Abschnitt 8.3 unten bereitgestellt, um HMAC basierend auf einem der hier beschriebenen SHA-Algorithmen auszuführen. Der in [RFC2104] gefundene Beispielcode wurde in Bezug auf eine angegebene Textgröße geschrieben. Da SHA in Bezug auf eine beliebige Anzahl von Bits definiert ist, wurde der HMAC-Beispielcode so geschrieben, dass die Texteingabe an HMAC eine beliebige Anzahl von Oktetten und Bits haben kann. Eine Schnittstelle mit fester Länge wird ebenfalls bereitgestellt.
7.2. HKDF
HKDF ist eine spezifische Schlüsselableitungsfunktion (Key Derivation Function, KDF), d.h. eine Funktion aus anfänglichem Schlüsselmaterial, aus der die KDF einen oder mehrere kryptographisch starke geheime Schlüssel ableitet. HKDF, das in [RFC5869] beschrieben wird, basiert auf HMAC.
Beispielcode für HKDF wird in Abschnitt 8.4 unten bereitgestellt.