SubBytes Operation
The SubBytes operation is a nonlinear function which replaces one byte by a different predefined byte, given
where b^{1} is the г'th bit of the multiplicative inverse of the input byte b [19]. For efficiency purposes, the SubBytes function is often replaced by an equivalent 256 byte lookup table, designated as SBox. Alternatives to the implementation of this byte substitution considering composite fields also exist [3, 24, 26].
ShiftRows Operation
The ShiftRows operation, as the name implies, is a permutation of the 2nd, 3rd and 4th rows of the State matrix, 1,2, and 3 positions to the left, respectively. The inverse operation used in decryption, InvShiftRows, is the direct undoing of the former shifting, with the permutations of the same rows 1, 2, and 3 positions to the right. The 1st row of the State matrix does not suffer any changes in either one of these operations. Both operations are depicted in Fig. 1.2.
Fig. 1.2 AES ShiftRows and InvShiftRows operations
Table 1.1 Bytebybyte GF(2^{8}) multiplication
2^{n} multiplication 
Non 2^{n} multiplication 
01 ^{x B} = ^{(B} < ^{0)}mod(0x11B) 
03 x B = 02 x B ф 01x B 
02 ^{x B} = ^{(B} < ^{1)}mod(0x11B) 
05 x B = 04 x B ф 01 x B 
^{04 x B} = ^{(B} 2)mod(0x11B) 
07 x B = 04 x B ф 02 x B ф 01 x B 
08 X B = (B < 3)mod(0x 11B) 
