CN105553638A - 针对sm4一阶掩码算法的二阶频域能量分析攻击 - Google Patents
针对sm4一阶掩码算法的二阶频域能量分析攻击 Download PDFInfo
- Publication number
- CN105553638A CN105553638A CN201510889203.5A CN201510889203A CN105553638A CN 105553638 A CN105553638 A CN 105553638A CN 201510889203 A CN201510889203 A CN 201510889203A CN 105553638 A CN105553638 A CN 105553638A
- Authority
- CN
- China
- Prior art keywords
- key
- matrix
- attack
- frequency domain
- energy
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
Abstract
本发明公开了一种针对SM4一阶掩码算法的二阶频域能量分析攻击的方法,包括以下步骤:S1:采集时域功耗曲线,建立能量消耗矩阵;S2:将S1的时域功耗转换到频域;S3:猜测轮子密钥字节,计算组合中间值,将组合中间值映射为假设能量消耗矩阵;S4:选择S盒的输入输出异或Sin_Xor_Sout作为攻击点,对功率谱矩阵进行CPA攻击;S5:重复S2、S3、S4过程分别获得一轮的4个S盒的子密钥得到轮密钥;S6:对前/后4轮进行步骤S2、S3、S4、S5操作获得4轮的子密钥,通过密钥逆扩展获得初始密钥。本发明创新提出了二阶能量分析的一种新方法,将二阶能量分析从时域分析拓展到了频域分析,能有效避免时域CPA中时间点不对齐的问题。
Description
技术领域
本发明涉及密码算法分析检测领域,尤其针对具有掩码防护的SM4密码算法实现的二阶频域侧信道能量分析,特别是涉及对S盒输入输出中间掩码值相同的SM4密码算法进行的二阶频域侧信道能量分析。
背景技术
随着信息和分析电路技术的发展,对硬件密码电子设备的破解不再单纯的停留在协议和算法上,而是从其处理数据的过程中泄露的信息入手,进行破解。硬件密码电子设备在处理信息的工程中存在能量、电磁、错误和时间等信息的泄露,利用这些泄露的信息对密码电子设备进行攻击,就是所谓的侧信道攻击(SideChannelAttacks)。侧信道攻击可分为能量分析攻击、电磁攻击和错误攻击等,其中能量分析攻击因效率较高,成为侧信道攻击的主要手段。
侧信道能量分析攻击是通过采集加密芯片等硬件密码电子设备在进行加、解密或签名等操作时产生的能量消耗,利用密码学和统计学原理等,分析和破译密钥信息的一种攻击方式。侧信道能量分析攻击又分为简单能量分析攻击(SimplePowerAnalysis,SPA)、差分能量分析攻击(DifferentialPowerAnalysis,DPA)和相关性能量分析攻击(CorrelationPowerAnalysis,CPA)。
在侧信道能量分析攻击中,CPA和DPA相比SPA具有更强的攻击性,所以能量分析攻击中比较常用的是CPA和DPA。其中,DPA攻击的过程如下:
(1)随机选择N组不相同明文或密文Mi(i∈[1,N])进行加/解密运算,采集每组明文进行加密运算时设备产生的能量曲线Ti(t),t∈{1,2,…,k},其中k为能量轨迹的采样点数;
(2)选择密钥Kζ(ζ∈Ω,Ω为密钥空间),计算在Kζ和Mi条件下,密码算法进行加密运算时在被攻击点产生的中间值Di,ζ;
(3)根据中间值Di,ζ确定选择函数F(Mi,Kζ),根据选择函数将Ti(t)分为两个子集S0和S1,定义式如下:
S0={Ti(t)∣F(Mi,Kζ)=0};
S1={Ti(t)∣F(Mi,Kζ)=1};
(4)计算每个采样点上两个子集的能量平均之差,如
所示,其中|S0|和|S1|分别表示集合S0和S1中元素的个数;
若Kζ选择不正确,当N比较大时,两个子集均值差S将趋近于零;若Kζ选择正确,在均值差S中将会出现一个最大尖峰,通过该尖峰即可确定Kζ选择正确。
CPA攻击的过程如下:
(1)随机选择N组不相同明文或密文Mi(i∈[1,N])进行加/解密运算,采集每组明文进行加密运算时设备产生的能量曲线Ti(t),t∈{1,2,…,k},其中k为能量轨迹的采样点数;
(2)选择密钥Kζ(ζ∈Ω,Ω为密钥空间),计算在Kζ和Mi条件下,密码算法进行加密运算时在被攻击点产生的中间值Di,ζ;
(3)取中间值Di,ζ的汉明距离或者汉明重量建立能量模型hi,ζ,根据式计算Ti(t)和hi,ζ的相关性ρi;
(4)取相关系数最大值时对应的Kζ,即为实际密钥。
侧信道能量分析攻击技术的不发展对侧信道的防御技术提出了新挑战,其中掩码防御是抵抗侧信道能量分析攻击的一种重要手段。掩码防护根据掩码值是否随机又分为固定掩码和随机掩码,根据重用情况又可分为横向重用型掩码、纵向重用型掩码和非重用型掩码。根据掩码运算方式的不同又可分为乘法掩码、加法掩码,以及在布尔和算数掩码之间转换的方法等。
掩码的目标是使每一个中间值在计算过程中始终处于被掩码状态,这样可以使计算过程中难于猜测到中间值而抵抗一阶侧信道能量分析攻击。在理想的掩码算法中,需要保证每个中间值具有不同的掩码。虽然一阶掩码可以抵抗一阶能量分析,但不能抵抗二阶能量分析,而二阶掩码不能抵抗三阶能量分析,尽管理论上掩码阶数越高越好,但在实际的应用中,需要考虑掩码引入所带来的额外开销,所以目前常用的掩码为一阶掩码。常见的SM4掩码方案包括S盒输入输出中间值掩码相同/不同;每一轮4个S盒的输入中间值相同/不同;每一轮4个S盒的输出中间值相同/不同;轮输入中间值相同/不同。
高阶二阶相关性能量攻击是针对于一阶掩码防御算法的又一种攻击手段,其攻击思想为利用联合泄露,该联合泄露依赖于密码设备所处理的与同一个掩码相关的两个中间值。针对掩码为布尔异或掩码的算法,所选取的两个中间值um,vm需满足:1)um=u⊕m且vm=v⊕m,其中u,v均为掩码为0时的中间值,m为掩码;2)um,vm中至少有一个与密钥k的一部分有关;3)两个中间值um,vm的组合中间值um⊕vm与掩码无关。
SM4算法是分组长度和密钥长度均为128bit,加密算法和解密算法均为32轮的非线性迭代密码算法,其加密算法和解密算法结构相同,只是运算时轮密钥使用的顺序相反,解密轮密钥是加密轮密钥的逆序。SM4加密算法的详细流程如图1所示。
在图1中Xi∈Z2 32(Z2 e表示e比特的向量集),明文输入为(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∈Z2 32,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),MKi∈Z2 32,i=0,1,2,3;令Ki∈Z2 32,i=0,1,2,…,35,轮密钥rki∈Z2 32,i=0,1,2,…,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=0,1,2,3)的取值,采用16进制表示为:
FK0=A3B1BAC6,FK1=56AA3350,FK2=677D9197,FK3=B27022DC
固定参数CK的取值方法为设cki,j为CKi的第j字节(i=0,1,2,…,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⊕rk2⊕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⊕CK28)(12)
由(9)、(10)、(11)和(12)式子,得到K32、K33、K34和K35,i取31到0,计算Ki=Ki+4⊕T(Ki+1⊕Ki+2⊕Ki+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。
目前,也有选择轮函数的输出作为攻击对象的能量分析方法,即以轮函数输出vi,j k=(L-1(Xi+4 k))j=(L-1(Xi k))j⊕τ(Xi+1,j k⊕Xi+2,j k⊕Xi+3,j k⊕rki,j)实施侧信道能量分析攻击,其中vi,j k是输入第k组明文或密文时,第i轮轮密钥第j个字节的攻击对象,i∈{0,1,2,3},j∈{0,1,2,3},L-1(X)是对L(X)的逆运算。而此攻击对象的计算方法:vi,j k=(L-1(Xi+4 k))j=(L-1(Xi k))j⊕τ(Xi+1,j k⊕Xi+2,j k⊕Xi+3,j k⊕rki,j),决定了在对SM4密码算法实施CPA或DPA侧信道能量分析攻击时,只能是按照字节的倍数进行攻击,而不能以轮函数输出的任意比特例如单比特进行CPA或DPA侧信道能量分析攻击。
目前,为了抵抗DPA/CPA攻击,采用掩码防护措施的SM4掩码算法应用越来越多,但是,虽然目前有针对掩码二阶分析的方法提出,但都是从时域上进行的二阶分析,目前尚未有从频域上进行二阶侧信道分析的相关方法提出,因此,提出频域上的二阶侧信道分析方法,对于二阶能量分析技术的完善和发展具有重要意义。
发明内容
本发明的目的是提供一种针对SM4一阶掩码算法的二阶频域能量分析攻击的方法,特别是针对S盒输入输出中间值掩码值相同的SM4密码算法实现了二阶频域侧信道能量分析方法。本方法首次提出了二阶能量分析的频域分析方法,频域分析较时域分析在曲线对齐问题上有较好的效果。
实现上述发明的技术方案为,一种针对SM4一阶掩码算法的二阶频域能量分析攻击的方法,具体包括以下步骤:
S1:采集功耗曲线,建立能量消耗矩阵;
S2:将S1的时域功耗转换到频域;
S3:猜测轮子密钥字节,计算组合中间值,将组合中间值映射为假设能量消耗矩阵;
S4:选择S盒的输入输出异或Sin_Xor_Sout作为攻击点,对功率谱矩阵进行CPA攻击;
S5:重复S2、S3、S4过程分别获得一轮的4个S盒的子密钥得到轮密钥;
S6:对前/后4轮进行步骤S2、S3、S4、S5操作获得4轮的子密钥,通过密钥逆扩展获得初始密钥。
S1具体包括以下步骤:
随机选择组明文(密文),通过密码设备进行加密(解密)操作,采集密码设备的能量消耗曲线,将N条功耗曲线存为矩阵,第n次加/解密,对应t时刻的能量消耗记为en t,n∈{1,2,…,N},t∈{1,2,…,T}。
S2具体包括以下步骤:
在N条能量迹上选取包含S盒输入输出部分关键点信息的能量迹,记为,且集合{a,a+1,…,b}包含于集合{1,2,…,T},a,b∈N+,Tˊ=b-a+1,对Eˊ(N*Tˊ)进行傅里叶变换将时域信号转换到频域,记为E(ω)=FFT(Eˊ(N*Tˊ)),对E(ω)求功率谱矩阵,记为。
S3具体包括以下步骤:
猜测轮子密钥字节,每一组明文/密文下针对一个S盒密钥猜测28次密钥,此时S盒输入中间值矩阵为、S盒输出的中间值矩阵,组合中间值为,Sn i=SINn i⊕SOUTn i。采用汉明重量模型将组合中间值矩阵S(N*28)映射为假设能量消耗矩阵,所求假设能量消耗矩阵记为,hn i=HW(Sn i)。
S4具体包括以下步骤:
选择S盒的输入输出异或Sin_Xor_Sout作为攻击点,对功率谱矩阵进行CPA攻击的步骤包括:对假设能量消耗矩阵H(N*256)的每一列hi和所处理后得到的功率谱矩阵Ep的每一列Pi计算皮尔逊相关系数,得到的矩阵大小为Tˊ*256的相关系数矩阵。对ρt i的值进行判断,找出相关系数矩阵ρT’*256中的最大值,最大值对应的猜测密钥即为正确密钥。
S5具体包括以下步骤:
重复S2、S3、S4过程由于一轮SM4密码运算中包含4个S盒运算,所以需要重复攻击一轮中的4个不同S盒才能够获得4个字节的轮密钥。
S6具体包括以下步骤:
对前/后4轮进行步骤S2、S3、S4、S5操作获得4轮的子密钥的方法应用于:加密/解密运算已知明文/密文攻击前4轮,已知密文/明文攻击后4轮;最后通过密钥逆扩展获得初始密钥。
本发明的技术方案具有以下优点:
当前对具有掩码防护措施的SM4密码算法没有从频域分析的具体攻击方法。本发明对对S盒输入输出中间掩码值相同的SM4密码算法创新地提出了频域的二阶能量分析方法,扩展了对SM4密码算法攻击的研究手段,使用本方法能够更高效地对SM4密码算法实现二阶能量分析;本发明提出的方法在曲线对齐问题上具有更好的对齐效果。
附图说明
图1为SM4加密算法流程图。
图2为迭代函数F的流程图。
图3为S盒输入输出掩码值相同的防御方案。
图4为S盒输入输出掩码值相同的SM4算法的攻击点。
图5为针对SM4一阶掩码算法的二阶频域相关性能量分析攻击的流程图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
针对SM4一阶掩码算法的二阶能量分析攻击的方法,适用于S盒输入输出中间值相同的SM4密码算法,但不局限于SM4密码算法S盒输入输出中间值相同的密码算法,对于具备S盒输入输出中间值相同的其他密码算法S盒具有同样的攻击效果。本实施以针对S盒输入输出中间值相同的SM4加密算法,其二阶频域攻击方法包括以下步骤:
S1:采集功耗曲线,建立能量消耗矩阵;
S2:将S1的时域功耗转换到频域;
S3:猜测轮子密钥字节,计算组合中间值,将组合中间值映射为假设能量消耗矩阵;
S4:选择S盒的输入输出异或Sin_Xor_Sout作为攻击点,对功率谱矩阵进行CPA攻击;
S5:重复S2、S3、S4过程分别获得一轮的4个S盒的子密钥得到轮密钥;
S6:对前/后4轮进行步骤S2、S3、S4、S5操作获得4轮的子密钥,通过密钥逆扩展获得初始密钥。
其中,S1具体包括以下步骤:
随机选择N组明文(密文),通过密码设备进行加密(解密)操作,采集密码设备的能量消耗曲线,将N条功耗曲线存为矩阵,第n次加/解密,对应t时刻的能量消耗记为en t,n∈{1,2,…,N},t∈{1,2,…,T}。
S2具体包括以下步骤:
已知加密明文/解密密文情况下,选取N组能量迹上第一轮的第m个包含S盒输入和S盒输出两个关键点信息的能量迹;已知加密密文/解密明文情况下,选取N组能量迹上第32轮的第m个包含S盒输入和S盒输出两个关键点信息的能量迹,m∈{1,2,3,4},记选取的能量迹矩阵为,且集合{a,a+1,…,b}包含于集合{1,2,…,T},a,b∈N+,Tˊ=b-a+1,对Eˊ(N*Tˊ)进行傅里叶变换将时域信号转换到频域,记为E(ω)=FFT(Eˊ(N*Tˊ)),对E(ω)求功率谱矩阵,记为。
S3具体包括以下步骤:
猜测S2中所选取S盒的轮子密钥字节,每一组明文/密文下针对一个S盒密钥猜测28次密钥,此时S盒输入中间值矩阵为、S盒输出的中间值矩阵,组合中间值为,Sn i=SINn i⊕SOUTn i。采用汉明重量模型将组合中间值矩阵S(N*28)映射为假设能量消耗矩阵,所求假设能量消耗矩阵记为,hn i=HW(Sn i)。
S4具体包括以下步骤:
选择S盒的输入输出异或Sin_Xor_Sout作为攻击点,对功率谱矩阵进行CPA攻击的步骤包括:对假设能量消耗矩阵H(N*256)的每一列hi和所处理后得到的功率谱矩阵Ep的每一列Pi计算皮尔逊相关系数,得到的矩阵大小为Tˊ*256的相关系数矩阵。对ρt i的值进行判断,找出相关系数矩阵ρT’*256中的最大值,若最大值为ρt d则正确猜测密钥为d。
S5具体包括以下步骤:
已知加密明文/解密密文情况下,重复S2、S3、S4过程分析第1轮的4个S盒,即m取1到4,得到第一轮轮密钥rk0;已知加密密文/解密明文情况下重复S2、S3、S4过程,分析第32轮的4个S盒,得到第32轮轮密钥rk31。
S6具体包括以下步骤:
对于已知加密明文/解密密文的攻击前4轮,在S5中分析出第一轮轮密钥rk0后,重复步骤S2、S3、S4、S5,依次获得rk1,rk2,rk3;对于已知加密密文/解密明文的攻击后4轮,在S5中分析出第一轮轮密钥rk31后,重复步骤S2、S3、S4、S5,依次获得rk30,rk29,rk28,最后通过密钥逆扩展获得初始密钥。
Claims (7)
1.针对SM4一阶掩码算法的二阶频域能量分析攻击的方法,其特征在于,所述方法包括以下步骤:
S1:采集功耗曲线,建立能量消耗矩阵;
S2:将S1的时域功耗转换到频域;
S3:猜测轮子密钥字节,计算组合中间值,将组合中间值映射为假设能量消耗矩阵;
S4:选择S盒的输入输出异或Sin_Xor_Sout作为攻击点,对功率谱矩阵进行CPA攻击;
S5:重复S2、S3、S4过程分别获得一轮的4个S盒的子密钥得到轮密钥;
S6:对前/后4轮进行步骤S2、S3、S4、S5操作获得4轮的子密钥,通过密钥逆扩展获得初始密钥。
2.根据权利要求1所述的针对SM4一阶掩码算法的二阶频域能量分析攻击的方法,其特征在于,所述S1具体过程为:随机选择N组明文(密文),通过密码设备进行加密(解密)操作,采集密码设备的能量消耗曲线,将N条功耗曲线存为矩阵,第n次加/解密,对应t时刻的能量消耗记为en t,n∈{1,2,…,N},t∈{1,2,…,T}。
3.根据权利要求1所述的针对SM4一阶掩码算法的二阶频域能量分析攻击的方法,其特征在于,所述S2中将S1的时域功耗转换到频域为选取一个S盒运算部分转换到频域,所述S2具体过程为:在N条能量迹上选取包含S盒输入输出部分关键点信息的能量迹,记为,且集合{a,a+1,…,b}包含于集合{1,2,…,T},a,b∈N+,Tˊ=b-a+1,对Eˊ(N*Tˊ)进行傅里叶变换将时域信号转换到频域,记为E(ω)=FFT(Eˊ(N*Tˊ)),对E(ω)求功率谱矩阵,记为。
4.根据权利要求1所述的针对SM4一阶掩码算法的二阶频域能量分析攻击的方法,其特征在于,所述S3中猜测轮子密钥字节,每一组明文/密文下针对一个S盒密钥猜测28次密钥,此时S盒输入中间值矩阵为、S盒输出的中间值矩阵为,组合中间值为,Sn i=SINn i⊕SOUTn i,采用汉明重量模型将组合中间值矩阵S(N*28)映射为假设能量消耗矩阵,所求假设能量消耗矩阵记为,hn i=HW(Sn i)。
5.根据权利要求1所述的针对SM4一阶掩码算法的二阶频域能量分析攻击的方法,其特征在于,所述S4选择S盒的输入输出异或Sin_Xor_Sout作为攻击点,对功率谱矩阵进行CPA攻击的步骤包括:对假设能量消耗矩阵H(N*256)的每一列hi和所处理后得到的功率谱矩阵Ep的每一列Pi计算皮尔逊相关系数,得到的矩阵大小为Tˊ*256的相关系数矩阵,对ρt i的值进行判断,找出相关系数矩阵ρTˊ*256中的最大值,最大值对应的猜测密钥即为正确密钥。
6.根据权利要求1所述的针对SM4一阶掩码算法的二阶频域能量分析攻击的方法,其特征在于,所述S5重复S2、S3、S4过程,由于一轮SM4密码运算中包含4个S盒运算,所以需要重复攻击一轮中的4个不同S盒才能够获得4个字节的轮密钥。
7.根据权利要求1所述的针对SM4一阶掩码算法的二阶频域能量分析攻击的方法,其特征在于,所述S6中的对前/后4轮进行步骤S2、S3、S4、S5操作获得4轮的子密钥的方法应用于加密/解密运算已知明文/密文攻击的前4轮,已知密文/明文攻击的后4轮,最后通过密钥逆扩展获得初始密钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510889203.5A CN105553638A (zh) | 2015-12-07 | 2015-12-07 | 针对sm4一阶掩码算法的二阶频域能量分析攻击 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510889203.5A CN105553638A (zh) | 2015-12-07 | 2015-12-07 | 针对sm4一阶掩码算法的二阶频域能量分析攻击 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105553638A true CN105553638A (zh) | 2016-05-04 |
Family
ID=55832586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510889203.5A Pending CN105553638A (zh) | 2015-12-07 | 2015-12-07 | 针对sm4一阶掩码算法的二阶频域能量分析攻击 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105553638A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106936822A (zh) * | 2017-03-08 | 2017-07-07 | 上海观源信息科技有限公司 | 针对sms4抗高阶旁路分析的掩码实现方法及系统 |
CN107103229A (zh) * | 2016-02-22 | 2017-08-29 | 埃沙尔公司 | 测试电路对二阶或更高阶侧信道分析的抵抗力的方法 |
CN107623566A (zh) * | 2016-07-15 | 2018-01-23 | 青岛博文广成信息安全技术有限公司 | 基于非线性变换的sm4白盒算法 |
CN109218008A (zh) * | 2017-07-05 | 2019-01-15 | 北京同方微电子有限公司 | 一种针对sm4密钥扩展算法的模板攻击方法 |
CN109347636A (zh) * | 2018-12-05 | 2019-02-15 | 中国信息通信研究院 | 一种密钥恢复方法、系统、计算机设备及可读介质 |
CN109428707A (zh) * | 2017-08-21 | 2019-03-05 | 埃沙尔公司 | 测试电路对侧信道分析的抵抗的方法 |
CN110197076A (zh) * | 2019-05-22 | 2019-09-03 | 北京航空航天大学 | 一种sm4加密算法的软件优化实现方法 |
CN111030820A (zh) * | 2019-12-17 | 2020-04-17 | 成都三零嘉微电子有限公司 | 一种基于掩码sm4算法的选择明文相关碰撞攻击方法 |
CN111082921A (zh) * | 2019-12-30 | 2020-04-28 | 北京智慧云测科技有限公司 | 密码芯片通过一阶泄露模型改进二阶功耗分析的方法 |
CN112564885A (zh) * | 2020-11-26 | 2021-03-26 | 南京农业大学 | 基于掩码变量最大概率密度函数分布的侧信道攻击方法 |
CN113438067A (zh) * | 2021-05-30 | 2021-09-24 | 衡阳师范学院 | 一种压缩密钥猜测空间的侧信道攻击方法 |
CN113660082A (zh) * | 2021-07-07 | 2021-11-16 | 黑龙江大学 | 一种基于fpga的抗cpa的sm4混沌遮掩方法 |
CN113949500A (zh) * | 2020-07-16 | 2022-01-18 | 成都芯安尤里卡信息科技有限公司 | 一种针对sm4二阶能量分析攻击方法 |
CN115499832A (zh) * | 2022-11-14 | 2022-12-20 | 济南职业学院 | 一种工业无线通信安全方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103166752A (zh) * | 2013-01-25 | 2013-06-19 | 国家密码管理局商用密码检测中心 | 选择轮函数为攻击对象进行sm4密码算法侧信道能量分析的应用 |
CN103647637A (zh) * | 2013-11-19 | 2014-03-19 | 国家密码管理局商用密码检测中心 | 一种对简单掩码的sm4算法进行二阶侧信道能量分析方法 |
CN103825722A (zh) * | 2013-11-19 | 2014-05-28 | 国家密码管理局商用密码检测中心 | 一种sm4密码算法的二阶侧信道能量分析方法 |
CN104052590A (zh) * | 2014-05-05 | 2014-09-17 | 清华大学 | 基于侧信道相关能量分析的频域分析方法 |
CN104202145A (zh) * | 2014-09-04 | 2014-12-10 | 成都信息工程学院 | 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法 |
-
2015
- 2015-12-07 CN CN201510889203.5A patent/CN105553638A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103166752A (zh) * | 2013-01-25 | 2013-06-19 | 国家密码管理局商用密码检测中心 | 选择轮函数为攻击对象进行sm4密码算法侧信道能量分析的应用 |
CN103647637A (zh) * | 2013-11-19 | 2014-03-19 | 国家密码管理局商用密码检测中心 | 一种对简单掩码的sm4算法进行二阶侧信道能量分析方法 |
CN103825722A (zh) * | 2013-11-19 | 2014-05-28 | 国家密码管理局商用密码检测中心 | 一种sm4密码算法的二阶侧信道能量分析方法 |
CN104052590A (zh) * | 2014-05-05 | 2014-09-17 | 清华大学 | 基于侧信道相关能量分析的频域分析方法 |
CN104202145A (zh) * | 2014-09-04 | 2014-12-10 | 成都信息工程学院 | 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法 |
Non-Patent Citations (2)
Title |
---|
WEIJUN SHAN ET AL: "A Chosen-Plaintext Method of CPA on SM4 Block Cipher", 《2014 TENTH INTERNATIONAL CONFERENCE ON COMPUTATIONAL INTELLIGENCE AND SECURITY》 * |
王敏等: "SM4密码算法的频域能量分析", 《信息网络安全》 * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107103229A (zh) * | 2016-02-22 | 2017-08-29 | 埃沙尔公司 | 测试电路对二阶或更高阶侧信道分析的抵抗力的方法 |
CN107623566A (zh) * | 2016-07-15 | 2018-01-23 | 青岛博文广成信息安全技术有限公司 | 基于非线性变换的sm4白盒算法 |
CN107623566B (zh) * | 2016-07-15 | 2022-09-06 | 青岛博文广成信息安全技术有限公司 | 基于非线性变换的sm4白盒实现方法 |
CN106936822A (zh) * | 2017-03-08 | 2017-07-07 | 上海观源信息科技有限公司 | 针对sms4抗高阶旁路分析的掩码实现方法及系统 |
CN106936822B (zh) * | 2017-03-08 | 2020-03-17 | 上海观源信息科技有限公司 | 针对sms4抗高阶旁路分析的掩码实现方法及系统 |
CN109218008A (zh) * | 2017-07-05 | 2019-01-15 | 北京同方微电子有限公司 | 一种针对sm4密钥扩展算法的模板攻击方法 |
CN109218008B (zh) * | 2017-07-05 | 2023-12-19 | 紫光同芯微电子有限公司 | 一种针对sm4密钥扩展算法的模板攻击方法 |
CN109428707A (zh) * | 2017-08-21 | 2019-03-05 | 埃沙尔公司 | 测试电路对侧信道分析的抵抗的方法 |
CN109347636A (zh) * | 2018-12-05 | 2019-02-15 | 中国信息通信研究院 | 一种密钥恢复方法、系统、计算机设备及可读介质 |
CN109347636B (zh) * | 2018-12-05 | 2021-09-24 | 中国信息通信研究院 | 一种密钥恢复方法、系统、计算机设备及可读介质 |
CN110197076A (zh) * | 2019-05-22 | 2019-09-03 | 北京航空航天大学 | 一种sm4加密算法的软件优化实现方法 |
CN111030820A (zh) * | 2019-12-17 | 2020-04-17 | 成都三零嘉微电子有限公司 | 一种基于掩码sm4算法的选择明文相关碰撞攻击方法 |
CN111030820B (zh) * | 2019-12-17 | 2023-12-19 | 成都三零嘉微电子有限公司 | 一种基于掩码sm4算法的选择明文相关碰撞攻击方法 |
CN111082921A (zh) * | 2019-12-30 | 2020-04-28 | 北京智慧云测科技有限公司 | 密码芯片通过一阶泄露模型改进二阶功耗分析的方法 |
CN111082921B (zh) * | 2019-12-30 | 2023-06-02 | 北京智慧云测科技有限公司 | 密码芯片通过一阶泄露模型改进二阶功耗分析的方法 |
CN113949500A (zh) * | 2020-07-16 | 2022-01-18 | 成都芯安尤里卡信息科技有限公司 | 一种针对sm4二阶能量分析攻击方法 |
CN112564885A (zh) * | 2020-11-26 | 2021-03-26 | 南京农业大学 | 基于掩码变量最大概率密度函数分布的侧信道攻击方法 |
CN112564885B (zh) * | 2020-11-26 | 2022-07-12 | 南京农业大学 | 基于掩码变量最大概率密度函数分布的侧信道测试分析方法 |
CN113438067A (zh) * | 2021-05-30 | 2021-09-24 | 衡阳师范学院 | 一种压缩密钥猜测空间的侧信道攻击方法 |
CN113660082B (zh) * | 2021-07-07 | 2023-10-31 | 黑龙江大学 | 一种基于fpga的抗cpa的sm4混沌遮掩方法 |
CN113660082A (zh) * | 2021-07-07 | 2021-11-16 | 黑龙江大学 | 一种基于fpga的抗cpa的sm4混沌遮掩方法 |
CN115499832A (zh) * | 2022-11-14 | 2022-12-20 | 济南职业学院 | 一种工业无线通信安全方法 |
CN115499832B (zh) * | 2022-11-14 | 2023-01-17 | 济南职业学院 | 一种工业无线通信安全方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105553638A (zh) | 针对sm4一阶掩码算法的二阶频域能量分析攻击 | |
CN106788974B (zh) | 掩码s盒、分组密钥计算单元、装置及对应的构造方法 | |
CN104202145B (zh) | 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法 | |
Saha et al. | RK-AES: an improved version of AES using a new key generation process with random keys | |
US8369516B2 (en) | Encryption apparatus having common key encryption function and embedded apparatus | |
Li et al. | Differential fault analysis on the ARIA algorithm | |
Ding et al. | A statistical model for higher order DPA on masked devices | |
JP2002366029A (ja) | Dpaに対して安全な暗号化 | |
CN103647637A (zh) | 一种对简单掩码的sm4算法进行二阶侧信道能量分析方法 | |
CN104753665B (zh) | 一种针对sm4密码轮函数输出的侧信道能量攻击方法 | |
Park et al. | Differential Fault Analysis for Round‐Reduced AES by Fault Injection | |
CN103825722A (zh) | 一种sm4密码算法的二阶侧信道能量分析方法 | |
Nara et al. | A scan-based attack based on discriminators for AES cryptosystems | |
Razaq et al. | A novel technique for the construction of safe substitution boxes based on cyclic and symmetric groups | |
CN104301095A (zh) | Des轮运算方法和电路 | |
CN103427980A (zh) | 一种基于双矩阵变换的ofdm系统物理层安全算法 | |
Li et al. | Impossible differential fault analysis on the LED lightweight cryptosystem in the vehicular ad-hoc networks | |
CN104753668B (zh) | 一种针对sm4密码线性变换输出的侧信道能量攻击方法 | |
Li et al. | Differential fault analysis on Camellia | |
Chou et al. | A high performance, low energy, compact masked 128-bit AES in 22nm CMOS technology | |
Riyadi et al. | The Dynamic Symmetric Four-Key-Generators System for Securing Data Transmission in the Industrial Control System. | |
Li et al. | Single byte differential fault analysis on the LED lightweight cipher in the wireless sensor network | |
CN105162580A (zh) | 基于ofb模式和分组密码vh的轻量级流密码技术vho | |
Ha et al. | Differential power analysis on block cipher ARIA | |
Bae et al. | Differential fault analysis on AES by round reduction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160504 |
|
WD01 | Invention patent application deemed withdrawn after publication |