2.14. IKE SA のための鍵素材の生成
2.14. IKE SA のための鍵素材の生成
共有鍵は以下のように計算されます。SKEYSEED と呼ばれる量は, IKE_SA_INIT 交換中に交換されたナンス (nonces) と, その交換中に確立された Diffie-Hellman 共有秘密から計算されます。SKEYSEED は, 他の 7 つの秘密を計算するために使用されます: この IKE SA で確立された Child SA のための新しい鍵を派生させるために使用される SK_d; 後続の交換の構成メッセージを認証するための整合性保護アルゴリズムの鍵として使用される SK_ai および SK_ar; すべての後続の交換を暗号化 (もちろん復号も) するために使用される SK_ei および SK_er; および AUTH ペイロードを生成するときに使用される SK_pi および SK_pr です。SK_d, SK_pi, SK_pr の長さ (長さ) は, 合意された PRF の推奨鍵長でなければなりません (MUST)。
SKEYSEED およびその派生値は次のように計算されます:
SKEYSEED = prf(Ni | Nr, g^ir)
{SK_d | SK_ai | SK_ar | SK_ei | SK_er | SK_pi | SK_pr } = prf+ (SKEYSEED, Ni | Nr | SPIi | SPIr )
(これは, SK_d, SK_ai, SK_ar, SK_ei, SK_er, SK_pi, SK_pr の各量が, prf+ によって生成されたビットから順に取得されることを示します)。g^ir は, 一時的な Diffie-Hellman 交換からの共有秘密です。g^ir は, 必要に応じてゼロでパディングされ, その長さが modulus の長さになるようにした, ビッグエンディアン順のオクテット文字列として表されます。Ni および Nr は, いかなるヘッダも取り除かれたナンスです。歴史的な後方互換性の理由から, この計算では 2 つの PRF が特別に扱われます。ネゴシエートされた PRF が AES-XCBC-PRF-128 [AESXCBCPRF128] または AES-CMAC-PRF-128 [AESCMACPRF128] である場合, SKEYSEED の計算には Ni の最初の 64 ビットおよび Nr の最初の 64 ビットのみが使用されますが, すべてのビットが prf+ 関数への入力として使用されます。
トラフィック・フローの 2 つの方向は異なる鍵を使用します。元のイニシエータからのメッセージを保護するために使用される鍵は SK_ai および SK_ei です。もう一方の方向のメッセージを保護するために使用される鍵は SK_ar および SK_er です。