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

文档序号:8381303阅读:来源:国知局
X3选择的数据来源分别为ALU1、ALU2、ALU3。第二种情况下IN_MUX1、IN_MUX2、IN_MUX3选择的数据来源分别为ALU2、ALU3、ALU1。第三种情况下IN_MUX1、IN_MUX2、IN_MUX3选择的数据来源分别为ALU3、ALU1、ALU2。由这三种情况可以得到IN_MUX1、IN_MUX2、IN_MUX3数据选择规则分别对应为N mod 3+1、(N+l)mod 3+1、(N+2)mod 3+1。根据得到的数据选择规则,无论MUX控制信号N取何值,最终IN_MUX数据选择都是上述三种情况之一。
[0055]另外,为了保证ALU的计算结果输出位置不变,例如:ALU1的结果作为OUTl输出。0UT_MUX的数据选择情况需要根据IN_MUX的数据选择情况确定。IN_MUX的第一种数据选择情况为常规情况,故以IN_MUX的第二种数据选择情况为例进行说明。在第二种数据选择情况下,ALUl的结果存入寄存器3中,为了使ALUl中数据作为OUTl输出,0UT_MUX1需要选择寄存器3的数据,类似的,0UT_MUX2需要选择寄存器I的数据,0UT_MUX3需要选择寄存器2的数据。根据0UT_MUX的数据选择情况,可得到0UT_MUX1、0UT_MUX2、0UT_MUX3的数据选择规则分别对应为(-N)mod 3+1、(-N+l)mod 3+1、(_N+2)mod 3+1。
[0056]图5未根据本发明一个具体实施例的寄存器输入输出互换的抗故障注入攻击方法中改造后PE的工作示意图。图5中展示的为两个寄存器作为一组,寄存器输入输出互换的示意图,其中MUX控制信号为RNG产生的随机比特(I或者O)。当RNG产生的随机数为O时,寄存器I存储ALUl的计算结果,寄存器2存储ALU2的计算结果。当RNG产生的随机数为I时,寄存器I存储ALU2的计算结果,寄存器2存储ALUl的计算结果,从而使ALU计算结果存储位置发生了变化,降低了故障成功注入到电路中的几率,提高了电路的安全性。
[0057]本发明的有益效果是:通过在寄存器的输入端和输出端加入多路选择器进行寄存器实际输入源和输出目标的控制,从而使得存储加密算法数据的寄存器不再固定,降低了故障成功注入到电路中的几率,提高了电路的安全性。
[0058]为了实现上述实施例,本发明还提出一种寄存器输入输出互换的抗故障注入攻击装置,如图6所示,该寄存器输入输出互换的抗故障注入攻击装置包括:第一最大数据宽度获取模块10、第二最大数据宽度获取模块20、分组模块30、电路改造模块40、控制数确定模块50和数据选择规则确定模块60。其中,第一最大数据宽度获取模块10用于根据目标集成电路的计算阵列规模和计算阵列的互联模式,获取目标集成电路上能运行的第一最大数据宽度,其中,计算阵列包括多个PE,PE包括与ALU相连的MUX和与ALU相连的寄存器。第二最大数据宽度获取模块20用于根据第一最大数据宽度,获取目标集成电路上运行加密算法时需要的第二最大数据宽度。分组模块30用于根据第二最大数据宽度对需要进行输入输出互换的多个寄存器进行分组。电路改造模块40用于对每组的多个寄存器处电路进行改造,其中,改造后的电路中每个寄存器的输入端和输出端分别与输入多路选择器IN_MUX和输出多路选择器0UT_MUX相连。控制数确定模块50用于确定每组的多个寄存器处电路对应的多个IN_MUX和多个0UT_MUX进行数据选择的控制数。数据选择规则确定模块60用于根据控制数确定每组的多个寄存器处电路对应的多个IN_MUX和多个0UT_MUX的数据选择规则。
[0059]在本发明的一个实施例中,第一最大数据宽度记为为了表述方便,Wi可以以PE的个数为单位。因此Wi取决于计算阵列规模以及计算阵列的互联模式。例如,若计算阵列为16行32列,且采用相邻行的行间互联这种单向数据互联模式,即每一行的数据计算过后可以传递给下一行,那么此时Wi= 32(即阵列的列数)。如果计算阵列采用相邻列的列间互联模式,那么Wi为阵列的行数,即Wi= 16。在本发明的另一个实施例中,第二最大数据宽度记为wa,^也可以以PE的个数为单位。例如对常用的AES-128加密算法来说,加密算法的各个操作都是针对128比特分组数据的,那么该加密算法的各个步骤的最大数据宽度为128比特。假设PE的处理宽度为8比特,得到Wa= 128比特/8比特=16。
[0060]本发明的寄存器输入输出互换的抗故障注入攻击装置可以用于密码处理器中。为了实现寄存器输入输出的有效互换,密码处理器需要将某些寄存器分组,具体地,在本发明的一个实施例中,需要进行输入输出互换的多个寄存器可以为存储ALU计算结果的寄存器。需要说明的是,密码处理器根据需要也可以将计算阵列中其它寄存器作为分组模块30需要分组的寄存器。进一步地,在本发明的一个实施例中,分组模块30具体用于根据计算阵列的互联模式来确定对需要进行输入输出互换的多个寄存器是按行分组还是按列分组。
[0061]具体地,在本发明的一个实施例中,如果计算阵列采用相邻行的行间互联这种单向数据互联模式,多个寄存器分组按行进行分组。反之,如果计算阵列采用相邻列的列间互联模式,则多个寄存器按列进行分组。进一步地,在本发明的一个实施例中,如果多个寄存器分组时是按行分组,那么说明计算阵列每一行有Wi个寄存器存储ALU的计算结果。由于目标集成电路在运行加密算法时需要的第二最大数据宽度为wa,为保证加密数据之间独立变化,将同一行的寄存器分为Wa组。分组时,将同一行的寄存器从左至右编号为1-Wi,之后将同一行的寄存器依次编组,例如编号为I的寄存器编入第I组,编号为2的寄存器编入第2组,…,编号为wa+l的寄存器也编入第I组,直至将所有的寄存器都编组,接着用同样的方法将计算阵列中所有存储ALU计算结果的寄存器分组。
[0062]进一步地,在本发明的一个实施例中,改造后的电路中,每个IN_MUX分别与每组的多个寄存器对应的多个ALU相连,每个OUT_MUX分别还与每组的其它寄存器的输出端相连。具体地,每个寄存器对应IN_MUX的输入来自于与该寄存器同组的所有寄存器(包括自身)原先的输入,最终输入到寄存器的数据由对应IN_MUX选择。每个寄存器对应OUT_MUX的输入来自于与该寄存器同组的所有寄存器(包括自身)的输出,最终OUT_MUX从同组的所有寄存器的输出中选择一个输出到寄存器原先的输出目标中。
[0063]进一步地,在本发明的一个实施例中,控制数由随机数发生器RNG来产生。即每组的多个寄存器处电路对应的多个IN_MUX和多个OUT_MUX进行数据选择由随机数发生器(RNG)来驱动,需要说明的是,每组的多个寄存器处电路对应的多个IN_MUX和多个OUT_MUX也可以由其他部件驱动,但为了达到抗故障注入攻击的效果,提供给多个IN_MUX和多个OUT_MUX的控制数即MUX控制信号需要具有一定的随机性。多数加密算法都采用轮迭代的计算方式,即通过对一系列计算操作反复迭代执行来提高密码算法的安全性,执行一次需要反复迭代的操作称为一轮。因此,本发明中假定,每当加密算法执行完一轮的操作,RNG的MUX控制信号输出也变化一次,实际上,RNG的MUX控制信号的产生速率只要满足数据处理的需求即可,即密码处理器处理不同数据时,MUX控制信号有变化即可。
[0064]本发明中称寄存器未与IN_MUX相连之前的输入来源为输入源,未与OUT_MUX相连之前的输出目标元件叫输出目标。为了保证加密处理过程正确进行,在本发明的一个实施例中,每组的多个寄存器处电路对应的多个OUT_MUX的数据选择规则与多个IN_MUX的数据选择规则可以保持同步变化,这样才能使同组内多个寄存器的输入源数据依然能传给输出目标。
[0065]进一步地,在本发明的一个实施例中,数据选择规则确定模块60具体用于根据控制数确定每组的多个寄存器处电路对应的多个IN_MUX的数据选择规则,以及根据多个IN_MUX的数据选择规则确定对应的多个OUT_MUX的数据选择规则。假设某一组内多个寄存器的数量为n,则多个IN_MUX的数量为n。IN_MUX的输入来自于与对应该寄存器同组的所有寄存器(包括自身)原先的输入,即输入源的数量也为η。不加限定的情况下,每个IN_MUX都能选择这η个输入源中任意一个的数据进行输出,这样就有可能存在输入源数据丢失的情况(即存在某一个输入源没有IN_MUX选择该输入源的数据作为输出),所以设计IN_MUX数据选择规则时,需要保证在任何时刻每个输入源的数据都有一个IN_MUX来选择并输出,同时为了减少控制的复杂度,设定此η个IN_MUX可能的数据输出选择为η种,这时需要人为的指定这η种可能的情况,继而得到每组的多个寄存器处电路对应的多个IN_MUX的数据选择规则。
[0066]本发明的有益效果是:通过在寄存器的输入端和输出端加入多路选择器进行寄存器实际输入源和输出目标的控制,从而使得存储加密算法数据的寄存器不再固定,降低了故障成功注入到电路中的几率,提高了电路的安全性。
[0067]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0068]此外,术语“第一”、“
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1