Description
Part 1: Written Problems

For polynomial arithmetic with coefficients in Z_{11} , perform the following calculations.
(x^{2} + 2x + 9 )(x^{3} + 11x^{2} + x + 7 )


(8x^{2} + 3x + 2 )(5x^{2} + 6 )


Determine which of the following polynomials are reducible over GF(2).

x^{2} + 1



x^{2} + x + 1



x^{4} + x + 1


Determine the gcd of the following pairs of polynomials. (x^{4}+ 8x^{3} + 7x + 8) and (2x^{3} + 9x^{2} + 10x + 1) over GF(11)

Develop a set of tables similar to Table 5.3 for GF(3) with m(x) = x^{2} + x + 1.

In the discussion of MixColumns and InvMixColumns, it was stated that
b(x) = a^{−}^{1}(x) mod (x^{4} + 1), where a(x) = {03}x^{3} + {01}x^{2} + {01}x + {02} and b(x) = {0B}x^{3} + {0D}x^{2} + {09}x +{0E.} Show that this is true.

Given the plaintext {0F0E 0D0C 0B0A 0908 0706 0504 0302 0100} and the key {0202 0202 0202 0202 0202 0202 0202 0202}:


Show the original contents of State, displayed as a 4 × 4 matrix.



Show the value of State after initial AddRoundKey.



Show the value of State after SubBytes.



Show the value of State after ShiftRows.



Show the value of State after MixColumns.

This programming problem is to use an AES library to encode messages in various modes and padding methods. The purpose is to get familiar with the parameter setting and function calls. You can use either OpenSSL or Crypto++. Please find the related library information and examples on the Internet.

Encrypt the message (in ASCII)
AES is efficient in both software and hardware.
by the key “1234567890123456” (ASCII) and the following specifications.

Mode
Initial Vector (IV)
Output format
Padding method (see
Wiki Padding for details)
ECB
Hex
Zeros Padding
ECB
Hex
PKCS#7
CBC
0000 0000 0000 0000 (ASCII)
Hex
Zeros Padding
CBC
0000 0000 0000 0000 (ASCII)
Hex
PKCS#7

Test data: Plaintext = “Hello World!” by the above specification.


ECB, Zeros Padding ^{} 2e98 68aa 6eae 7218 4b4a 8881 f3df b26b

ECB, PKCS Padding ^{} 6f36 4e3f 45c8 7893 0e1d 88be 8458 3a32 a1f3 2c84 be35 5e41 ba35 0faf e9b6 b001



CBC, Zeros Padding ^{} ddc1 94e6 d0f1 85ae 03a0 4dd4 1504 35b4

CBC, PKCS Padding ^{} 8fed aeca 2fe9 fa8a 9f35 0468 0258 e80c

817b c015 a162 57ff 845b fa0c 4dc2 fcbb

Submission: you need to upload two files


asemodes.cpp or aesmodes.c: the program of generating the answers.



Out.txt: 4 ciphertexts separated by empty lines.

IV. Onsite test: Will announce the venue and schedule later. The problem is to use your programs to decrypt some ciphertexts on the spot.