2

I am testing Prime polynomials in $GF(2)$ and have noticed a pattern that I hope will help.

There's a calculator here if you want to familiarise yourself with polynomials over $GF(2)$.

I am testing for primitivity and am therefore, given a polynomial of degree $d$, testing to see if it divides any polynomial $2^n + 1$ for $n$ from $1$ to $2^p-1$.

For example, given the prime polynomial $x^6 + x^3 + 1$ I can see that $(x^9 + 1)/(x^6 + x^3 + 1) = (x^3 + 1)$ so it is therefore not primitive because $9$ is less than $2^6 - 1 = 63$.

There seems to be a significant pattern emerging. Most of the dividends are similar for any specific degree of polynomial. For example, out of the $99$ degree $10$ prime polynomials $60$ are primitive and $39$ are divisors of a polynomial of the above form. But here's the strange thing, the dividends consist of just $(2^{33} + 1)$ $(2^{93} + 1)$ and $(2^{341} + 1)$. Just those threeare dividends to $39$ degree $10$ polynomials between them - and their degrees are all factors, or multiples of the factors of $1023 = 2^{10} - 1$ which are $3,11,31,33,93,341$. Coincidence? Degree = 10! Factors of $1023$ has close relationship to powers of the dividends?

Here's the pattern for each of the degrees $d$ I have tested so far:

$$\begin{array}{|r|r|l|l|} \hline \text{$d$} & \text{$2^d - 1$} & \text{Factors of $2^d - 1$} & \text{Degrees of $x^n + 1$ as a dividend}\\ \hline 4 & 15 & 3, 5 & 5 \\ \hline 5 & 31 & - & - \\ \hline 6 & 63 & 3, 3, 7 & 9, 21 \\ \hline 7 & 127 & - & - \\ \hline 8 & 255 & 3, 5, 7 & 51, 85 \\ \hline 9 & 511 & 7, 73 & 73 \\ \hline 10 & 1023 & 3, 11, 31 & 33, 93, 341 \\ \hline 11 & 2047 & 23, 89 & 23, 89 \\ \hline 12 & 4095 & 3, 3, 5, 7, 13 & 45, 195, 315, 455, 585, 1365, 1638 \\ \hline 13 & 8191 & - & \\ \hline 14 & 16383 & 3, 43, 127 & 129, 381, 5461 \\ \hline \end{array}$$

So - any ideas on how I could come up with a list of all possible dividends so I don't have to trawl through $2^d - 1$ of them - which gets seriously tiring as the degree rises.

Notes:

  1. I stop when I find the first dividend that can be divided by the polynomial - so there may be more tham I list.
  2. I use a ForkJoinPool to do my factoring so it is possible that occasionally I am not finding the lowest degree dividend but I think that is likely to be rare.

Added

I think I've found a further pattern I would like some feedback on - not sure if this should be another question or not. I would welcome feedback.

I decided to print out the totient of each dividend I was using to test for primitivity and see if the count of how many times this dividend was used to distinguish primality from primitivity was related.

The relationship is unmistakeable. It looks very much like the number of polynomials each dividend is divided by is equal to the totient of the degree of the dividend divided by the degree of the polynomial.

For example - with our degree 10 polynomials, for each dividend there are the following number of polynomials that are factors - (11, 1), (33, 2), (93, 6), (341, 30). i.e there is one irreducible polynomial that divides $x^{11} + 1$, two that divide $x^{33} + 1$ etc. Interestingly $totient(11) = 10$ and $10/degree = 1$ all the way up to $totient(341)=300$ and $300/10=30$. Rest assured this pattern works for all degrees up to 12 at least.

Further - for degree 12 polynomials - there are $48$ polynomials that divide $2^{1365} + 1$ and, amazingly, totient(1365) = 576 = 12 * 48.

Is this another pattern I can rely on? Is it based on theory?

  • It looks like your G2 polynomials are what is commonly called polynomials with coefficients in the field of two elements, commonly denoted by either $GF(2)$ or $\mathbb{F}_2$. – Jyrki Lahtonen Jun 26 '13 at 07:04
  • 1
    Sometimes when you write $2^n+1$ did you mean $x^n+1$. Otherwise i can't make head or tails out of this. – Jyrki Lahtonen Jun 26 '13 at 07:06
  • But the algebraic properties of finite fields will explain your observations. Composing an answer using the degree ten polynomials as an example... – Jyrki Lahtonen Jun 26 '13 at 07:28
  • @JyrkiLahtonen - Thank you, now GF(2) - yes I do mean $2^n + 1$ (mostly), please see in my link how to test for primitivity. I look forward to your answer. – OldCurmudgeon Jun 26 '13 at 08:08
  • I suspect that any polynomial of degree ten and dividend $x^{62}+1$ actually factors. An irreducible polynomial cannot have that order (see my answer) and you seemed to have found too many irreducible polynomials of degree ten anyway. – Jyrki Lahtonen Jun 26 '13 at 09:06
  • I have removed the last vestiges of G2 (one of them in the title). It was confuding since $G_2$ is the label of a type of simple groups of Lie type, which has nothing to do with this question. – Marc van Leeuwen Jun 27 '13 at 08:55
  • Re: The last observation. Well spotted! Yes, that is true. If $d$ is a factor of $2^n-1$, but not a factor of $2^{n'}-1$ for any $n'<n, n'\mid n$, then the number of irreducible polynomials of degree $n$ that divide $x^d+1$ is $\phi(d)/n$. That is how I calculated the numbers of irreducible polynomials of degree ten in the example within my answer. – Jyrki Lahtonen Jul 01 '13 at 05:12

1 Answers1

1

You may need to familiarize yourself with the algebra of for all/any of the stuff below to make sense. I'm working out the case of irreducible degree $10$ polynomials in $GF(2)[x]$ according to what I think you are asking. I am not ruling out the possibility that I have completely misunderstood the context of your question. Anyway, my goals here are to A) outline some of the algebra, B) give you general formulas for the number of irreducible polynomials of a given degree and dividend. These you can test, and if there are differences, then we can work more to pinpoint the origin of the difference.

The number of irreducible polynomials of degree ten is $$ \frac1{10}\sum_{d\mid 10}\mu(d)2^{10/d}. $$ Here $\mu$ is the Möbius function. I have collected several links to answers on this site discussing this formula into my comment here, so I won't prove it here. The sum evaluates to $$ \frac1{10}\sum_{d\mid 10}\mu(d)2^{10/d}=\frac{2^{10}-2^5-2^2+2^1}{10}=99. $$ So something went wrong in you calculation. There are $99$ irreducible polynomials of degree ten, not $120$. Are you sure that your test for irreducibility works correctly?

If $p(x)$ is an irreducible polynomial with coefficients in $GF(2)$, then the task you are interested in is algebraically called as finding the order of $x$ in the quotient field $GF(2)[x]/(p(x))$. This is algebra speak for the smallest positive integer $d$ such that $p(x)$ is a factor of $x^n+1$. Your example telling us that the order of $x$ in $F=GF(2)[x]/(x^6+x^3+1)$ is equal to nine is correct.

It is a fact covered in all courses and textbooks on finite fields that their multiplicative group is cyclic. If $p(x)\in GF(2)[x]$ is an irreducible polynomial of degree $n$, then the order of that cyclic group is $2^n-1$. A result from a freshman abstract algebra course known as Lagrange's theorem tells us that the order of any element is a factor of the number of elements in the group. So for example, if $n=10$ we have that the order of $x$ in the multiplicative group of $F$ must be a factor of $1023$. Irrespective of the choice of the polynomial $p(x)$. You had correctly factored $1023=3\cdot11\cdot31$, so the possible orders are $1,3,11,31,33,93,341$ and $1023$. The last case is exactly the case of $x$ being a primitive element (and $p(x)$ being a primitive polynomial).

To cut a long story short I just state that no matter which irreducible polynomial $p(x)$ of degree ten is used, the resulting objects $F$ are isomorphic, which is a way of saying that they are the same object up to a permutation of the elements. That last phrase gives the catch that the coset of $x$ will move to another coset in that permutation. A consequence of this is that we can tally the orders of $x$ modulo all degree ten irreducible polynomials by tallying the orders of all the elements modulo a given irreducible polynomial $p(x)$. What's more is that we can do this with only a little bit more theory than that of the cyclic groups.

What that permutation of elements of $F$ does is that it allows us to group the elements of $F$ according to their so called minimal polynomials. The minimal polynomial of an element is the lowest degree polynomial with coefficients in $GF(2)$ that has the said element as its zero. One extra bit we need to worry about is that we can throw away those elements of $F$ that belong to a subfield of $F$. The field of $2^{10}$ has two subfield, those of size $2^2$ and $2^5$. The minimal polynomials of those elements have degrees $1,2$ or $5$, so we are not interested in them. This means that we won't concern ourselves with elements of orders $1,3$ or $31$, because they belong to those subfields.

But we can look at the more interesting cases, where the minimal polynomial is of degree ten. If $d\mid n$, and $G$ is a cyclic group of order $n$, then the number of elements of order $d$ in $G$ is known to be $\phi(d)$, where $\phi$ is the Euler totient function. If $d=p_1^{a_1}\cdots p_k^{a_k}$ is the prime factorization of $d$, then $$ \phi(d)=d\cdot(1-\frac1{p_1})(1-\frac1{p_2})\cdots(1-\frac1{p_k}). $$ Returning to our case of degree ten polynomials and $n=1023$. Let us look at the remaining factors $d=11$, $d=33$, $d=93$, $d=341$. We have $$ \phi(d)=33(1-\frac13)(1-\frac1{11})=20. $$ This tells us that there are 20 elements of order 33 in the multiplicative group of $F$. A minimal polynomial of any of those has ten roots in $F$ (Galois theory gives us this, we skip the proof). As the order only depends on the minimal polynomial, we see that between them those 20 elements have only two minimal polynomials. The conclusion will be that there are exactly two irreducible polynomials of degree ten and dividend $x^{33}+1$.

With $d=93$ we similarly calculate that $$ \phi(93)=93(1-\frac13)(1-\frac1{31})=60, $$ and conclude that there will be six irreducible polynomials of degree ten with dividend $x^{93}+1$. In the same vein, when $d=341$, we get $$ \phi(341)=300, $$ and conclude that there are thirty irreducible polynomials with dividend $x^{341}+1$ and, finally, as $\phi(1023)=600$, sixty irreducible with the maximal order $1023$.

In other words, out of the $99$ irreducible polynomials of degree ten, $60$ are primitive (you got that right!!!), $30$ have order $341$, six have order $93$, and two have order $33$. I seem to have left out order $11$. As $11$ is a prime, we have $\phi(11)=10$, so there is a single irredusible polynomial of degree ten and order $11$. We can actually say that this is the cyclotomic polynomial $$ p(x)=1+x+x^2+x^3+\cdots+x^{10} $$ that is (in this case) irreducible.


A lot of stuff. Some of the terminology may be Greek to you. But provided that I correctly understood what you are investigating, an immediate discrepancy is that the dividend $x^{62}+1$ should not occur at all. Can you give me an example of an irreducible polynomial of degree ten with that dividend? Then we can start debugging!

Jyrki Lahtonen
  • 133,153
  • 1
    When will this answer be coming out in book form? – Gerry Myerson Jun 26 '13 at 08:59
  • Yeah, I'm not very good at condensing, so I might benefit from such an exercise. Sorry about all the meandering. – Jyrki Lahtonen Jun 26 '13 at 09:57
  • +1 - Awesome! Attempting to absorb - may be some time. Your question about $x^{62} + 1$, it is the dividend for $x^{10} + x^4 + x^1$ among others. Link to the calculation. – OldCurmudgeon Jun 26 '13 at 10:28
  • @OldCurmudgeon: Was there a typo? Your link shows $$x^{10}+x^4+x^0=x^{10}+x^4+1$$ instead of $x^{10}+x^4+x$? Anyway, that polynomial is not irreducible because $$x^{10}+x^4+1=(x^5+x^2+1)^2.$$ The irreducible polynomial $x^5+x^2+1$ is (IIRC) primitve, and divides $x^{31}+1$. Not unnaturally its square then divides $(x^{31}+1)^2=x^{62}+1$. – Jyrki Lahtonen Jun 26 '13 at 10:36
  • @JyrkiLahtonen - You are right with the typo - it should have been $x^{10}+x^4+1$ as you guessed. I seem to have a fault in my reducibility tester - will investigate. BTW - Please do not condense. My maths is rusty (30+ years old) so this is perfect for me. – OldCurmudgeon Jun 26 '13 at 12:42
  • @JyrkiLahtonen - Issue found with prime tester - fixed - entry for degree 10 updated - will update the rest of the table tomorrow. Still groking your answer. In your $ϕ(93) = 93(...$ equation where does the $3$ and $31$ come from? If I can say that given a poly $x^n + 1$ there will be none of my polynomialsthat divide it I am making huge steps towards taking this algorithm from taking hours to run to taking probably just minutes! – OldCurmudgeon Jun 26 '13 at 22:13
  • @OldCurmudgeon - Glad to hear about progress. That is just prime factorization of $93=3\cdot31$. The totient function $\phi(93)$ calculates the number of integers in the range $[1,93]$ coprime to $93$. So we throw away multiples of $3$ (so multiply by $1-\dfrac13$) and multiples of $31$ (so multiply by $1-\dfrac1{31}$).) And yeah, if a degree $m$ prime poly divides $x^n$+1$, then $n$ will be a factor of $2^m-1$, but will not be a factor of $2^t-1$ for any $t\mid m$. – Jyrki Lahtonen Jun 27 '13 at 04:24
  • Excellent! Until now I was testing every possible dividend $x^n + 1$ for $n$ up to $2^d - 1$. Now, thanks to your help, I only test for $n$ in all products of the factors of $2^d - 1$. This turned my run time from overnight to just a few minutes. – OldCurmudgeon Jun 27 '13 at 10:12
  • One final concern - if the degree is prime are all irreducibles primitive? If so, how come here says for degree 13 there are 630 irreducibles but only 390 primitive? – OldCurmudgeon Jun 27 '13 at 13:53
  • 1
    You probably meant that if $2^n-1$ is prime? Yes, that is true: $2^5-1$ and $2^7-1$ are prime, so all irreducible polynomials of degrees five and seven are also primitive. Let's see, $2^{13}-1=8191$ is a prime (says Mathematica). Yes, all the 630 irreducible polynomials of degree 13 are then necessarily also primitive. There is something wrong with their program. – Jyrki Lahtonen Jun 27 '13 at 15:42
  • If you click the "?" on their page, it gives you some data. That list also agrees: 630 primitive polynomials of degree 13. It's just the program. – Jyrki Lahtonen Jun 27 '13 at 15:48
  • @JyrkiLahtonen - I have added a further observation - if you still have the strength I would appreciate further guidance. If not I would completely understand. – OldCurmudgeon Jun 30 '13 at 23:18