Algoritmo de Cantor-Zassenhaus
En álgebra computacional, el algoritmo de Cantor–Zassenhaus es un método para factorizar polinomios sobre cuerpos finitos (también llamados cuerpos de Galois).
El algoritmo consiste principalmente en cálculos de exponenciación y MCD polinomial. Fue inventado por David G. Cantor y Hans Zassenhaus en 1981.
Podría decirse que es el algoritmo dominante para resolver el problema, habiendo reemplazado al algoritmo de Berlekamp de 1967. Actualmente se encuentra implementado en muchos sistemas de álgebra computacional.
Sinopsis
Antecedentes
El algoritmo Cantor–Zassenhaus toma como entrada un polinomio libre de cuadrado (es decir, uno sin factores repetidos) de grado n con coeficientes en un campo finito cuyos factores polinomios irreducibles son todos de igual grado (existen algoritmos para tener en cuenta eficazmente los polinomios arbitrarios en un producto de polinomios que satisfagan estas condiciones, por ejemplo, es un polinomio libre de cuadrado con los mismos factores , para que el algoritmo Cantor-Zassenhaus pueda ser utilizado para factorar polinomios arbitrarios). Da como salida un polinomio con coeficientes en el mismo campo, divideciones . El algoritmo puede ser aplicado recursivamente a estos y posteriores divisores, hasta que encontremos la descomposición de en poderes de polinomios irreducibles (recalling que el anillo de polinomios sobre cualquier campo es un dominio de factorización único).
Todos los factores posibles están contenidos en el anillo factorial . Si suponemos eso tiene factores irreducibles , todo el grado d, entonces este anillo factor es isomorfo al producto directo de anillos de factor . El isomorfismo de R a S, di , mapas un polinomio a la s-tuple de sus reducciones modulo cada uno de los , es decir, si:
entonces . Es importante señalar lo siguiente en este punto, ya que será de importancia crítica más adelante en el algoritmo: Desde son cada uno irreducible, cada uno de los anillos factor en esta suma directa es de hecho un campo. Estos campos tienen grado .
Resultado básico
El resultado básico subyacente al algoritmo Cantor-Zassenhaus es el siguiente: Si es una satisfacción polinomio:
Donde es la reducción de modulo como antes, y si alguno de los dos de los tres siguientes conjuntos es no vacío:
entonces existen los siguientes factores no-triviales :
Algoritm
El algoritmo Cantor-Zassenhaus compute polinomios del mismo tipo que arriba usando el isomorfismo discutido en la sección Antecedentes. Procede como sigue, en el caso en que el campo es de carácter extraño (el proceso puede ser generalizado a 2 campos característicos de manera bastante sencilla. Seleccione un polinomio aleatorio tales que . Set y computación . Desde es un isomorfismo, tenemos (utilizando nuestra notación ya establecida):
Ahora, cada uno es un elemento de un campo de orden , como se señaló anteriormente. El subgrupo multiplicativo de este campo tiene orden a menos que , tenemos para cada uno i y por consiguiente para cada uno i. Si , entonces por supuesto . Por lo tanto es un polinomio del mismo tipo que arriba. Además, desde entonces , al menos dos de los sets y C son indeseables y al computar los GCD anteriores podemos obtener factores no-triviales. Dado que el anillo de polinomios sobre un campo es un dominio euclidiano, podemos calcular estos GCD utilizando el algoritmo euclidiano.
Aplicaciones
Una aplicación importante del algoritmo de Cantor-Zassenhaus es el cálculo de logaritmos discretos sobre cuerpos finitos de orden primo-potencial. El cálculo de logaritmos discretos es un problema importante en la criptografía de clave pública. Para un cuerpo de orden primo-potencial, el método más rápido conocido es el método de cálculo de índices, que implica la factorización de los elementos del cuerpo. Si representamos el cuerpo de orden primo-potencial de la forma habitual (es decir, como polinomios sobre el cuerpo base de orden primo, reducido módulo un polinomio irreducible de grado apropiado), entonces esto es simplemente la factorización polinómica, como la que proporciona el algoritmo de Cantor-Zassenhaus.
Implementación en sistemas de álgebra informática
El algoritmo de Cantor–Zassenhaus se implementa en el sistema de álgebra computacional PARI/GP como la función factorcantor().
Véase también
- Factorización polinómica
- Factorización de polinomios sobre campos finitos
Referencias
- ^ Cantor, David G.; Zassenhaus, Hans (abril de 1981), "Un nuevo algoritmo para factorar polinomios sobre campos finitos", Matemáticas de la computación, 36 (154): 587–592, doi:10.1090/S0025-5718-1981-0606517-5, JSTOR 2007663, MR 0606517
- ^ Elia, Michele; Schipani, Davide (2015), "Mejoras en el algoritmo de factorización Cantor-Zassenhaus", Mathematica Bohemica, 140 3), Instituto de Matemáticas, Academia Checa de Ciencias: 271–290, arXiv:1012.5322, doi:10.21136/mb.2015.144395
Enlaces externos
- https://web.archive.org/web/20200301213349/http://blog.fkraiem.org/2013/12/01/polynomial-factorisation-over-finite-fields-part-3-final-splitting-cantor-zassenhaus-in-odd-characteristic/