首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过XOR与模加法将x混合到置换中

通过XOR与模加法将x混合到置换中
EN

Cryptography用户
提问于 2018-11-15 21:56:41
回答 3查看 417关注 0票数 6

块密码通过异或将关键材料混合到排列中。同样,做前和后美白的方式。

Chacha/Salsa以32位模块完成,将键和iv材料(以及其他位元之一)添加到置换输出中,但因为逆转它们很简单,这并不重要。

对于最后一步,使用32位模块加法而不是XOR的理由是什么?具有完全相同问题的MD散列用XOR而不是模>2加法来解决。

EN

回答 3

Cryptography用户

回答已采纳

发布于 2018-11-16 10:58:16

具有完全相同问题的MD散列用XOR而不是模>2加法来解决。

梅克尔-达蒙路 + 戴维斯-迈耶理论中是正确的,但实践中的不同之处在于: MD5、SHA-1、SHA-2 (它们实现了这一理论)都使用逐字模块加法作为圆函数的最后一步,而不是异或。

我猜那是因为

  1. 模加法比异或具有更大的扩散性。因此,没有其他理由选择其中一种或另一种,加法是默认的实践者的选择(OTOH Occam的剃刀将选择XOR)。出于同样的原因,在ARX密码中,通常比XOR拥有更多的ADD。
  2. 在软件中使用加法而不是XOR几乎没有成本(在某些体系结构中,它甚至可能生成比XOR更快/更密集的代码)。
  3. MD5铺平了道路。
票数 0
EN

Cryptography用户

发布于 2018-11-15 23:12:36

只要一个操作数(或两者都是不可预测的)和两个操作数(实际上)在统计上是独立的,任何一个操作数都能工作。通常使用XOR是因为在基于硬件的实现中,它需要更少的晶体管和更少的时间。

在软件中,对于符合寄存器大小的数据,这两种操作都在一个周期内运行。这使加法比普通的XOR操作更有优势。对置换步骤的输入的差异随着加法而传播得更快,因为进位影响输出比特可能改变的概率。

ChaCha主要用于机器上的软件实现,本机支持32位模块添加。用XOR替换最后的添加不太可能影响安全性,因此选择可能是任意的。

票数 1
EN

Cryptography用户

发布于 2018-11-16 06:43:47

除了“未来安全答案”。

\boxplus是一个非线性过程,如下所示:

x \boxplus y = ( x \oplus y)\, \boxplus \,2(x \wedge y) \quad (mod \, 2^n)

我假设非线性部分使得在最后一步很难逆转它。

有关密码学性质\boxplus#qcStackCode#的进一步阅读

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

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

复制
相关文章

相似问题

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