CN103647637B - 一种对简单掩码的sm4算法进行二阶侧信道能量分析方法 - Google Patents
一种对简单掩码的sm4算法进行二阶侧信道能量分析方法 Download PDFInfo
- Publication number
- CN103647637B CN103647637B CN201310578840.1A CN201310578840A CN103647637B CN 103647637 B CN103647637 B CN 103647637B CN 201310578840 A CN201310578840 A CN 201310578840A CN 103647637 B CN103647637 B CN 103647637B
- Authority
- CN
- China
- Prior art keywords
- energy
- algorithm
- matrix
- mask
- value
- 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.)
- Active
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种对简单掩码的SM4算法进行二阶侧信道能量分析方法,该方法针对4个S盒输出所带掩码值相同的SM4算法掩码防护实现进行如下步骤:(1)采集能量迹,建立采样能量消耗矩阵;(2)对上步能量消耗矩阵进行预处理;(3)选择攻击点进行CPA或DPA分析,获得rki,0;(4)重新选择S盒运算部分,按照步骤(2)、(3)分析获得rki,u;(5)对前/后4轮进行步骤(2)(3)(4)获得轮密钥通过密钥逆扩展运算获得初始密钥。本发明的技术方案创新地提出了新的二阶能量分析方法,开拓了SM4密码算法攻击的新局面,扩展了对SM4算法的侧信道能量分析手段,能够更全面有效地对SM4密码算法进行侧信道能量分析;本技术方案的方法是针对常见的掩码防护措施,实用性强。
Description
技术领域
本发明属于密码算法分析检测技术领域,具体来说是针对具备掩码防护措施的SM4密码算法实现二阶侧信道能量分析,特别是涉及对S盒输入输出中间掩码相同的SM4密码算法进行二阶侧信道能量分析方法。
背景技术
随着信息技术的发展,各种密码算法正被广泛地应用于经济、军事、行政等重要部门,保护信息的安全性。鉴于密码算法的重要性,密码算法软硬件实现(密码模块)的分析研究对保护信息安全具有重要的意义。近年来,多种对密码模块的攻击已广为人知,所有这些攻击的目的都是为了获取密码模块中的密钥。通常的攻击方式可分为侵入式攻击、半侵入式攻击和非侵入式攻击。近年来,由于非侵入式攻击中的侧信道分析实施方便、相对成本低廉而被广泛使用。侧信道分析可以细分为计时分析、能量分析和电磁分析。其中的侧信道能量分析是众多分析手段中最常用的方法之一,它突破了传统密码算法的分析模式,能力强大,实施相对容易。侧信道能量分析利用了密码模块能量消耗与数据运算和执行之间的相关性,基于密码算法实现的能量泄露函数建立能量模型,使用统计方法,猜测和验证密码模块使用的受保护密钥。侧信道能量分析方法一般包括,简单能量分析(SPA)、差分能量分析(DPA)、相关能量分析(CPA)和高阶差分能量分析(HODPA)。
其中,DPA原理是:对于N组明文/密文数据的加/解密运算,获取N条能量迹,这里的能量迹是指一次密码操作过程中采集到的能量消耗测量向量;对每一个猜测密钥K,产生相应的中间值(攻击对象),根据中间值确定选择函数;通过选择函数将能量迹集划分为两个子集;分别对两个子集对应的能量消耗取平均,并对两个平均能量消耗值求差,该均值差为选择函数对应的中间值对能量迹的影响效果。根据统计理论,若K猜测不正确,当能量迹的个数N趋近无穷大时,两子集的均值差将趋近于零;若K猜测正确时,在能量迹中的某个样点,将会出现一个均值差的最大尖峰(绝对值最大值),通过最大尖峰可确定正确的密钥。
CPA原理是:对于N组明文/密文数据的加/解密运算,获取N条能量迹;对每一个猜测密钥K,产生相应的中间值(攻击对象);根据中间值建立能量模型;通过能量模型将中间值映射为仿真能量消耗;计算仿真能量消耗与能量迹之间的线性相关系数,范围在[-1,1]之间;选取相关系数中绝对值的最大值,理论上为1,但是由于采集能量迹过程中不可避免存在噪声干扰,最大值小于1,该相关系数最大值对应的猜测密钥即为正确密钥。
鉴于上述针对密码算法的功耗分析攻击技术的不断发展,为应对能量分析带来的挑战,针对功耗分析攻击的防御技术也不断进步,其中,掩码技术被广泛使用,算法实现者通常会对算法实现加入随机化掩码。在掩码防御方案中,算法运算的中间值v都基于一个称为掩码的随机数m进行变换,即vm=v*m。掩码产生于密码设备内部,并且在每一次执行过程中各不相同,因此攻击者不能获知掩码。*运算通常根据密码算法所使用的额操作进行定义。因此,*运算多为布尔异或运算、模加运算或模乘运算。在模加运算和模乘运算的情况下,模数根据密码算法进行选择。通常,掩码直接应用于明文或密钥。为了能够处理掩码型中间值一级对掩码进行跟踪,需要对算法进行修改。加密的结果也是掩码型的,为了获得密文,需要在计算结束时消除掩码。
要保持每一个中间值在计算过程中始终处于被掩码状态,这一点非常重要。即使某一个中间值是基于它之前的中间值计算得到,保持上述性质仍然很重要。由于上述原因,对不同的中间值,往往需要分别采用不同的掩码。出于对实现性能的考虑,对每一个中间值采用一个新掩码并不合算。为了获得合适的性能,需要仔细选择掩码的数量。
在算法一个执行路径中叠加的掩码的数量,可以称为算法掩码防御方案的阶数,对相应阶数的掩码进行能量分析的方法,称为高阶能量能量分析。一阶掩码可以防御常规的能量分析,但不能防御二阶能量分析,二阶掩码可以防御二阶能量分析,但不能防御三阶能量分析。但考虑到防御和分析的指数递增的巨大代价,以及算法结构上可利用的能量泄露的点的限制,通常分组算法实现只能做到二阶能量分析,相应的防御措施也一般只做到二阶掩码防御。
常见的SM4掩码方案包括:S盒输入输出中间值的掩码值相同;S盒输出中间值的4字节掩码值均一致;S盒输入输出中间值的掩码值不同;S盒的输出与轮输入、输出的中间掩码值均不相同;轮输出中间值的掩码值相同;轮之间相同泄漏点的掩码值相同。
针对上述SM4掩码方案实施的侧信道分析包括二阶DPA/CPA分析、基于模板的DPA攻击。除了可能需要对能量迹进行预处理,利用中间值的个数不一样,一阶、二阶侧信道分析的原理和方法完全一致。一阶侧信道分析仅利用算法结构中的一个中间值,相应地,二阶侧信道分析利用密码设备所处理的两个中间值相关的联合泄漏。预处理即对能量迹中相关两点a,b进行组合形成新的能量消耗值,一般采用|a-b|、a×b、(a-E(a))×(b-E(b))、(a+b)2等。
SM4密码算法是我国公开发布的第一个商用密码分组算法,SM4密码算法的数据分组和密钥长度均为128比特,SM4密码算法的加密算法与密钥扩展算法都采用32轮非线性迭代结构。
SM4密码算法的结构如下:
设为加密明文,为第i轮的算法输入,为第i轮的轮密钥,轮函数F为:
F(Xi,Xi+1,Xi+2,Xi+3,rki)=Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rki) (1)
其中,T:是一个可逆变换,由非线性变换τ和线性变换L复合而成,即T(.)=L(τ(.))。
τ由4个并行的S盒构成,如图2所示,设输入为输出为则:
(b0,b1,b2,b3)=τ(A)=(Sbox(a0),Sbox(a1),Sbox(a2),Sbox(a3)) (2)
非线性变换τ的输出是线性变换L的输入。设输入为输出为则:
C=L(B)=B⊕(B<<<2)⊕(B<<<10)⊕(B<<<18)⊕(B<<<24) (3)
假设Ai为第i轮S盒的输入,Bi为第i轮S盒的输出、L移位的输入,Ci为第i轮L移位的输出。根据算法满足如下:
Ai=(Xi+1⊕Xi+2⊕Xi+3⊕rki) (4)
Bi=τ(Ai) (5)
Ci=L(Bi) (6)
Xi+4=Xi⊕Ci (7)
根据上式(4)、(5)、(6)、(7),可得第i+1轮的轮输入(Xi+1,Xi+2,Xi+3,Xi+4),依次运算32轮,即可以得到输出密文上述SM4密码算法的加密结构流程如图1所示。
SM4密码算法的密钥扩展算法与加密算法结构类似,如图2,仅线性变换L移位函数不一致。令初始加密密钥为(MK0,MK1,MK2,MK3)。
(K0,K1,K2,K3)=(MK0⊕FK0,MK1⊕FK1,MK2⊕FK2,MK3⊕FK3) (8)
其中,(FK0,FK1,FK2,FK3)为已知常量。
rki=Ki+4=Ki⊕T′(Ki+1⊕Ki+2⊕Ki+3⊕CKi)=Ki⊕L'(τ(Ki+1⊕Ki+2⊕Ki+3⊕CKi)) (9)
其中,τ函数与上述SM4密码算法加密结构中的τ函数一致,rki为第i轮的加密密钥,i=0,1,…,31,CKi为已知常量。
线性变换L'为:
L'(x)=x⊕(x<<<13)⊕(x<<<23) (10)
根据式(9),可分别获得32轮轮密钥(rk0,rk1,…,rk31),长度均为32比特。
数据解密和数据加密的算法结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。解密时,使用轮密钥序(rk31,rk30,…,rk0)。
目前,为抵抗DPA/CPA分析,采用掩码防护措施的SM4密码算法实现越来越多。但是,针对掩码的二阶能量分析还没有系统的分析方法。因此,对于有具体的掩码方案,亟需提出相应有效的二阶侧信道能量分析方法。
发明内容
为了对某些加掩码防御技术的SM4算法实现进行侧信道能量分析,本发明的技术方案提出了对SM4算法中的布尔掩码进行二阶侧信道能量分析方法,利用不同的算法中间值,可成功分析出具备相应掩码方案的SM4算法实现,获取密钥信息,特别是针对S盒输出中间掩码值相同的SM4密码算法实现了二阶侧信道能量分析。
实现上述目的本发明的技术方案为,一种对简单掩码的SM4算法进行二阶侧信道能量分析方法,该方法针对4个S盒输出所带掩码值相同的SM4算法掩码防护实现进行如下步骤:
(1)采集能量迹,进行每组明文/密文进行加密/解密运算,采集其运算时测量时间点对应的能量消耗信息,即为能量迹,建立采样能量消耗矩阵;
(2)对上步的实测的能量消耗矩阵进行预处理;
(3)对于SM4算法的第i轮加/解运算,选择第0个带掩码的S盒输出S_out'0=S_out0⊕a与第j个带掩码输出S_out'j=S_outj⊕a的异或S_XorOutj=S_out0⊕S_outj作为攻击点进行CPA或DPA分析,获得rki,0,这里a是掩码,rki,0是猜测的轮密钥;(4)重新选择S盒运算部分,按照(2)步设置第0个S盒与第u个S盒在能量迹上的时间距离范围,进行预处理获得新的能耗矩阵E'(N×T'),以S_XorOutu=S_out0⊕S_outu作为攻击点,已知rki,0的值,猜测轮密钥rki,u的28个不同值,依照上述(3)的CPA/DPA分析分别获得rki,u的正确值,u依次为1、2、3,从而得到第i轮轮密钥rki;
(5)分别对前/后4轮进行步骤(2)(3)(4)依次获得轮密钥rk0,rk1,rk2,rk3或rk31,rk30,rk29,rk28后通过密钥逆扩展运算获得初始密钥。
步骤(1)的具体过程是采集N条4个S盒输出所带掩码值相同的SM4算法的加/解密运算的能量迹,已知加密明文/解密密文Xn(n∈{1,…,N}),分析算法运算的前4轮,选择S盒运算部分,获得能耗矩阵其中,T为运算所用的时间,为第n次加/解密运算,在时刻t产生的能量消耗值。
上述能量消耗矩阵进行预处理过程如下:设置S盒输入输出体现在能量迹上的时间距离范围为min~max,其中,min和max分别为最小、最大时间点距离,range=max-min+1,对于每条能量迹,依次选择min~max范围中的u点,对应的能耗值与一一对应进行预计算,当u=min时, 当u=min+1,min+2,…,min+n,…,max时,依次按照前式计算及其中,n为已经分析的能量迹条数,从而,预处理得到新的能耗矩阵
上述步骤对于不同的明/密文输入的SM4算法第i轮加/解运算,选择第0个带掩码a的S盒输出S_out'0=S_out0⊕a与第j个的输出S_out'j=S_outj⊕a的异或S_XorOutj=S_out0⊕S_outj作为攻击点后,j∈{1,2,3},进行CPA分析过程为:分别猜测轮密钥(rki,0,rki,j)共216个不同值,代入S_XorOutj中得到相应的中间矩阵采用单bit、汉明重量模型,获得仿真能耗矩阵计算仿真能耗矩阵H与能耗矩阵E'之间的相关系数,得到相关系数矩阵其中, 为矩阵H第k列的平均值,为矩阵E'第t列的平均值,选取R中的最大值rp,q=max(rk,t),rp,q对应(rki,0,rki,j)的猜测值(p/256,p%256)即为分析得到的正确值。
上述步骤对于不同的明/密文输入的SM4算法第i轮加/解运算,选择第0个带掩码a的S盒输出S_out'0=S_out0⊕a与第j个的输出S_out'j=S_outj⊕a的异或S_XorOutj=S_out0⊕S_outj作为攻击点后,j∈{1,2,3},进行DPA分析过程为:确定DPA区分函数分别猜测S_XorOutj中的轮密钥(rki,0,rki,j)共216个不同值,代入D(Xn,rki,j,x),则区分函数为1值总个数0值总个数计算能耗平均矩阵。当进行N次加解密运算时,对于能耗矩阵E'中时间点t,得到该点两个的总能量消耗均值和其中,对应时间点t的n0组能量消耗平均值;对应时间点t的n1组能量消耗平均值,n0+n1=N;对E'中所有的时间点求能耗均值,得到两个平均能耗矩阵 计算平均能耗矩阵D0(216×T')和D1(216×T')的差,得到平均能耗差矩阵ΔD=D1-D0,选择最大的能耗均值差则对应的猜测轮密钥(rki,0,rki,j)=(m/256,m%256)为正确密钥字节。
步骤(1)~(5)的分析方法同样应用于对已知加密密文/解密明文进行分析末4轮加密的操作。
本发明的技术方案具有以下优点,本发明有如下优点:
(1)当前对具有掩码防护措施的SM4密码算法实现没有具体的攻击方法。本发明针对对S盒输入输出中间掩码值的SM4密码算法创新地提出了新的二阶能量分析方法,开拓了SM4密码算法攻击的新局面,扩展了对SM4算法的侧信道能量分析手段,使用本发明提出的新方法能够更全面有效地对SM4密码算法实现进行侧信道能量分析;(2)本发明提出的方法是针对常见的掩码防护措施,实用性强。
附图说明
图1是SM4密码算法的加密结构流程图;
图2是SM4密码算法的密钥扩展算法流程图;
图3是SM4算法的S盒输出掩码值一致防御方案;
图4是S盒输出中间掩码值相同的SM4算法攻击点;
图5是对S盒输出中间掩码值相同的SM4算法进行CPA/DPA分析流程图;
图6是采集1000组对明文加密运算的能量迹;
具体实施方式
下面对本发明的技术方案进行具体描述,以S盒输出中间掩码值相同的SM4密码算法进行CPA分析说明本发明的技术方案。
SM4算法的一阶掩码防御方法的典型实现方案如图3所示,对于SM4算法的第i轮加/解运算,S盒的输出值S_out异或了掩码值n,得到S_out'=S_out⊕n,其中n=(a,a,a,a),a为8位的随机数。新构造的S'盒为S'(Xj)=S(Xj)⊕a,j依次为0,1,2,3,xj表示32位x中的第j个字节。对于S盒输出掩码值一致的掩码方案,S_out'=S_out⊕n,分两步消去掩码,首先在后3个S盒中选取第j个(j∈{1,2,3})的输出与第0个S盒的输出进行异或消去掩码,即S_XorOutj=S_out'0⊕S_out'j=S_out0⊕a⊕S_outj⊕a=S_out0⊕S_outj=S(Xi+1,0⊕Xi+2,0⊕Xi+3,0⊕rki,0)⊕S(Xi+1,j⊕Xi+2,j⊕Xi+3,j⊕rki,j),猜测rki,0、rki,j共16位的密钥值,代入到S_XorOutj中,进行二阶DPA/CPA分析获得rki,0、rki,j的正确值;其次,利用已知的rki,0的值,将第0个S盒的输出依次与后3个S盒的输出进行异或消去掩码,即S_XorOutu=S(Xi+1,0⊕Xi+2,0⊕Xi+3,0⊕rki,0)⊕S(Xi+1,u⊕Xi+2,u⊕Xi+3,u⊕rki,u),u依次为1,2,3,进行DPA/CPA分析,可猜测8位的rki,u,依次进行二阶DPA/CPA分析获得第i轮轮密钥rki。因此,对于S盒输出掩码值相同的SM4算法实现,可将S盒输出的异或S_XorOutj,S_XorOutu作为攻击点,进行二阶侧信道能量分析。具体攻击点选择如图4所示。根据上述的分析,具体分析过程如下,如图5所示:(1)对4个S盒输出所带掩码值相同的SM4算法掩码防护实现,已知加密明文/解密密文Xn(n∈{1,…,N}),分析算法运算的前4轮,采集其运算时的能量迹,选择S盒运算部分,获得能耗矩阵其中,T为运算所用的时间,为第n次加/解密运算,在时刻t产生的能量消耗值;(2)对能耗矩阵E进行预处理,设置S盒输入输出体现在能量迹上的时间距离范围为min~max,其中,min和max分别为最小、最大时间点距离,range=max-min+1。对于每条能量迹,依次选择min~max范围中的u点,对应的能耗值与一一对应进行预计算,如当u=min时, 当u=min+1,min+2,…,min+n,…,max时,依次按照前式计算及依次类推。其中,n为已经分析的能量迹条数。从而,预处理得到新的能耗矩阵(3)对于SM4算法的第i轮加/解运算不同的明/密文输入,选择第0个S盒的输出与第j个的输出的异或S_XorOutj作为攻击点后,这里的j∈{1,2,3},分别猜测轮密钥(rki,0,rki,j)共216个不同值,代入S_XorOutj中得到相应的中间矩阵(4)采用单bit、汉明重量模型,获得仿真能耗矩阵(5)计算仿真能耗矩阵H与能耗矩阵E'之间的相关系数,得到相关系数矩阵其中, 为矩阵H第k列的平均值,为矩阵E'第t列的平均值,选取R中的最大值rp,q=max(rk,t),rp,q对应(rki,0,rki,j)的猜测值(p/256,p%256)即为分析得到的正确值;(6)重新选择S盒运算部分,按照(2)步设置第1个S盒与第u个S盒在能量迹上的时间距离范围,进行预处理获得新的能耗矩阵E'(N×T'),以S_XorOutu作为攻击点,已知rki,0的值,猜测rki,u的28个不同值,u依次为1、2、3,依照上述(3)-(5)的CPA分析获得rki的正确值;(7)分别对前4轮进行上述(2)~(6)步的分析,依次获得轮密钥rk0,rk1,rk2,rk3或rk31,rk30,rk29,rk28,通过密钥逆扩展运算获得初始密钥。
按照上述CPA分析方法,对具备S盒输入中间掩码值相同的SM4算法加密运算的第1轮进行分析。具体实施步骤如下:(1)采集1000组对明文加密运算的波形,即能量迹,如图6所示,与密码运算相对应的时间点共55个,则采样能量消耗矩阵E(1000×55);(2)设置最大时间距离max=30,最小时间距离min=15,对能耗矩阵进行预处理,得到能耗矩阵E'(1000×456);(3)选择第0个S盒的输出与第j个的输出的异或S_XorOutj作为攻击点后,这里的j∈{1,2,3},分别猜测轮密钥(rki,0,rki,j)共216个不同值,代入S_XorOutj中得到相应的中间矩阵(4)采用单bit、汉明重量模型,获得仿真能耗矩阵(5)计算仿真能耗矩阵H与能耗矩阵E'之间的相关系数,得到相关系数矩阵其中, 为矩阵H第k列的平均值,为矩阵E'第t列的平均值,选取R中的最大值rp,q=max(rk,t),rp,q对应(rki,0,rki,j)的猜测值(p/256,p%256)即为分析得到的正确值;(6)已知rk0,0,按照上述方法依次分析轮密钥的其他3个字节,得到第0轮轮密钥rk0。分析结果如表1所示,罗列了分析(rk0,0,rk0,1)的结果,以及已知rk0,0,分析其他轮密钥字节时,前4个最大的相关系数及其对应的猜测密钥字节。对于第0轮的正确轮密钥0x F1 21 86F9,正确的猜测密钥字节对应的相关系数大于其他3个错误的猜测密钥字节对应的相关系数。
表1:CPA分析结果
综上所述,对于S盒输出中间掩码值相同的SM4密码算法实现,采用二阶侧信道能量分析方法可成功分析出其正确密钥。以S盒输出中间掩码值相同的SM4密码算法进行DPA分析的过程如图5所示,其第(1)(2)步与CPA分析方法相同,在进行第(3)步选择第0个S盒的输出与第j个(j∈{1,2,3})的输出的异或S_XorOutj作为攻击点后,确定DPA区分函数分别猜测S_XorOutj中的轮密钥(rki,0,rki,j)共216个不同值,代入D(Xn,rki,j,x),则区分函数为1值总个数0值总个数(4)计算能耗平均矩阵,当进行N次加解密运算时,对于能耗矩阵E'中时间点t,得到该点两个的总能量消耗均值和其中,对应时间点t的n0组能量消耗平均值;对应时间点t的n1组能量消耗平均值,n0+n1=N,对E'中所有的时间点求能耗均值,得到两个平均能耗矩阵 (5)计算平均能耗矩阵D0(216×T')和D1(216×T')的差,得到平均能耗差矩阵ΔD=D1-D0。选择最大的能耗均值差则对应的猜测轮密钥(rki,0,rki,j)=(m/256,m%256)为正确密钥字节;(6)重新选择S盒运算部分,按照2)步设置第0个S盒与第u个S盒在能量迹上的时间距离范围,进行预处理获得新的能耗矩阵E'(N×T'),以S_XorOutu作为攻击点,已知rki,0的值,猜测rki,u的28个不同值,u依次为1、2、3,依照上述3)-5)的DPA分析获得rki的正确值;7)分别对前4轮进行上述2)~6)步的分析,依次获得轮密钥rk0,rk1,rk2,rk3或rk31,rk30,rk29,rk28,通过密钥逆扩展运算获得初始密钥。
若已知加密密文/解密明文,则分析末4轮加密操作,分析方法与前4轮完全一致。
上述技术方案仅体现了本发明技术方案的优选技术方案,本技术领域的技术人员对其中某些部分所可能做出的一些变动均体现了本发明的原理,属于本发明的保护范围之内。
Claims (6)
1.一种对简单掩码的SM4算法进行二阶侧信道能量分析方法,其特征在于,该方法针对4个S盒输出所带掩码值相同的SM4算法掩码防护实现进行如下步骤:
(1)采集运算时的能量迹,建立采样能量消耗矩阵;
(2)对上步的实测的能量消耗矩阵进行预处理;
(3)对于SM4算法的第i轮加/解密运算,选择第0个带掩码的S盒输出与第j个带掩码输出的异或作为攻击点进行CPA或DPA分析,获得rki,0,这里a是掩码,rki,0是猜测的轮密钥;(4)重新选择S盒运算部分,按照步骤(2)步设置第0个S盒与第u个S盒在能量迹上的时间距离范围,进行预处理获得新的能耗矩阵E'(N×T'),以作为攻击点,已知rki,0的值,猜测轮密钥rki,u的28个不同值,依照上述(3)的CPA/DPA分析分别获得rki,u的正确值,u依次为1、2、3,从而得到第i轮轮密钥rki;
(5)分别对前/后4轮进行步骤(2)(3)(4)依次获得轮密钥rk0,rk1,rk2,rk3或rk31,rk30,rk29,rk28后通过密钥逆扩展运算获得初始密钥。
2.根据权利要求1所述的一种对简单掩码的SM4算法进行二阶侧信道能量分析方法,其特征在于,步骤(1)的具体过程是采集N条4个S盒输出所带掩码值相同的SM4算法的加/解密运算的能量迹,已知加密明文/解密密文Xn(n∈{1,…,N}),分析算法运算的前4轮,选择S盒运算部分,获得能耗矩阵其中,T为运算所用的时间,为第n次加/解密运算,在时刻t产生的能量消耗值。
3.根据权利要求1所述的一种对简单掩码的SM4算法进行二阶侧信道能量分析方法,其特征在于,能量消耗矩阵进行预处理过程如下:设置4个S盒输出之间体现在能量迹上的时间距离范围为min~max,其中,min和max分别为最小、最大时间点距离,range=max-min+1,对于每条能量迹,依次选择min~max范围中的u点,对应的能耗值与一一对应进行预计算,当u=min时, 当u=min+1,min+2,…,min+n,…,max时,依次按照前式计算及其中,n为已经分析的能量迹条数,从而,预处理得到新的能耗矩阵
4.根据权利要求1、2或3所述的一种对简单掩码的SM4算法进行二阶侧信道能量分析方法,其特征在于,对于不同的明/密文输入的SM4算法第i轮加/解密运算,选择第0个带掩码a的S盒输出与第j个的输出的异或作为攻击点后,j∈{1,2,3},进行CPA分析过程为:分别猜测轮密钥(rki,0,rki,j)共216个不同值,代入S_XorOutj中得到相应的中间矩阵采用单bit、汉明重量模型,获得仿真能耗矩阵计算仿真能耗矩阵H与能耗矩阵E'(N×T')之间的相关系数,得到相关系数矩阵其中, 为矩阵H第k列的平均值,为矩阵E'第t列的平均值,选取R中的最大值rp,q=max(rk,t),rp,q对应(rki,0,rki,j)的猜测值(p/256,p%256)即为分析得到的正确值。
5.根据权利要求1、2或3所述的一种对简单掩码的SM4算法进行二阶侧信道能量分析方法,其特征在于,对于不同的明/密文输入的SM4算法第i轮加/解密运算,选择第0个带掩码a的S盒输出与第j个的输出的异或作为攻击点后,j∈{1,2,3},进行DPA分析过程为:确定DPA区分函数分别猜测S_XorOutj中的轮密钥(rki,0,rki,j)共216个不同值,代入D(Xn,rki,j,x),则区分函数为1值总个数0值总个数计算能耗平均矩阵,当进行N次加解密运算时,对于能耗矩阵E'(N×T')中时间点t,得到该点的两个总能量消耗均值和其中,对应时间点t的n0组能量消耗平均值;对应时间点t的n1组能量消耗平均值,n0+n1=N;对E'(N×T')中所有的时间点求能耗均值,得到两个平均能耗矩阵计算平均能耗矩阵D0(216×T')和D1(216×T')的差,得到平均能耗差矩阵ΔD=D1-D0,选择最大的能耗均值差则对应的猜测轮密钥(rki,0,rki,j)=(m/256,m%256)为正确密钥字节。
6.根据权利要求1所述的一种对简单掩码的SM4算法进行二阶侧信道能量分析方法,其特征在于,步骤(1)~(5)分析方法应用于对已知加密密文/解密明文进行分析末4轮加密的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310578840.1A CN103647637B (zh) | 2013-11-19 | 2013-11-19 | 一种对简单掩码的sm4算法进行二阶侧信道能量分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310578840.1A CN103647637B (zh) | 2013-11-19 | 2013-11-19 | 一种对简单掩码的sm4算法进行二阶侧信道能量分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103647637A CN103647637A (zh) | 2014-03-19 |
CN103647637B true CN103647637B (zh) | 2017-01-04 |
Family
ID=50252800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310578840.1A Active CN103647637B (zh) | 2013-11-19 | 2013-11-19 | 一种对简单掩码的sm4算法进行二阶侧信道能量分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103647637B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104333447B (zh) * | 2014-11-26 | 2017-10-10 | 上海爱信诺航芯电子科技有限公司 | 一种可抵御能量分析攻击的sm4方法 |
CN105809063B (zh) * | 2014-12-29 | 2019-01-15 | 联想(北京)有限公司 | 一种数据处理方法及安全芯片装置 |
CN104717054B (zh) * | 2015-02-12 | 2017-11-14 | 中国科学院信息工程研究所 | 一种密码实现侧信道安全性快速检测方法 |
CN106161002A (zh) * | 2015-04-01 | 2016-11-23 | 上海华虹集成电路有限责任公司 | 一种sm4密码电路抵抗侧信道分析的方法 |
CN104811295A (zh) * | 2015-05-05 | 2015-07-29 | 国家密码管理局商用密码检测中心 | 一种对具备掩码防护的祖冲之密码算法进行侧信道能量分析方法 |
CN106330443B (zh) * | 2015-06-17 | 2019-11-05 | 上海复旦微电子集团股份有限公司 | 一种基于sm3算法的密码模块的防攻击方法及装置 |
CN105553638A (zh) * | 2015-12-07 | 2016-05-04 | 成都芯安尤里卡信息科技有限公司 | 针对sm4一阶掩码算法的二阶频域能量分析攻击 |
CN105721150B (zh) * | 2016-01-26 | 2018-11-20 | 广东技术师范学院 | 一种多变量二次方程的掩码加密方法 |
CN105743644B (zh) * | 2016-01-26 | 2019-02-05 | 广东技术师范学院 | 一种多变量二次方程的掩码加密装置 |
CN106712926B (zh) * | 2016-11-21 | 2019-05-31 | 中国信息安全测评中心 | 信号处理方法及装置 |
CN106936822B (zh) * | 2017-03-08 | 2020-03-17 | 上海观源信息科技有限公司 | 针对sms4抗高阶旁路分析的掩码实现方法及系统 |
CN110197076B (zh) * | 2019-05-22 | 2021-03-26 | 北京航空航天大学 | 一种sm4加密算法的软件优化实现方法 |
CN111030820B (zh) * | 2019-12-17 | 2023-12-19 | 成都三零嘉微电子有限公司 | 一种基于掩码sm4算法的选择明文相关碰撞攻击方法 |
CN111339577B (zh) * | 2020-02-12 | 2022-06-07 | 南京师范大学 | 一种具有优良dpa抗性s盒的构造方法 |
CN111614459B (zh) * | 2020-05-29 | 2021-08-06 | 上海交通大学 | 针对ble密钥协商协议的侧信道分析方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101034978A (zh) * | 2006-03-07 | 2007-09-12 | 捷讯研究有限公司 | 用于密码过程的表分裂 |
CN103138917A (zh) * | 2013-01-25 | 2013-06-05 | 国家密码管理局商用密码检测中心 | 以s盒输入为基础的汉明距离模型在sm4密码算法侧信道能量分析的应用 |
CN103166752A (zh) * | 2013-01-25 | 2013-06-19 | 国家密码管理局商用密码检测中心 | 选择轮函数为攻击对象进行sm4密码算法侧信道能量分析的应用 |
CN103199983A (zh) * | 2013-01-31 | 2013-07-10 | 国家密码管理局商用密码检测中心 | 侧信道能量分析中的n阶局域能量模型及其应用 |
CN103227717A (zh) * | 2013-01-25 | 2013-07-31 | 国家密码管理局商用密码检测中心 | 选择轮密钥异或输入进行sm4密码算法侧信道能量分析的应用 |
-
2013
- 2013-11-19 CN CN201310578840.1A patent/CN103647637B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101034978A (zh) * | 2006-03-07 | 2007-09-12 | 捷讯研究有限公司 | 用于密码过程的表分裂 |
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密码算法侧信道能量分析的应用 |
CN103199983A (zh) * | 2013-01-31 | 2013-07-10 | 国家密码管理局商用密码检测中心 | 侧信道能量分析中的n阶局域能量模型及其应用 |
Non-Patent Citations (1)
Title |
---|
分组密码算法SM4的低复杂度实现;王晨光 等;《计算机工程》;20130715;第39卷(第7期);第177-180页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103647637A (zh) | 2014-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103647637B (zh) | 一种对简单掩码的sm4算法进行二阶侧信道能量分析方法 | |
CN103825722B (zh) | 一种sm4密码算法的二阶侧信道能量分析方法 | |
CN103227717B (zh) | 选择轮密钥异或输入进行sm4密码算法侧信道能量分析的方法 | |
CN103138917B (zh) | 以s盒输入为基础的汉明距离模型进行sm4密码算法侧信道能量分析方法 | |
CN103166752B (zh) | 选择轮函数为攻击对象进行sm4密码算法侧信道能量分析的应用 | |
CN103457719B (zh) | 一种对sm3密码算法hmac模式的侧信道能量分析方法 | |
CN104753665B (zh) | 一种针对sm4密码轮函数输出的侧信道能量攻击方法 | |
CN104836666A (zh) | 一种针对sm2解密算法的能量分析攻击的方法 | |
Zhao et al. | MDASCA: an enhanced algebraic side-channel attack for error tolerance and new leakage model exploitation | |
CN105553638A (zh) | 针对sm4一阶掩码算法的二阶频域能量分析攻击 | |
CN104618094B (zh) | 一种增强抗攻击能力的密码Mask方法 | |
CN105933108B (zh) | 一种对sm4算法实现破解的方法 | |
CN104301095A (zh) | Des轮运算方法和电路 | |
CN103916236A (zh) | 面向aes算法的抗功耗攻击方法及电路实现 | |
CN107204841A (zh) | 一种抵御差分功耗攻击的分组密码多s盒实现的方法 | |
CN103259647A (zh) | 加密系统边信道攻击测试方法 | |
Hu et al. | An effective differential power attack method for advanced encryption standard | |
CN104811295A (zh) | 一种对具备掩码防护的祖冲之密码算法进行侧信道能量分析方法 | |
CN104753668B (zh) | 一种针对sm4密码线性变换输出的侧信道能量攻击方法 | |
CN103888245A (zh) | 一种智能卡的s盒随机化方法和系统 | |
CN103546277B (zh) | 一种智能卡sm4算法的dpa攻击与密钥还原方法及系统 | |
CN105897398A (zh) | 一种des加密过程的密钥保护方法及系统 | |
CN102158338A (zh) | 一种针对Twofish加密芯片的DFA分析方法及系统 | |
Xia et al. | Correlation Power Analysis of Lightweight Block Cipher Algorithm LiCi | |
Putra et al. | Security analysis of BC3 algorithm for differential power analysis attack |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |