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、Ed25519NIST 於 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)或使其有偏差,私密金鑰會被求出。也要確認收到的點是否在正確的曲線上金鑰與簽章大,需確認對封包大小與記憶體少之裝置的影響。也要注意新實作的錯誤與旁路攻擊的對策

數值為具代表性的大致參考值,會因世代或產品而異。

適用於什麼情況

RSA 加密
需要與既有憑證或系統相容時。簽章驗證快,也適合驗證方多的用途,但需要規劃遷移到後量子密碼。
橢圓曲線密碼學
想在目前的新系統中,以短金鑰與小資料進行金鑰交換與簽章時。也適合 IC 卡與嵌入式裝置。為因應量子電腦,要考慮遷移到混合方式。
後量子密碼(ML-KEM、ML-DSA)
要保護需長期保密的資料時。為防範現在被記錄的密文在將來被解密的「先收集、後解密」(harvest now, decrypt later),先從金鑰交換以混合方式導入。

常見問題

為什麼橢圓曲線密碼學的金鑰比 RSA 加密短?

因為已知最佳攻擊的工作量不同。質因數分解有比暴力搜尋快得多的解法,因此 RSA 加密的金鑰必須相當長。橢圓曲線上的離散對數問題,即使是已知最佳的攻擊也需要約金鑰長度一半位元數的工作量,因此金鑰長度約為安全性位元數的 2 倍即可。在 NIST SP 800-57 的表中,128 位元安全性的參考值,RSA 加密為 3072 位元,橢圓曲線密碼學則為 256 位元。

量子電腦還不存在,為什麼現在就要遷移?

因為現在竊聽並保存的密文,有可能在將來被量子電腦解密(先收集、後解密)。此外,替換密碼涉及軟體、裝置、憑證機制等,需要很長的時間。因此,會先從承載需長期保密之資料的金鑰交換開始遷移。

AES 這類對稱金鑰密碼也會被量子電腦破解嗎?

它們不是 Shor 演算法的對象。以 Grover 演算法讓金鑰搜尋達到平方加速的簡單估算來看,安全性的位元數會減半,因此在需要長期安全性的用途中,可選用 AES-256 因應。需要替換的主要是 RSA 加密、橢圓曲線密碼學等公開金鑰密碼。

混合方式是什麼?

同時使用傳統方式與後量子密碼,並組合兩者結果的方式。在金鑰交換中,X25519 與 ML-KEM 的共享秘密都會放入金鑰衍生,因此只要其中一方安全,產生的金鑰就受到保護。後量子密碼較新,還無法充分排除實作錯誤或發現新攻擊的可能性,因此在遷移期間作為保險使用。

理解度檢測

在NIST SP 800-57的表中,被視為與128位元對稱式加密(AES-128)同等安全性之參考值的RSA金鑰長度(n 的位元數)與橢圓曲線密碼金鑰長度的組合,為下列何者?

  1. ARSA約128位元,橢圓曲線密碼約128位元
  2. BRSA約2048位元,橢圓曲線密碼約128位元
  3. CRSA約3072位元,橢圓曲線密碼約256位元
查看答案與解析

正確答案:C. RSA約3072位元,橢圓曲線密碼約256位元

公開金鑰加密要得到相同的安全性,需要比對稱式加密更長的金鑰。在NIST SP 800-57 Part 1的表中,128位元安全性的參考值為RSA 3072位元、橢圓曲線密碼256~383位元。橢圓曲線密碼即使是已知最好的攻擊,也需要約金鑰長度一半位元數的工作量,因此金鑰長度約為安全性位元數的2倍即可,能以比RSA短得多的金鑰得到相同的安全性。RSA的2048位元是相當於112位元的參考值。

美國NIST於2024年8月公布的後量子密碼學標準與其種類的組合,正確的是下列何者?

  1. AFIPS 203的ML-KEM是以格為基礎的簽章方式,FIPS 204的ML-DSA是以雜湊函數為基礎的金鑰封裝機制,FIPS 205的SLH-DSA是對稱式加密
  2. BFIPS 203的ML-KEM、FIPS 204的ML-DSA、FIPS 205的SLH-DSA,都是以橢圓曲線上的問題為基礎、金鑰較短的簽章方式
  3. CFIPS 203的ML-KEM是以格為基礎的金鑰封裝機制,FIPS 204的ML-DSA是以格為基礎的簽章方式,FIPS 205的SLH-DSA是以雜湊函數為基礎的簽章方式
查看答案與解析

正確答案:C. FIPS 203的ML-KEM是以格為基礎的金鑰封裝機制,FIPS 204的ML-DSA是以格為基礎的簽章方式,FIPS 205的SLH-DSA是以雜湊函數為基礎的簽章方式

NIST於2024年8月13日公布3項FIPS,作為後量子密碼學最初的標準。FIPS 203的ML-KEM(原名CRYSTALS-Kyber)是用來共享金鑰的金鑰封裝機制,FIPS 204的ML-DSA(CRYSTALS-Dilithium)與FIPS 205的SLH-DSA(SPHINCS+)是數位簽章的方式。ML-KEM與ML-DSA以格相關問題(例如由加上小誤差的聯立一次方程式求出秘密的Module-LWE問題)的困難度為基礎。SLH-DSA只以雜湊函數的安全性為基礎,因此簽章大且慢,但可作為格的問題被發現弱點時的備案。

在遷移到後量子密碼學的過程中使用的、把X25519(使用橢圓曲線的迪菲-赫爾曼金鑰交換)與ML-KEM組合的混合金鑰交換,其想法正確的是下列何者?

  1. A把兩種方式得到的共享秘密都放入金鑰衍生,只要其中一方安全,產生的金鑰就是安全的
  2. B兩種方式中,只使用在交握中先完成者的共享秘密,另一方則丟棄
  3. C在量子電腦實現之前不使用ML-KEM,先準備好兩者,等量子電腦實現時再自動切換
查看答案與解析

正確答案:A. 把兩種方式得到的共享秘密都放入金鑰衍生,只要其中一方安全,產生的金鑰就是安全的

ML-KEM是新的方式,實作錯誤或發現新攻擊的可能性還無法充分排除。另一方面,X25519雖然對量子電腦很脆弱,但對傳統電腦的安全性有長久的實績。混合金鑰交換把兩個共享秘密串接後放入金鑰衍生函數,攻擊者必須兩者都攻破才能取得金鑰,也能防止現在被記錄的通訊在將來被量子電腦解密。截至2025年,這種組合(X25519MLKEM768等)已開始在TLS 1.3中使用。

  1. 大規模容錯量子電腦實現時,一般認為安全性會因 Shor 演算法而大幅受損的密碼是下列何者?
  2. 在大規模量子電腦尚未實現的階段,就要加緊遷移到後量子密碼,最適當的理由為下列何者?
  3. 把教科書式的RSA加密(直接以 c = m^e mod n 處理明文 m 的方式)不加填充地用於實際通訊,其問題點正確的是下列何者?

前往密碼學基礎與應用的練習題

相關名詞的解說

RSA加密
由Rivest、Shamir、Adleman於1977年提出的公開金鑰加密。以兩個大質數 p、q 的乘積 n 與公開指數 e 為公開金鑰,以滿足 e × d ≡ 1 (mod (p − 1)(q − 1)) 的 d 為私密金鑰。加密為 c = m^e mod n,解密為 m = c^d mod n。安全性的根據在於 n 的質因數分解很困難,可同時用於加密與簽章。實際上要與OAEP或PSS這類含亂數的填充搭配使用。
橢圓曲線密碼學
使用有限體上橢圓曲線之點運算的公開金鑰加密的總稱。安全性的根據在於,由曲線上的點G乘以秘密整數k所得的點 kG 求出 k 的問題(橢圓曲線上的離散對數問題)很困難。在相同安全性下所需的金鑰比RSA短得多,256位元的金鑰被視為與3072位元RSA相當(128位元安全性)的參考值。用於金鑰交換的ECDH、ECDHE,以及簽章的ECDSA、EdDSA,曲線廣泛使用P-256與Curve25519等。由於會被Shor演算法破解,是遷移到後量子密碼學的對象。
後量子密碼
以一般認為量子電腦也無法有效率解出的數學問題(格問題、雜湊函數等)作為安全性根據的密碼。在傳統電腦上運作,用來取代會被 Shor 演算法破解的 RSA 與橢圓曲線密碼。
ML-KEM
美國NIST於2024年8月以FIPS 203標準化的、以格為基礎的金鑰封裝機制(KEM)。名稱是Module-Lattice-Based Key-Encapsulation Mechanism的縮寫,以CRYSTALS-Kyber為基礎。安全性的根據在於由加上小誤差的聯立一次方程式求出秘密的Module-LWE問題很困難,一般認為即使量子電腦也無法有效率地求解。有ML-KEM-512、ML-KEM-768、ML-KEM-1024三組參數。在TLS等協定中,用來取代ECDHE金鑰交換或與其組合使用。
Shor 演算法
以量子傅立葉轉換求出週期,在多項式時間內解出大整數質因數分解與離散對數問題的量子演算法。由彼得·秀爾於 1994 年發表。可以破解 RSA 與橢圓曲線密碼,但執行時需要大規模的容錯量子電腦。
迪菲-赫爾曼金鑰交換
只使用公開的通道,讓雙方產生共享秘密的方法,由Diffie與Hellman於1976年發表。公開質數 p 與生成元 g,A與B由各自的秘密值 a、b 產生 g^a mod p、g^b mod p 互相傳送,再各自以自己的秘密值對對方的值做次方運算,得到相同的 g^(ab) mod p。安全性建立在離散對數問題的困難度上。在橢圓曲線上進行的稱為ECDH,每次連線使用一次性值的稱為DHE、ECDHE,後者可提供前向保密。由於沒有確認對方身分的功能,要與簽章及憑證搭配以防止中間人攻擊。
密碼敏捷性
當加密演算法或金鑰長度變得不安全時,不必大幅重建系統就能替換為其他方式的性質。可透過掌握在何處使用了哪種加密的清單(盤點)、讓演算法可經由設定或協定協商來選擇,以及在資料格式中加入演算法識別碼來提升。在從MD5、SHA-1與短金鑰RSA的遷移,以及遷移到後量子密碼學時受到重視。
公開金鑰加密
加密與解密使用成對但不同的金鑰(公開金鑰與私密金鑰)的加密方式。公開金鑰讓任何人知道都無妨,私密金鑰只由本人持有。金鑰配送變得容易,但計算量大,因此加密資料本體時要與對稱式加密搭配使用。RSA與橢圓曲線密碼是代表。

相關的比較