Aes

對於 AES-GCM,知道明文和密文是否允許攻擊者學習密鑰?

  • June 11, 2022

比如說,對於 AES-GCM 加密,攻擊者基本上知道除了密鑰之外的所有內容。這將包括:

  • 純文字
  • 密文
  • 算法 (AES-GCM)

在這種情況下,攻擊者會在學習密鑰方面獲得任何優勢嗎?

**應用程序:**我正在按照PKCS #5 建議使用基於密碼的加密。當使用者提供密碼時,我希望應用程式碼知道提供的密碼是正確還是不正確。為此,我建議使用從使用者提供的密碼派生的密鑰來解密 IV+密文。如果解密的數據與預期的明文值匹配,那麼我知道使用者提供的密碼是正確的。相反,如果不匹配,則使用者提供的密碼不正確。

AES 不易受到已知明文攻擊,AES-GCM 也不例外。

GCM 模式與 CTR 或計數器模式極為相似。它通過 AES 傳遞遞增計數器來發揮作用。然後將輸出用作密鑰流。如果攻擊者知道一些關於明文的資訊,他們可以將其與密文進行異或運算以導出密鑰流。因為密鑰流只是一個加密計數器,所以攻擊者現在擁有明文-密文對,但不知道密鑰。

AES 是一種安全的分組密碼,明文-密文對的知識不足以推導出有關密鑰的任何資訊,也不能推導出有關任何其他明文的資訊。*如果 GCM 與易受已知明文攻擊的分組密碼一起使用,則可以計算密鑰,然後生成所有未來和過去的密鑰流。AES(以及因此 AES-GCM)不易受到這種攻擊。

維基百科描述 GCM 模式的簡化圖:

來自維基百科的 GCM

我建議使用從使用者提供的密碼派生的密鑰來解密 IV+密文。

您正在描述質詢-響應身份驗證。為此有許多現有的協議。不要推出自己的解決方案。

  • 如果 IV 使用相同的密鑰重用,則密鑰流將相同,攻擊者可以通過將兩個密文異或在一起來消除它。結果是兩個明文的異或,這是很成問題的。

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