[发明专利]一种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的具体方法为:

分别根据公式:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市风云实业有限公司,未经深圳市风云实业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110962056.5/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top