基于基转换的SM4算法S盒的实现方法及系统与流程

文档序号:22553662发布日期:2020-10-17 02:33阅读:264来源:国知局
基于基转换的SM4算法S盒的实现方法及系统与流程

本发明涉及一种基于基转换的sm4算法s盒的实现方法及系统,属于电力系统继电保护技术领域。



背景技术:

sm4算法是我国国家密码管理局公布的商用分组密码标准,在国内市场上得到广泛的应用,且不可避免地应用于各种恶意环境。

sm4算法中s盒是唯一非线性计算单元,s盒的实现效率至关重要。目前基于复合域的sm4算法的s盒实现方式,一般都是通过同构映射矩阵,将gf(28)的有限域求逆运算变到复合域上进行,从而降低了计算的难度,复合域上的元素表示方法常用多项式基和正规基两种方式。使用正规基的优点在于平方及乘法运算较多项式基而言更具有效率优势,但是在进行求逆运算时,正规基的效率却不如多项式基。

因此,需要一种充分发挥多项式基在求逆以及正规基在平方及乘法方面的效率优势的方法。



技术实现要素:

针对以上方法存在的不足,本发明提出了一种基于基转换的sm4算法s盒的实现方法及系统,其能够提升sm4算法s盒的实现效率。

本发明解决其技术问题采取的技术方案是:

一方面,本发明实施例提供的一种基于基转换的sm4算法s盒的实现方法,包括以下步骤:

s1,对sm4算法s盒在有限域gf(28)上的输入元素进行第一次仿射变换;

s2,采用一级降阶运算,使用同构映射矩阵将有限域gf(28)中第一次仿射变换后的元素映射到复合域gf((24)2),并以正规基表示复合域gf((24)2)上的元素;

s3,在复合域gf((24)2)上基于基转换进行求逆运算;

s4,使用同构映射逆矩阵将求逆运算后复合域gf((24)2)中的元素映射到有限域gf(28);

s5,对映射后的有限域gf(28)元素进行第二次仿射变换,即为sm4算法s盒的输出。

作为本实施例一种可能的实现方式,所述sm4算法s盒的代数形式表示为:sbox(a)=i(x*a1+c1)*a2+c2,其中,x为sm4算法s盒在有限域gf(28)上的输入元素,i表示为gf(28)域上的乘法求逆运算,循环矩阵a1,a2和行向量c1,c2分别定义为:

c1=c2=(1,1,0,0,1,0,1,1)

有限域gf(28)域上的乘法运算不可约多项式为m(x)=x8+x7+x6+x5+x4+x2+1。

作为本实施例一种可能的实现方式,所述步骤s1具体为:对sm4算法s盒在有限域gf(28)上的输入元素x乘以矩阵a1再加常量c1完成第一次仿射变换。

作为本实施例一种可能的实现方式,所述步骤s2具体为:有限域gf(28)中第一次仿射变换后的元素乘以同构映射矩阵进行一级降阶运算,将有限域gf(28)中的元素映射到复合域gf((24)2)中并以正规基表示;有限域gf((28)的元素表示为gf(24)上的一次线性多项式:g=(a1y16+a0y),其中所有系数都属于gf(24),乘法运算需要的模不可约多项式r(y)=y2+τy+η,[y16,y]称为该域下的一组正规基,[y16,y]为r(y)=0的两个根,τ和η属于gf(24)。

作为本实施例一种可能的实现方式,所述步骤s3具体为:

对复合域gf(24)在正规基上进行乘法、加法和平方运算;

对运算结果进行基转换,由正规基表示转换为多项式基表示;

在多项式基上进行求逆运算;

将求逆结果数据进行逆基转换,由多项式基表示转换为正规基表示。

作为本实施例一种可能的实现方式,所述步骤s5具体为:对映射后的有限域gf(28)元素乘以矩阵a2再加常量c2完成第二次仿射变换,得到sm4算法s盒的输出。

另一方面,本发明实施例提供的一种基于基转换的sm4算法s盒的实现系统,包括:

第一次仿射变换模块,用于对sm4算法s盒在有限域gf(28)上的输入元素进行第一次仿射变换;

一级降阶运算模块,用于采用一级降阶运算,使用同构映射矩阵将有限域gf(28)中第一次仿射变换后的元素映射到复合域gf((24)2),并以正规基表示复合域gf((24)2)上的元素;

求逆运算模块,用于在复合域gf((24)2)上基于基转换进行求逆运算;

映射模块,用于使用同构映射逆矩阵将求逆运算后复合域gf((24)2)中的元素映射到有限域gf(28);

第二次仿射变换模块,用于对映射后的有限域gf(28)元素进行第二次仿射变换,即为sm4算法s盒的输出。

作为本实施例一种可能的实现方式,所述求逆运算模块包括:

混合运算模块,用于对复合域gf(24)在正规基上进行乘法、加法和平方运算;

基转换模块,用于对运算结果进行基转换,由正规基表示转换为多项式基表示;

求逆模块,用于在多项式基上进行求逆运算;

基转换模块,用于将求逆结果数据进行逆基转换,由多项式基表示转换为正规基表示。

本发明实施例的技术方案可以具有的有益效果如下:

本发明采用复合域一级降阶法,利用基转换的方法使得s盒实现过程中求逆实现基于多项式基进行,平方及乘法实现基于正规基进行,有效提升了sm4算法s盒的实现效率。

附图说明:

图1是根据一示例性实施例示出的一种基于基转换的sm4算法s盒的实现方法的流程图;

图2是根据一示例性实施例示出的一种基于基转换的sm4算法s盒的实现系统框图。

具体实施方式

下面结合附图与实施例对本发明做进一步说明:

为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

图1是根据一示例性实施例示出的一种基于基转换的sm4算法s盒的实现方法的流程图。如图1所述,本发明实施例提供的一种基于基转换的sm4算法s盒的实现方法,包括以下步骤:

s1,对sm4算法s盒在有限域gf(28)上的输入元素进行第一次仿射变换;

s2,采用一级降阶运算,使用同构映射矩阵将有限域gf(28)中第一次仿射变换后的元素映射到复合域gf((24)2),并以正规基表示复合域gf((24)2)上的元素;

s3,在复合域gf((24)2)上基于基转换进行求逆运算;

s4,使用同构映射逆矩阵将求逆运算后复合域gf((24)2)中的元素映射到有限域gf(28);

s5,对映射后的有限域gf(28)元素进行第二次仿射变换,即为sm4算法s盒的输出。

作为本实施例一种可能的实现方式,所述sm4算法s盒的代数形式表示为:sbox(a)=i(x*a1+c1)*a2+c2,其中,x为sm4算法s盒在有限域gf(28)上的输入元素,i表示为gf(28)域上的乘法求逆运算,循环矩阵a1,a2和行向量c1,c2分别定义为:

c1=c2=(1,1,0,0,1,0,1,1)

有限域gf(28)域上的乘法运算不可约多项式为m(x)=x8+x7+x6+x5+x4+x2+1。

作为本实施例一种可能的实现方式,所述步骤s1具体为:对sm4算法s盒在有限域gf(28)上的输入元素x乘以矩阵a1再加常量c1完成第一次仿射变换。

作为本实施例一种可能的实现方式,所述步骤s2具体为:有限域gf(28)中第一次仿射变换后的元素乘以同构映射矩阵进行一级降阶运算,将有限域gf(28)中的元素映射到复合域gf((24)2)中并以正规基表示;有限域gf((28)的元素表示为gf(24)上的一次线性多项式:g=(a1y16+a0y),其中所有系数都属于gf(24),乘法运算需要的模不可约多项式r(y)=y2+τy+η,[y16,y]称为该域下的一组正规基,[y16,y]为r(y)=0的两个根,τ和η属于gf(24)。

作为本实施例一种可能的实现方式,所述步骤s3具体为:

对复合域gf(24)在正规基上进行乘法、加法和平方运算;

对运算结果进行基转换,由正规基表示转换为多项式基表示;

在多项式基上进行求逆运算;

将求逆结果数据进行逆基转换,由多项式基表示转换为正规基表示。

作为本实施例一种可能的实现方式,所述步骤s5具体为:对映射后的有限域gf(28)元素乘以矩阵a2再加常量c2完成第二次仿射变换,得到sm4算法s盒的输出。

图2是根据一示例性实施例示出的一种基于基转换的sm4算法s盒的实现系统框图。如图2所示,本发明实施例提供的一种基于基转换的sm4算法s盒的实现系统,包括:

第一次仿射变换模块,用于对sm4算法s盒在有限域gf(28)上的输入元素进行第一次仿射变换;

一级降阶运算模块,用于采用一级降阶运算,使用同构映射矩阵将有限域gf(28)中第一次仿射变换后的元素映射到复合域gf((24)2),并以正规基表示复合域gf((24)2)上的元素;

求逆运算模块,用于在复合域gf((24)2)上基于基转换进行求逆运算;

映射模块,用于使用同构映射逆矩阵将求逆运算后复合域gf((24)2)中的元素映射到有限域gf(28);

第二次仿射变换模块,用于对映射后的有限域gf(28)元素进行第二次仿射变换,即为sm4算法s盒的输出。

作为本实施例一种可能的实现方式,所述sm4算法s盒的代数形式表示为:sbox(a)=i(x*a1+c1)*a2+c2,其中,x为sm4算法s盒在有限域gf(28)上的输入元素,i表示为gf(28)域上的乘法求逆运算,循环矩阵a1,a2和行向量c1,c2分别定义为:

c1=c2=(1,1,0,0,1,0,1,1)

有限域gf(28)域上的乘法运算不可约多项式为m(x)=x8+x7+x6+x5+x4+x2+1。

作为本实施例一种可能的实现方式,所述第一次仿射变换模块具体用于:对sm4算法s盒在有限域gf(28)上的输入元素x乘以矩阵a1再加常量c1完成第一次仿射变换。

作为本实施例一种可能的实现方式,所述一级降阶运算模块具体用于:有限域gf(28)中第一次仿射变换后的元素乘以同构映射矩阵进行一级降阶运算,将有限域gf(28)中的元素映射到复合域gf((24)2)中并以正规基表示;有限域gf((28)的元素表示为gf(24)上的一次线性多项式:g=(a1y16+a0y),其中所有系数都属于gf(24),乘法运算需要的模不可约多项式r(y)=y2+τy+η,[y16,y]称为该域下的一组正规基,[y16,y]为r(y)=0的两个根,τ和η属于gf(24)。

作为本实施例一种可能的实现方式,所述求逆运算模块包括:

混合运算模块,用于对复合域gf(24)在正规基上进行乘法、加法和平方运算;

基转换模块,用于对运算结果进行基转换,由正规基表示转换为多项式基表示;

求逆模块,用于在多项式基上进行求逆运算;

基转换模块,用于将求逆结果数据进行逆基转换,由多项式基表示转换为正规基表示。

作为本实施例一种可能的实现方式,所述第二次仿射变换模块具体用于:对映射后的有限域gf(28)元素乘以矩阵a2再加常量c2完成第二次仿射变换,得到sm4算法s盒的输出。

本发明基于基转换实现sm4算法s盒的具体过程如下:

1、s盒在有限域gf(28)上的输入元素x乘以矩阵a1再加常量c1完成第一次仿射变换。

2、对步骤1输出结果乘以同构映射矩阵进行一级降阶运算,将有限域gf(28)中的元素映射到复合域gf((24)2)中,复合域中的元素以正规基表示。gf((28)的元素可以表示为gf(24)上的一次线性多项式:g=(a1y16+a0y),其中所有系数都属于gf(24).此时的乘法运算需要模不可约多项式r(y)=y2+τy+η,[y16,y]称为该域下的一组正规基,[y16,y]为r(y)=0的两个根.

3、根据求逆公式在复合域gf((24)2)上求逆,求逆公式如下:

s1=[a1a0τ2+(a1+a0)2η]-1a0

s0=[a1a0τ2+(a1+a0)2η]-1a1

3.1首先在正规基上进行a1a0τ2+(a1+a0)2η的运算,涉及平方、乘法、加法等运算。

3.2对步骤3.1输出结果乘以基转换矩阵,将元素转换到多项式基上表示。

3.3在多项式基上进行求逆运算。

3.4对步骤3.3输出结果乘以基转换逆矩阵,将元素转换回到正规基上表示。

3.5对步骤3.4输出结果乘以a0,即可得到复合域求逆高位s1。

3.6对步骤3.4输出结果乘以a1,即可得到复合域求逆低位s0。

3.7将得到的s1、s0进行高低位拼接即为求逆结果。

4、将步骤3输出结果乘以矩阵a2再加常量c2完成第二次仿射变换,得到s盒输出。

本申请实施例所提供的应用程序的启动装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本申请提供的实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。

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