基于随机延时S盒的可防御碰撞攻击的高速AES加密电路的制作方法

文档序号:16886560发布日期:2019-02-15 22:41阅读:371来源:国知局
基于随机延时S盒的可防御碰撞攻击的高速AES加密电路的制作方法

本发明涉及aes加密技术领域,尤其是一种基于随机延时s盒的可防御碰撞攻击的高速aes加密电路。



背景技术:

1.aes加密算法

密码学中的高级加密标准(advancedencryptionstandard,aes),由美国国家标准与技术研究院(nist)于2001年11月26日发布于fipspub197,并在2002年5月26日成为有效的标准。aes加密算法,又称为rijndael加密算法,该算法为比利时密码学家joandaemen和vincentrijmen所设计,这个标准用来替代原先的des,已经被多方分析且广为全世界所使用。

aes是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥,并且用128位(16字节)分组加密和解密数据。aes加密算法还是使用轮变换的操作。轮变换操作次数与密钥的位数有关,aes-128轮数为10轮。aes-128加密算法流程如图1所示,明文首先进行一个轮密钥加的操作,然后进行10轮轮变换操作。图2为轮变换流程示意图,如图2所示,轮变换包括四个操作:字节替换、行移位、列混合替换和轮密钥加,其中第10轮轮变换中不包含列混合替换操作。

2.高速aes加密电路

流水线技术是实现高速aes电路的有效手段。常见的aes流水线电路结构有外部流水线式和子流水线式两种,如图3所示。外部流水线结构aes电路在每轮变换之后插入寄存器,对每轮轮变换的数据进行缓存,在下个时钟到来时进行下轮轮变换,这种流水线结构缩短了纯组合逻辑的关键路径,相比于循环结构速度有较大提升。子流水线结构aes电路除了在轮变换之间插入寄存器之外,在轮变换内部各个运算单元之间也插入了寄存器,这种结构进一步缩短了关键路径,更适合应用在高速场合。

3.碰撞攻击

2003年,kaischramm等人提出了碰撞攻击的概念,并成功对des算法进行了攻击。如果加密算法内部某一运算的输入不同,但是具有相同的输出值,则称二者发生了碰撞。碰撞攻击通过寻找特定位置上产生的碰撞,推导出一系列和密钥有关的表达式,寻找到的碰撞越多,表达式中包含的密钥信息就越丰富,密钥搜寻空间就越小,攻击强度就越强。碰撞攻击通常包括“碰撞检测”以及“密钥恢复”两个阶段:碰撞检测阶段根据特定的区分模型构造出碰撞检测器,使用碰撞检测器检测特定位置是否发生碰撞,如果检测到发生碰撞,则根据碰撞条件推导出和密钥相关的表达式;密钥恢复阶段利用matlab等数据分析工具,分析功耗数据,破解部分密钥,以此为基础结合碰撞检测阶段得到的一系列密钥表达式破解全部密钥。

①碰撞位置

在aes轮变换中,s盒是最常见的碰撞的位置,s盒的碰撞示意图如图4所示。如果碰撞位置在第i个s盒和第j个s盒处,那么碰撞表达式为:据此得到密钥ki和kj的关系式:pi、pj代表输入加密数据的第i个和第j个字节。改变输入的加密数据,寻找不同的碰撞位置,依据密钥ki和kj的关系式可以得到一系列密钥相关的表达式:

当该表达式中的一个密钥被破解时,与之相关的所有密钥均可被破解。

②碰撞检测

通常,碰撞检测方法有相关系数法和距离检测法。相关系数法在实施时,首先随机输入明文进行加密,假设输入的明文序列为{pα|α=1,2,...,n},记录第i个s盒以及第j个s盒的能量迹之后将和256个特定输入数据的能量迹分组,每一组内求平均,得到两个平均能量迹集台对应δi,j的每一个固定取值,计算遍历pi可以得到256个pj,然后找到对应的能量迹并对其进行排序,然后计算两个集合的相关系数遍历δi,j的所有可能取值后,计算得到256个在所有256个相关系数中数值最大的所对应的△即为正确的碰撞关系数值。基于距离的碰撞检测法一般流程是:首先将两组能量曲线进行求平均操作,降低噪声的影响,之后求两条功耗曲线之间的距离,如果该距离小于某个阈值,则认为发生了碰撞,否则没有发生碰撞。基于距离的碰撞检测方法示意图如图5所示。图中,操作1和操作2均执行n次,得到两组功耗曲线,对两组功耗曲线求平均后可得到两条平均功耗曲线τ1,τ2,在两条曲线上选取r个关键点,计算关键点之间的距离,如果距离小于事先设定的阈值则认为碰撞发生,否则认为不发生碰撞。

由上述分析可知,轮变换结构的字节替换单元中的s盒是碰撞攻击的首选攻击目标,为了抵御碰撞攻击需要对s盒结构加以改善,增大碰撞检测的难度。通常的防御措施是杜绝掩码重用,但即使添加的掩码没有重用,电路中也存在可被碰撞攻击的漏洞。为了能够更好的防御碰撞攻击,本发明提出一种基于随机延时s盒的可防御碰撞攻击的高速aes加密电路,该电路基于随机延时的并行s盒防御措施,通过破坏碰撞检测的条件,从而实现抵御碰撞攻击的目标。



技术实现要素:

发明目的:本发明为实现密码电路防碰撞攻击,提出一种基于随机延时s盒的可防御碰撞攻击的高速aes加密电路,改电路通过为s盒添加随机延时,破坏功耗曲线的一致性,影响碰撞的判定以及阈值的设置,降低碰撞攻击的成功率。另一方面,本发明采用流水线电路结构,在抵御碰撞攻击的同时可提高加密速度。

技术方案:为实现上述技术效果,本发明提出以下技术方案:

基于随机延时s盒的可防御碰撞攻击的高速aes加密电路,加密电路的明文和密钥均为128位,所述加密电路包括:

十轮轮变换单元和密钥扩展单元;前一轮轮变换单元的输出数据作为后一轮轮变换单元的输入数据,第一轮轮变换单元的输入数据为明文和初始密钥异或后的加密数据;每一轮轮变换单元的输入数据同时输入密钥扩展单元进行密钥扩展,得到当前轮的轮密钥并输入本轮轮变换单元中的密钥加单元;

第一至第九轮轮变换单元结构相同,均包括依次连接的字节替换单元、行位移单元、列混合单元和密钥加单元;而第十轮轮变换单元包括依次连接的字节替换单元、行位移单元和密钥加单元;

其中,字节替换单元通过s盒电路实现字节替换功能,字节替换单元包括16个并联的支路,每个支路包括依次串联的第一延时单元、s盒电路和第二延时单元;定义第i个支路中的第一延时单元的延时值为第二延时单元的延时值为从集合[0,t,2t,…,15t]中随机选取,的取值唯一,t表示单个时钟;

轮变换单元的输入数据分为16个8位数据包,分别输入所述16个支路,第i个支路对输入的数据包先进行t1i个时钟的延时后送入s盒电路实现字节替换,字节替换的结果再经过个时钟的延时后输出;16个支路的输出结果合并为128位数据,作为本轮轮变换中字节替换的结果并送入本轮轮变换单元中的行位移单元;

行位移单元、列混合单元分别对输入的数据进行行位移操作、列混合操作;密钥加单元将输入的数据与轮密钥进行异或后输出;第十轮轮变换单元的输出结果即为所述加密电路的加密结果。

进一步的,所述十轮轮变换单元中,相邻两个轮变换单元间插入有寄存器,形成轮间流水线结构。

进一步的,所述字节替换单元还包括第一寄存器、第二寄存器、异或器、16个第一计数器、16个第二计数器;第i个第一计数器的输出端与第i支路的s盒电路输入端相连,第i个第二计数器的输入端与第i支路的s盒电路输出端相连,分别用于实现第i支路中第一延时单元和第二延时单元的延时功能;第一寄存器内存储有预先写入的16个不同的延时值,即第一寄存器内的16个延时值分别通过异或器与十六进制数0xf异或,异或的结果存入第二寄存器,作为16个第二计数器的延时值,即

当第i支路的8位数据输入时,加载第一寄存器中的延时值并开始计数,当计数达到时,将输入的8位数据送入所在支路的s盒电路进行字节替换,字节替换结果输入时,加载第二寄存器中的延时值并开始计数,当计数达到时,将本支路字节替换的结果输出

有益效果:与现有技术相比,本发明具有以下优势:

1、本发明提出的基于随机延时s盒的可防御碰撞攻击的高速aes加密电路,其中轮变换单元中的字节替换单元基于并行s盒结构,通过为每个s盒添加一个随机延时,破坏碰撞攻击检测条件,达到防御碰撞攻击的目的。

2、本发明采用并行s盒结构,与传统的碰撞攻击防御措施相比能够极大的减小电路面积。

附图说明

图1为aes加密算法流程图;

图2为轮变换流程图;

图3为流水线aes一般结构,其中图3(a)为外部流水线结构图,图3(b)为内部子流水线结构;

图4为s盒碰撞示意图;

图5为碰撞攻击流程图;

图6为本发明提出的基于随机延时s盒的可防御碰撞攻击的高速aes加密电路结构图。

图7为本发明提出的流水线轮变换电路图;

图8为本发明所述流水线s盒结构图。

具体实施方式

下面结合附图对本发明作更进一步的说明。

现有的128位加密数据的aes加密算法流程如图1所示,明文首先进行一个轮密钥加的操作,然后进行10轮轮变换操作。图2为轮变换流程示意图,轮变换包括四个操作:字节替换、行移位、列混合替换和轮密钥加,其中第10轮轮变换中不包含列混合替换操作。

图4为s盒碰撞示意图,图5为碰撞攻击流程图,实施碰撞攻击的前提是攻击者能够利用功耗曲线成功检测到碰撞发生并设置一个合理的阈值。无论是基于相关系数还是距离检测法,其原理都是在同一时刻选定1个关键点,利用关键点计算功耗曲线之间的相关性或者距离。如果能够破坏功耗曲线的一致性,那么碰撞的判定以及阈值的设置都会受到影响,碰撞攻击的成功率也会大大降低。字节替换单元中的s盒是碰撞攻击的首选攻击目标,为了抵御碰撞攻击需要对s盒结构加以改善,增大碰撞检测的难度。通常的防御措施是杜绝掩码重用,但即使添加的掩码没有重用,电路中也存在可被碰撞攻击的漏洞。

为了能够更好的防御碰撞攻击,本发明提出基于随机延时s盒的可防御碰撞攻击的高速aes加密电路,通过破坏碰撞检测的条件,从而实现抵御碰撞攻击的目标,该加密电路的结构如图6所示,包括:

十轮轮变换单元和密钥扩展单元;前一轮轮变换单元的输出数据作为后一轮轮变换单元的输入数据,第一轮轮变换单元的输入数据为明文和初始密钥异或后的加密数据;每一轮轮变换单元的输入数据同时输入密钥扩展单元进行密钥扩展,得到当前轮的轮密钥并输入本轮轮变换单元中的密钥加单元;

第一至第九轮轮变换单元结构相同,均包括依次连接的字节替换单元、行位移单元、列混合单元和密钥加单元;而第十轮轮变换单元包括依次连接的字节替换单元、行位移单元和密钥加单元;

其中,字节替换单元通过s盒电路实现字节替换功能,字节替换单元包括16个并联的支路,每个支路包括依次串联的第一延时单元、s盒电路和第二延时单元;定义第i个支路中的第一延时单元的延时值为t1i,第二延时单元的延时值为t1i从集合[0,t,2t,…,15t]中随机选取,t1i的取值唯一,t表示单个时钟;

轮变换单元的输入数据分为16个8位数据包,分别输入所述16个支路,第i个支路对输入的数据包先进行t1i个时钟的延时后送入s盒电路实现字节替换,字节替换的结果再经过个时钟的延时后输出;16个支路的输出结果合并为128位数据,作为本轮轮变换中字节替换的结果并送入本轮轮变换单元中的行位移单元;

行位移单元、列混合单元分别对输入的数据进行行位移操作、列混合操作;密钥加单元将输入的数据与轮密钥进行异或后输出;第十轮轮变换单元的输出结果即为所述加密电路的加密结果。

图中所示的并行s盒结构中,s盒的输入添加了随机延时单元delay1,延时值的范围在0~15个时钟之间(假设为t1),且每个s盒的延时不重复,为了保证s盒功能的正确性,需要在s盒的输出也添加一定的延时单元delay2,delay2的延时取值为15-t1,例如第一个s盒输入延时为4个时钟,那么其输出延时为11个时钟,该方案保证了s盒的总体延时为15个时钟,但是每个s盒输入或者输出的延时又具有随机性。

延时的实现机制为随机数加计数器counter1和counter2。每一次加密开始,128位加密数据被拆分为16个8位数据包,分别送至第i(其中1≤i<16)个延时单元delay1。同时电路随机产生16个随机数也就是(其中1≤i≤16),t1i的取值范围为0~15个时钟且相互不重复,再根据15-t1i(体现在电路上即为将t1i通过异或器与十六进制数0xf异或,得到异或结果)产生16个随机数作为将随机数依次载入各个计数器中。当第i支路的8位数据输入时,counter1i加载第一寄存器中的延时值并开始计数,当计数达到t1i时,将输入的8位数据送入所在支路的s盒电路进行字节替换,字节替换结果输入时,加载第二寄存器中的延时值并开始计数,当计数达到时,将本支路字节替换的结果输出。16个支路的字节替换结果再合并为128位数据,进行行移位以及列混合变换。

为了提高加密运算速度,十轮轮变换采用流水线电路结构,现有的流水线结构如图3所示,包括外部流水线结构和内部子流水线结构。本发明采用轮间流水线和轮内流水线相结合的电路结构,如图7所示,具体为:每轮划分六级流水线,其中划分轮内流水线时复合域s盒共划分五级流水线,如图8所示。行移位、列混合以及密钥加划分为一级流水线。轮间一级流水线,十轮轮变换一共形成七十级流水线。

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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