Block ciphers are one of the most important primitives in cryptology. They are based on well-understood mathematical and cryptographic principles. Due to their inherent efficiency, these ciphers are used in many kinds of applications which require bulk encryption at high speed.Generally speaking, a block cipher consists of at least two closely related algorithms: block encryption and block decryption. Block encryption takes as an input a fixed-length block (known as the plaintext) and transform it into another block of the same length (known as the ciphertext) under the action of a fixed secret key that may or may not have the same length of the plaintext. A block cipher must be invertible in the sense that by using the block decryption algorithm it should be always possible to recover the original plaintext from the ciphertext and the secret key. Figure 1.1 shows schematically the situation just described. We stress that once that the plaintext has been encrypted using a given key then, a successful decryption can only be performed by knowing that key. Due to this feature, block ciphers are classified as a secret or symmetric key primitives.Formally a block cipher is considered to be secure if it behaves like a strong pseudorandom permutation, i.e., a block cipher is secure if an adversary cannot distinguish its output from a randomly chosen permutation. This definition of security for block ciphers is very strong, it implies that for any possible input, a secure block cipher should produce random outputs. It is unfortunate that there exists no formal security model for assessing whether a block cipher is or not secure or rather, how secure a cipher is. Hence, we rely on a block cipher by the fact that no one has been able to find an attack on it.Assuming that an adversary has managed to obtain a plaintext and the corresponding cipher text, then she can always try to obtain the n-bit secret key of a given symmetric block cipher by trying all possible keys, a procedure traditionally termed brute-force attack. We say that a block cipher has a security strength of n bits if the 2 Debrup Chakraborty and Francisco Rodríguez-Henríquez best known attack against it is not computationally cheaper than the brute force attack. Modern block ciphers typically use a block and key length ranging from 64 bits up to 256 bits. At the present state of the technology, block/key sizes of 128 bits are generally considered adequate in terms of both, security and efficiency.Block ciphers have been around for civilian/commercial use since 1971, when a team leaded by H. Feistel and his colleagues at IBM designed a family of ciphers known as Lucifer [2,53]. Early versions of Lucifer operated on 24-bit long plaintext blocks. The strongest variant which was released in 1973, operated on 128-bit blocks and 128-bit secret keys. A revised version of that Lucifer variant, known as the Data Encryption Standard (DES), was adopted as a US FIPS standard in 1974 [16, 42]. Across the years, DES became the most influential block cipher ever inspiring...