單向雜湊函式 (One Way Hash Function) 是一種將輸入資料(通常是任意長度的位元組序列)轉換成固定長度的位元串(稱為雜湊值或雜湊碼)的演算法。其主要特性包括:
- 單向性:給定一個雜湊值,幾乎不可能反推出原始輸入資料。
- 固定長度輸出:無論輸入資料的長度如何,雜湊值的長度是固定的。
- 碰撞抗性:難以找到兩個不同的輸入資料具有相同的雜湊值(即雜湊碰撞)。
- 抗篡改:微小的輸入資料變化會導致雜湊值的巨大變化,使得篡改後的資料能夠被檢測出來。
防毒軟體使用單向雜湊函式主要用於以下幾個地方:
-
病毒指紋(Signature)檢測:
- 防毒軟體會為已知的惡意程式生成其雜湊值(病毒指紋)。在掃描過程中,防毒軟體會計算文件的雜湊值並與病毒指紋資料庫中的雜湊值進行比較,以檢測是否存在已知的惡意程式。
-
文件完整性檢查:
- 防毒軟體可以使用單向雜湊函式來檢查文件或系統文件的完整性。通過計算文件的雜湊值並將其與之前存儲的雜湊值進行比較,防毒軟體可以檢測文件是否被未經授權地修改或損壞。
-
快速文件比較:
- 當防毒軟體需要在大規模掃描中比較大量文件時,單向雜湊函式提供了一種快速且高效的方法來比較文件內容。計算文件的雜湊值並進行比較可以比直接逐位比較文件內容更加高效。
-
數位簽章和驗證:
- 防毒軟體在更新和下載病毒資料庫或軟體更新時,會使用單向雜湊函式生成數位簽章來驗證下載內容的完整性和來源的真實性,確保用戶下載的更新沒有被篡改。
通過使用單向雜湊函式,防毒軟體能夠有效地檢測和防止惡意軟體的攻擊,並保護系統和數據的完整性。