Fue inventado en 1977 por Rivest Ron, Shamir Adi y Adleman Leonard.
El algoritmo de encriptación RSA es el más utilizado y seguramente el más sencillo tanto como su comprensión, como por su implementación.
La seguridad de este algoritmo se basa en la factorización de números primos. El algoritmo RSA sera seguro mientras no se conozca una manera de descomponer un número grande en productos primos.
Algoritmo
El algoritmo consta de tres pasos: generación de claves, cifrado y descifrado.
Generación de claves
- Se obtiene 2 números primos p = 17 y q = 43.
- Se calcula n = p * q = 731.
- Se calcula φn = (p - 1)*(q - 1) = 672.
- Se busca un número e tal que sea primo con φn, mcd(e, φn) = 1.
- Como e y φn son primos entre si, entonces existe un d tal que d = e^(-1) mod φn, e = 101, d = 173. Esto se suele calcular con el Algoritmo Extendido de Euclides.
Finalmente obtenemos la clave pública Ce = (e, n) = (101, 731), y la clave privada Cd = (d, n) = (173, 131).