采用分组对称密钥算法对多消息并行加解密方法技术

技术编号:23499072 阅读:18 留言:0更新日期:2020-03-13 13:37
本申请提供一种采用分组对称密钥算法对多消息并行加解密方法,寄存器的大小为M,基本运算单元大小为N,则可同时处理k=M/N个来自不同消息的数据。其步骤包括:将k个来自不同消息的数据分别放入k个分组数据块中,每个分组数据块大小与寄存器大小相同;将每个分组数据块中的数据分为k段,将k个分组数据中的第i段依次串联后放入第i个寄存器变量中,对第i个寄存器变量执行加密,将寄存器变量中加密后的数据分为k段,将每个寄存器中的第j段进行串联后获得第j组明文的加密结果;解密方法与加密方法相似。本发明专利技术通过并行不同消息的数据块,避免了当前常用并行模式处理短消息时的大量填充,最大化分组算法的吞吐量。

Parallel encryption and decryption of multiple messages using block symmetric key algorithm

【技术实现步骤摘要】
采用分组对称密钥算法对多消息并行加解密方法
本专利技术属于编码
,具体地涉及一种采用分组密码算法对多消息并行加解密方法。
技术介绍
密码学是研究如何隐密地传递信息的学科,对称密码学是密码学的一个重要分支,分组密码又是对称密码的一个重要研究方向。对称密码是一种加/解密使用相同密钥的密码体制,分组密码将输入的明文分组当作一个整体处理,输出一个相应的密文分组。以SM4、AES等为代表的分组密码算法的基本操作是以16/32/64比特为基本的运算单位的,而现代CPU中有64,128,256甚至512比特的寄存器。这意味着,在一个寄存器内部可以存放多个基本运算的操作数,对该寄存器的一次运算(如按位异或操作)相当于同时对多个操作数完成了相应的运算。以128比特寄存器,32比特基本运算的操作数和比特异或操作为例,一个128比特寄存器中可以同时存放4个32比特基本运算的操作数,则两个128比特寄存器的一次异或操作相当于同时完成了4个32比特基本运算的操作数的比特异或运算。当前常用分组密码算法加解密消息的并行技术,主要是采纳用上述方法实现对一个长消息的加解密,进而提升加解密速率。也即在一个大寄存器中装载同一个消息的不同区块的数据,来实现对一个消息的不同区块数据的并行处理,从而提升加解密该消息的速率。但是在实际应用中面对的是另外一个场景是需要处理大量的消息,而每个消息的长度较短,例如数据库加密时通常需要处理海量的短消息。例如对手机号或邮箱的加解密,通常只需要加解密一个分组,此时无法利用前述的并行方式加速加解密运算.目前针对短消息的加解密需求,只能用传统的加解密方法,一次加解密一个分组。本文提出的方法可以并行加解密多个消息,从而提升加解密操作的效率。
技术实现思路
本专利技术提供了一种采用分组对称密码算法对并行加解密多个消息的方法,本专利技术中提出的方法支持对不同消息采用不同密钥。本专利技术公开了一种采用分组对称密钥算法对多消息并行加密的方法,具体步骤包括:寄存器的大小为M,基本运算单元大小为N,则此时k=M/N,即可同时处理k个来自不同消息的数据,将k个来自不同消息的数据分别放入k个分组数据块中,每个分组数据块大小与寄存器大小相同为M;根据采用的加密算法,根据密钥生成算法和k个主密钥生成轮密钥,k个主密钥可以相同也可各不相同;加密时,根据基本运算单元大小N将每个分组数据块中的数据分为k段,将k个分组数据中的第i段依次串联后放入第i个寄存器变量中,对第i个寄存器变量执行加密操作,即对k个分组数据块的第i段执行并行加密操作,其中i=1,2,…,k;对k个寄存器变量全部完成加密;将寄存器变量中加密后的数据分为k段,将每个寄存器中的第j段进行串联后获得第j组明文的加密结果,其中j=1,2……k;即还原了加密后的k个来自不同消息的数据。优选地,其中加密算法为SM4算法,寄存器大小为M=128比特,基本运算单元大小为N=32比特,则有k=M/N=4。优选地,同时处理4个来自不同消息的数据,即4组明文;根据密钥扩展算法生成4组轮密钥,每组轮密钥包含32个32比特的轮密钥,记作rkij,i=0,1,…,3,j=0,1,…,31;加密时,将每个分组数据块中的第一个32比特取出并串联后,存入第一个寄存器变量中,将每个分组数据块中的第二个32比特取出并串联后存入第二个寄存器变量中,将每个分组数据块中的第三个32比特取出并串联后存入第三个寄存器变量中,将每个分组数据块中的第四个32比特取出并串联后存入第四个寄存器变量中;使用128比特寄存器对4个寄存器变量执行加密操作;分别取出4个寄存器变量中的第一个32比特串联后作为第一组明文的加密结果,分别取出4个寄存器变量中的第二个32比特串联后作为第二组明文的加密结果,分别取出4个寄存器变量中的第三个32比特串联后作为第三组明文的加密结果,分别取出4个寄存器变量中的第四个32比特串联后作为第四组明文的加密结果。优选地,所述k个主密钥相同。优选地,所述加密方法适用于分组对称算法的工作模式包括:ECB、CBC、CTR、CFB或FPE。以及,一种采用分组对称密钥算法对多消息并行解密方法,具体步骤包括:寄存器的大小为M,基本运算单元大小为N,可同时处理k=M/N个来自不同消息的加密数据,将k个加密后的数据分别放入k个分组数据块中;每个分组数据块大小与寄存器大小相同为M;根据采用的解密算法,根据密钥生成算法和k个主密钥生成轮密钥,k个主密钥可以相同也可以互不相同;解密时,根据基本运算单元大小N将每个分组数据块中的数据分为k=M/N段,将k个分组数据中的第i段依次串联后放入第i个寄存器变量中,对第i个寄存器变量执行解密操作,即对k个分组数据块的第i段执行并行解密操作,其中i=1,2……k;对k个寄存器变量全部完成解密;将寄存器变量中解密后的数据分为k=M/N段,将每个寄存器中的第j段进行串联后获得第j组的明文,其中j=1,2……k。优选地,其中解密算法为SM4算法,寄存器大小为128比特,基本运算单元大小为32比特。优选地,同时处理4个来自不同消息的加密数据,即4组密文;根据密钥扩展算法会生成4组轮密钥,每组轮密钥包含32个32比特的轮密钥,记作rkij,i=0,1,2,3,j=0,1,…,31;解密时,将每个分组数据块中的第一个32比特取出并串联后,存入第一个寄存器变量中,将每个分量数据块中的第二个32比特取出并串联后存入第二个寄存器变量中,将每个分量数据块中的第三个32比特取出并串联后存入第三个寄存器变量中,第四个32比特取出并串联后存入第四个寄存器变量中;使用128比特寄存器对4个寄存器变量执行解密操作;分别取出4个寄存器变量中的第一个32比特串联后作为第一组密文的解密结果,分别取出第二个32比特串联后作为第二组密文的解密结果,分别取出第三个32比特串联后作为第三组密文的解密结果,分别取出第四个32比特串联后作为第四组密文的解密结果。优选地,所述解密方法适用于分组对称算法的工作模式包括:ECB、CBC、CTR、CFB或FPE。本专利技术的有益效果是,利用并行操作模式提升分组密码算法加解密多个消息的速率。在并行操作模式中,可以通过调用分组算法的轮函数,并行执行不同数据块的独立加解密,不同数据块加解密可以使用不同密钥,也可以使用相同密钥。通过并行处理多个消息的数据块,避免常用分组密码算法加解密一个消息的并行技术,对于加解密短消息的大量填充。可以通过并行地对不同的短消息数据执行独立操作来最大化分组算法的吞吐量。附图说明图1加密流程示意图;以及图2解密流程示意图。具体实施方式本申请根据所使用的指令集和算法,将k个来自不同消息的数据放入一个寄存器中。根据采用的加解密算法,根据密钥生成算法和k个主密钥生成轮密钥,k个主密钥可以是同一个密钥的多个副本也可以是不同的k个主密钥。根据所使用的指令集的不同,存放在相应长度本文档来自技高网
...

【技术保护点】
1.一种采用分组对称密钥算法对多消息并行加密方法,其特征在于,具体步骤包括:/n寄存器的大小为M,基本运算单元大小为N,则此时k=M/N,即可同时处理k个来自不同消息的数据,将k个来自不同消息的数据分别放入k个分组数据块中,每个分组数据块大小与寄存器大小相同为M;根据采用的加密算法,根据密钥生成算法和k个主密钥生成轮密钥,k个主密钥可以相同也可各不相同;/n加密时,根据基本运算单元大小N将每个分组数据块中的数据分为k段,将k个分组数据中的第i段依次串联后放入第i个寄存器变量中,对第i个寄存器变量执行加密操作,即对k个分组数据块的第i段执行并行加密操作,其中i=1,2,…,k;对k个寄存器变量全部完成加密;/n将寄存器变量中加密后的数据分为k段,将每个寄存器中的第j段进行串联后获得第j组明文的加密结果,其中j=1,2……k;即还原了加密后的k个来自不同消息的数据。/n

【技术特征摘要】
1.一种采用分组对称密钥算法对多消息并行加密方法,其特征在于,具体步骤包括:
寄存器的大小为M,基本运算单元大小为N,则此时k=M/N,即可同时处理k个来自不同消息的数据,将k个来自不同消息的数据分别放入k个分组数据块中,每个分组数据块大小与寄存器大小相同为M;根据采用的加密算法,根据密钥生成算法和k个主密钥生成轮密钥,k个主密钥可以相同也可各不相同;
加密时,根据基本运算单元大小N将每个分组数据块中的数据分为k段,将k个分组数据中的第i段依次串联后放入第i个寄存器变量中,对第i个寄存器变量执行加密操作,即对k个分组数据块的第i段执行并行加密操作,其中i=1,2,…,k;对k个寄存器变量全部完成加密;
将寄存器变量中加密后的数据分为k段,将每个寄存器中的第j段进行串联后获得第j组明文的加密结果,其中j=1,2……k;即还原了加密后的k个来自不同消息的数据。


2.根据权利要求1所述的采用分组对称密钥算法对多消息并行加密方法,其特征在于,
其中加密算法为SM4算法,寄存器大小为M=128比特,基本运算单元大小为N=32比特,则有k=M/N=4。


3.根据权利要求2所述的采用分组对称密钥算法对多消息并行加密方法,其特征在于,
同时处理4个来自不同消息的数据,即4组明文;根据密钥扩展算法生成4组轮密钥,每组轮密钥包含32个32比特的轮密钥,记作rkij,i=0,1,…,3,j=0,1,…,31;
加密时,将每个分组数据块中的第一个32比特取出并串联后,存入第一个寄存器变量中,将每个分组数据块中的第二个32比特取出并串联后存入第二个寄存器变量中,将每个分组数据块中的第三个32比特取出并串联后存入第三个寄存器变量中,将每个分组数据块中的第四个32比特取出并串联后存入第四个寄存器变量中;
使用128比特寄存器对4个寄存器变量执行加密操作;
分别取出4个寄存器变量中的第一个32比特串联后作为第一组明文的加密结果,分别取出4个寄存器变量中的第二个32比特串联后作为第二组明文的加密结果,分别取出4个寄存器变量中的第三个32比特串联后作为第三组明文的加密结果,分别取出4个寄存器变量中的第四个32比特串联后作为第四组明文的加密结果。


4.根据权利要求1所述的采用分组对称密钥算法对多消息并行加密方法,其特征在于,所述k个主密钥相同。


5.根据权利要求1所述的采用分组对称密钥...

【专利技术属性】
技术研发人员:王芷玲李瑞春白小勇王滨
申请(专利权)人:北京炼石网络技术有限公司
类型:发明
国别省市:北京;11

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

1