我看到Chacha20Poly1305、XsalsaPoly1305和AES GCM在文献和实现中经常被使用和提及,作为AEAD密码器。我的问题是,Poly1305提供身份验证,Salsa20提供加密,两者的结合是否可以被认为是AEAD?虽然它不是一个标准,但它在技术上是否符合“广告”的定义?
发布于 2020-04-01 15:55:38
是的,它可以实现为一个AEAD密码,虽然通用的定义使用ChaCha20代替。ChaCha是一个带有扩散性稍好,性能较好的密码,两个密码都是由Daniel编写的。如果您想使用Salsa,那么只需将ChaCha20替换为Salsa20 --但我不想这样做。
例如,ChaCha20 / Poly1305是在引用RFC 8439: IETF协议的IETF 20和Poly1305,第2.8节 (定义AEAD_CHACHA20_POLY1305 )的TLS 1.3密码套件中实现的。广泛使用的RFC是标准化的明确标志。
发布于 2020-04-01 12:32:34
当然,它是用来做广告的!
AEAD是指使用相关数据进行认证的加密。
它为您的加密提供了机密性和真实性,这意味着数据是加密的,任何人都不能更改任何数据。如果进行了更改,将在验证过程中检测到。
ChaCha、Salsa (包括它们的eXtended当前版本)都是流密码,而Poly1305是为加密的数据以及未加密的关联数据提供完整性的身份验证机制。
ChaCha/Salsa基于CPU友好的Add旋转Xor置换,类似于推荐的20轮混合后的散列函数,将混合状态与初始状态相加( mod \ 2^{32} )以获得输出状态。这种结构使其不可逆转,目前还没有已知的攻击。
它们以及Poly1305消息认证码都是由著名的密码学家Daniel (也称为DJB)发明的,他还发明了使用Curve25519实现ECDH的著名的X25519密码系统。这两个流密码被提交到eSTREAM竞赛,他们已经经受住了时间的考验。甚至像谷歌这样的公司也将Chacha20-Poly1305纳入TLS的实施中。他们现在甚至在他们的磁盘加密项目中使用它,为什么呢?这是因为Salsa和ChaCha都能抵抗侧通道攻击,并且很容易在软件中实现。此外,使用64位计数器,您可以加密1 Zettabyte的数据安全。但是,如果同时使用Poly1305,则只能对16000个Peta的2^{64}字节进行身份验证。但是,如果使用AES GCM,则使用相同密钥的身份验证只限制在大约64 GB的加密范围内,而标准只提供96位的即时加密!此外,AES非常慢,如果完全在没有硬件加速的软件中实现,并且如果使用查找表实现,也容易发生缓存定时攻击。
如果AES是安全的,AES -Poly1305也是安全的,因此,如果Chacha20 20/ Salsa20是安全的,那么Chacha20 20/Salsa20 20 Poly1305也是安全的!因此,您可以使用任何安全的底层密码与Poly1305!多棒啊!?请参阅:https://www.google.com/url?sa=t&source=web&rct=j&url=https://cr.yp.to/mac/poly1305-20050329.pdf&ved=2ahUKEwj0ye6uqsfoAhUZxTgGHYz0C3MQFjABegQIBBAC&usg=AOvVaw0k5Ix8nCShQGuBM6QbEAoD
请参阅XChaCha20 poly1305 IETF的更多信息(32位计数器):https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-xchacha-03
参见Google关于使用Chacha20 Poly1305:https://security.googleblog.com/2014/04/speeding-up-and-strengthening-https.html?m=1的博客文章
谷歌的铁线蕨(用于磁盘加密使用XChaCha20 poly1305):https://security.googleblog.com/2019/02/introducing-adiantum-encryption-for.html?m=1
丹尼尔·伯恩斯坦关于XSalsa20:https://www.google.com/url?sa=t&source=web&rct=j&url=https://cr.yp.to/snuffle/xsalsa-20081128.pdf&ved=2ahUKEwiB2ff7o8foAhVRzDgGHW9BCG0QFjADegQIAxAB&usg=AOvVaw3pfOfep6cl9gtvXr-xP9I4的原始论文
有关原始Chacha20和Salsa20:https://en.m.wikipedia.org/wiki/Salsa20的更多信息,请访问维基百科页面
发布于 2020-04-02 07:45:04
我的问题是,Poly1305提供身份验证,Salsa20提供加密,两者的结合是否可以被认为是AEAD?
有很多方法可以将两者结合起来,有些是AEAD,有些则不是。例如:
所以你的问题的答案是肯定的,但前提是组合是正确的。
https://crypto.stackexchange.com/questions/79599
复制相似问题