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).
Verwendung von Schlüsselableitungsfunktionen
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 Key Stretching genannt. In solchen Anwendungen wird empfohlen, dass das Schlüsselableitungsmerkmal absichtlich langsam ist, um einem Wörterbuchangriff oder einem Brute-Force-Angriff auf das Passwort oder die Passphrase zu begegnen.
Siehe auch
Weblinks
- Salted Password Hashing - Doing it Right, CrackStation.net