MD5 報文摘要算法 rfc中文譯文_第1頁
MD5 報文摘要算法 rfc中文譯文_第2頁
MD5 報文摘要算法 rfc中文譯文_第3頁
MD5 報文摘要算法 rfc中文譯文_第4頁
MD5 報文摘要算法 rfc中文譯文_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、MD5 報文摘要算法 rfc中文譯文組織:中國互動出版網(wǎng)()RFC文檔中文翻譯計劃()E-mail:ouyangchina-譯者:()譯文發(fā)布時間:2001-11-7版權(quán):本中文翻譯文檔版權(quán)歸中國互動出版網(wǎng)所有??梢杂糜诜巧虡I(yè)用途自由轉(zhuǎn)載,但必須保留本文檔的翻譯及版權(quán)信息。Network Working Group R.Rivest Request for Comments:1321 MIT Laboratory for Computer Science and RSA Data Security,Inc.April 1992 MD5報文摘要算法(RFC1321-The MD5 Message

2、-Digest Algorithm)本文地位本文并非指定一個Internet標(biāo)準(zhǔn),而是向互聯(lián)網(wǎng)提供信息,本文可以任意傳播,不受限制。致謝Don Coppersmith,Burt Kaliski,Ralph Merkle,David Chaum,和Noam Nisan向本文提供極大的幫助,在此本人表示忠心的感謝。目錄1執(zhí)行簡介1 2術(shù)語和符號1 3MD5算法描述2 4摘要4 5MD4和MD5的區(qū)別4 6參考文獻(xiàn)4 7附錄A-參考應(yīng)用程序4 8安全事項(xiàng)18 9作者地址18 1執(zhí)行簡介本文描述了MD5報文摘要算法,此算法將對輸入的任意長度的信息進(jìn)行計算,產(chǎn)生一個128位長度的"指紋&quo

3、t;或"報文摘要",假定兩個不同的文件產(chǎn)生相同的報文摘要或由給定的報文摘要產(chǎn)生原始信息在計算上是行不通的。MD5算法適合用在數(shù)據(jù)簽名應(yīng)用中,在此應(yīng)用中,一個大的文件必須在類似RSA算法的公用密鑰系統(tǒng)中用私人密鑰加密前被"壓縮"在一種安全模式下。MD5算法能在32位機(jī)器上能以很快的速度運(yùn)行。另外,MD5算法不需要任何大型的置換列表。此算法編碼很簡潔。MD5算法是MD4報文摘要算法的擴(kuò)展。MD5算法稍慢于MD4算法,但是在設(shè)計上比MD4算法更加"保守"。設(shè)計MD5是因?yàn)镸D4算法被采用的速度太快,以至于還無法證明它的正確性,因?yàn)镸D4算法

4、速度非??欤幵谠馐艹晒γ孛芄舻?quot;邊緣"。MD5后退了一步,它舍棄了一些速度以求更好的安全性。它集中了不同的評論家提出的建議,并采取了一些附加的優(yōu)化措施。它被放在公共的地方以求公眾的評論意見,它可能當(dāng)作一個標(biāo)準(zhǔn)被采納。作為基于OSI的應(yīng)用,MD5的對象標(biāo)識符是:md5 OBJECT IDENTIFIER:=iso(1)member-body(2)US(840)rsadsi(113549)digestAlgorithm(2)5在X.509類型AlgorithmIdentifier3中,MD5算法參數(shù)應(yīng)該包括NULL類型。2術(shù)語和符號本文中一個"字"是3

5、2位,一個"字節(jié)"是8位。一系列位串可看成是一系列字節(jié)的普通形式,其中的連續(xù)的8位看成一個字節(jié),高位在前,同理一系列字節(jié)串可看成是一系列32位的字,其中每個連續(xù)的4個字節(jié)當(dāng)作一個字,低位在前。我們定義x_i代表"x減去I".如果下劃線左邊的是一個表達(dá)式,則用括號括住,如:x_i+1。同樣我們用代表求冪,這樣xi則代表x的i次冪。符號"+"代表字的加,X s代表32位的值X循環(huán)左移s位,not(X)代表X的按位補(bǔ)運(yùn)算,X vY表示X和Y的按位或運(yùn)算,XxorY代表X和Y的按位異或運(yùn)算,XY代表X和Y的按位與運(yùn)算。3 MD5算法描述我們假

6、設(shè)有一個b位長度的輸入信號,希望產(chǎn)生它的報文摘要,此處b是一個非負(fù)整數(shù),b也可能是0,不一定必須是8的整數(shù)倍,它可能是任意大的長度。我們設(shè)想信號的比特流如下所示:m_0 m_1.m_b-1下面的5步計算信息的報文摘要。(1)補(bǔ)位MD5算法是對輸入的數(shù)據(jù)進(jìn)行補(bǔ)位,使得如果數(shù)據(jù)位長度LEN對512求余的結(jié)果是448。即數(shù)據(jù)擴(kuò)展至K*512+448位。即K*64+56個字節(jié),K為整數(shù)。補(bǔ)位操作始終要執(zhí)行,即使數(shù)據(jù)長度LEN對512求余的結(jié)果已是448。具體補(bǔ)位操作:補(bǔ)一個1,然后補(bǔ)0至滿足上述要求。總共最少要補(bǔ)一位,最多補(bǔ)512位。(2)補(bǔ)數(shù)據(jù)長度用一個64位的數(shù)字表示數(shù)據(jù)的原始長度b,把b用兩個3

7、2位數(shù)表示。那么只取B的低64位。當(dāng)遇到b大于264這種極少遇到的情況時,這時,數(shù)據(jù)就被填補(bǔ)成長度為512位的倍數(shù)。也就是說,此時的數(shù)據(jù)長度是16個字(32位)的整數(shù)倍數(shù)。用M0.N-1表示此時的數(shù)據(jù),其中的N是16的倍數(shù)。(3)初始化MD緩沖器用一個四個字的緩沖器(A,B,C,D)來計算報文摘要,A,B,C,D分別是32位的寄存器,初始化使用的是十六進(jìn)制表示的數(shù)字A=0X 01234567 B=0X89abcdef C=0Xfedcba98 D=0X 76543210(4)處理位操作函數(shù)首先定義4個輔助函數(shù),每個函數(shù)的輸入是三個32位的字,輸出是一個32位的字。X,Y,Z為32位整數(shù)。F(X

8、,Y,Z)=XY vnot(X)Z G(X,Y,Z)=XZ vY not(Z)H(X,Y,Z)=X xor Yxor ZI(X,Y,Z)=Y xor(X vnot(Z)這一步中使用一個64元素的常數(shù)組T1.64,它由sine函數(shù)構(gòu)成,Ti表示數(shù)組中的第i個元素,它的值等于經(jīng)過4294967296次abs(sin(i)后的值的整數(shù)部分(其中i是弧度)。Ti為32位整數(shù)用16進(jìn)制表示,數(shù)組元素在附錄中給出。具體過程如下:/*處理數(shù)據(jù)原文*/For i=0 to N/16-1 do/*每一次,把數(shù)據(jù)原文存放在16個元素的數(shù)組X中.*/For j=0 to 15 do Set Xjto Mi*16+j

9、.end/結(jié)束對J的循環(huán)/*Save Aas AA,B as BB,C as CC,and Das DD.*/AA=A BB=B CC=C DD=D/*第1輪*/*以abcd ks i表示如下操作a=b+(a+F(b,c,d)+Xk+Ti)s).*/*Do the following 16 operations.*/ABCD 07 1DABC 112 2CDAB 217 3BCDA 322 4ABCD 47 5DABC 512 6CDAB 617 7BCDA 722 8ABCD 87 9DABC 912 10CDAB 10 17 11BCDA 11 22 12ABCD 12 713DABC 1

10、3 12 14CDAB 14 17 15BCDA 15 22 16/*第2輪*/*以abcd ks i表示如下操作a=b+(a+G(b,c,d)+Xk+Ti)s).*/*Do the following 16 operations.*/ABCD 15 17DABC 69 18CDAB 11 14 19BCDA 020 20ABCD 55 21DABC 10 922CDAB 15 14 23BCDA 420 24ABCD 95 25DABC 14 926CDAB 314 27BCDA 820 28ABCD 13 529DABC 29 30CDAB 714 31BCDA 12 20 32/*第3輪

11、*/*以abcd ks i表示如下操作a=b+(a+H(b,c,d)+Xk+Ti)s).*/*Do the following 16 operat ions.*/ABCD 54 33DABC 811 34CDAB 11 16 35BCDA 14 23 36ABCD 14 37DABC 411 38CDAB 716 39BCDA 10 23 40ABCD 13 441DABC 011 42CDAB 316 43BCDA 623 44ABCD 94 45DABC 12 11 46CDAB 15 16 47BCDA 223 48/*第4輪*/*以abcd ks i表示如下操作a=b+(a+I(b,c

12、,d)+Xk+Ti)s).*/*Do the following 16 operations.*/ABCD 06 49DABC 710 50CDAB 14 15 51BCDA 521 52ABCD 12 653DABC 310 54CDAB 10 15 55BCDA 121 56ABCD 86 57DABC 15 10 58CDAB 615 59BCDA 13 21 60ABCD 46 61DABC 11 10 62CDAB 215 63BCDA 921 64/*然后進(jìn)行如下操作*/A=A+AA B=B+BB C=C+CC D=D+DD end/*結(jié)束對I的循環(huán)*/(5)輸出結(jié)果報文摘要的產(chǎn)生

13、后的形式為:A,B,C,D。也就是低位字節(jié)A開始,高位字節(jié)D結(jié)束?,F(xiàn)在完成了對MD5的描述,在附錄中給出了C形式的程序。4摘要MD5算法實(shí)現(xiàn)很容易,它提供了任意長度的信息的"指紋"(或稱為報文摘要)。據(jù)推測要實(shí)現(xiàn)兩個不同的報文產(chǎn)生相同的摘要需要264次的操作,要恢復(fù)給定摘要的報文則需要2128次操作。為尋找缺陷,MD5算法已經(jīng)過非常細(xì)致的檢查。最后的結(jié)論是還需要相關(guān)的更好的算法和更進(jìn)一步的安全分析。5 MD4和MD5的區(qū)別以下是MD5和MD4的不同點(diǎn):1.加上了第四輪循環(huán)。2.每一步增加了一個唯一的常數(shù)值。第二輪中的函數(shù)g從(XY vXZ vYZ)變成了(XZ vY not(Z),以減少g函數(shù)的均衡性。6參考文獻(xiàn)1Rivest,R.,"The MD4 Message Digest Algorithm",RFC 1320,MIT and RSA Data Security,Inc.,April 1992.2Rivest,R.,"The MD4 message digest algorithm&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論