Criptografía : Algoritmos de cifrado de clave asimétrica

¿Qué significa cifrar?

Aplicar un algoritmo de cifrado determinado junto con una clave, a una determinada información que se quiere transmitir confidencialmente.

Dentro del cifrado digital encontramos dos tipos de criptografía: simétrica y asimétrica.

En este artículo hablaremos sobre la Criptografía de clave asimétrica

La criptografía de clave asimétrica también es conocida como cable pública, emplea dos llaves diferentes en cada uno de los extremos de la comunicación.

Cada usuario tendrá una clave pública y otra privada. La clave privada tendrá que ser protegida y guardada por el propio usuario, será secreta y no la deberá conocer nadie. La clave pública será accesible a todos los usuarios del sistema de comunicación.

Los algoritmos asimétricos están basados en funciones matemáticas fáciles de resolver en un sentido, pero muy complicadas realizarlo en sentido inverso a menos que se conozca la llave.

Las claves públicas y privadas se generan simultáneamente y están ligadas la una a la otra. Esta relación debe ser muy compleja para que resulte muy difícil que obtengamos una a partir de la otra.

Las parejas de claves tienen funciones diversas y muy importantes, entre las que destacan:

– Cifrar la información.
– Asegurar la integridad de los datos transmitidos.
– Garantizar la autenticidad del emisor.

Cifrado con clave asimétrica

Si una persona con una pareja de claves cifra un mensaje con la llave privada, ese mensaje sólo podrá ser descifrado con la llave pública asociada. Y si se cifra con la pública, se descifra con la privada.

Si ciframos un mensaje con la cable privada, no podremos descifrarlo con la propia llave privada, deberemos usar la pública.

Como hemos contado en el Artículo de Criptografía : Algoritmos de cifrado de clave simétrica, el cifrado simétrico aporta confidencialidad (sólo podrá leer el mensaje el destinatario).

La criptografía asimétrica proporciona autenticidad, integridad y no repudio.

Para que un algoritmo sea considerado seguro debe cumplir:

– Si se conoce el texto cifrarlo, debe resultar muy difícil o imposible extraer el texto en claro y la clave privada.
– Si se conoce el texto en claro y el cifrado, debe resultar más costoso obtener la clave privada que el texto en claro.
– Si los datos han sido cifrados con la clave pública, sólo debe existir una clave privada capaz de descifrarlo, y viceversa.

La ventaja del cifrado asimétrico sobre el simétrico radica en que la clave pública puede ser conocida por todo el mundo (no así la privada) sin embargo en el cifrado simétrico deben conocer la misma clave los dos usuarios (y la clave debe hacerse llegar a cada uno de los distintos usuarios por el canal de comunicación).

Cifrado con clave de sesión

El principal inconveniente es la lentitud, el empleo de este tipo de llaves ralentiza el proceso de cifrado. La solución a esto es usar el cifrado asimétrico como el simétrico (como hace IPSec o SSL).

Creamos la clave del algoritmo simétrico, la ciframos con la clave pública del receptor, enviamos los datos cifrados por el canal inseguro, y a continuación el receptor descifrará los datos mediante tu llave privada. Entonces podrán empezar a comunicarse mediante el cifrado simétrico (mucho más rápidos).

En las VPN como OpenVPN TLS/SSL la clave de sesión, que es conocida por los usuarios, se regenera cada cierto tiempo para incrementar la seguridad.

Desafío-Respuesta

Podemos comprobar que el emisor es realmente quien dice ser, para ello enviamos un texto al emisor y éste la cifrará con su clave privada, el emisor nos enviará el texto cifrado y nosotros desciframos la clave ya que tenemos la clave pública del emisor, y comparamos que el mensaje obtenido sea el mismo que enviamos anteriormente.

Si alguien se hace pasar por el emisor real, no tendría la clave privada y el desafío no hubiera resultado satisfactorio.

Firma digital

La firma digital permite al receptor de un mensaje que el origen es auténtico, también podremos comprobar si el mensaje ha sido modificado. Falsificar una firma digital es casi imposible a no ser que conozcan la clave privada del que firma (y ya hemos dicho anteriormente que la clave privada debe estar guardada y que no la debe saber nadie).

Hay dos fases para la realización de la firma digital:

– Proceso de firma: el emisor cifra los datos con la clave privada y lo manda al receptor.
– Verificar la firma: el receptor descifra los datos usando la clave pública de el emisor y comprueba que la información coincide con los datos originales (si coincide es que no se ha modificado).

En las firmas digitales se hace uso de las funciones HASH como MD5 o SHA-1 ya que como hemos comentado anteriormente, el cifrado asimétrico es lento.

Podéis encontrar qué son las funciones Hash Aquí: Criptografía : Algoritmos de autenticación (hash)

El emisor aplicará la función hash al mensaje original para obtener la huella digital. A continuación se cifra la huella con la clave privada y se envía al destinatario para que la descifre. El destinatario también aplicará la función hash a sus datos y comparará los resultados (la que ha obtenido y la que ha recibido). Así podrá comprar que la información no ha sido alterada.

Si alguien altera los datos, la huella digital será diferente.

Con todo esto hemos cumplido:

– Autenticidad (el emisor es quien dice ser).
– Integridad (el mensaje no ha sido modificado).
– No repudio (el emisor no puede negar haber enviado el mensaje al receptor).

Si queremos introducir la confidencialidad basta que el emisor cifre el mensaje original con la clave pública del receptor.

Algoritmos de cifrado de clave asimétrica

Tenemos dos algoritmos principales, el Diffie-Hellman y el famoso RSA.

Diffie-Hellman

No es un algoritmo simétrico propiamente dicho, se usa para generar una clave privada simétrica a ambos extremos de un canal de comunicación inseguro. Se emplea para obtener la clave secreta con la que posteriormente cifrar la información, junto con un algoritmo de cifrado simétrico.

Su seguridad radica en la dificultad de calcular el logaritmos discreto de números grandes.

El problema de este algoritmos es que no proporciona autenticación, no puede validar la identidad de los usuarios, por tanto si un tercer usuario se pone en medio de la “conversación” también se le facilitaría las claves y por tanto podría establecer comunicaciones con el emisor y el receptor suplantando las identidades.

RSA

Este algoritmo se basa en la pareja de claves, pública y privada de las que ya hemos hablado antes. La seguridad de este algoritmo radica en el problema de la factorización de números enteros.

Ventajas:

– Resuelve el problema de la distribución de las llaves simétricas (cifrado simétrico).
– Se puede emplear para ser utilizado en firmas digitales.

Desventajas:

– La seguridad depende de la eficiencia de los ordenadores.
– Es más lento que los algoritmos de clave simétrica.
– La clave privada debe ser cifrada por algún algoritmo simétrico.

Algoritmos de autenticación (o hash)

Los más conocidos y usados son MD5 y el SHA-1. Son algoritmos que a partir de un bloque de entrada, generan otro bloque de salida de una longitud fija determinada.

Puedes leer más sobre algoritmos de autenticación aquí:

Criptografía : Algoritmos de autenticación (hash)

Hasta aquí hemos llegado con los algoritmos de cifrado de clave asimétrica. Ya sabéis sus ventajas e inconvenientes y los dos tipos de algoritmos que hay.

Compártelo. ¡Gracias!

7 Comentarios
  1. Enrique R dice:

    Muy buen resumen
    Hacía tiempo que había oído el término de firma digital pero no sabía como funcionaba. ¡Gracias!

  2. hecarim dice:

    Tenemos la siguiente forma de codificación, se trata de adivinar que regla se usa:

    6712 = 1
    8901 = 4
    5962 = 2
    9823 = 3
    3752 = 0

    1898 = 5
    1006 = 3

    Si tenemos 2029 ¿qué número le correspondería?

    yo no he podido sacar nada.

RedesZone © 2010 - 2014