# 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?

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

2

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
```

Asked: **
2020-12-20 09:50:58 -0600
**

Seen: **52 times**

Last updated: **Dec 20 '20**

How to express unknown coefficients in GF(2^8)?

Convert polynomial to integer value ?

Why GF(256) matrix only have zero and one number?

How to use finite fields in cython?

Unhandled SIGABRT when working with polynomial rings

What is the .modulus() function doing?

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.

Was the answer helpful? Did it answer the question you had in mind?

Follow-up question at