Hash算法在信息安全方面的應用

Hash算法廣泛應用于區(qū)塊鏈工作量證明中,每個具有創(chuàng)新性的區(qū)塊鏈項目中均有各自不同的實現(xiàn),屬于區(qū)塊鏈中比較核心和基礎的技術。

Hash算法在信息安全方面的應用主要體現(xiàn)在三個方面:

文件校驗
我們比較熟悉的校驗算法有奇偶校驗和CRC校驗,這2種校驗并沒有抗數(shù)據(jù)篡改的能力,它們一定程度上能檢測并糾正傳輸數(shù)據(jù)中的信道誤碼,但卻不能防止對數(shù)據(jù)的惡意破壞。

MD5 Hash算法的”數(shù)字指紋”特性,使它成為眼下應用最廣泛的一種文件完整性校驗算法,不少Unix系統(tǒng)有提供計算md5 checksum的命令。

數(shù)字簽名
Hash 算法也是現(xiàn)代password體系中的一個重要組成部分。因為非對稱算法的運算速度較慢,所以在數(shù)字簽名協(xié)議中,單向散列函數(shù)扮演了一個重要的角色。 對 Hash 值,又稱”數(shù)字摘要”進行數(shù)字簽名,在統(tǒng)計上能夠覺得與對文件本身進行數(shù)字簽名是等效的。并且這種協(xié)議還有其它的長處。

鑒權協(xié)議
例如以下的鑒權協(xié)議又被稱作挑戰(zhàn)–認證模式:在傳輸信道是可被偵聽,但不可被篡改的情況下,這是一種簡單而安全的方法。

一般的說,Hash算法函數(shù)根據(jù)其原理,能夠簡單的劃分為例如以下幾類:

加法Hash:所謂的加法Hash就是把輸入元素一個一個的加起來構成最后的結果。標準的加法Hash的構造例如以下:
Hash算法在信息安全方面的應用

位運算Hash:這類型Hash函數(shù)通過利用各種位運算來充分的混合輸入元素。
Hash算法在信息安全方面的應用

乘法Hash:這樣的類型的Hash函數(shù)利用了乘法的不相關性。例如:
Hash算法在信息安全方面的應用

除法Hash:除法和乘法一樣,相同具有表面上看起來的不相關性。只是,由于除法太慢,這樣的方式差點兒找不到真正的應用。須要注意的是,我們在前面看到的hash的 結果除以一個prime的目的僅僅是為了保證結果的范圍。
查表Hash:查表Hash最有名的樣例莫過于CRC系列算法。盡管CRC系列算法本身并非查表,但是,查表是它的一種最快的實現(xiàn)方式。
混合Hash:混合Hash算法利用了以上各種方式。各種常見的Hash算法,比方MD5、Tiger都屬于這個范圍。它們一般非常少在面向查找的Hash函數(shù)里面使用。