CN104717055A - 一种针对sm4密码算法轮输入汉明重量的模板攻击方法 - Google Patents

一种针对sm4密码算法轮输入汉明重量的模板攻击方法 Download PDF

Info

Publication number
CN104717055A
CN104717055A CN201510134735.8A CN201510134735A CN104717055A CN 104717055 A CN104717055 A CN 104717055A CN 201510134735 A CN201510134735 A CN 201510134735A CN 104717055 A CN104717055 A CN 104717055A
Authority
CN
China
Prior art keywords
template
wheel
input
hamming weight
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.)
Granted
Application number
CN201510134735.8A
Other languages
English (en)
Other versions
CN104717055B (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.)
Chengdu Xinan Youlika Information Technology Co Ltd
State Cryptography Administration Commercial Code Testing Center
Chengdu University of Information Technology
Chengdu Information Technology Co Ltd of CAS
Beijing Nanrui Zhixin Micro Electronics Technology Co Ltd
Original Assignee
Chengdu Xinan Youlika Information Technology Co Ltd
State Cryptography Administration Commercial Code Testing Center
Chengdu Information Technology Co Ltd of CAS
Beijing Nanrui Zhixin Micro Electronics Technology Co Ltd
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 Chengdu Xinan Youlika Information Technology Co Ltd, State Cryptography Administration Commercial Code Testing Center, Chengdu Information Technology Co Ltd of CAS, Beijing Nanrui Zhixin Micro Electronics Technology Co Ltd filed Critical Chengdu Xinan Youlika Information Technology Co Ltd
Priority to CN201510134735.8A priority Critical patent/CN104717055B/zh
Publication of CN104717055A publication Critical patent/CN104717055A/zh
Application granted granted Critical
Publication of CN104717055B publication Critical patent/CN104717055B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Investigating Or Analysing Biological Materials (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种针对SM4密码算法模板攻击的方法。该方法以SM4算法轮输入作为攻击点,选择汉明重量建立模板,以较少的模板数量就能实现完整的SM4模板攻击;同时在模板匹配阶段以选择性的明文输入作为基础,利用支持向量机作为判别分析的工具,只需要两次匹配就可以破解出子密钥的一个比特。该方法有效解决了现阶段其他方法针对模板攻击模板数据过多、计算量过大的问题。

Description

一种针对SM4密码算法轮输入汉明重量的模板攻击方法
技术领域
本发明涉及密码算法分析检测领域,尤其涉及一种针对SM4密码算法轮输入的汉明重量的模板攻击的方法。
背景技术
随着信息和分析电路技术的发展,对硬件密码电子设备的破解不再单纯的停留在协议和算法上,而是从其处理数据的过程中泄露的信息入手,进行破解。硬件密码电子设备在处理信息的工程中存在能量、电磁、错误和时间等信息的泄露,利用这些泄露的信息对密码电子设备进行攻击,就是所谓的侧信道攻击(Side Channel Attacks),侧信道攻击可分为能量分析攻击、电磁攻击和错误攻击等,其中能量分析攻击因效率较高,成为侧信道的主要手段。
侧信道能量分析攻击是通过采集加密芯片等硬件密码电子设备在进行加、解密或签名等操作时产生的能量消耗,利用密码学和统计学原理等,分析和破译密钥信息的一种攻击方式。
模板攻击是基于密码芯片能量消耗与正在处理数据的相关性的基础上实施的。其攻击过程通常包括两个阶段:第一个阶段是对所有可能猜测密钥的能量消耗特征进行刻画;第二个阶段是采集被攻击密码芯片上的侧信道信息,计算其与所刻画的能量消耗特征的匹配程度,即可得到有关正确密钥的信息。由于模板攻击非常有效、实现简单且无需大量资源,所以目前是侧信道分析攻击研究领域的重点之一。
支持向量机是建立在统计学习理论和结构风险最小化的原理基础上的一种极其学习的方法。支持向量机是数据挖掘中的一项新技术,是借助于最优化方法解决机器学习的问题的新工具,它由Vapnik等提出的一种新的机器学习方法,它以结构风险最小为原则,它本质上是求解凸二次规划问题,在解决小样本、非线性和高维模式识别问题中有较大优势。当样本为两类可分时,其基本思想是对于样本集(xi,yi),i=1,2,…,n,x∈Rd,y∈{-1,+1},通过非线性的核函数φ把样本从原始的数据空间映射到高维的特征空间Ω,在高维的特征空间上构造一个最优的分类超平面,使得分类的数据被超平面正确的分开。通过引入满足Mercer,条件的核函数K(xi,yi),求解二次规划的问题:
                                                      (1-1)
条件           (1-2)
其中,α为拉格朗日乘数,常数C为惩罚因子,实现分类间隔和错误率之间的折衷。利用KKT条件求得域值,从而得到最优分类决策函数为:
               (1-3)
其中sgn()为符号函数,由f(x)的正负即可判定样本所属的类别。
支持向量机算法最初是为二值分类问题设计的,当处理多类问题时,就需要构造合适的多类分类器。目前,构造SVM多类分类器的方法主要有两类:一类是直接法,直接在目标函数上进行修改,将多个分类面的参数求解合并到一个最优化问题中,通过求解该最优化问题“一次性”实现多类分类。这种方法看似简单,但其计算复杂度比较高,实现起来比较困难,只适合用于小型问题中;另一类是间接法,主要是通过组合多个二分类器来实现多分类器的构造,常见的方法有one-against-one和one-against-all两种。
一对多的模型。其原理是训练时依次把某个类别的样本归为正类,其他剩余的样本归为负类,这样k个类别的样本就构造出了k个支持向量。分类时将未知样本分类为具有最大分类函数值的那类。
一对一模型,其原理是在任意两类样本之间设计一个支持向量,因此k个类别的样本就需要设计k*(k-1)/2个支持向量。当对一个未知样本进行分类时,最后得票最多的类别即为该未知样本的类别,这种建立的SVM数量较多。
SM4算法是一个分组密码算法,分组长度为128比特,密钥长度为128比特,加密算法与密钥扩展算法都采用32轮非线性迭代结构。加密算法与解密算法的结构相同,只是轮密钥的使用顺序相反。下面以加密算法和密钥扩展算法为例,介绍SM4算法。
  SM4加密算法SM4加密算法的详细流程如图1所示。在该图中,Xi∈Z2 32(Z2 e表示e bit的向量集),明文输入为(X0,X1,X2,X3)∈(Z2 32)4,密文输出为(Y0,Y1,Y2,Y3),其中Xi、Xi+1、Xi+2和Xi+3为轮迭代运算函数F的输入,rki∈Z2 32 每轮的轮密钥,i∈(0,1,2,…,31)。
从加密的流程可以看出,轮迭代函数F包括的运算有异或、非线性变换τ和线性变换L,轮迭代函数的表达式如下式(1-1)所示,在(1-1)式中,T表示合成置换,是由非线性变换和线性变换复合而成,迭代函数的详细的流程如下图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∈Z2 32、Bi∈Z2 32,Ci为线性变换L的输出,Bi为线性变换L的输入,同时也是非线性变换τ的输出。
轮密钥由加密密钥通过密钥扩展算法生成,其结构与加密变换类似。设加密密钥为MK=(MK0,MK1,MK2,MK3),i=0,1,2,3。令Ki∈Z2 32,i=0,1,2,…,35,轮密钥rki∈Z2 32,i=0,1,2,…,31,则轮密钥生成方法如下式(1-6)和(1-7)所示:
 (K0,K1,K2,K3)=(MK0⊕FK0,MK1⊕FK1,MK2⊕FK2,MK3⊕FK3)    (1-6)
 rki=Ki+4=Ki⊕T’(Ki+1⊕Ki+2⊕Ki+3⊕CKi)                   (1-7)
其中,变换与加密变换中的T 变换基本相同,只是其中的线性变换L必须修改为以下:
  L’(B)=B⊕(B<<<13)⊕(B<<<23)                     (1-8)
系统参数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=(cki,0, cki,1, cki,2, cki,3)∈(Z2 8)4,则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。
发明内容
本发明的目的是提供一种针对SM4密码算法轮函数输入的汉明重量的侧信道能量分析模板攻击的方法,以解决现有SM4 密码算法模板攻击方法建立模板数量多的问题,例如在建立SM4的模板时候,密钥为128位,现有模板攻击的方法需要构建2128个模板。本发明创造性的选择汉明重量为建立模板的基础,将SM4算法轮输入作为攻击点,以此来构建汉明重量的模板,只需要建立132个模板,就可以完全的进行SM4的模板攻击,大大减少了模板的数量;同时在模板匹配阶段以选择性的明文输入作为基础,同时利用支持向量机作为判别分析的工具,只需要两次匹配就可以破解出子密钥的一个比特。从而解决了现阶段针对模板攻击模板数据过多,计算量过大的问题。
为解决上述技术问题,本发明提供一种针对SM4密码算法轮输入的侧信道能量分析模板攻击的方法,以SM4算法的轮输入作为模板攻击的目标,具体包括建立模板阶段、模板匹配阶段,最后推算出SM4密钥。
S1:建立模板阶段,选择性的输入明文或者密文X0、X1、X2和X3与随机的已知密钥,建立轮输入M=(Xi+1⊕Xi+2⊕Xi+3⊕rki)(i=0,1,2,3)为运算中间值的汉明重量的模板,每轮轮输入运算建立33个模板。分解步骤如下:
S11:选择SM4加/解密轮输入为模板攻击的攻击点;
S12:轮数i=0;
S13:选择输入使Xi+1⊕Xi+2⊕Xi+3=0x00000000,随机输入rki,设M=(Xi+1⊕Xi+2⊕Xi+3⊕rki)为运算中间值,以M的汉明重量建立模板,其中间值的汉明重量的取值为[0,32]且为整数,根据M的汉明重量将曲线划分为33个集合,记为HW0, HW1,……, HW32
S14:针对每一个集合利用主成分分析进行降维处理,最后将均值向量和降维矩阵组成的模板,共33个模板;
S15:轮数自加1,重复S13-S14的步骤,建立前四轮的轮输入的模板。
S2:模板匹配阶段,分别将每轮的33个模板建立对应的33个支持向量机分类器,针对每一个模板建立分类器时,当前模板为正类,其余的模板为负类。通过选择性明文或密文的输入,建立未知密钥的模板T;更新当前轮的X=(Xi+1⊕Xi+2⊕Xi+3),i=0,1,2,3。结果的第比特,建立新的未知模板,利用分类器分别对模板进行匹配,得出其对应的汉明重量分别为W和。比较W和的大小,即可得出当前轮密钥的第j比特,重复上面的过程,直到恢复出前4轮的字密钥。分解步骤如下:
S21:初始化轮数i=0;
S22:对当前轮进行模板攻击的匹配,此时攻击的目标是rki,rki是固定未知的,选择输入的明文或者密文X0、X1、X2和X3作为输入,设X=(Xi+1⊕Xi+2⊕Xi+3)
S23:对SM4加密卡或者加密设备进行加密m次,采集相应的能量曲线;
S24:对能量曲线进行处理,建立待测试的模板,其过程的步骤3到步骤7的方法,设待测模板为
S25:利用支持向量机建立基本的分类模型,此发明利用的是一对一的支持向量机模型,对每个模板建立一个支持向量机分类器,每攻击一轮密钥时,需要建立33个支持向量机分类器,在针对每一个建立支持向量机是,当前的模板为正类,其他模板为负类,组合成训练的数据进行训练;
S26:将待测模板作为测试数据,利用建立好33个的支持向量机分类器进行预测分析,将待测试的模板通过所有的分类器,找出属于输出为正类的一个,设预测的结果的汉明重量为.;
S27:初始化j=0,对当前轮输入的明文进行更新,重新建立一个新的模板,只更新的第j位(j=0),将的第j位取反;
S28:利用新的明文对SM4加密卡或者加密设备进行加密m次,采集相应的能量曲线;
S29:执行步骤S24的过程,设此时的预测结果的汉明重量为
S210:比较W和的大小,若,则rki的第0位(最低位)为1,反之rki的第0位(最低位)为0;
S211:j自加1,更新X的第j位,将其取反,返回步骤S26~S211,直到rki完全恢复;
S212:轮数i自加1,返回S22~S212的步骤,直到得出前四轮的字密钥rk0、rk1、rk2和rk3
S3:在S2的基础上得出前四轮的字密钥,运用SM4密钥扩展算法推出未知的SM4的密钥。
附图说明
图1为SM4加密算法流程图;
图2为SM4密钥扩展流程图;
图3为针对SM4密码算法轮输入建立模板以及模板攻击的具体过程。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及仿真实施例对本发明做进一步地详细描述。
S1:建立模板阶段,随机选择选择输入,使输入明文或者密文X0、X1、X2和X3与随机的已知密钥建立轮输入M=(Xi+1⊕Xi+2⊕Xi+3⊕rki)(i=0,1,2,3)为运算中间值的汉明重量的模板,每轮轮输入运算建立33个模板。具体步骤分解如下:
S11:选择SM4加/解密轮输入为模板攻击的攻击点
S12:轮数i=0;
S13:选择输入使Xi+1⊕Xi+2⊕Xi+3=0x00000000, 随机输入rki,设M=(Xi+1⊕Xi+2⊕Xi+3⊕rki)(i=0)为运算中间值,以M的汉明重量建立模板,其中间值的汉明重量的取值为[0,32]且为整数,在SM4加密卡或者其他加密设备上加密选择输入的数据m次,并采集m条样本数据,每条样本数据上有个采样点,即第条原始样本曲线上有采样点,组成一个矩阵Em*n,并保存相应的明文输入,根据M的汉明重量将曲线划分为33个集合,记为HW0, HW1,……, HW32
S14:针对每一个集合利用主成分分析进行降维处理,最后将均值向量和降维矩阵组成的模板,共33个模板,细化分解如下:
S1411:初始化q=0。
S1412:将集合中的曲线每条曲线截取与M=(Xi+1⊕Xi+2⊕Xi+3⊕rki)运算相关的长度为个点,设截取的单条曲线样本记为 ,共有样本数条。
S1413:求平均值,得到均值向量。
>=
S1414:将集合中的每一条曲线减去均值向量,得到偏差矩阵Np*l
S1415:建立协方差矩阵,求其对应的特征值和特征向量。
协方差可由下式求得:
 
                                 
建立如下协方差矩阵,即为
=
求其特征值以及对应的特征向量,并从大到小进行排列。
S1416:选取主成分,重构主成分特征空间。
选取前面k个特征值对应的特征向量构成n维特征空间中k维子特征空间,根据公式Np*ll*k=Yp*k,原来的n维数据降到了k维,极大的提高了后面的运算效率。
S1417:将均值向量和降维矩阵组成集合的模板
S1418:q加1,返回S1412~S1418,一直到第i轮的模板建立完成。
S15: 轮数自加1 ,返回S12~S14的步骤,直到前四轮的轮输入的模板完全建立。
S2:模板匹配阶段,分别将每轮的33个模板建立个对应的33个支持向量机分类器,针对每一个模板建立分类器时,当前模板为正类,其余的模板为负类。通过选择性明文或密文的输入,建立未知密钥的模板;更新当前轮的X=(Xi+1⊕Xi+2⊕Xi+3)  (i=0,1,2,3)结果的第比特,建立新的未知模板,利用分类器分别对模板T和进行匹配,得出其对应的汉明重量分别为W和,比较W和的大小,即可得出当前轮密钥的第j比特,重复上面的过程,直到恢复出前4轮的字密钥;
S21:初始化轮数i=0。
S22:对当前轮进行模板攻击的匹配,此时攻击的目标是rki,rki是固定未知的,选择输入的明文或者密文X0、X1、X2和X3作为输入,设X=(Xi+1⊕Xi+2⊕Xi+3)。
S23:对SM4加密卡或者加密设备进行加密次,采集相应的能量曲线。
S24: 对能量曲线进行处理,建立待测试的模板,设待测模板为
S25:利用支持向量机建立基本的分类模型,此发明利用的是一对一的支持向量机模型,对每个模板建立一个支持向量机分类器,每攻击一轮密钥时,需要建立33个支持向量机分类器,在针对每一个建立支持向量机时,当前的模板为正类,其他模板为负类,组合成训练的数据进行训练。
S26:将待测模板作为测试数据,利用建立好33个的支持向量机分类器进行预测分析,将待测试的模板通过所有的分类器,找出属于输出为正类的一个,设预测的结果的汉明重量为.。
S27:初始化j=0。
S28:对当前轮输入的明文进行更新,重新建立一个新的模板,只更新X的第j位(j=0),将X的第j位取反。
S29:利用新的明文对SM4加密卡或者加密设备进行加密次,采集相应的能量曲线。
S210:执行步骤S24的过程,设此时的预测结果的汉明重量为
S211:比较W和的大小,若,则rki的第j位为1,反之rki的第j位为0。
S212:j自加1 ,更新X的第j位,将其取反,返回步骤S28~S212,直到rki完全恢复。
S213:轮数i自加1,返回S22~S212的步骤,直到得出前四轮的字密钥rk0、rk1、rk2和rk3,实现流程见图1所示。
S3:在S2的基础上,得出前四轮的字密钥,运用SM4密钥扩展算法推出未知的SM4的密钥。
 对于加密运算(图2所示),攻击出前四轮的轮子密钥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⊕rk 1⊕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=F0⊕FK0,MK1=F1⊕FK1,MK2=F2⊕FK2,MK0=F3⊕FK3
 对于解密运算,和加密运算的流程一样,只是使用的密钥顺序与加密运算的相反,攻击出前四轮的轮子密钥rk0、rk1、rk2和rk3,根据密钥扩展算法(图3)得下式:
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⊕CK28)   (12)
由(9)、(10)、(11)和(12)式子,得到K32,K33,K34和K35。按照递推关系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=F0⊕FK0,MK1=F1⊕FK1,MK2=F2⊕FK2,MK0=F3⊕FK3。  

Claims (3)

1.针对SM4密码算法基于汉明重量的模板攻击的方法,以SM4算法的轮输入作为模板攻击的目标,其特征在于,所述方法包括以下步骤:
S1:建立模板阶段,选择性的输入明文或者密文X0、X1、X2和X3与随机的已知密钥,建立轮输入M=(Xi+1⊕Xi+2⊕Xi+3⊕rki)(i=0,1,2,3)为运算中间值的汉明重量的模板,每轮轮输入运算建立33个模板;
S2:模板匹配阶段,分别将每轮的33个模板建立对应的33个支持向量机分类器,针对每一个模板建立分类器时,当前模板为正类,其余的模板为负类;通过选择性明文或密文的输入,建立未知密钥的模板T;更新当前轮X=(Xi+1⊕Xi+2⊕Xi+3⊕rki),(i=0,1,2,3)结果的第                                                比特,建立新的未知模板T’,利用分类器分别对模板进行匹配,得出其对应的汉明重量分别为W和W’,比较W和W’的大小,即可得出当前轮密钥的第j比特,重复上面的过程,直到恢复出前4轮的字密钥;
S3:在S2的基础上得出前四轮的字密钥,运用SM4密钥扩展算法推出未知的SM4的密钥。
2.前述S1具体包括以下步骤:
S11:选择SM4加/解密轮输入为模板攻击的攻击点;
S12:轮数i=0;
S13:选择输入使Xi+1⊕Xi+2⊕Xi+3=0x00000000,随机输入rki,设M=(Xi+1⊕Xi+2⊕Xi+3⊕rki)为运算中间值,以M的汉明重量建立模板,其中间值的汉明重量的取值为[0,32]且为整数,根据M的汉明重量将曲线划分为33个集合,记为HW0, HW1,……, HW32
S14:针对每一个集合利用主成分分析进行降维处理,最后将均值向量和降维矩阵Y组成的模板,共33个模板;
S15:轮数自加1,返回S1~S14的步骤,直到前四轮的轮输入的模板建立完成。
3.前述S2具体包括以下步骤:
S21:初始化轮数i=0;
S22:对当前轮进行模板攻击的匹配,此时攻击的目标是rki,rki是固定未知的,选择输入的明文或者密文X0、X1、X2和X3作为输入,设X=(Xi+1⊕Xi+2⊕Xi+3);
S23:对SM4加密卡或者加密设备进行加密m次,采集相应的能量曲线;
S24: 对能量曲线进行处理,建立待测试的模板,设待测模板为;
S25:利用支持向量机建立基本的分类模型,此发明利用的是一对一的支持向量机模型,对每个模板建立一个支持向量机分类器,每攻击一轮密钥时,需要建立33个支持向量机分类器,在针对每一个建立支持向量机是当前的模板为正类、其他模板为负类,组合成训练的数据进行训练;
S26:将待测模板作为测试数据,利用建立好33个的支持向量机分类器进行预测分析,将待测试的模板通过所有的分类器,找出属于输出为正类的一个,设预测的结果的汉明重量为W;
S27:初始化j=0,对当前轮输入的明文进行更新,重新建立一个新的模板,只更新的第j位(j=0),将的第j位取反;
S28:利用新的明文对SM4加密卡或者加密设备进行加密m次,采集相应的能量曲线;
S29:执行步骤S24的过程,设此时的预测结果的汉明重量为
S210:比较W和的大小,若,则rki的第j位为1,反之rki的第j位(最低位)为0;
S211:自加1 ,更新的第j位,将其取反,返回步骤S26~S211,直到rki完全恢复;
S212:轮数i自加1,返回S22~S212的步骤,直到得出前四轮的字密钥rk0、rk1、rk2和rk3
CN201510134735.8A 2015-03-25 2015-03-25 一种针对sm4密码算法轮输入汉明重量的模板攻击方法 Active CN104717055B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510134735.8A CN104717055B (zh) 2015-03-25 2015-03-25 一种针对sm4密码算法轮输入汉明重量的模板攻击方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510134735.8A CN104717055B (zh) 2015-03-25 2015-03-25 一种针对sm4密码算法轮输入汉明重量的模板攻击方法

Publications (2)

Publication Number Publication Date
CN104717055A true CN104717055A (zh) 2015-06-17
CN104717055B CN104717055B (zh) 2018-11-20

Family

ID=53416053

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510134735.8A Active CN104717055B (zh) 2015-03-25 2015-03-25 一种针对sm4密码算法轮输入汉明重量的模板攻击方法

Country Status (1)

Country Link
CN (1) CN104717055B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105281889A (zh) * 2015-11-16 2016-01-27 中国电子科技集团公司第三十研究所 一种基于侧信道泄漏的算法还原方法和系统
CN105512518A (zh) * 2015-11-30 2016-04-20 中国电子科技集团公司第三十研究所 一种基于唯密文的密码算法识别方法和系统
CN106341222A (zh) * 2016-09-12 2017-01-18 成都信息工程大学 一种针对sm4密码算法中间5轮的约减轮故障分析的方法
CN106385412A (zh) * 2016-09-12 2017-02-08 成都信息工程大学 一种针对sm4密码算法前4轮的约减轮故障分析的方法
CN109218008A (zh) * 2017-07-05 2019-01-15 北京同方微电子有限公司 一种针对sm4密钥扩展算法的模板攻击方法
CN109450632A (zh) * 2019-01-11 2019-03-08 西安电子科技大学 基于白盒分组密码clefia分析的密钥恢复方法
CN109787745A (zh) * 2019-03-05 2019-05-21 中国人民解放军32082部队 一种基于多推断利用的分组密码容错代数旁路分析方法
CN109995501A (zh) * 2017-12-31 2019-07-09 国民技术股份有限公司 一种侧信道分析方法及装置、终端及计算机可读存储介质
CN109995502A (zh) * 2017-12-31 2019-07-09 国民技术股份有限公司 一种侧信道分析方法及装置、终端及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070174617A1 (en) * 2006-01-24 2007-07-26 Xavier Carrel Method for updating the firmware of a security module
CN104202145A (zh) * 2014-09-04 2014-12-10 成都信息工程学院 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法
CN104333447A (zh) * 2014-11-26 2015-02-04 上海爱信诺航芯电子科技有限公司 一种可抵御能量分析攻击的sm4方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070174617A1 (en) * 2006-01-24 2007-07-26 Xavier Carrel Method for updating the firmware of a security module
CN104202145A (zh) * 2014-09-04 2014-12-10 成都信息工程学院 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法
CN104333447A (zh) * 2014-11-26 2015-02-04 上海爱信诺航芯电子科技有限公司 一种可抵御能量分析攻击的sm4方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105281889B (zh) * 2015-11-16 2019-02-01 中国电子科技集团公司第三十研究所 一种基于侧信道泄漏的算法还原方法和系统
CN105281889A (zh) * 2015-11-16 2016-01-27 中国电子科技集团公司第三十研究所 一种基于侧信道泄漏的算法还原方法和系统
CN105512518B (zh) * 2015-11-30 2018-11-16 中国电子科技集团公司第三十研究所 一种基于唯密文的密码算法识别方法和系统
CN105512518A (zh) * 2015-11-30 2016-04-20 中国电子科技集团公司第三十研究所 一种基于唯密文的密码算法识别方法和系统
CN106385412A (zh) * 2016-09-12 2017-02-08 成都信息工程大学 一种针对sm4密码算法前4轮的约减轮故障分析的方法
CN106341222A (zh) * 2016-09-12 2017-01-18 成都信息工程大学 一种针对sm4密码算法中间5轮的约减轮故障分析的方法
CN109218008A (zh) * 2017-07-05 2019-01-15 北京同方微电子有限公司 一种针对sm4密钥扩展算法的模板攻击方法
CN109218008B (zh) * 2017-07-05 2023-12-19 紫光同芯微电子有限公司 一种针对sm4密钥扩展算法的模板攻击方法
CN109995501A (zh) * 2017-12-31 2019-07-09 国民技术股份有限公司 一种侧信道分析方法及装置、终端及计算机可读存储介质
CN109995502A (zh) * 2017-12-31 2019-07-09 国民技术股份有限公司 一种侧信道分析方法及装置、终端及计算机可读存储介质
CN109995501B (zh) * 2017-12-31 2024-04-12 国民技术股份有限公司 一种侧信道分析方法及装置、终端及计算机可读存储介质
CN109450632A (zh) * 2019-01-11 2019-03-08 西安电子科技大学 基于白盒分组密码clefia分析的密钥恢复方法
CN109787745A (zh) * 2019-03-05 2019-05-21 中国人民解放军32082部队 一种基于多推断利用的分组密码容错代数旁路分析方法

Also Published As

Publication number Publication date
CN104717055B (zh) 2018-11-20

Similar Documents

Publication Publication Date Title
CN104717055A (zh) 一种针对sm4密码算法轮输入汉明重量的模板攻击方法
CN104868990B (zh) 一种针对sm4密码算法轮输出的模板攻击方法
Trujillo-Toledo et al. Real-time RGB image encryption for IoT applications using enhanced sequences from chaotic maps
US9281940B2 (en) Information processing apparatus, information processing method, and program
US9430656B2 (en) Device for carrying out a cryptographic method, and operating method for same
CN107769910B (zh) 一种基于Latch PUF的抗边信道攻击DES防护方法及电路
CN102461063A (zh) 基于硬件的加密技术
CN104202145A (zh) 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法
CN104219046A (zh) 一种基于轻量级不对称加密算法的有源rfid加密方法
CN107276752A (zh) 对云支付限制密钥进行解密的方法、装置和系统
CN104753665A (zh) 一种针对sm4密码轮函数输出的侧信道能量攻击方法
CN106156615B (zh) 基于类可分性判距的旁路区分器方法及系统
CN107306180A (zh) 加解密装置及其功率分析防御方法
CN105117653B (zh) 一种近红外光谱数据加密方法
CN109218008A (zh) 一种针对sm4密钥扩展算法的模板攻击方法
CN107070629A (zh) 一种针对sm4密码算法轮输出的模板攻击方法
Jin et al. Efficient side-channel attacks beyond divide-and-conquer strategy
Luo et al. Cryptanalysis of a chaotic block cryptographic system against template attacks
Liu et al. Machine learning-based similarity attacks for chaos-based cryptosystems
CN103546277B (zh) 一种智能卡sm4算法的dpa攻击与密钥还原方法及系统
CN106301756B (zh) 用于sm2签名的大数模幂求逆功耗检测方法及其系统
CN112134679B (zh) 针对sm4的组合高阶侧信道攻击方法、装置、设备及介质
Hu et al. Cross-Subkey Deep-Learning Side-Channel Analysis.
JP2006025366A (ja) 暗号化装置及び半導体集積回路
CN113726512A (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
GR01 Patent grant
GR01 Patent grant