CN104753665A - 一种针对sm4密码轮函数输出的侧信道能量攻击方法 - Google Patents
一种针对sm4密码轮函数输出的侧信道能量攻击方法 Download PDFInfo
- Publication number
- CN104753665A CN104753665A CN201510120694.7A CN201510120694A CN104753665A CN 104753665 A CN104753665 A CN 104753665A CN 201510120694 A CN201510120694 A CN 201510120694A CN 104753665 A CN104753665 A CN 104753665A
- Authority
- CN
- China
- Prior art keywords
- attack
- mask
- mod4
- side channel
- byte
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000009466 transformation Effects 0.000 claims abstract description 25
- 238000004364 calculation method Methods 0.000 claims abstract description 6
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 239000004575 stone Substances 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 abstract description 18
- 230000002441 reversible effect Effects 0.000 abstract 1
- 238000006073 displacement reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000000205 computational method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000284 resting effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种针对SM4密码算法轮函数输出的选择明文或密文侧信道能量攻击的方法,包括以下步骤:S1:选择明文或密文输入,使(Xi+1⊕Xi+2⊕Xi+3)的其中一个字节为随机数,其它字节为相同的固定数,采用侧信道能量攻击方法首先攻击出轮子密钥的字节和线性变换中的固定数,然后攻击出线性变换中的其它所有固定数,将攻击出的数据,进行相应的运算,即可获得完整的轮子密钥rki,其中i=0,1,2,3;S2:根据所述前四轮轮子密钥rk0、rk1、rk2和rk3,通过密钥扩展算法,逆向计算出初始密钥。采用上述分析方法可以降低攻击采集曲线次数和选择明文次数,增强了分析的灵活性、攻击效率和成功率。
Description
技术领域
本发明涉及密码算法分析检测领域,尤其涉及一种针对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∈Ω,Ω为密钥空间),计算在Mi和Kl条件下,密码算法进行加密运算时在被攻击点产生的中间值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)计算每个采样点上两个子集的能量平均之差,如
S= - -所示,其中和分别表示集合和中元素的个数。
若Kl选择不正确,当N比较大时,两个子集均值差S将趋近于零;若Kl选择正确,在均值差S中将会出现一个最大尖峰,通过该尖峰即可确定Kl选择正确。
CPA攻击的过程如下:
(1)随机选择N组不相同明文或密文Mi(i∈[1,N])进行加/解密运算,采集每组明文进行加密运算时设备产生的能量曲线Ti (t),t∈{1,…,k},其中k为能量轨迹的采样点数。
(2)选择密钥Kl (l∈Ω,Ω为密钥空间),计算在Mi和Kl条件下,密码算法进行加密运算时在被攻击点产生的中间值Di,l。
(3)取中间值Di,l的汉明距离或者汉明重量建立能量模型hi,l,根据
= 式计算Ti和hi,l相关性ρl。
(4)取相关系数最大值时对应的Kl,即为实际密钥。
SM4算法是分组长度和密钥长度均为128bit,加密算法和解密算法均为32轮的非线性迭代密码算法,其加密算法和解密算法结构相同,只是运算时轮密钥使用的顺序相反,解密轮密钥是加密轮密钥的逆序。SM4加密算法的详细流程如图1所示。
在图1中Xi∈Z2 32(Z2 e表示ebit的向量集),明文输入为(X0,X1,X2,X3)∈(Z2 32)4,密文输出为(Y0,Y1,Y2,Y3),其中Xi、Xi+1、Xi+2和Xi+3 为轮迭代运算函数F的输入,rki∈Z2 32为每轮的轮密钥,i∈{0,1,2,…,31}。
从加密的流程可以看出,轮迭代函数F包括的运算有异或、非线性变换τ和线性变换L,轮迭代函数的表达式为:Xi+4=F(Xi ,Xi+1 ,Xi+2 ,Xi+3,rki)=Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rki)。在该表达式中T表示合成置换,是由非线性变换τ和线性变换L复合而成,迭代函数F的详细的流程如图2所示,在整个SM4密码算法的加解密过程中,一共要执行32轮这样的轮迭代函数F。
令resi=T(Xi+1⊕Xi+2⊕Xi+3⊕rki),则:Xi+4=F(Xi ,Xi+1 ,Xi+2 ,Xi+3,rki)=Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rki)变为:
Xi+4= F(Xi ,Xi+1 ,Xi+2 ,Xi+3,rki)=Xi⊕resi
非线性变换τ是由4个并行S盒子构成,每个S盒子为固定的8bit输入8bit输出的置换,记为Sbox(.)。
设输入为Ai=ai,0||ai,1||ai,2||ai,3= Xi+1⊕Xi+2⊕Xi+3⊕rki,其中ai,j∈Z2 32,表示第i轮第j(j∈[0,1,2,3])个S盒子的输入,||表示两个数据bit的拼接,输出为Bi=bi,0||bi,1||bi,2||bi,3,bi,j表示第i轮、第j个S盒子的输出,则非线性变换τ为:Bi=τ(Ai)= Sbox(ai,0)||Sbox(ai,1)||Sbox(ai,2)||Sbox(ai,3)。
线性变换L的描述如下所示,
Ci=L(Bi)=Bi⊕(Bi<<<2)⊕(Bi<<<10)⊕(Bi<<<18)⊕(Bi<<<24)
在该式中,Ci∈Z2 32,Bi∈Z2 32,Ci为线性变换L的输出,Bi为线性变换L的输入,同时也是非线性变换τ的输出。
对SM4密码算法的能量分析方法通常选取S盒的输出、L移位的输出作为攻击对象,使用汉明重量、单比特模型,利用DPA和CPA方法进行分析。这些方法仅利用了典型的分析点。
SM4的密钥扩展算法:轮密钥由加密密钥通过密钥扩展算法生成,其结构与加密变换类似。设加密密钥为MK=(MK0,MK1,MK2,MK3),i=0,1,2,3。令Ki∈Z2 32,i=0,1,…,35,轮密钥rki∈Z2 32,i=0,1,…,31,则轮密钥生成方法如下式所示:
(K0,K1,K2,K3)=(MK0⊕FK0,MK1⊕FK1,MK2⊕FK2,MK3⊕FK3)
rki=Ki+4=Ki⊕T’(Ki+1⊕Ki+2⊕Ki+3⊕CKi)
其中,T’变换与加密变换中的T变换基本相同,只是其中的线性变换L必须修改为以下L’:
L’(B)=B⊕(B<<<13)⊕(B<<<23)
系统参数的取值,采用16进制表示为:FK0=A3B1BAC6,FK1=56AA3350,FK2=677D9197,FK3=B27022DC。
固定参数CK的取值方法为:设cki,j为CKi的第j字节(i=0,1,...,31;j=0,1,2,3),即CKi=(cki,0,cki,1,cki,2,cki,3)∈Z2 32,则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,根据密钥扩展算法得下式:
rk0=K4=K0⊕T(K1⊕K2⊕K3⊕CK0) (1)
rk1=K5=K1⊕T(K2⊕K3⊕K4⊕CK1) (2)
rk2=K6=K2⊕T(K3⊕K4⊕K5⊕CK2) (3)
rk3=K7=K3⊕T(K4⊕K5⊕K6⊕CK3) (4)
由(1)、(2)、(3)和(4)式可得K3,如(5)式所示。
K3=rk3⊕T(rk0⊕rk1⊕rk 2⊕CK3) (5)
由(3)和(5)式得K2,如(6)式所示。
K2=rk2⊕T(K3⊕rk0⊕rk1⊕CK2) (6)
由(2)、(5)和(6)式得K1,如(7)式所示。
K1=rk1⊕T(K2⊕K3⊕rk0⊕CK1) (7)
由(2)、(5)和(6)式得K0,如(8)式所示。
K0=rk0⊕T(K1⊕K2⊕K3⊕CK0) (8)
又(K0,K1,K2,K3)=(MK0⊕FK0, MK1⊕FK1, MK2⊕FK2, MK3⊕FK3),所以可得密钥为MK0= K0⊕FK0,MK1= K1⊕FK1,MK2= K2⊕FK2,MK3= K3⊕FK3。
b、解密运算:
对于解密运算,攻击出前四轮的轮子密钥rk0、rk1、rk2和rk3,根据密钥扩展算法得下式:
rk0=K35=K31⊕T(K32⊕K33⊕K34⊕CK31) (9)
rk1=K34=K30⊕T(K31⊕K32⊕K33⊕CK30) (10)
rk2=K33=K29⊕T(K30⊕K31⊕K32⊕CK29) (11)
rk3=K32=K28⊕T(K29⊕K30⊕K31⊕CK29) (12)
由(9)、(10)、(11)和(12)式子,得到K32、K33、K34和K35,i取31到0,计算Ki=Ki+4⊕T(Ki+1⊕K i+2⊕K i+3⊕CKi),即可得到K0、K1、K2和K3,又(K0,K1,K2,K3) =(MK0⊕FK0, MK1⊕FK1, MK2⊕FK2, MK3⊕FK3),所以可得密钥为MK0= K0⊕FK0,MK1= K1⊕FK1,MK2= K2⊕FK2,MK3= K3⊕FK3。
目前,也有选择轮函数的输出作为攻击对象的选择明文或密文能量分析攻击方法,即攻击轮子密钥时,按字节进行攻击,每次攻击都要重新选择明文或密文采集曲线,攻击获得轮子密钥的一个字节,所以攻击获取完整的轮子密钥,需重新选择明文或密文采集曲线4次,而要攻击完整密钥,则需选择明文或密文采集曲线16次,所以攻击选择明文和采集曲线次数较多,所需曲线条数较多。
发明内容
本发明的目的是提供一种针对SM4密码算法轮函数输出的选择明文或密文侧信道能量攻击的新方法,以解决现有针对SM4密码算法轮函数输出的选择明文或密文侧信道能量攻击,所需选择明文、采集曲线次数较多和曲线条数较多等问题,本方法不仅实现了针对SM4密码算法轮函数输出的选择明文或密文侧信道能量攻击,而且增强了攻击分析的效率,灵活性和有效性。
为解决上述技术问题,本发明提供一种针对SM4密码算法轮函数输出的选择明文或密文侧信道能量攻击的方法,具体包括以下步骤:
1、针对SM4密码算法轮函数输出的选择明文或密文侧信道能量攻击的方法,其特征在于,所述方法包括以下步骤:
S1:选择明文或密文输入,使(Xi+1⊕Xi+2⊕Xi+3)的其中一个字节为随机数,其它字节为相同的固定数,采用侧信道能量攻击方法首先攻击出轮子密钥的字节和线性变换中的固定数,然后攻击出线性变换中的其它所有固定数,将攻击出的数据,进行相应的运算,即可获得完整的轮子密钥rki,其中i=0,1,2,3;
S2:根据所述前四轮轮子密钥rk0、rk1、rk2和rk3,通过密钥扩展算法,逆向计算出初始密钥。
2、所述针对SM4密码算法轮函数输出的选择明文或密文侧信道能量攻击的方法S1具体包括以下步骤:
S11:攻击加/解密的第一轮,初始化i=0;
S12:选择明文或密文输入,使(Xi+1⊕Xi+2⊕Xi+3)的第j个字节为随机数,表示为R,其它字节为相同的固定数,表示为D,其中j∈[0,3];
S13:采用侧信道能量攻击方法首先攻击出轮子密钥的字节rki,j,和线性变换中的固定数maski,j,然后攻击出线性变换中的其它固定字节maski,(j+1)mod4、maski,(j+2)mod4和maski,(j+3)mod4;
S14:根据所述rki,j、maski,j、maski,(j+1)mod4、maski,(j+2)mod4和maski,(j+3)mod4计算出轮子密钥rki;
S15:使i自增1,返回步骤S12继续攻击下一轮,直到得出加密运算或者解密运算的前四轮的轮子密钥rk0、rk1、rk2和rk3。
3、所述S13中如果采用的CPA侧信道能量攻击方法,所述CPA攻击方法包括以下步骤:
S1311:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t);
S1312:初始化k=j,攻击次数z=0;
S1313:根据汉明重量模型或汉明距离模型的攻击方式以及z的数值,取rki,j和maski,j或maski,k的所有可能值,并由此确定与攻击方式一致的基于汉明重量模型或汉明距离模型的汉明函数hn,rk,mask;
S1314:根据=计算Tn(t)和hn,rk,mask的相关性;
S1315:根据z数值和S1314计算得到的最大相关系数确定攻击结果rki,j和maski,j或maski,k;
S1316:z=z+1,k=(k+1)mod4,如果z<4,跳转到步骤S1313继续攻击(循环执行4次),否则停止攻击。
4、所述S13中如采用的DPA侧信道能量攻击方法,所述DPA攻击方法包括以下步骤:
S1321:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t);
S1322:初始化k=j,攻击次数z=0;
S1323:根据汉明重量模型或汉明距离模型的攻击方式以及z的数值,取rki,j和maski,j或maski,k的所有可能值,并由此确定与攻击方式一致的基于汉明重量模型或汉明距离模型的汉明函数hn,rk,mask;
S1324:确定DPA选择函数为:F()=;
S1325:根据选择函数将Tn(t)分为两个子集S0和S1,定义式如下所示:
S0={Ti(t)|F(Mi,Kl)=0},
S1={Ti(t)|F(Mi,Kl)=1};
S1326:根据S= - 计算每个采样点上两个子集的能量平均之差;根据不同的z值,在均值差S中出现一个最大尖峰时对应不同的rki,j和maski,j或maski,k即为实际的攻击结果;
S1327:z=z+1,k=(k+1)mod4,如果z<4,跳转到步骤S1323继续攻击(循环执行4次),否则停止攻击。
本发明的有益效果为:针对SM4密码算法轮函数输出的选择明文或密文侧信道能量攻击的方法,创造性地选择具有一定约束关系的明文或明文输入,以每轮线性变换中的固定数作为攻击目标,以SM4密码算法轮函数输出作为能量分析攻击的中间数据,通过将攻击出的线性变换中的固定数再计算出轮子密钥rki。由于攻击一轮子密钥,只需选择明文或密文一次,采集曲线一次,从而降低了选择明文或密文次数、采集曲线次数和采集曲线数量,提高了攻击效率,增强了攻击的灵活性、有效性和成功率。
附图说明
图1为SM4加密算法流程图;
图2为迭代函数F的流程图;
图3为针对SM4密码算法轮函数输出的选择明文或密文的侧信道能量攻击的方法流程图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
针对SM4密码算法轮函数输出的选择明文或密文侧信道能量攻击的方法,具体包括以下步骤:
S1:选择明文或密文输入,使(Xi+1⊕Xi+2⊕Xi+3)的其中一个字节为随机数,其它字节为相同的固定数。采用侧信道能量攻击方法首先攻击出轮子密钥的字节和线性变换中的固定数,然后攻击出线性变换中的其它所有固定数,将攻击出的数据,进行相应的运算,即可获得完整的轮子密钥rki,其中i=0,1,2,3。具体步骤分解如下:
S11:攻击加/解密的第一轮,初始化i=0;
S12:选择明文或密文输入,使(Xi+1⊕Xi+2⊕Xi+3)的第j个字节为随机数,表示为R,其它字节为相同的固定数,表示为D,其中j∈[0,3];
S13:采用侧信道能量攻击方法首先攻击出轮子密钥的字节rki,j,和线性变换中的固定数maski,j,然后攻击出线性变换中的其它所有固定数maski,(j+1)mod4、maski,(j+2)mod4和maski,(j+3)mod。对应计算式如下:
(13)
(14)
(15)
(16)
S1311:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t);
S1312:初始化k=j,攻击次数z=0;
S1313:根据攻击次数不同(即z的数值),取rki,j和maski,j或maski,k的所有可能值,分别用rkФ和maskФ或maskФ来表示(rkФ、maskФ∈[0,28-1]),再根据第n条曲线对应的明文或密文输入,分别计算SM4第i轮轮函数的输出Xi+4,k。Xi+4,k的计算如下。
a) z=0时获取rki,j和maski,j的所有可能值rkФ和maskФ,Xi+4,k=Xi+4,j=Xi,j⊕maskФ⊕⊕(<<2);
b) z=1时获取maski,(j+1)mod4的所有可能值maskФ,Xi+4,k=Xi+4,(j+1)mod4
=Xi,(j+1)mod4⊕maskФ⊕⊕(>>6);
c) z=2时获取maski,(j+2)mod4的所有可能值maskФ,Xi+4,k=Xi+4,(j+2)mod4
=Xi,(j+2)mod4⊕maskФ⊕(<<2)⊕(>>6);
d) z=3时获取maski,(j+3)mod4的所有可能值maskФ,Xi+4,k=Xi+4,(j+3)mod4
=Xi,(j+3)mod4⊕maskФ⊕(<<2)⊕(>>6);
将上述得到的Xi+4,k作为攻击的中间数据,按照攻击方式分别计算Xi+4,k的汉明重量或汉明距离。攻击方法采用汉明重量模型时,
(19)
攻击方法采用汉明距离模型时,
(20)
S1314:根据=计算和的相关性;
S1315:根据z数值和S1314计算得到的最大相关系数确定攻击结果。
a) z=0,取相关系数最大值时对应的rkФ和maskФ,即为实际的攻击结果rki,j和maski,j;
b) z=1,取相关系数最大值时对应的maskФ,即为实际的攻击结果maski,(j+1)mod4;
c) z=2,取相关系数最大值时对应的maskФ,即为实际的攻击结果maski,(j+2)mod4;
d) z=3,取相关系数最大值时对应的maskФ,即为实际的攻击结果maski,(j+3)mod4
S1316:z=z+1,k=(k+1)mod4,如果z<4,跳转到步骤S1313继续攻击,否则停止攻击。
S1321:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t);
S1322:初始化攻击次数z=0;
S1323:计算方法同S1313;
S1324:确定DPA选择函数为:;
S1325:根据选择函数将Tn(t)分为两个子集和,和定义式如下所示:
S0={Ti(t)|F(Mi,Kl)=0},
S1={Ti(t)|F(Mi,Kl)=1};
S1326:根据S=计算每个采样点上两个子集的能量平均之差,根据不同的z值,在均值差S中出现一个最大尖峰时对应不同的rki,j和maski,j或maski,k即为实际的攻击结果。
a) z=0,在均值差S中出现一个最大尖峰时对应的rkФ和maskФ,即为实际的攻击结果rki,j和maski,j;
b) z=1,在均值差S中出现一个最大尖峰时对应的maskФ,即为实际的攻击结果maski,(j+1)mod4;
c) z=2,在均值差S中出现一个最大尖峰时对应的maskФ,即为实际的攻击结果maski,(j+2)mod4;
d) z=3,在均值差S中出现一个最大尖峰时对应的,即为实际的攻击结果maski,(j+3)mod4;
S1327:z=z+1,如果z<4,取z=z+1,跳转到步骤S1323继续攻击,否则停止攻击。
S14:根据所述rki,j、maski,j、maski,(j+1)mod4、maski,(j+2)mod4和maski,(j+3)mod4计算出轮子密钥rki,方法是,式(14)、(15)和(16)等号两边分别进行异或运算,得(21)式,由该式可计算出,在S盒子中确定所在的行ar和列al,则Ai+3=ar||al,由于Ai+3=D⊕rk(j+3)mod4,所以rk (j+3)mod4=D⊕Ai+3;式(13)和式(14)等号两边分别进行异或运算,得(22)式,由该式,可计算出,在S盒子中确定所在的行ar和列al,则Ai+1=ar||al,由于Ai+1=D⊕rk(j+1)mod4,所以rk (j+1)mod4=D⊕Ai+1;根据(13)、(14)、(15)16式中任何一个式子,可计算出,在S盒子中确定所在的行ar和列al,则Ai+2=ar||al,由于Ai+2=D⊕rk(j+2)mod4,所以rk (j+2)mod4=D⊕Ai+2,攻击出的rki,j、rki,(j+1)mod4、rki,(j+2)mod4和rki,(j+3)mod4,便是rki每个字节的值。
(21)
(22)
S15:使i自增1,返回步骤S12继续攻击下一轮,直到得出加密运算或者解密运算的前四轮的轮子密钥rk0、rk1、rk2和rk3。
S2:根据所述前四轮轮子密钥rk0、rk1、rk2和rk3,通过密钥扩展算法,逆向计算出初始密钥。
由于线性变换中的固定数和密钥之间具有一定的相关性,所以选择线性变换中的固定数作为攻击对象,侧信道能量攻击出线性变换中的固定数,再由固定数计算出轮子密钥,不仅实现了针对SM4密码算法轮函数输出的选择明文或密文侧信道能量攻击,而且创造性的将线性变换中的固定数作为攻击对象,将固定数通过所述运算方式计算出轮子密钥字节,实现了降低选择明文次数、采集曲线次数和采集曲线数量的目的。
Claims (4)
1.针对SM4密码算法轮函数输出的选择明文或密文侧信道能量攻击的方法,其特征在于,所述方法包括以下步骤:
S1:选择明文或密文输入,使(Xi+1⊕Xi+2⊕Xi+3)的其中一个字节为随机数,其它字节为相同的固定数,采用侧信道能量攻击方法首先攻击出轮子密钥的字节和线性变换中的固定数,然后攻击出线性变换中的其它所有固定数,将攻击出的数据,进行相应的运算,即可获得完整的轮子密钥rki,其中i=0,1,2,3;
S2:根据所述前四轮轮子密钥rk0、rk1、rk2和rk3,通过密钥扩展算法,逆向计算出初始密钥。
2.根据权利要求1所述的针对SM4密码算法轮函数输出的选择明文或密文侧信道能量攻击的方法,其特征在于,所述S1具体包括以下步骤:
S11:攻击加/解密的第一轮,初始化i=0;
S12:选择明文或密文输入,使(Xi+1⊕Xi+2⊕Xi+3)的第j个字节为随机数,表示为R,其它字节为相同的固定数,表示为D,其中j∈[0,3];
S13:采用侧信道能量攻击方法首先攻击出轮子密钥的字节rki,j,和线性变换中的固定数maski,j,然后攻击出线性变换中的其它固定字节maski,(j+1)mod4、maski,(j+2)mod4和maski,(j+3)mod4;
S14:根据所述rki,j、maski,j、maski,(j+1)mod4、maski,(j+2)mod4和maski,(j+3)mod4计算出轮子密钥rki;
S15:使i自增1,返回步骤S12继续攻击下一轮,直到得出加密运算或者解密运算的前四轮的轮子密钥rk0、rk1、rk2和rk3。
3.所述S13中如果采用CPA攻击方法实现侧信道能量攻击,包括以下步骤:
S1311:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t);
S1312:初始化k=j,攻击次数z=0;
S1313:根据汉明重量模型或汉明距离模型的攻击方式以及z的数值,取rki,j和maski,j或maski,k的所有可能值,并由此确定与攻击方式一致的基于汉明重量模型或汉明距离模型的汉明函数hn,rk,mask;
S1314:根据 =计算Tn(t)和hn,rk,mask的相关性;
S1315:根据z数值和S1314计算得到的最大相关系数确定攻击结果rki,j和maski,j或maski,k;
S1316:z=z+1,k=(k+1)mod4,如果z<4,跳转到步骤S1313继续攻击(循环执行4次),否则停止攻击。
4.所述S13中采用DPA攻击方法实现侧信道能量攻击,包括以下步骤:
S1321:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t);
S1322:初始化k=j,攻击次数z=0;
S1323:根据汉明重量模型或汉明距离模型的攻击方式以及z的数值,取rki,j和maski,j或maski,k的所有可能值,并由此确定与攻击方式一致的基于汉明重量模型或汉明距离模型的汉明函数hn,rk,mask;
S1324:确定DPA选择函数为:F()=;
S1325:根据选择函数将Tn(t)分为两个子集S0和S1,定义式如下所示:
S0={Ti(t)|F(Mi,Kl)=0},
S1={Ti(t)|F(Mi,Kl)=1};
S1326:根据S= - 计算每个采样点上两个子集的能量平均之差;根据不同的z值,在均值差S中出现一个最大尖峰时对应不同的rki,j和maski,j或maski,k即为实际的攻击结果;
S1327:z=z+1,k=(k+1)mod4,如果z<4,,跳转到步骤S1323继续攻击(循环执行4次),否则停止攻击。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510120694.7A CN104753665B (zh) | 2015-03-19 | 2015-03-19 | 一种针对sm4密码轮函数输出的侧信道能量攻击方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510120694.7A CN104753665B (zh) | 2015-03-19 | 2015-03-19 | 一种针对sm4密码轮函数输出的侧信道能量攻击方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104753665A true CN104753665A (zh) | 2015-07-01 |
CN104753665B CN104753665B (zh) | 2018-04-06 |
Family
ID=53592828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510120694.7A Expired - Fee Related CN104753665B (zh) | 2015-03-19 | 2015-03-19 | 一种针对sm4密码轮函数输出的侧信道能量攻击方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104753665B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106982114A (zh) * | 2017-03-12 | 2017-07-25 | 成都信息工程大学 | 一种针对sm3密码算法消息扩展的侧信道分析攻击的方法 |
CN107070629A (zh) * | 2016-11-14 | 2017-08-18 | 成都信息工程大学 | 一种针对sm4密码算法轮输出的模板攻击方法 |
CN111030820A (zh) * | 2019-12-17 | 2020-04-17 | 成都三零嘉微电子有限公司 | 一种基于掩码sm4算法的选择明文相关碰撞攻击方法 |
CN111934852A (zh) * | 2020-08-10 | 2020-11-13 | 北京邮电大学 | 一种基于神经网络的aes密码芯片电磁攻击方法及系统 |
CN112989395A (zh) * | 2021-04-28 | 2021-06-18 | 山东省计算中心(国家超级计算济南中心) | 一种sm4密码算法的形式化验证方法及系统 |
CN113949500A (zh) * | 2020-07-16 | 2022-01-18 | 成都芯安尤里卡信息科技有限公司 | 一种针对sm4二阶能量分析攻击方法 |
CN115499832A (zh) * | 2022-11-14 | 2022-12-20 | 济南职业学院 | 一种工业无线通信安全方法 |
CN116866038A (zh) * | 2023-07-12 | 2023-10-10 | 北京兆讯恒达技术有限公司 | 动态掩码加密方法及动态掩码加密装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090092245A1 (en) * | 2006-03-31 | 2009-04-09 | Axalto Sa | Protection Against Side Channel Attacks |
US20120114117A1 (en) * | 2007-03-07 | 2012-05-10 | Research In Motion Limited | Methods And Apparatus For Performing An Elliptic Curve Scalar Multiplication Operation Using Splitting |
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密码算法侧信道能量分析的应用 |
CN104202145A (zh) * | 2014-09-04 | 2014-12-10 | 成都信息工程学院 | 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法 |
-
2015
- 2015-03-19 CN CN201510120694.7A patent/CN104753665B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090092245A1 (en) * | 2006-03-31 | 2009-04-09 | Axalto Sa | Protection Against Side Channel Attacks |
US20120114117A1 (en) * | 2007-03-07 | 2012-05-10 | Research In Motion Limited | Methods And Apparatus For Performing An Elliptic Curve Scalar Multiplication Operation Using Splitting |
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密码算法侧信道能量分析的应用 |
CN104202145A (zh) * | 2014-09-04 | 2014-12-10 | 成都信息工程学院 | 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107070629A (zh) * | 2016-11-14 | 2017-08-18 | 成都信息工程大学 | 一种针对sm4密码算法轮输出的模板攻击方法 |
CN106982114A (zh) * | 2017-03-12 | 2017-07-25 | 成都信息工程大学 | 一种针对sm3密码算法消息扩展的侧信道分析攻击的方法 |
CN111030820A (zh) * | 2019-12-17 | 2020-04-17 | 成都三零嘉微电子有限公司 | 一种基于掩码sm4算法的选择明文相关碰撞攻击方法 |
CN111030820B (zh) * | 2019-12-17 | 2023-12-19 | 成都三零嘉微电子有限公司 | 一种基于掩码sm4算法的选择明文相关碰撞攻击方法 |
CN113949500A (zh) * | 2020-07-16 | 2022-01-18 | 成都芯安尤里卡信息科技有限公司 | 一种针对sm4二阶能量分析攻击方法 |
CN111934852A (zh) * | 2020-08-10 | 2020-11-13 | 北京邮电大学 | 一种基于神经网络的aes密码芯片电磁攻击方法及系统 |
CN112989395A (zh) * | 2021-04-28 | 2021-06-18 | 山东省计算中心(国家超级计算济南中心) | 一种sm4密码算法的形式化验证方法及系统 |
CN112989395B (zh) * | 2021-04-28 | 2022-05-17 | 山东省计算中心(国家超级计算济南中心) | 一种sm4密码算法的形式化验证方法及系统 |
CN115499832A (zh) * | 2022-11-14 | 2022-12-20 | 济南职业学院 | 一种工业无线通信安全方法 |
CN115499832B (zh) * | 2022-11-14 | 2023-01-17 | 济南职业学院 | 一种工业无线通信安全方法 |
CN116866038A (zh) * | 2023-07-12 | 2023-10-10 | 北京兆讯恒达技术有限公司 | 动态掩码加密方法及动态掩码加密装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104753665B (zh) | 2018-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104202145B (zh) | 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法 | |
CN104753665A (zh) | 一种针对sm4密码轮函数输出的侧信道能量攻击方法 | |
CN105553638A (zh) | 针对sm4一阶掩码算法的二阶频域能量分析攻击 | |
US9819657B2 (en) | Protection of memory interface | |
CN104836666B (zh) | 一种针对sm2解密算法的能量分析攻击的方法 | |
CN103825722B (zh) | 一种sm4密码算法的二阶侧信道能量分析方法 | |
Park et al. | Differential Fault Analysis for Round‐Reduced AES by Fault Injection | |
Duan et al. | Differential power analysis attack and efficient countermeasures on PRESENT | |
CN104780051B (zh) | 针对sm2公钥密码加密算法的侧信道攻击的方法 | |
CN101951314A (zh) | 对称密码加密中s-盒的设计方法 | |
CN102594549B (zh) | 一种数据多级加密、解密方法 | |
CN104753668B (zh) | 一种针对sm4密码线性变换输出的侧信道能量攻击方法 | |
CN104301095A (zh) | Des轮运算方法和电路 | |
CN103427980B (zh) | 一种基于双矩阵变换的ofdm系统物理层安全算法 | |
Wang | Side-channel analysis of AES based on deep learning | |
Li et al. | Impossible differential fault analysis on the LED lightweight cryptosystem in the vehicular ad-hoc networks | |
CN107070629A (zh) | 一种针对sm4密码算法轮输出的模板攻击方法 | |
Li et al. | Impossible meet-in-the-middle fault analysis on the LED lightweight cipher in VANETs | |
CN105162580A (zh) | 基于ofb模式和分组密码vh的轻量级流密码技术vho | |
Bardis et al. | A Method for Strict Remote User Identification Using non-Reversible Galois Field Transformations | |
CN102546152B (zh) | 一种实现数据多级加密、解密的方法 | |
Li et al. | Single byte differential fault analysis on the LED lightweight cipher in the wireless sensor network | |
KR101517947B1 (ko) | 중간키를 이용한 전력분석공격 방어방법 | |
Dong et al. | Analysis of an optimal fault attack on the LED-64 lightweight cryptosystem | |
Bae et al. | A practical analysis of fault attack countermeasure on AES using data masking |
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: 20180406 |