# Key change and key derivation

There are two ways for key change: key update, and Re-keying. Which of these methods use a KDF (Key Derivation Function) for getting new keys?

-
Both, as I recall they mean the same thing... – user1028028 Feb 5 '14 at 13:22
Difference between re-keying and key update is , that in case of re-keying the new key is independent of old key, in case of key update key is depend of old key. – Gev_sedrakyan Feb 5 '14 at 13:27
That would be bad ... as it might open the encryption to a related key attack... – user1028028 Feb 5 '14 at 13:34
Key update can still be dependent on the old key, but not be related on a cipher level, as you can run it through a KDF or hash algorithm. Just as re-key can use purely random data and not go through a KDF, either one can use or not use a KDF – Richie Frame Feb 5 '14 at 20:04

KDFs can be used for both: key update and re-keying. As a KDF is usually a Function like this: $KDF(Secret,DerivationParams)$, you can use it to derive keys from old keys (key-update) but you can also use it for re-keying as nothing prevents you from setting a new secret (by the means of the KDF). As there are some KDF that look like this: $KDF(Secret,Salt,Params)$ you can even do a hybrid thing, where you depend on your old key and add new entropy to the new key.