[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

IKEv2 use of HMAC-SHA-1 for Key Derivation



On pages 23 and 33 of draft-ietf-ipsec-ikev2-03.txt, there is a discussion 
of the use of HMAC-SHA1 for key derivation.  I have no doubt that this 
construction is secure, but I do wonder if it is overkill.

HMAC-SHA1 was designed as a packet integrity mechanism.  The designers 
needed to deal with many concerns that are not obviously (at least to me) 
needed to generate a good key derivation function.

Can anyone tell me the properties HMAC-SHA1 that are needed here that are 
not otherwise provided by a straightforward application of SHA1?

Putting it another way, the current document uses:

    T1 = HMAC-SHA1(K, S | 0x01)
    T2 = HMAC-SHA1(K, T1 | S | 0x02)
    T3 = HMAC-SHA1(K, T2 | S | 0x03)
    T4 = HMAC-SHA1(K, T3 | S | 0x04)

What needed property does this construction have that is not provided by 
the following?

    T1 = SHA1(K, S | 0x01)
    T2 = SHA1(K, T1 | S | 0x02)
    T3 = SHA1(K, T2 | S | 0x03)
    T4 = SHA1(K, T3 | S | 0x04)

Thanks for any insights that can be provided.

Russ