可重构S盒电路结构的制作方法

文档序号:12809085阅读:294来源:国知局
可重构S盒电路结构的制作方法与工艺

本发明涉及密码电路领域,尤其涉及一种可重构s盒电路结构。



背景技术:

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

aes(advancedencryptionstandard,高级加密标准)是由美国国家标准与技术研究院2001年制定的新一代分组对称密码算法,用于取代原来的des(dataencryptionstandard,数据加密标准)。aes密码算法的数据分组长度为128比特,密钥长度有128,192和256比特三种。aes规定,根据这三种不同的密钥长度,加密过程分别需要进行10,12和14轮轮变换运算,每一个轮变换运算又包括字节替换,行移位,列混合和密钥加四个子运算,除了最后一轮,为了消除对称性,最后一轮轮变换不包含列混合运算。aes解密过程为加密过程的逆过程,因此也分别需要进行10,12和14轮轮变换运算,且每一轮轮变换包括逆字节替换,逆行移位,逆列混合和逆密钥加四个子运算,除了第一轮,第一轮轮变换不包括逆列混合运算。

sm4加密算法是由我国国家商用密码管理办公室于2006年1月公布的第一个商用分组密码算法,其分组长度和密钥长度均为128比特。加密算法与密钥扩展算法都采用32轮非线性迭代结构。加密算法与解密算法的结构相同,仅是轮密钥的使用次序相反。每一轮sm4轮变换中包括字节替换运算、循环移位运算和异或运算。

密码算法可以通过硬件实现,也可以通过软件实现。软件加密技术具有灵活性高、可扩展性强和可移植性好等优点,但是加密速度较低,并且由于软件运行环境的开放性,密码算法和加密信息容易被篡改和窃取。与软件加密技术相比,硬件加密技术具有更高的物理安全性和加密速度,具有更广阔的应用前景。为了提高硬件加密技术的灵活性,往往需要将不同的算法集成到一个硬件平台中。在国内安全芯片生产厂家的相关产品中,不仅集成了sm4密码算法还集成了aes密码算法,以满足不同应用场合的加密需求。

2.aess盒运算和sm4s盒运算

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

2.1aess盒运算

aes密码算法的s盒和sm4密码算法的s盒都是字节运算单元,即输入和输出都是一个字节。在aes密码算法中,加密过程和解密过程采用不同的s盒运算,在加密s盒运算中,输入字节首先进行一个有限域gf(28)域上乘法逆运算,然后进行一个仿射运算,其表达式为:

其中x为输入字节,(x)a-1为aes密码算法指定的gf(28)域上的乘法逆运算,ma为8×8bit常数矩阵,ca为8bit常数向量,ma和ca用于完成加密s盒中的仿射运算。

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

f(x)=x8+x4+x3+x+1

常数矩阵ma和常数向量ca分别为:

解密s盒运算是加密s盒运算的逆运算,其表达式为:

其中m'a为ma矩阵的逆矩阵,m'a和ca用于完成解密s盒中的仿射运算,其它运算与公式(1)运算相同。

2.2sm4s盒运算

在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分别为:

3.基于复合域的aess盒运算和sm4s盒运算

由公式(1)~(3)可知,aess盒运算和sm4s盒运算都是由gf(28)域乘法逆运算和仿射运算构成,其中gf(28)域乘法逆运算是两个s盒中最复杂的运算。当aes密码算法和sm4密码算法在同一硬件平台实现时,可以通过运算单元复用方式对gf(28)域乘法逆进行复用,这样可以大大降低电路面积,然而aes密码算法和sm4密码算法采用的不是同一个gf(28)域,因此不能直接对gf(28)域乘法逆进行复用。本发明进一步将aess盒中的gf(28)乘法逆运算和sm4s盒中的gf(28)乘法逆运算映射到同一个复合域(即gf((24)2)或gf(((22)2)2)域)中实现,从而可以实现gf(28)域乘法逆的复用,降低密码算法实现的电路面积。

3.1基于复合域的aes加密s盒

基于复合域的aes加密s盒运算表达式为:

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

其中常数矩阵qa为ma和d'a合并矩阵,即qa=ma×d'a,常数矩阵qa也为8×8bit常数矩阵。

3.2基于复合域的aes解密s盒

基于复合域的aes解密s盒运算表达式为:

上式中的相关运算与公式(4)相同。同样,映射矩阵da和常数矩阵m'a可以合并成一个矩阵,合并之后的aes解密s盒运算表达式为:

其中常数矩阵q'a=da×m'a,常数向量da=q'a×ca。

3.3基于复合域的sm4s盒

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

其中()c–1为目标复合域上的乘法逆运算,ds为映射矩阵,d's为逆映射矩阵。

公式(8)中的复合域与公式(5~7)中的复合域为同一复合域,这样可以在硬件实现电路中复用复合域乘法逆单元。同样,将公式(8)中的相关矩阵进行合并,合并之后的sm4s盒运算表达式为:

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

由于现有技术中,aes密码算法中的s盒运算与sm4密码算法中的s盒运算分别是通过两个不同的电路实现,造成整体的密码算法的电路面积较大,从而使得应用该加密方法的装置体积较大。



技术实现要素:

本发明提供一种可重构s盒电路结构,用以减少密码算法实现的电路面积。

为了解决上述问题,本发明提供了一种可重构s盒电路结构,包括:合成矩阵乘法单元1、合成矩阵乘法单元2、常数加单元1、常数加单元2、常数加单元3、常数加单元4、复合域乘法逆单元、选择器1、选择器2、字节数据输入端口、字节数据输出端口和控制信号输入端口,所述选择器1和所述选择器2均为三选一选择器;

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

所述可重构s盒电路结构具有三个工作模式:aes加密s盒工作模式、aes解密s盒工作模式和sm4s盒工作模式;在选择信号的控制下,选择器1和选择器2分别选择不同的信号通道,从而实现可重构s盒不同的工作模式;在aes加密s盒工作模式下,选择器1输出合成矩阵乘法单元1的输出端pa上的运算结果,选择器2输出常数加单元3的运算结果;在aes解密s盒工作模式下,选择器1输出常数加单元1的运算结果,选择器2输出合成矩阵乘法单元2的输出端pv上的运算结果;在sm4s盒工作模式下,选择器1输出常数加单元2的运算结果,选择器2输出常数加单元4的运算结果;所述控制信号由控制信号输入端口输入。

优选的,所述的合成矩阵乘法单元1实现合成矩阵乘法运算φ×;所述的合成矩阵φ由aes加密s盒中的常数矩阵da、aes解密s盒中的常数矩阵q'a、sm4s盒中的常数矩阵rs组合而成;合成矩阵乘法单元1的输出端pa、输出端pv和输出端ps分别输出常数矩阵乘法da×的运算结果、常数矩阵乘法q'a×的运算结果和常数矩阵乘法rs×的运算结果;

所述的合成矩阵乘法单元2实现合成矩阵乘法运算ψ×;所述的合成矩阵ψ由aes加密s盒中的常数矩阵qa、aes解密s盒中的常数矩阵d'a、sm4s盒中的常数矩阵qs组合而成;合成矩阵乘法单元2的输出端pa、输出端pv和输出端ps分别输出常数矩阵乘法qa×的运算结果、常数矩阵乘法d'a×的运算结果和常数矩阵乘法qs×的运算结果;

所述的常数加单元1实现aes解密s盒中的加常数da运算;

所述的常数加单元2实现sm4s盒中的加常数ds运算;

所述的常数加单元3实现aes加密s盒中的加常数ca运算;

所述的常数加单元4实现sm4s盒中的加常数cs运算;

所述的复合域乘法逆单元实现输入字节在复合域上乘法逆运算。

优选的,所述的常数da为aes解密s盒中的常数ca与常数矩阵q'a的乘积;

所述的常数ds为sm4s盒中的常数cs与常数矩阵ds的乘积;

所述的常数ca为aes密码算法中指定的仿射运算中的常数向量;

所述的常数cs为sm4密码算法中指定的仿射运算中的常数向量;

所述的常数矩阵q'a为常数矩阵da与常数矩阵m'a的乘积;

所述的常数矩阵rs为常数矩阵ds与常数矩阵ms的乘积;

所述的常数矩阵qa为常数矩阵ma与常数矩阵d'a的乘积;

所述的常数矩阵qs为常数矩阵ms与常数矩阵d's的乘积;

所述的常数矩阵da为映射矩阵,其作用是将aes密码算法中指定的gf(28)域上的元素映射到目标复合域上;

所述的常数矩阵d'a为映射矩阵,其作用是将目标复合域上的元素映射到aes密码算法中指定的gf(28)域上;

所述的常数矩阵ds为映射矩阵,其作用是将sm4密码算法中指定的gf(28)域上的元素映射到目标复合域上;

所述的常数矩阵d's为映射矩阵,其作用是将目标复合域上的元素映射到sm4密码算法中指定的gf(28)域上;

所述的常数矩阵ma为aes密码算法中指定的加密流程仿射运算中的常数矩阵;

所述的常数矩阵m'a为aes密码算法中指定的解密流程仿射运算中的常数矩阵;

所述的常数矩阵ms为sm4密码算法中指定的仿射运算中的常数矩阵;

所述的复合域为任意与gf(28)域同构的复合域。

本发明提供的可重构s盒电路结构,通过复用复合域乘法逆单元方式,实现aes加密s盒运算、aes解密s盒运算和sm4s盒运算的可重构功能。复合域乘法逆的复用可以大大减少了电路面积,同时可重构s盒中的合成矩阵结构有利于电路优化效率的提高,从而进一步减少电路面积。

附图说明

图1为本发明具体实施方式的可重构s盒电路结构示意图;

图2为本发明具体实施方式的可重构s盒电路结构在aes加密s盒工作模式下的示意图;

图3为本发明具体实施方式的可重构s盒电路结构在aes解密s盒工作模式下的示意图;

图4为本发明具体实施方式的可重构s盒电路结构在sm4s盒工作模式下的示意图。

具体实施方式

下面结合附图对本发明提供的可重构s盒电路结构的具体实施方式做详细说明。

本具体实施方式提供了一种可重构s盒电路结构,图1为本发明具体实施方式的可重构s盒电路结构示意图。本具体实施方式所述的可重构s盒电路结构,可以实现基于复合域的aes加密s盒、aes解密s盒和sm4s盒等运算的可重构功能。图2为本发明具体实施方式的可重构s盒电路结构在aes加密s盒工作模式下的示意图;图3为本发明具体实施方式的可重构s盒电路结构在aes解密s盒工作模式下的示意图;图4为本发明具体实施方式的可重构s盒电路结构在sm4s盒工作模式下的示意图。

如图1所示,本具体实施方式提出的可重构s盒电路结构包括:合成矩阵乘法单元1、常数加单元1、常数加单元2、选择器1、复合域乘法逆单元、合成矩阵乘法单元2、常数加单元3、常数加单元4、选择器2,其中,所述选择器1和所述选择器2均为三选一选择器。

电路结构还包括:一个字节数据输入端口、一个字节数据输出端口和一个控制信号输入端口。

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

合成矩阵乘法单元1实现合成矩阵乘法运算φ×,合成矩阵φ由aes加密s盒中的常数矩阵da、aes解密s盒中的常数矩阵q'a、sm4s盒中的常数矩阵rs组合而成,即

合成矩阵乘法单元1的输出端pa、输出端pv和输出端ps分别输出常数矩阵乘法da×的运算结果、常数矩阵乘法q'a×的运算结果和常数矩阵乘法rs×的运算结果。

合成矩阵乘法单元2实现合成矩阵乘法运算ψ×,合成矩阵ψ由aes加密s盒中的常数矩阵qa、aes解密s盒中的常数矩阵d'a、sm4s盒中的常数矩阵qs组合而成,即

所述合成矩阵乘法单元2的输出端pa、输出端pv和输出端ps分别输出常数矩阵乘法qa×的运算结果、常数矩阵乘法d'a×的运算结果和常数矩阵乘法qs×的运算结果。

所述常数加单元1实现aes解密s盒中的加常数da运算,常数加单元2实现sm4s盒中的加常数ds运算,常数加单元3实现aes加密s盒中的加常数ca运算,常数加单元4实现sm4s盒中的加常数cs运算。复合域乘法逆单元实现输入字节在复合域上乘法逆运算。

图1所示的可重构s盒电路有三种工作模式:aes加密s盒工作模式、aes解密s盒工作模式和sm4s盒工作模式。

aes加密s盒工作模式如图2所示。在aes加密s盒工作模式下,可重构s盒输入一个字节向量x,输入的字节向量x首先进入合成矩阵乘法单元1进行合成矩阵乘法运算,即

运算结果da×x从合成矩阵乘法单元1的输出端口pa输出,运算结果q'a×x从合成矩阵乘法单元1的输出端口pv输出,运算结果rs×x从合成矩阵乘法单元1的输出端口ps输出。选择器1在选择信号控制下选择pa端口上的运算结果da×x输出到复合域乘法逆单元,经过复合域乘法逆单元后输出运算结果,运算结果进一步输入到合成矩阵乘法单元2中进行合成矩阵乘法运算,即

运算结果从合成矩阵乘法单元2的输出端口pa输出,运算结果从合成矩阵乘法单元2的输出端口pv输出,运算结果从合成矩阵乘法单元2的输出端口ps输出。其中pa端口上的运算结果进一步进入常数加单元3中进行加常数ca运算,运算结果为选择器2在选择信号控制下将运算结果从字节数据输出端口输出。对比公式(5)可知,该运算结果即为aes加密s盒运算结果sa(x)。选择器1和选择器2的选择信号从控制信号输入端口输入。

aes解密s盒工作模式如图3所示。在aes解密s盒工作模式下,可重构s盒输入一个字节向量x,输入的字节向量x首先进入合成矩阵乘法单元1进行合成矩阵乘法运算,即

运算结果da×x从合成矩阵乘法单元1的输出端口pa输出,运算结果q'a×x从合成矩阵乘法单元1的输出端口pv输出,运算结果rs×x从合成矩阵乘法单元1的输出端口ps输出。其中pv端口上的运算结果q'a×x进一步输入到常数加单元1中进行加常数da运算,运算结果为q'a×x+da。选择器1在选择信号控制下选择常数加单元1的运算结果q'a×x+da输出到复合域乘法逆单元,经过复合域乘法逆单元后输出运算结果运算结果进一步输入到合成矩阵乘法单元2中进行合成矩阵乘法运算,即

运算结果从合成矩阵乘法单元2的输出端口pa输出,运算结果从合成矩阵乘法单元2的输出端口pv输出,运算结果从合成矩阵乘法单元2的输出端口ps输出。选择器2在选择信号控制下将pv端口上的运算结果从字节数据输出端口输出。对比公式(7)可知,该运算结果即为aes解密s盒运算结果s'a(x)。选择器1和选择器2的选择信号从控制信号输入端口输入。

sm4s盒工作模式如图4所示。在sm4s盒工作模式下,可重构s盒输入一个字节向量x,输入的字节向量x首先进入合成矩阵乘法单元1进行合成矩阵乘法运算,即

运算结果da×x从合成矩阵乘法单元1的输出端口pa输出,运算结果q'a×x从合成矩阵乘法单元1的输出端口pv输出,运算结果rs×x从合成矩阵乘法单元1的输出端口ps输出。其中ps端口上的运算结果rs×x进一步输入到常数加单元2中进行加常数ds运算,运算结果为rs×x+ds。选择器1在选择信号控制下选择常数加单元2的运算结果rs×x+ds输出到复合域乘法逆单元,经过复合域乘法逆单元后输出运算结果运算结果进一步输入到合成矩阵乘法单元2中进行合成矩阵乘法运算,即

运算结果从合成矩阵乘法单元2的输出端口pa输出,运算结果从合成矩阵乘法单元2的输出端口pv输出,运算结果从合成矩阵乘法单元2的输出端口ps输出。其中ps端口上的运算结果进一步输入到常数加单元4中进行加常数cs运算,运算结果为选择器2在选择信号控制下将常数加单元4的运算结果从字节数据输出端口输出。对比公式(9)可知,该运算结果即为aes解密s盒运算结果ss(x)。选择器1和选择器2的选择信号从控制信号输入端口输入。

本发明提供的可重构s盒电路结构,通过复用复合域乘法逆单元方式,实现aes加密s盒运算、aes解密s盒运算和sm4s盒运算的可重构功能。复合域乘法逆的复用可以大大减少了电路面积,同时可重构s盒中的合成矩阵结构有利于电路优化效率的提高,从而进一步减少电路面积。

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

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