¿Qué es la criptografía simétrica?

La criptografía simétrica es uno de los métodos de cifrado de información más antiguos. Se le llama así porque, tanto el que envía el mensaje como el que lo recibe tienen la misma clave privada. Al ser rápida y eficiente, la criptografía simétrica se suele usar para encriptar grandes volúmenes de datos. Esto lo hace muy simple pero también introduce limitaciones. En este artículo vamos a repasar cómo funciona la criptografía simétrica, los distintos tipos y las diferencias con la criptografía asimétrica.   

contenido 21

¿Cómo funciona la criptografía simétrica?

La criptografía es una técnica que se concentra en la protección de información y comunicación usando códigos. El objetivo es cifrar un mensaje y hacerlo inteligible para todos, excepto la persona que debe leerlo. De esa forma, habilita la comunicación por cualquier medio público sin comprometer la seguridad de los mensajes. 

En la criptografía simétrica, existe una sola clave que se usa para cifrar los mensajes. Si Juan quiere comunicarse con Camila, ellos deberían compartir de antemano la clave de forma privada. Una vez que ambos la tengan, se van a poder mandar mensajes cifrados libremente. Juan debería usar la clave para cifrar el su mensaje, obteniendo un código. Este se lo hace llegar a Camila por cualquier medio y ella va a usar la misma clave para descifrarlo y revelar el mensaje. 

El proceso sería el siguiente:

Juan y Camila comparte una clave por una canal privado

Juan:     “Hola Cami!” + clave → código

Camila:  Código + clave → “Hola Cami!”

La principal debilidad de la criptografía simétrica es el uso de la misma clave para todos los participantes. ¿Por qué es una debilidad? Porque implica que tengan una forma privada de comunicarse. Juan y Camila se tienen que comunicar para acordar cuál va a ser la clave con la que van a cifrar los mensajes. Si alguien intercepta esa comunicación, van a conocer la clave y, por lo tanto, el sistema deja de ser seguro. El tema es que están usando la criptografía porque justamente no tienen forma privada de comunicarse. 

Tipos de criptografía simétrica 

  • Block Cipher

Los algoritmos que funcionan bajo el sistema block cipher encriptan información en grupos o bloques. Esto significa que el proceso para cifrar información empieza por separarla en partes iguales, después cifrar con la clave cada bloque por separado y unirlos. Veamos un ejemplo.

Mensaje: wen juice airdrop

En binario: 

0111011101100110111000100000011010101110100110100011000110110010100100000010000101101001011100100110010001110010011011110111000000001010

Se separa en bloques:

0111011101100110111000100000011010101110100110100011000110110010100100000010000101101001011100100110010001110010011011110111000000001010

Se cifra cada bloque:

0111 + clave → código 1 

0111 + clave → código 2 

0110 + clave → código 3

….

Se unen los códigos:

Codigo 1 + codigo 2 + codigo 3 + … → mensaje cifrado

  • Stream Cipher

En el caso del stream cipher, la información no se separa en bloques sino que se procesa un bit a la vez. Además, este sistema agrega el uso de un nonce, es decir un número único elegido al azar. Entonces cada bit se combina con el nonce y con la clave para formar un código, los cuales se combinan y resultan en el mensaje cifrado. El proceso sería más o menos así:

Mensaje: lemmy

En binario: 

01101100 01100101 01101101 01101101 01111001

Se separa en bits:

0110110001100101011011010110110101111001

Se cifra cada bit agregando el nonce:

0 + clave + nonce → código 1 

1 + clave + nonce → código 2 

1 + clave + nonce → código 3

….

Se unen los códigos:

Codigo 1 + codigo 2 + codigo 3 + … → mensaje cifrado

Diferencia entre criptografía simétrica y criptografía asimétrica

La criptografía asimétrica es una parte clave dentro de la blockchain y viene a resolver la principal debilidad de la criptografía simétrica mencionada arriba. Se le llama asimétrica porque los participantes tienen diferentes claves.

La criptografía asimétrica parte de una llave privada generada aleatoriamente, de la cual se genera una llave pública asociada. Si Juan le quiere mandar un mensaje a Camila, lo va a formular y cifrar con la llave pública de ella. La única forma de descifrarlo es a través de la llave privada de Camila. Veamos un ejemplo:

Juan y Camila comparten sus llaves públicas por cualquier canal(no hace falta que sea privado)

Juan:     “Hola Cami!” + llave pública de Camila → código

Camila:  llave privada de Camila + código → “Hola Cami!”

Criptografía Simétrica Criptografía Asimétrica 
Se usa hace miles de añosSe inventó en el 1976
Es rapidaEs lenta
Utiliza una única claveUtiliza una clave privada y una pública por cada participante
Requiere de un canal seguro para compartir la claveNo requiere de canales seguros
Se puede usar para cifrar grandes volúmenes de datosSe suele usar para el intercambio de claves o firmas digitales

Criptografia simétrica + asimetrica

Hay un mecanismo muy utilizado que combina las ventajas de estos dos tipos de criptografía para lograr comunicaciones privadas, seguras y rápidas. Este consiste en usar criptografía asimétrica para compartir la clave de la criptografía simétrica entre los participantes y después seguir usando este método más sencillo. Veamos cómo funciona:

Juan y Camila comparten sus llaves públicas por cualquier canal

Juan: clave (creada por el) + llave pública de Camila → código 

Cami: código + llave privada de Camila → clave creada por Juan

De esta manera pudieron compartir una clave de criptografía simétrica sin un canal de comunicación privado, resolviendo esa limitación. Una vez que ambos tienen la clave, se pueden comunicar de forma rápida y eficiente usando criptografía simétrica.