什麼是雜湊演算法?概念、運作方式
雜湊演算法是一種數學過程,它獲取檔案中包含的資訊並對其進行加擾以建立固定長度的數字和字元字串,稱為雜湊。
什麼是雜湊演算法?
一種數學過程,它獲取文件中包含的信息並對其進行加擾以創建稱為哈希的固定長度的數字和字符字符串。
雜湊演算法
一個好的雜湊演算法具有以下特點:如果你對某些資料應用雜湊演算法,然後只改變資料中的幾個位元,然後再次套用該演算法,那麼產生的兩個雜湊值幾乎每個位元都會有所不同。
雜湊演算法廣泛用於加密金鑰或訊息的密碼學。流行的加密雜湊演算法的範例包括 MD2、MD4、MD5 和 SHA-1。訊息摘要 5 (MD5) 使用 128 位雜湊,安全雜湊演算法 (SHA) 使用 60 位雜湊。雜湊中的位元越多,加密過程的安全性就越高。
雜湊也用於某些資料庫技術中,用於建立資料庫中項目的索引。資料庫物件的雜湊通常比物件本身小,因此可以更快地索引和搜尋它們。您可以為每個資料庫記錄產生固定長度的唯一雜湊,建立可用於快速搜尋記錄的雜湊表。
安全雜湊演算法
安全雜湊演算法是美國國家標準與技術研究院 (NIST) 作為美國聯邦資訊處理標準 (FIPS) 發布的一系列加密雜湊函數,包括:
-
SHA-0:適用於 1993 年以「SHA」名稱發布的 160 位元雜湊函數原始版本的追溯名稱。由於未公開的“重大缺陷”,它在發布後不久就被撤回,取而代之的是略微修訂的 SHA-1。
-
SHA-1:一個 160 位雜湊函數,類似於早期的 MD5 演算法。這是由國家安全局 (NSA) 設計的,作為數字簽名算法的一部分。在 SHA-1 中發現了加密弱點,並且該標準在 2010 年之後不再被批准用於大多數加密用途。
-
SHA-2:兩個相似的雜湊函數的系列,具有不同的區塊大小,稱為 SHA-256 和 SHA-512。它們的字大小不同;SHA-256 使用 32 位字,而 SHA-512 使用 64 位字。每個標準也有截斷版本,稱為 SHA-224、SHA-384、SHA-512/224 和 SHA-512/256。這些也是由美國國家安全局設計的。
-
SHA-3:一種以前稱為 Keccak 的雜湊函數,在非 NSA 設計師之間的公開競爭後於 2012 年被選中。它支援與 SHA-2 相同的雜湊長度,其內部結構與 SHA 系列的其他產品有很大不同。
SHA-1 壓縮函式中的一次反覆運算
SHA-1
A、B、C、D 和 E 是狀態的 32 位字;F 是一個可變的非線性函數;<<<n 表示左位元旋轉 n 位;n 因每個操作而異;Wt 是圓 t 的擴展訊息字;Kt 是整數 t 的整數常數;
如需本主題的相關資訊,請參閱安全雜湊標準 (SHS) FIPS PUB 180-4 – 聯邦資訊處理標準出版社。