采用流水线实现AES算法处理的方法技术

技术编号:14783194 阅读:247 留言:0更新日期:2017-03-10 04:02
本发明专利技术公开了一种采用流水线实现AES算法处理的方法,其硬件处理架构包括加密处理部件、解密处理部件和密钥扩展部件,其中:加密处理部件与解密处理部件共用密钥扩展部件;在所述解密处理部件中的首个解密轮次操作前增加一延迟逻辑;所述密钥扩展部件中密钥扩展流水线生成Nr+1个加密轮密钥供加密操作使用,并在各级密钥扩展流水线增加一延迟逻辑生成Nr+1个解密轮密钥供解密操作使用,Nr为生成轮密钥所需的变换轮数。采用本发明专利技术,可实现加密和解密的交替操作,实现过程中不需要使用存储器,简化了控制逻辑,且可以根据芯片后端设计的需要对延迟逻辑的流水线级数灵活进行裁减。

【技术实现步骤摘要】

本专利技术涉及芯片的信息安全处理技术,具体涉及一种采用流水线实现AES算法处理的方法
技术介绍
AES算法是一种对称分组密码算法,广泛用于信息安全处理领域。现有技术中实现AES算法的硬件结构一般如图1所示,其中密钥扩展部件、加密处理部件和解密处理部件都采用流水线设计,以保证每个时钟周期都能处理数据。密钥输入密钥扩展部件,明文输入加密处理部件,密文输入解密处理部件。加密处理部件内部流水线架构如图2所示,每级流水线由加密操作逻辑和触发器组成,各轮操作的轮状态存储在触发器中,供下一轮使用。密钥扩展部件和解密处理部件内部流水线架构与加密处理部件类似。图4为AES算法流程图,由图4可知,解密操作第一次轮密钥加所使用的轮密钥正好是加密操作所用轮密钥的最后4个字,而最后一次轮密钥加所使用的轮密钥正好是加密操作所用轮密钥的最初4个字。因此,对于解密操作,需要提前生成轮密钥的所有的字,存储在密钥存储部件中。然后再输入密文,同时再按与存储过程相反的顺序依次读出轮密钥送到解密处理部件供解密使用。现有技术中为了避免下一个分组的轮密钥覆盖当前分组的密钥,存储器的写地址和读地址需要错开,这样就增加了读写控制的复杂度。由于需要提前生成解密所需轮密钥,执行解密之前,密文和密钥不能同一时间输入进行处理。因此,不能支持加、解密操作的交替操作。另外,由于使用了存储器,在芯片实现的时候需要插入BIST逻辑,造成了额外的面积开销。
技术实现思路
针对现有技术的不足,本专利技术的主要目的在于:提出一种采用流水线实现AES算法处理的方法,能同时满足加密和解密的交替操作,且避免使用存储器,简化了控制逻辑,又减小了芯片面积。为实现前述目的,本专利技术公开了一种采用流水线实现AES算法处理的方法,其硬件处理架构包括加密处理部件、解密处理部件和密钥扩展部件,各部件均采用流水线设计,每级流水线由相应操作逻辑和触发器组成,具体地:加密处理部件与解密处理部件共用密钥扩展部件;在所述解密处理部件中的首个解密轮次操作前增加一延迟逻辑;所述密钥扩展部件中密钥扩展流水线生成Nr+1个加密轮密钥供加密操作使用,并在各级密钥扩展流水线增加一延迟逻辑生成Nr+1个解密轮密钥供解密操作使用,Nr为生成轮密钥所需的变换轮数;其中,生成解密所需的第一个轮密钥不需要增加延迟逻辑,直接由密钥扩展流水线末端获取。优选地,所述延迟逻辑包含多级流水线。优选地,所述解密处理部件的延迟逻辑包含Nr级流水线。优选地,所述密钥扩展各级流水线中的延迟逻辑中包含相应级数的触发器,用于存储相应解密轮次所需的轮密钥。优选地,所述相应级数为2*(Nr-N)-1,N为当前密钥扩展轮次,且0≤N≤Nr-1。优选地,所述密钥与输入明文分组或者密文分组相对应时,所述明文分组与所述密文分组可交替输入,所述加密处理部件和所述解密处理部件分别输出密文分组和明文分组。优选地,所述延迟逻辑的流水线级数可以根据需要作相应裁减。与现有技术相比,本专利技术的优点在于:本专利技术公开的一种采用流水线实现AES算法处理的方法,采用流水线延迟轮密钥满足加密和解密的交替操作,实现过程中不需要使用存储器,简化了控制逻辑,且可以根据芯片后端设计的需要对延迟逻辑的流水线级数灵活进行裁减。附图说明图1是现有技术中实现AES算法处理的硬件处理架构图;图2是现有技术中实现AES算法处理的硬件处理架构中加密处理部件内部流水线架构图;图3是轮数与密钥关系图;图4是AES算法的处理流程图;图5是轮状态示意图;图6是字节替换表;图7是行移位示意图;图8是列混淆操作原理图;图9是反向行移位示意图;图10是反向字节替换表;图11是反向列混淆操作原理图;图12是本专利技术一实施例提出的一种采用流水线实现AES算法处理的硬件处理架构图;图13是本专利技术一实施例提出的硬件处理架构中解密处理部件架构图;图14是本专利技术一实施例提出的硬件处理架构中延迟逻辑架构图;图15是本专利技术一实施例提出的硬件处理架构中密钥扩展部件架构图。具体实施方式鉴于现有技术中的不足,本案专利技术人经长期研究和大量实践,得以提出本专利技术的技术方案。如下将对该技术方案、其实施过程及原理等作进一步的解释说明。为了更清楚地阐述本专利技术实施例所提出的技术方案,以下首先对AES算法的实现过程进行介绍及对后面实施例涉及的参数进行定义。AES算法是一种对称分组密码算法,该算法将信息视为二进制数“0”和“1”组成的序列,将信息以128位(16字节)进行分组,其密钥长度为128、192或256位。我们将分组所包含32位字的个数记为Nb,密钥所包含的字的个数记为Nk。对于AES算法,Nb=4,Nk=4,6或8。输入密钥经过多轮变换之后生成多个轮密钥。每个明文分组经过多轮变换之后变成密文,每个密文分组经过多轮反变换之后变成明文。变换的轮数Nr与密钥长度相关,其关系如图3所示。图4是AES算法的处理流程,如图所示,无论加密还是解密操作第1到Nr-1轮变换都包含4种操作。加密操作包含的变换依次为:字节替换,行移位,列混淆和轮密钥加。解密操作包含的变换依次为:反向行移位,反向字节替换、轮密钥加和反向列混淆。最后一轮变换(即第Nr轮变换)都只有3种操作,加密没有列混淆操作,解密没有反向列混淆操作。变换生成的中间结果称为轮状态,可以表示为如图5所示的4×4的字节阵列Si,j(0<i<4,0<j<4),轮状态也可以看成4个字的序列。加密操作输入的明文和解密操作输入的密文在进行变换之前,都需要进行轮密钥加操作。此外,每轮变换中轮状态都需要与轮密钥进行轮密钥加操作。总共需要的轮密钥为4*(Nr+1)个字。所需轮密钥由输入密钥经过密钥扩展变换生成,因为信息分组的长度是4个字,因此每次轮密钥加需要4个字的密钥,记为按字组成的数组w[0,4*n+3],n为当前轮次,即n=0,1,……,Nr-1,Nr。字节替换操作对加密的轮状态按字节进行替换,替换依据为如图6所示形式的字节替换表。行移位操作对轮状态按行进行字节移位,如图7所示,从上数第1行不作变换。第2行循环左移1个字节,第3行循环左移2个字节,第4行循环左移3个字节。列混淆操作对轮状态按列进行有限域GF(28)上的矩阵乘法,如图8所示,符号表示有限域上的加法,两个字节的加法等效为两个字节按位进行逻辑异或,符号“·”表示有限域上的乘法。一个字节可以表示为:{b7,b6,b5,b4,b3,b2,b1,b0本文档来自技高网...
采用流水线实现AES算法处理的方法

【技术保护点】
一种采用流水线实现AES算法处理的方法,其硬件处理架构包括加密处理部件、解密处理部件和密钥扩展部件,各部件均采用流水线设计,每级流水线由相应操作逻辑和触发器组成,其特征在于:加密处理部件与解密处理部件共用密钥扩展部件;在所述解密处理部件中的首个解密轮次操作前增加一延迟逻辑;所述密钥扩展部件中密钥扩展流水线生成Nr+1个加密轮密钥供加密操作使用,并在各级密钥扩展流水线增加一延迟逻辑生成Nr+1个解密轮密钥供解密操作使用,Nr为生成轮密钥所需的变换轮数;其中,生成解密所需的第一个轮密钥不需要增加延迟逻辑,直接由密钥扩展流水线末端获取。

【技术特征摘要】
1.一种采用流水线实现AES算法处理的方法,其硬件处理架构包括加密处理部件、解密处理部件和密钥扩展部件,各部件均采用流水线设计,每级流水线由相应操作逻辑和触发器组成,其特征在于:加密处理部件与解密处理部件共用密钥扩展部件;在所述解密处理部件中的首个解密轮次操作前增加一延迟逻辑;所述密钥扩展部件中密钥扩展流水线生成Nr+1个加密轮密钥供加密操作使用,并在各级密钥扩展流水线增加一延迟逻辑生成Nr+1个解密轮密钥供解密操作使用,Nr为生成轮密钥所需的变换轮数;其中,生成解密所需的第一个轮密钥不需要增加延迟逻辑,直接由密钥扩展流水线末端获取。2.根据权利要求1所述的采用流水线实现AES算法处理的方法,其特征在于:所述延迟逻辑包含多级流水线。3.根据权利要求2所述的采用流水线实现AES算法处理的方法,其特征在于:所...

【专利技术属性】
技术研发人员:龚源泉孙冠男耿磊
申请(专利权)人:盛科网络苏州有限公司
类型:发明
国别省市:江苏;32

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

1