基于MD5的迭代冗余加密算法
基于MD5的迭代冗余加密算法是對MD5加密算法進行了擴展,利用了MD5加密算法的強大安全性,實現(xiàn)了文件加密、解密和數(shù)據(jù)完整性保護的功能。
一、基于MD5的迭代冗余加密算法加密原理
1、初始化
首先在口令后面附加當前的時間戳,產(chǎn)生一個字符串S。計算S的MD5摘要,取其摘要的前6位得到cur0。接著進行256次循環(huán)運算,第i次循環(huán)在S后面附加值為i-1字符,計算處理后的S的MD5摘要,存入表map中。這樣,表map就是一個MD5摘要的集合,其中有256個摘要。
2、迭代加密
順序讀取原文件的內容,每次讀1個字符,這里用Ci表示第i次讀取的字符值,很明顯0≤Ci<256。令k為curi-1的第6個字符的值,取表map中第Ci個MD5摘要,對該摘要循環(huán)左移kmod32位,取其結果的前6位為curi,最后對curi-1和curi進行逐位相加,結果為6位密文Ei,將Ei寫入加密文件末尾。
二、基于MD5的迭代冗余加密算法解密原理
1、初始化
與加密算法類似,首先在口令后面附加當前的時間戳,產(chǎn)生一個字符串S。計算S的MD5摘要,取其摘要的前6位得到E0。接著進行256次循環(huán)運算,第i次循環(huán)在S后面附加值為i-1字符,計算處理后的S的MD5摘要,存入表map中。
2、迭代解密
順序讀取加密文件的內容,每次讀6個字符,這里用Ei表示第i次讀取的字符串。對Ei-1和Ei進行逐位相減,結果為6位密文curi。依次取表map中的256個MD5摘要,令第j次取的摘要為DMj。令k為curi-1的第6個字符的值,對摘要DMj循環(huán)左移kmod32位,取其結果的前6位為cmpj。對比curi和cmpj,如果兩者相同則將值為j的字符寫入解密文件末尾,否則取下一個MD5摘要繼續(xù)對比。解密操作完畢后,對解密文件計算MD5摘要,并與隨加密文件一起傳輸?shù)脑募﨧D5摘要進行對比。如果兩個摘要相同則解密成功;否則解密失敗,解密的文件是不完整的。
三、基于MD5的迭代冗余加密算法對文件加密的特點
①可以對大文件進行加密解密,加密后產(chǎn)生信息冗余,文件容量變大;
②沒有解密算法,對文件的解密只能依靠指定的惟一密碼表;
③加密文件內容的任何微小變化都對解密結果產(chǎn)生很大影響;
④加密結果掩蓋了MD5算法的特征,提高安全性;
⑤加密文件實際上是一組MD5摘要的集合;
⑥加密文件內容環(huán)環(huán)相扣,前后密文聯(lián)系緊密;
⑦充分利用了MD5算法的單向性、離散性和強大的安全性;
⑧速度較快,在實際應用中可行。
基于MD5的迭代冗余加密算法對文件進行冗余加密,隱藏了原文件的任何細節(jié),掩蓋了MD5加密算法的特征,并且其破解難度是很大的,在實際應用中是可行的。
小知識之MD5加密算法
MD5就是采用單向加密的加密算法,對于MD5而言,有兩個特性是很重要的,第一是任意兩段明文數(shù)據(jù),加密以后的密文不能是相同的;第二是任意一段明文數(shù)據(jù),經(jīng)過加密以后,其結果必須永遠是不變的。前者的意思是不可能有任意兩段明文加密以后得到相同的密文,后者的意思是如果我們加密特定的數(shù)據(jù),得到的密文一定是相同的。










