El logaritmo discreto es un problema matemático que se utiliza en algunos algoritmos criptográficos de clave pública. En un grupo cíclico de orden $q$, con un generador $g$, si se tiene una ecuación de la forma $g^x = h$, entonces $x$ se llama logaritmo discreto de $h$ con respecto a la base $g$, módulo $q$. En términos sencillos, se trata de determinar el exponente $x$ cuando se conocen $g$, $h$ y $q$. El logaritmo discreto es, pues, la inversa de la exponencial en un grupo cíclico finito. Sin embargo, para valores grandes de $q$, resolver el problema del logaritmo discreto se considera algorítmicamente difícil. Esta propiedad se aprovecha para garantizar la seguridad de muchos protocolos criptográficos, como el protocolo Diffie-Hellman de intercambio de claves.
El logaritmo discreto también se utiliza en criptografía de curvas elípticas (ECC), incluido el algoritmo ECDSA (Elliptic Curve Digital Signature Algorithm). En el contexto de las curvas elípticas, el problema del logaritmo discreto se extiende a encontrar un escalar $k$ tal que $k cdot G = K$, donde $G$ y $K$ son puntos de la curva, y $cdot$ representa la operación de multiplicación de puntos. En el contexto de Bitcoin, los scripts pueden utilizar ECDSA o el protocolo Schnorr para bloquear UTXOs. Ambos se basan en la imposibilidad de calcular el logaritmo discreto.