Uses of KDFs
Key derivation functions are often used in conjunction with non-secret parameters to derive one or more keys from a common secret value (which is sometimes also referred to as "key diversification"). Such use may prevent an attacker who obtains a derived key from learning useful information about either the input secret value or any of the other derived keys. A KDF may also be used to ensure that derived keys have other desirable properties, such as avoiding "weak keys" in some specific encryption systems.
Key derivation functions are often used as components of multiparty key-agreement protocols. Examples of such key derivation functions include KDF1, defined in IEEE Std 1363-2000, and similar functions in ANSI X9.42.
Key derivation functions are also used to derive keys from secret passwords or passphrases.
The "HMAC-based Extract-and-Expand Key Derivation Function" or "HKDF" specified in RFC 5869 is a simple HMAC-based KDF, which can be used as a building block in various protocols and applications.
Read more about this topic: Key Derivation Function