CN104753668A - 一种针对sm4密码线性变换输出的侧信道能量攻击方法 - Google Patents

一种针对sm4密码线性变换输出的侧信道能量攻击方法 Download PDF

Info

Publication number
CN104753668A
CN104753668A CN201510120633.0A CN201510120633A CN104753668A CN 104753668 A CN104753668 A CN 104753668A CN 201510120633 A CN201510120633 A CN 201510120633A CN 104753668 A CN104753668 A CN 104753668A
Authority
CN
China
Prior art keywords
attack
byte
mask
linear transformation
calculate
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
Application number
CN201510120633.0A
Other languages
English (en)
Other versions
CN104753668B (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 CN201510120633.0A priority Critical patent/CN104753668B/zh
Publication of CN104753668A publication Critical patent/CN104753668A/zh
Application granted granted Critical
Publication of CN104753668B publication Critical patent/CN104753668B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种针对SM4密码算法线性变换输出的侧信道能量分析攻击方法,包括以下步骤:S1:选择两次攻击的字节,每次对应的输入为 (Xi+1⊕Xi+2⊕Xi+3) 中和要攻击的字节对应的字节为随机数,其它为固定数,采用侧信道能量攻击方法攻击出轮子密钥的字节和对应的线性变换中的固定数,将两次攻击的轮子密钥字节和固定数,进行相应的运算,即可获得完整的轮子密钥rki,其中,i=0,1,2,3;S2:根据所述前四轮轮子密钥rk0、rk1、rk2和rk3,通过密钥扩展算法,逆向计算出初始密钥。采用上述分析方法不仅实现了针对SM4线性变换输出的侧信道能量分析攻击,而且降低攻击完整密钥所需的攻击次数,增强了攻击效率和成功率。

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,定义式如下:
S= {Ti(t)|F(                                                )=0}
S1= {Ti(t)|F()=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∈Ω,Ω为密钥空间),计算在Kl和Mi条件下,密码算法进行加密运算时在被攻击点产生的中间值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的向量集(Z2 e)),明文输入为(X0,X1,X2,X3),密文输出为(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)
系统参数FKi(i=1,2,3)的取值,采用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 8)4,则cki,j=((4i+j)*7)mod 256。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
目前,尚未有选择线性变换的输出作为攻击的中间,先将线性变换中固定数和轮子密钥共同作为攻击对象实施侧信道能量攻击,然后通过攻击出的线性变换中的固定数和部分轮子密钥字节,计算出整个轮子密钥的方法。
发明内容
本发明的目的是提供一种针对SM4密码算法线性变换输出的侧信道能量攻击方法,以解决线性变换对密钥的扩散影响,导致不能以线性变换输出作为攻击中间数据直接对轮子密钥的攻击。通过选择特殊的输入,将线性变换的输出作为攻击的中间,以线性变换中固定数和轮子密钥共同作为攻击对象实施侧信道能量攻击,通过攻击出的线性变换中的固定数和部分轮子密钥字节,计算出整个轮子密钥,从而不仅实现了针对SM4密码算法线性变换输出的侧信道能量攻击,而且降低了攻击次数,增强了攻击效率、灵活性、有效性和成功率。
为解决上述技术问题,本发明提供一种针对SM4密码算法线性变换输出的侧信道能量攻击方法,具体包括以下步骤:
S1:选择两次攻击的字节,每次对应的输入为 (Xi+1⊕Xi+2⊕Xi+3) 中和要攻击的字节对应的字节为随机数,其它为固定数,采用侧信道能量攻击方法攻击出轮子密钥的字节和对应的线性变换中的固定数,将两次攻击的轮子密钥字节和固定数,进行相应的运算,即可获得完整的轮子密钥rki,其中i=0,1,2,3;
S2:根据所述前四轮轮函数的轮子密钥rk0、rk1、rk2和rk3,通过密钥扩展算法,逆向计算出初始密钥。
进一步地,S1具体包括以下步骤:
S11:攻击加/解密的第一轮,初始化i=0;
S12:选择两次攻击的字节,每次对应的输入为 (Xi+1⊕Xi+2⊕Xi+3) 中和要攻击的字节对应的字节为随机数,其它为固定数,所述的两次攻击的字节为第j个字节和第(j+1) mod4个字节,或者为第j个字节和第(j+3) mod 4个字节,(j=0,1,2,3);
S13:采用侧信道能量攻击方法攻击出第i轮轮子密钥的第j个字节和第(j+1) mod 4个字节,及线性变换中第j个字节和第(j+1) mod 4个字节固定数,或者采用侧信道能量攻击方法攻击出第i轮轮子密钥的第j个字节和第(j+3) mod 4个字节,及线性变换中第j个字节和第(j+3) mod 4个字节固定数,所述侧信道能量攻击方法采用CPA攻击方法或DPA攻击方法;
S14:如果所述的两次攻击的字节为第j个字节和第(j+1) mod 4个字节,则根据rki,j和rki,(j+1)mod4,及线性变换中第j个字节和第(j+1) mod 4个字节固定数,计算出第i轮轮子密钥的剩余字节,获得完整的轮子密钥rki,如果所述的两次攻击的字节为第j个字节和第(j+3) mod 4个字节,则根据rki,j和rki,(j+3)mod4,及线性变换中第j个字节和第(j+3 ) mod 4个字节固定数,计算出第i轮轮子密钥的剩余字节,获得完整的轮子密钥rki
S15:使i自增1,返回步骤S12继续攻击下一轮,直到得出加密运算或者解密运算的前四轮的轮子密钥rk0、rk1、rk2和rk3
进一步地,S13中采用侧信道能量攻击方法为CPA攻击方法攻击出第i轮轮子密钥的第j个字节和第(j+1) mod 4个字节,及线性变换中第j个字节和第(j+1) mod 4个字节固定数,具体包括以下步骤:
S1311:初始化攻击次数计数z=1;
S1312:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t);
S1313:获取rki,j的所有可能值,表示为rkФ∈[0,28-1],maski,j的所有可能值,表示为maskФ∈[0,28-1],根据rkФ、maskФ和第n条曲线对应的明文或密文输入计算SM4第i轮线性变换输出的第j个字节为Ci,j=maskФ⊕S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)⊕(S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)<<2)。将线性变换的输出Ci,j为攻击的中间数据,如果攻击时选择汉明重量模型,则计算Ci,j的汉明重量,表示为=HW(Ci,j);如果攻击时选择汉明距离模型,则计算Ci,j的汉明距离,表示为=HW(Ci,j ⊕Ci-1,j);
S1314:根据=计算Tn(t)和的相关性
S1315:取相关系数最大值时对应的rkФ、maskФ,即为rki,j和maski,j对应的实际数据;
S1316:z=z+1;如果z==2,使j=(j+1) mod 4,跳转到步骤S1312继续攻击,否则停止攻击。
进一步地,S13中采用侧信道能量攻击方法为DPA攻击方法攻击出第i轮轮子密钥的第j个字节和第(j+1) mod 4个字节,及线性变换中第j个字节和第(j+1) mod 4个字节固定数,具体包括以下步骤:
S1321:初始化攻击次数计数z=1;
S1322:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t);
S1323:获取rki,j的所有可能值,表示为rkФ∈[0,28-1],maski,j的所有可能值,表示为mas[0,]),根据rkФ和第n条曲线对应的明文或密文输入计算SM4第i轮线性变换输出的第j个字节为Ci,j=maskФ⊕S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)⊕(S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)<<2)。将线性变换的输出Ci,j为攻击的中间数据,如果攻击时选择汉明重量模型,则计算Ci,j的汉明重量,表示为=HW(Ci,j);如果攻击时选择汉明距离模型,则计算Ci,j的汉明距离,表示为=HW(Ci,j ⊕Ci-1,j);
S1324:确定DPA选择函数为:
F()= 
S1325:根据选择函数将Tn(t)分为两个子集定义式如下所示:
S0={Ti(t)|F(Mi,Kl)=0},
S1={Ti(t)|F(Mi,Kl)=1};
S1326:根据S= - 计算每个采样点上两个子集的能量平均之差,在均值差S中出现一个最大尖峰时对应的rkФ、maskФ,即为rki,j和maski,j对应的实际数据;
S1327:z=z+1;如果z==2,使j=(j+1) mod 4,跳转到步骤S1322继续攻击,否则停止攻击。
进一步地,S13中采用侧信道能量攻击方法为CPA攻击方法攻击出第i轮轮子密钥的第j个字节和第(j+3) mod 4个字节,及线性变换中第j个字节和第(j+3) mod 4个字节固定数,具体包括以下步骤:
S1331:初始化攻击次数计数z=1;
S1332:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t);
S1333:获取rki,j的所有可能值,表示为rkФ∈[0,28-1],maski,j的所有可能值,表示为maskФ∈[0,28-1],根据rkФ和第n条曲线对应的明文或密文输入计算SM4第i轮线性变换输出的第j个字节为Ci,j=maskФ⊕S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)⊕(S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)<<2)。将线性变换的输出Ci,j为攻击的中间数据,如果攻击时选择汉明重量模型,则计算Ci,j的汉明重量,表示为=HW(Ci,j);如果攻击时选择汉明距离模型,则计算Ci,j的汉明距离,表示为= HW(Ci,j ⊕Ci-1,j);
S1334:根据=计算的相关性
S1335:取相关系数最大值时对应的rkФ、maskФ,即为rki,j和maski,j对应的实际数据;
S1336:z=z+1;如果z==2,使j=(j+3) mod 4,跳转到步骤S1332继续攻击,否则停止攻击。
进一步地,S13中采用侧信道能量攻击方法为DPA攻击方法攻击出第i轮轮子密钥的第j个字节和第(j+3) mod 4个字节,及线性变换中第j个字节和第(j+3) mod 4个字节固定数,具体包括以下步骤:
S1341:初始化攻击次数计数z=1;
S1342:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t);
S1343:获取的所有可能值,表示为rkФ∈[0,28-1],maski,j的所有可能值,表示为maskФ∈[0,28-1],根据rkФ和第n条曲线对应的明文或密文输入计算SM4第i轮线性变换输出的第j个字节为Ci,j=maskФ⊕S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)⊕(S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)<<2)。将线性变换的输出Ci,j为攻击的中间数据,如果攻击时选择汉明重量模型,则计算Ci,j的汉明重量,表示为=HW(Ci,j);如果攻击时选择汉明距离模型,则计算Ci,j的汉明距离,表示为= HW(Ci,j ⊕Ci-1,j);
S1344:确定DPA选择函数为:
F() =
S1345:根据选择函数将分为两个子集定义式如下所示:
S0={Ti(t)|F(Mi,Kl)=0},
S1={Ti(t)|F(Mi,Kl)=1};
S1346:根据S= - 计算每个采样点上两个子集的能量平均之差,在均值差S中出现一个最大尖峰时对应的rkФ、maskФ,即为rki,j和maski,j对应的实际数据;
S1347:z=z+1;如果z==2,使j=(j+3) mod 4,跳转到步骤S1342继续攻击,否则停止攻击。
本发明的有益效果为:针对SM4密码算法线性变换输出的侧信道能量攻击方法,创造性地引入固定数作为攻击对象,按一定关系选择两个字节进行攻击,将两次攻击出的轮子密钥字节和固定数进行相关计算,恢复出整轮轮子密钥,从而实现以线性变换的输出作为攻击的中间,针对SM4密码算法线性变换输出的侧信道能量攻击,本方法所需攻击次数较少,且易实现,使针对SM4密码算法的能量分析攻击具有更实际的应用性,从而增强了攻击的效率、有效性和成功率。
附图说明
图1为SM4加密算法流程图;
图2为迭代函数F的流程图;
图3为针对SM4密码算法线性变换输出的侧信道能量攻击方法的流程图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
针对SM4密码算法线性变换输出的侧信道能量攻击方法,具体包括以下步骤:
S1:选择两次攻击的字节,每次对应的输入为 (Xi+1⊕Xi+2⊕Xi+3) 中和要攻击的字节对应的字节为随机数,其它为固定数,采用侧信道能量攻击方法攻击出轮子密钥的字节和对应的线性变换中的固定数,将两次攻击的轮子密钥字节和固定数,进行相应的运算,即可获得完整的轮子密钥rki,其中,i
S2:根据所述前四轮轮函数的轮子密钥rk0、rk1、rk2和rk3,通过密钥扩展算法,逆向计算出初始密钥。
其中,S1具体包括以下步骤:
S11:攻击加/解密的第一轮,初始化i=0;
S12:选择两次攻击的字节,每次对应的输入为(Xi+1⊕Xi+2⊕Xi+3)中和要攻击的字节对应的字节为随机数,其它为固定数,所述的两次攻击的字节为第j个字节和第(j+1) mod 4个字节,或者为第j个字节和第(j+3) mod 4个字节,攻击第j个字节时,(j=0,1,2,3),输入为Xi+1⊕Xi+2⊕Xi+3=Г(Tj)i,Г(Tj)i表示攻击第i轮轮子密钥,采集Tj曲线时Xi+1⊕Xi+2⊕Xi+3的运算结果为Г,其中Г的第j个字节为变化量,用τ表示,其它字节为固定数据,分别表示为α、β和γ,则Г(Tj)i表示为Г(Tj)i=τ,Гi,,(j+1)mod4=α,Гi,,(j+2)mod4=β,Гi,,(j+3)mod4=γ,如果攻击第(j+1)mod4时,Xi+1⊕Xi+2⊕Xi+3=Г(T(j+1)mod4)i=,Гi,,(j+2)mod4=β,Гi,,(j+3)mod4=γ,=,如果攻击第(j+3) mod 4时,Xi+1⊕Xi+2⊕Xi+3=Г(T(j+3)mod4)i,Гi,,(j+3)mod4=τ,=,Гi,,(j+1)mod4=α,Гi,,(j+2)mod4=β,其中表示变化数,、α、β和γ表示固定数,即如果选择攻击第j个字节和第(j+1)mod4个字节,则Г(Tj)i和Г(T(j+1)mod4)i的第(j+2) mod4个字节和第(j+3) mod4个字节要求如下(1)式和(2)式所示。
==  (1)
==  (2)
如果选择攻击第j个字节和第(j+3)mod4个字节,Г(Tj)i和Г(T(j+3)mod4)i的第个字节和第个字节要求如下(3)式和(4)式所示。
==  (3)
==  (4)
S13:采用侧信道能量攻击方法攻击出第i轮轮子密钥的第j个字节和第(j+1) mod 4个字节,及线性变换中第j个字节和第(j+1) mod 4个字节固定数,或者采用侧信道能量攻击方法攻击出第i轮轮子密钥的第j个字节和第(j+3)mod4个字节,及线性变换中第j个字节和第(j+3)mod4个字节固定数,所述侧信道能量攻击方法采用CPA攻击方法或DPA攻击方法,其中每次攻击固定数maski,j,如(5)式所示。
 (5)
S14:如果所述的两次攻击的字节为第j个字节和第(j+1) mod 4个字节,则选择根据rki,j和rki,(j+1)mod4,及线性变换中第j个字节和第(j+1) mod 4个字节固定数,得(6)式,根据(6)式可计算出,由可反推出S盒的输入ai,(j+3)mod4,方法是在S盒子中确定所在的行ar和列al,则ai,(j+3)mod4=ar||al。此外ai,(j+3)mod4=γ⊕rki,(j+3)mod4,故为γ⊕ai,(j+3)mod4
(6)
在已经攻击出rki,j、rki,(j+1)mod4和rki,(j+3)mod4基础上,由(5)式,可得(7)式,根据该式可计算出可反推出S盒的输入ai,(j+2)mod4 方法是在S盒子中确定所在的行ar和列al,则ai,(j+2)mod4= ar||al。此外ai,(j+2)mod4=β⊕rki,(j+2)mod4,故rki,(j+2)mod4为β⊕ai,(j+2)mod4
   (7)
由rki,j、rki,(j+1)mod4、rki,(j+2)mod4和rki,(j+3)mod4,获得完整的轮子密钥rki
如果所述的两次攻击的字节为第j个字节和第(j+3) mod 4个字节,则根据rki,j和rki,(j+3)mod4,及线性变换中第j个字节和第(j+3) mod 4个字节固定数,得(8)式,根据(8)式可计算出,由可反推出S盒的输入ai,(j+2)mod4,方法是在S盒子中确定所在的行ar和列al,则ai,(j+2)mod4= ar||al。此外ai,(j+2)mod4=β⊕rki,(j+2)mod4,故rki,(j+2)mod4为β⊕ai,(j+2)mod4
(8)
在已经攻击出rki,j、rki,(j+2)mod4和rki,(j+3)mod4基础上,由(5)式,可得(9)式,根据该式可计算出可反推出S盒的输入ai,(j+1)mod4,方法是在S盒子中确定所在的行ar和列al,则ai,(j+1)mod4=ar||al。此外ai,(j+1)mod4=α⊕rki,(j+1)mod4,故rki,(j+1)mod4为α⊕ai,(j+1)mod4
(9)
由rki,j、rki,(j+1)mod4、rki,(j+2)mod4和rki,(j+3)mod4,即获得完整的轮子密钥rki
S15:使i自增1,返回步骤S12继续攻击下一轮,直到得出加密运算或者解密运算的前四轮的轮子密钥rk0、rk1、rk2和rk3
进一步地,S13中采用侧信道能量攻击方法为CPA攻击方法攻击出第i轮轮子密钥的第j个字节和第(j+1)mod4个字节,及线性变换中第j个字节和第(j+1) mod 4个字节固定数,具体包括以下步骤:
S1311:初始化攻击次数计数z=1;
S1312:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t);
S1313:获取rki,j的所有可能值,表示为rkФ∈[0,28-1],maski,j的所有可能值,表示为maskФ∈[0,28-1],根据rkФ和第n条曲线对应的明文或密文输入计算SM4第i轮线性变换输出的第j个字节为Ci,j=maskФ⊕S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)⊕(S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)<<2)。将线性变换的输出Ci,j为攻击的中间数据,如果攻击时选择汉明重量模型,则计算Ci,j的汉明重量,表示为=HW(Ci,j);如果攻击时选择汉明距离模型,则计算Ci,j的汉明距离,表示为=HW(Ci,j⊕Ci-1,j);
S1314:根据=计算的相关性
S1315:取相关系数最大值时对应的rkФ和maskФ,即为rki,j和maski,j对应的实际数据;
S1316:z=z+1;如果z==2,使j=(j+1) mod 4,跳转到步骤S1312继续攻击,否则停止攻击。
S13中采用侧信道能量攻击方法为DPA攻击方法攻击出第i轮轮子密钥的第j个字节和第(j+1)mod4个字节,及线性变换中第j个字节和第(j+1)mod4个字节固定数,具体包括以下步骤:
S1321:初始化攻击次数计数z=1;
S1322:采集SM4密码设备上加/解密时的能量曲线表示为
S1323:获取的所有可能值,表示为rkФ∈[0,28-1],maski,j的所有可能值,表示为maskФ∈[0,28-1],根据rkФ和第n条曲线对应的明文或密文输入计算SM4第i轮线性变换输出的第j个字节为Ci,j=maskФ⊕S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)⊕(S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)<<2)。将线性变换的输出Ci,j为攻击的中间数据,如果攻击时选择汉明重量模型,则计算Ci,j的汉明重量,表示为=HW(Ci,j);如果攻击时选择汉明距离模型,则计算Ci,j的汉明距离,表示为=HW(Ci,j⊕Ci-1,j);
S1324:确定DPA选择函数为:
F() =
S1325:根据选择函数将分为两个子集定义式如下所示:
  ={ Ti (t)|F(Mi,Kl)=0},
  ={ Ti (t)|F(Mi,Kl)=1};
S1326:根据S= - 计算每个采样点上两个子集的能量平均之差,在均值差S中出现一个最大尖峰时对应的rkФ、maskФ,即为rki,j和maski,j对应的实际数据;
S1327:z=z+1;如果z==2,使j=(j+1) mod 4,跳转到步骤S1322继续攻击,否则停止攻击。;
S13中采用侧信道能量攻击方法为CPA攻击方法攻击出第i轮轮子密钥的第j个字节和第(j+3) mod 4个字节,及线性变换中第j个字节和第(j+3) mod 4个字节固定数,具体包括以下步骤:
S1331:初始化攻击次数计数z=1;
S1332:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t);
S1333:获取rki,j的所有可能值,表示为rkФ∈[0,28-1],maski,j的所有可能值,表示为maskФ∈[0,28-1],根据rkФ和第n条曲线对应的明文或密文输入计算SM4第i轮线性变换输出的第j个字节为Ci,j=maskФ⊕S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)⊕(S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)<<2)。将线性变换的输出Ci,j为攻击的中间数据,如果攻击时选择汉明重量模型,则计算Ci,j的汉明重量,表示为=HW(Ci,j);如果攻击时选择汉明距离模型,则计算Ci,j的汉明距离,表示为= HW(Ci,j⊕Ci-1,j);
S1334:根据=计算Tn(t)和的相关性
S1335:取相关系数最大值时对应的rkФ、maskФ,即为rki,j和maski,j对应的实际数据;
S1336:z=z+1;如果z==2,使j=(j+3) mod 4,跳转到步骤S1332继续攻击,否则停止攻击。
S13中采用侧信道能量攻击方法为DPA攻击方法攻击出第i轮轮子密钥的第j个字节和第(j+3) mod 4个字节,及线性变换中第j个字节和第(j+3) mod 4个字节固定数,具体包括以下步骤:
S1341:初始化攻击次数计数z=1;
S1342:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t);
S1343:获取的所有可能值,表示为rkФ∈[0,28-1],maski,j的所有可能值,表示为maskФ∈[0,28-1],根据rkФ和第n条曲线对应的明文或密文输入计算SM4第i轮线性变换输出的第j个字节为Ci,j=maskФ⊕S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)⊕(S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)<<2)。将线性变换的输出Ci,j为攻击的中间数据,如果攻击时选择汉明重量模型,则计算Ci,j的汉明重量,表示为=HW(Ci,j);如果攻击时选择汉明距离模型,则计算Ci,j的汉明距离,表示为=HW(Ci,j ⊕Ci-1,j);
S1344:确定DPA选择函数为:
F() =
S1345:根据选择函数将分为两个子集定义式如下所示:
  ={ Ti (t)|F(Mi,Kl)=0},
  ={ Ti (t)|F(Mi,Kl)=1};
S1346:根据S= - 计算每个采样点上两个子集的能量平均之差,在均值差S中出现一个最大尖峰时对应的rkФ,、maskФ,即为rki,j和maski,j对应的实际数据;
S1347:z=z+1;如果z==2,使j=(j+3) mod 4,跳转到步骤S1342继续攻击,否则停止攻击。
将线性变换中的固定数和轮子密钥部分字节一起攻击,通过攻击出的固定数和轮子密钥,经过相关的公式计算,推导出轮子密钥,创造性的解决了线性变换对密钥的扩散作用对攻击的影响,不仅实现了以线性变换输出作为攻击中间数据的侧信道能攻击,而且轮子密钥的攻击,仅需两次攻击,即可完成轮子密钥的破解,降低了攻击次数,提高了攻击效率。

Claims (6)

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个字节和第(j+1) mod 4个字节,或者为第j个字节和第(j+3) mod 4个字节,(j=0,1,2,3);
S13:采用侧信道能量攻击方法攻击出第i轮轮子密钥的第j个字节和第(j+1) mod 4个字节,及线性变换中第j个字节和第(j+1) mod 4个字节固定数,或者采用侧信道能量攻击方法攻击出第i轮轮子密钥的第j个字节和第(j+3) mod 4个字节,及线性变换中第j个字节和第(j+3) mod 4个字节固定数,所述侧信道能量攻击方法采用CPA攻击方法或DPA攻击方法;
S14:如果所述的两次攻击的字节为第j个字节和第(j+1) mod 4个字节,则根据rki,j和rki,(j+1)mod4及线性变换中第j个字节和第(j+1) mod 4个字节固定数,计算出第i轮轮子密钥的剩余字节,获得完整的轮子密钥rki,如果所述的两次攻击的字节为第j个字节和第(j+3) mod 4个字节,则根据rki,j和rki,(j+3)mod4,及线性变换中第j个字节和第(j+3) mod 4个字节固定数,计算出第i轮轮子密钥的剩余字节,获得完整的轮子密钥rki
S15:使i自增1,返回步骤S12继续攻击下一轮,直到得出加密运算或者解密运算的前四轮的轮子密钥rk0、rk1、rk2和rk3
3.所述S13中如果采用CPA攻击方法实现侧信道能量攻击,包括以下步骤:
S1311:初始化攻击次数计数z=1;
S1312:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t);
S1313:获取rki,j和maski,j的所有可能值,用rkФ、maskФ表示(rkФ、maskФ∈[0,28-1]);根据rkФ和第n条曲线对应的明文或密文输入计算SM4第i轮线性变换输出的第j个字节为Ci,j=maskФ⊕S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)⊕(S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)<<2);根据攻击方式不同,将线性变换的输出Ci,j为攻击的中间数据,计算Ci,j的汉明重量或汉明距离;
hn, rkФ, maskФ=                                                
S1314:根据=计算Tn(t)和的相关性
S1315:取相关系数最大值时对应的rkФ、maskФ,即为rki,j和maski,j对应的实际数据;
S1316:z=z+1;如果z==2,使j=(j+1) mod 4,跳转到步骤S1312继续攻击,否则停止攻击。
4.所述S13中如果采用DPA攻击方法实现侧信道能量攻击,包括以下步骤:
S1321:初始化攻击次数计数z=1;
S1322:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t);
S1323:获取rki,j和maski,j的所有可能值,用rkФ、maskФ表示(rkФ、maskФ∈[0,28-1]);根据rkФ、maskФ和第n条曲线对应的明文或密文输入计算SM4第i轮线性变换输出的第j个字节为Ci,j=maskФ⊕S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)⊕(S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)<<2);将线性变换的输出Ci,j为攻击的中间数据,如果攻击时选择汉明重量模型,则计算Ci,j的汉明重量,表示为=HW(Ci,j);如果攻击时选择汉明距离模型,则计算Ci,j的汉明距离,表示为= HW(Ci,j⊕Ci-1,j);
S1324:确定DPA选择函数为:
F(Xi,rkФ,maskФ,) =
S1325:根据选择函数将分为两个子集定义式如下所示:
  ={Ti(t)|F(Mi,Kl)=0},
  ={ Ti(t)|F(Mi,Kl)=1};
S1326:根据S= - 计算每个采样点上两个子集的能量平均之差,在均值差S中出现一个最大尖峰时对应的rkФ、maskФ,即为rki,j和maski,j对应的实际数据;
S1327:z=z+1;如果z==2,使j=(j+1)mod4,跳转到步骤S1322继续攻击,否则停止攻击。
5.所述S13中如采用CPA攻击方法实现侧信道能量攻击方法,攻击出第i轮轮子密钥的第j个字节和第(j+3) mod4个字节,及线性变换中第j个字节和第(j+3) mod 4个字节固定数,具体包括以下步骤:
S1331:初始化攻击次数计数z=1;
S1332:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t);
S1333:获取rki,j的所有可能值,表示为rkФ∈[0,28-1],maski,j的所有可能值,表示为maskФ∈[0,28-1],根据rkФ、maskФ和第n条曲线对应的明文或密文输入计算SM4第i轮线性变换输出的第j个字节为Ci,j=maskФ⊕S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)⊕(S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)<<2);将线性变换的输出Ci,j为攻击的中间数据,如果攻击时选择汉明重量模型,则计算Ci,j的汉明重量,表示为= HW(Ci,j);如果攻击时选择汉明距离模型,则计算Ci,j的汉明距离,表示为= HW(Ci,j⊕Ci-1,j);
S1334:根据=计算Tn(t)和的相关性
S1335:取相关系数最大值时对应的rkФ、maskФ,即为rki,j和maski,j对应的实际数据;
S1336:z=z+1;如果z==2,使j=(j+3) mod 4,跳转到步骤S1332继续攻击,否则停止攻击。
6.所述S13中如果采用DPA攻击方法实现侧信道能量攻击方法,攻击出第i轮轮子密钥的第j个字节和第(j+3) mod 4个字节,及线性变换中第j个字节和第(j+3) mod 4个字节固定数,具体包括以下步骤:
S1341:初始化攻击次数计数z=1;
S1342:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t);
S1343:获取rki,j和maski,j的所有可能值,用rkФ、maskФ表示(rkФ、maskФ∈[0,28-1]);根据rkФ、maskФ和第n条曲线对应的明文或密文输入计算SM4第i轮线性变换输出的第j个字节为Ci,j=maskФ⊕S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)⊕(S(rkФ⊕Xi+1,j⊕Xi+2,j⊕Xi+3,j)<<2);将线性变换的输出Ci,j为攻击的中间数据,如果攻击时选择汉明重量模型,则计算Ci,j的汉明重量,表示为= HW(Ci,j);如果攻击时选择汉明距离模型,则计算Ci,j的汉明距离,表示为= HW(Ci,j⊕Ci-1,j);
S1344:确定DPA选择函数为:
F(Xi,rkФ, maskФ,) =
S1345:根据选择函数将Tn(t)分为两个子集S0和S1,S0和S1定义式如下所示:
  ={Ti(t)|F(Mi,Kl)=0},
  ={Ti(t)|F(Mi,Kl)=1};
S1346:根据S= - 计算每个采样点上两个子集的能量平均之差,在均值差S中出现一个最大尖峰时对应的rkФ、maskФ,即为rki,j 和maski,j对应的实际数据;
S1347:z=z+1;如果z==2,使j=(j+3) mod 4,跳转到步骤S1342继续攻击,否则停止攻击。
CN201510120633.0A 2015-03-19 2015-03-19 一种针对sm4密码线性变换输出的侧信道能量攻击方法 Expired - Fee Related CN104753668B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510120633.0A CN104753668B (zh) 2015-03-19 2015-03-19 一种针对sm4密码线性变换输出的侧信道能量攻击方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510120633.0A CN104753668B (zh) 2015-03-19 2015-03-19 一种针对sm4密码线性变换输出的侧信道能量攻击方法

Publications (2)

Publication Number Publication Date
CN104753668A true CN104753668A (zh) 2015-07-01
CN104753668B CN104753668B (zh) 2018-04-13

Family

ID=53592829

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510120633.0A Expired - Fee Related CN104753668B (zh) 2015-03-19 2015-03-19 一种针对sm4密码线性变换输出的侧信道能量攻击方法

Country Status (1)

Country Link
CN (1) CN104753668B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109428707A (zh) * 2017-08-21 2019-03-05 埃沙尔公司 测试电路对侧信道分析的抵抗的方法
CN111274613A (zh) * 2020-01-20 2020-06-12 广州安研信息科技有限公司 迭代式sm2数字签名生成方法、系统、介质和设备
CN113949500A (zh) * 2020-07-16 2022-01-18 成都芯安尤里卡信息科技有限公司 一种针对sm4二阶能量分析攻击方法
CN116488662A (zh) * 2023-06-21 2023-07-25 电子科技大学 基于线性变换的f-ldpc码校验矩阵重量压缩方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1840732A1 (en) * 2006-03-31 2007-10-03 Axalto SA Protection against side channel attacks
EP2119104A1 (en) * 2007-03-06 2009-11-18 Research in Motion Limited Power analysis countermeasure for the ecmqv key agreement algorithm
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密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1840732A1 (en) * 2006-03-31 2007-10-03 Axalto SA Protection against side channel attacks
EP2119104A1 (en) * 2007-03-06 2009-11-18 Research in Motion Limited Power analysis countermeasure for the ecmqv key agreement algorithm
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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109428707A (zh) * 2017-08-21 2019-03-05 埃沙尔公司 测试电路对侧信道分析的抵抗的方法
CN111274613A (zh) * 2020-01-20 2020-06-12 广州安研信息科技有限公司 迭代式sm2数字签名生成方法、系统、介质和设备
CN113949500A (zh) * 2020-07-16 2022-01-18 成都芯安尤里卡信息科技有限公司 一种针对sm4二阶能量分析攻击方法
CN116488662A (zh) * 2023-06-21 2023-07-25 电子科技大学 基于线性变换的f-ldpc码校验矩阵重量压缩方法
CN116488662B (zh) * 2023-06-21 2023-10-03 电子科技大学 基于线性变换的f-ldpc码校验矩阵重量压缩方法

Also Published As

Publication number Publication date
CN104753668B (zh) 2018-04-13

Similar Documents

Publication Publication Date Title
CN104202145B (zh) 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法
CN104753665A (zh) 一种针对sm4密码轮函数输出的侧信道能量攻击方法
CN106663387B (zh) 加密函数和解密函数生成方法、加密和解密方法以及相关装置
US9819657B2 (en) Protection of memory interface
CN105553638A (zh) 针对sm4一阶掩码算法的二阶频域能量分析攻击
CN104836666B (zh) 一种针对sm2解密算法的能量分析攻击的方法
EP3559811B1 (en) Protecting parallel multiplication operations from external monitoring attacks
EP3584989B1 (en) Tweakable block ciphers for secure data encryption
CN103825722B (zh) 一种sm4密码算法的二阶侧信道能量分析方法
Park et al. Differential Fault Analysis for Round‐Reduced AES by Fault Injection
CN103647637A (zh) 一种对简单掩码的sm4算法进行二阶侧信道能量分析方法
CN104753668B (zh) 一种针对sm4密码线性变换输出的侧信道能量攻击方法
CN108880783B (zh) 一种针对sm4算法的联合攻击方法
CN108964872A (zh) 一种基于aes的加密方法及装置
KR20110055671A (ko) 암호 기반 메시지 인증 코드를 생성하는 방법
CN104184579A (zh) 基于双伪随机变换的轻量级分组密码vh算法
Duan et al. Differential power analysis attack and efficient countermeasures on PRESENT
Razaq et al. A novel technique for the construction of safe substitution boxes based on cyclic and symmetric groups
CN104780051A (zh) 针对sm2公钥密码加密算法的侧信道攻击的方法
CN103427980A (zh) 一种基于双矩阵变换的ofdm系统物理层安全算法
CN108737073B (zh) 分组加密运算中抵抗能量分析攻击的方法和装置
Li et al. Impossible meet-in-the-middle fault analysis on the LED lightweight cipher in VANETs
CN106921486A (zh) 数据加密的方法和装置
CN105162580A (zh) 基于ofb模式和分组密码vh的轻量级流密码技术vho
Li et al. Single byte differential fault analysis on the LED lightweight cipher in the wireless sensor network

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: 20180413