In IKEv2, SKEYSEED
, which is used to as a seed for generating the rest of the keys, is generated as
SKEYSEED = prf(Ni | Nr, g^ir)
In other words, we invoke a pseudorandom function with the concatenation of the initiator and receiver nonces (that are sent in the clear) as the secret, and the Diffie-Hellman shared secret g^ir
as the seed.
What is the rationale for this? Shouldn't the arguments for prf
be reversed so that the secret is actually, well, secret?