Aes

在 CBC 模式下使用 AES 密鑰作為 IV 的問題

  • October 24, 2019

我是一名滲透測試人員,目前正在分析一個使用一些奇怪加密方案的 Web 應用程序。

關鍵是:他們使用 AES-128 加密,生成(非加密安全)密鑰並將其用作加密密鑰和初始化向量。

我不是加密專家,但我知道這很糟糕(除了密鑰的不安全生成)。問題是,我不知道具體的後果是什麼?

有人可以啟發我,以便我可以向開發人員解釋這很糟糕嗎?謝謝

CBC模式加密如下:

$$ C_0 = E_K(IV\oplus P_0);\ C_i = E_K(C_{i-1}\oplus P_i), $$ 在哪裡 $ P_i $ 是明文塊和 $ C_i $ 是密文塊。傳統上,IV 必須是隨機的,並且與密文一起發布以啟用解密。如果它也在您的案例中發布,那麼這會揭示密鑰並且非常不安全。 如果 $ IV=K $ 沒有附加到密文,那麼你會得到一個確定性(與機率相反)的加密方案。它具有許多不安全的屬性,例如

  • 如果相同的明文被多次加密,密文不會改變。
  • 如果兩個明文具有相同的前綴,則密文將具有相同的屬性。

也許還有其他的,但這些足以避免使用這種方案來保護任何合理數量的數據的機密性,除了可能非常短(16 字節或更少)的明文。

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