A Key derivation function ( KDF ) egy olyan függvény, amely egy vagy több titkos kulcsot generál egy titkos érték (főkulcs, jelszó vagy jelmondat) alapján pszeudo-véletlen függvény [1] [2] segítségével . A kulcs levezetési funkcióval a kívánt hosszúságú vagy formátumú kulcs generálható. Példa erre a Diffie-Hellman protokoll eredményeként kapott titkos kulcs átalakítása szimmetrikus kulccsá az AES algoritmusban való használatra . A kriptográfiai hash függvényeket gyakran pszeudo-véletlen függvényként használják kulcs generálására [3] .
Néhány gyakran használt kulcsgeneráló algoritmus a bcrypt , PBKDF2 , scrypt .
A kulcs-levezetési függvényt gyakran nem titkos paraméterekkel együtt használják egy vagy több titkos kulcs származtatására egy megosztott titkos érték alapján. Az ilyen használat megakadályozhatja, hogy a generált kulcs birtokában lévő támadó megismerje az eredeti titkos értéket vagy a generált kulcsok bármelyikét. A kulcs-levezetési funkció használható olyan kulcs létrehozására, amely megfelel a kívánt tulajdonságoknak (pl. egyes titkosítási rendszerekben a gyenge kulcsok kiküszöbölése).
A jelszó alapú kulcsgenerálási funkciókat gyakran használják a jelszavak kivonatára, majd ellenőrzésére. Ebben az esetben a titkos jelszóval együtt használt nem titkos paramétert " sónak " nevezik. 2013-ban független nyílt versenyt hirdettek meg a Password Hashing Competition néven egy új jelszókivonatoló funkció kifejlesztésére. A verseny 2015. november 20-án ért véget, a győztes az Argon2 algoritmus [4] lett . A nyertes mellett négy algoritmus kapott külön elismerést: a Catena , a Lyra2 , a Makwa és a yescrypt .