论文部分内容阅读
随着智能卡越来越广泛地应用到物流、金融、制造业和公共信息服务等众多领域,我们不仅需要从数学结构的角度研究密码算法安全性,还需要从算法实现的角度来考虑密码系统的安全问题。在实际应用中,智能卡芯片在运行时可能泄漏一些中间状态信息(如功耗、执行时间、出错消息、电磁辐射等信息),使得攻击者有机会从中收集到与密钥有关的关键信息。功耗攻击就是一种通过获取密码芯片与密钥相关的功耗信息来实现破解的攻击手段,它主要是通过获取、分析密码芯片的功耗曲线以了解硬件加密的具体方法,最终达到破解的目的,这给密码芯片的安全性产生了巨大的威胁,受到密码学界的广泛的重视。PRESENT分组密码是一种典型的轻量级密码算法,它是针对智能卡芯片面积及资源受限的应用场景而设计出来的。目前,针对PRESENT算法的攻击方法主要有线性分析、差分分析、代数分析等,但是这些方法仅限于缩减轮数的攻击,因此,PRESENT算法在31轮依然是安全的。目前,国内外针对于PRESENT加密算法的功耗攻击方法及防护手段的相关研究还处于开始阶段,有待更进一步的深入研究。本文实现了对PRESENT密码算法的功耗攻击,取得较为理想的实验结果,并在此基础上,提出了相应的防护方法,为轻量级密码算法的设计实现及针对功耗攻击的防护方法提供了相应的参考。本文主要工作和创新点如下:1.搭建一套完整的硬件仿真平台,在对PRESENT密码算法分析的基础上,进行了硬件仿真,以及综合、布局布线和功耗仿真实现,得到功耗曲线,从而能够得到攻击点的功耗数据。2.针对PRESENT密码算法运算结构和特点,通过对功耗模型的分析,提出了两种针对PRESENT密码算法的功耗攻击方法,分别是多比特差分功耗攻击(DPA)和相关功耗攻击(CPA),仿真实验表明,这两种攻击方法对PRESENT算法的轮密钥的攻击可行有效,从而能够推导出整个密钥。3.针对PRESENT的功耗攻击,通过分析可能的攻击点,提出了PRESENT密码算法实现的随机掩码和固定掩码这两种有效的防护方案,为今后PRESENT密码算法的实现提供参考。