一种实现AES加解密的方法及装置.pdf

上传人:a**** 文档编号:4723216 上传时间:2018-10-31 格式:PDF 页数:10 大小:1.26MB
返回 下载 相关 举报
摘要
申请专利号:

CN201210236959.6

申请日:

2012.07.10

公开号:

CN102857334A

公开日:

2013.01.02

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 9/06申请日:20120710|||公开

IPC分类号:

H04L9/06

主分类号:

H04L9/06

申请人:

记忆科技(深圳)有限公司

发明人:

莫海锋; 朱丽娟

地址:

518000 广东省深圳市南山区蛇口后海大道东角头东南工贸大厦5楼

优先权:

专利代理机构:

北京律诚同业知识产权代理有限公司 11006

代理人:

刘健;黄韧敏

PDF下载: PDF下载
内容摘要

本发明提供了一种通过合并S盒和列混合的AES加解密装置,包括求逆及列混合复用单元、第一轮密钥加模块、第二轮密钥加模块、解密仿射变换模块、第一选择器、第二选择器以及寄存器,求逆及列混合复用单元包括求逆元模块、加密仿射变换模块、加密列混合模块以及解密列混合模块,第一轮密钥加模块与加密列混合模块以及第一选择器连接;第二轮密钥加模块与解密列混合模块连接;解密仿射变换模块与第二轮密钥加模块以及第一选择器连接;第二选择器与第一选择器以及寄存器连接。借此,本发明能够减少硬件资源的开销,同时缩短了关键路径,减少了芯片面积,提高了AES加解密装置的运行速度。

权利要求书

权利要求书一种通过合并S盒和列混合的AES加解密装置,其特征在于,包括求逆及列混合复用单元、第一轮密钥加模块、第二轮密钥加模块、解密仿射变换模块、第一选择器、第二选择器以及寄存器,所述求逆及列混合复用单元包括求逆元模块、加密仿射变换模块、加密列混合模块以及解密列混合模块,所述求逆元模块的输出端与所述加密仿射变换模块以及所述解密列混合模块分别连接,所述加密列混合模块与所述加密仿射变换模块连接,且所述求逆元模块的输入端与所述寄存器连接;所述第一轮密钥加模块与所述加密列混合模块以及所述第一选择器的第一输入端连接;所述第二轮密钥加模块与所述解密列混合模块连接;所述解密仿射变换模块与所述第二轮密钥加模块以及所述第一选择器的第二输入端连接;所述第二选择器与所述第一选择器的输出端以及所述寄存器连接。根据权利要求1所述的AES加解密装置,其特征在于,待加/解密数据在所述AES加解密装置中进行Nr轮运算,每轮运算结果缓存至所述寄存器,Nr由密钥长度确定。根据权利要求2所述的AES加解密装置,其特征在于,所述待加密数据由所述第一选择器的第一输入端输入,所述待解密数据由所述解密仿射变换模块输入,第一选择器通过加解密控制信号控制选择将所述待加密数据或经过所述解密仿射变换模块处理的待解密数据输入至所述第二选择器;在轮运算中,第一选择器通过加解密控制信号控制选择将加密轮运算结果或解密轮运算结果输入至所述第二选择器。根据权利要求3所述的AES加解密装置,其特征在于,所述第二选择器根据轮运算的轮次控制选择将所述加/解密输入数据或轮运算结果输入所述寄存器;若为第一轮,则将所述加/解密输入数据加载至所述寄存器,否则将所述轮运算结果缓存至所述寄存器。根据权利要求2所述的AES加解密装置,其特征在于,所述装置还包括与所述加密仿射变换模块输出端连接的第三轮密钥加模块。根据权利要求5所述的AES加解密装置,其特征在于,在第Nr轮运算时,所述第三轮密钥加模块对所述加密仿射变换模块的输出进行轮密钥加操作,并将操作结果作为加密结果输出。根据权利要求2所述的AES加解密装置,其特征在于,所述装置还包括与所述求逆元模块输出端连接的第四轮密钥加模块。根据权利要求7所述的AES加解密装置,其特征在于,在第Nr轮运算时,所述第四轮密钥加模块对所述求逆元模块的输出进行轮密钥加操作,并将操作结果作为解密结果输出。根据权利要求1所述的AES加解密装置,其特征在于,所述装置还包括与所述第二轮密钥加模块的输出端连接的轮密钥列混合模块,所述轮密钥列混合模块将所述轮密钥进行列混合操作后输入至所述第二轮密钥加模块。根据权利要求1所述的AES加解密装置,其特征在于,所述装置还包括密钥扩展单元,用于将初始密钥进行变换获取所述轮密钥加运算操作在每一轮运算使用的密钥。

说明书

说明书一种实现AES加解密的方法及装置
技术领域
本发明涉及数据通信安全技术领域,尤其涉及一种实现AES加解密的方法及装置。
背景技术
AES(Advanced Encryption Standard,高级加密标准)是当前存储领域的主要加密算法。AES加密和解密由多个相同的轮运算组成,每个轮运算包含S盒运算、移位运算、列混合运算和加密钥的运算。加密和解密的S盒运算、移位运算、列混合运算都不相同。现有的AES方案使用独立的结构实现加密和解密运算,或者使用独立的结构实现S盒和逆的S盒的运算。
图1是现有加密运算的结构图,SBX(Sbox)表示加密运算的S盒运算,MC(Mix Columns)表示加密运算的列混合运算,ARK(add round key)表示轮密钥加运算,Register(寄存器)缓存每轮运算的中间数据,选择器用于选择装载输入数据或轮运算的输出数据,round‑key表示加密轮密钥,initial‑data表示输入数据,data‑out表示加密结果,initial‑round表示轮运算的轮数。每组数据的加密有Nr轮运算,第一轮运算开始时装载输入数据,第一轮运算的输出作为第二轮运算的输入,依次类推,直到完成Nr轮运算,输出解密结果。图2是加密S盒运算的结构图,INV表示有限域中计算逆元的逻辑运算,MT表示SBX运算中逆元运算后把逆元和一个固定的矩阵相乘的运算。
图3是现有解密运算的结构图,ISBX(Inv Sbox)表示解密运算的S盒运算,也是加密S盒运算的逆,IMC(Inv Mix Columns)表示解密运算的列混合运算,ARK(add round key)表示轮密钥加运算,Register(寄存器)缓存每轮运算的中间数据,选择器用于选择装载输入数据或轮运算的输出数据,round‑key表示加密轮密钥,initial‑data表示输入数据,data‑out表示加密结果,initial‑round表示当前轮运算的轮数。每组数据的解密有Nr轮运算,第一轮运算开始时装载输入数据,第一轮运算的输出作为第二轮运算的输入,依次类推,直到完成Nr轮运算,输出及诶结果。图4是解密运算S盒的运算过程,MTI表示ISBX运算中计算逆元之前输入数据和一个固定矩阵相乘的运算,INV表示有限域中计算逆元的逻辑运算。
现有的AES算法采用独立结构分别实现加密和解密运算,而S盒运算逻辑的面积很大,独立结构分别实现加密和解密运算会增加芯片的面积和功耗。
综上可知,现有技术在实际使用上显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种通过合并S盒和列混合的AES加解密装置,其能够减少硬件资源的开销,同时缩短了关键路径,减少了芯片面积,提高了AES加解密装置的运行速度。
为了实现上述目的,本发明提供一种通过合并S盒和列混合的AES加解密装置,包括求逆及列混合复用单元、第一轮密钥加模块、第二轮密钥加模块、解密仿射变换模块、第一选择器、第二选择器以及寄存器,
所述求逆及列混合复用单元包括求逆元模块、加密仿射变换模块、加密列混合模块以及解密列混合模块,所述求逆元模块的输出端与所述加密仿射变换模块以及所述解密列混合模块分别连接,所述加密列混合模块与所述加密仿射变换模块连接,且所述求逆元模块的输入端与所述寄存器连接;
所述第一轮密钥加模块与所述加密列混合模块以及所述第一选择器的第一输入端连接;
所述第二轮密钥加模块与所述解密列混合模块连接;
所述解密仿射变换模块与所述第二轮密钥加模块以及所述第一选择器的第二输入端连接;
所述第二选择器与所述第一选择器的输出端以及所述寄存器连接。
根据本发明的AES加解密装置,待加/解密数据在所述AES加解密装置中进行Nr轮运算,每轮运算结果缓存至所述寄存器,Nr由密钥长度确定。
根据本发明的AES加解密装置,所述待加密数据由所述第一选择器的第一输入端输入,所述待解密数据由所述解密仿射变换模块输入,第一选择器通过加解密控制信号控制选择将所述待加密数据或经过所述解密仿射变换模块处理的待解密数据输入至所述第二选择器;
在轮运算中,第一选择器通过加解密控制信号控制选择将加密轮运算结果或解密轮运算结果输入至所述第二选择器。
根据本发明的AES加解密装置,所述第二选择器根据轮运算的轮次控制选择将所述加/解密输入数据或轮运算结果输入所述寄存器;若为第一轮,则将所述加/解密输入数据加载至所述寄存器,否则将所述轮运算结果缓存至所述寄存器。
根据本发明的AES加解密装置,所述装置还包括与所述加密仿射变换模块输出端连接的第三轮密钥加模块。
根据本发明的AES加解密装置,在第Nr轮运算时,所述第三轮密钥加模块对所述加密仿射变换模块的输出进行轮密钥加操作,并将操作结果作为加密结果输出。
根据本发明的AES加解密装置,所述装置还包括与所述求逆元模块输出端连接的第四轮密钥加模块。
根据本发明的AES加解密装置,在第Nr轮运算时,所述第四轮密钥加模块对所述求逆元模块的输出进行轮密钥加操作,并将操作结果作为解密结果输出。
根据本发明的AES加解密装置,所述装置还包括与所述第二轮密钥加模块的输出端连接的轮密钥列混合模块,所述轮密钥列混合模块将所述轮密钥进行列混合操作后输入至所述第二轮密钥加模块。
根据本发明的AES加解密装置,所述装置还包括密钥扩展单元,用于将初始密钥进行变换获取所述轮密钥加运算操作在每一轮运算使用的密钥。
本发明通过把加密和解密运算放到一个模块内,并把加密和解密轮运算的结果使用相同的寄存器缓存,降低了芯片面积降低了功耗。此外,求逆元模块、加密仿射变换模块、加密列混合模块以及解密列混合模块共同组成求逆及列混合复用单元,从而通过合并轮运算中的S盒逆元计算和列混合运算,有效的优化了轮运算的组合逻辑,并使得加密和解密的列混合运算能够复用,减少硬件资源的开销,同时缩短了关键路径,减少了芯片面积,提高了AES加解密装置的运行速度。
附图说明
图1是现有加密运算的结构示意图;
图2是现有加密S盒运算的结构示意图;
图3是现有解密运算的结构示意图;
图4是现有解密S盒运算的结构示意图;
图5是本发明一种通过合并S盒和列混合的AES加解密装置的结构示意图;
图6是本发明中求逆及列混合复用单元的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图5和示出了本发明一种通过合并S盒和列混合的AES加解密装置100,装置100包括:求逆及列混合复用单元10、第一轮密钥加模块105、第二轮密钥加模块106、解密仿射变换模块107、第一选择器108、第二选择器109、寄存器110、第三轮密钥加模块111、第四轮密钥加模块112以及轮密钥列混合模块113。
求逆及列混合复用单元10包括一个输入端口以及四个输出端口C0、C1、C2、C3,求逆及列混合复用单元10的输入端口与寄存器110连接,输出端口C0与第三轮密钥加模块111连接,输出端口C1与第一轮密钥加模块105连接,输出端口C2与第二轮密钥加模块106连接,输出端口C3与第四轮密钥加模块112连接。
求逆及列混合复用单元10的具体结构如图6所示,其包括求逆元模块101、加密仿射变换模块102、加密列混合模块103以及解密列混合模块104,求逆元模块101的输出端与加密仿射变换模块102以及解密列混合模块104分别连接,加密列混合模块103与加密仿射变换模块102连接,且求逆元模块101的输入端与寄存器110连接。求逆及列混合复用单元10包括四个输出端口C0、C1、C2以及C3,其中,加密仿射变换模块102的输出端为端口C0;加密列混合模块103的输出端为端口C1;解密列混合模块104的输出端为端口C2;求逆元模块101的输出端为端口C3。列混合运算是把输入矩阵和一个固定的矩阵相乘,求逆元模块以及加密仿射变换也具有相应的乘法运算,同时输入输出均为4×4矩阵。从而由于求逆及列混合复用单元10中的各个模块具有共同的有限域乘法器和其他的逻辑单元,因此可以将这些模块放在一起进行复用,以降低硬件资源消耗。
第一轮密钥加模块105与求逆及列混合复用单元10的加密列混合模块103连接以及第一选择器108的第一输入端连接,即第一轮密钥加模块105与求逆及列混合复用单元10的输出端口C1连接,与第一轮密钥加模块105用于执行加密的轮密钥加运算操作。
第二轮密钥加模块106与求逆及列混合复用单元10的解密列混合模块104连接,即第二轮密钥加模块106求逆及列混合复用单元10的输出端口C2连接,第二轮密钥加模块106用于执行解密的轮密钥加操作。
解密仿射变换模块107与第二轮密钥加模块106以及第一选择器108的第二输入端连接。
第二选择器109与第一选择器108的输出端以及寄存器110连接。
在本发明中,求逆元模块101以及加密仿射变换模块102组成加密的S盒运算,解密仿射变换模块107与求逆元模块101组成解密的S盒运算,本发明将S盒运算的逆元运算以及列混合运算进行优化,减少轮运算硬件资源开销,同时缩短了加密解密模块的关键路径,使得AES模块能够工作在更高的频率,提高了AES的速度,降低芯片面积和功耗。
待加密数据或待解密数据在AES加解密装置100中进行Nr轮运算,每轮运算结果缓存至寄存器110,Nr由密钥长度确定。表1是Nr和密钥长度关系的一种实施例。
表1
  密钥长度(比特)  128  192  256  Nr  10  12  14
其中,待加密数据由第一选择器108的第一输入端输入,待解密数据由解密仿射变换模块107输入,第一选择器108通过加解密控制信号(Encrypt)控制选择将待加密数据或经过解密仿射变换模块107处理的待解密数据输入至第二选择器109,当加解密控制信号(Encrypt)为加密控制信号时,第一选择器108将待加密数据输入至第二选择器109,当加解密控制信号(Encrypt)为解密控制信号时,第一选择器108将经过解密仿射变换模块107处理后的待解密数据输入至第二选择器109。同时,在后续的轮运算中,第一选择器108通过加解密控制信号(Encrypt)控制选择将加密轮运算结果或解密轮运算结果输入至第二选择器109。在图5中,为方便表述,图中画出了两个第一选择器108以及两个解密仿射变换模块107,实际上是通过一个选择门以及一个解密仿射变换模块107实现。
第二选择器109根据轮运算的轮次(Initial‑round)控制选择将待加/解密输入数据(Initial‑data)或轮运算结果输入寄存器110;若为第一轮,则将加/解密输入数据加载至寄存器110,否则将轮运算结果缓存至寄存器110。
加密的轮运算依次包括:求逆元模块101进行的求逆元运算、加密仿射变换模块102的加密仿射变换运算、加密列混合模块103的加密列混合运算以及第一轮密钥加模块105的加密轮密钥加运算。
解密的轮运算依次包括:求逆元模块101进行的求逆元运算、解密列混合模块104进行的解密列混合运算、第二轮密钥加模块106进行的解密轮密钥加运算以及解密仿射变换模块的解密仿射变换运算。
第三轮密钥加模块111与加密仿射变换模块12输出端连接,即为求逆及列混合复用单元10的输出端口C0。在第Nr轮运算时,所述第三轮密钥加模块111对加密仿射变换模块102的输出进行轮密钥加操作,并将操作结果作为加密结果(Data‑out‑enc)输出。
第四轮密钥加模块112与求逆元模块11输出端连接,即为求逆及列混合复用单元10的输出端口C3。在第Nr轮运算时,第四轮密钥加模块112对求逆元模块101的输出进行轮密钥加操作,并将操作结果作为解密结果(Data‑out‑dec)输出。
AES加解密装置100还包括与第二轮密钥加模块106的输出端连接的轮密钥列混合模块113,轮密钥列混合模块113将轮密钥进行列混合操作后输入至第二轮密钥加模块106,第二轮密钥加模块106将进过列混合的轮密钥与经过列混合的待解密数据进行密钥加运算。
优选的是,AES加解密装置100还包括密钥扩展单元,用于将初始密钥进行变换获取轮密钥加运算操作在每一轮运算使用的密钥。轮密钥(Round‑key)其由最初始的密钥变换而来,最初的密钥来自用户输入的初始密钥,轮密钥用于轮密钥加运算操作。不管初始的密钥是128比特、192比特还是256比特,轮密钥的长度都是128比特
在本发明中,寄存器110选择性的保存加密和解密轮运算的变量,并合并加解密S盒运算的逆元运算和混轮运算。每轮运算的寄存器110输出作为下一轮运算的输入,如果是第一轮运算,写入到寄存器110的不是轮运算的结果,而是输入的数据经过一定运算的结果,所述的一定运算如图5所示的解密仿射变换,如果是加密的轮运算,则输入的数据不需要进行解密仿射变换,而是直接输入;如果是解密的轮运算,输入到寄存器的是输入数据进行解密仿射变换的结果。从寄存器输出的数据,即上一轮运算的结果,进入到新的一轮运算。在新的一轮运算中,寄存器的输出直接输入到求逆及列混合复用单元10,求逆及列混合复用单元10实现S盒计算的逆元运算和列混合运算,逆元的计算和列混合运算存在可优化的逻辑,合并后能够在很大程度上实现减少逻辑的使用,并且把加密和解密的列混合运算合并后,解密的列混合运算逻辑单元可以使用加密列混合运算的逻辑单元。
本发明通过把加密和解密运算放到一个模块内,并把加密和解密轮运算的结果使用相同的寄存器缓存,降低了芯片面积降低了功耗。此外,求逆元模块101、加密仿射变换模块102、加密列混合模块103以及解密列混合模块104共同组成求逆及列混合复用单元10,从而通过合并轮运算中的S盒逆元计算和列混合运算,有效的优化了轮运算的组合逻辑,并使得加密和解密的列混合运算能够复用,减少硬件资源的开销同时缩短了关键路径,减少了芯片面积,提高了AES加解密装置100的运行速度。
根据本发明的一个实施例,在加密过程中,待加密数据从第一选择器108输入,加/解密控制信号(Encrypt)为加密控制信号,第一选择器108根据加密控制信号将待加密数据发送到第二选择器109;轮运算的轮数(Initial‑round)为1,第二选择器109根据轮运算的轮数(Initial‑round)选择将待加密数据加载到寄存器110;求逆元模块101对寄存器110发来的数据进行求逆元运算操作,并将求逆元后的数据发送至加密仿射变换模块102;加密仿射变换模块102将逆元和一个固定矩阵进行相乘运算,该固定矩阵与解密仿射变换中的固定矩阵不同,加密仿射变换模块102运算完成后将数据发送给加密列混合模块103;加密列混合模块103对数据进行列加密混列变换后输出到第一轮密钥加模块105与轮密钥矩阵(Round‑key)相加作为当前一轮的加密轮运算的结果;第一选择器108根据加/解密控制信号(Encrypt)选择将加密轮运算的结果发送到第二选择器109;此时轮运算的轮数(Initial‑round)为2,第二选择器109选择将第一选择器108发来的加密轮运算结果缓存至寄存器110开始下一轮的轮运算,依次类推,直到完成Nr轮运算。在Nr轮运算时,所述第三轮密钥加模块111对加密仿射变换模块102的输出进行轮密钥加操作,并将操作结果作为加密结果(Data‑out‑enc)输出。
在上述实施例中,每组加密数据的长度是128比特,每组数据的加密有Nr轮运算,Nr由密钥的长度决定。每一轮运算的输入和输出都是128比特数据,每一轮运算的输入的128比特数据从高位到低位分为16个8比特的数据放入一个4×4的矩阵中M,然后进行求逆元运算和加密仿射变换,并得到一个新的4×4矩阵M’。如果此时是最后一轮运算,把M’和轮密钥矩阵相加后,作为加密后的4×4数据矩阵输出,不管初始的密钥是128比特、192比特还是256比特,轮密钥的长度都是128比特,轮密钥和数据一样构成相同的4×4矩阵和轮运算数据相加;如果不是最后一轮运算,加密仿射变换的输出M’进行列混合的运算,所谓的列混合运算是把M’再和一个固定的矩阵相乘,该固定矩阵对于AES加密算法是唯一的。列混合运算完成后的输出和轮密钥矩阵相加作为当前一轮运算的输出,也是下一轮运算的输入。
根据本发明的另一实施例,在解密过程中,待解密数据输入至解密仿射变换模块107进行解密仿射变换;加/解密控制信号(Encrypt)为解密控制信号,第一选择器108根据解密控制信号将经过解密仿射变换模块107处理后的待解密数据发送到第二选择器109;轮运算的轮数(Initial‑round)为1,第二选择器109根据轮运算的轮数(Initial‑round)选择将待加密数据加载到寄存器110;求逆元模块101对寄存器110发来的数据进行求逆元运算操作,并将求逆元后的数据发送至解密列混合模块104;解密列混合模块103对数据进行解密混列变换后输出到第二轮密钥加模块106,第二轮密钥加模块106将解密混列变换后的数据与经过混列变换后的轮密钥矩阵(Round‑key)相加,并发送解密仿射变换模块107进行解密仿射变换,并将解密仿射变换后的数据作为当前一轮的解密轮运算的结果;第一选择器108根据加/解密控制信号(Encrypt)选择将解密轮运算的结果发送到第二选择器109;此时轮运算的轮数(Initial‑round)为2,第二选择器109选择将第一选择器108发来的解密轮运算结果缓存至寄存器110开始下一轮的轮运算,依次类推,直到完成Nr轮运算。在第Nr轮运算时,第四轮密钥加模块112对求逆元模块101的输出进行轮密钥加操作,并将操作结果作为解密结果(Data‑out‑dec)输出。
综上所述,本发明通过把加密和解密运算放到一个模块内,并把加密和解密轮运算的结果使用相同的寄存器缓存,降低了芯片面积降低了功耗。此外,求逆元模块101、加密仿射变换模块102、加密列混合模块103以及解密列混合模块104共同组成求逆及列混合复用单元10,从而通过合并轮运算中的S盒逆元计算和列混合运算,有效的优化了轮运算的组合逻辑,并使得加密和解密的列混合运算能够复用,减少硬件资源的开销同时缩短了关键路径,减少了芯片面积,提高了AES加解密装置100的运行速度。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

一种实现AES加解密的方法及装置.pdf_第1页
第1页 / 共10页
一种实现AES加解密的方法及装置.pdf_第2页
第2页 / 共10页
一种实现AES加解密的方法及装置.pdf_第3页
第3页 / 共10页
点击查看更多>>
资源描述

《一种实现AES加解密的方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种实现AES加解密的方法及装置.pdf(10页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102857334 A (43)申请公布日 2013.01.02 CN 102857334 A *CN102857334A* (21)申请号 201210236959.6 (22)申请日 2012.07.10 H04L 9/06(2006.01) (71)申请人 记忆科技 (深圳) 有限公司 地址 518000 广东省深圳市南山区蛇口后海 大道东角头东南工贸大厦 5 楼 (72)发明人 莫海锋 朱丽娟 (74)专利代理机构 北京律诚同业知识产权代理 有限公司 11006 代理人 刘健 黄韧敏 (54) 发明名称 一种实现 AES 加解密的方法及装置 (57) 摘要 本。

2、发明提供了一种通过合并 S 盒和列混合的 AES 加解密装置, 包括求逆及列混合复用单元、 第 一轮密钥加模块、 第二轮密钥加模块、 解密仿射变 换模块、 第一选择器、 第二选择器以及寄存器, 求 逆及列混合复用单元包括求逆元模块、 加密仿射 变换模块、 加密列混合模块以及解密列混合模块, 第一轮密钥加模块与加密列混合模块以及第一选 择器连接 ; 第二轮密钥加模块与解密列混合模块 连接 ; 解密仿射变换模块与第二轮密钥加模块以 及第一选择器连接 ; 第二选择器与第一选择器以 及寄存器连接。 借此, 本发明能够减少硬件资源的 开销, 同时缩短了关键路径, 减少了芯片面积, 提 高了 AES 加解。

3、密装置的运行速度。 (51)Int.Cl. 权利要求书 1 页 说明书 6 页 附图 2 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 1 页 说明书 6 页 附图 2 页 1/1 页 2 1.一种通过合并S盒和列混合的AES加解密装置, 其特征在于, 包括求逆及列混合复用 单元、 第一轮密钥加模块、 第二轮密钥加模块、 解密仿射变换模块、 第一选择器、 第二选择器 以及寄存器, 所述求逆及列混合复用单元包括求逆元模块、 加密仿射变换模块、 加密列混合模块以 及解密列混合模块, 所述求逆元模块的输出端与所述加密仿射变换模块以及所述解密列混 合模块分别连接, 所述加。

4、密列混合模块与所述加密仿射变换模块连接, 且所述求逆元模块 的输入端与所述寄存器连接 ; 所述第一轮密钥加模块与所述加密列混合模块以及所述第一选择器的第一输入端连 接 ; 所述第二轮密钥加模块与所述解密列混合模块连接 ; 所述解密仿射变换模块与所述第二轮密钥加模块以及所述第一选择器的第二输入端 连接 ; 所述第二选择器与所述第一选择器的输出端以及所述寄存器连接。 2.根据权利要求1所述的AES加解密装置, 其特征在于, 待加/解密数据在所述AES加 解密装置中进行 Nr 轮运算, 每轮运算结果缓存至所述寄存器, Nr 由密钥长度确定。 3.根据权利要求2所述的AES加解密装置, 其特征在于, 。

5、所述待加密数据由所述第一选 择器的第一输入端输入, 所述待解密数据由所述解密仿射变换模块输入, 第一选择器通过 加解密控制信号控制选择将所述待加密数据或经过所述解密仿射变换模块处理的待解密 数据输入至所述第二选择器 ; 在轮运算中, 第一选择器通过加解密控制信号控制选择将加密轮运算结果或解密轮运 算结果输入至所述第二选择器。 4.根据权利要求3所述的AES加解密装置, 其特征在于, 所述第二选择器根据轮运算的 轮次控制选择将所述加 / 解密输入数据或轮运算结果输入所述寄存器 ; 若为第一轮, 则将 所述加 / 解密输入数据加载至所述寄存器, 否则将所述轮运算结果缓存至所述寄存器。 5.根据权利。

6、要求2所述的AES加解密装置, 其特征在于, 所述装置还包括与所述加密仿 射变换模块输出端连接的第三轮密钥加模块。 6.根据权利要求5所述的AES加解密装置, 其特征在于, 在第Nr轮运算时, 所述第三轮 密钥加模块对所述加密仿射变换模块的输出进行轮密钥加操作, 并将操作结果作为加密结 果输出。 7.根据权利要求2所述的AES加解密装置, 其特征在于, 所述装置还包括与所述求逆元 模块输出端连接的第四轮密钥加模块。 8. 根据权利要求 7 所述的 AES 加解密装置, 其特征在于, 在第 Nr 轮运算时, 所述第四 轮密钥加模块对所述求逆元模块的输出进行轮密钥加操作, 并将操作结果作为解密结果。

7、输 出。 9.根据权利要求1所述的AES加解密装置, 其特征在于, 所述装置还包括与所述第二轮 密钥加模块的输出端连接的轮密钥列混合模块, 所述轮密钥列混合模块将所述轮密钥进行 列混合操作后输入至所述第二轮密钥加模块。 10. 根据权利要求 1 所述的 AES 加解密装置, 其特征在于, 所述装置还包括密钥扩展单 元, 用于将初始密钥进行变换获取所述轮密钥加运算操作在每一轮运算使用的密钥。 权 利 要 求 书 CN 102857334 A 2 1/6 页 3 一种实现 AES 加解密的方法及装置 技术领域 0001 本发明涉及数据通信安全技术领域, 尤其涉及一种实现 AES 加解密的方法及装 。

8、置。 背景技术 0002 AES(Advanced Encryption Standard, 高级加密标准 ) 是当前存储领域的主要加 密算法。AES 加密和解密由多个相同的轮运算组成, 每个轮运算包含 S 盒运算、 移位运算、 列混合运算和加密钥的运算。加密和解密的 S 盒运算、 移位运算、 列混合运算都不相同。现 有的 AES 方案使用独立的结构实现加密和解密运算, 或者使用独立的结构实现 S 盒和逆的 S 盒的运算。 0003 图 1 是现有加密运算的结构图, SBX(Sbox) 表示加密运算的 S 盒运算, MC(Mix Columns) 表示加密运算的列混合运算, ARK(add r。

9、ound key) 表示轮密钥加运算, Register( 寄存器 ) 缓存每轮运算的中间数据, 选择器用于选择装载输入数据或轮运算的 输出数据, round-key 表示加密轮密钥, initial-data 表示输入数据, data-out 表示加密结 果, initial-round 表示轮运算的轮数。每组数据的加密有 Nr 轮运算, 第一轮运算开始时 装载输入数据, 第一轮运算的输出作为第二轮运算的输入, 依次类推, 直到完成 Nr 轮运算, 输出解密结果。图 2 是加密 S 盒运算的结构图, INV 表示有限域中计算逆元的逻辑运算, MT 表示 SBX 运算中逆元运算后把逆元和一个固。

10、定的矩阵相乘的运算。 0004 图 3 是现有解密运算的结构图, ISBX(Inv Sbox) 表示解密运算的 S 盒运算, 也是 加密 S 盒运算的逆, IMC(Inv Mix Columns) 表示解密运算的列混合运算, ARK(add round key)表示轮密钥加运算, Register(寄存器)缓存每轮运算的中间数据, 选择器用于选择装 载输入数据或轮运算的输出数据, round-key 表示加密轮密钥, initial-data 表示输入数 据, data-out表示加密结果, initial-round表示当前轮运算的轮数。 每组数据的解密有Nr 轮运算, 第一轮运算开始时装载。

11、输入数据, 第一轮运算的输出作为第二轮运算的输入, 依次 类推, 直到完成 Nr 轮运算, 输出及诶结果。图 4 是解密运算 S 盒的运算过程, MTI 表示 ISBX 运算中计算逆元之前输入数据和一个固定矩阵相乘的运算, INV 表示有限域中计算逆元的 逻辑运算。 0005 现有的 AES 算法采用独立结构分别实现加密和解密运算, 而 S 盒运算逻辑的面积 很大, 独立结构分别实现加密和解密运算会增加芯片的面积和功耗。 0006 综上可知, 现有技术在实际使用上显然存在不便与缺陷, 所以有必要加以改进。 发明内容 0007 针对上述的缺陷, 本发明的目的在于提供一种通过合并 S 盒和列混合的。

12、 AES 加解 密装置, 其能够减少硬件资源的开销, 同时缩短了关键路径, 减少了芯片面积, 提高了 AES 加解密装置的运行速度。 0008 为了实现上述目的, 本发明提供一种通过合并S盒和列混合的AES加解密装置, 包 说 明 书 CN 102857334 A 3 2/6 页 4 括求逆及列混合复用单元、 第一轮密钥加模块、 第二轮密钥加模块、 解密仿射变换模块、 第 一选择器、 第二选择器以及寄存器, 0009 所述求逆及列混合复用单元包括求逆元模块、 加密仿射变换模块、 加密列混合模 块以及解密列混合模块, 所述求逆元模块的输出端与所述加密仿射变换模块以及所述解密 列混合模块分别连接,。

13、 所述加密列混合模块与所述加密仿射变换模块连接, 且所述求逆元 模块的输入端与所述寄存器连接 ; 0010 所述第一轮密钥加模块与所述加密列混合模块以及所述第一选择器的第一输入 端连接 ; 0011 所述第二轮密钥加模块与所述解密列混合模块连接 ; 0012 所述解密仿射变换模块与所述第二轮密钥加模块以及所述第一选择器的第二输 入端连接 ; 0013 所述第二选择器与所述第一选择器的输出端以及所述寄存器连接。 0014 根据本发明的 AES 加解密装置, 待加 / 解密数据在所述 AES 加解密装置中进行 Nr 轮运算, 每轮运算结果缓存至所述寄存器, Nr 由密钥长度确定。 0015 根据本。

14、发明的 AES 加解密装置, 所述待加密数据由所述第一选择器的第一输入端 输入, 所述待解密数据由所述解密仿射变换模块输入, 第一选择器通过加解密控制信号控 制选择将所述待加密数据或经过所述解密仿射变换模块处理的待解密数据输入至所述第 二选择器 ; 0016 在轮运算中, 第一选择器通过加解密控制信号控制选择将加密轮运算结果或解密 轮运算结果输入至所述第二选择器。 0017 根据本发明的 AES 加解密装置, 所述第二选择器根据轮运算的轮次控制选择将所 述加/解密输入数据或轮运算结果输入所述寄存器 ; 若为第一轮, 则将所述加/解密输入数 据加载至所述寄存器, 否则将所述轮运算结果缓存至所述寄。

15、存器。 0018 根据本发明的 AES 加解密装置, 所述装置还包括与所述加密仿射变换模块输出端 连接的第三轮密钥加模块。 0019 根据本发明的 AES 加解密装置, 在第 Nr 轮运算时, 所述第三轮密钥加模块对所述 加密仿射变换模块的输出进行轮密钥加操作, 并将操作结果作为加密结果输出。 0020 根据本发明的 AES 加解密装置, 所述装置还包括与所述求逆元模块输出端连接的 第四轮密钥加模块。 0021 根据本发明的 AES 加解密装置, 在第 Nr 轮运算时, 所述第四轮密钥加模块对所述 求逆元模块的输出进行轮密钥加操作, 并将操作结果作为解密结果输出。 0022 根据本发明的 AE。

16、S 加解密装置, 所述装置还包括与所述第二轮密钥加模块的输出 端连接的轮密钥列混合模块, 所述轮密钥列混合模块将所述轮密钥进行列混合操作后输入 至所述第二轮密钥加模块。 0023 根据本发明的 AES 加解密装置, 所述装置还包括密钥扩展单元, 用于将初始密钥 进行变换获取所述轮密钥加运算操作在每一轮运算使用的密钥。 0024 本发明通过把加密和解密运算放到一个模块内, 并把加密和解密轮运算的结果使 用相同的寄存器缓存, 降低了芯片面积降低了功耗。 此外, 求逆元模块、 加密仿射变换模块、 加密列混合模块以及解密列混合模块共同组成求逆及列混合复用单元, 从而通过合并轮运 说 明 书 CN 10。

17、2857334 A 4 3/6 页 5 算中的 S 盒逆元计算和列混合运算, 有效的优化了轮运算的组合逻辑, 并使得加密和解密 的列混合运算能够复用, 减少硬件资源的开销, 同时缩短了关键路径, 减少了芯片面积, 提 高了 AES 加解密装置的运行速度。 附图说明 0025 图 1 是现有加密运算的结构示意图 ; 0026 图 2 是现有加密 S 盒运算的结构示意图 ; 0027 图 3 是现有解密运算的结构示意图 ; 0028 图 4 是现有解密 S 盒运算的结构示意图 ; 0029 图 5 是本发明一种通过合并 S 盒和列混合的 AES 加解密装置的结构示意图 ; 0030 图 6 是本发。

18、明中求逆及列混合复用单元的结构示意图。 具体实施方式 0031 为了使本发明的目的、 技术方案及优点更加清楚明白, 以下结合附图及实施例, 对 本发明进行进一步详细说明。 应当理解, 此处所描述的具体实施例仅仅用以解释本发明, 并 不用于限定本发明。 0032 图 5 和示出了本发明一种通过合并 S 盒和列混合的 AES 加解密装置 100, 装置 100 包括 : 求逆及列混合复用单元 10、 第一轮密钥加模块 105、 第二轮密钥加模块 106、 解密仿射 变换模块107、 第一选择器108、 第二选择器109、 寄存器110、 第三轮密钥加模块111、 第四轮 密钥加模块 112 以及轮。

19、密钥列混合模块 113。 0033 求逆及列混合复用单元 10 包括一个输入端口以及四个输出端口 C0、 C1、 C2、 C3, 求逆及列混合复用单元 10 的输入端口与寄存器 110 连接, 输出端口 C0 与第三轮密钥加模 块 111 连接, 输出端口 C1 与第一轮密钥加模块 105 连接, 输出端口 C2 与第二轮密钥加模块 106 连接, 输出端口 C3 与第四轮密钥加模块 112 连接。 0034 求逆及列混合复用单元 10 的具体结构如图 6 所示, 其包括求逆元模块 101、 加密 仿射变换模块 102、 加密列混合模块 103 以及解密列混合模块 104, 求逆元模块 101。

20、 的输出 端与加密仿射变换模块 102 以及解密列混合模块 104 分别连接, 加密列混合模块 103 与加 密仿射变换模块 102 连接, 且求逆元模块 101 的输入端与寄存器 110 连接。求逆及列混合 复用单元 10 包括四个输出端口 C0、 C1、 C2 以及 C3, 其中, 加密仿射变换模块 102 的输出端 为端口 C0 ; 加密列混合模块 103 的输出端为端口 C1 ; 解密列混合模块 104 的输出端为端口 C2 ; 求逆元模块101的输出端为端口C3。 列混合运算是把输入矩阵和一个固定的矩阵相乘, 求逆元模块以及加密仿射变换也具有相应的乘法运算, 同时输入输出均为 44 。

21、矩阵。从 而由于求逆及列混合复用单元 10 中的各个模块具有共同的有限域乘法器和其他的逻辑单 元, 因此可以将这些模块放在一起进行复用, 以降低硬件资源消耗。 0035 第一轮密钥加模块 105 与求逆及列混合复用单元 10 的加密列混合模块 103 连接 以及第一选择器 108 的第一输入端连接, 即第一轮密钥加模块 105 与求逆及列混合复用单 元 10 的输出端口 C1 连接, 与第一轮密钥加模块 105 用于执行加密的轮密钥加运算操作。 0036 第二轮密钥加模块 106 与求逆及列混合复用单元 10 的解密列混合模块 104 连接, 即第二轮密钥加模块 106 求逆及列混合复用单元 。

22、10 的输出端口 C2 连接, 第二轮密钥加模 说 明 书 CN 102857334 A 5 4/6 页 6 块 106 用于执行解密的轮密钥加操作。 0037 解密仿射变换模块 107 与第二轮密钥加模块 106 以及第一选择器 108 的第二输入 端连接。 0038 第二选择器 109 与第一选择器 108 的输出端以及寄存器 110 连接。 0039 在本发明中, 求逆元模块 101 以及加密仿射变换模块 102 组成加密的 S 盒运算, 解 密仿射变换模块 107 与求逆元模块 101 组成解密的 S 盒运算, 本发明将 S 盒运算的逆元运 算以及列混合运算进行优化, 减少轮运算硬件资。

23、源开销, 同时缩短了加密解密模块的关键 路径, 使得 AES 模块能够工作在更高的频率, 提高了 AES 的速度, 降低芯片面积和功耗。 0040 待加密数据或待解密数据在 AES 加解密装置 100 中进行 Nr 轮运算, 每轮运算结果 缓存至寄存器 110, Nr 由密钥长度确定。表 1 是 Nr 和密钥长度关系的一种实施例。 0041 表 1 0042 密钥长度 ( 比特 ) 128 192 256 Nr 10 12 14 0043 其中, 待加密数据由第一选择器 108 的第一输入端输入, 待解密数据由解密仿射 变换模块 107 输入, 第一选择器 108 通过加解密控制信号 (Enc。

24、rypt) 控制选择将待加密数 据或经过解密仿射变换模块 107 处理的待解密数据输入至第二选择器 109, 当加解密控制 信号 (Encrypt) 为加密控制信号时, 第一选择器 108 将待加密数据输入至第二选择器 109, 当加解密控制信号 (Encrypt) 为解密控制信号时, 第一选择器 108 将经过解密仿射变换模 块 107 处理后的待解密数据输入至第二选择器 109。同时, 在后续的轮运算中, 第一选择器 108 通过加解密控制信号 (Encrypt) 控制选择将加密轮运算结果或解密轮运算结果输入至 第二选择器 109。在图 5 中, 为方便表述, 图中画出了两个第一选择器 1。

25、08 以及两个解密仿 射变换模块 107, 实际上是通过一个选择门以及一个解密仿射变换模块 107 实现。 0044 第二选择器 109 根据轮运算的轮次 (Initial-round) 控制选择将待加 / 解密输入 数据 (Initial-data) 或轮运算结果输入寄存器 110 ; 若为第一轮, 则将加 / 解密输入数据 加载至寄存器 110, 否则将轮运算结果缓存至寄存器 110。 0045 加密的轮运算依次包括 : 求逆元模块 101 进行的求逆元运算、 加密仿射变换模块 102 的加密仿射变换运算、 加密列混合模块 103 的加密列混合运算以及第一轮密钥加模块 105 的加密轮密钥。

26、加运算。 0046 解密的轮运算依次包括 : 求逆元模块 101 进行的求逆元运算、 解密列混合模块 104 进行的解密列混合运算、 第二轮密钥加模块 106 进行的解密轮密钥加运算以及解密仿射变 换模块的解密仿射变换运算。 0047 第三轮密钥加模块111与加密仿射变换模块12输出端连接, 即为求逆及列混合复 用单元 10 的输出端口 C0。在第 Nr 轮运算时, 所述第三轮密钥加模块 111 对加密仿射变换 模块 102 的输出进行轮密钥加操作, 并将操作结果作为加密结果 (Data-out-enc) 输出。 0048 第四轮密钥加模块112与求逆元模块11输出端连接, 即为求逆及列混合复。

27、用单元 10 的输出端口 C3。在第 Nr 轮运算时, 第四轮密钥加模块 112 对求逆元模块 101 的输出进 行轮密钥加操作, 并将操作结果作为解密结果 (Data-out-dec) 输出。 说 明 书 CN 102857334 A 6 5/6 页 7 0049 AES 加解密装置 100 还包括与第二轮密钥加模块 106 的输出端连接的轮密钥列混 合模块 113, 轮密钥列混合模块 113 将轮密钥进行列混合操作后输入至第二轮密钥加模块 106, 第二轮密钥加模块 106 将进过列混合的轮密钥与经过列混合的待解密数据进行密钥 加运算。 0050 优选的是, AES 加解密装置 100 还。

28、包括密钥扩展单元, 用于将初始密钥进行变换获 取轮密钥加运算操作在每一轮运算使用的密钥。轮密钥 (Round-key) 其由最初始的密钥变 换而来, 最初的密钥来自用户输入的初始密钥, 轮密钥用于轮密钥加运算操作。 不管初始的 密钥是 128 比特、 192 比特还是 256 比特, 轮密钥的长度都是 128 比特 0051 在本发明中, 寄存器 110 选择性的保存加密和解密轮运算的变量, 并合并加解密 S 盒运算的逆元运算和混轮运算。每轮运算的寄存器 110 输出作为下一轮运算的输入, 如果 是第一轮运算, 写入到寄存器 110 的不是轮运算的结果, 而是输入的数据经过一定运算的 结果, 。

29、所述的一定运算如图 5 所示的解密仿射变换, 如果是加密的轮运算, 则输入的数据不 需要进行解密仿射变换, 而是直接输入 ; 如果是解密的轮运算, 输入到寄存器的是输入数据 进行解密仿射变换的结果。 从寄存器输出的数据, 即上一轮运算的结果, 进入到新的一轮运 算。 在新的一轮运算中, 寄存器的输出直接输入到求逆及列混合复用单元10, 求逆及列混合 复用单元10实现S盒计算的逆元运算和列混合运算, 逆元的计算和列混合运算存在可优化 的逻辑, 合并后能够在很大程度上实现减少逻辑的使用, 并且把加密和解密的列混合运算 合并后, 解密的列混合运算逻辑单元可以使用加密列混合运算的逻辑单元。 0052 。

30、本发明通过把加密和解密运算放到一个模块内, 并把加密和解密轮运算的结果使 用相同的寄存器缓存, 降低了芯片面积降低了功耗。此外, 求逆元模块 101、 加密仿射变换 模块 102、 加密列混合模块 103 以及解密列混合模块 104 共同组成求逆及列混合复用单元 10, 从而通过合并轮运算中的 S 盒逆元计算和列混合运算, 有效的优化了轮运算的组合逻 辑, 并使得加密和解密的列混合运算能够复用, 减少硬件资源的开销同时缩短了关键路径, 减少了芯片面积, 提高了 AES 加解密装置 100 的运行速度。 0053 根据本发明的一个实施例, 在加密过程中, 待加密数据从第一选择器 108 输入, 。

31、加 / 解密控制信号 (Encrypt) 为加密控制信号, 第一选择器 108 根据加密控制信号将待加密 数据发送到第二选择器 109 ; 轮运算的轮数 (Initial-round) 为 1, 第二选择器 109 根据轮 运算的轮数 (Initial-round) 选择将待加密数据加载到寄存器 110 ; 求逆元模块 101 对寄 存器 110 发来的数据进行求逆元运算操作, 并将求逆元后的数据发送至加密仿射变换模块 102 ; 加密仿射变换模块 102 将逆元和一个固定矩阵进行相乘运算, 该固定矩阵与解密仿射 变换中的固定矩阵不同, 加密仿射变换模块 102 运算完成后将数据发送给加密列混。

32、合模块 103 ; 加密列混合模块103对数据进行列加密混列变换后输出到第一轮密钥加模块105与轮 密钥矩阵 (Round-key) 相加作为当前一轮的加密轮运算的结果 ; 第一选择器 108 根据加 / 解密控制信号 (Encrypt) 选择将加密轮运算的结果发送到第二选择器 109 ; 此时轮运算的 轮数(Initial-round)为2, 第二选择器109选择将第一选择器108发来的加密轮运算结果 缓存至寄存器 110 开始下一轮的轮运算, 依次类推, 直到完成 Nr 轮运算。在 Nr 轮运算时, 所述第三轮密钥加模块 111 对加密仿射变换模块 102 的输出进行轮密钥加操作, 并将操。

33、作 结果作为加密结果 (Data-out-enc) 输出。 0054 在上述实施例中, 每组加密数据的长度是128比特, 每组数据的加密有Nr轮运算, 说 明 书 CN 102857334 A 7 6/6 页 8 Nr 由密钥的长度决定。每一轮运算的输入和输出都是 128 比特数据, 每一轮运算的输入的 128 比特数据从高位到低位分为 16 个 8 比特的数据放入一个 44 的矩阵中 M, 然后进行求 逆元运算和加密仿射变换, 并得到一个新的 44 矩阵 M 。如果此时是最后一轮运算, 把 M 和轮密钥矩阵相加后, 作为加密后的 44 数据矩阵输出, 不管初始的密钥是 128 比特、 192。

34、 比特还是 256 比特, 轮密钥的长度都是 128 比特, 轮密钥和数据一样构成相同的 44 矩阵 和轮运算数据相加 ; 如果不是最后一轮运算, 加密仿射变换的输出 M 进行列混合的运算, 所谓的列混合运算是把 M 再和一个固定的矩阵相乘, 该固定矩阵对于 AES 加密算法是唯一 的。列混合运算完成后的输出和轮密钥矩阵相加作为当前一轮运算的输出, 也是下一轮运 算的输入。 0055 根据本发明的另一实施例, 在解密过程中, 待解密数据输入至解密仿射变换模 块 107 进行解密仿射变换 ; 加 / 解密控制信号 (Encrypt) 为解密控制信号, 第一选择器 108 根据解密控制信号将经过解。

35、密仿射变换模块 107 处理后的待解密数据发送到第二 选择器 109 ; 轮运算的轮数 (Initial-round) 为 1, 第二选择器 109 根据轮运算的轮数 (Initial-round)选择将待加密数据加载到寄存器110 ; 求逆元模块101对寄存器110发来 的数据进行求逆元运算操作, 并将求逆元后的数据发送至解密列混合模块 104 ; 解密列混 合模块 103 对数据进行解密混列变换后输出到第二轮密钥加模块 106, 第二轮密钥加模块 106 将解密混列变换后的数据与经过混列变换后的轮密钥矩阵 (Round-key) 相加, 并发送 解密仿射变换模块 107 进行解密仿射变换,。

36、 并将解密仿射变换后的数据作为当前一轮的解 密轮运算的结果 ; 第一选择器 108 根据加 / 解密控制信号 (Encrypt) 选择将解密轮运算的 结果发送到第二选择器 109 ; 此时轮运算的轮数 (Initial-round) 为 2, 第二选择器 109 选 择将第一选择器 108 发来的解密轮运算结果缓存至寄存器 110 开始下一轮的轮运算, 依次 类推, 直到完成 Nr 轮运算。在第 Nr 轮运算时, 第四轮密钥加模块 112 对求逆元模块 101 的 输出进行轮密钥加操作, 并将操作结果作为解密结果 (Data-out-dec) 输出。 0056 综上所述, 本发明通过把加密和解。

37、密运算放到一个模块内, 并把加密和解密轮运 算的结果使用相同的寄存器缓存, 降低了芯片面积降低了功耗。 此外, 求逆元模块101、 加密 仿射变换模块102、 加密列混合模块103以及解密列混合模块104共同组成求逆及列混合复 用单元 10, 从而通过合并轮运算中的 S 盒逆元计算和列混合运算, 有效的优化了轮运算的 组合逻辑, 并使得加密和解密的列混合运算能够复用, 减少硬件资源的开销同时缩短了关 键路径, 减少了芯片面积, 提高了 AES 加解密装置 100 的运行速度。 0057 当然, 本发明还可有其它多种实施例, 在不背离本发明精神及其实质的情况下, 熟 悉本领域的技术人员当可根据本发明作出各种相应的改变和变形, 但这些相应的改变和变 形都应属于本发明所附的权利要求的保护范围。 说 明 书 CN 102857334 A 8 1/2 页 9 图 1 图 2 图 3 图 4 说 明 书 附 图 CN 102857334 A 9 2/2 页 10 图 5 图 6 说 明 书 附 图 CN 102857334 A 10 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1