[发明专利]基于塔域优化S盒的SM4加解密算法并行化实现方法有效
申请号: | 202111453118.6 | 申请日: | 2021-12-01 |
公开(公告)号: | CN114244496B | 公开(公告)日: | 2023-07-18 |
发明(设计)人: | 龚征;王磊;郝金福;陈锦海;谢南江;汤宇锋;温雅敏 | 申请(专利权)人: | 华南师范大学;广东财经大学 |
主分类号: | H04L9/06 | 分类号: | H04L9/06 |
代理公司: | 广州市华学知识产权代理有限公司 44245 | 代理人: | 李斌 |
地址: | 510631 广东省广州市天*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 优化 sm4 解密 算法 并行 实现 方法 | ||
1.基于塔域优化S盒的SM4加解密算法并行化实现方法,其特征在于,包括下述步骤:
(1)密码编排:
对第i轮加密的32比特密钥RKi进行复制,变换得到轮密钥即
其中,表示第i轮的轮密钥,表示第i轮轮密钥第j位的第0个复制,共复制512个,RK[i][j]表示比特密钥的第i轮第j位;
(2)数据编排:
构建比特矩阵转置变换函数Trans(·),输入512组128比特的矩阵M[512][128],输出变换比特矩阵N[128][512],将变换比特矩阵分为4个128*128比特方阵,对比特方阵进行比特粒度转置,实现512组消息的同一比特存储在同一寄存器上;
(3)迭代计算:
将变换比特矩阵的数据N[128][512]拆分为4个32*512比特矩阵结合轮密钥进行32次迭代计算:
其中,为异或运算,T(·)为合成变换函数,由线性变换L(·)和非线性变换τ(·)复合而成T(·)=L(τ(·));
所述非线性变换τ(·)由4个S盒查表构成;所述S盒基于塔域转换成布尔表达式形式,采用选择函数结合bitslice技术和SIMD技术进行布尔运算并行实现;
所述非线性变换τ(·)实现过程为:
设非线性变换函数输入的32*512比特数据为A512,将其拆分为4个8*512比特矩阵即:
非线性变换τ(·)由4个布尔运算实现,表示为:
所述S盒基于塔域转换成布尔表达式形式,采用选择函数结合bitslice技术和SIMD技术进行布尔运算并行实现,具体为:
所述S盒由一次非线性的有限域求逆和两次线性仿射变换组成:
S(x)=A(Ax+c)-1+c
其中,A,c∈GF(2)且:
有限域求逆运算在GF(28)上进行,其求逆参数的不可约多项式为f(x)=x8+x7+x6+x5+x4+x2+1,根据有限域的性质,通过同构变换将GF(28)上的有限域运算转换到塔域GF(((22)2)2)上进行,S盒计算过程包括同构映射矩阵T的计算,塔域求逆运算的实现和S盒塔域优化的实现;
所述同构映射矩阵T的计算步骤为:
将GF(28)上的元素由一个8*8矩阵同构映射到塔域GF(((22)2)2)上,对任意元素b=(b7,b6,b5,b4,b3,b2,b1,b0)且b∈GF(28)有:
b=γ1Y16+γ0Y,γ1,γ0∈GF(24)
γ1=Γ3Z4+Γ2Z,γ0=Γ1Z4+Γ0Z,Γ3,Γ2,Γ1,Γ0∈GF(22)
Γ3=g7W2+g6W,Γ2=g5W2+g4W,Γ1=g3W2+g2W,
Γ0=g1W2+g0W,gi∈GF(2),i∈[0,7]
则
b=g7W2Z4Y16+g6WZ4Y16+g5W2ZY16+g4WZY16+g3W2Z4Y+g2WZ4Y+g1W2ZY+g0WZY
通过搜索GF(22)的正规基[W2,W],求出其在GF(28)下多项式基的表示,得到W=0x5d,W2=0x5c;
通过搜索GF(24)/GF(22)的正规基[Z4,Z],求出其在GF(28)下多项式基的表示,得到s(z)=z2+z+N,N=W2=0x5c,则Z=0x0c,Z4=0x0d;
通过搜索GF(28)/GF(24)的正规基[Y16,Y],求出其在GF(28)下多项式基的表示,得到r(y)=y2+y+v,v=N2Z,则Y=0xef,Y16=0xee;
得到同构映射矩阵T:
所述塔域求逆运算的实现步骤为:
将GF(28)当作GF(24)上的二次扩域,且GF(24)上的不可约多项式为r(y)=y2+τy+v,其中τ,v∈GF(24);设Y为r(y)的根,GF(28)域的正规基[Y16,Y],则对GF(28)上的任意元素g=γ1Y16+γ0Y,γ1,γ0∈GF(24),得到将GF(28)分解为GF(24)的乘法运算和求逆运算:
g-1=[γ1γ0τ2+(γ1+γ0)2v]-1γ0Y16+[γ1γ0τ2+(γ1+γ0)2v]-1γ1Y (1);
将GF(24)当作GF(22)上的二次扩域,且GF(22)上的不可约多项式为s(z)=z2+Tz+N,其中T,N∈GF(22);设Z为s(z)的根,GF(24)域的正规基[Z4,Z],则对GF(24)上的任意元素γ=Γ1Z4+Γ0Z,λ=Λ1Z4+Λ0Z,Γ1,Γ0,Λ1,Λ0∈GF(22),得到将GF(24)分解为GF(22)的乘法运算:
γλ=[Γ1Λ1T+(Γ1+Γ0)(Λ1+Λ0)NT2]Z4+[Γ0Λ0T+(Γ1+Γ0)(Λ1+Λ0)NT2]Z;
将GF(22)当作GF(2)上的二次扩域,且GF(2)上的不可约多项式为t(w)=w2+w+1;设W为t(w)的根,GF(22)域的正规基[W2,W],则对GF(22)上的任意元素Γ=u1W2+u0W,Δ=v1W2+v0W,u1,u0,v1,v0∈GF(2),得到将GF(22)分解为GF(2)的乘法运算:
所述线性变换L(·)包括循环左移和异或操作,所述循环左移操作通过改变索引的方式实现;
迭代计算后进行反序运算,输出128*512比特矩阵N′;
(4)数据反编排:
构造比特矩阵转置函数Trans_Inv(·),将128*512比特矩阵N′输入,输出512*128比特的转置矩阵M′;
将128*512比特矩阵N′分成4个128*128比特方阵,对比特方阵进行比特粒度转置,得到512*128比特数据对应512组消息经SM4加密后的512组密文,完成并行加密。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南师范大学;广东财经大学,未经华南师范大学;广东财经大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111453118.6/1.html,转载请声明来源钻瓜专利网。