Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Recall that the MixColumns operation in AES performs arithmetic on 4-byte vector

ID: 3600835 • Letter: R

Question

Recall that the MixColumns operation in AES performs arithmetic on 4-byte vectors using the polynomial M(y) = y 4 + 1; remember that for this type of arithmetic, we have y 4 = 1.

(i) (Formally prove that in this arithmetic, multiplication of any 4-byte vector by y is a circular left shift of the vector by one byte.

(ii) Prove that in this arithmetic, y i = y j for any integer i 0, where j i (mod 4) with 0 j 3.

(iii) Formally prove that multiplication of any 4-byte vector by y i (i 0) is a circular left shift of the vector by j bytes, where j i (mod 4) with 0 j 3.

Explanation / Answer

In the given sequence, since we are given the first term, we can use that value to find the second term, and once we know the second term, we can use that value to find the third term, and so on.

t_1 = 23

t_2 = t_1 – 3 = 23 – 3 = 20

t_3 = t_2 – 3 = 20 – 3 = 17

t_4 = t_3 – 3 = 17 – 3 = 14

t_5 = t_4 – 3 = 14 – 3 = 11

t_6 = t_5 – 3 = 11 – 3 = 8

t_7 = t_6 – 3 = 8 – 3 = 5

t_8 = t_7 – 3 = 5 – 3 = 2

t_9 = t_8 – 3 = 2 – 3 = -1

t_10 = t_9 – 3 = -1 – 3 = -4

So n = 10.

Alternative Solution:

Notice that starting from the second term, each term is 3 less than the previous term, which makes the sequence an arithmetic sequence. In an arithmetic sequence, the nth term, a_n, can be found by using the formula a_n = a_1 + d(n – 1) in which a_1 is the first term and d is the common difference.

Since we are given t_n, we can modify the formula to t_n = t_1 + d(n – 1) in which t_1 = 23 and d = -3. So we have:

t_n = t_1 + d(n – 1)

-4 = 23 + (-3)(n – 1)

-27 = -3(n – 1)

9 = n – 1

10 = n