CN103825722B - 一种sm4密码算法的二阶侧信道能量分析方法 - Google Patents

一种sm4密码算法的二阶侧信道能量分析方法 Download PDF

Info

Publication number
CN103825722B
CN103825722B CN201310578837.XA CN201310578837A CN103825722B CN 103825722 B CN103825722 B CN 103825722B CN 201310578837 A CN201310578837 A CN 201310578837A CN 103825722 B CN103825722 B CN 103825722B
Authority
CN
China
Prior art keywords
energy
matrix
energy consumption
value
key
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
Application number
CN201310578837.XA
Other languages
English (en)
Other versions
CN103825722A (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.)
State Cryptography Administration Commercial Code Testing Center
Original Assignee
State Cryptography Administration Commercial Code Testing Center
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 State Cryptography Administration Commercial Code Testing Center filed Critical State Cryptography Administration Commercial Code Testing Center
Priority to CN201310578837.XA priority Critical patent/CN103825722B/zh
Publication of CN103825722A publication Critical patent/CN103825722A/zh
Application granted granted Critical
Publication of CN103825722B publication Critical patent/CN103825722B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种SM4密码算法的二阶侧信道能量分析方法,步骤如下:(1)采集能量迹,建立采样能量消耗矩阵;(2)对上步的实测的能量消耗矩阵进行预处理;(3)选择S盒的输入输出的异或S_InXorOutj作为攻击点,进行CPA或DPA分析,获得正确的轮密字节rki,j;(4)重复(2)(3)步过程分别获得轮密钥其他密钥字节得到正确的轮密钥;(5)分别对前/后4轮进行步骤(2)(3)(4)以此获得4个轮密钥,通过密钥逆扩展获得初始密钥。本发明的技术方案创新地提出了新的二阶能量分析方法,开拓了SM4密码算法攻击的新局面,扩展了对SM4算法的侧信道能量分析手段,能够更全面有效地对SM4密码算法进行侧信道能量分析;本技术方案的方法是针对常见的掩码防护措施,实用性强。

Description

一种SM4密码算法的二阶侧信道能量分析方法
技术领域
本发明属于密码算法分析检测技术领域,具体来说是针对具备掩码防护措施的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为:
其中,T:是一个可逆变换,由非线性变换τ和线性变换L复合而成,即T(.)=L(τ(.))。
τ由4个并行的S盒构成,如图2所示,设输入为输出为则:
(b0,b1,b2,b3)=τ(A)=(Sbox(a0),Sbox(a1),Sbox(a2),Sbox(a3)) (2)
非线性变换τ的输出是线性变换L的输入。设输入为输出为则:
假设Ai为第i轮S盒的输入,Bi为第i轮S盒的输出、L移位的输入,Ci为第i轮L移位的输出。根据算法满足如下:
Bi=τ(Ai) (5)
Ci=L(Bi) (6)
根据上式(4)、(5)、(6)、(7),可得第i+1轮的轮输入(Xi+1,Xi+2,Xi+3,Xi+4),依次运算32轮,即可以得到输出密文上述SM4密码算法的加密结构流程如图1所示。
SM4密码算法的密钥扩展算法与加密算法结构类似,如图2,仅线性变换L移位函数不一致。令初始加密密钥为(MK0,MK1,MK2,MK3)。
其中,(FK0,FK1,FK2,FK3)为已知常量。
其中,τ函数与上述SM4密码算法加密结构中的τ函数一致,rki为第i轮的加密密钥,i=0,1,…,31,CKi为已知常量。
线性变换L′为:
根据式(9),可分别获得32轮轮密钥(rk0,rk1,…,rk31),长度均为32比特。
数据解密和数据加密的算法结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。解密时,使用轮密钥序(rk31,rk30,…,rk0)。
目前,为抵抗DPA/CPA分析,采用掩码防护措施的SM4密码算法实现越来越多。但是,针对掩码的二阶能量分析还没有系统的分析方法。因此,对于有具体的掩码方案,亟需提出相应有效的二阶侧信道能量分析方法。
发明内容
为了对某些加掩码防御技术的SM4算法实现进行侧信道能量分析,本发明的技术方案提出了对SM4算法中的布尔掩码进行二阶侧信道能量分析方法,利用不同的算法中间值,可成功分析出具备相应掩码方案的SM4算法实现,获取密钥信息,特别是针对S盒输入输出中间掩码值相同的SM4密码算法实现了二阶侧信道能量分析。
实现上述目的本发明的技术方案为,一种SM4密码算法的二阶侧信道能量分析方法,该方法包括如下步骤:
(1)采集能量迹,具体是进行每组明文/密文进行加密/解密运算,采集测量时间点对应的能量消耗信息,即为能量迹,建立采样能量消耗矩阵;
(2)对上步的实测的能量消耗矩阵进行预处理;
(3)选择S盒的输入输出的异或S_InXorOutj作为攻击点,进行CPA或DPA分析,获得正确的轮密字节rki,j
(4)重复(2)(3)步过程分别获得轮密钥的4个密钥字节,从而得到正确的轮密钥;
(5)分别对前/后4轮进行步骤(2)(3)(4)以此获得4个轮密钥,通过密钥逆扩展获得初始密钥。
步骤(1)的具体过程是采集N条加/解密运算的能量迹,已知加密明文/解密密文Xn=(Xn 0,Xn 1,Xn 2,Xn 3)(n∈{1,…,N}),分析算法运算的前4轮,选择S盒运算部分,获得能耗矩阵其中,T为运算所用的时间,为第n次加/解密运算,在时刻t产生的能量消耗值。
步骤(2)的能量消耗矩阵进行预处理过程如下:设置S盒输入输出体现在能量迹上的时间距离范围为min~max,其中,min和max分别为最小、最大时间点距离,range=max-min+1,对于每条能量迹,依次选择min~max范围中的u点,对应的能耗值一一对应进行预计算,当u=min时, 当u=min+1时,依次计算,其中,n为已经分析的能量迹条数,从而,预处理得到新的能耗矩阵
步骤(3)选择S盒的输入输出的异或作为攻击点后,进行CPA分析过程为:分别猜测S_InXorOutj中的轮密钥rki,j的28个不同值rki,j,x∈(0,1,…,x,…,28-1)T(rki,j,x=x),代入S_InXorOutj中得到相应的中间矩阵这里的j依次为0,…,3;采用单bit、汉明重量模型,获得仿真能耗矩阵其中hw(x)为x的汉明重量,即x中比特值为1的个数,bit(x,p)为x的第p个比特值;计算仿真能耗矩阵H与能耗矩阵E′之间的相关系数,得到相关系数矩阵其中, 为矩阵H第k列的平均值,为矩阵E′第t列的平均值,选取R中的最大值rp,q=max(rk,t),rp,q对应rki,j的猜测值p即为分析得到的正确值,rki,j=p。
步骤(3)选择S盒的输入输出的异或S_InXorOutj作为攻击点后,进行DPA分析过程为:确定DPA区分函数分别猜测S_InXorOutj中的轮密钥rki,j(j依次为0,…,3)的28个不同值rki,j,x∈(0,1,…,x,…,28-1)T,rki,j,x=x,代入D(Xn,rki,j,x),则区分函数为1值总个数0值总个数计算能耗平均矩阵,当进行N次加解密运算时,对于能耗矩阵E′中时间点t,得到该点的两个总能量消耗均值其中,时间点为t时,对应区分函数值为0的n0组能量消耗平均值;对应区分函数值为1的n1组能量消耗平均值,n0+n1=N;对E′中所有的时间点求能耗均值,得到两个平均能耗矩阵 计算平均能耗矩阵D0(28×T′)和D1(28×T′)的差,得到平均能耗差矩阵ΔD=D1-D0,若rki,j猜测错误,则选择函数为0和1的概率各约为对应的平均能量消耗差随着N的增大趋近0;若rki,j猜测正确,则选择函数为0或为1的概率应为1,对应的平均能量消耗差随着N的增大趋向于能耗的实际影响,选择最大的能耗均值差对应的猜测轮密钥字节rki,j=m为正确密钥字节。
上述步骤(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组对明文加密运算的能量迹;
图7是对图6数据的分析结果;
具体实施方式
下面对本发明的技术方案进行具体描述,首先以S盒输入输出中间掩码值相同的SM4密码算法进行CPA分析说明本发明的技术方案。SM4算法的一阶掩码防御方法的典型实现方案如图3所示,S盒的输入值S_in和输出值S_out均异或了掩码值m=(m0,m1,m2,m3)。新构造的S′盒为j依次为0,1,2,3,xj表示32比特x中的第j个字节。对于SM4算法的一阶掩码防御方法,将S盒的输入输出进行异或消去掩码:
其中,j依次为0,1,2,3
因此,将S盒输入输出的异或S_InXorOut作为攻击点,进行二阶侧信道能量分析,具体攻击点选择如图4所示。根据上述的分析,具体分析过程如下:(1)采集N条加/解密运算的能量迹,已知加密明文/解密密文Xn=(Xn 0,Xn 1,Xn 2,Xn 3)(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时,依次类推。其中,n为已经分析的能量迹条数。从而,预处理得到新的能耗矩阵(3)对于不同的明/密文输入Xn,选择S盒的输入输出的异或作为攻击点,分别猜测S_InXorOutj中的轮密钥rki,j(j依次为0,…,3)的28个不同值rki,j,x∈(0,1,…,x,…,28-1)T(rki,j,x=x),代入S_InXorOutj中得到相应的中间矩阵(4)采用单bit、汉明重量等模型,获得仿真能耗矩阵其中hw(x)为x的汉明重量,bit(x,p)为x的第p个比特值;(5)计算仿真能耗矩阵H与能耗矩阵E′之间的相关系数,得到相关系数矩阵其中, 为矩阵H第k列的平均值,为矩阵E′第t列的平均值,选取R中的最大值rp,q=max(rk,t),rp,q对应rki,j的猜测值p即为分析得到的正确值,rki,j=p;(6)重新选择能量迹上S盒运算部分,根据上述第2)-5)步,分别获得轮密钥的4个密钥字节,从而得到第i轮正确的轮密钥rki;(7)根据上述2)~6)步,分别对前4轮进行分析,依次获得轮密钥rk0,rk1,rk2,rk3或rk31,rk30,rk29,rk28,通过密钥逆扩展运算获得初始密钥。
若已知加密密文/解密明文,则分析末4轮加密操作,分析方法与前4轮完全一致。图5是流程图包括了上述CPA侧信道能量分析的过程。图6是实验中采集1000组对明文加密运算的能量迹。CPA分析过程是:1)采集1000组对明文加密运算的波形,即能量迹,如图6所示,与密码运算相对应的时间点共50个,则采样能量消耗矩阵E(1000×50);2)设置最大时间距离max=20,最小时间距离min=10,对能耗矩阵进行预处理,得到能耗矩阵E′(1000×651);3)选择第0轮S盒的输出异或值S_InXorOut0作为攻击对象,猜测轮密钥第0个字节rk0,0,得到中间值矩阵V(1000×256);4)建立HW模型,得到仿真能耗矩阵H(1000×256);5)计算仿真能耗矩阵H与采样能耗矩阵E′的相关系数,得到相关系数矩阵R,选择R中最大值对应的猜测密钥字节作为轮密钥的第0个字节。6)依次分析轮密钥的其他3个字节,得到第0轮轮密钥rk0。分析结果如表1所示,罗列了分析每个轮密钥字节时,前4个最大的相关系数及其对应的猜测密钥字节。对于第1轮的正确轮密钥0x F1 21 86 F9,正确的猜测密钥字节对应的相关系数远远大于其他3个错误的猜测密钥字节对应的相关系数。此外,由图4可知,正确密钥在相应时间点上的相关系数绝对值要远远大于其他时间点上的相关系数。
表1:CPA分析结果
综上所述,对于S盒输入输出中间掩码值相同的SM4密码算法实现,采用二阶侧信道能量分析方法可成功分析出其正确密钥。
以S盒输入输出中间掩码值相同的SM4密码算法进行DPA分析的过程如图5所示,其第(1)(2)步与CPA分析方法相同,(3)对于不同的明/密文输入Xn=(Xn 0,Xn 1,Xn 2,Xn 3),选择S盒的输入输出的异或S_InXorOutj作为攻击点,确定DPA区分函数分别猜测S_InXorOutj中的轮密钥rki,j(j依次为0,…,3)的28个不同值rki,j,x∈(0,1,…,x,…,28-1)T,rki,j,x=x,代入D(Xn,rki,j,x),则区分函数为1值总个数0值总个数(4)计算能耗平均矩阵。当进行N次加解密运算时,对于能耗矩阵E′中时间点t,得到该点的两个总能量消耗均值其中,时间点为t时,对应区分函数值为0的n0组能量消耗平均值;对应区分函数值为1的n1组能量消耗平均值,n0+n1=N,对E′中所有的时间点求能耗均值,得到两个平均能耗矩阵 (5)计算平均能耗矩阵D0(28×T′)和D1(28×T′)的差,得到平均能耗差矩阵ΔD=D1-D0,若rki,j猜测错误,则选择函数为0和1的概率各约为对应的平均能量消耗差随着N的增大趋近0;若rki,j猜测正确,则选择函数为0或为1的概率应为1,对应的平均能量消耗差随着N的增大趋向于能耗的实际影响。综上所述,选择最大的能耗均值差对应的猜测轮密钥字节rki,j=m为正确密钥字节;(6)重新选择能量迹上S盒运算部分,根据上述第(2)-(5)步,分别获得轮密钥的其他3个密钥字节,从而得到第i轮正确的轮密钥rki;(7)根据上述(2)~(6)步,分别对前4轮进行分析,依次获得轮密钥rk0,rk1,rk2,rk3或rk31,rk30,rk29,rk28,通过密钥逆扩展运算获得初始密钥。
若已知加密密文/解密明文,则分析末4轮加密操作,分析方法与前4轮完全一致。
上述技术方案仅体现了本发明技术方案的优选技术方案,本技术领域的技术人员对其中某些部分所可能做出的一些变动均体现了本发明的原理,属于本发明的保护范围之内。

Claims (6)

1.一种SM4密码算法的二阶侧信道能量分析方法,其特征在于,该方法包括如下步骤:
(1)采集能量迹,具体是进行每组明文加密运算或每组密文进行解密运算时,采集测量时间点对应的能量消耗信息,即为能量迹,建立采样能量消耗矩阵;
(2)对上步的实测的能量消耗矩阵进行预处理;
(3)选择S盒的输入输出的异或S_InXorOutj作为攻击点,进行CPA或DPA分析,获得正确的轮密钥字节rki,j;这里的rki,j是指轮密钥rki的第j个字节,j∈{0,1,2,3};
(4)重复(2)(3)步过程分别获得轮密钥其他密钥字节得到正确的轮密钥rki
(5)分别对前/后4轮进行步骤(2)(3)(4)以此获得4个轮密钥,通过密钥逆扩展获得初始密钥。
2.根据权利要求1所述的SM4密码算法的二阶侧信道能量分析方法,其特征在于,步骤(1)的具体过程是采集N条加/解密运算的能量迹,已知加密明文/解密密文Xn=(Xn 0,Xn 1,Xn 2,Xn 3),n∈{1,…,N},分析算法运算的前4轮,选择S盒运算部分,获得能耗矩阵其中,T为运算所用的时间,为第n次加/解密运算,在时刻t产生的能量消耗值。
3.根据权利要求1所述的SM4密码算法的二阶侧信道能量分析方法,其特征在于,能量消耗矩阵进行预处理过程如下:设置S盒输入输出体现在能量迹上的时间距离范围为min~max,其中,min和max分别为最小、最大时间点距离,range=max-min+1,对于每条能量迹,依次选择min~max范围中的u点,对应的能耗值一一对应进行预计算,当u=min时, 当u=min+1时,依次计算,其中,n为已经分析的能量迹条数,从而,预处理得到新的能耗矩阵
4.根据权利要求1或3所述的SM4密码算法的二阶侧信道能量分析方法,其特征在于,选择S盒的输入输出的异或作为攻击点后,进行CPA分析过程为:分别猜测S_InXorOutj中的轮密钥rki,j的28个不同值rki,j,x∈(0,1,…,x,…,28-1)T(rki,j,x=x),代入S_InXorOutj中得到相应的中间矩阵这里j依次为0,…,3;采用单bit、汉明重量模型,获得仿真能耗矩阵其中hw(x)为x的汉明重量,即x中比特值为1的个数,bit(x,p)为x的第p个比特值;计算仿真能耗矩阵H与能耗矩阵E'之间的相关系数,得到相关系数矩阵其中, 为矩阵H第k列的平均值,为矩阵E'第t列的平均值,选取R中的最大值rp,q=max(rk,t),rp,q对应rki,j的猜测值p即为分析得到的正确值,rki,j=p。
5.根据权利要求1或3所述的SM4密码算法的二阶侧信道能量分析方法,其特征在于,选择S盒的输入输出的异或S_InXorOutj作为攻击点后,进行DPA分析过程为:确定DPA区分函数分别猜测S_InXorOutj中的轮密钥rki,j的28个不同值rki,j,x∈(0,1,…,x,…,28-1)T,rki,j,x=x,代入D(Xn,rki,j,x),这里的j依次为0,…,3,则区分函数为1值总个数为0值总个数计算能耗平均矩阵,当进行N次加解密运算时,对于能耗矩阵E'中时间点t,得到该点的两个总能量消耗均值其中,时间点为t时,对应区分函数值为0的n0组能量消耗平均值;对应区分函数值为1的n1组能量消耗平均值,n0+n1=N;对E'中所有的时间点求能耗均值,得到两个平均能耗矩阵 计算平均能耗矩阵D0(28×T')和D1(28×T')的差,得到平均能耗差矩阵△D=D1-D0,若rki,j猜测错误,则选择函数为0和1的概率各约为对应的平均能量消耗差随着N的增大趋近0;若rki,j猜测正确,则选择函数为0或为1的概率应为1,对应的平均能量消耗差随着N的增大趋向于能耗的实际影响,选择最大的能耗均值差对应的猜测轮密钥字节rki,j=m为正确密钥字节。
6.根据权利要求1所述的SM4密码算法的二阶侧信道能量分析方法,其特征在于,步骤(1)~(5)分析方法应用于对已知加密密文/解密明文进行分析末4轮加密的操作。
CN201310578837.XA 2013-11-19 2013-11-19 一种sm4密码算法的二阶侧信道能量分析方法 Active CN103825722B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310578837.XA CN103825722B (zh) 2013-11-19 2013-11-19 一种sm4密码算法的二阶侧信道能量分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310578837.XA CN103825722B (zh) 2013-11-19 2013-11-19 一种sm4密码算法的二阶侧信道能量分析方法

Publications (2)

Publication Number Publication Date
CN103825722A CN103825722A (zh) 2014-05-28
CN103825722B true CN103825722B (zh) 2017-02-15

Family

ID=50760571

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310578837.XA Active CN103825722B (zh) 2013-11-19 2013-11-19 一种sm4密码算法的二阶侧信道能量分析方法

Country Status (1)

Country Link
CN (1) CN103825722B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105991289B (zh) * 2015-03-06 2018-12-25 上海复旦微电子集团股份有限公司 Sm3密码算法的侧信道能量分析方法及装置
CN106161001B (zh) * 2015-03-31 2019-03-26 上海复旦微电子集团股份有限公司 Hmac-sm3密码算法的侧信道能量分析方法及装置
CN106161004B (zh) * 2015-03-31 2019-03-26 上海复旦微电子集团股份有限公司 一种hmac-sm3密码算法的侧信道能量分析方法及装置
CN106161005B (zh) * 2015-03-31 2019-05-07 北京南瑞智芯微电子科技有限公司 一种分组加密算法防攻击的掩码方法和装置
CN105553638A (zh) * 2015-12-07 2016-05-04 成都芯安尤里卡信息科技有限公司 针对sm4一阶掩码算法的二阶频域能量分析攻击
CN105812122B (zh) * 2016-03-08 2018-10-12 中国人民解放军军械工程学院 建立密码芯片汉明重量与光辐射相关关系的方法
CN105591739B (zh) * 2016-03-08 2018-07-31 中国人民解放军军械工程学院 一种基于光汉明重量的密钥分析方法
CN105812121B (zh) * 2016-03-08 2018-10-12 中国人民解放军军械工程学院 一种高度程式化的密钥高效分析方法
CN109918928A (zh) * 2019-03-05 2019-06-21 中国人民解放军32082部队 一种高速缓存访问碰撞的密码计时分析方法
CN111030820B (zh) * 2019-12-17 2023-12-19 成都三零嘉微电子有限公司 一种基于掩码sm4算法的选择明文相关碰撞攻击方法
CN111478742B (zh) * 2020-04-07 2022-04-29 南方电网科学研究院有限责任公司 一种sm4算法的分析方法、系统以及设备
CN111614459B (zh) * 2020-05-29 2021-08-06 上海交通大学 针对ble密钥协商协议的侧信道分析方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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密码算法侧信道能量分析的应用

Also Published As

Publication number Publication date
CN103825722A (zh) 2014-05-28

Similar Documents

Publication Publication Date Title
CN103825722B (zh) 一种sm4密码算法的二阶侧信道能量分析方法
CN103647637B (zh) 一种对简单掩码的sm4算法进行二阶侧信道能量分析方法
CN103138917B (zh) 以s盒输入为基础的汉明距离模型进行sm4密码算法侧信道能量分析方法
CN103227717B (zh) 选择轮密钥异或输入进行sm4密码算法侧信道能量分析的方法
CN103166752B (zh) 选择轮函数为攻击对象进行sm4密码算法侧信道能量分析的应用
CN103457719B (zh) 一种对sm3密码算法hmac模式的侧信道能量分析方法
CN104202145B (zh) 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法
CN106788974A (zh) 掩码s盒、分组密钥计算单元、装置及对应的构造方法
CN105553638A (zh) 针对sm4一阶掩码算法的二阶频域能量分析攻击
CN104753665B (zh) 一种针对sm4密码轮函数输出的侧信道能量攻击方法
CN104836666A (zh) 一种针对sm2解密算法的能量分析攻击的方法
CN104052590B (zh) 基于侧信道相关能量分析的频域分析方法
Duan et al. Differential power analysis attack and efficient countermeasures on PRESENT
CN103916236A (zh) 面向aes算法的抗功耗攻击方法及电路实现
CN104301095A (zh) Des轮运算方法和电路
CN104796250A (zh) 针对RSA密码算法M-ary实现的侧信道攻击方法
CN103259647A (zh) 加密系统边信道攻击测试方法
CN107204841A (zh) 一种抵御差分功耗攻击的分组密码多s盒实现的方法
Hu et al. An effective differential power attack method for advanced encryption standard
CN104811297A (zh) 针对RSA之M-ary实现模乘余数输入侧信道攻击
CN104753668B (zh) 一种针对sm4密码线性变换输出的侧信道能量攻击方法
CN104811295A (zh) 一种对具备掩码防护的祖冲之密码算法进行侧信道能量分析方法
CN109936437B (zh) 一种基于d+1阶掩码的抗功耗攻击方法
CN103546277B (zh) 一种智能卡sm4算法的dpa攻击与密钥还原方法及系统
Li et al. Impossible meet-in-the-middle fault analysis on the LED lightweight cipher in VANETs

Legal Events

Date Code Title Description
C06 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