Modes-of-Operation

為什麼 CTR 模式不需要屏蔽?

  • November 5, 2012

我一直在閱讀有關分組密碼模式的一些資訊,並且我有一個關於 CTR 的相對簡單的問題。從本質上講,我希望你們能很好地驗證我對事物的理解。

據我了解,點擊率執行以下操作:

  1. 獲取隨機數的第一個輸出(讓我們假設一個遞增的 int 用於我們的目的)
  2. 用密鑰加密隨機數。CTR 要求 key 和 nonce 的大小相同。
  3. 在加密的 nonce 和一部分明文之間執行一些無損操作(例如:XOR)
  4. 增加隨機數
  5. 隨意重複

這是我不明白的。CTR 應該將塊密碼轉換為流密碼,但您是否仍然需要為步驟 3 逐塊操作?

我錯過了什麼?

雖然您在生成偽隨機流時逐塊操作,但實際的加密步驟(即 XOR)是按位的,因此不需要填充消息。

例如,消息“Hello”將被處理如下(虛擬碼):

byte stream[16] = AES(Key, Nonce);
byte plaintext[5]  = "Hello";
byte ciphertext[5];
for i from 0 to 5:
   ciphertext[i] = plaintext[i] XOR stream[i];

超出消息長度的偽隨機流的剩餘字節被簡單地丟棄。

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