Cryptography Reference
In-Depth Information
(i.e., the value of b i , j is replaced by that of b i , i + j mod 4 or, in other words, the byte
b i , j is moved to the position
(
,
)
in the state matrix.
Thus the state array is changed as follows:
i
j
i mod 4
b 0 , 0 b 0 , 1 b 0 , 2 b 0 , 3
b 1 , 0 b 1 , 1 b 1 , 2 b 1 , 3
b 2 , 0 b 2 , 1 b 2 , 2 b 2 , 3
b 3 , 0 b 3 , 1 b 3 , 2 b 3 , 3
b 0 , 0 b 0 , 1 b 0 , 2 b 0 , 3
b 1 , 1 b 1 , 2 b 1 , 3 b 1 , 0
b 2 , 2 b 2 , 3 b 2 , 0 b 2 , 1
b 3 , 3 b 3 , 0 b 3 , 1 b 3 , 2
:=
4.2.2.4 MixColumns
MixColumns is an operation that acts on the state by considering it as a 4
×
4matrix
over
F 2 8 specified in the standard
(whose bytes are written in hexadecimal below). This operation acts as follows:
F 2 8 and multiplying it by another 4
×
4 matrix over
:=
b 0 , 0 b 0 , 1 b 0 , 2 b 0 , 3
b 1 , 0 b 1 , 1 b 1 , 2 b 1 , 3
b 2 , 0 b 2 , 1 b 2 , 2 b 2 , 3
b 3 , 0 b 3 , 1 b 3 , 2 b 3 , 3
02 03 01 01
01 02 03 01
01 01 02 03
03 01 01 02
b 0 , 0 b 0 , 1 b 0 , 2 b 0 , 3
b 1 , 0 b 1 , 1 b 1 , 2 b 1 , 3
b 2 , 0 b 2 , 1 b 2 , 2 b 2 , 3
b 3 , 0 b 3 , 1 b 3 , 2 b 3 , 3
Note that when two matrices are multiplied, the result is the same as that obtained
by multiplying the first matrix by each column vector of the second one and building
the matrix which has these columns. Thus the name MixColumns comes from
viewing this operation as the result of the action of the above-defined matrix on the
state columns.
Exercise 4.3 Use Maple to check that the inverse of the matrix (over
F 2 8 )usedto
define the MixColumns operation is the matrix:
0e 0b 0d 09
09 0e 0b 0d
0d 09 0e 0b
0b 0d 09 0e
4.2.2.5 AddRoundKey
In this operation the state is modified by just doing the bitwise Xor with the round key
array K[i] corresponding to the round. Thus, in the i th round, the state is modified
as follows:
state := state K [ i ] .
 
Search WWH ::




Custom Search