密码芯片中抗差分功耗分析攻击的DES方案设计*
2017-09-06闫喜亮
闫喜亮
(郑州工业应用技术学院,河南新郑451150)
密码芯片中抗差分功耗分析攻击的DES方案设计*
闫喜亮*
(郑州工业应用技术学院,河南新郑451150)
为抵抗密码芯片中针对数据加密标准算法的功耗分析攻击,通过分析数据加密标准算法遭受功耗分析攻击的原理,并结合针对数据加密标准算法关键防御技术,给出了一种基于互补电路的中间值掩码DES方案设计。主要是利用双电路进行互补输出,以保证寄存器翻转保持功耗恒定,从而最大限度地降低功耗差异。根据算法性能分析结果表明:该方案可以抵抗差分功耗分析攻击,且实现简单,能够直接应用于密码芯片的电路设计中。
密码芯片;数据加密标准算法;差分功耗分析攻击;互补电路;防御措施
数据加密标准(Data Encryption Standard,DES)算法[1]作为信息处理标准于1977年被美国国家标准局采用,是目前使用非常广泛的数据加密算法。数据加密算法是智能卡和网络安全的关键技术,因而针对数据加密算法的恶意用户破解成为密码学领域研究的热点问题。当前,针对数据加密算法的破解攻击主要有两类:一类是传统的数学攻击方法,主要是在数学算法的层面上进行分析,力求找出加密算法设计上的缺陷,由于数据加密算法的数学基础比较牢固,所以针对密码芯片中加密处理模块进行传统数学攻击比较困难,而且随着分组密钥长度增加将更难破解;另一类是近年来比较流行的功耗分析攻击方法,它最早是由Kocher P等人[2]于1988年提出的一种非常简单有效的攻击方法,通过利用适当的仪器对密码芯片中加密模块运行时所泄露的功耗信息进行测量,因不同操作的功耗不同,所以根据功率曲线进行统计分析来获取相关密钥信息以实现对密码芯片密钥的破译,具有实现简单、攻击成功率高等特点。其中差分功耗分析攻击DPA(Differential Power Analysis)[3]被证明是最有效率的功耗攻击技术,且因其密钥搜索空间小、易于实现,所以对密码芯片安全造成较大威胁。由于差分功耗分析攻击主要是通过对每一次电路翻转时所表现出来的功耗差异进行相关性统计分析,如果能隐藏电路翻转时的功耗差异,就可以使得攻击者无法实施差分功耗攻击,因而给出一种基于互补电路的抗差分功耗攻击DES方案设计CCDES(Scheme of Resisting Differential Power Analysis Attack Base on Complementary Circuit for DES),其基本思想是在常规DES算法电路中设置一个互补电路,当常规电路执行操作出现电路翻转时,互补电路则不执行电路翻转操作,反之,当常规电路没有出现电路翻转时,此时互补电路则执行电路的翻转操作,从而使这对互补电路寄存器翻转保持恒定,获得的功耗曲线趋于平滑,攻击者无法判断出功耗差异。
1 数据加密标准算法
数据加密标准算法是迄今应用较为广泛的迭代分组密码算法,密钥长度为64 bit(实际密钥长度为56 bit,剩余8 bit作为奇偶校验位),输入的明文和输出的密文长度相同,执行DES加密运算时明文被划分为若干个64 bit的分组,进行初始置换后,与产生的密钥执行16轮迭代变换,每一轮变换主要是由移位、置换、异或和扩散等操作构成,最后则需要执行一次逆初始变换获得64 bit的密文分组,所有的明文分组在加密完成后获得的所有密文分组组合即为所需的密文。DES算法的入口参数有3个:key、data和mode。其中,key为明密文加解密密钥,data为所需加密或解密的数据,mode为算法工作模式(包括加密模式和解密模式两种)。DES算法的具体工作流程如图1所示。其中,S盒为非线性函数,它是实现DES算法的关键部分。
图1 DES算法工作流程图
由图1可知,DES算法所需执行的主要运算包括初始置换IP、迭代变换(16轮)、逆初始置换IP-1等。DES算法的具体执行过程如下:
输入:64 bit明文分组M,64 bit密钥K;
输出:64 bit密文分组C。
步骤1初始置换运算IP,主要是将64 bit明文M的顺序进行置换,获得乱序的明文分组,并分为均为32 bit的左右两个部分,分别为L和R。
步骤2迭代变换运算,是DES算法的核心,需要重复执行16轮,假定变量i为算法执行轮数,则有1≤i≤16,每一轮的执行步骤如下:
步骤2.1每一轮的输入均分为Li-1和Ri-1左右两组,每组32 bit;
步骤2.2将一轮运算的右组输入数据Ri-1赋值给下一轮运算的左组Li作为输入数据,即有Li=Ri-1;
步骤2.3将一轮运算的右组输入数据Ri-1进行E盒扩展操作,变换为48 bit;
步骤2.4将扩展后的48 bit右组数据与48 bit的子密钥Ki进行模2加操作,产生的结果分为8组,每组6 bit;
步骤2.5将加密后的8组数据通过8个S盒进行替换操作,每组6 bit的数据替换后输出为4 bit,其中每组中的第1和第6位用于确定S盒表内的行数,中间的4位用于确定S盒表内的列数;
步骤2.6将经过S盒替换后的8组数据(此时每组数据为4 bit)经P盒置换合并成32 bit,然后再与同一轮运算的左组输入数据Li-1进行模2加操作,产生结果作为本轮运算的右组输入数据Ri,即有Ri=Li-1⊕f(Ri-1,Ki),其中f表示轮函数,处理过程包括步骤2.3到步骤2.6的操作;
步骤3逆初始置换运算IP-1,主要是将经过16轮迭代运算后的64 bit密文分组按照一定规律进行置换,得到新的64 bit密文分组,即为所需最终输出的密文分组C。
2 差分功耗分析攻击
差分功耗分析攻击(DPA)是功耗分析攻击中比较方便有效的一种,主要是通过利用不同的明文输入所对应的功耗曲线不同,然后结合统计分析和误差修正技术,从大量的功耗曲线中推测出密码算法中与密钥信息具有相关性的中间结果,最终实现对密码算法的破解,与简单功耗分析攻击(SPA)相比具有更高的攻击强度,对密码芯片造成的安全威胁更大。目前使用的电子设备绝大部分是采用超大规模集成电路VLSI(Very Large Scale Integrated circuits)设计,所以在运行电子设备时会因电流变化产生功率消耗,其实质是集成电路内部数据改变时导致逻辑门电路发生0和1翻转而产生功率消耗,一般为了便于监测设备运行时的功率消耗,将逻辑门电路翻转简化为对原始输入数据与输出数据之间的汉明重量HW(HammingWeight)[4]以方便进行测量。采用差分功耗分析攻击对DES算法实施攻击主要包括以下几个步骤:
(1)首先在DES算法加密过程中选择某个中间值f(d,k),其中d为已知变量,k为密钥的一部分;
(2)其次在DES算法加密过程中采集实际功耗曲线,采集u次,一次采集v个点,构造功耗矩阵T;
(3)然后计算出假定的中间值,若所有可能子密钥有r种,对于u次采集过程,则有中间值矩阵Z;
(4)接着利用仿真技术将中间值映射为假定功耗,一般采用汉明重量模型,则有假定功耗矩阵T';
(5)最后利用差分或相关系数的方法比较矩阵T和T',并通过相应的判别方法逐步恢复出密钥。
目前,DES算法抵抗差分功耗分析攻击主要有增加噪声引入随机延迟[5]、掩盖相关功耗信息[6]、对数据实施随机掩码[7]3种方法。增加噪声引入随机延迟主要是为了增加功耗曲线对齐的难度,但是如果引入延迟较小则攻击者可以通过简单处理重新对齐功耗曲线,而如果引入延长过大则会降低加密模块的性能。对数据实施随机掩码主要是消除猜测中间值与功耗的相关性,攻击者虽然同样可以采集到功耗值,但由于输入增加了随机掩码使得攻击者不能获取有效中间值。对于DES算法采用布尔掩码[8]比较容易,但对于S盒的掩码效果并不好。还可以通过预计算存储有效实施掩码[9],但需要增加8个SM盒,电路面积开销较大,实际应用效果不佳。掩盖相关功耗信息主要是使攻击者采集的功耗曲线平滑且差异小,主要是电路级防御措施,其中WDDL技术[10]可以有效抵抗差分功耗攻击,但该方案需搭建双轨模块电路或重新设计基本单元库,增加了设计难度且可移植性差。
3 新方案设计
所给CCDES方案的基本思路是采用两个互补的DES模块电路,一个电路模块实现对明文M的DES算法加密,另一个电路模块实现对明文反码W的DES算法加密,由于这两个电路模块在执行DES加密运算时的中间值具有互补性,也就是说所给设计方案执行过程中每一运算阶段的汉明重量都是恒定的,因而加密模块在运行时表现出的功耗信息几乎没有差异,从而使得所给基于CCVM的DES加密方案可以达到抵抗差分功耗分析攻击的效果。其中,所给CCDES抗功耗方案工作流程如图2所示。
图2 CCDE方案工作流程图
所给CCDES抗功耗方案中,输入的明文M和W是互补的,根据GF(2)n的特性可以证明所给方案的中间结果同样具有互补性。
引理1假设H是GF(2)n空间上的置换运算,如果a,b∈GF(2)n,a=¯b,则有H(a)=H(b)。
根据引理1可知,对于CCDES方案的初始置换IP、逆置换IP-1、P置换,因M与W互补,所以IP(M)与IP(W)、IP-1(M)与IP-1(W)、P(M)与P(W)均互补。
引理2假设E是GF(2)n空间上的线性扩展运算,如果a,b∈GF(2)n,a=¯b,则有E(a)=E(b)。
根据引理2可知,对于CCDES方案中的扩展运算E,因M与W互补,所以有E(M)与E(W)互补。
引理3假设⊕是GF(2)n空间上的异或运算,如果a,b,c∈GF(2)n,a=¯b,则有c⊕a=c⊕b。
根据引理3可知,对于CCDES方案中的异或运算⊕,因M与W互补,所以K⊕M与K⊕W互补。
引理4假设I是GF(2)n空间上的代换运算,如果a,b∈GF(2)n,c,d∈GF(2)m,a=¯b,当c=I(a)时,则一定存在代换运算I',使d=I'(b)满足c=¯d。
根据引理4可知,对于CCDES方案,一定存在与S盒互补的SF盒,因M与W互补,有S(M)与SF(W)互补。其中,所给CCDES抗功耗方案的SF盒如表1所示。与DES种S盒类似,CCDES也包含8个SF盒,每组6 bit的输入替换后输出为4 bit,每组中的第1位和第6位用于确定SF盒表内的行数,中间4位用于确定S盒表内的列数。在CCDES抗功耗方案中,采用所给SF盒与S盒一起可以保证运算过程中中间值的互补性。
表1 CCDES方案的SF盒
4 性能分析
所给CCDES方案采用两个互补的电路来实现DES加密算法的抗功耗能力,其电路面积开销比增加了一倍,但其性能几乎没有损失。利用文献[11]给出的功耗仿真实验平台对所给方案进行差分功耗仿真实验,所得差分功耗曲线如图3所示。
图3 CCDE方案差分功耗曲线
由图3可以看出,所给方案的差分功耗曲线总体比较平滑,无明显尖峰,说明所给CCDES方案可以有效抵抗差分功耗分析攻击。这主要是由于所给CCDES方案在整体运行过程中,寄存器翻转和逻辑电路走向始终保持互补,从而使得所给方案执行加密过程中功耗差异较小。在输入阶段,明文M和W均为64 bit,计算可得HW(M|W)=64,汉明重量恒定,其中“|”表示两个二进制串的拼接。在初始置换IP阶段,明文M变换为(L0|R0),明文W变换为(Z0|Y0),计算可得HW(L0|R0|Z0|Y0)=64,汉明重量恒定。对于扩展运算E,输入HW(Ri|Zi)=32,输出HW(E(Ri)|E(Zi))=48,汉明重量均恒定。对于子密钥异或运算⊕,其中轮子密钥Ki相同,则输出HW(E(Ri)⊕Ki|E(Zi)⊕Ki)=48,汉明重量恒定。对于S盒运算,输出HW(S(E(Ri)⊕Ki)|S(E(Zi)⊕Ki))=32,汉明重恒定,此时Ri= S(E(Ri)⊕Ki)和Zi=S(E(Zi)⊕Ki)。对于P置换运算,HW(P(Ri)|P(Zi)))=32,汉明重量恒定。对于左右交换阶段,Ri+1=P(Ri)⊕Li,Li+1=Ri,Zi+1= P(Zi)⊕Yi,Yi+1=Zi,则有HW(Ri+1|Zi+1)=32,HW(Li+1|Yi+1)=32,汉明重量均恒定。对于逆置换IP-1阶段,输出密文C和D均为64 bit,则有HW(C|D)= 64,汉明重量恒定。可见,所给CCDES方案在加密执行全过程中间值始终保持汉明重量恒定,大大降低了差分功耗信息的泄露,从而使得攻击者采用差分功耗分析攻击失效。
5 结论
差分功耗分析攻击对于DES加密算法具有较大威胁,为有效抵抗差分功耗分析攻击,给出了一种基于互补电路的抗差分功耗分析攻击DES方案,通过增加一个互补电路保持电路翻转互补性,同时为了保证中间结果的互补性,互补电路采用了SF盒设计,保证了所给CCDES方案中间结果的汉明重量恒定,从而消除了电路在翻转时泄露的功耗差异。性能分析可知,所给方案能够有效抵抗差分功耗分析攻击,可以很好地应用对于电路面积要求不高的各种加密应用系统中,具有很好的理论研究意义和实际推广应用价值。
[1]应君,朱俊达,陈杭生.DES加密算法在低成本FPGA上的实现[J].电子器件,2006,29(3):895-897.
[2]Kocher P,Jaffe J,Jun B.Introcuction to Differential Power Analysis and Related Attacks[EB/OL].http://www.Cryptography.com/ dpa/technical,1998.
[3]蒋惠萍,毛志刚.防止差分功耗分析的安全DES模块的MASK技术研究[J].电子器件,2003,26(2):169-172.
[4]王小娟,郭世泽,赵新杰,等.基于功耗预处理优化的LED密码模板攻击研究[J].通信学报,2014,35(3):157-167.
[5]Zafar Y,Park J,Har D,et al.Random Clocking Induced DPA Attack Immunity in FPGA[C]//Proceedings of the 2010 IEEE International Conference on Industrial Technology.Piscataway: IEEE,2010:1068-1079.
[6]Yoshikawa M,Kojima Y.Efficient Random Number for the Masking Method Against DPA Attacks[C]//Proceedings of the 2011 21st International Conference on Systems Engineering.Piscataway:IEEE,2011:321-324.
[7]黄颖,崔小欣,魏为,等.基于FPGA平台的电路级抗差分功耗分析研究[J].北京大学学报(自然科学版),2014,50(4):652-656.
[8]Akkar M L,Giraud C.An Implementation of DESand AES,Secure Against Some Attacks[C]//CHES 2001,LNCS 2162.Berlin: Springer,2001:309-318.
[9]Standaert F X,Rouvroy G,Quisquater J J.FPGA Implementations of the DES and Triple-DES Masked Against Power Analysis Attacks[C]//Proceedings of 2006 International Conference on Field Programmable Logic and Applications.Piscataway:IEEE,2006:1-4.
[10]Tiri K,Hwang D,Hodjat A,et al.A Side-Channel Leakage Free Coprocessor IC in 0.18μm CMOS for Embedded AES-Based Cryptographic and Biometric Processing[C]//Proceedings of the 2005 42nd Design Automation Conference.Piscataway:IEEE,2005: 222-227.
[11]吴克寿,李仁发,王晓栋,等.针对DES加密算法的DPA攻击仿真平台[J].计算机科学,2012,39(2):59-65.
闫喜亮(1968-),男,汉,河南省新郑市人,郑州工业应用技术学院工作,副教授、工程师,硕士,研究方向为计算机应用技术,zzhxxyjwc@163.com。
Scheme Design of Resisting Differential Power Analysis Attack for DES in Cryptographic Chip*
YAN Xiliang*
(Zhengzhou University of Industrial Technology,Xinzheng He’nan 451150,China)
In order to resist power analysis attacks aiming to the data encryption standard algorithm in cryptographic chips,a scheme design ofmiddle value masking for data encryption standard algorithm based on complementary circuit is proposed according to the principle and the resistance countermeasures of power analysis attacks aiming to data encryption standard algorithm.The scheme mainly carries out the complementary output by using the double ciruit in order to ensure keeping the power consumption constant of register in roll-in-over and to decrease the difference of power consumption farthest.Performance analysis results demonstrate that the scheme can resist differential power analysis attacks and make easy to be implemented,and can be applied in the circuit design of cryptographic chips directly.
cryptographic chip;data encryption standard algorithm;differential power analysis attack;complementary circuit;resistance countermeasures
C:6150P
10.3969/j.issn.1005-9490.2017.01.032
TP309
:A
:1005-9490(2017)01-0166-05
项目来源:河南省基础与前沿技术研究计划项目(142300410283);河南省软科学研究计划项目(142400410179);河南省教育
厅科学技术研究重点项目(12B520063,14B520065);河南省高等学校青年骨干教师资助计划项目(2013GGJS-230)
2016-02-07修改日期:2016-03-31