Volver

Cifrado simétrico y asimétrico

Imagen del slider

25 de abril de 2018

Por Rick Hayoun – Consultor de seguridad

Como explicamos en el artículo anterior, es posible cifrar un mensaje para que resulte ininteligible para quienes no deben leerlo y, para ello, necesitamos definir una clave de cifrado. Nos planteamos dos preguntas fundamentales:

  1. ¿Cómo se configura esta clave secreta?
  2. ¿Cómo asegurarse de que está lo suficientemente protegida como para defenderse de los ataques?

Definición de la clave secreta

Se distinguen dos grandes tipos de cifrado: el cifrado de clave simétrica y el cifrado de clave asimétrica. Me explico...

Cifrado de clave simétrica

Se habla de cifrado simétrico cuando se utiliza la misma clave para cifrar y descifrar el mensaje. A modo de analogía, a menudo se pone el ejemplo del candado y la llave, que seguramente ya conoces:

Es fácil adivinar que tendremos que comunicar esa famosa clave a nuestro interlocutor para que pueda descifrar el mensaje, y ello de forma segura, de modo que sea el único en poseerla. Para ello, lo primero que se nos ocurre es un canal de comunicación seguro, pero... Si podemos comunicar una clave a través de ese canal seguro, ¿por qué no enviar directamente el mensaje completo por él?

De hecho, no podemos estar seguros de que el canal sea totalmente seguro, por lo que, en el caso del cifrado con clave simétrica, será preferible entregar la clave «en mano» a la otra parte y comunicarse mediante mensajes cifrados.

Pero, afortunadamente, existe un método de comunicación algo más sofisticado: el cifrado de clave asimétrica.Este método no utiliza una sola clave, sino dos: una para cifrar y otra para descifrar. Por lo tanto, cada persona debe poseer un par de claves único, denominado clave pública y clave privada. Estas claves se generarán una sola vez mediante un algoritmo de cifrado que se desea que sea robusto.

Siguiendo con la analogía del candado y la llave, en este caso, la llave pública es la que pone el candado, mientras que la llave privada es la que permite abrirlo.

Cifrado con clave asimétrica

Ahora que sabemos esto, veamos cómo es el proceso de cifrado y descifrado con clave asimétrica.

En un artículo anterior mencionamos cuatro principios fundamentales: la confidencialidad, la integridad, la autenticación y la no repudio.

Ahora resulta más sencillo explicar cómo se garantizan estos principios. La confidencialidad queda garantizada, evidentemente, mediante el cifrado del mensaje. La integridad puede verificarse mediante el uso de una función hash como, por ejemplo, SHA-2 (aunque no hayamos estudiado en detalle las funciones hash), que aún hoy se considera robusta.

En lo que respecta a la autenticación y la no repudio, es en el cifrado asimétrico donde cobran todo su sentido. De hecho, un remitente puede firmar su documento con su clave privada para que el destinatario tenga la certeza de que se trata efectivamente de él. La verificación se llevará a cabo mediante la clave pública del remitente.

Este es el procedimiento que se utiliza hoy en día en la mayoría de las transacciones importantes por Internet, para que ninguna de las partes pueda negar haber enviado o recibido nada.

Para terminar, aquí tienes un esquema resumen


 

Garantizar la protección de las claves para protegerse contra los ataques

Las firmas digitales se componen de dos algoritmos diferentes: el algoritmo de hash (por ejemplo, SHA-2) y el algoritmo de cifrado (por ejemplo, AES-256). Con el tiempo, estos algoritmos, o los parámetros que utilizan, deben actualizarse para garantizar un nivel de seguridad cada vez mayor.

Hoy, las recomendaciones de ECRYPT de junio de 2018 son las siguientes:

Algoritmos recomendados:
Algoritmo de cifrado: a corto plazo, AES-128; a largo plazo, AES-256.
Funciones hash: a corto plazo, SHA-256; a largo plazo, SHA-512 y SHA-3 con un resultado de 512 bits.

Algoritmos a largo plazo (seguridad con una vida útil de entre 10 y 50 años):
Algoritmo de cifrado: AES, Camellia, Serpent
Funciones hash: SHA2 (256, 384, 512, 512/256), SHA3 (256, 384, 512, SHAKE128, SHAKE256), Whirlpool-512, BLAKE (256, 584, 512)

Nota: Elegir una clave muy larga aumentará la seguridad del algoritmo, pero ralentizará los cálculos y, por lo tanto, los tiempos de cifrado. De hecho, se tarda entre seis y siete veces más en realizar los cálculos si se duplica el tamaño de la clave.


Leer también: Cifrado: definición y uso

https://theexpert.squad.fr/theexpert/security/chiffrement-definition-et-utilisation/