Rsa

與 RSA 相比,為什麼橢圓曲線密碼學沒有被廣泛使用?

  • July 6, 2020

我最近遇到了橢圓曲線密碼系統:

在我看來,它是 RSA 的絕佳替代品,作為事實上的密碼系統,可用於銀行和金融系統以及證書的公鑰基礎設施,但並未使用!如果有人可以解釋為什麼不這樣做,那將非常有幫助。傳統 RSA 和橢圓曲線密碼學之間的比較會有所幫助。

首先:

RSA的優勢:

  1. 成立良好。

橢圓曲線的優點:

  1. 較短的密鑰與 RSA 的長密鑰一樣強(參見 IEEE 論文)
  2. CPU消耗低。
  3. 記憶體使用率低。

RSA首先在那裡。這實際上足以解釋它的卓越性。RSA 於 1978 年首次發布,而PKCS#1標準(它準確地解釋了應該如何使用 RSA,並明確說明了哪個字節在哪裡)自 1993 年以來一直公開且免費提供。使用橢圓曲線進行密碼學的想法來了是在 1985 年,相關標準從 1990 年代後期就已經存在。此外,RSA 和橢圓曲線均已獲得專利保護,但 RSA 專利已於 2000 年到期,而一些橢圓曲線專利仍然有效

RSA 的一個可感知的歷史優勢是 RSA 是兩種算法,一種用於加密,一種用於簽名,它們都可以使用相同的密鑰和相同的核心實現。但這並不是真正的優勢,因為對加密和簽名使用相同的密鑰通常是個壞主意。此外,您可以在數學上為ECDH(密鑰交換)和ECDSA (簽名)使用相同的私鑰,因此這根本不是 RSA 相對於 EC 的“優勢”。

RSA 的另一個優點是它的數學比橢圓曲線所涉及的數學要簡單一些,所以很多工程師覺得他們比橢圓曲線更“了解”RSA;再一次,一個錯誤的論點,因為密碼算法的實現充滿了微妙的細節,最好留給專業人士 - 並且沒有必要了解圖書館的內部數學來簡單地使用它(我們可以通過以下方式使這個論點半有效指出 RSA 依賴於分解的硬度,這已經研究了 2500 年,而橢圓曲線上的離散對數只能運動大約 25 年的研究)。

與橢圓曲線密碼學相比,RSA 唯一在科學上確立的優勢是使用 RSA 的公鑰操作(例如簽名驗證,而不是簽名生成)更快。但是公鑰操作很少成為瓶頸,我們說的是每秒 8000 次 ECDSA 驗證,而每秒 20000 次 RSA 驗證。

另一個互操作性問題是橢圓曲線操作可以在不同類型的曲線上進行,如果您堅持編寫程式碼時已知的特定曲線,則可以進行廣泛優化。對於具有不同密鑰對的許多不同的人使用相同的曲線沒有安全問題。但這意味著大多數實現將僅支持兩個或三個特定曲線。NIST 定義了15 條標準曲線。然而,在實踐中,許多實現只支持其中兩個,P-256 和 P-384,因為這是 NSA 推薦的(名稱為“套件 B”)(一個臭名昭著的例子是 NSS,它使用的密碼庫用於 SSL 的 Firefox Web 瀏覽器)。

橢圓曲線有兩個 ANSI 標準,X9.62用於簽名(與 FIPS 186-3 部分冗餘,但更詳細),以及X9.63用於非對稱加密。

因此,學術研究人員和機構組織都在大力推動在密碼學中採用橢圓曲線。但是根深蒂固的 RSA 的惰性需要時間才能打敗。此外,感知到的數學複雜性以及與專利相關的潛在法律風險仍然阻礙了橢圓曲線的廣泛接受。

(在您的列表中,您可以添加“密鑰生成時間”:為 ECDH 或 ECDSA 生成新的密鑰對比生成新的 RSA 密鑰對要快得多。)

引用自:https://crypto.stackexchange.com/questions/1190