寄存器输入输出互换的抗故障注入攻击方法和装置的制造方法

文档序号:8381303阅读:377来源:国知局
寄存器输入输出互换的抗故障注入攻击方法和装置的制造方法
【技术领域】
[0001]本发明涉及集成电路安全技术领域,特别涉及一种寄存器输入输出互换的抗故障注入攻击方法和一种寄存器输入输出互换的抗故障注入攻击装置。
【背景技术】
[0002]当今社会科技迅猛发展,生活日趋信息化、数字化以及网络化。人们对信息的安全性也越来越重视,这也促使密码处理器不断改进。为了更好的保证信息的安全,密码处理器不仅需要安全性更高的加密算法,同时也需要在硬件层面对密码处理器本身进行保护。
[0003]就加密算法来说,以在全球范围广泛使用的高级加密标准(AES)为例,AES被认为具有很高的安全性,如果通过数学方式想要完全破解AES,花费的时间要以数十亿年计,因此可以认为现行的加密算法在数学层面上是安全的。而在密码处理的硬件层面,仍然面对很大的安全威胁,其中故障注入攻击就是一种实施在硬件层面的攻击方式,其特点在于能够瞬时改变加密处理器加密电路上的逻辑值,造成电路的瞬时故障,最终导致加密处理器产生错误的输出密文,利用某些错误输出密文,攻击者就有可能破译密钥或者对密钥破译提供帮助。
[0004]攻击者在执行故障注入攻击时,首先需要对电路进行试注入,也就是对电路各个部分都进行一定次数的注入,目的是为了确定电路中哪些部分的故障能够反映到输出端,产生指定形式的错误输出密文,这个过程称作搜索阶段。在攻击者找到电路中能对输出密文产生特定影响(此种影响导致输出密文可被攻击者利用以解析密钥)的部分之后,需要对该部分电路进行持续的注入,以获得攻击者需要的足够多数量的错误输出密文,当获得足够需要的错误密文之后,故障注入攻击完成,这个过程称作持续注入阶段。
[0005]为了降低故障注入攻击的威胁,密码处理器需要采取抗故障注入攻击措施。传统的抗故障注入攻击措施利用冗余和比较的方式,在电路中加入检测机制,检测加密过程是否出现异常。大致可分为:信息冗余,时间冗余和硬件冗余。信息冗余指的是在硬件中增加一部分实现故障校验码等线性或非线性函数的电路以在一定范围内检测错误。时间冗余指的是在时间上对整个或部分加密过程重复执行,两次结果相同才输出,用执行时间上的开销换来安全性的提升。硬件冗余是指将原有电路的全部或者部分进行复制,并比较二者的结果以此提高输出密文的安全性。
[0006]由上面传统冗余抗攻击措施可以知道,冗余抗攻击措施对电路中已有的故障起作用,但并不增加攻击者故障注入的难度,为了能够更好的抵抗故障注入攻击,可以在故障注入阶段增加故障注入的难度,使攻击者难以成功的注入故障。故障注入攻击的攻击对象一般为计算阵列上的算术逻辑单元(ALU)以及寄存器。而相关的研宄表明,寄存器比ALU更容易实施注入,因此,在故障注入阶段对寄存器中数据进行保护就显得很有必要。

【发明内容】

[0007]本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的一个目的在于提出一种能够减少攻击者通过寄存器对电路进行成功注入的几率的寄存器输入输出互换的抗故障注入攻击方法。
[0008]本发明的另一个目的在于提出一种寄存器输入输出互换的抗故障注入攻击装置。
[0009]为了实现上述目的,根据本发明实施例的寄存器输入输出互换的抗故障注入攻击方法,包括以下步骤:S1,根据目标集成电路的计算阵列规模和所述计算阵列的互联模式,获取所述目标集成电路上能运行的第一最大数据宽度,其中,所述计算阵列包括多个基本计算单元(PE),所述PE包括与ALU相连的多个多路选择器(MUX)和与所述ALU相连的寄存器;S2,根据所述第一最大数据宽度,获取所述目标集成电路上运行加密算法时需要的第二最大数据宽度;S3,根据所述第二最大数据宽度对需要进行输入输出互换的多个寄存器进行分组;S4,对每组的多个寄存器处电路进行改造,其中,改造后的电路中每个所述寄存器的输入端和输出端分别与输入多路选择器IN_MUX和输出多路选择器OUT_MUX相连;S5,确定每组的多个寄存器处电路对应的多个所述IN_MUX和多个所述OUT_MUX进行数据选择的控制数;以及S6,根据所述控制数确定每组的多个寄存器处电路对应的多个所述IN_MUX和多个所述OUT_MUX的数据选择规则。
[0010]根据本发明实施例的寄存器输入输出互换的抗故障注入攻击方法的有益效果是:能够使得存储加密算法数据的寄存器不再固定,降低了故障成功注入到电路中的几率,提尚了电路的安全性。
[0011]进一步地,在本发明的一个实施例中,改造后的电路中,每个所述IN_MUX分别与每组的多个寄存器对应的多个ALU相连,每个所述OUT_MUX分别还与每组的其它寄存器的输出端相连。
[0012]进一步地,在本发明的一个实施例中,所述控制数由随机数发生器RNG来产生。
[0013]进一步地,在本发明的一个实施例中,所述根据所述控制数确定每组的多个寄存器处电路对应的多个所述IN_MUX和多个所述OUT_MUX的数据选择规则具体为:根据所述控制数确定每组的多个寄存器处电路对应的多个所述IN_MUX的数据选择规则;以及根据多个所述IN_MUX的数据选择规则确定对应的多个所述OUT_MUX的数据选择规则。
[0014]进一步地,在本发明的一个实施例中,每组的多个寄存器处电路对应的多个所述OUT_MUX的数据选择规则与多个所述IN_MUX的数据选择规则保持同步变化。
[0015]进一步地,在本发明的一个实施例中,根据所述计算阵列的互联模式来确定对需要进行输入输出互换的所述多个寄存器是按行分组还是按列分组。
[0016]进一步地,在本发明的一个实施例中,所述需要进行输入输出互换的多个寄存器为存储所述ALU计算结果的寄存器。
[0017]为了实现上述目的,根据本发明实施例的寄存器输入输出互换的抗故障注入攻击装置,包括:第一最大数据宽度获取模块,用于根据目标集成电路的计算阵列规模和所述计算阵列的互联模式,获取所述目标集成电路上能运行的第一最大数据宽度,其中,所述计算阵列包括多个PE,所述PE包括与ALU相连的多个MUX和与所述ALU相连的寄存器;第二最大数据宽度获取模块,用于根据所述第一最大数据宽度,获取所述目标集成电路上运行加密算法时需要的第二最大数据宽度;分组模块,用于根据所述第二最大数据宽度对需要进行输入输出互换的多个寄存器进行分组;电路改造模块,用于对每组的多个寄存器处电路进行改造,其中,改造后的电路中每个所述寄存器的输入端和输出端分别与输入多路选择器IN_MUX和输出多路选择器OUT_MUX相连;控制数确定模块,用于确定每组的多个寄存器处电路对应的多个所述IN_MUX和多个所述OUT_MUX进行数据选择的控制数;以及数据选择规则确定模块,用于根据所述控制数确定每组的多个寄存器处电路对应的多个所述IN_MUX和多个所述OUT_MUX的数据选择规则。
[0018]进一步地,在本发明的一个实施例中,改造后的电路中,每个所述IN_MUX分别与每组的多个寄存器对应的多个ALU相连,每个所述OUT_MUX分别还与每组的其它寄存器的输出端相连。
[0019]进一步地,在本发明的一个实施例中,所述控制数由随机数发生器RNG来产生。
[0020]进一步地,在本发明的一个实施例中,所述数据选择规则确定模块具体用于:根据所述控制数确定每组的多个寄存器处电路对应的多个所述IN_MUX的数据选择规则;以及根据多个所述IN_MUX的数据选择规则确定对应的多个所述OUT_MUX的数据选择规则。
[0021]进一步地,在本发明的一个实施例中,每组的多个寄存器处电路对应的多个所述OUT_MUX的数据选择规则与多个所述IN_MUX的数据选择规则保持同步变化。
[0022]进一步地,在本发明的一个实施例中,所述分组模块具体用于:根据所述计算阵列的互联模式来确定对需要进行输入输出互换的所述多个寄存器是按行分组还是按列分组。
[0023]进一步地,在本发明的一个实施例中,所述需要进行输入输出互换的多个寄存器为存储所述ALU计算结果的寄存器。
[0024]根据本发明实施例的寄存器输入输出互换的抗故障注入攻击装置的有益效果是:能够使得存储加密算法数据的寄存器不再固定,降低了故障成功注入到电路中的几率,提高了电路的安全性。
【附图说明】
[0025]图1是根据本发明实施例的寄存器输入输出互换的抗故障注入攻击方法的流程图;
[0026]图2是根据本发明一个具体实施例的寄存器输入输出互换的抗故障注入攻击方法中计算阵列示意图;
[0027]图3是根据本发明一个具体实施例的寄存器输入输出互换的抗故障注入攻击方法中寄存器分组示意图;
[0028]图4是根据本发明一个具体实施例的寄存器输入输出互换的抗故障注入攻击方法中IN_MUX和OUT_MUX的数据选择规则示意图;
[0029]图5是根据本发明一个具体实施例的寄存器输入输出互换的抗故障注入攻击方法中改造后PE的工作示意图;以及
[0030]图6是根据本发明实施例的寄存器输入输出互换的抗故障注入攻击装置的方框示意图。
【具体实施方式】
[0031]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0032]下面参考附图描述本发明实施例的寄存器输入输出互换的抗故障注入攻击方法及寄存器输入输出互换的抗故障注
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1