Categorías
Criptografía

Pequeño Teorema de Fermat

Fuente: Kai Takami | Verificado por: Juan Ramírez


Si p es un número primo (2, 3, 5, 7, 11, 13…), entonces, para cada número natural a, con a>0 (a mayor a 0), a**p a(p elevado a la a) ≡ a (mod p) (mod significa módulo) [a**p ≡ a (mod p)]

Wikipedia
Triple bar

  • Solución en Python:
p = 2 #Número primo
a = 1 #Menos a p
        
print(a**p % p) # = a
# a (1) elevado a la p (2) es igual a 1 (1*1=1), el resultado (1) módulo 2 es igual a 1 (a).
print(1 % 2)
  • ¿En qué se usa este algoritmo?

Encriptación:
Por ejemplo, si n es un número de 300 dígitos podemos usar el test de Fermat para revisar si es un número primo en segundos.
RSA algorithm para encriptación. (Algoritmo RSA) Existen los números de Carmichael qué pueden «engañar» este teorema (Carmichael)