Descripción general de los polinomios primitivos

Un polinomio irreducible de n grados, si solo puede dividir 1 Z^2^n-1 pero no puede dividir otros 1-Z^L(Llt; 2^n-1), entonces este polinomio de irreducibilidad se llaman polinomios primitivos.

Otra definición de polinomio primitivo: el coeficiente se toma de GF(p) y es el polinomio más pequeño con el elemento de dominio primitivo en GF(p^m) como raíz.

Debido a que el polinomio primitivo debe tener n=p^m-1 elementos de nivel como raíces, p^m≡1(mod n), el grado del polinomio primitivo debe ser m.

Para un polinomio de n grados, generalmente existen varios polinomios primitivos. A continuación se proporcionará un algoritmo para resolver los polinomios primitivos restantes dado cualquier valor de n y un polinomio primitivo. La importancia de este algoritmo es que proporciona varios polinomios primitivos opcionales con el mismo valor n, lo que permite diferentes opciones al construir sistemas de aplicaciones.

Dado un polinomio primitivo de n niveles, resuelve los polinomios primitivos restantes de acuerdo con los siguientes pasos.

(1) Primero determine el número de polinomios primitivos de n niveles λ(n), λ(n) es el número de polinomios primitivos de n niveles.

(2) Encuentre todos los números enteros positivos menores que 2n-1 y primos relativos con 2n-1 para formar un conjunto [Si], y reordenelos para que los elementos en [Si] estén ordenados de pequeño a grande.

(3) Excluir números inadecuados en [Si]

* Excluir números en [Si] de la forma 2j (j es un entero positivo)

* Excluir Todos los números del mismo origen en [Si]. Es decir, busque de atrás hacia adelante en [Si]. Cada vez que tome un número, haga 2K × Si hasta que sea mayor que 2n-1, luego reste 2n-1 y use la diferencia para buscar hacia adelante en [Si]. Si son iguales Si el número es , se excluye Si; de lo contrario, se conserva. Luego toma Si-1 y haz el mismo proceso nuevamente hasta S0.

*Excluir números con múltiples relaciones en [Si]. Es decir, busque de atrás hacia adelante en [Si] y busque hacia adelante cada vez que se tome un número. El número restante en [Si] es el número de muestreo original y su número debe ser λ (n) -1.

(4) Basado en un polinomio primitivo conocido de n niveles, establezca el estado inicial 000...01 (n piezas) para él y encuentre su secuencia M {Ai} (la longitud es 2n-1

(5) Saca los números de muestreo primitivos de Si por turno. Cada vez que sacas un número de muestreo Si, puedes encontrar un polinomio primitivo: el muestreo de {Ai} con Si puede producir una longitud. de otra secuencia M {Si} de 2n-1, encuentre el segmento de secuencia {Mi} en la forma de 000...01 (n bits) en {Si} y extraiga la secuencia de 2n longitud que incluye {Mi} como primeros n elementos:

Soy 0, Am 1,…, Am n-1,

0 0… 1

Soy n, Am n 1,… Am 2n-1

X C1Am n

C3=Am n 2 C1Am n 1 C2Am n