Método de forma cuadrática de Shanks

El método de forma cuadrática de Shanks  es un método de factorización de números enteros basado en el uso de formas cuadráticas , desarrollado por Daniel Shanks [1] en 1975 , como un desarrollo del método de factorización de Fermat .

Para las computadoras de 32 bits, los algoritmos basados ​​en este método son los líderes indiscutibles entre los algoritmos de factorización para números de hasta y probablemente seguirán siéndolo. [2] Este algoritmo puede dividir casi cualquier número compuesto de 18 dígitos en menos de un milisegundo. El algoritmo es extremadamente simple, hermoso y eficiente. Además, los métodos basados ​​en este algoritmo se utilizan como auxiliares en la expansión de divisores de números grandes como los números de Fermat .

Historia

Otro nombre para el algoritmo es SQUFOF ( un acrónimo de inglés es SQUare FORm Factorization), que significa factorización de forma cuadrática . Este enfoque ha tenido bastante éxito a lo largo de los años y, como resultado, se pueden encontrar bastantes modificaciones e implementaciones diferentes sobre este tema en la literatura. [3] La mayoría de los métodos son complejos y confusos, especialmente cuando el método debe implementarse en una computadora. Como resultado, muchas variantes de algoritmos no son adecuadas para su implementación. Sin embargo, en 1975, Daniel Shanks propuso crear un algoritmo que pudiera implementarse y usarse no solo en una computadora, sino también en un simple teléfono móvil.

Aunque Shanks ha descrito otros algoritmos para la factorización de enteros, no ha publicado nada en SQUFOF. Dio conferencias sobre el tema y explicó la esencia básica de su método a un círculo bastante pequeño de personas. Algunos artículos de otros científicos [4] [3] [5] [6] discutieron el algoritmo, pero ninguno contiene un análisis detallado. También es interesante que en su método, Shanks hace una gran cantidad de suposiciones [7] que, desafortunadamente, quedaron sin prueba. En [8] se presentan los resultados de algunos experimentos, que indican que existen muchas suposiciones. Al final, en base a estas suposiciones simplificadoras, Shanks pudo crear SQUFOF.

Definiciones auxiliares

Para comprender cómo se implementa este algoritmo, es necesario conocer la información mínima sobre los objetos matemáticos utilizados en este método, a saber, las formas cuadráticas . Una forma cuadrática binaria es un polinomio en dos variables y :


El método Shanks usa solo formas indefinidas . Por entendemos el discriminante de una forma cuadrática. Diremos que la forma cuadrática representa un número entero si existen números enteros tales que la igualdad sea cierta: . Si la igualdad es verdadera , entonces la representación se llama primitiva .

Para cualquier forma cuadrática indefinida , el operador de reducción se puede definir como:

, donde  se define como un entero , determinado únicamente por las condiciones: [8]

El resultado de aplicar el operador al formulario una vez se escribe como . El operador también se define como:

, donde se define de la misma forma que en el caso anterior. Nótese que como resultado de aplicar los operadores y a una forma cuadrática con discriminante , las formas cuadráticas resultantes también tendrán discriminante .

El método para obtener una forma reducida equivalente a esta fue encontrado por Carl Gauss y consiste en la aplicación sucesiva del operador de reducción hasta que se reduce.

Teorema.

Cada forma es equivalente a alguna forma reducida, y cualquier forma reducida de es igual a alguna positiva . Si - se reduce, entonces también se reduce.

Además, para una comprensión clara de todas las operaciones con formas cuadráticas, necesitamos los conceptos de formas cuadráticas cuadradas, adyacentes y ambiguas.

Opciones

La idea del método de Shanks es comparar el número a descomponer con una forma binaria cuadrática con discriminante , con lo cual luego se realiza una serie de transformaciones equivalentes y el paso de la forma a la forma ambigua . Entonces, será un divisor .

La primera variante trabaja con formas cuadráticas binarias definidas positivas de un discriminante negativo dado, y en el grupo de clases de formas encuentra una forma ambigua , que da una factorización del discriminante. La complejidad de la primera opción está sujeta a la verdad de la hipótesis de Riemann extendida . [9]

La segunda variante es SQUFOF, que utiliza un grupo de clases de formas cuadráticas binarias con un discriminante positivo. También encuentra la forma ambigua y factoriza el discriminante. La complejidad de SQUFOF equivale a operaciones aritméticas; el algoritmo trabaja con números enteros que no excedan . Entre los algoritmos de factorización con complejidad exponencial, SQUFOF se considera uno de los más eficientes. [9]

Puntuación de convergencia

Según los cálculos realizados por el propio Shanks, el número de iteraciones del primer y segundo ciclo del algoritmo está determinado por el número de factores del número y es aproximadamente igual a:

donde es una constante igual a aproximadamente 2,4 para el primer ciclo de iteraciones. [diez]

Descripción del algoritmo

Con más detalle, el algoritmo se puede escribir de la siguiente manera: [11]

Entrada: un número compuesto impar para factorizar. Si reemplazamos por Now La última propiedad es necesaria para que el determinante de la forma cuadrática sea fundamental, lo que asegura la convergencia del método.

Salida: divisor no trivial .

1. Defina la forma cuadrática original , con discriminante , donde . 2. Ejecutemos el ciclo de reducciones hasta que la forma quede cuadrada. 3. Calcula la raíz cuadrada de 4. Ejecutemos el ciclo de reducciones hasta que se estabilice el valor del segundo coeficiente . El número de iteraciones de este ciclo debe ser aproximadamente igual a la mitad del número de iteraciones del primer ciclo. El último valor dará el divisor del número (posiblemente trivial).

Implementación del algoritmo

Ahora describimos el algoritmo para su implementación en una computadora. [11] Nótese que si bien la parte teórica del algoritmo está relacionada con transformaciones equivalentes de formas cuadráticas, la parte práctica del algoritmo se basa en calcular los coeficientes del método de fracción continua sin recurrir a las formas. Cada iteración del ciclo corresponde a una operación de aplicar el operador de reducción al formulario correspondiente. Si es necesario, puede restaurar los formularios correspondientes utilizando las fórmulas:


Entrada: número compuesto

Salida: divisor no trivial

Como ya se mencionó, esta no es la única implementación de este algoritmo. También puede encontrar la implementación del algoritmo aquí [8]

Un ejemplo de factorización de un número

Aplicamos este método para factorizar el número [8]

Ciclo #1
Ciclo #2

Ahora puedes ver en el segundo ciclo que De ahí el número

Aplicaciones

Este algoritmo se usa en muchas implementaciones de NFS y QS para factorizar pequeños números auxiliares que surgen cuando se factoriza un entero grande. En cualquier caso, SQUFOF se usa principalmente como algoritmo auxiliar en algoritmos de factorización más potentes y, por lo tanto, SQUFOF generalmente se usará para factorizar números de tamaño modesto que no tienen divisores primos pequeños. Dichos números suelen ser el producto de un pequeño número de números primos diferentes. [8] .

Notas

  1. Para obtener más información sobre la historia de este método y su conexión con el método de la fracción continua, consulte el artículo de Gover y Wagstaff (J. Gover, SS Wagstaff).
  2. Yike Guo, 1999 , Minería de datos de alto rendimiento: algoritmos, aplicaciones y sistemas de escala.
  3. 1 2 Hans Riesel, 1994 , Números primos y métodos informáticos para la factorización. Birkhauser, segunda edición.
  4. Henri Cohen, 1996 , Un curso de teoría algebraica computacional de números.
  5. DA Buell, 1989 , Formas cuadráticas binarias.
  6. Samuel S. Wagstaff Jr., 2003 , Criptoanálisis de cifrados teóricos numéricos.
  7. Por ejemplo, en FACTORIZACIÓN EN FORMA CUADRADA JASON E. GOWER Y SAMUEL S. WAGSTAFF, JR. Supuesto 4.12. en la página 20, Supuesto 4.5 en la página 16, también al probar teoremas de complejidad de algoritmos, etc.
  8. 1 2 3 4 5 FACTORIZACIÓN EN FORMA CUADRADA, 2003 , FACTORIZACIÓN EN FORMA CUADRADA.
  9. 1 2 Vasilenko, 2003 , Algoritmos teóricos de números en criptografía.
  10. Ishmukhametov, 2011 , Métodos de factorización para números naturales: Libro de texto.
  11. 1 2 Ishmukhametov, 2011 , Métodos de factorización para números naturales: Libro de texto, págs. 79-80.

Literatura

Véase también