CN114244496A - 基于塔域优化s盒的sm4加解密算法并行化实现方法 - Google Patents
基于塔域优化s盒的sm4加解密算法并行化实现方法 Download PDFInfo
- Publication number
- CN114244496A CN114244496A CN202111453118.6A CN202111453118A CN114244496A CN 114244496 A CN114244496 A CN 114244496A CN 202111453118 A CN202111453118 A CN 202111453118A CN 114244496 A CN114244496 A CN 114244496A
- Authority
- CN
- China
- Prior art keywords
- bit
- box
- matrix
- tower
- encryption
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000005457 optimization Methods 0.000 title claims abstract description 36
- 239000011159 matrix material Substances 0.000 claims abstract description 61
- 230000009466 transformation Effects 0.000 claims abstract description 49
- 230000017105 transposition Effects 0.000 claims abstract description 20
- 230000014509 gene expression Effects 0.000 claims description 41
- 238000004364 calculation method Methods 0.000 claims description 17
- 238000013507 mapping Methods 0.000 claims description 16
- 230000002123 temporal effect Effects 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 9
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 7
- 238000000354 decomposition reaction Methods 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000015572 biosynthetic process Effects 0.000 claims description 3
- 238000013329 compounding Methods 0.000 claims description 3
- 230000005855 radiation Effects 0.000 claims description 3
- 238000003786 synthesis reaction Methods 0.000 claims description 3
- 238000000844 transformation Methods 0.000 claims description 3
- 230000001131 transforming effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 229910052754 neon Inorganic materials 0.000 description 1
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution 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加解密算法并行化实现方法。
背景技术
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)密码编排:
(2)数据编排:
构建比特矩阵转置变换函数Trans(·),输入512组128比特的矩阵M[512][128],输出变换比特矩阵N[128][512],将变换比特矩阵分为4个128*128比特方阵,对比特方阵进行比特粒度转置,实现512组消息的同一比特存储在同一寄存器上;
(3)迭代计算:
所述非线性变换τ(·)由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组密文,完成并行加密。
作为优选的技术方案,所述非线性变换τ(·)实现过程为:
作为优选的技术方案,所述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=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=γ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)的乘法运算:
作为优选的技术方案,所述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};
所述头部模块实现公式(1)中γ1γ0τ2+(γ1+γ0)2v的运算,记为φ,展开到比特级为:
设
则
其中,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,
λ={l3,l2,l1,l0};
其中,tj,j∈[0,12]表示中部模块中的临时序列,li,i∈[0,3]为输出序列;
设公式(1)中[γ1γ0τ2+(γ1+γ0)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(·)实现过程为:
作为优选的技术方案,所述对比特方阵进行比特粒度装置使用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、密码编排步骤:
2、数据编排步骤:
本发明使用AVX-512指令集对512组明文消息进行SM4算法的并行加解密;首先构建一个比特矩阵转置变换函数Trans(·),输入512组128比特的矩阵M[512][128],输出变换比特矩阵N[128][512];将变换比特矩阵分为4个128*128比特方阵,对比特方阵进行比特粒度转置,使用vpxodr、vpord、vpshufb等指令集实现,使经数据编排后的512组消息的同一比特存储在同一寄存器上;
3、迭代计算步骤:
非线性变换τ(·)由4个S盒查表构成;将S盒基于塔域转换成布尔表达式形式,表达式使用vpandd、vpxordr、vpord和vpandnd等AVX-512指令集组成,采用选择函数结合bitslice技术和SIMD技术进行布尔运算并行实现,具体为:
线性变换L(·)包括循环左移和异或操作,循环左移操作通过改变索引的方式实现,具体为:
迭代计算后进行反序运算,输出128*512比特矩阵N′,具体为:
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=γ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
据此,可以求同构映射矩阵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=γ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)的乘法运算:
这样便可以将在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};
头部模块实现公式(1)中γ1γ0τ2+(γ1+γ0)2v的运算,记为φ,展开到比特级为:
设
则
其中,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,
λ={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+(γ1+γ0)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 (10)
1.基于塔域优化S盒的SM4加解密算法并行化实现方法,其特征在于,包括下述步骤:
(1)密码编排:
(2)数据编排:
构建比特矩阵转置变换函数Trans(·),输入512组128比特的矩阵M[512][128],输出变换比特矩阵N[128][512],将变换比特矩阵分为4个128*128比特方阵,对比特方阵进行比特粒度转置,实现512组消息的同一比特存储在同一寄存器上;
(3)迭代计算:
所述非线性变换τ(·)由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组密文,完成并行加密。
3.根据权利要求2所述基于塔域优化S盒的SM4加解密算法并行化实现方法,其特征在于,所述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盒塔域优化的实现。
4.根据权利要求3所述基于塔域优化S盒的SM4加解密算法并行化实现方法,其特征在于,所述同构映射矩阵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:
5.根据权利要求4所述基于塔域优化S盒的SM4加解密算法并行化实现方法,其特征在于,所述塔域求逆运算的实现步骤为:
将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,λ=Λ124+Λ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)的乘法运算:
6.根据权利要求5所述基于塔域优化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};
所述头部模块实现公式(1)中γ1γ0τ2+(γ1+γ0)2v的运算,记为φ,展开到比特级为:
设
则
其中,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,
λ={l3,l2,l1,l0};
其中,tj,j∈[0,12]表示中部模块中的临时序列,li,i∈[0,3]为输出序列;
设公式(1)中[γ1γ0τ2+(γ1+γ0)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}。
9.根据权利要求1所述基于塔域优化S盒的SM4加解密算法并行化实现方法,其特征在于,所述对比特方阵进行比特粒度装置使用AVX-512指令集实现。
10.根据权利要求1所述基于塔域优化S盒的SM4加解密算法并行化实现方法,其特征在于,所述S盒基于塔域转换成布尔表达式形式,布尔表达式使用AVX-512指令集组成。
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 true CN114244496A (zh) | 2022-03-25 |
CN114244496B 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114710285A (zh) * | 2022-05-19 | 2022-07-05 | 北京大学 | 一种面向异构并行架构的高性能sm4比特切片优化方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012143011A (ja) * | 2012-04-27 | 2012-07-26 | Sony Corp | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム |
US20130108039A1 (en) * | 2011-11-02 | 2013-05-02 | Guang Gong | Lightweight stream cipher cryptosystems |
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盒的实现方法及系统 |
-
2021
- 2021-12-01 CN CN202111453118.6A patent/CN114244496B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130108039A1 (en) * | 2011-11-02 | 2013-05-02 | Guang Gong | Lightweight stream cipher cryptosystems |
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盒的实现方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114710285A (zh) * | 2022-05-19 | 2022-07-05 | 北京大学 | 一种面向异构并行架构的高性能sm4比特切片优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114244496B (zh) | 2023-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Deng et al. | Analysis and improvement of a chaos-based Hash function construction | |
CN110166223B (zh) | 一种国密分组密码算法sm4的快速实现方法 | |
CN110278072A (zh) | 一种16轮sm4-128/128白盒密码实现方法 | |
Li et al. | Chaotic hash function based on the dynamic S-Box with variable parameters | |
TWI571091B (zh) | 用於以第二密文編密演算法之運算修改第一密文編密演算法的技術 | |
CN110880967B (zh) | 采用分组对称密钥算法对多消息并行加解密方法 | |
Wang et al. | A quantum circuit design of AES requiring fewer quantum qubits and gate operations | |
Saravanan et al. | Novel reversible design of advanced encryption standard cryptographic algorithm for wireless sensor networks | |
Kuang et al. | Quantum safe lightweight cryptography with quantum permutation pad | |
CN114244496B (zh) | 基于塔域优化s盒的sm4加解密算法并行化实现方法 | |
Patel et al. | Hybrid security algorithms for data transmission using AES-DES | |
KR101923293B1 (ko) | 데이터 가산 장치 및 방법 | |
CN100561911C (zh) | 一种AES加解密电路中Sbox模块优化方法及优化电路 | |
CN112134691A (zh) | 一种部件可重复的nlcs分组密码实现方法、装置及介质 | |
Singh et al. | Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish | |
CN115913518A (zh) | 基于分组密码算法和比特切片的gcm优化方法及系统 | |
Miao et al. | How Fast Can SM4 be in Software? | |
Greene et al. | ARADI and LLAMA: Low-Latency Cryptography for Memory Encryption | |
Leon et al. | Performance analysis of the confidentiality security service in the IEEE 802.11 using WEP, AES-CCM, and ECC | |
Feng et al. | LOL: A Highly Flexible Framework for Designing Stream Ciphers | |
Zhang et al. | Algebraic techniques on searching linear diffusion layers in block cipher | |
Dworkin | Request for review of key wrap algorithms | |
Sung et al. | A Cryptographic Processor Supporting ARIA/AES-based GCM Authenticated Encryption | |
Zhang et al. | Design and Implementation of AES based on ARM920T Processor | |
Wang et al. | An Optimized Isomorphic Design for the SM4 Block Cipher Over the Tower Field |
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 |