Linux で ip xfrm を使用して、AES を GCM モードで使用する 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 の長さであることがわかっているのは、IV 長変数のデータ型である unsigned int だけですが、これはキーとは関係ありません。キーと IV の長さは 224b (IV の場合は 128 + 96) であるべきではありませんか?