Encryption

用 AES ECB 加密 256 位 AES 密鑰?

  • July 2, 2017

使用 AES ECB 模式加密加密密鑰(數據加密密鑰或 DEK)的優缺點是什麼?意識到加密大於塊大小的低熵數據時的重大弱點,並且還意識到 AES 密鑰包裝功能(好文章)。在我們的案例中,AES KW 在高吞吐量情況下的低效率是一個問題(數千/百萬個欄位流動,每個欄位都使用自己的 DEK 加密)。

在我們的例子中,數據加密密鑰

  1. 是高熵(硬體 RNG + 4 個 PRNG 源 + 加密散列擴展)和
  2. 將是 128/256 位長(擔心更長的密鑰?)

我們避免使用 AES-GCM 等跳過 IV 以減小大小,因為每個字節都很寶貴(大數據/大容量)

更新:

  1. DEK 的完整性在威脅模型中不是問題。DEK 篡改將觸發解密失敗,影響可用性。可用性是更高系統級別的一個問題。(此外,如果攻擊者可以修改 DEK 位,他們可以在加密的 DEK 之後簡單地刪除整個欄位/數據有效負載)
  2. 主要關注的是數據本身的機密性和完整性。

如果您要加密 128 位密鑰,則“OK”,因為密鑰大小與塊大小相同。但是,如果您加密 256 位密鑰,則可能會篡改結果。例如,您可以刪除其中一個塊,它“看起來像”一個 128 位密鑰,或者您可以使 256 位密鑰成為同一個塊兩次(所以它的形式 $ k|k $ 其中每個 $ k $ 是 128 位,以此類推。

綜上所述,即使是 128 位密鑰,也存在攻擊者可以篡改密文而您無法檢測到的問題。結果確實是隨機垃圾,但在大多數情況下,我們希望能夠檢測到篡改。

ECB在模式下使用CTR模式:)

AES_Encrypt(counter#1) XOR (1st_DEK_block) || AES_Encrypt(counter#2) XOR (2nd_DEK_block)

如果您XOR的速度足夠快,性能將足夠,您將避免“ k||k”問題。

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