Skip to main content
3 of 3
added 194 characters in body
Max Alekseyev
  • 34.3k
  • 5
  • 74
  • 152

In general, $p_2$ has $x^j$ as a zero in $F_1$. In other words, $p_1(x)$ divides $p_2(x^j)$ over $\mathrm{GF}(2)$.

To find $j$ from the given $p_1$ and $p_2$, one can factor $p_2(y)$ in $F_1[y]$, and for every zero $y_0\in F_1$ of $p_2(y)$, find the discrete log of $y_0$ base $x$ in $F_1$.

Here is a sample PARI/GP code that recovers values of $j$ in the given example:

? X = ffgen((x^9+x^4+1)*Mod(1,2));  \\ x as an element of F1
? lf = select(t->poldegree(t,x)==1, factorff(x^9+x^7+x^5+x+1,2,y^9+y^4+1)[,1] ); \\ linear factors of p(y)
? for(i=1,#lf, z = lift( -polcoeff(lf[i],0)/polcoeff(lf[i],1) ); print( fflog(subst(z,y,X),X) ) )
214
345
309
358
428
205
410
179
107

Notice that $p_1$ and $p_2$ alone do not uniquely define $j$ (e.g., in the example above there is an extraneous value $179$), but together with initial terms of the decimated sequence they do.

Max Alekseyev
  • 34.3k
  • 5
  • 74
  • 152