ECDLP (Elliptic Curve Discrete Logarithm Problem) es un problema de logaritmo discreto en un grupo de puntos de una curva elíptica .
Sean dados una curva elíptica E, un campo finito F p , y puntos P, Q ∈ E(F p ). La tarea de ECDLP es encontrar tal k, si existe, que Q = [k]P.
Una curva elíptica E sobre un campo finito F p es una curva de la forma (forma de Weierstrass):
, donde a, b ∈ F pag .El conjunto de puntos en una curva elíptica en el campo F p , incluido el punto "infinito" (denotado como Ο), forma un grupo abeliano finito y se denota como E(F p ) .
Un punto Q ∈E (F p ) se llama punto inverso a P ∈ E(F p ) si P + Q = Ο y se denota como Q = -P .
Para un número natural n y P ∈ E(F p ) asumimos:
Las notaciones [n]P y nP son equivalentes. La definición se puede extender a cualquier número entero n usando -P.
El orden de un grupo de puntos es el número N igual a la cardinalidad del conjunto E(F p ) y se denota como |E(F p )| =N . Por lo general, en la criptografía elíptica, las curvas se toman de manera que N = h * l, donde h = 1, 2 o 4, y l es un número primo grande.
El orden de un punto P ∈ E(Fp) es el número mínimo s tal que [s]P = Ο. En este caso, se forma un subgrupo y el punto P se llama generador .
Es el ataque más simple de implementar. Solo es necesario poder realizar la operación R = [k]P.
AlgoritmoComplejidad del algoritmo: Ο(N).
Sea G un subgrupo de E(F p ), (es decir, se supone que el número N se puede factorizar), y .
Resolveremos el problema de encontrar k módulo , luego, usando el teorema chino del resto , encontraremos la solución k módulo N.
Se sabe por la teoría de grupos que existe un isomorfismo de grupo:
donde es un subgrupo cíclico de G,
Entonces la proyección sobre :
Por lo tanto, en .
Mostremos cómo resolver el problema en , reduciéndolo a resolver ECDLP en .
Sea y .
El número se define módulo . Entonces k se puede escribir de la siguiente forma:
Encontremos los valores por inducción. Supongamos que sabemos - el valor , es decir
Ahora queremos determinar y así calcular :
entonces _
Deja y luego
Ahora - el elemento de orden , para obtener el elemento de orden y, por tanto, reducir a él el problema es necesario multiplicar la expresión anterior por . Que.
yRecibió ECDLP en el campo como .
Suponiendo que este problema se puede resolver en , encontramos la solución en . Usando el teorema del resto chino, obtenemos la solución ECDLP en .
Como se mencionó anteriormente, en la práctica, las curvas elípticas se toman de manera que , donde es un número primo muy grande, lo que hace que este método sea ineficaz.
Ejemplo
Paso 1. Encuentra
Paso 2. Encuentra
Paso 3. Encuentra
Paso 4. Encuentra
Sea un subgrupo cíclico de .
Pongámoslo en la forma:
Desde entonces .
Calculamos la lista de "pequeños pasos" y guardamos los pares .
Complejidad de los cálculos: .
Ahora calculamos los "grandes pasos". Vamos a encontrar .
Durante la búsqueda, tratamos de encontrar entre los pares guardados tales que . Si fuera posible encontrar tal par, entonces .
O lo que es lo mismo:
.Complejidad de los cálculos de "grandes pasos": .
En este caso, la complejidad general del método , pero también requiere memoria para el almacenamiento, lo cual es una desventaja significativa del algoritmo.
AlgoritmoSea un subgrupo cíclico de .
La idea principal del método es encontrar pares distintos y módulos tales que .
Entonces o . Por lo tanto, .
Para implementar esta idea, elegimos una función aleatoria para iteraciones y un punto aleatorio para iniciar el recorrido. El siguiente punto se calcula como .
Como es finito, existen índices tales que .
entonces _
En realidad , para .
Entonces la secuencia es periódica con un período (ver figura).
Dado que f es una función aleatoria, de acuerdo con la paradoja del cumpleaños , la coincidencia ocurrirá después de aproximadamente iteraciones. Para acelerar la búsqueda de colisiones, se utiliza un método inventado por Floyd para encontrar la duración del ciclo: se calcula un par de valores para a la vez hasta que se encuentra una coincidencia.
AlgoritmoComplejidad del algoritmo: .
Ejemplo
Paso 1. Defina la función.
Paso 2. Iteraciones.
Paso 3 Detección de colisión
Bolotov, A. A., Gashkov, S. B., Frolov, A. B., Chasovskikh, A. A. Una introducción elemental a la criptografía elíptica: fundamentos algebraicos y algorítmicos. - M.: KomKniga, 2006. - S. 328. - ISBN 5-484-00443-8 .
Bolotov, A. A., Gashkov, S. B., Frolov, A. B., Chasovskikh, A. A. Una introducción elemental a la criptografía elíptica: protocolos de criptografía de curva elíptica. - M.: KomKniga, 2006. - S. 280. - ISBN 5-484-00444-6 .
Galbraith, SD, Smart, NP INFORME DE EVALUACIÓN DE CRYPTREC: NIVEL DE SEGURIDAD DE LA CRIPTOGRAFÍA - PROBLEMA MATEMÁTICO ECDLP.
Song Y. Yan Quantum Attacks en criptosistemas basados en ECDLP. - Springer EE. UU., 2013 - ISBN 978-1-4419-7721-2