Determining orders of elements in extensions of finite fields

276 Views Asked by At

Let $\zeta := e^{\frac{2\pi i}{11}}$ and $p(x) \in \mathbb{F}_{2}[x]$. Do you know of a quick way to determine the multiplicative order of $p(\zeta)$ as an element of $\mathbb{F}_{2}(\zeta)$? I am trying to determine the order of some expressions of that persuasion in Mathematica, but it seems to me that there is not an optimal way to handle roots of unity in Mathematica.

One of the main difficulties I am facing comes from the fact that Mathematica does not reduce neatly the powers of $p(\zeta)$; obviously, if it were capable of doing so, I would only need to check which of the powers $p(\zeta)^k$, with $k\in \{1, 3, 11, 31, 33, 93, 341, 1023\}$, satisfy $(p(\zeta))^{k}=1$. How have you handle these types of issues when they popped up in your studies?

Thanks in advance for your suggestions, comments, and replies.

2

There are 2 best solutions below

4
On BEST ANSWER

reuns has handled the mathematical portion of your question, so I will address the software portion. I think Mathematica is very ill-suited to this sort of computation. I recommend trying the (free, open-source) software SageMath. Here is some example SageMath code:

F = GF(2)
R.<x> = PolynomialRing(F)
K = F.extension(x^10 + x^9 + x^8 + x^7 + x^6 + x^5 + x^4 + x^3 + x^2 + x + 1,'a')
a = K.gens()[0]
b = 1 + a^3 + a^5
b.multiplicative_order()

You can try running it yourself on the SageMathCell.

3
On

The minimal polynomial $f \in \mathbb{F}_2|x]$ of $\zeta_{11}$ is $\prod_{k=1}^d (x-\zeta_{11}^{2^k})$ where $d$ is the order of $2\bmod 11$.

$d= 10$ and $f(X) = \sum_{n=0}^{10} X^n$. Thus $\mathbb{F}_2(\zeta_{11})=\mathbb{F}_2[x]/(f(x))$ and its multiplicative group is cyclic with $2^{10}-1=1023= 3 . 11 . 31$ elements.

Therefore for any $\alpha \in \mathbb{F}_2(\zeta_{11})$ it suffice to compute $\alpha^{1023/p},p = 3,11,31$ to know its order.

In mathematica, you can implement $\mathbb{F}_2(\zeta_{11})$ as $\mathbb{Z}[M] \bmod 2$ where $M$ is the companion matrix of $f$, or you can implement the $\bmod (f(x),2)$ reduction for integer polynomials.