CN103457719A - 一种对sm3密码算法hmac模式的侧信道能量分析方法 - Google Patents
一种对sm3密码算法hmac模式的侧信道能量分析方法 Download PDFInfo
- Publication number
- CN103457719A CN103457719A CN2013103100115A CN201310310011A CN103457719A CN 103457719 A CN103457719 A CN 103457719A CN 2013103100115 A CN2013103100115 A CN 2013103100115A CN 201310310011 A CN201310310011 A CN 201310310011A CN 103457719 A CN103457719 A CN 103457719A
- Authority
- CN
- China
- Prior art keywords
- formula
- cpa
- analysis
- value
- dpa
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/556—Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
- Storage Device Security (AREA)
Abstract
一种对SM3密码算法HMAC模式的侧信道能量分析方法,该方法分析了SM3密码算法及其HMAC模式的实现特征,基于DPA和CPA的攻击方法,结合SM3密码算法HMAC模式的特征及能量消耗泄漏点,成功地破解SM3密码算法HMAC模式,可任意伪造输出摘要。技术方案要点是:一、采集HMAC的能量迹;二、分析得到Kin,Kin为第1次杂凑运算中的中间状态值,三、分析获得Kout,Kout为第2次杂凑运算中的中间状态值,其中三中的方法与二中方法一致。本发明的技术方案为SM3密码算法的侧信道分析实施提供了解决方案。
Description
技术领域
本发明提供了一种对SM3密码算法HMAC模式的侧信道能量分析方法,涉及到密码算法实现、侧信道能量分析、密码模块检测领域。为了对实现SM3密码算法HMAC模式的密码模块进行侧信道能量分析,分析和获取受保护的密钥及敏感信息,本发明提出一种针对SM3密码算法HMAC模式的侧信道能量分析方法。
背景技术
随着信息技术的发展,各种密码算法正被广泛地应用于经济、军事、行政等重要部门,保护信息的安全性。鉴于密码算法的重要性,对密码算法软硬件实现(密码模块)的分析研究对保护信息的安全具有重要的意义。近年来,多种对密码模块的攻击已广为人知,所有这些攻击的目标都是为了获取密码模块中的密钥。攻击可分为侵入式攻击、半侵入式攻击和非侵入式攻击。非侵入式攻击中的侧信道分析由于实施方便、相对成本低廉被广泛使用。侧信道分析包括计时分析、能量分析和电磁分析等。其中,侧信道能量分析是众多分析手段中最常用的方法之一,它突破了传统密码算法的分析模式,能力强大,实施相对容易。侧信道能量分析利用了密码模块能量消耗与运算数据和执行的操作之间的相关性,基于密码算法实现的能量泄露函数,建立能量模型,使用统计方法,猜测和验证密码模块使用的受保护密钥或敏感信息。侧信道能量分析方法一般包括:简单能量分析(SPA)、差分能量分析(DPA)、相关能量分析(CPA)和高阶差分能量分析(HODPA)。
其中,DPA原理是:对于N组明文/密文数据的加/解密运算,获取N条能量迹(一次密码操作过程中采集到的能量消耗测量的一个向量);对每一个猜测密钥或敏感信息K,产生相应的中间值(攻击对象),根据中间值确定选择函数;通过选择函数将能量迹集划分为两个子集;分别对两个子集对应的能量消耗取平均,并对两个平均能量消耗值求差,该均值差 为选择函数对应的中间值对能量迹的影响效果。根据统计理论,若K猜测不正确,当能量迹的个数N趋近无穷大时,两子集的均值差将趋近于零;若K猜测正确时,在能量迹中的某个样点,将会出现一个均值差的最大尖峰(绝对值最大值),通过最大尖峰可确定正确的密钥或敏感信息。CPA原理是:对于N组明文/密文数据的加/解密运算,获取N条能量迹;对每一个猜测密钥或敏感信息K,产生相应的中间值(攻击对象);根据中间值建立能量模型;通过能量模型将中间值映射为仿真能量消耗;计算仿真能量消耗与能量迹之间的线性相关系数,范围在[-1,1]之间;选取相关系数中绝对值的最大值,理论上为1,但是由于采集能量迹过程中不可避免存在噪声干扰,最大值小于1,该相关系数最大值对应的猜测值即为正确密钥或敏感信息。
对于上述两种分析方法,必须具备如下条件:必须存在W(攻击点)具有明显能量消耗特征,其中,攻击点W是由两部分因子结合运算(·)组成,一部分M为已知可变化,另一部分K为未知但是固定(即攻击获取的密钥或敏感信息),W=M.K。攻击者通过输入不同的M,产生不同的W能量消耗特征,结合W=M.K,分析出K。
基于杂凑算法的消息鉴别码(Hash-based Message Authentication code,简称HMAC)利用杂凑算法,输入一个密钥和消息,输出带认证信息的消息的摘要,用于摘要的接收方能够对摘要发送方的身份正确性和消息有效性进行验证。HMAC与普通的消息摘要的不同之处在于,摘要生成过程中密钥参与了运算。一个HMAC过程表示为:
HMAC(K,m)=H((K⊕opad)‖H((K⊕ipad)‖m)) (1)
其中,H代表一个杂凑算法(如SHA-256、SHA-1,SM3等)函数,K为鉴别密钥,m代表一个不定长的消息输入。用B来表示杂凑算法输入分组的字节长度,用L来表示杂凑算法摘要输出的字节长度(如MD5中L=16,SHA-1中L=20),鉴别密钥K的长度一般为小于等于B的正整数值,小于分组长度B时在密钥K后补0;若鉴别密钥K的长度比B大,则使用杂凑算法函数H对K进行摘要运算,输出的L长度字节串作为在HMAC中 实际使用的密钥。ipad为B字节重复的0x36,opad为B字节重复的0x5C。附图1描述了HMAC的处理过程,
目前,对杂凑算法HMAC模式的DPA/CPA能量分析已有一定的理论成果。由图1可知,K⊕ipad为第1组输入消息分组,是固定未知,K⊕ipad经过压缩运算后仍得到固定未知值Kin=f(K⊕ipad,IV),而第2组输入消息分组m1为已知可变,Kin参与f函数中的大功耗运算,满足DPA/CPA分析条件,因此根据已知可变输入消息分组m1,可分析出Kin,同理,若分析出Kin,hn的值则为已知可变,Kout=f(K⊕opad,IV)为固定未知,Kout参与f函数中的大功耗运算,满足DPA/CPA分析条件,可分析出Kout。通过Kin和Kout,攻击者可伪造出任意消息的消息鉴别码。
SM3密码算法是我国公开发布的第一个密码杂凑算法。SM3算法分组输入长度512比特,摘要输出长度256比特。初始向量IV=7380166f 4914b2b9 172442d7 da8a0600 a96f30bc 163138aa e38dee4d b0fb0e4e。
SM3算法的运算步骤分为三步:
1、填充消息
假设消息m的长度为L比特。首先将比特“1”添加到消息的末尾,再添加K个“0”,K是满足L+1+K=448 mod 512的最小负整数,然后再添加一个64位的比特串,该比特串是长度L的二进制表示。填充后的消息后m′ 的比特长度为512的整倍数,并可以用消息分组M(i)来表示。
2、迭代压缩
将填充后的消息m′按512比特进行分组:m′=M(0)M(1)…M(n-1),其中n=(L+K+65)/512。对m′按下列方式迭代:
for i=0 to n-1
V(i+1)=CF(V(i),M(i)) (2)
endfor
其中CF是压缩函数,V(0)为256比特初始值IV,分别为字M(i)为填充后的消息分组,迭代压缩的结果为V(n)。
2.1 消息扩展
将消息分组M(i)按以下方法扩展生成132个字W0,W1,…,W67,W0′,W1′,…,W63′,用于压缩函数CF:
(1)将消息分组M(i)划分为16个字W0,W1,…,W15;
for j=16 to 67
(2)Wj=P1(Wj-16⊕Wj-9⊕(Wj-3<<<15))⊕(Wj-13<<<7)⊕Wj-6 (3)
end
for j=0 to 63
(3)Wj′=Wj⊕Wj+4 (4)
end
其中,P1(X)=X⊕(X<<<15)⊕(X<<<23),X为字。
2.2 压缩
令A,B,C,D,E,F,G,H为字寄存器,存放Aj,Bj,Cj,Dj,Ej,Fj,Gj,Hj(j∈{0,…,64}),SS1j,SS2j,TT1j,TT2j(j∈{1,…,64})为中间变量,压缩函数V(i+1)=CF(V(i),M(i))(0≤i≤n-1)的计算过程如下:
A0B0C0D0E0F0G0H0←V(i) (5)
for j=1 to 64
1.SS1j←((Aj-1<<<12)+Ej-1+(Tj-1<<<(j-1))<<<7
2.SS2j←SS1j⊕(Aj-1<<<12)
3.TT1j←FFj-1(Aj-1,Bj-1,Cj-1)+Dj-1+SS2j+Wj-1′
4.TT2j←GGj-1(Ej-1,Fj-1,Gj-1)+Hj-1+SS1j+Wj-1
5.Dj←j-1
6.Cj←Bj-1<<<9
7.Bj←Aj-1
8.Aj←TT1j
9.Hj←Gj-1
10.Gj←Fj-1<<<19
11.Fj←Ej-1
12.Ej←P0(TT2j)
end (6)
V(i+1)←A64B64C64D64E64F64G64G64⊕V(i) (7)
其中,
P0(X)=X⊕(X<<<9)⊕(X<<<17),X,Y,Z为字。
3 杂凑值
ABCDEFGH←V(n),输出256比特的杂凑值y=ABCDEFGH。
对于SM3密码算法HMAC模式,尚未有相关具体的能量分析方法,本发明结合现有对杂凑算法HMAC的能量分析理论,创造性地提出对SM3密码算法HMAC模式的能量分析方法。
附图说明
图1为本发明的一种对SM3密码算法HMAC模式的侧信道能量分析方 法的杂凑算法HMAC的计算过程;
图2为本发明的一种对SM3密码算法HMAC模式的侧信道能量分析方法的DPA/CPA分析流程图;
图3为本发明的一种对SM3密码算法HMAC模式的侧信道能量分析方法的CPA分析原理;
图4为本发明的一种对SM3密码算法HMAC模式的侧信道能量分析方法的DPA分析原理。
发明内容
一种对SM3密码算法HMAC模式的侧信道能量分析方法,所述方法包括以下步骤:
步骤一、采集HMAC的能量迹
基于DPA及CPA分析方法,根据需求采集N组不同明文消息输入的SM3算法HMAC运算的能量迹,并分析SM3杂凑算法的HMAC模式特征,
HMAC(K,m)=H((K⊕opad)‖H((K⊕ipad)‖m)) 式(1)
式(1)中:H代表一个杂凑算法函数;K为鉴别密钥;m代表一个不定长的消息输入;在HMAC处理过程中,定义K⊕ipad,m1,m2,…,mn,K⊕opad为输入的消息分组,分别为M(0)M(1)…M(n-1),K⊕ipad、K⊕opad分别为第1、2次杂凑运算的第1组输入消息分组,是固定未知,经过压缩运算后仍得到固定未知值Kin=f(K⊕ipad,IV)、Kout=f(K⊕opad,IV),Kin,h1,h2,…,hn-1,hn,Kout为每次杂凑运算的中间状态;第2组输入消息分组m1为已知可变,_SM3算法的压缩函数V(i+1)=CF(V(i),M(i))(0≤i≤n-1)的计算过程如下:
A0B0C0D0E0F0G0H0←V(i) 式(5)
for j=1 to 64
1.SS1j←((Aj-1<<<12)+Ej-1+(Tj-1<<<(j-1))<<<7
2.SS2j←SS1j⊕(Aj-1<<<12)
3.TT1j←FFj-1(Aj-1,Bj-1,Cj-1)+Dj-1+SS2j+Wj-1′
4.TT2j←GGj-1(Ej-1,Fj-1,Gj-1)+Hj-1+SS1j+Wj-1
5.Dj←Cj-1
6.Cj←Bj-1<<<9
7.Bj←Aj-1
8.Aj←TT1j
9.Hj←Gj-1
10.Gj←Fj-1<<<19
11.Fj←Ej-1
12.Ej←P0(TT2j)
end 式(6)
由于Kin、Kout固定未知,且压缩函数中存在明显能量消耗泄漏,分别选择杂凑运算第2组消息分组m1、H((K⊕ipad)‖m)即hn、在式(6)压缩函数运算中第j=1,2轮迭代中的第1、2、3、4步运算的能量消耗作为分析部分;
步骤二、分析得到Kin
选择压缩函数CF(.)中的能量消耗泄漏点,不断改变第2组消息分组m1的输入值,一层层地分析出Kin,见式(6);由式(6)压缩函数可知,当对第2组输入消息分组输入m1进行压缩运算时,Kin为压缩函数CF(.)的初始状态(A0,B0,C0,D0,F0,G0,H0),是固定值,若想得到完整的Kin,必须分别分析获得(A0,B0,C0,D0,F0,G0,H0)各自的值,根据式(6)的压缩步骤,分析如下:
当j=1时,由Kin固定可知SS11=((A0<<<12)+E0+T0)<<<7、SS21=SS11⊕(A0<<<12)均为固定值;
步骤二一、分析得到TT11、X(j=1)
对于式(6)中的第3步,由SM3算法的消息扩展中的式(4)可知,
for j=0 to 63
Wj′=Wj⊕Wj+4 式(4)
end
W′j-1为已知变量,其余均未知;设TT11=FF0(A0,B0,C0)+D0+SS21+W0′中的FF0(A0,B0,C0)+D0+SS21为X,易知X值固定,W0′根据攻击者的输入改变,且TT11存在能量消耗泄漏,满足DPA/CPA分析条件,改变输入W0′,采集能量迹,使用DPA/CPA分析得到X,并推出TT11;
步骤二二、分析得到TT21、Y(j=1)
同理,对于式(6)中的第4步,Wj-1为已知可变输入,其余均未知;设TT21=GG0(E0,F0,C0)+H0+SS11+W0中的GG0(E0,F0,C0)+H0+SS11为Y,易知Y值固定,W0根据攻击者的输入改变,且TT21存在能量消耗泄漏,满足DPA/CPA分析条件,改变输入W0,采集能量迹,使用DPA/CPA分析得到Y,并推出TT21;
步骤二三、分析得到A1、E1、A0、E0(j=1)
当j=1时,由式(6)中的第8步和第12步,可分别得到A1,E1;由于TT11和TT21为已知变量,A0、E0为固定未知值,且A0和A1、E0和E1的寄存器比特转换时存在能量消耗泄漏,体现在能量迹上,满足DPA/CPA分析,使用汉明距离模型hd(TT11,A0)、hd(P0(TT21),E0),进行DPA/CPA分析可得到A0,E0;其中,hd(x,y)表示为x⊕y中比特为1的个数;
当j=2时,由于A1、E1为已知变量,由式(6)中第1步和第2步可知,SS12=((A1<<<12)+E1+(T1<<<1)<<<7,SS22=SS12⊕(A1<<<12)为已知变量;
步骤二四、分析得到C1,G1,B0,F0(j=2)
分别对式(6)的第3、4步中存在能耗泄漏的函数FF1和GG1进行分析,由上述可知,B1=A0为已知固定值,A1为已知变量,C1=B0>>>9为固定未知,利用DPA/CPA分析对式(6)中的第3步中的函数FF1进行分析,得出C1,推导出FF1,进而可恢复出B0;F1=E0为已知固定值,E1为已知变量,G1=F0<<<19为未知常量,同理对函数GG1进行DPA/CPA分析,恢复出G1,推导出GG1,进而恢复出F0;
步骤二五、分析得到D1、H1、C0、G0(j=2)
再次分别对存在能耗泄漏的式(6)中的第3、4步进行分析,由上可知,SS12、SS22、W1、W1′、FF1(A1,B1,C1)和GG1(E1,F1,G1)均为已知变量,D1和H1为固定未知值,满足DPA/CPA分析条件,分别使用DPA/CPA分析得到D1和H1,进而由式(6)中的第5步和第9步得到C0和G0;
步骤二六、推算得到D0、H0(j=1),从而获得Kin
当j=1时,由于等式X=FF0(A0,B0,C0)+D0+SS21和Y=GG0(E0,F0,C0)+H0+SS11中除D0、H0外均为已知值,从而可推算得到D0和H0,从而得到Kin;
三、同步骤二中方法分析获得Kout
通过改变输入的消息分组m1,可得到不同的hn,则hn为已知可变,Kout为hn进行压缩运算时的初始状态(A0,B0,C0,D0,F0,G0,H0),为未知固定,不断改变第2组消息分组m1的输入值,进而改变hn的值,一层层地分析出Kout,具体的分析步骤与Kin一致;
对于Kin和Kout,分别使用了8次DPA/CPA分析,即可恢复出Kin和Kout,从而成功分析出SM3密码算法HMAC模式的敏感信息。
具体实施方式
下面结合实施例对本发明做进一步地说明:
本发明以CPA方法分析Kin为例,CPA分析Kout、DPA分析Kin/Kout实施方式与本方案一致。
一、采集能量迹
输入N次不同的消息W=(m1,…,mn),令每次输入的m1值都不相同,分别采集HMAC运算时的能量迹,选择Kin=A0B0C0D0E0F0G0H0参与运算的能耗部分,得到能量迹矩阵 其中,T为运算所用的时间, 为第n次HMAC运算,在时刻t产生的能量消耗值。
二、CPA分析Kin=A0B0C0D0E0F0G0H0
1、当j=1(压缩函数第1轮)时,对压缩步骤3进行CPA分析,获得X=FF0(A0,B0,C0)+D0+SS21、TT11。
已知m1为可变输入,进行消息扩展后得到W0,W1,…,W67,W0′,W1′,…,W63′,DPA分析仅使用了W0,W′0,W1,W′1,对于N次不同的m1输入,分别得到消息向量 此外,由上可知,SS11=((A0<<<12)+E0+T0)<<<7、SS21=SS11⊕(A0<<<12)均为固定值。
1)对于压缩步骤(式(6))的第3步,运算的能耗特征表现在能量迹E(N×T)上,分别猜测X=FF0(A0,B0,C0)+D0+SS21的232个不同值X=(0,1,…,x,…,232-1)T,代入TT11中得到相应的中间矩阵 其中
4)选取R中的最大值rp,q=max(rx,t),rp,q对应X的猜测值p即为分析得到的正确值,X=p。
最后,由TT11=X+W′0可推导出N维向量
1)对于压缩步骤(式(6))的第4步,TT21=GG0(E0,F0,C0)+H0+SS11+W0运算的能耗特征表现在能量迹E(N×T)上,分别猜测Y的232个不同值Y=(0,1,…,x,…,232-1)T,代入TT21中得到相应的中间矩阵 其中
2)采用汉明重量模型将中间矩阵V(N×232)映射为仿真能耗矩阵
4)选取R中的最大值rp,q=max(rx,t),rp,q对应Y的猜测值p即为分析得到的正确值,即Y=p。
最后,由TT21=Y+W′0可推导出N维向量
3、当j=1时,对压缩步骤8和12进行CPA分析,获得A1、E1、A0、E0。
由上述1、2步可知,为已知N维向量,且易知A1=TT11、E1=P0(TT21),则汉明距离模型hd(A1,A0)、hd(E1,E0)分别转化成汉明重量模型为hw(TT11⊕A0)、hw(P0(TT21)⊕E0)。
1)对于压缩步骤(式(6))的第8步,A0、A1的寄存器比特转换时存在能量消耗泄漏,体现在能量迹E(N×T)上,TT11为N维向量,分别猜测A0的232个不同值A0=(0,1,…,x,…,232-1)T,代入TT11⊕A0中得到相应的 中间矩阵 其中
2)采用汉明重量模型将中间矩阵V(N×232)映射为仿真能耗矩阵
4)选取R中的最大值rp,q=max(rx,t),rp,q对应A0的猜测值p为分析得到的正确值,即A0=p。
同理,根据1)-4)对压缩步骤12进行CPA分析,可得到E0。
4、当j=2时(即压缩函数第2轮),对压缩步骤3和4中的FF1(A1,B1,C1)和GG1(E1,F1,G1)函数进行CPA分析,获得C1,G1,B0,F0。
1)对于压缩步骤(式(6))3,已知A1=TT11=(A1,1,…,A1,n,…,A1,N)为N维向量,由步骤7可知B1=A0为已知固定值,FF1(A1,B1,C1)存在能量消耗泄漏,体现在能量迹E(N×T)上,分别猜测C1的232个不同值C1=(0,1,…,x,…,232-1)T,代入FF1(A1,B1,C1)中得到相应的中间矩阵 其中
2)采用汉明重量模型将中间矩阵V(N×232)映射为仿真能耗矩阵
4)选取R中的最大值rp,q=max(rx,t),rp,q对应C1的猜测值p为分析得到的正确值,即C1=p。
已知C1,从而可推导出FF1,并由压缩步骤6可获得B0=C1>>>9。
同理,已知E1为N维向量,由步骤11可知F1=E0为已知固定值,根据上述1)-4)对压缩步骤4中的GG1(E1,F1,G1)进行CPA分析,可得到G1,从而可推导出GG1,并由压缩步骤6可获得F0=G1>>>19。
5、当j=2时(即压缩函数第2轮),对压缩步骤3和4进行CPA分析,获得D1、H1、C0、G0。
由上可知,A1(N维向量)、E1(N维向量)、T1(固定参数值)为已知值,则SS12=((A1<<<12)+E1+(T1<<<1)<<<7、SS22=SS12⊕(A1<<<12)也为已知N维向量;此外,由4可知,FF1(A1,B1,C1)和GG1(E1,F1,G1)均为为已知N维向量;且 则P=FF1(A1,B1,C1)+SS22+W1′、Q=GG1(E1,F1,C1)+SS11+W1为已知N维向量。
1)对于第2轮压缩步骤(式(6))的第3步,TT12=P+D1运算的能耗特征表现在能量迹E(N×T)上,已知P=(P1,…,Pn,…,PN)为N维向量,分别猜测D1的232个不同值D1=(0,1,…,x,…,232-1)T,代入TT12=P+D1中得到相应的中间矩阵 其中
2)采用汉明重量模型将中间矩阵V(N×232)映射为仿真能耗矩阵
4)选取R中的最大值rp,q=max(rx,t),rp,q对应D1的猜测值p为分析得到的正确值,即D1=p。
已知D1,由压缩步骤5可获得C0=D1。
同理,已知Q为N维向量,由步骤10可知H1=G0为已知固定值,根据上述1)-4)对压缩步骤4TT22=Q+H1进行CPA分析,可得到H1,从而获得G0。
6、由1-5中的已知值,推导出D0、H0.
1-5步分别获得A0(3步)、B0(4步)、C0(5步),E0(3步)、F0(4 步)、G0(5步)的值,则SS11=((A0<<<12)+E0+T0)<<<7、SS21=SS11⊕(A0<<<12)、FF0(A0,B0,C0)、GG0(E0,F0,C0)均为已知固定值,且1步中获得的X=FF0(A0,B0,C0)+D0+SS21和Y=GG0(E0,F0,C0)+H0+SS11也为已知值,从而可推导出D0和H0。
总之,通过上述1-5步,分别获得A0E0B0F0C0G0D0H0,即为中间状态Kin。
Claims (1)
1.一种对SM3密码算法HMAC模式的侧信道能量分析方法,其特征在于:所述方法包括以下步骤:
步骤一、采集HMAC的能量迹
基于DPA及CPA分析方法,根据需求采集N组不同明文消息输入的SM3算法HMAC运算的能量迹,并分析SM3杂凑算法的HMAC模式特征,
HMAC(K,m)=H((K⊕opad)‖H((K⊕ipad)‖m)) 式(1)
式(1)中:H代表一个杂凑算法函数;K为鉴别密钥;m代表一个不定长的消息输入;在HMAC处理过程中,定义K⊕ipad,m1,m2,…,mn,K⊕opad为输入的消息分组,分别为M(0)M(1)…M(n-1),K⊕ipad、K⊕opad分别为第1、2次杂凑运算的第1组输入消息分组,是固定未知,经过压缩运算后仍得到固定未知值Kin=f(K⊕ipad,IV)、Kout=f(K⊕opad,IV),Kin,h1,h2,…,hn-1,hn,Kout为每次杂凑运算的中间状态;第2组输入消息分组m1为已知可变,SM3算法的压缩函数V(i+1)=CF(V(i),M(i))(0≤i≤n-1)的计算过程如下:
A0B0C0D0E0F0G0H0←V(i) 式(5)
for j=1 to 64
1.SS1j←((Aj-1<<<12)+Ej-1+(Tj-1<<<(j-1))<<<7
2.SS2j←SS1j⊕(Aj-1<<<12)
3.TT1j←FFj-1(Aj-1,Bj-1,Cj-1)+Dj-1+SS2j+Wj-1′
4.TT2j←GGj-1(Ej-1,Fj-1,Gj-1)+Hj-1+SS1j+Wj-1
5.Dj←Cj-1
6.Cj←Bj-1<<<9
7.Bj←Aj-1
8.Aj←TT1j
9.Hj←Gj-1
10.Gj←Fj-1<<<19
11.Fj←Ej-1
12.Ej←P0(TT2j)
end 式(6)
由于Kin、Kout固定未知,且压缩函数中存在明显能量消耗泄漏,分别选择杂凑运算第2组消息分组m1、H((K⊕ipad)‖m)即hn、在式(6)压缩函数运算中第j=1,2轮迭代中的第1、2、3、4步运算的能量消耗作为分析部分;
步骤二、分析得到Kin
选择压缩函数CF(.)中的能量消耗泄漏点,不断改变第2组消息分组m1的输入值,一层层地分析出Kin,见式(6);由式(6)压缩函数可知,当对
第2组输入消息分组输入m1进行压缩运算时,Kin为压缩函数CF(.)的初始状态(A0,B0,C0,D0,F0,G0,H0),是固定值,若想得到完整的Kin,必须分别分析获得(A0,B0,C0,D0,F0,G0,H0)各自的值,根据式(6)的压缩步骤,分析如下:
当j=1时,由Kin固定可知SS11=((A0<<<12)+E0+T0)<<<7、SS21=SS11⊕(A0<<<12)均为固定值;
步骤二一、分析得到TT11、X(j=1)
对于式(6)中的第3步,由SM3算法的消息扩展中的式(4)可知,for j=0 to 63
Wj′=Wj⊕Wj+4 式(4)
end
W′j-1为已知变量,其余均未知;设TT11=FF0(A0,B0,C0)+D0+SS21+W0′中的FF0(A0,B0,C0)+D0+SS21为X,易知X值固定,W0′根据攻击者的输入改变,且TT11存在能量消耗泄漏,满足DPA/CPA分析条件,改变输入W0′,采集能量迹,使用DPA/CPA分析得到X,并推出TT11;
步骤二二、分析得到TT21、Y(j=1)
同理,对于式(6)中的第4步,Wj-1为已知可变输入,其余均未知;设TT21=GG0(E0,F0,C0)+H0+SS11+W0中的GG0(E0,F0,C0)+H0+SS11为Y,易知Y值固定,W0根据攻击者的输入改变,且TT21存在能量消耗泄漏,满足DPA/CPA分析条件,改变输入W0,采集能量迹,使用DPA/CPA分析得到Y,并推出TT21;
步骤二三、分析得到A1、E1、A0、E0(j=1)
当j=1时,由式(6)中的第8步和第12步,可分别得到A1,E1;由于TT11和TT21为已知变量,A0、E0为固定未知值,且A0和A1、E0和E1的寄存器比特转换时存在能量消耗泄漏,体现在能量迹上,满足DPA/CPA分析,使用汉明距离模型hd(TT11,A0)、hd(P0(TT21),E0),进行DPA/CPA分析可得到A0,E0;其中,hd(x,y)表示为x⊕y中比特为1的个数;
当j=2时,由于A1、E1为已知变量,由式(6)中第1步和第2步可知,SS12=((A1<<<12)+E1+(T1<<<1)<<<7,SS22=SS12⊕(A1<<<12)为已知变量;
步骤二四、分析得到C1,G1,B0,F0(j=2)
分别对式(6)的第3、4步中存在能耗泄漏的函数FF1和GG1进行分析,由上述可知,B1=A0为已知固定值,A1为已知变量,C1=B0>>>9为固定未知,利用DPA/CPA分析对式(6)中的第3步中的函数FF1进行分析,得出C1,推导出FF1,进而可恢复出B0;F1=E0为已知固定值,E1为已知变量,G1=F0<<<19为未知常量,同理对函数GG1进行DPA/CPA分析,恢复出G1,推导出GG1,进而恢复出F0;
步骤二五、分析得到D1、H1、C0、G0(j=2)
再次分别对存在能耗泄漏的式(6)中的第3、4步进行分析,由上可知,SS12、SS22、W1、W1′、FF1(A1,B1,C1)和GG1(E1,F1,G1)均为已知变量,D1和H1为固定未知值,满足DPA/CPA分析条件,分别使用DPA/CPA分析得到D1和H1,进而由式(6)中的第5步和第9步得到C0和G0;
步骤二六、推算得到D0、H0(j=1),从而获得Kin
当j=1时,由于等式X=FF0(A0,B0,C0)+D0+SS21和Y=GG0(E0,F0,C0)+H0+SS11中除D0、H0外均为已知值,从而可推算得到D0和H0,从而得到Kin;
三、同步骤二中方法分析获得Kout
通过改变输入的消息分组m1,可得到不同的hn,则hn为已知可变,Kout为hn进行压缩运算时的初始状态(A0,B0,C0,D0,F0,G0,H0),为未知固定,不断改变第2组消息分组m1的输入值,进而改变hn的值,一层层地分析出Kout,具体的分析步骤与Kin一致;
对于Kin和Kout,分别使用了8次DPA/CPA分析,即可恢复出Kin和Kout,从而成功分析出SM3密码算法HMAC模式的敏感信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310310011.5A CN103457719B (zh) | 2013-07-23 | 2013-07-23 | 一种对sm3密码算法hmac模式的侧信道能量分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310310011.5A CN103457719B (zh) | 2013-07-23 | 2013-07-23 | 一种对sm3密码算法hmac模式的侧信道能量分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103457719A true CN103457719A (zh) | 2013-12-18 |
CN103457719B CN103457719B (zh) | 2016-06-08 |
Family
ID=49739716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310310011.5A Active CN103457719B (zh) | 2013-07-23 | 2013-07-23 | 一种对sm3密码算法hmac模式的侧信道能量分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103457719B (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105281890A (zh) * | 2014-07-22 | 2016-01-27 | 华中科技大学 | 一种折叠结构的sm3杂凑密码压缩运算电路 |
WO2016036491A1 (en) * | 2014-09-04 | 2016-03-10 | Intel Corporation | Sm3 hash algorithm acceleration processors, methods, systems, and instructions |
CN105991289A (zh) * | 2015-03-06 | 2016-10-05 | 上海复旦微电子集团股份有限公司 | Sm3密码算法的侧信道能量分析方法及装置 |
CN106161004A (zh) * | 2015-03-31 | 2016-11-23 | 上海复旦微电子集团股份有限公司 | 一种hmac-sm3密码算法的侧信道能量分析方法及装置 |
CN106161001A (zh) * | 2015-03-31 | 2016-11-23 | 上海复旦微电子集团股份有限公司 | Hmac-sm3密码算法的侧信道能量分析方法及装置 |
CN106230581A (zh) * | 2016-09-09 | 2016-12-14 | 杭州华为数字技术有限公司 | Sm3消息处理方法和装置 |
CN106301761A (zh) * | 2016-08-09 | 2017-01-04 | 北京智芯微电子科技有限公司 | 一种基于密码杂凑算法的压缩方法及装置 |
CN106355097A (zh) * | 2016-08-30 | 2017-01-25 | 北京壹人壹本信息科技有限公司 | 一种在Linux操作系统中进行加解密的方法及系统 |
CN106656459A (zh) * | 2016-11-17 | 2017-05-10 | 大唐微电子技术有限公司 | 一种针对sm3‑hmac的侧信道能量分析方法和装置 |
CN106982114A (zh) * | 2017-03-12 | 2017-07-25 | 成都信息工程大学 | 一种针对sm3密码算法消息扩展的侧信道分析攻击的方法 |
US9912481B2 (en) | 2014-03-27 | 2018-03-06 | Intel Corporation | Method and apparatus for efficiently executing hash operations |
US10038550B2 (en) | 2013-08-08 | 2018-07-31 | Intel Corporation | Instruction and logic to provide a secure cipher hash round functionality |
CN108604981A (zh) * | 2015-12-11 | 2018-09-28 | 巴黎矿业电信学院 | 用于估计秘密值的方法和设备 |
US10148428B2 (en) | 2012-12-29 | 2018-12-04 | Intel Corporation | Instruction and logic to provide SIMD secure hashing round slice functionality |
CN109547192A (zh) * | 2018-11-08 | 2019-03-29 | 北京大学 | Sm3密码杂凑算法的并行化优化方法 |
US10503510B2 (en) | 2013-12-27 | 2019-12-10 | Intel Corporation | SM3 hash function message expansion processors, methods, systems, and instructions |
US10592245B2 (en) | 2014-09-26 | 2020-03-17 | Intel Corporation | Instructions and logic to provide SIMD SM3 cryptographic hashing functionality |
CN111953488A (zh) * | 2020-08-28 | 2020-11-17 | 南方电网科学研究院有限责任公司 | 一种hmac-sm3算法的密钥获取方法、装置、设备和存储介质 |
CN114513311A (zh) * | 2022-02-25 | 2022-05-17 | 上海芯钛信息科技有限公司 | 一种改进消息认证码算法的方法、装置、设备和介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100322298A1 (en) * | 2008-02-06 | 2010-12-23 | Nec Corporation | Device for evaluating side-channel attack resistance, method for evaluating side-channel attack resistance, and program for evaluating side-channel attack |
CN103138917A (zh) * | 2013-01-25 | 2013-06-05 | 国家密码管理局商用密码检测中心 | 以s盒输入为基础的汉明距离模型在sm4密码算法侧信道能量分析的应用 |
-
2013
- 2013-07-23 CN CN201310310011.5A patent/CN103457719B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100322298A1 (en) * | 2008-02-06 | 2010-12-23 | Nec Corporation | Device for evaluating side-channel attack resistance, method for evaluating side-channel attack resistance, and program for evaluating side-channel attack |
CN103138917A (zh) * | 2013-01-25 | 2013-06-05 | 国家密码管理局商用密码检测中心 | 以s盒输入为基础的汉明距离模型在sm4密码算法侧信道能量分析的应用 |
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10148428B2 (en) | 2012-12-29 | 2018-12-04 | Intel Corporation | Instruction and logic to provide SIMD secure hashing round slice functionality |
US10686591B2 (en) | 2012-12-29 | 2020-06-16 | Intel Corporation | Instruction and logic to provide SIMD secure hashing round slice functionality |
US10038550B2 (en) | 2013-08-08 | 2018-07-31 | Intel Corporation | Instruction and logic to provide a secure cipher hash round functionality |
US10503510B2 (en) | 2013-12-27 | 2019-12-10 | Intel Corporation | SM3 hash function message expansion processors, methods, systems, and instructions |
US9912481B2 (en) | 2014-03-27 | 2018-03-06 | Intel Corporation | Method and apparatus for efficiently executing hash operations |
CN105281890A (zh) * | 2014-07-22 | 2016-01-27 | 华中科技大学 | 一种折叠结构的sm3杂凑密码压缩运算电路 |
CN105281890B (zh) * | 2014-07-22 | 2018-04-03 | 华中科技大学 | 一种折叠结构的sm3杂凑密码压缩运算电路 |
US11128443B2 (en) | 2014-09-04 | 2021-09-21 | Intel Corporation | SM3 hash algorithm acceleration processors, methods, systems, and instructions |
US10623175B2 (en) | 2014-09-04 | 2020-04-14 | Intel Corporation | SM3 hash algorithm acceleration processors, methods, systems, and instructions |
US11075746B2 (en) | 2014-09-04 | 2021-07-27 | Intel Corporation | SM3 hash algorithm acceleration processors, methods, systems, and instructions |
US9979538B2 (en) | 2014-09-04 | 2018-05-22 | Intel Corporation | SM3 hash algorithm acceleration processors, methods, systems, and instructions |
US9317719B2 (en) | 2014-09-04 | 2016-04-19 | Intel Corporation | SM3 hash algorithm acceleration processors, methods, systems, and instructions |
WO2016036491A1 (en) * | 2014-09-04 | 2016-03-10 | Intel Corporation | Sm3 hash algorithm acceleration processors, methods, systems, and instructions |
US10592245B2 (en) | 2014-09-26 | 2020-03-17 | Intel Corporation | Instructions and logic to provide SIMD SM3 cryptographic hashing functionality |
CN105991289B (zh) * | 2015-03-06 | 2018-12-25 | 上海复旦微电子集团股份有限公司 | Sm3密码算法的侧信道能量分析方法及装置 |
CN105991289A (zh) * | 2015-03-06 | 2016-10-05 | 上海复旦微电子集团股份有限公司 | Sm3密码算法的侧信道能量分析方法及装置 |
CN106161001A (zh) * | 2015-03-31 | 2016-11-23 | 上海复旦微电子集团股份有限公司 | Hmac-sm3密码算法的侧信道能量分析方法及装置 |
CN106161004B (zh) * | 2015-03-31 | 2019-03-26 | 上海复旦微电子集团股份有限公司 | 一种hmac-sm3密码算法的侧信道能量分析方法及装置 |
CN106161001B (zh) * | 2015-03-31 | 2019-03-26 | 上海复旦微电子集团股份有限公司 | Hmac-sm3密码算法的侧信道能量分析方法及装置 |
CN106161004A (zh) * | 2015-03-31 | 2016-11-23 | 上海复旦微电子集团股份有限公司 | 一种hmac-sm3密码算法的侧信道能量分析方法及装置 |
CN108604981A (zh) * | 2015-12-11 | 2018-09-28 | 巴黎矿业电信学院 | 用于估计秘密值的方法和设备 |
CN108604981B (zh) * | 2015-12-11 | 2021-12-10 | 巴黎矿业电信学院 | 用于估计秘密值的方法和设备 |
CN106301761A (zh) * | 2016-08-09 | 2017-01-04 | 北京智芯微电子科技有限公司 | 一种基于密码杂凑算法的压缩方法及装置 |
CN106301761B (zh) * | 2016-08-09 | 2019-04-09 | 北京智芯微电子科技有限公司 | 一种基于密码杂凑算法的压缩方法及装置 |
CN106355097A (zh) * | 2016-08-30 | 2017-01-25 | 北京壹人壹本信息科技有限公司 | 一种在Linux操作系统中进行加解密的方法及系统 |
CN106230581A (zh) * | 2016-09-09 | 2016-12-14 | 杭州华为数字技术有限公司 | Sm3消息处理方法和装置 |
CN106230581B (zh) * | 2016-09-09 | 2019-05-21 | 杭州华为数字技术有限公司 | Sm3消息处理方法和装置 |
CN106656459A (zh) * | 2016-11-17 | 2017-05-10 | 大唐微电子技术有限公司 | 一种针对sm3‑hmac的侧信道能量分析方法和装置 |
CN106982114A (zh) * | 2017-03-12 | 2017-07-25 | 成都信息工程大学 | 一种针对sm3密码算法消息扩展的侧信道分析攻击的方法 |
CN106982114B (zh) * | 2017-03-12 | 2020-11-27 | 成都信息工程大学 | 针对sm3密码算法消息扩展的侧信道分析攻击的方法 |
CN109547192B (zh) * | 2018-11-08 | 2020-11-03 | 北京大学 | Sm3密码杂凑算法的并行化优化方法 |
CN109547192A (zh) * | 2018-11-08 | 2019-03-29 | 北京大学 | Sm3密码杂凑算法的并行化优化方法 |
CN111953488A (zh) * | 2020-08-28 | 2020-11-17 | 南方电网科学研究院有限责任公司 | 一种hmac-sm3算法的密钥获取方法、装置、设备和存储介质 |
CN114513311A (zh) * | 2022-02-25 | 2022-05-17 | 上海芯钛信息科技有限公司 | 一种改进消息认证码算法的方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103457719B (zh) | 2016-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103457719B (zh) | 一种对sm3密码算法hmac模式的侧信道能量分析方法 | |
CN103138917B (zh) | 以s盒输入为基础的汉明距离模型进行sm4密码算法侧信道能量分析方法 | |
CN103227717B (zh) | 选择轮密钥异或输入进行sm4密码算法侧信道能量分析的方法 | |
CN103647637B (zh) | 一种对简单掩码的sm4算法进行二阶侧信道能量分析方法 | |
CN103166752B (zh) | 选择轮函数为攻击对象进行sm4密码算法侧信道能量分析的应用 | |
CN103825722B (zh) | 一种sm4密码算法的二阶侧信道能量分析方法 | |
CN108521325B (zh) | 一种适用于系统数据全生命周期的防侧信道攻击方法 | |
CN103199983B (zh) | 侧信道能量分析中的n阶局域能量模型及其应用 | |
CN102624519B (zh) | 一种面向无线传感器网络的互扰复合混沌流密码实现方法 | |
CN101951314B (zh) | 对称密码加密中s-盒的设计方法 | |
Mihaljević et al. | Generic cryptographic weakness of k-normal Boolean functions in certain stream ciphers and cryptanalysis of grain-128 | |
Duan et al. | Differential power analysis attack and efficient countermeasures on PRESENT | |
CN109756322A (zh) | 基于des结构与dna编码的数字图像加密方法 | |
CN104852795A (zh) | 一种轮输出为布尔掩码的zuc序列密码算法掩码防护方法 | |
CN110263586A (zh) | 一种混沌密码系统的硬件安全评估方法 | |
Liu et al. | Chaos-based color image encryption using one-time keys and Choquet fuzzy integral | |
CN104796250A (zh) | 针对RSA密码算法M-ary实现的侧信道攻击方法 | |
CN103259647A (zh) | 加密系统边信道攻击测试方法 | |
CN104967509B (zh) | 一种轮输出为算术掩码的zuc序列密码算法掩码防护方法 | |
Wang et al. | A power analysis on SMS4 using the chosen plaintext method | |
CN103166965B (zh) | 一种基于子空间属性的多源网络编码污染防御方法 | |
CN104811297A (zh) | 针对RSA之M-ary实现模乘余数输入侧信道攻击 | |
CN103888245A (zh) | 一种智能卡的s盒随机化方法和系统 | |
CN104811295A (zh) | 一种对具备掩码防护的祖冲之密码算法进行侧信道能量分析方法 | |
CN104618098A (zh) | 一种集合成员关系判定的密码学构造方法及系统 |
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 |