CN106385412A - 一种针对sm4密码算法前4轮的约减轮故障分析的方法 - Google Patents
一种针对sm4密码算法前4轮的约减轮故障分析的方法 Download PDFInfo
- Publication number
- CN106385412A CN106385412A CN201610816830.0A CN201610816830A CN106385412A CN 106385412 A CN106385412 A CN 106385412A CN 201610816830 A CN201610816830 A CN 201610816830A CN 106385412 A CN106385412 A CN 106385412A
- Authority
- CN
- China
- Prior art keywords
- wheel
- cryptographic algorithm
- wheels
- output
- rounds
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种针对SM4密码算法前4轮的约减轮故障分析的攻击方法,包括以下步骤:S1:对SM4密码算法前4轮的轮输出进行故障注入来减少迭代的轮数,获取SM4密码算法前4轮的轮输出;S2:根据SM4密码算法前4轮的轮输出推出前4轮的轮密钥,根据SM4密钥扩展算法,逆向计算出初始密钥。采用上述分析方法不仅实现了针对SM4约减轮故障分析,而且降低了攻击完整密钥所需的攻击次数,增强了攻击效率和成功率。
Description
技术领域
本发明涉及密码算法分析检测领域,尤其涉及一种针对SM4密码算法前4轮的约减轮故障分析的方法。
背景技术
一般情况下,运行密码算法的硬件设备或软件程序都能够正确的执行各种密码算法运算,但是在有干扰的情况下,密码运算的单元模块可能会出现一些故障,比如运算异常或者寄存器故障。利用这些故障引起的错误信息来攻击恢复出密钥的方法称为密码故障分析。
目前密码设备的接口和实现对故障注入的防护措施都有欠缺,一般都比较容易受到攻击。1996年,Boneh等首先将故障注入的方法引入到密码算法的分析中,从此针对智能芯片的故障注入技术开始飞速发展。
根据攻击者侵入密码设备的程度,可以将故障注入分为3种,包括非侵入式故障注入、半侵入式故障注入和侵入式故障注入。顾名思义,后两种方式需要在物理上接触密码芯片,因此需要用于剖片处理的设备、化学用品以及用于注入故障的特殊设备。非侵入式的故障注入主要通过外界干扰的方式,如电压、时钟、磁场等,因此不需要这些昂贵的设备。
故障注入攻击通常由两个部分构成,即故障注入和错误数据利用。故障注入是在某些适合的时间诱导密码运行中的某些中间状态发生故障,这种攻击的实施方式和实际产生的效果依赖于攻击者使用的设备和工作环境。错误利用主要是利用故障注入所产生的结果即错误数据信息,并使用与其对应的分析方法来恢复出部分甚至全部密钥,攻击能否成功一般既依赖于密码系统的设计和实现,也依赖于其算法规范。
故障注入攻击的执行可以分为4个步骤:
(1)选定故障模型
攻击者在进行故障注入前需要明确给出错误注入时机、位置、动作和效果模型。典型的故障模型为:在加密过程中某中间轮发生单字节的瞬时故障。
(2)故障注入
根据故障模型,攻击者选定故障注入的手段,如电流、时钟、激光、射线等干扰方式进行错误注入。常用的诱导故障发生的方法分为3类:
1.直接从外部加入非正常信息,如异常的时钟、电压、温度等;
2.结合探测攻击,从内部引入错误;
3.Skorobogatov和Anderson发明的半入侵攻击属于错误攻击,可在去除钝化层之后,使用激光或重粒子辐照芯片制定区域,引入错误。
(3)错误样本筛选
在故障注入完成后,攻击者根据故障模型,参考密码运行最终输出中的错误宽度、错误位置、错误值,甚至从错误注入后密码运行的时间长短来筛选理想的错误样本,该步骤对于错误分析效率具有较大影响。
(4)密钥分析
在筛选出理想的错误样本后,攻击者分析密码运行正确输出和错误输出之间的关系,使用一定的错误分析方法结合密码算法设计分析出相关密钥值。
SM4算法是分组长度和密钥长度均为128bit,加密算法和解密算法均为32轮的非线性迭代密码算法,其加密算法和解密算法结构相同,只是运算时轮密钥使用的顺序相反,解密轮密钥是加密轮密钥的逆序。SM4加密算法的详细流程如图1所示。
在图1中Xi∈Z2 32(Z2 e表示ebit的向量集(Z2 e)),明文输入为(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,轮迭代函数的表达式为:Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rki)=Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rki) ,在该表达式中,T表示合成置换,是由非线性变换τ和线性变换L复合而成,迭代函数F的详细的流程如图2所示,在整个SM4密码算法的加解密过程中,一共要执行32轮这样的轮迭代函数F。
令resi=T(Xi+1⊕Xi+2⊕Xi+3⊕rki),则:Xi+4= F(Xi,Xi+1,Xi+2,Xi+3,rki)= Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕rki)变为:
Xi+4= F(Xi,Xi+1,Xi+2,Xi+3,rki)= Xi⊕resi
非线性变换τ是由4个并行S盒子构成,每个S盒子为固定的8bit输入8bit输出的置换,记为Sbox(.)。
设输入为Ai=ai,0||ai,1||ai,2||ai,3=Xi+1⊕Xi+2⊕Xi+3⊕rki,其中ai,j∈Z2 32,表示第i轮第j(j∈{0,1,2,3 })个S盒子的输入,||表示两个数据bit的拼接,输出为Bi=bi,0||bi,1||bi,2||bi,3,bi,j表示第i轮、第j个S盒子的输出,则非线性变换τ为:Bi=τ(Ai)=Sbox(ai,0)||Sbox(ai,1)||Sbox(ai,2)||Sbox(ai,3)
线性变换L的描述如下所示:
Ci=L(Bi)=Bi⊕(Bi<<<2)⊕(Bi<<<10)⊕(Bi<<<18)⊕(Bi<<<24)
在该式中,Ci∈Z2 32,Bi∈Z2 32,Ci为线性变换L的输出,Bi为线性变换L的输入,同时也是非线性变换τ的输出。
SM4的密钥扩展算法:轮密钥由加密密钥通过密钥扩展算法生成,其结构与加密变换类似。设加密密钥为MK=(MK0,MK1,MK2,MK3),i=0,1,2,3。令Ki∈Z2 32,i=0,1,…,35,轮密钥rki∈Z2 32,i=0,1,…,31,则轮密钥生成方法如下式所示:
(K0,K1, K2, K3)=( MK0⊕FK0,MK1⊕FK1, MK2⊕FK2, MK3⊕FK3)
rki=Ki+4=Ki⊕T`( Ki+1⊕Ki+2⊕Ki+3⊕CKi)
其中,T`变换与加密变换中的T变换基本相同,只是其中的线性变换L必须修改为以下L`:
L'(B)=B⊕(B<<<13)⊕(B<<<23)
系统参数FKi(i=1,2,3)的取值,采用16进制表示为:FK0=A3B1BAC6,FK1=56AA3350,FK2=677D9197,FK3=B27022DC。
固定参数CK的取值方法为:设cki,j为CKi的第j字节(i=0,1,...,31;j=0,1,2,3),即CKi=( cki,0, cki,1, cki,2, cki,3)∈(Z2 8)4,则cki,j=((4i+j)*7)mod 256。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,646b7279。
根据密钥扩展算法,反推出密钥的方法如下:
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⊕rk 2⊕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⊕K i+2⊕K i+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密码算法前4轮的约减轮故障分析的攻击方法。该方法先利用故障注入的技术使SM4密码执行的时候提前跳出正常的32轮迭代,然后利用该故障情况下生成的输出得到前4轮中某一轮输出,接着有计划的重复上述操作直至获取前4轮的全部轮输出并结合明文信息计算出前4轮的轮密钥,最后根据前4轮的轮密钥计算出整个算法的初始密钥。
发明内容
本发明的目的是提供一种针对SM4密码算法前4轮的约减轮故障分析的攻击方法,以解决对SM4算法进行攻击时方法复杂,样本量大的问题。通过注入故障的技术使SM4密码运行时提前跳出轮函数的迭代过程从而获取前4轮中某轮的轮输出,然后重复上述操作以获取前4轮的全部轮输出,然后结合明文信息推断出前4轮的轮密钥,最后结合密钥扩展算法利用前4轮的轮密钥计算出初始密钥,从而不仅实现了针对SM4密码算法线性变换输出的侧信道能量攻击,而且降低了攻击次数,增强了攻击效率、灵活性、有效性和成功率。
为解决上述技术问题,本发明提供一种针对SM4密码算法前4轮的约减轮故障分析的攻击方法,具体包括以下步骤:
S1:对SM4密码算法前4轮的轮输出进行故障注入来减少迭代的轮数,获取SM4密码算法前4轮的轮输出;
S2:根据SM4密码算法前4轮的轮输出推出前4轮的轮密钥,根据SM4密钥扩展算法,逆向计算出初始密钥。
进一步地,S1具体包括以下步骤:
S11:选择故障注入整体的位置为前4轮,选择完成之后设定sum=4,集合R={2,3,4,5};
S12:开始执行SM4密码算法,进行故障注入,若提前跳出加解密的迭代轮且轮数属于集合R中的元素,记该运算的轮数为r,若未成功则重复本步骤;
S13:判断r是否已在R' 中,如果是则跳转到步骤S12,如果不是则将其添加到集合 R'中,根据步骤S12中的输出利用反序变化推出该运算的轮输出,Count自增;
S14:判断Count是否等于sum,如果不是则跳转到S12继续执行,反之则故障注入完毕,根据明文信息和步骤S13中记录的前4轮的轮输出推断第2轮、第3轮、第4轮的轮输入。
附图说明
图1为SM4加密算法流程图。
图2为迭代函数F的流程图。
图3为对前4轮的轮输出进行故障注入的位置示意图。
图4为针对SM4密码算法前4轮的约减轮故障分析攻击方法的流程图。
Claims (2)
1.针对SM4密码算法前4轮的约减轮故障分析的攻击方法,其特征在于,所述方法包括以下步骤:
S1:对SM4密码算法前4轮的轮输出进行故障注入来减少迭代的轮数,获取SM4密码算法前4轮的轮输出;
S2:根据SM4密码算法前4轮的轮输出推出前4轮的轮密钥,根据SM4密钥扩展算法,逆向计算出初始密钥。
2.根据权利要求1所述的针对SM4密码算法前4轮的约减轮故障分析的攻击方法,其特征在于,所述S1具体包括以下步骤:
S11:选择故障注入整体的位置为前4轮,选择完成之后设定sum=4,集合R={2,3,4,5};
S12:开始执行SM4密码算法,进行故障注入,若提前跳出加解密的迭代轮且轮数属于集合R中的元素,记该运算的轮数为r,若未成功则重复本步骤;
S13:判断r是否已在R'中,如果是则跳转到步骤S12,如果不是则将其添加到集合R'中,根据步骤S12中的输出利用反序变化推出该运算的轮输出,Count自增;
S14:判断Count是否等于sum,如果不是则跳转到S12继续执行,反之则故障注入完毕,根据明文信息和步骤S13中记录的前4轮的轮输出推断第2轮、第3轮、第4轮的轮输入。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610816830.0A CN106385412A (zh) | 2016-09-12 | 2016-09-12 | 一种针对sm4密码算法前4轮的约减轮故障分析的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610816830.0A CN106385412A (zh) | 2016-09-12 | 2016-09-12 | 一种针对sm4密码算法前4轮的约减轮故障分析的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106385412A true CN106385412A (zh) | 2017-02-08 |
Family
ID=57935661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610816830.0A Pending CN106385412A (zh) | 2016-09-12 | 2016-09-12 | 一种针对sm4密码算法前4轮的约减轮故障分析的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106385412A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106982114A (zh) * | 2017-03-12 | 2017-07-25 | 成都信息工程大学 | 一种针对sm3密码算法消息扩展的侧信道分析攻击的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103227717A (zh) * | 2013-01-25 | 2013-07-31 | 国家密码管理局商用密码检测中心 | 选择轮密钥异或输入进行sm4密码算法侧信道能量分析的应用 |
CN104202145A (zh) * | 2014-09-04 | 2014-12-10 | 成都信息工程学院 | 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法 |
CN104717055A (zh) * | 2015-03-25 | 2015-06-17 | 成都信息工程学院 | 一种针对sm4密码算法轮输入汉明重量的模板攻击方法 |
CN104868990A (zh) * | 2015-04-15 | 2015-08-26 | 成都信息工程学院 | 一种针对sm4密码算法轮输出的模板攻击方法 |
-
2016
- 2016-09-12 CN CN201610816830.0A patent/CN106385412A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103227717A (zh) * | 2013-01-25 | 2013-07-31 | 国家密码管理局商用密码检测中心 | 选择轮密钥异或输入进行sm4密码算法侧信道能量分析的应用 |
CN104202145A (zh) * | 2014-09-04 | 2014-12-10 | 成都信息工程学院 | 针对sm4密码算法轮函数输出的选择明文或密文侧信道能量分析攻击的方法 |
CN104717055A (zh) * | 2015-03-25 | 2015-06-17 | 成都信息工程学院 | 一种针对sm4密码算法轮输入汉明重量的模板攻击方法 |
CN104868990A (zh) * | 2015-04-15 | 2015-08-26 | 成都信息工程学院 | 一种针对sm4密码算法轮输出的模板攻击方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106982114A (zh) * | 2017-03-12 | 2017-07-25 | 成都信息工程大学 | 一种针对sm3密码算法消息扩展的侧信道分析攻击的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6557727B2 (ja) | メッセージを暗号化/復号化するためのブロック暗号方法及びこの方法を実施するための暗号装置 | |
EP2955871B1 (en) | Cryptographic method for securely exchanging messages and device and system for implementing this method | |
CN105553638A (zh) | 针对sm4一阶掩码算法的二阶频域能量分析攻击 | |
CN105184181B (zh) | 文件的加密方法、解密方法及装置 | |
CN104579680B (zh) | 一种安全分发种子的方法 | |
CN102594549B (zh) | 一种数据多级加密、解密方法 | |
CN106341222A (zh) | 一种针对sm4密码算法中间5轮的约减轮故障分析的方法 | |
WO2017194469A1 (en) | Secure remote aggregation | |
CN105095695A (zh) | 经由白箱实现的不正确功能行为实现授权 | |
Elakrat et al. | Development of field programmable gate array–based encryption module to mitigate man-in-the-middle attack for nuclear power plant data communication network | |
CN103404073A (zh) | 针对无源监听的保护 | |
CN109165531A (zh) | 一种aes掩码方法、电子设备及存储介质 | |
Liu et al. | Fault attacks on authenticated encryption modes for GIFT | |
CN104052595A (zh) | 密码算法定制方法 | |
US8958556B2 (en) | Method of secure cryptographic calculation, in particular, against attacks of the DFA and unidirectional type, and corresponding component | |
CN106209350A (zh) | 一种针对sm4密码算法后4轮的约减轮故障分析的方法 | |
CN106385412A (zh) | 一种针对sm4密码算法前4轮的约减轮故障分析的方法 | |
CN102158338B (zh) | 一种针对Twofish加密芯片的DFA分析方法及系统 | |
CN100561913C (zh) | 一种访问密码设备的方法 | |
CN116418480A (zh) | 一种基于哈希函数的混沌加密智能电表及其加密方法 | |
CN108599927A (zh) | 集成国密算法安全模块的继电保护装置 | |
CN107294713B (zh) | 一种加密认证方法 | |
CN114696993A (zh) | 一种针对sm4密码算法末轮约减轮故障分析攻击检测方法 | |
CN114696992A (zh) | 一种针对sm4算法中间轮的故障分析攻击检测方法 | |
Lim et al. | Fault Injection Method for Hardware-implemented AES without Artificial Triggering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170208 |