微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AES-GCM:#C Microsoft Class 附加验证数据"(AAD)"

如何解决AES-GCM:#C Microsoft Class 附加验证数据"(AAD)"

我正在尝试实现 aes-gcm 加密,但何时实现

cipher.Encrypt(_iv,toEncrypt,cipherText,tag,associatedData);

我意识到我还需要实现关联数据,这是一个byte[]数据类型,有没有人知道AAD部分应该从哪里来?

解决方法

既然您正在尝试实施 AES-GCM 加密,我假设您已经知道 AES-GCM 加密的两个主要部分是:

  • 使用一种变体的计数器操作模式来保证输入数据的机密性。在您的情况下,AES 用作底层分组密码。
  • 使用 GHASH 算法验证机密数据的真实性。

这意味着明文 (toEncrypt) 需要使用计数器模式的变体进行加密,并根据生成的密文 (cipherText) 计算身份验证标签。

额外的认证数据 (AAD) 保护明文的机密性而不对其进行加密,通常 AAD 意味着少量数据,如版本号、地址和端口..

所以你只需要将GHASH算法应用到AAD(associatedData)上,并将加密操作的输出标签值赋给GHASH算法的输入标签即可。请注意,这里假设函数使用的方案是对输入数据进行加密然后对 AAD 进行哈希处理,如果是相反的顺序,则必须将 AAD 的 GHASH 函数的输出标签分配给要加密的数据的 GHASH 函数的输入标签。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。