The Advanced Encryption Standard (AES) computer security
standard is a symmetric block cipher that encrypts and decrypts
128-bit blocks of data. Standard key lengths of 128, 192, and
256 bits may be used. The algorithm consists of four stages that
make up a round which is iterated 10 times for a 128-bit length
key, 12 times for a 192-bit key, and 14 times for a 256-bit key.
The first stage “SubBytes” transformation is a non-linear byte
substitution for each byte of the block. The second stage
“ShiftRows” transformation cyclically shifts (permutes) the
bytes within the block. The third stage “MixColumns”
transformation groups 4-bytes together forming 4-term
polynomials and multiplies the polynomials with a fixed
polynomial mod (x^4+1). The fourth stage “AddRoundKey”
transformation adds the round key with the block of data. In
most ciphers, the iterated transform (or round) usually has a
Feistel Structure. Typically in this structure, some of the bits
of the intermediate state are transposed unchanged to anothe