亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于數(shù)據(jù)一致性校驗(yàn)算法的優(yōu)化算法的制作方法

文檔序號(hào):11279048閱讀:795來源:國知局
一種基于數(shù)據(jù)一致性校驗(yàn)算法的優(yōu)化算法的制造方法與工藝

本發(fā)明涉及數(shù)據(jù)一致性檢測技術(shù),尤其是一種基于數(shù)據(jù)一致性校驗(yàn)算法的優(yōu)化算法。



背景技術(shù):

隨著計(jì)算機(jī)的發(fā)展,數(shù)據(jù)作為企業(yè)的重要資源越來越受到重視,為了防止各種災(zāi)難讀技術(shù)局的損壞或者摧毀,建立一個(gè)可以保證數(shù)據(jù)安全和服務(wù)連續(xù)性的容災(zāi)系統(tǒng)具有十分重要的意義。在容災(zāi)系統(tǒng)中,當(dāng)災(zāi)難法神后,使用備份數(shù)據(jù)中心提供的數(shù)據(jù)可以快速的恢復(fù)本地?cái)?shù)據(jù)中心的數(shù)據(jù),保持業(yè)務(wù)的連續(xù)性,將損失降到最低。但是如果備份數(shù)據(jù)和被損壞前數(shù)據(jù)不一致,這就說明備份市局不能用來進(jìn)行對(duì)元數(shù)據(jù)的恢復(fù),這樣就會(huì)造成無法挽回的損失,所以為了確保備份數(shù)據(jù)在數(shù)據(jù)恢復(fù)時(shí)具有高可用性,就需要定期的對(duì)元數(shù)據(jù)和備份數(shù)據(jù)進(jìn)行數(shù)據(jù)一致性檢測。

數(shù)據(jù)一致性檢測技術(shù)是檢測源數(shù)據(jù)與備份數(shù)據(jù)是否一致來確保備份數(shù)據(jù)高可用性的技術(shù)。現(xiàn)有的數(shù)據(jù)一致性檢測方法主要通過快照技術(shù)、數(shù)據(jù)分塊技術(shù)和計(jì)算摘要值等技術(shù)來對(duì)源數(shù)據(jù)與備份數(shù)據(jù)同時(shí)進(jìn)行操作,得到對(duì)應(yīng)數(shù)據(jù)塊的摘要值,通過對(duì)摘要值的比對(duì)完成數(shù)據(jù)一致檢測,如果摘要值相同,源數(shù)據(jù)與備份數(shù)據(jù)就一致;不同則不一致。這其中對(duì)摘要值的計(jì)算是數(shù)據(jù)一致性校驗(yàn)中的重要環(huán)節(jié)。

在摘要值計(jì)算中,對(duì)摘要值算法的效率有一定的要求,因?yàn)閿?shù)據(jù)一致性檢測不能占用非常多的時(shí)間,這樣會(huì)影響系統(tǒng)的正常工作。對(duì)于摘要值算法,摘要值算法到的散列值越長其所能保證的數(shù)據(jù)一致性越高,但是長的散列值就要花費(fèi)大量的計(jì)算資源和時(shí)間,md5算法產(chǎn)生128位散列值,雖然不是最長的,但是作為摘要值算法很好的中和了散列值長度和計(jì)算性能的矛盾。



技術(shù)實(shí)現(xiàn)要素:

針對(duì)以上問題,本發(fā)明提出了一種基于數(shù)據(jù)一致性校驗(yàn)算法的優(yōu)化算法。針對(duì)原有的md5摘要算法進(jìn)行研究,對(duì)原有的md5值校驗(yàn)算法進(jìn)行優(yōu)化,通過流程和策略的優(yōu)化從而提高數(shù)據(jù)校驗(yàn)算法的準(zhǔn)確性和計(jì)算效率。

本發(fā)明改進(jìn)的算法是以任意長的消息作為輸入,同樣產(chǎn)生128比特的消息摘要。

本發(fā)明的技術(shù)方案是:

一種基于數(shù)據(jù)一致性校驗(yàn)算法的優(yōu)化算法,

具體步驟如下:

步驟一:輸入信息;

步驟二:通過二進(jìn)制的轉(zhuǎn)化,將信息串轉(zhuǎn)化為等價(jià)的二進(jìn)制串;

步驟三:(1)為二進(jìn)制串添加01比特序列,使因此產(chǎn)生的字符串的長度比512的倍數(shù)少64比特;(2)掃描步驟三(1)中產(chǎn)生的字符串的任意位置,再附加64比特;

步驟四:(1)將步驟二產(chǎn)生的二進(jìn)制串劃分成長度為128比特的數(shù)據(jù)塊;(2}使用隨機(jī)數(shù)發(fā)生器生成一個(gè)128比特的二進(jìn)制鍵;(3)在128比特?cái)?shù)據(jù)塊和128比特隨機(jī)鍵中進(jìn)行逐位運(yùn)算;(4)將步驟四(3)中的輸出作為逐步的消息摘要進(jìn)行保存;

步驟五:(1)在現(xiàn)在的消息摘要和之前的消息摘要之間進(jìn)行逐位運(yùn)算;(2)返回步驟四,直至所有的輸入信息塊都處理完畢;

步驟六:將步驟五產(chǎn)生的輸出值轉(zhuǎn)化成相應(yīng)的特征值,并且將此值作為最后的消息摘要值保存。

作為輸入的信息是任意類型,包括字母,數(shù)字以及特殊字符:

message=((a-z)+(a-z)+(0-9)+(!一;))*

對(duì)于任何字符,都轉(zhuǎn)化為相應(yīng)的二進(jìn)制碼,產(chǎn)生的二進(jìn)制串包含任何數(shù)字編號(hào);然后追加一個(gè)位序列,以輸入二進(jìn)制字符串,使生成的字符串的長度比512的倍數(shù)少64;

數(shù)學(xué)形式:二進(jìn)制串長度%512=448。

對(duì)在產(chǎn)生的字符串的任意位置再附加64比特來說,它的起始點(diǎn)從[字符串的長度//3」開始。

在原有數(shù)據(jù)一致性校驗(yàn)算法md5的基礎(chǔ)上通過流程和策略的優(yōu)化從而提高數(shù)據(jù)校驗(yàn)算法的準(zhǔn)確性和計(jì)算效率。

附圖說明

圖1是md5算法流程圖圖;

圖2是優(yōu)化后數(shù)據(jù)摘要算法的流程圖。

具體實(shí)施方式

下面對(duì)本發(fā)明的內(nèi)容進(jìn)行更加詳細(xì)的闡述:

圖1是標(biāo)準(zhǔn)md5值在數(shù)據(jù)一致性校驗(yàn)中進(jìn)行數(shù)據(jù)摘要的過程。md5算法的具體實(shí)現(xiàn)過程是經(jīng)過初始化后,md5將輸入文本劃分為16個(gè)32位的分組,通過四輪計(jì)算,會(huì)得到四個(gè)32位分組的值,而md5最后所得的128位摘要值就是將這四個(gè)值級(jí)聯(lián)得出的。

圖1是標(biāo)準(zhǔn)md5值在數(shù)據(jù)一致性校驗(yàn)中進(jìn)行數(shù)據(jù)摘要的過程。md5算法的具體實(shí)現(xiàn)過程是經(jīng)過初始化后,md5將輸入文本劃分為16個(gè)32位的分組,通過四輪計(jì)算,會(huì)得到四個(gè)32位分組的值,而md5最后所得的128位摘要值就是將這四個(gè)值級(jí)聯(lián)得出的。

首先要對(duì)輸入信息進(jìn)行填充,填充的方法是在信息后面附上一個(gè)1,然后1的后面按照要求附上若干多個(gè)0。將填充完的信息再加上64位信息再填充之前的長度后,剛好使整個(gè)信息的長度是512的整數(shù)倍。進(jìn)行這樣操作的目的是保證不同信息經(jīng)過填充后不相同,方便以后的操作。

下面是四個(gè)md5算法中的鏈接變量:

a=0x01234567

b=0x89abcdef

c=0xfedcba98

d=0x76543210

計(jì)算信息中512位分組的數(shù)量,并將此數(shù)值作為循環(huán)的次數(shù)開始md5算法的主循環(huán)。為了四個(gè)鏈接變量a,b,c,d不發(fā)生改變,使用四個(gè)中間變量表示它們。md5算法的主循環(huán)一共有四輪,每一輪都要通過固有的函數(shù)進(jìn)行16次計(jì)算。這個(gè)過程是從四個(gè)中間變量中選出二個(gè),將這二個(gè)作一次非線性函數(shù)運(yùn)算,將剩余的變量加到由非線性函數(shù)運(yùn)算所有的結(jié)果中,然后將加上文本的一個(gè)子分組和一個(gè)常數(shù)的結(jié)果右移不定位,從四個(gè)中間變量中選出來一個(gè)然后加上那個(gè)結(jié)果。再從四個(gè)中間變量中選出一個(gè),然后用剛才得到的那個(gè)結(jié)果進(jìn)行替換

下面是每輪要用到的非線性函數(shù),一共是四個(gè):

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))

(&:與,|:或,~:非,^:異或)

函數(shù)f的操作方式是逐位的操作:如果x,那么y,否則z。函數(shù)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就是替換四個(gè)鏈接變量的中間變量,<<<s表示循環(huán)左移s位,變量mj表示的含義旱信良的第j個(gè)子分組。

這四輪(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,0xbd3af235)

ii(c,d,a,b,m2,15,0x2ad7d2bb)

ii(b,c,d,a,m9,21,0xeb86d391)

常數(shù)ti可以如下選擇:

在第i步中,ti是4294967296*abs(sin(i))的整數(shù)部分,ti的單位是弧度(2的32次方)。完成這四輪所有的操作后將最后所得的四個(gè)分組值進(jìn)行級(jí)聯(lián)起來就是最后的輸出值。以上是md5算法的整個(gè)操作流程。

圖2是優(yōu)化后數(shù)據(jù)摘要算法的流程圖。本發(fā)明改進(jìn)的算法是以任意長的消息作為輸入,同樣產(chǎn)生128比特的消息摘要。算法的具體步驟如下:

步驟一:輸入信息。

步驟二:通過二進(jìn)制的轉(zhuǎn)化,將信息串轉(zhuǎn)化為等價(jià)的二進(jìn)制串。

步驟三:(1)為二進(jìn)制串添加01比特序列,使因此產(chǎn)生的字符串的長度比512的倍數(shù)少64比特;(2)通過掃描步驟二(1)中產(chǎn)生的字符串的任意位置(在這種情況下,可以用規(guī)則[字符串的長度/3]來定義起始點(diǎn)),再附加64比特。

步驟四:(1)將步驟二產(chǎn)生的二進(jìn)制串劃分成長度為128比特的數(shù)據(jù)塊;(2}使用隨機(jī)數(shù)發(fā)生器生成一個(gè)128比特的二進(jìn)制鍵;(3)在128比特?cái)?shù)據(jù)塊和128比特隨機(jī)鍵中進(jìn)行逐位運(yùn)算,例如與,或,異或,然后是左移,右移,零填轉(zhuǎn)移等;c4)將步驟四(3)中的輸出作為逐步的消息摘要進(jìn)行保存。

步驟五:(1)在現(xiàn)在的消息摘要和之前的消息摘要之間進(jìn)行逐位運(yùn)算;(2)返回步驟四,直至所有的輸入信息塊都處理完畢。

步驟六:將步驟五產(chǎn)生的輸出值轉(zhuǎn)化成相應(yīng)的特征值,并且將此值作為最后的消息摘要值保存。

作為輸入的信息可以是任意類型的(空字符也被接受),它可以包括字母,數(shù)字以及特殊字符:

message=((a-z)+(a-z)+(0-9)+(!一;))*

對(duì)于任何字符,都可以轉(zhuǎn)化為相應(yīng)的二進(jìn)制碼,漢字也是如此,可以找到相應(yīng)漢字的二進(jìn)制碼,例如“知行者”的二進(jìn)制碼就是“1000000000000101",所以這個(gè)對(duì)與漢字同樣適用。

由此產(chǎn)生的二進(jìn)制串可以包含任何數(shù)字編號(hào)。然后追加一個(gè)位序列(例如“01"),以輸入二進(jìn)制字符串,使生成的字符串的長度比512的倍數(shù)少64。

數(shù)學(xué)形式:二進(jìn)制串長度%512=448

對(duì)于在產(chǎn)生的字符串的任意位置再附加64比特來說,它的起始點(diǎn)可以從[字符串的長度//3」開始?,F(xiàn)在的字符串的長度是512的整數(shù)倍,然后將字符串劃分成長度為128比特的數(shù)據(jù)塊。

產(chǎn)生的關(guān)鍵key也是128比特的,這個(gè)key可以用任何一個(gè)隨機(jī)數(shù)字生成方法來生成,這里舉例:

key=(key*39)%967

keyf=(key)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1