Logaritmo discreto sobre una curva elíptica es la solución de la ecuación para conocidas y , donde son los puntos que pertenecen a la curva elíptica y que son el mensaje encriptado y el punto de partida, respectivamente [1] . En otras palabras, es un método para piratear un sistema de seguridad basado en una curva elíptica dada (por ejemplo, el estándar ruso EP GOST R 34.10-2012 [2] ) y encontrar una clave secreta .
La criptografía elíptica se refiere a la categoría de asimétrica , es decir, el cifrado se produce mediante una clave pública. Este algoritmo fue propuesto por primera vez de forma independiente por Neil Koblitz y Victor Miller en 1985 [3] . Esto se justificó por el hecho de que el logaritmo discreto sobre una curva elíptica resultó ser más complicado que el logaritmo discreto clásico sobre un campo finito . Hasta ahora, no existen algoritmos rápidos para descifrar un mensaje cifrado utilizando una curva elíptica en el caso general. Básicamente , las vulnerabilidades de tales cifrados están asociadas con una serie de deficiencias en la selección de datos iniciales [4] .
Este método se basa en la reducción del logaritmo discreto sobre una curva elíptica al logaritmo discreto sobre un campo finito con alguna extensión del campo sobre el que se dio la curva elíptica. Esto simplifica mucho la tarea, ya que actualmente existen algoritmos subexponenciales suficientemente rápidos para resolver el logaritmo discreto, que tienen complejidad , o el algoritmo de Pollard con complejidad , desarrollado para campos finitos [5] .
Sea una curva elíptica dada en la forma de Weierstrass sobre un campo de orden finito :
Supongamos que los coeficientes son tales que la curva no tiene singularidades . Los puntos de la curva , junto con el punto en el infinito , que es el elemento cero, forman un grupo conmutativo escrito de forma aditiva , es decir, para . También se sabe que si es un campo finito, entonces el orden de tal grupo , según el teorema de Hasse , satisfará la ecuación .
Sea un subgrupo de puntos definidos sobre . Por lo tanto, es un grupo conmutativo finito . Tome un punto generando un grupo cíclico de orden . Eso es [1] .
La tarea de calcular logaritmos discretos es la siguiente. Para un punto dado , encuentre tal que .
El problema de calcular logaritmos discretos en un campo finito es el siguiente. Sea un elemento primitivo del campo . Para un determinado distinto de cero , encuentre tal que [6] .
Sea LCM y una extensión de campo tal que contenga un subgrupo de torsión isomorfo a , es decir, . Se sabe que tal extensión existe [7] . De esto se deduce que para algunos . En este caso, se cumplirá el siguiente teorema, que permite pasar a un logaritmo discreto en un campo finito extendido [6] :
Sea un punto tal que . Entonces, la complejidad de calcular logaritmos discretos en el grupo no es mayor que la complejidad de calcular logaritmos discretos en .
Para utilizar este teorema, es necesario conocer el grado de extensión del campo sobre y el punto por el cual [6] .
Para una curva supersingular , y se encuentran fácilmente, mientras que . Esto fue establecido por Alfred Menezes , Okamoto Tatsuaki y Scott Vanstone en 1993. En su artículo, describieron un algoritmo probabilístico para calcular un punto auxiliar , cuyo tiempo de ejecución promedio está limitado por un polinomio en [4] .
Sea el subgrupo máximo cuyo orden de elementos es el producto de factores primos . Así, y , donde divide y . En este caso (en el caso , se puede adaptar el método de curvas supersingulares [6] para encontrar el punto ). Sea el mínimo número natural para el cual .
TeoremaDeje NOK . Entonces y si se conoce la descomposición en factores primos, entonces existe un algoritmo probabilístico para calcular el punto para el cual . El tiempo promedio de ejecución del algoritmo es igual a las operaciones en el campo para alguna constante y .
En los casos en que LCM , el algoritmo funciona demasiado lento o no funciona en absoluto [6] .