La factorización mediante curvas elípticas ( método de factorización de curvas elípticas en inglés , abreviado ECM ) o el método de factorización de Lenstra mediante curvas elípticas ( factorización de curvas elípticas en inglés Lenstra ) es un algoritmo para factorizar un número natural mediante curvas elípticas . Este algoritmo tiene una complejidad subexponencial [1] . ECM es el tercero de ejecución más rápida [2] después del método de tamiz de campo numérico general y el método de tamiz cuadrático .
En la práctica, es más adecuado para encontrar pequeños divisores primos de un número y, por lo tanto, se considera un algoritmo altamente especializado [3] .
Es el mejor algoritmo [4] para encontrar divisores primos de 20-25 caracteres de longitud (tamaño 64…83 bits), porque su complejidad depende principalmente del divisor primo más pequeño p, y no del número factorizado.
A menudo se usa para identificar (descartar) pequeños divisores primos de un número. Si el número obtenido después de la operación del algoritmo sigue siendo compuesto, entonces los factores restantes son números grandes, y para una mayor expansión tiene sentido usar algoritmos de factorización más generales.
El divisor más grande encontrado usando este algoritmo tiene 83 caracteres y fue encontrado por Ryan Propper el 7 de septiembre de 2013 [5] .
Algoritmo de factorización (encontrar un divisor no trivial) de un número natural [6] :
La ecuación tomada módulo el número n define una curva elíptica . Si los números p y q son dos divisores primos del número n , entonces la ecuación anterior también será cierta cuando se tome módulo p o módulo q . Es decir, : y : definen, respectivamente, dos curvas elípticas (menor que ). Sin embargo, incluso con una operación de suma dada , no solo son curvas elípticas: también son grupos . Que contengan N p y N q elementos, respectivamente, entonces si:
Entonces por el teorema de Lagrange es cierto que
Una afirmación similar también es válida para una curva módulo q .
El orden de un grupo de puntos que se encuentran en una curva elíptica sobre Z p está acotado por el teorema de Hasse : p + 1 − 2 √ p p + 1 + 2 √ p
Para una curva elíptica elegida al azar, los órdenes N p y N q son números aleatorios acotados por el teorema de Hasse (ver más abajo). Es poco probable que la mayoría de los divisores primos de N p y N q sean iguales, y es probable que cuando se calcule eP , se encontrará algún módulo p pero no mod q , o viceversa. Si este es el caso, entonces kP no existe en la curva original, y en los cálculos se encontró una v tal que gcd( v , p ) = p o gcd( v , q ) = q , pero no ambas. Entonces mcd( v , n ) es un divisor no trivial de n .
ECM es un refinamiento del antiguo método P-1 de Pollard [7] . El algoritmo p − 1 encuentra divisores primos de p tales que ( p − 1) es B-suave para alguna B pequeña . Para cualquier e que sea un múltiplo de ( p − 1 ) , y para cualquier a que sea relativamente primo de p , el teorema de Fermat sostiene que a e ≡ 1 (mod p ) . Entonces mcd ( a e − 1, n ) será un divisor de n con alta probabilidad . Sin embargo, el algoritmo p − 1 fallará [7] cuando p tenga grandes divisores primos. ECM funciona correctamente en este caso, porque en lugar de considerar el grupo multiplicativo sobre Z p , cuyo orden es siempre p − 1 , consideramos el grupo de una curva elíptica aleatoria sobre un campo finito Z p .
El orden de un grupo de puntos que se encuentran en una curva elíptica sobre Z p está acotado por el teorema de Hasse : p + 1 − 2 √ p p + 1 + 2 √ p . Parece importante investigar [8] la probabilidad de que algún número suave se encuentre en este intervalo (en este caso, hay curvas cuyo orden es un número suave). No hay evidencia de que siempre haya algún número suave en el intervalo de Hasse, pero usando métodos probabilísticos heurísticos , el teorema de Canfield -Erdős-Pomerance [ 9] y la notación L , obtenemos una estimación de que es suficiente tomar L [ √ 2 /2, √ 2 ] se curva hasta obtener un orden de grupo suave. Esta estimación heurística es bien aplicable en la práctica.
Factorización [10] del número n = 455839.
Se selecciona una curva elíptica y un punto que se encuentra en esta curva
¡10 se calculan secuencialmente! pag :
1. Se calculan las coordenadas del punto .
2. Calculado .
3. Del mismo modo, puede calcular , , etc. Al momento de calcular 640 P , se puede notar que se requiere el cálculo del elemento inverso a 599 (mod 455839). Como 455839 es divisible por 599, se encuentra la descomposición requerida: 455839 = 599 761.
Sea p el divisor más pequeño de n . Luego, el número de operaciones aritméticas realizadas se puede estimar por el valor [11] : (o en notación L ). Si reemplazamos p por , entonces obtenemos una estimación de complejidad subexponencial: .
Si comparamos el método de las curvas elípticas con otros métodos de factorización, entonces este método pertenece a la clase de métodos de factorización subexponenciales [1] y, por lo tanto, funciona más rápido que cualquier método exponencial. Cuando se compara con el método de tamiz cuadrático (QS) y el método de tamiz de campo numérico (NFS) , todo depende del tamaño del divisor más pequeño de n [12] . Si se elige el número n , como en RSA , como un producto de dos números primos de aproximadamente la misma longitud, entonces el método de la curva elíptica tiene la misma estimación que el método de tamiz cuadrático, pero es inferior al método de tamiz de campo numérico [13 ] .
Antes de considerar el plano proyectivo sobre , vale la pena considerar el plano proyectivo habitual sobre ℝ: en lugar de puntos, consideramos líneas que pasan por 0. Una línea se puede definir usando un punto distinto de cero de la siguiente manera: para cualquier punto de esta línea ⇔ ∃ c ≠ 0, tal que x' = c x , y' = c y y z' = c z . De acuerdo con esta relación de equivalencia , el espacio se denomina plano proyectivo . Los puntos del plano corresponden a líneas del espacio tridimensional que pasan por 0. Nótese que el punto no existe en este espacio, ya que no define una línea que pasa por 0. El algoritmo de Lenstra no requiere el uso del campo ℝ , el campo finito también proporciona la estructura del grupo sobre la curva elíptica . Sin embargo, la misma curva, pero con operaciones sobre , no forma grupo si no es un número primo. El método de factorización mediante curvas elípticas utiliza las características de la ley de la suma en los casos en que no es simple.
Algoritmo de factorización en coordenadas proyectivas [14] :. El elemento neutro en este caso viene dado por el punto en el infinito . Sea n un número entero y positivo, una curva elíptica .
En el punto 5, el cálculo puede no ser posible, ya que sumar dos puntos sobre una curva elíptica requiere el cálculo de , que no siempre es posible si n no es un número primo. Es posible calcular la suma de dos puntos de la siguiente manera, que no requiere la primacía de n (no requiere que sea un campo):
El uso de curvas de Edwards permite [15] reducir el número de operaciones modulares y reducir el tiempo de ejecución del algoritmo en comparación con las curvas elípticas en forma de Weierstrass ( ) y en forma de Montgomery ( ).
Definición: Sea un campo cuya característica no sea un número , y sea . Entonces, la curva de Edwards se define como Hay cinco formas de construir un conjunto de puntos en una curva de Edwards: un conjunto de puntos afines , un conjunto de puntos proyectivos , un conjunto de puntos invertidos , un conjunto de puntos extendidos y un conjunto de puntos completados . puntos ). Por ejemplo, el conjunto de puntos afines se da como: .
Operación de suma: La ley de la suma viene dada por la fórmula .
El punto (0,1) es el elemento neutro, y el inverso del punto es .
Otras formas se obtienen de forma similar a como se obtiene una curva proyectiva de Weierstrass a partir de una curva afín.
Ejemplo de suma: puede demostrar la ley de la suma usando un ejemplo de una curva elíptica en forma de Edwards con d = 2: y puntos en ella. Se propone comprobar que la suma de P 1 con el elemento neutro (0,1) es igual a P 1 . En realidad:
Cada curva elíptica en la forma de Edwards tiene un punto de orden 4. Por lo tanto, el grupo periódico de una curva de Edwards es isomorfo a o .
Para la factorización usando el algoritmo de Lenstra, los casos más interesantes [16] son y .
Un ejemplo de una curva que contiene un grupo periódico isomorfo a :
con un punto situado en el círculo unitario con centro en el punto (0,-1).
Algoritmos de teoría de números | |
---|---|
Pruebas de simplicidad | |
Encontrar números primos | |
Factorización | |
logaritmo discreto | |
Encontrar MCD | |
Módulo aritmético | |
Multiplicación y división de números. | |
Calcular la raíz cuadrada |