SM4/AES双模加密电路制造技术

技术编号:25192712 阅读:17 留言:0更新日期:2020-08-07 21:19
本申请涉及SM4/AES双模加密电路,包括第一组多个选择器、多个查表单元、第二组多个选择器、第三组多个选择器、多个异或单元与多个合并移位单元;第一组多个选择器的每个的输出耦合到多个查表单元之一的输入;多个查表单元的每个的输出耦合到第二组多个选择器之一的第一输入;多个合并移位单元的每个的输出耦合到第二组多个选择器的子组之一的选择器的第二输入,其中第二组多个选择器包括多个子组,每个子组包括相同数量的选择器;多个合并移位单元的每个的输出还耦合第三组多个选择器之一的第二输入;第二组多个选择器的每个子组的每个选择器的输出,耦合到多个异或单元之一的输入。

【技术实现步骤摘要】
SM4/AES双模加密电路
本申请涉及信息安全领域,具体涉及支持SM4与AES两种加密标准的加密电路。
技术介绍
SM4是国家密码管理局提供的标准密码算法。SM4标准使用的分组长度为128位,密钥长度也为128位。加密算法与密钥扩展算法均采用32轮非线性迭代结构,以字(32位)为单位进行加密运算,每一次迭代运算均为一轮变换函数F。SM4标准加/解密算法的结构相同,只是使用轮密钥相反,其中解密轮密钥是加密轮密钥的逆序。以加密过程为例,对每个分组进行计算时,SM4标准的输入包括128比特的明文(记为X)。用X(i)代表32比特(4字节)数据,其来自明文X或者对明文X进行计算的结果。SM4标准的输入还包括加密密钥(记为MK),长度为128比特。加密密钥KM被分为4部分,分别记为MK0、MK1、MK2与MK3,每个部分的长度均为32比特。从加密密钥MK生成轮密钥(记为rk(i),其中i取从0到31的整数)。SM4标准对每个128比特的分组进行32轮加密,在第i轮加密过程中,使用轮密钥rk(i)。SM4标准还使用系统参数FK=(FK0,FK1,FK2,FK3),固定参数CK=(CK0,CK1,.....,CK31),其中FK0、FK1、FK2与FK3的长度均为32比特,CK0、CK1、.....、CK31的每个的长度也为32比特。图1A展示了根据SM4标准的加密装置的框图。SM4标准对每个分组的加密过程,包括32轮迭代。在每轮迭代中,产生轮密钥rk(i);以及使用该轮的轮密钥rk(i)对明文在该轮的计算结果加密。图1A的加密装置包括轮密钥生成装置(左侧)与密文生成装置(右侧)。轮密钥生成装置将加密密钥MK作为输入,并获取系统参数FK与固定参数CK,以及在32轮迭代的每轮中,产生轮密钥rk(i)提供给密文生成装置。轮密钥生成装置包括异或单元110、异或单元120、S盒变换单元130、线性变换单元140以及异或单元150。参看图1A,在对128比特的分组开始加密前,异或单元110将加密密钥MK与系统参数FK做异或运算,得到参数K。第i轮迭代中使用的参数K被记为(K(i),K(i+1),K(i+2),K(i+3))。异或单元110输出的参数K为在第0轮迭代中使用的参数K(0),K(1),K(2),K(3)),K0=MK0^FK0,K1=MK1^FK1,K2=MK2^FK2,K3=MK3^FK3。在每轮迭代中,异或单元120计算K(i+1)^K(i+2)^K(i+3)^CK(i),其中,“^”代表异或运算。S盒变换单元130对K(i+1)^K(i+2)^K(i+3)^CK(i)的结果进行S盒(Sbox)变换,线性变换单元140对S盒变换单元130的输出做线性变换(移位),以及异或单元150对线性变换单元140的输出同K(i)做异或运算,得到异或单元150输出的结果为参数K(i+4),作为该轮的轮密钥rk(i)(rk(i)=K(i+4))。其中加密密钥MK与系统参数FK做异或运算,每轮迭代中S盒变换单元130进行的S盒(Sbox)变换与线性变换单元140进行的线性变换,均为在SM4算法标准中定义的操作,为所属领域技术人员所知悉。在第i轮迭代中,生成的轮密钥rk(i)也即参数K(i+4),将在第i+1轮迭代中作为参数K被使用,在第i+1轮中使用的参数K被记为(K(i+2),K(i+3),K(i+4)),其中K(i+2)与K(i+3)为在第i轮迭代中已使用过的参数,以及在第i+1轮迭代中生成的参数K(i+1+4)(也记为K(5),其作为轮密钥rk(i+1)),并在第i+2轮迭代中作为参数K被使用。从而异或单元150输出的K(i+4)被提供给密文生成装置,也被提供给异或单元120。密文生成装置包括异或单元160、S盒变换单元170、线性变换单元180与异或单元190。密文生成装置获取待加密的128比特明文X与轮密钥生成装置提供的轮密钥rk(i)作为输入。明文X被分为4部分,分别记为X(0)、X(1)、X(2)与X(3),每部分的大小为32比特。在第i轮迭代中,异或单元160对X(i+1)、X(i+2)、X(i+3)与rk(i)做异或操作,结果被提供给S盒单元170。在第0轮中,异或单元160要处理的X(1)、X(2)与X(3)来自输入的明文X,而rk(0)来自轮密钥生成装置提供的K(4);在第i轮迭代(i>=1)中,异或单元160要处理的X(i+1)与X(i+2)在上一轮迭代中已经提供给异或单元160,而X(i+3)来自上一轮迭代中异或单元190的输出。从而异或单元190的输出耦合到异或单元160的输入。在第i轮迭代中,rk(i)来自轮密钥生成装置提供的K(i+4)。S盒变换单元170对X(i+1)^X(i+2)^X(i+3)^rk(i)的结果进行S盒(Sbox)变换,线性变换单元180对S盒变换单元170的输出做线性变换,以及异或单元190对线性变换单元180的输出同X(i)做异或运算,得到异或单元190输出的结果为X(i+4),并提供给异或单元160用于下一轮的迭代。每轮迭代中S盒变换单元170进行的S盒(Sbox)变换与线性变换单元180进行的线性变换,均为在SM4算法标准中定义的操作,为所属领域技术人员所知悉。在第31轮迭代完成后,异或单元190输出X(35),并连同之前轮迭代得到的X(32)、X(33)与X(34)构成对明文X加密得到的128比特密文Y。可以理解地,图1A中展示的加密装置的各单元,可由集成电路、运行了程序的处理器、可编程门阵列等实现。图1B展示了根据SM4标准实施加密的框图。在一轮(第i轮)迭代中,明文或者之前迭代得到的X(i+1)、X(i+2)与X(i+3),同该轮的轮密钥rki做异或操作,得到32比特的结果。32比特的结果包括4个字节(图1B中展示为b0、b1、b2与b3)。对每个字节(8比特)进行S盒变换,得到8比特输出。从而对32比特异或结果的4个字节,分别进行S盒变换后,共得到32比特的变换结果。对32比特变换结果,进行多种移位操作(循环左移),包括左移2位(由“<<<2”指示)、左移10位(由“<<<10”指示)、左移18位(由“<<<18”指示)与左移24位(由“<<<24”指示),连同未经移位操作的32比特变换结果本身与Xi,对总计6个32比特数进行异或,异或结果作为X(i+4)。至此一轮迭代完成。在一轮迭代中,生成32比特计算结果。该生成的32比特计算结果(例如,X(i+4)),与该轮迭代所使用过的96比特输入数据(例如,X(i+1)、X(i+2)与X(i+3))组成新的128比特数据,作为下一轮迭代的输入。依此类推,直到32轮迭代完成产生加密后的密文结果。在申请号为2019105779490的中国专利申请中提供了SM4加密电路及其实施SM4加密操作的方法。XTS-AES(带有调整和密文窃取的高级加密本文档来自技高网...

【技术保护点】
1.一种SM4/AES双模加密电路,包括:第一组多个选择器(330~33f)、多个查表单元(340~34f)、第二组多个选择器(370~37f)、第三组多个选择器(380、382、384与386)、多个异或单元(390、392、394与396)与多个合并移位单元(350、352、354与356);/n所述第一组多个选择器(330~33f)的每个的输出耦合到所述多个查表单元(340~34f)之一的输入;/n所述多个查表单元(340~34f)的每个的输出耦合到所述第二组多个选择器(370~37f)之一的第一输入;/n所述多个合并移位单元(350、352、354与356)的每个的输出耦合到所述第二组多个选择器(370~37f)的子组之一的选择器的第二输入,其中所述第二组多个选择器(370~37f)包括多个子组,每个子组包括相同数量的选择器;/n所述多个合并移位单元(350、352、354与356)的每个的输出还耦合所述第三组多个选择器(380、382、384与386)之一的第二输入;/n所述第二组多个选择器(370~37f)的每个子组的每个选择器的输出,耦合到所述多个异或单元(390、392、394与396)之一的输入。/n...

【技术特征摘要】
1.一种SM4/AES双模加密电路,包括:第一组多个选择器(330~33f)、多个查表单元(340~34f)、第二组多个选择器(370~37f)、第三组多个选择器(380、382、384与386)、多个异或单元(390、392、394与396)与多个合并移位单元(350、352、354与356);
所述第一组多个选择器(330~33f)的每个的输出耦合到所述多个查表单元(340~34f)之一的输入;
所述多个查表单元(340~34f)的每个的输出耦合到所述第二组多个选择器(370~37f)之一的第一输入;
所述多个合并移位单元(350、352、354与356)的每个的输出耦合到所述第二组多个选择器(370~37f)的子组之一的选择器的第二输入,其中所述第二组多个选择器(370~37f)包括多个子组,每个子组包括相同数量的选择器;
所述多个合并移位单元(350、352、354与356)的每个的输出还耦合所述第三组多个选择器(380、382、384与386)之一的第二输入;
所述第二组多个选择器(370~37f)的每个子组的每个选择器的输出,耦合到所述多个异或单元(390、392、394与396)之一的输入。


2.根据权利要求1所述的SM4/AES双模加密电路,其特征在于,还包括:AES密钥分发网络(322);
AES密钥分发网络(322)耦合所述第三组多个选择器(380、382、384与386)的每个的第一输入,以向所述第三组多个选择器(380、382、384与386)的每个提供各自需要的AES轮密钥(W(i)、W(i+1)、W(i+2)与W(i+3))。


3.根据权利要求1或2所述的SM4/AES双模加密电路,其特征在于,还包括多个SM4数据分发网络(310、312、314与316);
所述多个SM4数据分发网络(310、312、314与316)的每个的输出耦合所述第一组多个选择器(330~33f)的子组之一的选择器的第二输入,其中所述第一组多个选择器(330~33f)包括多个子组,每个子组包括相同数量的选择器。


4.根据权利要求3所述的SM4/AES双模加密电路,其特征在于,
所述多个异或单元(390、392、394与396)的第一异或单元(390)的输出耦合到所述多个SM4数据分发网络(310、312、314与316)的第二数据分发网络(312、第三数据分发网络(314)与第四数据分发网络(316);
所述多个异或单元(390、392、394与396)的第二异或单元(392)的输出耦合到所述多个SM4数据分发网络(310、312、314与316)的第三数据分发网络(314)与第四数据分发网络...

【专利技术属性】
技术研发人员:黄好城张苏敏王祎磊周鹏飞刘传杰涂友刚兰彤
申请(专利权)人:北京芯讯信安科技有限公司北京忆芯科技有限公司
类型:发明
国别省市:北京;11

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

1