CN104868990B - 一种针对sm4密码算法轮输出的模板攻击方法 - Google Patents
一种针对sm4密码算法轮输出的模板攻击方法 Download PDFInfo
- Publication number
- CN104868990B CN104868990B CN201510176805.6A CN201510176805A CN104868990B CN 104868990 B CN104868990 B CN 104868990B CN 201510176805 A CN201510176805 A CN 201510176805A CN 104868990 B CN104868990 B CN 104868990B
- Authority
- CN
- China
- Prior art keywords
- template
- wheel
- output
- input
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000012706 support-vector machine Methods 0.000 claims abstract description 26
- 230000009466 transformation Effects 0.000 claims abstract description 20
- 238000004458 analytical method Methods 0.000 claims abstract description 13
- 239000013598 vector Substances 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 6
- 238000012360 testing method Methods 0.000 claims description 6
- 239000011159 matrix material Substances 0.000 claims description 5
- 230000009467 reduction Effects 0.000 claims description 4
- 235000012364 Peperomia pellucida Nutrition 0.000 claims description 3
- 240000007711 Peperomia pellucida Species 0.000 claims description 3
- 238000000513 principal component analysis Methods 0.000 claims description 3
- 238000012549 training Methods 0.000 claims description 2
- 238000006243 chemical reaction Methods 0.000 abstract description 4
- 230000006870 function Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000000354 decomposition reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- OYPRJOBELJOOCE-UHFFFAOYSA-N Calcium Chemical compound [Ca] OYPRJOBELJOOCE-UHFFFAOYSA-N 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000682 scanning probe acoustic microscopy Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种针对SM4密码算法轮输出的模板攻击方法。该方法以特殊的路输入为前提,将SM4算法轮输出作为攻击点,选择轮输出的汉明重量或者汉明距离建立模板,以较少的模板数量就能实现针对SM4密码算法轮输出的模板攻击;同时在模板匹配阶段以选择性的输入作为基础,利用支持向量机作为判别分析的工具,只需要两次匹配就可以破解出线性变换输出的一个比特,再有非线性变换和线性变换的逆变换反推出轮子密钥。该方法有效解决了现阶段针对SM4密码算法轮数的模板攻击不可行的问题。
Description
技术领域
本发明涉及密码算法分析检测领域,尤其涉及一种针对SM4密码算法轮输出的模板攻击的方法。
背景技术
随着信息和分析电路技术的发展,对硬件密码电子设备的破解不再单纯的停留在协议和算法上,而是从其处理数据的过程中泄露的信息入手,进行破解。硬件密码电子设备在处理信息的工程中存在能量、电磁、错误和时间等信息的泄露,利用这些泄露的信息对密码电子设备进行攻击,就是所谓的侧信道攻击(Side Channel Attacks),侧信道攻击可分为能量分析攻击、电磁攻击和错误攻击等,其中能量分析攻击因效率较高,成为侧信道的主要手段。
模板攻击是基于密码芯片能量消耗与正在处理数据的相关性的基础上实施的。其攻击过程通常包括两个阶段:第一个阶段是对所有可能猜测密钥的能量消耗特征进行刻画;第二个阶段是采集被攻击密码芯片上的侧信道信息,计算其与所刻画的能量消耗特征的匹配程度,即可得到有关正确密钥的信息。由于模板攻击非常有效、实现简单且无需大量资源,所以目前是侧信道分析攻击研究领域的重点之一。
支持向量机是建立在统计学习理论和结构风险最小化的原理基础上的一种极其学习的方法。支持向量机是数据挖掘中的一项新技术,是借助于最优化方法解决机器学习的问题的新工具,它由Vapnik等提出的一种新的机器学习方法,它以结构风险最小为原则,它本质上是求解凸二次规划问题,在解决小样本、非线性和高维模式识别问题中有较大优势。当样本为两类可分时,其基本思想是对于样本集(xi,yi),i=1,2,…,n,x∈Rd,y∈{-1,+1},通过非线性的核函数把样本从原始的数据空间映射到高维的特征空间Ω,在高维的特征空间上构造一个最优的分类超平面,使得分类的数据被超平面正确的分开。通过引入满足 Mercer,条件的核函数K(xi,yi),求解二次规划的问题:
条件
其中,α为拉格朗日乘数,常数C为惩罚因子,实现分类间隔和错误率之间的折衷。利用KKT条件求得域值b*,从而得到最优分类决策函数为:
其中sgn()为符号函数,由f(x)的正负即可判定样本x所属的类别。
支持向量机算法最初是为二值分类问题设计的,当处理多类问题时,就需要构造合适的多类分类器。目前,构造SVM多类分类器的方法主要有两类:一类是直接法,直接在目标函数上进行修改,将多个分类面的参数求解合并到一个最优化问题中,通过求解该最优化问题“一次性”实现多类分类。这种方法看似简单,但其计算复杂度比较高,实现起来比较困难,只适合用于小型问题中;另一类是间接法,主要是通过组合多个二分类器来实现多分类器的构造,常见的方法有one-against-one和one-against-all两种。
一对多的模型。其原理是训练时依次把某个类别的样本归为正类,其他剩余的样本归为负类,这样k个类别的样本就构造出了k个支持向量。分类时将未知样本分类为具有最大分类函数值的那类。
一对一模型,其原理是在任意两类样本之间设计一个支持向量,因此k个类别的样本就需要设计k(k-1)/2个支持向量。当对一个未知样本进行分类时,最后得票最多的类别即为该未知样本的类别,这种建立的SVM数量较多。
SM4算法是一个分组密码算法,分组长度为128比特,密钥长度为128比特,加密算法与密钥扩展算法都采用32轮非线性迭代结构。加密算法与解密算法的结构相同,只是轮密钥的使用顺序相反。下面以加密算法和密钥扩展算法为例,介绍SM4算法。
SM4加密算法SM4加密算法的详细流程如图1所示。在该图中, (表示ebit的向量集),明文输入为密文输出为 (Y0,Y1,Y2,Y3),其中Xi、Xi+1、Xi+2和Xi+3为轮迭代运算函数F的输入,为每轮的轮密钥,i∈(0,1,2,...,31)。
从加密的流程可以看出,轮迭代函数F包括的运算有异或、非线性变换τ和线性变换L,轮迭代函数的表达式如下式(1-1)所示,在(1-1)式中,T表示合成置换,是由非线性变换τ和线性变换L复合而成,迭代函数F的详细的流程如下图2所示,在整个SM4密码算法的加解密过程中,一共要执行32轮这样的轮迭代函数F。
Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rki)=Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rki) (1-4)
非线性变换τ是由4个并行S盒子构成,每个S盒子为固定的8bit输入、8bit 输出的置换,输入和输出之间是一一对应关系,由输入不仅可以查到输出,而且由输出还可以反推出输入。
线性变换L的描述如下式(1-5)所示:
Bi⊕(Bi<<<2)⊕(Bi<<<10)⊕(Bi<<<18)⊕(Bi<<<24) (1-5)
在该式中,Ci为线性变换L的输出,Bi为线性变换L 的输入,同时也是非线性变换τ的输出。
轮密钥由加密密钥通过密钥扩展算法生成,其结构与加密变换类似。设加密密钥为MK=(MK0,MK1,MK2,MK3),i=0,1,2,3。令i=0,1,2,...,35,轮密钥i=0,1,2,...,31,则轮密钥生成方法如下式(1-6)和(1-7)所示:
(K0,K1,K2,K3)=(MK0⊕FK0,MK1⊕FK1,MK2⊕FK2,MK3⊕FK3) (1-8)
rki=Ki+4=Ki⊕T’(Ki+1⊕Ki+2⊕Ki+3⊕CKi) (1-9)
其中,T′变换与加密变换中的T变换基本相同,只是其中的线性变换L必须修改为以下L′:
L’(B)=B⊕(B<<<13)⊕(B<<<23) (1-10)
系统参数FKi(i=1,2,3)的取值,采用16进制表示为:FK0=A3B1BAC6, FK1=56AA3350,FK2=677D9197,FK3=B27022DC。
固定参数CK的取值方法为:设cki,j为CKi的第j字节(i=0,1,2,...,31;j=0,1,2,3),即则cki,j=(4i+j)*7(mod256)。32个固定参数CKi用16进制表示为:
00070e15,1c232a31,383f464d,545b6269,
70777e85,8c939aa1,a8afb6bd,c4cbd2d9,
e0e7eef5,fc030a11,181f262d,343b4249,
50575e65,6c737a81,888f969d,a4abb2b9,
c0c7ced5,dce3eaf1,f8ff060d,141b2229,
30373e45,4c535a61,686f767d,848b9299,
a0a7aeb5,bcc3cad1,d8dfe6ed,f4fb0209,
10171e25,2c333a41,484f565d,646b727
根据密钥扩展算法,反推出密钥的方法如下:
a、加密运算:
对于加密运算,攻击出前四轮的轮子密钥rk0,rk1,rk2和rk3,根据密钥扩展算法得下式:
rk0=K4=K0⊕T(K1⊕K2⊕K3⊕CK0) (1)
rk1=K5=K1⊕T(K2⊕K3⊕K4⊕CK1) (2)
rk2=K6=K2⊕T(K3⊕K4⊕K5⊕CK2) (3)
rk3=K7=K3⊕T(K4⊕K5⊕K6⊕CK3) (4)
由(1)、(2)、(3)和(4)式可得K3,如(5)式所示。
K3=rk3⊕T(rk0⊕rk1⊕rk2⊕CK3) (5)
由(3)和(5)式得K2,如(6)式所示。
K2=rk2⊕T(K3⊕rk0⊕rk1⊕CK2) (6)
由(2)、(5)和(6)式得K1,如(7)式所示。
K1=rk1⊕T(K2⊕K3⊕rk0⊕CK1) (7)
由(2)、(5)和(6)式得K0,如(8)式所示。
K0=rk0⊕T(K1⊕K2⊕K3⊕CK0) (8)
又(K0,K1,K2,K3)=(MK0⊕FK0,MK1⊕FK1,MK2⊕FK2,MK3⊕FK3),所以可得密钥为MK0=K0⊕FK0,MK1=K1⊕FK1,MK2=K2⊕FK2,MK3=K3⊕FK3。
b、解密运算:
对于解密运算,攻击出前四轮的轮子密钥rk0、rk1、rk2和rk3,根据密钥扩展算法得下式:
rk0=K35=K31⊕T(K32⊕K33⊕K34⊕CK31) (9)
rk1=K34=K30⊕T(K31⊕K32⊕K33⊕CK30) (10)
rk2=K33=K29⊕T(K30⊕K31⊕K32⊕CK29) (11)
rk3=K32=K28⊕T(K29⊕K30⊕K31⊕CK29) (12)
由(9)、(10)、(11)和(12)式子,得到K32、K33、K34和K35,i取31到0,计算 Ki=Ki+4⊕T(Ki+1⊕Ki+2⊕Ki+3⊕CKi),即可得到K0、K1、K2和K3,又(K0,K1,K2,K3) =(MK0⊕FK0,MK1⊕FK1,MK2⊕FK2,MK3⊕FK3),所以可得密钥为MK0=K0⊕ FK0,MK1=K1⊕FK1,MK2=K2⊕FK2,MK3=K3⊕FK3。
发明内容:
本发明的目的是提供一种针对SM4密码算法轮输出的模板攻击方法,以解决直接对SM4密码算法轮输出进行模板攻击不可行的问题,即:SM4密码算法的非线性变换τ和线性变换L将轮子密钥的影响扩散到轮输出的较多位中,所以针对SM4密码算法轮输出进行模板攻击时,需将轮输出的32bit的方法来建模板,此时的密钥搜索空间和模板空间为[0,232-1],该空间极大地增加了处理数据的难度和计算复杂度,使直接对SM4密码算法轮输出进行模板攻击不可行。本发明创造性的选择SM4密码算法轮出作为模板攻击的攻击点,以选择性的输入作为基础,使针对SM4密码算法轮出的模板攻击得以实现;此外,硬件实现 SM4时,一般轮输出需要寄存器保存,而对寄存器操作时,功耗信息特征明显,所以选择针对轮输出的模板攻击,提高了攻击的信噪比和攻击效率,增强了分析的有效性和实用性。
为解决上述技术问题,本发明提供一种针对SM4密码算法轮输出的模板攻击的方法,具体包括以下步骤:
S1:选择性的输入明文或者密文和随机已知密钥,建立轮输出Xi+4(i=0,1,2,3)为运算中间值的汉明重量/汉明距离的模板,每轮轮输出共建立33个模板。分解步骤如下:
S11:选择SM4加/解密轮输出为模板攻击的攻击点;
S12:轮数i=0;
S13:输入明文或者密文和随机已知密钥,选择轮输出的Xi+4的汉明重量或者汉明距离建立模板,如果选择汉明重量,则Xi+4的汉明重量表示为h=HW(Xi+4),如果选择汉明距离,则Xi+4的汉明距离表示为h=HW(Xi+4⊕PreXi+4),其中 PreXi+4是汉明距离模型的Xi+4前续状态,根据h的不同,将曲线划分为33个集合,记为HW0,HW1,......,HW32;
S14:针对每一个集合利用主成分分析进行降维处理,最后将均值向量和降维矩阵Y组成的模板33个集合共33个模板;
S15:轮数i自加1,返回S13~S15的步骤,直到前四轮的轮输出的模板建立完成;
S2:分别将每轮的33个模板建立对应的33个支持向量机分类器,针对每一个模板建立分类器时,当前模板为正类,其余的模板为负类;通过选择性明文或密文的输入,建立未知密钥的模板T;通过选择性的输入明文或密文,使当前轮轮输入Xi的第j(0≤j≤31)比特得到更新,建立新的未知模板T’,利用分类器分别对模板T和T’进行匹配,得出其对应的汉明重量或者汉明距离分别为 HW和HW’,比较HW和HW’的大小,即可得出当前轮密钥的第j比特,重复上面的过程,直到恢复出前4轮的字密钥。分解步骤如下:
S21:初始化轮数i=0;
S22:对当前轮进行模板攻击的匹配,此时攻击的目标是Ci,Ci是固定未知的,且和最终攻击目标轮子密钥rki相对应,选择特殊的明文或者密文输入,使轮输入Xi、Xi+1、Xi+2和Xi+3,满足条件为Xi+1⊕Xi+2⊕Xi+3=D,D表示固定常数,如果能量模型为汉明重量模型,选择为Xi已知固定数,表示O=Xi;如果能量模型为汉明距离模型,选择为Xi⊕PreXi+4为已知固定数,表示为O=Xi⊕PreXi+4;
S24:对能量曲线进行处理,建立待测试的模板,设待测模板为T;
S25:利用支持向量机建立基本的分类模型,此发明利用的是一对一的支持向量机模型,对每个模板建立一个支持向量机分类器,每攻击一轮密钥时,需要建立33个支持向量机分类器,在针对每一个建立支持向量机是当前的模板为正类、其它模板为负类,组合成训练的数据进行训练;
S26:将待测模板T作为测试数据,利用建立好33个的支持向量机分类器进行预测分析,将待测试的模板T通过所有的分类器,找出属于输出为正类的一个,设预测的结果的汉明重量或者汉明距离为HW;
S27:初始化j=0;
S28:如果O的第j位为b,通过选择性的输入明文或密文,对当前轮输入进行更新,重新建立一个新的模板,只更新O的第j位,将O的第j位取反,表示为
S29:利用新的明文对SM4加密卡或者加密设备进行加密m次,采集相应的能量曲线;
S210:对能量曲线进行处理,建立待测试的模板,设待测模板为T’;
S211:将待测模板T’作为测试数据,利用建立好33个的支持向量机分类器进行预测分析,将待测试的模T’通过所有的分类器,找出属于输出为正类的一个,设预测的结果的汉明重量或者汉明距离为HW’;
S212:比较HW和HW’的大小,若HW>HW’,则Ci的第j位为反之Ci的第j位为b;
S213:j自加1,返回步骤S28~S213,直到Ci完全恢复;
S214:根据SM4密码算法的线性变换和非线性变换的逆运算,由Ci得到S 盒子的输入,表示为G,且G=Xi+1⊕Xi+2⊕Xi+3⊕rki,故轮子密钥rki为rki=Xi+1⊕Xi+2⊕Xi+3⊕G=D⊕G。
S215:轮数i自加1,返回S22~S215的步骤,直到得出前四轮的字密钥rk0、 rk1、rk2和rk3。
S3:在S2的基础上,得出前四轮的字密钥,运用SM4密钥扩展算法逆运算得到未知的SM4的密钥。
附图说明
图1为SM4加密算法流程图;
图2为SM4密钥扩展流程图;
图3为针对SM4密码算法轮输出的模板攻击的流程图;
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
针对SM4密码算法轮输出的模板攻击的方法,具体包括以下步骤:
S1:选择性的输入明文或者密文和随机已知密钥,建立轮输出Xi+4(i=0,1,2,3)为运算中间值的汉明重量/汉明距离的模板,每轮轮输出共建立33个模板。分解步骤如下:
S11:选择SM4加/解密轮输出为模板攻击的攻击点;
S12:轮数i=0;
S13:输入明文或者密文和随机已知密钥,选择轮输出的Xi+4的汉明重量或者汉明距离建立模板,如果选择汉明重量,则Xi+4的汉明重量表示为h=HW(Xi+4),如果选择汉明距离,则Xi+4的汉明距离表示为h=HW(Xi+4⊕PreXi+4),其中 PreXi+4是汉明距离模型的Xi+4前续状态,根据h的不同,将曲线划分为33个集合,记为HW0,HW1,......,HW32;
S14:针对每一个集合利用主成分分析进行降维处理,最后将均值向量和降维矩阵Y组成的模板33个集合共33个模板,细化分解如下:
S1411:初始化q=0。
S1412:将集合HWq中的曲线每条曲线截取与h相关的长度为l个点,设截取的单条曲线样本记为(ti1,ti2,ti3,......til),共有样本数p条。
S1413:求平均值,得到均值向量。
S1414:将集合HWj中的每一条曲线减去均值向量,得到偏差矩阵Np*l。
S1415:建立协方差矩阵,求其对应的特征值和特征向量。
协方差可由下式求得:
建立如下协方差矩阵,即为Cl*l
求其特征值以及对应的特征向量,并从大到小进行排列。
S1416:选取主成分,重构主成分特征空间。
选取前面k个特征值对应的特征向量构成n维特征空间中k维子特征空间λl*k,根据公式Np*l*λl*k=Yp*k,原来的n维数据降到了k维,极大的提高了后面的运算效率。
S1417:将均值向量和降维矩阵组成HWq集合的模板
S1418:q加1,返回S1412~S1418,一直到第i轮的模板建立完成。
S15:轮数i自加1,返回S13~S15的步骤,直到前四轮的轮输出的模板建立完成。
S2:分别将每轮的33个模板建立对应的33个支持向量机分类器,针对每一个模板建立分类器时,当前模板为正类,其余的模板为负类;通过选择性明文或密文的输入,建立未知密钥的模板T;通过选择性的输入明文或密文,使当前轮轮输入Xi的第j(0≤j≤31)比特得到更新,建立新的未知模板T’,利用分类器分别对模板T和T’进行匹配,得出其对应的汉明重量或者汉明距离分别为 HW和HW’,比较HW和HW’的大小,即可得出当前轮密钥的第j比特,重复上面的过程,直到恢复出前4轮的字密钥;
S21:初始化轮数i=0;
S22:对当前轮进行模板攻击的匹配,此时攻击的目标是Ci,Ci是固定未知的,且和最终攻击目标轮子密钥rki相对应,选择特殊的明文或者密文输入,使轮输入Xi、Xi+1、Xi+2和Xi+3,满足条件为Xi+1⊕Xi+2⊕Xi+3=D,D表示固定常数,如果能量模型为汉明重量模型,选择Xi为已知固定数,表示O=Xi;如果能量模型为汉明距离模型,选择Xi⊕PreXi+4为已知固定数,表示为O=Xi⊕PreXi+4;
S23:对SM4加密卡或者加密设备进行加密m次,采集相应的能量曲线;
S24:对能量曲线进行处理,建立待测试的模板,设待测模板为T;
S25:利用支持向量机建立基本的分类模型,此发明利用的是一对一的支持向量机模型,对每个模板建立一个支持向量机分类器,每攻击一轮密钥时,需要建立33个支持向量机分类器,在针对每一个建立支持向量机是当前的模板为正类、其它模板为负类,组合成训练的数据进行训练;
S26:将待测模板T作为测试数据,利用建立好33个的支持向量机分类器进行预测分析,将待测试的模板T通过所有的分类器,找出属于输出为正类的一个,设预测的结果的汉明重量或者汉明距离为HW;
S27:初始化j=0;
S28:如果O的第j位为b,通过选择性的输入明文或密文,对当前轮输入进行更新,重新建立一个新的模板,只更新O的第j位,将O的第j位取反,表示为
S29:利用新的明文对SM4加密卡或者加密设备进行加密m次,采集相应的能量曲线;
S210:对能量曲线进行处理,建立待测试的模板,设待测模板为T’;
S211:将待测模板T’作为测试数据,利用建立好33个的支持向量机分类器进行预测分析,将待测试的模T’通过所有的分类器,找出属于输出为正类的一个,设预测的结果的汉明重量或者汉明距离为HW’;
S212:比较HW和HW’的大小,若HW>HW’,则Ci的第j位为反之Ci的第j位为b;
S213:j自加1,返回步骤S28~S213,直到Ci完全恢复;
S214:根据SM4密码算法的线性变换和非线性变换的逆运算,由Ci得到S 盒子的输入,表示为G,且G=Xi+1⊕Xi+2⊕Xi+3⊕rki,故轮子密钥rki为rki=Xi+1⊕Xi+2⊕Xi+3⊕G=D⊕G;
S215:轮数i自加1,返回S22~S215的步骤,直到得出前四轮的字密钥rk0、 rk1、rk2和rk3。
S3:在S2的基础上,得出前四轮的字密钥,运用SM4密钥扩展算法逆运算得到未知的SM4的密钥。
SM4密码算法的轮输出特点,决定了模板攻击时在无选择输入的情况下,需建立232个模板,模板的数量、数据的存储量和计算量,决定了在无选择输入的情况下不能对SM4密码算法进行模板攻击,本发明创造性的选择SM4密码算法轮出作为模板攻击的攻击点,以选择性的输入作为基础,实现了针对SM4密码算法轮出的模板攻击。
Claims (3)
1.针对SM4密码算法轮输出的模板攻击方法,以SM4算法的轮输出作为模板攻击的目标,其特征在于所述方法包括以下步骤:
S1:选择性的输入明文或者密文和随机已知密钥,建立轮输出Xi+4(i=0,1,2,3)为运算中间值的汉明重量/汉明距离的模板,每轮轮输出共建立33个模板;
S2:分别将每轮的33个模板建立对应的33个支持向量机分类器,针对每一个模板建立分类器时,当前模板为正类,其余的模板为负类;通过选择性明文或密文的输入,使轮输入Xi、Xi+1、Xi+2和Xi+3,满足条件为Xi+1⊕Xi+2⊕Xi+3=D,D表示固定常数,如果能量模型为汉明重量模型,选择为Xi已知固定数,表示O=Xi,如果能量模型为汉明距离模型,选择为Xi⊕PreXi+4为已知固定数,表示为O=Xi⊕PreXi+4,其中PreXi+4是汉明距离模型的Xi+4前续状态,建立未知密钥的模板T;对当前轮输入进行更新,重新建立一个新的模板T’,只更新O的第j(0≤j≤31)比特,将O的第j位取反,利用分类器分别对模板T和T’进行匹配,得出其对应的汉明重量或者汉明距离分别为HW和HW’,比较HW和HW’的大小,即可得出当前轮密钥的第j比特,重复上面的过程,直到恢复出前4轮的字密钥;
S3:在S2的基础上,得出前四轮的字密钥,运用SM4密钥扩展算法逆运算得到未知的SM4的密钥。
2.根据权利要求1所述的针对SM4密码算法轮输出的模板攻击方法,其特征在于,所述S1具体包括以下步骤:
S11:选择SM4加/解密轮输出为模板攻击的攻击点;
S12:轮数i=0;
S13:输入明文或者密文和随机已知密钥,选择轮输出的Xi+4的汉明重量或者汉明距离建立模板,如果选择汉明重量,则Xi+4的汉明重量表示为h=HW(Xi+4),如果选择汉明距离,则Xi+4的汉明距离表示为h=HW(Xi+4⊕PreXi+4),其中PreXi+4是汉明距离模型的Xi+4前续状态,根据h的不同,将曲线划分为33个集合,记为HW0,HW1,……,HW32;
S14:针对每一个集合利用主成分分析进行降维处理,最后将均值向量和降维矩阵Y组成的模板33个集合共33个模板;
S15:轮数i自加1,返回S13~S15的步骤,直到前四轮的轮输出的模板建立完成。
3.根据权利要求1所述的针对SM4密码算法轮输出的模板攻击方法,其特征在于,所述S2具体包括以下步骤:
S21:初始化轮数i=0;
S22:对当前轮进行模板攻击的匹配,此时攻击的目标是Ci,Ci是固定未知的,且和最终攻击目标轮子密钥rki相对应,选择特殊的明文或者密文输入,轮输入Xi、Xi+1、Xi+2和Xi+3,满足条件为Xi+1⊕Xi+2⊕Xi+3=D,D表示固定常数,如果能量模型为汉明重量模型,选择为Xi已知固定数,表示O=Xi;如果能量模型为汉明距离模型,选择为Xi⊕PreXi+4为已知固定数,表示为O=Xi⊕PreXi+4;
S23:对SM4加密卡或者加密设备进行加密m次,采集相应的能量曲线;
S24:对能量曲线进行处理,建立待测试的模板,设待测模板为T;
S25:利用支持向量机建立基本的分类模型,此发明利用的是一对一的支持向量机模型,对每个模板建立一个支持向量机分类器,每攻击一轮密钥时,需要建立33个支持向量机分类器,在针对每一个建立支持向量机是当前的模板为正类、其它模板为负类,组合成训练的数据进行训练;
S26:将待测模板T作为测试数据,利用建立好33个的支持向量机分类器进行预测分析,将待测试的模板T通过所有的分类器,找出属于输出为正类的一个,设预测的结果的汉明重量或者汉明距离为HW;
S27:初始化j=0;
S28:如果O的第j位为b,通过选择性的输入明文或密文,对当前轮输入进行更新,重新建立一个新的模板,只更新O的第j位,将O的第j位取反,表示为
S29:利用新的明文对SM4加密卡或者加密设备进行加密m次,采集相应的能量曲线;
S210:对能量曲线进行处理,建立待测试的模板,设待测模板为T’;
S211:将待测模板T’作为测试数据,利用建立好33个的支持向量机分类器进行预测分析,将待测试的模T’通过所有的分类器,找出属于输出为正类的一个,设预测的结果的汉明重量或者汉明距离为HW’;
S212:比较HW和HW’的大小,若HW>HW’,则Ci的第j位为反之Ci的第j位为b;
S213:j自加1,返回步骤S28~S213,直到Ci完全恢复;
S214:根据SM4密码算法的线性变换和非线性变换的逆运算,由Ci得到S盒子的输入,表示为G,且G=Xi+1⊕Xi+2⊕Xi+3⊕rki,故轮子密钥rki为rki=Xi+1⊕Xi+2⊕Xi+3⊕G=D⊕G;
S215:轮数i自加1,返回S22~S215的步骤,直到得出前四轮的字密钥rk0、rk1、rk2和rk3。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510176805.6A CN104868990B (zh) | 2015-04-15 | 2015-04-15 | 一种针对sm4密码算法轮输出的模板攻击方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510176805.6A CN104868990B (zh) | 2015-04-15 | 2015-04-15 | 一种针对sm4密码算法轮输出的模板攻击方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104868990A CN104868990A (zh) | 2015-08-26 |
CN104868990B true CN104868990B (zh) | 2018-04-06 |
Family
ID=53914536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510176805.6A Expired - Fee Related CN104868990B (zh) | 2015-04-15 | 2015-04-15 | 一种针对sm4密码算法轮输出的模板攻击方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104868990B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105812122B (zh) * | 2016-03-08 | 2018-10-12 | 中国人民解放军军械工程学院 | 建立密码芯片汉明重量与光辐射相关关系的方法 |
CN105812121B (zh) * | 2016-03-08 | 2018-10-12 | 中国人民解放军军械工程学院 | 一种高度程式化的密钥高效分析方法 |
CN105591739B (zh) * | 2016-03-08 | 2018-07-31 | 中国人民解放军军械工程学院 | 一种基于光汉明重量的密钥分析方法 |
CN105933108B (zh) * | 2016-05-30 | 2019-04-12 | 清华大学 | 一种对sm4算法实现破解的方法 |
CN107623566B (zh) * | 2016-07-15 | 2022-09-06 | 青岛博文广成信息安全技术有限公司 | 基于非线性变换的sm4白盒实现方法 |
CN106385412A (zh) * | 2016-09-12 | 2017-02-08 | 成都信息工程大学 | 一种针对sm4密码算法前4轮的约减轮故障分析的方法 |
CN106341222A (zh) * | 2016-09-12 | 2017-01-18 | 成都信息工程大学 | 一种针对sm4密码算法中间5轮的约减轮故障分析的方法 |
CN107070629A (zh) * | 2016-11-14 | 2017-08-18 | 成都信息工程大学 | 一种针对sm4密码算法轮输出的模板攻击方法 |
CN107203608B (zh) * | 2017-05-17 | 2020-05-22 | 中国科学院信息工程研究所 | 一种基于二值对比密度的高效数据模式挖掘方法 |
CN109787741B (zh) * | 2017-11-15 | 2023-08-08 | 紫光同芯微电子有限公司 | 一种优化的智能卡密码算法模板攻击方法 |
CN109995502A (zh) * | 2017-12-31 | 2019-07-09 | 国民技术股份有限公司 | 一种侧信道分析方法及装置、终端及计算机可读存储介质 |
CN109257160B (zh) * | 2018-12-05 | 2023-07-04 | 电子科技大学 | 一种基于决策树的侧信道模板攻击方法 |
CN109787745A (zh) * | 2019-03-05 | 2019-05-21 | 中国人民解放军32082部队 | 一种基于多推断利用的分组密码容错代数旁路分析方法 |
CN111478742B (zh) * | 2020-04-07 | 2022-04-29 | 南方电网科学研究院有限责任公司 | 一种sm4算法的分析方法、系统以及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1811778A1 (fr) * | 2006-01-24 | 2007-07-25 | Nagracard S.A. | Méthode de mise à jour du microprogramme d'un module de sécurité |
CN103138917A (zh) * | 2013-01-25 | 2013-06-05 | 国家密码管理局商用密码检测中心 | 以s盒输入为基础的汉明距离模型在sm4密码算法侧信道能量分析的应用 |
CN104202145A (zh) * | 2014-09-04 | 2014-12-10 | 成都信息工程学院 | 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法 |
CN104333447A (zh) * | 2014-11-26 | 2015-02-04 | 上海爱信诺航芯电子科技有限公司 | 一种可抵御能量分析攻击的sm4方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6904611B1 (en) * | 1999-09-03 | 2005-06-07 | General Instrument Corporation | Method and system for directing the download of software and firmware objects over a network such as a cable television system |
-
2015
- 2015-04-15 CN CN201510176805.6A patent/CN104868990B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1811778A1 (fr) * | 2006-01-24 | 2007-07-25 | Nagracard S.A. | Méthode de mise à jour du microprogramme d'un module de sécurité |
CN103138917A (zh) * | 2013-01-25 | 2013-06-05 | 国家密码管理局商用密码检测中心 | 以s盒输入为基础的汉明距离模型在sm4密码算法侧信道能量分析的应用 |
CN104202145A (zh) * | 2014-09-04 | 2014-12-10 | 成都信息工程学院 | 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法 |
CN104333447A (zh) * | 2014-11-26 | 2015-02-04 | 上海爱信诺航芯电子科技有限公司 | 一种可抵御能量分析攻击的sm4方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104868990A (zh) | 2015-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104868990B (zh) | 一种针对sm4密码算法轮输出的模板攻击方法 | |
CN104717055B (zh) | 一种针对sm4密码算法轮输入汉明重量的模板攻击方法 | |
Qayyum et al. | Chaos-based confusion and diffusion of image pixels using dynamic substitution | |
Trujillo-Toledo et al. | Real-time RGB image encryption for IoT applications using enhanced sequences from chaotic maps | |
Picek et al. | Side-channel analysis and machine learning: A practical perspective | |
Zhou et al. | Cascade chaotic system with applications | |
CN103167213A (zh) | 基于Cat映射与超混沌Lorenz系统的数字图像加密方法 | |
Graepel | Kernel matrix completion by semidefinite programming | |
Suri et al. | A Bi-objective genetic algorithm optimization of chaos-DNA based hybrid approach | |
CN103780382A (zh) | 一种基于超球面的多变量公钥加密/解密系统及方法 | |
CN109359588A (zh) | 一种新的隐私保护下非交互式的k近邻分类方法 | |
CN106156615B (zh) | 基于类可分性判距的旁路区分器方法及系统 | |
CN111934852A (zh) | 一种基于神经网络的aes密码芯片电磁攻击方法及系统 | |
Shafee et al. | Privacy attacks against deep learning models and their countermeasures | |
Zarebnia et al. | Image encryption algorithm by fractional based chaotic system and framelet transform | |
Wang et al. | Federated learning in side-channel analysis | |
US11509453B2 (en) | Apparatus and method for data analysis | |
Shakir et al. | A dynamic S-box generation based on a hybrid method of new chaotic system and DNA computing | |
Sawadogo et al. | Android malware classification: Updating features through incremental learning approach (ufila) | |
CN101183945A (zh) | 基于旁路算子的椭圆曲线抗旁路攻击方法 | |
CN106301756B (zh) | 用于sm2签名的大数模幂求逆功耗检测方法及其系统 | |
CN112184534A (zh) | 基于多级二分取反和三维比特级置乱的数字图像加密方法 | |
Mukhtar et al. | On features suitable for power analysis—Filtering the contributing features for symmetric key recovery | |
Habibipour et al. | An image encryption system by 2D memorized cellular automata and chaos mapping | |
Chen et al. | Rasp-boost: Confidential boosting-model learning with perturbed data in the cloud |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180406 |
|
CF01 | Termination of patent right due to non-payment of annual fee |