我正在使用AES-GCM加密一些数据.我要用一个新的随机iv来完成每一个加密。对于每一个加密,生成一个新iv并将其附加到加密文本中以生成密码。因为iv将是明文发送,我想我也可以生成iv和加密文本的HMAC,并将这个mac附加到密码中。
mac:HMAC(iv || encryptedText)
密码将如下所示:iv || encryptedText || mac
接收器现在可以证明iv和加密文本的真实性和完整性,然后解密数据。
有什么安全漏洞吗?有必要创建一个mac吗?
谢谢!
发布于 2022-12-21 10:16:33
不,不需要HMAC。在计算GCM身份验证标记的GMAC算法中包含IV的值,或者更确切地说是GCM的值;它显式地成为GMAC计算的一部分。因此,如果对手更改IV,则身份验证标记将不会验证。这取决于所使用的库,但身份验证标记可能会自动标记到密文的末尾。
一个特别的问题是,如果任何GCM输入更改,您将得到相同的“验证错误”。因此,您无法检测错误的原因是什么。一般来说,这不是一个问题,但是,您测试发送方/接收方,如果验证失败,则整个密文将被丢弃。
https://crypto.stackexchange.com/questions/103389
复制相似问题