trace over finite field extension
- To: mathgroup at smc.vnet.net
- Subject: [mg6274] trace over finite field extension
- From: Daniel Lichtblau <danl>
- Date: Thu, 6 Mar 1997 09:49:19 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Pantelimon Stanica wrote:
>
> Hello, everyone!
>
> I would like to compute the function f(x)=Trace(x^(15)) defined on an
> extension of degree 8 of a field of char=2, i.e. Z_2. The field of degree 8
> could be defined by the polynomial x^8+x^6+x^5+x^4+1 over Z_2.
> I would like to write the function as a string of 0,1. Can anyone help?
> I would appreciate any input.
> P. Stanica
>
> --
> anon
Apologies if I already responded to this. You can do it as below (I
think I have it correct, but better double check). I do not know what
you have in mind re writing as a string of 0,1 (back in the old days, I
might have asked what machine you had in mind, and whether Assembler was
allowable). If you mean want to translate the result to a bit vector in
this form, it is not difficult to do so.
In[34]:= poly = x^8+x^6+x^5+x^4+1;
In[35]:= InputForm[elem = PolynomialReduce[x^15, poly, Modulus->2][[2]]]
Out[35]//InputForm= 1 + x^6 + x^7
In[36]:= frob[z_] := z^2
In[37]:= InputForm[trace = PolynomialReduce[Apply[Plus,
Table[frob[elem]^k, {k,8}]], poly, Modulus->2][[2]]]
Out[37]//InputForm= x + x^2 + x^3 + x^4 + x^6
Note that for larger fields one can do this more efficiently using the
standard package Algebra`PolynomialPowerMod`, or any other strategy that
computes the successive powers of the Frobenius automorphism more
efficiently.
Daniel Lichtblau
Wolfram Research
danl at wolfram.com