首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ARX设计中旋转常数的选择

ARX设计中旋转常数的选择
EN

Cryptography用户
提问于 2018-08-29 16:51:24
回答 1查看 644关注 0票数 16

我的问题是在ARX设计中选择旋转值,例如SIMON或SPECK类密码,以提供最佳的微分和线性免疫。根据,选择ab值(如下图所示)必须符合\text{gcd}(n, a-b) = 1条件,其中n是大小。 ARX具有2/4分支的SPECK和Mix (Mix + arx)。

如何选择旋转值?它的选择是临时性的(然后根据常见的密码分析(如微分/线性或旋转)进行测试),还是系统的选择,如ab在西蒙样中的选择?明文大小(32/64/128位)是否影响圆形常量?

EN

回答 1

Cryptography用户

回答已采纳

发布于 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的旋转不会改变任何东西,旋转也不会变大,那么字大小就会和旋转模一样,就是字大小。

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

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

复制
相关文章

相似问题

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