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

文档序号:8381303阅读:来源:国知局
入攻击装置。
[0033]如图1所示,根据本发明实施例的寄存器输入输出互换的抗故障注入攻击方法,包括以下步骤:
[0034]SI,根据目标集成电路的计算阵列规模和计算阵列的互联模式,获取目标集成电路上能运行的第一最大数据宽度,其中,计算阵列包括多个PE,PE包括与ALU相连的多个MUX和与ALU相连的寄存器。
[0035]在本发明的一个实施例中,第一最大数据宽度记为为了表述方便,Wi可以以PE的个数为单位。因此Wi取决于计算阵列规模以及计算阵列的互联模式。例如,若计算阵列为16行32列,且采用相邻行的行间互联这种单向数据互联模式,即每一行的数据计算过后可以传递给下一行,那么此时Wi= 32(即阵列的列数)。如果计算阵列采用相邻列的列间互联模式,那么Wi为阵列的行数,即Wi= 16。
[0036]图2为根据本发明一个具体实施例的寄存器输入输出互换的抗故障注入攻击方法中计算阵列示意图。如图2所示,计算阵列由多个PE以及其间的互联线组成,图中展示的为一阵列规模为4X4(4行4列)的计算阵列,PE间通过互联线连接起来。PE工作时通过MUX选择需要进行运算的数据,之后将数据传递给ALU进行运算,运算的结构被存入寄存器中,最后寄存器中数据通过互联线传递给其他PE或是作为最后结果输出。
[0037]S2,根据第一最大数据宽度,获取目标集成电路上运行加密算法时需要的第二最大数据宽度。
[0038]在本发明的一个实施例中,第二最大数据宽度记为wa,^^也可以以PE的个数为单位。例如对常用的AES-128加密算法来说,加密算法的各个操作都是针对128比特分组数据的,那么该加密算法的各个步骤的最大数据宽度为128比特。假设PE的处理宽度为8比特,得到Wa= 128比特/8比特=16。
[0039]S3,根据第二最大数据宽度对需要进行输入输出互换的多个寄存器进行分组。
[0040]本发明的寄存器输入输出互换的抗故障注入攻击方法可以用于密码处理器中。为了实现寄存器输入输出的有效互换,密码处理器需要将某些寄存器分组,具体地,在本发明的一个实施例中,需要进行输入输出互换的多个寄存器可以为存储ALU计算结果的寄存器。需要说明的是,密码处理器根据需要也可以将计算阵列中其它寄存器作为需要分组的寄存器。
[0041 ] 进一步地,在本发明的一个实施例中,可以根据计算阵列的互联模式来确定对需要进行输入输出互换的多个寄存器是按行分组还是按列分组。具体地,在本发明的一个实施例中,如果计算阵列采用相邻行的行间互联这种单向数据互联模式,多个寄存器分组按行进行分组。反之,如果计算阵列采用相邻列的列间互联模式,则多个寄存器按列进行分组。进一步地,在本发明的一个实施例中,如果多个寄存器分组时是按行分组,那么说明计算阵列每一行有Wi个寄存器存储ALU的计算结果。由于目标集成电路在运行加密算法时需要的第二最大数据宽度为wa,为保证加密数据之间独立变化,将同一行的寄存器分为Wa组。分组时,将同一行的寄存器从左至右编号为1-Wi,之后将同一行的寄存器依次编组,例如编号为I的寄存器编入第I组,编号为2的寄存器编入第2组,…,编号为^+1的寄存器也编入第I组,直至将所有的寄存器都编组,接着用同样的方法将计算阵列中所有存储ALU计算结果的寄存器分组。
[0042]图3为根据本发明一个具体实施例的寄存器输入输出互换的抗故障注入攻击方法中寄存器分组示意图。图3中共有8个PE,编号分别对应为PE1-PE8。图3中所示阵列为2X4(2行4列)阵列,假设该阵列采用相邻行的行间互联模式,则Wi= 4,从而寄存器分组时需按行分组。将需要分组的寄存器编号为寄存器1-1,…,寄存器1-4,寄存器2-1,…,寄存器2-4。寄存器编号中第一个数字表示寄存器位于第几行,第二个数字表示寄存器在该行中的编号。假设目标集成电路上运行加密算法时需要的第二最大数据宽度^为2。寄存器分组的结果为,寄存器1-1、寄存器1-3编为一组,分组编号为1-1。寄存器1-2、寄存器1-4编为一组,分组编号为1-2。第二行的分组情况类似,只是分组编号第一个数字为2时,代表为第二行的分组。
[0043]S4,对每组的多个寄存器处电路进行改造,其中,改造后的电路中每个寄存器的输入端和输出端分别与输入多路选择器IN_MUX和输出多路选择器OUT_MUX相连。
[0044]进一步地,在本发明的一个实施例中,改造后的电路中,每个IN_MUX可以分别与每组的多个寄存器对应的多个ALU相连,每个OUT_MUX分别还可以与每组的其它寄存器的输出端相连。具体地,每个寄存器对应IN_MUX的输入来自于与该寄存器同组的所有寄存器(包括自身)原先的输入,最终输入到寄存器的数据由对应IN_MUX选择。每个寄存器对应OUT_MUX的输入来自于与该寄存器同组的所有寄存器(包括自身)的输出,最终OUT_MUX从同组的所有寄存器的输出中选择一个输出到寄存器原先的输出目标中。
[0045]S5,确定每组的多个寄存器处电路对应的多个IN_MUX和多个OUT_MUX进行数据选择的控制数。
[0046]在本发明的一个实施例中,控制数可以由随机数发生器RNG来产生。即每组的多个寄存器处电路对应的多个IN_MUX和多个OUT_MUX进行数据选择由随机数发生器(RNG)来驱动,需要说明的是,每组的多个寄存器处电路对应的多个IN_MUX和多个OUT_MUX也可以由其他部件驱动,但为了达到抗故障注入攻击的效果,提供给多个IN_MUX和多个OUT_MUX的控制数即MUX控制信号需要具有一定的随机性。多数加密算法都采用轮迭代的计算方式,即通过对一系列计算操作反复迭代执行来提高密码算法的安全性,执行一次需要反复迭代的操作称为一轮。因此,本发明中假定,每当加密算法执行完一轮的操作,RNG的MUX控制信号输出也变化一次,实际上,RNG的MUX控制信号的产生速率只要满足数据处理的需求即可,即密码处理器处理不同数据时,MUX控制信号有变化即可。
[0047]S6,根据控制数确定每组的多个寄存器处电路对应的多个IN_MUX和多个OUT_MUX的数据选择规则。
[0048]本发明中称寄存器未与IN_MUX相连之前的输入来源为输入源,未与OUT_MUX相连之前的输出目标元件叫输出目标。为了保证加密处理过程正确进行,在本发明的一个实施例中,每组的多个寄存器处电路对应的多个OUT_MUX的数据选择规则与多个IN_MUX的数据选择规则可以保持同步变化,这样才能使同组内多个寄存器的输入源数据依然能传给输出目标。
[0049]进一步地,在本发明的一个实施例中,根据控制数确定每组的多个寄存器处电路对应的多个IN_MUX和多个OUT_MUX的数据选择规则即步骤S6具体可以为:
[0050]S61,根据控制数确定每组的多个寄存器处电路对应的多个IN_MUX的数据选择规则。
[0051]假设某一组内多个寄存器的数量为n,则多个IN_MUX的数量为n。IN_MUX的输入来自于与对应该寄存器同组的所有寄存器(包括自身)原先的输入,即输入源的数量也为no不加限定的情况下,每个IN_MUX都能选择这η个输入源中任意一个的数据进行输出,这样就有可能存在输入源数据丢失的情况(即存在某一个输入源没有IN_MUX选择该输入源的数据作为输出),所以设计IN_MUX数据选择规则时,需要保证在任何时刻每个输入源的数据都有一个IN_MUX来选择并输出,同时为了减少控制的复杂度,设定此η个IN_MUX可能的数据输出选择为η种,这时需要人为的指定这η种可能的情况,继而得到每组的多个寄存器处电路对应的多个IN_MUX的数据选择规则。
[0052]S62,根据多个IN_MUX的数据选择规则确定对应的多个OUT_MUX的数据选择规则。
[0053]图4为根据本发明一个具体实施例的寄存器输入输出互换的抗故障注入攻击方法中IN_MUX和OUT_MUX的数据选择规则示意图。如图4所示,对寄存器分组之后,首先需要对同组内寄存器处电路结构进行一定的改造,假设某个寄存器分组内包含有3个寄存器,寄存器1、寄存器2和寄存器3。以寄存器I为例,未改造之前,ALUl的运算结果储存在寄存器I中,并最终作为OUTl输出。改造之后,寄存器I输入端和输出端分别接了一个IN_MUXl和一个0UT_MUX1。IN_MUX1的输入数据来自ALU1-ALU3,输出数据至寄存器I。0UT_MUXl的输入数据来自寄存器1-寄存器3,输出作为OUTl输出。IN_MUX1和0UT_MUX1进行数据选择的控制信号来都自于RNG的输出,控制信号即控制数为整数N。寄存器2和寄存器3处的改造类似,以下不再赘述。
[0054]进一步地,由于确定IN_MUX和0UT_MUX的数据选择规则时,同组内寄存器对应的多个0UT_MUX数据选择规则根据IN_MUX数据选择规则设定,故首先需要确定每组的多个寄存器处电路对应的多个IN_MUX的数据选择规则,数据选择规则的数量为3。如图4所示,IN_MUX1-1N_MUX3的输入来自ALU1-ALU3。不加限定的情况下,每个IN_MUX都能选择这3个ALU中任意一个的数据进行输出,这样就有可能存在ALU数据丢失的情况(即存在某一个ALU没有IN_MUX选择该ALU数据作为输出),所以设计IN_MUX数据选择规则时,需要保证在任何时刻每个ALU的数据都有一个IN_MUX来选择并输出,同时为了减少控制的复杂度,设定这3个IN_MUX可能的数据输出选择为3种。这时需要人为的指定这3种可能的情况,图4中展示了 3种IN_MUX数据选择情况。第一种情况下IN_MUX1、IN_MUX2、IN_MU
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1