GF(3^4)



Sara, x^4+x+1 is not irreducible over F3. So that will make a difference.

(%i1) display2d : false$
(%i2) gf_irreducible_p(x^4+x+1, 2);
(%o2) true

OK modulo 2, but

(%i3) gf_irreducible_p(x^4+x+1, 3);
(%o3) false

The factors over F3:

(%i4) gf_factor(x^4+x+1, 3);
(%o4) (x+2)*(x^3+x^2+x+2)

(%i5) gf_set(3, x^4+x+1);
(%o5) [false,x^4+x+1]

If I use x^4+x+1 for reduction this is the answer of gf_set in Maxima 5.29.1.

The answer in 5.30 will be of more information. I load the recent git
version of src/numth.lisp:

(%i6) load("/home/volker/Maxima/git_130219/numth.lisp")$

(%i7) gf_set(3, x^4+x+1);
(%o7) gf_data(3,4,x^4+x+1,false,81,52,[[2,2],[13,1]])

If display2d will be true, gf_set will answer what gf_info does:
(%i8) gf_info();
(%o8) "characteristic = 3, exponent = 4, reduction = x^4+x+1,
primitive = false, cardinality = 81, order = 52, factors_of_order =
[[2,2],[13,1]]"

That means the group (F3/(x^4+x+1))* has no generator, so it is not
cyclic. F3/(x^4+x+1) has 81 elements, the group (F3/(x^4+x+1))* only
52. F3/(x^4+x+1) is not a field. E.g. x+2 is no unit.

(%i9) gf_inv(x+2);
(%o9) false

Volker van Nek


2013/2/19 Sara Mussie <saramussie at gmx.net>:
> Hi Volker,
>
> that helps to get started. I use the irreducible primitive polynomial x^4+x+1. It shouldn't make any different right? but will look at the package now.
>
> Thank you.
>
> Regards,
>  Sara
>
> -------- Original-Nachricht --------
>> Datum: Tue, 19 Feb 2013 13:25:00 +0100
>> Von: Volker van Nek <volkervannek at gmail.com>
>> An: Sara Mussie <saramussie at gmx.net>
>> CC: Maxima at math.utexas.edu
>> Betreff: Re: [Maxima] GF(3^4)
>
>> Hi,
>>
>> there is a package for Galois fields. See
>> share/contrib/gf/gf_manual.pdf
>> for documentation. It is work in progress, so it will be slightly
>> different in the next version. In 5.29.1 a session looks like this.
>>
>> (%i1) display2d : false$
>> (%i2) gf_set(3, 4);
>> (%o2) [x,x^4+x+2]
>>
>> This defines F3^4 with x as a generator of the group (F3^4)* of order 80
>> (%i3) [gf_primitive(), gf_order()];
>> (%o3) [x,80]
>>
>> and with x^4+x+2 as the irreducible reduction polynomial.
>> (%i4) [gf_reduction(), gf_irreducible_p(x^4+x+2)];
>> (%o4) [x^4+x+2,true]
>>
>> Now I print 0 thru 80 literally, in base 3 and viewed as a polynomial in
>> F3^4.
>> (%i5) for n:0 thru 80 do printf(true, "~d : ~3R : ~a ~%", n, n,
>> gf_n2p(n))$
>> 0 : 0 : 0
>> 1 : 1 : 1
>> 2 : 2 : 2
>> 3 : 10 : x
>> 4 : 11 : x+1
>> 5 : 12 : x+2
>> 6 : 20 : 2*x
>> 7 : 21 : 2*x+1
>> 8 : 22 : 2*x+2
>> 9 : 100 : x^2
>> 10 : 101 : x^2+1
>> 11 : 102 : x^2+2
>> 12 : 110 : x^2+x
>> 13 : 111 : x^2+x+1
>> 14 : 112 : x^2+x+2
>> 15 : 120 : x^2+2*x
>> 16 : 121 : x^2+2*x+1
>> 17 : 122 : x^2+2*x+2
>> 18 : 200 : 2*x^2
>>
>> etc.
>>
>> Hope that helps to get started.
>> Volker van Nek
>>
>>
>> 2013/2/19 Sara Mussie <saramussie at gmx.net>:
>> > Hi everybody,
>> >
>> > hope all is well with you.
>> >
>> > I am working on a (2,n)-Threshold Secret Sharing Scheme based on the
>> vector space construction. My example works over the elements of GF(2)^4. I am
>> not sure about the right setting of my parameters for any random number of
>> participants.
>> >
>> > Can anybody tell me the elements of GF(3)^4 expressed as polynomials?
>> >
>> > V = GF(2)^4 ; 16 elements
>> >
>> > expressed as polynomials:
>> >
>> > V = {0, 1, X, X+1, X^2, X^2+1, X^2+X, X^2+X+1, X^3, X^3+1, X^3+X,
>> X^3+X+1,
>> > X^3 + X^2, X^3 + X^2 + 1, X^3 + X^2 + X, X^3 + X^2 + X + 1}
>> >
>> > T = GF(3)^4 ; 81 elements
>> > expressed as polynomials:
>> > ?
>> >
>> > Thanks you.
>> >
>> > Regards,
>> >  Sara
>> > _______________________________________________
>> > Maxima mailing list
>> > Maxima at math.utexas.edu
>> > http://www.math.utexas.edu/mailman/listinfo/maxima