APP下载

针对SM4密码算法的多点联合能量分析攻击

2016-11-14杜之波饶金涛

计算机研究与发展 2016年10期
关键词:轮子单点盒子

杜之波 吴 震 王 敏 饶金涛

(成都信息工程大学 成都 610225) (du139123456789@163.com)



针对SM4密码算法的多点联合能量分析攻击

杜之波 吴 震 王 敏 饶金涛

(成都信息工程大学 成都 610225) (du139123456789@163.com)

目前针对SM4密码算法的能量分析攻击,均属于单点能量分析攻击.由于单点能量分析攻击没有利用密码算法及单条能量信号曲线中所有和密钥相关的信息,所以单点能量分析攻击存在攻击所需样本较多、攻击信息利用率低的问题.针对单点能量分析攻击存在的问题,提出了针对SM4密码算法的多点联合能量分析攻击方法,攻击时同时选择SM4密码算法中和密钥相关的多个信息泄露点,根据泄露点对应的中间变量和能量泄露模型,构造多点联合能量泄露函数,即多点联合能量分析攻击出SM4密码算法的密钥.实验不仅验证了本攻击方法的有效性,而且验证了本攻击方法相比单点能量分析攻击方法提高了能量分析攻击成功率,减少能量分析攻击的曲线条数,提高能量分析攻击效率.根据该新方法的特点,该新型攻击能量分析攻击方法还可以用于针对其他密码算法的能量分析攻击.

能量分析攻击;相关性能量分析攻击;SM4密码算法;多点联合

硬件密码电子产品作为密码算法的运行载体,在运行密码算法时存在和硬件物理特性相关的电磁、能量、声音等旁路信息的泄露.旁路分析攻击,就是利用硬件密码产品泄露的旁路信息,结合对密码算法的实现分析,利用数学分析等技术手段,破解密码算法中的密钥等敏感信息.自Kocher[1]首次提出旁路攻击以来,国内外学术界对旁路分析攻击和防御展开了系列的研究[2-7],包括电磁攻击、时间攻击、能量分析攻击和差分故障攻击等攻击方法.其中,能量分析攻击是利用硬件密码产品运行时消耗的能量物理特性进行攻击,因其简单有效,成为旁路分析攻击技术中发展最迅速的攻击技术.

SM4密码算法作为国内密码行业标准的分组密码算法[8],应用于金融、无线局域网、国家电网等领域的软硬件信息安全产品中.随着能量分析攻击技术的发展,自SM4密码算法被公布起,国内外出现了针对SM4密码算法能量分析攻击的研究,其中文献[9-10]将轮输出作为信息泄露点,提出了针对SM4密码算法的选择明文能量分析攻击;文献[11-12]将S盒子输出作为信息泄露点,提出了针对SM4密码算法S盒子输入的能量分析攻击;文献[11]将S盒子输出作为信息泄露点,提出了针对SM4密码算法S盒出输入的能量分析攻击;文献[10-11]将循环移位作为信息泄露点,提出了针对SM4密码算法的差分功耗分析.这些研究都是选择单一的信息泄露点,针对SM4密码算法的硬件安全产品实施能量分析攻击,而在多个信息泄露点联合能量分析攻击方面,尚未发现国内外有关于SM4密码算法多点联合的能量分析攻击的研究结果.联合SM4密码算法多个信息泄露点,构造能量泄露函数,进行能量分析攻击,不仅对SM4密码算法的实现安全研究具有重要意义,而且对多点联合能量分析攻击泄露函数的构造、攻击方法和性能的研究,以及对其他密码算法的多点联合能量分析攻击的应用也具有十分重要的意义.

本文通过对SM4密码算法的结构特点和单点信息泄露点的分析,结合能量分析攻击原理,设计构造多点联合的能量泄露函数,首次提出了针对SM4密码算法的多点联合能量分析攻击方法.在攻击时,同时选择SM4密码算法的S盒子输入和输出,作为能量分析攻击的中间数据,根据中间数据的汉明重量模型或者汉明距离模型,构造多点联合能量泄露函数,联合S盒子输入和输出对应的能量曲线,进行联合能量分析攻击,即可破解密钥.最后对智能卡上实现的SM4密码算法进行了实测攻击测试,结果不仅验证了多点联合能量分析攻击方法的有效性,而且验证了多点联合能量分析攻击,相比单点的能量分析攻击,在相同的实验环境下,可以提高能量分析攻击中信息泄露的利用率,降低能量分析攻击的曲线条数,提高能量分析攻击的成功率.此外,本文所提到的多点联合能量分析攻击方法,作为普适性攻击方法,还可以应用到针对其他密码算法的多点联合能量分析攻击.

1 SM4密码算法简介

Fig. 1 SM4 encryption operation process.图1 SM4加密运算过程

SM4密码算法作为国产对称密码算法,其明密文和密钥的分组长度为128 b,SM4的加解密运算和密钥扩展均为32轮非线性迭代结构,其加密运算的过程如图1所示:

1.1 SM4加密运算

对i=0,1,…,31,由式(1)计算Xi+4.

Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rki)=

Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rki) .

(1)

最后输出的密文(Y0,Y1,Y2,Y3)=(X35,X34,X33,X32).

(b0,b1,b2,b3)=(Sbox(a0),Sbox(a1),

Sbox(a2),Sbox(a3)).

(2)

设C为线性变换L的输出,则线性变换L的描述为

C=L(B)=B⊕(B<<<2)⊕(B<<<10)⊕,

(B<<<18)⊕(B<<<24) .

(3)

1.2 SM4密钥扩展运算

由式(4)和式(5)计算轮子密钥rki.

(K0,K1,K2,K3)=(MK0⊕FK0,MK1⊕FK1,

MK2⊕FK2,MK3⊕FK3) .

(4)

rki=ki+4=Ki⊕T′(Ki+1⊕Ki+2⊕

Ki+3⊕CKi).

(5)

1)T′变换与SM4加解密算法的T变换基本相同,只是线性变换修改为L′(B).

L′(B)=B⊕(B<<<13)⊕(B<<<23).

(6)

2)FK0,FK1,FK2,FK3和CKi为已知系统参数,详见参考文献[8].

2 能量分析攻击

能量分析攻击,最早由Kocher等人提出,随着能量分析攻击技术的发展,能量分析攻击出现了众多攻击方法,包括简单能量分析攻击、差分能量分析攻击、相关性能量分析攻击、互信息能量分析攻击和模板攻击.其中,相关性能量分析攻击是利用采集的被攻击设备的能量信息轨迹与处理数据之间的相关性进行分析.该攻击方法作为对硬件密码电子设备常用的攻击和检测方法,其步骤如下:

1) 采集能量曲线.确定明文集合M={m1,m2,…,mn,…,mN},n的取值范围是[1,N].采集被攻击密码设备对应每个明文输入的mn进行加解密运算时的能量迹tn={sn,1,sn,2,…,sn,γ,sn,γ+1,…,sn,l},每条曲线的采样点个数为l,γ的取值范围是[1,l].

2) 选择中间变量. 从密码算法中抽象出和密钥K等敏感信息相关的运算d=f(mn,K),选择d作为能量分析攻击的中间变量.

3) 计算假设能耗值.猜测密钥K,其中密钥的猜测空间为{K1,K2,…,Ko,Ko+1,…,Kk},o的取值范围为[1,k].根据输入的明文mn,计算每个明文和猜测密钥对应的中间变量dn,Ko.根据dn,Ko的能量模型,将中间变量dn,Ko映射为对应的假设能耗值θn,Ko.

4) 计算相关性,获取被攻击密钥.统计假设能耗值和真实能量迹之间的相关性,基于所有明文,计算能量迹t1~N和所有假设能耗值θ1~N,Ko的相关性系数,相关系数最大时对应的猜测密钥,即为被攻击的密钥.

3 针对SM4的单点能量分析攻击

针对SM4的能量分析攻击,潜在的信息泄露点如图2中Att1,Att2,Att3和Att4所示:

Fig. 2 SM4 information leakage points.图2 SM4信息泄露点

在信息泄露点Att1进行能量分析攻击,选择能量分析攻击的中间变量为SM4的S盒子输入,计算表达式为

d=f(mn,K)=mn⊕K.

(7)

在信息泄露点Att2进行能量分析攻击,选择能量分析攻击的中间变量为SM4的S盒子输出,计算表达式为

d=f(mn,K)=τ(mn,K).

(8)

在信息泄露点Att3进行能量分析攻击,选择能量分析攻击的中间变量为线性变换输出,计算表达式为

d=f(mn,K)=T(mn,K).

(9)

在信息泄露点Att4进行能量分析攻击,选择能量分析攻击的中间变量为轮函数的输出,计算表达式为

d=f(mn,K)=F(mn,K).

(10)

4 针对SM4的多点联合能量分析攻击方法

4.1 攻击原理分析

目前,国内外针对SM4的能量分析攻击,选择的是图2中单个信息泄露点来实施能量分析攻击,属于单点能量分析攻击.单点能量分析攻击并没有考虑各个信息泄露点之间相关性和各个信息泄露点之间所包含相同的有用信息.

式(7)~(10)各个信息泄露点的中间变量d,是由轮子密钥和轮输入经过不同的密码运算产生,所以在密码算法中,不同的中间变量d和相同轮子密钥存在一定的相关性,即在能量信号曲线中,不同信息泄露点对应的能量迹和同一轮子密钥存在一定的相关性.所以,能量分析攻击时,可以同时选择不同的中间变量d构造联合能量泄露函数,建立不同的中间变量d和能量迹之间的关系,对同一轮子密钥进行联合能量分析攻击.由于攻击时同时选择了多个中间变量以及中间变量对应的能量迹,所以联合能量分析攻击可以提高单条能量信号样本的信息利用率.

4.2 攻击方法

根据能量分析攻击原理,基于SM4密码算法中各个信息泄露点和密钥等敏感信息之间的相关性,提出了针对SM4密码算法的多点联合能量分析攻击,攻击方法如下:

1) 攻击SM4密码算法第1轮,此时i=0.

2) 随机明文,根据第2节算法描述的步骤1,采集每个明文mn对应的能量曲线tn.

3) 同时选择SM4密码算法第i轮的S盒输入和输出2个信息泄露点,作为多点联合能量分析攻击的中间变量.

Sg={tn|rρ=g,g∈Ω}.

(11)

5) 对集合中所有能量曲线进行均值化处理,如式(12)所示,其中|Sg|表示集合Sg中的样本数量.

(12)

6) 计算集合均值能量曲线的距离平方和sosd(μ):

(13)

(14)

9) 由联合能量泄露函数P(mn,K),根据2节算法描述的步骤3,计算假设能耗值θn,Ko.

11) 返回步骤4,直到攻击出轮子密钥rki的所有字节.

12)i自增,返回步骤3攻击SM4密码算法的下一轮轮子密钥,直到攻击出SM4密码算法的前4轮轮子密钥rk0,rk1,rk2和rk3.

根据攻击出的前4轮轮子密钥rk0,rk1,rk2和rk3以及SM4密钥扩展算法,可逆向计算出SM4的初始密钥MK.

5 针对SM4的多点联合能量分析攻击实验

实验采用已知被攻击密钥来验证攻击方法的有效性,被攻击密钥为:0x0123456789abcdeffedcba98 76543210,对应的第1轮轮子密钥为0xF12186F9.实验攻击的对象为SM4密码算法软实现的智能卡.攻击环境为: Inspector侧信道攻击平台,采集到的SM4密码算法智能卡的能量曲线如图3所示:

Fig. 3 The power trace.图3 能量曲线

5.1 攻击过程

以攻击SM4密码算法的第1轮轮子密钥的最低字节为例,其攻击实验过程如下:

选择图3中SM4密码算法第1轮对应的能量曲线,如图4所示:

Fig. 4 The first round power trace.图4 第1轮能量曲线

根据每条曲线对应的明文,计算4.2节的步骤4,步骤5和步骤6距离平方和,其中步骤6产生的结果曲线如图5所示:

Fig. 5 Curve of distance square.图5 距离平方和曲线

根据4.2节的步骤7,确定图5中电压最大的2个点的时间点u=6.24 μs,v=6.77 μs.以时刻点u和v为中心,分别连续截取点的个数ι=26的能量迹.

根据4.2节的步骤8和步骤9,根据联合能量泄露函数P(mn,K)计算pn,Kj.

根据4.2节的步骤10,能量分析攻击的结果如图6所示,攻击出的字节为0xF9和真实被攻击密钥的最低字节一样,即攻击成功.

Fig. 6 Multi-point joint power analysis attack results.图6 多点联合能量分析攻击结果

5.2 实验结果分析

为验证联合能量分析攻击的性能,基于不同能量曲线条数对SM4密码算法的S盒输入和S盒输出分别进行了100次单点能量分析攻击,同样,对SM4密码算法的S盒输入和输出进行了100次多点联合能量分析攻击,3种攻击方法的比较结果如图7所示:

Fig. 7 Comparison of the three attack methods.图7 3种攻击方法的比较结果

从图7可知,当能量曲线小于160条时,在任意条数能量曲线的条件下,S盒子输入和输出的联合能量分析攻击的成功率均大于S盒子输入和输出的单点能量分析攻击.以80条能量曲线为例,S盒子输入和输出的联合能量分析攻击的成功率为100%,S盒子输入和输出的单点能量分析攻击均小于50%.

从图7可知,当能量曲线小于160条时,在任意的成功率条件下,S盒子输入和输出的联合能量分析攻击所需能量曲线条数均成倍小于S盒子输入和输出的单点能量分析攻击.以100%的成功率为例,S盒子输入和输出的联合能量分析攻击所需曲线条数为80,S盒子输入和输出的单点能量分析攻击均大于160.

实验结果表明,在相同的环境条件下,联合能量分析攻击相比单点能量分析攻击,可以降低能量攻击所需曲线条数,提高能量分析攻击成功率.

6 结束语

本文对SM4密码算法能量分析攻击信息泄露点进行了分析,SM4密码算法的不同能量信息泄露点,包含了同一轮子密钥的相关信息.不同信息泄露点对应的能量迹,和同一轮子密钥存在一定的相关性.本文通过构造和轮子密钥相关的联合能量泄露函数,提出了针对SM4的多点联合能量分析攻击方法.

本文攻击方法相比针对SM4的单点能量分析攻击,不仅可以提高攻击成功率,而且还可以降低能量分析攻击所需样本条数.此外,本文所提出的联合能量分析攻击作为一种通用的攻击方法,还可以应用到针对其他密码算法的联合能量分析攻击.

[1]Kocher P C. Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems[G] //LNCS 1109: Proc of the CRYPTO 1996. Berlin: Springer, 1996: 104-113

[2]Brier E, Clavier C, Olive F. Correlation power analysis with a leakage model[G] //LNCS 3156: Proc of the CHES 2004. Berlin: Springer, 2004: 16-29

[3]Chari S, Rao J R, Rohatgi P. Template attacks[G] //LNCS 2523: Proc of the CHES 2002. Berlin: Springer, 2002: 13-28

[4]Li Lang, Li Renfa, Tong Yanman, et al. Development on power analysis attack and defense of embedded cipher chip[J]. Journal of Computer Research and Development, 2010, 47(4): 595-604 (in Chinese)(李浪, 李仁发, 童元满, 等. 嵌入式加密芯片功耗分析攻击与防御研究发展[J]. 计算机研究与发展, 2010, 47(4): 595-604)

[5]Zhao Xinjie, Wang Tao, Guo Shize, et al. Cache attacks on block ciphers[J]. Journal of Computer Research and Development, 2012, 49(3): 453-468 (in Chinese)(赵新杰, 王韬, 郭世泽, 等. 分组密码Cache攻击技术研究[J]. 计算机研究与发展, 2012, 49(3): 453-468)

[6]Chen Aidong,Xu Sen, Chen Yun, et al. Collision-based chosen-message simple power clustering attack algorithm[J]. China Communications, 2013, 10(5): 114-119

[7]Du Zhibo, Wu Zhen, Wang Min, et al. Power analysis attack of HMAC based on SM3[J]. Journal on Communications, 2016, 37(5): 38-43 (in Chinese)(杜之波, 吴震, 王敏, 等. 针对基于SM3的HMAC的能量分析攻击方法[J]. 通信学报, 2016, 37(5): 38-43)

[8]Office of State Commercial Cipher Administration. Block cipher for WLAN products-SMS4[EB/OL].[2006-02-10]. http://www.oscca.go-v.cn/UpFile/200621016423197990.pdf

[9]Wang Min, Du Zhibo, Wu Zhen, et al. Chosen-plaintext power analysis attack against SMS4 with the round-output as the intermediate data[J]. Journal on Communications, 2015, 36(1): 2015016-1-2015016-7 (in Chinese)(王敏, 杜之波, 吴震, 等. 针对SMS4轮输出的选择明文能量分析攻击[J]. 通信学报, 2015, 36(1): 2015016-1-2015016-7)

[10]Du Zhibo, Wu Zhen, Wang Min, et al. Improved chosen-plaintext power analysis attack against SM4 at the round-output [J]. Journal on Communications, 2015, 36(10): 85-91 (in Chinese)(杜之波, 吴震, 王敏, 等. 针对SM4轮输出的改进型选择明文功耗分析攻击[J]. 通信学报, 2015, 36(10): 85-91)

[11]Shen Wei. Investigation of power analysis attacks and its counter-measures on SMS4 cipher algorithm[D]. Xi’an: Xidian University, 2009 (in Chinese)(沈薇. SMS4算法的能量分析攻击及其防御研究[D]. 西安: 西安电子科技大学, 2009)

[12]Zhang Qi, Wu Zhen, Wang Min, et al. Research on correlation power attack on sbox-input of SM4 algorithm [J]. Computer Applications and Software, 2015, 32(12): 290-293 (in Chinese)(张琪, 吴震, 王敏, 等. SM4算法S盒输入的相关性能量攻击的研究[J]. 计算机应用与软件, 2015, 32(12): 290-293)

Du Zhibo, born in 1982. MSc. His main research interests include application of antenna, the Internet security of things and side channel attack on the security chip.

Wu Zhen, born in 1975. MSc and associate professor. His main research interests include application of antenna, signal processing, the information security and side channel attack on the security equipment.

Wang Min, born in 1977. PhD candidate. Her main research interests include application of antenna, the attack and defense of network and side channel attack on the security chip.

Rao Jintao, born in 1985. MSc. His main research interests include cryptography, cryptographic implementations, and physical attacks (side channel and fault analysis).

Multi-Point Joint Power Analysis Attack Against SM4

Du Zhibo, Wu Zhen, Wang Min, and Rao Jintao

(ChengduUniversityofInformationTechnology,Chengdu610225)

The current power analysis attack of SM4 belongs to the single point power analysis attack. The single point power analysis attack does not use all the information related with the key in the algorithm and the single power trace. There are two limitations with the single point power analysis attack: it needs more power traces when SM4 is attacked, and the information utilization rate of the attack is low. To solve the questions of the attack, a novel method of multi-point joint power analysis attack of SM4 is proposed in this paper. Multiple information leakage points related with the key are selected at the same time. Multi-point joint power leakage function is constructed by the intermediate variable of the information leakage points and the power leakage model. The key of SM4 is attacked out by the proposing attack. The experiments demonstrate the effectiveness of the proposed attack method, and comparing with the single point power analysis attack method, the proposed attack method can improve the attack success rate, reduce the number of the attack traces, and improve the energy efficiency of the attack. According to the characteristics of the proposed method, it can also be applied to the power analysis attacks of the other cryptographic algorithms.

power analysis attack; correlation power analysis attack; SM4 cryptographic algorithm; multi-point joint

2016-06-14;

2016-08-11

“核高基”国家科技重大专项基金项目(2014ZX01032401-001);国家“八六三”高技术研究发展计划基金项目(2012AA01A403);四川省科技支撑计划基金项目(2014GZ0148);四川省教育厅重点科研基金项目(13ZA0091);成都信息工程学院科研基金项目(CRF201301)

TP309.1

This work was supported by the National Science and Technology Major Projects of Hegaoji (2014ZX01032401-001), the National High Technology Research and Development Program of China (863 Program) (2012AA01A403), the Key Technology Research and Development Program of Sichan Province (2014GZ0148), the Major Scientific Research Foundation of Sichuan Educational Commission (13ZA0091), and the Scientific Research Foundation of CUIT (CRF201301).

猜你喜欢

轮子单点盒子
两个轮子“走路”
有趣的盒子
历元间载波相位差分的GPS/BDS精密单点测速算法
没有轮子的挖挖
读北岛:一只轮子,寻找另一只轮子
超薄异型坯连铸机非平衡单点浇铸实践与分析
寻找神秘盒子
数字电视地面传输用单频网与单点发射的效果比较
16吨单点悬挂平衡轴的优化设计
香喷喷的轮子