Saltar al contenido
uencoder

Modular Arithmetic

La aritmética modular toma restos tras operaciones enteras, manteniendo los resultados en [0, n); es el fundamento de la teoría de números y la criptografía.

Propósito

Mantener las operaciones cerradas en un rango finito, base de RSA, Diffie-Hellman y otras técnicas criptográficas.

Mecanismo

(a + b) mod n y (a × b) mod n se definen bajo módulo n. El inverso modular a^(-1) satisface a·a^(-1) ≡ 1 (mod n); existe cuando gcd(a,n)=1 y se halla con el algoritmo extendido de Euclides. Por el pequeño teorema de Fermat, a^(p-1) ≡ 1 (mod p) para p primo.

Casos de uso

  • Cifrado y descifrado con RSA
  • Intercambio de claves Diffie-Hellman
  • Sharding por hash y módulo
  • Cálculo de checksums

Ejemplos

  • entrada
    (7 + 8) mod 5
    Output
    0

    15 mod 5 = 0

Errores comunes

Negative modulo behaves differently across languages
Know your language's behavior or normalize with ((a%n)+n)%n

Términos relacionados

Herramientas relacionadas

References