Key Derivation Function
A KDF turns some initial secret, such as a password or a Diffie-Hellman shared value, into one or more strong cryptographic keys. Good KDFs also bind in context information and salts so the same input produces different keys for different purposes. Examples include HKDF for key expansion and PBKDF2 or Argon2 for passwords.