In cryptography, a block cipher is a type of symmetric key cipher which operates on groups of bits of a fixed length, termed blocks. This is in contrast to stream ciphers which encrypt each bit of the plaintext individually before moving on to the next.
Block sizes are typically 64 or 128 bits, though some ciphers have a variable block size. To encrypt a message that is longer than the block size, one of the modes of operation must be used. The modes differ in regard to error propagation, ease of random access and vulnerability to certain types of attack.
Most block ciphers are constructed by composing several simpler functions — an iterated block cipher (see also Product cipher). Each iteration is termed a round, and there are rarely less than 4 or more than 64 of them. Many block ciphers can be categorised as Feistel networks, or more generally as substitution-permutation networks. Arithmetic operations, logical operations (especially XOR), S-boxes and various permutations are all frequently used as components.
Lucifer is considered by many to be the first civilian block cipher, developed at IBM in the 1970s based on work done by Horst Feistel. A revised version of the algorithm was adopted as a US government FIPS standard, the Data Encryption Standard (DES). It was chosen by the US National Bureau of Standards (NBS) after a public invitation for submissions and some internal changes by NBS (and, potentially, the NSA). DES was publicly released in 1976 and has been widely used. DES has been superseded as a Federal Standard by the Advanced Encryption Standard (AES); AES is permitted for use with secret data under some circumstances.
DES has a block size of 64 bits and a key size of 56 bits. 64-bit blocks became common in block cipher designs after DES. Key length depended on several factors, including government regulation. Many observers in the 1970s commented that the 56-bit key length used for DES was too short. Today, block sizes are often 128 bits or larger, and key sizes, though still regulated in some places, are also often 128 bits or more.
DES was designed, among other things, to resist a certain cryptanalytic attack known to the NSA and rediscovered by IBM, though unknown publicly until rediscovered again and published by Eli Biham and Adi Shamir in the late 1980s. The technique is called differential cryptanalysis and remains one of the few general attacks against block ciphers; linear cryptanalysis is another, but was probably unknown, even to NSA, prior to its publication by Mitsuru Matsui.
DES prompted a large amount of work and publications in cryptography and cryptanalysis in the open community.
In addition to linear and differential cryptanalysis, there is a growing catalog of attacks: truncated and partial differential cryptanalysis, slide attacks, boomerang attacks, square and integral attacks, the XSL attack, impossible differential cryptanalysis and algebraic attacks. For a new block cipher design to have any credibility, it must demonstrate evidence of security against known attacks.
3-Way, AES, Blowfish, Camellia, CAST-128, CAST-256, CMEA, DEAL, DES, DES-X, FEAL, GDES, GOST, IDEA, Iraqi block cipher, KASUMI, Khafre, KHAZAD, Khufu, LOKI89/91, LOKI97, Lucifer, MAGENTA, MARS, MISTY1, MMB, RC2, Red Pike, S-1, SAFER, Serpent, SHARK, Skipjack, Square, TEA, Triple DES, Twofish, RC5, RC6, XTEA.
| Block ciphers |
| Algorithms: 3-Way | AES | Blowfish | Camellia | CAST-128 | CAST-256 | CMEA | DEAL | DES | DES-X | FEAL | G-DES | GOST | IDEA | Iraqi | KASUMI | KHAZAD | Khufu and Khafre | LOKI89/91 | LOKI97 | Lucifer | MacGuffin | Madryga | MAGENTA | MARS | MISTY1 | MMB | NewDES | RC2 | RC5 | RC6 | Red Pike | S-1 | SAFER | Serpent | SHACAL | SHARK | Skipjack | Square | TEA | Triple DES | Twofish | XTEA |
| Design: Feistel network | Key schedule | Product cipher | S-box | SPN |
| Attacks: Brute force | Linear / Differential cryptanalysis | Mod n | XSL |
| Standardisation: AES process | CRYPTREC | NESSIE |
| Misc: Avalanche effect | Block size | IV | Key size | Modes of operation | Piling-up lemma | Weak key |