我读过AES GCM使用AES CTR进行加密,GMAC用于身份验证。
如果这是正确的,用于AES GCM的IV和用于AES CTR的IV之间的关系是什么?
换句话说,我可以使用GCM加密,然后使用AES CTR (忽略身份验证)解密吗?如果是,加密时传递给GCM的IV与解密时传递给AES CTR的IV之间的关系是什么?
发布于 2017-03-16 09:08:42
是这样的。
在大多数情况下,你可以做你的提议。但是,请注意,通过忽略身份验证,您显然会在AES-CTR加密流中松散消息身份验证和比特翻转。
如果AES-GCM IV的大小是96位,你可以做你提议的事情.AES-GCM还支持更长尺寸的IVs和那些情况下,您将需要GHASH,以找到正确的IV使用CTR。尽管如此,我相信99%的实现只支持AES-GCM的96位IV (这是正确的)。
要获得CTR,只需将编码为32位大endian整数的值2附加到96位GCM (等效地添加C表示法"0x00,0x00,0x00,0x01")。
编辑后可将初始计数器值从1更改为2。GCM成功地将起始计数器定义为以1开头,但在第一次加密之前对其进行增量,从而得到2。
https://crypto.stackexchange.com/questions/44764
复制相似问题