一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于随机掩码感染机制的AES加密电路的制作方法

2022-03-26 15:01:16 来源:中国专利 TAG:

一种基于随机掩码感染机制的aes加密电路
技术领域
1.本发明属于密码电路技术领域,具体涉及一种基于随机掩码感染机制的aes加密电路。


背景技术:

2.高级加密标准(advanced encryption standard,aes),又称rijndael加密法,该算法为比利时密码学家joan daemen和vincent rijmen所设计,是由美国国家标准与技术研究院2001年制定的新一代分组对称密码算法,用于取代原来的数据加密标准(data encryption standard,des)。aes密码算法是一种迭代、对称分组密码算法,其数据分组长度为128比特,密钥长度有128、192和256比特三种。根据这三种不同的密钥长度,加密过程分别需要进行10、12和14轮轮变换运算,每一个轮变换运算又包括字节替换,行移位,列混合和密钥加四个子运算,除了最后一轮。为了消除对称性,最后一轮轮变换不包含列混合运算,并且在第一轮轮变换运算之前加上一次密钥加运算。
3.根据不同的应用需求,aes加密电路采用不同的实现架构。参见图3和图4,aes加密电路实现架构一般可分为两种:循环展开结构和全展开结构。循环展开结构中使用了nk(1≤nk≤nr,nr=10/12/14)个轮变换单元(包括独立的密钥加运算),与全展开结构相比,循环展开结构需要更小的电路面积,特别是当nk=1时(nk=1时又称为全循环结构),循环展开结构具有最小的电路面积。但循环展开结构需要迭代次才能得到最终结果,因此数据处理速度比较低。循环展开结构用于要求电路面积小,数据速率不高的场合,如无线传感网、rfid等。循环展开结构还可以根据具体应用需求对电路面积和速度进行折衷。全展开结构使用了nr个轮变换电路单元,电路面积大,但数据不需要反馈,数据处理速度高。全展开结构还可以通过增加流水线级数的方式来加快数据处理速度。全展开结构适用于高速数据实时处理场合,如实时视频信号传输等。
4.功耗攻击,又可称为功耗分析(power analysis),立足于密码芯片所消耗的功耗与密钥和算法中间值之间存在相关性。集成电路中cmos逻辑的大量运用,使得功耗与电路的输入和输出跳变状态相关,当cmos单元有信号跳变时则会消耗更多的功耗。在功耗攻击过程中,需要在加密或解密运算的中间结果与密码芯片所消耗的功耗之间建立一定的映射关系,从而根据功耗数据分析推测出密钥的值。目前常用的功耗攻击可以分为简单功耗攻击(simple power attack,spa)、差分功耗攻击(differential power attack,dpa)和高阶差分功耗攻击(high-order differential power attack,ho-dpa)三种。功耗攻击实现简单,不需要昂贵的专业设备,并且密钥搜索空间较小,因此是旁路攻击中最重要、最常用的攻击手段,也是对密码芯片构成最严重威胁的旁路攻击技术。
5.针对功耗攻击,以及一些极端条件应用环境对设备高可靠性的要求,传统的防御途径可大致分为两类:一是通过降低功耗曲线的波动,减少有用信息量,从而降低信噪比;二是通过增加随机噪声和冗余功耗达到降低信噪比的目的。常用的功耗攻击防御措施主要有随机掩码技术和功耗恒定技术等。
6.故障攻击是一类针对密码系统旁路攻击方式,攻击者通过电磁、激光等手段向密码硬件电路中注入故障,使密码设备产生错误消息,因而使解密方得不到正确的信息认证而拒绝服务,更进一步,攻击者可以通过差分故障分析得到系统密钥。另外一些极端条件应用环境,如高空环境、深海环境,对设备要求可靠性较高。
7.针对故障攻击,以及一些极端条件应用环境对设备高可靠性的要求,传统的解决方案主要采用结构冗余检错机制,即将采用多个相同功能的电路,同时对同一组数据进行处理,并将结果数据进行比较。


技术实现要素:

8.本发明针对现有技术中存在的不足,提出了一种基于随机掩码感染机制的aes加密电路,能够解决现有的aes加密电路无法防御功耗攻击和故障攻击的问题。
9.本发明为实现上述发明目的,采取的技术方案如下:
10.一种基于随机掩码感染机制的aes加密电路,包括两条并行的aes加密电路单元、随机掩码感染机制单元和密钥扩展单元;所述aes加密电路单元为全展开结构,包括nr个轮变换单元;随机掩码感染机制单元的掩码操作发生在aes第1个轮变换单元之前,即首先对aes加密电路的输入明文进行掩码;去掩码发生在aes第n
r-1
个轮变换单元之后即对第n
r-1
个轮变换单元的输出进行去掩码;随机感染发生在aes第n
r-1
个轮变换单元之后和第nr个轮变换单元之前即对去除掩码后的数据进行随机感染操作;随机掩码感染机制单元将两路aes加密电路第n
r-1
个轮变换单元的输出数据m进行去掩码,分别得到两路中间数据s1和s2;之后将s1和s2进行异或操作,再通过扩散函数d()将得到的中间数据进行扩散操作得到中间数据e;随后将中间数据e分别通过异或运算感染回原加密路径;密钥扩展单元,实现常规的aes密钥扩散算法,其输出为每轮轮变换加密过程所需的轮密钥。
11.作为本发明的优选技术方案:所述随机掩码感染机制单元包括随机数产生器单元、存储器单元和感染机制单元;所述随机数产生器单元产生随机数a1和a2分别用来对两条并行的加密路径进行布尔掩码操作;存储器单元存储用于去除掩码的数据,通过a1和a2进行选址分别输出与a1和a2对应的用于去掩码的随机数a1′
和a2′
;感染机制单元实现故障数据的扩散,并将扩散后的故障数据感染回原加密路径。
12.作为本发明的优选技术方案:所述感染机制单元的输入为去除掩码之后的两路中间数据s1和s2;首先将输入的两路数据s1和s2进行异或处理,然后通过扩散函数d()对结果数据进行扩散;当出现故障数据时,扩散到其所在的行和列;最后将所得的数据感染回原加密路径。
13.作为本发明的优选技术方案:所述当出现故障数据时即存在非零数据,则原电路中存在故障。
14.作为本发明的优选技术方案:所述aes加密电路单元的前n
r-1
轮轮变换单元结构相同,均由依次连接的字节替换单元、行移位单元、列混合单元以及密钥加单元构成;第nr轮轮变换单元包括依次连接的字节替换单元、行移位单元和密钥加单元;第nr轮轮变换单元的输入为随机掩码感染机制单元的输出e与第n
r-1
轮轮变换单元的输出值m之间的异或值,以及第n
r-1
轮轮密钥;第nr轮轮变换单元的输出结果即为所述aes加密电路单元的输出密文。
15.本发明所述的一种基于随机掩码感染机制的aes加密电路,采用以上技术方案与现有技术相比,具有以下技术效果:
16.本发明通过随机数产生器单元、存储器单元和感染机制单元,使得掩码不固定,同时对诱导或注入故障起到扩散随机化的作用,与传统的固定掩码以及故障单一扩散相比,处理同一组数据功耗呈现动态变化,同时对加密路径中可能存在的故障信息进行随机扩散,破坏了目标电路功耗与所处理数据之间的依赖关系,同时也破坏了诱导故障和故障密文之间的依赖关系,从而可有效防御功耗攻击和故障攻击,提高aes加密电路的安全性。
附图说明
17.图1是本发明的结构示意图;
18.图2是本发明的随机掩码感染机制单元结构示意图;
19.图3是aes加密电路循环展开结构示意图;
20.图4是aes加密电路全展开结构示意图;
21.图5是本发明nr=10时aes加密电路进行加密运算的流程示意图。
具体实施方式
22.下面结合附图详细的描述本发明的作进一步的解释说明,以使本领域的技术人员可以更深入地理解本发明并能够实施,但下面通过参考实例仅用于解释本发明,不作为本发明的限定。
23.参见附图1,一种基于随机掩码感染机制的aes加密电路,包括两条并行的aes加密电路单元、随机掩码感染机制单元和密钥扩展单元;所述aes加密电路单元为全展开结构,包括nr个轮变换单元;nr为aes标准所规定的轮变换运算数量;随机掩码感染机制单元的掩码操作发生在aes第1个轮变换单元之前,即首先对aes加密电路的输入明文进行掩码;去掩码发生在aes第n
r-1
个轮变换单元之后即对第n
r-1
个轮变换单元的输出进行去掩码;随机感染发生在aes第n
r-1
个轮变换单元之后和第nr个轮变换单元之前即对去除掩码后的数据进行随机感染操作;随机掩码感染机制单元将两路aes加密电路第n
r-1
个轮变换单元的输出数据m进行去掩码,分别得到两路中间数据s1和s2;之后将s1和s2进行异或操作,再通过扩散函数d()将得到的中间数据进行扩散操作得到中间数据e;随后将中间数据e分别通过异或运算感染回原加密路径;密钥扩展单元,实现常规的aes密钥扩散算法,其输出为每轮轮变换加密过程所需的轮密钥。
24.aes加密电路单元,为全展开结构,包括nr个轮变换单元,该nr为aes标准所规定的轮变换运算数量,其中前n
r-1
轮轮变换单元结构相同,均由依次连接的字节替换单元、行移位单元、列混合单元以及密钥加单元构成;第nr轮轮变换单元包括依次连接的字节替换单元、行移位单元和密钥加单元;其中,字节替换单元包括16个并联的复合域s盒或者使用lut结构的s盒;轮变换单元的输入数据分为16个8位数据包,分别输入所述的16个s盒,实现字节替换操作;16个s盒的输出结果合并为128位数据,作为本轮轮变换单元中字节替换单元的结果并送入本轮轮变换单元中的行移位单元;对于aes加密电路,其处理的中间数据为矩阵形式;行移位单元按照aes标准所规定的行移位操作规则对输入的128位数据进行处理,结果输入到列混合单元;列混合单元按照aes标准所规定的列混合操作规则对输入的128位
数据进行处理,结果输入到密钥加单元;密钥加单元将输入的数据与轮密钥进行异或后输出。
25.本发明的输入明文和输出密文均为128位数据包,密钥为aes标准所规定密钥位数,初始密钥输入密钥扩展单元进行密钥扩展,同时,初始密钥于输入明文进行异或运算;随机掩码感染机制单元的掩码操作发生在aes第1个轮变换单元即轮变换1之前,即对输入明文和初始密钥的异或结果进行掩码即进行异或运算;去掩码发生在aes第n
r-1
个轮变换单元之后即对第n
r-1
个轮变换单元的输出进行去掩码,即将aes加密电路的中间数据m分别与a1′
和a2′
进行异或运算,分别得到s1和s2;随机感染发生在aes第n
r-1
个轮变换单元之后和第nr个轮变换单元之前,即对去除掩码后的数据s1和s2进行随机感染操作;随机掩码感染机制单元的输出结果e通过异或运算分别感染回两条aes加密路径;aes第nr个轮变换单元对输入的数据进行正常的加密操作,输出的结果即为所述加密电路的密文结果,两条加密路径中的任意一个输出结果均可作为最终密文结果。
26.参见附图2,随机掩码感染机制单元包括随机数产生器单元、存储器单元和感染机制单元;随机数产生器单元产生随机数a1和a2分别用来对两条并行的加密路径进行布尔掩码操作;存储器单元存储用于去除掩码的数据,通过a1和a2进行选址分别输出与a1和a2对应的用于去掩码的随机数a1′
和a2′
;感染机制单元实现故障数据的扩散,并将扩散后的故障数据感染回原加密路径。
27.感染机制单元的输入为去除掩码之后的两路中间数据s1和s2;首先将输入的两路数据s1和s2进行异或处理,然后通过扩散函数d()对结果数据进行扩散;当出现故障数据时,扩散到其所在的行和列;对于aes加密电路,其处理的中间数据为矩阵形式;最后将所得的数据感染回原加密路径。当出现故障数据时即存在非零数据,则原电路中存在故障。
28.当电路运行时,随机数产生器产生两个128位的随机数a1和a2分别用来对两条并行的加密路径进行布尔掩码操作;存储器单元存储用于去除掩码的数据,通过a1和a2进行选址分别输出与a1和a2对应的用于去掩码的随机数a1′
和a2′
;a1′
和a2′
分别与中间数据m进行异或操作即去除掩码,得到s1和s2;感染机制单元的输入为s1和s2,首先将s1和s2进行异或运算处理,之后将所得的128位矩阵数据通过扩散函数d()进行故障扩散处理,扩散函数d()满足如下公式:
[0029][0030]
公式(1)中,δ是一个4
×
4的字节矩阵,δ
ij
表示矩阵的第i行、第j列的元素。经过d()处理之后,输入矩阵中可能存在的非零数据将扩散到其所在的行和列,得到数据e;感染机制单元的输出结果e为随机掩码感染机制的输出结果。
[0031]
参见附图5,图5为nr=10时aes加密电路进行加密运算的流程图。输入的明文和初始密钥均为128位数据包,首先经过一个轮密钥加的操作,然后进入轮变换单元,共计进行10轮轮变换操作之后,电路输出最终的128位数据包密文。
[0032]
本发明通过随机数产生器单元、存储器单元和感染机制单元,使得掩码不固定,同时对诱导或注入故障起到扩散随机化的作用,与传统的固定掩码以及故障单一扩散相比,处理同一组数据功耗呈现动态变化,同时对加密路径中可能存在的故障信息进行随机扩散,破坏了目标电路功耗与所处理数据之间的依赖关系,同时也破坏了诱导故障和故障密
文之间的依赖关系,从而可有效防御功耗攻击和故障攻击,提高aes加密电路的安全性。
[0033]
以上所述的具体实施方案,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,所应理解的是,以上所述仅为本发明的具体实施方案而已,并非用以限定本发明的范围,任何本领域的技术人员,在不脱离本发明的构思和原则的前提下所做出的等同变化与修改,均应属于本发明保护的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献