Block Cipher modes of
operation
Modes of Operation
block ciphers encrypt fixed size blocks
e.g., DES encrypts 64-bit blocks
need some way to en/decrypt arbitrary
amounts of data in practice
NIST SP 800-38A defines 5 modes
to cover a wide variety of applications
can be used with any block cipher
Electronic Codebook Book (ECB)
message is broken into independent
blocks that are encrypted
each block is a value which is substituted,
like a codebook, hence name
each block is encoded independently of
the other blocks
Ci = EK(Pi)
uses:secure transmission of single
values
Electronic
Codebook
Book
(ECB)
Advantages and Limitations of
ECB
Easy and simple
Can operate in parallel
message repetitions may show in ciphertext
if aligned with message block
particularly with data such as graphics
or with messages that change very little, which
become a code-book analysis problem
weakness is due to the encrypted message
blocks being independent
main use is sending a few blocks of data
Cipher Block Chaining (CBC)
message is broken into blocks
linked together in encryption operation
each previous cipher block is chained with
current plaintext block, hence name
use Initial Vector (IV) to start process
Ci = EK(Pi XOR Ci-1)
C-1 = IV
IVprevents same P from making same C
uses: bulk data encryption, authentication
Cipher
Block
Chaining
(CBC)
Advantages and Limitations of
CBC
a ciphertext block depends on all blocks
before it
any change to a block affects all following
ciphertext blocks... avalanche effect
need Initialization Vector (IV)
which must be known to sender & receiver
if sent in clear, attacker can change bits of first block,
by changing corresponding bits of IV
hence IV must either be a fixed value (as in EFTPOS)
or derived in way hard to manipulate
or sent encrypted in ECB mode before rest of message
or message integrity must be checked otherwise
Cipher FeedBack (CFB)
message is treated as a stream of bits
added to the output of the block cipher
result is feed back for next stage (hence name)
standard allows any number of bits (1,8, 64 or
128 etc) to be feed back
denoted CFB-1, CFB-8, CFB-64, CFB-128, etc.
most efficient to use all bits in block (64 or 128)
Ci = Pi XOR EK(Ci-1)
C-1 = IV
uses: stream data encryption, authentication
s-bit
Cipher
FeedBack
(CFB-s)
Advantages and Limitations of
CFB
most common stream mode
appropriate when data arrives in bits/bytes
limitation is need to stall while do block
encryption after every s-bits
errors propagate for several blocks after
the error
Output FeedBack (OFB)
message is treated as a stream of bits
output of cipher is added to message
output is then feed back (hence name)
Oi = EK(Oi-1)
Ci = Pi XOR Oi
O-1 = IV
feedback is independent of message
can be computed in advance
Output
FeedBack
(OFB)
Advantages and Limitations of
OFB
needs an IV which is unique for each use
if ever reuse attacker can recover outputs...
OTP
can pre-compute
bit errors do not propagate
Counter (CTR)
a “new” mode, though proposed early on
similar to OFB but encrypts counter value
rather than any feedback value
Oi = EK(i)
Ci = Pi XOR Oi
must have a different key & counter value
for every plaintext block (never reused)
again, OTP issue
uses: high-speed network encryptions
Counter
(CTR)
Advantages and Limitations of
CTR
efficiency
can do parallel encryptions in h/w or s/w
can preprocess in advance of need
good for bursty high speed links
random access to encrypted data blocks
provable security (good as other modes)
but must ensure never reuse key/counter
values, otherwise could break (cf OFB)