顯示包含「Secure Hash Algorithm」標籤的文章。顯示所有文章
顯示包含「Secure Hash Algorithm」標籤的文章。顯示所有文章

2025年8月31日星期日

SHA3(Secure Hash Algorithm 3)

 最近在看 PQC (後量子密碼學) 的 ML SDA 當中有用到 SHA3 , 小有所感趁機紀錄以下的內容根據 FIPS 官方資料 (https://csrc.nist.gov/pubs/fips/202/final)進行閱讀後的整理

前言

在資訊安全領域裡,「雜湊函數(Hash Function)」是一個基礎但極其重要的工具。它能夠將任何長度的輸入訊息,轉換成固定長度的輸出(稱為訊息摘要)。這個摘要具有以下特性:

  • 不可逆:幾乎不可能從輸出反推出原始輸入。
  • 抗碰撞:不同的輸入幾乎不會產生相同的輸出。
  • 固定長度:無論輸入多大,輸出長度固定。

這些特性,讓 Hash 被廣泛應用於:

  • 驗證資料完整性(檔案驗證、下載檢查碼)。
  • 數位簽章與驗證。
  • 密碼學基礎建構(例如 HMAC、隨機數產生器)。

在過去幾十年,SHA(Secure Hash Algorithm, 安全雜湊演算法)系列成為最常用的雜湊家族。從 SHA-0、SHA-1 到 SHA-2,逐步守護著資訊安全。然而,隨著計算能力提升以及演算法分析技術進步,舊有的雜湊標準逐漸顯現弱點。這也引出了今天的主角:SHA-3。

SHA 的歷史

  • SHA-0(1993 年)
    • 第一版安全雜湊演算法,由美國國家安全局(NSA)設計並發表。
    • 由於存在安全弱點,很快就被棄用。
  • SHA-1(1995 年)
    • 改良後的版本,輸出長度為 160 位元。
    • 曾廣泛應用在 SSL、數位簽章、檔案驗證等場景。
    • 但隨著 2017 年 Google 公布實際碰撞攻擊實例,SHA-1 正式被視為不再安全。
  •     SHA-2(2001 年)
    • 包含多個版本:SHA-224、SHA-256、SHA-384、SHA-512。
    • 輸出長度更長,設計更安全,目前仍被廣泛使用。
    • 但其設計仍是基於 Merkle–Damgård 結構,若未來計算能力大幅提升,潛在風險依舊存在。

  •     SHA-3(2015 年,正式標準化)
    • 由 Keccak 演算法在 NIST(美國國家標準技術研究院)舉辦的雜湊演算法競賽中勝出。
    • 最大的不同是:架構完全不同。SHA-3 基於 Sponge 結構,而不是傳統的 Merkle–Damgård。
    • 這使得 SHA-3 在安全性與彈性上具備不同優勢,也能衍生出 SHAKE(可延伸輸出長度的雜湊函數)。

打賞按讚