![]() |
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. |
| All times are GMT +8. The time now is 07:06. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2026, vBulletin Solutions, Inc.
Always Your Best Friend: Aaron, JMI, ahmadmansoor, ZeNiX