CN116186745A - 哈希加密方法、非易失性可读存储介质及电子设备 - Google Patents
哈希加密方法、非易失性可读存储介质及电子设备 Download PDFInfo
- Publication number
- CN116186745A CN116186745A CN202310464723.6A CN202310464723A CN116186745A CN 116186745 A CN116186745 A CN 116186745A CN 202310464723 A CN202310464723 A CN 202310464723A CN 116186745 A CN116186745 A CN 116186745A
- Authority
- CN
- China
- Prior art keywords
- hash
- data
- processing function
- global variable
- variable information
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000012545 processing Methods 0.000 claims abstract description 88
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 37
- 230000006870 function Effects 0.000 claims description 97
- 238000004364 calculation method Methods 0.000 claims description 46
- 230000006835 compression Effects 0.000 claims description 19
- 238000007906 compression Methods 0.000 claims description 19
- 238000001125 extrusion Methods 0.000 claims description 14
- 238000010521 absorption reaction Methods 0.000 claims description 12
- 230000002441 reversible effect Effects 0.000 abstract description 7
- 238000005336 cracking Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 10
- 230000000295 complement effect Effects 0.000 description 8
- 230000009466 transformation Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 101100203322 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SKS1 gene Proteins 0.000 description 1
- 230000002238 attenuated effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及数据加密技术领域,公开了一种哈希加密方法、非易失性可读存储介质及电子设备。哈希加密方法包括:获取源数据,根据源数据生成全局变量信息,根据全局变量信息更新预置哈希处理函数,得到更新后的预置哈希处理函数,基于更新后的预置哈希处理函数,将源数据加密成指定位数的哈希加密数据。本实施例通过源数据引入全局变量信息,并使用全局变量信息更新预置哈希处理函数,会使得更新后的预置哈希处理函数相对攻击者变得不可知的处理函数,如此会增加逆向破解的难度,并且可抵御量子算法的威胁,也可避免受到长度延展攻击,提高数据加密的安全性和可靠性。
Description
技术领域
本发明涉及数据加密技术领域,具体涉及一种哈希加密方法、非易失性可读存储介质及电子设备。
背景技术
目前哈希算法分为两大类,分别为基于默克尔-达姆加德(Merkle-Damgård)构造的哈希算法(MD5、SHA-0、SHA-1、SHA-2)和基于Keccak海绵构造的哈希算法SHA-3)。安全是所有密码学技术首要的任务和考虑,该任务主要由核心处理函数来承担,它需要在加密非常短的输入和非常长的输入时都不损失安全强度,这就要求核心处理函数在运行一轮后就达到预期的安全强度,还要在运行多轮之后安全强度不会衰减。这两件事情是两个不同能力,前者是核心处理函数算法机制的伪随机性强度体现,后者则是输入和输出值域的映射关系。
在实际加密事件中的值域看作是输入加密后的所有输出,核心处理函数的输出的可能性不会多于输入,是个定义域到值域的满射函数。为了使核心处理函数达到上述在运行更多轮后安全强度不会衰减的效果,核心处理函数采用可逆函数。可逆函数是定义域到值域一对一的单射函数。如此,核心处理函数就可以不断的从定义域到值域,再将值域作为定义域进行不断的迭代。然而,可逆函数可能会遭受未来量子计算机的威胁。由于信息的全保留,利用量子算法的并行性,未来可能破解(全状态逆转)现在看来很难逆化的可逆函数。另一方面,目前的哈希算法的核心处理函数均表现为局域性特征,使得现有哈希算法的核心处理函数将不再安全。
发明内容
本发明实施例的一个目的旨在提供一种哈希加密方法、非易失性可读存储介质及电子设备,旨在解决现有哈希算法容易被破解的技术问题。
在第一方面,本实施例提供一种哈希加密方法,包括:
获取源数据;
根据所述源数据生成全局变量信息;
根据所述全局变量信息更新预置哈希处理函数,得到更新后的预置哈希处理函数;
基于所述更新后的预置哈希处理函数,将所述源数据加密成指定位数的哈希加密数据。
可选地,所述根据所述源数据生成全局变量信息包括:
将所述源数据分成多个等长的数据段;
根据所述多个等长的数据段生成全局变量信息。
可选地,所述将所述源数据分成多个等长的数据段包括:
按照指定位数将所述源数据依序分成多个数据段;
当最后数据段的总位数小于或等于所述指定位数时,对所述最后数据段执行补齐操作,使得补齐后的最后数据段的位数为所述指定位数。
可选地,所述全局变量信息包括未补齐前的数据段数量信息、源数据长度信息、补齐后的数据长度信息、补齐后的数据段数量信息中的一种或两种以上的组合。
可选地,所述预置哈希处理函数包括至少一个赋值计算操作,所述根据所述全局变量信息更新预置哈希处理函数包括:
根据所述全局变量信息更新所述预置哈希处理函数的目标赋值计算操作,所述目标赋值计算操作为所述至少一个赋值计算操作中的一个赋值计算操作。
可选地,若所述预置哈希处理函数对应的哈希算法为默克尔-达姆加德哈希算法,所述至少一个赋值计算操作包括轮次常数变换操作、段压缩扩展操作、杂凑值初始化操作、段压缩主循环操作及杂凑值更新操作。
可选地,若所述预置哈希处理函数对应的哈希算法为基于海绵构造的哈希算法,所述至少一个赋值计算操作包括吸收操作或者挤出操作。
可选地,所述根据所述全局变量信息更新所述预置哈希处理函数的目标赋值计算操作包括:
若所述预置哈希处理函数对应的加密模式为并行加密模式,则确定所述数据段的段序;
根据所述全局变量信息及所述段序更新所述预置哈希处理函数的目标赋值计算操作。
在第二方面,本发明实施例提供一种非易失性可读存储介质,所述非易失性可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使电子设备执行上述的哈希加密方法。
在第三方面,本发明实施例提供一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的哈希加密方法。
在本发明实施例提供的哈希加密方法中,获取源数据,根据源数据生成全局变量信息,根据全局变量信息更新预置哈希处理函数,得到更新后的预置哈希处理函数,基于更新后的预置哈希处理函数,将源数据加密成指定位数的哈希加密数据。本实施例通过源数据引入全局变量信息,并使用全局变量信息更新预置哈希处理函数,会使得更新后的预置哈希处理函数相对攻击者变成不可知的处理函数,如此会增加逆向破解的难度,并且可抵御量子算法的威胁,也可避免受到长度延展攻击,提高数据加密的安全性和可靠性。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1为本发明实施例提供的一种哈希加密方法的流程示意图;
图2为本发明实施例提供的将源数据进行分段的示意图;
图3为本发明实施例提供的数据段的位数小于254时进行补齐操作的状态示意图;
图4为本发明实施例提供的数据段的位数等于254时进行补齐操作的状态示意图;
图5为本发明实施例提供的数据段的位数等于255时进行补齐操作的状态示意图;
图6为本发明实施例提供的数据段的位数等于256时进行补齐操作的状态示意图;
图7为本发明实施例提供的默克尔-达姆加德哈希算法的架构示意图;
图8为本发明实施例提供的基于海绵构造的哈希算法的架构示意图;
图9为本发明实施例提供的一种电子设备的电路结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,如果不冲突,本发明实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。再者,本发明所采用的“第一”、“第二”、“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。
本发明实施例提供一种哈希加密方法。请参阅图1,哈希加密方法包括以下步骤:
S11:获取源数据。
本步骤中,源数据为需要执行哈希加密操作的数据。源数据以二进制形式进行表达,其中,源数据的位数不固定,比如源数据的位数为300位或1024位或者1555000000位,具体长度不限。
S12:根据源数据生成全局变量信息。
本步骤中,全局变量信息用于全局性地描述源数据的信息。在一些实施例中,全局变量信息包括未补齐前的数据段数量信息、源数据长度信息、补齐后的数据长度信息、补齐后的数据段数量信息中的一种或两种以上的组合。未补齐前的数据段数量信息为源数据被划分成多个数据段且未执行补齐操作的数据段的数量。源数据长度信息为源数据的长度。补齐后的数据长度信息为源数据被补齐后的长度。补齐后的数据段数量信息为源数据被划分成多个数据段且执行补齐操作后的数据段的数量。
在一些实施例中,根据源数据生成全局变量信息包括:将源数据分成多个等长的数据段,根据多个等长的数据段生成全局变量信息。
数据段为按照指定位数从源数据中截取的多个数值组成的数据集合,任两个数据点的位数都是相等的,其中,指定位数可由设计者根据业务需求自定义。在一些实施例中,指定位数为2的N次方,其中,N为正整数。在一些实施例中,N为8,因此,指定位数为256位。
在一些实施例中,将源数据分成多个等长的数据段包括以下步骤:按照指定位数将源数据依序分成多个数据段,当最后数据段的总位数小于或等于指定位数时,对最后数据段执行补齐操作,使得补齐后的最后数据段的位数为指定位数。
如前所述,指定位数可由设计者根据业务需求自定义。在一些实施例中,指定位数为2的N次方,其中,N为正整数。在一些实施例中,32*h位,其中,h为正整数,当h为8时,因此,指定位数为256位。
请参阅图2,本实施例按照256位/段,将源数据D分成数据段、数据段/>、数据段、数据段/>及数据段/>,其中,数据段/>、数据段/>、数据段/>及数据段/>的位数都为256位,数据段/>的位数不足256位。
最后数据段为在多个数据段中排列最后的数据段,补齐操作为在最后数据点后补充数值的操作。请结合图2,数据段为最后数据段,由于数据段/>的位数不足256位,本实施例需要对数据段/>执行补齐操作,使得补齐后的数据段/>的位数为256位。
在一些实施例中,对最后数据段执行补齐操作,使得补齐后的最后数据段的位数为指定位数包括:在最后数据段后增加补齐字段,使得补齐后的最后数据段的位数为指定位数。
在一些实施例中,在最后数据段后增加补齐字段包括以下步骤:
当最后数据段的总位数小于第一预设位数时,补齐字段由一个第一补齐数值、多个第二补齐数值及一个第三补齐数值依序组成,其中,指定位数与第一预设位数的差值大于自然数2。
当最后数据段的总位数为第一预设位数时,补齐字段由一个第一补齐数值及一个第三补齐数值依序组成,其中,指定位数与第一预设位数的差值等于自然数2。
当最后数据段的总位数为第二预设位数时,补齐字段由一个第一补齐数值及第一预置数据段依序组成,第一预置数据段由第二预设位数个的第二补齐数值及一个第三补齐数值组成,其中,指定位数与第二预设位数的差值等于自然数1。
当最后数据段的总位数为指定位数时,补齐字段由第二预置数据段组成,第二预置数据段由一个第一补齐数值、多个第二补齐数值及一个第三补齐数值依序组成。
可以理解的是,第一补齐数值、第二补齐数值及第三补齐数值可由设计者根据业务需求自定义。在一些实施例中,第一补齐数值及第三补齐数值都为1,第二补齐数值为0。
还可以理解的是,第一预设位数、第二预设位数都小于指定位数,且第一预设位数、第二预设位数可由设计者根据业务需求自定义。在一些实施例中,第一预设位数为254,第二预设位数为255,指定位数为256。
请参阅图5,若数据段的位数m=255,则本实施例在数据段/>的末尾增加一个第一补齐数值“1”,再另外增加一个第一预置数据段,第一预置数据段由255个的第二补齐数值“0”及一个第三补齐数值“1”组成。/>
在一些实施例中,当全局变量信息包括未补齐前的数据段数量信息时,根据多个等长的数据段生成全局变量信息包括:计算未补齐前的数据段的数量,得到数据段数量信息。
在一些实施例中,当全局变量信息包括补齐后的数据长度信息,根据多个等长的数据段生成全局变量信息包括:计算各个数据段的长度,并对各个数据段的长度进行相加,得到补齐后的数据长度信息。
在一些实施例中,当全局变量信息包括补齐后的数据段数量信息,根据多个等长的数据段生成全局变量信息包括:计算补齐后的数据段的数量,得到补齐后的数据段数量信息。
在一些实施例中,当全局变量信息包括源数据长度信息时,根据源数据生成全局变量信息包括:计算源数据的长度,得到源数据长度信息。
S13:根据全局变量信息更新预置哈希处理函数,得到更新后的预置哈希处理函数。
本步骤中,预置哈希处理函数用于生成哈希加密数据。在一些实施例中,预置哈希处理函数可为默克尔-达姆加德哈希算法的哈希处理函数或者基于海绵构造的哈希算法的哈希处理函数或者并行哈希算法的哈希处理函数等。全局变量信息能够改变预置哈希处理函数输出的加密结果,由于攻击者无法知悉全局变量信息,如此会使得更新后的预置哈希处理函数相对攻击者而言是不可知的。
S14:基于更新后的预置哈希处理函数,将源数据加密成指定位数的哈希加密数据。
本实施例通过源数据引入全局变量信息,并使用全局变量信息更新预置哈希处理函数,会使得更新后的预置哈希处理函数相对攻击者变得不可知的处理函数,如此会增加逆向破解的难度,并且可抵御量子算法的威胁,也可避免受到长度延展攻击,提高数据加密的安全性和可靠性。
在一些实施例中,预置哈希处理函数包括至少一个赋值计算操作,根据全局变量信息更新预置哈希处理函数包括:根据全局变量信息更新预置哈希处理函数的目标赋值计算操作,目标赋值计算操作为至少一个赋值计算操作中的一个赋值计算操作。
在一些实施例中,若预置哈希处理函数对应的哈希算法为默克尔-达姆加德哈希算法,至少一个赋值计算操作包括轮次常数变换操作、段压缩扩展操作、杂凑值初始化操作、段压缩主循环操作及杂凑值更新操作。
在一些实施例中,若预置哈希处理函数对应的哈希算法为默克尔-达姆加德哈希算法,则目标赋值计算操作可为轮次常数变换操作、段压缩扩展操作、杂凑值初始化操作、段压缩主循环操作及杂凑值更新操作中的一个。
请参阅图7,默克尔-达姆加德哈希算法的架构如图7所示,其中,每个数据段的加密过程如下所示:
1)初始化输出空间:h0 := 0x6a09e667,h1 := 0xbb67ae85,h2 := 0x3c6ef372,h3 := 0xa54ff53a,h4 := 0x510e527f,h5 := 0x9b05688c,h6 := 0x1f83d9ab,h7 :=0x5be0cd19,其中,最终输出为h0–h7的按序直接拼接,64位16进制数,256位二进制数。
2)轮次常数变换操作:
k[0..63] :=
0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5。
0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174。
0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da。
0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967。
0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85。
0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070。
0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3。
0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2。
3)预处理:源数据接上一个二进制'1',再接上k个'0',其中,k为最小非负整数,使所得的源数据的长度等于448(mod 512)。将预处理前源数据的长度写成64位的大端序整数,接在最尾。
4)分段:将预处理后的源数据划分成若干个数据段,每个数据段的长度为512。
5)数据段压缩:
对于每个数据段,有:
5.1)段压缩扩展操作。
将数据段再分成16个长度为32的字组,看成大端序的整数w[0,1,2,3,……,15]。基于16个字组扩展出相同长度的48个字组,总共可得64个字组,其中,段压缩扩展操作的伪代码如下:
for i from 16 to 63
s0 := (w[i-15] rightrotate 7) xor (w[i-15]rightrotate 18) xor(w[i-15]rightshift 3)
s1 := (w[i-2] rightrotate 17) xor (w[i-2]rightrotate 19) xor(w[i-2]rightshift 10)
w[i] := w[i-16]+ s0 + w[i-7] + s1
5.2)杂凑值初始化操作。
a := h0,b := h1,c := h2,d := h3,e := h4,f := h5,g := h6,h := h7。
5.3)段压缩主循环操作。
其中,段压缩主循环操作的伪代码如下:
for i from 0 to 63
s0 := (a rightrotate 2) xor (a rightrotate 13) xor(a rightrotate 22)
maj := (a and b) xor (a and c) xor(b and c)
t2 := s0 + maj
s1 := (e rightrotate 6) xor (e rightrotate 11) xor(e rightrotate 25)
ch := (e and f) xor ((not e) and g)
t1 := h + s1 + ch + k[i] + w[i]
h := g
g := f
f := e
e := d + t1
d := c
c := b
b := a
a := t1 + t2
5.4)杂凑值更新操作。
将此数据段的杂凑值执行以下操作:
h0 := h0 + a
h1 := h1 + b
h2 := h2 + c
h3 := h3 + d
h4 := h4 + e
h5 := h5 + f
h6 := h6 + g
h7 := h7 + h
6)输出:
digest = hash = h0 || h1 || h2 || h3 || h4 || h5 || h6 || h7。
在一些实施例中,当目标赋值计算操作为轮次常数变换操作时,根据全局变量信息更新预置哈希处理函数的目标赋值计算操作包括:将全局变量信息与轮次常数变换操作中每个轮次常数进行异或处理,得到更新后的轮次常数。举例而言,本实施例根据以下式子进行异或处理,得到更新后的轮次常数,式子如下:k[i]:= k[i]⊕G,k[i]为第i个轮次常数,G为全局变量信息,⊕为异或符号。
在一些实施例中,当目标赋值计算操作为段压缩扩展操作时,根据全局变量信息更新预置哈希处理函数的目标赋值计算操作包括:将全局变量信息分别与段压缩扩展操作中第一段扩展因子及第二段扩展因子进行异或处理,得到更新后的第一段扩展因子及更新后的第二段扩展因子。举例而言,本实施例根据以下式子进行异或处理,得到更新后的第一段扩展因子及更新后的第二段扩展因子,式子如下:s0:=s0⊕G,s1:=s1⊕G,其中,s0为在段压缩扩展操作的第一段扩展因子,s1为在段压缩扩展操作的第二段扩展因子。
在一些实施例中,当目标赋值计算操作为杂凑值初始化操作时,根据全局变量信息更新预置哈希处理函数的目标赋值计算操作包括:将全局变量信息分别与杂凑值初始化操作中杂凑c值及杂凑f值进行异或处理,得到更新后的杂凑c值及更新后的杂凑f值。举例而言,本实施例根据以下式子进行异或处理,得到更新后的杂凑c值及更新后的杂凑f值,式子如下:c:=h2⊕G,f:=h5⊕G,其中,c为杂凑c值,f为杂凑f值。
在一些实施例中,当目标赋值计算操作为段压缩主循环操作时,根据全局变量信息更新预置哈希处理函数的目标赋值计算操作包括:将全局变量信息分别与段压缩主循环操作中第一段压缩因子及第二段压缩因子进行异或处理,得到更新后的第一段压缩因子及更新后的第二段压缩因子。举例而言,本实施例根据以下式子进行异或处理,得到更新后的第一段压缩因子及更新后的第二段压缩因子,式子如下:s0:=s0⊕G,s1:=s1⊕G,其中,s0为在段压缩主循环操作的第一段压缩因子,s1为在段压缩主循环操作的第二段压缩因子。
在一些实施例中,当目标赋值计算操作为杂凑值更新操作时,根据全局变量信息更新预置哈希处理函数的目标赋值计算操作包括:将全局变量信息分别与杂凑值更新操作中杂凑h3值及杂凑h7值进行异或处理,得到更新后的杂凑h3值及更新后的杂凑h7值。举例而言,本实施例根据以下式子进行异或处理,得到更新后的杂凑h3值及更新后的杂凑h7值,式子如下:h3:= h3+d⊕G,h7:= h7+h⊕G,d为初始杂凑d值,h为初始杂凑h值。
如前所述,本实施例能够根据全局变量信息在轮次常数变换操作、段压缩扩展操作、杂凑值初始化操作、段压缩主循环操作及杂凑值更新操作中任一个或两个以上赋值计算操作进行参数更新,由于全局变量信息相对攻击者是不可获知的,因此,本实施例能够使得更新后的预置哈希处理函数相对攻击者变得不可知的处理函数,从而增加了逆向破解的难度,避免受到长度延展攻击。
在一些实施例中,若预置哈希处理函数对应的哈希算法为基于海绵构造的哈希算法,至少一个赋值计算操作包括吸收操作或者挤出操作。
在一些实施例中,若预置哈希处理函数对应的哈希算法为基于海绵构造的哈希算法,则目标赋值计算操作可为吸收操作或者挤出操作中的一个。
请参阅图8,基于海绵构造的哈希算法的架构如图8所示,预置哈希处理函数可为基于海绵构造的哈希算法的哈希处理函数。SHA-3使用海绵结构,其中,数据段被“吸收”到海绵结构中,然后海绵结构再把结果 “挤出”。
在吸收阶段,数据段被“异或”转换为海绵结构的子集,然后使用排列函数f将其作为一个整体进行转换。
在挤出阶段,从海绵结构的同一子集中被读取出来成为输出块,这个过程与排列函数f交替进行,直到完成输出长度要求。
写入和读取的子集部分的大小称为“比例”,用r表示。未受输入/输出影响的部分的大小称为“容量”,用c表示。c决定了方案的安全性,海绵结构的最大安全等级是容量c的一半。
具体加密过程如下所示:
6.1)使用填充函数填充输入N,产生长度可被r整除的填充位字符串P(使得n=len(P)/r 为整数)。
6.2)将P 分解为n 个连续的长度为r的块P0到Pn−1。
6.3)将海绵状态初始化为长度为b位的全零的字符串。
6.4)吸收操作:
吸收输入进入海绵结构;
对于每个块 Pi:
6.4.1)将 Pi 从末尾扩展一串长度为c位的零,生成长度为 b位块。
6.4.2)将扩展后的Pi 与海绵结构的输出做XOR。
6.4.3)将排列函数 f 应用于以上结果,产生新的海绵状态 。
6.5)挤出操作:
将 Z 初始化为空字符串;
当Z的长度小于指定输出长度d:
6.5.1)将海绵结构的前 r 位追加到 Z
6.5.2)如果 Z 的长度仍然小于 d 位,则将 f 应用于海绵结构,从而产生新的海绵状态。
6.6)将 Z 截断为 d 位。
在一些实施例中,当目标赋值计算操作为吸收操作时,根据全局变量信息更新预置哈希处理函数的目标赋值计算操作包括:将全局变量信息与吸收操作中排列函数的输入值进行异或处理,得到更新后的输入值。举例而言,本实施例根据以下式子进行异或处理,得到更新后的轮次常数,式子如下:S:=S⊕Pi⊕G,S为当前排列函数的输入值,Pi为第i数据段,G为全局变量信息。
在一些实施例中,当目标赋值计算操作为挤出操作时,根据全局变量信息更新预置哈希处理函数的目标赋值计算操作包括:将全局变量信息与挤出操作中排列函数的输入值进行异或处理,得到更新后的输入值。举例而言,本实施例根据以下式子进行异或处理,得到更新后的输入值,式子如下:S:=S⊕G,S为当前排列函数的输入值。
如前所述,本实施例能够根据全局变量信息在吸收操作或挤出操作中任一个或两个以上赋值计算操作进行参数更新,由于全局变量信息相对攻击者是不可获知的,因此,本实施例能够使得更新后的预置哈希处理函数相对攻击者变得不可知的处理函数,从而增加了逆向破解的难度,避免受到长度延展攻击。
在一些实施例中,根据全局变量信息更新预置哈希处理函数的目标赋值计算操作包括:若预置哈希处理函数对应的加密模式为并行加密模式,则确定数据段的段序,根据全局变量信息及段序更新预置哈希处理函数的目标赋值计算操作。
在一些实施例中,基于海绵构造的哈希算法采用并行加密模式,因此,根据全局变量信息及段序更新预置哈希处理函数的目标赋值计算操作包括:根据全局变量信息及段序更新吸收操作。
根据全局变量信息及段序更新吸收操作包括以下步骤:将全局变量信息及段序作拼接处理,得到拼接结果,将拼接结果与当前排列函数的输入值及第i数据段进行异或处理,得到吸收操作中的当前排列函数的新输入值。举例而言,本实施例根据以下式子得到吸收操作中的当前排列函数的新输入值,式子如下:
S:=S⊕Pi⊕(G ||i),其中,i为第i数据段的段序数,||为拼接符号。
在一些实施例中,根据全局变量信息及段序更新预置哈希处理函数的目标赋值计算操作包括:根据全局变量信息及段序更新挤出操作。
根据全局变量信息及段序更新挤出操作包括以下步骤:将全局变量信息及段序作拼接处理,得到拼接结果,将拼接结果与当前排列函数的输入值进行异或处理,得到挤出操作中的当前排列函数的新输入值。举例而言,本实施例根据以下式子得到挤出操作中的当前排列函数的新输入值,式子如下:S:=S⊕(G||i),其中,i为第i数据段的段序,||为拼接符号。
如前所述,本实施例通过在吸收操作或挤出操作中将全局变量信息与段序进行拼接,后续再与当前排列函数的输入值进行异或,如此能够增加吸收操作的输出值或者挤出操作的输出值的混乱度,提高不可逆性和攻击难度。另外,在SHA3并行架构的哈希算法中,加入段序可区分不同数据段,防止攻击者篡改数据段的顺序。
通常,在M-D结构中,对于最后数据段段进入哈希处理函数时,位数不足的字组会由零字组代替,形成完整的16个字组,因此,M-D结构需要花费算力和时间进行补齐操作。在一些实施例中,若全局变量信息为源数据长度信息或补齐后的数据长度信息时,本实施例可以不用对最后数据段执行补齐操作,亦即,本实施例按照指定位数将源数据依序分成多个数据段,当最后数据段的总位数小于或等于指定位数时,不对最后数据段作补齐操作,如此能够节约作补齐操作的算力和时间,提高加密效率。
需要说明的是,在上述各个实施方式中,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施方式的描述可以理解,不同实施方式中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,亦可以交换执行等等。
请参阅图9,图9是本发明实施例提供的一种电子设备的电路结构示意图。如图9所示,电子设备900包括一个或多个处理器91以及存储器92。其中,图9中以一个处理器91为例。
处理器91和存储器92可以通过总线或者其他方式连接,图9中以通过总线连接为例。
存储器92作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的哈希加密方法对应的程序指令/模块。处理器91通过运行存储在存储器92中的非易失性软件程序、指令以及模块,从而实现上述方法实施例提供的哈希加密方法的功能。
存储器92可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器92可选包括相对于处理器91远程设置的存储器,这些远程存储器可以通过网络连接至处理器91。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器92中,当被所述一个或者多个处理器91执行时,执行上述任意方法实施例中的哈希加密方法。
本发明实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图9中的一个处理器91,可使得上述一个或多个处理器可执行上述任意方法实施例中的哈希加密方法。
本发明实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被电子设备执行时,使所述电子设备执行上述的哈希加密方法。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种哈希加密方法,其特征在于,包括:
获取源数据;
根据所述源数据生成全局变量信息;
根据所述全局变量信息更新预置哈希处理函数,得到更新后的预置哈希处理函数;
基于所述更新后的预置哈希处理函数,将所述源数据加密成指定位数的哈希加密数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述源数据生成全局变量信息包括:
将所述源数据分成多个等长的数据段;
根据所述多个等长的数据段生成全局变量信息。
3.根据权利要求2所述的方法,其特征在于,所述将所述源数据分成多个等长的数据段包括:
按照指定位数将所述源数据依序分成多个数据段;
当最后数据段的总位数小于或等于所述指定位数时,对所述最后数据段执行补齐操作,使得补齐后的最后数据段的位数为所述指定位数。
4.根据权利要求1所述的方法,其特征在于,所述全局变量信息包括未补齐前的数据段数量信息、源数据长度信息、补齐后的数据长度信息、补齐后的数据段数量信息中的一种或两种以上的组合。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述预置哈希处理函数包括至少一个赋值计算操作,所述根据所述全局变量信息更新预置哈希处理函数包括:
根据所述全局变量信息更新所述预置哈希处理函数的目标赋值计算操作,所述目标赋值计算操作为所述至少一个赋值计算操作中的一个赋值计算操作。
6.根据权利要求5所述的方法,其特征在于,若所述预置哈希处理函数对应的哈希算法为默克尔-达姆加德哈希算法,所述至少一个赋值计算操作包括轮次常数变换操作、段压缩扩展操作、杂凑值初始化操作、段压缩主循环操作及杂凑值更新操作。
7.根据权利要求5所述的方法,其特征在于,若所述预置哈希处理函数对应的哈希算法为基于海绵构造的哈希算法,所述至少一个赋值计算操作包括吸收操作或者挤出操作。
8.根据权利要求5所述的方法,其特征在于,所述根据所述全局变量信息更新所述预置哈希处理函数的目标赋值计算操作包括:
若所述预置哈希处理函数对应的加密模式为并行加密模式,则确定所述数据段的段序;
根据所述全局变量信息及所述段序更新所述预置哈希处理函数的目标赋值计算操作。
9.一种非易失性可读存储介质,其特征在于,所述非易失性可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使电子设备执行如权利要求1至8任一项所述的哈希加密方法。
10.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至8任一项所述的哈希加密方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310464723.6A CN116186745B (zh) | 2023-04-27 | 2023-04-27 | 哈希加密方法、非易失性可读存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310464723.6A CN116186745B (zh) | 2023-04-27 | 2023-04-27 | 哈希加密方法、非易失性可读存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116186745A true CN116186745A (zh) | 2023-05-30 |
CN116186745B CN116186745B (zh) | 2023-07-18 |
Family
ID=86440709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310464723.6A Active CN116186745B (zh) | 2023-04-27 | 2023-04-27 | 哈希加密方法、非易失性可读存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116186745B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108182256A (zh) * | 2017-12-31 | 2018-06-19 | 厦门大学 | 一种基于离散局部线性嵌入哈希的高效图像检索方法 |
CN114186084A (zh) * | 2021-12-14 | 2022-03-15 | 山东大学 | 在线多模态哈希检索方法、系统、存储介质及设备 |
CN114691897A (zh) * | 2022-03-22 | 2022-07-01 | 哈尔滨工业大学(深圳) | 一种深度自适应多模态哈希检索方法及相关设备 |
CN115225330A (zh) * | 2022-06-21 | 2022-10-21 | 中国电信股份有限公司 | 一种数据加密方法、装置、电子设备及存储介质 |
CN115378575A (zh) * | 2022-07-04 | 2022-11-22 | 广西伯汉科技有限公司 | 一种通用轻量哈希处理方法、系统及可储存介质 |
CN115952517A (zh) * | 2022-12-27 | 2023-04-11 | 北京天融信网络安全技术有限公司 | 一种杂凑值计算方法及系统 |
-
2023
- 2023-04-27 CN CN202310464723.6A patent/CN116186745B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108182256A (zh) * | 2017-12-31 | 2018-06-19 | 厦门大学 | 一种基于离散局部线性嵌入哈希的高效图像检索方法 |
CN114186084A (zh) * | 2021-12-14 | 2022-03-15 | 山东大学 | 在线多模态哈希检索方法、系统、存储介质及设备 |
CN114691897A (zh) * | 2022-03-22 | 2022-07-01 | 哈尔滨工业大学(深圳) | 一种深度自适应多模态哈希检索方法及相关设备 |
CN115225330A (zh) * | 2022-06-21 | 2022-10-21 | 中国电信股份有限公司 | 一种数据加密方法、装置、电子设备及存储介质 |
CN115378575A (zh) * | 2022-07-04 | 2022-11-22 | 广西伯汉科技有限公司 | 一种通用轻量哈希处理方法、系统及可储存介质 |
CN115952517A (zh) * | 2022-12-27 | 2023-04-11 | 北京天融信网络安全技术有限公司 | 一种杂凑值计算方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116186745B (zh) | 2023-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ramabadran et al. | A tutorial on CRC computations | |
KR102412616B1 (ko) | 대수적 조작으로부터 데이터를 보호하는 방법 | |
US8787563B2 (en) | Data converter, data conversion method and program | |
US20140093073A1 (en) | Method and System for a Hardware-Efficient Universal Hash Function | |
CN112464258B (zh) | 数据加、解密方法、装置、设备及存储介质 | |
JP6044738B2 (ja) | 情報処理装置、プログラム及び記憶媒体 | |
Lemire et al. | Faster 64-bit universal hashing using carry-less multiplications | |
CA3053264A1 (en) | Polar encoding and decoding method, sending device, and receiving device | |
CN114389752A (zh) | 循环冗余校验码生成方法、装置、设备、介质和程序产品 | |
JP7116374B2 (ja) | 短縮レイテンシ誤り訂正復号 | |
CN116186745B (zh) | 哈希加密方法、非易失性可读存储介质及电子设备 | |
US8683291B2 (en) | High throughput frame check sequence module architecture | |
CN116318660B (zh) | 一种消息扩展与压缩方法及相关装置 | |
US8832450B2 (en) | Methods and apparatus for data hashing based on non-linear operations | |
US20240007269A1 (en) | General-Purpose Lightweight Hash Processing Method and System and Storable Medium | |
WO2019214266A1 (zh) | 计算crc编码的方法和装置 | |
KR20150105405A (ko) | 컴퓨팅 가능하고, 대형이며, 가변적이며 안전한 치환 박스를 위한 방법 및 장치 | |
CN110100409B (zh) | 产生安全散列值的方法和设备 | |
Ivanchykhin et al. | Regular and almost universal hashing: an efficient implementation | |
JP2016130939A (ja) | 乱数生成装置、乱数生成方法、およびプログラム | |
CN116186746B (zh) | 并行哈希加密方法、存储介质及电子设备 | |
Cho et al. | Block-interleaving based parallel CRC computation for multi-processor systems | |
KR101833954B1 (ko) | 메모리 과부하 난수 발생 장치 및 방법 | |
Sagar | Cryptographic Hashing Functions-MD5 | |
CN112054808B (zh) | Polar码的编码方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |