stringtranslate.com

Paso de bebé, paso de gigante

En teoría de grupos , una rama de las matemáticas, el paso de gigante es un algoritmo de encuentro en el medio para calcular el logaritmo discreto u orden de un elemento en un grupo abeliano finito de Daniel Shanks . [1] El problema del registro discreto es de fundamental importancia para el área de la criptografía de clave pública .

Muchos de los sistemas de criptografía más utilizados se basan en el supuesto de que el registro discreto es extremadamente difícil de calcular; cuanto más difícil es, más seguridad proporciona la transferencia de datos. Una forma de aumentar la dificultad del problema de los registros discretos es basar el criptosistema en un grupo más grande.

Teoría

El algoritmo se basa en una compensación espacio-tiempo . Es una modificación bastante simple de la multiplicación de prueba, el método ingenuo para encontrar logaritmos discretos.

Dado un grupo cíclico de orden , un generador del grupo y un elemento del grupo , el problema es encontrar un número entero tal que

El algoritmo del paso gigante del bebé se basa en la reescritura :

Por tanto, tenemos:

El algoritmo precalcula varios valores de . Luego fija an y prueba valores de en el lado derecho de la congruencia anterior, a la manera de una multiplicación de prueba. Prueba para ver si se cumple la congruencia para cualquier valor de , utilizando los valores precalculados de .

el algoritmo

Entrada : Un grupo cíclico G de orden n , que tiene un generador α y un elemento β .

Salida : Un valor x satisfactorio .

  1. metro ← Techo( norte )
  2. Para todo j donde 0 ≤ j < m :
    1. Calcule α j y almacene el par ( j , α j ) en una tabla. (Ver § En la práctica)
  3. Calcule α m .
  4. γβ . (conjunto γ = β )
  5. Para todo i donde 0 ≤ i < m :
    1. Verifique si γ es el segundo componente ( α j ) de cualquier par en la tabla.
    2. Si es así, devuelve im + j .
    3. Si no, γγα m .


En la práctica

La mejor manera de acelerar el algoritmo de paso gigante es utilizar un esquema de búsqueda de tablas eficiente. Lo mejor en este caso es una tabla hash . El hash se realiza en el segundo componente y, para realizar la verificación en el paso 1 del bucle principal, se aplica el hash a γ y se verifica la dirección de memoria resultante. Dado que las tablas hash pueden recuperar y agregar elementos en el tiempo (tiempo constante), esto no ralentiza el algoritmo general de paso gigante.

La complejidad espacial del algoritmo es , mientras que la complejidad temporal del algoritmo es . Este tiempo de ejecución es mejor que el tiempo de ejecución del ingenuo cálculo de fuerza bruta.

Un espía podría utilizar el algoritmo Baby-step de paso gigante para derivar la clave privada generada en el intercambio de claves Diffie Hellman [ cita necesaria ] , cuando el módulo es un número primo que no es demasiado grande. Si el módulo no es primo, el algoritmo de Pohlig-Hellman tiene una complejidad algorítmica menor y potencialmente resuelve el mismo problema.

Notas

Otras lecturas

Referencias

  1. ^ Daniel Shanks (1971), "Número de clase, una teoría de factorización y géneros", en Proc. Síntoma. Matemática pura. , Providence, RI: Sociedad Matemática Estadounidense, vol. 20, págs. 415–440
  2. ^ VI Nechaev, Complejidad de un algoritmo determinado para el logaritmo discreto, Mathematical Notes, vol. 55, núm. 2 1994 (165-172)
  3. ^ Panagiotis Chatzigiannis, Konstantinos Chalkias y Valeria Nikolaenko (30 de junio de 2021). Descifrado homomórfico en blockchains mediante tablas de búsqueda de registros discretos comprimidos. Taller CBT 2021 (ESORICOS) . Consultado el 7 de septiembre de 2021 .
  4. ^ Steven D. Galbraith, Ping Wang y Fangguo Zhang (10 de febrero de 2016). Computación de logaritmos discretos de curva elíptica con un algoritmo de paso gigante mejorado. Avances en Matemáticas de las Comunicaciones . Consultado el 7 de septiembre de 2021 .

enlaces externos