Factorización de curva elíptica de Lenstra
La factorización de curva elíptica de Lenstra o el método de factorización de curva elíptica (ECM) es un tiempo de ejecución subexponencial rápido, algoritmo para la factorización de enteros, que emplea curvas elípticas. Para el factoraje de propósito general, ECM es el tercer método de factoraje conocido más rápido. La segunda más rápida es la criba cuadrática de polinomios múltiples y la más rápida es la criba de campo numérico general. La factorización de la curva elíptica de Lenstra lleva el nombre de Hendrik Lenstra.
En términos prácticos, ECM se considera un algoritmo de factorización de propósito especial, ya que es más adecuado para encontrar factores pequeños. Actualmente, sigue siendo el mejor algoritmo para divisores que no superan los 50 o 60 dígitos, ya que su tiempo de ejecución está dominado por el tamaño del factor más pequeño p en lugar del tamaño del número n a factorizar. Con frecuencia, ECM se usa para eliminar factores pequeños de un número entero muy grande con muchos factores; si el entero restante sigue siendo compuesto, entonces solo tiene factores grandes y se factoriza utilizando técnicas de propósito general. El factor más grande encontrado usando ECM hasta ahora tiene 83 dígitos decimales y fue descubierto el 7 de septiembre de 2013 por R. Propper. Aumentar el número de curvas probadas mejora las posibilidades de encontrar un factor, pero no son lineales con el aumento del número de dígitos.
Algoritmo
El método de factorización de curvas elípticas de Lenstra para encontrar un factor de un número natural determinado trabaja como sigue:
- Escoge una curva elíptica aleatoria , con ecuación de la forma con un punto no-trivial en ella.
- Esto se puede hacer por primera vez elegir al azar , y luego establecer para asegurar que el punto está en la curva.
- Uno puede definir Adición de dos puntos sobre la curva, para definir un Grupo. Las leyes de adición se dan en el artículo sobre curvas elípticas.
- Podemos formar múltiples repetidos de un punto : . Las fórmulas adicionales implican tomar la pendiente modular de un acorde y , y por lo tanto división entre clases de residuos modulo , realizado utilizando el algoritmo de Euclidean extendido. En particular, división por algunos incluye el cálculo del .
- Asumiendo que calculamos una pendiente de la forma con , entonces si , el resultado de la adición de punto será , el punto "en infinito" correspondiente a la intersección de la línea "vertical" y la curva. Sin embargo, si , entonces la adición de punto no producirá un punto significativo en la curva; pero, más importante, es un factor no-trivial .
- Computación sobre la curva elíptica), donde es un producto de muchos números pequeños: digamos, un producto de pequeñas primas elevadas a pequeños poderes, como en el algoritmo p-1, o el factorial para algunos no demasiado grande . Esto se puede hacer eficientemente, un pequeño factor a la vez. Digamos, para llegar , primer cálculo , entonces , entonces , y así sucesivamente. es elegido para ser lo suficientemente pequeño -la adición de puntos puede ser realizada en tiempo razonable.
- Si terminamos todos los cálculos anteriores sin encontrar elementos no invertibles (), significa que el orden de curvas elípticas (modulo primes) no es lo suficientemente suave, por lo que necesitamos probar de nuevo con una curva diferente y punto de partida.
- Si nos encontramos con un hemos terminado: es un factor no-trivial .
La complejidad del tiempo depende del tamaño del factor primario más pequeño del número y puede ser representado por exp[(√2+ o 1)) √InpInp], donde p es el factor más pequeño de n, o En la nota L.
¿Por qué funciona el algoritmo?
Si p y q son dos divisores principales de n, entonces Sí.2=x3+ ax+b(modelo)n) implica la misma ecuación también modulop y moduloq. Estas dos curvas elípticas más pequeñas con las - La adición son grupos genuinos. Si estos grupos tienen Np y Nq elementos, respectivamente, para cualquier punto P en la curva original, por el teorema de Lagrange, k■ 0 es mínimo tal que en el modulo curva p implica que k divideciones Np; además, . La declaración analógica sostiene para el modulo curva q. Cuando la curva elíptica es elegida aleatoriamente, entonces Np y Nq son números aleatorios cercanos p+ 1 y q+ 1, respectivamente (véase infra). Por lo tanto es poco probable que la mayoría de los factores principales Np y Nq son los mismos, y es muy probable que mientras computación eP, vamos a encontrar algunos kP que es modulop pero no moduloq, o viceversa. Cuando este es el caso, kP no existe en la curva original, y en las computaciones encontramos algunos v con ambos gcd(v,p)p o gcd(v,q)q, pero no ambos. Eso es, gcd(v,n) dio un factor no-trivial den.
ECM es, en esencia, una mejora del antiguo algoritmo p − 1. El algoritmo p − 1 encuentra factores primos p tales que p − 1 es b-powersmooth para valores pequeños de b. Para cualquier e, un múltiplo de p − 1, y cualquier a primo relativo a p, por el pequeño teorema de Fermat tenemos ae ≡ 1 (modificación p). Entonces gcd(ae − 1, n) es probable que produzca un factor de n. Sin embargo, el algoritmo falla cuando p - 1 tiene factores primos grandes, como es el caso de los números que contienen números primos fuertes, por ejemplo.
ECM sortea este obstáculo considerando el grupo de una curva elíptica aleatoria sobre el campo finito Zp, en lugar de considerar el multiplicativo grupo de Zp que siempre tiene orden p − 1. lapso>
El orden del grupo de una curva elíptica sobre Zp varía (bastante al azar) entre p + 1 − 2√p< /span> y p + 1 + 2√p por el teorema de Hasse, y es probable que sea suave para algunas curvas elípticas. Aunque no hay pruebas de que se encontrará un orden de grupo suave en el intervalo de Hasse, mediante el uso de métodos probabilísticos heurísticos, el teorema de Canfield-Erdős-Pomerance con opciones de parámetros adecuadamente optimizadas y la notación L, podemos esperar intentar < span class="texhtml">L[√2 /2, √2] curvas antes de obtener un orden de grupo suave. Esta estimación heurística es muy fiable en la práctica.
Un ejemplo
El siguiente ejemplo es de Trappe & Washington (2006), con algunos detalles añadidos.
Queremos factorizar n = 455839. Elijamos la curva elíptica y2 = x3 + 5x – 5, con el punto P = (1, 1) en él, e intentemos calcular (10!) P.
La pendiente de la recta tangente en algún punto A=(x, y) es < i>s = (3x2 + 5)/(2y) (módulo n). Usando s podemos calcular 2A. Si el valor de s es de la forma a/b donde b > 1 y mcd(a,b) = 1, tenemos que encontrar el inverso modular de b. Si no existe, mcd(n,b) es un factor no trivial de n.
Primero calculamos 2P. Tenemos s(P) = s(1,1) = 4, entonces las coordenadas de 2P = (x′, y′) son x′ = s2 – 2x = 14 y y′ = s(x – x′) – y = 4(1 – 14) – 1 = –53, todos los números entendidos (mod n). Solo para comprobar que este 2P está realmente en la curva: (–53)2 = 2809 = 143 + 5·14 – 5.
Entonces computamos 3(2)P). Tenemos s(22)P) s(14,-53) = –593/106 (mod n). Usando el algoritmo de Euclidean: 455839 = 4300·106 + 39, entonces 106 = 2·39 + 28, entonces 39 = 28 + 11, entonces 28 = 2·11 + 6, entonces 11 = 6 + 5, entonces 6 = 5 + 1. Por lo tanto gcd(455839, 106) = 1, y trabajando hacia atrás (una versión del algoritmo euclidiano extendido): 1 = 6 – 5 = 2·6 – 11 = 2·28 – 5·11 = 7·28 – 5·39 = 7·106 – 19·39 = 81707·106 – 19·455839. Por lo tanto 106−1 = 81707 (mod 455839), y –593/106 = –133317 (mod 455839). Dado esto s, podemos calcular las coordenadas de 2(2)PAsí como lo hicimos arriba: 4P = (259851, 116255). Sólo para comprobar que este es un punto en la curva: Sí.2 = 54514 = x3 + 5x – 5 (mod 455839). Después de esto, podemos calcular .
Podemos calcular 4!P de manera similar, y así sucesivamente, pero 8!P requiere invertir 599 (mod 455839).< /span> El algoritmo euclidiano da que 455839 es divisible por 599, y hemos encontrado una factorización 455839 = 599·761.
La razón por la que esto funcionó es que la curva (mod 599) tiene 640 = 27·5 puntos, mientras que (mod 761) tiene 777 = 3·7·37 puntos. Además, 640 y 777 son los enteros positivos más pequeños k tales que kP = ∞ en la curva (mod 599) y (mod 761), respectivamente. Como 8! es múltiplo de 640 pero no de 777, tenemos 8!P = ∞< /span> en la curva (mod 599), pero no en la curva (mod 761), por lo tanto, la adición repetida se rompió aquí abajo, produciendo la factorización.
El algoritmo con coordenadas proyectivas
Antes de considerar el plano proyectivo primero considerar un espacio "normal" proyectivo sobre R: En lugar de puntos, se estudian líneas a través del origen. Una línea puede ser representada como un punto no cero , bajo una relación de equivalencia ~ dada por: ⇔ c ل 0 tal que x' = cx, Sí. cSí. y z' = cz. Bajo esta relación de equivalencia, el espacio se llama el plano proyector ; puntos, denotados por , corresponden a líneas en un espacio tridimensional que pasan por el origen. Note que el punto no existe en este espacio ya que para dibujar una línea en cualquier dirección posible requiere por lo menos una de x',y' o z' ل 0. Ahora observa que casi todas las líneas pasan por cualquier avión de referencia dado - como el (X,Y,1)-plano, mientras que las líneas precisamente paralelas a este plano, teniendo coordenadas (X,Y,0), especificar direcciones únicas, como 'puntos en el infinito' que se utilizan en el afine (X,YEl plan está arriba.
En el algoritmo, sólo se utiliza la estructura de grupo de una curva elíptica sobre el campo R. Puesto que no necesitamos necesariamente el campo R, un campo finito también proporcionará una estructura de grupo en una curva elíptica. Sin embargo, considerando la misma curva y operación sobre con n no un primo no da un grupo. El método Elliptic Curve utiliza los casos de fracaso de la ley de adición.
Ahora declaramos el algoritmo en coordenadas proyectivas. El elemento neutral se da entonces por el punto de infinito . Vamos n ser un entero (positivo) y considerar la curva elíptica (un conjunto de puntos con alguna estructura en él) .
- Pick con a ل 0.
- Cálculo . La curva elíptica E es entonces en la forma Weierstrass dada por y utilizando coordenadas proyectivas la curva elíptica es dada por la ecuación homogénea . Tiene el punto .
- Elija un límite superior para esta curva elíptica. Observación: Usted sólo encontrará factores p si el orden de grupo de la curva elíptica E sobre (denominado por ) es B-smooth, lo que significa que todos los factores principales tener que ser menos o igual a B.
- Cálculo .
- Cálculo ()k tiempos) en el anillo . Note que si es B- moho y n es primo (y por lo tanto es un campo) que . Sin embargo, si sólo B-smooth para un divisor p de n, el producto podría no ser (0:1:0) porque la adición y la multiplicación no están bien definidos si n no es la primera. En este caso, se puede encontrar un divisor no-trivial.
- Si no, entonces vuelve al paso 2. Si esto ocurre, entonces usted notará esto al simplificar el producto
En el punto 5 se dice que bajo las circunstancias adecuadas se puede encontrar un divisor no-trivial. Como se señala en el artículo de Lenstra (Integers con curvas elípticas) la adición necesita la suposición . Si no y distinto (otra adición funciona de forma similar, pero es un poco diferente), entonces la adición funciona como sigue:
- Para calcular: ,
- ,
- ,
- ,
- .
Si la adición falla, esto será debido a una falla calculando En particular, porque no siempre se puede calcular si n no es primo (y por lo tanto no es un campo). Sin hacer uso de ser un campo, uno podría calcular:
- ,
- ,
- ,
- , y simplificar si es posible.
Este cálculo siempre es legal y si el mcd de la Z-coordina con el estilo n ≠ (1 o n), por lo que cuando falla la simplificación, se encuentra un divisor no trivial de n.
Curvas de Edwards retorcidas
El uso de las curvas de Edwards necesita menos multiplicaciones modulares y menos tiempo que el uso de las curvas de Montgomery o las curvas de Weierstrass (otros métodos utilizados). Usando las curvas de Edwards también puedes encontrar más números primos.
Definición. Vamos ser un campo en el que , y dejar con . Entonces la curva Edwards torcida es dado por Una curva Edwards es una curva torcida de Edwards en la que .
Hay cinco formas conocidas de construir un conjunto de puntos en una curva de Edwards: el conjunto de puntos afines, el conjunto de puntos proyectivos, el conjunto de puntos invertidos, el conjunto de puntos extendidos y el conjunto de puntos completos.
El conjunto de puntos afines viene dado por:
- .
La ley de la suma viene dada por
El punto (0,1) es su elemento neutral y el inverso de es .
Las otras representaciones se definen de forma similar a cómo la curva proyectiva de Weierstrass se deriva de la afín.
Cualquier curva elíptica en forma Edwards tiene un punto de orden 4. Así que el grupo de torsión de una curva Edwards sobre es isomorfo para ambos o .
Los casos más interesantes para ECM son y , ya que obligan a las órdenes del grupo de las primas del modulo curva a ser divisible por 12 y 16 respectivamente. Las siguientes curvas tienen un grupo de torsión isomorfa a :
- con punto Donde y
- con punto Donde y
Contenido relacionado
La conjetura catalana
Función integral logarítmica
Recursividad