首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于MAC生成的Poly1305密钥

用于MAC生成的Poly1305密钥
EN

Cryptography用户
提问于 2020-02-06 11:48:24
回答 1查看 345关注 0票数 1

我刚刚浏览了https://www.rfc-editor.org/rfc/rfc7539#section-2.6 (第2.5和2.6节)。这里描述了如何使用Poly1305块函数生成一次性ChaCha20键(为此需要一个96位的nonce )。

我问自己,与只使用用于ChaCha20块函数的密钥相比,这是如何“更好”或“更安全”的。

EN

回答 1

Cryptography用户

回答已采纳

发布于 2020-02-06 21:09:29

你在评论中写道:

不,我只对使用Poly1305的MAC生成感兴趣,该密钥总是为每次执行MAC函数新生成的。该密钥是使用具有共享DH密钥的HKDF和每次执行的随机值(例如,nonce)导出的。

在您提到的RFC中,它是写的(引用Bernstein的文章):

最初的文章(Poly1305)名为“Poly1305-AES消息认证代码”,其中的MAC函数需要一个128位的AES密钥、一个128位的“附加密钥”和一个128位(非机密)的密钥。AES是用来加密现在的,以便得到一个唯一的(和秘密的)128位字符串,但是正如纸上所说的,“这里的AES没有什么特别之处,人们可以用任意键控函数替换AES,从任意一组非AES到16字节字符串。”

现在你有了HKDF,它是一个键控函数,一个nonce和一个输出,可以生成16个字节。我说:去做吧,但是不要在任何事情上使用密钥,包括ChaCha20加密,或者更糟的是计算另一个身份验证标记。

只是为了保证:请使用SHA-256或更好的HKDF.那它也应该是安全的。

请记住,你现在在未特许的领域。这意味着使用库来实现这种功能要比仅仅使用ChaCha20/Poly1305密码的AAD计算MAC要困难得多。

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

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

复制
相关文章

相似问题

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