CN109218008B - 一种针对sm4密钥扩展算法的模板攻击方法 - Google Patents
一种针对sm4密钥扩展算法的模板攻击方法 Download PDFInfo
- Publication number
- CN109218008B CN109218008B CN201710542235.7A CN201710542235A CN109218008B CN 109218008 B CN109218008 B CN 109218008B CN 201710542235 A CN201710542235 A CN 201710542235A CN 109218008 B CN109218008 B CN 109218008B
- Authority
- CN
- China
- Prior art keywords
- key
- power consumption
- attack
- consumption curve
- template
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000004364 calculation method Methods 0.000 claims abstract description 6
- 238000005070 sampling Methods 0.000 claims description 14
- 239000013598 vector Substances 0.000 claims description 10
- 239000011159 matrix material Substances 0.000 claims description 8
- 101000711796 Homo sapiens Sclerostin Proteins 0.000 claims description 6
- 102100034201 Sclerostin Human genes 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 3
- 230000009466 transformation Effects 0.000 description 8
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000007476 Maximum Likelihood Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种针对SM4密钥扩展算法的模板攻击方法,以密钥扩展算法中加密密钥MK异或系统参数FK的计算过程为模板攻击目标,依次攻击16个SM4密钥字节的每一个字节,在密钥扩展算法迭代运算之前的异或运算,使用ID模型作为模板的分类标准,直接对SM4密钥本身进行建模,仅使用猜测空间,就能直接得到SM4密钥。
Description
技术领域
本发明涉及信息安全技术领域, 尤其涉及SM4密钥扩展算法的模板攻击方法技术领域。
背景技术
SM4算法采用非平衡Feistel结构,由密钥扩展和数据加密两部分组成。密钥扩展和数据加密均使用32轮非线性迭代结构,数据分组长度和密钥长度都是128比特。加解密过程采样相同的结构,只是轮密钥使用顺序不同,加密与解密计算轮密钥使用顺序刚好相反。SM4算法的非线性运算S盒固定为8入8出的置换计算,记作Sbox(.)。
SM4算法主密钥表示为MK=(MK0,MK1,MK2,MK3),其中MKi(i=0,1,2,3)为字。系统参数为FK=(FK0,FK1,FK2,FK3),在标准中定义FK=(0x a3b1bac6, 0x56aa3350, 0x677d9197,0xb27022dc)。固定参数CK=(CK0,CK1,…,CK31),其中CKi(i=0,…,31)为字。设cki,j为CKi的第j个字节(j=0,1,2,3),则cki,j=(4i+j) ×7(mod 256)。轮密钥表示为RK=(rk0, rk1,…,rk31),其中rki(i=0,…,31)为字。轮密钥加密主密钥与系统参数和固定参数经密钥扩展算法计算而来,用于每轮数据的加密或解密运算。SM4算法加密运算的流程如图1所示,其中,定义128比特输入明文为X=(X0,X1,X2,X3),其中Xi(i=0,1,2,3)为字。定义128比特密文输出为Y=(Y0,Y1,Y2,Y3),其中Yi(i=0,1,2,3)为字。经过每一轮运算得到Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rki),i=0,1,…,31。32轮运算完成后,跟随一次反序变换R,得到最终加密结果(Y0,Y1,Y2,Y3)=R(X32,X33,X34,X35)=(X35 ,X34 ,X33,X32)。解密时算法结构与加密完全相同,只是轮密钥使用顺序不同。加密时轮密钥顺序使用,依次为(rk0, rk1, …,rk31);解密时轮密钥逆序使用,依次为(rk31, rk30, …,rk0)。
SM4算法的一次迭代称为一轮运算,轮运算的过程函数F如图2所示。轮函数F由输入参数的“⊕”运算和合成置换T组成,F(Xi,Xi+1,Xi+2,Xi+3,rki)= Xi ⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rki)。合成置换T是→/>的可逆运算,包含非线性变换τ和线性变换L两个部分,即T(.)=L(τ(.))。
非线性变换τ由四个S盒并列构成,设输入为A(a0, a1, a2, a3),输出为B(b0,b1, b2, b3),其中ai和bi(i=0, 1, 2, 3)为字节。则(b0, b1, b2, b3)= τ(a0, a1, a2,a3)=(Sbox(a0), Sbox(a1), Sbox(a2), Sbox(a3))。S盒可以表示为一个二维数组,ai的高四比特为二维数组的行标,ai的低四比特为二维数组的列标。线性变换L由“<<<i”和“⊕”运算构成。设输出为C属于,L的输入为τ的输出B。则C=L(B)=B⊕(B<<<2) ⊕(B<<<10) ⊕(B<<<18) ⊕(B<<<24)。
SM4算法的密钥扩展算法与加解密算法比较相近,也是32轮迭代结构,每轮运算包含与加解密运算相同的非线性变换τ和略不同的线性变换L’,密钥扩展的轮函数流程如图3所示。首先,密钥扩展轮运算的输入为(K0, K1, K2, K3)=(MK0⊕FK0, MK1⊕FK1, MK2⊕FK2, MK3⊕FK3)。设Ki(i=0,1,…,35)为密钥扩展轮运算的输入和输出变量,以字为单位。然后,轮密钥rki=Ki+4=Ki⊕L’(τ(Ki+1⊕Ki+2⊕Ki+2⊕CKi)),i=0,1,…,31。其中L’(B)=B⊕(B<<<13) ⊕(B<<<23)。
由于SM4算法的轮计算都是32位的,因此,不易进行侧信道攻击,这是因为需要猜测的密钥空间为,太过庞大。而且,SM4密钥扩展算法采用包含非线性和线性运算混合变换迭代运算,可攻击点很难找到。
发明内容
针对上述现有技术中存在的不足,本发明的目的是选择的攻击点是SM4密钥扩展的轮运算之前加密密钥MK与系统参数FK异或的过程,采用ID模型按字节进行分类,采用标准的模板攻击即可。
为了达到上述技术目的,本发明所采用的技术方案是:
一种针对SM4密钥扩展算法的模板攻击方法,以密钥扩展算法中加密密钥MK异或系统参数FK的计算过程为模板攻击目标,依次攻击16个SM4密钥字节的每一个字节,所述模板攻击方法包括以下具体步骤:
步骤1:使用任意明文数据组和随机密钥在训练设备上进行SM4密钥扩展运算,采集建立模板所需第一功耗曲线;
步骤2:使用SOST方法选取建立模板的采样点,对所述第一功耗曲线使用SOST方法选取与操作“MK⊕FK”相关性最强的采样点组成第二功耗曲线;
步骤3:使用由均值向量和协方差矩阵决定的多维正态分布来描述第二功耗曲线上采样点的分布关系,并以字节为单位,使用Identity(ID)模型作为用于分类的功耗模型对第二功耗曲线中的每一组功耗曲线进行特征提取,建立每种密钥取值或MK⊕FK值对应的模板,共生成256个模板;
步骤4:在目标设备上使用任意明文数据组进行SM4密钥扩展运算,采集第三功耗曲线,使用与步骤2筛选出相同位置的采样点组成第四功耗曲线;
步骤5:使用多维高斯分布模型计算第四功耗曲线中每一条功耗曲线与每一个模板的匹配概率,每一条第四功耗曲线的攻击结果组成了一组攻击结果;
步骤6:根据第四功耗曲线的攻击结果,即候选密钥模板匹配概率排名,对每一个候选密钥进行打分,最后按照分值由低到高排列得到最终的攻击排名,打分标准即攻击结果,排名第一的候选密钥得1分,排第256名的候选密钥得256分;
步骤7:得到SM4密钥第一个字节的攻击结果后,同理,依次分别攻击剩余的15个字节密钥,即攻破完整的SM4加/解密密钥。
本发明由于采用了上述攻击SM4密钥扩展算法MK异或FK过程,所获得的有益效果是,在密钥扩展算法迭代运算之前的异或运算,使用ID模型作为模板的分类标准,直接对SM4密钥本身进行建模,仅使用猜测空间,就能直接得到SM4密钥。
下面结合附图和具体实施方式对本发明做进一步说明。
附图说明
图1是SM4算法加密运算的流程图。
图2是SM4算法轮运算流程图。
图3是SM4算法密钥扩展的轮函数流程图。
图4是本发明具体实施的针对SM4密钥扩展算法的模板攻击方法流程图。
具体实施方式
参看图4所示,为本发明具体实施的针对SM4密钥扩展算法模板攻击过程流程图。
针对SM4密钥扩展算法的模板攻击过程,分为建立模板和模板匹配两个阶段,依次攻击16个密钥字节的每一个字节,以密钥扩展算法中加密密钥MK异或系统参数FK的计算过程为模板攻击目标,所述模板攻击具体步骤如下:
步骤1:使用任意明文组D1在训练设备上进行SM4密钥扩展运算,采集建立模板所需功耗曲线T1,记作矩阵,D1为明文组任意明文数量,S为每条曲线的采样点个数,T1有D1行S列,并使用Identity(ID)模型作为用于分类的功耗模型;
步骤2:使用SOST方法选取建立模板的采样点记作SIP,对所述功耗曲线T1使用SOST方法选取与操作“MK⊕FK”相关性最强的采样点组成功耗曲线T2,记作矩阵,其中/>,功耗曲线T2与功耗曲线T1具有相同的分组方式,仍为256组{tr0,tr1,…,tr255};
步骤3:使用多维正态分布来描述一段功耗曲线T2上采样点的分布关系,建立每种密钥取值对应的模板,多维正态分布由均值向量m和协方差矩阵C来决定,对T2中的每一类功耗曲线组tri(i=0,1,…,255)计算均值向量m和协方差矩阵C组成的参数对(m, C)作为这一密钥取值的功耗模板,共生成256个模板(m, C)i(i=0,1,…,255);
并且,针对功耗曲线T2中的每一组功耗曲线tri(i=0,1,…,255)进行特征提取,均值向量m包含个点的均值,即/>,/>表示矩阵T2的列向量,E/>是T2列向量的数学期望(1.1),协方差矩阵C包含每一种/>个采样点的两两组合,/>=Cov(/>),其中/>和/>都表示矩阵T2的列向量,Cov(/>)表示T2两个列向量的协方差(1.2);
步骤4:在目标设备上使用任意数据组D2进行SM4密钥扩展运算,采集功耗曲线T3,记作,使用与步骤2筛选出的相同位置的采样点组成功耗曲线T3,记作/>,使用此时密钥为未知且固定的/>;
步骤5:使用多维高斯分布模型计算功耗曲线T3中每一条功耗曲线与每一个模板(m, C)i(i=0,1,…,255)的概率Pr[|t3],使用最大似然方法找到使得概率Pr[/>|t3],其最大的模板对应的密钥就是攻击结果,如果攻击成功,则此模板的/>等于正确的密钥/>,根据全概率公式(1.3),在不改变候选密钥排名的情况下,使用Pr[t3| QUOTE />]来估计Pr[ QUOTE /> />|t3]的模板排名;根据多维高斯分布概率密度公式(1.4)计算Pr[t3| QUOTE /> />],t3表示T3的行向量的转置;
步骤6:根据D2个攻击结果,即按照候选密钥模板匹配概率排名,对每一个候选密钥进行打分,最后按照分值由低到高排列得到最终的攻击排名,打分标准即攻击结果,排名第一的候选密钥得1分,排第256名的候选密钥得256分;
步骤7:得到SM4密钥第一个字节的攻击结果后,同理,依次分别攻击剩余的15个字节密钥,即攻破完整的SM4加/解密密钥。
本发明为了接近真实的攻击场景,除目标字节外,每一类攻击曲线使用的MK其他字节进行一次随机选取,为了方便统计匹配结果,攻击曲线按目标字节固定为0,1,…,255的顺序获取。
本发明使用随机的MK采集电源功耗曲线作为训练曲线,为了消除一些电子噪声的影响,进行模板匹配时使用多条曲线匹配结果平均的方法增强鲁棒性。
本发明并不限于上文讨论的实施方式,以上对具体实施方式的描述旨在于为了描述和说明本发明涉及的技术方案。基于本发明启示的显而易见的变换或替代也应当被认为落入本发明的保护范围;以上的具体实施方式用来揭示本发明的最佳实施方法,以使得本领域的普通技术人员能够应用本发明的多种实施方式以及多种替代方式来达到本发明的目的。
Claims (1)
1.一种针对SM4密钥扩展算法的模板攻击方法,以密钥扩展算法中加密密钥MK异或系统参数FK的计算过程为模板攻击目标,依次攻击16个SM4密钥字节的每一个字节,其特征在于,所述模板攻击方法包括以下具体步骤:
步骤1:使用任意明文数据组和随机密钥在训练设备上进行SM4密钥扩展运算,采集建立模板所需第一功耗曲线;
步骤2:使用SOST方法选取建立模板的采样点,对所述第一功耗曲线使用SOST方法选取与操作“MK⊕FK”相关性最强的采样点组成第二功耗曲线;
步骤3:使用由均值向量和协方差矩阵决定的多维正态分布来描述第二功耗曲线上采样点的分布关系,并以字节为单位,使用Identity(ID)模型作为用于分类的功耗模型对第二功耗曲线中的每一组功耗曲线进行特征提取,建立每种密钥取值或MK⊕FK值对应的模板,共生成256个模板;
步骤4:在目标设备上使用任意明文数据组进行SM4密钥扩展运算,采集第三功耗曲线,使用与步骤2筛选出相同位置的采样点组成第四功耗曲线;
步骤5:使用多维高斯分布模型计算第四功耗曲线中每一条功耗曲线与每一个模板的匹配概率,将匹配概率最大的模板对应的密钥作为该条功耗曲线的攻击结果,每一条第四功耗曲线的攻击结果组成了一组攻击结果;
步骤6:根据第四功耗曲线的攻击结果对应的候选密钥模板匹配概率排名,对每一个候选密钥进行打分,最后按照分值由低到高排列得到最终的攻击排名,其中,打分标准为第四功耗曲线的攻击结果对应的候选密钥模板匹配概率排名的顺序,排名第一的候选密钥得1分,排第256名的候选密钥得256分;
步骤7:得到SM4密钥第一个字节的攻击结果后,同理,依次分别攻击剩余的15个字节密钥,得到SM4密钥的全部字节的攻击结果后,完成对SM4加/解密密钥的攻破过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710542235.7A CN109218008B (zh) | 2017-07-05 | 2017-07-05 | 一种针对sm4密钥扩展算法的模板攻击方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710542235.7A CN109218008B (zh) | 2017-07-05 | 2017-07-05 | 一种针对sm4密钥扩展算法的模板攻击方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109218008A CN109218008A (zh) | 2019-01-15 |
CN109218008B true CN109218008B (zh) | 2023-12-19 |
Family
ID=64993535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710542235.7A Active CN109218008B (zh) | 2017-07-05 | 2017-07-05 | 一种针对sm4密钥扩展算法的模板攻击方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109218008B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131563B (zh) * | 2019-06-24 | 2024-04-26 | 国民技术股份有限公司 | 模板攻击测试方法、装置、设备及存储介质 |
CN112134679B (zh) * | 2019-06-24 | 2024-04-30 | 国民技术股份有限公司 | 针对sm4的组合高阶侧信道攻击方法、装置、设备及介质 |
CN112910630B (zh) * | 2021-02-02 | 2022-12-06 | 浙江大华技术股份有限公司 | 扩展密钥的置换方法及装置 |
CN113438067B (zh) * | 2021-05-30 | 2022-08-26 | 衡阳师范学院 | 一种压缩密钥猜测空间的侧信道攻击方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101764684A (zh) * | 2009-10-26 | 2010-06-30 | 广州杰赛科技股份有限公司 | 实现sms4算法的加解密系统 |
CN104579636A (zh) * | 2015-02-16 | 2015-04-29 | 滨州职业学院 | 一种超高速实现sm4算法的系统及其运行方法 |
CN104717055A (zh) * | 2015-03-25 | 2015-06-17 | 成都信息工程学院 | 一种针对sm4密码算法轮输入汉明重量的模板攻击方法 |
CN105553638A (zh) * | 2015-12-07 | 2016-05-04 | 成都芯安尤里卡信息科技有限公司 | 针对sm4一阶掩码算法的二阶频域能量分析攻击 |
CN106021171A (zh) * | 2016-05-06 | 2016-10-12 | 东南大学—无锡集成电路技术研究所 | 一种基于大规模粗粒度可重构处理器的sm4-128的密钥扩展实现方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140254793A1 (en) * | 2011-05-09 | 2014-09-11 | Vicent Martinéz Sancho | Shannon security double symmetrical cryptogram method by coding information for telematic and electronic transmission |
-
2017
- 2017-07-05 CN CN201710542235.7A patent/CN109218008B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101764684A (zh) * | 2009-10-26 | 2010-06-30 | 广州杰赛科技股份有限公司 | 实现sms4算法的加解密系统 |
CN104579636A (zh) * | 2015-02-16 | 2015-04-29 | 滨州职业学院 | 一种超高速实现sm4算法的系统及其运行方法 |
CN104717055A (zh) * | 2015-03-25 | 2015-06-17 | 成都信息工程学院 | 一种针对sm4密码算法轮输入汉明重量的模板攻击方法 |
CN105553638A (zh) * | 2015-12-07 | 2016-05-04 | 成都芯安尤里卡信息科技有限公司 | 针对sm4一阶掩码算法的二阶频域能量分析攻击 |
CN106021171A (zh) * | 2016-05-06 | 2016-10-12 | 东南大学—无锡集成电路技术研究所 | 一种基于大规模粗粒度可重构处理器的sm4-128的密钥扩展实现方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109218008A (zh) | 2019-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109218008B (zh) | 一种针对sm4密钥扩展算法的模板攻击方法 | |
CN103227717B (zh) | 选择轮密钥异或输入进行sm4密码算法侧信道能量分析的方法 | |
CN103138917B (zh) | 以s盒输入为基础的汉明距离模型进行sm4密码算法侧信道能量分析方法 | |
CN104751403B (zh) | 一种基于多混沌系统的明文相关图像加密方法 | |
CN101739695B (zh) | 一种基于三维Arnold映射的图像分组加密方法 | |
CN103166752B (zh) | 选择轮函数为攻击对象进行sm4密码算法侧信道能量分析的应用 | |
CN104851071B (zh) | 一种基于三维混沌系统的数字图像加密方法 | |
CN108880783B (zh) | 一种针对sm4算法的联合攻击方法 | |
CN106327414A (zh) | 一种基于明文自身特性的双混沌图像加密方法 | |
Zhou et al. | Security analysis and new models on the intelligent symmetric key encryption | |
CN101604439A (zh) | 一种基于多混沌系统的彩色图像加密方法 | |
CN105933108B (zh) | 一种对sm4算法实现破解的方法 | |
CN110263586A (zh) | 一种混沌密码系统的硬件安全评估方法 | |
Wang | Side-channel analysis of AES based on deep learning | |
Wang et al. | Efficient framework for genetic algorithm-based correlation power analysis | |
CN108155984B (zh) | 一种基于能量分析的密码算法簇逆向工程分析方法 | |
CN103546277B (zh) | 一种智能卡sm4算法的dpa攻击与密钥还原方法及系统 | |
CN109697613B (zh) | 用于区块链中网络交易安全认证方法和系统 | |
CN114297642B (zh) | 一种基于数据聚合的侧信道攻击方法 | |
CN112134679B (zh) | 针对sm4的组合高阶侧信道攻击方法、装置、设备及介质 | |
Du et al. | Design and analysis of dynamic S-box based on Feistel | |
CN110336775A (zh) | 一种基于Grover算法的量子群认证方法 | |
CN113434332B (zh) | 基于故障蔓延的针对des/3des中间轮攻击的密钥恢复方法 | |
Jin et al. | Side channel attack on SM4 algorithm with deep learning-based analysis | |
Biao et al. | Practical template attacks based on pooled covariance matrix |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB02 | Change of applicant information |
Address after: 100083 Beijing City, Haidian District Wudaokou Wangzhuang Road No. 1 Tongfang Technology Plaza D floor 18 West Applicant after: ZIGUANG TONGXIN MICROELECTRONICS Co.,Ltd. Address before: 100083 Beijing City, Haidian District Wudaokou Wangzhuang Road No. 1 Tongfang Technology Plaza D floor 18 West Applicant before: BEIJING TONGFANG MICROELECTRONICS Co.,Ltd. |
|
CB02 | Change of applicant information | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |