CN104202145B - 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法 - Google Patents

针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法 Download PDF

Info

Publication number
CN104202145B
CN104202145B CN201410446072.9A CN201410446072A CN104202145B CN 104202145 B CN104202145 B CN 104202145B CN 201410446072 A CN201410446072 A CN 201410446072A CN 104202145 B CN104202145 B CN 104202145B
Authority
CN
China
Prior art keywords
attack
output
round function
side channel
plaintext
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201410446072.9A
Other languages
English (en)
Other versions
CN104202145A (zh
Inventor
杜之波
吴震
饶金涛
王敏
李大为
罗鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Xinan Youlika Information Technology Co Ltd
State Cryptography Administration Commercial Code Testing Center
Chengdu Information Technology Co Ltd of CAS
Original Assignee
Chengdu Xinan Youlika Information Technology Co Ltd
State Cryptography Administration Commercial Code Testing Center
Chengdu Information Technology Co Ltd of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chengdu Xinan Youlika Information Technology Co Ltd, State Cryptography Administration Commercial Code Testing Center, Chengdu Information Technology Co Ltd of CAS filed Critical Chengdu Xinan Youlika Information Technology Co Ltd
Priority to CN201410446072.9A priority Critical patent/CN104202145B/zh
Publication of CN104202145A publication Critical patent/CN104202145A/zh
Application granted granted Critical
Publication of CN104202145B publication Critical patent/CN104202145B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种针对SM4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法,包括以下步骤:S1:通过选择明文或密文输入Xi+0、Xi+1、Xi+2和Xi+3,并使其满足Xi+1、Xi+2和Xi+3三者的异或结果为定值,同时保证Xi+0的随机性,采用侧信道能量攻击方法攻击出前四轮轮函数每轮线性变换L的输出Ci,再由所述输出Ci反推出加密运算或者解密运算的前四轮轮函数的轮子密钥rki;S2:根据所述前四轮轮函数的轮子密钥rk0、rk1、rk2和rk3,通过密钥扩展算法,逆向计算出初始密钥。采用上述分析方法可以实现经过多次攻击的方式进行能量分析攻击,可以根据实际的计算能力,选择合适长度的比特进行攻击。从而增强了分析的灵活性、有效性和成功率。

Description

针对SM4密码算法轮函数输出的选择明文或密文侧信道能量 分析攻击的方法
技术领域
本发明涉及密码算法分析检测领域,尤其涉及一种针对SM4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法。
背景技术
随着信息和分析电路技术的发展,对硬件密码电子设备的破解不再单纯的停留在协议和算法上,而是从其处理数据的过程中泄露的信息入手,进行破解。硬件密码电子设备在处理信息的工程中存在能量、电磁、错误和时间等信息的泄露,利用这些泄露的信息对密码电子设备进行攻击,就是所谓的侧信道攻击(Side Channel Attacks),侧信道攻击可分为能量分析攻击、电磁攻击和错误攻击等,其中能量分析攻击因效率较高,成为侧信道的主要手段。
侧信道能量分析攻击是通过采集加密芯片等硬件密码电子设备在进行加、解密或签名等操作时产生的能量消耗,利用密码学和统计学原理等,分析和破译密钥信息的一种攻击方式,侧信道能量分析攻击又分为简单能量分析攻击(Simple Power Analysis,SPA)、差分能量分析攻击(Differential Power Analysis,DPA)和相关性能量分析攻击(Correlation Power Analysis,CPA)。
在侧信道能量分析攻击中,CPA和DPA相比SPA具有更强的攻击性,所以能量分析攻击中比较常用的是CPA和DPA。
其中,DPA攻击的过程如下:
(1)随机选择N组不相同明文或密文Mi(i∈[1,N])进行加/解密运算,采集每组明文进行加密运算时设备产生的能量曲线Ti(t),t∈{1,…,k},其中k为能量轨迹的采样点数。
(2)选择密钥Kl(l∈Ω,Ω为密钥空间),计算在Kl和Mi条件下,密码算法进行加密运算时在被攻击点产生的中间值Di,l
(3)根据中间值Di,l确定选择函数F(Mi,Kl),根据选择函数将Ti(t)分为两个子集S0和S1,定义式如下:
S0={Ti(t)|F(Mi,Kl)=0}
S1={Ti(t)|F(Mi,Kl)=1}
(4)计算每个采样点上两个子集的能量平均之差,如
所示,其中|S0|和|S1|分别表示集合So和S1中元素的个数。
若Kl选择不正确,当N比较大时,两个子集均值差S将趋近于零;若Kl选择正确,在均值差S中将会出现一个最大尖峰,通过该尖峰即可确定Kl选择正确。
CPA攻击的过程如下:
(1)随机选择N组不相同明文或密文Mi(i∈[1,N])进行加/解密运算,采集每组明文进行加密运算时设备产生的能量曲线Ti(t),t∈{1,...,k},其中k为能量轨迹的采样点数。
(2)选择密钥Kl(l∈Ω,Ω为密钥空间),计算在Kl和Mi条件下,密码算法进行加密运算时在被攻击点产生的中间值Di,l
(3)取中间值Di,l的汉明距离或者汉明重量建立能量模型hi,l,根据式计算Ti和hi,l相关性ρl
(4)取相关系数最大值时对应的Kl,即为实际密钥。
SM4算法是分组长度和密钥长度均为128bit,加密算法和解密算法均为32轮的非线性迭代密码算法,其加密算法和解密算法结构相同,只是运算时轮密钥使用的顺序相反,解密轮密钥是加密轮密钥的逆序。SM4加密算法的详细流程如图1所示。
在图1中(表示ebit的向量集),明文输入为(X0,X1,X2,)4密文输出为(Y0,Y1,Y2,Y3),其中Xi、Xi+1、Xi+2和Xi+3为轮迭代运算函数F的输入,为每轮的轮密钥,i∈{0,1,2,…,31}。
从加密的流程可以看出,轮迭代函数F包括的运算有异或、非线性变换和线性变换L,轮迭代函数的表达式为: 在改表达式中,T表示合成置换,是由非线性变换和线性变换L复合而成,迭代函数F的详细的流程如图2所示,在整个SM4密码算法的加解密过程中,一共要执行32轮这样的轮迭代函数F。
则:
变为:
非线性变换是由4个并行S盒子构成,每个S盒子为固定的8bit输入8bit输出的置换,记为Sbox(.)。
设输入为其中表示第i轮第j(j∈{0,1,2,3})个S盒子的输入,||表示两个数据bit的拼接,输出为Bi=bi,0||bi,1||bi,2||bi,3,bi,j表示第i轮、第j个S盒子的输出,则非线性变换为:
线性变换L的描述如下所示,
在该式中,Ci为线性变换L的输出,Bi为线性变换L的输入,同时也是非线性变换的输出。
对SM4密码算法的能量分析方法通常选取S盒的输出、L移位的输出作为攻击对象,使用汉明重量、单比特模型,利用DPA和CPA方法进行分析。这些方法仅利用了典型的分析点。
SM4的密钥扩展算法:轮密钥由加密密钥通过密钥扩展算法生成,其结构与加密变换类似。设加密密钥为MK=(MK0,MK1,MK2,MK3),i=0,1,2,3。令i=0,1,...,35,轮密钥i=0,1,...,31,则轮密钥生成方法如下式所示:
其中,T′变换与加密变换中的T变换基本相同,只是其中的线性变换L必须修改为以下L′:
系统参数FKi(i=1,2,3)的取值,采用16进制表示为:
FK0=A381BAC6,FK1=56AA3350,FK2=677D9197,FK3=B27022DC
固定参数CK的取值方法为:设ckij为CKi的第j字节(i=0,1,...,31;j=0,1,2,3),即则cki,j=(4i+j)*7(mod256)。32个固定参数CKi用16进制表示为:
00070e15,1c232a31,383f464d,545b6269,
70777e85,8c939aa1,a8afb6bd,c4cbd2d9,
e0e7eef5,fc030a11,181f262d,343b4249,
50575e65,6c737a81,888f969d,a4abb2b9,
c0c7ced5,dce3eaf1,f8ff060d,141b2229,
30373e45,4c535a61,686f767d,848b9299,
a0a7aeb5,bcc3cad1,d8dfe6ed,f4fb0209,
10171e25,2c333a41,484f565d,646b7279
根据密钥扩展算法,反推出密钥的方法如下:
a、加密运算:
对于加密运算,攻击出前四轮的轮子密钥rk0,rk1,rk2和rk3,根据密钥扩展算法得下式:
由(1)、(2)、(3)和(4)式可得K3,如(5)式所示。
由(3)和(5)式得K2,如(6)式所示。
由(2)、(5)和(6)式得K1,如(7)式所示。
由(2)、(5)和(6)式得K0,如(8)式所示。
所以可得密钥为
b、解密运算:
对于解密运算,攻击出前四轮的轮子密钥rk0,rk1,rk2和rk3,根据密钥扩展算法得下式:
由(9)、(10)、(11)和(12)式子,得到K32、K33、K34和K35,i取31到0,计算即可得到K0,K1,K2,K3,又所以可得密钥为
目前,也有选择轮函数的输出作为攻击对象的能量分析方法,即以轮函数输出实施侧信道能量分析攻击,其中是输入第k组明文或密文时,第i轮轮密钥第j个字节的攻击对象,i∈{0,1,2,3},j∈{0,1,2,3},L-1(X)是对L(X)的逆运算。而此攻击对象的计算方法:决定了在对SM4密码算法实施CPA或DPA侧信道能量分析攻击时,只能是按照字节的倍数进行攻击,而不能以轮函数输出的任意比特例如单比特进行CPA或DPA侧信道能量分析攻击。
发明内容
本发明的目的是提供一种针对SM4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法,以解决现有SM4密码算法的能量分析方法不能以轮函数输出的任意比特进行CPA或DPA侧信道能量分析攻击的问题,可以根据实际的计算能力,选择合适长度的比特进行攻击,从而增强了分析灵活性、有效性和成功率。
为解决上述技术问题,本发明提供一种针对SM4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法,具体包括以下步骤:
S1:通过选择明文或密文输入值Xi+0、Xi+1、Xi+2和Xi+3,并使其满足Xi+1、Xi+2和Xi+3三者的异或结果为固定数,同时保证Xi+0的随机性,采用侧信道能量攻击方法攻击出前四轮轮函数的线性变换L的输出Ci,再由所述输出Ci反推出加密运算或者解密运算的前四轮轮函数的轮子密钥rki,其中,i=0,1,2,3;
S2:根据攻击出的前四轮的轮子密钥,通过密钥扩展算法,反推出初始密钥。
进一步地,S1具体包括以下步骤:
S11:攻击加/解密的第一轮,初始化i=0;
S12:选择明文或密文输入值Xi+0、Xi+1、Xi+2和Xi+3,使Xi+1、Xi+2和Xi+3三者的异或结果为固定数,用D来表示,为同时保证Xi+0的随机性;
S13:采用侧信道能量攻击方法攻击出第i轮轮函数的线性变换L的输出Ci;所述侧信道能量攻击方法采用CPA法或DPA法;
S14:根据所述输出Ci由线性变换的逆变换反推出对应的输入Bi,再根据S盒子的输入输出关系由Bi反推出唯一的S盒子输入Ai,再利用 得出rki
S15:使i自增1,返回步骤S12继续攻击下一轮,直到得出加密运算或者解密运算的前四轮的轮子密钥rk0、rk1、rk2和rk3
进一步地,S13中采用的侧信道能量攻击方法为CPA法,所述CPA法包括以下步骤:
S1311:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t);
S1312:获取的所有可能值,表示为c∈[0,2l-1],根据c和第n条曲线对应的明文或密文输入,计算SM4第i轮轮函数的输出将轮函数的输出为攻击的中间数据,如果攻击时选择汉明重量模型,则计算的汉明重量,表示为);如果攻击时选择汉明距离模型,则计算的汉明距离,表示为);
S1313:根据计算Tn(t)和hn,c的相关性ρt,c
S1314:取相关系数最大值时对应的c,即为对应的实际数据;
S1315:使j=j+l,如果j+l-1≥32,取l=32-j+1,否则l保持不变,跳转到步骤S1312继续攻击Ci剩余的比特数据,直到Ci的所有比特被攻击完为止。
进一步地,S13中采用的侧信道能量攻击方法为DPA法,所述DPA法包括以下步骤:
S1321:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t);
S1322:获取的所有可值,表示为c∈[0,2l-1],根据c和第n条曲线对应的明文或密文输入,计算SM4第i轮轮函数的输出将轮函数的输出作为攻击的中间数据,如果攻击时选择汉明重量模型,则计算的汉明重量,表示为如果攻击时选择汉明距离模型,则计算的汉明距离,表示为);
S1323:如果l=1,确定DPA选择函数如果l不为1,确定DPA选择函数为:
S1324:根据选择函数将Tn(t)分为两个子集S0和S1,S0和S1定义式如下所示:
S0={Ti(t)|F(Mi,Kl)=0},
S1={Ti(t)|F(Mi,Kl)=1};
S1325:根据计算每个采样点上两个子集的能量平均之差,在均值差S中出现一个最大尖峰时对应的c,即为对应的实际数据;
S1326:使j=j+l,如果j+l-1≥32,取l=32-j+1,否则l保持不变,跳转到步骤S1322继续攻击Ci剩余的比特数据,直到Ci的所有比特被攻击完为止。
本发明的有益效果为:针对SM4密码算法轮函数输出的侧信道能量分析攻击的方法,创造性地选择具有一定约束关系的明文或明文输入,以每轮线性变换L的输出作为攻击目标,以SM4密码算法轮函数输出作为能量分析攻击的中间数据。先利用侧信道能量分析攻击出线性变换L的输出,再由线性变换L的输出反推出轮子密钥rki。在能量分析攻击出线性变换L的输出时,可以根据实际的运算能力选择一次攻击任意l比特,通过多次攻击的方式实现针对SM4密码算法的能量分析攻击,使针对SM4密码算法的能量分析攻击具有更实际的应用性。从而增强了分析的灵活性、有效性和成功率。
附图说明
图1为SM4加密算法流程图;
图2为迭代函数F的流程图;
图3为针对SM4密码算法轮函数输出的选择明文或密文的CPA法的流程图;
图4为针对SM4密码算法轮函数输出的选择明文或密文的DPA法的流程图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
针对SM4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法,具体包括以下步骤:
S1:通过选择明文或密文输入值Xi+0、Xi+1、Xi+2和Xi+3,使Xi+1、Xi+2和Xi+3三者的异或结果为固定数,采用侧信道能量攻击方法攻击出前四轮轮函数的每轮线性变换L的输出Ci,再由所述输出Ci反推出加密运算或者解密运算的前四轮轮函数的轮子密钥rki,其中,i=0,1,2,3;
S2:根据所述前四轮轮函数的轮子密钥rk0、rk1、rk2和rk3,通过密钥扩展算法,逆向计算出初始密钥。
其中,S1具体包括以下步骤:
S11:首先攻击加/解密的第一轮,此时初始化i=0。
S12:选择明文或密文输入Xi+0、Xi+1、Xi+2和Xi+3,使其满足Xi+1、Xi+2和Xi+3三者的异或结果为固定数,用D来表示,则Xi+1、Xi+2和Xi+3满足的约束条件如(1)式所示,同时保证Xi的随机性。
S13:采用侧信道能量攻击方法攻击出第i轮轮函数的线性变换L的输出Ci;所述侧信道能量攻击方法采用CPA法或DPA法;
S14:根据攻击出的Ci,采用线性变换的逆变换反推出对应的的输入Bi;线性变换L还可以用复合域中的矩阵运算来表示,即如(2)式所示,(2)式的逆运算如(3)式所示,在(2)和(3)式中,矩阵T和T′的值如(4)和(5)所示。
Ci=Bi*T (2)
Bi=T′*Ci (3)
由(4)式,可反推出对应的Bi;由于S盒子为8输入8输出,且S盒子内容不重复,故可由S盒子输出Bi唯一的反推出S盒子输入Ai,方法是在S盒子中确定Bi所在的行ar和列al,则Ai=ar||al;又由于所以
S15:使i自增1,返回步骤S12继续攻击下一轮,直到攻击得出加密运算或者解密运算的前四轮的轮子密钥rk0、rlk1、rk2和rk3
进一步地,S13中采用的侧信道能量攻击方法为CPA法,CPA法包括以下步骤:
S1311:采集N组不同的特殊输入Xi+0、Xi+1、Xi+2和Xi+3在SMS4密码设备上加/解密时的能量曲线表示为Tn(t),t∈{1,...,k},其中k为能量轨迹的采样点数。
选择要攻击线性变换L的输出Ci的比特长度为l,l≤32,当前攻击的位置为j=1,被攻击数据表示为
S1312:获取的所有可值,表示为c∈[0,2l-1],根据c和第n条曲线对应的明文或密文输入,计算SM4第i轮轮函数的输出将轮函数的输出作为攻击的中间数据,如果攻击时选择汉明重量模型,则计算的汉明重量,表示为如果攻击时选择汉明距离模型,则计算的汉明距离,表示为
S1313:根据(6)式计算Tn(t)和hn,c的相关性ρt,c
S1314:取相关系数最大值时对应的c,即为对应的实际数据。
S1315:使j=j+l,如果j+l-1≥32,取l=32-j+1,否则l保持不变,跳转到S1312继续攻击Ci剩余的比特数据,直到Ci的所有比特被攻击完为止。
S13中采用的侧信道能量攻击方法为DPA法,DPA法包括以下步骤:
S1321:采集N组不同的特殊输入Xi+0、Xi+1、Xi+2和Xi+3在SMS4密码设备上加/解密时的能量曲线表示为Tn(t),t∈{1,...,k},其中k为能量轨迹的采样点数。
选择要攻击线性变换L的输出Ci的比特长度为l,l≤32,当前攻击的位置为j=1,被攻击数据表示为
S1322:获取的所有可值,表示为c∈[0,2l-1],根据c和第n条曲线对应的明文或密文输入,计算SM4第i轮轮函数的输出将轮函数的输出作为攻击的中间数据,如果攻击时选择汉明重量模型,则计算的汉明重量,表示为如果攻击时选择汉明距离模型,则计算的汉明距离,表示为
S1323:如果l=1,确定DPA选择函数如果l不为1,确定DPA选择函数为:
根据选择函数将Tn(t)分为两个子集S0和S1,如(7)和(8)式所示。
S0={Ti(t)|F(Xi,c,hn,c)=0},(7)
S1={Ti(t)|F(Xi,c,hn,c)=1};(8)
S1324:根据计算每个采样点上两个子集的能量平均之差,在均值差S中出现一个最大尖峰时对应的c,即为对应的实际数据。
S1325:使j=j+l,如果j+l-1≥32,取l=32-j+1,否则l保持不变,跳转到步骤S1322继续攻击Ci剩余的比特数据,直到Ci的所有比特被攻击完为止。
S1326:攻击出Ci后,由(4)式Bi=T′*Ci,计算出Bi;由于S盒子为8输入8输出,且S盒子内容不重复,故可由S盒子输出Bi唯一的反推出S盒子输入Ai,方法是在S盒子中确定Bi所在的行ar和列al,则Ai=ar||al;又由于 所以
由于攻击表达式的唯一运算为异或运算,异或运算的输入比特和输出比特之间是一一对应的线性关系。所以,可以根据实际的运算能力选择一次攻击线性变换L的输出的任意长比特,以和该比特数据对应的轮函数输出的比特数据作为侧信道能量分析攻击的中间数据,针对SM4密码算法轮函数输出的选择明文或密文的能量分析攻击,经过多次攻击的方式实现针对SM4密码算法的侧信道能量分析攻击。
通过选择明文或密文,使4个S盒子的输入为固定常数,即线性变换L的输出也为固定常数,通过这种选择,创造性的改变了侧信道能量分析攻击直接攻击rki的思路,本方法而是通过侧信道能量分析攻击先攻击出线性变换L的输出Ci,再由Ci反推出对应的rki,创造性的将线性变换的输出作为侧信道能量分析直接攻击目标,间接得实现了将SM4轮输出作为攻击中间数据的侧信道能量分析攻击;创新的用复合域中的矩阵运算来表示线性变换L,即Ci=Bi*T,和其反变换,即Bi=T′*Ci,并给出矩阵T和T′的值;选择特殊的明文,使4个S盒子的输入为固定常数,即线性变换L的输出也为固定常数,针对SM4的侧信道能量分析攻击。
选择的明文或密文使线性变换L的输出也为固定常数,此时的攻击表达式其攻击目标为c,异或运算的输入比特和输出比特之间是一一对应的线性关系,可以根据实际的运算能力选择一次攻击线性变换L的输出的任意长比特,即可以任意长比特的进行侧信道能量分析攻击。

Claims (2)

1.针对SM4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法,其特征在于,所述方法包括以下步骤:
S1:通过选择明文或密文输入Xi+0、Xi+1、Xi+2和Xi+3,并使其满足Xi+1、Xi+2和Xi+3三者的异或结果为定值,同时保证Xi+0的随机性;采用侧信道能量攻击方法攻击出前四轮轮函数每轮线性变换L的输出Ci;再由所述输出Ci反推出加密运算或者解密运算的前四轮轮函数的轮子密钥rki,其中,i=0,1,2,3;
S2:根据所述前四轮轮函数的轮子密钥rk0、rk1、rk2和rk3,通过密钥扩展算法,反推出初始密钥;
所述S1具体包括以下步骤:
S11:攻击加/解密的第一轮,初始化i=0;
S12:选择明文或密文输入值Xi+0、Xi+1、Xi+2和Xi+3,使其满足Xi+1、Xi+2和Xi+3三者的异或结果为固定数,用D来表示,为同时保证Xi+0的随机性;
S13:采用侧信道能量攻击方法攻击出第i轮轮函数的线性变换L的输出Ci;所述侧信道能量攻击方法采用CPA法或DPA法;
S14:根据所述输出Ci由线性变换的逆变换反推出对应的输入Bi,再根据S盒子的输入输出关系由Bi反推出唯一的S盒子输入Ai,再利用Ai得出rki
S15:使i自增1,返回步骤S12继续攻击下一轮,直到得出加密运算或者解密运算的前四轮的轮子密钥rk0、rk1、rk2和rk3
所述S13中采用的侧信道能量攻击方法为CPA法,所述CPA法包括以下步骤:
S1311:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t);
S1312:获取的所有可能值,表示为c∈[0,2l-1],根据c和第n条曲线对应的明文或密文输入,计算SM4第i轮轮函数的输出将轮函数的输出为攻击的中间数据,如果攻击时选择汉明重量模型,则计算的汉明重量,表示为如果攻击时选择汉明距离模型,则计算的汉明距离,表示为
S1313:根据计算Tn(t)和hn,c的相关性ρt,c
S1314:取相关系数最大值时对应的c,即为对应的实际数据;
S1315:使j=j+l,如果j+l-1≥32,取l=32-j+1,否则l保持不变,跳转到步骤S1312继续攻击Ci剩余的比特数据,直到Ci的所有比特被攻击完为止;
j为二进制数据的比特位置索引,l为二进制数据的比特位数,N为总曲线的条数,表示hn,c的均值。
2.根据权利要求1所述的针对SM4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法,其特征在于,所述S13中采用的侧信道能量攻击方法为DPA法,所述DPA法包括以下步骤:
S1321:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t);
S1322:获取的所有可值,表示为c∈[0,2l-1],根据c和第n条曲线对应的明文或密文输入,计算SM4第i轮轮函数的输出将轮函数的输出作为攻击的中间数据,如果攻击时选择汉明重量模型,则计算的汉明重量,表示为如果攻击时选择汉明距离模型,则计算的汉明距离,表示为
S1323:如果l=1,确定DPA选择函数如果l不为1,确定DPA选择函数为:
S1324:根据选择函数将Tn(t)分为两个子集S0和S1,S0和S1定义式如下所示:
S0={Ti(t)|F(Mi,Kl)=0},
S1={Ti(t)|F(Mi,Kl)=1};
S1325:根据计算每个采样点上两个子集的能量平均之差,在均值差S中出现一个最大尖峰时对应的c,即为对应的实际数据;
S1326:使j=+l,如果j+l-1≥32,取l=32-j+1,否则l保持不变,跳转到步骤S1322继续攻击Ci剩余的比特数据,直到Ci的所有比特被攻击完为止;
j为二进制数据的比特位置索引,l为二进制数据的比特位数,Tn(t)为能量曲线,F(Mi,kl)为选择函数,即F(Xi,c,hn,c)。
CN201410446072.9A 2014-09-04 2014-09-04 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法 Expired - Fee Related CN104202145B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410446072.9A CN104202145B (zh) 2014-09-04 2014-09-04 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410446072.9A CN104202145B (zh) 2014-09-04 2014-09-04 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法

Publications (2)

Publication Number Publication Date
CN104202145A CN104202145A (zh) 2014-12-10
CN104202145B true CN104202145B (zh) 2018-07-03

Family

ID=52087375

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410446072.9A Expired - Fee Related CN104202145B (zh) 2014-09-04 2014-09-04 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法

Country Status (1)

Country Link
CN (1) CN104202145B (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104734842B (zh) * 2015-03-13 2018-06-08 上海交通大学 基于伪操作的电路旁路攻击抵御方法
CN104753665B (zh) * 2015-03-19 2018-04-06 成都信息工程学院 一种针对sm4密码轮函数输出的侧信道能量攻击方法
CN104753668B (zh) * 2015-03-19 2018-04-13 成都信息工程学院 一种针对sm4密码线性变换输出的侧信道能量攻击方法
CN104734845B (zh) * 2015-03-25 2018-11-23 上海交通大学 基于全加密算法伪操作的旁路攻击防护方法
CN104717055B (zh) * 2015-03-25 2018-11-20 成都信息工程学院 一种针对sm4密码算法轮输入汉明重量的模板攻击方法
CN106161002A (zh) * 2015-04-01 2016-11-23 上海华虹集成电路有限责任公司 一种sm4密码电路抵抗侧信道分析的方法
CN104868990B (zh) * 2015-04-15 2018-04-06 成都信息工程学院 一种针对sm4密码算法轮输出的模板攻击方法
CN104836666B (zh) * 2015-04-20 2019-04-12 成都信息工程学院 一种针对sm2解密算法的能量分析攻击的方法
CN104780051B (zh) * 2015-04-24 2019-04-12 成都信息工程学院 针对sm2公钥密码加密算法的侧信道攻击的方法
CN104967509B (zh) * 2015-05-05 2018-05-18 国家密码管理局商用密码检测中心 一种轮输出为算术掩码的zuc序列密码算法掩码防护方法
CN104852795B (zh) * 2015-05-05 2018-03-30 国家密码管理局商用密码检测中心 一种轮输出为布尔掩码的zuc序列密码算法掩码防护方法
CN105553638A (zh) * 2015-12-07 2016-05-04 成都芯安尤里卡信息科技有限公司 针对sm4一阶掩码算法的二阶频域能量分析攻击
EP3217307B1 (en) * 2016-02-22 2018-11-07 Eshard Method of testing the resistance of a circuit to a side channel analysis of second order or more
CN105933108B (zh) * 2016-05-30 2019-04-12 清华大学 一种对sm4算法实现破解的方法
CN105897400A (zh) * 2016-06-20 2016-08-24 北京华大信安科技有限公司 一种sm4算法的掩码方法及装置
CN107786324A (zh) * 2016-08-30 2018-03-09 航天信息股份有限公司 一种在相关性侧信道攻击中校正中间变量计算结果的方法
CN107786323A (zh) * 2016-08-30 2018-03-09 航天信息股份有限公司 一种在相关性侧信道攻击中校正中间变量计算结果的方法
CN106385412A (zh) * 2016-09-12 2017-02-08 成都信息工程大学 一种针对sm4密码算法前4轮的约减轮故障分析的方法
CN106982114B (zh) * 2017-03-12 2020-11-27 成都信息工程大学 针对sm3密码算法消息扩展的侧信道分析攻击的方法
CN107508678B (zh) * 2017-10-13 2020-08-04 成都信息工程大学 基于机器学习的rsa掩码防御算法的侧信道攻击方法
CN108155984B (zh) * 2017-12-29 2020-10-02 北京理工大学 一种基于能量分析的密码算法簇逆向工程分析方法
CN111030820B (zh) * 2019-12-17 2023-12-19 成都三零嘉微电子有限公司 一种基于掩码sm4算法的选择明文相关碰撞攻击方法
CN112511290B (zh) * 2020-10-28 2023-04-07 南京邮电大学 一种基于粒子群混合退火算法的侧信道攻击方法
CN112989395B (zh) * 2021-04-28 2022-05-17 山东省计算中心(国家超级计算济南中心) 一种sm4密码算法的形式化验证方法及系统
CN117579249B (zh) * 2024-01-17 2024-03-29 北京电子科技学院 能量分析攻击中明文选择方法、装置、设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101764685A (zh) * 2009-10-26 2010-06-30 广州杰赛科技股份有限公司 实现sms4算法的加解密系统
CN103138917A (zh) * 2013-01-25 2013-06-05 国家密码管理局商用密码检测中心 以s盒输入为基础的汉明距离模型在sm4密码算法侧信道能量分析的应用
CN103166752A (zh) * 2013-01-25 2013-06-19 国家密码管理局商用密码检测中心 选择轮函数为攻击对象进行sm4密码算法侧信道能量分析的应用
CN103227717A (zh) * 2013-01-25 2013-07-31 国家密码管理局商用密码检测中心 选择轮密钥异或输入进行sm4密码算法侧信道能量分析的应用

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101764685A (zh) * 2009-10-26 2010-06-30 广州杰赛科技股份有限公司 实现sms4算法的加解密系统
CN103138917A (zh) * 2013-01-25 2013-06-05 国家密码管理局商用密码检测中心 以s盒输入为基础的汉明距离模型在sm4密码算法侧信道能量分析的应用
CN103166752A (zh) * 2013-01-25 2013-06-19 国家密码管理局商用密码检测中心 选择轮函数为攻击对象进行sm4密码算法侧信道能量分析的应用
CN103227717A (zh) * 2013-01-25 2013-07-31 国家密码管理局商用密码检测中心 选择轮密钥异或输入进行sm4密码算法侧信道能量分析的应用

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
抗攻击的SMS4密码算法集成电路设计研究;徐艳华;《中国优秀硕士学位论文全文数据库(信息科技辑)》;20100715;第4.1.2节,第4.3节,第4.4节,第4.5节 *

Also Published As

Publication number Publication date
CN104202145A (zh) 2014-12-10

Similar Documents

Publication Publication Date Title
CN104202145B (zh) 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法
CN104753665B (zh) 一种针对sm4密码轮函数输出的侧信道能量攻击方法
CN104836666B (zh) 一种针对sm2解密算法的能量分析攻击的方法
CN108964872B (zh) 一种基于aes的加密方法及装置
CN105553638A (zh) 针对sm4一阶掩码算法的二阶频域能量分析攻击
EP3186802A1 (en) Encryption function and decryption function generating method, encryption and decryption method and related apparatuses
US20190103957A1 (en) Encryption device, encryption method, decryption device and decryption method
CN104780051B (zh) 针对sm2公钥密码加密算法的侧信道攻击的方法
Agrawal et al. Elliptic curve cryptography with hill cipher generation for secure text cryptosystem
Mewada et al. Classification of efficient symmetric key cryptography algorithms
CN104753668B (zh) 一种针对sm4密码线性变换输出的侧信道能量攻击方法
CN103607276A (zh) 新型基于随机函数的抗已知明文密文对攻击的分组加密方法
US9049004B2 (en) Low-power encryption apparatus and method
CN109714154A (zh) 代码体积困难白盒安全模型下的白盒密码算法
CN107835070B (zh) 一种简单的嵌入式加密方法
Bajaj et al. AES algorithm for encryption
Vohra et al. An efficient chaos-based optimization algorithm approach for cryptography
Li et al. Single byte differential fault analysis on the LED lightweight cipher in the wireless sensor network
Sharma et al. On security of Hill cipher using finite fields
Reddy et al. A new symmetric probabilistic encryption scheme based on random numbers
Shehab et al. An Image Encryption Technique based on DNA Encoding and Round-reduced AES Block Cipher
Naija et al. Low cost countermeasure at authentication protocol level against electromagnetic side channel attacks on RFID tags
Gogte et al. Simulation of quantum cryptography and use of DNA based algorithm for secure communication
Bae et al. A practical analysis of fault attack countermeasure on AES using data masking
KR20140065531A (ko) 중간키를 이용한 전력분석공격 방어방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180703

Termination date: 20190904