一种AES加密系统及芯片的制作方法

文档序号:15357651发布日期:2018-09-05 00:11阅读:329来源:国知局

本发明涉及安全技术领域,尤其涉及一种aes加密系统及芯片。



背景技术:

aes(advancedencryptionstandard,即高级加密标准)是由nist(美国国家标准与技术研究院)于2001年发布的加密算法,已被广泛应用于加密协议、通信协议和通信终端中。nist确定的aes算法标准将分组长度固定为128位,仅支持128位、192位或256位的密钥长度。aes算法由加密、解密和密钥扩展三种基本运算构成,所有的运算都是基于完整的字节操作。aes加密运算和解密运算都采取迭代结构,不同密钥长度在加密或解密运算中迭代的轮数不同,128位、192位和256位的密钥长度分别对应10轮、12轮和14轮的迭代运算。如图1所示,aes算法除去最后一轮运算之外,其它每轮加密运算均包含字节代换、行移位、列混淆和轮密钥加操作,而解密运算分别为对应的逆操作。

现有的分组密码的操作模式是以分组密钥为基础的密码装置,主要分为反馈模式和非反馈模式,其中,反馈模式中每一组数据的加密都需要上一组数据的加密结果参与,各组数据的加密过程只能串行执行;非反馈模式中每组数据的加密是相互独立的,各组数据可并行加密。

现有的非反馈模式大多采用并行型电路来实现分组密码或解密操作。如图1所示,现有的并行型电路中各个加密执行电路是相互独立的,例如,当采用长度为128位的密钥时,需采用10个并行的加密执行电路以及1个加密执行电路才能完成加密运算。由于每个加密执行电路中所需密钥不同,因而现有并行型电路必须为每个加密执行电路配备密钥扩展模块以提供轮密钥,这就使得现有的并行型电路结构复杂、制作成本高。



技术实现要素:

针对上述问题,本发明的一种aes加密系统及芯片,能够简化并行型系统结构,减小系统面积,降低制备成本。

为解决上述技术问题,一种aes加密系统,包括:

n个并行aes加密装置,用于执行状态矩阵的加密运算以得到加密数据;其中,

每个aes加密装置用于执行加密迭代运算,所述n由密钥长度确定;所述n个并行aes加密装置中相邻的m个aes加密装置设置有1个密钥扩展装置,以使所述相邻的m个aes加密装置共享密钥;以及所述n个并行aes加密装置中除去所述相邻的m个aes加密装置剩余的aes加密装置设置有1个所述密钥扩展装置,以使所述剩余的aes加密装置共享密钥;所述k由密钥长度确定。

与现有技术相比,由于本发明的aes加密系统中多个并行aes加密装置中相邻的若干个可共享同一个密钥扩展装置,有效减少密钥扩展装置的数量,简化系统结构,进而减小加密系统的面积,降低制备成本。

作为上述方案的改进,当密钥长度为128位时,则n=11、m=2;所述密钥扩展装置包括:

第一选择器,具有第一输入端、第二输入端和输出端,所述第一输入端用于输入初始密钥的不同列数据;

移位寄存模块,具有顺次连接的4个寄存器,所述4个寄存器中的第一寄存器的输入端与所述第一选择器的输出端连接;

t处理模块,输入端与所述4个寄存器中第一寄存器的输出端连接,用于对wi-1执行:在i=4n时进行字循环移位、字节代换和轮常量异或处理,得到t(wi-1),wi-1为第i-1列轮密钥,i为运算周期数且i≥4,n为整数;

第二选择器,输入端与所述4个寄存器中第一寄存器的输出端连接,使得所述4个寄存器中的第一寄存器在i≠4n时将存储的wi-1输出至所述第二选择器;

第一异或逻辑门,输入端分别与所述第二选择器的输出端以及所述4个寄存器中第四寄存器连接,输出端分别与相邻的两个aes加密装置中的第一加密装置以及所述4个寄存器中第一选择器的第二输入端连接;

所述4个寄存器中第四寄存器的输出端与所述相邻的两个aes加密装置中的第二加密装置连接。

作为上述方案的改进,当密钥长度为192位时,则n=13、m=3;所述密钥扩展装置包括:

第一选择器,具有第一输入端、第二输入端和输出端,所述第一输入端用于输入初始密钥的不同列数据;

移位寄存模块,具有顺次连接的8个寄存器,所述8个寄存器中的第一寄存器的输入端与所述第一选择器的输出端连接;

t处理模块,输入端与所述8个寄存器中的第一寄存器的输出端连接,用于对wi-1执行:在i=6n时进行字循环移位、字节代换和轮常量异或处理,得到t(wi-1),wi-1为第i-1列轮密钥,i为运算周期数且i≥6,n为整数;

第二选择器,输入端与所述8个寄存器中第一寄存器的输出端连接,使得所述8个寄存器中第一寄存器在i≠6n时将存储的wi-1输出至所述第二选择器;

第一异或逻辑门,输入端分别与所述第二选择器的输出端以及所述8个寄存器中第六寄存器的输出端连接,所述第一异或逻辑门的输出端分别与相邻的3个aes加密装置中的第一加密装置以及所述第一选择器的第二输入端连接;

所述8个寄存器中的第四寄存器的输出端与所述相邻的3个aes加密装置中的第二加密装置连接;

所述8个寄存器中的第八寄存器的输出端与所述相邻的3个aes加密装置中的第三加密装置连接。

作为上述方案的改进,当密钥长度为256位时,则n=15、m=3;所述密钥扩展装置包括:

第一选择器,具有第一输入端、第二输入端和输出端,所述第一选择器的第一输入端用于输入初始密钥的不同列数据;

移位寄存模块,具有顺次连接的8个寄存器,所述8个寄存器中的第一寄存器的输入端与所述第一选择器的输出端连接;

t处理模块,输入端与所述8个寄存器中的第一寄存器的输出端连接,用于对wi-1执行:在i=8n时进行字循环移位、字节代换和轮常量异或处理,得到t(wi-1),wi-1为第i-1列轮密钥,i为运算周期数且i≥8,n为整数;

s处理模块26,输入端与所述8个寄存器中的第一寄存器的输出端连接,用于对wi-1执行:在i=8n+4时进行s盒字节代换处理,得到s(wi-1);

第二选择器,输入端与所述8个寄存器中第一寄存器的输出端连接,使得所述8个寄存器中第一寄存器在i≠8n且i≠8n+4时将存储的wi-1输出至所述第二选择器;

第一异或逻辑门,输入端分别与所述第二选择器的输出端以及所述8个寄存器中的第八寄存器连接,输出端分别与相邻的3个aes加密装置中的第一加密装置以及所述8个寄存器中第一选择器的第二输入端连接;

所述8个寄存器中的第四寄存器的输出端与所述相邻的3个aes加密装置中的第二加密装置连接;

所述8个寄存器中的第八寄存器的输出端与所述相邻的3个aes加密装置中的第三加密装置连接。

作为上述方案的改进,每个所述aes加密装置包括:

移位阵列模块,用于将输入的状态矩阵中不同行的待加密数据按照不同偏移量进行循环位移,并依次输出第一列矩阵;所述第一列矩阵用于指示状态矩阵移位后的列数据;

字节代换模块,与所述移位阵列模块连接,用于在每次输入所述第一列矩阵时,对所述第一列矩阵中的每个字节执行字节代换处理,得到第二列矩阵;

列混淆模块,与所述字节代换模块连接,用于在每次输入所述第二列矩阵时,将所述第二列矩阵进行列混淆处理,得到第三列矩阵;

第二异或逻辑门,具有第一输入端和第二输入端端,所述第二异或逻辑门的第一输入端与所述列混淆模块的输出端连接,所述第二异或逻辑门的第二输入端与所述密钥扩展装置中对应的输出端连接。

作为上述方案的改进,每个所述aes加密装置包括:

暂存模块,具有顺次连接的第一暂存寄存器、第二暂存寄存器和第三暂存寄存器;所述第一暂存寄存器的输入端与所述第二异或逻辑门的第一输出端连接,以暂存3个处理后的所述第三列矩阵;所述第一暂存寄存器的输出端、所述第二暂存寄存器的输出端、所述第三暂存寄存器的输出端以及所述第二异或逻辑门的第二输出端共同连接至所述第一选择器的第三输入端,以向所述移位阵列模块提供中间状态矩阵;

所述暂存模块在完成1轮加密迭代运算时,经所述第一暂存寄存器输出加密数据。

本发明还提供一种aes加密芯片,集成有上述任一种aes加密系统。

附图说明

图1是现有技术中aes128的加密过程示意图。

图2是现有技术中并行型电路的结构示意图。

图3是本发明实施例1的aes加密系统的结构示意图。

图4是本发明实施例1中密钥扩展装置的结构示意图。

图5是本发明实施例2中密钥扩展装置的结构示意图。

图6是本发明实施例3中密钥扩展装置的结构示意图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于此描述的其他方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。

下面结合具体实施例和附图对本发明的技术方案进行清楚、完整的描述。

实施例1

如图3所示,是本发明一实施例的aes加密系统。

该aes加密系统包括:n个并行aes加密装置1,用于执行状态矩阵的加密运算以得到加密数据;其中,每个aes加密装置1用于执行加密迭代运算,n由密钥长度确定;n个并行aes加密装置1中相邻的m个aes加密装置1设置有1个密钥扩展装置22,以使相邻的m个aes加密装置1共享密钥;以及n个并行aes加密装置1中除去相邻的m个aes加密装置1剩余的aes加密装置1设置有1个密钥扩展装置22,以使剩余的aes加密装置1共享密钥,m由密钥长度确定。在该实施例中,初始轮密文通过第一复用器3输入到各个aes加密装置1中,各个aes加密装置1并行执行加密运算,并经第二复用器4输出密文。

其中,如图3~6所示,每个aes加密装置1包括:移位阵列模块11,用于将输入的状态矩阵中不同行的待加密数据按照不同偏移量进行循环位移,并依次输出第一列矩阵;所述第一列矩阵用于指示状态矩阵移位后的列数据;字节代换模块12,与移位阵列模块11连接,用于在每次输入第一列矩阵时,对第一列矩阵中的每个字节执行字节代换处理,得到第二列矩阵;列混淆模块13,与字节代换模块12连接,用于在每次输入第二列矩阵时,将第二列矩阵进行列混淆处理,得到第三列矩阵;第二异或逻辑门14,具有第一输入端和第二输入端端,第二异或逻辑门14的第一输入端与列混淆模块13的输出端连接,第二异或逻辑门14的第二输入端与密钥扩展装置2中对应的输出端连接。

其中,每个aes加密装置还包括:暂存模块15,具有顺次连接的第一暂存寄存器、第二暂存寄存器和第三暂存寄存器;第一暂存寄存器的输入端与第二异或逻辑门14的第一输出端连接,以暂存3个处理后的第三列矩阵;第一暂存寄存器的输出端、第二暂存寄存器的输出端、第三暂存寄存器的输出端以及第二异或逻辑门14的第二输出端共同连接至第一选择器21的第三输入端,以向移位阵列模块11提供中间状态矩阵;暂存模块15在完成1轮加密迭代运算时,经第一暂存寄存器输出加密数据。

在本发明中,当密钥长度为128位时,则n=11、m=2;如图4所示,密钥扩展装置2包括:第一选择器21,具有第一输入端、第二输入端和输出端,第一输入端用于输入初始密钥的不同列数据;移位寄存模块22,具有顺次连接的第一寄存器221、第二寄存器222、第三寄存器223和第四寄存器224,第一寄存器221的输入端与第一选择器21的输出端连接;t处理模块23,输入端与第一寄存器221的输出端连接,用于对wi-1执行:在i=4n时进行字循环移位、字节代换和轮常量异或处理,得到t(wi-1),wi-1为第i-1列轮密钥,i为运算周期且i≥4,n为整数;第二选择器24,输入端与第一寄存器221的输出端连接,使得第一寄存器221在i≠4n时将存储的wi-1输出至第二选择器24;第一异或逻辑门25,输入端分别与第二选择器24的输出端以及第四寄存器224连接,输出端分别与相邻的两个aes加密装置中的第一aes加密装100置以及第一选择器21的第二输入端连接;第四寄存器224的输出端与相邻的两个aes加密装置中的第二aes加密装置200连接。

接下来,以密钥长度为128位为例,对该aes加密系统的工作过程进行介绍。如图3~4所示,当密钥长度为128位时,该aes加密系统需设置6个密钥扩展装置2,其中,第一aes加密装100置和第二aes加密装置200共享第一密钥扩展装置,第三aes加密装置和第四aes加密装置共享第二密钥扩展装置2,以此类推,第九aes加密装置和第十aes加密装置共享第五密钥扩展装置,第十一加密装置与第六密钥扩展装置连接,图4中仅示意出第一aes加密装100置和第二aes加密装置200与第一密钥扩展装置连接关系,第三aes加密装置至第十一aes加密装置与其类似,因而图4中未示意出。

在采用该aes加密系统对明文分组进行加密时,明文分组先与初始轮密钥进行异或运算,得到初始轮密文;初始轮密文通过第一复用器3后向密钥扩展装置2输入,密钥扩展装置2执行如下运算:

第1周期:状态矩阵的第1个32位数据(即,第1个第一列矩阵)进入第一aes加密装100置的移位阵列模块11,w0进入第一密钥扩展装置中移位寄存模块22的第一寄存器221;

第2周期:状态矩阵的第2个32位数据(即,第2个第一列矩阵)进入第一aes加密装100置的移位阵列模块11,w0移位至第一密钥扩展装置中移位寄存模块22的第二寄存器222中,w1进入第一密钥扩展装置中移位寄存模块22的第一寄存器221;

第3周期:状态矩阵的第3个32位数据(即,第3个第一列矩阵)进入第一aes加密装100置的移位阵列模块11,w0移位至第一密钥扩展装置中移位寄存模块22的第三寄存器223中,w1移位至第一密钥扩展装置中移位寄存模块22的第二寄存器222中,w2进入第一密钥扩展装置中移位寄存模块22的第一寄存器221;

第4周期:状态矩阵的第4个32位数据(即,第4个第一列矩阵)进入第一aes加密装100置的移位阵列模块11,w0移位至第一密钥扩展装置中移位寄存模块22的第四寄存器224中,w1移位至第一密钥扩展装置中移位寄存模块22的第三寄存器223中,w2移位至第一密钥扩展装置中移位寄存模块22的第二寄存器222中,w3进入第一密钥扩展装置中移位寄存模块22的第一寄存器221;

第5周期:第5个32位数据进入第二aes加密装置200的移位阵列模块11;同时,第一aes加密装100置取出第1个32位数据、第一密钥扩展装置2通过第一异或逻辑门25输出第4列扩展密钥w4,其中,w4=w1^w3,第一aes加密装100置采用w4对第1个32位数据进行第1轮的第1次轮密钥加运算,第一密钥扩展装置中移位寄存模块22的数据向右移一个字,w4进入第一密钥扩展装置中移位寄存模块22的第一寄存器221;

第6周期:第6个32位数据进入第二aes加密装置200的移位阵列模块11;同时,第一aes加密装100置取出第2个32位数据、第一密钥扩展装置通过第一异或逻辑门25输出第5列扩展密钥w5,其中,w5=w2^w4,第一aes加密装100置采用w5对第2个32位数据进行第1轮的第2次轮密钥加运算,第一密钥扩展装置中移位寄存模块22的数据向右移一个字,w5进入第一密钥扩展装置中移位寄存模块22的第一寄存器221;

第7周期:第7个32位数据输入至第二aes加密装置200的移位阵列模块11;同时,第一aes加密装100置取出第3个32位数据、第一密钥扩展装置通过第一异或逻辑门25输出第6列扩展密钥w6,其中,w6=w3^w5,第一aes加密装100置采用w6对第3个32位数据进行第1轮的第3次轮密钥加运算,第一密钥扩展装置中移位寄存模块22的数据向右移一个字,w6进入第一密钥扩展装置中移位寄存模块22的第一寄存器221;

第8周期:第8个32位数据输入至第二aes加密装置200的移位阵列模块11;同时,第一aes加密装100置取出第4个32位数据、第一密钥扩展装置通过第一异或逻辑门25输出第7列扩展密钥w7,其中,w7=w4^w6,第一aes加密装100置采用w7对第4个32位数据进行第1轮的第4次轮密钥加运算,第一密钥扩展装置中移位寄存模块22的数据向右移一个字,w7进入第一密钥扩展装置中移位寄存模块22的第一寄存器221;

第9周期:第9个32位数据输入至第三aes加密装置的移位阵列模块11,w0进入第二密钥扩展装置2中移位寄存模块22的第一寄存器221中;同时,第一aes加密装100置取出1个32位数据、第一密钥扩展装置通过第一异或逻辑门25输出第8列扩展密钥w8,其中,w8=w4^t(w1),第一aes加密装100置采用w8对该32位数据进行第2轮的第1次轮密钥加运算,第一密钥扩展装置中移位寄存模块22的数据向右移一个字,w8进入第一密钥扩展装置中移位寄存模块22的第一寄存器221;同时,第二aes加密装置200取出第1个32位数据、第一密钥扩展装置通过第四寄存器224输出第4列轮密钥w4,使得第二aes加密装置200采用w4对第1个32位数据进行第1轮的第1次轮密钥加运算;

以此类推,直至第45个周期;

第45个周期:第45个32位数据进入第十一aes加密装置,w3进入第六密钥扩展装置中移位寄存模块22的第一寄存器221;同时,第一aes加密装100置中取出1个32位数据进行第10轮的第4次轮密钥加运算,第一密钥扩展装置进行密钥扩展,产生第43列轮密钥w43,用于第一aes加密装100置的轮密钥加运算,第一密钥扩展装置中移位寄存模块22的数据向右移一个字,w43进入第一密钥扩展装置中移位寄存模块22的第一寄存器221,此时,第一密钥扩展装置不再输入密钥;同时,第二aes加密装置200取出32位数据进行第9轮的第4次轮密钥加运算,第一密钥扩展装置中移位寄存模块22的第四寄存器224输出w39,用于第二aes加密装置200的轮密钥加运算;以此类推,同时,第十aes加密装置取出32位数据进行第1轮的第4次轮密钥加运算,第五密钥扩展装置输出第7列轮密钥w7,用于第十aes加密装置的轮密钥加运算;此时,全部11个aes加密装置均进入运算状态,其中,第十一aes加密装置准备开始其第1轮的第1次轮密钥加运算,第一aes加密装100置准备结束第一组数据的加密。

与现有技术相比,由于本发明的aes加密系统中多个并行aes加密装置中相邻的若干个可共享同一个密钥扩展装置,有效减少密钥扩展装置的数量,简化系统结构,进而减小加密系统的面积,降低制备成本。

实施例2

如图5所示,是本发明实施例2的一种aes加密系统中密钥扩展装置的结构示意图。

在本发明中,当密钥长度为192位时,则n=13、m=3;密钥扩展装置2包括:第一选择器21,具有第一输入端、第二输入端和输出端,第一输入端用于输入初始密钥的不同列数据;移位寄存模块22,具有顺次连接的第一寄存器221、第二寄存器222、第三寄存器223、第四寄存器224、第五寄存器225、第六寄存器226、第七寄存器227和第八寄存器228,第一寄存器221的输入端与所述第一选择器21的输出端连接;t处理模块23,输入端与第一寄存器221的输出端连接,用于对wi-1执行:在i=6n时进行字循环移位、字节代换和轮常量异或处理,得到t(wi-1),wi-1为第i-1列轮密钥,i为运算周期数且i≥6,n为整数;第二选择器24,输入端与第一寄存器221的输出端连接,使得第一寄存器221在i≠6n时将存储的wi-1输出至第二选择器24;第一异或逻辑门25,输入端分别与第二选择器24的输出端以及第六寄存器226的输出端连接,第一异或逻辑门25的输出端分别与相邻的3个aes加密装置中的第一aes加密装置100以及第一选择器21的第二输入端连接;第四寄存器224的输出端与相邻的3个aes加密装置中的第二aes加密装置200连接;第八寄存器228的输出端与相邻的3个aes加密装置中的第三aes加密装置连接。

在本实施例中,密钥扩展装置从现有技术中的12个减少至5个,能够有效减小并行aes加密装置的面积,节约制备成本。

实施例3

如图6所示,是本发明实施例2的一种aes加密系统中密钥扩展装置的结构示意图。

在本发明中,当密钥长度为256位时,则n=15、m=3;密钥扩展装置2包括:第一选择器21,具有第一输入端、第二输入端和输出端,第一选择器21的第一输入端用于输入初始密钥的不同列数据;移位寄存模块22,具有顺次连接的第一寄存器221、第二寄存器222、第三寄存器223、第四寄存器224、第五寄存器225、第六寄存器226、第七寄存器227和第八寄存器228,第一寄存器221的输入端与第一选择器21的输出端连接;t处理模块23,输入端与第一寄存器221的输出端连接,用于对wi-1执行:在i=8n时进行字循环移位、字节代换和轮常量异或处理,得到t(wi-1),wi-1为第i-1列轮密钥,i为运算周期数且i≥8,n为整数;s处理模块26,输入端与第一寄存器221的输出端连接,用于对wi-1执行:在i=8n+4时进行s盒字节代换处理,得到s(wi-1);第二选择器24,输入端与第一寄存器221的输出端连接,使得第一寄存器221在i≠8n且i≠8n+4时将存储的wi-1输出至第二选择器24;第一异或逻辑门25,输入端分别与第二选择器24的输出端以及8个寄存器中的第八寄存器228连接,输出端分别与相邻的3个aes加密装置中的第一aes加密装置100以及第一选择器21的第二输入端连接;第四寄存器224的输出端与相邻的3个aes加密装置中的第二aes加密装置200连接;第八寄存器228的输出端与相邻的3个aes加密装置中的第三aes加密装置连接。

在本实施例中,密钥扩展装置从现有技术中的14个减少至5个,能够有效减小并行aes加密装置的面积,节约制备成本。

本发明还提供一种aes加密芯片,集成有上述任意一个aes加密系统。

以上所述,仅是本发明的较佳实施例而已,并非对本发明做任何形式上的限制,故凡未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

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