Schlüsselableitung, englisch Key Derivation Function (KDF) ist eine kryptographische Operation, die aus einem kryptographischen Schlüssel einen oder mehrere andere erzeugt.
Eine wichtige Teilklasse der Schlüsselableitungsverfahren stellen die Schlüsselstreckungsverfahren dar. Eine Schlüsselableitungsfunktion ist PBKDF2, Bestandteil der Public-Key Cryptography Standards der RSA-Laboratorien (PKCS #5)[1].
Schlüsselableitungsfunktionen werden oft in Verbindung mit nicht geheimen Parametern verwendet, um einen oder mehrere Schlüssel aus einem geheimen Wert abzuleiten. Eine solche Verwendung kann verhindern, dass ein Angreifer, der einen abgeleiteten Schlüssel erhält, nützliche Informationen über den ursprünglichen Schlüsselwert oder einen der anderen abgeleiteten Schlüssel bekommt.
Schlüsselableitungsfunktionen können auch verwendet werden, um sicherzustellen, dass die abgeleiteten Schlüssel andere wünschenswerte Eigenschaften haben, wie die Vermeidung von schwachen Schlüsseln in einigen Verschlüsselungssystemen.
Die gebräuchlichste Verwendung von Schlüsselableitungsfunktionen ist der Passwort-Hash bei der Passwortverifizierung. Schlüsselableitungsfunktionen weisen die gewünschten Eigenschaften für eine Passwort-Hash-Funktion auf, auch wenn sie ursprünglich nicht für diesen Zweck vorgesehen waren.
Schlüsselableitungsfunktionen werden auch verwendet, um kryptografische Schlüssel aus geheimen Passwörtern oder Passphrasen abzuleiten, die typischerweise nicht die gewünschten Eigenschaften für kryptografische Schlüssel aufweisen. Dies wird Schlüsselstreckung genannt. Für solche Anwendungen wird empfohlen, das Schlüsselableitungsverfahren absichtlich rechenintensiv und somit langsam zu machen, um einen Wörterbuchangriff oder einen Brute-Force-Angriff auf das Passwort oder die Passphrase zu erschweren.