Ecuaciones en – Aritmética modular y resolución
Relacionado: konversation. 12 Introduccion a la Criptografiaseguridad. Instalacion y Configuracion de Splunk Universal Forwarder con Snort en Windows y Ubuntu. 2025 01 21 INGENIERIA INVERSA. 2025 01 28 Ingenieria Inversa.
Resolver ecuaciones en significa trabajar con enteros módulo , donde dos números son equivalentes si su diferencia es divisible por .
Este tipo de ecuaciones es clave en criptografía, teoría de números, hashing, algoritmos de seguridad y sistemas distribuidos.
¿Qué es ?
Es el conjunto de clases de equivalencia módulo :
Dos números y son equivalentes módulo si:
Tipos comunes de ecuaciones
1. Ecuaciones lineales:
2. Ecuaciones cuadráticas:
Ecuación lineal:
¿Cuándo tiene solución?
Tiene solución si y solo si:
Si divide a , existen exactamente soluciones distintas módulo .
️ Método de resolución
- Calcular
- Si → no hay solución
- Si :
-
Dividir la ecuación entre :
-
Calcular el inverso modular de módulo
-
Multiplicar ambos lados por el inverso
-
Solución particular
-
Todas las soluciones:
, para
-
Ejemplo
Resolver
-
y → hay solución
-
Dividir entre 2:
-
Inverso de 3 módulo 7:
, porque
-
Multiplicamos:
-
Como hay 2 soluciones:
Aplicaciones prácticas
- Criptografía (RSA, ElGamal, ECC)
- Teorema chino del resto
- Hashing circular y estructuras cíclicas
- Algoritmos numéricos en seguridad y codificación
Código Python para resolver
def extended_gcd(a, b):
if b == 0:
return a, 1, 0
d, x1, y1 = extended_gcd(b, a % b)
return d, y1, x1 - (a // b) * y1
def resolver_congruencia(a, b, n):
d, x, _ = extended_gcd(a, n)
if b % d != 0:
return None # No hay solución
a_, b_, n_ = a // d, b // d, n // d
_, inv, _ = extended_gcd(a_, n_)
x0 = (inv * b_) % n
return [(x0 + k * n_) % n for k in range(d)]