Zum Inhalt springen
ecdsa.com

HKDF

Die HMAC-basierte Schlüsselableitungsfunktion nach dem Extract-and-Expand-Prinzip aus RFC 5869, die ein gemeinsames Geheimnis wie die Ausgabe von ECDH in einen oder mehrere gleichverteilt zufällige Schlüssel umwandelt, die an einen Kontext-String gebunden sind.
Auch geschrieben alsHMAC-based Key Derivation FunctionHKDF-ExpandHKDF-ExtractRFC 5869

Extract verdichtet das Eingabeschlüsselmaterial mit einem Salt zu einem pseudozufälligen Schlüssel PRK = HMAC(salt, IKM); Expand dehnt diesen zu Ausgabeschlüsselmaterial OKM = T(1) ‖ T(2) ‖ … mit T(i) = HMAC(PRK, T(i−1) ‖ info ‖ i), bis zu 255 Hashlängen (8.160 Byte mit SHA-256). Der String info trennt Schlüssel für unterschiedliche Zwecke, sodass ein Geheimnis nie zweimal denselben Schlüssel ergibt.

Der gesamte Key Schedule von TLS 1.3 ist HKDF mit Labels (HKDF-Expand-Label, RFC 9846 §7.1); auch HPKE, Signal, Noise, MLS und QUIC nutzen es, und NIST lässt dieselbe zweistufige Konstruktion in SP 800-56C Rev. 2 zu.

HKDF ist kein Passwort-Hash: Es ist absichtlich schnell, deshalb schützt es ein Passwort mit wenig Entropie nicht gegen Erraten. Nutze Argon2id, scrypt oder PBKDF2 für Passwörter und HKDF für Geheimnisse mit hoher Entropie.

Standards und Quellen

Alle Begriffe