AES加密/解密电路制造技术

技术编号:3543063 阅读:200 留言:0更新日期:2012-04-11 18:40
本发明专利技术通过减小在每个时钟周期时段用于每个子块变换的信号处理时间总和之间的差,使得比以前更小的硬件实现AES加密或解密所要求的周期次数。为此,加密/解密电路包括第一AddRoundKey变换模块、第二AddRoundKey变换模块、ShiftRows变换模块、SubBytes变换模块、MixColumns变换模块及数据保持单元,其中在加密周期,第一AddRoundKey变换模块和第二AddRoundKey变换模块使用不同的轮回密钥被执行。

【技术实现步骤摘要】

本专利技术涉及一种用来执行由FIPS(联邦信息处理标准)197定义的AES(高级加密标准)时理的AES加密/解密电路
技术介绍
随着光纤网络的最近改进,每个人都能容易地在互联网上使用高速通信。这也便于诸如高质量视频发行之类的海量数据通信。然而,有对网络的威胁,包括窃听、改变及欺骗。为了保护网络通信免受这些威胁,对于加密的需要已经增长。尽管加密对于可靠通信是基本的,但是不期望传输速率的任何降低。这种趋势在处理大量数据的视频发行领域特别明显。为了以高速可靠地传输大量数据,高速加密是必要的。海量加密通信一般使用对称块密码。最广泛使用的对称块密码是由FIPS(联邦信息处理标准)197定义的AES。为了对付高速加密通信,AES需要使用专用硬件加速器加速。图60A和60B表示AES加密和解密算法。在图60A和60B中的AddRoundKey、SubBytes、ShiftRows、MixColumns、InvSubBytes、InvShiftRows及InvMixColumns是相同名称的处理,这些处理在FIPS197中定义为子块变换。NR是按照密钥长度确定的轮回次数,在AES-128中是10、在AES-192中是12、或在AES-256中是14。如图60A和60B所示,AES算法在AddRoundKey之后重复由标准NR次数定义的轮回函数。轮回函数包括用于加密的四个处理-SubBytes、ShiftRows、MixColumns及AddRoundKey;和用于解密的四个处理-InvShiftRows、InvSubBytes、AddRoundKey及-->InvMixColumns。例外地,第NR次的轮回函数包括用于加密的三个处理-SubBytes、ShiftRows及AddRoundKey;和用于解密的三个处理-InvShiftRows、InvSubBytes及AddRoundKey。AddRoundKey变换要求从密码密钥产生的、并且具有每轮回变化的值的轮回密钥wkeyi(FIPS197描述的轮回密钥;i是轮回数)。为了把AES算法实施成硬件,所有AES信号处理都必须划分成可在供给到AES电路中的1个时钟周期时段内执行的处理。例如,在一般实施方法中,一个轮回函数在一个时钟周期内执行,两个轮回函数在一个时钟周期内执行,或一个轮回函数在两个时钟周期内执行。在常规方法中,AES-128的加密和解密当一个轮回函数在一个时钟周期内执行时要求11个时钟周期,当两个轮回函数在一个时钟周期内执行时要求6个时钟周期,及当一个轮回函数在两个时钟周期内执行时要求22个时钟周期。硬件实施的AES算法可实现预定水平的高速处理。然而,要求AES处理速度更高。
技术实现思路
本专利技术考虑上述情形而形成,并且提供一种通过减少加密和解密所要求的周期次数以更高速度执行AES处理的加密/解密电路。本专利技术在第一方面提供一种AES加密/解密电路,该AES加密/解密电路包括第一AddRoundKey变换模块;第二AddRoundKey变换模块;ShiftRows变换模块;SubBytes变换模块;MixColumns变换模块;及数据保持单元,其中在加密周期中,第一AddRoundKey变换模块和第二-->AddRoundKey变换模块使用不同的轮回密钥被执行。本专利技术在第二方面提供一种AES加密/解密电路,该AES加密/解密电路包括第一AddRoundKey变换模块;第二AddRoundKey变换模块;InvShiftRows变换模块;InvSubBytes变换模块;InvMixColumns变换模块;及数据保持单元,其中在解密周期中,第一AddRoundKey变换模块和第二AddRoundKey变换模块使用不同的轮回密钥被执行。本专利技术在第三方面提供一种AES加密/解密电路,该AES加密/解密电路包括第一AddRoundKey变换模块;第二AddRoundKey变换模块;第三AddRoundKey变换模块;第一ShiftRows变换模块;第二ShiftRows变换模块;第一SubBytes变换模块;第二SubBytes变换模块;第一MixColumns变换模块;第二MixColumns变换模块;及数据保持单元,其中在加密周期中,第一AddRoundKey变换模块、第二AddRoundKey变换模块及第三AddRoundKey变换模块使用不同的轮回密钥被执行。本专利技术在第四方面提供一种AES加密/解密电路,该AES加密/解密电路包括第一AddRoundKey变换模块;-->第二AddRoundKey变换模块;第三AddRoundKey变换模块;第一InvShiftRows变换模块;第二InvShiftRows变换模块;第一InvSubBytes变换模块;第二InvSubBytes变换模块;第一InvMixColumns变换模块;第二InvMixColumns变换模块;及数据保持单元,其中在解密周期中,第一AddRoundKey变换模块、第二AddRoundKey变换模块及第三AddRoundKey变换模块使用不同的轮回密钥被执行。在本专利技术中,在一些时钟周期中的信号处理增加,从而在每个时钟周期时段在用于每个子块变换的信号处理时间总和之间的差最小。这使得通过硬件对AES加密或解密所要求的周期数量比以前小。当实施本专利技术时,在每个时钟周期时段用于每个子块变换的信号处理时间总和的最大值等于现有技术的最大值。为此,周期数量的减少意味着处理速度的提高。本专利技术适用于加密和解密(包括等效的逆密码)。本专利技术适用于任何实施方法,如1Round/Cycle、2Round/Cycle、或0.5Round/Cycle。本专利技术适用于任何加密模式,如ECB模式或CBC模式。本专利技术适用于任何密钥长度。作为本专利技术的效果,在1Round/Cycle的实施例方法中,在AES-128中可把11个周期减小到10个周期,在AES-192中可把13个周期减小到12个周期,及在AES-256中可把15个周期减小到14个周期。在2Round/Cycle的实施例方法中,在AES-128中可把6个周期减小到5个周期,在AES-192中可把7个周期减小到6个周期,及在AES-256中可把8个周期减小到7个周期。-->参照附图的示范实施例的如下描述,本专利技术的其它特征将变得明白。附图说明图1是用来把现有技术在时钟周期中执行的加密过程内容与第一实施例的那些相比较的图;图2是用来把现有技术在每个时钟周期中用于每个子块变换的加密处理时间总和与第一实施例的总和相比较的图;图3是用来把现有技术在时钟周期中执行的解密过程内容与第一实施例的那些相比较的图;图4是用来把现有技术在每个时钟周期中用于每个子块变换的解密处理时间总和与第一实施例的总和相比较的图;图5是根据第一实施例的AES芯(Core)的方块图;图6是根据第一实施例的加密/解密单元的方块图;图7是根据第一实施例的用于加密的修改轮回函数模块的方块图;图8是根据第一实施例的用于解密的修改轮回函数模块的方块图;图9A和9B是根据第一实施例的加密时序图;图10A和10B是根据第一实施例的解密时序图;图11是表示根据第二实施例在时钟周期中执行的加本文档来自技高网
...

【技术保护点】
一种AES加密/解密电路,包括: 第一AddRoundKey变换模块; 第二AddRoundKey变换模块; ShiftRows变换模块; SubBytes变换模块; MixColumns变换模块;及 数 据保持单元, 其中在加密周期中,所述第一AddRoundKey变换模块和所述第二AddRoundKey变换模块使用不同的轮回密钥被执行。

【技术特征摘要】
JP 2007-10-10 2007-264967;JP 2008-9-11 2008-2330941.一种AES加密/解密电路,包括:第一AddRoundKey变换模块;第二AddRoundKey变换模块;ShiftRows变换模块;SubBytes变换模块;MixColumns变换模块;及数据保持单元,其中在加密周期中,所述第一AddRoundKey变换模块和所述第二AddRoundKey变换模块使用不同的轮回密钥被执行。2.根据权利要求1所述的电路,还包括:密钥扩展单元,它从密码密钥产生轮回密钥,并且把轮回密钥供给到所述AddRoundKey变换模块;和控制单元,它从加密开始计数时钟周期,并且产生控制信号以执行加密。3.根据权利要求1所述的电路,其中在加密的第一时钟周期,把通过对明文数据执行AddRoundKey变换、SubBytes变换、ShiftRows变换及MixColumns变换得到的结果输出到所述数据保持单元,从第二时钟周期至第(NR-1)时钟周期,其中NR是轮回数,把通过对来自所述数据保持单元的输出数据执行AddRoundKey变换、SubBytes变换、ShiftRows变换及MixColumns变换得到的结果输出到所述数据保持单元,及在第NR时钟周期,把通过对来自所述数据保持单元的输出数据执行第一AddRoundKey变换、SubBytes变换、ShiftRows变换及第二AddRoundKey变换得到的结果输出到所述数据保持单元。4.根据权利要求1所述的电路,其中在加密的第一时钟周期,把通过对明文数据执行第一AddRoundKey变换、SubBytes变换、ShiftRows变换、MixColumns变换及第二AddRoundKey变换得到的结果输出到所述数据保持单元,从第二时钟周期至第(NR-1)时钟周期,其中NR是轮回数,把通过对来自所述数据保持单元的输出数据执行SubBytes变换、ShiftRows变换、MixColumns变换及AddRoundKey变换得到的结果输出到所述数据保持单元,及在第NR时钟周期,把通过对来自所述数据保持单元的输出数据执行SubBytes变换、ShiftRows变换及AddRoundKey变换得到的结果输出到所述数据保持单元。5.根据权利要求1所述的电路,其中在加密的第一时钟周期,把通过对明文数据执行AddRoundKey变换、SubBytes变换及ShiftRows变换得到的结果输出到所述数据保持单元,从第二时钟周期至第(NR(轮回数)-1)时钟周期,把通过对来自所述数据保持单元的输出数据执行MixColumns变换、AddRoundKey变换、SubBytes变换及ShiftRows变换得到的结果输出到所述数据保持单元,及在第NR时钟周期,把通过对来自所述数据保持单元的输出数据执行MixColumns变换、第一AddRoundKey变换、SubBytes变换、ShiftRows变换及第二AddRoundKey变换得到的结果输出到所述数据保持单元。6.一种AES加密/解密电路,包括:第一AddRoundKey变换模块;第二AddRoundKey变换模块;InvShiftRows变换模块;InvSubBytes变换模块;InvMixColumns变换模块;及数据保持单元,其中在解密周期,所述第一AddRoundKey变换模块和所述第二AddRoundKey变换模块使用不同的轮回密钥被执行。7.根据权利要求6所述的电路,其中在解密的第一时钟周期,把通过对密文数据执行第一AddRoundKey变换、InvShiftRows变换、InvSubBytes变换及第二AddRoundKey变换得到的结果输出到所述数据保持单元,从第二时钟周期至第(NR-1)时钟周期,其中NR是轮回数,把通过对来自所述数据保持单元的输出数据执行InvMixColumns变换、InvShiftRows变换、InvSubBytes变换及AddRoundKey变换得到的结果输出到所述数据保持单元,及在第NR时钟周期,把通过对来自所述数据保持单元的输出数据执行InvMixColumns变换、InvShiftRows变换、InvSubBytes变换及AddRoundKey变换得到的结果输出到所述数据保持单元。8.根据权利要求6所述的电路,其中在解密的第一时钟周期,把通过对密文数据执行AddRoundKey变换、InvSubBytes变换...

【专利技术属性】
技术研发人员:堀田博久熊取谷昭彦
申请(专利权)人:佳能株式会社
类型:发明
国别省市:JP[日本]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1