WO2018094566A1 - 并行哈希函数的构造方法 - Google Patents

并行哈希函数的构造方法 Download PDF

Info

Publication number
WO2018094566A1
WO2018094566A1 PCT/CN2016/106780 CN2016106780W WO2018094566A1 WO 2018094566 A1 WO2018094566 A1 WO 2018094566A1 CN 2016106780 W CN2016106780 W CN 2016106780W WO 2018094566 A1 WO2018094566 A1 WO 2018094566A1
Authority
WO
WIPO (PCT)
Prior art keywords
function
calculation result
value
register
calculation
Prior art date
Application number
PCT/CN2016/106780
Other languages
English (en)
French (fr)
Inventor
张鹏
张晓妹
喻建平
Original Assignee
深圳大学
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 深圳大学 filed Critical 深圳大学
Priority to PCT/CN2016/106780 priority Critical patent/WO2018094566A1/zh
Publication of WO2018094566A1 publication Critical patent/WO2018094566A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16ZINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS, NOT OTHERWISE PROVIDED FOR
    • G16Z99/00Subject matter not provided for in other main groups of this subclass

Definitions

  • the present invention relates to the field of information security, and in particular, to a method for constructing a parallel hash function.
  • a compression function f is repeatedly used. As shown in FIG. 1, the input of the function f has two items, and one item is the output CV i-1 of the previous round (the i-1th round). , that is, the link variable, and the other is the message block Y i input in the current round (i-th round). Therefore, the value of the next message block can be calculated only after the value of the previous message block has been calculated, which increases the calculation time. When the message is long enough, the operation rate is inevitably low, making the operation less efficient.
  • the invention aims to solve the technical problem that the hash function is less efficient in the prior art, and provides a constructing method of the parallel hash function.
  • Embodiments of the present invention provide a method for constructing a parallel hash function, the constructing method comprising the following steps:
  • the serial number of the current round number is determined to be an odd or even number, wherein when the serial number of the current round number is an odd number, the hash values of the adjacent two block are exclusive-ORed to obtain an exclusive OR operation value, and the exclusive OR is performed
  • the operation value is cached in 8 registers.
  • the serial number of the current round number is even, the adjacent two block hash values are combined and exchanged to obtain a merge operation, and the combined operation value is cached in 8 registers.
  • the hash value is obtained according to the final XOR operation value or the final merge operation value.
  • each block hash value is not affected by other message block values during calculation, and does not need to wait for the operation result of other message block values to perform operations. That is, in each round of calculation, multiple message blocks can be processed at the same time, so that the operation efficiency can be improved and the operation time can be saved.
  • FIG. 1 is a schematic diagram of an operation of a hash function in the prior art
  • FIG. 2 is a schematic flow chart of an embodiment of a method for constructing a parallel hash function according to the present invention
  • FIG. 3 is a schematic structural diagram of an embodiment of a parallel hash function of the present invention.
  • FIG. 4 is a schematic flow chart of an embodiment of a method for processing an initial link variable value in a method for constructing a parallel hash function according to the present invention
  • FIG. 5 is a schematic flow chart of another embodiment of a method for processing an initial link variable value in a method for constructing a parallel hash function according to the present invention
  • Figure 6 is a schematic diagram showing the simulation result of the parallel hash function of the present invention.
  • a method for constructing a parallel hash function according to an embodiment of the present invention is as shown in FIG. 2, and the constructing method includes the following steps:
  • Step S201 filling a given value to obtain a filling reference value, and dividing the filling given value to obtain a plurality of initial message blocks;
  • Step S202 performing predetermined function processing on the plurality of initial message blocks to obtain a corresponding plurality of block hash values
  • Step S203 determining that the serial number of the current number of rounds is odd or even, wherein, when the serial number of the current number of rounds is odd, proceeding to step S204, when the serial number of the current number of rounds is even, proceeding to step S205;
  • Step S204 performing an exclusive OR operation on the adjacent two block hash values to obtain an exclusive OR operation value, and buffering the XOR operation value in 8 registers;
  • Step S205 the adjacent two block hash values are combined and exchanged to obtain a merge operation, and The combined operation value is cached in 8 registers;
  • Step S206 until the final XOR operation value or the final merge operation value is obtained according to the plurality of block hash values;
  • Step S207 obtaining a hash value according to the final exclusive OR operation value or the final combined operation value.
  • the filling a given value to obtain a filling given value is specifically:
  • the step of dividing the padding reference value to obtain a plurality of initial message blocks is specifically:
  • the preset function is specifically: a compression function f.
  • the hash values of the adjacent two blockes are XORed to obtain an exclusive OR operation value, specifically:
  • the XOR value of two adjacent block hashes is XORed to obtain an XOR value, where the added block hash value is the same as the last block hash value.
  • FIG. 3 is a schematic structural diagram of a parallel hash function according to an embodiment of the present invention.
  • the given message M is first filled so that the length after padding is a multiple of 512.
  • the rule of padding is to add a 1 and a number of 0s after the message, and then join the length of the message at the end.
  • the message after padding is divided into a number of 512-bit message blocks Y 0 , Y 1 , ..., Y L-1 .
  • each subsequent round the values of every two adjacent message blocks are computed together.
  • a block hash value that is the same as the value of the last message block in the current round.
  • the buffer can be represented as eight 32-bit long registers A, B, C, D, E, F, G, H.
  • i is the serial number of the round number.
  • the message block corresponding to the value Y 0 values corresponding message block and Y 1 are XORed to obtain a value h1 of operation, the message block message block values corresponding to the value Y 2 and Y 2 corresponding XORed to give the calculated value of h2, in the first round, the last message block Y i values corresponding to the object can be performed without operation, thereby increasing the value of the message block of a message block values corresponding to the Y i Y i corresponding to the last XOR Operation.
  • A, B, C, D assign the values in A, B, C, D of the latter message block to the new registers E, F, G, H in order, thus obtaining a new value.
  • two adjacent message blocks need to be merged, and the first message block is recorded as MB1 and the second message block MB2.
  • the first message block MB1 requires ABCDEFGH eight registers to be stored, and the second message block MB2 also needs ABCDEFGH eight registers to be stored.
  • the four registers of the ABCD of the NMB store the values of the four registers of the EFGH of the first message block MB1, and the four registers of the NMB EFGH store the values of the four registers of the ABCD of the second message block MB2.
  • each block hash value is not affected by other message block values during calculation, and does not need to wait for the operation result of other message block values to perform the operation, that is, in each round of calculation.
  • Multiple message blocks can be processed at the same time, thus improving computational efficiency and saving computation time.
  • the present invention also provides a method for constructing a parallel hash function of an embodiment. As described in FIG. 4, the following steps are performed before step S203:
  • Step S401 storing a plurality of block hash values in a corresponding one of the eight registers
  • Step S402 performing the first calculation in the eight registers corresponding to each block hash value, and performing a combination operation on the values in each of the two adjacent registers according to the functions f 1 , f 2 , ⁇ 1 , and ⁇ 2 Combine the results of the operation for the first time;
  • Step S403 performing a second calculation, according to the functions f 3 , f 4 , ⁇ 3 , ⁇ 4 and the first round combination operation result on the value in the first register and the value in the fourth register, the value in the second register And combining the value in the third register, the value in the fifth register, and the value in the eighth register, and the value in the sixth register and the value in the seventh register, respectively, to obtain a second combined operation result;
  • Step S404 performing a third calculation, according to the functions f 5 , f 6 , ⁇ 5 , ⁇ 6 and the second combination operation result, the value in the first register and the value in the sixth register, and the value in the second register. And combining the value in the fifth register, the value in the third register, and the value in the eighth register, and the value in the fourth register and the value in the seventh register, respectively, to obtain 8 corresponding to each block hash value.
  • the updated value in the registers is performed by the functions f 5 , f 6 , ⁇ 5 , ⁇ 6 and the second combination operation result, the value in the first register and the value in the sixth register, and the value in the second register.
  • the updated values in the registers are XORed.
  • step S402 is specifically:
  • the first calculation result of the function f2 is updated to the first register A, and the function f2 is obtained.
  • the first calculation result is output to the second calculation;
  • the second calculation result of the function s 2 is updated according to the function s 2 to obtain the second calculation result of the function s 2 to be updated to the fourth register D, and the second calculation result of the function s 2 is output to the function f2 and the second calculation. ;
  • the second calculation result of the function f2 is updated to the third register C, and the function f2
  • the second calculation result is output to the second calculation;
  • the third calculation result of the function s 2 is updated according to the function s 2 to obtain the third calculation result of the function s 2 to be updated to the sixth register F, and the third calculation result of the function s 2 is output to the function f2 and the second calculation. ;
  • the third calculation result of the function f2 is updated to the fifth register E, and the function f2
  • the third calculation result is output to the second calculation;
  • the fourth calculation result of the function f1 is obtained by calculating the value in the eighth register H, the fourth calculation result of the function s 1 and the first preset value n 1 according to the function f1, and outputting the fourth calculation result of the function f1 to Function s 2 ;
  • the fourth calculation result of the function s 2 is updated according to the function s 2 to obtain the fourth calculation result of the function s 2 is updated to the eighth register H, and the fourth calculation result of the function s 2 is output to the function f2 and the second calculation. ;
  • the fourth calculation result of the function f2 is updated to the seventh register G, and the function f2
  • the fourth calculation result is output to the second calculation.
  • step S403 is specifically:
  • the first calculation result of the function s 4 is updated according to the function s 4 to obtain the first calculation result of the function s 4 to be updated to the second register B, and the first calculation result of the function s 4 is output to the function f4 and the third operation. ;
  • the first calculation result of the function f4 is updated to the third register C, and the function f4
  • the first calculation result is output to the third operation;
  • Calculates the calculation result to obtain a third function s 3 s 3 according to the third calculation function f2 is a function result, and outputs the result to the third calculation 3 function f3 and f4 functions in function s;
  • the third calculation result of the function s 4 is updated according to the function s 4 to obtain the third calculation result of the function s 4 is updated to the sixth register F, and the third calculation result of the function s 4 is output to the function f4 and the third operation. ;
  • the third calculation result of the function f4 is updated to the seventh register G, and the function f4 is obtained.
  • the third calculation result is output to the third operation;
  • the fourth calculation result of the function f4 is updated to the fifth register E, and the function f4
  • the fourth calculation result is output to the third operation.
  • step S404 is specifically:
  • S function calculates a first calculation result obtained 5 according to the second result of a function f4 is a function s 5, 5 and outputs the calculation result to the first function of a function f5 and f6 s function;
  • Calculating the first calculation result of the function f5 according to the function s 6 to obtain the first calculation result of the function s 6 is updated to the sixth register F, and outputting the first calculation result of the function s 6 to the function f6;
  • Calculating the fourth calculation result of the function f5 according to the function s 6 to obtain the fourth calculation result of the function s 6 is updated into the fourth register, and outputting the fourth calculation result of the function s 6 to the function f6;
  • the fourth calculation result of the function s 6 , the fourth calculation result of the function s 5 , and the sixth preset value n 6 are operated according to the function f6 to obtain the fourth calculation result of the function f6 updated to the seventh register G.
  • a function ⁇ i of a 32-bit input x i and a function f with three 32-bit inputs k i , m i , n i are employed.
  • i , i 1, 2, ..., 6.
  • the calculation formulas for ⁇ i and f i are as follows:
  • x1, x2, x3, x4, x5, x6 are input values
  • k i represents the output of the function ⁇ i
  • m i represents the output of the function ⁇ i-1
  • the originally known initial values are stored in registers A, B, C, D, E, F, G, H, and these values will be processed in three rounds to obtain the updated initial values.
  • the values in adjacent registers are operated by functions f 1 , f 2 , ⁇ 1 , ⁇ 2 , that is, A and B are combined, C and D are operated, and E and F are operated. G and H perform a combination operation to obtain a new value.
  • the calculation method for the next two rounds of median is similar to that in the first round, except that the order in which the function and value are combined is different.
  • the functions used are f 3 , f 4 , ⁇ 3 , ⁇ 4 .
  • Table 2 for n 3 , n 4 , n 5 , n 6 , the same values are used.
  • the sensitivity of the hash value to the initial link variable is tested, that is, in order to evaluate the influence of the initial value change on the final hash value, a text "Hash function is one of the major tools in cryptography, which is Usually used for data integrity In conjunction with digital signature schemes.” and tested it in six different cases.
  • the corresponding hash value is expressed in hexadecimal as follows:
  • the test values obtained in different cases are the simulation results. According to the simulation results, the hash value will change greatly regardless of how small the message changes. The results show that the sensitivity of the parallel hash function is very good.

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

并行哈希函数的构造方法 技术领域
本发明涉及信息安全领域,尤其涉及一种并行哈希函数的构造方法。
背景技术
现有的哈希函数消息运算过程中重复使用一压缩函数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是轮数的序列号,当i mod 2=1(i=1,2,...)时,让该轮里相邻的两个消息块进行异或运算,获得的值分别存放在八个寄存器A,B,C,D,E,F,G,H 中。比如在第一轮中,Y0对应的消息块值和Y1对应的消息块值进行异或运算得到运算值h1,Y2对应的消息块值和Y2对应的消息块值进行异或运算得到运算值h2,在第一轮中,最后一个Yi对应的消息块值没有可以进行运算的对象,因此增加一个Yi对应的消息块值与最后一个Yi对应的消息块值进行异或运算。当i mod 2=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个寄存器中的更新值。
也就是说,上述步骤具体为图3中block hash的细化步骤,在当i=1时,先对初始链接变量值进行处理改进之后,再根据每相邻两个块哈希值对应的8个寄存器中的更新值进行异或运算。
在具体实施中,步骤S402具体为:
根据函数s1对第一寄存器A中的值进行运算得到函数s1的第一计算结果,并将函数s1的第一计算结果输出至函数f1和函数f2中;
根据函数f1对第二寄存器B中的值、函数s1的第一计算结果和第一预设值n1进行运算得到函数f1的第一计算结果,并将函数f1的第一计算结果输出至函数s2中;
根据函数s2对函数f1的第一计算结果进行运算得到函数s2的第一计算结果并更新至第二寄存器B,并将函数s2的第一计算结果输出至函数f2和第二次计算中;
根据函数f2对函数s1的第一计算结果、函数s2的第一计算结果和第二预设值n2进行运算得到函数f2的第一计算结果更新至第一寄存器A,并将函数f2的第一计算结果输出至第二次计算中;
根据函数s1对第三寄存器C中的值进行运算得到函数s1的第二计算结果,并函数s1的第二计算结果输出至函数f1和函数f2中;
根据函数f1对第四寄存器D中的值、函数s1的第二计算结果和第一预设值n1进行运算得到函数f1的第二计算结果,并将函数f1的第一计算结果输出至函数s2中;
根据函数s2对函数f1的第二计算结果进行运算得到函数s2的第二计算结果更新至第四寄存器D,并将函数s2的第二计算结果输出至函数f2和第二次计算中;
根据函数f2对函数s1的第二计算结果、函数s2的第二计算结果和第二预设值n2进行运算得到函数f2的第二计算结果更新至第三寄存器C,并将函数f2的第二计算结果输出至第二次计算中;
根据函数s1对第五寄存器E中的值进行运算得到函数s1的第三计算结果,并将函数s1的第三计算结果输出至函数f1和函数f2中;
根据函数f1对第六寄存器F中的值、函数s1的第三计算结果和第一预设值n1进行运算得到函数f1的第三计算结果,并将函数f1的第三计算结果输出至函数s2中;
根据函数s2对函数f1的第三计算结果进行运算得到函数s2的第三计算结果更新至第六寄存器F,并将函数s2的第三计算结果输出至函数f2和第二次计算中;
根据函数f2对函数s1的第三计算结果、函数s2的第三计算结果和第二预设值n2进行运算得到函数f2的第三计算结果更新至第五寄存器E,并将函数f2的第三计算结果输出至第二次计算中;
根据函数s1对第七寄存器G中的值进行运算得到函数s1的第四计算结果,并将函数s1的第四计算结果输出至函数f1和函数f2中;
根据函数f1对第八寄存器H中的值、函数s1的第四计算结果和第一预设值n1进行运算得到函数f1的第四计算结果,并将函数f1的第四计算结果输出至函数s2中;
根据函数s2对函数f1的第四计算结果进行运算得到函数s2的第四计算结果更新至第八寄存器H,并将函数s2的第四计算结果输出至函数f2和第二次计算中;
根据函数f2对函数s1的第四计算结果、函数s2的第四计算结果和第二预设值n2进行运算得到函数f2的第四计算结果更新至第七寄存器G,并将函数f2的第四计算结果输出至第二次计算中。
在具体实施中,步骤S403具体为:
根据函数s3对函数f2的第一计算结果进行运算得到函数s3的第一计算结果,并将函数s3的第一计算结果输出至函数f3和函数f4中;
根据函数s3对函数f2的第二计算结果进行运算得到函数s3的第二计算结果,并将函数s3的第二计算结果输出至函数f3和函数f4中;
根据函数f3对函数s2的第一计算结果、函数s3的第二计算结果和第三预设值n3进行运算得到函数f3的第一计算结果,并将函数f3的第一计算结果输 出至函数s4中;
根据函数s4对函数f3的第一计算结果进行运算得到函数s4的第一计算结果更新至第二寄存器B,并将函数s4的第一计算结果输出至函数f4和第三次运算中;
根据函数f4对函数s4的第一计算结果、函数s3的第二计算结果和第四预设值n4进行运算得到函数f4的第一计算结果更新至第三寄存器C,并将函数f4的第一计算结果输出至第三次运算中;
根据函数f3对函数s3的第一计算结果、函数s2的第二计算结果和第三预设值n3进行运算得到函数f3的第二计算结果,并将函数f3的第二计算结果输出至函数s4中;
根据函数s4对函数f3的第二计算结果进行运算得到函数s4的第二计算结果更新至第四寄存器D,并将函数s4的第二计算结果输出至函数f4;
根据函数f4对函数s4的第二计算结果、函数s3的第一计算结果和第四预设值n4进行运算得到函数f4的第二计算结果更新至第一寄存器A,并将函数f4的第二计算结果输出至第三次运算中;
根据函数s3对函数f2的第三计算结果进行运算得到函数s3的第三计算结果,并将函数s3的第三计算结果输出至函数f3和函数f4中;
根据函数s3对函数f2的第四计算结果进行运算得到函数s3的第四计算结果,并将函数s3的第四计算结果输出至函数f3和函数f4中;
根据函数f3对函数s2的第三计算结果、函数s3的第四计算结果和第三预设值n3进行运算得到函数f3的第三计算结果,并将函数f3的第三计算结果输出至函数s4中;
根据函数s4对函数f3的第三计算结果进行运算得到函数s4的第三计算结果更新至第六寄存器F,并将函数s4的第三计算结果输出至函数f4和第三次运算中;
根据函数f4对函数s4的第三计算结果、函数s3的第四计算结果和第四预设值n4进行运算得到函数f4的第三计算结果更新至第七寄存器G,并将函数f4的第三计算结果输出至第三次运算中;
根据函数f3对函数s3的第三计算结果、函数s2的第四计算结果和第三预 设值n3进行运算得到函数f3的第四计算结果,并将函数f3的第四计算结果输出至函数s4中;
根据函数s4对函数f3的第四计算结果进行运算得到函数s4的第四计算结果更新至第八寄存器H,并将函数s4的第四计算结果输出至函数f4;
根据函数f4对函数s4的第四计算结果、函数s3的第三计算结果和第四预设值n4进行运算得到函数f4的第四计算结果更新至第五寄存器E,并将函数f4的第四计算结果输出至第三次运算中。
在具体实施中,步骤S404具体为:
根据函数s5对函数f4的第二计算结果进行运算得到函数s5的第一计算结果,并将函数s5的第一计算结果输出至函数f5和函数f6中;
根据函数f5对函数s5的第一计算结果、函数s4的第三计算结果和第五预设值n5进行运算得到函数f5的第一计算结果,并将函数f5的第一计算结果输出至函数s6中;
根据函数s6对函数f5的第一计算结果进行运算得到函数s6的第一计算结果更新至第六寄存器F,并将函数s6的第一计算结果输出至函数f6中;
根据函数f6对函数s6的第一计算结果、函数s5的第一计算结果和第六预设值n6进行运算得到函数f6的第一计算结果更新至第一寄存器A中;
根据函数s5对函数f4的第四计算结果进行运算得到函数s5的第二计算结果,并将函数s5的第二计算结果输出至函数f5和函数f6中;
根据函数f5对函数s5的第二计算结果、函数s4的第一计算结果和第五预设值n5进行运算得到函数f5的第二计算结果,并将函数f5的第二计算结果输出至函数s6中;
根据函数s6对函数f5的第二计算结果进行运算得到函数s6的第二计算结果更新至第二寄存器B,并将函数s6的第二计算结果输出至函数f6中;
根据函数f6对函数s6的第二计算结果、函数s5的第二计算结果和第六预设值n6进行运算得到函数f6的第二计算结果更新至第五寄存器E中;
根据函数s5对函数f4的第一计算结果进行运算得到函数s5的第三计算结果,并将函数s5的第三计算结果输出至函数f5和函数f6中;
根据函数f5对函数s5的第三计算结果、函数s4的第四计算结果和第五预 设值n5进行运算得到函数f5的第三计算结果,并将函数f5的第三计算结果输出至函数s6中;
根据函数s6对函数f5的第三计算结果进行运算得到函数s6的第三计算结果更新至第八寄存器H中,并将函数s6的第三计算结果输出至函数f6中;
根据函数f6对函数s6的第三计算结果、函数s5的第三计算结果和第六预设值n6进行运算得到函数f6的第三计算结果更新至第三寄存器C中;
根据函数s5对函数f4的第三计算结果进行运算得到函数s5的第四计算结果,并将函数s5的第四计算结果输出至函数f5和函数f6中;
根据函数f5对函数s5的第四计算结果、函数s4的第二计算结果和第五预设值n5进行运算得到函数f5的第四计算结果,并将函数f5的第四计算结果输出至函数s6中;
根据函数s6对函数f5的第四计算结果进行运算得到函数s6的第四计算结果更新至第四寄存器中,并将函数s6的第四计算结果输出至函数f6中;
根据函数f6对函数s6的第四计算结果、函数s5的第四计算结果和第六预设值n6进行运算得到函数f6的第四计算结果更新至第七寄存器G中。
在具体实施中,如图5所示,在初始链接变量值的处理过程中,采用一个32比特输入xi的函数σi和有三个32比特的输入ki,mi,ni的函数fi,i=1,2,...,6。
Figure PCTCN2016106780-appb-000001
表示把xi循环右移si位。在不同轮选择了不同的si值。σi和fi的计算公式如下所示:
Figure PCTCN2016106780-appb-000002
Figure PCTCN2016106780-appb-000003
Figure PCTCN2016106780-appb-000004
Figure PCTCN2016106780-appb-000005
Figure PCTCN2016106780-appb-000006
Figure PCTCN2016106780-appb-000007
Figure PCTCN2016106780-appb-000008
Figure PCTCN2016106780-appb-000009
其中,x1,x2,x3,x4,x5,x6为输入值,ki表示函数σi的输出,mi表述函数σi-1的输出,当i=1时,σ0是寄存器中的值。
原先已知的初始值存放在寄存器A,B,C,D,E,F,G,H中,这些值将经过三轮处理来获得更新后的初始值。在第一轮中,相邻寄存器中的值通过函数f1,f2,σ1,σ2进行运算,也即是A和B进行结合运算,C和D进行运算,E和F进行运算,G和H进行结合运算,得到新的值。接下来两轮中值的计算方法和第一轮中是类似的,只是采用的函数和值结合的次序不同。第二轮中,采用的函数是f3,f4,σ3,σ4,前四个值中,A和D,B和C分别进行进行结合运算,后四个值中,E和H,F和G分别进行结合运算。在第三轮中,函数f5,f6,σ5,σ6被采用,其中A和F进行结合运算,B和E进行运算,C和H进行运算,D和G进行运算。经过这三轮运算,最终得出更新后初始值。对于任意函数fi有三个输入,其中一个输入ki来自函数σi的输出,另一个输入mi来自函数σi-1的输出,最后一个输入ni的值是常数,在不同轮的取值情况分别列在表一和表二中。在表一中,n1的值分别取自SHA256(t)(t=0,1,2,3)得到的哈希值的前32比特,n2的值来源于t(t=2,3,5,7)的平方根的十进制部分的二进制表示的前32位。通过表二可以看出,对于n3,n4,n5,n6,同样的值被使用。
表一
第一轮 A&B C&D E&F G&H
n1的值 5feceb66 6b86b273 d4735e3a 4e074085
n2的值 428a2f98 71374491 b5c0fbcf e9b5dba5
表二
第二轮 B&C A&D F&G E&H
第三轮 B&E A&F D&G C&H
n3,n5的值 71374491 6b86b273 e9b5dba5 4e074085
n4,n6的值 5feceb66 428a2f98 d4735e3a b5c0fbcf
通过把最终得到的值作为新的初始链接变量值。通过对于初始值的改进,增强了函数的不可确定性和不可预测性。
在具体实施中,测试哈希值对初始链接变量的敏感性,即为了评估初始值改变对于最终哈希值的影响,任意选择了一个文本“Hash function is one of the major tools in cryptography,which is usually used for data integrity  in conjunction with digital signature schemes.”并对其在六种不同的情况下进行测试。
情形1:计算这个给定的消息的哈希值;
情形2:第一个字符‘H’换成‘A’;
情形3:把单词“data”变成“date”;
情形4:句子末尾的句号换成分号;
情形5:把句子中的第二个单词“function”改成“Function”;
情形6:在单词“Hash”之前添加一个数字6。
得出的相对应的哈希值用十六进制表示如下:
情形1:
107CC9225AD8BB6D15D51992C3AE6386321F150D5320716C71F9BF7C47783920;
情形2:
B81788A2CF98DE7AD4CB770459046C9104E7F46953563302FEFDA941A46C1D08;
情形3:
8AC84B4DAD82294541B27C1207C0D90ACF9CD89A541871AC9BFA6D2A9E7A2849;
情形4:
63DFE552EDACCB56E73225BE335FBE7FD4947C2BEE2697DF0D5346A422001A38;
情形5:
5BC213F16560D60784E6815039E9677C80F5129EA7D5920AE57A70B30D93ADB0;
情形6:
AB20F763C0E7093C10011597572D0E828118662FA28C57E0A8DE4C651D051CC0。
如图6所示,得出的不同情况下的测试值即仿真结果。根据仿真结果可以看出,不管消息有多么极小的改变,哈希值都将会有很大的变化。结果表明并行哈希函数的敏感性很好。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示 例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (10)

  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对每相邻两个寄存器中的值进行结合运算,得到第一次结合运算结果,具体为:
    根据函数s1对第一寄存器中的值进行运算得到函数s1的第一计算结果,并将函数s1的第一计算结果输出至函数f1和函数f2中;
    根据函数f1对第二寄存器中的值、函数s1的第一计算结果和第一预设值n1进行运算得到函数f1的第一计算结果,并将函数f1的第一计算结果输出至函数s2中;
    根据函数s2对函数f1的第一计算结果进行运算得到函数s2的第一计算结果并更新至第二寄存器,并将函数s2的第一计算结果输出至函数f2和第二 次计算中;
    根据函数f2对函数s1的第一计算结果、函数s2的第一计算结果和第二预设值n2进行运算得到函数f2的第一计算结果更新至第一寄存器,并将函数f2的第一计算结果输出至第二次计算中;
    根据函数s1对第三寄存器中的值进行运算得到函数s1的第二计算结果,并函数s1的第二计算结果输出至函数f1和函数f2中;
    根据函数f1对第四寄存器中的值、函数s1的第二计算结果和第一预设值n1进行运算得到函数f1的第二计算结果,并将函数f1的第一计算结果输出至函数s2中;
    根据函数s2对函数f1的第二计算结果进行运算得到函数s2的第二计算结果更新至第四寄存器,并将函数s2的第二计算结果输出至函数f2和第二次计算中;
    根据函数f2对函数s1的第二计算结果、函数s2的第二计算结果和第二预设值n2进行运算得到函数f2的第二计算结果更新至第三寄存器,并将函数f2的第二计算结果输出至第二次计算中;
    根据函数s1对第五寄存器中的值进行运算得到函数s1的第三计算结果,并将函数s1的第三计算结果输出至函数f1和函数f2中;
    根据函数f1对第六寄存器中的值、函数s1的第三计算结果和第一预设值n1进行运算得到函数f1的第三计算结果,并将函数f1的第三计算结果输出至函数s2中;
    根据函数s2对函数f1的第三计算结果进行运算得到函数s2的第三计算结果更新至第六寄存器,并将函数s2的第三计算结果输出至函数f2和第二次计算中;
    根据函数f2对函数s1的第三计算结果、函数s2的第三计算结果和第二预设值n2进行运算得到函数f2的第三计算结果更新至第五寄存器,并将函数f2的第三计算结果输出至第二次计算中;
    根据函数s1对第七寄存器中的值进行运算得到函数s1的第四计算结果,并将函数s1的第四计算结果输出至函数f1和函数f2中;
    根据函数f1对第八寄存器中的值、函数s1的第四计算结果和第一预设值n1进行运算得到函数f1的第四计算结果,并将函数f1的第四计算结果输出至函数s2中;
    根据函数s2对函数f1的第四计算结果进行运算得到函数s2的第四计算结果更新至第八寄存器,并将函数s2的第四计算结果输出至函数f2和第二次计算中;
    根据函数f2对函数s1的第四计算结果、函数s2的第四计算结果和第二预设值n2进行运算得到函数f2的第四计算结果更新至第七寄存器,并将函数f2的第四计算结果输出至第二次计算中。
  8. 如权利要求6所述的构造方法,其特征在于:所述进行第二次计算,根据函数f3,f4,σ3,σ4和第一轮结合运算结果对第一寄存器中的值和第四寄存器中的值、第二寄存器中的值和第三寄存器中的值、第五寄存器中的值和第八寄存器中的值以及第六寄存器中的值和第七寄存器中的值分别进行结合运算,得到第二次结合运算结果的步骤,具体为:
    根据函数s3对函数f2的第一计算结果进行运算得到函数s3的第一计算结果,并将函数s3的第一计算结果输出至函数f3和函数f4中;
    根据函数s3对函数f2的第二计算结果进行运算得到函数s3的第二计算结果,并将函数s3的第二计算结果输出至函数f3和函数f4中;
    根据函数f3对函数s2的第一计算结果、函数s3的第二计算结果和第三预设值n3进行运算得到函数f3的第一计算结果,并将函数f3的第一计算结果输出至函数s4中;
    根据函数s4对函数f3的第一计算结果进行运算得到函数s4的第一计算结果更新至第二寄存器,并将函数s4的第一计算结果输出至函数f4和第三次运算中;
    根据函数f4对函数s4的第一计算结果、函数s3的第二计算结果和第四预设值n4进行运算得到函数f4的第一计算结果更新至第三寄存器,并将函数f4的第一计算结果输出至第三次运算中;
    根据函数f3对函数s3的第一计算结果、函数s2的第二计算结果和第三预设值n3进行运算得到函数f3的第二计算结果,并将函数f3的第二计算结果输出至函数s4中;
    根据函数s4对函数f3的第二计算结果进行运算得到函数s4的第二计算结果更新至第四寄存器,并将函数s4的第二计算结果输出至函数f4;
    根据函数f4对函数s4的第二计算结果、函数s3的第一计算结果和第四预设值n4进行运算得到函数f4的第二计算结果更新至第一寄存器,并将函数f4的第二计算结果输出至第三次运算中;
    根据函数s3对函数f2的第三计算结果进行运算得到函数s3的第三计算结果,并将函数s3的第三计算结果输出至函数f3和函数f4中;
    根据函数s3对函数f2的第四计算结果进行运算得到函数s3的第四计算结果,并将函数s3的第四计算结果输出至函数f3和函数f4中;
    根据函数f3对函数s2的第三计算结果、函数s3的第四计算结果和第三预设值n3进行运算得到函数f3的第三计算结果,并将函数f3的第三计算结果输出至函数s4中;
    根据函数s4对函数f3的第三计算结果进行运算得到函数s4的第三计算结果更新至第六寄存器,并将函数s4的第三计算结果输出至函数f4和第三次运算中;
    根据函数f4对函数s4的第三计算结果、函数s3的第四计算结果和第四预设值n4进行运算得到函数f4的第三计算结果更新至第七寄存器,并将函数f4的第三计算结果输出至第三次运算中;
    根据函数f3对函数s3的第三计算结果、函数s2的第四计算结果和第三预设值n3进行运算得到函数f3的第四计算结果,并将函数f3的第四计算结果输出至函数s4中;
    根据函数s4对函数f3的第四计算结果进行运算得到函数s4的第四计算结果更新至第八寄存器,并将函数s4的第四计算结果输出至函数f4;
    根据函数f4对函数s4的第四计算结果、函数s3的第三计算结果和第四预设值n4进行运算得到函数f4的第四计算结果更新至第五寄存器,并将函数 f4的第四计算结果输出至第三次运算中。
  9. 如权利要求6所述的构造方法,其特征在于:所述进行第三次计算,根据函数f5,f6,σ5,σ6和第二次结合运算结果对第一寄存器中的值和第六寄存器中的值、第二寄存器中的值和第五寄存器中的值、第三寄存器中的值和第八寄存器中的值以及第四寄存器中的值和第七寄存器中的值分别进行结合运算,得到每个块哈希值对应的8个寄存器中的更新值的步骤,具体为:
    根据函数s5对函数f4的第二计算结果进行运算得到函数s5的第一计算结果,并将函数s5的第一计算结果输出至函数f5和函数f6中;
    根据函数f5对函数s5的第一计算结果、函数s4的第三计算结果和第五预设值n5进行运算得到函数f5的第一计算结果,并将函数f5的第一计算结果输出至函数s6中;
    根据函数s6对函数f5的第一计算结果进行运算得到函数s6的第一计算结果更新至第六寄存器,并将函数s6的第一计算结果输出至函数f6中;
    根据函数f6对函数s6的第一计算结果、函数s5的第一计算结果和第六预设值n6进行运算得到函数f6的第一计算结果更新至第一寄存器中;
    根据函数s5对函数f4的第四计算结果进行运算得到函数s5的第二计算结果,并将函数s5的第二计算结果输出至函数f5和函数f6中;
    根据函数f5对函数s5的第二计算结果、函数s4的第一计算结果和第五预设值n5进行运算得到函数f5的第二计算结果,并将函数f5的第二计算结果输出至函数s6中;
    根据函数s6对函数f5的第二计算结果进行运算得到函数s6的第二计算结果更新至第二寄存器,并将函数s6的第二计算结果输出至函数f6中;
    根据函数f6对函数s6的第二计算结果、函数s5的第二计算结果和第六预设值n6进行运算得到函数f6的第二计算结果更新至第五寄存器中;
    根据函数s5对函数f4的第一计算结果进行运算得到函数s5的第三计算结果,并将函数s5的第三计算结果输出至函数f5和函数f6中;
    根据函数f5对函数s5的第三计算结果、函数s4的第四计算结果和第五 预设值n5进行运算得到函数f5的第三计算结果,并将函数f5的第三计算结果输出至函数s6中;
    根据函数s6对函数f5的第三计算结果进行运算得到函数s6的第三计算结果更新至第八寄存器中,并将函数s6的第三计算结果输出至函数f6中;
    根据函数f6对函数s6的第三计算结果、函数s5的第三计算结果和第六预设值n6进行运算得到函数f6的第三计算结果更新至第三寄存器中;
    根据函数s5对函数f4的第三计算结果进行运算得到函数s5的第四计算结果,并将函数s5的第四计算结果输出至函数f5和函数f6中;
    根据函数f5对函数s5的第四计算结果、函数s4的第二计算结果和第五预设值n5进行运算得到函数f5的第四计算结果,并将函数f5的第四计算结果输出至函数s6中;
    根据函数s6对函数f5的第四计算结果进行运算得到函数s6的第四计算结果更新至第四寄存器中,并将函数s6的第四计算结果输出至函数f6中;
    根据函数f6对函数s6的第四计算结果、函数s5的第四计算结果和第六预设值n6进行运算得到函数f6的第四计算结果更新至第七寄存器中。
  10. 如权利要求6所述的构造方法,其特征在于:函数σi和fi计算公式如下所示:
    Figure PCTCN2016106780-appb-100001
    Figure PCTCN2016106780-appb-100002
    Figure PCTCN2016106780-appb-100003
    Figure PCTCN2016106780-appb-100004
    Figure PCTCN2016106780-appb-100005
    Figure PCTCN2016106780-appb-100006
    Figure PCTCN2016106780-appb-100007
    Figure PCTCN2016106780-appb-100008
    其中,x1,x2,x3,x4,x5,x6为输入值,ki表示函数σi的输出,mi表示函数σi-1的输出,当i=1时,σ0是寄存器中的值。
PCT/CN2016/106780 2016-11-22 2016-11-22 并行哈希函数的构造方法 WO2018094566A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/106780 WO2018094566A1 (zh) 2016-11-22 2016-11-22 并行哈希函数的构造方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/106780 WO2018094566A1 (zh) 2016-11-22 2016-11-22 并行哈希函数的构造方法

Publications (1)

Publication Number Publication Date
WO2018094566A1 true WO2018094566A1 (zh) 2018-05-31

Family

ID=62194665

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/106780 WO2018094566A1 (zh) 2016-11-22 2016-11-22 并行哈希函数的构造方法

Country Status (1)

Country Link
WO (1) WO2018094566A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080063187A1 (en) * 2006-04-27 2008-03-13 Hirotaka Yoshida Hash value generation device, program, and hash value generation method
US20090080646A1 (en) * 2007-09-21 2009-03-26 Chih-Hsu Yen Method And Architecture For Parallel Calculating Ghash Of Galois Counter Mode
CN103258035A (zh) * 2013-05-15 2013-08-21 华为技术有限公司 数据处理的方法和装置
CN103477341A (zh) * 2011-04-06 2013-12-25 塞尔蒂卡姆公司 散列算法在处理器上的有效实现
CN106650240A (zh) * 2016-11-22 2017-05-10 深圳大学 并行哈希函数的构造方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080063187A1 (en) * 2006-04-27 2008-03-13 Hirotaka Yoshida Hash value generation device, program, and hash value generation method
US20090080646A1 (en) * 2007-09-21 2009-03-26 Chih-Hsu Yen Method And Architecture For Parallel Calculating Ghash Of Galois Counter Mode
CN103477341A (zh) * 2011-04-06 2013-12-25 塞尔蒂卡姆公司 散列算法在处理器上的有效实现
CN103258035A (zh) * 2013-05-15 2013-08-21 华为技术有限公司 数据处理的方法和装置
CN106650240A (zh) * 2016-11-22 2017-05-10 深圳大学 并行哈希函数的构造方法

Similar Documents

Publication Publication Date Title
JP4559505B2 (ja) ランダム系列の反復周期の拡張
US10686589B2 (en) Combining hashes of data blocks
WO2016029664A1 (zh) 一种二维过滤器的生成方法、查询方法及装置
CN111427891A (zh) 区块挖掘装置
JP2009514036A (ja) エクスパンダグラフからのハッシュ関数構築
US11372929B2 (en) Sorting an array consisting of a large number of elements
CN108768656B (zh) 一种基于哈希算法的数据校验方法
CN115080615A (zh) 基于多方安全计算的数据查询方法及装置
JP6044738B2 (ja) 情報処理装置、プログラム及び記憶媒体
CN108959168B (zh) 基于片上内存的sha512全流水电路及其实现方法
CN111370064A (zh) 基于simd的哈希函数的基因序列快速分类方法及系统
KR20170040343A (ko) 적응형 레이트 압축 해시 프로세싱 디바이스
US9015429B2 (en) Method and apparatus for an efficient hardware implementation of dictionary based lossless compression
US10601582B2 (en) Method of linear transformation (variants)
CN106650240B (zh) 并行哈希函数的构造方法
CN109951275B (zh) 密钥生成方法、装置、计算机设备及存储介质
CN116318660B (zh) 一种消息扩展与压缩方法及相关装置
WO2018094566A1 (zh) 并行哈希函数的构造方法
JP2009169316A (ja) ハッシュ関数演算装置及び署名装置及びプログラム及びハッシュ関数演算方法
CN106301764B (zh) 基于路径散列的消息摘要方法和系统
CN113741972A (zh) 一种sm3算法的并行处理方法及电子设备
EP3583738B1 (en) Method and device to produce a secure hash value
JP6961950B2 (ja) 格納方法、格納装置および格納プログラム
Sahni A review on cryptographic hashing algorithms for message authentication
JP2016157053A (ja) 暗号化システム、暗号化装置、復号装置、暗号化方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16922246

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC, EPO FORM 1205A DATED 02.09.19

122 Ep: pct application non-entry in european phase

Ref document number: 16922246

Country of ref document: EP

Kind code of ref document: A1