ECDLP

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 26 de enero de 2015; las comprobaciones requieren 13 ediciones .

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.

Definiciones

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 .

Algoritmos de solución

Enumeración completa

Es el ataque más simple de implementar. Solo es necesario poder realizar la operación R = [k]P.

Algoritmo
  1. si , entonces  - solución
  2. más ; ir a [2].

Complejidad del algoritmo: Ο(N).

Algoritmo de Polig-Hellman

Descripció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.

y

Recibió 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

  • Encontramos las proyecciones de los puntos sobre :
  • Nosotros decidimos

Paso 2. Encuentra

  • Encontramos las proyecciones de los puntos sobre :
  • Nosotros decidimos
Tenga en cuenta que entonces

Paso 3. Encuentra

  • Encontramos las proyecciones de los puntos sobre :
  • Nosotros decidimos

Paso 4. Encuentra

  • Del teorema chino del resto para los valores obtenidos en los pasos anteriores 1-3, tenemos que

Algoritmo de Shanks (método Baby-Step/Giant-Step)

Descripción

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.

Algoritmo
  1. ahorrar
  2. comprobar en la lista [2]

Método ρ de Pollard

Descripción

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

Algoritmo
  1. Inicialización. Elija el número de ramas L (normalmente se toman 16) Seleccionar función
  2. calculo _ tomar al azar
  3. calculo _ tomar al azar
  4. Preparando un ciclo.
  5. Ciclo.
  6. Salida. ERROR o vuelva a ejecutar el algoritmo.

Complejidad del algoritmo: .

Ejemplo

Paso 1. Defina la función.

Paso 2. Iteraciones.

Paso 3 Detección de colisión

  • en :
  • eso lo conseguimos

Literatura

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