Funcția de derivare a cheilor ( KDF ) este o funcție care generează una sau mai multe chei secrete pe baza unei valori secrete (cheie principală, parolă sau expresie de acces) folosind o funcție pseudo-aleatorie [1] [2] . Funcția de derivare a cheii poate fi utilizată pentru a genera o cheie cu lungimea sau formatul dorit. Un exemplu în acest sens este transformarea unei chei secrete obținute ca urmare a protocolului Diffie-Hellman într-o cheie simetrică pentru utilizare în algoritmul AES . Adesea, funcțiile hash criptografice sunt folosite ca o funcție pseudo-aleatorie pentru a genera o cheie [3] .
Unii algoritmi de generare a cheilor utilizați în mod obișnuit sunt bcrypt , PBKDF2 , scrypt .
Funcția de derivare a cheilor este adesea folosită împreună cu parametrii non-secreți pentru a deriva una sau mai multe chei secrete pe baza unei valori secrete partajate. O astfel de utilizare poate împiedica un atacator care deține cheia generată să cunoască valoarea secretă inițială sau oricare dintre cheile generate. Funcția de derivare a cheilor poate fi utilizată pentru a genera o cheie care satisface proprietățile dorite (de exemplu, eliminarea cheilor slabe în unele sisteme de criptare).
Funcțiile de generare a cheilor bazate pe parole sunt adesea folosite pentru a hash parolele și apoi a le verifica. În acest caz, parametrul non-secret utilizat împreună cu parola secretă se numește „ sare ”. În 2013, a fost anunțată o competiție deschisă independentă Password Hashing Competition pentru a dezvolta o nouă funcție de hashing a parolei. Concursul s-a încheiat pe 20 noiembrie 2015, câștigător a fost algoritmul Argon2 [4] . Pe lângă câștigător, patru algoritmi au primit recunoaștere specială: Catena , Lyra2 , Makwa și yescrypt .