Derivare una chiave crittografica significa ricavare una o più chiavi crittografiche da una chiave principale (in inglese detta solitamente master key) o da altra informazione disponibile, ad esempio una password o una passphrase.[1][2] Ciò viene fatto in base ad una opportuna funzione di derivazione della chiave (in inglese Key derivation function o KDF) che ricava la chiave derivata a partire da dati noti. Una diffusa applicazione della derivazione di una chiave è in HMAC.
Un algoritmo di derivazione della chiave (v. ad esempio PBKDF2), a partire da un valore arbitrario in ingresso (una stringa o un array di grandi dimensioni) calcola in modo crittograficamente sicuro (ovvero non è possibile abbreviare il calcolo con una qualche scorciatoia) una chiave di dimensioni adatte alla cifratura. Questo fa sì che sia possibile imporre un dato tempo di calcolo per generare una chiave, nota la password (o una qualsivoglia informazione segreta), in modo che un attaccante che provi un attacco a forza bruta o anche solo un attacco a dizionario si trovi rallentato (in modo non bypassabile) nelle operazioni. Unendo alla password un valore pseudocasuale, che non ha bisogno di restare segreto (seed o salt), in ingresso alla funzione di derivazione della password si fa in modo che l'avversario non possa nemmeno precalcolare le chiavi corrispondenti alle password più probabili, perché saranno diverse al cambiare del salt, e quindi diverse per ogni file cifrato.