论文部分内容阅读
分组密码属于对称密码体制,是保护信息安全的重要手段之一。目前所使用的主流分组密码算法是否存在安全漏洞?如何找出分组密码算法的安全漏洞?这正是业界讨论的重点。FPGA(Field-Programmable Gate Array)作为现场可编程门阵列以其编程灵活、处理速度快、设计周期短、成本低、实时验证能力强等特点而被广泛应用于密码实现与分析。本文就主流的3个分组密码算法AES(Advanced Encryption Standards),SIMON和SPECK(美国轻量级加密标准)算法的安全性检测展开研究。主要成果如下:1.在AES算法的密钥中比特检测及分析方面:根据AES算法的密钥编排特点和轮函数结构,结合立方测试的基本思想,利用FPGA测试平台设计了一个AES-128的密钥中比特检测算法。分析结果表明:在立方变元取17维至24维时,3轮简化AES-128的输出位均能够捕获到密钥中比特,而对于4轮以上AES-128的任何输出位均无法捕获到密钥中比特。这进一步说明了,4轮以上AES-128密码算法具有稳固的密钥信息扩散及混淆性。2.在简化SIMON类密码算法的立方分析方面:分别利用立方攻击和立方测试的基本思想,结合FPGA高速测试平台对SIMON32/64算法进行了分析。结果表明:对于7轮SIMON32/64算法,通过立方攻击能够直接恢复48比特密钥,攻击的数据复杂度约为17.152个选择明文,时间复杂度约为17.712次加密;对于8轮SIMON32/64算法,能够直接恢复32比特密钥,并找到了关于另外6比特密钥的4个线性多项式,攻击的数据复杂度约为15.482个选择明文,时间复杂度约为28.002次加密。可见,立方攻击可对低轮SIMON32/64算法产生实质性的威胁。对于9轮的SIMON32/64算法,通过立方测试能够捕获到密钥中比特。这进一步说明了,SIMON32/64算法要达到完全的混淆和扩散必须要经过10轮以上的迭代操作。3.在SPECK类密码算法的低轮立方测试与分析方面:利用立方攻击,并结合二次测试的基本思想,基于FPGA高速测试平台对SPECK32/64算法进行了分析,结果表明:在选择明文攻击条件下,若算法简化到3轮,则可直接恢复17比特密钥,攻击的数据复杂度约为10.022个选择明文,时间复杂度约为47.002次加密。可见,SPECK32/64算法必须要经过4轮以上的迭代操作才能有效的抵抗结合二次检测立方攻击。若算法简化到5轮,6轮,通过立方测试均能够捕获到密钥中比特。这进一步说明了,SPECK32/64算法要达到完全混淆和扩散至少要进行7轮以上的迭代运算。