一种SM3密码杂凑算法的数据处理方法及相关设备技术

技术编号:39033457 阅读:10 留言:0更新日期:2023-10-10 11:46
本申请实施例提供一种SM3密码杂凑算法的数据处理方法及相关设备,包括:根据待处理消息的起始地址和终止地址,读取存储模块中的数据;将读取的数据按目标位进行分组,每组按目标消息字发送至消息扩展模块;消息扩展模块接收到一组数据后,为预设的多个消息字寄存器赋值;并在SM3算法的多轮循环扩展计算中,生成迭代压缩模块所需的消息扩展字W和W

【技术实现步骤摘要】
一种SM3密码杂凑算法的数据处理方法及相关设备


[0001]本申请涉及信息安全的
,具体涉及一种SM3密码杂凑算法的数据处理方法及相关设备。

技术介绍

[0002]SM3密码杂凑算法是在全球哈希算法发展的背景下,国家密码管理局发动的具有自主知识产权的算法,算法旨在提高哈希算法的安全性和可靠性,以满足社会对信息安全的保障需求。
[0003]SM3密码杂凑算法是一种基于密码学的哈希算法,用于将任意长度的数据压缩成一个固定长度的Hash值,常用于保证信息的完整性和不可抵赖性等方面。
[0004]SM3密码杂凑算法在信息安全方面有着广泛的应用,如加密通讯、数字签名和认证、非对称密钥管理和数据库安全等方面,能够有效地提高信息的安全性和可靠性。
[0005]然而,现有的SM3的硬件实现过程中,需要对消息数据进行补齐和扩展,导致主控计算机进行额外的计算处理,需要占用大量的计算资源的同时,也造成不仅硬件成本的增加。

技术实现思路

[0006]为了解决上述技术缺陷之一,本申请实施例中提供了一种有效提高计算速率和响应速度、降低主控计算资源占用的SM3密码杂凑算法硬件实现方法及相关设备。
[0007]根据本申请实施例的第一个方面,提供了一种SM3密码杂凑算法的数据处理方法,包括:
[0008]S10,数据预处理模块根据待处理消息的起始地址和终止地址,读取存储模块中的数据;将读取的数据按目标位进行分组,每组按目标消息字发送至消息扩展模块;
[0009]S20,判断是否全部读取完待处理消息,若读取完毕,则发出结束读取信号,并执行步骤S30;否则,执行步骤S40;
[0010]S30,判断读取的待处理消息是否为最后一组数据,若是,则对最后一组读取的数据进行自动填充后,执行步骤S40;否则,直接执行步骤S40;
[0011]S40,消息扩展模块接收到一组数据后,为预设的多个消息字寄存器赋值;并在SM3算法的多轮循环扩展计算中,生成迭代压缩模块所需的消息扩展字W和W


[0012]S50,迭代压缩模块接收息扩展模块输出的消息扩展字W和W

,根据SM3的迭代压缩计算规则迭代生成8个32位寄存器数据,暂存于迭代压缩模块内部寄存器;
[0013]S60,迭代压缩模块接收到结束读取信号后,将本轮生成的寄存器数据传输至控制模块,并发送计算完成信号至控制模块。
[0014]根据本申请实施例的第二个方面,提供了一种SM3密码杂凑算法的算法模块,包括:
[0015]数据预处理模块,用于根据待处理消息的起始地址和终止地址,读取存储模块中
的数据;将读取的数据按目标位进行分组,每组按目标消息字发送至消息扩展模块;
[0016]以及,判断读取的待处理消息是否为最后一组数据,若是,则对最后一组读取的数据进行自动填充后,将补齐后的最后一组数据数据发送至消息扩展模块,否则,则直接将最后一组读取的数据发送至消息扩展模块(202);
[0017]以及,当全部读取完待处理消息,发出结束读取信号;
[0018]消息扩展模块,用于接收到一组数据后,为预设的多个消息字寄存器赋值;并在SM3算法的多轮循环扩展计算中,生成迭代压缩模块所需的消息扩展字W和W


[0019]迭代压缩模块,用于接收息扩展模块输出的消息扩展字W和W

,根据SM3的迭代压缩计算规则迭代生成8个32位寄存器数据,暂存于迭代压缩模块内部寄存器;当接收到结束读取信号后,将本轮生成的寄存器数据传输至控制模块,并发送计算完成信号至控制模块。
[0020]根据本申请实施例的第三个方面,提供了一种SM3密码杂凑算法硬件实现装置,包括:控制模块、算法模块和存储模块;所述算法模块为如上所述的算法模块;
[0021]所述控制模块,用于响应于外部设备的计算请求,读取待处理消息,将待处理消息存储至存储模块;
[0022]以及记录存储的待处理消息的起始地址和终止地址,并将存储的起始地址和终止地址发送至算法模块;
[0023]以及接收算法模块的计算完成信号,接收算法模块的计算结果并将计算结果存储至存储模块;
[0024]所述存储模块,用于对待处理消息和计算结果进行存储,并能够被控制模块和算法模块访问,读写其中的数据。
[0025]根据本申请实施例的第四个方面,提供了一种电子设备,包括:
[0026]存储器;处理器;以及计算机程序;
[0027]其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如上所述的方法。
[0028]根据本申请实施例的第五个方面,提供了一种计算机可读存储介质,其上存储有计算机程序;所述计算机程序被处理器执行以实现如上所述的方法。
[0029]采用本申请实施例中提供的一种SM3密码杂凑算法的数据处理方法及相关设备,具有以下技术效果:
[0030]本申请能够协助主控制器完成SM3密码杂凑算法,算法模块在进行数据处理的过程中,数据预处理模块根据待处理消息的起始地址和终止地址,读取存储模块中的数据;将读取的数据按目标位进行分组,每组按目标消息字发送至消息扩展模块;消息扩展模块接收到一组数据后,为预设的多个消息字寄存器赋值;并在SM3算法的多轮循环扩展计算中,生成迭代压缩模块所需的消息扩展字W和W

;迭代压缩模块接收息扩展模块输出的消息扩展字W和W

,根据SM3的迭代压缩计算规则迭代生成8个32位寄存器数据,暂存于迭代压缩模块内部寄存器;迭代压缩模块接收到结束读取信号后,将本轮生成的寄存器数据传输至控制模块,并发送计算完成信号至控制模块;
[0031]本申请不需要占用控制模块的计算资源,算法模块的内部可以自动对消息数据进行补齐,不需要控制模块对数据进行额外处理,可适用于任意形式的消息数据;能够有效降低主控计算资源占用,提高计算速率和响应速度,实用性极强。
附图说明
[0032]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0033]图1为本申请实施例提供的一种SM3密码杂凑算法的数据处理方法的流程示意图;
[0034]图2为在一个具体实施例中消息扩展模块的结构示意图;
[0035]图3为在一个具体实施例中数据预处理模块对最后一组读取的数据进行自动填充的流程示意图;
[0036]图4为本申请实施例提供的一种SM3密码杂凑算法硬件实现装置的结构示意图;
[0037]图5为本申请实施例提供的一种SM3密码杂凑算法硬件实现装置中数据处理流程示意图;
[0038]图中:
[0039]10为控制模块,20为算法模块,30为存储模块;
[0040]201为数据预处理模块,202为消息扩展模块,203为迭本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种SM3密码杂凑算法的数据处理方法,其特征在于,包括:S10,数据预处理模块根据待处理消息的起始地址和终止地址,读取存储模块中的数据;将读取的数据按目标位进行分组,每组按目标消息字发送至消息扩展模块;S20,判断是否全部读取完待处理消息,若读取完毕,则发出结束读取信号,并执行步骤S30;否则,执行步骤S40;S30,判断读取的待处理消息是否为最后一组数据,若是,则对最后一组读取的数据进行自动填充后,执行步骤S40;否则,直接执行步骤S40;S40,消息扩展模块接收到一组数据后,为预设的多个消息字寄存器赋值;并在SM3算法的多轮循环扩展计算中,生成迭代压缩模块所需的消息扩展字W和W

;S50,迭代压缩模块接收息扩展模块输出的消息扩展字W和W

,根据SM3的迭代压缩计算规则迭代生成8个32位寄存器数据,暂存于迭代压缩模块内部寄存器;S60,迭代压缩模块接收到结束读取信号后,将本轮生成的寄存器数据传输至控制模块,并发送计算完成信号至控制模块。2.根据权利要求1所述的一种SM3密码杂凑算法的数据处理方法,其特征在于,所述根据SM3计算规则迭代生成8个32位寄存器数据中,包括:在六个时钟周期内完成一次迭代运算;其中:第一个时钟周期,取出扩展模块输出的消息扩展字W和W

,并进行消息扩展;第二个时钟周期,进行SS1计算;第三个时钟周期,进行SS2计算;第四个时钟周期,进行TT1和TT2计算;第五个时钟周期,进行寄存器更新;第六个时钟周期,进行压缩函数V
(i+1)
的计算;其中,SS1、SS2、TT1、TT2为中间变量;i为循环变量,i=0,1,2,

,63。3.根据权利要求2所述的一种SM3密码杂凑算法的数据处理方法,其特征在于,所述迭代压缩模块中设置有目标倍频的时钟周期,通过时钟周期与消息扩展模块同步计算。4.根据权利要求1所述的一种SM3密码杂凑算法的数据处理方法,其特征在于,所述目标位为每组512位,所述目标字为32位消息字;所述预设的多个消息字为16个消息字。5.一种SM3密码杂凑...

【专利技术属性】
技术研发人员:唐道光张瑞珍任志强申懿鑫郑佳乐
申请(专利权)人:百信信息技术有限公司
类型:发明
国别省市:

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

1