CN112532373B - 针对流密码算法的差分故障分析方法、系统和存储介质 - Google Patents
针对流密码算法的差分故障分析方法、系统和存储介质 Download PDFInfo
- Publication number
- CN112532373B CN112532373B CN202011333563.4A CN202011333563A CN112532373B CN 112532373 B CN112532373 B CN 112532373B CN 202011333563 A CN202011333563 A CN 202011333563A CN 112532373 B CN112532373 B CN 112532373B
- Authority
- CN
- China
- Prior art keywords
- differential
- key stream
- stream
- initial state
- error
- 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
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/004—Countermeasures against attacks on cryptographic mechanisms for fault attacks
-
- 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明提出了一种针对流密码算法的差分故障分析方法、系统及存储介质,利用位置信息的状态表示输出的差分密钥流;并进行分类;给定差分密钥流,按照其所属类别,确定错误注入的位置,并引入优化策略;当错误位置确定后,根据差分序列提取足够多的方程来恢复密码算法的初始状态;密码算法的初始状态被恢复后,对任意明文进行加密,得到相应密文及标签,在解密过程中能通过验证,即完成伪造攻击。通过利用位置信息的三种状态表示输出的差分密钥流,同时提出了一些优化策略,提高了错误位置定位的准确性,在恢复初始状态阶段,给出提取足够的方程的方法,形成一套完整的实现差分故障分析的方法,对基于移位寄存器的流密码算法具有普适性,具有广泛的应用前景。
Description
技术领域
本发明涉及流密码算法领域,尤其涉及一种针对流密码算法的差分故障分析方法、系统和存储介质。
背景技术
故障攻击的概念最早是由Boneh等人提出,即利用随机硬件故障来攻击公钥密码体制,并用此方法攻击了基于CHRT-RSA实现的签名算法。1997年Biham和Shamir首次将差分分析的思想应用到故障分析中,用来对DES类的密码算法进行攻击,对于许多密码算法,差分故障分析是最有效的分析方法之一差分故障分析是一类针对硬件实现的攻击,该攻击通过在密码算法的实际运行过程中随机注入故障,得到相应的错误输出,对比正确的输出和错误的输出,确定错误注入的位置和时间,进而确定内部状态之间的关系,攻击者掌握了设备,可以向设备随机注入错误,对设备具有破坏性,攻击者能够重新启动密码设备,使其恢复到原始状态,这种攻击方法实现起来很困难,但是,这种方法可以有效检测初始化阶段及密钥和初始向量的混淆和扩散的程度,而且实际应用中也可以利用激光枪等设备进行错误注入,近些年来,人们已经利用该思想陆续对一些流密码算法进行分析。
针对Grain-128算法的差分故障攻击。假设攻击者能够在同一位置反复引入故障,并且故障只能引入在线性反馈移位寄存器(LFSR)上。另外,还假设攻击者能够控制故障的引入时间并能在保持私钥和IV不变的前提下重置加密机。基于上述假设,利用连续24个故障,攻击方法在几分钟之内可恢复出私钥。如果增加攻击者在保持私钥不变的同时能采用不同的IV启动加密机的假设条件,并将故障的引入位置扩展到非线性反馈移位寄存器(NFSR)上。击者引入56个故障可以恢复出NFSR的状态,引入128个故障可以恢复出LFSR的状态。
以上两种攻击方法都利用了Grain-128算法中h函数的特殊性质,并不能简单地将其方法直接应用到其它算法的攻击上,另外上述两种攻击方法所需要的故障注入数量很大,对硬件的损坏程度也会相应变大。
发明内容
为了解决以上问题,本发明提出了一种针对流密码算法的差分故障分析方法系统及存储介质,通过利用位置信息的三种状态表示输出的差分密钥流,同时提出了一些优化策略,提高了错误位置定位的准确性,再恢复初始状态阶段,给出提取足够的方程的方法,形成一套完整的实现差分故障分析的方法,对基于移位寄存器的流密码算法具有普适性,具有广泛的应用前景。
本发明一方面的实施例提供一种针对流密码算法的差分故障分析方法,包括以下步骤:
S1、利用位置信息的状态,表示输出的差分密钥流;
S2、对所述差分密钥流进行分类;将差分密钥流分成多个差分串;对于给定的差分密钥流,按照其所属类别,确定错误注入的位置,并引入优化策略,对分类策略进行优化;
S3、当错误位置确定后,对优化后的差分集合,根据差分序列特征提取方程,恢复密码算法的初始状态
S4、密码算法的初始状态被恢复后,对任意明文进行加密,得到相应密文及标签,且在解密过程中能通过验证,完成伪造攻击。
本实施例提供的差分故障分析方法,通过利用位置信息的三种状态表示输出的差分密钥流,同时提出了一些优化策略,提高了错误位置定位的准确性,再恢复初始状态阶段,给出提取足够的方程的方法,形成一套完整的实现差分故障攻击的方法,对基于移位寄存器的流密码算法具有普适性,具有广泛的应用前景。
优选的,所述优化策略包括以下策略中任意一种或多种:延长密钥流策略、高概率优先策略及交叉利用策略。在本实施例中,通过优化策略对密钥流的优化改进,提高了差分密钥流能唯一确定错误注入位置的差分串的比例,以及减少候选错误注入位置的个数。
在上述任意一项实施例中优选的,所述位置信息的状态表示,按照是否能产生差分分为三类状态,包括:第一类状态,一定产生差分;第二类状态,可能产生差分;第三类状态,不可能产生差分。
进一步优选的,在利用位置信息的状态表示输出的差分密钥流时,采用如下方法:
将正确的密钥流与初始注入错误后得到的密钥流进行异或运算,得到运算结果;
其中,所述异或运算得到的结果中,1表示第一类状态;0表示第三类状态;其他表示第二类状态。
在本实施例中,使用新的表示方法,即利用位置信息的三种状态,一定产生差分,可能产生差分,不可能产生差分来表示差分密钥流,对重新表示的密钥流分类也是根据其第一个可能产生差分的位置来分类,同时在确定错误注入位置时也是对其可能产生差分的位置进行充分考虑;对算法本身的特征要求不高,可以普遍适用于攻击基于NFSR的流密码算法。
在上述任意一项实施例中优选的,对所述差分密钥流进行分类;将差分密钥流分成多类差分串集合时,采用如下方法:
将异或运算得到的结果中,出现非零的比特用其所在的位置信息表示,将0省略,形成新的差分密钥流序列;其中,非零包括1和关于初始状态的非零函数;
将新的差分密钥流序列按照第一个1的位置进行分类,形成差分串集合,对于给定的差分密钥流,根据其第一个1的位置,确定其属于哪一类后,再对比其它1的位置,确定可能的错误注入位置。
在本实施例中,采用利用差分串位置信息这种新的计算特征向量的方法,忽略0差分的位置,相比于其他故障注入方法,恢复出密钥,所需要的错误注入次数更少,效率更高。
在上述任意一项实施例中优选的,当不能唯一确定其错误位置时,采用从候选的差分串中随机选择的方式确定注入位置。
在上述任意一项实施例中优选的,在S3中,恢复初始状态包括以下步骤:
a1、提取错误注入过程中,每一个错误注入后得到的线性方程或二次方程;
a2、将提取的所有形如以下公式的二次方程进行线性化,按照一定概率得到一定数量的线性方程;
其中xi,xj,xk是关于初始状态的线性函数;
a3、利用猜测确定方法,通过猜测一部分比特,确定其它比特的值,获得一部分线性方程。
在上述任意一项实施例中优选的,在步骤a1中,首先通过在抽头位置注入错误,提取线性方程或二次方程,则其他注入位置产生的方程由该类方程进行平移和线性变换得出。
在本实施例中,由于每一次进行错误注入实验时,需要存储所有对应的线性和二次方程,因此在提取方程后,采用线性化的方法,提取尽可能多的线性方程,这样算法中用到的函数的结构特征将起到很大作用,对于每进行一次错误注入实验,首先判断其注入位置,然后根据差分串,提取足够的方程,最后解方程恢复初始状态。
本发明另一方面的实施例还提供一种针对流密码算法的差分故障分析装置,采用上述所述的差分故障分析方法,包括确定错误位模块、恢复初始状态模块和伪造攻击模块;所述确定错误位模块,用于利用位置信息的状态表示输出的差分密钥流;对所述差分密钥流进行分类;对于给定的差分密钥流,按照其所属类别,确定错误注入位置,并引入优化策略;所述恢复初始状态模块,用于当错误位置确定后,根据差分序列采用恢复算法,恢复密码算法的初始状态;所述伪造攻击模块;用于密码算法的初始状态被恢复后,对任意明文进行加密,得到相应密文及标签,且在解密过程中能通过验证,即完成伪造攻击。
本发明提出一种存储介质,所述存储介质上存储所有计算机程序,所述计算机程序被处理器执行时实现如上述针对流密码算法的差分故障分析方法的步骤。
附图说明
构成本申请的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明提供的一种针对流密码算法的差分故障分析方法的流程图;
图2为本发明提供的一种针对流密码算法的差分故障分析方法中恢复初始状态的流程图;
图3为本发明提供的一种针对流密码算法的差分故障分析系统的结构框图;
具体实施方式
下面将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
以下详细说明均是示例性的说明,旨在对本发明提供进一步的详细说明。除非另有指明,本发明所采用的所有技术术语与本申请所属领域的一般技术人员的通常理解的含义相同。本发明所使用的术语仅是为了描述具体实施方式,而并非意图限制根据本发明的示例性实施方式。
本发明中涉及到的相关术语解释。
流密码:流密码(Stream Cipher)也称为序列密码,是对称密码算法的一种。序列密码具有实现简单、便于硬件实施、加解密处理速度快、没有或只有有限的错误传播等特点,因此在实际应用中,特别是专用或机密机构中保持着优势,典型的应用领域包括无线通信、外交通信。
差分故障分析:故障攻击指密码攻击者在计算机硬件加密过程中导入故障使其产生故障,从而得到密码系统的部分信息的一种攻击,差分故障分析是在差分密码分析和故障攻击的基础上提出的,该方法不仅对分组密码有效,对序列密码和公钥密码也有很好的效果。
线性反馈移位寄存器:(Linear feedback shift register,LFSR)是指给定前一状态的输出,将该输出的线性函数再用作输入的移位寄存器。异或运算是最常见的单比特线性函数:对寄存器的某些位进行异或操作后作为输入,再对寄存器中的各比特进行整体移位。
非线性反馈移位寄存器:(Nonlinear feedback shift register,NLFSR)是相对于线性反馈移位暂存器而言的。它们的大体电路逻辑相似,仅仅在于NLFSR的反馈逻辑是由异或门和与门构成的,而LFSR中仅存在异或门。从代数表达式来看,异或门是加法(+),而与门是乘法(*)。由加法构成的反馈逻辑,其反馈表达式的最高项次数不会增长,而由乘法参与的反馈表达式项次数会增长、并可能超过定义多项式的最高项。
如图1所示,本申请提出了一种针对流密码算法的差分故障分析方法,包括以下步骤:
S1、利用位置信息的状态,表示输出的差分密钥流;
S2、对所述差分密钥流进行分类;将差分密钥流分成多个差分串;对于给定的差分密钥流,按照其所属类别,确定错误注入的位置,并引入优化策略,对分类策略进行优化,提高确定错误注入位置的准确率;
S3、当错误位置确定后,根据差分序列提取足够多的方程来恢复密码算法的初始状态;
S4、密码算法的初始状态被恢复后,对任意明文进行加密,得到相应密文及标签,且在解密过程中能通过验证,完成伪造攻击。
本实施例提供的差分故障分析方法,通过利用位置信息的三种状态表示输出的差分密钥流,同时提出了一些优化策略,提高了错误位置定位的准确性,再恢复初始状态阶段,给出提取足够的方程的方法,形成一套完整的实现差分故障攻击的方法,形成一套完整的实现差分故障分析的方法,对基于移位寄存器的流密码算法具有普适性,具有广泛的应用前景。
进一步,在S1中,所述位置信息的状态表示,按照是否能产生差分分为三类状态:包括:第一类状态:一定产生差分;第二类状态:可能产生差分;第三类状态:不可能产生差分。进一步优选的,在利用位置信息的状态表示输出的差分密钥流时,采用如下方法:
将正确的密钥流与初始注入错误后得到的密钥流进行异或运算,得到运算结果;
其中,所述异或运算得到的结果中,1表示第一类状态;0表示第三类状态;其他表示第二类状态。
实施例1:
下面将以具体差分密钥流进行详细说明:如第35比特异或后为1,则此位置信息为35,然后省略0的位置信息。下面例子将详细介绍这种表示方式,如取99比特差分密钥流,当在s0位置注入错误,可以得到差分序列:
其中表示Δz0中第i比特分量,0k表示k个连续的0,037表示37个连续的0且:
其中si表示第i位初始状态,pi表示明文的第i比特。
在本实施例中,使用新的表示方法,即利用位置信息的三种状态,一定产生差分,可能产生差分,不可能产生差分来表示差分密钥流,对重新表示的密钥流分类也是根据其第一个可能产生差分的位置来分类,同时在确定错误注入位置时也是对其可能产生差分的位置进行充分考虑;对算法本身的特征要求不高,可以普遍适用于攻击基于NFSR的流密码算法。
在上述任意一项实施例中优选的,对所述差分密钥流进行分类;将差分密钥流分成多个差分集合时,采用如下方法:
将异或运算得到的结果中,出现非零的比特用其所在的位置信息表示,将0省略,形成新的差分密钥流序列;其中,非零包括1和关于初始状态的非零函数;
将新的差分密钥流序列按照第一个1的位置进行分类,形成差分串集合,对于给定的差分密钥流,根据其第一个1的位置,确定其属于哪一类后,再对比其它1的位置,确定可能的错误注入位置。
实施例2:
在上述实施例1的基础上,将0省略,Δz0可以重新表示为:
Δz0=(0,38,49,58,61,76,87,96),
对差分密钥流进行分类的特征是根据满足条件和的下标t,将Δzi(i∈[0,292])分成99类,记为Bt(t∈[0,98]),其中i(i=49,87)表示第i位的值总是1。例如,B0包含第一个分量/>可能为1的差分串Δzi,对于Δz0=(0,38,49,58,61,76,87,96),它可能出现在B0,B38和B49中,因为它的第一个1的位置可能是0、38或49,而/>恒成立。
在本实施例中,采用位置信息表示差分串这种新的计算特征向量的方法,忽略0差分的位置,相比于其他故障注入方法,恢复出密钥,所需要的错误注入次数更少,效率更高。
在上述任意一项实施例中优选的,当不能唯一确定其错误位置时,采用从候选的差分串中随机选择的方式确定注入位置。
优选的,所述优化策略包括以下策略中任意一种或多种:延长密钥流策略、高概率优先策略及交叉利用策略。在本实施例中,通过利用优化策略,提高了差分密钥流能唯一确定错误注入位置的差分串的比例,以及减少候选错误注入位置的个数。
实施例3:
为了提高能唯一确定错误注入位置的差分串的比例,以及减少候选错误注入位置的个数,给出几条改进策略,包括延长密钥流策略、高概率优先策略、及交叉利用策略,其中延长密钥流策略在提高能唯一确定错误注入位置的差分串的比例方面,是一种很有效的方法,可用的密钥流越长,能唯一确定错误注入位置的概率越大,另外对于还是不能唯一确定错误注入位置的差分串,则希望其随机选择正确的概率越大越好;其中高概率优先策略的特征在于假设移位寄存器的初始状态是随机均匀分布的,对于给定的密钥流差分串Δz,其确定的错误位置是正确的错误位置的概率不一样,例如,当由于B85每一个候选位置i需要满足/>其中j∈[0,98]且j≠85,观察Δzi的表达式,可以知道i取278的概率是2-3,取239的概率是2-8。对于所有候选位置,选择对应最大概率的i。
如图2所示,在上述任意一项实施例中优选的,在S3中,恢复初始状态包括以下步骤:
a1、提取方程过程中,每一个注入错误后得到的差分密钥流对应的线性方程或二次方程;
a2、将提取的所有形如以下公式的二次方程进行线性化,按照一定概率得到一定数量的线性方程;
其中xi,xj,xk是关于初始状态的线性函数;
a3、以一定的概率获得一定数量的线性方程,同时通过猜测确定方法,确定一部分比特值。在步骤a1中,通过在抽头位置注入错误,提取线性方程或二次方程,其他注入位置产生的方程由该类方程进行平移和线性变换得出。提取方程过程中,考虑的密钥流一般是前面的比特,因为其可以表示成关于初始状态s的线性或二次函数,本发明将利用这些最高次数为2次的方程,获得线性的差分方程。
下面将给出错误注入位置是si的情况,其中i∈A,且:
A={0,12,23,61,66,107,111,154,160,193,196,230,235,244};
对于i∈[0,292]且主要想法是通过对Δzi'进行平移和线性变换,其中i'∈A。值得注意的是,线性变换的逆变换不能改变函数的次数,但可以使函数中单项式个数增加(不考虑异或运算抵消的情况)。对于每一个错误注入位置i,其中i∈[0,292],需要存储所有对应的线性和二次方程。每当进行一次错误注入实验,首先判断其注入位置,然后根据差分串,利用不同方法确定其对应的方程,最后解方程恢复初始状态。
在步骤a2中,线性化方法基本的想法是提取尽可能多的线性方程,这样,算法中用到的函数的结构特征将起到很大作用。
设
其中xi,xj,xk是关于初始状态的线性函数,则有
且
Pr[y=xj=xk|y≠xi]=1 (公式3)
如果存在n1个形如(1)的方程,可以得到n1个线性方程的概率是
步骤a3中,猜测确定方法基本的想法是通过猜测一部分比特,从而确定其它比特的值,具体而言,对于一次错误注入实验,我们平均可以得到1.2个线性方程和4.5个二次方程,包括1.2个形如xixj的二次方程,形如xixj的二次方程可以看成1个线性方程,因为通过猜测xi和xj的值,可以得到2个线性方程,概率是这样,一次错误注入实验平均可以获得3.3个线性方程和3.3个二次方程,进行41次实验,可以得到295个方程,其中线性方程个数为160。通过猜测67比特值,133个二次方程可以转换成线性方程,这样293个线性方程可以恢复初始状态s,时间复杂度是c·267,其中c是解线性方程的时间复杂度。
在本实施例中,由于每一次进行错误注入实验时,需要存储所有对应的线性和二次方程,因此在提取方程后,采用线性化的方法,提取尽可能多的线性方程,这样算法中用到的函数的结构特征将起到很大作用,对于每进行一次错误注入实验,首先判断其注入位置,然后根据差分串,利用不同方法确定其对应的方程,最后解方程恢复初始状态。
本发明另一方面的实施例还提供一种针对流密码算法的差分故障分析装置,采用上述所述的差分故障分析方法,包括确定错误位模块1、恢复初始状态模块2和伪造攻击模块3;
所述确定错误位模块1,用于利用位置信息的状态表示输出的差分密钥流;对所述差分密钥流进行分类;对于给定的差分密钥流,按照其所属类别,确定错误注入位置,并引入优化策略;其中,确定错误位置包括以下步骤:
1)利用位置信息的三种状态表示输出的差分密钥流;所述位置信息的状态表示,按照是否能产生差分分为三类状态:包括:第一类状态:一定产生差分;第二类状态:可能产生差分;第三类状态:不可能产生差分。将正确的密钥流与初始注入错误后得到的密钥流进行异或运算,得到运算结果;其中,所述异或运算得到的结果中,1表示第一类状态;0表示第三类状态;其他表示第二类状态。
在具体差分密钥串中的分类过程,参加上述实施例1。
2)对差分密钥流就行分类;
3)根据给定的差分密钥流,确定其分类,并确定其错误注入位置。将异或运算得到的结果中,出现非零的比特用其所在的位置信息表示,将0省略,形成新的差分密钥流序列;其中,非零包括1和关于初始状态的非零函数。
将新的差分密钥流序列按照下标进行分类,形成差分串,对于给定的差分密钥流,根据其第一个1的位置,确定其属于哪一类,再对比其它1的位置,确定可能的错误注入位置。具体实施例参见上述实施例2中对差分密钥流的分类和错误注入位置的确定。
4)引入优化策略,包括延长密钥流策略、高概率优先策略、及交叉利用策略。为了提高能唯一确定错误注入位置的差分串的比例,以及减少候选错误注入位置的个数,给出几条改进策略,包括延长密钥流策略、高概率优先策略、及交叉利用策略,其中延长密钥流策略在提高能唯一确定错误注入位置的差分串的比例方面,是一种很有效的方法,可用的密钥流越长,能唯一确定错误注入位置的概率越大,另外对于还是不能唯一确定错误注入位置的差分串,则希望其随机选择正确的概率越大越好;其中高概率优先策略的特征在于假设移位寄存器的初始状态是随机均匀分布的,对于给定的密钥流差分串Δz,其确定的错误位置是正确的错误位置的概率不一样。例如,当由于B85每一个候选位置i需要满足/>其中j∈[0,98]且j≠85,观察Δzi的表达式,可以知道i取278的概率是2-3,取239的概率是2-8。对于所有候选位置,选择对应最大概率的i。
所述恢复初始状态模块2,用于当错误位置确定后,根据差分序列采用恢复算法,恢复密码算法的初始状态;恢复初始状态包括以下步骤:
1)提取方程;在步骤a1中,首先通过在抽头位置注入错误,提取线性方程或二次方程,则其他注入位置产生的方程由该方程进行平移和线性变换得出。提取方程过程中,考虑的密钥流一般是前面的比特,因为其可以表示成关于初始状态s的线性或二次函数,本发明将利用这些最高次数为2次的方程,获得线性的差分方程。
下面将给出错误注入位置是si的情况,其中i∈A,且:
A={0,12,23,61,66,107,111,154,160,193,196,230,235,244}
对于i∈[0,292]且主要想法是通过对Δzi'进行平移和线性变换,其中i'∈A。值得注意的是,线性变换的逆变换不能改变函数的次数,但可以使函数中单项式个数增加(不考虑异或运算抵消的情况)。对于每一个错误注入位置i,其中i∈[0,292],需要存储所有对应的线性和二次方程。每当进行一次错误注入实验,首先判断其注入位置,然后根据差分串,利用不同方法确定其对应的方程,最后解方程恢复初始状态。
2)线性化方法;
线性化方法基本的想法是提取尽可能多的线性方程,这样,算法中用到的函数的结构特征将起到很大作用。
设
其中xi,xj,xk是关于初始状态的线性函数,则有
且
Pr[y=xj=xk|y≠xi]=1. (公式3)
如果存在n1个形如(1)的方程,可以得到n1个线性方程的概率是
3)猜测确定方法。
猜测确定方法基本的想法是通过猜测一部分比特,从而确定其它比特的值,具体而言,对于一次错误注入实验,我们平均可以得到1.2个线性方程和4.5个二次方程包括1.2个形如xixj的二次方程,形如xixj的二次方程可以看成1个线性方程,因为通过猜测xi和xj的值,可以得2个线性方程,概率是这样,一次错误注入实验平均可以获得3.3个线性方程和3.3个二次方程,进行41次实验,可以得到295个方程,其中线性方程个数为160。通过猜测67比特值,133个二次方程可以转换成线性方程,这样293个线性方程可以恢复初始状态s,时间复杂度是c·267,其中c是解线性方程的时间复杂度。
所述伪造攻击模块3;用于密码算法的初始状态被恢复后,对任意明文进行加密,得到相应密文及标签,且在解密过程中能通过验证伪造成功,完成故障分析。
本发明提出一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述针对流密码算法的差分故障分析方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
由技术常识可知,本发明可以通过其它的不脱离其精神实质或必要特征的实施方案来实现。因此,上述公开的实施方案,就各方面而言,都只是举例说明,并不是仅有的。所有在本发明范围内或在等同于本发明的范围内的改变均被本发明包含。
Claims (7)
1.一种针对流密码算法的差分故障分析方法,其特征在于,包括以下步骤:
S1、利用位置信息的状态,表示输出的差分密钥流;
所述位置信息的状态表示,按照是否能产生差分分为三类状态:包括:第一类状态,一定产生差分;第二类状态,可能产生差分;第三类状态,不可能产生差分;
在利用位置信息的状态表示输出的差分密钥流时,采用如下方法:
将正确的密钥流与注入错误后得到的密钥流进行异或运算,得到运算结果;所述异或运算得到的结果中,1表示第一类状态;0表示第三类状态;其他表示第二类状态;
S2、对所述差分密钥流进行分类;对所述差分密钥流进行分类,采用如下方法:
将异或运算得到的结果中,出现非零的比特用其所在的位置信息表示,将0省略,形成新的差分密钥流序列;其中,非零包括1和关于初始状态的非零函数;
将新的差分密钥流序列按照第一个出现1的位置进行分类,形成差分串集合,对于给定的差分密钥流,根据其第一个1的位置,确定其属于哪一类后,再对比其它1的位置,确定可能的错误注入位置;
将差分密钥流分成多个差分串;对于给定的差分密钥流,按照其所属类别,确定错误注入的位置,并引入优化策略,对分类策略进行优化;
S3、当错误位置确定后,对优化后的差分集合,根据差分序列特征提取方程,恢复密码算法的初始状态;
S4、密码算法的初始状态被恢复后,对任意明文进行加密,得到相应密文及标签,且在解密过程中能通过验证,完成伪造攻击。
2.根据权利要求1所述的针对流密码算法的差分故障分析方法,其特征在于,所述优化策略包括以下策略中任意一种或多种:延长密钥流策略、高概率优先策略及交叉利用策略。
3.根据权利要求1所述的针对流密码算法的差分故障分析方法,其特征在于,当不能唯一确定其错误位置时,采用从候选的差分串中随机选择的方式确定注入位置。
4.根据权利要求1所述的针对流密码算法的差分故障分析方法,其特征在于,在S3中,恢复初始状态包括以下步骤:
a1、提取错误注入过程中,每一个错误注入后得到的线性方程或二次方程;
a2、将提取的所有形如以下公式的二次方程进行线性化,按照一定概率得到一定数量的线性方程;
其中xi,xj,xk是关于初始状态的线性函数;
a3、利用猜测确定方法,通过猜测一部分比特,确定其它比特的值,获得一部分线性方程。
5.根据权利要求4所述的针对流密码算法的差分故障分析方法,其特征在于,在步骤a1中,通过在抽头位置注入错误,提取线性方程或二次方程,其他注入位置产生的方程由线性方程或二次方程进行平移和线性变换得出。
6.一种针对流密码算法的差分故障分析装置,其特征在于,采用上述权利要求1-5中任意一项所述的差分故障分析方法,包括确定错误位模块、恢复初始状态模块和伪造攻击模块;
所述确定错误位模块,用于利用位置信息的状态表示输出的差分密钥流;对所述差分密钥流进行分类;将差分密钥流分成多个差分串;对于给定的差分密钥流,按照其所属类别,确定错误注入位置,并引入优化策略,对分类策略进行优化;
所述恢复初始状态模块,用于当错误位置确定后,对优化后的差分集合,根据差分序列提取足够的方程,恢复密码算法的初始状态;
所述伪造攻击模块;用于密码算法的初始状态被恢复后,对任意明文进行加密,得到相应密文及标签,且在解密过程中能通过验证,完成伪造攻击。
7.一种存储介质,其特征在于,所述存储介质上存储所有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述针对流密码算法的差分故障分析方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011333563.4A CN112532373B (zh) | 2020-11-24 | 2020-11-24 | 针对流密码算法的差分故障分析方法、系统和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011333563.4A CN112532373B (zh) | 2020-11-24 | 2020-11-24 | 针对流密码算法的差分故障分析方法、系统和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112532373A CN112532373A (zh) | 2021-03-19 |
CN112532373B true CN112532373B (zh) | 2023-08-25 |
Family
ID=74993125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011333563.4A Active CN112532373B (zh) | 2020-11-24 | 2020-11-24 | 针对流密码算法的差分故障分析方法、系统和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112532373B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6965673B1 (en) * | 1997-09-19 | 2005-11-15 | Telcordia Technologies, Inc. | Method of using transient faults to verify the security of a cryptosystem |
CN105227295A (zh) * | 2015-10-10 | 2016-01-06 | 成都芯安尤里卡信息科技有限公司 | 一种针对sms4密码算法的差分故障注入攻击 |
CN109600232A (zh) * | 2018-12-05 | 2019-04-09 | 北京智慧云测科技有限公司 | 针对sm2签名算法的攻击验证、防护方法及装置 |
CN109842483A (zh) * | 2019-03-18 | 2019-06-04 | 东华大学 | 一种检测aes-jambu抵御差分故障攻击的方法 |
CN110299988A (zh) * | 2019-07-01 | 2019-10-01 | 中国人民解放军战略支援部队信息工程大学 | 轻量级分组密码算法抗攻击能力的检测方法及检测装置 |
CN110912672A (zh) * | 2019-11-12 | 2020-03-24 | 东华大学 | 一种检测colm认证加密算法抵御差分故障攻击的方法 |
-
2020
- 2020-11-24 CN CN202011333563.4A patent/CN112532373B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6965673B1 (en) * | 1997-09-19 | 2005-11-15 | Telcordia Technologies, Inc. | Method of using transient faults to verify the security of a cryptosystem |
CN105227295A (zh) * | 2015-10-10 | 2016-01-06 | 成都芯安尤里卡信息科技有限公司 | 一种针对sms4密码算法的差分故障注入攻击 |
CN109600232A (zh) * | 2018-12-05 | 2019-04-09 | 北京智慧云测科技有限公司 | 针对sm2签名算法的攻击验证、防护方法及装置 |
CN109842483A (zh) * | 2019-03-18 | 2019-06-04 | 东华大学 | 一种检测aes-jambu抵御差分故障攻击的方法 |
CN110299988A (zh) * | 2019-07-01 | 2019-10-01 | 中国人民解放军战略支援部队信息工程大学 | 轻量级分组密码算法抗攻击能力的检测方法及检测装置 |
CN110912672A (zh) * | 2019-11-12 | 2020-03-24 | 东华大学 | 一种检测colm认证加密算法抵御差分故障攻击的方法 |
Non-Patent Citations (1)
Title |
---|
对SHACAL-2算法和MD5加密模式的差分故障攻击;沈璇;中国优秀硕士学位论文全文数据库;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112532373A (zh) | 2021-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3069249B1 (en) | Authenticatable device | |
Li et al. | Differential fault analysis on the ARIA algorithm | |
Reparaz et al. | Selecting time samples for multivariate DPA attacks | |
Clavier et al. | Reverse engineering of a secret AES-like cipher by ineffective fault analysis | |
CN108604981A (zh) | 用于估计秘密值的方法和设备 | |
Dey et al. | Full key recovery of ACORN with a single fault | |
Dassance et al. | Combined fault and side-channel attacks on the AES key schedule | |
AU2011327986B2 (en) | Protection against passive sniffing | |
US9544132B2 (en) | Cryptographic method for protecting a key hardware register against fault attacks | |
Bokhari et al. | Cryptanalysis techniques for stream cipher: a survey | |
CN112653546A (zh) | 一种基于功耗分析的故障攻击检测方法 | |
Korkikian et al. | Blind fault attack against SPN ciphers | |
EP1646174A1 (en) | Method and apparatus for generating cryptographic sets of instructions automatically and code generation | |
US12052348B2 (en) | Computation device using shared shares | |
US9559838B2 (en) | Method of processing data protected against fault injection attacks and associated device | |
Wu et al. | Differential-linear attacks against the stream cipher Phelix | |
Jana et al. | Differential fault attack on photon-beetle | |
Lim et al. | Differential fault attack on lightweight block cipher PIPO | |
CN112532373B (zh) | 针对流密码算法的差分故障分析方法、系统和存储介质 | |
Engels et al. | SPFA: SFA on multiple persistent faults | |
Breunesse et al. | Towards fully automated analysis of whiteboxes: perfect dimensionality reduction for perfect leakage | |
Takahashi et al. | Differential fault analysis on the AES key schedule | |
Belenky et al. | Carry-based Differential Power Analysis (CDPA) and its Application to Attacking HMAC-SHA-2 | |
Hermelink et al. | The Insecurity of Masked Comparisons: SCAs on ML-KEM’s FO-Transform | |
CN107766725B (zh) | 抗模板攻击的数据传输方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |