Cryptography Stack Exchange is a question and answer site for software developers, mathematicians and others interested in cryptography. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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?

share|improve this question
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.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.