首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AEAD是否也验证了现在的身份?

AEAD是否也验证了现在的身份?
EN

Cryptography用户
提问于 2018-12-29 05:02:24
回答 1查看 587关注 0票数 5

我想在我的邮件中包含一个经过验证的时间戳。我想知道我能不能通过把时间戳放在现在来节省一点空间。

具体例子:

  1. 假设我使用的是具有共享密钥的XChaCha20-Poly1305。
  2. 我通过连接一个8字节的时间戳和一个16字节的随机值来生成nonce/IV。
  3. 我发送concat(nonce, ciphertext, auth_tag)
  4. 接收器运行decrypt+verify过程并成功。

然后,接收方能提取出时间标记部分,并相信它是真实的吗?

使用更“传统”的组合,如AES-CBC-然后-HMAC,现在显然是认证的。对于这些较新的AEAD来说,情况仍然是这样吗?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2018-12-29 05:42:46

是的,AEAD结构总是验证现在。如果不这样做,则无法确保解密后产生的明文的完整性和身份验证。

您可以在RFC 5116:认证加密的接口和算法,第2.1节.认证加密中看到定义:

nonce是在内部对该算法进行身份验证的,因此不需要将其包含在AD输入中。如果方便的话,现在可以包括在P或A中。

并不是所有的AEAD密码都必须遵守这个RFC的字母(如果您问我--我认为它是一个单独的字段),在密文中包含身份验证标记是有争议的。然而,我还没有见过任何未按设计验证现在的密码。

你写的是

使用更“传统”的组合,如AES-CBC-然后-HMAC,现在显然是认证的。

这显然不是真的。是的,设计这样的方案是可能的,而且任何有能力的加密人员都不会对IV进行身份验证。甚至有人试图标准化这样的方案,例如该方案基于CBC和HMAC-SHA-1.

然而,不太称职的协议设计者在设计或实施这样的方案时可以自由地开枪。在使用精心设计/评审/测试的库和AEAD方案时,可以避免此类错误。

票数 5
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/66143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档