Question

In: Advanced Math

Arithmetic in the AES MixColumns operation (22 marks) Recall that the MixColumns operation in AES performs...

Arithmetic in the AES MixColumns operation
Recall that the MixColumns operation in AES performs arithmetic on 4-byte vectors using the
polynomial M(y) = y4 + 1. In this arithmetic, we have M(y) = 0, so y4 = 1.
(a) In this part of the problem, we consider multiplication of 4-byte vectors (viewed as polyno-
mials of degree ≤ 3 whose coefficients are bytes) by powers of y.
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, yi = yj for any integer i ≥ 0, where j ≡ i (mod 4) with 0 ≤ j ≤ 3.
iii. Use part (a) (ii) to formally prove that multiplication of any 4-byte vector byyi (i≥0)isacircularleftshiftofthevectorbyjbytes,wherej≡i(mod4)with 0 ≤ j ≤ 3.
(b) Next, we consider arithmetic involving the coefficients of the polynomial c(y) = (03)y3 + (01)y2 + (01)y + (02) ,
that appears in MixColumns, where the coefficients of c(y) are bytes written in hexadeci- mal (i.e. base 16) notation. Arithmetic involving this polynomial requires the computation of products involving the bytes (01), (02) and (03) in the Rijndahl field GF(28). Recall that in this field, arithmetic is done modulo m(x) = x8 + x4 + x3 + x + 1.
i. Write the bytes (01), (02), (03) as their respective polynomial representatives c1(x), c2(x) and c3(x) in the Rijndahl field GF(28).
ii. Let b = (b7 b6 ···b1 b0) be any byte, and let d = (02)b be the product of the bytes (02) and b in the Rijndahl field GF(28). Then d is again a byte of the form d = (d7 d6 · · · d1 d0). Provide symbolic expressions for the bits di, 0 ≤ i ≤ 7, in terms of the bits bi of b.
iii. Provide analogous expressions as in part (b) (ii) for the byte product e = (03)b, where b = (b7 b6 ···b1 b0) is any byte.
(c) The
mial c(y) of part (b). In this part of the problem, you will evaluate such products symbol- ically.
1
MixColumns operation performs multiplication of 4-byte vectors by the polyno-

i. Let s(y) = s3y3+s2y2+s1y+s0 be a polynomial whose coefficients are bytes. Symbolically compute the product t(y) = s(y)c(y) mod y4 + 1. The result should be a polynomial of the form t(y) = t3y3+t2y2+t1y+t0 where t3,t2,t1,t0 are bytes. Provide symbolic expressions for the bytes ti, 0 ≤ i ≤ 3, in terms of the bytes si. The equations should consist of sums of byte products of the form 01si, 02si, 03si, 0 ≤ i ≤ 3. You need not compute these individual byte products as you did in part (b).
ii. Write your solution of part (c) (i) in matrix form; i.e. give a 4 × 4 matrix C whose entries are bytes such that
 t0   s0   t1  = C  s1 
  t2   s2 
t3 s3
Note that this yields the matrix representation of MixColumns presented (without
proof) in class.

Solutions

Expert Solution


Related Solutions

Write a C++ arithmetic calculator program that performs four arithmetic operations namely addition, subtraction, multiplication and...
Write a C++ arithmetic calculator program that performs four arithmetic operations namely addition, subtraction, multiplication and division. This program prompts user to enter data in the following order: First data is the number, second data is an operator and the third data is the number. You are required to: Write a function for addition. Write a function for subtraction. Write a function for multiplication. Write a function for division. Write a main program which calls four functions based on the...
Information Security -Why are modes of operation needed for block ciphers like AES?
Information Security -Why are modes of operation needed for block ciphers like AES?
For this week's assignment analyze a family's spending habits by creating a program that performs arithmetic...
For this week's assignment analyze a family's spending habits by creating a program that performs arithmetic calculations. The program should ask the user to enter information for the following questions. How much does the family spend on groceries per month? How much does the family spend on dining out per month? How much does the family spend on entertainment per month? How much does the family spend on rent/mortgage per month? How much does the family spend on utilities per...
Write a program that performs the following two tasks in java Reads an arithmetic expression in...
Write a program that performs the following two tasks in java Reads an arithmetic expression in an infix form, stores it in a queue (infix queue) and converts it to a postfix form (saved in a postfix queue). Evaluates the postfix expression. Use linked lists to implement the Queue and Stack ADTs. DO NOT USE BUILT IN JAVA CLASSES
Write a program that performs the following two tasks: Reads an arithmetic expression in an infix...
Write a program that performs the following two tasks: Reads an arithmetic expression in an infix form, stores it in a queue (infix queue) and converts it to a postfix form (saved in a postfix queue). Evaluates the postfix expression. Use the algorithms described in class/ lecture notes. Use linked lists to implement the Queue and Stack ADTs. Using Java built-in classes will result in 0 points. You must use your own Stack and Queue classes (my code is a...
Postfix Arithmetic Operation (C++) Friday, 27 September 2019, 04:21 PM Use stack to implement postfix arithmetic...
Postfix Arithmetic Operation (C++) Friday, 27 September 2019, 04:21 PM Use stack to implement postfix arithmetic operation. Input Many test cases until EOF. Each line is a postfix arithmetic operation formula. There is no blank between the numbers, and the number only is 0-9. Output The result of each line. But if the postfix arithmetic operation formula is wrong (it means you can't get the correct answer), please output "Input Error". Sample Input 35+ 3+5 63/14-*3+8- Sample Output 8 Input...
This problem requires you to prompt the user for some information, and apply simple arithmetic operation...
This problem requires you to prompt the user for some information, and apply simple arithmetic operation to generate an output. We all know that driving is expensive. So let's write a program to observe this. Your job is to prompt the driver for miles per gallon and gas price (in dollars) per gallon You should prompt the user with the words: Enter miles per gallon: at which time the users enters a number, and then Enter the gas price:at which...
Question 11 Which formula below successfully performs an operation on a range of values stored in...
Question 11 Which formula below successfully performs an operation on a range of values stored in Excel cells? =SQRT( A1:A15) = EXP( A1:A15) =LOG(A1:A15) =ABS(A1:A15) =SUM(A1:A15) Question 12 Cells A1 through A10 contain the values shown in the table below. What does this formula evaluate to? = SUM(A1:A10) - MAX( A1:A5 ) 3 1 4 6 2 0 5 7 6 2 0 29 30 36 nothing - there is a syntax error in one of the formulas Question 13...
A hospital outpatient clinic performs four types of operations. The profit per operation, as well as...
A hospital outpatient clinic performs four types of operations. The profit per operation, as well as the minutes of X-ray time and laboratory time used, are given in the table below. The clinic has 500 private rooms and 500 intensive care rooms. Type 1 and type 2 operations require a patient to stay in an intensive care room for one day, whereas type 3 and type 4 operations require a patient to stay in a private room for one day....
Please do this operation in "R studio" Please recall the vectors that we created for the...
Please do this operation in "R studio" Please recall the vectors that we created for the topic "Data Frames". name = c('Nikola','Albert', 'Marie','Isaac','Graham','Lise', 'Rosalind') surname = c('Tesla','Einstein','Curie', 'Newton', 'Bell', 'Meitner', 'Franklin') gender = c('Male','Male','Female','Male','Male','Female','Female') years = c(87,76,75,84,77,89,81) field_of_study = c('Engineering','Physics','Chemistry','Physics','Engineering','Physics','Chemistry') Please check for the function "cut" and use it to create a data frame named "scientists" which has the values name surname gender years field_of_study years_bin 1 Nikola Tesla Male 87 Engineering (80,90] 2 Albert Einstein Male 76 Physics (70,80]...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT