一种密码算法的故障攻击防护方法技术

技术编号:29497082 阅读:20 留言:0更新日期:2021-07-30 19:10
本发明专利技术公开了一种密码算法的故障攻击防护方法,其步骤包括:1)对于待防护的目标密码算法,构造与该目标密码算法相同的算法作为该目标密码算法的冗余算法;2)将该目标算法的输出和该冗余算法的输出进行异或,然后将异或所得结果通过附加随机置换的感染结构进行随机化;所述随机置换的感染结构包括随机置换操作和随机感染操作,所述随机置换操作用于对故障注入位置以及故障传播途径进行随机化,从而使得在随机感染操作中随机数为0的情况下,输出的故障密文仍然具有随机性;3)将所述随机置换的感染结构的输出与该目标密码算法的输出进行异或后输出。本发明专利技术中引入了随机置换操作,使得故障传播路径得到随机化,从而实现了故障攻击的防护。

【技术实现步骤摘要】
一种密码算法的故障攻击防护方法
本专利技术涉及一种故障攻击防护方法,可应用于密码算法实现中故障攻击的防护领域。
技术介绍
物联网技术的发展方便了人们生活的同时,也使得秘密信息的防护更加迫切,密码算法是信息安全性的重要保障;在传统密码学领域中,人们更加关注黑盒模型下密码算法的理论安全性,即假设攻击者仅可以通过明文、密文以及密码算法本身的结构进行攻击。然而随着灰盒攻击的出现,这一假设被打破,攻击者不仅仅可以获得密码算法的明文、密文以及密码算法本身的结构,还可以接触到密码算法运行的设备,从而去获取密码设备执行过程中泄露的信息,甚至通过影响密码设备正常运行去进行攻击。故障攻击是灰盒攻击的一类,是指通过一定的物理手段影响密码设备的执行,使得密码设备的执行出现一定的异常,从而实现相应攻击的一类攻击方法。密码设备的正常执行依赖于稳定的运行环境,如正常的电压、时钟以及温度等,当这些条件被破坏时,密码设备的执行就可能出现异常,此外还可以通过对密码设备额外注入电磁、激光等手段影响其正常执行,从而实现故障攻击。在密码设备被注入故障的条件下,与传统的密码分析方法相互结合形成了不同种类的故障攻击方法,如和差分分析方法结合形成了差分故障攻击、和积分分析相互结合形成了积分故障攻击、和代数攻击相互结合形成了代数故障攻击等等,此外研究者还根据故障自身的特点提出了有别以上攻击的新的故障攻击方法,如故障敏感度攻击、无效故障攻击等等。其中,差分故障攻击是利用正确执行的密文和注入故障后的故障密文进行攻击的一种故障攻击方法,因实现的简单性和高效性,对于密码设备的安全性造成了巨大的威胁,是密码设备故障安全防护的重要目标。随着故障攻击的出现,相应的针对故障攻击的防护方法也应运而生,按照防护层次的不同,可以分为密码设备或者说系统层次的防护,以及算法层次的防护。在密码设备层,主要是通过阻止故障注入的方式来进行防护,例如通过在电路中添加滤波器的方式来消除电压或者时钟波动对于密码设备正常运算带来的影响,或者附加温度、激光、电磁等传感器来检测相应类型的故障注入,从而及时报警,使得密码设备停止运算或者停止输出结果。在算法层次的故障防护,主要包括“校验-阻止”类故障防护方法和感染类故障防护方法两种。“校验-阻止”类故障防护方法首先通过空间上的冗余、时间上的冗余、检错码或者纠错码等方式来检测故障的注入情况,当检测到故障的注入后,阻止故障密文的输出,从而破坏故障攻击的条件,使得故障攻击无法进行。但是在判断故障是否被注入的这一操作是容易被故障攻击的,如果受到额外的故障注入攻击,使得判断语句出现错误则会使“校验-阻止”类故障防护方法失效。感染类的故障攻击可以避免上述提出的问题,其通过添加额外的随机感染操作使得输出的故障密文呈现随机性,使得攻击无法依据输出的故障密文进行攻击。与“校验-阻止”类故障防护不同,这类防护不需要判断语句来判断是否有故障的注入,允许故障的正常输出,因此没有前者的缺陷。乘法感染是感染类防护中的一种主流防护方法,对于故障攻击的防护起着重要作用。然而乘法掩码存在着安全漏洞,当随机数不为0时,乘法感染是安全的,当随机数为0时,乘法感染将失效,原始故障密文将被正常输出,从而使得差分故障攻击等故障攻击正常实现。
技术实现思路
针对现有技术中存在的技术问题,本专利技术的目的在于提供一种密码算法的故障攻击防护方法,可以弥补乘法故障感染技术缺陷的新的故障感染防护方法。为实现以上防护目的,本专利技术提出的防护方法包括如下步骤:1)对于待防护的原始目标密码算法,构造完全相同的冗余算法实现;2)将该目标密码算法的输出和该冗余算法的输出进行异或,然后将异或的结果通过附加随机置换的感染结构进行随机化,新构造的感染结构包括随机置换操作和随机感染操作(比如乘法感染操作),增加的随机置换操作将对故障注入位置以及故障传播途径起到保护作用,从而弥补了乘法感染中随机数为0时的安全缺陷,改善了传统感染结构的缺陷;3)将随机置换的感染结构的输出异或上原始目标密码算法的输出,形成最终的输出结果。可选的,步骤2)中的感染结构包含随机置换操作和随机感染操作两部分,包含三种实现方式:(1)先对步骤2)所得异或结果进行随机置换操作,然后对随机置换操作结果进行随机感染操作;(2)先对步骤2)所得异或结果进行随机感染操作,然后进行随机置换操作;(3)先对步骤2)所得异或结果进行随机置换操作,然后进行随机感染操作,最后再进行一个随机置换操作;即将随机置换操作的输出与随机数进行乘法运算,然后将乘法运算结果进行随机置换。其中第(3)种实现方式相对于前两种实现方式安全性更高,但是实现代价更大,可根据实际的安全需求选取合适的实现方式。随机置换的引入是为了解决随机感染操作中随机数为0时故障密文被正常输出的问题,从而使得在随机感染操作中随机数为0的情况下,输出的故障密文仍然具有随机的特性,从而达到对于故障攻击的防护效果。可选的,随机感染操作是有限域上的乘法运算,当采用上一段中论述的第(1)种实现方式时,将随机置换操作的输出与随机数作为两个输入进行乘法运算。如果没有注入故障,原始目标密码算法与冗余算法异或的结构为0,随机置换操作的输入为0,则随机置换操作的输出为0,进行乘法运算的结果为0,异或到算法的输出也将为0,保证了没有故障注入情况下算法输出的正确性。当有故障注入的情况下,原始目标密码算法与冗余目标密码算法的异或结果不为0,经过随机置换后的结果也不为0,然后和随机数进行有限域上的乘法运算,得到的最终结果呈现随机性,从而实现了对故障密文的随机化,实现了对于故障攻击的防护。第(2)种实现方式相对于地(1)种,随机置换操作和随机感染操作实现的次序相反,即先进行随机感染操作,然后将随机感染操作的输出进行随机置换操作,但是达到的安全程度以及实现代价类似。第(3)种方法相对第(1)种方法在随机感染操作后增加了一个随机置换操作,进一步增加了随机性,提高了防护架构的安全性,但是与此同时其实现代价更大。可选的,随机感染的位宽可以根据安全性以及实现代价的要求进行调节,为安全性的考虑,其最低位宽应不低于待防护算法中非线性运算的位宽,例如待防护算法中非线性运算是S盒的情况,如果是S盒是8位的,则最少应为8位的位宽,如果S盒是4位的,则最少应为4位的位宽。最高位宽为最终输出数据的位宽,位宽越大,安全性越高,相应的实现代价越大,可以根据实际的安全性需求以及实现代价要求选择合适的位宽。可选的,随机置换操作是一个随机数控制的置换操作,并且随机置换操作的位宽应大于随机感染操作的位宽。这一要求的目的是为了增加故障密文的扩散,从而实现对于故障注入位置以及故障传播途径的掩盖,从而使得随机感染操作即使出现随机数为0的情况,故障攻击仍然无法正常进行。本专利技术提供一种服务器,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行上述方法中各步骤的指令。本专利技术还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程本文档来自技高网
...

【技术保护点】
1.一种密码算法的故障攻击防护方法,其步骤包括:/n1)对于待防护的目标密码算法,构造与该目标密码算法相同的算法作为该目标密码算法的冗余算法;/n2)将该目标算法的输出和该冗余算法的输出进行异或,然后将异或所得结果通过附加随机置换的感染结构进行随机化;所述随机置换的感染结构包括随机置换操作和随机感染操作,所述随机置换操作用于对故障注入位置以及故障传播途径进行随机化,从而使得在随机感染操作中随机数为0的情况下,输出的故障密文仍然具有随机性;/n3)将所述随机置换的感染结构的输出与该目标密码算法的输出进行异或后输出。/n

【技术特征摘要】
1.一种密码算法的故障攻击防护方法,其步骤包括:
1)对于待防护的目标密码算法,构造与该目标密码算法相同的算法作为该目标密码算法的冗余算法;
2)将该目标算法的输出和该冗余算法的输出进行异或,然后将异或所得结果通过附加随机置换的感染结构进行随机化;所述随机置换的感染结构包括随机置换操作和随机感染操作,所述随机置换操作用于对故障注入位置以及故障传播途径进行随机化,从而使得在随机感染操作中随机数为0的情况下,输出的故障密文仍然具有随机性;
3)将所述随机置换的感染结构的输出与该目标密码算法的输出进行异或后输出。


2.如权利要求1所述的方法,其特征在于,所述随机置换操作用于对故障注入位置以及故障传播途径进行随机化的三种实现方式包括:(1)先对异或所得结果进行随机置换操作,然后进行随机感染操作;(2)先对异或所得结果进行随机感染操作,然后进行随机置换操作;(3)先对异或所得结果进行随机置换操作,然后进行随机感染操作,最后再进行一次随机置换操作。


3.如权利要求2所述的方法,其特征在于,所述随机感染操作为有限域上的乘法运算,当采用第(1)种实现方式时,将随机置换操作的输出与随机数进行乘法运算;当采用第(2)种实现方式时,将随机感染操作的输出进行随机置换;当采用第(3)种实现方式时...

【专利技术属性】
技术研发人员:焦志鹏陈华匡晓云姚富黄开天范丽敏
申请(专利权)人:中国科学院软件研究所南方电网科学研究院有限责任公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1