Key derivation function ( KDF ) är en funktion som genererar en eller flera hemliga nycklar baserat på ett hemligt värde (huvudnyckel, lösenord eller lösenfras) med hjälp av en pseudo-slumpmässig funktion [1] [2] . Funktionen för nyckelhärledning kan användas för att generera en nyckel med önskad längd eller format. Ett exempel på detta är omvandlingen av en hemlig nyckel som erhålls som ett resultat av Diffie-Hellman-protokollet till en symmetrisk nyckel för användning i AES -algoritmen . Ofta används kryptografiska hashfunktioner som en pseudo-slumpmässig funktion för att generera en nyckel [3] .
Några vanliga nyckelgenereringsalgoritmer är bcrypt , PBKDF2 , scrypt .
Nyckelhärledningsfunktionen används ofta i kombination med icke-hemliga parametrar för att härleda en eller flera hemliga nycklar baserat på ett delat hemligt värde. Sådan användning kan förhindra att en angripare som har den genererade nyckeln känner till det ursprungliga hemliga värdet eller någon av de genererade nycklarna. Nyckelhärledningsfunktionen kan användas för att generera en nyckel som uppfyller önskade önskade egenskaper (t.ex. eliminering av svaga nycklar i vissa krypteringssystem).
Lösenordsbaserade nyckelgenereringsfunktioner används ofta för att hasha lösenord och sedan verifiera dem. I det här fallet kallas den icke-hemliga parametern som används tillsammans med det hemliga lösenordet " salt ". 2013 tillkännagavs en oberoende öppen tävling Password Hashing Competition för att utveckla en ny lösenords-hashningsfunktion. Tävlingen avslutades den 20 november 2015, vinnaren var Argon2- algoritmen [4] . Förutom vinnaren fick fyra algoritmer särskilt erkännande: Catena , Lyra2 , Makwa och yescrypt .