针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法

文档序号:7813292阅读:289来源:国知局
针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法
【专利摘要】本发明公开了一种针对SM4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法,包括以下步骤:S1:通过选择明文或密文输入Xi+0、Xi+1、Xi+2和Xi+3,并使其满足Xi+1、Xi+2和Xi+3三者的异或结果为定值,同时保证Xi+0的随机性,采用侧信道能量攻击方法攻击出前四轮轮函数每轮线性变换L的输出Ci,再由所述输出Ci反推出加密运算或者解密运算的前四轮轮函数的轮子密钥rki;S2:根据所述前四轮轮函数的轮子密钥rk0、rk1、rk2和rk3,通过密钥扩展算法,逆向计算出初始密钥。采用上述分析方法可以实现经过多次攻击的方式进行能量分析攻击,可以根据实际的计算能力,选择合适长度的比特进行攻击。从而增强了分析的灵活性、有效性和成功率。
【专利说明】针对SM4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法

【技术领域】
[0001]本发明涉及密码算法分析检测领域,尤其涉及一种针对SM4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法。

【背景技术】
[0002]随着信息和分析电路技术的发展,对硬件密码电子设备的破解不再单纯的停留在协议和算法上,而是从其处理数据的过程中泄露的信息入手,进行破解。硬件密码电子设备在处理信息的工程中存在能量、电磁、错误和时间等信息的泄露,利用这些泄露的信息对密码电子设备进行攻击,就是所谓的侧信道攻击(Side Channel Attacks),侧信道攻击可分为能量分析攻击、电磁攻击和错误攻击等,其中能量分析攻击因效率较高,成为侧信道的主要手段。
[0003]侧信道能量分析攻击是通过采集加密芯片等硬件密码电子设备在进行加、解密或签名等操作时产生的能量消耗,利用密码学和统计学原理等,分析和破译密钥信息的一种攻击方式,侧信道能量分析攻击又分为简单能量分析攻击(Simple Power Analysis,SPA)、差分能量分析攻击(Differential Power Analysis, DPA)和相关性能量分析攻击(Correlat1n Power Analysis, CPA)。
[0004]在侧信道能量分析攻击中,CPA和DPA相比SPA具有更强的攻击性,所以能量分析攻击中比较常用的是CPA和DPA。
[0005]其中,DPA攻击的过程如下:
[0006](I)随机选择N组不相同明文或密文MiQ e [I,N])进行加/解密运算,采集每组明文进行加密运算时设备产生的能量曲线Kt),t e {1,...,k},其中k为能量轨迹的采样点数。
[0007](2)选择密钥K1 (I e Ω,Ω为密钥空间),计算在K1和Mi条件下,密码算法进行加密运算时在被攻击点产生的中间值Du。
[0008](3)根据中间值Diil确定选择函数F(MpK1),根据选择函数将Kt)分为两个子集S0和S1,定义式如下:
[0009]S0 = (Ti (t) IF (Mi, K1) = 0}
[0010]S1 = (Ti (t) F (Mi, K1) =1}
[0011](4)计算每个采样点上两个子集的能量平均之差,如
[0012]S=^zfllSi所示,其中 IstlI 和 Is1I 分别表示集合 SjPS1 中元素的个数。
[0013]若K1选择不正确,当N比较大时,两个子集均值差S将趋近于零;若K1选择正确,在均值差S中将会出现一个最大尖峰,通过该尖峰即可确定K1选择正确。
[0014]CPA攻击的过程如下:
[0015](I)随机选择N组不相同明文或密文MiQ e [I,N])进行加/解密运算,采集每组明文进行加密运算时设备产生的能量曲线Kt),t e {1,...,k},其中k为能量轨迹的采样点数。
[0016](2)选择密钥K1 (I e Ω,Ω为密钥空间),计算在K1和Mi条件下,密码算法进行加密运算时在被攻击点产生的中间值Du。
[0017](3)取中间值Du的汉明距离或者汉明重量建立能量模型Iii,1;根据
n._ EgChu-HDCTiW-硕)
[0018]扣(h,.,-h;)2 Σ?((Tiω-?^?))2 式计算 Ti 和 hU 相关性 P I。
[0019](4)取相关系数最大值时对应的K1,即为实际密钥。
[0020]SM4算法是分组长度和密钥长度均为128bit,加密算法和解密算法均为32轮的非线性迭代密码算法,其加密算法和解密算法结构相同,只是运算时轮密钥使用的顺序相反,解密轮密钥是加密轮密钥的逆序。SM4加密算法的详细流程如图1所示。
[0021]在图1中Xie Zf2 ( Zf表示ebit的向量集),明文输入为(X0,Xl,X2,X3)6 (Zf )4,密文输出为(Y0,Yl, Y2, Y3),其中XnXi+1>Xi+2和Xi+3为轮迭代运算函数F的输入,rki e Z|2为每轮的轮密钥,i e {0,1,2,…,31}。
[0022]从加密的流程可以看出,轮迭代函数F包括的运算有异或、非线性变换T和线性变换L,轮迭代函数的表达式为:Xi+4=F(Xi,Xi+l,Xi+2,Xi+3,rki)=Xi十T(Xj+ι十Xi+2十Xi+3十rkj),在改表达式中,T表不合成置换,是由非线性变换T和线性变换L复合而成,迭代函数F的详细的流程如图2所示,在整个SM4密码算法的加解密过程中,一共要执行32轮这样的轮迭代函数F。
[0023]令res】=T(Xj+i ? Xj+2 ? Xi+3 ? rkj),则:
[0024]Xi+4=F(Xi,Xi+l,Xi+2,Xi+3,rki)=Xi 十 T(Xi+1 十 Xi+2 十 Xi+3 十咖)变为:
[0025]Xi+4=F(Xi,Xi+1 ,Xi+2,Xi+3, rk()=Xi 十 res;
[0026]非线性变换T是由4个并行S盒子构成,每个S盒子为固定的8bit输入8bit输出的置换,记为Sbox(.)。
[0027]设输入为Ai=Hi10IlaiIiIIaijIIaL3=Xi+! ? Xi+2 十 Xi+3 ? rkj,其中 ai() 6 Z.2,表示第i轮第j(j e {0,1,2,3})个S盒子的输入,I I表示两个数据bit的拼接,输出为Bi =bij0 IbiilI bij2 I bu,、」表示第i轮、第j个S盒子的输出,则非线性变换T为:Bi = T(Ai)=Sbox (aij0) I Sbox (aia) | Sbox (aij2) | Sbox (aU3)
[0028]线性变换L的描述如下所示,
[0029]Ci=L(Bi)=Bi 十(Βι<?2)十促《<10)十供《<18)十说《<24 )
[0030]在该式中,Ci e Ζ|2,Bi e Z|2 ,Ci为线性变换L的输出,Bi为线性变换L的输入,同时也是非线性变换T的输出。
[0031]对SM4密码算法的能量分析方法通常选取S盒的输出、L移位的输出作为攻击对象,使用汉明重量、单比特模型,利用DPA和CPA方法进行分析。这些方法仅利用了典型的分析点。
[0032]SM4的密钥扩展算法:轮密钥由加密密钥通过密钥扩展算法生成,其结构与加密变换类似。设加密密钥为 MK= (MKQ,MK1,MK2,MK3),i = 0,l,2,3t)$Ki G , i = 0,1,…,35,
轮密钥rki e Z|2, i = 0,131,则轮密钥生成方法如下式所示:
[0033](K0, K1, K2, K3) = (MK0 十 FK0, MK1 十 FK1, MK2 十 FK2, MK3 十 FK3)
[0034]rkj — Kj+4 = Kj ? T (Kj+i ? Κ;^_2 ? Kj+3 ? CKj)
[0035]其中,T'变换与加密变换中的T变换基本相同,只是其中的线性变换L必须修改为以下L,:
[0036]L' (B) = B 十(B <<< 13) 0 (B <<< 23)
[0037]系统参数FKiQ = 1,2,3)的取值,采用16进制表示为:
[0038]FK0 = A3B1BAC6, FK1 = 56AA3350, FK2 = 677D9197, FK3 = B27022DC
[0039]固定参数CK的取值方法为:设Ckij为CKi的第j字节(i = 0,1,...,31 ;j = 0,1,2,3),BPCKi = (CkijOzCkijllCki2^ku) E (z|)4,则 Cki, J = (4i+j)*7(mod256)。32 个固定参数CKi用16进制表示为:
[0040]00070el5,Ic232a31,383f464d,545b6269,
[0041]70777e85,8c939aal, a8afb6bd, c4cbd2d9,
[0042]e0e7eef5, fc030all,181f262d,343b4249,
[0043]50575e65,6c737a81,888f969d,a4abb2b9,
[0044]c0c7ced5, dce3eafI, f8ff060d,141b2229,
[0045]30373e45,4c535a61,686f767d,848b9299,
[0046]a0a7aeb5, bcc3cadl, d8dfe6ed, f4fb0209,
[0047]10171e25,2c333a41,484f565d,646b7279
[0048]根据密钥扩展算法,反推出密钥的方法如下:
[0049]a、加密运算:
[0050]对于加密运算,攻击出前四轮的轮子密钥riv rk1;rk2和rk3,根据密钥扩展算法得下式:
[0051]-T^0 =? TiKi ④ Ar2 十.A73 ① CK0) (I)
[0052]^k1 = K5 — K1 ? T{K2 ① A3 Φ 尤4 Φ CKx) (2)
[0053]rk2 = K6 = K2 ? Φ K4 ? K5 Φ CK^) (3)
[0054]= K1 = Kz ? Τ{ΚΑ ? K5 ? ? CK^) (4)
[0055]由(I)、⑵、(3)和(4)式可得K3,如(5)式所示。
[0056]K3(rk0 Θ rkx 十 rk2 十 CK3) (5)
[0057]由(3)和(5)式得K2,如(6)式所示。
[0058]K2 =rk2?T (K3 十 rk0 十 rkx 十 CK2 ) (6)
[0059]由⑵、(5)和(6)式得K1,如(7)式所示。
[0060]κ\ = rK 十 7? 十尺3 十 rk0 Θ CK1) (7)
[0061]由(2)、(5)和(6)式得K。,如(8)式所示。
[0062]Ko =rkQ?T(K1 十尺2 十 A:3 十 CK0) (8)
[0063]KKt^KpK2iK3) = (MKQ? FKq,ΜΚλ@ FK1,MK2? FK2,MK3 ? FK3),所以可得密钥为 MKo = X0 ? FK0 MK1 = AT, 0 FK1 MK2 =尤2 十 FK2,AdK3 =尺3 十 FK3
[0064]b、解密运算:
[0065]对于解密运算,攻击出前四轮的轮子密钥riv rk1;rk2和rk3,根据密钥扩展算法得下式:
[0066]rK =尤35 =尤31 十 r(K32 0 K33 十 K从十 CK31) ( 9 )
[0067]rK =尺34 =尤30 十 了(^3I 十 Kyi 十尤33 十 CK30) (I。)
[0068]rk2: K33 = K29 十T?Κ30 十欠31 ΦK32 ΦCK29) (H )
[0069]rK = Kyi = K28 十T{Κ29 θK30 十X3I ΦCK29) Q2)
[0070]由(9)、(10)、(11)和(12)式子,得到K32、K32、K34 和 K35, i 取 31 到0,计算 K =K,+4?T(K,+1?K,+2?K,+3?CK),即可得到 K。,K1, K2,K3,又(JCQ,K\,K2,Kd = {ΜΚ0?FKQ,MKX?FKpMK^?FK2,MK3?FK3) f 所以可得密钥为MK0=K0BFK0 ^ MKi=Ki^FK',MK1=K1^FK2,MK3 = K3 @FK3
[0071]目前,也有选择轮函数的输出作为攻击对象的能量分析方法,即以轮函数输出 Vir(L-1XlV4)j=(L-1Xf)j 十 <Xf+1J 十 Xf+2J 十 XJV3j 十 Aij)实施侧信道能量分析攻击,其中是输入第k组明文或密文时,第i轮轮密钥第j个字节的攻击对象,
i e {0,1,2,3}, j e {0,1,2,3}, T1(X)是对L(X)的逆运算。而此攻击对象的计算方法:
vfr(L-1X1k+4)j=(L-1X1k)j 十 τ(Χ|^ 十 XlV2j 十 XjV3 j 十 ri^),决定了在对 SM4 密码算法实施CPA或DPA侧信道能量分析攻击时,只能是按照字节的倍数进行攻击,而不能以轮函数输出的任意比特例如单比特进行CPA或DPA侧信道能量分析攻击。


【发明内容】

[0072]本发明的目的是提供一种针对SM4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法,以解决现有SM4密码算法的能量分析方法不能以轮函数输出的任意比特进行CPA或DPA侧信道能量分析攻击的问题,可以根据实际的计算能力,选择合适长度的比特进行攻击,从而增强了分析灵活性、有效性和成功率。
[0073]为解决上述技术问题,本发明提供一种针对SM4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法,具体包括以下步骤:
[0074]S1:通过选择明文或密文输入值Xi+Q、Xi+1、Xi+2和Xi+3,并使其满足Xi+1、Xi+2和Xi+3三者的异或结果为固定数,同时保证xi+(l的随机性,采用侧信道能量攻击方法攻击出前四轮轮函数的线性变换L的输出Ci,再由所述输出Ci反推出加密运算或者解密运算的前四轮轮函数的轮子密钥rki;其中,i = 0,1,2,3 ;
[0075]S2:根据攻击出的前四轮的轮子密钥,通过密钥扩展算法,反推出初始密钥。
[0076]进一步地,SI具体包括以下步骤:
[0077]Sll:攻击加/解密的第一轮,初始化i = O ;
[0078]S12:选择明文或密文输入值Xi+0、Xi+1、Xi+2和Xi+3,使Xi+1、Xi+2和Xi+3三者的异或结果为固定数,用D来表示,为Φ ^+2 Φ ^+3,同时保证Xi+0的随机性;
[0079]S13:采用侧信道能量攻击方法攻击出第i轮轮函数的线性变换L的输出Ci ;所述侧信道能量攻击方法采用CPA攻击方法或DPA攻击方法;
[0080]S14:根据所述输出Ci由线性变换的逆变换反推出对应的输入Bi,再根据S盒子的输入输出关系由Bi反推出唯一的S盒子输入Ai,再利用么=1/+1 Θ Ij+2 θ J/+3 Θ埤得出rki ;
[0081]S15:使i自增1,返回步骤S12继续攻击下一轮,直到得出加密运算或者解密运算的前四轮的轮子密钥rlv rkp rk2和rk3。
[0082]进一步地,S13中采用的侧信道能量攻击方法为CPA攻击方法,所述CPA攻击方法包括以下步骤:
[0083]S1311:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t);
[0084]S1312:获取C|'j+i_1的所有可能值,表示为c e [0,21-"),根据c和第η条曲线对应的明文或密文输入,计算SM4第i轮轮函数的输出X=M=X卩+?_1十C,将轮函数的输出Xfitw为攻击的中间数据,如果攻击时选择汉明重量模型,则计算XfjJ的汉明重量,表示为hn,e=HW(X^J_1);如果攻击时选择汉明距离模型,则计算Χ--_1的汉明距离,表示为 Ivc=HW(X^-1C1)5

—ZSd(Vc-H7)(Tn(t)-爾)
[0085]81313:根据1^'C 加(Vc-H^ScrnW-爾计算 T"(t)和 hn,。的相关性
[0086]S1314:取相关系数最大值时对应的C,即为Cp+Z—1对应的实际数据;
[0087]S1315:使j = j+1,如果j+1-l彡32,取I = 32-j+l,否则I保持不变,跳转到步骤S1312继续攻击Ci剩余的比特数据,直到Ci的所有比特被攻击完为止。
[0088]进一步地,S13中采用的侧信道能量攻击方法为DPA攻击方法,所述DPA攻击方法包括以下步骤:
[0089]S1321:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t);
[0090]S1322:获取Cfj+Z_1的所有可值,表示为c e [0,21-"),根据c和第η条曲线对应的明文或密文输入,计算SM4第i轮轮函数的输出十c,将轮函数的输出χ--?—1作为攻击的中间数据,如果攻击时选择汉明重量模型,则计算χ1--_1的汉明重量,表示为hn<e=HW(xl:j^_1);如果攻击时选择汉明距离模型,则计算χ|3_?的汉明距离,表示为hn,c=HW(X⑵-1①旧-1);
[0091]S1323:如果 I = 1,确定 DPA 选择函数F(XiAhiur)=I^ = 如果 I 不为 1,ilhnc = |1 或2|
确定 DPA 选择函数为:F(Xi, c, hn c)=J' , ? ,;
(O hn,c = _2j
[0092]S1324:根据选择函数将Tn(t)分为两个子集Stl和S1,S0和S1定义式如下所示:
[0093]S0 = (Ti (t) IF (Mi, K1) = 0},
[0094]S1 = (Ti (t) F (Mi, K1) =1};
[0095]S1325:根据S1 -S0计算每个采样点上两个子集的能量平均之差,在均值差s中出现一个最大尖峰时对应的c,即为Cp+卜1对应的实际数据;
[0096]S1326:使j = j+1,如果j+1-l彡32,取I = 32-j+l,否则I保持不变,跳转到步骤S1322继续攻击Ci剩余的比特数据,直到Ci的所有比特被攻击完为止。
[0097]本发明的有益效果为:针对SM4密码算法轮函数输出的侧信道能量分析攻击的方法,创造性地选择具有一定约束关系的明文或明文输入,以每轮线性变换L的输出作为攻击目标,以SM4密码算法轮函数输出作为能量分析攻击的中间数据。先利用侧信道能量分析攻击出线性变换L的输出,再由线性变换L的输出反推出轮子密钥rkit)在能量分析攻击出线性变换L的输出时,可以根据实际的运算能力选择一次攻击任意I比特,通过多次攻击的方式实现针对SM4密码算法的能量分析攻击,使针对SM4密码算法的能量分析攻击具有更实际的应用性。从而增强了分析的灵活性、有效性和成功率。

【专利附图】

【附图说明】
[0098]图1为SM4加密算法流程图;
[0099]图2为迭代函数F的流程图;
[0100]图3为针对SM4密码算法轮函数输出的选择明文或密文的CPA攻击方法的流程图;
[0101]图4为针对SM4密码算法轮函数输出的选择明文或密文的DPA攻击方法的流程图。

【具体实施方式】
[0102]下面对本发明的【具体实施方式】进行描述,以便于本【技术领域】的技术人员理解本发明,但应该清楚,本发明不限于【具体实施方式】的范围,对本【技术领域】的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
[0103]针对SM4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法,具体包括以下步骤:
[0104]S1:通过选择明文或密文输入值xi+0、xi+1、xi+2和xi+3,使xi+1、xi+2和xi+3三者的异或结果为固定数,采用侧信道能量攻击方法攻击出前四轮轮函数的每轮线性变换L的输出Ci,再由所述输出Ci反推出加密运算或者解密运算的前四轮轮函数的轮子密钥rki;其中,i=O,I,2,3 ;
[0105]S2:根据所述前四轮轮函数的轮子密钥和A3,通过密钥扩展算法,逆向计算出初始密钥。
[0106]其中,SI具体包括以下步骤:
[0107]Sll:首先攻击加/解密的第一轮,此时初始化i = O。
[0108]S12:选择明文或密文输入Xi+Q、Xi+1、Xi+2和Xi+3,使其满足Xi+1、Xi+2和Xi+3三者的异或结果为固定数,用D来表示,则Xi+1、Xi+2和Xi+3满足的约束条件如(I)式所示,同时保证X1的随机性。
[0109]D=A+1 ? ^1+2 ? ^+3(1)
[0110]S13:采用侧信道能量攻击方法攻击出第i轮轮函数的线性变换L的输出Ci ;所述侧信道能量攻击方法采用CPA攻击方法或DPA攻击方法;
[0111]S14:根据攻击出的Ci,采用线性变换的逆变换反推出对应的的输ABi ;线性变换L还可以用复合域中的矩阵运算来表示,即如(2)式所示,(2)式的逆运算如(3)式所示,在
(2)和(3)式中,矩阵T和T'的值如(4)和(5)所示。
[0112]Ci = BjT (2)
[0113]Bi = T' ^Ci (3)
[0114]

【权利要求】
1.针对SM4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法,其特征在于,所述方法包括以下步骤: 51:通过选择明文或密文输入Xi+(l、Xi+1、Xi+2和Xi+3,并使其满足Xi+1、Xi+2和Xi+3三者的异或结果为定值,同时保证Xi+(l的随机性;采用侧信道能量攻击方法攻击出前四轮轮函数每轮线性变换L的输出Ci ;再由所述输出Ci反推出加密运算或者解密运算的前四轮轮函数的轮子密钥rki;其中,i = 0,1,2,3 ; 52:根据所述前四轮轮函数的轮子密钥rlv Fk1Ik2和rk3,通过密钥扩展算法,反推出初始密钥。
2.根据权利要求1所述的针对SM4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法,其特征在于,所述SI具体包括以下步骤: 511:攻击加/解密的第一轮,初始化i = O ; 512:选择明文或密文输入值Xi+Q、Xi+1、Xi+2和Xi+3,使其满足Xi+1、Xi+2和Xi+3三者的异或结果为固定数,用D来表示,为D=A+1 θ ^+2十勾+3,同时保证Xi+(l的随机性; 513:采用侧信道能量攻击方法攻击出第i轮轮函数的线性变换L的输出Ci ;所述侧信道能量攻击方法采用CPA攻击方法或DPA攻击方法; 514:根据所述输出Ci由线性变换的逆变换反推出对应的输入Bi,再根据S盒子的输入输出关系由Bi反推出唯一的S盒子输入Ai,再利用?A+2十勾+3十得出rki; 515:使i自增1,返回步骤S12继续攻击下一轮,直到得出加密运算或者解密运算的前四轮的轮子密钥rkQ、rkp rk2和rk3。
3.根据权利要求2所述的针对SM4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法,其特征在于,所述S13中采用的侧信道能量攻击方法为CPA攻击方法,所述CPA攻击方法包括以下步骤: 51311:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t); 51312:获取Ci'j+i_1的所有可能值,表示为c e [Od1-1]),根据c和第η条曲线对应的明文或密文输入,计算SM4第i轮轮函数的输出Χ1’|^_1=Χ卩+i_1 0 C,将轮函数的输出 为攻击的中间数据,如果攻击时选择汉明重量模型,则计算xii?的汉明重量,表示为hn,e=HW(Ci_1);如果攻击时选择汉明距离模型,则计算X=—1的汉明距离,表示为Hnic=HWCXli^-1 ?XH3i_1).? _ Z!;=^(hn,c-h7)(Tn(t)-Tft)) 51313:根据 t,c (hn c_^-)2 ?ν(Tn(t)_爾)2计算 I (t)和 hn.c 的相关性 Pt,c; 51314:取相关系数最大值时对应的C,即为Cfj+i_1对应的实际数据; 51315:使j = j+1,如果j+1-l彡32,取I = 32-j+l,否则I保持不变,跳转到步骤S1312继续攻击Ci剩余的比特数据,直到Ci的所有比特被攻击完为止。
4.根据权利要求2所述的针对SM4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法,其特征在于,所述S13中采用的侧信道能量攻击方法为DPA攻击方法,所述DPA攻击方法包括以下步骤: 51321:采集SM4密码设备上加/解密时的能量曲线表示为Tn(t); 51322:获取Cp+卜1的所有可值,表示为c e [Od1-1]),根据c和第η条曲线对应的明文或密文输入,计算SM4第i轮轮函数的输出xi:j^_1=xi'j+Z_1十C,将轮函数的输出 作为攻击的中间数据,如果攻击时选择汉明重量模型,则计算χ|'--_1的汉明重量,表示为hn<e=HW(X^J_1);如果攻击时选择汉明距离模型,则计算:Χ$Ζ_1的汉明距离,表示为 hn,c=HW(X^-1 ΘΧ|5?_1); 51323:如果I = I,确定DPA选择函数F(Xi^hrur)=G h" ' = 如果I不为b确定

(I hnc = I域 2|DPA 选择函数为:F(Xi;c,hn,c)=.';

(O hn,c = [im 2j51324:根据选择函数将Tn(t)分为两个子集Stl和S1,S0和S1定义式如下所示:
50= (TiU) F(Mi7K1) = O},
51= (TiU) F(Mi7K1) = 1}; 51325:根据S=j^jXiSllS1-计算每个采样点上两个子集的能量平均之差,在均值差S中出现一个最大尖峰时对应的c,即为Cf+卜1对应的实际数据; 51326:使j = j+1,如果j+1-l彡32,取I = 32-j+l,否则I保持不变,跳转到步骤S1322继续攻击Ci剩余的比特数据,直到Ci的所有比特被攻击完为止。
【文档编号】H04L29/06GK104202145SQ201410446072
【公开日】2014年12月10日 申请日期:2014年9月4日 优先权日:2014年9月4日
【发明者】杜之波, 吴震, 饶金涛, 王敏, 李大为, 罗鹏 申请人:成都信息工程学院, 成都芯安尤里卡信息科技有限公司, 国家密码管理局商用密码检测中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1