ECB:
 CBC:

 Security:

 Security:

 Plaintext patterns are not concealed.
 + Plaintext patterns are concealed by XORing with previous ciphertext block.

 Input to the block cipher is not randomized; it is the same as the plaintext.
 +Input to the block cipher is randomized by XORing with the previous ciphertext block.

+More than one message can be encrypted with the same key.
 + More than one message can be encrypted with the same key.

 Plaintext is easy to manipulate, blocks can be removed, repeated, or interchanged.
 +/ Plaintext is somewhat difficult to manipulate; blocks can be removed from the beginning and end of the message, bits of the first block can be changed, and repetition allows some controlled changes.

 Efficiency:

 Efficiency:

+ Speed is the same as the block cipher.
 + Speed is the same as the block cipher.

Ciphertext is up to one block longer than the plaintext, due to padding.
  Ciphertext is up to one block longer than the plaintext, not counting the IV.

 No preprocessing is possible.
  No preprocessing is possible.

+ Processing is parallelizable.
 +/ Encryptions not parallelizable; decryption is parallelizable and has a randomaccess property.

 Faulttolerance:

 Faulttolerance:

 A ciphertext error affects one full block of plaintext.
  A ciphertext error affects one full block of plaintext and the corresponding bit in the next block.

 Synchronization error is unrecoverable.
  Synchronization error is unrecoverable.


CFB:
 OFB/Counter:

 Security:

 Security:

+ Plaintext patterns are concealed.
 + Plaintext patterns are concealed.

+ Input to the block cipher is randomized.
 + Input to the block cipher is randomized.

+ More than one message can be encrypted with the same key provided that a different IV is used.
 + More than one message can be encrypted with the same key, provided that a different IV is used.

+/ Plaintext is somewhat difficult to manipulate;blocks can be removed from the beginning and end of the message, bits of the first block can be changed, and repetition allows some controlled changes.
  Plaintext is very easy to manipulate, any change in ciphertext directly affects the plaintext.

 Efficiency:

 Efficiency:

+ Speed is the same as the block cipher.
 + Speed is the same as the block cipher.

 Ciphertext is the same size as the plaintext, not counting the IV.
  Ciphertext is the same size as the plaintext, not counting the IV.

+/ Encryption is not parallelizable; decryption is parallelizable and has a randomaccess property.
 + Processing is possible before the message is seen.

 Some preprocessing is possible before a block is seen; the previous ciphertext block can be encrypted.
 /+ OFB processing is not parallelizable; counter processing is parallelizable.

+/ Encryption is not parallelizable; decryption is parallelizable and has a randomaccess property.

 Faulttolerance:

 Faulttolerance:

 A ciphertext error affects the corresponding bit of plaintext and the next full block.
 + A ciphertext error affects only the corresponding bit of plaintext.

+Synchronization errors of full block sizes are recoverable. 1bit CFB can recover from the addition or loss of single bits.
 Synchronization error is unrecoverable.
