我在 Linux 下使用 ip xfrm 在 GCM 模式下将带有 AES 的 IPsec SA 添加到系统中。
我正在使用的命令是这样的:
ip xfrm state add src 10.66.21.164 dst 10.66.21.166 proto esp spi 0x201 mode transport aead "rfc4106(gcm(aes))" 0x010203047aeaca3f87d060a12f4a4487d5a5c335 96
现在我想知道:密钥似乎是 20B = 160b 长。正常的 AES 密钥是 128b,如上所示,IV 长度是 96b。如果我延长或缩短它不起作用的密钥,那么显然预期的输入是 (sizeof(AES)=128b) (当然,它也适用于 256b)+ 32b 长。
为什么会这样?在这种情况下,我唯一知道的 4B 长是 unsigned int,它是 IV 长度变量的数据类型,但这与密钥无关。密钥加 IV 不应该是 224b 长(IV 是 128 + 96)吗?