In cryptography, a block cipher is a symmetric key cipher which operates on a groups of bits of fixed length, called "blocks", using an exact transformation. During encryption, a block cipher algorithm might take (for example) a 128-bit block of plaintext as input, and output a corresponding 128-bit block of ciphertext. The exact transformation is controlled using a second input — the secret key. Decryption is similar: the decryption algorithm takes, in this example, a 128-bit block of ciphertext together with the secret key, and output the original 128-bit block of plaintext.