Es un algoritmo de seguridad
creado en 1978 por Rivest, Shamir y Adlman (de ahí el nombre RSA) y es, hoy por
hoy, el sistema criptográfico asimétrico más conocido y difundido.
Los creadores se basaron en un
artículo de Diffie-Hellman sobre sistemas de llave pública, crearon su
algoritmo y fundaron RSA Data Security Inc. Una empresa prestigiosa del
segmento de protección de datos.
La base del sistema RSA está sobre
la dificultad de factorizar números muy grandes, especialmente, aquellos que
son primos (un número primo es aquel que solo es divisible entre 1 y él mismo)
y esa es la característica principal que le da al algoritmo RSA bastante
confianza.
Basado en la
exponenciación modular de exponente y módulo fijos, el sistema RSA crea sus
claves de la siguiente forma:
- Se buscan dos números primos lo
suficientemente grandes: p y q (de entre 100 y 300 dígitos).
- Se obtienen los números n = p * q y Ø = (p-1)
* (q-1).
- Se busca un número e tal que no tenga
múltiplos comunes con Ø.
- Se calcula d = e-1 mod Ø, con mod = resto de
la división de números enteros.
Y ya con estos números obtenidos, n es la clave pública y d es la clave privada. Los números p, q y Ø se destruyen. También se hace público el número e, necesario para alimentar el algoritmo.
El cálculo de estas
claves se realiza en secreto en la máquina en la que se va a guardar la clave
privada, y una vez generada ésta conviene protegerla mediante un algoritmo
criptográfico simétrico.
En cuanto a las
longitudes de claves, el sistema RSA permite longitudes variables, siendo
aconsejable actualmente el uso de claves de no menos de 1024 bits (se han roto
claves de hasta 512 bits, aunque se necesitaron más de 5 meses y casi 300
ordenadores trabajando juntos para hacerlo).
RSA basa su seguridad
es ser una función computacionalmente segura, ya que si bien realizar la
exponenciación modular es fácil, su operación inversa, la extracción de raíces
de módulo Ø no es factible a menos que se conozca la factorización de e, clave
privada del sistema.
RSA es el más
conocido y usado de los sistemas de clave pública, y también el más rápido de
ellos. Presenta todas las ventajas de los sistemas asimétricos, incluyendo la
firma digital, aunque resulta más útil a la hora de implementar la
confidencialidad el uso de sistemas simétricos, por ser más rápidos. Se suele
usar también en los sistemas mixtos para encriptar y enviar la clave simétrica
que se usará posteriormente en la comunicación cifrada.