Matthew Toseland wrote:
> JFK is:
> 
> Session key = H_<secret> { alice exponential, bob exponential, "2" } 
> K_a = H_<secret> { alice exponential, bob exponential, "1" }
> K_e = H_<secret> { alice exponential, bob exponential, "2" }
> 
> Where K_a and K_e are temporary keys used in phase 3 and 4.
> 
> It's the same principle, it's just a question of whether it's safer to derive 
> further keys from the session key or from the secret key (= g^xy).

 From this and the Ferguson/Schneier snippet it looks like you can 
generally derive any number of keys from a master key by hashing it with 
different values, wouldn't you say?

(Actually I'm kind of surprised by this... ideally we'd like there to be 
no relationship between the various keys but obviously there has to be a 
relationship if the other keys are derived from the master, so the 
problem is how to make sure the relationship isn't exploitable... I 
didn't realise hash functions guaranteed to conceal the relationship 
between the input and output, that sounds more like the guarantee 
provided by a block cipher, so I would have though it would make more 
sense to use a block cipher to derive the other keys... something like 
k1=enc_k(1), k2=enc_k(2), etc... in other words CTR mode. But what do I 
know?)

Cheers,
Michael

Reply via email to