The trivial mode of operation, ECB (Electronic Code Book), is insecure, as it maps repeated plaintext block always to the same ciphertext block.
Better encryption modes include:
- CBC (Cipher-Block Chaining, which feeds the previous ciphertext block back into next plaintext),
- PCBC (Propagating Cipher-Block Chaining, which feeds previous ciphertext and plaintext blocks back into the next plaintext),
- CFB (Cipher Feedback, which feeds the previous ciphertext block into the cipher, then combines with the plaintext),
- OFB (Output Feedback, which feeds the output of the cipher as the input for the next block, before combining with plaintext)
- CTR (Counter, which encrypts a nounce+counter and combines the result with the plaintext)
There are also some modes which support authenticated encryption (AE), or authenticated encryption with associated data (AEAD):
- OCB (offset codebook - adds a counter-like value to each plaintext block before and after encryption, and encrypts a checksum of the plaintext for authentication)
- CCM (Counter with CBC-MAC, combines CTR mode with a CBC-bases MAC)
- EAX (which combines CTR mode with OMAC for authentication and creation of an initialization vector from a nonce)
- GCM (Galois/Counter mode, combines CTR with a new authentication based on a finite field), and its variant SGCM (Sophie Germain Counter mode, which uses a different field).