我想在我的邮件中包含一个经过验证的时间戳。我想知道我能不能通过把时间戳放在现在来节省一点空间。
具体例子:
concat(nonce, ciphertext, auth_tag)然后,接收方能提取出时间标记部分,并相信它是真实的吗?
使用更“传统”的组合,如AES-CBC-然后-HMAC,现在显然是认证的。对于这些较新的AEAD来说,情况仍然是这样吗?
发布于 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方案时,可以避免此类错误。
https://crypto.stackexchange.com/questions/66143
复制相似问题