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

文档序号:35668695发布日期:2023-10-07 13:25阅读:39来源:国知局
一种SM3密码杂凑算法的数据处理方法及相关设备与流程

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


背景技术:

1、sm3密码杂凑算法是在全球哈希算法发展的背景下,国家密码管理局发动的具有自主知识产权的算法,算法旨在提高哈希算法的安全性和可靠性,以满足社会对信息安全的保障需求。

2、sm3密码杂凑算法是一种基于密码学的哈希算法,用于将任意长度的数据压缩成一个固定长度的hash值,常用于保证信息的完整性和不可抵赖性等方面。

3、sm3密码杂凑算法在信息安全方面有着广泛的应用,如加密通讯、数字签名和认证、非对称密钥管理和数据库安全等方面,能够有效地提高信息的安全性和可靠性。

4、然而,现有的sm3的硬件实现过程中,需要对消息数据进行补齐和扩展,导致主控计算机进行额外的计算处理,需要占用大量的计算资源的同时,也造成不仅硬件成本的增加。


技术实现思路

1、为了解决上述技术缺陷之一,本申请实施例中提供了一种有效提高计算速率和响应速度、降低主控计算资源占用的sm3密码杂凑算法硬件实现方法及相关设备。

2、根据本申请实施例的第一个方面,提供了一种sm3密码杂凑算法的数据处理方法,包括:

3、s10,数据预处理模块根据待处理消息的起始地址和终止地址,读取存储模块中的数据;将读取的数据按目标位进行分组,每组按目标消息字发送至消息扩展模块;

4、s20,判断是否全部读取完待处理消息,若读取完毕,则发出结束读取信号,并执行步骤s30;否则,执行步骤s40;

5、s30,判断读取的待处理消息是否为最后一组数据,若是,则对最后一组读取的数据进行自动填充后,执行步骤s40;否则,直接执行步骤s40;

6、s40,消息扩展模块接收到一组数据后,为预设的多个消息字寄存器赋值;并在sm3算法的多轮循环扩展计算中,生成迭代压缩模块所需的消息扩展字w和w′;

7、s50,迭代压缩模块接收息扩展模块输出的消息扩展字w和w′,根据sm3的迭代压缩计算规则迭代生成8个32位寄存器数据,暂存于迭代压缩模块内部寄存器;

8、s60,迭代压缩模块接收到结束读取信号后,将本轮生成的寄存器数据传输至控制模块,并发送计算完成信号至控制模块。

9、根据本申请实施例的第二个方面,提供了一种sm3密码杂凑算法的算法模块,包括:

10、数据预处理模块,用于根据待处理消息的起始地址和终止地址,读取存储模块中的数据;将读取的数据按目标位进行分组,每组按目标消息字发送至消息扩展模块;

11、以及,判断读取的待处理消息是否为最后一组数据,若是,则对最后一组读取的数据进行自动填充后,将补齐后的最后一组数据数据发送至消息扩展模块,否则,则直接将最后一组读取的数据发送至消息扩展模块(202);

12、以及,当全部读取完待处理消息,发出结束读取信号;

13、消息扩展模块,用于接收到一组数据后,为预设的多个消息字寄存器赋值;并在sm3算法的多轮循环扩展计算中,生成迭代压缩模块所需的消息扩展字w和w′;

14、迭代压缩模块,用于接收息扩展模块输出的消息扩展字w和w′,根据sm3的迭代压缩计算规则迭代生成8个32位寄存器数据,暂存于迭代压缩模块内部寄存器;当接收到结束读取信号后,将本轮生成的寄存器数据传输至控制模块,并发送计算完成信号至控制模块。

15、根据本申请实施例的第三个方面,提供了一种sm3密码杂凑算法硬件实现装置,包括:控制模块、算法模块和存储模块;所述算法模块为如上所述的算法模块;

16、所述控制模块,用于响应于外部设备的计算请求,读取待处理消息,将待处理消息存储至存储模块;

17、以及记录存储的待处理消息的起始地址和终止地址,并将存储的起始地址和终止地址发送至算法模块;

18、以及接收算法模块的计算完成信号,接收算法模块的计算结果并将计算结果存储至存储模块;

19、所述存储模块,用于对待处理消息和计算结果进行存储,并能够被控制模块和算法模块访问,读写其中的数据。

20、根据本申请实施例的第四个方面,提供了一种电子设备,包括:

21、存储器;处理器;以及计算机程序;

22、其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如上所述的方法。

23、根据本申请实施例的第五个方面,提供了一种计算机可读存储介质,其上存储有计算机程序;所述计算机程序被处理器执行以实现如上所述的方法。

24、采用本申请实施例中提供的一种sm3密码杂凑算法的数据处理方法及相关设备,具有以下技术效果:

25、本申请能够协助主控制器完成sm3密码杂凑算法,算法模块在进行数据处理的过程中,数据预处理模块根据待处理消息的起始地址和终止地址,读取存储模块中的数据;将读取的数据按目标位进行分组,每组按目标消息字发送至消息扩展模块;消息扩展模块接收到一组数据后,为预设的多个消息字寄存器赋值;并在sm3算法的多轮循环扩展计算中,生成迭代压缩模块所需的消息扩展字w和w′;迭代压缩模块接收息扩展模块输出的消息扩展字w和w′,根据sm3的迭代压缩计算规则迭代生成8个32位寄存器数据,暂存于迭代压缩模块内部寄存器;迭代压缩模块接收到结束读取信号后,将本轮生成的寄存器数据传输至控制模块,并发送计算完成信号至控制模块;

26、本申请不需要占用控制模块的计算资源,算法模块的内部可以自动对消息数据进行补齐,不需要控制模块对数据进行额外处理,可适用于任意形式的消息数据;能够有效降低主控计算资源占用,提高计算速率和响应速度,实用性极强。



技术特征:

1.一种sm3密码杂凑算法的数据处理方法,其特征在于,包括:

2.根据权利要求1所述的一种sm3密码杂凑算法的数据处理方法,其特征在于,所述根据sm3计算规则迭代生成8个32位寄存器数据中,包括:在六个时钟周期内完成一次迭代运算;其中:

3.根据权利要求2所述的一种sm3密码杂凑算法的数据处理方法,其特征在于,所述迭代压缩模块中设置有目标倍频的时钟周期,通过时钟周期与消息扩展模块同步计算。

4.根据权利要求1所述的一种sm3密码杂凑算法的数据处理方法,其特征在于,所述目标位为每组512位,所述目标字为32位消息字;

5.一种sm3密码杂凑算法的算法模块,其特征在于,包括:

6.一种sm3密码杂凑算法硬件实现装置,包括:控制模块(10)、算法模块(20)和存储模块(30);其特征在于,所述算法模块(20)为权利要求6所述的算法模块;

7.一种电子设备,其特征在于,包括:

8.一种计算机可读存储介质,其特征在于,其上存储有计算机程序;所述计算机程序被处理器执行以实现如权利要求1至4任一项所述的方法。


技术总结
本申请实施例提供一种SM3密码杂凑算法的数据处理方法及相关设备,包括:根据待处理消息的起始地址和终止地址,读取存储模块中的数据;将读取的数据按目标位进行分组,每组按目标消息字发送至消息扩展模块;消息扩展模块接收到一组数据后,为预设的多个消息字寄存器赋值;并在SM3算法的多轮循环扩展计算中,生成迭代压缩模块所需的消息扩展字W和W′;迭代压缩模块接收息扩展模块输出的消息扩展字W和W′,根据SM3的迭代压缩计算规则迭代生成寄存器数据;迭代压缩模块接收到结束读取信号后,将本轮生成的寄存器数据传输至控制模块;具有降低主控计算资源占用、有效提高计算速率和响应速度的有益效果,适用于信息安全的技术领域。

技术研发人员:唐道光,张瑞珍,任志强,申懿鑫,郑佳乐
受保护的技术使用者:百信信息技术有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1