CN114091086A - 一种基于比特切片的sm4算法快速实现方法 - Google Patents

一种基于比特切片的sm4算法快速实现方法 Download PDF

Info

Publication number
CN114091086A
CN114091086A CN202210039608.XA CN202210039608A CN114091086A CN 114091086 A CN114091086 A CN 114091086A CN 202210039608 A CN202210039608 A CN 202210039608A CN 114091086 A CN114091086 A CN 114091086A
Authority
CN
China
Prior art keywords
plaintext
algorithm
block
bit
language
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.)
Pending
Application number
CN202210039608.XA
Other languages
English (en)
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.)
Kirin Software Co Ltd
Original Assignee
Kirin Software Co Ltd
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 Kirin Software Co Ltd filed Critical Kirin Software Co Ltd
Priority to CN202210039608.XA priority Critical patent/CN114091086A/zh
Publication of CN114091086A publication Critical patent/CN114091086A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于比特切片的SM4算法快速实现方法,包括:步骤S1、将明文分组,每组明文包括若干明文SM4块;步骤S2、将每组明文的所述明文SM4块分别读入到SIMD类型变量中;步骤S3、使用Usuba语言定义S盒,并基于所述S盒编写加密代码,利用所述加密代码加密所述明文SM4块;步骤S4、从所述SIMD类型变量中读出加密后的所述明文SM4块,获得密文SM4块;步骤S5、合并密文SM4块得到整体密文。本发明的方法能够提升算法运算速度,支持并行计算,增加抵抗缓存‑计时侧信道攻击的能力。

Description

一种基于比特切片的SM4算法快速实现方法
技术领域
本申请涉及计算机安全技术领域,尤其涉及一种基于比特切片的SM4算法快速实现方法。
背景技术
SM4密码算法是国产加密算法中的分组密码,在国家密码局发布的GM/T0002-2012标准中给出了算法的描述。SM4密码被广泛应用于网络安全产品和计算机操作系统中。该密码的块大小和密钥长度为128比特,采用了Feistel结构,轮数为32轮,用到8比特的S盒。目前软件实现SM4密码算法包括直接编程、采用查表的方法编程和在查表的基础上使用SIMD指令集编程。是否可以进一步提高算法的速度是一个问题。此外查表的方法无法抵抗缓存-计时侧信道攻击。
为了提高密码算法软件实现的速度,国内外学者提出了比特切片(bitslice)的方法。比特切片最早是由Biham提出的,用于优化DES密码的软件实现中,随后工作一方面是减少实现中S盒的电路包含的门数,另一方面是将其应用于其他分组密码(如AES密码、Chacha20密码)的快速实现中。比特切片的思想是将密码算法转换成等价的由与或非门组成的逻辑电路。当电路作为软件中的与或非指令运行时,就具有了并行化的效果。这样实现的优势是省去了置换操作,而瓶颈是实现S盒的电路包含的门数。结合支持并行计算的单指令多数据流(SIMD)指令集,可以并行的实现密码算法。缓存-计时侧信道攻击通过观察密码程序运行时,利用数据进入和读出CPU或内存的时间,恢复密钥的信息。由于没有查找表,比特切片可以增强抵抗缓存-计时侧信道攻击的能力。
参见图1,SIMD是计算机架构Flynn分类法中的一个并行计算机类型。Flynn分类法按照指令流和数据流进行分类,包括SISD、SIMD、MISD和MIMD四种类型。SIMD架构描述了对多组数据进行相同操作的并行计算机。它实现了数据的并行计算,即同时进行相同运算,而非并发计算。目前主流的处理器架构如x86、ARM和MIPS等均支持SIMD技术,例如AVX2、NEON和MSA等。目前用SIMD指令集编程一般需要人工进行,编译器自动向量化是一个研究方向。
目前软件实现SM4密码算法的C语言库有openssl、gmssl等。这些库用到的方法包括直接编程和采用查表的方法编程。在查表方法的基础上,使用SIMD指令集进行了一定的优化,提高了算法效率。现有软件实现SM4密码算法的技术存在以下问题:
1)直接编程实现速度较慢,查表的方法中用到的代替表规模相对较大,它们在算法速度上都有一定提升的空间;
2)直接编程和采用查表的方法编程不支持并行计算;
3)采用查表的方法无法抵抗缓存-计时侧信道攻击。
此外,用来生成比特切片化代码的工具有Usuba。它定义了一种语言,可以方便的描述密码算法,经过usuba工具后生成使用SIMD 指令集的C语言代码。它给出了很多常用分组密码算法的实例,包括AES、Chacha20、DES、Present、Rectangle、Serpent等,对这些密码算法的代码有正确性验证和性能测试。缺点是还没有SM4密码相关的实现和性能测试。
发明内容
为解决上述现有技术所存在的问题,本发明提出了一种基于比特切片的SM4算法快速实现方法,能够提升算法运算速度,支持并行计算,增加抵抗缓存-计时侧信道攻击的能力。
本发明一方面提出一种基于比特切片的SM4算法快速实现方法,包括:
步骤S1、将明文分组,每组明文包括若干明文SM4块;
步骤S2、将每组明文的所述明文SM4块分别读入到SIMD类型变量中;
步骤S3、使用Usuba语言定义S盒,并基于所述S盒编写加密代码,利用所述加密代码加密所述明文SM4块;
步骤S4、从所述SIMD类型变量中读出加密后的所述明文SM4块,获得密文SM4块;
步骤S5、合并所述密文SM4块得到整体密文。
可选地,还包括:
步骤S6、将步骤S1-S5通过C语言实现,得到C语言代码文件,编译所述C语言代码文件得到可执行文件,所述可执行文件用于实现SM4加密操作。
可选地,所述将明文分组包括:将明文按照块大小为256×128比特进行分组,每组明文包括256个明文SM4块。
可选地,所述将每组明文的所述明文SM4块分别读入到SIMD类型变量中包括:将以256×128矩阵存储的256个明文SM4块转置,并依次存储到SIMD类型变量中。
可选地,所述基于所述S盒编写加密代码包括:用Usuba语言基于所述S盒编写SM4块的加密代码并生成.ua文件,将所述.ua文件转换成C语言代码。
可选地,所述用Usuba语言基于所述S盒编写SM4块的加密代码包括:
用Usuba语法中的查找表定义S盒;
编写中间函数;
根据所述中间函数编写密钥生成函数和明文SM4块加密函数。
可选地,所述中间函数包括τ函数、T函数、T’函数和F函数。
可选地,所述从所述SIMD类型变量中读出加密后的所述明文SM4块包括:将128个SIMD类型变量中加密后的明文SM4块读出到普通类型128×256的矩阵中,将矩阵转置,得到256个密文SM4块。
本发明另一方面还提出一种基于比特切片的SM4算法快速实现装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的基于比特切片的SM4算法快速实现方法的步骤。
本发明另一方面还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的基于比特切片的SM4算法快速实现方法的步骤。
本发明的技术方案的有益效果:
本发明给出一个优化的并行SM4加密算法的实现方法,使用了比特切片方法和SIMD指令集。在步骤S3中,用比特与或非运算实现S盒和加密函数的代码,使用了比特切片方法。将步骤S2、S3、S4用C语言代码实现,使用了SIMD指令集。比特切片方法将变量运算转换成等价的比特运算,设指令总数增加a倍,同时运行的比特个数为b倍,那么速度上近似可以提高b/a倍。实验结果表明对现有SM4软件实现有速度上的提升:对于ECB模式SM4加密,在x86、ft和龙芯平台上,优化代码添加多线程后是openssl速度的4倍、1.6倍和1.6倍左右。由于使用了SIMD架构,可以同时对多组数据进行相同操作,所以本技术支持并行计算。缓存-计时侧信道攻击通过观察密码程序运行时数据进入和读出CPU或内存的时间,恢复密钥的信息。使用Usuba语言定义S盒,由于没有查找表,比特切片可以增强抵抗缓存-计时侧信道攻击的能力。
附图说明
为了更清楚地表达说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为SIMD架构示意图。
图2为SM4加密结构示意图。
图3为本发明实施例的整体结构示意图。
图4为本发明实施例的SM4加密代码实现示意图。
图5为本发明实施例的读入数据实施步骤示意图。
图6为本发明实施例的读出数据实施步骤示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
在本实施例中,SM4加密块大小和密钥长度为128比特,采用了Feistel结构,轮数为32轮。轮函数F由T函数和循环左移运算组成,T函数的输入是4个32比特变量的异或值,由非线性变换τ和线性变换L组成,输出32比特变量。SM4加密过程如图2所示。
Usuba语言是一个用来生成比特切片化代码的语言。它的变量类型为布尔或布尔变量组成的数组,例如8比特变量用u8表示。Usuba语言给出了置换和查找表的语法,分别用来表示分组密码中的置换运算和S盒。它也定义了for循环结构等。以usuba语言编写的代码通常存储在以.ua为后缀的文件中。在Linux发行版操作系统中安装usuba软件,执行相应的命令可以由.ua文件生成对应的C语言.c文件。
SM4的优化实现代码将明文按照块大小为256×128比特进行分组,对每个分组依次进行:读入数据、对每个分组进行加密、读出数据。读出数据是读入数据的反过程。256个SM4块加密的代码是首先用Usuba语言编写SM4块加密的.ua文件,然后使用usuba软件根据机器架构生成C语言代码。
参见图3,本实施例的总体流程为:SM4的优化软件实现将明文按照块大小为256×128比特进行分组,对每个分组依次进行操作,将分组合并成密文,最后通过gcc编译得到Linux发行版系统上的可执行文件,运行它能够对明文文件进行SM4加密得到密文文件。gcc是由GNU计划制作的优化型编译器,支持多编程语言、多硬件架构和多操作系统。在大部分Linux发行版操作系统上,gcc被作为标准编译器。对每个分组进行的操作为读入256个明文SM4块、256个SM4块加密和读出256个明文SM4块。
具体地,本发明实施例的实施步骤如下所示:
1.将明文按照块大小为256×128比特进行分组,对每个分组依次执行步骤2-4;
2.读入256个明文SM4块;
3. 256个SM4块加密;
4.读出256个明文SM4块;
5.将分组合并成密文;
6.将上述步骤通过C语言实现,得到C语言代码文件,通过gcc编译C语言代码文件得到Linux发行版系统上的可执行文件,运行它能够对明文文件进行SM4加密得到密文文件。
步骤2的详细实施步骤如图5所示。将以256×128矩阵存储的256个明文SM4块转置,依次存储到SIMD类型变量中,例如AVX2、ARM和MIPS指令集分别对应于__m256i、uint64x2_t和v16i8类型。矩阵转置是用SIMD指令实现的,具体在usuba工具arch目录下头文件中的real_ortho函数实现。
参见图4,步骤3的详细实施步骤如下:
3.1. 用Usuba语法中的查找表定义S盒
SM4使用的S盒数据简要的列在下表中,例如输入“F1”,经S盒后的值为表中第F行和第1列的值,Sbox(F1)=F0。
Figure DEST_PATH_IMAGE001
使用如下的usuba语句定义S盒,省略的部分与S盒第i行和第j列的值相同。
table sbox(a:b8) returns(b:b8){
0xd6, 0x90,…,
…,
0x18, 0xf0,…,0x48 }
3.2. 编写τ、T、T’和F函数
这4个函数都是SM4密钥生成函数(步骤3.3)或块加密函数(步骤3.4)的中间函数。这里以τ函数为例介绍它们的编写,另3个函数类似。SM4使用的τ函数由4个S盒构成,设输入为A=(a0,a1,a2,a3),输出为B=(b0,b1,b2,b3),则
(b0,b1,b2,b3)=τ(A)=(Sbox(a0),Sbox(a1),Sbox(a2),Sbox(a3))
使用node声明函数,用如下的usuba语句实现τ函数。
node TAO(a:b8[4]) returns(b:b8[4])
let
forall i in [0,3]{
b[i]=sbox(a[i])
}
tel
3.3. 编写密钥生成函数
SM4的密钥生成函数使用了常量FK、CK和T’函数,结合步骤3.2中的T’函数可以实现。编写方法与步骤3.2类似。
3.4. 编写SM4块加密函数
SM4的块加密函数使用了F函数,结合步骤3.2中的F函数可以实现。编写方法与步骤3.2类似,如下的usuba语句实现块加密函数。
node sm4_enc(m:b128,k:b128) returns(c:b128)
vars x:b32[36],k4:b32[4],rk:b32[32]
let
(x[0],x[1],x[2],x[3])=m;
(k4[0],k4[1],k4[2],k4[3])=k;
rk=rk(k4);
forall i in [0,31]{
x[i+4]=F(x[i],x[i+1],x[i+2],x[i+3],rk[i])
}
c=(x[35],x[34],x[33],x[32])
tel
3.5. 使用Usuba生成C语言代码
在Linux发行版操作系统中安装usuba软件,执行如下的命令可以由.ua文件生成对应的C语言.c文件。生成的.c文件用于步骤6。
./usubac -B -no-sched source.ua
其中S盒实现电路包含与、非、异或门,门数为635个。为了进一步的优化,我们采用github网站上SM4实现代码的S盒部分,替换了Usuba生成代码的S盒部分,该实现电路包含与、或、非、异或门,门数为360个。
步骤4的详细实施步骤参见图6。
4.1. 将128个SIMD类型变量的密文读出到普通类型128×256的矩阵中,将矩阵转置,得到256个密文SM4块。同样,矩阵转置使用的是usuba工具arch目录下头文件中的real_ortho函数。
步骤6的详细实施步骤如下:
6.1. 上述步骤均用C语言代码实现,得到C语言代码,使用gcc添加-mmachine_option选项和-O3优化选项编译C语言代码得到可执行文件。
本实施例关键点在于通过编写实现SM4加密算法的Usuba语言代码,转换成C语言代码,从而使用比特切片方法和SIMD指令集实现SM4加密算法。在步骤3中,编写的C语言代码用比特与或非运算实现S盒、τ、T、T’和F函数,使用了比特切片方法。在步骤2、3、4中,编写的C语言代码使用了SIMD指令集。而现有SM4加密算法软件实现通常使用查找表或SIMD指令集结合查找表的方法。在速度上可以被提升,有些实现不支持并行计算,无法抵抗缓存-计时侧信道攻击。
本实施例使用了比特切片方法和SIMD指令集。比特切片方法将变量运算转换成等价的比特运算,设指令总数增加a倍,同时运行的比特个数为b倍,那么速度上近似可以提高b/a倍。实验结果表明对现有SM4软件实现有速度上的提升:对于ECB模式SM4加密,在x86、ft和龙芯平台上,优化代码添加多线程后是openssl速度的4倍、1.6倍和1.6倍左右。在步骤2、3、4中,编写的C语言代码使用了SIMD指令集,由于使用了SIMD架构,可以同时对多组数据进行相同操作,所以本技术支持并行计算。缓存-计时侧信道攻击通过观察密码程序运行时数据进入和读出CPU或内存的时间,恢复密钥的信息。编写的C语言代码用比特与或非运算实现S盒、τ、T、T’和F函数,使用了比特切片方法,由于没有查找表,比特切片可以增强抵抗缓存-计时侧信道攻击的能力。
本发明实施例还提出一种基于比特切片的SM4算法快速实现装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的基于比特切片的SM4算法快速实现方法的步骤。
在本实施例中,处理器可以为中央处理器(Central Processing Unit,CPU)、特定应用集成电路、数字信号处理器、现场可编程门阵列或者其他可编程逻辑器件等。存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的基于比特切片的SM4算法快速实现方法的步骤。
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并不是要限于所述的特定顺序或层次。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。

Claims (10)

1.一种基于比特切片的SM4算法快速实现方法,其特征在于,包括:
步骤S1、将明文分组,每组明文包括若干明文SM4块;
步骤S2、将每组明文的所述明文SM4块分别读入到SIMD类型变量中;
步骤S3、使用Usuba语言定义S盒,并基于所述S盒编写加密代码,利用所述加密代码加密所述明文SM4块;
步骤S4、从所述SIMD类型变量中读出加密后的所述明文SM4块,获得密文SM4块;
步骤S5、合并所述密文SM4块得到整体密文。
2.根据权利要求1所述的基于比特切片的SM4算法快速实现方法,其特征在于,还包括:
步骤S6、将步骤S1-S5通过C语言实现,得到C语言代码文件,编译所述C语言代码文件得到可执行文件,所述可执行文件用于实现SM4加密操作。
3.根据权利要求1所述的基于比特切片的SM4算法快速实现方法,其特征在于,所述将明文分组包括:将明文按照块大小为256×128比特进行分组,每组明文包括256个明文SM4块。
4.根据权利要求3所述的基于比特切片的SM4算法快速实现方法,其特征在于,所述将每组明文的所述明文SM4块分别读入到SIMD类型变量中包括:将以256×128矩阵存储的256个明文SM4块转置,并依次存储到SIMD类型变量中。
5.根据权利要求1所述的基于比特切片的SM4算法快速实现方法,其特征在于,所述基于所述S盒编写加密代码包括:用Usuba语言基于所述S盒编写SM4块的加密代码并生成.ua文件,将所述.ua文件转换成C语言代码。
6.根据权利要求5所述的基于比特切片的SM4算法快速实现方法,其特征在于,所述用Usuba语言基于所述S盒编写SM4块的加密代码包括:
用Usuba语法中的查找表定义S盒;
编写中间函数;
根据所述中间函数编写密钥生成函数和明文SM4块加密函数。
7.根据权利要求6所述的基于比特切片的SM4算法快速实现方法,其特征在于,所述中间函数包括τ函数、T函数、T’函数和F函数。
8.根据权利要求3所述的基于比特切片的SM4算法快速实现方法,其特征在于,所述从所述SIMD类型变量中读出加密后的所述明文SM4块包括:将128个SIMD类型变量中加密后的明文SM4块读出到普通类型128×256的矩阵中,将矩阵转置,得到256个密文SM4块。
9.一种基于比特切片的SM4算法快速实现装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至8任一项所述的基于比特切片的SM4算法快速实现方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的基于比特切片的SM4算法快速实现方法的步骤。
CN202210039608.XA 2022-01-14 2022-01-14 一种基于比特切片的sm4算法快速实现方法 Pending CN114091086A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210039608.XA CN114091086A (zh) 2022-01-14 2022-01-14 一种基于比特切片的sm4算法快速实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210039608.XA CN114091086A (zh) 2022-01-14 2022-01-14 一种基于比特切片的sm4算法快速实现方法

Publications (1)

Publication Number Publication Date
CN114091086A true CN114091086A (zh) 2022-02-25

Family

ID=80308633

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210039608.XA Pending CN114091086A (zh) 2022-01-14 2022-01-14 一种基于比特切片的sm4算法快速实现方法

Country Status (1)

Country Link
CN (1) CN114091086A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114710285A (zh) * 2022-05-19 2022-07-05 北京大学 一种面向异构并行架构的高性能sm4比特切片优化方法
CN115225254A (zh) * 2022-07-07 2022-10-21 山东大学 一种基于比特切片的加密方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109600217A (zh) * 2019-01-18 2019-04-09 江苏实达迪美数据处理有限公司 在并行操作模式中优化sm4加密和解密的方法及处理器
CN110166223A (zh) * 2019-05-22 2019-08-23 北京航空航天大学 一种国密sm4的快速软件实现方法
CN110197076A (zh) * 2019-05-22 2019-09-03 北京航空航天大学 一种sm4加密算法的软件优化实现方法
CN111162898A (zh) * 2019-12-27 2020-05-15 北京航空航天大学 一种基于Android端的SM4快速软件实现方法及装置
CN111736902A (zh) * 2020-07-16 2020-10-02 北京炼石网络技术有限公司 基于simd指令的sm4的并行计算方法及装置、可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109600217A (zh) * 2019-01-18 2019-04-09 江苏实达迪美数据处理有限公司 在并行操作模式中优化sm4加密和解密的方法及处理器
CN110166223A (zh) * 2019-05-22 2019-08-23 北京航空航天大学 一种国密sm4的快速软件实现方法
CN110197076A (zh) * 2019-05-22 2019-09-03 北京航空航天大学 一种sm4加密算法的软件优化实现方法
CN111162898A (zh) * 2019-12-27 2020-05-15 北京航空航天大学 一种基于Android端的SM4快速软件实现方法及装置
CN111736902A (zh) * 2020-07-16 2020-10-02 北京炼石网络技术有限公司 基于simd指令的sm4的并行计算方法及装置、可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DARIUS MERCADIER ET AL.: "《Usuba, Optimizing Trustworthy Bitslicing Compiler》", 《RESEARCHGATE》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114710285A (zh) * 2022-05-19 2022-07-05 北京大学 一种面向异构并行架构的高性能sm4比特切片优化方法
CN115225254A (zh) * 2022-07-07 2022-10-21 山东大学 一种基于比特切片的加密方法及系统
CN115225254B (zh) * 2022-07-07 2024-04-09 山东大学 一种基于比特切片的加密方法及系统

Similar Documents

Publication Publication Date Title
CN102204158B (zh) 低等待时间的分块密码术
Käsper et al. Faster and timing-attack resistant AES-GCM
JP3818263B2 (ja) Aes暗号処理装置、aes復号処理装置、aes暗号・復号処理装置、aes暗号処理方法、aes復号処理方法、および、aes暗号・復号処理方法
Gueron Intel’s new AES instructions for enhanced performance and security
US8165288B2 (en) Cryptographic processing apparatus and cryptographic processing method, and computer program
US8504845B2 (en) Protecting states of a cryptographic process using group automorphisms
Banik et al. WARP: Revisiting GFN for lightweight 128-bit block cipher
US8396210B2 (en) Cryptographic processing apparatus and cryptographic processing method, and computer program
CN114091086A (zh) 一种基于比特切片的sm4算法快速实现方法
US8094816B2 (en) System and method for stream/block cipher with internal random states
EP1779584A1 (en) Stream cipher combining system and method
CA2302784A1 (en) Improved block cipher method
US8913740B2 (en) Method and apparatus for generating an Advanced Encryption Standard (AES) key schedule
CN112532376A (zh) 用于高级加密标准(aes)的灵活结构和指令
Nishikawa et al. High-performance symmetric block ciphers on multicore CPU and GPUs
JP3824121B2 (ja) 暗号データの復号化処理方法および装置
An et al. Designing a new XTS-AES parallel optimization implementation technique for fast file encryption
Al-Muhammed et al. Mesh-based encryption technique augmented with effective masking and distortion operations
Fanfakh et al. ORSCA-GPU: one round stream cipher algorithm for GPU implementation
JP5182295B2 (ja) 暗号化装置及び暗号処理方法
EP1016240A1 (en) Improved block cipher method
Wei et al. Fregata: Faster Homomorphic Evaluation of AES via TFHE
Al-Muhammed Light but Effective Encryption Technique based on Dynamic Substitution and Effective Masking
Anand et al. An Ultra-High Throughput AES-Based Authenticated Encryption Scheme for 6G: Design and Implementation
Noura et al. DKEMA: GPU-based and dynamic key-dependent efficient message authentication algorithm

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20220225

RJ01 Rejection of invention patent application after publication