应用于SM4与Camellia密码算法的可重构S盒电路结构的制作方法

文档序号:11628612阅读:344来源:国知局
应用于SM4与Camellia密码算法的可重构S盒电路结构的制造方法与工艺

本发明涉及密码电路技术领域,尤其涉及一种应用于sm4与camellia密码算法的可重构s盒电路结构。



背景技术:

1.sm4密码算法和camellia密码算法

sm4密码算法是由我国国家商用密码管理办公室于2006年1月公布的第一个商用分组密码算法,其分组长度和密钥长度均为128比特。camellia算法是由日本电报电话公司和三菱公司于2000年共同设计,camellia算法的数据分组长度也是128比特,密钥长度为128比特、192比特和256比特三种。camellia已被许多组织选为标准算法,包括欧洲的nessie标准、日本的cryptrec标准、以及国际标准化组织与国际电工委员会制定的iso/iec18033-3标准。

分组密码标准的多样性为密码系统实现带来巨大挑战,为了满足不同地区和不同行业的应用需求,往往需要将不同的算法集成到一个硬件平台中。

2.sm4s盒运算和camellias盒运算

在sm4密码算法和camellia密码算法中,字节替换运算(通常称为s盒运算)是唯一的非线性运算,运算复杂度最高。因此在sm4密码算法电路和camellia密码算法电路,s盒运算电路均是最主要的运算部件,分别在这两个密码算法电路中分别占据了大部分逻辑资源。

2.1sm4s盒运算

在sm4密码算法中,加密过程和解密过程采用同一个s盒运算。sm4s盒首先对输入字节进行一个仿射运算,然后再进行一个gf(28)域乘法逆运算,最后再次进行仿射运算,其表示式为:

其中(ms×x+cs)s-1为sm4密码算法指定的gf(28)域上的乘法逆运算,ms为8×8bit常数矩阵,cs为8bit常数向量,ms和cs用于完成仿射运算。

sm4密码算法中所指定的gf(28)域的不可约多项式为:

f(x)=x8+x7+x6+x5+x4+x2+1

常数矩阵ms和常数向量cs分别为:

2.2camellias盒运算

camellia密码算法加密过程采用了4个不同的s盒运算,分别为:

其中x为输入字节,(mcf×(x+ccf))c-1为有限域gf((24)2)上的乘法逆运算,mcf和mch为8×8bit常数矩阵,ccf和cch为8bit常数向量,mcf和ccf用于完成仿射运算f,mch和cch用于完成仿射运算h,<<<1为循环左移一位运算,>>>1为循环右移一位运算。

由公式(2)可知,s盒sc1的输出循环左移一位构成了s盒sc2,s盒sc1的输出循环右移一位构成了s盒sc3,s盒sc1的输入循环左移一位构成了s盒sc4。由于在硬件电路实现中,循环左移和循环右移不需要任何电路逻辑,只需要将总线顺序进行调换,因此,在硬件实现时,只需要实现sc1电路即可。s盒sc1首先对输入字节进行一个仿射运算(仿射运算f),然后再进行一个gf((24)2)域乘法逆运算,最后再进行一个仿射运算(仿射运算h)。camellia密码算法中所指定的gf((24)2)域的不可约多项式为

其中ω={1001}2,常数矩阵mcf和常数矩阵mch分别为:

常数向量ccf和常数向量cch分别为:

camellia密码算法的解密运算采用与加密运算相同的4个s盒运算。

3.sm4s盒运算和camellias盒运算的同构映射

3.1sm4s盒的复合域映射

基于复合域的sm4s盒运算表达式为:

其中(ds×(ms×x+cs))m-1为目标复合域上的乘法逆运算,所述的目标复合域为任意与gf(28)域同构的复合域,ds为8×8bit映射矩阵,其作用是将输入字节x从sm4指定的gf(28)域映射到目标复合域上,d'a为da逆矩阵,其作用是将运算结果从目标复合域映射回到sm4指定的gf(28)域。在公式(3)中,ms和d's都为8×8bit矩阵,因此可以合并成一个8×8bit矩阵。同样,ds和ms也可以合并成一个8×8bit矩阵,合并之后的sm4s盒运算表达式为:

其中常数矩阵qs=ms×d's,常数矩阵rs=ds×ms,常数向量ds=ds×cs。

3.2camellias盒的同构映射

为了与sm4s盒复用有限域乘法逆运算单元,camellias盒的有限域乘法逆(mcf×(x+ccf))c-1也需要映射到目标复合域上。映射之后的camellias盒运算表达式为:

其中(dc×(mcf×x+ccf))m-1为目标复合域上的乘法逆运算,dc为映射矩阵,d'c为逆映射矩阵。同样,将公式(5)中的相关矩阵进行合并,合并之后的camellias盒运算表达式为:

其中常数矩阵qch=mch×d'c,常数矩阵qcf=dc×mcf,常数向量dcf=dc×ccf。

由于现有技术中,在一个电子装置中共用sm4密码算法与camellia密码算法时,sm4密码算法中的s盒运算与camellia密码算法中的s盒运算分别是通过两个不同的电路实现,造成整体的密码算法的电路面积较大,从而使得应用该加密方法的装置体积较大,不符合人们对于电子装置轻、薄、短、小的要求。



技术实现要素:

本发明提供一种应用于sm4与camellia密码算法的可重构s盒电路结构,用以在同一个电子装置中共用sm4密码算法与camellia密码算法时,减少总的电路面积。

为了解决上述问题,本发明提供了一种应用于sm4密码算法和camellia密码算法的可重构s盒电路结构,包括:合成矩阵乘法单元1、合成矩阵乘法单元2、常数加单元1、常数加单元2、常数加单元3、常数加单元4、复合域乘法逆单元、选择器1、选择器2、字节数据输入端口、字节数据输出端口和控制信号输入端口,所述选择器1和选择器2均为二选一选择器;所述的合成矩阵乘法单元1的输入端与字节数据输入端口相连接;合成矩阵乘法单元1的输出端ps、输出端pc分别与常数加单元1的输入端、常数加单元2的输入端一一对应连接;所述的常数加单元1的输出端和常数加单元2的输出端均与选择器1的输入端连接;所述的选择器1的输出端与复合域乘法逆单元的输入端相连接;所述的复合域乘法逆单元的输出端与合成矩阵乘法单元2的输入端相连接;所述的合成矩阵乘法单元2的输出端ps、输出端pc分别与常数加单元3的输入端、常数加单元4的输入端一一对应连接;所述的常数加单元3的输出端和常数加单元4的输出端均与选择器2输入端连接;所述的选择器2的输出端与字节数出端口相连接;所述的选择器1和选择器2的选择端与控制信号输入端口相连接;所述的应用于sm4密码算法和camellia密码算法的可重构s盒电路结构有两个工作模式:sm4s盒工作模式和camellias盒工作模式;在选择信号的控制下,选择器1和选择器2分别选择不同的信号通道,从而实现不同的工作模式:在sm4s盒工作模式下,选择器1输出常数加单元1的运算结果,选择器2输出常数加单元3的运算结果;在camellias盒工作模式下,选择器1输出常数加单元2的运算结果,选择器2输出常数加单元4的运算结果;所述的选择信号由控制信号输入端口输入。

优选的,所述的合成矩阵乘法单元1实现合成矩阵乘法运算φ×;所述的合成矩阵φ由sm4s盒中的常数矩阵rs和camellias盒中的常数矩阵qcf组合而成;合成矩阵乘法单元1的输出端ps、输出端pc一一对应输出常数矩阵乘法rs×的运算结果、常数矩阵乘法qcf×的运算结果;所述的合成矩阵乘法单元2实现合成矩阵乘法运算ψ×;所述的合成矩阵ψ由sm4s盒中的常数矩阵qs和camellias盒中的常数矩阵qch组合而成;合成矩阵乘法单元2的输出端ps、输出端pc一一对应输出常数矩阵乘法qs×、常数矩阵乘法qch×的运算结果;所述的常数加单元1实现sm4s盒中的加常数ds运算;所述的常数加单元2实现camellias盒中的加常数dcf运算;所述的常数加单元3实现sm4s盒中的加常数cs运算;所述的常数加单元4实现camellias盒中的加常数cch运算;所述的复合域乘法逆单元实现输入字节在复合域上乘法逆运算。

优选的,所述的常数ds为常数矩阵ds与常数cs的乘积;所述的常数dcf为常数矩阵dc与常数ccf的乘积;所述的常数cs为sm4密码算法中指定的仿射运算中的常数向量;所述的常数ccf为camellia密码算法中指定的仿射运算f中的常数向量;所述的常数cch为camellia密码算法中指定的仿射运算h中的常数向量;所述的常数矩阵rs为常数矩阵ds与常数矩阵ms的乘积;所述的常数矩阵qs为常数矩阵ms与常数矩阵d's的乘积;所述的常数矩阵qcf为常数矩阵dc与常数矩阵mcf的乘积;所述的常数矩阵qch为常数矩阵mch与常数矩阵d'c的乘积;所述的常数矩阵ds为映射矩阵,其作用是将sm4密码算法中指定的gf(28)域上的元素映射到目标复合域上;所述的常数矩阵d's为映射矩阵,其作用是将目标复合域上的元素映射到sm4密码算法中指定的gf(28)域上;所述的常数矩阵dc为映射矩阵,其作用是将camellia密码算法中指定的gf((24)2)域上的元素映射到目标复合域上;所述的常数矩阵d'c为映射矩阵,其作用是将目标复合域上的元素映射到camellia密码算法中指定的gf((24)2)域上;所述的常数矩阵ms为sm4密码算法中指定的仿射运算中的常数矩阵;所述的常数矩阵mcf为camellia密码算法中指定的仿射运算f中的常数矩阵;所述的常数矩阵mch为camellia密码算法中指定的仿射运算h中的常数矩阵;所述的复合域为任意与gf(28)域同构的复合域。

本发明提供的应用于sm4密码算法和camellia密码算法的可重构s盒电路结构,基于复合域实现有限域乘法逆,并通过复用有限域乘法逆单元方式,在一个电子装置内部实现sm4s盒运算和camellias盒运算的可重构功能,可以大大减少了实现密码算法的总的电路面积,同时可重构s盒中的合成矩阵结构有利于电路优化效率的提高,从而进一步减少电路面积。

附图说明

附图1是本发明具体实施方式的应用于sm4密码算法和camellia密码算法的可重构s盒电路结构的示意图;

附图2是本发明具体实施方式的应用于sm4密码算法和camellia密码算法的可重构s盒电路结构在sm4s盒工作模式下的示意图;

附图3是本发明具体实施方式的应用于sm4密码算法和camellia密码算法的可重构s盒电路结构在camellias盒工作模式下的示意图。

具体实施方式

下面结合附图对本发明提供的应用于sm4密码算法和camellia密码算法的可重构s盒电路结构的具体实施方式做详细说明。

本具体实施方式提供了一种应用于sm4密码算法和camellia密码算法的可重构s盒电路结构,附图1是本发明具体实施方式的应用于sm4密码算法和camellia密码算法的可重构s盒电路结构的示意图。

如图1所示,本具体实施方式所述的应用于sm4密码算法和camellia密码算法的可重构s盒电路结构,包括:合成矩阵乘法单元1、合成矩阵乘法单元2、常数加单元1、常数加单元2、常数加单元3、常数加单元4、复合域乘法逆单元、选择器1、选择器2、字节数据输入端口、字节数据输出端口和控制信号输入端口,所述选择器1和选择器2均为二选一选择器。

所述的合成矩阵乘法单元1的输入端与字节数据输入端口相连接;合成矩阵乘法单元1的输出端ps、输出端pc分别与常数加单元1的输入端、常数加单元2的输入端一一对应连接;所述的常数加单元1的输出端和常数加单元2的输出端均与选择器1的输入端连接;所述的选择器1的输出端与复合域乘法逆单元的输入端相连接;所述的复合域乘法逆单元的输出端与合成矩阵乘法单元2的输入端相连接;所述的合成矩阵乘法单元2的输出端ps、输出端pc分别与常数加单元3的输入端、常数加单元4的输入端一一对应连接;所述的常数加单元3的输出端和常数加单元4的输出端均与选择器2输入端连接;所述的选择器2的输出端与字节数出端口相连接;所述的选择器1和选择器2的选择端与控制信号输入端口相连接。

所述的合成矩阵乘法单元1实现合成矩阵乘法运算φ×;所述的合成矩阵φ由sm4s盒中的常数矩阵rs和camellias盒中的常数矩阵qcf组合而成,即

合成矩阵乘法单元1的输出端ps、输出端pc一一对应输出常数矩阵乘法rs×的运算结果、常数矩阵乘法qcf×的运算结果。

所述的合成矩阵乘法单元2实现合成矩阵乘法运算ψ×;所述的合成矩阵ψ由sm4s盒中的常数矩阵qs和camellias盒中的常数矩阵qch组合而成,即

合成矩阵乘法单元2的输出端ps、输出端pc一一对应输出常数矩阵乘法qs×、常数矩阵乘法qch×的运算结果。

所述的常数加单元1实现sm4s盒中的加常数ds运算;所述的常数加单元2实现camellias盒中的加常数dcf运算;所述的常数加单元3实现sm4s盒中的加常数cs运算;所述的常数加单元4实现camellias盒中的加常数cch运算;所述的复合域乘法逆单元实现输入字节在复合域上乘法逆运算。

所述的应用于sm4密码算法和camellia密码算法的可重构s盒电路结构有两个工作模式:sm4s盒工作模式和camellias盒工作模式;在选择信号的控制下,选择器1和选择器2分别选择不同的信号通道,从而实现不同的工作模式。

sm4s盒运算和camellias盒运算都是由有限域乘法逆运算和仿射运算构成,但是sm4s盒运算和camellias盒运算是定义在不同的有限域上。有限域gf(28)域和有限域gf((24)2)域为同构域,通过同构映射可以将这两个域映射到同一个有限域中。因此,当sm4密码算法和camellia密码算法在同一硬件平台实现时,可以通过运算单元复用方式对有限域乘法逆进行复用,这样可以大大降低电路面积。

由于基于复合域gf((24)2)域或基于复合域gf(((22)2)2)域的有限域乘法逆电路的硬件复杂度要远远小于基于gf(28)域的有限域乘法逆电路,因此本发明进一步将sm4s盒中的有限域乘法逆运算和camellias盒中的有限域乘法逆运算映射到同一个复合域中实现,并通过复用有限域乘法逆的方式,降低密码算法实现的电路面积。

sm4s盒工作模式

附图2是本发明具体实施方式的应用于sm4密码算法和camellia密码算法的可重构s盒电路结构在sm4s盒工作模式下的示意图。在sm4s盒工作模式下,可重构s盒输入一个字节向量x,输入的字节向量x首先进入合成矩阵乘法单元1进行合成矩阵乘法运算,即

运算结果rs×x从合成矩阵乘法单元1的输出端口ps输出,运算结果qcf×x从合成矩阵乘法单元1的输出端口pc输出。ps端口上的运算结果rs×x进一步输入到常数加单元1中进行加常数ds运算,运算结果为rs×x+ds。pc端口上的运算结果qcf×x进一步输入到常数加单元2中进行加常数dcf运算,运算结果为qcf×x+dcf。

选择器1在选择信号控制下选择常数加单元1的运算结果rs×x+ds输出到复合域乘法逆单元,经过复合域乘法逆单元后输出运算结果运算结果进一步输入到合成矩阵乘法单元2中进行合成矩阵乘法运算,即

运算结果从合成矩阵乘法单元2的输出端口ps输出,运算结果从合成矩阵乘法单元2的输出端口pc输出。ps端口上的运算结果进一步进入常数加单元3中进行加常数cs运算,运算结果为pc端口上的运算结果进一步进入常数加单元4中进行加常数cch运算,运算结果为

选择器2在选择信号控制下将ps端口上的运算结果从字节数据输出端口输出。对比公式(4)可知,该运算结果即为sm4s盒运算结果ss(x)。选择器1和选择器2的选择信号从控制信号输入端口输入。

camellias盒工作模式

附图3是本发明具体实施方式的应用于sm4密码算法和camellia密码算法的可重构s盒电路结构在camellias盒工作模式下的示意图。在camellias盒工作模式下,可重构s盒输入一个字节向量x,输入的字节向量x首先进入合成矩阵乘法单元1进行合成矩阵乘法运算,即

运算结果rs×x从合成矩阵乘法单元1的输出端口ps输出,运算结果qcf×x从合成矩阵乘法单元1的输出端口pc输出。ps端口上的运算结果rs×x进一步输入到常数加单元1中进行加常数ds运算,运算结果为rs×x+ds。pc端口上的运算结果qcf×x进一步输入到常数加单元2中进行加常数dcf运算,运算结果为qcf×x+dcf。

选择器1在选择信号控制下选择常数加单元2的运算结果qcf×x+dcf输出到复合域乘法逆单元,经过复合域乘法逆单元后输出运算结果运算结果进一步输入到合成矩阵乘法单元2中进行合成矩阵乘法运算,即

运算结果从合成矩阵乘法单元2的输出端口ps输出,运算结果从合成矩阵乘法单元2的输出端口pc输出。ps端口上的运算结果进一步进入常数加单元3中进行加常数cs运算,运算结果为pc端口上的运算结果进一步进入常数加单元4中进行加常数cch运算,运算结果为

选择器2在选择信号控制下将ps端口上的运算结果从字节数据输出端口输出。对比公式(6)可知,该运算结果即为camellias盒运算结果sc1(x)。选择器1和选择器2的选择信号从控制信号输入端口输入。

本具体实施方式提供的应用于sm4密码算法和camellia密码算法的可重构s盒电路结构,基于复合域实现有限域乘法逆,并通过复用有限域乘法逆单元方式,在一个电子装置内部实现sm4s盒运算和camellias盒运算的可重构功能,可以大大减少了实现密码算法的总的电路面积,同时可重构s盒中的合成矩阵结构有利于电路优化效率的提高,从而进一步减少电路面积。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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