Advanced Encryption Standard (AES) is a Block Cipher that require the following:
- AES shall be publicly deﬁned.
- AES shall be a symmetric block cipher.
- AES shall be implementable in both hardware and software.
- AES shall be designed so that the key length may be increased as needed.
- AES block size n = 128 bits, key size k = 128, 192, 256 bits.
Encode input as 16-byte string by performing the following steps 10 times:
- (SubBytes) A fixed substitution step (The Rijndael S-Box).
- (ShiftRows) A fixed transposition step.
- (MixColumns) Consider input as four 4-byte sequences. Fixed substitution based on a linear transformation.
- (AddRoundKey) XOR with the key (bit operation).
Note: Each round uses a different round-key (that is derived in a standard way from the key).
The following link explains how AES Rijndael works?