System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,具体涉及一种数据填充方法、装置、计算机设备及存储介质。
技术介绍
1、现有hash算法的实现方法通常可分为软件实现和硬件实现两类。软件实现主要依赖中央处理器(cpu)完成,不仅大量占用cpu资源,降低系统的运行效率;而且也难以满足低功耗、高吞吐率、高数据安全性等性能要求。hash算法的硬件实现方法具有迫切的实际应用需求。
2、现有消息填充的硬件实现方法计算逻辑复杂,处理时间较长,从而增加了算法运行的功耗和电路实现面积。同时芯片功耗与面积的增大会导致严重降低芯片性能和增大芯片成本。
技术实现思路
1、有鉴于此,本专利技术实施例提供了一种数据填充方法、装置、计算机设备及存储介质,以解决消息填充的硬件实现方法计算逻辑复杂,处理时间较长,最终降低芯片性能和增大芯片成本的问题。
2、第一方面,本专利技术实施例提供了一种数据填充方法,所述方法包括:
3、获取消息填充指令,其中,所述消息填充指令携带待写入的目标数据;
4、响应所述消息填充指令,将所述目标数据按照先后顺序存入消息寄存器,并确定所述消息寄存器的最高位;
5、基于所述消息寄存器的最高比特位与数据长度寄存器的特定比特位,确定所述目标数据中最后一组消息字对应的填充长度;
6、利用所述填充长度控制最后一组消息字在所述消息寄存器中进行左移,以完成最后一组消息字的填充。
7、在本专利技术一个实施例中,所述基于所述消息寄存器的最高比特位与数据
8、计算所述消息寄存器的最高比特位与所述数据长度寄存器的特定比特位之间的差值;
9、将所述差值确定为所述目标数据中最后一组消息字对应的填充长度。
10、在本专利技术一个实施例中,在将所述差值确定为所述目标数据中最后一组消息字对应的填充长度之后,所述方法还包括:
11、将所述填充长度存储至移位寄存器,其中,所述移位寄存器的存储长度与所述填充长度一致。
12、在本专利技术一个实施例中,所述利用所述填充长度控制最后一组消息字在所述消息寄存器中进行左移,包括:
13、检测当前写入的消息字是否为所述目标数据的最后一组消息字;
14、在确认当前写入的消息字为所述目标数据的最后一组消息字的情况下,在所述最后一组消息字的末尾填充1比特位的第一预设值;
15、控制移位计数器依次读取移位寄存器各个比特位的参数值,并利用所述移位寄存器中各个比特位的参数值控制最后一组消息字的左移。
16、在本专利技术一个实施例中,所述控制移位计数器依次读取移位寄存器各个比特位的参数值,并利用所述移位寄存器中各个比特位的参数值控制最后一组消息字的左移,包括:
17、控制所述移位计数器进行复位,读取所述移位寄存器中第一比特位对应的第一参数值,并确定所述第一参数值对应的第一左移位数;
18、按照所述第一左移位数在所述消息寄存器中进行填充第二预设值,以及将所述移位计数器所记录的数值更新为第一数值;
19、读取第二比特位对应的第二参数值,并确定所述第二参数值对应的第二左移位数,其中,所述第二比特位为所述第一比特位的下一比特位;
20、按照所述第二左移位数在所述消息寄存器中进行填充第二预设值,以及将所述移位计数器所记录的数值更新为第二数值,其中,所述第二数值大于所述第一数值;
21、读取第三比特位对应的第三参数值,并确定所述第三参数值对应的第三左移位数,其中,所述第三比特位为所述第二比特位的下一比特位;
22、按照所述第三左移位数在所述消息寄存器中进行填充第二预设值,以及将所述移位计数器所记录的数值更新为第三数值,其中,所述第三数值大于所述第一数值;
23、检测所述第三比特位是否为所述消息寄存器中的最后一个比特位;
24、在所述第三比特位为所述消息寄存器中最后一个比特位的情况下,基于1比特位的第一预设值,总填充位数的第二预设值以及其他消息字构建填充数据,其中,所述总填充位数为各个比特位对应左移位数的和值。
25、在本专利技术一个实施例中,所述方法还包括:
26、在确认当前写入的消息字不为所述目标数据的最后一组消息字的情况下,基于当前写入的消息字执行哈希运算。
27、在本专利技术一个实施例中,在基于1比特位的第一预设值,总填充位数的第二预设值以及其他消息字构建填充数据之后,所述方法还包括:
28、将所述填充数据中设定比特位的参数值替换为所述数据长度寄存器中设定比特位的参数值,得到替换后的填充数据;
29、基于替换后的填充数据进行哈希计算。
30、第二方面,本专利技术实施例提供了一种数据填充装置,所述装置包括:
31、获取模块,用于获取消息填充指令,其中,所述消息填充指令携带待写入的目标数据;
32、响应模块,用于响应所述消息填充指令,将所述目标数据按照先后顺序存入消息寄存器,并确定所述消息寄存器的最高位;
33、确定模块,用于基于所述消息寄存器的最高比特位与数据长度寄存器的特定比特位,确定所述目标数据中最后一组消息字对应的填充长度;
34、控制模块,用于利用所述填充长度控制最后一组消息字在所述消息寄存器中进行左移,以完成最后一组消息字的填充。
35、第三方面,本专利技术实施例提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的方法。
36、第四方面,本专利技术实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的方法。
37、本申请通过计算最后一组消息字的填充长度,并根据填充长度完成最后一组消息字的左移,节约了cpu资源,提高系统运行效率,满足低功耗、高吞吐率和高数据安全性的现实需求。相比现有的方案,本申请的计算方式运行功耗低、逻辑电路面积小,能有效提高芯片的运行速度和降低芯片成本。
本文档来自技高网...【技术保护点】
1.一种数据填充方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述消息寄存器的最高比特位与数据长度寄存器的特定比特位,确定所述目标数据中最后一组消息字对应的填充长度,包括:
3.根据权利要求2所述的方法,其特征在于,在将所述差值确定为所述目标数据中最后一组消息字对应的填充长度之后,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述利用所述填充长度控制最后一组消息字在所述消息寄存器中进行左移,包括:
5.根据权利要求4所述的方法,其特征在于,所述控制移位计数器依次读取移位寄存器各个比特位的参数值,并利用所述移位寄存器中各个比特位的参数值控制最后一组消息字的左移,包括:
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
7.根据权利要求5所述的方法,其特征在于,在基于1比特位的第一预设值,总填充位数的第二预设值以及其他消息字构建填充数据之后,所述方法还包括:
8.一种数据填充装置,其特征在于,所述装置包括:
9.一种计算机设备,
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的方法。
...【技术特征摘要】
1.一种数据填充方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述消息寄存器的最高比特位与数据长度寄存器的特定比特位,确定所述目标数据中最后一组消息字对应的填充长度,包括:
3.根据权利要求2所述的方法,其特征在于,在将所述差值确定为所述目标数据中最后一组消息字对应的填充长度之后,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述利用所述填充长度控制最后一组消息字在所述消息寄存器中进行左移,包括:
5.根据权利要求4所述的方法,其特征在于,所述控制移位计数器依次读取移位寄存器各个比特...
【专利技术属性】
技术研发人员:林方成,
申请(专利权)人:山东云海国创云计算装备产业创新中心有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。