一种动态路径S盒及可防御功耗攻击的AES加密电路的制作方法

文档序号:17770734发布日期:2019-05-28 19:23阅读:295来源:国知局
一种动态路径S盒及可防御功耗攻击的AES加密电路的制作方法

本发明涉及密码电路实现技术领域,尤其是一种动态路径s盒及可防御功耗攻击的aes加密电路。



背景技术:

高级加密标准(advancedencryptionstandard,aes),又称rijndael加密法,该算法为比利时密码学家joandaemen和vincentrijmen所设计,是由美国国家标准与技术研究院2001年制定的新一代分组对称密码算法,用于取代原来的数据加密标准(dataencryptionstandard,des)。aes密码算法是一种迭代、对称分组密码算法,其数据分组长度为128比特,密钥长度有128、192和256比特三种。根据这三种不同的密钥长度,加密过程分别需要进行10、12和14轮轮变换运算,每一个轮变换运算又包括字节替换,行移位,列混合和密钥加四个子运算,除了最后一轮。为了消除对称性,最后一轮轮变换不包含列混合运算,并且在第一轮轮变换运算之前加上一次密钥加运算。

根据不同的应用需求,aes加密电路采用不同的实现架构。参见图3(a)和图3(b),aes加密电路实现架构一般可分为两种:循环展开结构和全展开结构。循环展开结构中使用了nk(1≤nk≤nr,nr=10/12/14)个轮变换单元(包括独立的密钥加运算),与全展开结构相比,循环展开结构需要更小的电路面积,特别是当nk=1时(nk=1时又称为全循环结构),循环展开结构具有最小的电路面积。但循环展开结构需要迭代次才能得到最终结果,因此数据处理速度比较低。循环展开结构用于要求电路面积小,数据速率不高的场合,如无线传感网、rfid等。循环展开结构还可以根据具体应用需求对电路面积和速度进行折衷。全展开结构使用了nr个轮变换电路单元,电路面积大,但数据不需要反馈,数据处理速度高。全展开结构还可以通过增加流水线级数的方式来加快数据处理速度。全展开结构适用于高速数据实时处理场合,如实时视频信号传输等。

功耗攻击,又可称为功耗分析(poweranalysis),立足于密码芯片所消耗的功耗与密钥和算法中间值之间存在相关性。集成电路中cmos逻辑的大量运用,使得功耗与电路的输入和输出跳变状态相关,当cmos单元有信号跳变时则会消耗更多的功耗。在功耗攻击过程中,需要在加密或解密运算的中间结果与密码芯片所消耗的功耗之间建立一定的映射关系,从而根据功耗数据分析推测出密钥的值。目前常用的功耗攻击可以分为简单功耗攻击(simplepowerattack,spa)、差分功耗攻击(differentialpowerattack,dpa)和高阶差分功耗攻击(high-orderdifferentialpowerattack,ho-dpa)三种。功耗攻击实现简单,不需要昂贵的专业设备,并且密钥搜索空间较小,因此是旁路攻击中最重要、最常用的攻击手段,也是对密码芯片构成最严重威胁的旁路攻击技术。

针对功耗攻击,以及一些极端条件应用环境对设备高可靠性的要求,传统的防御途径可大致分为两类:一是通过降低功耗曲线的波动,减少有用信息量,从而降低信噪比;二是通过增加随机噪声和冗余功耗达到降低信噪比的目的。常用的功耗攻击防御措施主要有随机掩码技术和功耗恒定技术等。



技术实现要素:

本发明所要解决的技术问题在于,提供一种动态路径s盒及可防御功耗攻击的aes加密电路,能够解决现有的基于复合域s盒的aes加密电路无法防御功耗攻击的问题。

为解决上述技术问题,本发明提供一种动态路径s盒,包括:依次连接的随机映射单元、gf(28)域动态求逆单元、随机逆映射单元和仿射单元;

随机映射单元、gf(28)域动态求逆单元、随机逆映射单元和仿射单元对输入的数据分别进行映射操作、复合域求逆操作、逆映射操作和仿射操作;仿射单元的输出结果为动态路径s盒的加密结果;

二进制随机数ab由随机数产生器产生,用来控制随机映射单元中的选择器1、gf(28)域动态求逆单元中的选择器2和选择器3、随机逆映射单元中的分配器;其中,二进制随机数ab的首位即随机数a用来控制选择器2,随机数ab的末位即随机数b用来控制选择器2。

优选的,随机映射单元的输入为8位数据包,包括映射矩阵1、映射矩阵2、映射矩阵3、映射矩阵4和选择器1;其中映射矩阵1、映射矩阵2、映射矩阵3和映射矩阵4分别与随机逆映射单元中的逆映射矩阵1、逆映射矩阵2、逆映射矩阵3和逆映射矩阵4一一对应;

当8位数据进入随机映射单元时,输入数据同时进入映射矩阵1、映射矩阵2、映射矩阵3和映射矩阵4进行处理;通过二进制随机数ab控制选择器1动态选择是哪个映射矩阵的输出结果作为随机映射单元的结果并送入动态路径s盒的gf(28)域动态求逆单元。

优选的,gf(28)域动态求逆单元的输入数据为随机映射单元输出的8位数据包,包括gf((24)2)域上的p电路和n电路、选择器2、gf((22)2)域上的p电路和n电路、选择器3、gf(22)域上乘逆电路;其中,p表示基于多项式基的求逆变换,n表示基于正规基的求逆变换;

当8位数据输入gf(28)域动态求逆单元时,输入数据同时进入gf((24)2)域上的p电路和n电路;选择器2的两个输入端口分别与gf((24)2)域上的p电路和n电路相连;通过随机数a控制选择器2选择gf((24)2)域上的p电路或n电路的输出结果作为gf((22)2)域上的p电路和n电路的输入,其中,a为随机数ab的首位;选择器3的两个输入端口分别与gf((22)2)域上的p电路和n电路相连;通过随机数b控制选择器3选择gf((22)2)域上的p电路或n电路的输出结果作为gf(22)域上乘逆电路的输入,其中,b为随机数ab的末位;gf(22)域上乘逆电路为bit交换电路,其输出结果合并为8位数据,作为gf(28)域动态求逆单元的结果并送入动态路径s盒的随机逆映射单元。

优选的,随机逆映射单元的输入为gf(28)域动态求逆单元输出的8位数据包,包括分配器、逆映射矩阵1、逆映射矩阵2、逆映射矩阵3和逆映射矩阵4;其中逆映射矩阵1、逆映射矩阵2、逆映射矩阵3和逆映射矩阵4分别与随机映射单元中的映射矩阵1、映射矩阵2、映射矩阵3和映射矩阵4一一对应;

当8位数据进入随机逆映射单元时,输入数据首先进入分配器;随机数ab为分配器的控制信号,通过随机数ab决定信号是送入哪个逆映射矩阵进行处理;逆映射矩阵的输出结果作为随机逆映射单元的结果并送入动态路径s盒的仿射单元。

相应的,一种基于动态路径s盒的可防御功耗攻击的aes加密电路,为全展开结构,包括:nr(nr为aes标准所规定的轮变换运算数量)个采用了动态路径s盒的轮变换单元(轮变换1,轮变换2,…,轮变换nr)和密钥扩展单元;第1个轮变换单元的输入数据为输入明文与初始密钥异或之后得到的加密数据,其余各个轮变换单元的输入数据均为前一个轮变换单元的输出数据;初始密钥输入密钥扩展单元进行密钥扩展,得到当前轮单元的轮密钥并输入到该单元中的密钥加单元;

第1至第nr-1轮轮变换单元结构相同,均由依次连接的字节替换单元、行移位单元、列混合单元以及密钥加单元构成;第nr轮轮变换单元包括依次连接的字节替换单元、行移位单元和密钥加单元,不包括列混合单元;

其中,字节替换单元采用动态路径s盒实现字节替换功能,字节替换单元包括16个并联的动态路径s盒;

轮变换单元的输入数据分为16个8位数据包,分别输入所述的16个动态路径s盒实现字节替换操作;16个动态路径s盒的输出结果合并为128位数据,作为本轮轮变换单元中字节替换单元的结果并送入本轮轮变换单元中的行移位单元;

行移位单元按照aes标准所规定的行移位操作规则对输入的128位数据进行处理,结果输入到列混合单元;列混合单元按照aes标准所规定的列混合操作规则对输入的128位数据进行处理,结果输入到密钥加单元;密钥加单元将输入的数据与轮密钥进行异或后输出;第nr轮轮变换单元的输出结果即为所述加密电路的密文结果。

本发明的有益效果为:本发明提出的一种动态路径s盒,通过随机选择映射矩阵、逆映射矩阵、以及设计动态求逆单元,s盒电路路径不固定,与传统的s盒相比,处理同一组数据功耗呈现动态变化;轮变换单元中的字节替换单元基于并行动态路径s盒结构,通过使用动态路径s盒,使得目标电路在处理同一组数据时的功耗呈现动态变化,破坏目标电路所处理的数据与电路密钥之间的相关性,进而有效防御功耗攻击。

附图说明

图1为本发明的动态路径s盒的结构示意图。

图2为本发明的加密电路结构示意图。

图3(a)为aes加密电路循环展开结构示意图。

图3(b)为aes加密电路全展开结构示意图。

图4为本发明nr=10时aes加密电路进行加密运算的流程示意图。

图5为本发明所述gf((24)2)域上基于多项式基的求逆变换示意图。

图6为本发明所述gf((24)2)域上基于正规基的求逆变换示意图。

图7为本发明所述gf((22)2)域上基于多项式基的求逆变换示意图。

图8为本发明所述gf((22)2)域上基于正规基的求逆变换示意图。

具体实施方式

如图1所示,一种基于动态路径s盒的可防御功耗攻击的aes加密电路,包括:随机映射单元、gf(28)域动态求逆单元、随机逆映射单元和仿射单元。

图1中所述的随机映射单元,包括映射矩阵1、映射矩阵2、映射矩阵3、映射矩阵4和选择器1。

图1中所述的gf(28)域动态求逆单元,包括gf((24)2)域上的p电路(p表示基于多项式基的求逆变换)和n电路(n表示基于正规基的求逆变换)、选择器2、gf((22)2)域上的p电路和n电路、选择器3、gf(22)域上乘逆电路。其中,gf((24)2)域上的p电路和n电路分别如图5和图6所示,gf((22)2)域上的p电路和n电路分别如图7和图8所示。

图1中所述的随机逆映射单元,包括分配器、逆映射矩阵1、逆映射矩阵2、逆映射矩阵3和逆映射矩阵4;当8位二进制数据进入动态路径s盒时,输入数据同时进入映射矩阵1、映射矩阵2、映射矩阵3和映射矩阵4进行处理。

当随机数ab=00时,选择器1选择映射矩阵1的运算结果作为随机映射矩阵的输出,输入到gf(28)域动态求逆单元;输入的8位数据同时进入gf((24)2)域上的p电路和n电路,输入数据的高4位和低4位分别表示位ah和al;选择器2的两个输入端口分别与gf((24)2)域上的p电路和n电路相连;通过随机数a=0,控制选择器2选择gf((24)2)域上的p电路的输出结果(高4位逆和低4位逆)作为gf((22)2)域上的p电路和n电路的输入;选择器3的两个输入端口分别与gf((22)2)域上的p电路和n电路相连;通过随机数b=0,控制选择器3选择gf((22)2)域上的p电路的输出结果作为gf(22)域上乘逆电路的输入;gf(22)域上乘逆电路为bit交换电路,最后将输出结果合并为8位数据,作为gf(28)域动态求逆单元的结果送入动态路径s盒的随机逆映射单元;随机数ab=00,控制分配器选择逆映射矩阵1作为下一级电路对数据进行处理;逆映射矩阵的输出结果作为随机逆映射单元的结果并送入动态路径s盒的仿射单元;仿射单元的输出结果为动态路径s盒的加密结果。

当随机数ab=01时,选择器1选择映射矩阵2的运算结果作为随机映射矩阵的输出,输入到gf(28)域动态求逆单元;通过随机数a=0,控制选择器2选择gf((24)2)域上的p电路的输出结果作为gf((22)2)域上的p电路和n电路的输入;通过随机数b=1,控制选择器3选择gf((22)2)域上的n电路的输出结果作为gf(22)域上乘逆电路的输入;gf(22)域上乘逆电路为bit交换电路,最后将输出结果合并为8位数据,作为gf(28)域动态求逆单元的结果送入动态路径s盒的随机逆映射单元;随机数ab=01,控制分配器选择逆映射矩阵2作为下一级电路对数据进行处理;逆映射矩阵的输出结果作为随机逆映射单元的结果并送入动态路径s盒的仿射单元;仿射单元的输出结果为动态路径s盒的加密结果。

当随机数ab=10时,选择器1选择映射矩阵3的运算结果作为随机映射矩阵的输出,输入到gf(28)域动态求逆单元;通过随机数a=1,控制选择器2选择gf((24)2)域上的n电路的输出结果作为gf((22)2)域上的p电路和n电路的输入;通过随机数b=0,控制选择器3选择gf((22)2)域上的p电路的输出结果作为gf(22)域上乘逆电路的输入;gf(22)域上乘逆电路为bit交换电路,最后将输出结果合并为8位数据,作为gf(28)域动态求逆单元的结果送入动态路径s盒的随机逆映射单元;随机数ab=10,控制分配器选择逆映射矩阵3作为下一级电路对数据进行处理;逆映射矩阵的输出结果作为随机逆映射单元的结果并送入动态路径s盒的仿射单元;仿射单元的输出结果为动态路径s盒的加密结果。

当随机数ab=11时,选择器1选择映射矩阵4的运算结果作为随机映射矩阵的输出,输入到gf(28)域动态求逆单元;通过随机数a=1,控制选择器2选择gf((24)2)域上的n电路的输出结果作为gf((22)2)域上的p电路和n电路的输入;通过随机数b=1,控制选择器3选择gf((22)2)域上的n电路的输出结果作为gf(22)域上乘逆电路的输入;gf(22)域上乘逆电路为bit交换电路,最后将输出结果合并为8位数据,作为gf(28)域动态求逆单元的结果送入动态路径s盒的随机逆映射单元;随机数ab=11,控制分配器选择逆映射矩阵4作为下一级电路对数据进行处理;逆映射矩阵的输出结果作为随机逆映射单元的结果并送入动态路径s盒的仿射单元;仿射单元的输出结果为动态路径s盒的加密结果。

与pp电路(即gf((24)2)域上选择p电路,gf((22)2)域上选择p电路)连接的映射矩阵1和逆映射矩阵1分别表示为:

与pn电路连接的映射矩阵2和逆映射矩阵2分别表示为:

与np电路连接的映射矩阵3和逆映射矩阵3分别表示为:

与nn电路连接的映射矩阵4和逆映射矩阵4分别表示为:

参见图2,一种可防御功耗攻击的aes加密电路,输入明文和输出密文均为128位数据包,密钥为aes标准所规定密钥位数,加密电路包括nr(nr为aes标准所规定的轮变换运算数量)个采用动态路径s盒的轮变换单元(轮变换1,轮变换2,…,轮变换nr)和密钥扩展单元;第一个轮变换单元的输入数据为输入明文与初始密钥异或之后得到的加密数据,其余各轮变换单元的输入数据均为前一个轮变换单元的输出数据;初始密钥输入密钥扩展单元进行密钥扩展,得到当前轮单元的轮密钥并输入到该单元中的密钥加单元。

第1至第nr-1轮轮变换单元结构相同,均由依次连接的字节替换单元、行移位单元、列混合单元以及密钥加单元构成;第nr轮轮变换单元包括依次连接的字节替换单元、行移位单元和密钥加单元,不包括列混合单元;其中,字节替换单元通过动态路径s盒实现字节替换功能,字节替换单元包括16个并联的动态路径s盒。

轮变换单元的输入数据分为16个8位数据包,分别输入所述的16个动态路径s盒实现字节替换操作;16个动态路径s盒的输出结果合并为128位数据,作为本轮轮变换单元中字节替换单元的结果并送入本轮轮变换单元中的行移位单元。

行移位单元按照aes标准所规定的行移位操作规则对输入的128位数据进行处理,结果输入到列混合单元;列混合单元按照aes标准所规定的列混合操作规则对输入的128位数据进行处理,结果输入到密钥加单元;密钥加单元将输入的数据与轮密钥进行异或后输出;第nr轮轮变换单元的输出结果即为所述加密电路的密文结果。

参见图4,图4为nr=10时aes加密电路进行加密运算的流程图。输入的明文和初始密钥均为128位数据包,首先经过一个轮密钥加的操作,然后进入轮变换单元,共计进行10轮轮变换操作之后,电路输出最终的128位数据包密文。

nr=10时,aes加密电路采用不同结构s盒,可以得到如表1所示的特征。表中实现方式指的是加密电路的实现形式,其中pp指选择gf((24)2)域上的p电路和gf((22)2)域上的p电路实现乘法逆,pn指选择gf((24)2)域上的p电路和gf((22)2)域上的n电路实现乘法逆,nn指选择gf((24)2)域上的n电路和gf((22)2)域上的n电路实现乘法逆,np指选择gf((24)2)域上的n电路和gf((22)2)域上的p电路实现乘法逆。

表1采用不同结构s盒的aes加密电路特征

本发明中,动态路径s盒的数据处理路径动态变化,使得目标aes电路在处理同一组数据的时候功耗呈现动态变化,破坏电路所处理的数据与电路密钥之间的相关性,从而实现防御功耗攻击的目标,提高加密电路的安全性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1