CN110912672A - 一种检测colm认证加密算法抵御差分故障攻击的方法 - Google Patents
一种检测colm认证加密算法抵御差分故障攻击的方法 Download PDFInfo
- Publication number
- CN110912672A CN110912672A CN201911099842.6A CN201911099842A CN110912672A CN 110912672 A CN110912672 A CN 110912672A CN 201911099842 A CN201911099842 A CN 201911099842A CN 110912672 A CN110912672 A CN 110912672A
- Authority
- CN
- China
- Prior art keywords
- colm
- fault
- encryption algorithm
- key
- authentication
- 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
Images
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明提供了一种检测COLM算法抵御差分故障攻击的方法。首先保证COLM认证加密算法在一个安全的环境下对明文进行加密;然后再通过物理手段改变实验环境,在COLM认证加密算法对明文加密的过程中诱导故障的产生;最后分别计算差分值ΔC=C⊕C′、ΔT=T⊕T′,分析ΔC和ΔT,获取ΔC和ΔT中各个字节的差分比例,猜测使该比例成立的密钥K来缩小猜测空间进而破解密钥。然而各轮加密之间的中间状态会与子密钥进行异或操作,使得该函数及其复杂,不利于猜测密钥,因此将整个故障扩散过程分为两部分,利用前一轮加密后的结果差异与后一轮解密后的结果差异一致关系建立方程,进而计算密钥K。本发明原理简单,准确度高,易于实现,对评测COLM认证加密算法抵御差分故障攻击的能力提供了重要的理论依据。
Description
技术领域
本发明涉及一种检测COLM认证加密算法抵御差分故障攻击的方法,属于信息安全技术领域。本发明能够用于评估出COLM认证加密算法抵御差分故障攻击的能力,主要应用于测评封装有COLM认证加密算法的产品的安全性。
背景技术
由于信息技术的发展,网络空间中的信息经常会受到攻击、拦截和破坏,因此需要使用加密算法来保证网络信息的安全性和完整性,这就必须保证加密算法的密钥安全性。
作为一种新型认证加密算法,COLM于2016年5月被提出。COLM可以被视为基于分组密码的加密—线性混合—加密模式。COLM认证加密算法包括认证和加密两个部分,能够保证信息的完整性和保密性。
差分故障攻击结合了故障攻击和差分分析,即在算法运行时导入故障,使其执行某些错误的操作、过程或产生错误的结果,并通过差分分析计算出密钥可能的取值,最终恢复出密钥。目前还没有公开的报告评估COLM认证加密算法抵御差分故障攻击的能力,这为正在使用的封装了COLM认证加密算法的产品带来了安全隐患。
发明内容
本发明要解决的技术问题是:如何评估COLM认证加密算法抵御差分故障攻击的能力。
为了解决上述技术问题,本发明的技术方案是提供了一种检测COLM认证加密算法抵御差分故障攻击的方法,其特征在于,包括以下步骤:
步骤1:随机生成要处理的明文消息M;
步骤2:利用COLM认证加密算法处理明文消息M,得到正确密文C、错误密文C′、正确验证标签T和错误验证标签T′,COLM认证加密算法共有十轮迭代,前九轮迭代依次进行4个步骤即字节代换、行位移、列混淆和密钥加,第十轮依次进行3个步骤即字节代换、行位移、密钥加;
步骤3:分别计算差分值ΔC=C⊕C′、ΔT=T⊕T′;⊕表示异或运算;
步骤4:分析ΔC和ΔT,获取ΔC和ΔT中各个字节的差分比例,,判断COLM认证加密算法是否受到差分故障攻击的影响,并推导出故障导入的位置,分析故障是否有效;
步骤5:通过猜测使函数成立的密钥K来缩小猜测空间,进而破解密钥。
优选地,步骤1中,所述正确密文C及所述正确验证标签T获得方法为:输入消息M,控制实验环境不受其他不相关事务的干扰,使得COLM认证加密算法能够准确无误地进行,从而得到所述正确密文C及所述正确验证标签T;
所述错误密文C′及所述错误验证标签T′获得方法为:重新输入消息M,再次用COLM认证加密算法对其进行加密处理,同时借助物理设备改变运行环境,诱导产生故障来干扰COLM认证加密算法的处理过程,COLM认证加密算法导入故障后输出所述错误密文C′及所述错误验证标签T′。
优选地,借助物理设备改变运行环境使COLM认证加密算法运行过程受到干扰从而诱导其产生故障的方法如下:改变时钟、电压、湿度、辐射、压力、光和涡电流,从而将故障随机地导入COLM认证加密算法处理过程,以得到错误的所述错误密文C′及所述错误验证标签T′。
优选地,所述步骤4具体包括如下步骤:
步骤401、判断ΔC的故障是否有效以及导入位置,包括以下步骤:
通过ΔC=ΔC1‖ΔC2‖...‖ΔC16中ΔC1至ΔC16之间的比例进行差分分析,判断所导入的故障是否为有效故障,并推断出故障所在位置,式中,||表示连接运算,ΔCi表示ΔC的第i个字节,i为正整数;
1)有效故障
当ΔC1到ΔC16的值均不为0,且比例符合以下其中一种情况时,说明导入的故障为有效故障:
情况一)若满足下列等式中的一个,则推导出故障位置可能为COLM认证加密算法第八轮迭代的1、6、11、16:
2ΔC1=ΔC2=ΔC3=3ΔC4,
ΔC5=ΔC6=3ΔC7=2ΔC8,
ΔC9=3ΔC10=2ΔC11=ΔC12,
3ΔC13=2ΔC14=ΔC15=ΔC16.
情况二)若满足下列等式中的一个,则可以推导出故障位置可能为COLM认证加密算法第八轮迭代的4、5、10、15:
3ΔC1=2ΔC2=ΔC3=ΔC4,
2ΔC5=ΔC6=ΔC7=3ΔC8,
ΔC9=ΔC10=3ΔC11=2ΔC12,
ΔC13=3ΔC14=2ΔC15=ΔC16.
情况三)若满足下列等式中的一个,则可以推导出故障位置可能为COLM认证加密算法第八轮迭代的3、8、9、14:
ΔC1=3ΔC2=2ΔC3=ΔC4,
3ΔC5=2ΔC6=ΔC7=ΔC8,
2ΔC9=ΔC10=ΔC11=3ΔC12,
ΔC13=ΔC14=3ΔC15=2ΔC16.
情况四)若满足下列等式中的一个,则可以推导出故障位置可能为COLM认证加密算法第八轮迭代的2、7、12、13:
ΔC1=ΔC2=3ΔC3=2ΔC4,
ΔC5=3ΔC6=2ΔC7=ΔC8,
3ΔC9=2ΔC10=ΔC11=ΔC12,
2ΔC13=ΔC14=ΔC15=3ΔC16.
2)无效故障
情况一)当ΔC=0时,表示故障密文和正确密文相等,相当于导入故障失败,此故障为无效故障;
情况二)当ΔC≠0时,所得的密文无法恢复出密钥,或者获得的密钥不唯一,则该故障为无效故障;
情况三)在第8轮之前导入的故障为无效故障;
步骤402、采用与步骤401相同的方法判断ΔT的故障是否有效以及导入位置。
优选地,所述步骤5中,通过猜测使函数成立的密钥K来缩小猜测空间,进而破解密钥具体方法如下:
首先,利用步骤4中推导得到的前一轮迭代加密后的结果差异与COLM认证加密算法后一轮迭代解密后的结果差异的一致关系建立方程,然后根据此方程使用穷举法猜测子密钥ki,接着利用COLM认证加密算法的密钥编排方案,对前一轮密钥ki-1和后一轮密钥ki进行处理,推测出原始密钥K。
本发明提供了一种检测COLM认证加密算法抵御差分故障攻击的方法,首先通过COLM认证加密算法对明文消息进行加密,这个步骤要在两种不同的实验环境分别进行运算输出,一种是安全并且未添加任何故障的实验环境,能够确保算法对明文消息处理的结果正确无误,并将结果记为C和T;另一种是在算法对明文消息处理的过程中,使用某些物理手段如改变时钟、电压、湿度、辐射、压力、光和涡电流等一系列操作,对处理过程进行干扰,诱导其产生故障,获得错误的输出,记为C′和T′。通过计算正确输出和错误输出的差分值ΔC和ΔT,判断COLM认证加密算法能否抵御差分故障攻击,并推导出故障导入的位置,分析故障是否有效,从而缩小了密钥的猜测空间,通过穷举法得到子密钥,再通过COLM的密钥扩展算法能够得到原始密钥。该方法只需要导入一个故障便可以推导出密钥,不仅易于实现、原理简单还可以防止加密机制遭受破坏。该方法在测评使用了COLM认证加密算法的软硬件安全系统提供了重要的理论依据。
本发明提供的方法具有简单、快捷、准确且易于实现等特点,对检测COLM认证加密算法抵御差分故障攻击的能力提供了良好的分析依据。
附图说明
图1为本发明提供的检测COLM认证加密算法抵御差分故障攻击的方法流程图;
图2为COLM认证加密算法的差分故障分析图;
图3为COLM认证加密算法的加密分析图;
图4为COLM认证加密算法的认证分析图;
图5为实施例的实验环境示意图。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
本实施例中所用到的符号说明如下:
⊕:异或运算;
Δ:差分运算;
||:连接运算;
M:明文消息;
C:使用COLM处理明文消息M所得到的正确密文;
C′:使用COLM处理明文消息M并导入故障后所得到的错误密文;
ΔC:C和C′的差分值;
ΔCi:ΔC的第i个字节,1≤i≤16;
T:使用COLM处理明文消息M所得到的正确验证标签;
T′:使用COLM处理明文消息M并导入故障后所得到的错误验证标签;
ΔT:T和T′的差分值;
K:原始密钥;
Ki j:第j轮子密钥的第i个字节,1≤i≤16,1≤j≤10;
f:第八轮加入故障前后两个中间状态的异或差异;
Ai:第十轮的第i个字节,1≤i≤16;
Ek:密钥为K的加密算法;
IV:通过计算得到的初始值;
L:表示Ek(0),L1=32·L;
h:表示生成中间标签数;
hi:表示处理到第i个块时生成的中间标签个数;
F1、F2、F3、F4:第九轮加入故障前后两个中间状态的异或差异;
使用COLM认证加密算法使用相同密钥对相同明文消息进行处理时,如果实验环境(正常情况与受到时钟、电压、湿度、辐射、压力、光和涡电流等物理因素影响的情况)不同,攻击者可以获得一个正确输出和一个错误输出,并计算出正确输出和错误输出的差分值ΔC和ΔT,然后可以推断出关键信息。攻击者可以在处理设备运行COLM认证加密算法的行位移状态期间或者列混淆状态期间,诱导其产生随机故障,但并不清楚故障导入的具体位置。因此,必须要推导出故障产生的具体位置,此外还必须保证导入故障的位置的有效性,如果导入的故障位置是无效的,就无法利用差分值获取到关键信息。
图1为本发明提供的检测COLM认证加密算法抵御差分故障攻击的方法的流程图。所述的检测COLM认证加密算法抵御差分故障攻击的方法包括如下步骤:
步骤1:随机生成要处理的明文消息M;
步骤2:利用COLM认证加密算法处理明文消息M,得到正确密文和错误密文,分别记为C和C′,以及正确验证标签和错误验证标签,分别记为T和T′;
步骤3:分别计算差分值ΔC=C⊕C′、ΔT=T⊕T′;⊕表示异或运算;
步骤4:分析ΔC和ΔT,获取ΔC和ΔT中各个字节的差分比例,判断COLM认证加密算法是否受到差分故障攻击的影响,并推导出故障导入的位置,分析故障是否有效;
步骤5:通过猜测使函数成立的密钥K来缩小猜测空间,进而破解密钥。
针对步骤2,用COLM认证加密算法对M进行处理,实验过程中对运行环境实施两种不同的控制即:
1)输入消息M,控制实验环境不受其他事物的干扰,使得COLM认证加密算法能够准确无误地进行,从而得到正确密文和正确验证标签,将其记为C和T;
2)重新输入消息M,再次用COLM认证加密算法对其进行加密处理,同时借助其他物理设备改变实验环境,干扰COLM认证加密算法的加密过程并诱导其产生故障,从而输出错误密文和错误验证标签分别记为C′和T′。
其中步骤2)中通过改变实验环境诱导故障产生的方法包括:改变时钟、电压、湿度、辐射、压力、光和涡电流等。
针对步骤3,计算差分ΔC=C⊕C′和ΔT=T⊕T′,|ΔC|=128bits,|ΔT|=128bits,分别代表第九轮两次输出结果的差分值。
针对步骤4,判断COLM认证加密算法是否受到差分故障攻击的影响,并分析出故障导入的位置及其有效性的原理如下:
在较高的层次上,COLM可以被视为基于分组密码的加密—线性混合—加密模式,它可完全并行化,并且可以抵御块状自适应攻击。COLM认证加密算法的明文分组、密文分组、以及加/解密过程中的中间分组都是128bits,密钥的长度也为128bits。COLM分组密码算法共有十轮迭代,前九轮迭代依次进行4个步骤即字节代换、行位移、列混淆和密钥加,第十轮依次进行3个步骤即字节代换、行位移、密钥加。
如图2是在第八轮行位移状态中第一个字节处导入一个故障之后的故障扩散图,其中4*4矩阵代表加密过程的中间状态,每一格代表中间状态的一个字节,阴影部分为出现故障的字节,f、F1、F2、F3、F4表示插入故障前后两个中间状态的异或差异,可以发现在第九轮会产生相应的差分比例。从图中可以看出列混淆使某列中的故障在整列中扩散,行位移使某列中的故障扩散至不同的列,两轮加密过后,故障被扩散至整个密文,而且各个字节之前的故障没有相互影响,有利于密钥反推。可以按照此方法推导出其他位置导入故障后的故障扩散图及相应的差分比例。由于第十轮解密完毕后的中间状态等于第九轮加密后输出的中间状态,因此可以先通过第十轮推出来的正确密文和错误密文倒推第九轮的差分比例,再进行第九轮的故障分析,确定故障的具体位置并确定密钥的候选值。
通过分析第九轮加密后输出的共有以下四种差分结果,即第十轮解密完毕后有以下四种中间状态,其中F1、F2、F3、F4是第九轮一开始的故障值。
1.第一种差分比例情况。若差分比例如下所示,则说明故障导入的位置是第八轮的1、6、11、16。
2F<sub>1</sub> | F<sub>4</sub> | F<sub>3</sub> | 3F<sub>2</sub> |
F<sub>1</sub> | F<sub>4</sub> | 3F<sub>3</sub> | 2F<sub>2</sub> |
F<sub>1</sub> | 3F<sub>4</sub> | 2F<sub>3</sub> | F<sub>2</sub> |
3F<sub>1</sub> | 2F<sub>4</sub> | F<sub>3</sub> | F<sub>2</sub> |
2.第二种差分比例情况。若差分比例如下所示,则说明故障导入的位置是第八轮的4、5、10、15。
3F<sub>2</sub> | 2F<sub>1</sub> | F<sub>4</sub> | F<sub>3</sub> |
2F<sub>2</sub> | F<sub>1</sub> | F<sub>4</sub> | 3F<sub>3</sub> |
F<sub>2</sub> | F<sub>1</sub> | 3F<sub>4</sub> | 2F<sub>3</sub> |
F<sub>2</sub> | 3F<sub>1</sub> | 2F<sub>4</sub> | F<sub>3</sub> |
3.第三种差分比例情况。若差分比例如下所示,则说明故障导入的位置是第八轮的3、8、9、14
F<sub>3</sub> | 3F<sub>2</sub> | 2F<sub>1</sub> | F<sub>4</sub> |
3F<sub>3</sub> | 2F<sub>2</sub> | F<sub>1</sub> | F<sub>4</sub> |
2F<sub>3</sub> | F<sub>2</sub> | F<sub>1</sub> | 3F<sub>4</sub> |
F<sub>3</sub> | F<sub>2</sub> | 3F<sub>1</sub> | 2F<sub>4</sub> |
4.第四种差分比例情况。若差分比例如下所示,则说明故障导入的位置是第八轮的2、7、12、13。
F<sub>4</sub> | F<sub>3</sub> | 3F<sub>1</sub> | 2F<sub>1</sub> |
F<sub>4</sub> | 3F<sub>3</sub> | 2F<sub>2</sub> | F<sub>1</sub> |
3F<sub>4</sub> | 2F<sub>3</sub> | F<sub>2</sub> | F<sub>1</sub> |
2F<sub>4</sub> | F<sub>3</sub> | F<sub>2</sub> | 3F<sub>1</sub> |
以第一种差分比例情况为例,首先通过第十轮得到的正确密文和错误密文可以推出第九轮的输出的差分比例关系,同时根据差分比例的顺序可以推测第九轮四个故障可能存在的位置:
2F1=S-1(C1⊕K1)⊕S-1(C′1⊕K1),
F1=S-1(C14⊕K14)⊕S-1(C′14⊕K14),
F1=S-1(C11⊕K11)⊕S-1(C′11⊕K11),
3F1=S-1(C8⊕K8)⊕S-1(C′8⊕K8).
其中F1、K1、K14、K11、K8都是未知的,可以利用穷举法推测出符合该方程组的K1、K14、K11、K8。同理,我们可以通过以下三个方程组推测出其他K:
3F2=S-1(C5⊕K5)⊕S-1(C5'⊕K5),
2F2=S-1(C1⊕K1)⊕S-1(C1'⊕K1),
F2=S-1(C15⊕K15)⊕S-1(C1'5⊕K15),
F2=S-1(C12⊕K12)⊕S-1(C1'2⊕K12).
F3=S-1(C9⊕K9)⊕S-1(C9'⊕K9),
3F3=S-1(C6⊕K6)⊕S-1(C6'⊕K6),
2F3=S-1(C3⊕K3)⊕S-1(C3'⊕K3),
F3=S-1(C16⊕K16)⊕S-1(C1'6⊕K16).
F4=S-1(C13⊕K13)⊕S-1(C1'3⊕K13),
F4=S-1(C10⊕K10)⊕S-1(C1'0⊕K10),
3F4=S-1(C7⊕K7)⊕S-1(C7'⊕K7),
2F4=S-1(C4⊕K4)⊕S-1(C4'⊕K4).
然后利用上述推测的第十轮子密钥,通过COLM的密钥编排方案,可以得到第九轮的子密钥,从而降低了COLM的密钥搜索空间。还可以根据算法的加密和故障传播过程,推导出第九轮S盒的输入差分。
第九轮和第十轮密钥的关系如下所示:
根据第九轮和第十轮子密钥的关系以及差分比例关系可以推导出第九轮S盒输入如下所示:
可以根据F1、F2、F3、F4与对应密钥以及差异f之间的等量关系减少密钥的猜测个数,此时经过一次故障攻击即可大大压缩第十轮子密钥的猜测空间,通过改变明文并重复上述导入故障和分析过程可进一步压缩第十轮密钥的猜测空间直至获得最终的正确子密钥。再根据COLM的密钥编排方案,推导出原始密钥。
认证阶段的故障分析公式与加密阶段相似,但是根据密文的长度不同,得到的差分比例的方程数量不同,理论上如果h<32bits就无法利用该方法推测出密钥,但是在COLM认证加密算法中h∈(32,128),因此可以通过差分比例猜测密钥,图4是认证阶段需要的相关数据加密的过程。
针对故障的有效性,具体分析如下:
1)有效故障
当ΔC1到ΔC16的值均不为0,且比例符合以下其中一种情况时,说明导入的故障为有效故障。
①若满足下列等式中的一个,则可以推导出故障位置可能为第八轮的1、6、11、16。
2ΔC1=ΔC2=ΔC3=3ΔC4,
ΔC5=ΔC6=3ΔC7=2ΔC8,
ΔC9=3ΔC10=2ΔC11=ΔC12,
3ΔC13=2ΔC14=ΔC15=ΔC16.
②若满足下列等式中的一个,则可以推导出故障位置可能为第八轮的4、5、10、15。
3ΔC1=2ΔC2=ΔC3=ΔC4,
2ΔC5=ΔC6=ΔC7=3ΔC8,
ΔC9=ΔC10=3ΔC11=2ΔC12,
ΔC13=3ΔC14=2ΔC15=ΔC16.
③若满足下列等式中的一个,则可以推导出故障位置可能为第八轮的3、8、9、14。
ΔC1=3ΔC2=2ΔC3=ΔC4,
3ΔC5=2ΔC6=ΔC7=ΔC8,
2ΔC9=ΔC10=ΔC11=3ΔC12,
ΔC13=ΔC14=3ΔC15=2ΔC16.
④若满足下列等式中的一个,则可以推导出故障位置可能为第八轮的2、7、12、13。
ΔC1=ΔC2=3ΔC3=2ΔC4,
ΔC5=3ΔC6=2ΔC7=ΔC8,
3ΔC9=2ΔC10=ΔC11=ΔC12,
2ΔC13=ΔC14=ΔC15=3ΔC16.
2)无效故障
①当ΔC=0时,表示故障密文和正确密文相等,相当于导入故障失败,此故障为无效故障;
②当ΔC≠0时,所得的密文无法恢复出密钥,或者获得的密钥不唯一,则该故障为无效故障;
③在第8轮之前导入的故障为无效故障。
针对上述执行步骤,选择实验环境如图5所示,其中计算机用来产生COLM的输入消息M以及分析输出结果;封装有COLM认证加密算法的设备用来对消息进行加密;产生故障的设备用来改变实验执行环境,目的是干扰输入消息的处理过程,从而实现导入故障功能,产生错误的输出结果。
Claims (5)
1.一种检测COLM认证加密算法抵御差分故障攻击的方法,其特征在于,包括以下步骤:
步骤1:随机生成要处理的明文消息M;
步骤2:利用COLM认证加密算法处理明文消息M,得到正确密文C、错误密文C′、正确验证标签T和错误验证标签T′,COLM认证加密算法共有十轮迭代,前九轮迭代依次进行4个步骤即字节代换、行位移、列混淆和密钥加,第十轮依次进行3个步骤即字节代换、行位移、密钥加;
步骤3:分别计算差分值ΔC=C⊕C′、ΔT=T⊕T′;⊕表示异或运算;
步骤4:分析ΔC和ΔT,获取ΔC和ΔT中各个字节的差分比例,判断COLM认证加密算法是否受到差分故障攻击的影响,并推导出故障导入的位置,分析故障是否有效;
步骤5、通过猜测使函数成立的密钥K来缩小猜测空间,进而破解密钥。
2.如权利要求1所述的一种检测COLM认证加密算法抵御差分故障攻击的方法,其特征在于,步骤1中,所述正确密文C及所述正确验证标签T获得方法为:输入消息M,控制实验环境不受其他不相关事务的干扰,使得COLM认证加密算法能够准确无误地进行,从而得到所述正确密文C及所述正确验证标签T;
所述错误密文C′及所述错误验证标签T′获得方法为:重新输入消息M,再次用COLM认证加密算法对其进行加密处理,同时借助物理设备改变运行环境,诱导产生故障来干扰COLM认证加密算法的处理过程,COLM认证加密算法导入故障后输出所述错误密文C′及所述错误验证标签T′。
3.如权利要求2所述的一种检测COLM认证加密算法抵御差分故障攻击的方法,其特征在于,借助物理设备改变运行环境使COLM认证加密算法运行过程受到干扰从而诱导其产生故障的方法如下:改变时钟、电压、湿度、辐射、压力、光和涡电流,从而将故障随机地导入COLM认证加密算法处理过程,以得到错误的输出密文C′及错误验证标签T′。
4.如权利要求1所述的一种检测COLM认证加密算法抵御差分故障攻击的方法,其特征在于,所述步骤4具体包括如下步骤:
步骤401、判断ΔC的故障是否有效以及导入位置,包括以下步骤:
通过ΔC=ΔC1‖ΔC2‖...‖ΔC16中ΔC1至ΔC16之间的比例进行差分分析,判断所导入的故障是否为有效故障,并推断出故障所在位置,式中,||表示连接运算,ΔCi表示ΔC的第i个字节,i为正整数;
1)有效故障
当ΔC1到ΔC16的值均不为0,且比例符合以下其中一种情况时,说明导入的故障为有效故障:
情况一)若满足下列等式中的一个,则推导出故障位置可能为COLM认证加密算法第八轮迭代的1、6、11、16:
2ΔC1=ΔC2=ΔC3=3ΔC4,
ΔC5=ΔC6=3ΔC7=2ΔC8,
ΔC9=3ΔC10=2ΔC11=ΔC12,
3ΔC13=2ΔC14=ΔC15=ΔC16.
情况二)若满足下列等式中的一个,则可以推导出故障位置可能为COLM认证加密算法第八轮迭代的4、5、10、15:
3ΔC1=2ΔC2=ΔC3=ΔC4,
2ΔC5=ΔC6=ΔC7=3ΔC8,
ΔC9=ΔC10=3ΔC11=2ΔC12,
ΔC13=3ΔC14=2ΔC15=ΔC16.
情况三)若满足下列等式中的一个,则可以推导出故障位置可能为COLM认证加密算法第八轮迭代的3、8、9、14:
ΔC1=3ΔC2=2ΔC3=ΔC4,
3ΔC5=2ΔC6=ΔC7=ΔC8,
2ΔC9=ΔC10=ΔC11=3ΔC12,
ΔC13=ΔC14=3ΔC15=2ΔC16.
情况四)若满足下列等式中的一个,则可以推导出故障位置可能为COLM认证加密算法第八轮迭代的2、7、12、13:
ΔC1=ΔC2=3ΔC3=2ΔC4,
ΔC5=3ΔC6=2ΔC7=ΔC8,
3ΔC9=2ΔC10=ΔC11=ΔC12,
2ΔC13=ΔC14=ΔC15=3ΔC16.
2)无效故障
情况一)当ΔC=0时,表示故障密文和正确密文相等,相当于导入故障失败,此故障为无效故障;
情况二)当ΔC≠0时,所得的密文无法恢复出密钥,或者获得的密钥不唯一,则该故障为无效故障;
情况三)在第8轮之前导入的故障为无效故障;
步骤402、采用与步骤401相同的方法判断ΔT的故障是否有效以及导入位置。
5.如权利要求1所述的一种检测COLM认证加密算法抵御差分故障攻击的方法,其特征在于,所述步骤5中,通过猜测使函数成立的密钥K来缩小猜测空间,进而破解密钥,具体方法如下:
首先,利用步骤4中推导得到的前一轮迭代加密后的结果差异与COLM认证加密算法后一轮迭代解密后的结果差异的一致关系建立方程,然后根据此方程使用穷举法猜测子密钥ki,接着利用COLM认证加密算法的密钥编排方案,对前一轮密钥ki-1和后一轮密钥ki进行处理,推测出原始密钥K。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911099842.6A CN110912672A (zh) | 2019-11-12 | 2019-11-12 | 一种检测colm认证加密算法抵御差分故障攻击的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911099842.6A CN110912672A (zh) | 2019-11-12 | 2019-11-12 | 一种检测colm认证加密算法抵御差分故障攻击的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110912672A true CN110912672A (zh) | 2020-03-24 |
Family
ID=69817359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911099842.6A Pending CN110912672A (zh) | 2019-11-12 | 2019-11-12 | 一种检测colm认证加密算法抵御差分故障攻击的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110912672A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112511291A (zh) * | 2020-11-25 | 2021-03-16 | 东华大学 | 一种检测ocb认证加密算法抵御差分故障攻击的方法 |
CN112532373A (zh) * | 2020-11-24 | 2021-03-19 | 中国电力科学研究院有限公司 | 针对流密码算法的差分故障分析方法、系统和存储介质 |
CN112532374A (zh) * | 2020-11-25 | 2021-03-19 | 东华大学 | 一种检测silc认证加密算法抵御差分故障攻击的方法 |
Citations (3)
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 |
CN108055120A (zh) * | 2017-12-27 | 2018-05-18 | 东华大学 | 一种检测aes-otr算法抵御差分故障攻击的方法 |
CN109842483A (zh) * | 2019-03-18 | 2019-06-04 | 东华大学 | 一种检测aes-jambu抵御差分故障攻击的方法 |
-
2019
- 2019-11-12 CN CN201911099842.6A patent/CN110912672A/zh active Pending
Patent Citations (3)
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 |
CN108055120A (zh) * | 2017-12-27 | 2018-05-18 | 东华大学 | 一种检测aes-otr算法抵御差分故障攻击的方法 |
CN109842483A (zh) * | 2019-03-18 | 2019-06-04 | 东华大学 | 一种检测aes-jambu抵御差分故障攻击的方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112532373A (zh) * | 2020-11-24 | 2021-03-19 | 中国电力科学研究院有限公司 | 针对流密码算法的差分故障分析方法、系统和存储介质 |
CN112532373B (zh) * | 2020-11-24 | 2023-08-25 | 中国电力科学研究院有限公司 | 针对流密码算法的差分故障分析方法、系统和存储介质 |
CN112511291A (zh) * | 2020-11-25 | 2021-03-16 | 东华大学 | 一种检测ocb认证加密算法抵御差分故障攻击的方法 |
CN112532374A (zh) * | 2020-11-25 | 2021-03-19 | 东华大学 | 一种检测silc认证加密算法抵御差分故障攻击的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108055120B (zh) | 一种检测aes-otr算法抵御差分故障攻击的方法 | |
US8615079B2 (en) | Cryptography circuit protected against observation attacks, in particular of a high order | |
CN108199832B (zh) | 一种cloc认证加密算法抵御差分故障攻击的检测方法 | |
CN108604981B (zh) | 用于估计秘密值的方法和设备 | |
CN110912672A (zh) | 一种检测colm认证加密算法抵御差分故障攻击的方法 | |
CN109417466B (zh) | 机密密钥估算方法与装置 | |
Dabosville et al. | A new second-order side channel attack based on linear regression | |
CN109842483A (zh) | 一种检测aes-jambu抵御差分故障攻击的方法 | |
Cheng et al. | Optimizing inner product masking scheme by a coding theory approach | |
CN112653546A (zh) | 一种基于功耗分析的故障攻击检测方法 | |
CN110401627A (zh) | 一种适用于分组密码算法感染防护的抗差分故障攻击安全性评估方法和系统 | |
CN105703896A (zh) | 一种检测has-160算法抵御差分故障攻击的方法 | |
CN112532374A (zh) | 一种检测silc认证加密算法抵御差分故障攻击的方法 | |
Kocher | Complexity and the challenges of securing SoCs | |
CN112468283A (zh) | 一种检测iFeed[AES]算法抵御差分故障攻击的方法 | |
CN112511291A (zh) | 一种检测ocb认证加密算法抵御差分故障攻击的方法 | |
CN110601818B (zh) | 一种检测sms4密码算法抵御统计故障攻击的方法 | |
CN113434332B (zh) | 基于故障蔓延的针对des/3des中间轮攻击的密钥恢复方法 | |
KR101941886B1 (ko) | 블록 암호 알고리즘의 안전성 검증 장치 및 방법 | |
Wan et al. | Improved differential fault attack against SIMECK based on two-bit fault model | |
Park et al. | A Fault-Resistant AES Implementation Using Differential Characteristic of Input and Output. | |
Yoshikawa et al. | Security verification simulator for fault analysis attacks | |
Cortier et al. | A formal theory of key conjuring | |
CN110768800A (zh) | 一种检测omd算法抵御差分故障攻击的方法 | |
Bae et al. | A practical analysis of fault attack countermeasure on AES using data masking |
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 |