[发明专利]一种SM3算法的并行处理方法及电子设备有效
申请号: | 202110962056.5 | 申请日: | 2021-08-20 |
公开(公告)号: | CN113741972B | 公开(公告)日: | 2023-08-25 |
发明(设计)人: | 袁结全;吴灿;崔志辉;詹晋川;陈世伟 | 申请(专利权)人: | 深圳市风云实业有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F21/71;H04L9/06 |
代理公司: | 北京正华智诚专利代理事务所(普通合伙) 11870 | 代理人: | 李梦蝶 |
地址: | 518040 广东省深圳市福田区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sm3 算法 并行 处理 方法 电子设备 | ||
本发明公开了一种SM3算法的并行处理方法及电子设备,本发明通过对SM3密码杂凑算法公式进行化简,将运算中不必要的中间变量进行替代,并对化简后的公式进行循环展开、并行处理,从而达到简化运算过程,节约了计算资源,提高了运算速度。
技术领域
本发明涉及数据处理领域,具体涉及一种SM3算法的并行处理方法及电子设备。
背景技术
SM3密码杂凑算法是一种基于分组迭代结构的杂凑算法,是我国采用的一种密码散列函数标准,针对长度为L(L264)的报文消息,SM3算法经过填充、迭代压缩,生成长度为256bit的杂凑值,它在消息认证完整性保护数字签名中有重要的应用。但是现有的SM3算法在数据压缩过程中需要进行64轮迭代,会消耗大量的计算资源,拖慢运行速度。
发明内容
针对现有技术中的上述不足,本发明提供的一种SM3算法的并行处理方法及电子设备解决了SM3算法进行64轮迭代消耗计算资源大的问题。
为了达到上述发明目的,本发明采用的技术方案为:
提供一种SM3算法的并行处理方法,其包括以下步骤:
S1、将长度为L比特的消息m的结尾处添加数字1,并在添加的数字1后添加64比特的数值为L的二进制数值,得到第一次填充后的消息;
S2、判断第一次填充后的消息长度是否为512的整数倍,若是则直接进入步骤S4;否则进入步骤S3;
S3、在添加的数字1与添加的二进制数值之间添加数字0直至消息长度为512的整数倍,得到第二次填充后的消息并进入步骤S4;
S4、将当前消息按照512比特进行分组,分组后的每个个体包括16个字W0,W1,…,W15;W0为个体的最高的32比特,W15为个体的最低的32比特;
S5、基于分组后的每个个体的16个字进行扩展得到52个字的Wj和64个字的Wk’,即得到与每个个体对应的共132字的数据;其中j=16,17,…,67;k=0,1,2,…,63;
S6、构建中间变量SS1n、SS2n、TT1n和TT2n;
S7、将中间变量带入寄存器变量的计算过程,得到简化后的寄存器变量在数据压缩过程中的计算公式;
S8、基于简化后的寄存器变量的计算公式,将SM3算法的压缩迭代的每相邻两轮迭代合并为一次计算,完成SM3算法的并行处理。
进一步地,步骤S5的具体方法包括以下子步骤:
S5-1、将字Wj-16循环左移15位的结果、Wj-9循环左移15位的结果和Wj-3循环左移15位的结果进行三者异或操作,得到值Q0;其中16≤j≤67;
S5-2、将值Q0、值Q0进行循环左移15位的结果和值Q0进行循环左移23位的结果进行三者异或操作,得到值Q1;
S5-3、将值Q1、Wj-13循环左移7位和Wj-6进行三者异或操作,将操作结果记为Wj;
S5-4、将Wk和Wk+4进行异或操作,将操作结果记为Wk’。
进一步地,步骤S6的具体方法为:
分别根据公式:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市风云实业有限公司,未经深圳市风云实业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110962056.5/2.html,转载请声明来源钻瓜专利网。