本发明涉及一种检测aes-otr算法抵御差分故障攻击的方法,主要应用于检验封装有该方法的产品,属于信息安全技术领域。
背景技术:
随着信息技术的快速发展,给人们的生活提供了极大的方便,然而在运用信息技术的过程中会产生大量的数据,要保证这些数据的安全性,就需要依靠安全的密码算法。密码算法作为信息安全的核心,主要依赖于密钥的安全性。aes-otr算法是由日本学者kazuhikominematsu于2014年3月提出的一种新型认证加密算法,可以为数据传送同时提供保密性和完整性认证。
差分故障攻击结合了故障攻击和差分攻击,允许攻击者在加密过程中引入故障,使得加密算法的中间状态发生变化,然后通过分析正确数据流和引入故障后产生的错误数据流,可以得出部分或者完整的中间状态的消息,进而恢复出密钥的信息。
目前,还没有公开的报告评估aes-otr算法抵御差分故障攻击的能力,这给正在使用aes-otr算法封装的产品留下了安全隐患。
技术实现要素:
本发明要解决的技术问题是提供一种能够评测出aes-otr算法抵御差分故障攻击能力的方法。
为了解决上述技术问题,本发明的技术方案是提供一种检测aes-otr算法抵御差分故障攻击的方法,其特征在于,包括加密部分和认证部分;
所述加密部分,包括以下步骤:
步骤1:随机生成要处理的明文消息,记为m;
步骤2:利用aes-otr算法处理消息m,得到正确输出和错误输出,分别记为c和c*;
步骤3:根据加密过程中存在的比例,构建关于正确输出、错误输出、密钥k之间的函数f=g(c,c*,k);
步骤4:根据构造的函数,观察方程成立的比例,推断出故障导入位置,并判断导入的故障是否有效;
步骤5:利用穷举法来猜测密钥,以此来缩小猜测空间,进而破解密钥;
所述认证部分,包括以下步骤:
步骤1:通过在最后一轮ek中导入故障,得到正确加密结果和错误加密结果,记为te和te*;
步骤2:令msb|c|(x)表示取二进制串x高c位的序列,τ表示标记数,ta表示未经过认证的数据标签;用
步骤3:用
步骤4:判断结果是否受到差分故障攻击的影响,并且建立差分关系式,f=g(t,t*,k)推导出故障导入的位置分析其有效性;
步骤5:通过故障差分的比例关系,以此来缩小猜测空间,然后利用穷举法来猜测密钥,进而破解密钥;
认证部分的故障分析公式与加密部分相似,不同的是,根据密文数目不同,得到的差分比的公式数量不同,理论上如果τ<32比特就无法使用该方法推测出密钥,但是在aes-otr算法中32≤|τ≤|128,在这个范围内,可以通过差分比例猜测密钥;具体分析如下:
计算差分
①有效故障:
i)当第9轮第1列的中间状态差分比例为2∶1∶1∶3且δc1、δc8、δc11、δc14均不为0时,则故障导入的位置可能为第8轮的1、6、11、16;
ii)当第9轮只有第1列有中间状态差分时,故障导入的位置可能为第9轮的1、6、11、16;
iii)当第9轮第1列的中间状态差分比例为3∶2∶1∶1且δc2、δc5、δc12、δc15均不为0时,则故障导入的位置可能为第8轮的4、5、10、15;
iv)当第9轮只有第2列有中间状态差分时,故障导入的位置可能为第9轮的4、5、10、15;
v)当第9轮第1列的中间状态差分比例为1∶3∶2∶1且δc3、δc6、δc9、δc16均不为0时,则故障导入的位置可能为第8轮的3、8、9、14;
vi)当第9轮只有第3列有中间状态差分比例时,则故障导入的位置可能为第9轮的3、8、9、14;
vii)当第9轮第1列的中间状态差分比例为1∶1∶3∶2时,且δc4、δc7、δc10、δc13均不为0时,则故障导入的位置可能为第8轮的2、7、12、13;
viii)当第9轮只有第4列有中间状态差分比例时,则故障导入的位置可能为第9轮的2、7、12、13;
②无效故障:
i)当δc=0时,说明导入的故障值等于当前位置上的原值,相当于没有导入故障,故障无效;
ii)当δc≠0时,得到的密文无法恢复密钥,则该故障为无效故障。
优选地,所述加密部分的步骤2中,使用aes-otr算法处理消息m的过程中,控制出两种实验环境,具体步骤如下:
1)输入消息m,控制实验环境不受其他任何不相关事物的干扰,使得aes-otr算法能够正确无误地进行,从而得到正确的输出结果,将其记为c;
2)重新输入消息m,再次用aes-otr算法对其进行处理,同时借助其他物理设备改变运行环境,诱导产生故障来干扰aes-otr算法的处理过程,将输出结果记为c*。
更优选地,所述改变运行环境诱导产生故障的方法包括:改变时钟、电压、湿度、辐射、压力、光和涡电流,将故障随机地导入aes-otr算法处理流程,以得到错误的输出结果,记为c*。
优选地,所述加密部分的步骤4中,判断aes-otr算法是否受到差分故障攻击的影响,并推导出故障导入的位置,分析其有效性,具体方法如下:
首先,利用前一轮加密后的结果差异与后一轮解密后的结果差异的一致关系建立方程,然后,根据方程使用穷举法猜测密钥k,接着利用前一轮密钥与后一轮的密钥之间的关系,推测出根密钥。
优选地,所述认证部分的步骤1中,使用ek处理消息的过程中,控制出两种实验环境,具体步骤如下:
1)控制实验环境不受其他任何不相关事物的干扰,使得aes-otr算法能够正确无误地进行,从而得到正确的输出结果,将其记为te;
2)再次用aes-otr算法对其加密处理,同时借助其他物理设备改变运行环境,在第8轮行位移的中间状态诱导产生故障来干扰aes-otr算法的处理过程,将输出结果记为te*。
本发明提出了一种检测aes-otr算法抵御差分故障攻击的方法。首先,保证在一个安全、未添加任何故障的环境下进行运算并输出;然后,再次对此消息进行加密,在此过程中应该在人为控制加密过程中,通过改变时钟、电压、湿度、辐射、压力、光和涡电流等一系列操作诱导故障产生,得出错误输出。接着,通过分析,建立关于正确输出、错误输出、密钥之间的函数关系,推导出故障可能存在的位置,以此来减少密钥的猜测空间,再通过穷举法得到子密钥,再通过密钥扩展算法得到原始密钥。该方法只需要导入一个故障便可以推导出密钥,不仅易于实现、原理简单,还可以有效的保护加密机制以防遭受破坏。该方法在评测使用了aes-otr算法的软硬件安全系统提供了重要的理论依据。
本发明提供的方法准确且简单,易于实现,不仅可以评估aes-otr算法对差分故障攻击的抵抗能力,还能推导出差分故障攻击的位置,给使用aes-otr算法封装的产品的安全性测评提供了理论依据。
附图说明
图1为本发明提供的检测aes-otr算法抵御差分故障攻击的方法流程图;
图2为aes-otr算法加密迭代图;(a)当m为偶数时;(b)当m为奇数时;
图3为aes-otr算法ek导入故障分析图;
图4为认证过程图。
具体实施方式
下面结合具体实施例,进一步阐述本发明。
本实施例中所用到的符号说明如下:
m:明文消息;
m:明文或密文的分组数;
m[p]:明文第p个分组,其中1≤p≤m;
c[q]:密文的第p个分组,其中1≤q≤m;
ci,δci:密文的第i个字节,以及第i个字节的故障差分,其中1≤i≤16;
k:原始密钥;ki:密钥第i个字节,其中1≤i≤16;
f:表示算法的第十轮s盒输入索引值对应的差分比例
c:算法处理消息后的正确输出;
c*:算法处理消息时,导入故障后产生的错误输出;
ek:密钥为k的加密算法;
δ:异或差分;
f:加入故障前后两个中间状态的异或差异(第8轮);
kj.
n:随机数,如果随机数n长度不小于明文分组长度,则尾部不用填充;
δ,l:使用随机数加密后的中间值,l=4δ;
0n:长度为n的零串;
γ,q:使用0n加密后的中间值,q=4γ;
a:相关数据的分组数;
adp:相关数据处理;
msb|c|(x):取二进制串x最高c位;
τ:标记数,32≤τ≤128;
t:正常状态下,aes-otr算法认证处理消息后的正确输出;
t*:aes-otr算法认证时导入故障的错误输出;
∑:当m为偶数的时候,
ta:未经过认证的数据标签;
te:未经过认证的明文标签;
ar:相关数据的第r个分组,其中1≤r≤a。
使用aes-otr算法对于同一个消息m使用同一个密钥进行处理时,如果实验环境(如时钟、电压、湿度、辐射、压力、光和涡电流等)不同,攻击者可以分别获得正确输出c和错误输出c*。通过计算出这两个值的输出差分关系
图1为本发明提供的检测aes-otr算法抵御差分故障攻击的方法流程图,所述的检测aes-otr算法抵御差分故障攻击的方法包括如下步骤:
步骤1:随机生成当前要处理的消息,记为m;
步骤2:处理消息m,得到正确输出和错误输出,分别记为c和c*;
步骤3:根据加密过程中存在的比例,构建关于正确输出c、错误输出c*,密钥k之间的函数f=g(c,c*,k);
步骤4:根据构造的函数,观察方程成立的比例,推断出故障导入位置,并判断导入的故障是否有效。
步骤5:利用穷举法来猜测密钥,以此来缩小猜测空间,进而破解密钥。
针对步骤2,用aes-otr算法对m进行处理,实验过程中,对运行环境实施两种不同的控制,即:
(1)输入消息m,控制实验环境不受其他任何不相关事物的干扰,使得aes-otr算法能够正确无误地进行,从而得到正确的输出结果,将其记为c;
(2)重新输入消息m,再次用aes-otr算法对其进行处理,同时借助其他物理设备改变运行环境,诱导产生故障来干扰aes-otr算法的处理过程,将输出结果记为c*。
其中,步骤(2)中诱导故障产生的方法包括:改变时钟、电压、湿度、辐射、压力、光和涡电流等。
针对步骤3,计算差分
针对步骤4,对δc的差分分析及确定故障位置及判断故障是否有效的原理如下:
aes-otr算法属于一种分组密码算法,该算法的输入分组、输出分组以及加/解密过程中的中间分组都是128比特。密钥的长度k为128、192或256比特。密钥长度为128比特的分组密码算法一共有10轮迭代运算,每次迭代共有四次运算,最后一轮没有列混淆层,输出为128比特的加密矩阵,aes-otr最后两轮的迭代过程如图2所示。
图3是在第8轮行位移状态中第一个字节处导入故障的故障扩散图,由这个图可以类推其他任意位置导入故障的扩散图。aes-otr算法的正确输出为c,错误输出为c*。
第一个阶段可以通过第十轮推出来的正确密文和错误密文倒推到第9轮第一列的差分比例关系:
其中,f1、k1、k8、k14、k11都是未知的值,目的是要通过这个关系式利用穷举法推测出符合该关系式的k1、k8、k14、k11,同样的,为了获得其他的k值我们可以根据以下三个关系式:
根据该差分比例的顺序可以推测出四个故障可能存在的位置。
第二个阶段进行第九轮故障分析:
该轮主要是利用在第十轮预测的密钥,通过密钥编排由第十轮预测的密钥得到第九轮的密钥,利用密文c来预测第九轮s盒的四个差分故障,可以进一步降低aes-otr的密钥搜索空间。
第九轮的密钥可以用第10轮的密钥表示具体分析方法见下式:
根据算法的加密原理和故障传播过程,第9轮的s盒输入差分为:
认证阶段的故障分析公式与其第一个阶段相似,不同的是,根据密文长度不同,得到的差分比例的等式数量不同,理论上如果τ<32比特就无法使用该方法推测出密钥,但是在aes-otr算法中τ∈(32,128),在这个范围内,可以通过差分比例猜测密钥,图4为认证阶段需要的相关数据加密的过程。
其中,对故障位置的有效性,具体分析如下:
①有效故障:
i)当第9轮第1列的中间状态差分比例为2∶1∶1∶3且δc1、δc8、δc11、δc14均不为0时,则故障导入的位置可能为第8轮的1、6、11、16;
ii)当第9轮只有第1列有中间状态差分时,故障导入的位置可能为第9轮的1、6、11、16;
iii)第9轮第1列的中间状态差分比例为3∶2∶1∶1且δc2、δcs、δc12、δc15均不为0时,则故障导入的位置可能为第8轮的4、5、10、15;
iv)当第9轮只有第2列有中间状态差分时,故障导入的位置可能为第9轮的4、5、10、15;
v)当第9轮第1列的中间状态差分比例为1∶3∶2∶1且δc3、δc6、δc9、δc16均不为0时,则故障导入的位置可能为第8轮的3、8、9、14;
vi)当第9轮只有第3列有中间状态差分比例时,则故障导入的位置可能为第9轮的3、8、9、14;
vii)当第9轮第1列的中间状态差分比例为1∶1∶3∶2时,且δc4、δc7、δc10、δc13均不为0时,则故障导入的位置可能为第8轮的2、7、12、13;
viii)当第9轮只有第4列有中间状态差分比例时,则故障导入的位置可能为第9轮的2、7、12、13;
②无效故障:
i)当δc=0时,说明导入的故障值等于当前位置上的原值,相当于没有导入故障,故障无效;
ii)当δc≠0,得到的密文无法恢复密钥时,则该故障为无效故障。
综上分析:
第10轮的故障差分δc1、δc8、δc11和δc14均不为0且差分故障比例为2∶1∶1∶3时,或者第9轮逆字节代换只有第1列有差分的时,则故障导入的位置可能为1、6、11和16;当故障差分δc2、δc5、δc12和δc15均不为0且故障差分比例为3∶2∶1∶1时,或者第9轮逆字节代换只有第2列有差分的时,则故障导入的位置可能为4、5、10和15;当故障差分δc3、δc6、δc9和δc16均不为0且故障差分比例为1∶3∶2∶1时,或者第9轮逆字节代换只有第3列有差分的时,则故障导入的位置可能为3、8、9和14;当故障差分δc4、δc7、δc10和δc13均不为0且故障差分比例为1∶1∶3∶2时,或者第9轮逆字节代换只有第4列有差分的时,则故障导入的位置可能2、7、12和13。这些位置均为有效的故障导入位置。
针对上述执行步骤,选择相对应的实验环境,其中计算机用来产生aes-otr的输入消息m以及分析输出结果;封装有aes-otr算法的设备用来处理输入的消息,即对消息m进行加密;产生故障的设备用来改变实验执行环境,目的是干扰对输入消息的处理过程,从而实现导入故障功能,产生错误的输出结果。
利用上述分析方法,本发明在intel(r)core(tm)i3-2350mcpu2.30ghz4gb内存的计算机上,在eclipse开发工具下采用java语言编程来模拟故障导入和消息处理过程,重复执行1000次,实验结果表明上述检测方法准确无误。该方法为评估aes-otr算法的安全性提供了充分的理论依据,而且此方法操作简单,计算结果准确。
以上所述,仅为本发明的较佳实施例,并非对本发明任何形式上和实质上的限制,应当指出,对于本技术领域的普通技术人员,在不脱离本发明方法的前提下,还将可以做出若干改进和补充,这些改进和补充也应视为本发明的保护范围。凡熟悉本专业的技术人员,在不脱离本发明的精神和范围的情况下,当可利用以上所揭示的技术内容而做出的些许更动、修饰与演变的等同变化,均为本发明的等效实施例;同时,凡依据本发明的实质技术对上述实施例所作的任何等同变化的更动、修饰与演变,均仍属于本发明的技术方案的范围内。