分组密码算法Serpent-256的差分代数分析

来源 :山东大学 | 被引量 : 0次 | 上传用户:lianghaiyanps3
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
现代密码理论与技术是信息安全的重要基础。现代密码学中加密算法包括对称加密和非对称加密,前者又分为分组密码,流密码和Hash函数。分组密码由于其具有速度快,易于标准化和便于软硬件实现等优点,已经成为一种重要的加密方案。密码学家利用各种数学方法设计高效安全的加密算法,而密码分析学家寻找设计中存在的弱点并进行相应的改进,最终设计出高效安全的算法。目前,差分分析,线性分析,Square攻击和代数分析已经成为密码分析的主流分析技术。1977年,DES成为分组密码算法的第一个标准,长久以来得到了广泛的应用。其分组大小和密钥长度分别是64位和56位,这成为DES的主要安全弱点。因此DES不再安全,需要用新的安全算法替代。最终,美国国家标准技术局NIST征集高级加密标准(AES)以替换DES。NIST宣布在2001年AES选出之前,3DES作为临时的标准算法。1997年,NIST发起了AES的征集活动。征集要求AES的分组大小是128位,密钥长度是128、192和256位。1998年,NIST公布了在第一轮中选出的15个AES侯选算法,第二次会议在1999年召开,讨论了全球密码分析学家对侯选算法的分析结果。最终,NIST从原始的侯选算法中选出五个算法,AES最后一轮的侯选算法有MARS、RC6、Rijndael[1]、Serpent和Twofish。在侯选大会上,Rijndael作为获胜者得到87票,Serpent得到58票,Twofish得到31票,RC6得到23票,MARS得到13票。最后,NIST选Rijndael作为AES算法。由于Rijndael执行速度优于Serpent,因此Rijndael成为获胜者。Serpent是由Ross Anderson、Eli Biham和Lars Knudsen设计,其运行速度优于DES,安全性优于3DES,它是一个比较安全的算法。至今,尚未发现针对Serpent的短路攻击。设计者为本算法提供了一些分析,证明Serpent可以抵抗已有攻击。Serpent算法轮数是32轮,而多数算法是16轮。虽然可能存在一些未知的攻击会破解16轮Serpent,但是攻击32轮是困难的。因此Serpent被认为是强安全算法。然而,随着轮数的增加,势必降低加密速度,这也是Serpent比Rijndael慢的原因。设计者认为Serpent会有至少一个世纪的生命期。因此,对Serpent的安全性分析工作具有很重要的意义。2002年,Courtois和Pieprzyk运用流密码的分析技术——代数攻击,来分析分组密码[6]。他们对Rijndael和Serpent进行了分析。分组密码的代数攻击主要运用了S盒的性质,将分组密码表示成为二次布尔函数方程。在这些方程中,每轮S盒的输入和输出是未知量,然后将布尔函数扩展至整个算法中。这样方程中未知量数目和方程数目都非常大。求解二次方程的基本方法是线性化,线性化的思想是将方程中的二次项用一个新的项替代,从而将方程转化成为线性方程组。在超定方程组中(方程的数目比未知变量的数目要少),文献[34]提出了一个推广的线性化算法,该算法中,由某些变量和方程的乘积产生新的方程,但是这种方法不能保证所产生的方程是独立无关的。文献[6]提出另外一种线性化方法,这种方法利用方程的稀疏性以产生更多的新的方程而尽可能少的引入新项。但是,这种方法的时间复杂度很难去估计,其有效性目前一直没有定论。差分分析由Eli Biham和Adi Shamir于1990年提出[7,8],是密码分析中最基本和重要的方法之一。攻击者分析两个明文差分和其相应密文的差分来获取密钥信息。通过寻找多轮高概率的差分特征,猜测一轮或二轮的轮密钥进行分析。本论文中,我们将提出一个新的攻击方法,差分-代数攻击,并利用该攻击方法对8轮Serpent-256进行分析。本论文的主要工作如下:1.给出了新的密码分析技术:差分-代数分析方法差分分析的有效性在于是否能找到多轮数的高概率差分特征。对于代数攻击,随着轮数的增加,方程的数目也不断增加,求解方程也就更加困难。目前对代数攻击的研究更多着眼于寻找求解方程的方法上,如XL算法。如果现有的差分分析结果基于一个具有较高概率优势的差分特征得出,利用差分分析方法再对其进行改进将非常困难。而对于代数攻击,如果不能找到有效的求解方程的方法,改进其当前的分析结果也是非常困难的。我们考虑利用分组密码算法的代数特性扩展当前差分分析结果到多轮。王小云教授为本论文提出了组合差分分析与代数攻击相结合的差分-代数分析的思想,基于该思想,在导师的指导下,我们建立了差分-代数分析的数学模型。在差分分析中,基于r轮的差分特征可以攻击r+1轮或r+2轮。我们将利用差分-代数分析方法扩展到更多轮-第一步是建立从r+1轮到r+s轮的多变量代数方程组,方程组中,系数与密文和差分特征的输出差分有关,未知量是后s轮的子密钥。如果一对明文对是正确对,满足差分特征,将其对应的密文代入方程组中系数项,该方程组的解一定包含正确子密钥的值。如果我们可以求得方程组的解,则成功实现了对r+s轮的攻击。为了建立方程组,本论文中首先给出了S-box的布尔函数的表示算法。基于我们提出的算法,开发了相应的软件,给定S-box的真值表(输入是m位,输出是n位),可以自动生成S-box布尔函数。然而,求解后几轮的非线性方程组仍然是困难的。但是,对方程组进行解的验证却是容易的。为了减少分析的复杂性,在验证过程中采用了以下关键技术:1)如果一个分组密码算法的雪崩效应不够理想,在每个方程中,仅包含部分密钥比特,这对攻击是非常有利的。通过逐一验证每个方程的方法来找到方程组的解。根据随机分布原理,验证每个方程时,对于所有可能的解中,将有一半是满足方程的,一半是不满足的。2)选择最优的方程验证顺序,尽早确定出一些密钥比特的值。对于那些包含较少子密钥变量的方程优先验证。在确定下一个要验证的方程时,选择那些包含的子密钥变量中,已经验证的子密钥变量最多的,而且新出现的子密钥变量最少的方程来验证。3)将方程中出现的子密钥变量空间进行分割。在方程中出现的所有的子密钥的可能的值都要进行验证,如果方程中未知量较多,验证方法和穷搜相比,没有太多优势。为了加强这种优势,我们使用了两个方法:其一是为了减少方程组中的变量数和项数,将基于差分特征的输出差分推导出更多轮的差分信息;其二是对子密钥变量作一些变换,可以达到减少变量数的目的。由于差分-代数分析中利用了子密钥在方程组中的分布特性,使得在差分-代数攻击中验证的子密钥数少于差分分析中猜测的子密钥数。因此我们的分析中对子密钥空间进行了更为细致的分割。为了与差分分析进行比较,我们引入两个重要的评估参数,其一是Eli Biham和Adi Shamir提出的信噪比S/N,其二是满足正态分布的成功率Ps。Ps与选择明文数及S/N等有关。基于其关系式,我们得到以下结论:如果后几轮的子密钥分布不理想,也就是密文位只与后几轮的部分子密钥位有关,针对该类密码算法的差分-代数分析将比差分分析更为有效。2.8轮Serpent-256的差分-代数分析至今,Serpent-256差分分析的最好结果由Biham等得出[9]。他们找到了概率为2-93的6轮差分特征,从而获得了基于该差分特征的8轮256位密钥的Serpent算法的差分分析。该分析的时间复杂度是2206.7次8轮Serpent加密,数据复杂度284,存储要求是289字节。在我们的分析中,构造了最后两轮的方程组,未知变量是7-8轮的子密钥比特,系数和密文及6轮差分特征的输出差分相关。通过利用非活性S盒的特征,导出第8轮的5比特的输入差分,第7轮的52比特的输出差分和76比特的输入差分。我们构造的方程组有128个方程,其中76个方程最高次数为9,项数约为5000项,47个方程最高次数为3,项数约为250项,而5个方程最高次数为3,项数不超过10项。我们寻找到验证方程解的最优次序,以减少分析的复杂度。我们的方法运用283个选择明文,2180.4次8轮Serpent-256加密运算,需要的存储是2176.7字节。和差分分析相比,我们的攻击时间复杂度大大减少,而且数据复杂度也有所降低。从分析结果可以得到结论:在Serpent算法中,由于在每轮的线性变换中,输出比特仅与少量输入比特有关,导致了我们的攻击的可行性。
其他文献
建筑工程中,电气工程对于建筑楼宇的安全和使用功能特别是施工中的质量管控环节具有最为关键的作用。笔者从业主单位工程管理和建筑楼宇投入使用后维护管理中发现的案例角度
信仰教育是青少年思想政治教育的重要内容。信仰是一种精神追求,它存在于人的心灵深处,但它溢于人的外表,能外化为人的价值观和人的行为方式。信仰教育就是引导青少年关怀终
东营-黄岛输油管道使用的加热炉为美国CE-NATCI热媒炉,原设计热效率为92.3%,在热媒炉运行过程中,发现其热效率远未达到设计值.为此,选取一台热媒炉进行了热平衡测试并对测试
言语听辨是心理语言学有关言语理解研究中的一个重要内容,它重点探索的是言语听辨的过程,也就是对言语声音刺激信号的确认和加工到最终理解言语内容和言语意义的过程。文章分析
[摘 要:随着新课改的不断推进和发展,多元化教学法是其重要的组成部分。不仅可以激发学生的学习兴趣,而且还能提高教学质量。所以,教师在历史教学中要将多元化引入课堂上,引导其积极地参与到课堂学习中来,从而提高学生的学习效率。本文根据学生在历史课堂中的学习状况就如何在历史教学中应用多元化教学法进行了分析和探究,提出了一些相关策略,从而有效地提高学生的历史认知能力,促进学生身心将康的全面发展。  关键词:
[摘 要:高中学生的创新能力是贯穿于整个数学教学活动中的,要善于引导学生进行发现问题,分析问题,解决问题,并能够总结问题,从而在此基础上,培养学生的数学创新能力,为终身的学习打下良好的基础。本文重点论述了高中数学创新能力与高中数学教学,主要从以下四个方面着手:教师要更新教学观念;教师要在教学活动中突出对学生的创新能力培养;教师应当创造一个活泼轻松的教学环境;教师应充分保护学生的学习兴趣和创新兴趣。
本文系统地研究了欧洲数字音频广播DAB发端的信源编码和信道编码调制技术,研制了基于DSP的DAB/MPEG音频编码器和多路节目复用器,完成基于DSP的信道编码和OFDM调制的方案论证和设
湖北中医药大学临床医学院内科学教研室结合教学计划安排、师生双方及学校教学条件实际情况,采用骨干教师授课班级试点实践,边实施边反馈边调整的方式,灵活运用教学手段和授课模
<正>新课程高中英语教学倡导运用一定的情境激发学生参与文本学习探究的激情。情境教学有利于学生在英语学习的情境氛围中,激活思维,增强学生的学习主动性和积极性。英语教学
乡镇与村庄之间具有三重关系 :一是乡镇党委与村党支部的领导与被领导关系 ;二是乡镇政府与村委会在村民自治事务范围内的指导与被指导关系 ;三是乡镇政府与农民在政府依法行