Galois Field GF(2^8) Multiplier
Hard · Combinational · SystemVerilog
Design a combinational module that multiplies two 8-bit elements of $GF(2^8)$ using the AES irreducible polynomial $x^8 + x^4 + x^3 + x + 1$ ($0x11B$), producing the standard field product used in AES MixColumns, Reed-Solomon, and BCH codes.
Arithmetic in $GF(2^8)$ differs from ordinary integer arithmetic:
- **Addition** is bitwise XOR — there are no carries. - **Multiplication** is polynomial multiplication modulo the irreducible polynomial {POLY}.
The parameter {POLY} is fixed at $9'h11B$. Only the lower 8 bits of {POLY} ($0x1B$) are ever XOR'd during reduction — the $x^8$ term is implicit.
When either {a} or {b} is $0$, {product} must be $0$.
When {b} $= 1$, {product} must equal {a} (multiplicative identity).