Encryption

用於 64 位輸入的計數器模式下的 AES

  • December 18, 2016

我正在閱讀如何將 AES 用於 64 位數據。我得到了這個答案:是否可以使用 64 位 I/O 塊大小來實現 AES?

這裡給出的答案是通過在逆流模式下執行 AES 64 位純文字產生 64 位密文。XOR但是當 AES 分組密碼產生的 128 位密文是64 位純文字時,我不能在這一點之下。它如何產生 64 位輸出?

AES 的計數器流模式的想法是逐塊生成 128 位的隨機位流,但您不必強制使用它的所有 128 位。

加密過程如下,考慮 $ m $ 64位消息:

  1. 產生 $ s = AES(Key, Nounce) $
  2. 請注意 $ s $ 是 128 位長所以 $ s = s_1 || s_2 $ 在哪裡 $ s_1 $ 和 $ s_2 $ 長度為 64 位。
  3. $ c = m \oplus s_1 $ 並放下 $ s_2 $ (無用)

解密過程是一樣的:

  1. 產生 $ s = AES(Key, Nounce) = s_1 || s_2 $ 在哪裡 $ s_1 $ 和 $ s_2 $ 長度為 64 位。
  2. $ m = c \oplus s_1 $

儘管我從 Crypto 的角度為您提供了答案,但我認為這個問題是題外話,因為它感覺更像是需要程式碼答案而不是 Crypto 答案(更面向數學)。

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