Logaritmo discreto

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

En álgebra abstracta, se conoce como logaritmo discreto de y en base g, donde g e y son elementos de un grupo cíclico finito G, a la solución x de la ecuación gx = y. Esto, se puede denotar matemáticamente como:

x=\log_g(y) \Longleftrightarrow g^x=y

Los logaritmos discretos son análogos en teoría de grupos a los logaritmos ordinarios en análisis. Mientras que el cálculo de su inversa — la exponenciación discreta — es una tarea muy sencilla en términos computacionales, el cálculo del logaritmo discreto no es sencillo en muchos grupos. El hecho de que el problema sea «irresoluble» en un tiempo razonable si se utiliza aritmética modular hace que esto se use en criptografía, en el método de intercambio de claves de Diffie-Hellman o en el sistema de ElGamal.

Ejemplo[editar]

Los Logaritmos discretos son quizás más sencillos de entender en el grupo (Zp)×, o sea el grupo multiplicativo módulo un primo p.

La k-ésima potencia de uno de los números en este grupo puede ser calculada encontrando la potencia k-ésima como un entero y luego obteniendo el resto después de su división por p. Este proceso es llamado Exponenciación modular. Por ejemplo, considerando (Z17)×, para considerar 34 en este grupo, primero se calcula 34 = 81 y después se divide 81 entre 17 obteniendo de resto 13. Esto es 34 = 13 en el grupo (Z17)×. En la práctica se utiliza el método de la exponenciación binaria, reduciendo en cada paso.

El logaritmo discreto es la operación inversa. Por ejemplo, considerando la ecuación 3k ≡ 13 (mod 17) para k. Del ejemplo de arriba, una solución es k = 4, pero esta no es la única solución. Puesto que 316 ≡ 1 (mod 17) — como indica el Pequeño teorema de Fermat — , se deduce que, si n es un entero, entonces 34+16n ≡ 34 × (316)n ≡ 13 × 1n ≡ 13 (mod 17). Por lo tanto la ecuación tiene infinitas soluciones de la forma 4 + 16n. Por otra parte, como 16 es el menor número entero positivo m que cumple 3m ≡ 1 (mod 17) (en otras palabras, 16 es el orden de 3 en (Z17)×), estas son las únicas soluciones. Equivalentemente, el conjunto de todas las posibles soluciones puede ser expresado por la restricción k ≡ 4 (mod 16).

Definición[editar]

Sea (G,·) un grupo cíclico finito de orden n — con n elementos —, es decir, G={e,g,g2,...,gn-1} para cierto elemento g de G. Dado h perteneciente a G existe un k perteneciente a Z tal que h = gk. Este valor de k es el logaritmo discreto de a en base g.

Más formalmente, se define:

\log_g:G \rightarrow \mathbb{Z}/n\mathbb{Z}

como la función que asigna valores de la siguiente manera:

\log_g(x)= k tal que  x \equiv g^k.

Propiedades[editar]

Algunas de las propiedades de esta función son:

  • \log_g(x\cdot y)=\log_g(x)+\log_g(y)
  • \forall\ t\in\mathbb{N},\log_g(c^t)=t\,\log_g(c)
  • \log_g(1)=0
  • \log_g(g)=1

Aquí sigue vigente la fórmula del cambio de base de los logaritmos continuos siempre que c sea otro generador:

  • \log_c(x)=\log_c(g)\cdot \log_g(x)

Algoritmos[editar]

No se conocen algoritmos clásicos para la computación de un algoritmo discretos logb g. Un algoritmo es elevar b a sucesivas potencias k hasta encontrar la deseada g. Este algoritmo requiere una complejidad temporal lineal respecto del tamaño del grupo G y, por lo tanto, exponencial respecto del número de dígitos en el tamaño del grupo. Existe un algoritmo cuántico eficiente debido a Peter Shor.[1]

Existen algoritmos más sofisticados, normalmente inspirados por algoritmos similares para la factorización de enteros. Estos algoritmos funcionan más rápido que el algoritmo anterior. Algunos de ellos en un tiempo lineal respecto de la raíz cuadrada del tamaño del grupo y, por lo tanto, exponencial respecto de la mitad del número de dígitos del tamaño del grupo. Sin embargo, ninguno corre en un Tiempo polinómico (en el número de dígitos del tamaño del grupo). Algunos de los algoritmos funcionan para cualquier grupo, mientras otros sólo pueden ser utilizados para ciertos grupos concretos. [2]

Comparación con la factorización de enteros[editar]

Si bien los problema del cálculo de logaritmos discretos y el de factorización de enteros son distintos, comparten algunas propiedades:

  • ambos problemas son difíciles
  • para ambos se conocen algoritmos eficientes en ordenadores cuánticos,
  • algoritmos para un problema a menudo se adaptan al otro, y
  • la dificultad de ambos problemas se ha utilizado para construir varios sistemas criptográficos.

Criptografía[editar]

Existen grupos para los que calcular logaritmos discretos es aparentemente difícil. En algunos casos no hay ningún algoritmo eficaz conocido para resolver el problema en general y la complejidad en el caso promedio resulta tan difícil como en el peor de los casos.

Al mismo tiempo, el problema inverso, la exponenciación discreta, no es difícil (puede ser computada eficientemente usando Exponenciación binaria). Esta asimetría es análoga a la que ocurre entre la factorización de enteros y la multiplicación de enteros. Ambas asimetrías han sido explotadas en la construcción de sistemas criptográficos.

Opciones populares para el grupo G en la criptografía usando logaritmos discretos son aquellos para los que no existen buenos algoritmos, entre los que se encuentran los grupos cíclicos (Zp)× (e.g. Cifrado ElGamal, Diffie-Hellman y el algoritmo de firma digital) y subgrupos cíclicos de curvas elípticas sobre cuerpos finitos (ver Criptografía de curva elíptica).

Véase también[editar]

Referencias[editar]

  1. Shor, Peter (1997). «Tiempo Polinómico para el calculo de algoritmos discretos y la factorización de números primos». SIAM Journal on Computing 26 (5): 1484–1509. arXiv:quant-ph/9508027. 
  2. Stinson, Douglas (2006). «Algorithms for the discret logarithm problem». Cryptography: theory and practice (en inglés) (tercera edición). Chapman & Hall/ CRC. pp. 236–246. ISBN 978-1-58488-508-5. 

Enlaces externos[editar]