CN113193955B - 一种密码算法的故障攻击防护方法 - Google Patents
一种密码算法的故障攻击防护方法 Download PDFInfo
- Publication number
- CN113193955B CN113193955B CN202110436726.XA CN202110436726A CN113193955B CN 113193955 B CN113193955 B CN 113193955B CN 202110436726 A CN202110436726 A CN 202110436726A CN 113193955 B CN113193955 B CN 113193955B
- Authority
- CN
- China
- Prior art keywords
- random
- infection
- output
- fault
- algorithm
- 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
- 238000000034 method Methods 0.000 title claims abstract description 31
- 208000015181 infectious disease Diseases 0.000 claims abstract description 68
- 238000002347 injection Methods 0.000 claims abstract description 16
- 239000007924 injection Substances 0.000 claims abstract description 16
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 description 5
- 230000007547 defect Effects 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种密码算法的故障攻击防护方法,其步骤包括:1)对于待防护的目标密码算法,构造与该目标密码算法相同的算法作为该目标密码算法的冗余算法;2)将该目标算法的输出和该冗余算法的输出进行异或,然后将异或所得结果通过附加随机置换的感染结构进行随机化;所述随机置换的感染结构包括随机置换操作和随机感染操作,所述随机置换操作用于对故障注入位置以及故障传播途径进行随机化,从而使得在随机感染操作中随机数为0的情况下,输出的故障密文仍然具有随机性;3)将所述随机置换的感染结构的输出与该目标密码算法的输出进行异或后输出。本发明中引入了随机置换操作,使得故障传播路径得到随机化,从而实现了故障攻击的防护。
Description
技术领域
本发明涉及一种故障攻击防护方法,可应用于密码算法实现中故障攻击的防护领域。
背景技术
物联网技术的发展方便了人们生活的同时,也使得秘密信息的防护更加迫切,密码算法是信息安全性的重要保障;在传统密码学领域中,人们更加关注黑盒模型下密码算法的理论安全性,即假设攻击者仅可以通过明文、密文以及密码算法本身的结构进行攻击。然而随着灰盒攻击的出现,这一假设被打破,攻击者不仅仅可以获得密码算法的明文、密文以及密码算法本身的结构,还可以接触到密码算法运行的设备,从而去获取密码设备执行过程中泄露的信息,甚至通过影响密码设备正常运行去进行攻击。
故障攻击是灰盒攻击的一类,是指通过一定的物理手段影响密码设备的执行,使得密码设备的执行出现一定的异常,从而实现相应攻击的一类攻击方法。密码设备的正常执行依赖于稳定的运行环境,如正常的电压、时钟以及温度等,当这些条件被破坏时,密码设备的执行就可能出现异常,此外还可以通过对密码设备额外注入电磁、激光等手段影响其正常执行,从而实现故障攻击。在密码设备被注入故障的条件下,与传统的密码分析方法相互结合形成了不同种类的故障攻击方法,如和差分分析方法结合形成了差分故障攻击、和积分分析相互结合形成了积分故障攻击、和代数攻击相互结合形成了代数故障攻击等等,此外研究者还根据故障自身的特点提出了有别以上攻击的新的故障攻击方法,如故障敏感度攻击、无效故障攻击等等。其中,差分故障攻击是利用正确执行的密文和注入故障后的故障密文进行攻击的一种故障攻击方法,因实现的简单性和高效性,对于密码设备的安全性造成了巨大的威胁,是密码设备故障安全防护的重要目标。
随着故障攻击的出现,相应的针对故障攻击的防护方法也应运而生,按照防护层次的不同,可以分为密码设备或者说系统层次的防护,以及算法层次的防护。在密码设备层,主要是通过阻止故障注入的方式来进行防护,例如通过在电路中添加滤波器的方式来消除电压或者时钟波动对于密码设备正常运算带来的影响,或者附加温度、激光、电磁等传感器来检测相应类型的故障注入,从而及时报警,使得密码设备停止运算或者停止输出结果。在算法层次的故障防护,主要包括“校验-阻止”类故障防护方法和感染类故障防护方法两种。“校验-阻止”类故障防护方法首先通过空间上的冗余、时间上的冗余、检错码或者纠错码等方式来检测故障的注入情况,当检测到故障的注入后,阻止故障密文的输出,从而破坏故障攻击的条件,使得故障攻击无法进行。但是在判断故障是否被注入的这一操作是容易被故障攻击的,如果受到额外的故障注入攻击,使得判断语句出现错误则会使“校验-阻止”类故障防护方法失效。感染类的故障攻击可以避免上述提出的问题,其通过添加额外的随机感染操作使得输出的故障密文呈现随机性,使得攻击无法依据输出的故障密文进行攻击。与“校验-阻止”类故障防护不同,这类防护不需要判断语句来判断是否有故障的注入,允许故障的正常输出,因此没有前者的缺陷。乘法感染是感染类防护中的一种主流防护方法,对于故障攻击的防护起着重要作用。
然而乘法掩码存在着安全漏洞,当随机数不为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)本发明改善了乘法感染防护中随机数为0时的缺陷。常规的乘法感染防护中,随机数为0时,故障密文将被正常输出,从而使得故障攻击正常进行,本发明中引入了随机置换操作,使得故障传播路径得到随机化,使得故障注入位置得到隐藏保护,从而使得此种情况下的故障攻击仍然无法正常进行,从而实现了故障攻击的防护。
2)本发明增加的随机置换操作代价较小,可以满足更多的资源有限的应用环境。
3)本发明提出的故障攻击防护方法可以根据待防护算法应用环境的不同通过调整随机感染操作的位宽,选择不同的实现方式,达到安全性和实现代价的权衡。
附图说明
图1是感染方法整体结构图。
图2是感染防护流程图。
图3是感染结构示意图。
具体实施方式
下面结合相应附图和实例介绍本发明的具体实施技术,但不以任何形式限制本发明的范围。
本实例以SM4算法作为目标密码算法,实现了基于感染思想的故障攻击防护方案。
SM4算法是我国官方公布的第一个商用分组密码算法,对于国家密码安全体系的构建具有重要意义,其为分组长度是128比特,密钥长度为128比特的分组密码算法,其中S盒是算法当中唯一的非线性运算,其位宽为8比特。
SM4算法整体的感染方法整体结构图如图1所示主要包括原始SM4算法,冗余SM4算法和感染结构三个部分。具体实现采用上述第(1)种实现方式,即先进行随机置换操作,然后进行随机感染操作,其具体的实现流程如图2所示,具体到SM4算法,可以分为以下几个步骤进行实现:
1)对于原始SM4算法实现,构造完全相同的冗余SM4算法实现;
2)将原始SM4算法的输出和该冗余SM4算法的输出进行异或,然后将异或的128比特输出结果通过附加随机置换的感染结构进行随机化;
3)将感染结构的输出异或上原始SM4算法的输出,形成最终的输出结果。
如上文介绍,SM4算法中的非线性运算S盒的位宽为8位,所以为了安全性的考虑,乘法感染的位宽可以选择大于等于8的位宽,这里选择8位的位宽。
将原始SM4算法和冗余SM4算法异或的128比特输出分为4组,每组32比特分别进行如图3的感染运算,具体的感染结构实现如图3所示。
首先为了隐藏故障注入位置和故障传播路径,进行一个32比特的置换操作,本实现中选择的原始置换操作如下所示:
[25 17 9 1 27 19 11 3 29 21 13 5 31 23 15 7
24 16 8 0 26 18 10 2 28 20 12 4 30 22 14 6]
此置换这里具体由一个5比特的随机数R控制,增加置换的随机性,具体由随机数R控制置换操作进行循环移位,随机数R的位数由置换操作的规模决定,保证能够覆盖循环移位的所有可能性。
将置换操作的32比特输出分为4组,每组8比特与8比特随机数,4个随机数如图3所示表示为r1,r2,r3,r4,分别进行GF(28)有限域上的乘法运算。将4组乘法运算的输出构成32比特的数据作为感染结构的输出,将4组感染结构的输出组成的128比特数据异或到原始SM4算法的输出即可得到最终的输出。
安全性性分析如下:
故障注入时,原始算法和冗余算法异或的结果不为0,经过随机置换操作后结果仍然不为0。当乘法感染操作的随机数不为0时,二者进行有限域上乘法运算的结果呈现随机性,从而实现了对于故障密文的随机化,从而实现了对于故障攻击的防护。当乘法感染操作的随机数为0时,随机置换操作使得故障传播路径随机化,使得故障注入位置得到隐藏保护,从而使得此种情况下的故障攻击仍然无法正常进行,从而实现了故障攻击的防护。
上述实例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人是能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。
Claims (6)
1.一种密码算法的故障攻击防护方法,其步骤包括:
1)对于待防护的目标密码算法,构造与该目标密码算法相同的算法作为该目标密码算法的冗余算法;
2)将该目标密码 算法的输出和该冗余算法的输出进行异或,然后将异或所得结果通过附加随机置换的感染结构进行随机化;所述随机置换的感染结构包括随机置换操作和随机感染操作,所述随机置换操作用于对故障注入位置以及故障传播途径进行随机化,从而使得在随机感染操作中随机数为0的情况下,输出的故障密文仍然具有随机性;其中,
所述随机置换操作用于对故障注入位置以及故障传播途径进行随机化的三种实现方式包括:(1)先对异或所得结果进行随机置换操作,然后进行随机感染操作;(2)先对异或所得结果进行随机感染操作,然后进行随机置换操作;(3)先对异或所得结果进行随机置换操作,然后进行随机感染操作,最后再进行一次随机置换操作;
所述随机感染操作为有限域上的乘法运算,当采用第(1)种实现方式时,将随机置换操作的输出与随机数进行乘法运算;当采用第(2)种实现方式时,将随机感染操作的输出进行随机置换;当采用第(3)种实现方式时,将随机置换操作的输出与随机数进行乘法运算,然后将乘法运算结果进行随机置换;
所述随机置换操作是一个随机数R控制的置换操作,并且随机置换操作的位宽大于随机感染操作的位宽;
3)将所述随机置换的感染结构的输出与该目标密码算法的输出进行异或后输出。
2.如权利要求1所述的方法,其特征在于,所述随机感染操作时,随机感染的最低位宽不低于该目标密码算法中非线性运算的位宽,随机感染的最高位宽为最终输出数据的位宽。
3.如权利要求1所述的方法,其特征在于,根据随机置换操作的规模决定所述随机数R的位数。
4.如权利要求1所述的方法,其特征在于,步骤3)中,将随机置换操作的N比特输出分为M组,每组n比特与n比特随机数分别进行GF(2n)有限域上的乘法运算,将M组乘法运算的输出组成的M*n比特数据与该目标密码算法的输出异或后输出。
5.一种服务器,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行权利要求1至4任一所述方法中各步骤的指令。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110436726.XA CN113193955B (zh) | 2021-04-22 | 2021-04-22 | 一种密码算法的故障攻击防护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110436726.XA CN113193955B (zh) | 2021-04-22 | 2021-04-22 | 一种密码算法的故障攻击防护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113193955A CN113193955A (zh) | 2021-07-30 |
CN113193955B true CN113193955B (zh) | 2023-01-17 |
Family
ID=76978571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110436726.XA Active CN113193955B (zh) | 2021-04-22 | 2021-04-22 | 一种密码算法的故障攻击防护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113193955B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114070560B (zh) * | 2022-01-13 | 2022-06-24 | 浙江大学 | 一种针对分组密码的代数持久性故障分析方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109861809B (zh) * | 2019-02-20 | 2022-03-18 | 中国电子科技集团公司第三十研究所 | 一种实用化的分组随机加解密方法 |
CN110417537A (zh) * | 2019-07-29 | 2019-11-05 | 广西师范大学 | 一种混沌密码系统实现防旁路攻击的方法 |
CN112187444A (zh) * | 2020-09-02 | 2021-01-05 | 中国科学院软件研究所 | 一种抗侧信道和故障攻击的综合防护方法 |
-
2021
- 2021-04-22 CN CN202110436726.XA patent/CN113193955B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113193955A (zh) | 2021-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Malkin et al. | A comparative cost/security analysis of fault attack countermeasures | |
CN108352981B (zh) | 被布置用于计算目标块加密的密码设备 | |
CN108521325B (zh) | 一种适用于系统数据全生命周期的防侧信道攻击方法 | |
Breier et al. | A countermeasure against statistical ineffective fault analysis | |
Ramezanpour et al. | A statistical fault analysis methodology for the ascon authenticated cipher | |
CN110401627B (zh) | 一种适用于分组密码算法感染防护的抗差分故障攻击安全性评估方法和系统 | |
ES2409458B1 (es) | Método y sistema para mejorar la sincronización de cifrados de flujo | |
Luo et al. | Algebraic fault analysis of SHA-3 under relaxed fault models | |
Kaur et al. | Hardware constructions for error detection in lightweight authenticated cipher ASCON benchmarked on FPGA | |
Pan et al. | One fault is all it needs: Breaking higher-order masking with persistent fault analysis | |
CN113193955B (zh) | 一种密码算法的故障攻击防护方法 | |
EP3364593B1 (en) | Masking storage transfer to protect against attacks | |
Potestad-Ordóńez et al. | Hamming-code based fault detection design methodology for block ciphers | |
US20120257747A1 (en) | Method of secure cryptographic calculation, in particular, against attacks of the dfa and unidirectional type, and corresponding component | |
Luo et al. | Differential fault analysis of SHA-3 under relaxed fault models | |
Lasheras et al. | Lightweight protection of cryptographic hardware accelerators against differential fault analysis | |
Karp et al. | Security-oriented code-based architectures for mitigating fault attacks | |
CN114428979A (zh) | 一种数据处理方法及装置、设备和系统 | |
Blass et al. | Forward security with crash recovery for secure logs | |
Banik et al. | Some security results of the RC4+ stream cipher | |
Czapski et al. | Error detection and error correction procedures for the advanced encryption standard | |
CN113014377A (zh) | 一种利用分组密码s盒双射特性的持久故障攻击防护方法和装置 | |
Zhang et al. | New Countermeasures Against Differential Fault Attacks | |
Gay et al. | Toward Error-Correcting Architectures for Cryptographic Circuits Based on Rabii–Keren Codes | |
Kaur | Secure lightweight cryptographic hardware constructions for deeply embedded systems |
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 |