论文部分内容阅读
随着终端计算能力的提升和互联技术的发展,信息化正在逐步普及,深入到各个领域和人们的日常生活中。与此同时,通信安全、隐私保护等信息安全问题也日益凸显。密码技术是保障信息安全的关键技术,对密码算法的安全性分析有利于发现算法中存在的不足,确保密码技术的安全应用,因而具有重要意义。Rebound攻击技术由Mendel等人提出,是分析基于AES类置换Hash函数的有效手段。目前该技术也应用在其他结构的Hash函数以及分组密码算法的分析中。2010年,Gilbert等人提出了大s盒技术推动了该技术的进步与发展。本文以Rebound攻击技术为主要分析手段,研究Hash函数和分组密码算法的安全性,共分为两部分:第一部分属于Rebound攻击技术的典型应用,给出俄罗斯新Hash函数标准GOST R 34.11-2012首个安全性分析结果;第二部分将Rebound攻击、大s盒技术与错误攻击结合,给出了分组密码算法ITUbee和KASUMI的错误攻击新方法。1、俄罗斯新Hash函数标准GOST R 34.11-2012的安全性分析2012年8月,俄罗斯政府宣布了Stribog算法作为国家新]Hash函数标准GOST R 34.11-2012。Stribog算法由Grebnev等人设计,其压缩函数的轮函数为AES类置换。应用Rebound攻击技术,我们给出4.5、5.5、7.5和9.5轮的Stribog压缩函数碰撞结果。其中9.5轮攻击的计算复杂度为2176次轮函数运算,存储复杂度为2128字节。这一结果也是对Stribog算法的首个分析结果。利用有限生日攻击区分器,可以将9.5轮的压缩函数碰撞攻击转化为10轮的压缩函数区分攻击。由于Stribog算法在结构上采用了模加的消息校验和,其压缩函数的碰撞并不能直接导致Hash函数的碰撞。2014年ACNS会议上,Ma等人提出利用多个碰撞的消息分组构造Stribog Hash函数碰撞的方法。他们利用生日攻击,计算出构造Hash函数碰撞所需的消息分组数为64。事实上,由于模加的特性,生日攻击前提假设无法满足,64个消息分组并不足以构造Hash函数碰撞。本文针对构造Stribog Hash函数碰撞所需的精确分组数展开讨论,重新计算构造Stribog Hash函数碰撞所需的消息分组数为106。2、分组密码ITUbee的差分错误攻击ITUbee分组密码算法由Karakoc等人在LightSec 2013上提出,密钥长度为80比特,采用Feistel结构。该算法没有密钥生成方案,易于软件实现,是一个适用于资源受限环境的轻量级算法。以该算法为例,本文给出了结合Rebound攻击技术和大s盒技术的差分错误攻击新方法。在我们的攻击中,2次随机字节错误注入就足以对ITUbee算法的全部密钥进行恢复。该攻击的计算复杂度约为243次轮函数运算。通过增加错误注入次数,还可以进一步降低计算复杂度。当错误注入达到4次时,攻击复杂度降为225次轮函数运算,在普通PC机上几秒钟即可恢复全部密钥。3、分组密码KASUMI的安全性分析KASUMI分组密码算法是A5/3密码系统的基础,被广泛应用于保护GSM和3G设备中。KASUMI算法的密钥长度为128比特,但由于版本兼容性问题,大量GSM设备中使用64比特密钥。结合大s盒技术并利用KASUMI算法轮函数和密钥编排的特性,我们给出64比特密钥下KASUMI算法新的错误攻击结果。在单次字错误注入模型下即可完成攻击,计算复杂度约为232次加密运算。通过仿真测试,我们验证了该攻击的有效性—在普通PC机上仅需几分钟即可恢复全部64比特密钥。与之前的错误攻击结果相比,我们的错误模型更易实现,攻击复杂度也大大降低。