淺析幾種典型的哈希算法

哈希的英文名Hash,意思為散列,它將任意長度的二進(jìn)制值對應(yīng)為固定長度的二進(jìn)制值,這個(gè)值就是我們所要說的哈希值。哈希值的輸出空間一般要比輸入空間小很多,不一樣的輸入也會哈希成相同的輸出。在哈希一段明文中,如果改變明文中的內(nèi)容,會導(dǎo)致散列產(chǎn)生不一樣的結(jié)果,如果要想找到哈希為同一個(gè)數(shù)值的不同的輸入內(nèi)容,是無法通過各種算法來實(shí)現(xiàn)的,因此我們可以利用散列值的這一特點(diǎn)來檢驗(yàn)數(shù)據(jù)的完整性。較為先進(jìn)合理的哈希算法,可以通過對散列輸入數(shù)據(jù)進(jìn)行修改時(shí),可以更改結(jié)果散列值中的所有位,所以散列對于數(shù)據(jù)的檢測有很好的作用。

哈希算法的原理是根據(jù)數(shù)據(jù)幀的散列值服務(wù)器數(shù)計(jì)算出余數(shù),通過這種方法來確定目前數(shù)據(jù)幀中的內(nèi)容將會發(fā)向哪一個(gè)散列值服務(wù)器。哈希算法的方式很多,典型的哈希算法包括:MD4、MD5 和安全哈希算法(SHA-1)等

MD4算法

MD4算法是哈希算法中較為成熟的算法之一,它一般使用在32位的計(jì)算機(jī)處理器模塊內(nèi),通過軟件系統(tǒng)來實(shí)現(xiàn)其算法功能。然而,由于MD4算法本身存在的安全性漏洞,還是被更為先進(jìn)安全的算法所淘汰。但MD4算法為之后的MD5算法、SHA-1算法、ripemd算法等提供了很好的理論基礎(chǔ)。

MD5算法

MD5算法是MD4算法的升級版,它在MD4算法的基礎(chǔ)上增加了safety-belts功能,使整個(gè)算法變得更加可靠。MD5算法在MD4算法的基礎(chǔ)上加入了第四輪的計(jì)算模式,每一個(gè)步驟都是一一對應(yīng)的固定值,改進(jìn)了MD4算法中在第二輪、第三輪計(jì)算中的漏洞,完善了訪問輸入分組的次序,從而減小其對稱性和相同性。通過這些變化,使得MD5與MD4相比變得復(fù)雜很多,整個(gè)運(yùn)轉(zhuǎn)速度也要比MD4慢一些,但是從整體安全性、抗沖突和抗分析方面有了很大的提高。

SHA-1算法

SHA-1算法也叫做安全哈希算法,主要應(yīng)用于digital signature standard dss里面定義的數(shù)字簽名算法。SHA-1算法長度一般為160bit的message digest,SHA-1算法在接收消息摘要的過程中,可以利用message digest來檢查數(shù)據(jù)的完整情況。它不會從message digest中還原相關(guān)的內(nèi)容,此外兩個(gè)不同的message digest不會產(chǎn)生相同的message digest,因此SHA-1算法具有很強(qiáng)的brute-force性能。SHA-1算法的計(jì)算方式是基于MD4的算法原理,它的填補(bǔ)和分組模式與MD5是一樣的,但是在算法中,SHA-1的非線性函數(shù)、循環(huán)左移運(yùn)算和加法常數(shù)與MD5算法的運(yùn)算方式有一定的差異,SHA-1的安全性和穩(wěn)定性比MD5算法更加可靠,且運(yùn)算速度也有了一定的提高。

哈希算法是目前較為先進(jìn)的加密算法,它以其單向性、抗沖突性、映射分布均勻性和差分分布均勻性等特點(diǎn),廣泛應(yīng)用于工業(yè)、商業(yè)等各個(gè)領(lǐng)域之中。