CN109600217A - 在并行操作模式中优化sm4加密和解密的方法及处理器 - Google Patents

在并行操作模式中优化sm4加密和解密的方法及处理器 Download PDF

Info

Publication number
CN109600217A
CN109600217A CN201910051056.2A CN201910051056A CN109600217A CN 109600217 A CN109600217 A CN 109600217A CN 201910051056 A CN201910051056 A CN 201910051056A CN 109600217 A CN109600217 A CN 109600217A
Authority
CN
China
Prior art keywords
encryption
wheel
instruction
data block
decryption
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
CN201910051056.2A
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.)
JIANGSU STARTDIMA DATA PROCESSING CO Ltd
Original Assignee
JIANGSU STARTDIMA DATA PROCESSING 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 JIANGSU STARTDIMA DATA PROCESSING CO Ltd filed Critical JIANGSU STARTDIMA DATA PROCESSING CO Ltd
Priority to CN201910051056.2A priority Critical patent/CN109600217A/zh
Publication of CN109600217A publication Critical patent/CN109600217A/zh
Pending legal-status Critical Current

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/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种在并行操作模式中优化SM4加密和解密的方法及处理器,本方法包括:将一组k个固定大小且连续数据块分别存储在对应数量的寄存器中,且k的取值不小于SM4轮指令所需周期数L;在k个连续数据块的集合上执行SM4轮操作序列,并且在SM4轮次期间并行地对该组数据块执行SM4轮操作序列;即按照每个处理周期处理一个数据块的速率以流水线方式将SM4轮指令依次分派给各数据块。

Description

在并行操作模式中优化SM4加密和解密的方法及处理器
技术领域
本发明涉及国家商用密码体系分组对称密钥算法SM4的加密和解密。
背景技术
密码学是研究编制密码和破译密码的技术科学,起源于隐秘消息传输,在编码和破译中逐渐发展起来。密码学是一个综合性的技术科学,与语言学、数学、电子学、声学、信息论、计算机科学等有着广泛而密切的联系。密码学的基本思想是对敏感信息的保护,主要包括机密性,鉴别,信息完整性和不可否认性,从而涉及加密,杂凑函数,数字签名,消息认证等。
对称密码学主要是分组密码和流密码及其应用,分组密码中将明文消息进行分块加密输出密文区块,而流密码中使用密钥生成密钥流对明文消息进行加密。世界上应用较为广泛的包括DES、3DES、AES,此外还有Serpent,Twofish,MARS和RC6等算法。对称加密的工作模式包括电码本模式(ECB模式)、密码反馈模式(CFB模式),密码分组链接模式(CBC模式),输入反馈模式(OFB模式)等。
为了保障商用密码安全,国家商用密码管理办公室制定了一系列密码标准,包括SSF33、SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法等等,其中SSF33、SM1、SM4、SM7、祖冲之密码算法是对称算法;SM2、SM9是非对称算法;SM3是哈希算法。
SM4是一个分组算法,是我国第一个公开的商用分组密码算法,该算法的分组长度为128比特,密钥长度为128比特。加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
发明内容
本发明的目的是提供一种在并行操作模式中优化SM4加密和解密的方法及处理器。
为了解决上述技术问题,本发明提供了一种用于国密SM4算法的加密及解密方法,包括:
将一组k个固定大小且连续数据块分别存储在对应数量的寄存器中,且k的取值不小于SM4轮指令所需周期数L;
在k个连续数据块的集合上执行SM4轮操作序列,并且在SM4轮次期间并行地对该组数据块执行SM4轮操作序列;即
按照每个处理周期处理一个数据块的速率以流水线方式将SM4轮指令依次分派给各数据块。
进一步,所述加密及解密方法还包括:将每个数据块的SM4操作结果存储在对应的寄存器中。
进一步,每个数据块具有128位,且每个寄存器都是Xmm寄存器。
进一步,所述加密及解密方法对应的操作模式为电子代码簿,计数器,密码块链接消息认证码和伽罗瓦计数器模式上述操作模式中的一种。
进一步,k>2,且L>2。
进一步,k等于6,并且L等于或小于k;或
k和L相等且等于8。
又一方面,本发明还提供了一种加密及解密用处理器,包括:
寄存器文件,其包括k个寄存器以存储一组固定大小且k个连续数据块;
执行单元,对k个连续数据块的集合执行SM4轮操作序列;其中
k的取值大于或等于执行SM4轮操作序列时的SM4轮指令所需周期数L。
进一步,所述执行单元适于在对一个数据块进行执行SM4轮操作序列时独立于其他数据块,并通过以流水线的方式将SM4轮指令以每个处理器周期一个数据块的速率分发给k个连续数据块的集合,并行地对k个连续数据块的集合执行SM4轮操作。
进一步,所述加密及解密用处理器还包括:提取和解码单元、输出单元和数据缓存;其中
所述提取和解码单元适于从一级指令缓存中获取宏指令,对宏指令解码以分解为微操作;
所述微操作适于存储在提取和解码单元中的只读存储器内,以供执行单元调度和执行;即
所述执行单元中的SM4操作单元适用于对一组SM4轮指令执行微操作;
且通过所述输出单元将执行结果写入数据缓存中;
所述数据缓存中存储有用于SM4使用的轮密钥,并加载到执行单元中,供微操作执行SM4轮指令时使用。
进一步,所述执行单元还适于为所述k个寄存器中的每个k个数据块存储SM4循环指令操作的结果。
本发明的有益效果是,本发明的在并行操作模式中优化SM4加密和解密的方法及处理器通过并行数据块的数据块,在并行操作模式中,可以通过在每个周期中调度SM4轮指令来并行执行不同数据块的不同独立加密(解密),而无需等待先前指令完成,可以通过并行地对不同的数据块执行独立操作来最大化SM4加密的吞吐量。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1是包括用于在通用处理器中执行SM4加密和解密指令的系统框图。
图2是图1中所示的处理器的实施例框图。
图3是说明根据本发明原理通过对不同数据块并行执行独立操作来提高SM4加密/解密操作的吞吐量的方法的实施例的流程图。
图4表示出了每个周期分派一个SM4轮指令的实施例。
具体实施方式
现在结合附图对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。
本实施例提供了一种用于国密SM4算法的加密及解密方法。
本加密及解密方法所涉及的分组密码可以使用多种操作模式中的一种。操作模式包括电子密码本(ECB)、密码块链接(CBC)、输出反馈(OFB)、计数器(CTR)和密码反馈(CFB),其为任意长度的消息提供机密性。除此之外的其他操作模式,例如分组密码块链接-消息认证码(CCM)、伽罗瓦/计数器模式(GCM)和认证加密模式(OCB)都能确保了机密性和消息完整性。
在ECB模式中,要加密的明文被划分为n个比特长度的数据块,并且每个块被单独加密,数据块与数据块之间相互独立,即数据块被独立于其他块进行加密。在CBC模式中,先将明文切分成若干小段,然后每一小段与初始块或者上一段的密文段进行异或运算后,再与密钥进行加密,CBC操作模式如下表1所示:
表1
在CBC操作模式中,在计算Cj-1之前是无法计算出Cj,因此该模式是属于串行模式。
并行操作模式是指一个数据块的加密/解密独立于其他数据块的加密/解密结果的操作模式。例如,ECB模式和计数器模式都是并行操作模式。使用ECB模式的SM4加密操作的伪代码实施例如表2所示,使用CTR操作模式的SM4加密操作的伪代码实施例如下表3所示:
表2
表3
表2和表3中的加密操作(SM4_ENCRYPT_PROCEDURE)可以在通用处理器中在执行SM4加密和解密密钥拓展时进行,下面表4给出了用于执行多个128位数据块的加密操作的实施例。
表4
表4中所示的SM4指令(SM4ENC,SM4ENCLAST)串行处理存储在128位变量(temp)(也称为状态)中的数据。用于处理数据的串行操作序列的实施例在下面的表5中示出。
表5
对于要加密的每个Block,数据块存储在寄存器中,例如,具有128位的Xmm寄存器(Xmm1)可用于存储128位块。32个加密轮次在数据块上串行执行。对于32轮SM4操作的第1轮到第31轮,调用SM4ENC指令以使用轮密钥和前一轮的结果或初始块数据(如果是第1轮)执行轮操作。调用SM4ENCLAST指令来处理最后一轮(本例中为第32轮)。
如果SM4指令(SM4ENC,SM4ENCLAST)的等待时间用L个处理器周期(周期)表示。忽略加载、存储和其他开销的周期,如表5中的实施例所示,对于n个128位的数据块,每个数据块进行32轮处理消耗的时间大约是n*32*L个周期。如果按照表5中所示的顺序处理,显然整体执行n个数据块的加密/解密延迟取决于各个SM4指令(SM4ENC,SM4ENCLAST)的延迟。
在本发明的一个实施例中,通过加密(解密)多个指令减少了SM4轮指令(SM4轮指令)的等待时间(L个处理器周期)的影响,从而减少了执行SM4加密/解密操作所需的总等待时间。根据本发明的原理,并行数据块的数据块,在并行操作模式中,可以通过在每个周期中调度SM4轮指令来并行执行不同数据块的不同独立加密(解密),而无需等待先前指令完成。
图1是系统100在处理器中执行SM4加密和解密操作的框架图,其中包括处理器101,存储器控制器(MCH)或图形/存储器控制器(GMCH)102和输入/输出(I/O)控制器(ICH)104。存储器控制器(MCH)102包括一个用于控制处理器101和内存108之间进行通信的内存控制器106,处理器101和MCH102通过系统总线116进行通信。
处理器101可以是多个处理器中的任意一个,例如但不限于单核Intel.RTM、奔腾TV.RTM、奔腾D、英特尔赛扬、Xeon.RTM、Core.RTM等,或者双核的处理以及其他类型的处理器。
存储器108可以是动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存储器(SDRAM)、DDR2RAM或任何其他类型的存储器。
ICH可以使用高速芯片到芯片的连接方式114与MCH耦合,例如直接媒体接口(DMI),DMI支持2Gb/s的并发传输速率通过两个单向通道。
ICH至少包括一个用于控制与耦合到ICH的存储设备112之间进行通信的存储输入输出控制器110,存储设备可以但不限于是:磁盘驱动器、数字视频磁盘(DVD)驱动器、CD驱动器、磁盘阵列(RAID)、磁带驱动器或其他存储设备。
处理器101包括SM4操作单元103,用于执行SM4加密和解密操作。SM4操作单元103可以用来加密或者解密存储在存储器108中的信息或者存储在存储设备112中的信息。
图2是图1所示的加密及解密用处理器101的实施例框图,处理器101包括总线接口单元200,其通过系统总线116与存储控制器(MCH)102相连;一个提取和解码单元206,用于加密从一级(LEVEL 1)指令缓存202接收到的处理器指令。用于执行处理器指令的数据可以存储在寄存器文件208中。在本例中,所述寄存器文件208包括多个128位寄存器,这些寄存器被SM4轮指令用于存储供SM4轮指令使用的数据。
在一个实施例中,寄存器文件208是一组128位寄存器,类似于Intel奔腾MMX处理器中提供的拥有一个流(单指令多数据流(SIMD))扩展指令集的128位MMX寄存器,数据在128位块中处理,一次加载一个128位块。
提取和解码单元206从指令缓存202中获取宏指令,对宏指令进行解码,并将其分解为简单的微操作(.mu.tops),微操作可以存储在只读存储器(ROM)214中。流水线上的执行单元210调度和执行微操作,在本实施例中,执行单元210中的SM4操作单元103包括用于一组SM4轮指令的微操作,SM4指令是完全流水线化的,因此如果有数据可以处理,处理器(CPU)可以在每个周期中分派一条指令。输出单元212将执行的指令的结果写入寄存器或内存中。用于SM4使用的轮密钥216可以存储在一级(LEVEL 1)数据缓存204中,并加载到执行单元210中,供微操作执行任何SM4轮指令使用。在数据缓存204中存储轮密钥216可以保护轮密钥216不受侧通道攻击。
提取和解码单元206对SM4轮指令进行解码后,由执行单元210执行SM4轮指令,即执行存储在只读存储器中的与之相关的微操作指令。
在实施例中,提供了包括以下内容的指令集,分别是加密轮密钥、解密轮密钥、加密最后一轮和解密最后一轮密钥。在实施例中,每一个SM4轮密钥都具有唯一的操作码,下表6示出了针对128位长度的轮密钥的一个实施例。
表6
SM4指令集包括4条SM4轮指令(加密、解密、加密最后一轮、解密最后一轮)。SM4指令集中的轮指令包括执行加密和解密的单轮操作,这些操作将用于除最后一轮之外的所有轮。例如,在表6中的SM4ENC单轮指令中,输入数据存储在128位寄存器(xmmsrcdst)中,而轮密钥存储在另一个128位寄存器(Xmm)中。该指令对存储在128位xmmsrcdst寄存器中的输入数据(源)执行SM4轮操作,再将执行轮操作的结果中重新存储到128位xmmsrcdst寄存器中作为下一轮的输入数据。因此,xmmsrcdst首先存储输入数据,然后存储SM4循环操作的结果。
当许多数据块使用相同的密钥时,每轮(密钥调度)的轮密钥可以预先计算并存储在内存中(例如,第一级数据缓存204中的轮密钥216)。轮密钥216可以包含一个数组RK,32个元素分别存储每一轮的轮密钥,SM4加解密操作时输入的密钥从数组RK中获得。
SM4指令集还包括用于最后一轮解密的SM4解密指令和用于最后一轮加密的SM4加密指令。
在实施例中,寄存器文件304具有多个128位寄存器,可供SM4指令使用,128为寄存器可以存储源操作数、轮密钥和SM4操作结果。对于第一轮,SM4操作指令接收到的源操作数是可能要加密的128位明文或者要解密的128位密文。
图3是示出了根据本发明的原理,通过在并行的不同数据块上执行独立操作来改进SM4加密/解密操作的吞吐量的方法的实施例流程图。
通过允许数据块的加密/解密流与另一个数据块的加密/解密流并行运行,以提供要处理的数据,并允许在每个循环中分派SM4轮指令,SM4操作的吞吐量得到了提高。如果满足1.在多个数据块上使用同一密钥,即仅一次轮密钥生成,每一轮都使用同一个轮密钥处理多个数据块。2.SM4的轮密钥是以流水线的方式进行分配的。那么就可以对多个数据块进行并行处理。每增加一个周期发送一次SM4指令,即使每个SM4指令的延迟大于一个周期,也能够提高SM4加密/解密操作的吞吐量。
接下来将描述SM4加密操作的一个实施例,即使用128位数据块和128位密钥,进行32轮的SM4加密操作。
下面的表7举例说明了一个软件指令实施例,它可以通过并行地对不同的数据块执行独立操作来最大化SM4加密的吞吐量。
表7
参照表7,因为使用每个Xmm寄存器的操作独立于使用其他Xmm寄存器的操作,所以SM4轮指令“SM4ENC”在每个循环中都被调用。如上所述,这是由于并行操作模式所造成,例如,在ECB模式下,要加密的明文被划分为n个固定长度的数据块,每个块单独加密,即每个数据块独立于其他数据块进行加密。如果使用的Xmm寄存器的数量(本例中为8)大于或等于指令延迟(即完成该指令所需的周期数L),则一个SM4操作可以在每个周期内发送SM4轮指令。
在图中300步骤,要加密/解密存储在多个寄存器中的多个数据块,在具有128位寄存器的实施例中,由于SM4操作数据块的大小是128比特,不同的数据块被存储在k个128位寄存器中,为了最大限度的提高性能,用于存储不同数据块的寄存器数量取决于SM4轮指令的延迟。这使得可以在每个周期内发送一个SM4轮指令,从而可以并行地处理多个不同的数据块。继续进行302操作步骤。
在图中302步骤,第0轮SM4加密/解密操作中执行的操作与在其他轮中执行的操作不同,因此,第0轮中的操作是在k个128位寄存器中存储的k个不同的数据块上依次执行的。接下来继续进行304步骤。
在图中304步骤,对于剩下的其他轮发出相同的SM4轮指令,对于存储在当前轮的k个寄存器中的k个不同的数据块,使用与该轮相关联的轮密钥(RK),每个周期分配一条SM4指令。在为存储在k寄存器中的k个不同的数据块分配SM4轮指令之后,继续使用306操作进行处理。
在图中的306步骤中,如果SM4操作还有一轮,则继续使用304操作处理下一轮。如果不是,则进行308步骤操作。
在图中308步骤,如果SM4操作还需要处理其他数据块,则跳转至300继续处理,加载一个k个数据块到寄存器中。否则进入310步骤返回SM4操作结果。
图4给出了每个周期调用一个SM4操作指令的实施例,在图4所示的例子中,寄存器数量k和SM4轮指令延迟L都是6。图4表示了表7所示的for循环之一的SM4指令的分配,并与图3中的304步骤进行了讨论,当k=L=6时,第2轮的for循环分派的指令可以显式地写成表8所示。
表8
在本例中,所指的寄存器是Xmm寄存器文件中的Xmm寄存器,其中6个Xmm寄存器(标记为Xmm1-Xmm6)分别用于存储6个不同的数据块。但是本发明不限于Xmm寄存器,使用任何可以为SM4轮存储128位数据块并可由SM4轮指令访问的寄存器即可。SM4ENC指令可以在每个循环中分派,因为使用Xmm1的操作独立于使用其他每个Xmm寄存器的操作(Xmm1,…,Xmm6),在理想的调度条件下,这个for循环需要k+L-1(6+6-1=11)个循环才能完成。
参考图3,在L和k都为6时,每次循环都发出一条SM4ENC指令,对于每个轮(0轮除外),前6条指令使用相同的轮密钥RK操作6个不同的Xmm寄存器(Xmm1-Xmm6)。例如,在周期1中使用Xmm1和RK[1]分发SM4ENC指令,在周期2中使用Xmm2和RK[2]分发SM4ENC指令。
周期1中发出的SM4ENC指令有6个周期延迟,因此在周期6结束时完成。
在第七个周期中发出的第七个SM4ENC指令可以使用存储在Xmm1寄存器中的第七个数据块和轮密钥RK[2],因为到那时,使用存储在Xmm1寄存器和轮密钥RK[1]中的第一个数据块在第1个周期中分派的SM4ENC指令已经完成(基于6个周期延迟)。因此,6条SM4ENC指令可以使用存储在6个Xmm寄存器中的一个中的不同数据块独立地并行操作每条指令。因此,使用存储在多个寄存器中的数据块的第二轮SM4循环在11个周期之后完成,而不是在12。如果像表5所示的实施例所述,连续处理两个SM4轮的数据块,情况也会如此。
如上所述,k个数据块可以并行加密,其中k的选择取决于可用于存储数据块的寄存器数量,如果k大于或等于L,则SM4指令可以在每个周期甚至“跨轮”被分派,也就是说,在分派下一轮SM4轮指令之前,不必完成特SM4轮的所有轮指令。
例如,如果第一个寄存器被用于SM4使用RK[1]进行第一轮操作,那么第一个寄存器不能被用于SM4使用RK[2]来进行第二轮操作。因此,如果k大于或等于L,在k个周期中,第一轮的SM4指令被分派,在k+1周期中,第一个寄存器可用来存储一个数据块,供使用轮密钥RK[2]处理SM4第二轮。
并行处理k个不同的数据块,大约需要k个周期,对于SM4的第0轮操作,执行异或运算操作以及加上一个32*k+L-1的循环周期来处理其他的轮操作。因此,可以通过每k个数据块的(32*k+L-1)个周期来估计吞吐量,其为每个数据块大约32+(L-1)/k个周期。
性能受可用寄存器数量和SM4轮指令延迟的限制。轮密钥(RK)既可以从内存中读取(寄存器-内存模式),也可以加载到另一个寄存器(寄存器-寄存器模式)。如果在第一次读取轮密钥之后将其存储在一级缓存中,则寄存器到内存模式可能提供更高的性能。
如果不使用SM4轮指令的模式来实现加/解密操作,大约需要花费12个周期/字节,忽略存储、加载、增量等开销的延迟,假设k=L=8,在串行操作模式下,使用SM4轮指令的SM4加密每128位(16字节)大约消耗32*L周期,即大约16个周期/字节。如上所述,通过并行处理多个不同的数据块,8个块的加密将消耗32*k+L-1,即每8个块大约263个周期(2.05个周期/字节)。因此,并行地对不同的数据块执行独立操作可以获得比使用串行操作序列来处理数据高出近8倍的性能提升。
通过并行操作,只要寄存器(k)的数量大于或等于L,SM4轮指令的延迟(L)几乎是忽略不计的。这样对于所有各个数据块独立加解密操作的操作模式,如:ECB、CCM、GCM等,就可以使用本方法进行高效的进行加解密。
本发明涉及的方法可以体现在包含计算机可用介质的计算机程序产品中,例如:这种计算机可用介质可由只读存储器设备组成,如具有计算机可读程序代码存储在其上的光盘只读存储器(CD ROM)、磁盘或普通ROM设备,或计算机软盘。
综上所述,本发明用于在并行操作模式中优化国密算法SM4加密和解密,在具有流水线执行单元的系统中增加了加密/解密操作的吞吐量,从而降低在并行操作模式下的加密和解密时间。可以通过在每个周期中调度SM4轮密钥指令来并行执行不同的数据块的独立加密/解密。
以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。

Claims (10)

1.一种用于国密SM4算法的加密及解密方法,其特征在于,包括:
将一组k个固定大小且连续数据块分别存储在对应数量的寄存器中,且k的取值不小于SM4轮指令所需周期数L;
在k个连续数据块的集合上执行SM4轮操作序列,并且在SM4轮次期间并行地对该组数据块执行SM4轮操作序列;即
按照每个处理周期处理一个数据块的速率以流水线方式将SM4轮指令依次分派给各数据块。
2.根据权利要求1所述的加密及解密方法,其特征在于,
所述加密及解密方法还包括:将每个数据块的SM4操作结果存储在对应的寄存器中。
3.根据权利要求1所述的加密及解密方法,其特征在于,
每个数据块具有128位,且每个寄存器都是Xmm寄存器。
4.根据权利要求1所述的加密及解密方法,其特征在于,
所述加密及解密方法对应的操作模式为电子代码簿,计数器,密码块链接消息认证码和伽罗瓦计数器模式上述操作模式中的一种。
5.根据权利要求4所述的加密及解密方法,其特征在于,
k>2,且L>2。
6.根据权利要求1或5所述的加密及解密方法,其特征在于,
k等于6,并且L等于或小于k;或
k和L相等且等于8。
7.一种加密及解密用处理器,其特征在于,包括:
寄存器文件,其包括k个寄存器以存储一组固定大小且k个连续数据块;
执行单元,对k个连续数据块的集合执行SM4轮操作序列;其中
k的取值大于或等于执行SM4轮操作序列时的SM4轮指令所需周期数L。
8.根据权利要求7所述的加密及解密用处理器,其特征在于,
所述执行单元适于在对一个数据块进行执行SM4轮操作序列时独立于其他数据块,并通过以流水线的方式将SM4轮指令以每个处理器周期一个数据块的速率分发给k个连续数据块的集合,并行地对k个连续数据块的集合执行SM4轮操作。
9.根据权利要求8所述的加密及解密用处理器,其特征在于,
所述加密及解密用处理器还包括:提取和解码单元、输出单元和数据缓存;其中
所述提取和解码单元适于从一级指令缓存中获取宏指令,对宏指令解码以分解为微操作;
所述微操作适于存储在提取和解码单元中的只读存储器内,以供执行单元调度和执行;即
所述执行单元中的SM4操作单元适用于对一组SM4轮指令执行微操作;
且通过所述输出单元将执行结果写入数据缓存中;
所述数据缓存中存储有用于SM4使用的轮密钥,并加载到执行单元中,供微操作执行SM4轮指令时使用。
10.根据权利要求9所述的加密及解密用处理器,其特征在于,
所述执行单元还适于为所述k个寄存器中的每个k个数据块存储SM4循环指令操作的结果。
CN201910051056.2A 2019-01-18 2019-01-18 在并行操作模式中优化sm4加密和解密的方法及处理器 Pending CN109600217A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910051056.2A CN109600217A (zh) 2019-01-18 2019-01-18 在并行操作模式中优化sm4加密和解密的方法及处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910051056.2A CN109600217A (zh) 2019-01-18 2019-01-18 在并行操作模式中优化sm4加密和解密的方法及处理器

Publications (1)

Publication Number Publication Date
CN109600217A true CN109600217A (zh) 2019-04-09

Family

ID=65966320

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910051056.2A Pending CN109600217A (zh) 2019-01-18 2019-01-18 在并行操作模式中优化sm4加密和解密的方法及处理器

Country Status (1)

Country Link
CN (1) CN109600217A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110880967A (zh) * 2019-12-24 2020-03-13 北京炼石网络技术有限公司 采用分组对称密钥算法对多消息并行加解密方法
CN111159731A (zh) * 2019-12-16 2020-05-15 合肥大唐存储科技有限公司 一种密码设备和数据处理方法
CN111736902A (zh) * 2020-07-16 2020-10-02 北京炼石网络技术有限公司 基于simd指令的sm4的并行计算方法及装置、可读存储介质
CN112019322A (zh) * 2019-05-30 2020-12-01 华为技术有限公司 密码流生成方法及其装置
CN112350819A (zh) * 2020-10-23 2021-02-09 四川九洲电器集团有限责任公司 一种全流水线sms4加解密方法及系统
CN112543096A (zh) * 2020-12-16 2021-03-23 北京马赫谷科技有限公司 基于simd指令的数据处理方法、装置、设备及介质
CN113114654A (zh) * 2021-04-06 2021-07-13 安徽中科美络信息技术有限公司 一种终端设备接入安全认证方法、装置及系统
CN114091086A (zh) * 2022-01-14 2022-02-25 麒麟软件有限公司 一种基于比特切片的sm4算法快速实现方法
CN116186747A (zh) * 2023-04-27 2023-05-30 暗链科技(深圳)有限公司 自适应哈希加密方法、非易失性可读存储介质及电子设备
CN117896067A (zh) * 2024-03-13 2024-04-16 杭州金智塔科技有限公司 适用于国密sm2算法的并行模约减方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101520966B (zh) * 2008-02-27 2013-06-12 英特尔公司 并行运算模式中优化高级加密标准加解密的方法和装置
CN107786550A (zh) * 2017-10-17 2018-03-09 中电长城(长沙)信息技术有限公司 一种自助设备的安全通信方法、安全通信系统及自助设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101520966B (zh) * 2008-02-27 2013-06-12 英特尔公司 并行运算模式中优化高级加密标准加解密的方法和装置
CN107786550A (zh) * 2017-10-17 2018-03-09 中电长城(长沙)信息技术有限公司 一种自助设备的安全通信方法、安全通信系统及自助设备

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112019322A (zh) * 2019-05-30 2020-12-01 华为技术有限公司 密码流生成方法及其装置
CN112019322B (zh) * 2019-05-30 2022-03-25 华为技术有限公司 密码流生成方法及其装置
CN111159731A (zh) * 2019-12-16 2020-05-15 合肥大唐存储科技有限公司 一种密码设备和数据处理方法
CN111159731B (zh) * 2019-12-16 2023-08-08 合肥大唐存储科技有限公司 一种密码设备和数据处理方法
CN110880967B (zh) * 2019-12-24 2023-04-07 北京炼石网络技术有限公司 采用分组对称密钥算法对多消息并行加解密方法
CN110880967A (zh) * 2019-12-24 2020-03-13 北京炼石网络技术有限公司 采用分组对称密钥算法对多消息并行加解密方法
CN111736902A (zh) * 2020-07-16 2020-10-02 北京炼石网络技术有限公司 基于simd指令的sm4的并行计算方法及装置、可读存储介质
CN112350819A (zh) * 2020-10-23 2021-02-09 四川九洲电器集团有限责任公司 一种全流水线sms4加解密方法及系统
CN112543096A (zh) * 2020-12-16 2021-03-23 北京马赫谷科技有限公司 基于simd指令的数据处理方法、装置、设备及介质
CN113114654A (zh) * 2021-04-06 2021-07-13 安徽中科美络信息技术有限公司 一种终端设备接入安全认证方法、装置及系统
CN113114654B (zh) * 2021-04-06 2022-10-18 中科美络科技股份有限公司 一种终端设备接入安全认证方法、装置及系统
CN114091086A (zh) * 2022-01-14 2022-02-25 麒麟软件有限公司 一种基于比特切片的sm4算法快速实现方法
CN116186747A (zh) * 2023-04-27 2023-05-30 暗链科技(深圳)有限公司 自适应哈希加密方法、非易失性可读存储介质及电子设备
CN117896067A (zh) * 2024-03-13 2024-04-16 杭州金智塔科技有限公司 适用于国密sm2算法的并行模约减方法及装置

Similar Documents

Publication Publication Date Title
CN109600217A (zh) 在并行操作模式中优化sm4加密和解密的方法及处理器
KR101068367B1 (ko) 병렬 연산 모드에서 aes 암호화 및 암호 해독을 최적화하는 방법 및 장치
JP6592804B2 (ja) 新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令
KR101036103B1 (ko) 일련의 변환을 행하여 하나의 변환을 분리시키는 명령어를 포함하는 명령어들의 조합
CN101350714B (zh) 采用混合rijndael s-box的有效高级加密标准数据路径
US20080240421A1 (en) Method and apparatus for advanced encryption standard (AES) block cipher
Buell Modern symmetric ciphers—Des and Aes

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
CB03 Change of inventor or designer information

Inventor after: Lin Hanyang

Inventor after: Zhang Shengsheng

Inventor after: Yu Weiming

Inventor after: Cai Qiaoying

Inventor after: Chen Yuegun

Inventor before: Lin Hanyang

Inventor before: Zhang Shengsheng

Inventor before: Yu Weiming

Inventor before: Cai Qiaoying

Inventor before: Chen Yuekun

CB03 Change of inventor or designer information
RJ01 Rejection of invention patent application after publication

Application publication date: 20190409

RJ01 Rejection of invention patent application after publication