In cryptography, residual block termination is a variation of cipher block chaining mode (CBC) that does not require any padding. It does this by effectively changing to cipher feedback mode for one block. The cost is the increased complexity.
- Encrypt the ⌊N/L⌋ full blocks of plaintext using the cipher block chaining mode;
- Encrypt the last full encrypted block again;
- XOR the remaining bits of the plaintext with leftmost bits of the re-encrypted block.
- Decrypt the ⌊N/L⌋ full encrypted blocks using the Cipher Block Chaining mode;
- Encrypt the last full encrypted block;
- XOR the remaining bits of the ciphertext with leftmost bits of the re-encrypted block.
Proof that this decryption procedure really is the inverse of the encryption procedure is left as an exercise for the reader.