¿Qué es la exponenciación modular?
La exponenciación modular calcula \(a^{b} \bmod m\), es decir, el resto que queda al dividir la potencia \(a^{b}\) entre el módulo m. Es una de las operaciones más importantes de la teoría de números y la criptografía, ya que está detrás de algoritmos como RSA, el intercambio de claves Diffie-Hellman y las firmas digitales. Aunque \(a^{b}\) alcance un tamaño astronómico, el resultado módulo m se mantiene pequeño y fácil de calcular.
Cómo usar esta calculadora
Introduce tres números enteros: la base a, el exponente b (no negativo) y el módulo m (un entero positivo). Pulsa calcular y obtendrás un único resto comprendido entre 0 y m−1. La base puede ser negativa: primero se normaliza dentro del rango válido de residuos antes de elevarla.
La fórmula explicada
Calcular \(a^{b}\) de forma directa resulta inviable cuando b es grande, por eso esta herramienta emplea el método de cuadrar y multiplicar (también llamado exponenciación rápida o binaria). El exponente se lee en binario. Partiendo de un resultado r = 1 y de la base reducida mod m, en cada bit del exponente se eleva la base al cuadrado (mod m); y cada vez que el bit actual vale 1, se multiplica el resultado por la base (mod m). Así solo hacen falta unas \(\log_2(b)\) multiplicaciones en lugar de b.
$$\text{result} = \text{Base } a^{\text{Exponent } b} \bmod \text{Modulus } m$$
Ejemplo resuelto
Calculemos \(4^{13} \bmod 497\). El exponente 13 en binario es 1101. Aplicando cuadrar y multiplicar:
$$4^1 = 4, \quad 4^2 = 16, \quad 4^4 = 256, \quad 4^8 = 256^2 = 65536 \equiv 30 \pmod{497}$$Como \(13 = 8 + 4 + 1\), multiplicamos las potencias correspondientes:
$$30 \times 256 \times 4 = 30720 \equiv 445 \pmod{497}$$Por tanto, \(4^{13} \bmod 497 = \textbf{445}\).
Preguntas frecuentes
¿Qué pasa si el exponente es 0? Cualquier número elevado a 0 es 1, así que el resultado es 1 mod m (que será 0 cuando m = 1).
¿Puede ser negativa la base? Sí. Una base negativa se convierte primero en su residuo positivo equivalente mod m, de modo que la respuesta siempre queda entre 0 y m−1.
¿Por qué no calcular \(a^{b}\) y luego tomar el módulo? Para tamaños criptográficos, \(a^{b}\) tendría millones de dígitos. Reducir mod m en cada paso mantiene los números pequeños y el cálculo rápido.