Tuesday, June 6, 2017

Algoritmo de Cifrado RSA



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.

-Grimaldo