[发明专利]一种对SM3密码算法HMAC模式的侧信道能量分析方法有效
申请号: | 201310310011.5 | 申请日: | 2013-07-23 |
公开(公告)号: | CN103457719A | 公开(公告)日: | 2013-12-18 |
发明(设计)人: | 罗鹏;曹伟琼;李大为 | 申请(专利权)人: | 国家密码管理局商用密码检测中心 |
主分类号: | H04L9/06 | 分类号: | H04L9/06;H04L29/06 |
代理公司: | 北京东正专利代理事务所(普通合伙) 11312 | 代理人: | 刘瑜冬 |
地址: | 100036*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sm3 密码 算法 hmac 模式 信道 能量 分析 方法 | ||
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模式的敏感信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国家密码管理局商用密码检测中心,未经国家密码管理局商用密码检测中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310310011.5/1.html,转载请声明来源钻瓜专利网。