论文部分内容阅读
在ASIACRYPT 2013上,Isobe和Shibutani将Feistel结构的分组密码算法分成了三类,即Feistel-1/2/3。在这篇文章中,我们研究Feistel-3结构,它采用SPN结构的轮函数,即轮函数包含密钥异或层、非线性S盒层以及线性扩散层。我们把Feistel-3表示为Feistel-SP,该结构的算法通常采用128比特或者64比特的分组长度,并使用8比特或4比特的S盒。目前,对于Feistel-SP结构在公开密钥场景下已经有许多的分析结果。在FSE 2011上,Sasaki和Yasuda对Feistel-SP结构给出了 11轮的已知密钥区分器。随后Sasaki等人在2012年进行了改进,但是Feistel-SP结构的已知密钥区分器的轮数仍为11,对于分组长度为128比特,S盒为8比特的情况,区分攻击的时间复杂度为219,存储复杂度为219。在FSE 2017上,Dong等人在选择密钥模型下对Feistel-SP结构给出了 12轮的选择密钥区分器,并且对于分组长度为128比特,S盒为8比特的Feistel-SP,区分攻击的时间复杂度为240,存储复杂度为 235。以上对于Feistel-SP结构的研究结果都是基于反弹攻击(Rebound Attack)方法,其构造区分器的实质是利用差分的思想。在2014年,Dong等人利用代数次数的思想,构造了Feistel-SP结构的已知密钥高阶差分区分器,改进了Feistel-SP结构在4比特S盒情况下的轮数,对于分组长度为64比特和128比特的Feistel-SP结构,轮数分别达到了 15轮和17轮。在分组密码领域,零相关以及积分的思想也是构造区分器的有效手段。在ASIACRYPT 2014上,Gilbert重新给出了已知密钥区分器的定义,并且在这个定义下进行了 10轮AES的已知密钥积分区分攻击。受此启发,我们利用积分的思想,改进了Feistel-SP结构的已知密钥区分攻击的结果。首先我们利用Feistel-SP结构的一个5轮的零相关线性壳和一个4轮的零相关线性壳,在已知密钥场景下构造了一个9轮的零相关区分器。然后我们利用Sun等人在CRYPTO 2015上给出的零相关区分器与积分区分器之间的转化关系,将9轮的零相关区分器转化为9轮的积分区分器。基于Gilbert提出的已知密钥区分器的思想,我们在Feistel-SP结构的9轮已知密钥积分区分器的头和尾分别扩展一轮,构造了 11轮的已知密钥区分器,对于分组长度为128比特,S盒为8比特的Feistel-SP结构,区分攻击的时间复杂度为2120,存储复杂度为220.7。进一步的,我们在11轮已知密钥区分器的头和尾分别再扩展1轮,构造了Feistel-SP结构的13轮已知密钥区分器,对于分组长度为128比特,S盒为8比特的Feistel-SP结构,区分攻击的时间复杂度为2120,存储复杂度为275.58。在已知密钥场景下,这是目前为止对使用8比特S盒的Feistel-SP结构的分析中最优的结果。