结合AES和SM4加密和解密的高速电路制造技术

技术编号:38616279 阅读:13 留言:0更新日期:2023-08-26 23:43
所公开的实施例涉及密码加速器电路,其包括:从输入数据块生成第一数据块的第一仿射变换电路;SM4S

【技术实现步骤摘要】
【国外来华专利技术】结合AES和SM4加密和解密的高速电路

技术介绍

[0001]加密算法(也被称为“密码”)被用来对数据进行加密和解密。现代加密算法对非常大的数(其被用作密码密钥)执行计算以维持消息的完整性、保密性和真实性。消息可以是单个位或位块的形式。密码可以使用对称密钥(其中相同的密钥被用来对消息进行加密和解密)或非对称密钥(其中不同的密钥被用于加密和解密)。使用对称密钥的密码尤其包括AES(高级加密标准)和SM4(用于无线LAN WAPI的中国国家标准)。AES在跨多个特征和AES加速硬件的许多平台上得到广泛支持。
[0002]诸如AES和SM4之类的大多数现代对称密码通常被设计为一系列轮次,每个轮次由一系列线性操作组成,随后是由也被称为“替换盒”(S

box)的查找表所实现的可逆非线性变换,可能随后是附加的线性操作。S

box变换通常被应用于输入的每8位块。然而,AES和SM4密码涉及不同的轮次数目、不同的S

box以及需要单独的硬件实现或固件代码的旋转、缩放和混合操作。
[0003]密码可以用硬件、软件、或者硬件和软件的组合来实现。提出了硬件实现来加速AES所需的计算。需要AES和SM4密码的高效、统一的硬件实现。
附图说明
[0004]在附图中,在各个附图中被图示的每个相同或几乎相同的组件由相同的附图标记来表示。为了清楚起见,不是每个组件都在每个附图中被标记。在附图中:
[0005]图1是图示了根据一些实施例的统一密码硬件加速器的S
/>box电路的框图;
[0006]图2是根据一些实施例的执行AES和SM4加密和解密的统一硬件加速器的框图;
[0007]图3是根据一些实施例的执行AES和SM4加密和解密的硬件处理管线的框图;
[0008]图4至图7是根据一些实施例的硬件处理管线的各个级的框图;
[0009]图8是根据其他实施例的执行AES和SM4加密和解密的硬件处理管线的框图;
[0010]图9是图8的硬件处理管线的一个级的一些实施例的框图;
[0011]图10是图示了包括执行AES和SM4加密和解密的统一硬件加速器的处理系统的一个实施例的框图;
[0012]图11是图示了用于生成电路组件的表示的处理系统的一个实施例的框图。
具体实施方式
[0013]用于实现诸如AES和SM4之类的块密码的先前解决方案包括使用软件/微代码来实现它们或者针对每个个体块密码设计专用硬件加速器。这种软件/微代码实现通常不能满足期望的性能要求。同时,在电路中包括用于每个块密码的专用硬件加速器在硅面积和泄漏功率方面增加了产品成本,并且还带来了对重要的设计和验证努力的需要。在一个方面中,本公开提出一种统一硬件加速器以允许在对性能影响最小的情况下针对AES和SM4密码的硬件加速。
[0014]AES和SM4密码在若干方面是类似的。例如,两种密码都利用对称的秘密密钥来执
行对由相同长度的伽罗瓦域GF(28)(即,有限域)表示的数据的加密和解密,区别仅在于它们相应的多项式的定义。此外,两种密码都对数据的16字节块(128位块)进行操作,并执行多个轮次(对于AES为10到14个轮次,对于SM4为32个轮次),其中每个轮次包括字节替换操作和置换操作,以在加密或解密期间变换输入数据。字节替换操作通过模糊密钥值和被加密或解密的信息之间的关系来执行“混淆”操作,并且置换操作通过混洗、调换和混合密钥值和被加密或解密的输入数据的位来执行“扩散”操作。解密类似于加密,并且AES解密涉及对被用于加密的操作进行反转。
[0015]字节替换操作通常使用被称为“S

box”的查找表来实现。AES密码使用两个256字节的S

box分别用于加密和解密。SM4密码使用一个S

box用于加密或解密,并且使用扩展加密密钥的密钥调度算法从加密密钥生成32位的轮次密钥。
[0016]所公开的实施例描述了用于AES和SM4密码的统一硬件加速器。所公开的实施例使用公共S

box表来节省面积并降低成本。预期所公开的统一AES/SM4加密/解密硬件加速器将比使用单独的AES/SM4实现提供显著的面积改进。
[0017]虽然AES和SM4密码可以执行类似的字节替换操作(S

box),但是它们使用不同的伽罗瓦域GF(28)约简多项式。AES密码可以使用GF(28)约简多项式x8+x4+x3+x+1,而SM4密码可以使用GF(28)约简多项式x8+x7+x6+x5+x4+x2+1。约简多项式的选择区分了用于伽罗瓦域乘法和逆计算的逻辑,因此需要使用用于AES和SMS4硬件实现的单独电路。针对AES和SMS4实现单独的专用硬件加速器是笨拙和低效的,并且可能导致显著的面积和功率开销。
[0018]本文所描述的实施例通过避免用于AES和SM4密码中的每一个密码的单独的硬件来减小电路面积。相反,所公开的实施例使用单个统一硬件加速器来解决AES/SM4加密和解密。AES和SM4密码包括执行S

box操作的公共主要组件,S

box操作可以包括大多数面积和性能关键操作。
[0019]图1是图示了根据一些实施例的统一密码硬件加速器的S

box电路的框图。S

box电路包括分别接收来自AES数据路径的数据块SBIa和来自SM4数据路径的数据块SBI的两个输入。S

box电路还包括分别向AES数据路径和SM4数据路径提供数据块SBOa、SBOs的两个输出。输入SBIa连接到仿射变换电路AST,以用于将AES数据块SBIa从由AES S

box定义的AES加密或解密域变换到由SM4 S

box定义的SM4域。S

box电路还包括多路复用器MX,用于选择变换电路AST的输出和输入数据块SBI中的一者或另一者。多路复用器MX由用于选择输入数据路径AES或SM4的信号a

s来控制。多路复用器MX的输出连接到SM4 S

box SMBX。S

box SMBX的输出提供SM4输出数据块SBO,并由仿射变换电路SAT进一步处理以用于将由S

box SMBX产生的输出数据块从SM4域变换到AES加密或解密域。变换电路SAT的输出提供AES输出数据块SBOa。
[0020]仿射变换电路AST、SAT接收指定要被执行的操作(加密或解密)的信号e

d,要被应用于电路AST、SAT的输入数据的仿射变换对于加密和解密是不同的。
[0021]根据一些实施例,数据SBIa、SBIs、SBOa、SBOs是字节,并且仿射变换由下式来定义:
[0022]s=M
·
b+c,
本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种执行密码操作的方法,包括:由密码加速器电路执行应用于输入数据块的第一仿射变换,以获得第一变换数据块,其中所述第一仿射变换包括输入数据块与第一矩阵的乘法以及第一平移向量的加法;由所述密码加速器电路根据SM4密码并且使用SM4 S

box表来执行第一字节替换(S

box)操作,所述SM4 S

box操作被应用于所述第一变换数据块以获得替换数据块;以及由所述密码加速器电路执行应用于所述替换数据块的第二仿射变换以获得第二变换数据块,其中所述第二仿射变换包括所述替换数据块与第二矩阵的乘法以及第二平移向量的加法,并且其中所述第一矩阵和所述第二矩阵以及所述第一平移向量和所述第二平移向量被定义为使得所述第二变换数据块等于由根据另一对称密码使用S

box表的第二S

box操作所处理的所述输入数据块。2.根据权利要求1所述的方法,其中所述第二S

box操作是高级加密标准(AES)S

box操作。3.根据权利要求1或2所述的方法,其中:所述输入数据块包括多个字节,对所述输入数据块执行所述第一仿射变换包括:对所述输入数据块的每个字节同时应用所述第一仿射变换,以生成所述第一变换数据块的字节,对所述第一变换数据块执行所述SM4 S

box操作包括:使用相应的SM4 S

box表,对所述第一变换数据块的每个字节同时应用所述SM4 S

box操作,以生成所述替换数据块的字节,并且对所述替换数据块执行所述第二仿射变换包括:对所述替换数据块的每个字节同时应用所述第二仿射变换,以生成所述第二变换数据块的字节。4.根据权利要求3所述的方法,其中由所述密码加速器电路用来执行应用于所述第一变换数据块的所述SM4 S

box操作的所述SM4S

box表是两个相邻SM4轮次电路的S

box表,每个轮次电路被配置为根据SM4密码来执行一个轮次并且根据SM4轮次密钥调度过程来执行SM4轮次密钥的一个轮次扩展操作。5.根据权利要求1至4中的一项所述的方法,其中由密码加速器电路执行的所述密码操作包括加密操作和解密操作,每个操作与相应的特定的第一仿射变换和第二仿射变换相关联。6.根据权利要求1至5中的一项所述的方法,包括:由所述密码加速器电路对所述输入数据块应用第一SM4密码操作以获得第一部分SM4密码数据块;由所述密码加速器电路旁路所述第一仿射变换;由所述密码加速器电路将所述SM4 S

box操作应用于所述第一部分SM4密码数据块,以获得SM4替换数据块;以及由所述密码加速器电路旁路所述第二仿射变换,所述SM4替换数据块被供应给相邻SM4轮次处理电路。7.一种密码加速器电路,包括:第一仿射变换电路,从输入数据块生成第一变换数据块,其中所述第一仿射变换电路被配置为执行输入数据块与第一矩阵的乘法以及第一平移向量的加法;
SM4字节替换(S

box)电路,被配置为根据SM4密码并且使用SM4 S

box表执行第一S

box操作,所述SM4 S

box操作被应用于所述第一变换数据块以获得替换数据块;以及第二仿射变换电路,从所述替换数据块生成第二变换数据块,其中所述第二仿射变换电路被配置为执行所述替换数据块与第二矩阵的乘法以及第二平移向量的加法,并且其中所述第一仿射变换电路和所述第二仿射变换电路被配置为使得所述第二变换向量块等于由根据另一对称密码使用S

box表的第二S

box操作所处理的所述输入数据块。8.根据权利要求7所述的密码加速器电路,其中所述第二S

box操作是高级加密标准(AES)S

box操作。9.根据权利要求7或8所述的密码加速器电路,其中:所述输入数据块包括多个字节,所述第一仿射变换电路包括多个第一字节仿射变换电路,每个第一字节仿射变换电路被配置为将所述第一仿射变换应用于所述输入数据块的相应字节,以生成所述第一变换数据块的字节,所述SM4 S

box电路包括多个SM4字节S

box电路,每个SM4字节S

box电路被配置为使用相应的SM4字节S

box表来将SM4字节S

box操作应用于所述第一变换数据块的相应字节,以生成所述替换数据块的字节,并且所述第二仿射变换电路包括多个第二字节仿射变换电路,每个第二字节仿射变换电路被配置为将所述第二仿射变换应用于所述替换数据块的相应字节,以生成所述第二变换数据块的字节。10.根据权利要求9所述的密码加速器电路,包括两个相邻的SM4轮次电路,每个SM4轮次电路被配置为使用第一组SM4 S

box表根据SM4密码来执行一个轮次,并且使用第二组SM4 S

【专利技术属性】
技术研发人员:P
申请(专利权)人:拉姆伯斯公司
类型:发明
国别省市:

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

1