CN107204852A - 一种基于数据一致性校验算法的优化算法 - Google Patents
一种基于数据一致性校验算法的优化算法 Download PDFInfo
- Publication number
- CN107204852A CN107204852A CN201710487073.1A CN201710487073A CN107204852A CN 107204852 A CN107204852 A CN 107204852A CN 201710487073 A CN201710487073 A CN 201710487073A CN 107204852 A CN107204852 A CN 107204852A
- Authority
- CN
- China
- Prior art keywords
- string
- binary
- data
- bits
- length
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3239—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于数据一致性校验算法的优化算法,属于数据一致性检测技术领域,本发明主要以任意长的消息作为输入,同样产生128比特的消息摘要;针对原有的MD5摘要算法进行研究,对原有的MD5值校验算法进行优化,在摘要值获取效率上得到了提升。
Description
技术领域
本发明涉及数据一致性检测技术,尤其是一种基于数据一致性校验算法的优化算法。
背景技术
随着计算机的发展,数据作为企业的重要资源越来越受到重视,为了防止各种灾难读技术局的损坏或者摧毁,建立一个可以保证数据安全和服务连续性的容灾系统具有十分重要的意义。在容灾系统中,当灾难法神后,使用备份数据中心提供的数据可以快速的恢复本地数据中心的数据,保持业务的连续性,将损失降到最低。但是如果备份数据和被损坏前数据不一致,这就说明备份市局不能用来进行对元数据的恢复,这样就会造成无法挽回的损失,所以为了确保备份数据在数据恢复时具有高可用性,就需要定期的对元数据和备份数据进行数据一致性检测。
数据一致性检测技术是检测源数据与备份数据是否一致来确保备份数据高可用性的技术。现有的数据一致性检测方法主要通过快照技术、数据分块技术和计算摘要值等技术来对源数据与备份数据同时进行操作,得到对应数据块的摘要值,通过对摘要值的比对完成数据一致检测,如果摘要值相同,源数据与备份数据就一致;不同则不一致。这其中对摘要值的计算是数据一致性校验中的重要环节。
在摘要值计算中,对摘要值算法的效率有一定的要求,因为数据一致性检测不能占用非常多的时间,这样会影响系统的正常工作。对于摘要值算法,摘要值算法到的散列值越长其所能保证的数据一致性越高,但是长的散列值就要花费大量的计算资源和时间,MD5算法产生128位散列值,虽然不是最长的,但是作为摘要值算法很好的中和了散列值长度和计算性能的矛盾。
发明内容
针对以上问题,本发明提出了一种基于数据一致性校验算法的优化算法。针对原有的MD5摘要算法进行研究,对原有的MD5值校验算法进行优化,通过流程和策略的优化从而提高数据校验算法的准确性和计算效率。
本发明改进的算法是以任意长的消息作为输入,同样产生128比特的消息摘要。
本发明的技术方案是:
一种基于数据一致性校验算法的优化算法,
具体步骤如下:
步骤一:输入信息;
步骤二:通过二进制的转化,将信息串转化为等价的二进制串;
步骤三:(1)为二进制串添加01比特序列,使因此产生的字符串的长度比512的倍数少64比特;(2)扫描步骤三(1)中产生的字符串的任意位置,再附加64比特;
步骤四:(1)将步骤二产生的二进制串划分成长度为128比特的数据块;(2}使用随机数发生器生成一个128比特的二进制键;(3)在128比特数据块和128比特随机键中进行逐位运算;(4)将步骤四(3)中的输出作为逐步的消息摘要进行保存;
步骤五:(1)在现在的消息摘要和之前的消息摘要之间进行逐位运算;(2)返回步骤四,直至所有的输入信息块都处理完毕;
步骤六:将步骤五产生的输出值转化成相应的特征值,并且将此值作为最后的消息摘要值保存。
作为输入的信息是任意类型,包括字母,数字以及特殊字符:
Message=((a-z)+(A-Z)+(0-9)+(!一;))*
对于任何字符,都转化为相应的二进制码,产生的二进制串包含任何数字编号;然后追加一个位序列,以输入二进制字符串,使生成的字符串的长度比512的倍数少64;
数学形式:二进制串长度%512=448。
对在产生的字符串的任意位置再附加64比特来说,它的起始点从[字符串的长度//3」开始。
在原有数据一致性校验算法MD5的基础上通过流程和策略的优化从而提高数据校验算法的准确性和计算效率。
附图说明
图1是MD5算法流程图图;
图2是优化后数据摘要算法的流程图。
具体实施方式
下面对本发明的内容进行更加详细的阐述:
图1是标准MD5值在数据一致性校验中进行数据摘要的过程。MD 5算法的具体实现过程是经过初始化后,MD5将输入文本划分为16个32位的分组,通过四轮计算,会得到四个32位分组的值,而MD5最后所得的128位摘要值就是将这四个值级联得出的。
图1是标准MD5值在数据一致性校验中进行数据摘要的过程。MD 5算法的具体实现过程是经过初始化后,MD5将输入文本划分为16个32位的分组,通过四轮计算,会得到四个32位分组的值,而MD5最后所得的128位摘要值就是将这四个值级联得出的。
首先要对输入信息进行填充,填充的方法是在信息后面附上一个1,然后1的后面按照要求附上若干多个0。将填充完的信息再加上64位信息再填充之前的长度后,刚好使整个信息的长度是512的整数倍。进行这样操作的目的是保证不同信息经过填充后不相同,方便以后的操作。
下面是四个MD 5算法中的链接变量:
A=0x01234567
B=0x89abcdef
C=0xfedcba98
D=0x76543210
计算信息中512位分组的数量,并将此数值作为循环的次数开始MD 5算法的主循环。为了四个链接变量A, B, C, D不发生改变,使用四个中间变量表示它们。MD 5算法的主循环一共有四轮,每一轮都要通过固有的函数进行16次计算。这个过程是从四个中间变量中选出二个,将这二个作一次非线性函数运算,将剩余的变量加到由非线性函数运算所有的结果中,然后将加上文本的一个子分组和一个常数的结果右移不定位,从四个中间变量中选出来一个然后加上那个结果。再从四个中间变量中选出一个,然后用刚才得到的那个结果进行替换
下面是每轮要用到的非线性函数,一共是四个:
F(X,Y,Z)=(X&Y)}|((~X)&Z)
G(X,Y,Z)=(X&Z)}|(Y&(~Z))
H(X,Y,Z)=X^Y^Z
I}X,Y,Z)=Y^(X|(~Z))
(&:与,|:或,~:非,^:异或)
函数F的操作方式是逐位的操作:如果X,那么Y,否则Z。函数H是逐位奇偶操作符。四种操作为:
FF(a,b,c,d,Mj,s,ti)表示a=b+((a+(F(b,c,d)+Mj+ti)<<<s)
GG(a,b,c,d,Mj,s,ti)表示a=b+((a+(G(b,c,d)+Mj+ti)<<<s)
HH(a,b,c,d,Mj,s,ti)表示a=b+((a+(H(b,c,d)+Mj+ti)<<<s)
II(a,b,c,d,Mj,s,ti)表示a=b+((a+(I(b,c,d)+Mj+ti)<<<s)
其中a,b,c,d就是替换四个链接变量的中间变量,<<<s表示循环左移s位,变量Mj表示的含义旱信良的第j个子分组。
这四轮(64步)是:
第一轮:
FF(a,b,c,d,M0,7,0xd76aa478)
FF(d,a,b,c,M1,12,0xe8c7b756)
FF(c,d,a,b,M2,17,0x242070db)
FF(b,c,d,a,M3,22,0xclbdceee)
FF(a,b,c,d,M4,7,0xf57c0faf)
FF(d,a,b,c,MS,12,0x4787c62a)
FF(c,d,a,b,M6,17,0xa8304613)
FF(b,c,d,a,M7,22,0xfd469501)
FF(a,b,c,d,M8,7,0x698098d8)
FF(d,a,b,c,M9,12,0x8b44f7af)
FF(c,d,a,b,M10,17,0xffff5bb1)
FF(b,c,d,a,M11,22,0x895cd7be)
FF(a,b,c,d,M12,7,0x6b901122)
FF(d,a,b,c,M13,12,0xfd987193)
FF(c,d,a,b,M14,17,0xa679438e)
FF(b,c,d,a,M15,22,0x49b40821)
第二轮:
GG(a,b,c,d,M1,5,0xf61e2562)
GG(d,a,b,c,M6,9,0xc040b340)
GG(c,d,a,b,M11,14,0x265e5a51)
GG(b,c,d,a,M0,20,0xe9b6c7aa)
GG(a,b,c,d,M5,5,0xd62f105d)
GG(d,a,b,c,M10,9,0x02441453)
GG(c,d,a,b,M15,14,0xd8ale681)
GG(b,c,d,a,M4,20,0xe7d3fbc8)
GG(a,b,c,d,M9,5,0x21e1cde6)
GG(d,a,b,c,M14,9,0xc33707d6)
GG(c,d,a,b,M3,14,0xf4d50d87)
GG(b, c,d,a,M8,20,0x45Sa14ed)
GG(a,b,c,d,M13,5,0xa9e3e905)
GG(d,a,b,c,M2,9,0xfcefa3f8)
GG(c,d,a,b,M7,14,0x676f02d9)
GG(b,c,d,a,M12,20,0x8d2a4c8a)
第二轮:
HH(a,b,c,d,M5,4,0xfffa3942)
HH(d,a,b,c,MB,11,0x8771f681)
HH(c,d,a,b,M11,16,0x6d9d6122)
HH(b,c,d,a,M14,23,0xfde5380c)
HH(a,b,c,d,M1,4,0xa4beea44)
HH(d,a,b,c,M4,11,0x4bdecfa9)
HH(c,d,a,b,M7,16,0xf6bb4b60)
HH(b,c,d,a,M10,23,0xbebfbc70)
HH(a,b,c,d,M13,4,0x289b7ec6)
HH(d,a,b,c,M0,11,0xeaa127fa)
HH(c,d,a,b,M3,16,0xd4ef3085)
HH(b,c,d,a,M6,23,0x04881d05)
HH(a,b,c,d,M9,4,0xd9d4d039)
HH(d,a,b,c,M12,11,0xe6db99e5)
HH(c,d,a,b,M15,16,0x1fa27cf8)
HH(b,c,d,a,M2,23,0xc4ac5665)
第四轮:
II(a,b,c,d,M0,6,0xf4292244)
II(d,a,b,c,M7,10,0x432aff97)
II(c,d,a,b,M14,15,0xab9423a7)
II(b,c,d,a,M5,21,0xfc93a039)
II(a,b,c,d,M12,6,0x655b59c3)
II(d,a,b,c,M3,10,0x8fOccc92)
II(c,d,a,b,M10,15,0xffeff47d)
II(b,c,d,a,M1,21,0x85845dd1)
II(a,b,c,d,M8,6,0x6fa87e4f)
II(d,a,b,c,M15,10,0xfe2ce6e0)
II(c,d,a,b,M6,15,0xa3014314)
II(b,c,d,a,M13,21,0x4e0811a1)
II(a,b,c,d,M4,6,0xf7537e82)
II(d,a,b,c,M11,10,0xbd3 af235)
II(c,d,a,b,M2,15,0x2ad7d2bb)
II(b,c,d,a,M9,21,0xeb86d391)
常数ti可以如下选择:
在第i步中,ti是4294967296*abs(sin(i))的整数部分,ti的单位是弧度(2的32次方)。完成这四轮所有的操作后将最后所得的四个分组值进行级联起来就是最后的输出值。以上是MD 5算法的整个操作流程。
图2是优化后数据摘要算法的流程图。本发明改进的算法是以任意长的消息作为输入,同样产生128比特的消息摘要。算法的具体步骤如下:
步骤一:输入信息。
步骤二:通过二进制的转化,将信息串转化为等价的二进制串。
步骤三:(1)为二进制串添加01比特序列,使因此产生的字符串的长度比512的倍数少64比特;(2)通过扫描步骤二(1)中产生的字符串的任意位置(在这种情况下,可以用规则[字符串的长度/3]来定义起始点),再附加64比特。
步骤四:(1)将步骤二产生的二进制串划分成长度为128比特的数据块;(2}使用随机数发生器生成一个128比特的二进制键;(3)在128比特数据块和128比特随机键中进行逐位运算,例如与,或,异或,然后是左移,右移,零填转移等;C4)将步骤四(3)中的输出作为逐步的消息摘要进行保存。
步骤五:(1)在现在的消息摘要和之前的消息摘要之间进行逐位运算;(2)返回步骤四,直至所有的输入信息块都处理完毕。
步骤六:将步骤五产生的输出值转化成相应的特征值,并且将此值作为最后的消息摘要值保存。
作为输入的信息可以是任意类型的(空字符也被接受),它可以包括字母,数字以及特殊字符:
Message=((a-z)+(A-Z)+(0-9)+(!一;))*
对于任何字符,都可以转化为相应的二进制码,汉字也是如此,可以找到相应汉字的二进制码,例如“知行者”的二进制码就是“1000000000000101",所以这个对与汉字同样适用。
由此产生的二进制串可以包含任何数字编号。然后追加一个位序列(例如“01"),以输入二进制字符串,使生成的字符串的长度比512的倍数少64。
数学形式:二进制串长度%512=448
对于在产生的字符串的任意位置再附加64比特来说,它的起始点可以从[字符串的长度//3」开始。现在的字符串的长度是512的整数倍,然后将字符串划分成长度为128比特的数据块。
产生的关键key也是128比特的,这个key可以用任何一个随机数字生成方法来生成,这里举例:
Key=(key*39)%967
Keyf=(key)。
Claims (3)
1.一种基于数据一致性校验算法的优化算法,其特征在于,
具体步骤如下,
步骤一:输入信息;
步骤二:通过二进制的转化,将信息串转化为等价的二进制串;
步骤三:(1)为二进制串添加01比特序列,使产生的字符串的长度比512的倍数少64比特;(2)扫描步骤三(1)中产生的字符串的任意位置,再附加64比特;
步骤四:(1)将步骤二产生的二进制串划分成长度为128比特的数据块;(2}使用随机数发生器生成一个128比特的二进制键;(3)在128比特数据块和128比特随机键中进行逐位运算;(4)将步骤四(3)中的输出作为逐步的消息摘要进行保存;
步骤五:(1)在现在的消息摘要和之前的消息摘要之间进行逐位运算;(2)返回步骤四,直至所有的输入信息块都处理完毕;
步骤六:将步骤五产生的输出值转化成相应的特征值,并且将此值作为最后的消息摘要值保存。
2.根据权利要求1所述的优化算法,其特征在于,
作为输入的信息是任意类型,包括字母,数字以及特殊字符:
Message=((a-z)+(A-Z)+(0-9)+(!一;))*
对于任何字符,都转化为相应的二进制码,产生的二进制串包含任何数字编号;然后追加一个位序列,以输入二进制字符串,使生成的字符串的长度比512的倍数少64;
数学形式:二进制串长度%512=448。
3.根据权利要求2所述的优化算法,其特征在于,
对于在产生的字符串的任意位置再附加64比特,它的起始点从[字符串的长度//3」开始。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710487073.1A CN107204852A (zh) | 2017-06-23 | 2017-06-23 | 一种基于数据一致性校验算法的优化算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710487073.1A CN107204852A (zh) | 2017-06-23 | 2017-06-23 | 一种基于数据一致性校验算法的优化算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107204852A true CN107204852A (zh) | 2017-09-26 |
Family
ID=59907843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710487073.1A Pending CN107204852A (zh) | 2017-06-23 | 2017-06-23 | 一种基于数据一致性校验算法的优化算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107204852A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413441A (zh) * | 2019-06-18 | 2019-11-05 | 平安科技(深圳)有限公司 | 主备存储卷同步数据校验方法、装置、设备及存储介质 |
WO2020140626A1 (zh) * | 2019-01-04 | 2020-07-09 | 平安科技(深圳)有限公司 | 基于盐值的数据持有性验证方法及终端设备 |
CN112365373A (zh) * | 2020-11-10 | 2021-02-12 | 四川大学 | 一种随案电子卷宗保全和互认处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8160242B2 (en) * | 2008-10-07 | 2012-04-17 | Lsi Corporation | Efficient implementation of arithmetical secure hash techniques |
CN102622561A (zh) * | 2011-01-27 | 2012-08-01 | 赛酷特(北京)信息技术有限公司 | 一种软件中调用数据的加密及解密方法 |
CN104270800A (zh) * | 2014-08-14 | 2015-01-07 | 平安科技(深圳)有限公司 | 与终端建立通信连接的方法及系统 |
-
2017
- 2017-06-23 CN CN201710487073.1A patent/CN107204852A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8160242B2 (en) * | 2008-10-07 | 2012-04-17 | Lsi Corporation | Efficient implementation of arithmetical secure hash techniques |
CN102622561A (zh) * | 2011-01-27 | 2012-08-01 | 赛酷特(北京)信息技术有限公司 | 一种软件中调用数据的加密及解密方法 |
CN104270800A (zh) * | 2014-08-14 | 2015-01-07 | 平安科技(深圳)有限公司 | 与终端建立通信连接的方法及系统 |
Non-Patent Citations (1)
Title |
---|
程晓刚: "基于网络数据包的数据一致性检测方法研究", 《哈尔滨工程大学硕士学位论文》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020140626A1 (zh) * | 2019-01-04 | 2020-07-09 | 平安科技(深圳)有限公司 | 基于盐值的数据持有性验证方法及终端设备 |
CN110413441A (zh) * | 2019-06-18 | 2019-11-05 | 平安科技(深圳)有限公司 | 主备存储卷同步数据校验方法、装置、设备及存储介质 |
CN112365373A (zh) * | 2020-11-10 | 2021-02-12 | 四川大学 | 一种随案电子卷宗保全和互认处理方法 |
CN112365373B (zh) * | 2020-11-10 | 2022-07-12 | 四川大学 | 一种随案电子卷宗保全和互认处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106612172A (zh) | 云存储中一种可验证还原数据真实性的数据篡改恢复算法 | |
CN103595525B (zh) | 一种抗去同步化的轻量级rfid双向认证方法 | |
US11775658B2 (en) | Linking encrypted datasets using common identifiers | |
CN106797446A (zh) | 基于存储器的历史搜索 | |
CN107204852A (zh) | 一种基于数据一致性校验算法的优化算法 | |
US7831573B2 (en) | System and method for committing to a set | |
TW201918926A (zh) | 用於自位元混合器建構安全雜湊函數之方法 | |
CN112136134B (zh) | 具有组合的函数的加密asic | |
Persiano et al. | Lower bounds for differentially private RAMs | |
Bhullar et al. | A novel prime numbers based hashing technique for minimizing collisions | |
CN101296079A (zh) | 基于嵌入式混沌映射的单向散列函数的构造方法和系统 | |
Xiang et al. | Achieving verifiable, dynamic and efficient auditing for outsourced database in cloud | |
Xu et al. | Dynamic searchable symmetric encryption with physical deletion and small leakage | |
Li et al. | Automatic preimage attack framework on ascon using a linearize-and-guess approach | |
Khurram et al. | SFour: a protocol for cryptographically secure record linkage at scale | |
WO2018119976A1 (zh) | 应用于数据仓库系统的高效优化数据布局方法 | |
Li et al. | Consistency preserving database watermarking algorithm for decision trees | |
Liu et al. | Constructing keyed hash algorithm using enhanced chaotic map with varying parameter | |
CN1815948B (zh) | 基于复合非线性数字滤波器的混沌散列构造方法 | |
CN102185897B (zh) | 安全分散式虚拟存储池系统 | |
Afrati et al. | Anchor points algorithms for hamming and edit distance | |
Beame et al. | On the value of multiple read/write streams for approximating frequency moments | |
CN108039944B (zh) | 具有前向安全性的揭序加密框架算法 | |
Wang et al. | Quantum rotational cryptanalysis for preimage recovery of round-reduced keccak | |
CN108108913A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170926 |
|
RJ01 | Rejection of invention patent application after publication |