# How to create GF(2^8) and multiply by 8 by 8 matrix?

How i can create GF(2^8) and Multiplication with matrix 8 by 8 and Multiplication with matrix 1 by 8?

edit retag close merge delete

Sort by » oldest newest most voted

The question seems to be asking

• how to create the finite field (or "Galois field") $F$ with $2^8$ elements
• how to view an element in $F$ as a vector with 8 coordinates describing it as a linear combination of the generator's first 8 powers
• how to associate an 8 by 8 matrix to the operator of multiplication by an element in $F$

Sage allows to compute with elements in $F$ either via field algebra or via linear algebra.

Examples of how to go back and forth, and how the results match:

sage: F.<a> = GF(2^8)
sage: a
a

sage: va = vector(a)
sage: va
(0, 1, 0, 0, 0, 0, 0, 0)

sage: ma = a.matrix()
sage: ma
[0 0 0 0 0 0 0 1]
[1 0 0 0 0 0 0 0]
[0 1 0 0 0 0 0 1]
[0 0 1 0 0 0 0 1]
[0 0 0 1 0 0 0 1]
[0 0 0 0 1 0 0 0]
[0 0 0 0 0 1 0 0]
[0 0 0 0 0 0 1 0]

sage: a_a = a * a
sage: a_a
a^2

sage: vaa = vector(a_a)
sage: vaa
(0, 0, 1, 0, 0, 0, 0, 0)

sage: ma_va = ma * va
sage: ma_va
(0, 0, 1, 0, 0, 0, 0, 0)

sage: F(ma_va)
a^2

more

i can't computing inverse GF(2^8) and Multiplication whith matrix 8 by 8