CN115225254B - 一种基于比特切片的加密方法及系统 - Google Patents
一种基于比特切片的加密方法及系统 Download PDFInfo
- Publication number
- CN115225254B CN115225254B CN202210794842.3A CN202210794842A CN115225254B CN 115225254 B CN115225254 B CN 115225254B CN 202210794842 A CN202210794842 A CN 202210794842A CN 115225254 B CN115225254 B CN 115225254B
- Authority
- CN
- China
- Prior art keywords
- bit
- register
- data
- packet
- counter
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000006243 chemical reaction Methods 0.000 claims abstract description 63
- 238000004590 computer program Methods 0.000 claims description 14
- 239000000284 extract Substances 0.000 claims description 8
- 230000009466 transformation Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 12
- 239000013598 vector Substances 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 6
- 238000000605 extraction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000017105 transposition Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 208000008797 situs inversus Diseases 0.000 description 1
- 208000014903 transposition of the great arteries Diseases 0.000 description 1
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及密码算法的快速软件实现技术领域,提供了一种基于比特切片的加密方法及系统,包括:获取寄存器位宽;根据所述寄存器位宽,对分组形式的数据进行转换后,得到比特切片形式的数据,放入符合寄存器位宽的比特变量中;在进行分组密码算法时,将比特变量中的数值并行调入寄存器中。可以适应不同并行操作模式下的比特切片实现,而且在保证安全性的基础上,减小了数据形式转换带来的开销。
Description
技术领域
本发明属于密码算法的快速软件实现技术领域,尤其涉及一种基于比特切片的加密方法及系统。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
密码算法的快速软件实现的策略很多,最直接高效的是使用指令集扩展,典型的例子AES的标准指令集(Advanced Encryption Standard New Instructions,AES-NI)。AES-NI已经被集成到许多处理器中,显著提高了应用程序在使用AES完成加解密时的速度。对于没有指令集扩展的密码算法而言,比特切片(bitslicing)被认为是快速软件实现的有效策略,它涉及到将密码算法转换成一系列的逻辑比特操作,从而使得n比特的处理器可以同时完成对n个分组并行加密的操作。比特切片的软件实现依靠的支持单指令多数据(SingleInstructionMultipleData,SIMD)技术的指令集,SIMD技术最重要的特征是它的并行性即同一操作可以并行处理多组数据。Intel处理器中SSE/AVX指令集采用的就是SIMD技术,作为256比特的宽向量指令集,AVX(AdvancedVectorExtensions)的指令操作对象被称为YMM(256比特的SIMD寄存器)。2011年,Intel推出AVX指令集的扩展和改进—AVX2指令集(也被称为Haswell New Instructions),它支持8道32比特、4道64比特等数据的逻辑操作。
但,按照传统的比特切片方式,即n比特的处理器并行处理对n个分组的加密这一过程,对可用的通用寄存器数量的要求很高,在寄存器资源很有限的情况下,这一过程必然会产生大量的内存访问。
发明内容
为了解决上述背景技术中存在的技术问题,本发明提供一种基于比特切片的加密方法及系统,提出不同的数据形式转换算法,以适应不同并行操作模式下的比特切片实现;而且,在保证安全性的基础上,减小了数据形式转换带来的开销。
为了实现上述目的,本发明采用如下技术方案:
本发明的第一个方面提供一种基于比特切片的加密方法,其包括:
获取寄存器位宽;
根据所述寄存器位宽,对分组形式的数据进行转换后,得到比特切片形式的数据,放入符合寄存器位宽的比特变量中;
在进行分组密码算法时,将比特变量中的数值并行调入寄存器中。
进一步地,非CTR模式下,响应于明文分组的输入,根据所述寄存器位宽,对明文分组采用第一数据形式转换算法后,放入符合寄存器位宽的比特变量中;在进行分组密码算法时,将比特变量中的数值并行调入寄存器中,得到比特切片形式的密文后,采用数据形式逆转换算法后,得到密文分组。
进一步地,CTR模式下,响应于计数器分组的输出,根据所述寄存器位宽,对计数器分组采用第一数据形式转换算法或第二数据形式转换算法后,放入符合寄存器位宽的比特变量中;在进行分组密码算法时,将比特变量中的数值并行调入寄存器中,得到比特切片形式的计数器密文,采用数据形式逆转换算法后,得到分组形式的计数器密文,与明文分组进行异或,最终得到密文分组。
进一步地,所述第一数据形式转换算法对明文分组或计数器分组依次进行转换、转置和提取后,放入符合寄存器位宽的比特变量中。
进一步地,所述数据形式逆转换算法对比特切片形式的计数器分组的密文依次进行提取、转置和转换后,得到分组形式的数据。
进一步地,所述第二数据形式转换算法对计数器分组中固定不变的部分,依次进行转换、转置和提取后,通过查找表,对提取的每个比特进行扩展后,放入符合寄存器位宽的比特变量中。
进一步地,所述第二数据形式转换算法对计数器分组中逐分组递增的部分,根据递增规律,转换为比特切片的形式。
本发明的第二个方面提供一种基于比特切片的加密系统,其包括:
数据获取模块,其被配置为:获取寄存器位宽;
数据转换模块,其被配置为:根据所述寄存器位宽,对分组形式的数据进行转换后,得到比特切片形式的数据,放入符合寄存器位宽的比特变量中;
加密模块,其被配置为:在进行分组密码算法时,将比特变量中的数值并行调入寄存器中。
本发明的第三个方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述所述的一种基于比特切片的加密方法中的步骤。
本发明的第四个方面提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的一种基于比特切片的加密方法中的步骤。
与现有技术相比,本发明的有益效果是:
本发明提供了一种基于比特切片的加密方法,其提供了不同的数据形式转换算法,以适应不同并行操作模式下的比特切片实现,在保证安全性的基础上,减小了数据形式转换带来的开销。
本发明提供了一种基于比特切片的加密方法,其在并行分组密码的输出处可以省略数据形式逆转换,即后向转换,但变体的安全性并未改变。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1是本发明实施例一的数据形式转换算法的流程图;
图2是现有的计数器模式的示意图;
图3是本发明实施例一的分组数据的示意图;
图4是本发明实施例一的实例向量的示意图;
图5是本发明实施例一的转换操作的示意图;
图6是本发明实施例一的转置操作的第一部分示意图;
图7是本发明实施例一的转置操作的第二部分示意图;
图8是本发明实施例一的256比特变量示意图;
图9是本发明实施例一的加密过程示意图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
术语解释:
计数器模式(Counter(CTR)mode),如图2所示,它是用分组密码算法构造序列密码的一种工作模式。它的特征是使用一组互不相同的计数器的值(通常对当前计数器的值作增量,即+1运算,得到下一个计数器的值)作为分组密码算法的输入序列,将算法的输出序列与明文异或,最终得到明文的密文。设一系列计数器分组为T0,T1,…,Tn-1,明文分组为P0,P1,…,Pn-1,将不考虑填充问题的CTR加密过程定义如下:
(1)分组密码算法Oj=Cipherk(Tj),j=0,1,…,n-1;
(2)密文分组j=0,1,…,n-1。
在CTR的工作模式下,多个分组密码算法可以并行处理。此外,可以在获得明文分组的数据之前,将分组密码算法应用于计数器的值产生所需要的输出序列。
实施例一
本实施例提供了一种基于比特切片的加密方法,具体包括以下步骤:
步骤1、获取寄存器位宽。
在本实施例中,寄存器为256比特的寄存器。
步骤2、根据寄存器位宽,对分组形式的数据(明文分组和计数器分组)进行转换后,得到比特切片形式的数据,放入符合寄存器位宽的比特变量中;在进行分组密码算法时,将比特变量中的数值并行调入寄存器中。具体的:
非CTR模式下,响应于明文分组的输入,根据寄存器位宽,对明文分组采用第一数据形式转换算法(第一前向转换算法)后,放入符合寄存器位宽的比特变量中;在进行分组密码算法时,将比特变量中的数值并行调入寄存器中,得到比特切片形式的密文后,采用数据形式逆转换算法后,得到分组形式的密文(密文分组);
CTR模式下,如图9所示,响应于计数器分组的输出,根据寄存器位宽,对计数器分组采用第一数据形式转换算法或第二数据形式转换算法(第二前向转换算法)后,放入符合寄存器位宽的比特变量中;在进行分组密码算法时,将比特变量中的数值并行调入寄存器中,得到比特切片形式的计数器密文,采用数据形式逆转换算法(后向转换算法)后,得到分组形式的计数器密文,与明文分组进行异或,最终得到密文分组。
在本实施例中,分组数据为128比特数据。如图3所示,当从高位到低位读取128比特向量(或字符串)时,字节数被读取为【byte[0],byte[1],...,byte[14],byte[15]】,也就是将128比特向量拆分为字节【[7-0],[15-8],...,[119-112],[127-120]】。为了更简单的表示和定义,当分组密码算法接收一个128比特的明文分组或计数器分组m=m[0]||m[1]||…||m[14]||m[15],其中,m[i](i=0,1,…,14,15)代表分组数据中的第i个字节,那么加密内部状态(state)的初始值IS(InitialValueofTheCipherIntemalState)可以定义为:
若将上述4×4矩阵表示的分组数据放置在128比特的XMM寄存器中,XMM可以看作由4个(X3-X0)32比特的双字(doubleword)构成。图4展示了128比特向量在XMM寄存器中每个比特/字节/双字的排列方式以及与上述分组数据IS矩阵的对应关系,拆分前的实例向量可以写作e598271ef11141b8ae52b4e0305dbfd4。
第一前向转换算法将任意的128比特数据从分组的形式转换到比特切片的形式,该转换首先依赖于128比特分组所构成的比特矩阵的就地转置。
(1)第一数据形式转换算法:图1展示了第一数据形式转换算法的具体操作过程,AND、SHIFT、SHUFFLE、PERMUTE和XOR是用于不同步骤的AVX2指令集中的指令,灰色区域用0填充。为了使用AVX2的指令集对上述标准形式的128比特向量进行转置。第一数据形式转换算法对明文分组或计数器分组依次进行转换、转置和提取后,放入符合寄存器位宽的比特变量中。第一前向转换算法具体的步骤为:
步骤1-1、转换:借助零扩展指令将128比特的分组数据先放置在256比特的变量中,然后调用AND和SHIFT指令,将其转换为比特矩阵的形式,如图5;
步骤1-2、转置:调用SHUFFLE和PERMUTE指令以及SHIFT和XOR指令完成转置,如图6和图7;
步骤1-3、提取:调用256比特平台的SHIFT(分别在四个64比特独立通道lane内的移位操作)指令和AND指令,分别对每个独立lane的最高有效位执行提取操作。
显然,对任意的128比特分组(当然也同样适用于任意的计数器分组)而言,都需要通过指令执行相似的32次提取操作(对于上述128比特向量的实例而言,第1次取到的四个比特为“1”、“1”、“0”和“0”)。
步骤1-4、将每个比特放入符合寄存器位宽的比特变量中:
对于每次提取操作得到的4比特,将会被放在不同的256比特变量中。结合SHIFT指令和XOR指令,可以将从64个不同128比特分组(blcok)中提取得到的比特放入上述256比特变量的适当位置,具体放入位置如图8(展示了加密算法输入和输出的比特切片形式,其中,i∈{0,1,…,127},j∈{0,1,…,63},即i表示分组数据的第i比特,j表示分组数据的第j个分组)。
具体的,图5、图6和图7中的每一个方格代表一个字节,32个字节形成了符合寄存器位宽的比特变量。其中,虚线划分了每个比特变量的不同lane,即每个lane包含8个字节共64比特。
如图5所示,首先用AND指令提取出比特变量不同lane中相同位置的4个字节完成拆分,然后借助SHIFT指令移动到如图5所示的恰当位置:
row0=(src&0x00000000FF000000)
row1=(src&0x0000000000FF0000)<<8
row2=(src&0x000000000000FF00)<<16
row3=(src&0x00000000000000FF)<<24
其中,row 0、row 1、row 2和row 3表示4个比特变量,src表示源操作数。这里为了表示简便,src、row0、row1、row2以及row3仅代表任一64比特lane内的操作,符合寄存器位宽的比特变量(256比特)由4个lane构成。
如图6所示,分别对比特变量row0和row1、row2和row3采用SHUFFLE混排指令,实现如图6所示的字节排列方式:
tmp0=VSHUFPD(row1,row0,0x00)
tmp2=VSHUFPD(row1,row,0x0F)
tmp1=VSHUFPD(row3,row2,0x00)
tmp3=VSHUFPD(row3,row2,0x0F)
其中,tmp0、tmp1、tmp2和tmp3为4个比特变量,VSHUFPD是混排SHUFFLE的AVX2指令形式。
如图7所示,分别对比特变量tmp0和tmp1、tmp2和tmp3采用PERMUTE置换指令,实现如图7中新的row0、row1、row2和row3的字节排列;并借助SHIFT指令移动字节在不同lane中的位置,将row0、row1、row2和row3通过XOR指令再次合并成提取操作所需要的形式:
row0=VPERM2F128(tmp3,tmp2,0x31)
row1=VPERM2F128(tmp1,tmp0,0x31)
row2=VPERM2F128(tmp3,tmp2,0x20)
row3=VPERM2F128(tmp1,tmp0,0x20)
dst=(row)^(row1>>8)^(row2>>16)^(row3>>24)
其中,dst表示用于提取操作的比特变量,VPERM2F12δ是置换PERMUTE的AVX2指令形式。
(2)数据形式逆转换算法:在CTR模式下,已经完成加密操作的比特切片形式的数据,需要转换回初始的128比特分组形式的数据,以便于与同样是分组形式的明文分组进行异或运算生成最终的密文分组。数据形式逆转换算法与第一数据形式转换算法之间,唯一的区别只是颠倒了比特矩阵就地转置操作与提取操作的顺序。即数据形式逆转换算法的具体步骤为:
步骤2-1、提取:调用256比特平台的SHIFT(分别在四个64比特独立通道lane内的移位操作)指令和AND指令,分别对每个独立lane的最高有效位执行提取操作;
步骤2-2、转置:调用SHUFFLE和PERMUTE指令以及SHIFT和XOR指令完成转置;利用的原理是矩阵A:(AT)T=A;
步骤2-3、转换:把放置在256比特的变量中的128比特的分组数据,借助赋值指令直接转换回标准的分组形式;
步骤2-4,将分组形式的数据放入寄存器。
(3)第二数据形式转换算法:考虑到CTR模式的一般设置,对于128比特的计数器的值(计数器分组)而言,其中,前96比特的“nonce”部分是固定不变的,后32比特的“counter”部分从0或1开始逐分组递增。为了提高前向转换的效率,建立了一个用于扩展的查找表,如表1;
表1、查找表
nonce[0] | 0x0000000000000000 | 0x0000000000000000 | 0x0000000000000000 | 0x0000000000000000 |
nonce[1] | 0x0000000000000000 | 0x0000000000000000 | 0x0000000000000000 | 0xFFFFFFFFFFFFFFFF |
nonce[2] | 0x0000000000000000 | 0x0000000000000000 | 0xFFFFFFFFFFFFFFFF | 0x0000000000000000 |
nonce[3] | 0x0000000000000000 | 0x0000000000000000 | 0xFFFFFFFFFFFFFFFF | 0xFFFFFFFFFFFFFFFF |
nonce[4] | 0x0000000000000000 | 0xFFFFFFFFFFFFFFFF | 0x0000000000000000 | 0x0000000000000000 |
nonce[5] | 0x0000000000000000 | 0xFFFFFFFFFFFFFFFF | 0x0000000000000000 | 0xFFFFFFFFFFFFFFFF |
nonce[6] | 0x0000000000000000 | 0xFFFFFFFFFFFFFFFF | 0xFFFFFFFFFFFFFFFF | 0x0000000000000000 |
nonce[7] | 0x0000000000000000 | 0xFFFFFFFFFFFFFFFF | 0xFFFFFFFFFFFFFFFF | 0xFFFFFFFFFFFFFFFF |
nonce[8] | 0xFFFFFFFFFFFFFFFF | 0x0000000000000000 | 0x0000000000000000 | 0x0000000000000000 |
nonce[9] | 0xFFFFFFFFFFFFFFFF | 0x0000000000000000 | 0x0000000000000000 | 0xFFFFFFFFFFFFFFFF |
nonce[10] | 0xFFFFFFFFFFFFFFFF | 0x0000000000000000 | 0xFFFFFFFFFFFFFFFF | 0x0000000000000000 |
nonce[11] | 0xFFFFFFFFFFFFFFFF | 0x0000000000000000 | 0xFFFFFFFFFFFFFFFF | 0xFFFFFFFFFFFFFFFF |
nonce[12] | 0xFFFFFFFFFFFFFFFF | 0xFFFFFFFFFFFFFFFF | 0x0000000000000000 | 0x0000000000000000 |
nonce[13] | 0xFFFFFFFFFFFFFFFF | 0xFFFFFFFFFFFFFFFF | 0x0000000000000000 | 0xFFFFFFFFFFFFFFFF |
nonce[14] | 0xFFFFFFFFFFFFFFFF | 0xFFFFFFFFFFFFFFFF | 0xFFFFFFFFFFFFFFFF | 0x0000000000000000 |
nonce[15] | 0xFFFFFFFFFFFFFFFF | 0xFFFFFFFFFFFFFFFF | 0xFFFFFFFFFFFFFFFF | 0xFFFFFFFFFFFFFFFF |
查找表根据的是CTR模式下不同(本发明中有64个)计数器分组(128比特)中固定不变的96比特“nonce”。从本质上来讲,该查找表是一个256比特数据类型的数组,数组下标为0-15。这些数组元素的显著特征是每个独立lane的四字(quadword)值只有两种情况,为全0或者全1。如果从任意一个256比特数组元素四个lane内的相同位置分别提取四个比特,那么这四个比特的十进制结果恰好对应某个数组下标,即某个数组元素。此外,由于256比特的通用寄存器最多可以并行处理64个分组,因而32比特“counter”部分的值可以表示为“0,1,…,63”或者“1,2,…,64”两种十进制形式。第二数据形式转换算法对计数器分组中固定不变的部分,依次进行转换、转置和提取后,通过查找表,对提取的每个比特进行扩展后,放入符合寄存器位宽的比特变量中。第二数据形式转换算法的具体步骤为:
步骤3-1、3-2至3-3:在CTR模式下,需要做的是对某一个计数器的值的前96比特“nonce”采用第一数据形式转换算法的步骤1-1、1-2至1-3;基于剩下的32比特“counter”部分的递增规律,可以很容易地找到它们比特切片的表示形式。按照前面所描述的比特切片方式,对于64个不同分组中32比特的“counter”部分,需要8个符合寄存器位宽的比特变量来存放。以“0,1,…,63”这一情况为例,32比特中的高24比特也就是前三个字节均为全零,64个不同分组的最后一个字节如表2所示。
表2、64个不同分组的最后一个字节
将表2转换为比特切片的形式,如表3所示,其中bit[7]~bit[0]表示8个符合寄存器位宽的比特变量。
表3、表2的比特切片的形式
步骤3-4、对于“nonce”部分提取的每个比特,通过查找表完成正确的扩展,而不必将通用的数据形式转换算法应用于所有计数器的值。
步骤3-5、采用第一数据形式转换算法的步骤1-5。
借用上述128比特向量的实例,CTR模式下,128比特的计数器分组可以表示为前96比特固定不变的“nonce”串联后32比特逐分组递增的“counter”,写作e598271ef11141b8ae52b4e0||00000000。在对某一计数器分组的前96比特“nonce”进行每次提取操作时(共96/4=24次),都可以借助上面给出的查找表完成1次扩展。例如,取到的四个比特为“1”、“1”、“0”和“0”时,直接定位查找表中数组下标为“12”的元素(即nonce[12]),并将nonce[12]中的四个元素的值,作为扩展后的四个比特,赋给相应的256比特变量。至此,已经构成了分组密码算法输入的比特切片形式。
第二数据形式转换算法仅对其前向转换作出说明,这主要是因为后向转换的输入通常是并行分组密码算法的输出,而密文的随机性决定了它不可能具备相对固定的“nonce”和规律递增的“counter”这一特征。密码算法的输出必定是毫无规律且无法被预测的,所以在对数据形式进行逆转换时不能采用与第二数据形式转换算法相似的方式。
本发明基于新的细粒度的比特切片方式给出了不同的数据形式转换(算法,以适应不同并行操作模式下的比特切片实现;与此同时,本发明在保证安全性的基础上,提供了对比特切片实现友好的CTR模式变体,以减小数据形式转换带来的开销。本发明中的比特切片实现可以支持分组密码算法的并行工作模式,如计数器(CTR)模式。
由于通用的数据形式转换算法开销较大,本发明提出了对比特切片实现友好的CTR模式变体,它对并行分组密码的输出省略了数据形式转换,即后向转换。图9展示了CTR+模式的比特切片实现。并行分组密码的输出,无论是按照分组的形式还是比特切片的形式,都应当是均匀分布的。因此,CTR模式变体的安全性与原CTR模式相同。
实施例二
本实施例提供了一种基于比特切片的加密系统,其具体包括如下模块:
数据获取模块,其被配置为:获取寄存器位宽;
数据转换模块,其被配置为:根据所述寄存器位宽,对分组形式的数据进行转换后,得到比特切片形式的数据,放入符合寄存器位宽的比特变量中;
加密模块,其被配置为:在进行分组密码算法时,将比特变量中的数值并行调入寄存器中。
此处需要说明的是,本实施例中的各个模块与实施例一中的各个步骤一一对应,其具体实施过程相同,此处不再累述。
实施例三
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例一所述的一种基于比特切片的加密方法中的步骤。
实施例四
本实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述实施例一所述的一种基于比特切片的加密方法中的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于比特切片的加密方法,其特征在于,包括:
获取寄存器位宽;
根据所述寄存器位宽,对分组形式的数据进行转换后,得到比特切片形式的数据,放入符合寄存器位宽的比特变量中;其中,分组形式的数据包括明文分组和计数器分组;
在进行分组密码算法时,将比特变量中的数值并行调入寄存器中;
其中,非CTR模式下,响应于明文分组的输入,根据所述寄存器位宽,对明文分组采用第一数据形式转换算法后,放入符合寄存器位宽的比特变量中;在进行分组密码算法时,将比特变量中的数值并行调入寄存器中,得到比特切片形式的密文后,采用数据形式逆转换算法后,得到密文分组;
其中,CTR模式下,响应于计数器分组的输入,根据所述寄存器位宽,对计数器分组采用第一数据形式转换算法或第二数据形式转换算法后,放入符合寄存器位宽的比特变量中;在进行分组密码算法时,将比特变量中的数值并行调入寄存器中,得到比特切片形式的计数器密文,采用数据形式逆转换算法后,得到分组形式的计数器密文,与明文分组进行异或,最终得到密文分组;
其中,CTR模式为计数器模式,是用分组密码算法构造序列密码的一种工作模式。
2.如权利要求1所述的一种基于比特切片的加密方法,其特征在于,所述第一数据形式转换算法对明文分组或计数器分组依次进行转换、转置和提取后,放入符合寄存器位宽的比特变量中。
3.如权利要求1所述的一种基于比特切片的加密方法,其特征在于,所述数据形式逆转换算法对比特切片形式的计数器分组的密文依次进行提取、转置和转换后,得到分组形式的数据。
4.如权利要求1所述的一种基于比特切片的加密方法,其特征在于,所述第二数据形式转换算法对计数器分组中固定不变的部分,依次进行转换、转置和提取后,通过查找表,对提取的每个比特进行扩展后,放入符合寄存器位宽的比特变量中。
5.如权利要求1所述的一种基于比特切片的加密方法,其特征在于,所述第二数据形式转换算法对计数器分组中逐分组递增的部分,根据递增规律,转换为比特切片的形式。
6.一种基于比特切片的加密系统,其特征在于,包括:
数据获取模块,其被配置为:获取寄存器位宽;
数据转换模块,其被配置为:根据所述寄存器位宽,对分组形式的数据进行转换后,得到比特切片形式的数据,放入符合寄存器位宽的比特变量中;其中,分组形式的数据包括明文分组和计数器分组;
加密模块,其被配置为:在进行分组密码算法时,将比特变量中的数值并行调入寄存器中;
其中,非CTR模式下,响应于明文分组的输入,根据所述寄存器位宽,对明文分组采用第一数据形式转换算法后,放入符合寄存器位宽的比特变量中;在进行分组密码算法时,将比特变量中的数值并行调入寄存器中,得到比特切片形式的密文后,采用数据形式逆转换算法后,得到密文分组;
其中,CTR模式下,响应于计数器分组的输入,根据所述寄存器位宽,对计数器分组采用第一数据形式转换算法或第二数据形式转换算法后,放入符合寄存器位宽的比特变量中;在进行分组密码算法时,将比特变量中的数值并行调入寄存器中,得到比特切片形式的计数器密文,采用数据形式逆转换算法后,得到分组形式的计数器密文,与明文分组进行异或,最终得到密文分组;
其中,CTR模式为计数器模式,是用分组密码算法构造序列密码的一种工作模式。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一项所述的一种基于比特切片的加密方法中的步骤。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-5中任一项所述的一种基于比特切片的加密方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210794842.3A CN115225254B (zh) | 2022-07-07 | 2022-07-07 | 一种基于比特切片的加密方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210794842.3A CN115225254B (zh) | 2022-07-07 | 2022-07-07 | 一种基于比特切片的加密方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115225254A CN115225254A (zh) | 2022-10-21 |
CN115225254B true CN115225254B (zh) | 2024-04-09 |
Family
ID=83610857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210794842.3A Active CN115225254B (zh) | 2022-07-07 | 2022-07-07 | 一种基于比特切片的加密方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115225254B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110880967A (zh) * | 2019-12-24 | 2020-03-13 | 北京炼石网络技术有限公司 | 采用分组对称密钥算法对多消息并行加解密方法 |
CN114091086A (zh) * | 2022-01-14 | 2022-02-25 | 麒麟软件有限公司 | 一种基于比特切片的sm4算法快速实现方法 |
-
2022
- 2022-07-07 CN CN202210794842.3A patent/CN115225254B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110880967A (zh) * | 2019-12-24 | 2020-03-13 | 北京炼石网络技术有限公司 | 采用分组对称密钥算法对多消息并行加解密方法 |
CN114091086A (zh) * | 2022-01-14 | 2022-02-25 | 麒麟软件有限公司 | 一种基于比特切片的sm4算法快速实现方法 |
Non-Patent Citations (3)
Title |
---|
"Fast AES Implementation: A High-Throughput Bitsliced Approach";Omid Hajihassani.et;《IEEE》;20190414;全文 * |
"Fast Implementation for SM4 Cipher Algorithm Based on Bit-Slice Technology";Jingbin Zhang.et;《Springer》;20181212;全文 * |
"Fixslicing AES-like Ciphers:New bitsliced AES speed records on ARM-Cortex M and RISC-V".《the IACR in TCHES》.2021,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN115225254A (zh) | 2022-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8855298B2 (en) | Table lookup operation on masked data | |
CN110166223B (zh) | 一种国密分组密码算法sm4的快速实现方法 | |
US7546461B2 (en) | Strengthening secure hash functions | |
US8553877B2 (en) | Substitution table masking for cryptographic processes | |
US8787563B2 (en) | Data converter, data conversion method and program | |
CN110880967B (zh) | 采用分组对称密钥算法对多消息并行加解密方法 | |
CN107257279B (zh) | 一种明文数据加密方法及设备 | |
CN110071794B (zh) | 一种基于aes算法的信息加密方法、系统及相关组件 | |
Wen | Security analysis of a color image encryption scheme based on skew tent map and hyper chaotic system of 6th-order CNN against chosen-plaintext attack | |
Zhdanov et al. | Block symmetric cryptographic algorithm based on principles of variable block length and many-valued logic | |
Acharya | Image encryption using a new chaos based encryption algorithm | |
CN115225254B (zh) | 一种基于比特切片的加密方法及系统 | |
US7103180B1 (en) | Method of implementing the data encryption standard with reduced computation | |
CN114244496B (zh) | 基于塔域优化s盒的sm4加解密算法并行化实现方法 | |
CN116684071A (zh) | 一种基于布尔电路的白盒保护方案的加速实现方法及系统 | |
CN107231229B (zh) | 一种用于保护sm4密码芯片的低熵掩码泄露防护方法及其实现系统 | |
KR20010034058A (ko) | 이진 데이터 블록의 암호 변환 방법 | |
CN110247754B (zh) | 一种分组密码fbc的实现方法及装置 | |
Desoky et al. | Bitwise hill crypto system | |
CN101661607B (zh) | 一种数字图像加密和解密方法 | |
CN113922948B (zh) | 基于复合域轮函数的国密算法sm4数据加密方法及系统 | |
CN110532763A (zh) | 一种基于高阶正形置换的密码构造方法及系统 | |
CN111342951B (zh) | 流密码系统的生成方法、装置及终端设备 | |
CN113779614B (zh) | 基于改进的aes算法的加密方法和计算机可读存储介质 | |
Zhang et al. | A new image encryption algorithm based on Arnold and coupled chaos maps |
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 |