# CNSA 2.0 ## 介紹概述 CNSA(Commercial National Security Algorithm Suite)是美國 NSA 為「國家安全系統(NSS)」指定的密碼演算法套件與安全等級基線。它的作用是: * 指定「可用的演算法/安全等級/金鑰長度」與「適用情境」,當作政府採購與承包商的統一標準。 * 規劃從傳統公鑰(RSA/ECC)向「後量子密碼(PQC)」的漸進式遷移,確保長期保密性與相容性。 * 與 NIST/FIPS 140-3 生態配合,要求模組與實作走合規路線(FIPS 驗證)。 ## 時程演化總覽: | Year | version | Description | | -------- | -------- | -------- | | 2005 | Suite B | 加入包含 AES、ECDH/ECDSA(P‑256 / P‑384)、SHA‑256/SHA‑384 | | 2016 | CNSA 1.0 | 移除 AES‑256、ECDH‑P‑384、ECDSA‑P‑384、SHA‑384 ,並恢復支援 RSA‑3072 和 DH‑3072 作為「暫時」選項 | | 2022 | CNSA 2.0 | NSA 已表示 ECC 面臨量子攻擊風險,加入 PQC 演算法建議,ML-KEM-1024、ML-DSA-87,另支援 SHA-384/512、XMSS、LMS 等,同時明言 RSA/ECC/ECDH/ECDSA 將逐步淘汰 | ## 軟體與韌體簽章演算法 | Algorithm | Function | Specification | Parameters | | -------- | -------- | -------- | -------- | | LMS(Leighton-Micali Signature) | 用於韌體與軟體的非對稱數位簽章 | NIST SP 800-208| 全部核准參數皆可用於所有機密等級,建議用 SHA-256/192 | | XMSS(Xtended Merkle Signature Scheme) | 用於韌體與軟體的非對稱數位簽章 | NIST SP 800-208| 全部核准參數皆可用於所有機密等級 | ## 對稱式加密演算法 | Algorithm | Function | Specification | Parameters | | -------- | -------- | -------- | -------- | | Advanced Encryption Standard (AES) | 對稱式分組加密,用於資訊保護 | FIPS PUB 197 | 256-bit 金鑰(適用於所有機密等級) | | Secure Hash Algorithm (SHA) | 計算資料的雜湊(摘要) | FIPS PUB 180-4 | SHA-384 或 SHA-512(適用於所有機密等級) | ## 一般用途的耐量子公鑰演算法 當這些演算法正式成為標準並被要求使用時,RSA、Diffie-Hellman(DH)、橢圓曲線加密(ECDH、ECDSA)將會被淘汰,在正式過渡前,仍需遵守 CNSA 1.0 的現行規範。 | Algorithm | Function | Specification | Parameters | | -------- | -------- | -------- | -------- | | CRYSTALS-Kyber | 非對稱金鑰交換(key establishment) | TBD | Level V 參數(適用於所有機密等級) | | CRYSTALS-Dilithium | 非對稱數位簽章 | TBD | Level V 參數(適用於所有機密等級) |