Aes

為什麼定義 AES-GCM 計數器塊的複雜性?

  • February 6, 2018

AES-GCM 計數器塊定義為nonce || IV || counter. 為什麼會有這種複雜性?知道它不需要保密並且它唯一需要的屬性是唯一的,為什麼不為整個塊使用一個 128 位的真隨機數呢?計數器不是從 0 開始,而是從某個隨機值開始,在達到最大值時迴繞。

知道它不需要保密並且它唯一需要的屬性是唯一的,為什麼不為整個塊使用一個 128 位的真隨機數呢?計數器不是從 0 開始,而是從某個隨機值開始,在達到最大值時迴繞。

首先,假設您正在使用會話範圍內的臨時密鑰加密一系列消息。如果您使用的是隨機的 128 位 IV,則這些 IV 需要與每條消息一起進行通信,這是一種成本。使用計數器隨機數,雙方可以從零開始,並為每條消息增加隨機數。

請注意,這是隨機數優於 CBC 中使用的隨機 IV 的一般優勢。因此,如果您深入研究這一點,那麼問題就變成了基於 nonce 的密碼與基於隨機 IV 的密碼的相對優點。GCM 選擇基於 nonce,因此它不需要隨機 IV。

其次,連接的 IV 保證了單性:用兩個不同的 nonce 加密的消息的 IV 永遠不會在任何消息塊中發生衝突。另一方面,根據您的建議,即使使用了不同的隨機數,一條消息中的某些塊也可以使用與第二條消息中的某些塊相同的密鑰流進行加密。

您可能認為這種情況發生的機率很低,但更準確的說法是它發生的機率取決於您使用相同密鑰加密的數據量。這意味著關於您可以使用相同的密鑰安全加密多少數據的聲明變得更加複雜,沒有充分的理由。

回到基於 nonce 與基於 random-IV 的密碼的選擇,如果密碼選擇了前者,那麼結合 nonce 和塊計數器的函式是單的只是一個好主意。當您可以直截了當地說最大消息長度是某某時,這會使對這些問題的推理變得更簡單。

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