1. 程式人生 > >單向雜湊函式的實際應用

單向雜湊函式的實際應用

一 單向雜湊函式相關術語

單向雜湊函式也稱為訊息摘要函式、雜湊函式或者雜湊函式。

輸入單向雜湊函式的訊息也稱為原像。

單向雜湊函式輸出的雜湊值也稱為訊息摘要或者指紋。

完整性也稱為一致性。

二 單向雜湊函式實際應用

1 檢測軟體是否被篡改

可以使用單向雜湊函式來確認自己下載的軟體是否被篡改。

很多軟體,尤其是安全相關的軟體都會把單向雜湊函式計算出的雜湊值公佈在自己的官網上。使用者下載到軟體之後,可以自行計算雜湊值,然後與官網上公佈的雜湊值進行對比。通過雜湊值,使用者可以確認所下載到的檔案與軟體作者所提供的檔案是否一致。

這樣的方法,在可以通過多種途徑得到軟體的情況下非常有用。為了減輕伺服器的壓力,很多軟體作者都會藉助多個網站(映象站點)來發布軟體,在這種情況下,單向雜湊函式就會在檢測軟體是否被篡改方面發揮重要作用。

下圖展示的是單向雜湊函式檢測軟體是否被篡改

2 基於口令的加密

單向雜湊函式可用於基於口令的加密(Password Based Encryption,PBE)。

PBE的原理是將口令和鹽(salt,通過偽隨機數生成器產生的隨機數)混合後計算其雜湊值,然後將這個雜湊值用作加密的金鑰。通過這樣的方法能夠防禦針對口令的字典攻擊。

3 訊息認證碼

使用單向雜湊函式可以構造訊息認證碼。

訊息認證碼是將“傳送者和接收者之間共享金鑰”和“訊息”進行混合後計算出的雜湊值。使用訊息認證碼可以檢測並防止通訊過程中的錯誤、篡改以及偽裝。

訊息認證碼在SSL/TLS中也得到了運用。

4 數字簽名 在進行數字簽名時也會使用單向雜湊函式。

數字簽名是現實社會中的簽名和蓋章這樣行為在數字世界中的實現。數字簽名的處理過程非常耗時,因此一般不會對整個訊息內容直接使用數字簽名,而是先通過單向雜湊函式計算出訊息的雜湊值,然後再對這個雜湊值使用數字簽名。

5 偽隨機數生成器

使用單向雜湊函式可以構造偽隨機數生成器。

密碼技術中所使用的隨機數需要具備“事實上不可能根據過去的隨機數列預測未來的隨機數列”這樣的性質。為了保證不可預測性,可以利用單向雜湊函式的單向性。

6 一次性口令

使用單向雜湊函式可以構造一次性口令,一次性口令經常被用於伺服器對客戶端的合法性認證。在這種方式中,通過使用單向雜湊函式可以保證口令只在通訊鏈路上傳送一次,因此即使竊聽者竊聽了口令,也無法使用。