A block cipher is a symmetric key encryption method in which multiple transformations are applied to standard block sizes of information. 64-bits is a typical block size for many block ciphers. AES and DES are two examples of block ciphers.
Block ciphers contrast with stream ciphers.
Block ciphers can increase their level of complexity by applying different modes. Modes increase the variability of the block cipher transformation by seeding each transformation with extra information or the results of earlier transformations. Block cipher modes include:
ECB represents a minimal approach. In ECB, each plaintext block is encrypted independently of the others. This allows for fairly easy recognition of underlying patterns.
CBC uses an initialization vector (IV) to combine with the first block of plaintext before encryption. The resulting block of ciphertext is then combined with the next block of plaintext before the second block is encrypted. This pattern repeats until all the plaintext blocks are encrypted. As a result, any given block of ciphertext depends on all previous transformations.
CFB causes a block cipher to act as a stream cipher. In CFB, an IV is combined with a key to produce a keystream. This keystream is then XOR'd with the plaintext to produce a ciphertext. This ciphertext is then used as a keystream for the next plaintext block. This pattern repeats until all the plaintext blocks are encrypted.
OFB is similar to CFB. The difference is, in OFB, the original keystream produced by the IV and the key is used for every following transformation. Ciphertext results of one transformation do not feed into the next one.
CTR is to OFB. However, in CTR, instead of an IV, the output from a mathematical function is used to combine with the key to produce a keystream for each block. The function can be a simple count, or it can be something more complex. The main requirement of the function is simply that its values do not repeat for a long time, making each keystream unique.
References: