RSA 加密、橢圓曲線密碼學、後量子密碼的差異:金鑰大小、速度、量子抗性、遷移比較
三者都是公開金鑰密碼,用於共享金鑰(金鑰交換、金鑰封裝)與數位簽章。RSA 加密以大數質因數分解的困難度、橢圓曲線密碼學以橢圓曲線上離散對數問題的困難度作為安全性的根據。在相同安全性下,橢圓曲線密碼學的金鑰比 RSA 加密短得多。但兩者在大規模容錯量子電腦實現後,都會被 Shor 演算法破解。後量子密碼以格的問題等被認為連量子電腦也無法有效率求解的問題作為根據,美國 NIST 於 2024 年 8 月公布了金鑰封裝的 ML-KEM(FIPS 203)與簽章的 ML-DSA(FIPS 204)等標準。主要的課題是金鑰與簽章很大。
| 項目 | RSA 加密 | 橢圓曲線密碼學 | 後量子密碼(ML-KEM、ML-DSA) |
|---|---|---|---|
| 安全性的根據 | 大數質因數分解的困難度 | 橢圓曲線上離散對數問題的困難度 | ML-KEM 與 ML-DSA 是格的問題(由加上小誤差的聯立一次方程式求出秘密的 Module-LWE 問題等)的困難度。另有只以雜湊函數為基礎的簽章 SLH-DSA(FIPS 205) |
| 金鑰大小(參考值) | 在 NIST SP 800-57 的表中,128 位元安全性的參考值是 n 為 3072 位元(384 位元組)。2048 位元相當於 112 位元安全性 | 在同一張表中,128 位元安全性的參考值是 256 位元。金鑰交換 X25519 傳送的公開值為 32 位元組 | ML-KEM-768 的公開金鑰(封裝金鑰)為 1,184 位元組,比 X25519 的 32 位元組大得多 |
| 密文與簽章的大小 | 密文與簽章都與 n 等長(3072 位元時為 384 位元組) | ECDSA(P-256)的簽章由 r 與 s 兩個 256 位元的值組成,共 64 位元組(依編碼格式會稍大) | ML-KEM-768 的密文為 1,088 位元組,ML-DSA-65 的簽章為 3,309 位元組 |
| 運算速度 | 公開指數可以取小值(如 65537),因此加密與簽章驗證快。解密、簽章與金鑰產生較重 | 比相同安全性的 RSA 加密,金鑰產生與簽章快得多。簽章驗證常比 RSA 加密慢 | ML-KEM 的運算輕,一般認為與橢圓曲線金鑰交換相比也不慢。比起運算量,傳送資料的大小更容易成為課題 |
| 對量子電腦的抗性 | 無。若有大規模容錯量子電腦,會被 Shor 演算法破解 | 無。Shor 演算法也能解離散對數問題,因此與 RSA 加密一樣會被破解 | 一般認為連量子電腦也無法有效率求解(並未被證明) |
| 標準化 | 於 1977 年提出。實際上會搭配含亂數的填充使用,加密用 OAEP,簽章用 PSS | 廣泛使用 P-256 等曲線,以及使用 Curve25519 的 X25519、Ed25519 | NIST 於 2024 年 8 月公布為 FIPS 203(ML-KEM)、FIPS 204(ML-DSA)、FIPS 205(SLH-DSA) |
| 目前的主要用途 | 截至 2020 年代中期,主要用於憑證與軟體的簽章。TLS 1.3 已廢除以 RSA 加密傳送金鑰材料的金鑰交換 | 截至 2020 年代中期,是 TLS 金鑰交換(ECDHE)的主力。也用於 ECDSA、EdDSA 簽章,以及 IC 卡、嵌入式裝置等資源少的裝置 | 截至 2025 年,與 X25519 組合的混合金鑰交換(X25519MLKEM768 等)已開始在 TLS 1.3 中使用。簽章的遷移則在金鑰交換之後進行 |
| 遷移 | 是遷移到後量子密碼的對象。憑證與程式碼簽章等簽章的替換是課題 | 是遷移到後量子密碼的對象。在遷移過程中,作為與 ML-KEM 組合之混合金鑰交換的一方,支撐對傳統電腦的安全性 | 目前以與傳統密碼組合的混合方式逐步遷移。重視日後容易替換密碼的設計(密碼敏捷性) |
| 實作注意事項 | 不使用不加填充的教科書式 RSA 加密。產生金鑰需要高品質的亂數 | 若重複使用每次簽章用的亂數(nonce)或使其有偏差,私密金鑰會被求出。也要確認收到的點是否在正確的曲線上 | 金鑰與簽章大,需確認對封包大小與記憶體少之裝置的影響。也要注意新實作的錯誤與旁路攻擊的對策 |
數值為具代表性的大致參考值,會因世代或產品而異。