Funkce odvození klíče ( KDF ) je funkce, která generuje jeden nebo více tajných klíčů na základě tajné hodnoty (hlavního klíče, hesla nebo přístupové fráze) pomocí pseudonáhodné funkce [1] [2] . Funkci odvození klíče lze použít ke generování klíče požadované délky nebo formátu. Příkladem toho je transformace tajného klíče získaného jako výsledek protokolu Diffie-Hellman na symetrický klíč pro použití v algoritmu AES . Často se kryptografické hashovací funkce používají jako pseudonáhodné funkce pro generování klíče [3] .
Některé běžně používané algoritmy generování klíčů jsou bcrypt , PBKDF2 , scrypt .
Funkce odvozování klíče se často používá ve spojení s netajnými parametry k odvození jednoho nebo více tajných klíčů na základě sdílené tajné hodnoty. Takové použití může zabránit útočníkovi, který vlastní vygenerovaný klíč, aby znal původní tajnou hodnotu nebo kterýkoli z vygenerovaných klíčů. Funkce odvození klíče může být použita pro generování klíče, který splňuje požadované požadované vlastnosti (např. odstranění slabých klíčů v některých šifrovacích systémech).
Funkce generování klíčů na základě hesla se často používají k hašování hesel a jejich následnému ověření. V tomto případě se netajný parametr použitý ve spojení s tajným heslem nazývá " salt ". V roce 2013 byla vyhlášena nezávislá otevřená soutěž Password Hashing Competition s cílem vyvinout novou funkci hashování hesel. Soutěž skončila 20. listopadu 2015, vítězem se stal algoritmus Argon2 [4] . Kromě vítěze získaly zvláštní uznání čtyři algoritmy: Catena , Lyra2 , Makwa a yescrypt .