CN114244496B - 基于塔域优化s盒的sm4加解密算法并行化实现方法 - Google Patents

基于塔域优化s盒的sm4加解密算法并行化实现方法 Download PDF

Info

Publication number
CN114244496B
CN114244496B CN202111453118.6A CN202111453118A CN114244496B CN 114244496 B CN114244496 B CN 114244496B CN 202111453118 A CN202111453118 A CN 202111453118A CN 114244496 B CN114244496 B CN 114244496B
Authority
CN
China
Prior art keywords
bit
box
matrix
transformation
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111453118.6A
Other languages
English (en)
Other versions
CN114244496A (zh
Inventor
龚征
王磊
郝金福
陈锦海
谢南江
汤宇锋
温雅敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China Normal University
Guangdong University of Business Studies
Original Assignee
South China Normal University
Guangdong University of Business Studies
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by South China Normal University, Guangdong University of Business Studies filed Critical South China Normal University
Priority to CN202111453118.6A priority Critical patent/CN114244496B/zh
Publication of CN114244496A publication Critical patent/CN114244496A/zh
Application granted granted Critical
Publication of CN114244496B publication Critical patent/CN114244496B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种基于塔域优化S盒的SM4加解密算法并行化实现方法,包括:构建比特矩阵转置变换函数Trans(·),将输入的比特矩阵输出其变换比特矩阵,将变换比特矩阵分为比特方阵进行比特粒度的转置;对加密的比特密钥进行复制,变换得到轮密钥;将变换比特矩阵的数据拆分为比特矩阵,结合轮密钥进行迭代计算,使用塔域技术优化S盒运算效率,完成迭代计算后进行反序运算,输出比特矩阵;构造比特矩阵转置函数Trans_Inv(·),输入输出的比特矩阵,输出比特转置矩阵;将输出比特矩阵分成比特方阵,对比特方阵进行比特粒度转置,得到对应512组消息经SM4加密后的密文。本发明使用塔域优化技术优化了S盒的运算效率,结合比特切片技术和SIMD技术的实现512组明文消息的并行加解密。

Description

基于塔域优化S盒的SM4加解密算法并行化实现方法
技术领域
本发明属于信息安全的技术领域,具体涉及一种基于塔域优化S盒的SM4加解密算法并行化实现方法。
背景技术
SM4(原名SMS4)是中华人民共和国政府采用的一种分组密码标准,由国家密码局于2012年3月21日批准为行业标准,主要用于数据加密。
SIMD(Single Instruction Multiple Data)是单指令流多数据技术,是一种采用一个控制器来控制多个处理器,同时对一组数据(又称“数据向量”)中的每一个分别执行相同的操作从而实现空间上的并行性的技术。在微处理器中,单指令流多数据流技术则是一个控制器控制多个平行的处理微元,例如X86架构上的SSE,AVX,AVX2,AVX-512指令集和ARM架构上的NEON指令集。通过这种技术,可以在一个周期内一个指令可以完成多个数据操作。
bitslice技术最早提出用于DES算法的软件性能提升上,是一种将多个操作数的同一位放置在一个字中的技术。将多组消息中的同一位都放置在一个寄存器中,这样操作可以将多组消息并行进行加密操作,极大提升加解密效率。
塔域优化技术可以将S盒上对GF(28)的元素求逆转换为GF(2)上的运算。首先将GF(28)的元素求逆运算转换到GF(24)上的运算,进一步转化为GF(22)上的运算,最后将S盒转化成GF(2)上的布尔表达式,依此能够对SM4算法中S盒操作使用bitslice技术实现高效的并行处理。
在现有技术的SM4算法快速软件实现方法的方案中,在X86架构处理器下实现了高性能的SM4实现,采用SIMD技术实现bitslice方案,并使用选择函数优化S盒转换成布尔表达式形式,能够抵抗缓存计时攻击,并使用SIMD技术的AVX2指令和bitslice技术实现256组消息的并行加解密,该方案的加密部分实现包括三部分:数据编排、迭代计算、数据反编排。但是在其实现的快速SM4方案中,S盒用一组布尔表达式替代,该表达式的逻辑门数达到了473门,严重制约了加密效率,并且方案没有提供相应安全的工作模式实现,实际应用中容易遭受攻击。
发明内容
本发明的主要目的在于克服现有技术的缺点与不足,提供一种基于塔域优化S盒的SM4加解密算法并行化实现方法,该方法使用SIMD技术的AVX-512指令集和bitslice技术实现了512组明文消息的并行加/解密,并基于塔域将S盒布尔表达式的逻辑门数优化到115门,进一步提高了加/解密效率,同时实现了该方案的工作模式,包括CTR和GCM模式,提升了此方案的安全性和实用性。
为了达到上述目的,本发明采用以下技术方案:
本发明提供了一种基于塔域优化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技术进行布尔运算并行实现;
所述线性变换L(·)包括循环左移和异或操作,所述循环左移操作通过改变索引的方式实现;
迭代计算后进行反序运算,输出128*512比特矩阵N′;
(4)数据反编排:
构造比特矩阵转置函数Trans_Inv(·,将128*512比特矩阵N′输入,输出512*128比特的转置矩阵M′;
将128*512比特矩阵N′分成4个128*128比特方阵,对比特方阵进行比特粒度转置,得到512*128比特数据对应512组消息经SM4加密后的512组密文,完成并行加密。
作为优选的技术方案,所述非线性变换τ(·)实现过程为:
设非线性变换函数输入的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=γ1Y160Y,γ10∈GF(24)
γ1=Γ3Z42Z,γ0=Γ1Z40Z,Γ3210∈GF(22)
Γ3=g7W2+g6W,Γ2=g5W2+g4W,Γ1=g3W2+g2W,
Γ0=g1W2+g0W,gi∈GF(2),i∈[0,7]
b=g7W2Z4Y1++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=γ1Y160Y,γ10∈GF(24),得到将GF(28)分解为GF(24)的乘法运算和求逆运算:
g-1=[γ1γ0τ2+(γ10)2v]-1γ0Y16+[γ1γ0τ2+(γ10)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)上的任意元素γ=Γ1Z40Z,λ=Λ1Z40Z,Γ1,Γ010∈GF(22),得到将GF(24)分解为GF(22)的乘法运算:
γλ=[Γ1Λ1T+(Γ10)(Λ10)NT2]Z4+[Γ0Λ0T+(Γ10)(Λ10)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)的乘法运算:
作为优选的技术方案,所述S盒塔域优化的实现步骤为:
使用5个模块来实现S盒塔域优化,包括输入模块、头部模块、中部模块、尾部模块和输出模块;
所述输入模块实现S盒中放射变换1和同构映射T,需要逻辑门数为22,由17个XOR门和5个NOT门组成,其中输入比特序列为bi,i∈[0,7],输出比特序列为gi,i∈[0,7],mj,j∈[0,9],实现过程为:
则输出得到
m={t12,t9,t17,b1,t11,t4,t16,t8,t3,t6};
其中,表示异或逻辑运算XOR,/>表示非逻辑运算NOT,ti,i∈[1,17]表示输入模块中的临时序列;
所述头部模块实现公式(1)中γ1γ0τ2+(γ10)2v的运算,记为φ,展开到比特级为:
根据公式优化得到φ的最终表达式,所需逻辑门数为24:
其中,gi,i∈[0,7],mj,j∈[0,9]均为头部模块的输入比特序列;
则φ的最终表达式的实现过程为:
t1=g5·g1,t2=m1·m0,t3=g4·g0,t4=g7·g3,
t4=m9·m8,t6=g6|g2,t7=g7|g3,t8=m9|m8,
t9=m7|m6,t10=m3·m2,t11=m5·m4,t12=m3|m2,
φ={p3,p2,p1,p0};
其中,pi,i∈[0,3]表示输出序列,tj,j∈[1,20]表示头部模块中的临时序列,·表示与逻辑运算AND,|表示或逻辑运算OR;
所述中部模块是一个4进4出结构的S盒,实现GF(24)上求逆运算;
中部模块的输入序列为φ最终表达式,输出序列为λ,基于SAT求解布尔函数表达式,所需逻辑门数为15:
t0=p1·p2,t1=p0·p3,t2=p1·p3,t3=p0·p2,
t4=t0·t2,t6=t5|p3,t7=p0|t2,
l3=t0·t9,t11=p1|t5,
t12=p2|t2,
λ={l3,l2,l1,l0};
其中,tj,j∈[0,12]表示中部模块中的临时序列,li,i∈[0,3]为输出序列;
设公式(1)中[γ1γ0τ2+(γ10)2v]-1=λ,所述尾部模块实现公式(1)中λγ0和λγ1的运算,输入比特序列为g,m,λ,输出序列为e,
λ=l3W2Z4+l2WZ4+l1W2Z+l0WZ,
e17=g2·l2,e16=g3·l3,e15=m8·k4,e14=m2·k1,
e13=g2·l2,e12=m6·k3,e11=g0·l0,e10=g1·l1,
e9=m0·k0,e8=g6·l2,e7=g7·l3,e6=m9·k4,
e5=m3·k1,e4=m5·k2,e3=m7·k3,e2=g4·l0,
e1=g5·l1,e0=m1·k0
其中,λγ0和λγ1表达式由比特序列ei,i∈[0,17]异或组成,需要逻辑门数23;
所述输出模块实现同构映射T-1和仿射变换2,需要逻辑门数为31,由28个XOR门和3个NOT门组成,输入比特序列为ei,i∈[0,17],输出为S(b),具体为:
其中,ri,i∈[0,11],tj,j∈[1,16]均表示输出模块的临时序列;
得到输出S(b)={t15,t13,t8,t14,t11,t9,t12,t16}。
作为优选的技术方案,所述线性变换L(·)实现过程为:
设线性变换的输入为输出为/>表示为:
其中,为异或运算,%为取余运算。
作为优选的技术方案,所述反序计算输出比特矩阵N′由4个32*512比特矩阵组成,计算公式为:
其中表示经过32次迭代计算后的最后4个32*512比特矩阵。
作为优选的技术方案,所述对比特方阵进行比特粒度装置使用AVX-512指令集实现。
作为优选的技术方案,所述S盒基于塔域转换成布尔表达式形式,布尔表达式使用AVX-512指令集组成。
本发明与现有技术相比,具有如下优点和有益效果:
1、提升了加密性能:本发明采用了塔域技术优化S盒,并结合SIMD技术中的AVX-512指令集和比特切片技术,实现了512组明文消息的并行化加解密,极大提升了加密效率;
2、提升了运算效率:本发明使用塔域优化S盒,将SM4的S盒布尔表达式的逻辑门数优化到115门,降低了计算复杂度,提升了S盒的运算效率和本发明Bitslice-SM4算法的鲁棒性;
3、提升了加密方案的安全性和实用性:本发明基于OpenSSL开源库实现了本发明Bitslice-SM4算法的CTR和GCM工作模式,在实际应用场景下更具有安全性和实用性
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例基于塔域优化S盒的SM4算法并行化实现方法的流程图;
图2为本发明实施例迭代计算步骤的示意图;
图3为本发明实施例塔域优化S盒的计算流程图;
图4为本发明实施例塔域优化S盒的实现结构示意图;
图5为本发明实施例基于塔域优化S盒的SM4算法的GCM模式实现示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
如图1所示,在本申请的一个实施例中提供了一种基于塔域优化S盒的SM4算法并行化实现方法,使用SIMD(单指令流多数据)技术的AVX-512指令集和bitslice(比特切片)技术将512组128-bit明文消息同时并行加密,生成512组128-bit明文消息;将本发明提出的方法记作Bitslice-SM4算法,具体优化实现包括四部分:密钥编排、数据编排、迭代计算和数据反编排流程;对于密钥编排使用SIMD(单指令流多数据)技术优化;对数据(反)编排主要采用SIMD技术实现数据转置和优化;对于迭代计算使用塔域方法优化S盒的布尔表达式;本方法具体过程如下:
1、密码编排步骤:
对第i轮加密的32比特密钥RKi进行复制,变换得到轮密钥
其中,表示第i轮的轮密钥,/>表示第i轮轮密钥第j位的第0个复制,共有512组明文信息,故需复制512个,RK[i][j]表示比特密钥的第i轮第j位;
2、数据编排步骤:
本发明使用AVX-512指令集对512组明文消息进行SM4算法的并行加解密;首先构建一个比特矩阵转置变换函数Trans(·),输入512组128比特的矩阵M[512][128],输出变换比特矩阵N[128][512];将变换比特矩阵分为4个128*128比特方阵,对比特方阵进行比特粒度转置,使用vpxodr、vpord、vpshufb等指令集实现,使经数据编排后的512组消息的同一比特存储在同一寄存器上;
3、迭代计算步骤:
如图2所示,将变换比特矩阵的数据N[128][512]拆分为4个32*512比特矩阵结合轮密钥/>进行32次迭代计算:
其中,为异或运算,T(·)为合成变换函数,输入输出均为32*512比特数据,由线性变换L(·)和非线性变换τ(·)复合而成T(·)=L(τ(·));
非线性变换τ(·)由4个S盒查表构成;将S盒基于塔域转换成布尔表达式形式,表达式使用vpandd、vpxordr、vpord和vpandnd等AVX-512指令集组成,采用选择函数结合bitslice技术和SIMD技术进行布尔运算并行实现,具体为:
设非线性变换函数输入的32*512比特数据为A512,将其拆分为4个8*512比特矩阵即:
非线性变换τ(·)由4个布尔运算实现,表示为:
线性变换L(·)包括循环左移和异或操作,循环左移操作通过改变索引的方式实现,具体为:
设线性变换的输入为输出为/>表示为:
其中,为异或运算,%为取余运算;
迭代计算后进行反序运算,输出128*512比特矩阵N′,具体为:
输出比特矩阵N′由4个32*512比特矩阵组成,计算公式为:
其中表示经过32次迭代计算后的最后4个32*512比特矩阵。
S盒操作是SM4算法中最耗时的一部分,因此S盒的实现是快速SM4实现的重点也是难点。传统的SM4快速实现采用查表法,难以抵抗缓存-计时攻击,也不有利于SIMD技术的并行优化;传统的快使SM4方案采用选择函数将S盒转换成逻辑门数为473的布尔表达式,结合bitslice技术和SIMD技术进行布尔运算即可并行实现S盒操作;在现有方案的基础上,本发明基于塔域将S盒布尔表达式的逻辑门数由473门降到115门,进一步提高了加密效率,以下进一步的说明S盒基于塔域优化的实现过程:
SM4算法的S盒由一次非线性的有限域求逆和两次线性仿射变换组成:
S(x)=A(Ax+c)-1+c
其中,A,c∈GF(2)且:
有限域求逆运算在GF(28)上进行,定义S盒求逆参数的不可约多项式为f(x)=x8+x7+x6+x5+x4+x2+1;
S盒运算中的仿射变换比较容易实现,而GF(28)上的求逆运算比较复杂,根据有限域的性质,通过同构变换将GF(28)上的有限域运算转换到塔域GF(((22)2)2)上进行,如图3所示,S盒计算过程包括同构映射矩阵T的计算,塔域求逆运算的实现和S盒塔域优化的实现,具体步骤为:
3.1、同构映射矩阵T的计算步骤为:
将GF(28)上的元素由一个8*8矩阵同构映射到塔域GF(((22)2)2)上,对任意元素b=(b7,b6,b5,b4,b3,b2,b1,b0)且b∈GF(28)有:
b=γ1Y160Y,γ10∈GF(24)
γ1=Γ3Z42Z,γ0=Γ1Z40Z,Γ3210∈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
据此,可以求同构映射矩阵T,另外需要计算W、Z、Y和W2、Z4、Y16等值,可以通过搜索得到:
通过搜索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:
3.2塔域求逆运算的实现步骤为:
将GF(28)当作在GF(24)上的二次扩域,且GF(24)上的不可约多项式为r(y)=y2+τy+v,其中τ,v∈GF(24);设Y为r(y)的根,GF(28)域的正规基[Y16,Y],则对GF(28)上的任意元素g=γ1Y160Y,γ10∈GF(24),得到将GF(28)分解为GF(24)的乘法运算和求逆运算:
g-1=[γ1γ0τ2+(γ10)2v]-1γ0Y16+[γ1γ0τ2+(γ10)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)上的任意元素γ=Γ1Z40Z,λ=Λ1Z40Z,Γ1010∈GF(22),得到将GF(24)分解为GF(22)的乘法运算:
γλ=[Γ1Λ1T+(Γ10)(Λ10)NT2]Z4+[Γ0Λ0T+(Γ10)(Λ10)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)的乘法运算:
这样便可以将在GF(28)上的求逆运算转换成GF(24)上的运算,进一步转换成GF(22)上的运算,以此来降低GF(28)上逆运算的计算复杂度。
3.3S盒塔域优化的实现步骤为:
如图4所示,使用5个模块来实现S盒塔域优化,包括输入模块、头部模块、中部模块、尾部模块和输出模块;
其中,输入模块实现S盒中放射变换1和同构映射T,需要逻辑门数为22,由17个XOR门和5个NOT门组成,其中输入比特序列为bi,i∈[0,7],输出比特序列为gi,i∈[0,7],mj,j∈[0,9],实现过程为:
则输出得到
m={t12,t9,t17,b1,t11,t4,t16,t8,t3,t6};
其中,表示异或逻辑运算XOR,/>表示非逻辑运算NOT,ti,i∈[1,17]表示输入模块中的临时序列;
头部模块实现公式(1)中γ1γ0τ2+(γ10)2v的运算,记为φ,展开到比特级为:
根据公式优化得到φ的最终表达式,在比特序列g和m已知的情况下,实现该表达式所需逻辑门数为24:
其中,gi,i∈[0,7],mj,j∈[0,9]均为头部模块的输入比特序列;
则φ的最终表达式的实现过程为:
t1=g5·g1,t2=m1·m0,t3=g4·g0,t4=g7·g3,
t4=m9·m8,t6=g6|g2,t7=g7|g3,t8=m9|m8,
t9=m7|m6,t10=m3·m2,t11=m5·m4,t12=m3|m2,
φ={p3,p2,p1,p0};
其中,pi,i∈[0,3]表示输出序列,tj,j∈[0,20]表示头部模块中的临时序列,·表示与逻辑运算AND,|表示或逻辑运算OR;
中部模块实现GF(24)上求逆运算,是一个结构为4进4出的S盒;
中部模块的输入序列为φ最终表达式,输出序列为λ,基于SAT求解布尔函数表达式,得到逻辑门数为15的结果:
t0=p1·p2,t1=p0·p3,t2=p1·p3,t3=p0·p2,
t4=t0·t2,t6=t5|p3,t7=p0|t2,
l3=t0·t9,t11=p1|t5,
t12=p2|t2,
λ={l3,l2,l1,l0};
其中,tj,j∈[0,12]表示中部模块中的临时序列,li,i∈[0,3]为输出序列;
如下表所示,当中部模块输入为x时,输出的S(x)值;
x 0 1 2 3 4 5 6 7 8 9 a b c d e f
S(x) 0 8 4 c 2 f 7 6 1 d a e 3 9 b 5
设公式(1)中[γ1γ0τ2+(γ10)2v]-1=λ,
则尾部模块实现公式(1)中λγ0和λγ1的运算,输入比特序列为g,m,λ,输出序列为e,设
λ=l3W2Z4+l2WZ4+l1W2Z+l0WZ,
e17=g2·l2,e16=g3·l3,e15=m8·k4,e14=m2·k1,
e13=g2·l2,e12=m6·k3,e11=g0·l0,e10=g1·l1,
e9=m0·k0,e8=g6·l2,e7=g7·l3,e6=m9·k4,
e5=m3·k1,e4=m5·k2,e3=m7·k3,e2=g4·l0,
e1=g5·l1,e0=m1·k0
其中,ki,i∈[0,4]表示尾部模块中的临时序列,λγ0和λγ1表达式由比特序列ei,i∈[0,17]异或组成;
在尾部模块实现比特序列k和e,需要逻辑门数23,输出比特序列ei,i∈[0,17];
输出模块实现同构映射T-1和仿射变换2,需要逻辑门数为31,由28个XOR门和3个NOT门组成,输入比特序列为ei,i∈[0,17],输出为S(b),具体为:
其中,ri,i∈[0,11],tj,j∈[1,16]均表示输出模块的临时序列;
得到输出S(b)={t15,t13,t8,t14,t11,t9,t12,t16}。
4、数据反编排步骤:
完成迭代运算后的128*512比特数据需要恢复到512*128比特数据,构造一个比特矩阵转置函数Trans_Inv(·),将128*512比特矩阵N′输入,输出512*128比特的转置矩阵M′;
将128*512比特矩阵N′分成4个128*128比特方阵,对比特方阵进行比特粒度转置,得到512*128比特数据对应512组消息经SM4加密后的512组密文,完成并行加密。
本发明将塔域优化技术与比特切片技术相结合,采用SIMD技术的AVX-512指令集实现了512组明文消息的并行加解密;与现有技术相比,使用AVX-512指令集和比特切片技术能提升并行加密的明文数量;使用塔域技术可以将SM4的S盒布尔表达式的逻辑门数优化到115门,极大提升了S盒的运算效率,因此提升SM4算法的整体性能;同时支持CTR和GCM模式的并行加密,提升了方案的安全性和实用性。
使用分组密码加密明文的方式有很多种,主流的操作模式有电子密码本模式(ECB)、密码分组链接模式(CBC)、密码反馈模式(CFB)、输出反馈模式(OFB)、计数器模式(CTR)和伽罗瓦计数器模式(GCM)。本发明使用比特切片技术优化的SM4算法(Bitslice-SM4)可以支持ECB、CTR和GCM模式的并行加密,或者支持ECB、CBC、CFB、CTR和GCM模式的并行解密。GCM可以提供对消息的加密和完整性校验,在实际场景中有广泛的应用,本发明对Bitslice-SM4算法进行了GCM模式的实现,具体为:
Galois/Counter模式是一种NIST标准化的用于身份认证加密的分组密码模式,可以看作是CTR模式加上GMAC进行哈希计算的一种组合模式。GCM模式先使用计数器模式(CTR)对数据进行加密,然后再计算MAC值,如图5所示,加密时,首先利用IV和序列号得到初始化计数器;接着,增加初始计数器值,并加密该值,本发明实现的方案一次对512组明文消息进行并行加密,将得到的结果与明文分组进行异或计算;然后需要执行一个链式伽罗瓦域乘法完成认证;128位的认证密钥H是使用分组密码对全零的输入分组加密生成的,然后对于每个16字节的分组计算认证标签,所有计算基于128位的伽罗瓦域GF(2128),且不可约多项式为P(x)=x128+x7+x2+x+1。认证加密过程如图5所示,图5中的Bitslice-SM4-Enc(EK)表示用对称秘钥EK对512组输入做比特切片化的SM4并行加密运算,SM4-Enc(EK)表示用对称秘钥EK对1组输入做普通的SM4加密运算;最后,密文接收者会收到密文、IV(计数器CTR的初始值)和MAC值(auth tag)。
本发明在现有的快速SM4实现方案基础上,利用SIMD(单指令流多数据)技术的AVX-512指令集和bitslice(比特切片)技术实现多组消息并行加密,比现有方案多出一倍的并行加密能力。本发明同时使用塔域的方法优化S盒的布尔表达式,比使用选择函数方法优化得到了更好的结果。此外,本发明实现了该方案的CTR(计数器)和GCM(伽罗瓦/计数器)工作模式,有效提高了该方案的安全性和实用性。在Intel i7-1160G7平台上,本发明实现的快速SM4在ECB工作模式下加密性能达到了6542Mbps,比其他方案的实测速度要快出1.48~1.78倍。
需要说明的是,对于前述的各方法实施例,为了简便描述,将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (6)

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=γ1Y160Y,γ1,γ0∈GF(24)
γ1=Γ3Z42Z,γ0=Γ1Z40Z,Γ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=γ1Y160Y,γ1,γ0∈GF(24),得到将GF(28)分解为GF(24)的乘法运算和求逆运算:
g-1=[γ1γ0τ2+(γ10)2v]-1γ0Y16+[γ1γ0τ2+(γ10)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)上的任意元素γ=Γ1Z40Z,λ=Λ1Z40Z,Γ1,Γ0,Λ1,Λ0∈GF(22),得到将GF(24)分解为GF(22)的乘法运算:
γλ=[Γ1Λ1T+(Γ10)(Λ10)NT2]Z4+[Γ0Λ0T+(Γ10)(Λ10)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组密文,完成并行加密。
2.根据权利要求1所述基于塔域优化S盒的SM4加解密算法并行化实现方法,其特征在于,所述S盒塔域优化的实现步骤为:
使用5个模块来实现S盒塔域优化,包括输入模块、头部模块、中部模块、尾部模块和输出模块;
所述输入模块实现S盒中放射变换1和同构映射T,需要逻辑门数为22,由17个XOR门和5个NOT门组成,其中输入比特序列为bi,i∈[0,7],输出比特序列为gi,i∈[0,7],mj,j∈[0,9],实现过程为:
则输出得到
m={t12,t9,t17,b1,t11,t4,t16,t8,t3,t6};
其中,表示异或逻辑运算XOR,/>表示非逻辑运算NOT,ti,i∈[1,17]表示输入模块中的临时序列;
所述头部模块实现公式(1)中γ1γ0τ2+(γ10)2v的运算,记为φ,展开到比特级为:
根据公式优化得到φ的最终表达式,所需逻辑门数为24:
其中,gi,i∈[0,7],mj,j∈[0,9]均为头部模块的输入比特序列;
则φ的最终表达式的实现过程为:
t1=g5·g1,t2=m1·m0,t3=g4·g0,t4=g7·g3
t4=m9·m8,t6=g6|g2,t7=g7|g3,t8=m9|m8
t9=m7|m6,t10=m3·m2,t11=m5·m4,t12=m3|m2
φ={p3,p2,p1,p0};
其中,pi,i∈[0,3]表示输出序列,tj,j∈[1,20]表示头部模块中的临时序列,·表示与逻辑运算AND,|表示或逻辑运算OR;
所述中部模块是一个4进4出结构的S盒,实现GF(24)上求逆运算;中部模块的输入序列为φ最终表达式,输出序列为λ,基于SAT求解布尔函数表达式,所需逻辑门数为15:
t0=p1·p2,t1=p0·p3,t2=p1·p3,t3=p0·p2
t4=t0·t2t6=t5|p3,t7=p0|t2
l3=t0·t9,t11=p1|t5
t12=p2|t2
λ={l3,l2,l1,l0};
其中,tj,j∈[0,12]表示中部模块中的临时序列,li,i∈[0,3]为输出序列;
设公式(1)中[γ1γ0τ2+(γ10)2v]-1=λ,所述尾部模块实现公式(1)中λγ0和λγ1的运算,输入比特序列为g,m,λ,输出序列为e,
λ=l3W2Z4+l2WZ4+l1W2Z+l0WZ,
e17=g2·l2,e16=g3·l3,e15=m8·k4,e14=m2·k1
e13=g2·l2,e12=m6·k3,e11=g0·l0,e10=g1·l1
e9=m0·k0,e8=g6·l2,e7=g7·l3,e6=m9·k4
e5=m3·k1,e4=m5·k2,e3=m7·k3,e2=g4·l0
e1=g5·l1,e0=m1·k0
其中,λγ0和λγ1表达式由比特序列ei,i∈[0,17]异或组成,需要逻辑门数23;
所述输出模块实现同构映射T-1和仿射变换2,需要逻辑门数为31,由28个XOR门和3个NOT门组成,输入比特序列为ei,i∈[0,17],输出为S(b),具体为:
其中,ri,i∈[0,11],tj,j∈[1,16]均表示输出模块的临时序列;
得到输出S(b)={t15,t13,t8,t14,t11,t9,t12,t16}。
3.根据权利要求1所述基于塔域优化S盒的SM4加解密算法并行化实现方法,其特征在于,所述线性变换L(·)实现过程为:
设线性变换的输入为输出为/>表示为:
其中,为异或运算,%为取余运算。
4.根据权利要求1所述基于塔域优化S盒的SM4加解密算法并行化实现方法,其特征在于,所述反序计算输出比特矩阵N′由4个32*512比特矩阵组成,计算公式为:
其中表示经过32次迭代计算后的最后4个32*512比特矩阵。
5.根据权利要求1所述基于塔域优化S盒的SM4加解密算法并行化实现方法,其特征在于,所述对比特方阵进行比特粒度装置使用AVX-512指令集实现。
6.根据权利要求1所述基于塔域优化S盒的SM4加解密算法并行化实现方法,其特征在于,所述S盒基于塔域转换成布尔表达式形式,布尔表达式使用AVX-512指令集组成。
CN202111453118.6A 2021-12-01 2021-12-01 基于塔域优化s盒的sm4加解密算法并行化实现方法 Active CN114244496B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111453118.6A CN114244496B (zh) 2021-12-01 2021-12-01 基于塔域优化s盒的sm4加解密算法并行化实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111453118.6A CN114244496B (zh) 2021-12-01 2021-12-01 基于塔域优化s盒的sm4加解密算法并行化实现方法

Publications (2)

Publication Number Publication Date
CN114244496A CN114244496A (zh) 2022-03-25
CN114244496B true CN114244496B (zh) 2023-07-18

Family

ID=80752535

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111453118.6A Active CN114244496B (zh) 2021-12-01 2021-12-01 基于塔域优化s盒的sm4加解密算法并行化实现方法

Country Status (1)

Country Link
CN (1) CN114244496B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114710285B (zh) * 2022-05-19 2022-08-23 北京大学 一种面向异构并行架构的高性能sm4比特切片优化方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012143011A (ja) * 2012-04-27 2012-07-26 Sony Corp 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム
CN109379178A (zh) * 2018-11-15 2019-02-22 成都卫士通信息产业股份有限公司 加解密装置构建方法、系统、介质及设备
CN110166223A (zh) * 2019-05-22 2019-08-23 北京航空航天大学 一种国密sm4的快速软件实现方法
CN110197076A (zh) * 2019-05-22 2019-09-03 北京航空航天大学 一种sm4加密算法的软件优化实现方法
CN111736902A (zh) * 2020-07-16 2020-10-02 北京炼石网络技术有限公司 基于simd指令的sm4的并行计算方法及装置、可读存储介质
CN111786775A (zh) * 2020-07-28 2020-10-16 山东省计算中心(国家超级计算济南中心) 基于基转换的sm4算法s盒的实现方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8953784B2 (en) * 2011-11-02 2015-02-10 Guang Gong Lightweight stream cipher cryptosystems

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012143011A (ja) * 2012-04-27 2012-07-26 Sony Corp 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム
CN109379178A (zh) * 2018-11-15 2019-02-22 成都卫士通信息产业股份有限公司 加解密装置构建方法、系统、介质及设备
CN110166223A (zh) * 2019-05-22 2019-08-23 北京航空航天大学 一种国密sm4的快速软件实现方法
CN110197076A (zh) * 2019-05-22 2019-09-03 北京航空航天大学 一种sm4加密算法的软件优化实现方法
CN111736902A (zh) * 2020-07-16 2020-10-02 北京炼石网络技术有限公司 基于simd指令的sm4的并行计算方法及装置、可读存储介质
CN111786775A (zh) * 2020-07-28 2020-10-16 山东省计算中心(国家超级计算济南中心) 基于基转换的sm4算法s盒的实现方法及系统

Also Published As

Publication number Publication date
CN114244496A (zh) 2022-03-25

Similar Documents

Publication Publication Date Title
Deng et al. Analysis and improvement of a chaos-based Hash function construction
CN110166223B (zh) 一种国密分组密码算法sm4的快速实现方法
TWI571091B (zh) 用於以第二密文編密演算法之運算修改第一密文編密演算法的技術
CN110880967B (zh) 采用分组对称密钥算法对多消息并行加解密方法
CN104270247A (zh) 适用于量子密码系统的高效泛Hash函数认证方案
Wang et al. A quantum circuit design of AES requiring fewer quantum qubits and gate operations
CN111736902B (zh) 基于simd指令的sm4的并行计算方法及装置、可读存储介质
CN112187461A (zh) 一种基于加密算法的武器装备数据混合加密方法
Kuang et al. Quantum safe lightweight cryptography with quantum permutation pad
CN111245598B (zh) 一种轻量级aerogel分组密码的实现方法
CN114244496B (zh) 基于塔域优化s盒的sm4加解密算法并行化实现方法
Li et al. Keyed hash function based on a dynamic lookup table of functions
Song et al. A multi-bit fully homomorphic encryption with shorter public key from LWE
Chen et al. Cryptanalysis of a chaotic image cipher based on plaintext-related permutation and lookup table
JP5689826B2 (ja) 秘密計算システム、暗号化装置、秘密計算装置及びその方法、プログラム
CN106982116A (zh) 一种基于可逆逻辑电路的aes的本地文件加密方法
Patel et al. Hybrid security algorithms for data transmission using AES-DES
CN100561911C (zh) 一种AES加解密电路中Sbox模块优化方法及优化电路
CN117134885A (zh) 一种兼容sm4密码算法的可调分组密码实现方法
Peleshchak et al. Two-stage AES encryption method based on stochastic error of a neural network
Singh et al. Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish
US20230141210A1 (en) Neural networks
CN112134691A (zh) 一种部件可重复的nlcs分组密码实现方法、装置及介质
Zhang et al. Algebraic techniques on searching linear diffusion layers in block cipher
RajaRaja et al. Implementation of hardware efficient light weight encryption method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant