# Block Ciphers

Contrary to stream ciphers in which the message, represented as a stream of binary digits (bits), is encrypted, bit by bit, a Block Cipher is symmetric-key cipher which encrypt fixed-length groups of bits into fixed length group of bits. The message is broken up into substrings (called blocks) of a fixed length $n>1$ and encrypted block by block. The integer $n$ is called the block-length.
A block ciphers consists of a reversible algorithm that takes two inputs, a block of length $n$ and a key of length $n_k$ and outputs a block of length $n$. For example in the case of (the superseded) DES, $n=64$, i.e. the block-length is 64 bits long and the key-length is 56 Thus, for each block, the input is 64 bits, the output is 64 bits and the key-length is 56, so there are $2^{56}$ possible transformations.

Currently NIST approves only 3 types of block ciphers AES, Triple-DES and Skipjack.

At a basic level, block ciphers are a combination of the two fundamental techniques for construction of ciphers advocated by Shannon in 1949, namely, confusion and diffusion.

Confusion tends to block the cryptanalyst from obtaining statistical patterns and redundancies in the cipher text arising from the plain text. Thus, the statistical dependency of the cipher text on the plain text is obfuscated. The easiest way to cause confusion is through the use of substitutions. In the case of a binary string, we substitute various ones and zeros by zeros and ones respectively, according to a pre-determined formula.

Diffusion dissipates the redundancy of the plain text by spreading it over the cipher text. For the moment, we can think of it informally as statistical patterns. Diffusion implies that, if we change just one letter or character in the plain text, we cause a big change in the cipher text. Thus, we will need a large amount of cipher text to capture redundancy in the plain text.