S盒实现方法、装置、电子设备及计算机可读存储介质制造方法及图纸

技术编号:35484583 阅读:13 留言:0更新日期:2022-11-05 16:37
本公开涉及一种S盒实现方法、装置、电子设备及计算机可读存储介质,涉及密码算法技术领域,该S盒实现方法包括基于仿射变换矩阵对S盒在有限域GF(28)上的输入元素进行仿射变换,得到第一中间变量和第二中间变量;对第一中间变量在域GF(24)上进行第一乘法运算和乘方运算,将第一乘法运算的结果和乘方运算的结果进行异或运算,得到异或运算的结果;对异或运算的结果在域GF(24)上进行求逆运算,得到第三中间变量;将第二中间变量和第三中间变量在域GF(2)上进行第二乘法运算,并对第二乘法运算的结果进行异或运算,得到S盒的输出结果。本公开能够减少S盒线性部件所需逻辑门数量,压缩逻辑门电路深度,优化硬件实现效率。优化硬件实现效率。优化硬件实现效率。

【技术实现步骤摘要】
S盒实现方法、装置、电子设备及计算机可读存储介质


[0001]本公开涉及密码算法
,具体地,涉及一种S盒实现方法、装置、电子设备及计算机可读存储介质。

技术介绍

[0002]SM4算法具有便于软件和硬件实现、加解密速度快等优点,应用范围非常广泛。SM4算法中S盒是唯一的非线性部件,S盒的实现效率对整个算法的性能至关重要,目前,S盒实现方式主要包括基于查找表的实现和基于复合域的实现。其中,基于查找表的实现方式需要保存S盒所有可能的输出,实现效率较低。基于复合域的实现方式是将有限域GF(28)上的求逆运算转换到复合域GF((24)2)或GF(((22)2)2)上进行计算,计算过程中需要进行多次线性计算,使得S盒线性部件的电路实现所需的逻辑门数量较多,实现结构较为复杂,逻辑门电路深度较大,硬件实现效率较低。
[0003]因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。

技术实现思路

[0004]本公开的目的是提供一种S盒实现方法、装置、电子设备及计算机可读存储介质,能够减少S盒线性部件所需的逻辑门数量,简化基于复合域的S盒实现结构,压缩逻辑门的电路深度,优化硬件实现效率。
[0005]第一方面,本公开提供了一种S盒实现方法,包括:
[0006]基于仿射变换矩阵对S盒在有限域GF(28)上的输入元素进行仿射变换,得到第一中间变量和第二中间变量;
[0007]对所述第一中间变量在域GF(24)上进行第一乘法运算和乘方运算,将所述第一乘法运算的结果和所述乘方运算的结果进行异或运算,得到所述异或运算的结果;
[0008]对所述异或运算的结果在所述域GF(24)上进行求逆运算,得到第三中间变量;
[0009]将所述第二中间变量和所述第三中间变量在域GF(2)上进行第二乘法运算,并对第二乘法运算的结果进行异或运算,得到所述S盒的输出结果;
[0010]其中,所述仿射变换矩阵包括所述域GF(24)上关于所述输入元素的线性操作得到的第一线性矩阵、所述域GF(2)上关于所述输入元素的线性操作得到的第二线性矩阵。
[0011]可选的,所述基于仿射变换矩阵对S盒在有限域GF(28)上的输入元素进行仿射变换,得到第一中间变量的过程包括:
[0012]利用第一关系式对S盒在有限域GF(28)上的输入元素进行仿射变换,得到第一中间变量,所述第一关系式为Q=B
·
U
·
(A
·
X+C);
[0013]其中,Q为所述第一中间变量,B为所述域GF(24)上关于所述输入元素的线性操作得到的第一线性矩阵,X为所述输入元素,A为所述域GF(2)上的8
×
8矩阵,C为所述域GF(2)上的8
×
1矩阵,U为从有限域到复合域上的域同构仿射变换矩阵。
[0014]可选的,基于仿射变换矩阵对S盒在有限域GF(28)上的输入元素进行仿射变换,得到第二中间变量的过程包括:
[0015]利用第二关系式对S盒在有限域GF(28)上的输入元素进行仿射变换,得到第二中间变量,所述第二关系式为L=A
·
U
‑1·
M
·
U
·
(A
·
X+C);
[0016]其中,L为所述第二中间变量,A为所述域GF(2)上的8
×
8矩阵,C为所述域GF(2)上的8
×
1矩阵,U为从有限域到复合域上的域同构仿射变换矩阵,U
‑1为从复合域到有限域上的域同构仿射变换矩阵,M为所述域GF(2)上关于所述输入元素的线性操作得到的第二线性矩阵。
[0017]可选的,所述将所述第二中间变量和所述第三中间变量在域GF(2)上进行第二乘法运算,并对第二乘法运算的结果进行异或运算,得到所述S盒的输出结果的过程包括:
[0018]将所述第二中间变量划分为多个中间变量组,所述中间变量组的个数与所述第三中间变量的个数相同;
[0019]在域GF(2)上将第i个所述中间变量组中的各个所述第二中间变量分别与所述第i个所述第三中间变量进行第二乘法运算,i=1,2,

,n,n为所述中间变量组的个数;
[0020]将所述第二乘法运算的结果在所述域GF(2)上进行异或运算,得到所述S盒的输出结果。
[0021]可选的,所述对所述异或运算的结果在所述域GF(24)上进行求逆运算,得到第三中间变量的过程包括:
[0022]在所述域GF(24)上通过与非门对所述异或运算的结果进行处理得到第一子变量;
[0023]在所述域GF(24)上通过或非门对所述异或运算的结果进行处理得到第二子变量;
[0024]在所述域GF(24)上通过同或门对所述第一子变量和所述第二子变量进行处理得到第三子变量;
[0025]在所述域GF(24)上通过第一数据选择器根据选择逻辑从其多路输入数据中选择一路输入数据作为第四子变量输出,所述第一数据选择器的输入数据为所述异或运算的结果和预设值中的任意一个;
[0026]在所述域GF(24)上通过第二数据选择器根据所述选择逻辑从其多路输入数据中选择一路输入数据作为第三中间变量输出,所述输入数据为所述第一子变量、所述第二子变量、所述第三子变量、所述第四子变量、所述异或运算的结果及所述预设值中的任意一个。
[0027]可选的,所述基于仿射变换矩阵对S盒在有限域GF(28)上的输入元素进行仿射变换的过程包括:
[0028]基于仿射变换矩阵确定最小电路深度时包括最少逻辑门的逻辑门电路;
[0029]通过所述逻辑门电路对S盒在有限域GF(28)上的输入元素进行仿射变换。
[0030]可选的,所述基于仿射变换矩阵确定最小电路深度时包括最少逻辑门的逻辑门电路的过程包括:
[0031]基于仿射变换矩阵,通过递归算法按照电路深度和逻辑门数量从小到大的顺序进行迭代,确定最小电路深度时包括最少逻辑门的逻辑门电路。
[0032]第二方面,本公开提供了一种S盒实现装置,包括:
[0033]输入处理模块,用于基于仿射变换矩阵对S盒在有限域GF(28)上的输入元素进行
仿射变换,得到第一中间变量和第二中间变量;
[0034]乘加处理模块,用于对所述第一中间变量在域GF(24)上进行第一乘法运算和乘方运算,将所述第一乘法运算的结果和所述乘方运算的结果进行异或运算,得到所述异或运算的结果;
[0035]求逆处理模块,用于对所述异或运算的结果在所述域GF(24)上进行求逆运算,得到第三中间变量;
[0036]输出处理模块,用于将所述第二中间变量和所述第三中间变量在域GF(2)上进行第二乘法运算,并对第二乘法运算的结果进行异或运算,得到所述S盒的输出结果;
[0037]其中,所述仿射变换矩阵包括所述域GF(24)上关于所述输入元素的线本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种S盒实现方法,其特征在于,包括:基于仿射变换矩阵对S盒在有限域GF(28)上的输入元素进行仿射变换,得到第一中间变量和第二中间变量;对所述第一中间变量在域GF(24)上进行第一乘法运算和乘方运算,将所述第一乘法运算的结果和所述乘方运算的结果进行异或运算,得到所述异或运算的结果;对所述异或运算的结果在所述域GF(24)上进行求逆运算,得到第三中间变量;将所述第二中间变量和所述第三中间变量在域GF(2)上进行第二乘法运算,并对第二乘法运算的结果进行异或运算,得到所述S盒的输出结果;其中,所述仿射变换矩阵包括所述域GF(24)上关于所述输入元素的线性操作得到的第一线性矩阵、所述域GF(2)上关于所述输入元素的线性操作得到的第二线性矩阵。2.根据权利要求1所述的S盒实现方法,其特征在于,所述基于仿射变换矩阵对S盒在有限域GF(28)上的输入元素进行仿射变换,得到第一中间变量的过程包括:利用第一关系式对S盒在有限域GF(28)上的输入元素进行仿射变换,得到第一中间变量,所述第一关系式为Q=B
·
U
·
(A
·
X+C);其中,Q为所述第一中间变量,B为所述域GF(24)上关于所述输入元素的线性操作得到的第一线性矩阵,X为所述输入元素,A为所述域GF(2)上的8
×
8矩阵,C为所述域GF(2)上的8
×
1矩阵,U为从有限域到复合域上的域同构仿射变换矩阵。3.根据权利要求1所述的S盒实现方法,其特征在于,基于仿射变换矩阵对S盒在有限域GF(28)上的输入元素进行仿射变换,得到第二中间变量的过程包括:利用第二关系式对S盒在有限域GF(28)上的输入元素进行仿射变换,得到第二中间变量,所述第二关系式为L=A
·
U
‑1·
M
·
U
·
(A
·
X+C);其中,L为所述第二中间变量,A为所述域GF(2)上的8
×
8矩阵,C为所述域GF(2)上的8
×
1矩阵,U为从有限域到复合域上的域同构仿射变换矩阵,U
‑1为从复合域到有限域上的域同构仿射变换矩阵,M为所述域GF(2)上关于所述输入元素的线性操作得到的第二线性矩阵。4.根据权利要求1所述的S盒实现方法,其特征在于,所述将所述第二中间变量和所述第三中间变量在域GF(2)上进行第二乘法运算,并对第二乘法运算的结果进行异或运算,得到所述S盒的输出结果的过程包括:将所述第二中间变量划分为多个中间变量组,所述中间变量组的个数与所述第三中间变量的个数相同;在域GF(2)上将第i个所述中间变量组中的各个所述第二中间变量分别与所述第i个所述第三中间变量进行第二乘法运算,i=1,2,

,n,n为所述中间变量组的个数;将所述第二...

【专利技术属性】
技术研发人员:魏曼刘仁章
申请(专利权)人:成都卫士通信息产业股份有限公司
类型:发明
国别省市:

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

1