Block Cipher Modes of Operation

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 14

Block cipher modes of

operation

A block cipher operates on blocks of fixed length, often


64 or 128 bits. Because messages may be of any
length, and because encrypting the same plaintext
under the same key always produces the same output
Contents

 1 Initialization vector (IV)


 2 Electronic codebook (ECB)
 3 Cipher-block chaining (CBC)
 4 Cipher feedback (CFB)
 5 Output feedback (OFB)
Initialization vector (IV)

 All these modes (except ECB) require an initialization


vector, or IV -- a sort of 'dummy block' to kick off the
process for the first real block, and also to provide some
randomization for the process.
 There is no need for the IV to be secret, in most cases,
but it is important that it is never reused with the same
key.
 For CBC and CFB, reusing an IV leaks some information
about the first block of plaintext, and about any common
prefix shared by the two messages.
 For OFB , reusing an IV completely destroys security. In
CBC mode, the IV must, in addition, be randomly
generated at encryption time.
Electronic codebook (ECB)
 The message is divided into blocks and
each block is encrypted separately. The
disadvantage of this method is that
identical plaintext blocks are encrypted
into identical ciphertext blocks; thus, it
does not hide data patterns well. In some
senses, it doesn't provide serious
message confidentiality, and it is not
recommended for use in cryptographic
protocols at all.
Cipher-block chaining (CBC)
 CBC mode of operation was invented by
IBM in 1976. In the cipher-block
chaining (CBC) mode, each block of
plaintext is XORed with the previous
ciphertext block before being encrypted.
This way, each ciphertext block is
dependent on all plaintext blocks
processed up to that point. Also, to make
each message unique, an initialization
vector must be used in the first block.
CBC Contd..
 If the first block has index 1, the mathematical formula for CBC
encryption is
 while the mathematical formula for CBC decryption is
 CBC has been the most commonly used mode of operation. Its
main drawbacks are that encryption is sequential (i.e., it cannot be
parallelized), and that the message must be padded to a multiple of
the cipher block size. One way to handle this last issue is through
the method known as ciphertext stealing.
 Note that a one-bit change in a plaintext affects all following
ciphertext blocks, and a plaintext can be recovered from just two
adjacent blocks of ciphertext. As a consequence, decryption can be
parallelized, and a one-bit change to the ciphertext causes complete
corruption of the corresponding block of plaintext, and inverts the
corresponding bit in the following block of plaintext.
Propagating cipher-block chaining
(PCBC)
 The propagating cipher-block chaining mode
was designed to cause small changes in the
ciphertext to propagate indefinitely when
decrypting, as well as when encrypting.
Encryption and decryption routines are as
follows:
 PCBC is used in Kerberos v4 and WASTE, most
notably, but otherwise is not common. In fact
when, on a message encrypted in PCBC mode,
two adjacent blocks are exchanged, this does
not affect the subsequent blocks and is thus no
longer used in Kerberos v5.
Cipher feedback (CFB)
 The cipher feedback (CFB) mode, a
close relative of CBC, makes a block
cipher into a self-synchronizing stream
cipher. Operation is very similar; in
particular, CFB decryption is almost
identical to CBC encryption performed in
reverse:
Output feedback (OFB)
 The output feedback (OFB) mode makes a
block cipher into a synchronous stream cipher: it
generates key stream blocks, which are then
XORed with the plaintext blocks to get the
ciphertext. Just as with other stream ciphers,
flipping a bit in the ciphertext produces a flipped
bit in the plaintext at the same location. This
property allows many error correcting codes to
function normally even when applied before
encryption.
 Because of the symmetry of the XOR operation,
encryption and decryption are exactly the same:

You might also like