首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解ChaCha20-Poly1305 AEAD

理解ChaCha20-Poly1305 AEAD
EN

Cryptography用户
提问于 2019-01-13 06:14:34
回答 2查看 2.3K关注 0票数 3

https://www.rfc-editor.org/rfc/rfc7539#section-2.8.1中描述的aad方案中,aad和密码文本被填充为长度为16个字节的倍数。为什么有这个必要?与不填充数据相比,它有什么优势吗?

EN

回答 2

Cryptography用户

回答已采纳

发布于 2019-02-13 13:28:19

使用Poly1305的身份验证需要填充;填充不会扩展密文。Poly1305操作在128位的块上。填充是为了使Poly1305能够始终处理完整的输入块。之后,填充物被丢弃-它不与密文一起保存。

在验证期间,填充将被重新应用,否则计算的身份验证标记将与保存在/ is中的验证标记不完全相同。

在Poly1305的情况下,似乎附加的经过身份验证的数据(AAD或仅AD)是单独填充的,而不是将两者连接起来并填充两者的组合。这使得可以独立于身份验证标记的密文组件计算AAD组件,正如牛丹玉的回答所指出的那样。

注意,在实践中,将在Poly1305函数的实现中使用单个块输入缓冲区。实现将填充缓冲区而不是实际输入。丢弃包括清除缓冲区--如果缓冲区被清除,它也可以忽略缓冲区中的数据。

票数 4
EN

Cryptography用户

发布于 2019-01-13 12:06:24

它提供的一个优点是,在为密文计算验证器之后,可以计算关联数据的验证器,在计算时可能无法完全使用。

尽管按照规范,您应该在调用加密API时准备好所有的数据,ChaCha20-Poly1305被设计为一种“高吞吐量”的AEAD模式,就像GCM一样,这将使这种计算成为可能。

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

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

复制
相关文章

相似问题

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