Aes

某些分組密碼模式是否對隨機數進行加密,然後將其與數據進行異或?

  • June 2, 2021

閱讀https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Counter_(CTR)看起來 CTR(和其他一些模式)加密了 nonce(加上計數,用於 CTR)而不是明文。

然後將明文與加密的隨機數進行異或運算以生成密文。

我是否正確理解了這一點?

為什麼要這樣循環?

是的,CTR (resp. OFB) 模式首先“加密隨機數”然後增加它(分別用塊加密的結果替換它),然後重複,產生一個密鑰流;明文只是與密鑰流異或,形成密文。實際上,CTR 和 OFB 是由分組密碼製成的流密碼。

優點包括:

  • 解密和加密是一樣的。
  • 對於 AES,軟體中的塊解密本質上比塊加密的計算密集度更高,從而降低了解密成本。
  • 無需填充明文以阻止邊界;截斷密鑰流就足夠了。
  • 可以在數據可用之前生成密鑰流,從而減少加密/解密延遲。
  • 對於 CTR,準備密鑰流是可並行的。與 CBC 相比,其中加密必須是順序的(除了要求數據的可用性之外)。

唯一的缺點是密文的延展性(意味著切換一點密文只會切換解密明文中的相應位),這是流密碼固有的。但是延展性對於像 AES-GCM(使用 CTR 模式進行加密)這樣的經過身份驗證的加密模式來說不是問題,因為依賴 CBC 模式的弱完整性屬性無論如何都是災難的根源。

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