CN110266500B - 一种哈希值的安全加固生成方法及系统 - Google Patents

一种哈希值的安全加固生成方法及系统 Download PDF

Info

Publication number
CN110266500B
CN110266500B CN201910622072.2A CN201910622072A CN110266500B CN 110266500 B CN110266500 B CN 110266500B CN 201910622072 A CN201910622072 A CN 201910622072A CN 110266500 B CN110266500 B CN 110266500B
Authority
CN
China
Prior art keywords
data
hash value
original
original hash
hash
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.)
Active
Application number
CN201910622072.2A
Other languages
English (en)
Other versions
CN110266500A (zh
Inventor
张华�
胡康桥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hexin Interconnect Technology Qingdao Co ltd
Original Assignee
Hexin Interconnect Technology Qingdao Co ltd
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 Hexin Interconnect Technology Qingdao Co ltd filed Critical Hexin Interconnect Technology Qingdao Co ltd
Priority to CN201910622072.2A priority Critical patent/CN110266500B/zh
Publication of CN110266500A publication Critical patent/CN110266500A/zh
Application granted granted Critical
Publication of CN110266500B publication Critical patent/CN110266500B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Abstract

本发明实施例提供一种哈希算法的安全加固方法及系统,该方法包括:将待摘要数据分为两部分,得到第一部分、第二部分;对所述第一部分、第二部分分别求取原始哈希值,得到与所述第一部分对应的第一原始哈希值D1、与所述第二部分对应的第二原始哈希值D2;获取素数p、q;其中,q=(p‑1)/2;q>2n;n为所述原始哈希值的位数;获取有限乘法群
Figure DDA0002125822670000012
的两个生成元α、β;确定h为加固后的哈希值;其中
Figure DDA0002125822670000011
本发明实施例在将待摘要数据分为两部分后使用原始哈希值的基础上,利用有限乘法群对第一原始哈希值和第二原始哈希值进行安全加固,得到加固后的哈希值h,在原本哈希算法实现基础上,进一步地对哈希值进行加固,提高数据安全性,减少对现有哈希软件和哈希硬件的浪费。

Description

一种哈希值的安全加固生成方法及系统
技术领域
本发明实施例涉及信息安全技术领域,具体涉及一种哈希算法的安全加固方法及系统。
背景技术
使用通过利用加密哈希算法计算出的哈希值来检查数据改动。已经证实作为加密哈希算法(加密哈希)的安全哈希算法1(SHA-1)不能确保安全性。已经指出SHA-2家族(SHA-224、SHA-256、SHA-384和SHA-512)可能缺乏安全性。因此,美国国家标准与技术研究院(NationalInstituteofStandardsandTechnology,NIST)公开募集一种新的算法以建立下一代加密哈希算法(SHA-3)。KECCAK算法(“KECCAK参考”,版本3.0,2011年1月14日,(http://keccak.noekeon.org/Keccak-reference-3.0.pdf))于2012年12月被指定为安全哈希算法3(SHA-3算法)。SHA-3根据任意长度的输入消息(数据)输出固定长度的加密哈希值。
属于信息安全领域。具体来说就是如何对一些已经发现碰撞的哈希算法进行有效的加固,以重新确保这类算法的安全性,延长这类算法的使用寿命。
像MD5算法和SHA1算法都属于哈希算法。哈希算法是能够为任意长度的数据产生一份固定长度的摘要,或者叫指纹。
MD5算法的过程如下:概括说来就是原始数据先进行填充,然后切割成512bit的分块,然后abcd这四个寄存器赋初值,然后一个分块一个分块地处理,直至处理完毕。最后abcd这四个寄存器的值就是得到的数字摘要。
SHA1算法的主要流程介绍如下:对于任意长度的明文,SHA1首先对其进行分组,使得每一组的长度为512位,然后对这些明文分组反复重复处理。对于每个明文分组的摘要生成过程如下:
(1)将512位的明文分组划分为16个子明文分组,每个子明文分组为32位。
(2)申请5个32位的链接变量,记为A、B、C、D、E。
(3)16份子明文分组扩展为80份。
(4)80份子明文分组进行4轮运算。
(5)链接变量与初始链接变量进行求和运算。
(6)链接变量作为下一个明文分组的输入重复进行以上操作。
(7)最后,5个链接变量里面的数据就是SHA1摘要。
但是非常不幸的是,这两个算法都已经被来自中国的学者攻破,它们变得不再安全。当前主要的办法是发明新的哈希算法,比如SHA2算法、SHA3算法、SM3算法等等。这么做的确是可以使得整个密码学体系重新变得相对安全,当然不排除未来随着科技的发展这些新的哈希算法也会变得不安全。
但是这么做有两个弊端:
(1)研发新的哈希算法需要非常高深的密码学知识,世界上只有少数几个国家能够研发自己的哈希算法。研发过程需要投入大量的资金和资源,也需要高水平科学家。
(2)不能保护已有投资。因为一旦研发出新的哈希算法,势必就要替换掉原来的哈希算法,那么以前的系统都得需要被替换,软件如果有OTA功能的话可以在线升级,如果原来的哈希算法是用硬件ASIC实现的,那么只能是原来的系统报废,拆下来丢弃,重新采购和安装实现了新版本的硬件。这样就无法保护已有投资。
因此,如何提供一种能够在原本哈希算法实现基础上,进一步地对哈希值进行加固的技术方案,提高数据安全性,减少对现有哈希软件和哈希硬件的浪费,是本领域技术人员亟待解决的技术问题。
发明内容
为此,本发明实施例提供一种哈希算法的安全加固方法及系统,能够在原本哈希算法实现基础上,进一步地对哈希值进行加固,提高数据安全性,减少对现有哈希软件和哈希硬件的浪费。
为了实现上述目的,本发明实施例提供如下技术方案:
第一方面,本发明实施例提供一种哈希算法的安全加固方法,包括:
将待摘要数据分为两部分,得到第一部分、第二部分;
对所述第一部分、第二部分分别求取原始哈希值,得到与所述第一部分对应的第一原始哈希值D1、与所述第二部分对应的第二原始哈希值D2
获取素数p、q;其中,q=(p-1)/2;q>2n;n为所述原始哈希值的位数;
获取有限乘法群
Figure GDA0002328747860000031
的两个生成元α、β;
确定h为加固后的哈希值;其中
Figure GDA0002328747860000032
优选地,所述n为128或160。
优选地,所述对所述第一部分、第二部分分别求取原始哈希值,得到第一原始哈希值D1、第二原始哈希值D2,具体为:
对所述第一部分、第二部分分别通过硬件哈希设备求取原始哈希值,得到第一原始哈希值D1、第二原始哈希值D2
优选地,所述对所述第一部分、第二部分分别求取原始哈希值,得到第一原始哈希值D1、第二原始哈希值D2,具体为:
对所述第一部分、第二部分分别通过软件哈希算法求取原始哈希值,得到第一原始哈希值D1、第二原始哈希值D2
优选地,所述将待摘要数据分为两部分,包括:
当待摘要数据的长度值为偶数时,将所述待摘要数据平分,得到第一部分、第二部分;
当待摘要数据的长度值为奇数时,将所述待摘要数据的正中间的一个数据的前部作为第一部分、将所述待摘要数据的正中间数据的后部作为第二部分。
第二方面,本发明实施例提供一种哈希算法的安全加固系统,包括:
数据分部模块,用于将待摘要数据分为两部分,得到第一部分、第二部分;
原始哈希模块,用于对所述第一部分、第二部分分别求取原始哈希值,得到与所述第一部分对应的第一原始哈希值D1、与所述第二部分对应的第二原始哈希值D2
素数获取模块,用于获取素数p、q;其中,q=(p-1)/2;q>2n;n为所述原始哈希值的位数;
生成元获取模块,用于获取有限乘法群
Figure GDA0002328747860000041
的两个生成元α、β;
哈希加固确定模块,用于确定h为加固后的哈希值;其中
Figure GDA0002328747860000042
优选地,所述原始哈希模块,具体为:
硬件哈希单元,用于对所述第一部分、第二部分分别通过硬件哈希设备求取原始哈希值,得到第一原始哈希值D1、第二原始哈希值D2
优选地,所述数据分部模块,包括:
偶数分部单元,用于当待摘要数据的长度值为偶数时,将所述待摘要数据平分,得到第一部分、第二部分;
奇数分部单元,用于当待摘要数据的长度值为奇数时,将所述待摘要数据的正中间的一个数据的前部作为第一部分、将所述待摘要数据的正中间数据的后部作为第二部分。
第三方面,本发明实施例提供一种哈希算法的安全加固设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述第一方面任一种所述哈希算法的安全加固方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面任一种所述哈希算法的安全加固方法的步骤。
本发明实施例提供一种哈希算法的安全加固方法,包括:将待摘要数据分为两部分,得到第一部分、第二部分;对所述第一部分、第二部分分别求取原始哈希值,得到与所述第一部分对应的第一原始哈希值D1、与所述第二部分对应的第二原始哈希值D2;获取素数p、q;其中,q=(p-1)/2;q>2n;n为所述原始哈希值的位数;获取有限乘法群
Figure GDA0002328747860000051
的两个生成元α、β;确定h为加固后的哈希值;其中
Figure GDA0002328747860000052
本发明实施例在将待摘要数据分为两部分后使用原始哈希值的基础上,利用有限乘法群对第一原始哈希值和第二原始哈希值进行安全加固,得到加固后的哈希值h,在原本哈希算法实现基础上,进一步地对哈希值进行加固,提高数据安全性,减少对现有哈希软件和哈希硬件的浪费。
本发明实施例提供的一种哈希算法的安全加固系统、设备、计算机可读存储介质也具有上述有益效果,在此不再一一赘述。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引申获得其它的实施附图。
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。
图1为本发明实施例提供的一种哈希算法的安全加固方法的流程图;
图2为本发明一种具体实施方式提供的一种哈希算法的安全加固系统的组成示意图;
图3为本发明一种具体实施方式提供的一种哈希算法的安全加固系统的数据分部模块组成示意图;
图4为本发明一种具体实施方式提供的一种所述哈希算法的安全加固设备的结构示意图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例提供的一种哈希算法的安全加固方法的流程图。
本发明实施例提供一种哈希算法的安全加固方法,包括:
步骤S11:将待摘要数据分为两部分,得到第一部分、第二部分;
在本发明实施例中,首先要将待摘要的数据分为两个部分,一般地,对于一端存储器中存储的数据来说,数据长度指的是在电脑中传输或存储的数据的长度。数据在计算机系统和网络中,都是以01010101二进制这种方式存在,这里每一个数只能是0或1,每一个0或1叫1个位,也就是1bit平常说的宽带100M就是100*1024*1024个位每秒,但是平常用的单位其实不是这个,而是字节,1字节具有8个位,待摘要数据的长度一般以字节来表示。对于待摘要数据,可以以任意可以预期的预设方式将其分为两部分,例如,可以将该待摘要数据的前100字节作为第一部分,剩余的其余部分作为第二部分,当然也可以有其他的规定方式。例如,可以将所有的排序为奇数的字节数据依次从前到后串起来,作为第一部分;将所有的排序为偶数的字节数据依次从前到后串起来作为第二部分,这里对如何将待摘要数据分为两个部分不做限制。
步骤S12:对所述第一部分、第二部分分别求取原始哈希值,得到与所述第一部分对应的第一原始哈希值D1、与所述第二部分对应的第二原始哈希值D2
在将待摘要数据分为两个部分后,可以利用原始的哈希值得计算方式分别计算两个部分的哈希值,例如可以对第一部分,使用MD5算法或SHA1算法计算哈希值,也即是数据摘要。哈希算法是能够为任意长度的数据产生一份固定长度的摘要,或者叫指纹。概括说来,MD5算法利用原始数据进行填充,然后切割成512bit的分块,然后abcd这四个寄存器赋初值,然后一个分块一个分块地处理,直至处理完毕。最后abcd这四个寄存器的值就是得到的数字摘要。
当然,也可以使用其他的原始哈希算法或原始哈希硬件来实现哈希值的确定,例如,采用SHA1算法的主要流程介绍如下:
SHA1首先对待摘要数据的第一部分或第二部分进行分组,使得每一组的长度为512位,然后对这些明文分组反复重复处理。对于每个明文分组的摘要生成过程如下:
(1)将512位的明文分组划分为16个子明文分组,每个子明文分组为32位。
(2)申请5个32位的链接变量,记为A、B、C、D、E。
(3)16份子明文分组扩展为80份。
(4)80份子明文分组进行4轮运算。
(5)链接变量与初始链接变量进行求和运算。
(6)链接变量作为下一个明文分组的输入重复进行以上操作。
(7)最后,5个链接变量里面的数据就是SHA1摘要。
步骤S13:获取素数p、q;其中,q=(p-1)/2;q>2n;n为所述原始哈希值的位数;
在本步骤中,对于n的取值,一般地如果采用的原始哈希值为MD5,那么n的取值为128,如果采用的原始哈希值为SHA1,那么n的取值为160。具体地,可以根据具体使用的原始哈希值的位数来确定,对于素数p、q的选取,可以采用计算机测试的方式,首先,获取到素数q,q>2n,然后根据q=(p-1)/2计算p的值,如果p为素数,那么可以确认得到素数p。
步骤S14:获取有限乘法群
Figure GDA0002328747860000081
的两个生成元α、β;
对于有限乘法群
Figure GDA0002328747860000082
p为上述步骤S13中计算得到的素数p;可以计算该有限乘法群
Figure GDA0002328747860000083
生成的元素,取其中两个作为α、β。
步骤S15:确定h为加固后的哈希值;其中
Figure GDA0002328747860000084
从而可以根据
Figure GDA0002328747860000085
计算哈希值,得到加固后的哈希值。
具体地,在对所述第一部分、第二部分分别求取原始哈希值,得到第一原始哈希值D1、第二原始哈希值D2,具体可以对所述第一部分、第二部分分别通过硬件哈希设备求取原始哈希值,得到第一原始哈希值D1、第二原始哈希值D2。也就是说通过硬件的方式求取第一原始哈希值或第二原始哈希值,因为在现有技术中存在大量的硬件哈希设备,本发明实施例中可以充分地利用这些硬件哈希设备来求取原始哈希值,从而实现硬件哈西设备的充分利用。
当然,在对所述第一部分、第二部分分别求取原始哈希值,得到第一原始哈希值D1、第二原始哈希值D2,也可以对所述第一部分、第二部分分别通过软件哈希算法求取原始哈希值,得到第一原始哈希值D1、第二原始哈希值D2。也就是说,可以通过软件的方法求取原始哈希值,本发明实施例在具体实现时,可以直接将现有的哈希软件拿过来使用求取原始哈希值,从而实现软件程序的有价值利用。
本发明实施例中,在中间过程中需要计算原始哈希值,因此需要利用原有的哈希软件或哈希设备,因此,原有的哈希设备不需要报废,实现了使用价值,有利于技术的更新换代,符合技术迭代的自然规律。
进一步地,在具体将待摘要数据分为两部分时,当待摘要数据的长度值为偶数时,将所述待摘要数据平分,得到第一部分、第二部分当待摘要数据的长度值为奇数时,将所述待摘要数据的正中间的一个数据的前部作为第一部分、将所述待摘要数据的正中间数据的后部作为第二部分。也就是说,如果待摘要数据为ABCDEF,偶数个字符,那么第一部分为ABC,第二部分为DEF;如果待摘要数据为ABCDEFG,奇数个字符,那么正中间的一个数据为D;D的前部为ABC,那么第一部分为ABC;D的后部为EFG,那么第二部分为EFG,从而实现了待摘要数据的划分。
本发明实施例提供一种哈希算法的安全加固方法将待摘要数据分为两部分后使用原始哈希值的基础上,利用有限乘法群对第一原始哈希值和第二原始哈希值进行安全加固,得到加固后的哈希值h,在原本哈希算法实现基础上,进一步地对哈希值进行加固,提高数据安全性,减少对现有哈希软件和哈希硬件的浪费。
下面对采用反证法证明上述加固方案的安全性:
定理:给定哈希函数h的一个碰撞,那么离散对数logαβ将能有效计算。
证明:首先假设一个碰撞:h(x1,x2)=h(x3,x4);其中,(x1,x2)≠(x3,x4);
则有下列同余式:
Figure GDA0002328747860000091
则必然有:
Figure GDA0002328747860000092
记:d=gcd(x4-x2,p-1);
因为p-1=2q且q是素数,它必定有:d∈{1,2,q,p-1};
因此有四种可能的d值,依次考虑如下:
首先假设d=1,那么设:y=(x4-x2)-1mod(p-1);
则有:
Figure GDA0002328747860000093
所以能计算离散对数logαβ如下:
logαβ=(x1-x3)(x4-x2)-1mod(p-1);
其次,假设d=2,因为p-1=2q,q是素数,则必有gcd(x4-x2,q)=1,设:y≡(x4-x2)- 1modq;
则必有:
(x4-x2)y≡1modq;
那么对某一整数k,有
(x4-x2)y=kq+1;
所以有:
Figure GDA0002328747860000101
因为:βq≡-1modp;
所以有:
Figure GDA0002328747860000102
所以有:
Figure GDA0002328747860000103
所以有:
logαβ=(x1-x3)ymod(p-1);
这样同样计算出了logαβ。
第三,假设d=q,但是:
0≤x2≤q-1;
0≤x4≤q-1;
所以:-(q-1)≤x4-x2≤q-1;
所以gcd(x4-x2,p-1)=q是不可能的,换句话说,这种情况不可能发生。
第四,假设d=p-1,这仅当x4=x2时发生。则有:
Figure GDA0002328747860000104
所以
Figure GDA0002328747860000105
即x1=x3,这样:
(x1,x2)=(x3,x4);
与假设矛盾,从而,不能找到(x1,x2)实数对使得h(x1,x2)=h(x3,x4);其中,(x1,x2)≠(x3,x4),也就找不到实数对,使得
Figure GDA0002328747860000106
所以它也是不可能发生的。
由于已经考虑了所有可能的d值,所以,如果计算
Figure GDA0002328747860000111
中的离散对数logαβ是不可行的,那么就能够推出哈希函数h是强无碰撞的。而众所周知计算
Figure GDA0002328747860000114
中的离散对数logαβ不可行是一个大家都公认的事实。
因此,本发明实施例提供的任一种哈希算法的安全加固方法,是一种可以证明为强无碰撞的哈希值计算方法,该方法在结合现有技术中的哈希算法的基础上,进一步地将强了哈希计算方法的安全性能,既能够避免大量淘汰现有的哈希软件和哈希硬件造成的资源浪费,又能够加强数据安全性。
请参考图2、图3,图2为本发明一种具体实施方式提供的一种哈希算法的安全加固系统的组成示意图;图3为本发明一种具体实施方式提供的一种哈希算法的安全加固系统的数据分部模块组成示意图。
在本发明一种具体实施方式中,本发明实施例提供一种哈希算法的安全加固系统200,包括:
数据分部模块210,用于将待摘要数据分为两部分,得到第一部分、第二部分;
原始哈希模块220,用于对所述第一部分、第二部分分别求取原始哈希值,得到与所述第一部分对应的第一原始哈希值D1、与所述第二部分对应的第二原始哈希值D2
素数获取模块230,用于获取素数p、q;其中,q=(p-1)/2;q>2n;n为所述原始哈希值的位数;
生成元获取模块240,用于获取有限乘法群
Figure GDA0002328747860000112
的两个生成元α、β;
哈希加固确定模块250,用于确定h为加固后的哈希值;其中
Figure GDA0002328747860000113
优选地,所述原始哈希模块220,具体为:
硬件哈希单元,用于对所述第一部分、第二部分分别通过硬件哈希设备求取原始哈希值,得到第一原始哈希值D1、第二原始哈希值D2
优选地,所述数据分部模块210,包括:
偶数分部单元211,用于当待摘要数据的长度值为偶数时,将所述待摘要数据平分,得到第一部分、第二部分;
奇数分部单元212,用于当待摘要数据的长度值为奇数时,将所述待摘要数据的正中间的一个数据的前部作为第一部分、将所述待摘要数据的正中间数据的后部作为第二部分。
请参考图4,图4为本发明一种具体实施方式提供的一种所述哈希算法的安全加固设备的结构示意图。
本发明实施例提供一种所述哈希算法的安全加固设备400,包括:
存储器410,用于存储计算机程序;
处理器420,用于执行所述计算机程序时实现如上述任一种实施例所述的一种所述哈希算法的安全加固方法的步骤。
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种实施例所述的一种所述哈希算法的安全加固方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。

Claims (10)

1.一种哈希算法的安全加固方法,其特征在于,包括:
将待摘要数据分为两部分,得到第一部分、第二部分;
对所述第一部分、第二部分分别求取原始哈希值,得到与所述第一部分对应的第一原始哈希值D1、与所述第二部分对应的第二原始哈希值D2
获取素数p、q;其中,q=(p-1)/2;q>2n;n为所述第一原始哈希值和所述第二原始哈希值的位数;
获取有限乘法群
Figure FDA0002406540140000011
的两个生成元α、β;
确定h为加固后的哈希值;其中
Figure FDA0002406540140000012
2.根据权利要求1所述的安全加固方法,其特征在于,
所述n为128或160。
3.根据权利要求1所述的安全加固方法,其特征在于,
所述对所述第一部分、第二部分分别求取原始哈希值,得到第一原始哈希值D1、第二原始哈希值D2,具体为:
对所述第一部分、第二部分分别通过硬件哈希设备求取原始哈希值,得到第一原始哈希值D1、第二原始哈希值D2
4.根据权利要求1所述的安全加固方法,其特征在于,
所述对所述第一部分、第二部分分别求取原始哈希值,得到第一原始哈希值D1、第二原始哈希值D2,具体为:
对所述第一部分、第二部分分别通过软件哈希算法求取原始哈希值,得到第一原始哈希值D1、第二原始哈希值D2
5.根据权利要求1至4任一项所述的安全加固方法,其特征在于,
所述将待摘要数据分为两部分,包括:
当待摘要数据的长度值为偶数时,将所述待摘要数据平分,得到第一部分、第二部分;
当待摘要数据的长度值为奇数时,将所述待摘要数据的正中间的一个数据的前部作为第一部分、将所述待摘要数据的正中间数据的后部作为第二部分。
6.一种哈希算法的安全加固系统,其特征在于,包括:
数据分部模块,用于将待摘要数据分为两部分,得到第一部分、第二部分;
原始哈希模块,用于对所述第一部分、第二部分分别求取原始哈希值,得到与所述第一部分对应的第一原始哈希值D1、与所述第二部分对应的第二原始哈希值D2
素数获取模块,用于获取素数p、q;其中,q=(p-1)/2;q>2n;n为所述第一原始哈希值和所述第二原始哈希值的位数;
生成元获取模块,用于获取有限乘法群
Figure FDA0002406540140000021
的两个生成元α、β;
哈希加固确定模块,用于确定h为加固后的哈希值;其中
Figure FDA0002406540140000022
7.根据权利要求6所述的安全加固系统,其特征在于,
所述原始哈希模块,具体为:
硬件哈希单元,用于对所述第一部分、第二部分分别通过硬件哈希设备求取原始哈希值,得到第一原始哈希值D1、第二原始哈希值D2
8.根据权利要求6或7所述的安全加固系统,其特征在于,
所述数据分部模块,包括:
偶数分部单元,用于当待摘要数据的长度值为偶数时,将所述待摘要数据平分,得到第一部分、第二部分;
奇数分部单元,用于当待摘要数据的长度值为奇数时,将所述待摘要数据的正中间的一个数据的前部作为第一部分、将所述待摘要数据的正中间数据的后部作为第二部分。
9.一种哈希算法的安全加固设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述哈希算法的安全加固方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述哈希算法的安全加固方法的步骤。
CN201910622072.2A 2019-07-10 2019-07-10 一种哈希值的安全加固生成方法及系统 Active CN110266500B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910622072.2A CN110266500B (zh) 2019-07-10 2019-07-10 一种哈希值的安全加固生成方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910622072.2A CN110266500B (zh) 2019-07-10 2019-07-10 一种哈希值的安全加固生成方法及系统

Publications (2)

Publication Number Publication Date
CN110266500A CN110266500A (zh) 2019-09-20
CN110266500B true CN110266500B (zh) 2020-05-08

Family

ID=67925470

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910622072.2A Active CN110266500B (zh) 2019-07-10 2019-07-10 一种哈希值的安全加固生成方法及系统

Country Status (1)

Country Link
CN (1) CN110266500B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019127335A1 (de) 2019-10-10 2021-04-15 Infineon Technologies Ag Erzeugen von Hash-Werten

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1533971A1 (en) * 2003-11-18 2005-05-25 STMicroelectronics S.r.l. Method and system for establishing secure communication
CN102404121B (zh) * 2011-11-30 2014-03-12 华为技术有限公司 一种密文处理方法、装置及系统
CN104104501A (zh) * 2014-07-08 2014-10-15 杭州电子科技大学 一种基于指纹特征与有限乘法群的共享模糊金库方法

Also Published As

Publication number Publication date
CN110266500A (zh) 2019-09-20

Similar Documents

Publication Publication Date Title
CN110348231B (zh) 实现隐私保护的数据同态加解密方法及装置
Pittalia A comparative study of hash algorithms in cryptography
EP3035590B1 (en) Method and device for generating digital signature
CN107294698B (zh) 单密文同态计算的全同态加密方法
CN105531713A (zh) 从单个数据缓冲器生成多个安全散列
CN110309665B (zh) 一种sm2数字签名的快速生成方法和装置
CN112446052B (zh) 一种适用于涉密信息系统的聚合签名方法及系统
US20160006568A1 (en) Tag generation device, tag generation method, and tag generation program
CN113300831A (zh) 一种安全散列算法的实现方法、系统、介质及设备
Farahmand et al. A high-speed constant-time hardware implementation of NTRUEncrypt SVES
CN110266500B (zh) 一种哈希值的安全加固生成方法及系统
US8225100B2 (en) Hash functions using recurrency and arithmetic
US10402593B2 (en) Verification paths of leaves of a tree
CN112737778B (zh) 数字签名生成、验证方法及装置、电子设备及存储介质
CN111510292B (zh) hill高阶密钥矩阵随机生成方法、系统、装置和存储介质
Kishore et al. An efficient parallel algorithm for hash computation in security and forensics applications
CN116318660B (zh) 一种消息扩展与压缩方法及相关装置
CN110100409B (zh) 产生安全散列值的方法和设备
Hohenberger et al. New methods and abstractions for RSA-based forward secure signatures
US8150030B2 (en) Cryptographic hashing device and method
Kanickam et al. Comparative analysis of hash authentication algorithms and ECC based security algorithms in cloud data
CN117254909B (zh) 一种快速生成高概率原根的计算方法、系统及存储介质
JP3796867B2 (ja) 素数判定方法および装置
Crutchfield Security proofs for the MD6 hash function mode of operation
CN116484443B (zh) 一种基于鸿蒙系统的可信安全存储方法及装置

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