Aes

如果密鑰是隨機的並且不再使用,零隨機數可以安全地與 AES-GCM 一起使用嗎?

  • April 15, 2019

我可以生成一個隨機隨機數並將其添加到密文中,但儲存空間非常寶貴,AES-GCM 對隨機數的唯一限制(如果我沒看錯的話)是同一個隨機數不能與用於第二次加密的相同密鑰。

加密密鑰是隨機生成的,用於單次加密,使用 Shamir 的秘密共享方案進行拆分,然後丟棄。當密鑰被重構解密時,沒有機會被回饋通過再次加密;每次加密都會生成一個新的隨機密鑰。

如果這是唯一的約束,那麼十二個零字節與添加到密文的十二個隨機字節一樣安全。我正在閱讀 AES-GCM nonce 在 CTR 模式下用作 AES 的 IV。只要密鑰從未被重用,就可以對 AES-CTR 使用零 IV,但我不想在沒有確認的情況下假設 AES-GCM 除了將其傳遞給 AES CTR 之外與 nonce 沒有任何關係我錯過了什麼嗎?

通常. 但是,如果您在 CTR 模式下使用 128 位 AES(請記住,GCM 本質上只是帶有身份驗證的 CTR),那麼一種稱為多目標攻擊的攻擊可能會成為可能。當攻擊者擁有大量儲存的密文時,這種攻擊是現實的,每個密文都有一個隨機密鑰。雖然破解特定密鑰需要執行多達 2 128次操作,但破解任何密鑰要容易得多。這種攻擊可以通過使用更大的密鑰大小或使用隨機隨機數來緩解。

從上面連結的 DJB 部落格文章中:

攻擊者希望在 AES 攻擊中找到的是密鑰衝突。這意味著攻擊猜測的密鑰與使用者選擇的密鑰匹配。任何特定猜測的密鑰匹配任何特定使用者密鑰的機會只有 1/2 128,但攻擊最終會合併一批 2 40 個使用者密鑰的成本,從而將每個猜測的有效性放大 2 40倍。

我錯過了什麼嗎?

不,你不是; 如果您只使用一次密鑰,即加密單個消息,並且從不使用它來加密其他任何內容,那麼您使用什麼 nonce 並不重要。隱含的“全 00”隨機數與任何隨機數一樣好。

順便說一句:AES-GCM 還使用隨機數作為生成完整性標籤的轉換的一部分;但是,只要您使用一次密鑰,該添加並不會使全 00 隨機數很好的事實複雜化。

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