El Algoritmo Euclidiano Extendido es el método más eficiente para calcular inversos multiplicativos módulo m. Este algoritmo no solo encuentra el máximo común divisor (MCD) de dos enteros, sino que también expresa el MCD como una combinación lineal de los números originales, lo que nos da directamente el inverso multiplicativo.
Resumen del Algoritmo
El Algoritmo Euclidiano Extendido funciona manteniendo la ecuación mcd(a, m) = s×a + t×m a lo largo del cálculo. Cuando mcd(a, m) = 1, el coeficiente s nos da el inverso multiplicativo de a módulo m. El algoritmo usa los mismos pasos de división que el algoritmo euclidiano estándar pero mantiene un registro de los coeficientes de combinación lineal.
Proceso Paso a Paso
1. Inicializar: oldr = a, r = m, olds = 1, s = 0, oldt = 0, t = 1. 2. Mientras r ≠ 0: calcular cociente q = oldr ÷ r, actualizar valores usando las relaciones de recurrencia. 3. Cuando r = 0, oldr contiene el MCD, y olds contiene el inverso (si MCD = 1). 4. Si el resultado es negativo, sumar m para obtener el representante positivo.
Detalles de Implementación
El algoritmo mantiene el invariante de que oldr = olds×a + old_t×m y r = s×a + t×m en cada paso. La complejidad temporal es O(log min(a, m)), haciéndolo muy eficiente incluso para números grandes. Esta eficiencia es crucial para aplicaciones criptográficas donde los números primos grandes son comunes.