Description of the cipher
AES is based on a design principle known as a substitution-permutation network, and is fast in both software and hardware. Unlike its predecessor DES, AES does not use a Feistel network. AES is a variant of Rijndael which has a fixed block size of 128 bits, and a key size of 128, 192, or 256 bits. By contrast, the Rijndael specification per se is specified with block and key sizes that may be any multiple of 32 bits, both with a minimum of 128 and a maximum of 256 bits.
AES operates on a 4×4 column-major order matrix of bytes, termed the state, although some versions of Rijndael have a larger block size and have additional columns in the state. Most AES calculations are done in a special finite field.
The key size used for an AES cipher specifies the number of repetitions of transformation rounds that convert the input, called the plaintext, into the final output, called the ciphertext. The number of cycles of repetition are as follows:
· 10 cycles of repetition for 128-bit keys.
· 12 cycles of repetition for 192-bit keys.
· 14 cycles of repetition for 256-bit keys.
Each round consists of several processing steps, including one that depends on the encryption key itself. A set of reverse rounds are applied to transform ciphertext back into the original plaintext using the same encryption key.
Symmetric cryptosystem. DES
DES is a block cipher; it encrypts data in 64-bit blocks. A 64-bit block of plaintext goes in one end
of the algorithm and a 64-bit block of ciphertext comes out the other end. DES is a symmetric
algorithm: The same algorithm and key are used for both encryption and decryption
The key length is 56 bits.
Outline of the Algorithm
DES operates on a 64-bit block of plaintext. After an initial permutation, the block is broken into a right half and a left half, each 32 bits long. Then there are 16 rounds of identical operations, called
Function f, in which the data are combined with the key. After the sixteenth round, the right and left halves are joined, and a final permutation finishes off the
In each round the key bits are shifted, and then 48 bits are selected from the 56 bits
of the key. The right half of the data is expanded to 48 bits via an expansion permutation, combined
with 48 bits of a shifted and permuted key via an XOR, sent through 8 S-boxes producing 32 new bits, and permuted again. These four operations make up Function f. The output of Function f is then combined with the left half via another XOR. The result of these operations becomes the new right
half; the old right half becomes the new left half. These operations are repeated 16 times, making 16 rounds of DES. If Bi is the result of the ith iteration, Li and Ri are the left and right halves of Bi, Ki is the 48-bit key
for round i, and f is the function that does all the substituting and permuting and XORing with the
With DES it is possible to use the same function to encrypt or decrypt a block. The only difference is
that the keys must be used in the reverse order. That is, if the encryption keys for each round areK1
K2 K3,...,K16 then the decryption keys are K16 K15 K14, ..., K1. The algorithm that generates the key
used for each round is circular as well. The key shift is a right shift and the number of positions
shifted is 0,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1.