Aes

CTR 模式下的 AES,具有單個密鑰和從明文派生的 IV

  • February 5, 2018

我們需要一個系統來比較密文是否相等,而不需要(檢查系統)訪問明文。

我們找到了一個在 CTR 模式下使用 AES 的庫,具有單個密鑰,以及基於明文的 SHA1 的 IV。

這個問題與crypto.SE 上的另一個問題密切相關,但在我們的例子中,IV 是通過計算明文的 SHA1 得出的。

所討論的明文是鍵值對,其中鍵是短文本標識符,值是鍵。明文的總大小約為 1k 字節,另外還有 SSH 密鑰文件。

對加密明文的保密性有什麼影響嗎?

在上下文中,IV 是密文的一部分(與 CTR 模式下的 AES 一樣)。密文的那部分洩露了關於明文的資訊,包括不知道 AES 密鑰的人,這至少在理論上是不好的。這是因為明文(或其一部分)的 (SHA-1) 散列是 IV。特別是,攻擊者可以使用密文來安慰對明文的猜測,方法是對猜測進行散列並檢查是否(適當的部分)與 IV 匹配。

該問題的一種學術解決方案是明文的 MAC,例如 HMAC-SHA-256,帶有密鑰。這給出了明文的簡短確定性摘要,不會將有關明文的任何資訊洩露給不持有密鑰的對手(當然,除了兩個明文的相等性之外)。該摘要可以添加為通過 AES-CTR 或其他模式獲得的密文的前綴或後綴(經過身份驗證的加密是一種不錯的選擇)。

使用相同的密鑰進行加密(無論是否經過身份驗證)和 MAC 在理論上很糟糕,並且對於基於 AES 的 MAC 可能是災難性的。但是,對於 HMAC-SHA-256,唯一可預見的缺點是對 HMAC 的密鑰恢復攻擊(例如,通過某些旁道)會洩露加密密鑰;或相反亦然。

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