面向ASIC 实现的CPA 研究平台及其应用

2013-02-22 08:10王晨旭张凯峰喻明艳王进祥
计算机工程与应用 2013年7期
关键词:功耗密钥密码

王晨旭,张凯峰,喻明艳,王进祥

1.哈尔滨工业大学 微电子中心,哈尔滨150001

2.哈尔滨工业大学(威海)微电子中心,山东 威海264209

1 引言

差分功耗分析(DPA)攻击是一种利用密码设备的功率消耗信息来获取密码设备中私密信息的攻击方法[1]。自1999 年Paul Kocher 首次提出以来,该方法以其攻击效率高、代价小等优势,给国防、安全、金融、个人信息保护等多个信息领域的信息安全构成了巨大威胁,因而受到了科学界的广泛关注。

功耗分析攻击之所以能够成功的破译智能卡、密码芯片等多种设备的密钥,是因为在密码设备中,设备的瞬时功率消耗与设备所处理的数据和正在执行的操作存在相关性。为了能够抵御功耗分析,即打破这种相关性,研究人员已经提出了多种防御措施,例如基于环形振荡器的抗DPA 防御措施[2]、基于掩码技术的抗DPA 攻击方法[3-4]、基于时钟随机化的防御措施[5]等。过去,对抗功耗分析攻击效果的评估多采用对实际芯片进行功耗曲线(Power Trace)测量,然后进行攻击。该方法虽然更有说服力,但存在两个缺陷:一是不能在设计周期评估防御措施的效果,当芯片实测效果不理想时需要重新设计芯片,增加了设计成本,致使产品上市时间滞后;二是实际测量难度较大,并且由于测量噪声的存在,需要更多的功耗曲线,这就造成了测量时间的增加,因而不适用于对抗功耗分析理论的研究。为了能够准确快速地研究抗功耗分析攻击的新方法,并评估各种防御措施的实际效果,一些研究人员开发了评估平台。文献[6]基于软硬件协同设计和仿真的思想,开发了一款以FPGA 为载体的抗DPA 攻击评估平台,加速了早期设计阶段的DPA 评估,但其应用背景主要面向基于单片机软件实现的密码芯片抗攻耗分析攻击评估。在国内,军械工程学院的研究人员在文献[7]中,基于LabVIEW 开发了一个针对真实硬件系统的评测平台。该平台的不足之处也是只能用于单片机软件实现密码算法的DPA 攻击实验或评估,而不能用于专用集成电路(Application Specific Integrated Circuit,ASIC)的DPA 防御措施的预估。清华大学的研究人员则在文献[8]中,面向密码芯片的ASIC 实现,提出一种基于电路级模拟器Star-Sim 的功耗分析研究平台。该平台用Star-Sim 模拟出功耗曲线,然后用均值差的DPA 攻击方式,进而评估ASIC 芯片的抗攻耗分析能力。Star-Sim 是一款晶体管级仿真器,功耗模拟结果比较精确,但是该平台只能在设计周期的后期才能评估芯片的抗功耗分析能力,而且晶体管级仿真器的仿真速度极慢,导致功耗曲线的获取效率较低,给评估工作带来不便。相形之下,如果能够获取密码芯片门级功耗曲线,则可以在设计周期的早期进行功耗分析攻击和评估。虽然其结果不及Star-Sim 精确,但是功耗分析攻击能否成功的关键不在于功耗的绝对值(即功耗准确性),而是在于单条功耗曲线不同点之间和不同功耗曲线相同点之间的相对数值。因此这种基于门级网表的功耗获取方法依然有一定的实际意义,而且极快的门级功耗模拟速度必将给评估工作带来方便。本文基于PrimeTime PX 模拟输出的门级功耗曲线,使用MATLAB 建立CPA 攻击平台,通过MATLAB 建立功耗模型并计算相关系数后,再进行相应的数据分析处理以实现攻击。

2 CPA 研究平台的设计思想

功耗分析攻击是一种通过分析密码设备的电流信息来获得密钥的方法。这种方法之所以能够奏效,是因为密码设备在使用不同明文进行加密的过程中,元件的翻转次数会有所不同,这就造成了设备消耗的功耗会有微小的不同,瞬时功耗依赖于设备所处理的数据和设备所执行的操作。

PrimeTime PX 是Synopsys公司的功耗模拟软件,它提供了较为精确的动态和静态功耗分析能力,可以对门级电路的功耗进行模拟,进而得出密码芯片的功耗曲线,因此可以将其用于密码芯片的算法级DPA 防御能力的评估。密码算法芯片的功耗模拟过程如图1 所示,流程如下:(1)对编写的加密算法HDL 设计文件进行功能模拟;(2)将模拟无误的设计文件进行逻辑综合;(3)综合后模拟,并记录所用的明文和加密后的密文信息;(4)将综合后产生的网表文件、相应的波形文件和库文件经PrimeTime PX 模拟功耗,生成功耗曲线文件。重复(3)、(4)过程,完成多组功耗曲线的测量。图2 给出了使用PrimeTime PX 模拟出的AES 算法功耗曲线直观效果图。

图1 PrimeTime PX 功耗模拟流程图

在使用PrimeTime PX 快速准确地得出功耗曲线之后,为了能够达到攻击的目的,通过MATLAB 建立功耗模型并计算相关系数后,再进行相应的数据分析处理,如图3所示。

使用MATLAB进行CPA攻击,按照以下5个步骤进行[4]:

(1)选择所执行算法的某个中间值。这个中间值必须是一个函数f(d,k),其中d 是已知的非常量数据,一般为加密算法的明文或密文,k 是密钥的一小部分。

(2)使用PrimeTime PX 模拟密码设备加密或解密D个不同数据分组时的功耗,产生一个D×T 的功耗曲线矩阵T 。

(3)对每一假设的k 值计算对应的中间值,对所有D次加密和所有K 个密钥假设,可以得到一个D×K 的中间值矩阵V,V 中的每一个元素vij=f(di,kj)。

图2 PrimeTime PX 模拟出的AES 功耗曲线图

图3 CPA 攻击研究平台的实现方式

(4)根据元件输出翻转次数的变化,利用汉明距离模型,将矩阵vij映射为D×K的功耗值矩阵H。

(5)对假设功耗值和模拟出的能量值进行相关系数分析。相关系数是表征向量之间线性关系紧密程度的量,其计算公式如公式(1)。计算H矩阵的每一列hi和矩阵T的每一列tj的相关系数ri,j,得到一个K×T的矩阵R。

最大的相关系数表征了实际功耗和功耗模型的最相关,这样,矩阵R中的最大值的索引即为所选择的中间值进行处理的位置和设备所使用的密钥。

3 平台应用研究与实验结果分析

3.1 普通AES 实现方式的CPA 攻击

高级加密标准(Advanced Encryption Standard,AES)作为传统对称加密算法DES 加密标准的替代者,由美国国家标准与技术研究所(NIST)于2001 年12 月发布。AES 的最后一轮运算过程如图4 所示,明文经前9 轮的运算,得到128 位的中间结果,该结果经由SubBytes、ShiftRows、AddRoundKey 运算过程后得到最终的密文结果cipher。

图4 AES 最后轮抽象框图

选用密文攻击的方式,对AES 算法最后轮的轮密钥roundKey10 的每个字节逐个实施攻击,通过已知的密文按式(2)计算出plain_dummy,S-1 代表SubByte 的逆运算,SR表示ShiftRows 运算;利用汉明距离模型,按式(3)刻画假设功耗,并与PrimeTime PX 产生的功耗数据进行相关系数的计算,完成攻击。图5 为MATLAB 程序攻击AES 的流程图。

图5 MATLAB 攻击AES 的流程图

攻击过程中采用700 条功耗曲线,针对第10 轮的轮密钥roundKey10 中的每8 位,找出0 到255 每个密钥猜测值的最大相关系数,如图6 所示。限于篇幅,图6 中只包含4个子图,每个子图表示对roundKey10 其中8 位的攻击结果,横轴为密钥猜测值(0~255),纵轴为相关系数。以第3个子图为例,相关系数在猜测值为167 时出现最高尖峰,故roundKey10 的第81 到88 位推测应为10100111。图7 给出了功耗曲线数量对roundKey10[81:88]相关系数的影响,其中处于上方的曲线为真实密钥时的情况。可以看出,随着样本数量的增加,正确密钥猜测值与错误密钥猜测值相关系数的区别不断加大。

3.2 Threshold 防御措施CPA 攻击结果

图6 相关系数与密钥猜测值之间的关系

图7 相关系数与样本数量的关系

Threshold 技术是一种秘密分享(Secret Sharing)思想,它的基本思想是将原先的单数据通路拆分成N条数据通路(为了达到面积和复杂度的折衷,N一般取3),任何一条数据通路只携带1/N 的有用信息,这就给功耗分析攻击增加了难度[9]。目前已有采用这种技术的有效ASIC 芯片报道,文献[10]采用了串行化实现方式成功将Threshold 思想应用于PRESENT 密码算法,并取得了满意的结果。为了评估Threshold 思想在AES 中的应用效果,基于Nikova 提出的Threshold 的思想重新设计了AES 算法。像其他掩码技术一样,Threshold 实现的难点在于非线性S 盒的实现。图8 是本文完成的基于Threshold 思想的AES 的S 盒实现方式(N=3),假设AES 算法原始S 盒输入输出分别为Sbox_in 和Sbox_out,Threshold 型S 盒满足等式(4)。由于Threshold 型S 盒包含了3 个平行的数据通路,与之相对应,AES 的其他运算和存储单元也需要3 条平行通路,如图9所示。

图8 Threshold 型S 盒 结构

对完成的Threshold 型AES 设计采用与3.1 节中相同的明文产生的功耗曲线进行密钥破解。攻击过程中采用10 000条功耗曲线,攻击结果如图10 所示。限于篇幅,图10 中只包含4 个子图,每个子图表示对roundKey10 其中8 位的攻击结果。横轴为密钥猜测值(0~255),纵轴为相关系数。子图的标题中包含了本段子密钥攻击密钥值和实际密钥值。以第3 个子图为例,本段子密钥的攻击值为174,而实际的密钥值为167,说明10 000 条明文并没有成功攻击本段子密钥。从图中还可以看出,相关系数的值都非常小,正确的密钥值并没有明显的尖峰存在,所有的密钥都未被破解。

图9 Threshold 型AES 算法明文数据通路

图10 Threshold 型相关系数与密钥猜测值之间的关系

图11给出了功耗曲线数量不同时,对第一个字节的各个猜测密钥相关系数的变化(其中黑色为真实密钥),可以看出当功耗曲线的数量达到10 000 条时真实密钥未能从其余密钥猜测中分离开来,密钥破解仍然没有成功。由此可以看出,基于Threshold 的AES 算法实现可以很好地抵御所使用的一阶针对触发器的差分功耗分析攻击。

4 结束语

图11 Threshold 型AES 实现的相关系数与样本数量的关系

搭建功耗分析攻击平台是研究抗攻耗分析攻击理论首当其冲的问题,本文针对现有的功耗分析攻击平台的一些不足,设计出一种面向ASIC 设计实现的CPA 研究平台。该平台可以摒弃示波器等设备的昂贵价格和测试带来的不便,能够在芯片设计周期早期快速模拟出芯片的功耗信息并实施CPA 攻击,这为开拓及评估抗功耗分析的新方法提供了便利,也为抗攻耗分析攻击理论研究提供了重要支持。作为应用,利用本文平台分别对AES 算法和带有Threshold 防御措施的AES 算法进行了功耗分析攻击实验,展示了该平台的有效性和便捷性。下一步,准备对AES 的上述两种实现方式进行版图后的功耗分析攻击实验,以进一步印证该辅助平台的有效性。

[1] Kochet P,Jaffe J,Jun B.Differential power analysis[C]//Advances in Cryptology(CRYPTO’99).Berlin:Springer-Verlag,1999,1666:388-397.

[2] Liu P C,Chang H C,Lee C Y.A low overhead DPA countermeasure circuit based on ring oscillators[J].IEEE Transactions on Circuits and Systems-II,2010,57(7):547-550.

[3] Akkar M,Giraud C.An implementation of DES and AES,secure against some attacks[C]//Proceedings of Cryptographic Hardware and Embedded Systems,Paris,France,May 14-16.Berlin:Springer-Verlag,2001,2162:309-318.

[4] Rivain M,Prouff E.Provably secure higher-order masking of AES[C]//Proceedings of Cryptographic Hardware and Embedded Systems,Santa Barbara,USA,August 17-20.Berlin:Springer-Verlag,2010,6225:413-427.

[5] Mangard S,Oswald E,Popp T.Power analysis attacks:revealing the secrets of smart cards[M].Berlin:Springer-Verlag,2007:173-175.

[6] Krieg A,Bachmann B,Grinschgl J,et al.Accelerating early design phase differential power analysis using power emulation techniques[C]//Proceedings of the IEEE International Symposium on Hardware-Oriented Security and Trust,San Francisco,California,USA,June 5-6,2011:81-86.

[7] 褚杰,赵强,丁国良.基于虚拟仪器的差分功耗分析攻击平台[J].电子测量与仪器学报,2008,22(5):123-126.

[8] 刘鸣,陈弘毅,白国强.功耗分析研究平台及其应用[J].微电子学与计算机,2005,22(7):134-138.

[9] Nikova S,Rijmen V,Schläffer M,Secure hardware implementations of non-linear functions in the presence of glitches[C]//Proceedings of International Conference on Information Security and Cryptology,Seoul,Korea,December 3-5.Berlin:Springer-Verlag,2008,5461:218-234.

[10] Poschmann A,Moradi A,Khoo K.Side-channel resistant crypto for less than 2300 GE[J].Journal of Cryptology,2011,24(2):322-345.

猜你喜欢
功耗密钥密码
基于任务映射的暗硅芯片功耗预算方法
密码里的爱
密码系统中密钥的状态与保护*
密码抗倭立奇功
一种对称密钥的密钥管理方法及系统
基于ECC的智能家居密钥管理机制的实现
揭开GPU功耗的面纱
密码藏在何处
数字电路功耗的分析及优化
IGBT模型优化及其在Buck变换器中的功耗分析