Rsa

如果 RSA 都用於建立共享密鑰,為什麼 RSA 優於 Diffie-Hellman?

  • May 22, 2018

我讀過 RSA 算法優於 Diffie-Hellman 密鑰交換,因為它使密鑰管理更容易。在網上銀行的背景下,在 RSA 算法之前,他們必須與每個客戶維護一個不同的共享密鑰,而不僅僅是一個公鑰和一個私鑰。

但後來我也讀到 RSA 主要用於交換共享密鑰以用於 AES 等對稱密碼。因此,無論銀行使用 DH 還是 RSA,他們肯定會建立共享密鑰,而密鑰管理會像以前一樣成為問題嗎?

RSA 很少適合代替 DH 進行密鑰交換。如果需要向後​​兼容,或者如果需要將密鑰從一方發送到另一方而不是為每個會話生成(例如,用於加密電子郵件),這主要是合適的。

RSA 安全使用要困難得多。RSA 需要對消息進行填充,這很容易以災難性破壞系統安全性的方式搞砸。RSA 在臨時模式下使用的成本要高得多,因此通常不能提供前向保密。RSA 密鑰比 ECDH(橢圓曲線 Diffie-Hellman)密鑰大得多。RSA 密鑰生成比(某些)ECDH 密鑰生成複雜得多(也更難正確):RSA 需要生成大質數並確保它們是安全的,而 X25519 或 X448 ECDH 系統可以使用任何適當的隨機數長度。

盡可能使用 ECDHE(Elliptic Curve Diffie-Hellman,Ephemeral)。如果您不能這樣做,請使用 DHE。如果您不能這樣做,請使用 ECDH。如果您不能這樣做,請使用 DH。如果你不能這樣做,那麼使用 RSA。

RSA 也可以用作簽名方案的一部分,但這與這個問題無關,因為它無法與僅進行密鑰交換的 DH 相提並論。TLS 1.3 僅使用 RSA 對 DHE 或 ECDHE 密鑰交換進行簽名,並且還支持 ECDSA 進行簽名。

NaCL、Libsodium、Libhydrogen、TLS 1.3、monocypher,可能還有其他一些庫和加密標準已經放棄使用 RSA 進行密鑰交換。

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