Eine Schlüsselableitungsfunktion (englisch Key Derivation Function, kurz KDF) erzeugt aus einer Eingabe — einem Passwort oder vorhandenem Schlüsselmaterial — einen oder mehrere kryptographische Schlüssel. Je nach Eingabetyp gibt es zwei Klassen von KDFs, die unterschiedliche Ziele verfolgen.

Passwortbasierte KDFs

Passwörter haben wenig Entropie und müssen erst mit Key Stretching in einen starken Schlüssel verwandelt werden. Dazu iterieren PBKDF2, bcrypt, Argon2 und scrypt eine Hashfunktion absichtlich langsam beziehungsweise speicherintensiv, damit Brute-Force-Angriffe teuer werden.

KDFs für Schlüsselmaterial

Liegt bereits hochwertiges Schlüsselmaterial vor, kommt der schnelle HMAC-basierte Standard HKDF (RFC 5869) zum Einsatz. Er arbeitet in zwei Schritten — Extract und Expand — und leitet daraus mehrere unabhängige Schlüssel ab, etwa für Verschlüsselung und Authentifizierung.

Verwandte Grundlagen: Hashfunktion, Salt, Hashing.