Funzione di derivazione della chiave
Trasforma un segreto in una chiave della lunghezza e della forma giuste — ma quale KDF scegliere dipende interamente da quanto fosse buono il segreto di partenza.
Una KDF prende un segreto e produce uno o più elementi di materiale crittografico. La famiglia si divide in due rami che risolvono problemi opposti, e confonderli è tra gli errori crittografici più comuni.
Un ramo parte da entropia bassa, cioè le password, e deve essere volutamente lento e vorace di memoria per frenare la ricerca esaustiva: PBKDF2, bcrypt, scrypt e Argon2. L'altro parte da materiale che ha già entropia alta — per esempio l'esito di uno scambio Diffie-Hellman — e deve solo uniformarlo ed espanderlo, in fretta. È il compito di HKDF, che prima estrae e poi espande. Applicare HKDF a una password non impone alcun costo all'attaccante.