Factorización con curvas elípticas

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 14 de octubre de 2016; las comprobaciones requieren 57 ediciones .

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

Algoritmo de factorización (encontrar un divisor no trivial) de un número natural [6] :

  1. Se elige una curva elíptica aleatoria sobre , con una ecuación de la forma : , y se elige un punto no trivial en esta curva . Esto se puede hacer así:
    1. Los números se seleccionan al azar .
    2. Calculado .
  2. Se elige un número entero que sea el producto de una gran cantidad de números pequeños. Por ejemplo, como puedes elegir:
    • Factorial de algún número pequeño .
    • El producto de varios números primos pequeños a potencias pequeñas. Es decir, se eligen números primos (que no superen un número determinado ), y grados tales que el resultado de elevar a la potencia adecuada no supere un número determinado :
    donde  es el mayor de los posibles indicadores, en el que .
  3. El producto de la curva elíptica se calcula : , donde  es la operación de suma definida por la ley de grupos . La operación de suma requiere encontrar la pendiente del segmento que conecta los puntos sumados y, por lo tanto, requiere la operación de división módulo n . La operación de módulo se realiza utilizando el algoritmo de Euclides extendido . En particular, dividir por algún número v (mod n ) implica encontrar el mcd ( v ,  n ) . En el caso de mcd( vn ) 1, mcd( vn ) n , -la suma no dará ningún punto significativo en la curva elíptica, lo que implica que mcd( vn )  es un divisor no trivial de n . En base a esto, los siguientes casos son posibles en el proceso de cálculo:
    • Si no se encontraron elementos irreversibles (mod  n ) durante el cálculo , entonces es necesario elegir otra curva elíptica y punto y repetir el algoritmo desde el principio.
    • Si en algún momento , donde ( ), entonces debe elegir otra curva elíptica y punto y repetir el algoritmo desde el principio, porque el punto permanecerá sin cambios después de más operaciones de suma.
    • Si en alguna etapa del cálculo mcd( vn ) 1 y mcd( vn ) n , entonces mcd( vn )  es el divisor no trivial requerido de n .

Justificación

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:

  1.  - cualquier punto de la curva original
  2. son  números positivos tales que:
  3.  es el minimo de

Entonces por el teorema de Lagrange es cierto que

  1.  - divisor

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.  

Ejemplo

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 .

. Para calcular 593/106 módulo n , puede usar el algoritmo de Euclides extendido : 455839 = 4300 106 + 39, luego 106 = 2 39 + 28, luego 39 = 28 + 11, luego 28 = 2 11 + 6, luego 11 = 6 + 5, luego 6 = 5 + 1. Por lo tanto, MCD(455839, 106) = 1, y viceversa: 1 = 6 - 5 = 2 6 - 11 = 2 28 - 5 11 = 7 28 - 5 39 = 7 106 - 19 39 = 81707 106 - 19 455839. De donde 1/106 = 81707 (mod 455839), por lo tanto −593 / 106 = 322522 (mod 455839).

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.

Complejidad computacional

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 ] .

Algoritmo con coordenadas proyectivas

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 .

  1. Seleccionado ( a ≠ 0).
  2. Calculado . La curva elíptica E se da como (forma de Weierstrass). Usando coordenadas proyectivas, una curva elíptica se puede escribir como una ecuación homogénea . se encuentra en esta curva.
  3. Se selecciona el límite superior . Nota: puede haber factores solo si el orden del grupo E sobre  es un número B-liso . Esto significa que todos los factores primos sobre E deben ser menores o iguales que B.
  4. Se calcula el NOC .
  5. Calculado en el ring . Es importante tener en cuenta que si | | - B-suave , y n  es simple (en este caso  , un campo), entonces . Sin embargo, si | | - B-suave para algún número p que es un divisor de n , el resultado puede no ser (0:1:0) porque la suma y la multiplicación pueden no funcionar tan bien si n no es un número primo. Por lo tanto, es posible encontrar un divisor no trivial de n .
  6. Si no se encuentra el divisor, se repite el algoritmo desde el paso 2.

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):

Usando las curvas de Edwards

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).

Véase también

Notas

  1. 1 2 Bressoud, 2000 , p. 331.
  2. Parker, 2014 .
  3. Bressoud, 2000 .
  4. Brent, 1998 .
  5. 50 divisores más grandes encontrados por ECM . Fecha de acceso: 27 de noviembre de 2016. Archivado desde el original el 20 de febrero de 2009.
  6. Lenstra, 1987 , pág. 16-20.
  7. 12 Lenstra , 1987 .
  8. Lenstra, Algoritmos teóricos de números, 1986 , p. dieciséis.
  9. Canfield, 1983 .
  10. Introducción a la criptografía con teoría de la codificación, 2006 .
  11. Vasilenko, 2006 , pág. 109.
  12. Lenstra, Algoritmos teóricos de números, 1986 , p. 331.
  13. Brent, 1998 , pág. 12
  14. Vasilenko, 2006 , pág. 112.
  15. ECM usando curvas de Edwards, 2013 , p. 2-3.
  16. ECM usando curvas de Edwards, 2013 , p. 19

Literatura

Enlaces