论文部分内容阅读
密码学是信息安全的核心基础,密码算法的安全性是各类信息需求的基本保障。随着计算机能力的不断提升,自动搜索算法在密码的设计与分析中发挥了重要作用,成为密码学研究的一大热点。本文主要研究了立方攻击的自动搜索,差分、线性迹的自动搜索以及猜测确定攻击的自动搜索。 在立方攻击方面,本文发现此前公开文献中声称的部分线性超级多项式实际上是非线性的,并为此引入接近线性的超级多项式,改进原有的立方攻击及其随机游走算法。在离线阶段,我们利用序贯比测试检验超级多项式与线性多项式之间的相关性,从而可以在不显著增加复杂度的情况下可靠地寻找接近线性的超级多项式。在在线阶段,这些接近线性的超级多项式被用于构建概率线性系统。通过极大似然译码,新的攻击方法可以恢复更多的秘密信息,进而降低枚举阶段的复杂度。对缩减至672轮Trivium的实验结果表明,改进的随机游走算法能够在短时间内发现大量的接近线性的超级多项式;结合改进的立方攻击,在线阶段可以少枚举7个密钥比特。 在差分、线性迹的自动搜索方面,本文提出了一种分组密码的抽象机制,并在此基础上建立了一个搜索框架。相比于Matsui搜索及其改进,新的框架不要求分组密码的轮函数具有特定的结构,其实现拥有更高的复用效率和更广的适用范围。借助多线程技术,本文还提出一种多起始点的搜索技术。对DES的差分迹自动搜索表明,在初始值不确定的情形下,该技术能搜索更长的轮数,大幅降低搜索复杂度。运用到SPECK轻量级分组密码族,我们得到了缩减轮数的最佳线性迹,并首次给出了SPECK密码族在线性分析下的安全性评估。 在猜测确定攻击方面,本文对Bouillaguet等人的搜索框架进行扩展,改进了其中关于复杂度的假设。首先,在本文的框架下,密码算法的状态不再局限于同样的大小,相应地,非线性函数也不再局限于S盒类型的双射。其次,根据系数所在的环,状态之间的线性关系式被划分到不同的模,因此模加和异或在本文中被同时作为线性关系式对待。进一步,对非线性函数的约束被放宽到状态集之间的满射,从而可以处理字的拆分与组合等操作。最后,本文基于遗传编程实现了一个搜索工具。对SNOW2.0和AES的实验结果表明,利用启发式算法,搜索工具同样能得到理想的结果。而对FIDES的实验结果表明,该工具能够媲美计算机辅助的手工分析。为了搜索SOSEMANUK,我们还在框架中引入了值变量的概念。通过对值变量进行猜测,类似选择分支的非线性组件可以被转化为线性进行处理。在32比特的猜测粒度下,本文得到一个时间复杂度为2192的猜测确定攻击。