999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

報文摘要算法MD5的分析與改進

2014-12-13 09:04:26汪勛亮趙春霞郭劍輝
數字技術與應用 2014年8期

汪勛亮++趙春霞++郭劍輝

摘要:MD5算法在數據加密方面有著廣泛的應用,但是它無法抵御查字典攻擊和差分等攻擊。為此本文介紹了報文摘要算法MD5和Base64算法,以及在兩種算法的基礎上提出了MD5的改進算法,以應對以上被攻擊的缺陷。

關鍵詞:報文摘要算法 Hash函數 Base64算法 改進算法 字典攻擊

中圖分類號:TP393.08 文獻標識碼:A 文章編號:1007-9416(2014)08-0117-03

1 概述

隨著信息化的高速發展,人們對信息安全的需求接踵而至。我們經常需要一種措施來保護我們的數據,防止被一些懷有不良用心的人所看到或者破壞。人才競爭、市場競爭、金融危機、敵特機構等都給企事業單位的發展帶來巨大風險,內部竊密、黑客攻擊、無意識泄密等竊密手段成為了人與人之間、企業與企業之間、國與國之間的安全隱患。因此,在客觀上就需要一種強有力的安全措施來保護機密數據不被竊取或篡改。解決這個問題的方式就是通過數據加密。進幾年來各大知名網站相繼爆出數據庫密碼被黑,造成上千萬用戶的用戶密碼丟失,由于大部分用戶的很多網站的賬號密碼由此帶來的危害是不可預測的。所以對數據進行加密就顯得非常必要。

1991年,Rivest開發出技術上更為趨近成熟的md5算法。它在MD4的基礎上增加了"安全-帶子"(safety-belts)的概念。雖然MD5比MD4復雜度大一些,但卻更為安全。這個算法很明顯的由四個和MD4設計有少許不同的步驟組成。在MD5算法中,信息-摘要的大小和填充的必要條件與MD4完全相同。Den boer和Bosselaers曾發現MD5算法中的假沖突(pseudo-collisions),但除此之外就沒有其他被發現的加密后結果了。

普遍認為MD5是很安全,因為暴力破解的時間是一般人無法接受的。實際上如果把用戶的密碼MD5處理后再存儲到數據庫,其實是很不安全的。因為用戶的密碼是比較短的,而且很多用戶的密碼都使用生日,手機號碼,身份證號碼,電話號碼等等?;蛘呤褂贸S玫囊恍┘臄底?,或者某個英文單詞。如果把常用的密碼先MD5處理,把數據存儲起來,然后再跟你的MD5結果匹配,這時就有可能得到明文。

2 MD5算法和Base64算法原理

MD5算法過程:

MD5算法可以簡要的敘述為:MD5是以512位分組來進行處理輸入的信息,而且每一個分組同時又被劃分成16個32位的子分組,經過一系列的處理后,它的輸出同時由四個32位分組進行組成,然后將這四個32位分組進行級聯后將生成一個128位的散列值。

(1)填充:如果輸入信息的長度(bit)對512求余后得到結果不等于448,那么就需要填充使得對512求余的結果為448。填充的辦法是填充一個1和n個0。填充結束后,信息的長度就變成了N*512+448(bit)。

(2)記錄信息的長度:用64位大小來存儲填充前信息的長度。把這64位加在第一步所計算結果的后面,這樣信息的長度大小就變成了N*512+448+64=(N+1)*512位。

(3)裝入標準的幻數(四個整數):標準的幻數(物理順序)是(A=(01234567)16,B=(89ABCDEF)16,C=(FEDCBA98)16,D=(76543210)16)。如果在程序中定義應該是(A=0X67452301L,B=0XEFCDAB89L,C=0X98BADCFEL,D=0X10325476L)。

(4)四輪循環運算:循環的次數是分組的個數(N+1):

1)將每一512字節細分成16個小組,每個小組64位(8個字節);

2)先認識四個線性函數(&是與,|是或,~是非,^是異或):

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

3)設Mj表示消息的第j個子分組(從0到15),<<

FF(a,b,c,d,Mj,s,ti)表示a=b+((a+F(b,c,d)+Mj+ti)<<

GG(a,b,c,d,Mj,s,ti)表示a=b+((a+G(b,c,d)+Mj+ti)<<

HH(a,b,c,d,Mj,s,ti)表示a=b+((a+H(b,c,d)+Mj+ti)<<

II(a,b,c,d,Mj,s,ti)表示a=b+((a+I(b,c,d)+Mj+ti)<<

4)四輪運算;

5)每輪循環后,將A,B,C,D分別加上a,b,c,d,然后進入下一循環。

Base64算法過程[5]:

根據Base64編碼的原理,先將輸入信息轉化為二進制流,然后每次取出其中的6位,與標準編碼表對照,找到相應的ASCI字符,最后將取出的字符轉化為輸出即可得編碼流。

具體實現步驟如下:

(1)取編碼表值方法。

將字符轉化為6位二進制數據流。

1)從標準編碼表的第一個字符開始;

2)如果要查找的字符和標準編碼表的當前字符相等,則返回 字符所在的位置,作為返回數據流,退出循環;否則,取標準編碼表中的下一個字符;

3)重復第"重復第2步驟,直到找到這樣的字符或到達標準編碼表的尾部;

4)如果未找到,則返回錯誤;否則返回該字符在標準編碼表位置,輸出該數據作為數據流。

(2)Base64編碼方法。

將取編碼表值方法得到的二進制數據流轉化為 Base64 編碼流。

1)分配要轉化的二進制數據流所需位空間,并將該二進制數據流裝入到位空間內;

2)取出其中的6位,并將6位轉化成整型,得出整型數值n;

3)在標準編碼表中,找到該整型數值n所對應的字符,即Table[n];

4)取出該字符,作為輸出Base64編碼流;

5)重復第(2)步驟,直到所有的二進制數據流被取空;

6)返回編碼的Base64數據流。

(3)Base64解碼方法:

將得到的Base64編碼流轉化為二進制數據流。

1)取出Base64編碼流的一個字符;

2)將這字符通過取編碼表值,轉化成6位二進制數據流;

3)重復第"重復第2步驟,直到所有的Base64編碼流被取空;

4)返回解碼的二進制數據流。

3 改進算法描述

目前對于網站系統或者信息管理系統來說,傳統的MD5算法的應用主要是針對于用戶的口令進行加密處理。一般情況下,在用戶的密碼復雜度不足或者是一般時,會有多種方法對其加密后的密碼進行破解的。從以下幾個方面對MD5算法進行改進:

(1)對已經進行MD5加密后的密文進行打亂重新排列,是的破解者無法重得到的密碼直接破解密碼;得到產生結果為32位的密文時對32拆封4組,每組8位,然后對這4組進行重排或者每組組內進行重排。

(2)對已經進行MD5加密后的密文進行二次加密處理;當得到MD5密文的時候在結合Base64的改進算法[6]對此密文進行二次加密。

(3)對每次MD5加密后得到不同的動態MD5密文;對得到的MD5密文中間不同的位置插入當前加密的系統時間的Base64加密密文,從而迷惑解密者。

綜合以上幾個方面的改進思想,改進的算法步驟如下:

(1)首先對明文進行MD5加密,如明文為:hello;加密結果和通過在線查詢結果如圖1、圖2。

可以看出復雜度不高的密碼經過md5加密是可以通過在線的進行破解,我們把md5加密的結果分割成四部分,分別為:5d41402a、bc4b2a76、b9719d91、1017c592。

(2)生成當前的系統時間,并對系統的時間用改進后的Base64算法進行加密,如圖3所示。

然后去除最后的空白補填在分成兩組:MTAtMDgxM、zowM zo1OQ。

(3)對步驟(1)的分組進行重排得到1017c592bc4b2a765d4 1402ab9719d91,在對重排后的密文進行二次Base64加密得到:MTAxN2M1OTJiYzRiMmE3NjVkNDE0MDJhYjk3MTlkOTE=。

(4)對步驟(3)得到的二次加密密文進行分組:MTAxN2M1OTJ、iYzRiMmE3Nj、VkNDE0MDJhY、jk3MTlkOTE=,然后把步驟(2)生成的Base64密文分組插入其中得到最終的密文:MTAxN2M1O TJMTAtMDgxMiYzRiMmE3NjzowMzo1OQVkNDE0MDJhYjk3MTlkOTE=

(5)在自身系統登錄驗證的時候要經過去除動態干擾的那部分密文才可以進行驗證。

4 結語

由于現在的破解MD5解密的網站是對大量明文進行加密然后把相應的明文-密碼記錄存儲在數據庫中,然后直接通過查詢密文就可以直接獲取明文密碼,所以普通密碼的MD5的破解是完全可以實現的。本文研究了一個典型的單向散列算法MD5,并在此算法和Base64的改進算法的基礎上進行改進、使得加密后的密文更加復雜,不在可能通過簡單的解密網站進行破解,系統自身的登陸驗證也需要通過一定的規則生成密文后在經過一定的處理去除動態干擾的部分密文才能進行驗證。所以本文提示的MD5改進算法大大提高了原算法的安全性。

參考文獻

[1]RIVEST R.The MD5 Message-Digest Algorithm[S].RFC 1321.MIT Laboratory for Computer Science and RSA DATA Security,Inc.April 1992.

[2]FREED N .RFC2045,Multipurpose Internet mail extensions[S/OL].[2011-12-01].http://rfc.net/rfc2045.Html.

[3]周榮華.散列函數密碼分析的研究[D].武漢:華中科技大學,2006:51-54.

[4]吳建軍,柏傳慧.使用MD5保護Web應用安全.計算機安全,2003(10):45-48.

[5]韓宇貞,朱華生.基于Base64編碼的數據加密技術.南昌水專學報,2002(12):39-40.

[6]姚峰.Java平臺中Base64編碼/解碼算法的改進.計算機應用與軟件,2008(12):164-165.

[7]柏銀,李志蜀,朱興東.MD5算法及其在遠程身份認證中的應用[J].四川大學學報:自然科學版,2006,43(2):205-309.endprint

1)分配要轉化的二進制數據流所需位空間,并將該二進制數據流裝入到位空間內;

2)取出其中的6位,并將6位轉化成整型,得出整型數值n;

3)在標準編碼表中,找到該整型數值n所對應的字符,即Table[n];

4)取出該字符,作為輸出Base64編碼流;

5)重復第(2)步驟,直到所有的二進制數據流被取空;

6)返回編碼的Base64數據流。

(3)Base64解碼方法:

將得到的Base64編碼流轉化為二進制數據流。

1)取出Base64編碼流的一個字符;

2)將這字符通過取編碼表值,轉化成6位二進制數據流;

3)重復第"重復第2步驟,直到所有的Base64編碼流被取空;

4)返回解碼的二進制數據流。

3 改進算法描述

目前對于網站系統或者信息管理系統來說,傳統的MD5算法的應用主要是針對于用戶的口令進行加密處理。一般情況下,在用戶的密碼復雜度不足或者是一般時,會有多種方法對其加密后的密碼進行破解的。從以下幾個方面對MD5算法進行改進:

(1)對已經進行MD5加密后的密文進行打亂重新排列,是的破解者無法重得到的密碼直接破解密碼;得到產生結果為32位的密文時對32拆封4組,每組8位,然后對這4組進行重排或者每組組內進行重排。

(2)對已經進行MD5加密后的密文進行二次加密處理;當得到MD5密文的時候在結合Base64的改進算法[6]對此密文進行二次加密。

(3)對每次MD5加密后得到不同的動態MD5密文;對得到的MD5密文中間不同的位置插入當前加密的系統時間的Base64加密密文,從而迷惑解密者。

綜合以上幾個方面的改進思想,改進的算法步驟如下:

(1)首先對明文進行MD5加密,如明文為:hello;加密結果和通過在線查詢結果如圖1、圖2。

可以看出復雜度不高的密碼經過md5加密是可以通過在線的進行破解,我們把md5加密的結果分割成四部分,分別為:5d41402a、bc4b2a76、b9719d91、1017c592。

(2)生成當前的系統時間,并對系統的時間用改進后的Base64算法進行加密,如圖3所示。

然后去除最后的空白補填在分成兩組:MTAtMDgxM、zowM zo1OQ。

(3)對步驟(1)的分組進行重排得到1017c592bc4b2a765d4 1402ab9719d91,在對重排后的密文進行二次Base64加密得到:MTAxN2M1OTJiYzRiMmE3NjVkNDE0MDJhYjk3MTlkOTE=。

(4)對步驟(3)得到的二次加密密文進行分組:MTAxN2M1OTJ、iYzRiMmE3Nj、VkNDE0MDJhY、jk3MTlkOTE=,然后把步驟(2)生成的Base64密文分組插入其中得到最終的密文:MTAxN2M1O TJMTAtMDgxMiYzRiMmE3NjzowMzo1OQVkNDE0MDJhYjk3MTlkOTE=

(5)在自身系統登錄驗證的時候要經過去除動態干擾的那部分密文才可以進行驗證。

4 結語

由于現在的破解MD5解密的網站是對大量明文進行加密然后把相應的明文-密碼記錄存儲在數據庫中,然后直接通過查詢密文就可以直接獲取明文密碼,所以普通密碼的MD5的破解是完全可以實現的。本文研究了一個典型的單向散列算法MD5,并在此算法和Base64的改進算法的基礎上進行改進、使得加密后的密文更加復雜,不在可能通過簡單的解密網站進行破解,系統自身的登陸驗證也需要通過一定的規則生成密文后在經過一定的處理去除動態干擾的部分密文才能進行驗證。所以本文提示的MD5改進算法大大提高了原算法的安全性。

參考文獻

[1]RIVEST R.The MD5 Message-Digest Algorithm[S].RFC 1321.MIT Laboratory for Computer Science and RSA DATA Security,Inc.April 1992.

[2]FREED N .RFC2045,Multipurpose Internet mail extensions[S/OL].[2011-12-01].http://rfc.net/rfc2045.Html.

[3]周榮華.散列函數密碼分析的研究[D].武漢:華中科技大學,2006:51-54.

[4]吳建軍,柏傳慧.使用MD5保護Web應用安全.計算機安全,2003(10):45-48.

[5]韓宇貞,朱華生.基于Base64編碼的數據加密技術.南昌水專學報,2002(12):39-40.

[6]姚峰.Java平臺中Base64編碼/解碼算法的改進.計算機應用與軟件,2008(12):164-165.

[7]柏銀,李志蜀,朱興東.MD5算法及其在遠程身份認證中的應用[J].四川大學學報:自然科學版,2006,43(2):205-309.endprint

1)分配要轉化的二進制數據流所需位空間,并將該二進制數據流裝入到位空間內;

2)取出其中的6位,并將6位轉化成整型,得出整型數值n;

3)在標準編碼表中,找到該整型數值n所對應的字符,即Table[n];

4)取出該字符,作為輸出Base64編碼流;

5)重復第(2)步驟,直到所有的二進制數據流被取空;

6)返回編碼的Base64數據流。

(3)Base64解碼方法:

將得到的Base64編碼流轉化為二進制數據流。

1)取出Base64編碼流的一個字符;

2)將這字符通過取編碼表值,轉化成6位二進制數據流;

3)重復第"重復第2步驟,直到所有的Base64編碼流被取空;

4)返回解碼的二進制數據流。

3 改進算法描述

目前對于網站系統或者信息管理系統來說,傳統的MD5算法的應用主要是針對于用戶的口令進行加密處理。一般情況下,在用戶的密碼復雜度不足或者是一般時,會有多種方法對其加密后的密碼進行破解的。從以下幾個方面對MD5算法進行改進:

(1)對已經進行MD5加密后的密文進行打亂重新排列,是的破解者無法重得到的密碼直接破解密碼;得到產生結果為32位的密文時對32拆封4組,每組8位,然后對這4組進行重排或者每組組內進行重排。

(2)對已經進行MD5加密后的密文進行二次加密處理;當得到MD5密文的時候在結合Base64的改進算法[6]對此密文進行二次加密。

(3)對每次MD5加密后得到不同的動態MD5密文;對得到的MD5密文中間不同的位置插入當前加密的系統時間的Base64加密密文,從而迷惑解密者。

綜合以上幾個方面的改進思想,改進的算法步驟如下:

(1)首先對明文進行MD5加密,如明文為:hello;加密結果和通過在線查詢結果如圖1、圖2。

可以看出復雜度不高的密碼經過md5加密是可以通過在線的進行破解,我們把md5加密的結果分割成四部分,分別為:5d41402a、bc4b2a76、b9719d91、1017c592。

(2)生成當前的系統時間,并對系統的時間用改進后的Base64算法進行加密,如圖3所示。

然后去除最后的空白補填在分成兩組:MTAtMDgxM、zowM zo1OQ。

(3)對步驟(1)的分組進行重排得到1017c592bc4b2a765d4 1402ab9719d91,在對重排后的密文進行二次Base64加密得到:MTAxN2M1OTJiYzRiMmE3NjVkNDE0MDJhYjk3MTlkOTE=。

(4)對步驟(3)得到的二次加密密文進行分組:MTAxN2M1OTJ、iYzRiMmE3Nj、VkNDE0MDJhY、jk3MTlkOTE=,然后把步驟(2)生成的Base64密文分組插入其中得到最終的密文:MTAxN2M1O TJMTAtMDgxMiYzRiMmE3NjzowMzo1OQVkNDE0MDJhYjk3MTlkOTE=

(5)在自身系統登錄驗證的時候要經過去除動態干擾的那部分密文才可以進行驗證。

4 結語

由于現在的破解MD5解密的網站是對大量明文進行加密然后把相應的明文-密碼記錄存儲在數據庫中,然后直接通過查詢密文就可以直接獲取明文密碼,所以普通密碼的MD5的破解是完全可以實現的。本文研究了一個典型的單向散列算法MD5,并在此算法和Base64的改進算法的基礎上進行改進、使得加密后的密文更加復雜,不在可能通過簡單的解密網站進行破解,系統自身的登陸驗證也需要通過一定的規則生成密文后在經過一定的處理去除動態干擾的部分密文才能進行驗證。所以本文提示的MD5改進算法大大提高了原算法的安全性。

參考文獻

[1]RIVEST R.The MD5 Message-Digest Algorithm[S].RFC 1321.MIT Laboratory for Computer Science and RSA DATA Security,Inc.April 1992.

[2]FREED N .RFC2045,Multipurpose Internet mail extensions[S/OL].[2011-12-01].http://rfc.net/rfc2045.Html.

[3]周榮華.散列函數密碼分析的研究[D].武漢:華中科技大學,2006:51-54.

[4]吳建軍,柏傳慧.使用MD5保護Web應用安全.計算機安全,2003(10):45-48.

[5]韓宇貞,朱華生.基于Base64編碼的數據加密技術.南昌水專學報,2002(12):39-40.

[6]姚峰.Java平臺中Base64編碼/解碼算法的改進.計算機應用與軟件,2008(12):164-165.

[7]柏銀,李志蜀,朱興東.MD5算法及其在遠程身份認證中的應用[J].四川大學學報:自然科學版,2006,43(2):205-309.endprint

主站蜘蛛池模板: 波多野结衣一区二区三区88| 99热免费在线| 亚洲欧美自拍中文| 亚洲中文在线看视频一区| 91色爱欧美精品www| 欧美精品不卡| 日韩av无码DVD| 五月天综合网亚洲综合天堂网| 毛片网站在线看| 国产精品无码翘臀在线看纯欲| av大片在线无码免费| 久久中文无码精品| 亚洲国产在一区二区三区| 午夜少妇精品视频小电影| 97超爽成人免费视频在线播放| 中文无码精品a∨在线观看| 国产女人爽到高潮的免费视频| 国产女人18水真多毛片18精品 | 91久久精品国产| 久久特级毛片| 久久综合色视频| 国产理论最新国产精品视频| 国产在线97| 亚洲一区二区精品无码久久久| a级毛片在线免费| 99青青青精品视频在线| 国产精品永久在线| 69av在线| 婷婷在线网站| 无码av免费不卡在线观看| 18禁黄无遮挡免费动漫网站 | 91精品人妻一区二区| 欧美成人午夜视频免看| 亚洲精品无码高潮喷水A| 国产91丝袜在线播放动漫| 亚洲一区二区三区国产精品| 国产免费一级精品视频| 色欲色欲久久综合网| 国产毛片高清一级国语| 国产十八禁在线观看免费| 国产99精品久久| 国产精品lululu在线观看| 亚洲天堂在线免费| 久草国产在线观看| 亚洲中文字幕在线一区播放| 亚洲视频无码| 91丨九色丨首页在线播放| 孕妇高潮太爽了在线观看免费| 少妇高潮惨叫久久久久久| 色偷偷av男人的天堂不卡| 欧美一区福利| 欧美一级大片在线观看| 一区二区理伦视频| 国产精品19p| 久久国产热| 福利国产微拍广场一区视频在线 | 九色最新网址| 天天色综合4| 欧美19综合中文字幕| 毛片国产精品完整版| 国产精品浪潮Av| 成年人免费国产视频| 久久99热66这里只有精品一| 免费jjzz在在线播放国产| 青青久久91| 国内精品视频| 夜夜高潮夜夜爽国产伦精品| 好紧太爽了视频免费无码| 国产肉感大码AV无码| 成人国产一区二区三区| 亚洲第一成年网| 国产精品香蕉在线| 国产精品尤物在线| 亚洲乱伦视频| 情侣午夜国产在线一区无码| 久久香蕉欧美精品| 国产成熟女人性满足视频| 国产精品一区在线麻豆| 亚洲欧洲综合| 欧美日韩另类在线| 亚洲成a人片| 精品三级网站|