When implementing the Groebner Basis over Galois Field(2^m), I found an interesting thing: to represent and compute over GF, you have to map first.

for example

For example, lef . So we have a field with 2 = 4 elements, namely one representation of . The fields elements are 0, 1, x, and x+1 (choosing their cannonical representatives). In the ring of integers, the elements 0,1,2 and 3 are chosen to represent the field. To map between both sets the substitution map, substituting x with 2 is chosen, so we have

0 <-> 0
1 <-> 1
2 <-> x
3 <-> x+1.

A polynomial Ring Z[y[1..3]]; can be used to represent . Therefore, we map Z[y[1..3]]; to Z/(4)[1..3]]; and interpret each integer via the above described map. So the polynomial 3y[1] + 1y[2] + 5y[3] - 1 y[1]y[2]; is first mapped to 3y[1] + 1y[2] + 1y[3] +3 y[1]y[2]; which means the polynomial (*x* + 1)*y*_{1} + *y*_{2} + *y*_{3} + (*x*_{1})*y*_{1}*y*_{2}.

The problem here is how and why mapping in this way, i mean, why mapping like this:

0 <-> 0

1 <-> 1

2 <-> x

3 <-> x+1.

not mapping in this way :

0 <-> 1

1 <-> 0

2 <-> x+1

3 <-> x.

whether there is a relationship between Z(2^m) and GF(2^m), or whether there is a polynomial function to map between them. If there exist such functions, how many such functions exist?

Thank you.