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.
Contenidos
¿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ños | Se inventó en el 1976 |
Es rapida | Es lenta |
Utiliza una única clave | Utiliza una clave privada y una pública por cada participante |
Requiere de un canal seguro para compartir la clave | No requiere de canales seguros |
Se puede usar para cifrar grandes volúmenes de datos | Se 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.