论文部分内容阅读
随着网络技术的飞速发展和广泛应用,信息安全已经成为关乎个人权益乃至国家安全的重要问题。密码学作为解决这类问题的基础学科,受到国内外学者的普遍关注。密码分析是密码学研究的难点与热点内容,对推动密码学发展至关重要。随着计算机资源和能力的不断提升,密码分析自动化在密码算法设计与安全性分析评估中的作用日益突出。积分密码分析是一种重要的密码分析方法,其关键在于找到密码算法最长的积分区分器。本文致力于研究积分区分器的构建方法以及自动化搜索算法,并应用于分组密码结构和算法的安全性分析与评估。主要研究成果和创新点如下: 1.针对基于比特的分组密码算法,给出了构建积分区分器的通用搜索方法。该搜索方法充分利用密码算法的代数性质,通过更准确地评估密码算法的代数次数寻找轮数更多、阶数更低的积分区分器。应用该方法证明了SIMON和RECTANGLE等分组密码算法存在更优的积分区分器。同时,评估了SIMON类算法针对积分密码分析的安全性,其结果明显优于欧密2015的评估结果,而且反映出不同循环移位参数对SIMON类算法的安全性的影响。 2.比特级扩散层与S盒的组合使得密码算法扩散快,因此恢复密钥时可行的部分解密轮数较少。针对这一问题,我们提出了S盒内部匹配技术,利用S盒的特定性质减少密钥恢复过程的时间和存储复杂度,进而增加攻击的轮数。由于这种性质容易存在于4比特的S盒中,因此该技术适用于轻量级分组密码算法。我们将其应用于PRESENT和RECTANGLE算法的积分密码分析,在几乎不增加时间、数据和存储代价的同时,扩展了攻击轮数。S盒内部匹配技术揭露出S盒的特定性质会削弱密码算法抵抗积分密码分析的能力,对于比特级分组密码算法的基本部件设计具有参考价值。 3.针对广义Feistel结构,给出了基于可分性质的积分区分器自动搜索算法。同时,为了解决分支数m较大时算法实现困难的问题,提出了简化可分性质传播过程的提前约减技术,删除大量冗余可分向量使得搜索的可行性提高。利用该搜索算法,我们更新且丰富了对广义Feistel结构积分区分器的评估结果。对于传统的Type-1和Type-2型广义Feistel结构,证明了当F-函数是双射时其至少存在m2+m-1和2m+1轮积分区分器,而当F-函数非双射时其积分区分器轮数下界分别为m2+m-2和2m轮。 4.对于改进的Type-1和Type-2型广义Feistel结构,积分区分器的轮数不仅取决于分支数。我们探究了置换层、分支数、分支规模、F-函数的代数次数等参数对结构的积分区分器的影响,并给出常用参数下积分区分器轮数的下界。应用结构评估的结果可以改进具体密码算法的分析,由此给出分组密码算法LBlock和TWINE最优的积分密码分析,同时也是单密钥下最长轮数的攻击。除此之外,对于Source-Heavy型广义Feistel结构的SM4算法,构建了新的积分区分器,并利用FFT-密钥恢复技术对其进行积分密码分析。 5.针对线性层是二元域上矩阵的SPN结构,提出了一种便于自动化的构建积分区分器的新方法,称为活跃集方法。定义了活跃集的概念,并研究了活跃集的传播规律以及推测状态取值情况的方法。然后,提出利用活跃集构造积分区分器的整体思路与搜索算法,该算法可以充分利用扩散层的性质构造出更优的积分区分器。应用新方法,我们评估了最优扩散层下SPN结构抵抗积分密码分析的安全性,结果显示扩散层对积分区分器轮数的影响并不完全取决于分支数。