El algoritmo de Tonelli-Shanks (conocido por Shanks como el algoritmo RESSOL) se utiliza en aritmética modular para resolver r en una congruencia de la forma r 2 ≡ n (mod p ), donde p es un primo : es decir, para encontrar una raíz cuadrada de n módulo p .
El algoritmo de Tonelli-Shanks no se puede utilizar para módulos compuestos: encontrar raíces cuadradas módulo números compuestos es un problema computacional equivalente a la factorización de enteros . [ 1 ]
Alberto Tonelli [ 2 ] [ 3 ] desarrolló en 1891 una versión equivalente, aunque ligeramente más redundante, de este algoritmo. La versión que se analiza aquí fue desarrollada independientemente por Daniel Shanks en 1973, quien explicó:
Mi tardanza en conocer estas referencias históricas se debió a que le presté el Volumen 1 de la Historia de Dickson a un amigo y nunca me lo devolvió. [ 4 ]
Según Dickson, [ 3 ] el algoritmo de Tonelli puede tomar raíces cuadradas de x módulo potencias primas p λ aparte de los números primos.
Ideas principales
Dado un valor distinto de ceroy un primo(que siempre será impar), el criterio de Euler nos dice quetiene raíz cuadrada (es decir,es un residuo cuadrático ) si y solo si :
- .
Por el contrario, si un númeroSi no tiene raíz cuadrada (es un no residuo), el criterio de Euler nos dice que:
- .
No es difícil encontrar tal cosa, porque la mitad de los enteros entre 1 yposeen esta propiedad. Por lo tanto, asumimos que tenemos acceso a dicho no residuo.
Al dividir (normalmente) repetidamente por 2, podemos escribircomo, dóndees extraño. Tenga en cuenta que si lo intentamos
- ,
entonces. Si, entonceses una raíz cuadrada de. De lo contrario, para, tenemosysatisfactorio:
- ; y
- es unraíz -ésima de 1 (porque).
Si, dada la elección deypara un caso particularsatisfaciendo lo anterior (dondeno es una raíz cuadrada de), podemos calcular fácilmente otroyparaDe modo que se cumplan las relaciones anteriores, podemos repetir esto hastase convierte en unraíz -ésima de 1, es decir,En ese momentoes una raíz cuadrada de.
Podemos comprobar sies unraíz -ésima de 1 elevándolo al cuadradoveces y comprobar si es 1. Si lo es, entonces no necesitamos hacer nada, ya que la misma elección deyfunciona. Pero si no funciona,debe ser -1 (porque al elevarlo al cuadrado da 1, y solo puede haber dos raíces cuadradas 1 y -1 de 1 módulo).
Para encontrar un nuevo par deypodemos multiplicarpor un factor, por determinar. Entoncesdebe multiplicarse por un factorpara mantenerEntonces, cuandoes -1, necesitamos encontrar un factorde modo quees unraíz -ésima de 1, o equivalentementees un-ésima raíz de -1.
El truco aquí es hacer uso de, el no residuo conocido. El criterio de Euler aplicado aLo que se muestra arriba dice quees un-ésima raíz de -1. Entonces, al elevar al cuadradorepetidamente, tenemos acceso a una secuencia deraíces -ésimas de -1. Podemos seleccionar la correcta para que sirva comoCon un poco de mantenimiento de variables y una compresión de casos trivial, el siguiente algoritmo surge de forma natural.
El algoritmo
Operaciones y comparaciones sobre elementos del grupo multiplicativo de enteros módulo pson implícitamente módulo p .
Entradas :
- p , un primo
- n , un elemento dede tal manera que existan soluciones a la congruencia r 2 = n ; cuando esto es así, decimos que n es un residuo cuadrático módulo p .
Resultados :
- r ental que r 2 = n
Algoritmo :
- Al factorizar potencias de 2, encuentre Q y S tales quecon Q impar
- Buscar una z enque es un no residuo cuadrático
- La mitad de los elementos del conjunto serán no residuos cuadráticos.
- Los candidatos pueden ser evaluados con el criterio de Euler o mediante la búsqueda del símbolo de Jacobi.
- Dejar
- Bucle:
- Si t = 0, devuelve r = 0.
- Si t = 1, devuelve r = R
- De lo contrario, utilice la elevación al cuadrado repetida para encontrar el menor i , 0 < i < M , tal que
- Dejary establecer
Una vez que hayas resuelto la congruencia con r, la segunda solución es. Si el menor i tal queSi M es , entonces no existe solución a la congruencia, es decir, n no es un residuo cuadrático.
Esto es más útil cuando p ≡ 1 (mod 4).
Para números primos tales que p ≡ 3 (mod 4), este problema tiene posibles soluciones.. Si estos se cumplen, son las únicas soluciones. Si no,, n es un no residuo cuadrático y no hay soluciones.
Prueba
Podemos demostrar que al inicio de cada iteración del bucle se cumplen las siguientes invariantes :
Inicialmente:
- (ya que z es un no residuo cuadrático, según el criterio de Euler)
- (ya que n es un residuo cuadrático)
En cada iteración, con M' , c' , t' , R' los nuevos valores reemplazando a M , c , t , R :
- ya que tenemos esopero( i es el valor más pequeño tal que)
Dey la prueba contra t = 1 al comienzo del bucle, vemos que siempre encontraremos un i en 0 < i < M tal que. M es estrictamente menor en cada iteración, y por lo tanto el algoritmo tiene garantizado detenerse. Cuando alcanzamos la condición t = 1 y nos detenemos, el último invariante del bucle implica que R 2 = n .
Orden de t
Alternativamente, podemos expresar los invariantes del bucle utilizando el orden de los elementos:
- como antes
Cada paso del algoritmo mueve t a un subgrupo más pequeño midiendo el orden exacto de t y multiplicándolo por un elemento del mismo orden.
Ejemplo
Resolviendo la congruencia r 2 ≡ 5 (mod 41). 41 es primo como se requiere y 41 ≡ 1 (mod 4). 5 es un residuo cuadrático según el criterio de Euler:(como antes, operaciones enson implícitamente módulo 41).
- entonces,
- Encuentra un valor para z:
- , por lo tanto, 2 es un residuo cuadrático según el criterio de Euler.
- , por lo tanto, 3 es un no residuo cuadrático: conjunto
- Colocar
- Bucle:
- Primera iteración:
- , así que no hemos terminado
- ,entonces
- Segunda iteración:
- , así que todavía no hemos terminado
- entonces
- Tercera iteración:
- y hemos terminado; regresar
- Primera iteración:
En efecto, 28² ≡ 5 (mod 41) y (−28) ² ≡ 13² ≡ 5 (mod 41). Por lo tanto, el algoritmo produce las dos soluciones a nuestra congruencia.
Velocidad del algoritmo
El algoritmo de Tonelli-Shanks requiere (en promedio sobre todas las entradas posibles (residuos cuadráticos y no residuos cuadráticos))
multiplicaciones modulares, dondees el número de dígitos en la representación binaria deyes el número de unos en la representación binaria de. Si el no residuo cuadrático requeridose puede encontrar comprobando si un número tomado al azares un no residuo cuadrático, requiere (en promedio)cálculos del símbolo de Legendre . [ 5 ] El promedio de dos cálculos del símbolo de Legendre se explica de la siguiente manera:es un residuo cuadrático con probabilidad, que es más pequeño quepero, por lo que en promedio necesitaremos comprobar si unes un residuo cuadrático dos veces.
Esto demuestra esencialmente que el algoritmo de Tonelli-Shanks funciona muy bien si el móduloes aleatorio, es decir, sino es particularmente grande con respecto al número de dígitos en la representación binaria de. Como se escribió anteriormente, el algoritmo de Cipolla funciona mejor que el de Tonelli-Shanks si (y solo si)Sin embargo, si en cambio se utiliza el algoritmo de Sutherland para realizar el cálculo del logaritmo discreto en el subgrupo 2-Sylow de, uno puede reemplazarcon una expresión que está asintóticamente acotada por. [ 6 ] Explícitamente, se calculade tal manera quey luegoSatisface(tenga en cuenta quees un múltiplo de 2 porquees un residuo cuadrático).
El algoritmo requiere que encontremos un no residuo cuadrático.No se conoce ningún algoritmo determinista que se ejecute en tiempo polinomial para encontrar tal cosa.Sin embargo, si la hipótesis generalizada de Riemann es verdadera, existe un no residuo cuadrático., [ 7 ] lo que permite comprobar cadahasta ese límite y encontrar uno adecuadoen tiempo polinomial . Sin embargo, tenga en cuenta que este es el peor escenario posible; en general,Se encuentra en un promedio de 2 ensayos como se indicó anteriormente.
Usos
El algoritmo de Tonelli-Shanks puede utilizarse (naturalmente) para cualquier proceso en el que se requieran raíces cuadradas módulo un número primo. Por ejemplo, puede emplearse para hallar puntos en curvas elípticas . También resulta útil para los cálculos del algoritmo de la signatura de Rabin y en la etapa de cribado de la criba cuadrática .
Generalizaciones
Tonelli–Shanks se puede generalizar a cualquier grupo cíclico (en lugar de) y a las raíces k -ésimas para un entero k arbitrario , en particular a tomar la raíz k -ésima de un elemento de un cuerpo finito . [ 8 ]
Si se deben realizar muchas raíces cuadradas en el mismo grupo cíclico y S no es demasiado grande, se puede preparar de antemano una tabla de raíces cuadradas de los elementos de orden de potencia 2 y el algoritmo se puede simplificar y acelerar de la siguiente manera.
- Factorizamos las potencias de 2 de p − 1, definiendo Q y S como:con Q impar.
- Dejar
- Encontrarde la tabla tal quey establecer
- devolver R.
El algoritmo de Tonelli funcionará en módulo p λ
Según la "Teoría de los números" de Dickson [ 3 ]
A. Tonelli [ 9 ] dio una fórmula explícita para las raíces de[ 3 ]
La referencia de Dickson muestra la siguiente fórmula para la raíz cuadrada de.
- cuando, o(s debe ser 2 para esta ecuación) yde tal manera que
- paraentonces
- dónde
- paraentonces
Observando quey observando queentonces
Por poner otro ejemplo:y
Dickson también atribuye la siguiente ecuación a Tonelli:
- dóndey;
Usandoy utilizando el módulo deLos cálculos son los siguientes:
Primero, encuentra la raíz cuadrada modular modlo cual se puede hacer mediante el algoritmo de Tonelli regular para una u otra raíz:
- y por lo tanto
Y aplicando la ecuación de Tonelli (véase más arriba):
La referencia de Dickson [ 3 ] muestra claramente que el algoritmo de Tonelli funciona sobre módulos de.
Notas
- ↑ Oded Goldreich, Complejidad computacional: una perspectiva conceptual , Cambridge University Press, 2008, pág. 588.
- ↑ Volker Diekert; Manfred Kufleitner; Gerhard Rosenberger; Ulrich Hertrampf (24 de mayo de 2016). Métodos algebraicos discretos: aritmética, criptografía, autómatas y grupos . De Gruyter. págs. 163-165 . ISBN 978-3-11-041632-9.
- 1 2 3 4 5 Leonard Eugene Dickson (1919). Historia de la teoría de los números . Vol. 1. Washington, Carnegie Institution of Washington. págs. 215-216 .
- ↑ Daniel Shanks. Cinco algoritmos de teoría de números. Actas de la Segunda Conferencia de Manitoba sobre Matemáticas Numéricas. Págs. 51–70. 1973.
- ↑ Tornaría, Gonzalo (2002). "Raíces cuadradas módulo P". LATIN 2002: Informática teórica . Lecture Notes in Computer Science. Vol. 2286. pp. 430–434 . doi : 10.1007/3-540-45995-2_38 . ISBN 978-3-540-43400-9.
- ↑ Sutherland, Andrew V. (2011), "Cálculo de estructuras y logaritmos discretos en p-grupos abelianos finitos", Mathematics of Computation , 80 (273): 477–500 , arXiv : 0809.3413 , doi : 10.1090/s0025-5718-10-02356-2 , S2CID 13940949
- ↑ Bach, Eric (1990), "Límites explícitos para pruebas de primalidad y problemas relacionados", Mathematics of Computation , 55 (191): 355–380 , doi : 10.2307/2008811 , JSTOR 2008811
- ↑ Adleman, LM, K. Manders y G. Miller: 1977, «Sobre el enraizamiento en campos finitos». En: 18.º Simposio IEEE sobre Fundamentos de la Informática. págs. 175-177
- ^ "Accademia nazionale dei Lincei, Roma. Rediconti, (5), 1, 1892, 116-120".
Referencias
- Ivan Niven ; Herbert S. Zuckerman; Hugh L. Montgomery (1991). Introducción a la teoría de los números (5.ª ed.). Wiley. págs. 110-115 . ISBN 0-471-62546-9.
- Daniel Shanks. Cinco algoritmos de teoría de números. Actas de la Segunda Conferencia de Manitoba sobre Matemáticas Numéricas. Págs. 51–70. 1973.
- Alberto Tonelli, Bemerkung über die Auflösung quadratischer Congruenzen. Nachrichten von der Königlichen Gesellschaft der Wissenschaften und der Georg-Augusts-Universität zu Göttingen . Páginas. 344–346. 1891.
- Gagan Tara Nanda - Matemáticas 115: El algoritmo RESSOL
- Gonzalo Tornaria
- aritmética modular
- Algoritmos de teoría de números