Block-Cipher
任意長度到塊大小的倍數
我想在不是塊大小倍數的任意長度上應用 CTR 模式。這是否可能不應用填充。
如果我們應用填充 - 解密算法如何知道這個填充!?
在 CTR 模式下,Enc 完成為
CT = Enc(k,PT) = Enc(k,ctr) xor PT
解密類似於加密,除了你 XOR Cipertext(CT) 而不是 Plaintext(PT)。
PT = Dec(k,CT) = Enc(k,ctr) xor CT
所以明文不需要是塊長度的倍數,也不需要填充,因為 PT 或 CT 永遠不會成為塊密碼的輸入。它的計數器被加密以生成隨機流,然後與明文或密文進行異或。您可以使用所需長度的生成比特流並丟棄剩餘的。
CTR MODE的更多細節和圖片來源