论文部分内容阅读
SPARX算法是2016年在亚密会上提出的一个算法,该算法属于ARX类分组密码算法之一,根据长轨迹策略(LTS)设计而成。以前我们已知的宽轨迹策略(WTS)是很多基于S盒设计的密码算法的基础,如AES算法。但由于ARX类密码算法的设计缺少S盒,因此该策略对ARX类密码算法是不适用的。在SPARX算法的设计文档中,作者提出了一种长轨迹策略(LTS)来解决上述问题。与宽轨迹策略相反,该策略主张使用轻量级高效S盒以及稀疏线性层。在这种策略的帮助下,设计者可以在任意轮数下,计算出差分概率和线性偏差的最大值。SPARX算法有两个版本:SPARX-128/128 和SPARX-128/256。SPARX-128/128 的分组长度是128比特,密钥长度是128比特;SPARX-128/256的分组长度是128比特,密钥长度是256比特。SPARX算法的S盒是32比特,基于ARX类算法的S盒设计而成,具有可证明的抵抗差分和线性分析的能力。在SPARX算法的设计文档中,作者给出了其SPARX-128/256版本的24轮积分攻击,积分区分器为21轮。在SAC 2017上,Tolba等人利用多维零相关密码分析方法提出了几个密钥恢复攻击。他们提出了一个5步(20轮)零相关区分器,然后,在输出端使用特定的线性掩码,并利用所使用的线性层和S盒的一些特性,将该区分器扩展到5.25步(21轮)。通过利用密钥生成算法的某些特性,他们将20轮的区分器扩展了4轮,从而对SPARX-128/256进行了24轮多维零相关攻击。然后,使用提出的21轮区分器,将24轮攻击扩展到25轮SPARX-128/256的零相关攻击,该攻击用到全部明文空间。此外,他们将21轮的区分器延-长了一轮,以针对22轮SPARX-128/128发起多维零相关攻击。但是25轮SPARX-128/256的密码分析用到了全部明文空间,这在密码学领域通常被认为是一种平凡的攻击。针对SPARX-128/256版本,Tolba等人也提出了24轮的不可能差分攻击。在这篇论文里,针对SPARX-128/128版本,我们利用多维零相关线性分析方法,提出了一种变种的21轮零相关区分器,并通过减少猜密钥的数量,将攻击轮数拉长到23轮。该攻击与现有该算法的分析结果相比,在攻击轮数上是最优的。为了降低25轮SPARX-128/256版本攻击的数据复杂度,我们提出了一种变种的20轮零相关区分器,给出了非全部明文空间的25轮SPARX-128/256版本的多维零相关密钥恢复攻击。我们还提出了一种新颖的思路,将提出的扩展的20轮零相关区分器转化为积分区分器,给出了24轮SPARX-128/256版本的积分攻击。该攻击与现有的其他积分攻击结果相比,大大降低了时间复杂度和存储复杂度,由于攻击选择的明密文方式不一样,我们的攻击在数据复杂度上略有增加。