本申请涉及信息安全的,具体涉及一种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任一项所述的方法。