Page 48 - DCAP516_COMPUTER_SECURITY
P. 48

Computer Security




                    Notes          In the MixColumns step, each column of the state is multiplied with a fixed polynomial c(x).
                                   In the MixColumns step, the four bytes of each column of the state are combined using an
                                   invertible linear transformation. The MixColumns function takes four bytes as input and outputs
                                   four bytes, where each input byte affects all four output bytes. Together with ShiftRows,
                                   MixColumns provides diffusion in the cipher.

                                   During this operation, each column is multiplied by the known matrix that for the 128 bit key is









                                   The multiplication operation is defined as: multiplication by 1 means leaving unchanged,
                                   multiplication by 2 means shifting byte to the left and multiplication by 3 means shifting to the
                                   left and then performing xor with the initial unshifted value. After shifting, a conditional xor
                                   with 0x1B should be performed if the shifted value is larger than 0xFF.
                                                                                            8
                                   In more general sense, each column is treated as a polynomial over GF(2 ) and is then multiplied
                                          4
                                                                           3
                                   modulo x +1 with a fixed polynomial c(x) = 0x03 · x  + x  + x + 0x02. The coefficients are displayed
                                                                              2
                                   in their hexadecimal equivalent of the binary representation of bit polynomials from GF(2)[x].
                                   The MixColumns step can also be viewed as a multiplication by a particular MDS matrix in a
                                   finite field. This process is described further in the article Rijndael mix columns.
                                   The AddRoundKey Step

                                                            Figure 4.6: AddRoundKey Step


























                                   In the AddRoundKey step, each byte of the state is combined with a byte of the round subkey
                                   using the XOR operation (“).
                                   In the AddRoundKey step, the subkey is combined with the state. For each round, a subkey is
                                   derived from the main key using Rijndael’s key schedule; each subkey is the same size as the
                                   state. The subkey is added by combining each byte of the state with the corresponding byte of
                                   the subkey using bitwise XOR.




          42                                LOVELY PROFESSIONAL UNIVERSITY
   43   44   45   46   47   48   49   50   51   52   53