论文部分内容阅读
个人计算机的迅速普及和电子商务等的快速发展,使得人们对安全通信的需求不断增强,密码产品在日常生活中的应用日趋广泛。密码产品包括几个重要组成部分:密码算法、协议、用户、硬件电路、软件代码。传统的密码分析偏重于对密码算法、协议中数学问题及用户欺骗性行为的研究。而Paul Kocher开创性的工作则为密码分析开辟了一个新的方向—侧信道分析。侧信道分析主要研究密码设备运行状态时的一些物理特征及出错信息,它更注重于对实现密码算法的硬件电路和软件代码的研究。能量分析攻击和错误攻击是侧信道分析中最有效的攻击方法。能量分析攻击利用了密码设备运行时的能量消耗,通过示波器采集到这些能量消耗后,人们可以使用差分分析、模板攻击、碰撞攻击等方法对密码设备进行破解。错误攻击的一个分支研究已知密码设备运行错误时如何对其进行破解。Li等人提出了错误敏感攻击:不同的数据计算所需的时间(错误敏感信息)不同,给定一个时钟时,就会出现一部分数据运行正确而另一部分数据运行错误的情况,根据密码设备运行结果是否正确,可以判定密钥的可能值。错误攻击另一个分支则关注错误注入技术,它是对电路进行扰动使其产生错误的方法。能量分析攻击中最耗时的部分是能量消耗波形的采集;错误敏感攻击最耗时的部分是错误敏感信息的获取。相比于公钥密码系统来说,私钥密码系统需要的计算资源、存储资源少。公钥密码系统一般用来分发密钥,而实际完成加密操作的一般都是私钥密码系统。密码设备,如网银盾、手机卡等,一般都会使用私钥密码系统。论文着重研究侧信道技术对私钥密码系统AES算法的攻击能力并提出相应的防御对策,完成了以下工作:1、相关系数能量分析攻击中人们采集大量能量消耗波形,考查密码算法运行中间值与波形某一点处的相关性来恢复密钥信息。波形采集需要消耗大量的时间。我们提出2D-CPA的方法,通过充分利用采集到的波形中的有效信息,而不是只关注某一点能量泄露的方法来减少对能量消耗波形的需要。对8051上用汇编语言实现的AES算法的攻击,说明我们的攻击是高效的。此外,我们分析了各种防御对策对抗2D-CPA方法的有效性,给出了合理的防御方案。2、对硬件描述语言实现方案,本文首先提出了时序仿真获取错误敏感信息的方法。这个过程是软件自动运行的,不需要人工参与,所需时间可以忽略不计。然后,我们提出了一个基于时钟控制的毛刺时钟生成方案,用来对密码设备进行时钟错误注入。联合使用时序仿真得到的错误敏感信息和毛刺时钟生成方案进行错误注入,我们对硬件实现的掩码AES算法进行攻击。仅需1Ous,我们就能检测出被重用的掩码S盒电路两次输入中间值是否相同。针对上述攻击方法,我们提出了四种防御对策:一、基于随机延迟的逻辑电路;二、各支路对称的逻辑电路;三、掩码非重用;四、毛刺时钟检测电路。