针对DES密码芯片的两种功耗攻击对比分析
2012-09-21罗晓飞
罗晓飞, 陈 运, 陈 俊, 杨 斌
(成都信息工程学院应用密码学研究所,四川成都 610225)
0 引言
目前智能卡(smart card)广泛应用于交通、金融等各行各业,其安全性显得格外重要。1999年,由Paul Kocher等人提出的差分功耗分析[1](Differential Power Analysis,DPA)方法成功破解智能卡数据加密标准[2](Data Encryption Standard,DES)算法密钥,功耗分析攻击技术引起人们广泛的关注。随着功耗分析技术的发展,提出了相关性功耗分析[3](Correlation Power Analysis,CPA)方法。
文献[4]将差分功耗分析应用于MCU 8051芯片,成功获取到DES算法的密钥。文献[5-6]用差分功耗分析破解了FPGA芯片的DES算法。文献[7]用相关性功耗分析成功破解DES算法密钥。文献[8]用相关性功耗分析破解Xilinx FPGA芯片的DES密码算法。文献[9-13]用相关性功耗分析破解了AES密码算法。上述文献都集中描述DPA和CPA破解密码芯片的方法,文中以FPGA芯片对称密码DES算法为攻击对象,对两者的适用环境及其特点展开分析。
1 差分功耗分析(DPA)
DPA攻击原理是通过统计记录密码设备对大量不同数据的加密或者解密时产生的功耗,并通过分析功耗曲线得出密码设备的密钥。
DPA分析的具体步骤[14]如下:
(1)选择密码算法的某个中间值作为攻击点。该中间值必须与密钥相关(如经过S盒输出的值),通过该中间值得到部分密钥信息。
(2)记录功耗曲线。记录大量的数据d加密或者解密运算时的功耗曲线
(3)计算假设中间值。根据每一个可能的密钥k值,将(2)中所有数值 d与假设的密钥k进行加密或者解密运算,得到假设中间值。
(4)建立功耗分析模型,构建区分函数。通过建立的功耗分析模型将假设的中间值与功耗建立关系,从而通过区分函数将(3)中计算得到的假设中间值区分成两类,并将数据集d对应的功耗曲线分组成功耗曲线集合S0和集合 S1。……
