一种检测AES-JAMBU抵御差分故障攻击的方法与流程

文档序号:17817204发布日期:2019-06-05 21:53
一种检测AES-JAMBU抵御差分故障攻击的方法与流程

本发明涉及信息安全技术领域,具体涉及一种检测AES-JAMBU认证加密算法抵御差分故障攻击的方法,其可以用于评估出AES-JAMBU认证加密算法抵御差分故障攻击的能力,主要应用于测评封装了AES-JAMBU认证加密算法的产品的安全性。



背景技术:

信息技术的飞速发展,使得技术人员在设计互联网的信息交互方式时,必须选用一种安全可靠的加密算法来保证消息的完整性以及保密性,正因为如此,加密算法的安全性问题一直受到国内外学者的重视。

AES-JAMBU是一种新型认证加密算法,由学者Wu.H和Huang.T于2014年3月提出,算法包括加密和认证两部分,不仅可以确保数据的保密性,而且能够保证数据的完整性。由于AES-JAMBU属于对称密码算法,因此其不得不面对差分故障攻击的威胁。

在密码分析学中,差分故障攻击属于选择明文攻击一类,其针对分组密码的结构和轮函数的特性,将故障攻击和差分分析相结合,通过多次实验,在执行算法时导入故障,并分析故障对密文的影响,计算出密钥的可能取值,最终恢复出密钥。目前还没有公开的报告评估AES-JAMBU加密算法抵御差分故障攻击的能力,为封装了AES-JAMBU的产品带来了安全隐患。



技术实现要素:

本发明要解决的技术问题是:如何对AES-JAMBU认证加密算法抵御差分故障分析的能力进行评估。

为了解决上述技术问题,本发明的技术方案是提供一种检测AES-JAMBU抵御差分故障攻击的方法,其特征在于,包括如下步骤:

步骤1:随机生成需要处理的明文消息M;

步骤2:利用AES-JAMBU加密算法处理M,得到正确输出和错误输出,分别记为(C,T)和(C*,T*);C和C*由AES-JAMBU加密算法的加密部分产生,T和T*由AES-JAMBU加密算法的认证部分产生;定义如下:

C:使用AES-JAMBU处理明文消息M所得到的正确密文;

C*:使用AES-JAMBU处理明文消息M并导入故障后所得到的错误密文;

T:使用AES-JAMBU处理明文消息M所得到的正确验证标签;

T*:使用AES-JAMBU处理明文消息M并导入故障后所得到的错误标签;

步骤3:分别计算差分值C⊕C*、T⊕T*,结果记为ΔC、ΔT;⊕表示异或运算;

步骤4:分析ΔC和ΔT,获取ΔC和ΔT中各个字节的差分比例,判断AES-JAMBU算法是否受到差分故障攻击的影响,并推导出故障导入的位置,分析该位置故障的有效性;

步骤5:通过利用步骤4中ΔC和ΔT各个字节的差分比例来缩小密钥的搜索空间后,利用穷举法来猜测密钥,进而破解密钥。

优选地,所述步骤4的具体方法如下:

计算差分值ΔC=C⊕C*,通过ΔC=Δc0||Δc1||…||Δc15中Δc0至Δc15之间的比例,进行差分分析,判断所导入的故障是否为有效故障,并确认故障位置;||表示连接运算;Δci表示ΔC的第i个字节,i为正整数;

判断ΔT的故障是否有效以及导入位置的方法与判断ΔC的方法类似,因此下面仅对ΔC作出分析,具体分析如下:

(1)有效故障:

当Δc0至Δc15的值均不为0,且比例符合以下其中一种情况时,说明导入的故障为有效故障;

当Δc0至Δc15的值均不为0,且比例符合以下其中一种情况时,说明导入的故障为有效故障;

设为第j轮的中间状态值的第i个字节,其中1≤j≤10,0≤i≤15且i、j为整数;

1)若满足下列等式中的一个,则可以推导出导入故障的位置在或或或

2Δc0=Δc1=Δc2=3Δc3,

Δc4=Δc5=3Δc6=2Δc7,

Δc8=3Δc9=2Δc10=Δc11,

3Δc12=2Δc13=Δc14=Δc15

2)若满足下列等式中的一个,则可以推导出导入故障的位置在或或或

3Δc0=2Δc1=Δc2=Δc3,

2Δc4=Δc5=Δc6=3Δc7,

Δc8=Δc9=3Δc10=2Δc11,

Δc12=3Δc13=2Δc14=Δc15

3)若满足下列等式中的一个,则可以推导出导入故障的位置在或或或

Δc0=3Δc1=2Δc2=Δc3,

3Δc4=2Δc5=Δc6=Δc7,

2Δc8=Δc9=Δc10=3Δc11,

Δc12=Δc13=3Δc14=2Δc15

4)若满足下列等式中的一个,则可以推导出导入故障的位置在或或或

Δc0=Δc1=3Δc2=2Δc3,

Δc4=3Δc5=2Δc6=Δc7,

3Δc8=2Δc9=Δc10=Δc11,

2Δc12=Δc13=Δc14=3Δc15

(2)无效故障:

1)当ΔC=0时,表示故障对中间状态值没有影响,相当于导入故障失败,此故障为无效故障;

2)当ΔC≠0时,所得的密文无法恢复出密钥,或者获得的密钥不唯一,则该故障为无效故障;

3)在第8轮之前导入的故障为无效故障。

优选地,为了保障实验的正确性,需要控制两种实验环境,具体操作如下:

1)输入消息M,控制实验环境不受其他不相关的事物干扰,使得AES-JAMBU能够正确无误地得到正确结果,结果记为(C,T);

2)重新输入消息M,在算法对M进行加密的过程中,使用外部物理设备改变周围物理环境,使得AES-JAMBU算法受到干扰,诱导AES-JAMBU在运行过程中产生故障,从而得到错误输出,结果记为(C*,T*)。

更优选地,所述使用外部物理设备改变周围物理环境,使得AES-JAMBU算法受到干扰,诱导AES-JAMBU在运行过程中产生故障的方法有:改变时钟、电压、湿度、辐射、压力、光和涡电流。此方法能够随机地对AES-JAMBU算法的处理过程导入故障,以得出错误输出(C*,T*)。

优选地,所述步骤4中,判断AES-JAMBU算法是否受到步骤2中故障的影响,并分析故障是否有效,然后推导出故障导入的位置,具体方法如下:

首先,利用前一轮加密后的结果差异与后一轮加密后的结果差异的一致关系,然后根据此关系使用穷举法猜测子密钥ki,接着利用AES-JAMBU算法的密钥编排方案,对前一轮密钥ki-1和后一轮密钥ki进行处理,推测出根密钥K。

本发明提供了一种检测AES-JAMBU算法抵御差分故障攻击的方法,首先通过AES-JAMBU算法对明文消息进行处理,在此阶段,需要控制两种不同的实验环境,一种是要令实验环境不受任何干扰,保证算法对明文消息处理的结果正确无误,并将结果记为(C,T);另一种是在算法对明文消息处理的过程中,使用某些物理手段,对处理过程进行干扰,诱导其产生故障,获得错误的输出,记为(C*,T*)。通过计算正确结果和错误结果的差分值ΔC和ΔT,来测评AES-JAMBU认证加密算法对差分故障攻击的抵御能力。然后通过判断所导入的故障的有效性,并确定故障导入的位置,进而恢复出密钥。

本发明提供的方法具有简单、快捷、准确且易于实现等特点,对检测AES-JAMBU认证加密算法抵御差分故障攻击的能力提供了良好的分析依据。

附图说明

图1为本实施例提供的检测AES-JAMBU抵御差分故障攻击的方法流程图;

图2为AES-JAMBU认证加密算法中Ek的差分故障分析图;

图3为AES-JAMBU认证加密算法的认证分析图;

图4为本实施例方案的实验环境示意图。

具体实施方式

下面结合具体实施例,进一步阐述本发明。

基本符号说明

⊕:异或运算;

||:连接运算,串a与串b的连接表示为a||b,也可以表示为ab;

M:明文消息;

C:使用AES-JAMBU处理明文消息M所得到的正确密文;

C*:使用AES-JAMBU处理明文消息M并导入故障后所得到的错误密文;

|C|:密文长度;

ΔC:C和C*的差分值;

Δci:ΔC的第i个字节;

T:使用AES-JAMBU处理明文消息M所得到的正确验证标签;

T*:使用AES-JAMBU处理明文消息M并导入故障后所得到的错误标签;

|T|:标签长度;

ΔT:T和T*的差分值;

第j轮的中间状态值的第i个字节,其中1≤j≤10,0≤i≤15且i、j为整数;

K:加密时使用的密钥;

ki:对K使用密钥编排方案产生的第i个字密钥;

使用AES-JAMBU认证加密算法使用同一个密钥对同一个明文消息进行处理时,如果实验环境(正常情况与受到时钟、电压、湿度、辐射、压力、光和涡电流等物理因素影响的情况)不同,攻击者可以获得一个正确输出和一个错误输出,并计算出正确输出和错误输出的差分值ΔC和ΔT,然后可以推断出关键信息。攻击者可以在AES-JAMBU算法的执行过程中,诱导其产生随机故障,但并不清楚故障导入的具体位置。由此可见,获取故障导入的位置尤为重要,也因此想要从差分值中获取重要信息,则必须保证导入故障的位置是有效的,否则,攻击者不能够从ΔC中获取到关键信息。

图1为本发明提供的检测AES-JAMBU认证加密算法抵御差分故障攻击的方法的流程图。所述的检测AES-JAMBU算法抵御差分故障攻击的方法包括如下步骤:

步骤1:随机生成需要处理的明文消息M;

步骤2:利用AES-JAMBU加密算法处理M,得到正确输出和错误输出,分别记为(C,T)和(C*,T*);

步骤3:分别计算C⊕C*、T⊕T*,结果记为ΔC、ΔT;

步骤4:分析ΔC和ΔT,判断AES-JAMBU算法是否受到差分故障攻击的影响,并推导出故障导入的位置,分析其有效性。

步骤5:通过上述的差分比例缩小密钥的搜索空间后,利用穷举法来猜测密钥,进而破解密钥。

针对步骤2,使用AES-JAMBU认证加密算法处理明文消息M的过程中,为了保障实验的正确性,需要对实验环境作出两种不同的控制,具体操作如下:

(1)输入消息M,控制实验环境不受其他不相关的事物干扰,使得AES-JAMBU能够正确无误地得到正确结果,结果记为(C,T);

(2)重新输入消息M,在算法对M进行加密的过程中,借助其他外部物理设备改变周围物理环境,使得加密过程受到干扰,诱导AES-JAMBU在运行过程中产生故障,从而得到错误输出,结果记为(C*,T*);

其中,步骤(2)通过改变周边环境诱导AES-JAMBU算法产生故障的方法有:改变时钟、电压、湿度、辐射、压力、光和涡电流等;

针对步骤3,计算差分ΔC=C⊕C*和ΔT=T⊕T*。其中,|ΔC|=128bits,|ΔT|=64bits,分别代表第9轮两次输出结果的差分值。

针对步骤4,对ΔC的差分分析及正确故障位置的原理如下:

ASE-JAMBU是一种包含了加密和认证的轻量级分组密码算法,其主旨在于可应用在低资源、低消耗的嵌入式系统(如RFID标签、智能卡等等)当中。AES-JAMBU在加/解密过程的分组长度和密钥长度均为128bits,加/解密过程中,共需要10轮迭代,除了最后一轮的每一轮迭代按照顺序,包括4个步骤:字节代换(SubBytes)、行位移(ShiftRows)、列混淆(MixColumns)、轮密钥加(AddRoundKey),最后一轮与前面9轮类似,但没有列混淆步骤。

通过对算法的执行过程导入随机故障,从而推导出密钥K。在第8轮导入一个随机故障之后,第9轮会产生相应的差分比例关系,通过求得的ΔC之间的比例关系来推导导入的故障的具体位置并确定密钥的候选值。

第9轮的中间状态结构会因为故障的导入位置不同而不同,因此可以通过分析第9轮的中间状态结构的差分比例,构建方程组,根据所得方程组的不同,得出以下结论:

若所得的差分比例如下列方程组所示,则说明故障于位置或或或被导入;

若所得的差分比例如下列方程组所示,则说明故障于位置或或或被导入;

若所得的差分比例如下列方程组所示,则说明故障于位置或或或被导入;

若所得的差分比例如下列方程组所示,则说明故障于位置或或或被导入。

以方程组中的差分比例为例,当导入故障时,可以根据加密算法和故障的传播路径,使用第10轮所得的正确密文和错误密文,获取第9轮S盒的输入差分,并使用第10轮推测的子密钥替换第9轮的子密钥,以降低子密钥的猜测空间。第9轮子密钥和第10轮子密钥之间的关系如下所示:

使用第9、第10轮子密钥关系以及差分比例结合所得的第9轮S盒输入如下所示:

通过上式可以使用穷举法对密钥K进行求解,这是因为使用了差分比例,可以将原本不使用差分比例时的2128种可能,有效地降低到210种可能,使得密钥的搜索空间大大缩小。若推出的密钥不唯一或者不符合差分比例,则说明前面导入的故障为无效故障。

针对故障的有效性,具体分析如下:

1.有效故障:

当Δc0至Δc15的值均不为0,且比例符合以下其中一种情况时,说明导入的故障为有效故障。

1)若满足下列等式中的一个,则可以推导出导入故障的位置在或或或

2Δc0=Δc1=Δc2=3Δc3,

Δc4=Δc5=3Δc6=2Δc7,

Δc8=3Δc9=2Δc10=Δc11,

3Δc12=2Δc13=Δc14=Δc15

2)若满足下列等式中的一个,则可以推导出导入故障的位置在或或或

3Δc0=2Δc1=Δc2=Δc3,

2Δc4=Δc5=Δc6=3Δc7,

Δc8=Δc9=3Δc10=2Δc11,

Δc12=3Δc13=2Δc14=Δc15

3)若满足下列等式中的一个,则可以推导出导入故障的位置在或或或

Δc0=3Δc1=2Δc2=Δc3,

3Δc4=2Δc5=Δc6=Δc7,

2Δc8=Δc9=Δc10=3Δc11,

Δc12=Δc13=3Δc14=2Δc15

4)若满足下列等式中的一个,则可以推导出导入故障的位置在或或或

Δc0=Δc1=3Δc2=2Δc3,

Δc4=3Δc5=2Δc6=Δc7,

3Δc8=2Δc9=Δc10=Δc11,

2Δc12=Δc13=Δc14=3Δc15

2.无效故障:

1)当ΔC=0时,表示故障对中间状态值没有影响,相当于导入故障失败,此故障为无效故障;

2)当ΔC≠0时,所得的密文无法恢复出密钥,或者获得的密钥不唯一,则该故障为无效故障;

3)在第8轮之前导入的故障为无效故障。

针对上述步骤,实验环境如图4所示,其中计算机1用来产生用于被AES-JAMBU算法加密的明文消息以及分析输出结果;封装有AES-JAMBU算法的设备2用来处理输入的消息;产生故障的设备3用来改变实验的运行环境,实现故障的导入功能,从而产生错误的输出。

利用上述的分析方法,本发明在CoreTM i5CPU 1.4GHz 4GB内存的计算机上,使用IntelliJ IDEA CE开发工具和Java语言编程来模拟故障的导入和消息的处理过程,重复执行2000次,实验结果表明上述检测方法准确无误。该方法为评估AES-JAMBU算法的安全性提供了充分的理论依据,而且此方法操作简单,计算结果准确。

以上所述,仅为本发明的较佳实施例,并非对本发明任何形式上和实质上的限制,应当指出,对于本技术领域的普通技术人员,在不脱离本发明方法的前提下,还将可以做出若干改进和补充,这些改进和补充也应视为本发明的保护范围。凡熟悉本专业的技术人员,在不脱离本发明的精神和范围的情况下,当可利用以上所揭示的技术内容而做出的些许更动、修饰与演变的等同变化,均为本发明的等效实施例;同时,凡依据本发明的实质技术对上述实施例所作的任何等同变化的更动、修饰与演变,均仍属于本发明的技术方案的范围内。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1