La factorización de curvas elípticas de Lenstra o método de factorización de curvas elípticas ( ECM ) es un algoritmo rápido, de tiempo de ejecución subexponencial, para la factorización de enteros , que emplea curvas elípticas . Para la factorización de propósito general , ECM es el tercer método de factorización más rápido conocido. El segundo más rápido es el método de cribado cuadrático de polinomios múltiples , y el más rápido es el método de cribado de cuerpos numéricos generales . La factorización de curvas elípticas de Lenstra recibe su nombre de Hendrik Lenstra . Es un algoritmo de factorización de grupos algebraicos .
En la práctica, ECM se considera un algoritmo de factorización de propósito especial, ya que es el más adecuado para encontrar factores pequeños. ActualmenteSigue siendo el mejor algoritmo para divisores que no superan los 50 a 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 utiliza para eliminar factores pequeños de un 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 utilizando ECM hasta ahora tiene 83 dígitos decimales y fue descubierto el 7 de septiembre de 2013 por R. Propper. [ 1 ] Aumentar el número de curvas probadas mejora las posibilidades de encontrar un factor, pero no son lineales con el aumento en el número de dígitos.
Algoritmo
Fondo
El método de factorización de curvas elípticas de Lenstra utiliza una curva elíptica módulo n (es decir, el número a factorizar) y la multiplica por un punto aleatorio P en ella. La multiplicación se basa en la multiplicación de puntos de curvas elípticas , que a su vez es simplemente la suma repetida de puntos de curvas elípticas, descrita en el artículo sobre curvas elípticas . Esta suma formaría un grupo en el caso no modular y en el caso en que n es primo, porque(los enteros módulo) forma un grupo cuando n es primo.
Cuando se utilizan números modulares en lugar de todo el rango de enteros, la suma de dos puntos en la misma curva elíptica implicaría tomar la pendiente modular de una cuerda que uneyy por lo tanto la división entre clases de residuos módulo, realizado utilizando el algoritmo euclidiano extendido . En particular, la división por algúnincluye el cálculo de la. Suponiendo que calculamos una pendiente de la formacon, entonces si, el resultado de la suma de puntos será, el punto "en el infinito" correspondiente a la intersección de la línea "vertical" que uney la curva. Sin embargo, si, entonces la suma de puntos no producirá un punto significativo en la curva; pero, más importante aún,es un factor no trivial de: lo que significa que hemos factorizado el número con éxito.
Los métodos de multiplicación habituales, como la multiplicación por duplicado, siguen siendo válidos. No se requiere la suma sucesiva simple.
Proceso
El método de factorización de curvas elípticas de Lenstra para encontrar un factor de un número natural dado.Funciona de la siguiente manera:
- Elige una curva elíptica aleatoria sobre(los enteros módulo), con ecuación de la formajunto con un punto no trivialen él.
- Esto se puede hacer eligiendo primero al azar.y luego configurandopara asegurar que el punto esté en la curva.
- Como se mencionó anteriormente, hemos definido la suma y la multiplicación de un punto en la curva. Con suficientes sumas repetidas, deberíamos poder provocar un fallo en la suma, encontrando así un factor. Como resultado, calculamosen la curva elíptica (), dóndees el producto de muchos números pequeños.
- k puede ser un producto de primos pequeños elevados a potencias pequeñas, como en el algoritmo p-1 , o el factorialpara algunos no demasiado grandeEsto se puede hacer de manera eficiente, un pequeño factor a la vez. Por ejemplo, para obtener, primero calcular, entonces, entonces, etcétera.se elige que sea lo suficientemente pequeño como para queLa suma de puntos se puede realizar en un tiempo razonable.
- Comprueba el resultado de la suma.
- Si terminamos todos los cálculos anteriores sin encontrar elementos no invertibles (), significa que el orden de las curvas elípticas (módulo primos) no es lo suficientemente suave , por lo que debemos intentarlo de nuevo con una curva y un punto de partida diferentes.
- Si nos encontramos con unHemos terminado: es un factor no trivial de.
La complejidad temporal depende del tamaño del factor primo más pequeño del número y puede representarse mediante exp[( √ 2 + o (1)) √ ln p ln ln p ] , donde p es el factor más pequeño de n , o, en notación L .
Explicación
Si p y q son dos divisores primos de n , entonces y 2 = x 3 + ax + b (mod n ) implica la misma ecuación también módulo p y módulo q . Estas dos curvas elípticas más pequeñas con la-adición son ahora grupos genuinos . Si estos grupos tienen N p y N q elementos, respectivamente, entonces para cualquier punto P en la curva original, por el teorema de Lagrange , k > 0 es mínimo tal queen la curva módulo p implica que k divide a N p ; además,La afirmación análoga se cumple para la curva módulo q . Cuando la curva elíptica se elige aleatoriamente, entonces N p y N q son números aleatorios cercanos a p + 1 y q + 1, respectivamente (véase más abajo). Por lo tanto, es improbable que la mayoría de los factores primos de N p y N q sean los mismos, y es bastante probable que al calcular eP , encontremos algún kP que sea ∞ módulo p pero no módulo q , o viceversa. Cuando esto ocurre, kP no existe en la curva original, y en los cálculos encontramos algún v con mcd( v , p ) = p o mcd( v , q ) = q , pero no ambos. Es decir, mcd( v , n ) dio un factor no trivial de n .
ECM es esencialmente una mejora del antiguo algoritmo p − 1. El algoritmo p − 1 encuentra factores primos p tales que p − 1 es b-potencia suave para valores pequeños de b . Para cualquier e , un múltiplo de p − 1, y cualquier a relativamente primo a p , por el pequeño teorema de Fermat tenemos a e ≡ 1 ( mod p ) . Entonces mcd ( a e − 1, n ) probablemente producirá 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 primos fuertes , por ejemplo.
ECM sortea este obstáculo al considerar el grupo de una curva elíptica aleatoria sobre el campo finito Z p , en lugar de considerar el grupo multiplicativo de Z p que siempre tiene orden p − 1.
El orden del grupo de una curva elíptica sobre Z p varía (de forma bastante aleatoria) entre p + 1 − 2 √ p y p + 1 + 2 √ p según el teorema de Hasse , y es probable que sea suave para algunas curvas elípticas. Aunque no hay prueba de que se encontrará un orden de grupo suave en el intervalo de Hasse, utilizando métodos probabilísticos heurísticos , el teorema de Canfield-Erdős-Pomerance con elecciones de parámetros adecuadamente optimizadas y la notación L , podemos esperar probar 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.
Ejemplo de uso
El siguiente ejemplo proviene de Trappe y Washington (2006) , con algunos detalles añadidos.
Queremos tener en cuenta. Elegimos la curva elíptica, con el puntosobre él, y tratemos de calcular el punto.
La pendiente de la línea tangente en algún puntoen la curva es. Usando, podemos calcular el punto. Si el valor deno existe, como resultado deno tener un inverso modular , entonceses un factor no trivial de.
Primero, calculamos. Usando duplicación de puntos , tenemos, por lo tanto, las coordenadas del puntoson
cediendo el punto.
A continuación, calculamos. Tenemos. Desde, el inverso modular de 106 existe. Usando el algoritmo euclidiano extendido , podemos obtener que.
Dado esto, podemos calcular las coordenadas de, tal como lo hicimos anteriormente. Las coordenadas del puntoson
Esto produce.
Después de esto, podemos calcularusando la suma de puntos . La línea que uneytiene pendiente, por lo tanto las coordenadas deson
cediendo el punto
Podemos calcular puntos de manera similar,y así sucesivamente, pero la computaciónrequiere invertir 599 (mod 455839) , lo cual no es posible porque. Por lo tanto, 599 es un divisor de 455839. Después de una división rápida, tenemos 455839 = 599 × 761 .
La razón por la que esto funciona es que la curva (mod 599) tiene 640 = 2 7 ·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 las curvas (mod 599) y (mod 761), respectivamente. Como 8! es un múltiplo de 640 pero no de 777, tenemos 8! P = ∞ en la curva (mod 599), pero no en la curva (mod 761), por lo que la suma repetida falló aquí, dando como resultado la factorización.
El algoritmo, con coordenadas proyectivas
Antes de considerar el plano proyectivo sobreConsideremos primero un espacio proyectivo 'normal' sobreEn lugar de puntos, se estudian líneas que pasan por el origen. Una línea puede representarse como un punto distinto de cero., bajo una relación de equivalencia ~ dada por:⇔ Existe c ≠ 0 tal que x' = c x , y' = c y y z' = c z . Bajo esta relación de equivalencia, el espacio se denomina plano proyectivo.; puntos, denotados por, corresponden a líneas en un espacio tridimensional que pasan por el origen. Nótese que el puntono existe en este espacio ya que para trazar una línea en cualquier dirección posible se requiere al menos uno de x',y' o z' ≠ 0. Ahora observe que casi todas las líneas pasan por cualquier plano de referencia dado, como el plano ( X , Y ,1), mientras que las líneas precisamente paralelas a este plano, que tienen coordenadas ( X,Y ,0), especifican direcciones de forma única, como 'puntos en el infinito' que se utilizan en el plano afín ( X,Y ) sobre el que se encuentra.
La coordenada corresponde a en el espacio afín. [ 2 ]
En el algoritmo, solo la estructura de grupo de una curva elíptica sobre el campose utiliza. Dado que no necesariamente necesitamos el campo, un campo finito también proporcionará una estructura de grupo en una curva elíptica. Sin embargo, considerando la misma curva y operación sobreSi n no es primo, no se obtiene un grupo. El método de la curva elíptica utiliza los casos de fallo de la ley de adición.
Ahora enunciamos el algoritmo en coordenadas proyectivas. El elemento neutro viene dado entonces por el punto en el infinito.Sea n un entero (positivo) que se va a factorizar y consideremos la curva elíptica (un conjunto de puntos con alguna estructura)..
- Elegircon a ≠ 0.
- CalcularLa curva elíptica E está entonces en forma de Weierstrass dada pory utilizando coordenadas proyectivas la curva elíptica viene dada por la ecuación homogéneaTiene sentido..
- Elija un límite superiorpara esta curva elíptica.
- Nota: Solo encontrará factores p si el orden de grupo g de la curva elíptica E sobre(denotado por) es B-suave , lo que significa que todos los factores primos detienen que ser menores o iguales a B.
- Calcular.
- Calcular(la multiplicación es una suma repetida) en el anillo.
- Si el cálculo se realiza correctamente, devuelveEsto significa que g no es B -suave o que n es primo. Vuelve al paso 2 para elegir otra curva.
- Si el cálculo falla en algún punto, significa que se puede encontrar un divisor no trivial. Puede fallar porque la suma y la multiplicación no están bien definidas si n no es primo, pero esto solo ocurre cuando se intenta una inversión de un residuo v en particular . En este caso, el factor se encuentra comocomo se indicó anteriormente.
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 (Factoring Integers with Elliptic Curves), la suma requiere la suposición. Sino lo sony distintos (de lo contrario, la suma funciona de manera similar, pero es un poco diferente), entonces la suma funciona de la siguiente manera:
- Para calcular:,
- ,
- ,
- ,
- .
Si la suma falla, esto se deberá a un error de cálculo.En particular, porqueno siempre se puede calcular si n no es primo (y por lo tantono es un campo). Sin hacer uso deSiendo un campo, se podría calcular:
- ,
- ,
- ,
- y simplificar si es posible.
Este cálculo siempre es válido y si el mcd de la coordenada Z con n ≠ (1 o n ), entonces cuando la simplificación falla, se encuentra un divisor no trivial de n .
Variante de dos etapas
De forma análoga a la variante de dos etapas del algoritmo p − 1 de Pollard , Lenstra ECM también puede realizarse en dos etapas. Esto permite ahorrar un factor de tiempo de O(log p ). [ 2 ]
Algoritmo ECM de dos etapas. [ 2 ]
- Entrada: número a factorizar n , límites enteros.
- Salida: un factor de n o fallo.
Preparación.
- Elija una curva elíptica aleatoria E mod n .
- Elige un puntoen la curva.
(Una opción conveniente es la de Suyama)parametrización, que solo requiere que se extraiga un número aleatorio.)
Etapas.
- Calcular un puntoen la E. El producto significa que se recorre cada primo.; desempeña el mismo papel que el grandevisto en los algoritmos anteriores.
- Utilizando el producto de todas las potencias primas menores queen lugar dereduce la complejidad asintótica en. [ 3 ]
- Para cada primo p ,,
- Calcular un puntouno .
- Calcular. Si, produccióny salir.
- Si se prueban todos los números primos dentro del rango sin obtener ningún factor, informe de un fallo.
Es posible que la etapa 1 produzca un factor como el que se ha comentado anteriormente: un denominador no invertible implica un factor.es funcionalmente lo mismo quede la versión estándar, por lo que también sucede cuando el orden del grupo g es B-suave . En otras palabras, se busca un divisor primo p tal quees el elemento neutral deen la etapa 1.
La segunda etapa es muy similar a la segunda etapa de p-1 y p+1. Es una continuación del trabajo de la etapa 1 y se puede describir utilizando términos matemáticos muy similares. Relaja la condición de tal manera que se puede encontrar un factor cuando g es-suave, o en otras palabras el factor primo más grande de g es como máximoy el segundo más pequeño es como máximo.
Para alcanzar la etapa 2, se espera que exista un número primo p entreyde tal manera que; buscar una inversión fallida la produciría después de un mcd. Equivalentemente, se busca un divisor primo q tal quetiene orden primo pequeño en. Comprobando un pequeño pedido dese realiza en la etapa 2 mediante computaciónmódulo n para cada primo l . [ 2 ]
Lo anterior describe el enfoque "ingenuo", que es susceptible de optimización por emparejamiento de primos y extensión de Brent-Suyama. Sin embargo, también está disponible una etapa 2 de multiplicación de polinomios mucho más rápida en la tesis de Peter Montgomery de 1992. [ 2 ] Este nuevo enfoque se encuentra en GMP-ECM y Prime95. [ 4 ] Este enfoque se extendió posteriormente a p-1 y p+1 (Montgomery y Kruppa 2008). [ 5 ]
Curvas retorcidas de Edwards
El uso de curvas de Edwards requiere menos multiplicaciones modulares y menos tiempo que el uso de curvas de Montgomery o Weierstrass (otros métodos utilizados). Además, con las curvas de Edwards se pueden encontrar más números primos.
Definición. Dejeser un campo en el quey dejarconLuego, la curva retorcida de Edwards.es dado porUna curva de Edwards es una curva de Edwards retorcida en la que.
Existen 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 completados.
El conjunto de puntos afines viene dado por:
- .
La ley de adición viene dada por
El punto (0,1) es su elemento neutro y el inverso dees.
Las demás representaciones se definen de forma similar a como la curva proyectiva de Weierstrass se deriva de la afín.
Cualquier curva elíptica en forma de Edwards tiene un punto de orden 4. Por lo tanto, el grupo de torsión de una curva de Edwards sobrees isomorfo a cualquierao.
Los casos más interesantes para ECM son:y, ya que obligan a que los órdenes de grupo de la curva módulo primos sean divisibles por 12 y 16 respectivamente. Las siguientes curvas tienen un grupo de torsión isomorfo a:
- con puntodóndey
- con puntodóndey
Cada curva de Edwards con un punto de orden 3 se puede escribir de las formas que se muestran arriba. Curvas con grupo de torsión isomorfo aypuede ser más eficiente para encontrar números primos. [ 6 ]
Implementaciones de software
GMP-ECM de Paul Zimmerman es una implementación de propósito general del algoritmo Lenstra basada en la biblioteca aritmética de precisión múltiple de GNU . Se ha actualizado continuamente, siendo la última versión a septiembre de 2025 la 7.0.6 de julio de 2024. Permite curvas Montgomery, Weierstrass y Hessiana (retorcida). Puede ejecutar la etapa 1 para un subconjunto de curvas Montgomery en una GPU CUDA , y la implementación anterior de Cyril Bouvier en 2012 fue reemplazada por la implementación más reciente de Seth Troisi en 2021. La versión 7.0.6 también incluye una implementación del método HECM (descrito a continuación), los métodos p-1 y p+1, y prueba de primalidad usando APRCL. [ 7 ] GMP-ECM se usa en SageMath .
Daniel J. Bernstein y sus colaboradores publicaron una serie de implementaciones basadas en curvas elípticas de Twisted Edwards entre 2008 y 2010. Todas afirman superar el rendimiento de la versión contemporánea de GMP-ECM, siendo la más reciente EECM-MPFQ de 2008. Bernstein también ofrece dos implementaciones para GPU, siendo CUDA-EECM de 2009 la más reciente y rápida. [ 6 ] [ 8 ]
Prime95 incluye una implementación de Lenstra ECM para curvas de Montgomery y Edwards. Se utiliza para el subproyecto ECM de Great Internet Mersenne Prime Search , que busca factorizar números de Mersenne compuestos no menores que 2¹²¹³ . [ 9 ] Puede producir una salida de etapa 1 compatible con GMP-ECM, así como consumir la salida de etapa 1 de GMP-ECM. [ 10 ] Es más rápido que GMP-ECM en la etapa 1. [ 11 ]
John Wloka y sus colaboradores publicaron en 2020 ecmongpu, una implementación de las etapas 1 y 2 de Lenstra ECM basada en curvas elípticas de Twisted Edwards. Su artículo informa sobre el rendimiento para factorizar módulos de hasta 448 bits de longitud (entre 2⁴⁴⁷ y 2⁴⁴⁸ - 1). [ 12 ]
Todo el software mencionado anteriormente es de código abierto. Además, el software de código abierto PARI/GP y el sistema propietario Magma (sistema de álgebra computacional) también contienen "buenas implementaciones de ECM", según Paul Zimmerman. [ 11 ] Una implementación de software anterior de 16 bits [ 13 ] es giantint, de Richard Crandall. [ 11 ]
Método de curvas hiperelípticas (HECM)
Hay avances recientes en el uso de curvas hiperelípticas para factorizar números enteros. Cosset muestra en su artículo (de 2010) que se puede construir una curva hiperelíptica con género dos (por lo que una curvacon f de grado 5), lo que da el mismo resultado que usar dos curvas elípticas "normales" al mismo tiempo. Al utilizar la superficie de Kummer, el cálculo es más eficiente. Las desventajas de la curva hiperelíptica (frente a una curva elíptica) se compensan con esta alternativa de cálculo. Por lo tanto, Cosset afirma, en términos generales, que usar curvas hiperelípticas para la factorización no es peor que usar curvas elípticas.
Versión cuántica (GEECM)
Bernstein , Heninger , Lou y Valenta proponen GEECM, una versión cuántica de ECM con curvas de Edwards. [ 14 ] Utiliza el algoritmo de Grover para duplicar aproximadamente la longitud de los primos encontrados en comparación con EECM estándar, suponiendo una computadora cuántica con suficientes cúbits y de velocidad comparable a la de la computadora clásica que ejecuta EECM.
Referencias
- ↑ 50 factores más importantes encontrados por ECM .
- 1 2 3 4 5 Zimmermann, Paul; Dodson, Bruce (2006). "20 años de ECM" (PDF) . Teoría algorítmica de números . Notas de clase en ciencias de la computación. Vol. 4076. págs. 525–542 . doi : 10.1007/11792086_37 . ISBN 978-3-540-36075-9.HAL
- ↑ Galbraith, Steven (2012). "Prueba de primalidad y factorización de enteros mediante grupos algebraicos". Matemáticas de la criptografía de clave pública ( PDF) . Cambridge University Press. págs. 261–268 . Consultado el 16 de agosto de 2025 .
- ↑ https://www.mersenne.org/download/whatsnew_3019b11.txt "Etapa 2 de ECM que utiliza una multiplicación polinómica rápida similar al programa GMP-ECM. Si se dispone de mucha memoria para la etapa 2, esta implementación será sustancialmente más rápida."
- ↑ Montgomery, Peter L.; Kruppa, Alexander (2008). "Algoritmos de factorización mejorados de la etapa 2 a P ± 1" (PDF) . Teoría algorítmica de números . Notas de clase en informática. Vol. 5011. págs. 180–195 . doi : 10.1007/978-3-540-79456-1_12 . ISBN 978-3-540-79455-4.
- ^ Berstein , Daniel J.; Birkner, Peter; Lange, Tanja ; Peters, Christiane (9 de enero de 2008). "ECM utilizando curvas de Edwards" (PDF) . Archivo ePrint de criptología .(Véase la parte superior de la página 30 para ver ejemplos de dichas curvas).
- ↑ "ZIMMERMANN Paul / ecm · GitLab" . GitLab .
- ↑ "EECM: ECM usando curvas de Edwards" .
- ^ "Progreso de GIMPS ECM - PrimeNet" . www.mersenne.org .
- ↑ undoc.txt y ECMSTAGE2=
- 1 2 3 Zimmerman, Paul. "Software ECM" .
- ↑ Wloka, Jonas; Richter-Brockmann, Jan; Stahlke, Colin; Kleinjung, Thorsten; Priplata, Christine; Güneysu, Tim (2020). Revisiting ECM on GPUs . 19th International Conference on Cryptology and Network Security. Vol. 12579. pp. 299– 319. doi : 10.1007/978-3-030-65411-5_15 .
- ↑ Bernstein, DJ. "gigante" .
- ↑ Bernstein DJ, Heninger N., Lou P., Valenta L. (2017) Post-quantum RSA . En: Lange T., Takagi T. (eds), Post-Quantum Cryptography . PQCrypto 2017. Lecture Notes in Computer Science, vol 10346. Springer, Cham
- Bernstein, Daniel J.; Birkner, Peter; Lange, Tanja; Peters, Christiane (2013). "ECM utilizando curvas de Edwards" . Matemáticas de la Computación . 82 (282): 1139– 1179. doi : 10.1090/S0025-5718-2012-02633-0 . SEÑOR 3008853 .
- Bosma, W.; Hulst, MPM van der (1990). Prueba de primalidad con ciclotomía . Doctor en Filosofía. Tesis, Universiteit van Amsterdam. OCLC 256778332 .
- Brent, Richard P. (1999). "Factorización del décimo número de Fermat" . Matemáticas de la Computación . 68 (225): 429– 451. Bibcode : 1999MaCom..68..429B . doi : 10.1090/S0025-5718-99-00992-8 . MR 1489968 .
- Cohen, Henri (1993). Un curso de teoría algebraica computacional de números . Textos de posgrado en matemáticas. Vol. 138. Berlín: Springer-Verlag. doi : 10.1007/978-3-662-02945-9 . ISBN 978-0-387-55640-6. MR 1228206 . S2CID 118037646 .
- Cosset, R. (2010). " Factorización con curvas de género 2". Matemáticas de la Computación . 79 (270): 1191– 1208. arXiv : 0905.2325 . Bibcode : 2010MaCom..79.1191C . doi : 10.1090/S0025-5718-09-02295-9 . MR 2600562. S2CID 914296 .
- Lenstra, AK ; Lenstra Jr., HW, eds. (1993). El desarrollo de la criba de cuerpos numéricos . Lecture Notes in Mathematics. Vol. 1554. Berlín: Springer-Verlag. pp. 11–42 . doi : 10.1007/BFb0091534 . ISBN 978-3-540-57013-4MR 1321216 .
- Lenstra Jr., HW (1987). "Factoring integers with elliptic curves" (PDF) . Annals of Mathematics . 126 (3): 649– 673. doi : 10.2307/1971363 . hdl : 1887/2140 . JSTOR 1971363. MR 0916721 .
- Pomerance, Carl ; Crandall, Richard (2005). Números primos: una perspectiva computacional (segunda edición). Nueva York: Springer. ISBN 978-0-387-25282-7MR 2156291 .
- Pomerance, Carl (1985). «El algoritmo de factorización de criba cuadrática». Avances en criptología, Actas de Eurocrypt '84 . Notas de clase en informática. Vol. 209. Berlín: Springer-Verlag. pp. 169–182 . doi : 10.1007/3-540-39757-4_17 . ISBN 978-3-540-16076-2. SR 0825590 .
- Pomerance, Carl (1996). "Un cuento de dos tamices" (PDF) . Notices of the American Mathematical Society . 43 (12): 1473– 1485. MR 1416721 .
- Silverman, Robert D. (1987). "The Multiple Polynomial Quadratic Sieve" . Mathematics of Computation . 48 (177): 329– 339. doi : 10.1090/S0025-5718-1987-0866119-8 . MR 0866119 .
- Trappe, W.; Washington, LC (2006). Introducción a la criptografía con teoría de la codificación (Segunda edición). Saddle River, NJ: Pearson Prentice Hall. ISBN 978-0-13-186239-5. MR 2372272 .
- Samuel S. Wagstaff, Jr. (2013). El placer de factorizar . Providence, RI: American Mathematical Society. pp. 173–190 . ISBN 978-1-4704-1048-3.
- Watras, Marcin (2008). Criptografía, análisis numérico y números muy grandes . Bydgoszcz: Wojciechowski-Steinhagen. PL:5324564.
Enlaces externos
- Factorización mediante el método de curva elíptica , una aplicación WebAssembly que utiliza ECM y cambia al método de criba cuadrática autoinicializable cuando es más rápido.
- GMP-ECM se archivó el 12 de septiembre de 2009 en Wayback Machine ; es una implementación eficiente de ECM.
- ECMNet , una implementación cliente-servidor sencilla que funciona con varios proyectos de factorización.
- pyecm , una implementación en Python de ECM.
- El proyecto de computación distribuida yoyo@Home, subproyecto ECM, es un programa para la factorización de curvas elípticas que se utiliza para encontrar factores para diferentes tipos de números.
- Código fuente del algoritmo de factorización de curvas elípticas de Lenstra. Código fuente del algoritmo de factorización de curvas elípticas simple en C y GMP.
- EECM-MPFQ: Una implementación de ECM que utiliza curvas de Edwards, escrita con la biblioteca de campos finitos MPFQ.
- Algoritmos de factorización de enteros
- Campos finitos