发布于 2018-12-13 04:48:27
除了Simon和Speck的设计者没有为他们的密码/参数选择提供一个初步的合理设计之外,他们后来在密码界/ISO的压力下增加了一些备注。在这里,他们提到他们选择了圆形常量
..。最优抵抗8轮微分和线性攻击.
和
其中的...many导致软件设备(特别是8位微控制器)性能差,因此被拒绝.
还有其他一些ARX密码,比如查斯基和MergeMAC,它们用
..。我们对常数的选择,在8位和16位微控制器上的实现将比随机选择这些常数更有效.
和
我们的排列中的旋转常数被选择为最优的微控制器,通常只允许有效的旋转/移位1或2位,字节置换8位。
因此,选择旋转参数的原因之一是它们对于实现来说是最优的。
选择旋转参数的另一个观点来自于关于微分/线性攻击的安全性观点。ARX密码的非线性只来自于模加法.如果我们仔细观察模加法,我们可以看到,非线性实际上只是来自进位传播(更多的细节,即这里),因为和只是一个XOR (线性)。一般来说,对于ARX密码来说,最佳的旋转常数会将一个差异转移到它最后到达msb的位置(因为msb中的差异在概率计算中不算在内)。因此,我们可以确保差异迅速积累,而不会被抵消。
此外,关于Speck的旋转常数,分组密码Sparx的设计者在他们的论文中提到。
虽然可以选择Speckey中使用的旋转方式,使微分和线性界略有降低,但在只有指令实现旋转的小型微控制器上,这种旋转更昂贵(在两个方向上)
它们还提供了不同的旋转常数,这些常数实际上可以改善Speck的微分/线性界(代价是降低效率):
如果我们选择旋转(9,2),(9,5),(11,7)或(7,11)而不是(7,2),两者都可以降低2倍。
明文的大小间接地影响圆形常量的选择,因为必须选择一个常量,使其明显介于1和would size =明文大小/分支数之间。这是因为0的旋转不会改变任何东西,旋转也不会变大,那么字大小就会和旋转模一样,就是字大小。
https://crypto.stackexchange.com/questions/61871
复制相似问题