View Single Post
  #1  
Old 10-10-2015, 21:24
BlackWhite BlackWhite is offline
Friend
 
Join Date: Apr 2013
Posts: 85
Rept. Given: 4
Rept. Rcvd 14 Times in 6 Posts
Thanks Given: 14
Thanks Rcvd at 56 Times in 25 Posts
BlackWhite Reputation: 14
How to compute the inverse of a polynomial under GF(2^8) ?

It's well known that AES cryptography algorithm uses
Galois Field GF(2^8) multiplication to process the step
MixColumn, and each column of the 4*4 matrix on encrypting
should multiply the polynomial 3X^3 + X^2 + X + 2 which
is usually notated as an array {0x03, 0x01, 0x01, 0x02},
while on decrypting, the matrix should multiply the inverse
of the polynominal mentioned above, namely 0x0B*X^3 +
0x0D*X^2 + 0x09*X + 0x0E which can also notated as
an array {0x0B, 0x0D, 0x09, 0x0E}.

Now I wonder two things:
(1) Why the multiplication of {0x03, 0x01, 0x01, 0x02} *
{0x0B, 0x0D, 0x09, 0x0E} mod (X^4 + 1) is not equal to 1 ?
My multiplication program's result is {0x06, 0x04, 0x06, 0x05} which is
expected to be {0x00, 0x00, 0x00, 0x01}, and my program
has been proven to be correct at processing MixColumn.

(2) If only one polynomial is known, e.g. {0x03, 0x01, 0x01, 0x02},
how can I compute its inverse mod (X^4 + 1), namely
{0x0B, 0x0D, 0x09, 0x0E}, and vice versa.

Thank you.

Last edited by BlackWhite; 10-10-2015 at 21:32.
Reply With Quote
The Following User Says Thank You to BlackWhite For This Useful Post:
p4r4d0x (10-16-2015)