For faster navigation, this Iframe is preloading the Wikiwand page for Logaritmo discreto.

Logaritmo discreto

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:

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

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

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 h en base g.

Más formalmente, se define:

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

tal que .

Propiedades

Algunas de las propiedades de esta función son:

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

Cálculo

No se conocen algoritmos clásicos para la computación de un logaritmo discreto 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]

  • Baby-step giant-step (también conocido como algoritmo de Shanks)
  • Algoritmo rho de Pollard para logaritmo discreto
  • Algoritmo del canguro de Pollard (también conocido como algoritmo lambda)
  • Algoritmo Pohlig-Hellman
  • Algoritmo de cálculo de índices

Comparación con la factorización de enteros

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

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

Referencias

  1. Shor, Peter (1997). «Tiempo Polinómico para el cálculo 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. 
{{bottomLinkPreText}} {{bottomLinkText}}
Logaritmo discreto
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?