-
單向散列函數
鎖定
- 中文名
- 單向散列函數
- 外文名
- Hash
- 別 名
- 單向Hash函數
- 別 名
- 雜湊函數
- 定 義
- 把任意長度的輸入消息串變化成固定長的輸出串且由輸出串難以得到輸入串的一種函數
單向散列函數函數應用
Hash函數主要用於完整性校驗和提高數字簽名的有效性,已有很多方案。這些算法都是偽隨機函數,任何雜湊值都是等可能的。輸出並不以可辨別的方式依賴於輸入;在任何輸入串中單個比特的變化,將會導致輸出比特串中大約一半的比特發生變化。
常見單向散列函數(Hash函數)
SHA(Secure Hash Algorithm)這是一種較新的散列算法,可以對任意長度的數據運算生成一個160位的數值。
MAC(Message Authentication Code):消息認證代碼,是一種使用密鑰的單向函數,可以用它們在系統上或用户之間認證文件或消息。HMAC(用於消息認證的密鑰散列法)就是這種函數的一個例子。
CRC(Cyclic Redundancy Check):循環冗餘校驗碼,CRC校驗由於實現簡單,檢錯能力強,被廣泛使用在各種數據校驗應用中。佔用系統資源少,用軟硬件均能實現,是進行數據傳輸差錯檢測地一種很好的手段(CRC 並不是嚴格意義上的散列算法,但它的作用與散列算法大致相同,所以歸於此類)。
單向散列函數函數性質
1.給定h,根據H(M)=h計算M在計算上是不可行的;
2.給定M,要找到另一消息M’。並滿足H(m)=H(m’)在計算上是不可行的。
上述特性中的任何弱點都有可能破壞使用Hash函數進行封裝或者簽名的各種協議的安全性,如生日攻擊。Hash函數的重要之處就是賦予M一個“指紋”。如果用户A用數字簽名算法H(m)進行簽名,而B能產生滿足H(m)=H(m’)的另一消息M’,那麼B就可以聲稱A對M進行了簽名。
Hash函數除了需要上述性質外還需要的性質有:
3.給定M,很容易計算h;
4.抗碰撞性。即隨機找到兩個消息M和M’,使H(m)=H(m’)在計算上不可行。
- 參考資料
-
- 1. 單向散列函數(HASH函數)基本原理 .電子發燒友.2011年08月25日[引用日期2016-02-01]