首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与丹尼尔·伯恩斯坦的流密码混为一谈

与丹尼尔·伯恩斯坦的流密码混为一谈
EN

Cryptography用户
提问于 2014-12-17 10:58:48
回答 1查看 2.8K关注 0票数 17

我知道Salsa20赢得了ESTREAM比赛。此日期为2007年12月25日。

还有ChaCha20流密码(cr.yp.to/chacha.html)。这就要求增加每一轮的扩散量。日期为2008年1月28日。

还有另一个名为XSalsa20的变体,它有一个192位的现在而不是64位。日期为2011年2月4日。不过,我不确定它是否包含了ChaCha20每轮改进的扩散量。

问题是,哪一种变体最安全?我不在乎速度。如果密码专家将他们的密码版本/改进编号为1.0、1.1、1.2,这样人们就可以很容易地知道哪一种算法是最新的,那就太好了。

一方面,使用XSalsa20的192位现在听起来比64位的安全。也许有人能解释一下这件事的好处?使用256位的nonce是否有优势,使其与密钥大小保持一致?另一方面,与原始的ChaCha20相比,每一轮Salsa20的更好的扩散听起来是一件好事。XSalsa20和ChaCha20的改进能结合起来吗?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2014-12-17 13:46:44

XSalsa20使用与Salsa20相同的加密核心,并提供了一个安全证明,如果Salsa20是安全的,那么它是安全的。它不使用ChaCha的核心,因而扩散性更差。

XSalsa20的工作方式是将它的256位键和使用HSalsa的头128位位转换为256位键,然后与Salsa20中剩下的64位位一起使用该键。您可以在论文扩展Salsa20 20当前中找到详细信息。

非one的问题在于,您必须确保永远不会重用它。有64位的计数器工作良好,但计数器是有状态的。如果你想要一个无状态的现在,通常的方法是生成一个随机的,并且假设碰撞是不可能发生的。假设具有随机128位值的唯一性是非常安全的,但是对于随机64位值,即使消息数量适中,冲突也很可能发生。所以你不能使用随机的64位不合格。但是如果你现在有192位,你可以随机化它。

因此,增加的现在的大小不是一个安全改进,而是一个功能,允许随机的不确定。

原则上,可以在ChaCha中使用相同的现在扩展技术,但是Bernstein没有发布规范。在我对我可以使用ChaCha内核作为256位到256位的单向函数吗?的回答中,我描述了如何从ChaCha构建HChaCha,就像从Salsa20构建HSalsa20一样。将HChaCha和ChaCha合并到XChaCha中是很简单的。

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

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

复制
相关文章

相似问题

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