摘 要: 为研究密码芯片抗功耗分析性能,构造了一个功耗分析研究平台,结合DES算法在平台上进行了相关性功耗分析(CPA)攻击仿真实验。根据猜测部分密钥时的模拟功耗与猜测整个密钥时模拟功耗之间的相关系数大小来确定猜测密钥的正确性,由此可以确定整个密钥。这种功耗分析仿真方法,能够揭示未经防御的DES算法面临CPA攻击时的脆弱性。
随着Interne的迅猛发展,智能卡、掌上电脑和移动电话的不断普及应用,不犯罪分子就利用网络对别人进行信息的偷盗,人们需要对一些信息隐私进行保护,因此信息安全问题日益突出。近年来,出现了一种新的攻击方法,通常被称为旁道攻击。它是根据密码芯片在加解密时所泄漏的一些微弱的旁道信息,如功耗、时间、电磁辐射及差错信息等进行攻击。攻击者利用旁道泄漏信息,结合统计学等学科的知识,能够在短时间内成功破解一些密码算法的密钥。以下本文的分析结果。
在旁道攻击方法中,功耗分析方法应用得最为广泛和成熟,因为功耗信息最容易测量和分析。研究针对密码芯片的功耗分析方法是为了检验芯片是否具有抗功耗分析能力或是检验密码芯片抗功耗分析攻击能力的大小。相关性功耗分析是功耗分析中一种,相关性功耗分析每次考虑的相关位比传统的差分功耗分析多,所以更具有威胁性。
1 DES密码算法的硬件结构及功耗泄漏模型
数据加密算法(Data Encryption Algorithm,DEA)是一种对称加密算法,很可能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初开发的DEA是嵌入硬件中的。DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 个循环,使用异或,置换,代换,移位操作四种基本运算。
1.1 DES密码算法的硬件结构
DES密码算法是分组加密算法,能够对固定长度的一组明文进行加解密,如果采用ASIC方式实现,固定长度意味着运算时的中间结果所需要的存储宽度是相同的。DES密码算法的轮结构也是相同的,每轮运算可以共用一个硬件结构体,所不同的是每轮运算时所用的子密钥是不同的。DES算法的结构特点适合ASIC方式实现,其通用的硬件结构如图1所示。
在ASIC方式实现的硬件电路中,攻击者经常针对寄存器进行攻击。之所以选择寄存器攻击主要原因有:
(1)寄存器在ASIC中通常被用来做存储器,包括暂存一些与密钥相关的关键数据。
(2)与反相器、“与非门”等非时序逻辑相比较,寄存器的功耗大一些。
(3)寄存器是时钟沿触发电路,易于在时序上定位。