《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 针对DES密码芯片的CPA攻击仿真
针对DES密码芯片的CPA攻击仿真
严迎建, 樊海锋, 徐金甫, 任
摘要: 为研究密码芯片抗功耗分析性能,构造了一个功耗分析研究平台,结合DES算法在平台上进行了相关性功耗分析(CPA)攻击仿真实验。根据猜测部分密钥时的模拟功耗与猜测整个密钥时模拟功耗之间的相关系数大小来确定猜测密钥的正确性,由此可以确定整个密钥。这种功耗分析仿真方法,能够揭示未经防御的DES算法面临CPA攻击时的脆弱性。
关键词: DES算法 软件仿真
Abstract:
Key words :

    摘 要: 为研究密码芯片抗功耗分析性能,构造了一个功耗分析研究平台,结合DES算法在平台上进行了相关性功耗分析(CPA)攻击仿真实验。根据猜测部分密钥时的模拟功耗与猜测整个密钥时模拟功耗之间的相关系数大小来确定猜测密钥的正确性,由此可以确定整个密钥。这种功耗分析仿真方法,能够揭示未经防御的DES算法面临CPA攻击时的脆弱性。
    关键词: 相关性功耗分析; 仿真; DES

 

  随着智能卡、掌上电脑和移动电话的不断普及应用,人们需要对一些信息隐私进行保护,因此信息安全问题日益突出。安全产品或者密码系统都必须面对如何防御各种攻击的问题。传统攻击方法是一种数学攻击方法,主要通过大量数学计算来搜索密码系统的密钥。强力攻击就是其中一个典型的例子:它尝试所有的密钥组合,直至找到正确的密钥。但是随着密钥长度的增加,这种攻击的难度也急剧增加。近年来,出现了一种新的攻击方法,通常被称为旁道攻击。它是根据密码芯片在加解密时所泄漏的一些微弱的旁道信息,如功耗、时间、电磁辐射及差错信息等进行攻击。攻击者利用旁道泄漏信息,结合统计学等学科的知识,能够在短时间内成功破解一些密码算法的密钥。
在旁道攻击方法中,功耗分析方法应用得最为广泛和成熟,因为功耗信息最容易测量和分析。研究针对密码芯片的功耗分析方法是为了检验芯片是否具有抗功耗分析能力或是检验密码芯片抗功耗分析攻击能力的大小。相关性功耗分析是功耗分析中一种,相关性功耗分析每次考虑的相关位比传统的差分功耗分析多,所以更具有威胁性。
1 DES密码算法的硬件结构及功耗泄漏模型
1.1 DES密码算法的硬件结构

DES密码算法是分组加密算法,能够对固定长度的一组明文进行加解密,如果采用ASIC方式实现,固定长度意味着运算时的中间结果所需要的存储宽度是相同的。DES密码算法的轮结构也是相同的,每轮运算可以共用一个硬件结构体,所不同的是每轮运算时所用的子密钥是不同的。DES算法的结构特点适合ASIC方式实现,其通用的硬件结构如图1所示。

 

 

  在ASIC方式实现的硬件电路中,攻击者经常针对寄存器进行攻击。之所以选择寄存器攻击主要原因有:
(1)寄存器在ASIC中通常被用来做存储器,包括暂存一些与密钥相关的关键数据。
(2)与反相器、“与非门”等非时序逻辑相比较,寄存器的功耗大一些。
(3)寄存器是时钟沿触发电路,易于在时序上定位。
1.2 功耗泄漏模型
目前绝大多数密码芯片都是基于CMOS工艺,CMOS逻辑电路的动态功耗取决于逻辑门的翻转率。单个逻辑门的功耗可以表示为:

式中, f表示逻辑门最大变化率,P0→1表示0→1转换的概率,CL是逻辑门的负载电容,VDD是电源电压。功耗分析正是以式 (1)中动态功耗对数据的依赖性为理论基础的。整个电路硬件内部结构非常复杂,动态功耗取决于整个逻辑电路的整体翻转率的统计特性和电路所采用的工艺。为简单起见,可以简化地认为电路的总功耗与整体翻转率成一定的正比关系。基于这种相关性建立起来的功耗模型能够反映出当前密码算法电路所处理的数据引起的瞬时功耗的变化情况。功耗分析攻击是通过对多次测量得到的功耗曲线,进行统计分析出电路中相应数据位的变化来破解密钥的。
功耗泄漏模型一般是在寄存器级建立。攻击者经常把攻击点选在DES密码算法首轮或最后一轮的寄存器输出处,记输出时刻为t,则瞬时能耗T(t1)如下:

  式中,D0(t0)代表寄存器中在前1个时刻t0所存储的二进制序列, D0(t1)代表寄存器中在下1个时刻t1所存储的二进制序列,δ代表转换时的1个因子。通过比较前后时刻相应码字的变化,当码字由0→1时,总模拟功耗值加1;当码字由1→0时,总模拟功耗值加1×(1-δ)。δ的大小根据算法实现的平台统计分析得到,对于一般的CMOS逻辑电路,δ通常取值为0.17。
2 CPA攻击原理
功耗模型一般是基于所处理数据的线性汉明距建立。如1.2节所述的瞬时功耗为:

  式中所示的相关系数说明部分密钥位猜测正确时,中间计算结果与加密器件的瞬时功耗在被攻击时刻能够关联起来,对应时刻的相关系数也是最大的。而用错误的猜测密钥计算出来的中间结果与功耗之间不具有相关性或仅有弱相关性,其相关系数很小。根据这一原理,可以用仿真的方法对密码算法电路进行攻击,根据攻击的难度可以判断抗功耗分析性能。
3 功耗分析仿真平台
建立的仿真平台如图2所示。仿真平台主要由逻辑模拟器、功耗估算器和功耗分析模块组成。框图中应用Mentor公司提供的ModelSim作为逻辑模拟器,逻辑模拟器输入有:所设计密码电路的硬件语言描述代码、电路的激励文件和一些反标延迟信息等。输出的密码电路的功耗仿真结果是以vcd格式存储的文本文件,这个vcd文件包含了所有的信号模拟变化以及相应的仿真时刻标签,然后用VisualC++对vcd文本文件进行处理,得到模拟功耗数据,最后用MatLab对模拟功耗数据进行统计分析,推测密钥信息。

 


由于逻辑模拟器的仿真结果中包含所有信号的变化和相应的仿真时刻标签,这些vcd格式的文件能够用功耗模型估算密码电路的瞬时模拟功耗,因此,只需要统计与密钥具有相关性的关键寄存器的变化即可。
要统计DES密码芯片中每个时钟周期的模拟功耗值,可以通过统计关键寄存器中在相邻时钟周期内0、1的变化情况。根据式(2)所示已经建立的功耗模型,将电路所处理的数据变化转换为模拟功耗变化即可。
4 DES算法的CPA攻击仿真及结果分析
  基于所建立的功耗分析仿真平台,结合分组密码算法DES算法进行功耗分析攻击实验。下面是CPA攻击的详细步骤及结果分析。
(1)用仿真的方法进行攻击的第1步是产生1个仿真功耗文件
任意选择1 000个随机明文和1个固定但随机的密钥。每轮加密之后(1个时钟周期),记录下寄存器中数据二进制序列的变化情况,根据建立的功耗泄漏模型,统计模拟功耗值。这样仿真器就产生1个包含N×16的矩阵M1
(2)选择寄存器中M个最高位,用与步骤(1)相同的明文及密钥进行仿真实验
仿真器统计寄存器中位的变化数目,结果存储在矩阵1 000×1的矩阵M2中,在这个验证实验中,选择M为8,然后计算M1的所有列和M2的相关系数,如下:
ci=C(M1(1:1000,1),M2)     (7)
式中,i=1,…10, M1(1:1000), i代表矩阵M1的第i列向量。步骤(1)和步骤(2)都用了同样的明文的密钥,所不同的是它们考虑的位变化的数目不同。第(2)步产生的值是第(1)步初始化密钥加操作计算值的预测。如果计算是正确的,M2和M1的第一列的相关系数比其他列要高得多。图3为预测的情况。

 


(3)重复步骤(2),但使用一个不同的密钥
这时产生1个功耗文件矩阵M3。与第(2)步一样计算M3和M1所有列的相关系数:

式中,i=1,…10。由于实验中使用了一个不同的密钥产生M3,所以M3和M1所有列的相关系数将是很小的(或者说是没有相关性),包括第1列。通过计算得出如图4所示的相关系数图,图中的曲线表明其结果和预测的相同。

 


(4)对所有8 bit密钥组合进行实验
对这个实验进行拓展,对密钥的最高L=8比特所有可能性进行猜测,也就是对这8 bit进行强力攻击,这样就能产生1个1 000×2L的矩阵M4。8 bit密钥组合中必有一个是正确的密钥,而且只有这个密钥计算出的第1轮功耗变化与第1轮是统计相关的(相关系数比较大),由此可以通过这种方法推测出密钥。式(9)表示了所有的密钥猜测与M1的第一轮之间相关系数的大小。图5为M1的第1列和M4的所有列之间的相关系数。从图中可以看出,所猜测的密钥只有1Ahex=30dec时具有较高的相关性,所以正确的密钥是(30)dec

  
式中,i=0,…2L-1。
通过功耗仿真的方法可以对DES密码芯片进行成功的攻击,根据攻击的难度大小,也就是所得到的相关系数的大小,可以判断一个密码芯片抗功耗分析攻击能力的大小,这样就能够在设计阶段评估密码芯片的抗功耗分析攻击的能力大小,为密码芯片设计者提供参考,以便及时添加相应的抗功耗分析的防御措施。
抗功耗分析性能的评估标准在很多文献中只是简单提到过,且没有统一的标准。本文中采用了KrisTri所用的评估标准MTD(Measurements To Disclosure),也就是对于某个密码芯片来说,能够破解1 bit密钥所需要的随机明文数目。本文模拟攻击过程也可以用这种标准来衡量密码芯片的抗功耗分析性能。
为研究密码芯片的抗功耗分析性能,搭建了功耗分析仿真平台,并结合DES分组加密算法进行了相关性功耗分析攻击实验。实验结果表明,搭建的仿真平台是有效的,且说明未经过防御的DES算法容易受到相关性功耗分析的威胁。


参考文献
[1]  韩军,曾晓洋,汤庭鳌.DES密码电路的抗差分功耗分析设计[J]. 半导体学报,2005(8).
[2]  张咏,范明钰,王宇飞.对于DES的差分能量分析攻击及其防范对策[J].电子技术应用,2005,31(5).
[3]  陈开颜,赵强,张鹏,等.DES加密实现的差分功耗分析仿真[J].军械工程学院学报,2006(6),18(3).
[4]  KOCHER P, JAFFE J, JUN B. Differential power analysis [A].WIENER M,editor. Advances in Cryptology: Prodeeding  of CRYPTO’99[C].Volume 1666 in Lecture Notes in  Computer Science, Santa Bartara, California, USA, Springer-August,1999:388-397
[5]  BRIER E, CLAVIER C, OLIVIER F. Correlation power analysis with a leakage model[A]. JOYE M, QUISQUATER
J J, editor. Cryptographic Hardware Embedded System CHES 2004, USA, Volume 3156 of Lecture Notes in Computer Science, Springer-Verlag, 2004:16-29.

 

此内容为AET网站原创,未经授权禁止转载。