古詩詞大全網 - 成語故事 - 什麽是Hash函數?Hash函數在密碼學中有什麽作用?

什麽是Hash函數?Hash函數在密碼學中有什麽作用?

Hash,壹般翻譯做"散列",也有直接音譯為"哈希"的,就是把任意長度的輸入(又叫做預映射, pre-image),通過散列算法,變換成固定長度的輸出,該輸出就是散列值。這種轉換是壹種壓縮映射,也就是,散列值的空間通常遠小於輸入的空間,不同的輸入可能會散列成相同的輸出,而不可能從散列值來唯壹的確定輸入值。簡單的說就是壹種將任意長度的消息壓縮到某壹固定長度的消息摘要的函數。

HASH主要用於信息安全領域中加密算法,他把壹些不同長度的信息轉化成雜亂的128位的編碼裏,叫做HASH值. 也可以說,hash就是找到壹種數據內容和數據存放地址之間的映射關系

Hash算法在信息安全方面的應用主要體現在以下的3個方面:

1) 文件校驗

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

MD5 Hash算法的"數字指紋"特性,使它成為目前應用最廣泛的壹種文件完整性校驗和(Checksum)算法,不少Unix系統有提供計算md5 checksum的命令。

2) 數字簽名

Hash 算法也是現代密碼體系中的壹個重要組成部分。由於非對稱算法的運算速度較慢,所以在數字簽名協議中,單向散列函數扮演了壹個重要的角色。 對 Hash 值,又稱"數字摘要"進行數字簽名,在統計上可以認為與對文件本身進行數字簽名是等效的。而且這樣的協議還有其他的優點。

3) 鑒權協議

如下的鑒權協議又被稱作"挑戰--認證模式:在傳輸信道是可被偵聽,但不可被篡改的情況下,這是壹種簡單而安全的方法。