跳到主要内容

3.4. KE Payload

3.4. KE Payload​

KE 负载包含一个 Diffie-Hellman 公钥。如果所使用的 Diffie-Hellman 组需要多个密钥(例如椭圆曲线组),则 KE 负载包含连接在一起的多个密钥(按密钥位数从高到低排序)。

KE 负载格式如下:

                 1                   2                   3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Payload |C| RESERVED | Payload Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Diffie-Hellman Group Num | RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Key Exchange Data ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Figure 7:  KE 负载格式

o Diffie-Hellman Group Num (2 字节) - 表示所使用的 DH 组。该值取自 IANA 注册表 "IKEv2 Security Association and Key Management Protocol Parameters" 的 "Transform Type 4 - Diffie-Hellman Group Transform IDs"。

o RESERVED (2 字节) - 必须发送为 0,接收时必须忽略。

o Key Exchange Data (变长) - 由 Diffie-Hellman 组的值确定的大端序无符号整数。该整数的大小是 DH 组的素数的大小(在模运算中)。对于 Oakley 768-bit MODP 组,该字段为 96 字节,填充为前导零。