System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及信息安全,具体涉及一种杂凑算法的并行优化方法、装置、存储介质及电子设备。
技术介绍
1、诸如sha256,sm3等杂凑算法,其流程一般分为消息填充,消息扩展,迭代压缩这几个步骤。其中,在迭代压缩步骤需要多轮压缩运算,而迭代压缩计算的并行度较低,每一次迭代压缩都要使用上一次迭代压缩的结果作为输入参数,从而导致硬件资源利用率低。
技术实现思路
1、本申请实施例提供一种杂凑算法的并行优化方法、装置、存储介质及电子设备,旨在提升杂凑算法的硬件资源利用率。
2、第一方面,本申请实施例提供一种杂凑算法的并行优化方法,该方法包括:
3、并行地对m个原始数据进行填充处理和分组处理,得到每一原始数据的数据分块;
4、并行地对所述m个原始数据的数据分块进行多轮扩展处理,并在每一轮扩展处理后得到m对消息字;
5、对每一数据分块对应的消息字进行迭代压缩运算,在每一轮压缩运算中,通过n级流水线压缩单元对所述m对消息字并行地逐级运算,并将每一轮运算结果作为下一轮压缩的输入,直至得到所述m个原始数据的杂凑值,其中,2≤m≤n。
6、在一些实施例中,所述方法还包括:
7、通过n个数据输入接口接收所述m个原始数据;
8、当得到对应于m个原始数据的m个数据分块时,按照m个时钟周期依次输出所述m个数据分块以用于扩展运算。
9、在一些实施例中,所述方法还包括:
10、在检测到所述m个原始数据中有任一原始数
11、通过所述目标数据输入接口输入新的原始数据。
12、在一些实施例中,所述杂凑算法为sm3密码杂凑算法;所述方法还包括:
13、将一个数据分块的16个初始消息字w0至w15对应地存储至存储单元r1至r16,其中,每一个存储单元用于存储一个消息字,从所述存储单元r16至所述存储单元r1,所述16个存储单元依次连接;
14、在第a轮扩展处理中,根据所述存储单元r1、r4、r8、r11和r14中存储的消息字进行扩展运算得到消息字w(a+15),并将所述存储单元r1存储的消息字输出以用于压缩运算,将所述存储单元r2至存储单元r16中的消息字移位至前一个存储单元,将所述消息字w(a+15)存储至所述存储单元r16,其中,a∈(1,64)。
15、在一些实施例中,所述方法还包括:
16、在第a轮扩展处理中,根据所述字寄存器r1和字寄存器r5中存储的消息字进行扩展运算得到消息字w’a;
17、将所述消息字w’a与消息字wa输出以进行一个轮次的压缩运算。
18、在一些实施例中,所述存储单元为字寄存器。
19、在一些实施例中,所述方法还包括:
20、将每一对消息字输入所述n级流水线压缩单元进行一轮压缩运算,在本轮压缩运算完成后将最后一级压缩单元的运算结果输入第一级压缩单元以开始下一轮压缩运算;
21、在一轮压缩运算中,n级流水线压缩单元中的任意中间级压缩单元将原始数据c对应的本级运算结果输入下一级压缩单元后,接收上一级压缩单元传输的原始数据c+1对应的上一级运算结果,并根据所述上一级运算结果执行原始数据c+1对应的本级压缩运算,其中,c、c+1∈(1,m)。
22、第二方面,本申请实施例还提供一种杂凑算法的并行优化装置,
23、所述装置包括消息填充模块,消息扩展模块以及消息压缩模块,所述消息填充模块包括n个消息填充单元,所述消息扩展模块包括n个消息扩展单元,所述消息压缩模块包括n级流水线压缩单元;其中,
24、所述消息填充模块通过所述n个消息填充单元并行地对m个原始数据进行填充处理和分组处理,得到每一原始数据的数据分块,并将所述数据分块依次传输至所述消息扩展模块,其中,2≤m≤n;
25、所述消息扩展模块通过所述n个消息扩展单元并行地对所述m个原始数据的数据分块进行多轮扩展处理,并将每一轮扩展处理得到的m对消息字传输至所述消息压缩模块;
26、所述消息压缩模块对每一数据分块对应的消息字进行迭代压缩运算,在每一轮压缩运算中,通过所述n级流水线压缩单元对所述m对消息字并行地逐级运算,并将每一轮运算结果作为下一轮压缩的输入,直至得到所述m个原始数据的杂凑值。
27、第三方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本申请实施例所提供的杂凑算法的并行优化方法。
28、第四方面,本申请实施例还提供一种电子设备,所述电子设备包括处理器和存储器,所述存储器有计算机程序,所述处理器通过调用所述计算机程序,执行本申请实施例所提供的杂凑算法的并行优化方法。
29、本申请实施例提供的杂凑算法的并行优化方案,该方案并行地对m个原始数据进行填充处理和分组处理,得到每一原始数据的数据分块;并行地对m个原始数据的数据分块进行多轮扩展处理,并在每一轮扩展处理后得到m对消息字;对每一数据分块对应的消息字进行迭代压缩运算,在每一轮压缩运算中,通过n级流水线压缩单元对m对消息字并行地逐级运算,并将每一轮运算结果作为下一轮压缩的输入,直至得到m个原始数据的杂凑值,其中,2≤m≤n。本申请实施例的方案通过设计多级流水压缩单元,在采用流水线方式实现迭代压缩的同时,能够使用一个流水线同时计算多个数据的杂凑值,提高了硬件资源利用率。
本文档来自技高网...【技术保护点】
1.一种杂凑算法的并行优化方法,其特征在于,所述方法包括:
2.如权利要求1所述的杂凑算法的并行优化方法,其特征在于,所述方法还包括:
3.如权利要求2所述的杂凑算法的并行优化方法,其特征在于,所述方法还包括:
4.如权利要求1所述的杂凑算法的并行优化方法,其特征在于,所述杂凑算法为SM3密码杂凑算法;所述方法还包括:
5.如权利要求4所述的杂凑算法的并行优化方法,其特征在于,所述方法还包括:
6.如权利要求4或5所述的杂凑算法的并行优化方法,其特征在于,所述存储单元为字寄存器。
7.如权利要求1所述的杂凑算法的并行优化方法,其特征在于,所述方法还包括:
8.一种杂凑算法的并行优化装置,其特征在于,所述装置包括消息填充模块,消息扩展模块以及消息压缩模块,所述消息填充模块包括n个消息填充单元,所述消息扩展模块包括n个消息扩展单元,所述消息压缩模块包括n级流水线压缩单元;其中,
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行
10.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上,并可在所述处理器上运行的杂凑算法的并行优化程序,所述杂凑算法的并行优化程序被所述处理器执行时实现权利要求1至7中任一项所述的方法。
...【技术特征摘要】
1.一种杂凑算法的并行优化方法,其特征在于,所述方法包括:
2.如权利要求1所述的杂凑算法的并行优化方法,其特征在于,所述方法还包括:
3.如权利要求2所述的杂凑算法的并行优化方法,其特征在于,所述方法还包括:
4.如权利要求1所述的杂凑算法的并行优化方法,其特征在于,所述杂凑算法为sm3密码杂凑算法;所述方法还包括:
5.如权利要求4所述的杂凑算法的并行优化方法,其特征在于,所述方法还包括:
6.如权利要求4或5所述的杂凑算法的并行优化方法,其特征在于,所述存储单元为字寄存器。
7.如权利要求1所述的杂凑算法的并行优化方法,其特征在于,所述方法还包括:...
【专利技术属性】
技术研发人员:周吉星,丁昊杰,刘玉宣,翁恒鑫,程爱莲,
申请(专利权)人:杭州菲数科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。