当前位置: 首页 > 专利查询>深圳大学专利>正文

并行哈希函数的构造方法技术

技术编号:15330145 阅读:95 留言:0更新日期:2017-05-16 13:40
本发明专利技术提供一种并行哈希函数的构造方法,所述构造方法包括以下步骤:对给定值进行填充得到填充给定值,并将所述填充给定值进行划分得到多个初始消息块;对多个初始消息块进行预设的函数处理得到对应的多个块哈希值;判断当前轮数的序列号为奇数或偶数,其中,当当前轮数的序列号为奇数时,相邻两个块哈希值进行异或运算得到一个异或运算值,并将所述异或运算值缓存在8个寄存器中,当当前轮数的序列号为偶数时,相邻两个块哈希值进行合并交换运算得到一个合并运算,并将所述合并运算值缓存在8个寄存器中;直到根据多个块哈希值得到最终的异或运算值或最终的合并运算值;根据最终的异或运算值或最终的合并运算值得到哈希值。

Construction method of parallel hash function

The invention provides a parallel hash function construction method, the construction method comprises the following steps: for a given value of filling filling a given value, and the value of a given filling has been divided into a number of initial message block; a plurality of initial message blocks are preset function obtained corresponding to multiple blocks hash value; determine the sequence number of the current round number is odd or even, the serial number when the current round number is odd, two adjacent block hash value XOR a XOR value, and the value of the existence of 8 slow XOR register, serial number when the current number of rounds for even, two adjacent block hash values with exchange operation to reach a combined operation, and the operation of combination of value cache in 8 registers; according to a plurality of blocks until the final hash is different Or an operation value or a final combination operation value; the hash value is worth the value of the final XOR operation or the final merge operation.

【技术实现步骤摘要】
并行哈希函数的构造方法
本专利技术涉及信息安全领域,尤其涉及一种并行哈希函数的构造方法。
技术介绍
现有的哈希函数消息运算过程中重复使用一压缩函数f,如图1所示,函数f的输入有两项,一项是上一轮(第i-1轮)的输出CVi-1,也即是链接变量,另一项则是本轮(第i轮)输入的消息块Yi。因此只有上一个消息块的值计算结束之后才能计算下一个消息块的值,这就增加了计算时间。当消息足够长时,运算速率不可避免的会很低,使得运算的效率降低。
技术实现思路
本专利技术旨在解决现有技术中哈希函数运算效率较低的技术问题,提供一种并行哈希函数的构造方法。本专利技术的实施例提供一种并行哈希函数的构造方法,所述构造方法包括以下步骤:对给定值进行填充得到填充给定值,并将所述填充给定值进行划分得到多个初始消息块;对多个初始消息块进行预设的函数处理得到对应的多个块哈希值;判断当前轮数的序列号为奇数或偶数,其中,当当前轮数的序列号为奇数时,相邻两个块哈希值进行异或运算得到一个异或运算值,并将所述异或运算值缓存在8个寄存器中,当当前轮数的序列号为偶数时,相邻两个块哈希值进行合并交换运算得到一个合并运算,并将所述合并运算值缓存在8个寄存器中;直到根据多个块哈希值得到最终的异或运算值或最终的合并运算值;根据最终的异或运算值或最终的合并运算值得到哈希值。本专利技术的技术方案与现有技术相比,有益效果在于:每个块哈希值在计算时不受其他消息块值的影响,不需要等待其他消息块值的运算结果来进行运算,即在每轮计算中,多个消息块可以同时被处理,因此可以提高运算效率,节省运算时间。附图说明图1是现有技术中哈希函数的运算示意图;图2是本专利技术并行哈希函数的构造方法一种实施例的流程示意图;图3是本专利技术并行哈希函数一种实施例的结构示意图;图4是本专利技术并行哈希函数的构造方法中初始链接变量值的处理方法一种实施例的流程示意图;图5是本专利技术并行哈希函数的构造方法中初始链接变量值的处理方法另一种实施例的流程示意图;图6是本专利技术并行哈希函数的仿真结果示意图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本专利技术,而不能理解为对本专利技术的限制。本专利技术一个实施例的并行哈希函数的构造方法,如图2所示,所述构造方法包括以下步骤:步骤S201,对给定值进行填充得到填充给定值,并将所述填充给定值进行划分得到多个初始消息块;步骤S202,对多个初始消息块进行预设的函数处理得到对应的多个块哈希值;步骤S203,判断当前轮数的序列号为奇数或偶数,其中,当当前轮数的序列号为奇数时,进入步骤S204,当当前轮数的序列号为偶数时,进入步骤S205;步骤S204,相邻两个块哈希值进行异或运算得到一个异或运算值,并将所述异或运算值缓存在8个寄存器中;步骤S205,相邻两个块哈希值进行合并交换运算得到一个合并运算,并将所述合并运算值缓存在8个寄存器中;步骤S206,直到根据多个块哈希值得到最终的异或运算值或最终的合并运算值;步骤S207,根据最终的异或运算值或最终的合并运算值得到哈希值。在具体实施中,所述对给定值进行填充得到填充给定值具体为:在给定值的后面加入一个常数1和多个常数0;加入给定值的长度值,得到长度为512倍数的填充给定值。在具体实施中,所述将所述填充给定值进行划分得到多个初始消息块的步骤,具体为:按照512比特,将所述填充给定值进行划分得到多个初始消息块在具体实施中,所述预设的函数具体为:压缩函数f。在具体实施中,当当前轮数的序列号为奇数时,相邻两个块哈希值进行异或运算得到一个异或运算值,具体为:当当前轮数的序列号为奇数时,在最后一个块哈希值之后增加一个块哈希值;相邻两个块哈希值进行异或运算得到一个异或运算值,其中,增加的块哈希值与最后一个块哈希值相同。在具体实施中,图3是本专利技术一个实施例并行哈希函数的结构示意图。首先把给定的消息M进行填充,使得填充后的长度是512的倍数。填充的规则是在消息后加入一个1和若干个0,在最后再加入消息的长度。填充之后的消息被分成若干个512比特的消息块Y0,Y1,…,YL-1。我们先各自计算每一个消息块的值并把它们的值记录下来表示为块哈希值。在接下来的每一轮里,每两个相邻的消息块的值被一起进行运算。当每一轮里消息块的个数是奇数时,我们添加一个块哈希值,该块哈希值和本轮最后一个消息块的值是相同的。在这个阶段,使用256比特长的缓冲区以存储中间结果和最后的哈希值,缓冲区可表示为8个32比特长的寄存器A,B,C,D,E,F,G,H。假设i是轮数的序列号,当imod2=1(i=1,2,...)时,让该轮里相邻的两个消息块进行异或运算,获得的值分别存放在八个寄存器A,B,C,D,E,F,G,H中。比如在第一轮中,Y0对应的消息块值和Y1对应的消息块值进行异或运算得到运算值h1,Y2对应的消息块值和Y2对应的消息块值进行异或运算得到运算值h2,在第一轮中,最后一个Yi对应的消息块值没有可以进行运算的对象,因此增加一个Yi对应的消息块值与最后一个Yi对应的消息块值进行异或运算。当imod2=0(i=1,2,...)时,我们把这两个消息块中前一个消息块的E,F,G,H中的值依次赋给新的寄存器A,B,C,D,把后一个消息块的A,B,C,D中的值依次赋给新的寄存器E,F,G,H,这样就得到新的值。比如相邻两个消息块需要合并,记第一消息块为MB1和第二消息块MB2。第一消息块MB1需要ABCDEFGH八个寄存器存放,第二消息块MB2也需要ABCDEFGH八个寄存器存放。当imod2=0时,第一消息块为MB1和第二消息块MB2的合并结果记为NMB。其中,NMB的ABCD四个寄存器存放第一消息块MB1的EFGH四个寄存器的值,NMB的四个寄存器EFGH存放第二消息块MB2的ABCD四个寄存器的值。根据本专利技术中并行哈希函数的构造方法,每个块哈希值在计算时不受其他消息块值的影响,不需要等待其他消息块值的运算结果来进行运算,即在每轮计算中,多个消息块可以同时被处理,因此可以提高运算效率,节省运算时间。在具体实施中,由于现有哈希函数的初始链接变量值是常量,这就使得攻击者可以采用穷举攻击的方法找到碰撞,使得哈希函数变得不安全,通过对初始链接变量值进行处理改进,可以增强哈希函数的不可确定性和不可预测性。本专利技术还提供一种实施例的并行哈希函数的构造方法,如图4所述,在步骤S203之前以下步骤:步骤S401,将多个块哈希值一一对应存放在对应的8个寄存器中;步骤S402,在每个块哈希值对应的8个寄存器中进行第一次计算,根据函数f1,f2,σ1,σ2对每相邻两个寄存器中的值进行结合运算,得到第一次结合运算结果;步骤S403,进行第二次计算,根据函数f3,f4,σ3,σ4和第一轮结合运算结果对第一寄存器中的值和第四寄存器中的值、第二寄存器中的值和第三寄存器中的值、第五寄存器中的值和第八寄存器中的值以及第六寄存器中的值和第七寄存器中的值分别进行结合运算,得到第二次结合运算结果;步骤S404,进行第三次计算,根据函数f5,f6,σ5,σ6和第二次结合运算结果对第一寄存器中的值和第本文档来自技高网...
并行哈希函数的构造方法

【技术保护点】
一种并行哈希函数的构造方法,其特征在于:所述构造方法包括以下步骤:对给定值进行填充得到填充给定值,并将所述填充给定值进行划分得到多个初始消息块;对多个初始消息块进行预设的函数处理得到对应的多个块哈希值;判断当前轮数的序列号为奇数或偶数,其中,当当前轮数的序列号为奇数时,相邻两个块哈希值进行异或运算得到一个异或运算值,并将所述异或运算值缓存在8个寄存器中,当当前轮数的序列号为偶数时,相邻两个块哈希值进行合并交换运算得到一个合并运算,并将所述合并运算值缓存在8个寄存器中;直到根据多个块哈希值得到最终的异或运算值或最终的合并运算值;根据最终的异或运算值或最终的合并运算值得到哈希值。

【技术特征摘要】
1.一种并行哈希函数的构造方法,其特征在于:所述构造方法包括以下步骤:对给定值进行填充得到填充给定值,并将所述填充给定值进行划分得到多个初始消息块;对多个初始消息块进行预设的函数处理得到对应的多个块哈希值;判断当前轮数的序列号为奇数或偶数,其中,当当前轮数的序列号为奇数时,相邻两个块哈希值进行异或运算得到一个异或运算值,并将所述异或运算值缓存在8个寄存器中,当当前轮数的序列号为偶数时,相邻两个块哈希值进行合并交换运算得到一个合并运算,并将所述合并运算值缓存在8个寄存器中;直到根据多个块哈希值得到最终的异或运算值或最终的合并运算值;根据最终的异或运算值或最终的合并运算值得到哈希值。2.如权利要求1所述的构造方法,其特征在于:所述对给定值进行填充的步骤,具体为:在给定值的后面加入一个常数1和多个常数0;加入给定值的长度值,得到长度为512倍数的填充给定值。3.如权利要求2所述的构造方法,其特征在于:所述将所述填充给定值进行划分得到多个初始消息块的步骤,具体为:按照512比特,将所述填充给定值进行划分得到多个初始消息块。4.如权利要求1-3任意一项所述的构造方法,其特征在于:当当前轮数的序列号为奇数时,相邻两个块哈希值进行异或运算得到一个异或运算值,具体为:当当前轮数的序列号为奇数时,在最后一个块哈希值之后增加一个块哈希值;相邻两个块哈希值进行异或运算得到一个异或运算值。5.如权利要求4所述的构造方法,其特征在于:增加的块哈希值与最后一个块哈希值相同。6.如权利要求1所述的构造方法,其特征在于:在判断当前轮数的序列号为奇数或偶数之前,还包括以下步骤:将多个块哈希值一一对应存放在对应的8个寄存器中;在每个块哈希值对应的8个寄存器中进行第一次计算,根据函数f1,f2,σ1,σ2对每相邻两个寄存器中的值进行结合运算,得到第一次结合运算结果;进行第二次计算,根据函数f3,f4,σ3,σ4和第一轮结合运算结果对第一寄存器中的值和第四寄存器中的值、第二寄存器中的值和第三寄存器中的值、第五寄存器中的值和第八寄存器中的值以及第六寄存器中的值和第七寄存器中的值分别进行结合运算,得到第二次结合运算结果;进行第三次计算,根据函数f5,f6,σ5,σ6和第二次结合运算结果对第一寄存器中的值和第六寄存器中的值、第二寄存器中的值和第五寄存器中的值、第三寄存器中的值和第八寄存器中的值以及第四寄存器中的值和第七寄存器中的值分别进行结合运算,得到每个块哈希值对应的8个寄存器中的更新值。7.如权利要求6所述的构造方法,其特征在于:所述根据函数f1,f2,σ1,σ2对每相邻两个寄存器中的值进行结合运算,得到第一次结合运算结果,具体为:根据函数σ1对第一寄存器中的值进行运算得到函数σ1的第一计算结果,并将函数σ1的第一计算结果输出至函数f1和函数f2中;根据函数f1对第二寄存器中的值、函数σ1的第一计算结果和第一预设值n1进行运算得到函数f1的第一计算结果,并将函数f1的第一计算结果输出至函数σ2中;根据函数σ2对函数f1的第一计算结果进行运算得到函数σ2的第一计算结果并更新至第二寄存器,并将函数σ2的第一计算结果输出至函数f2和第二次计算中;根据函数f2对函数σ1的第一计算结果、函数σ2的第一计算结果和第二预设值n2进行运算得到函数f2的第一计算结果更新至第一寄存器,并将函数f2的第一计算结果输出至第二次计算中;根据函数σ1对第三寄存器中的值进行运算得到函数σ1的第二计算结果,并函数σ1的第二计算结果输出至函数f1和函数f2中;根据函数f1对第四寄存器中的值、函数σ1的第二计算结果和第一预设值n1进行运算得到函数f1的第二计算结果,并将函数f1的第一计算结果输出至函数σ2中;根据函数σ2对函数f1的第二计算结果进行运算得到函数σ2的第二计算结果更新至第四寄存器,并将函数σ2的第二计算结果输出至函数f2和第二次计算中;根据函数f2对函数σ1的第二计算结果、函数σ2的第二计算结果和第二预设值n2进行运算得到函数f2的第二计算结果更新至第三寄存器,并将函数f2的第二计算结果输出至第二次计算中;根据函数σ1对第五寄存器中的值进行运算得到函数σ1的第三计算结果,并将函数σ1的第三计算结果输出至函数f1和函数f2中;根据函数f1对第六寄存器中的值、函数σ1的第三计算结果和第一预设值n1进行运算得到函数f1的第三计算结果,并将函数f1的第三计算结果输出至函数σ2中;根据函数σ2对函数f1的第三计算结果进行运算得到函数σ2的第三计算结果更新至第六寄存器,并将函数σ2的第三计算结果输出至函数f2和第二次计算中;根据函数f2对函数σ1的第三计算结果、函数σ2的第三计算结果和第二预设值n2进行运算得到函数f2的第三计算结果更新至第五寄存器,并将函数f2的第三计算结果输出至第二次计算中;根据函数σ1对第七寄存器中的值进行运算得到函数σ1的第四计算结果,并将函数σ1的第四计算结果输出至函数f1和函数f2中;根据函数f1对第八寄存器中的值、函数σ1的第四计算结果和第一预设值n1进行运算得到函数f1的第四计算结果,并将函数f1的第四计算结果输出至函数σ2中;根据函数σ2对函数f1的第四计算结果进行运算得到函数σ2的第四计算结果更新至第八寄存器,并将函数σ2的第四计算结果输出至函数f2和第二次计算中;根据函数f2对函数σ1的第四计算结果、函数σ2的第四计算结果和第二预设值n2进行运算得到函数f2的第四计算结果更新至第七寄存器,并将函数f2的第四计算结果输出至第二次计算中。8.如权利要求6所述的构造方法,其特征在于:所述进行第二次计算,根据函数f3,f4,σ3,σ4和第一轮结合运算结果对第一寄存器中的值和第四寄存器中的值、第二寄存器中的值和第三寄存器中的值、第五寄存器中的值和第八寄存器中的值以及第六寄存器中的值和第七寄存器中的值分别进行结合运算,得到第二次结合运算结果的步骤,具体为:根据函数σ3对函数f2的第一计算结果进行运算得到函数σ3的第一计算结果,并将函数σ3的第一计算结果输出至函数f3和函数f4中;根据函数σ3对函数f2的第二计算结果进行运算得到函数σ3的第二计算结果,并将函数σ3的第二计算结果输出至函数f3和函数f4中;根据函数f3对函数σ2的第一计算结果、函数σ3的第二计算结果和第三预设值n3进行运算得到函数f3...

【专利技术属性】
技术研发人员:张鹏张晓妹喻建平
申请(专利权)人:深圳大学
类型:发明
国别省市:广东,44

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

1