AES
AES has been
developed to replace both DES and 3DES. AES was approved by the secretary of
Commerce as the official federal governmental standard on May 26, 2002.
Facts of AES are as follow: -
·
The block size used by AES is 128
bits.
·
The number of round varies from
10 to 14, depending on the key length.
- Three key lengths are available:
1.
128 bits
2.
192 bits
3.
256 bits
- Each round consists of four functions:
1)
ByteSub — nonlinear layer
2)
ShiftRow — linear mixing layer
3)
MixColumn — nonlinear layer
4)
AddRoundKey — key addition layer
·
AES treats 128-bit block as 4x4
byte array:
- The ByteSub operation is applied to each byte aij, that is, bij = ByteSub(aij). The result is the array of bij is:
- ü The first row does not shift.ü The second row circular left-shifts by one byte.ü The third row left shifts by two bytes.ü The forth row left shifts by three bytes.· The MixColumn operation is applied to each column of the 4 x 4 byte array as given below:
- ü MixColumn consists of shift and XOR operations.ü It is most effiently implemented as a lookup table.ü The overall operation is nonlinear.· The AddRoundKey operation is straightforward. It is similar to DES, a key schedule algorithm is used to generate a subkey for each round.The main features of AES are: -
1) Symmetric and parallel structure: - This gives the implementers of the algorithm a lot of flexibility. It also stands up well against cryptanalysis attacks.2) Adapted to modern processor: - The algorithm works well with modern processors (Pentium, RISC, parallel).3) Suited to modern processors: - The algorithm can work well with smart cards.In general, two version of AES are used: -1) A 128-bit plain-text block combined with a 128-bit key block.2) A 128-bit plane text block with a 256-bit key block.One-time Initialization Process: -a) Expand the 16-byte key to get the actual key block to be used.b) Do one-time initialization of the 16-byte plain-text block (called state).c) XOR the state with the key block.Process in Each Round: -1) Apply s-box to each of the plain-text bytes.2) Rotate row k of the plain-text block (i.e., state) by k bytes.3) Perform a mix-columns operation4) Matrix multiplication
