Entropy

當使用僅提供 112 位安全性的非對稱加密交換密鑰時,為什麼要使用 256 位對稱加密?

  • April 10, 2017

由於使用 2048 位素數的 2048 位 RSA 密鑰或 DH 共享機密獲取僅在對稱加密中提供相當於 112 位的安全性,因此將 AES-256 與從該非對稱級別派生的密鑰一起使用有什麼好處密碼學?

為什麼 SSL 等許多協議都使用它?有什麼優勢嗎?

正如 Ryan 所說,RSA 的密鑰大小不是 TLS 密碼套件的配置選項。RSA 密鑰大小是身份驗證階段的一部分,它是 TLS 協議的一部分,但它不是通過密碼套件定義*配置的。*所以RSA_密碼套件和ECDHE_RSA密碼套件沒有為 RSA 指定任何密鑰大小。


然而,AES 密鑰大小是一個配置選項。這是因為 AES 密鑰不是靜態的,它們是會話密鑰,而會話密鑰是短暫的。它們將在每個新的 TLS 連接上生成。要生成正確大小的 AES 密鑰,必須事先知道大小,否則無法進行密鑰派生。

通常,您會將 2048 位 RSA 密鑰與 AES-128 或 3 密鑰三重 DES 連結。但是,使用 RSA-2048 派生 AES-256 會話密鑰是完全可能的。它也不會對性能造成太大影響;AES-256 僅比使用軟體實現的 AES-128 慢一點(在硬體中甚至可能不存在差異)。因此,AES_256在密碼套件中使用不會受到任何懲罰。允許任何 AES 密碼套件 - 無論密鑰大小如何 - 可能有助於(在某種程度上)建立良好的密碼套件 - 即客戶端和伺服器之間的兼容性。


如前所述,RSA 密鑰可能僅用於建立身份驗證。ECDHE 或 DHE 可用於建立會話密鑰以提供前向保密。因此,用於機密性的密鑰的強度可能遠高於用於身份驗證的密鑰。

由於需要實時進行身份驗證,因此身份驗證密鑰的強度可能會大大低於用於提供機密性的密鑰強度:攻擊者可能會在連接建立(並被竊聽)後很長時間內恢復感興趣的資訊. 身份驗證密鑰可能已被撤銷或在此之前的很長時間內已過期。


再說一次,如果您 AES_256指定密碼套件或放在密碼套件AES_256之上,AES_128您基本上是在對您的使用者撒謊。您正在提供一種由於 RSA 使用的小密鑰大小而無法提供的保護。

即使我將 RSA 與提供前向保密的密碼套件結合起來,我也不會覺得這樣做很舒服。

我將嘗試提出一些理由,但基本上我的答案是:

這可能是一個錯誤。

但是,讓我們看看為什麼人們可能想要使用它:

  1. 聽起來更好,人們很偏執。這幾乎總是 AES-256 的原因。
  2. 後量子安全性:給定一台量子電腦,您需要一個 256 位密鑰才能獲得 128 位安全性。(我想你需要一個關於只有少數量子比特的量子電腦的奇怪論點才能讓 RSA 保持活力。)
  3. 密碼套件可以修復一個,但不能修復另一個。您的密碼套件可以聲明它想要對實際數據使用 AES_256_GCM,但它只能聲明它想要使用 RSA 進行握手。(我猜這是 1 的版本。)

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