Block-Cipher

密文竊取和點擊率

  • March 24, 2018

為什麼 CTR 模式加密不使用密文竊取?

CTR模式下,計數器的加密會產生一個偽隨機位流。加密是用該比特流對明文進行異或運算,產生密文(解密時反之亦然)。我們不需要密文竊取,因為我們可以單獨從 IV 中生成比特流:它不依賴於明文;我們可以截斷該比特流,使其長度與明文匹配。


同樣的推理也適用於OFB模式。對於CFB,比特流依賴於明文,但對於最後一個塊,它不依賴於最後一個明文塊,因此我們也不需要密文竊取。

密文竊取對於CBCECB模式很有用,其中密文不是明文和一些偽隨機流的 XOR,而是分組密碼的輸出。

密文竊取 (CTS) 使塊密碼能夠處理可變長度消息,而無需使用填充擴展。CTR 不依賴於 CTS,因為它作為流密碼已經是可變長度的。

CTR 不使用 CTS,因為 CTS 意味著依賴於前一個塊,初始偽塊是初始化向量。


CTS 使 ECB、CBC 和 PCBC 能夠產生可變長度的輸出。但它們的使用意味著不同的成本:

  1. ECB-CTS:所有塊可以同時加密和解密,除了最後一個完整塊和剩餘的幾個字節。
  2. CBC-CTS:加密是嚴格順序的,而解密是並發的
  3. PCBC-CTS:加解密都是順序的

同時,CTR 作為並發流密碼,不依賴於任何其他塊。這種並發性減少了加密和解密延遲,從而在存在管道優化時顯著提高性能 - 就像使用 AES-NI 一樣。

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