在并行操作模式中优化SM4加密和解密的方法及处理器技术

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

【技术实现步骤摘要】
在并行操作模式中优化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,SM4ENCLA本文档来自技高网...

【技术保护点】
1.一种用于国密SM4算法的加密及解密方法,其特征在于,包括:将一组k个固定大小且连续数据块分别存储在对应数量的寄存器中,且k的取值不小于SM4轮指令所需周期数L;在k个连续数据块的集合上执行SM4轮操作序列,并且在SM4轮次期间并行地对该组数据块执行SM4轮操作序列;即按照每个处理周期处理一个数据块的速率以流水线方式将SM4轮指令依次分派给各数据块。

【技术特征摘要】
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个寄存器以存储一组固定大小且...

【专利技术属性】
技术研发人员:林涵阳张生生俞伟明蔡桥英陈钥琨
申请(专利权)人:江苏实达迪美数据处理有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1