How does KDF benefit us? For instance, suppose the system relies on a shared secret for AES encryption and decryption. If the en/decryption uses a key derived from a KDF, an attacker could still sniff the key and decrypt the file.
Β
An important principle in cryptography is "key separation" which holds that one should "use distinct keys for distinct algorithms and distinct modes of operation". Violating key separation often opens up avenues of attacks that may break confidentiality, integrity, or even recover the key.
You can use a KDF to derive cryptographically independent keys from a single "master key", and then use those keys in different algorithms and/or modes, thus respecting key separation.
The paper "On the importance of the key separation principle for different modes of operation" (Gligoroski et al) provides the definition of key separation that I used above, and a description of some attacks that are possibly when key separation is violated.
Β