NESA729 October   2026 MSPM0G3519 , MSPM0G3519-Q1 , MSPM33C321A , MSPM33C321A-Q1

 

  1.   1
  2.   摘要
  3.   註冊商標
  4. 1 簡介
  5. 2 嵌入式系統的安全目標
  6. 3 加密基元
  7. 4 CRQC 的潛在影響
  8. 5 未來的新演算法與標準
  9. 6 CNSA 合規性
  10. 7 對稱式加密和雜湊函數
  11. 8 PQC 數位簽章:ML-DSA
  12. 9 是否需要硬體加速?
  13. 10是否需要預先雜湊?
  14. 11NIST 選擇的其他 PQC 數位簽章方案
  15. 12有狀態數位簽章方案
  16. 13何為金鑰協議?
  17. 14讓嵌入式系統未來無憂
  18. 15參考資料

是否需要預先雜湊?

在安全啟動實作中,常見做法是先使用 SHA-256 或 SHA-384 等安全雜湊函數,對應用軟體與韌體映像進行雜湊,以建立固定大小的訊息代表值,然後透過 ECDSA 進行簽章和驗證。ML-DSA 消除了此「預先雜湊」步驟。事實上,ML-DSA 的設計者傾向於該方案的使用者將數位簽章的整個訊息內容直接傳入簽章演算法本身。

在 FIPS PUB 204 中,此過程稱為「純粹」模式。FIPS PUB 204 還定義了稱為 HashML-DSA 的預先雜湊模式,其包含有關計算中用於產生簽章(從而將雜湊函數綁定至簽章)之雜湊函數的相關資訊。

除了 FIPS 204 之外,還可以採用第三種選項:先對訊息進行預先雜湊,但在純粹模式下使用 ML-DSA 簽章該雜湊值,如同將訊息直接傳入 ML-DSA 一樣,而非使用 FIPS 204 的預先雜湊 HashML-DSA 模式。此做法省去了雜湊函數對簽章的綁定,但它與當今 ECDSA 與 SHA 的使用方式更具可比性。

在產生和驗證數位簽章時,ML-DSA 在內部使用 Keccak 函數。Keccak 是 SHA-3 函數和 SHA 與 Keccak (Shake) 可擴展輸出函數內部使用的核心函數。ML-DSA 使用 Keccak 的方式有很多種,包括訊息的安全摘要和驗證過程中公開金鑰的確定性擴展。

這一點很重要,因為在資源受限的系統上,納入 ML-DSA 意味著同時納入 Keccak,於相同程式碼佔用空間內提供安全雜湊函數。因此,使用純粹 ML-DSA 運算模式意味著您無需放棄額外的非揮發性程式碼記憶體來儲存 SHA-384 或 SHA-512 等額外雜湊函數。此外,Keccak 還可用於將 SHA-3 作為通用雜湊函數,用於應用中的其他目的。

目前,符合 CNSA 2.0 的系統可以使用經核准的安全雜湊函數 (SHA-384 或 SHA-512) 對訊息進行預先雜湊,但不能使用 FIPS PUB 204 所規定的 ML-DSA 預先雜湊模式 (HashML-DSA);相反,FIPS PUB 204 純粹模式為預設模式。