哈希加密算法及其應(yīng)用

隨著科學(xué)技術(shù)的不斷發(fā)展,許多新的加密算法在各個(gè)領(lǐng)域中有了進(jìn)一步的應(yīng)用,其中技術(shù)較為先進(jìn)的便是哈希加密算法,哈希加密算法以其獨(dú)特的計(jì)算方式受到了廣泛的應(yīng)用。

哈希加密算法及其應(yīng)用

一、哈希加密算法的原理

哈希加密算法的原理是根據(jù)數(shù)據(jù)幀的散列值服務(wù)器數(shù)計(jì)算出余數(shù),通過(guò)這種方法來(lái)確定目前數(shù)據(jù)幀中的內(nèi)容將會(huì)發(fā)向哪一個(gè)散列值服務(wù)器。實(shí)際上也可以說(shuō)就是集合之間所產(chǎn)生的彼此對(duì)應(yīng)的關(guān)系,相當(dāng)于在一個(gè)集合內(nèi)的一個(gè)數(shù)據(jù)幀映射到另一個(gè)集合內(nèi)所對(duì)應(yīng)的那個(gè)數(shù)據(jù)幀的過(guò)程。在這個(gè)過(guò)程中也會(huì)涉及到一個(gè)哈希加密算法的分布問(wèn)題。

哈希表的工作原理就是把一個(gè)數(shù)據(jù)幀按照某一種設(shè)定好的算法,比如說(shuō)散列算法,將其轉(zhuǎn)換為數(shù)字的形式,將這些數(shù)字對(duì)數(shù)組長(zhǎng)度進(jìn)行余數(shù)計(jì)算,取其余數(shù),將結(jié)果作為該數(shù)組的下一個(gè)標(biāo)記,將數(shù)值進(jìn)行存儲(chǔ),并將其存儲(chǔ)在這個(gè)數(shù)字下標(biāo)下的數(shù)組空間內(nèi)。如果發(fā)出有關(guān)哈希表的查詢命令后,就可以使用散列函數(shù)將數(shù)據(jù)幀轉(zhuǎn)換成其標(biāo)記下對(duì)應(yīng)的數(shù)組,從而從該空間內(nèi)取得相應(yīng)的散列值。散列表根據(jù)輸入數(shù)值的變化而不斷發(fā)生變化。

因此,我們可以充分利用哈希加密算法中的數(shù)組定位功能來(lái)確定相應(yīng)的數(shù)據(jù)位置。由于哈希加密算法的這一功能,可以快速的完成查找任務(wù),這要同線性數(shù)據(jù)結(jié)構(gòu)與表格、隊(duì)列等計(jì)算方法相比速度已經(jīng)有了很大的提升。

二、常見的哈希加密算法

1、MD4加密算法

MD4加密算法是哈希加密算法中較為成熟的算法之一。MD是指消息摘要的意思,是Message Digest 的縮寫。它一般使用在32位的計(jì)算機(jī)處理器模塊內(nèi),通過(guò)軟件系統(tǒng)來(lái)實(shí)現(xiàn)其算法功能。

MD4加密算法在計(jì)算過(guò)程中需要及時(shí)填補(bǔ)有關(guān) Message Digest來(lái)保證Message Digest的bit位長(zhǎng)度加上448后能夠被512進(jìn)行整除,之后,通過(guò)64位的二進(jìn)制Message Digest被填補(bǔ)進(jìn)來(lái),將信息制定為512bit,并且每個(gè)部分都需要通過(guò)以上方式進(jìn)行處理。由于MD4本身存在安全性的問(wèn)題,當(dāng)時(shí)推出后,就曾被某些人進(jìn)行了破譯,對(duì)MD4中的第一步和第三步中存在的問(wèn)題進(jìn)行了攻擊,例如,曾經(jīng)Dobbertin向公眾演示,他通過(guò)一臺(tái)計(jì)算機(jī)在幾分鐘內(nèi)就找到了 MD4 中存在的漏洞,使通過(guò)MD4 加密的不同內(nèi)容得到了相同的加密結(jié)論。但是就整個(gè)MD4加密算法來(lái)說(shuō)并沒(méi)有完全的被破譯,在此之后Ronald L. Rivest對(duì)MD4中存在的漏洞進(jìn)行了修補(bǔ)與改進(jìn)。然而,由于MD4本身存在的安全性漏洞,還是被更為先進(jìn)安全的算法所淘汰。但MD4加密算法為之后的MD5加密算法、sha-1加密算法、RIPEMD加密算法等提供了很好的理論基礎(chǔ)。

2、MD5加密算法

MD5加密算法是MD4加密算法的升級(jí)版,它與MD4加密算法相比安全性有了很大的提升,它在MD4的基礎(chǔ)上增加了safety-belts功能,使整個(gè)算法變得更加可靠。

MD5的輸入方式與MD4相同,還是保持了MD4原理的 512bit 的分組形式,它的輸出方式是通過(guò)四個(gè) 32bit的連接形式。MD5在MD4的基礎(chǔ)上加入了第四輪的計(jì)算模式,每一個(gè)步驟都是一一對(duì)應(yīng)的固定值,改進(jìn)了MD4中在第二輪、第三輪計(jì)算中的漏洞,完善了訪問(wèn)輸入分組的次序從而減小其對(duì)稱性和相同性。通過(guò)這些變化,使得MD5與MD4相比變得復(fù)雜很多,整個(gè)運(yùn)轉(zhuǎn)速度也要比MD4慢一些但是從整體安全性、抗沖突和抗分析方面有了很大的提高。

3、SHA1加密算法

SHA1 加密算法主要是通過(guò)與DSA加密算法配合在一起使用。SHA1加密算法也叫做安全哈希算法,主要應(yīng)用于Digital Signature Standard_DSS 里面定義的數(shù)字簽名算法。

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

三、哈希加密算法的應(yīng)用

1、數(shù)字簽名方面的應(yīng)用

哈希加密算法是現(xiàn)階段較為先進(jìn)的加密算法之一,在數(shù)字簽名方面經(jīng)常會(huì)應(yīng)用到這一技術(shù)。

在數(shù)字簽名過(guò)程中,首先要確定出雙方認(rèn)同的哈希算法和簽名的方式,簽名的一方先要計(jì)算出數(shù)據(jù)文件的哈希值,然后利用哈希值進(jìn)行非對(duì)稱加密算法,得到數(shù)字簽名。對(duì)方在檢查簽名的過(guò)程中,對(duì)這條數(shù)據(jù)信息進(jìn)行哈希計(jì)算,對(duì)簽字方的哈希值進(jìn)行比對(duì),比對(duì)的方法也是利用非對(duì)稱算法進(jìn)行驗(yàn)證。

2、校對(duì)信息方面的應(yīng)用

在對(duì)文件信息校對(duì)的過(guò)程中使用最多、最為普遍的算法就是哈希加密算法,其中以MD5加密算法最為常見。因?yàn)镸D5加密算法在信息校對(duì)中具有奇偶校驗(yàn)法和循環(huán)冗余碼校驗(yàn)無(wú)法比擬的優(yōu)勢(shì),即具有防止對(duì)數(shù)據(jù)進(jìn)行篡改的能力,有效的阻止了黑客或其他人員對(duì)相關(guān)數(shù)據(jù)文件內(nèi)容進(jìn)行惡意的修改和破壞,保證了數(shù)據(jù)的正確性。

總之,哈希加密算法是目前較為先進(jìn)的加密算法,它以其單向性、抗沖突性、映射分布均勻性和差分分布均勻性等特點(diǎn),廣泛應(yīng)用于工業(yè)、商業(yè)等各個(gè)領(lǐng)域之中,但是由于其內(nèi)部結(jié)構(gòu)還存在很大的發(fā)展性,有待于相關(guān)技術(shù)人員對(duì)其進(jìn)行更深一步的拓展,使其發(fā)揮出更好的作用。

小知識(shí)之哈希:

Hash,一般翻譯做“散列”,也有直接音譯為“哈希”的,就是把任意長(zhǎng)度的輸入(又叫做預(yù)映射, pre-image),通過(guò)散列算法,變換成固定長(zhǎng)度的輸出,該輸出就是散列值。這種轉(zhuǎn)換是一種壓縮映射,也就是,散列值的空間通常遠(yuǎn)小于輸入的空間,不同的輸入可能會(huì)散列成相同的輸出,而不可能從散列值來(lái)唯一的確定輸入值。簡(jiǎn)單的說(shuō)就是一種將任意長(zhǎng)度的消息壓縮到某一固定長(zhǎng)度的消息摘要的函數(shù)。