Líder en confianza digital para la era de la inteligencia artificial y la computación cuántica.   Descubra cómo Keyfactor lo Keyfactor posible.

Cifrado simétrico

Los algoritmos de cifrado simétrico utilizan la misma clave secreta tanto para el cifrado como para el descifrado. Esto implica que el emisor y el receptor de un mensaje cifrado deben compartir una copia de la clave secreta a través de un canal seguro antes de comenzar a enviar datos cifrados. Los algoritmos de cifrado simétrico se presentan en dos variedades distintas: cifrados de bloque y cifrados de flujo.

Cifrados de Bloque

Un cifradopor bloques encripta los datos en fragmentos de tamaño fijo. Por ejemplo, el Estándar de Cifrado Avanzado (AES) utiliza una longitud de bloque de 128 bits.

Si el texto sin cifrar es más corto que la longitud del bloque, se rellena hasta alcanzar la longitud deseada antes del cifrado. En el otro extremo, el receptor del mensaje lo descifrará y luego eliminará el relleno para restaurar el mensaje original.

Si un texto sin cifrar es más largo que la longitud del bloque, se divide en múltiples fragmentos para su cifrado. Un modo de operación de cifrado de bloque define cómo estos fragmentos se relacionan entre sí.

Cada modo de operación tiene sus ventajas y desventajas. Por ejemplo, el modo Electronic Code Book (ECB) es el modo de operación más simple. Con ECB, cada bloque se cifra de forma completamente independiente.

La desventaja de esto es que los bloques con el mismo texto sin formato producen el mismo texto cifrado. Laimagen de arribaes una foto del pingüino de Linux. Aunque estos datos están cifrados, los textos cifrados para un píxel de un color determinado (negro, blanco, etc.) son los mismos en toda la imagen, por lo que el pingüino sigue siendo visible.

Otros modos de operación eliminan este problema interrelacionando el cifrado de cada bloque.  Algunos también ofrecen características adicionales, como el modo Galois Counter (GCM), que genera un código de autenticación de mensajes (MAC) que verifica que los datos no han sido modificados en tránsito.

Ejemplo: El Estándar de Cifrado Avanzado (AES)

El cifrado de bloque más conocido es el Estándar de Cifrado Avanzado (AES). Este algoritmo de cifrado fue seleccionado como resultado de un concurso organizado por el Instituto Nacional de Estándares y Tecnología (NIST) para reemplazar el obsoleto Estándar de Cifrado de Datos (DES).

AES es una familia de tres algoritmos diferentes diseñados para utilizar una clave de cifrado de 128, 192 o 256 bits. Estos algoritmos se componen de un programa de claves y un algoritmo de cifrado.

El algoritmo de cifrado de AES es en gran medida el mismo para las tres versiones.  Se divide en rondas, que se componen de un conjunto de operaciones matemáticas. La principal diferencia entre las distintas versiones de AES es el número de rondas utilizadas: 10, 12 y 14.

Cada ronda de AES utiliza una clave de ronda única que se deriva de la clave secreta original.  La derivación de estas claves de ronda es la función del programa de claves.  El programa de claves de cada versión de AES es diferente porque utilizan claves secretas de distintas longitudes y producen un número diferente de claves de ronda de 128 bits.

Cifrados de Flujo

El otro tipo de algoritmo de cifrado simétrico es un cifrado de flujo. A diferencia de un cifrado de bloque, un cifrado de flujo cifra un texto sin cifrar bit a bit.

Un cifrado de flujo se diseña basándose en el único algoritmo de cifrado completamente indescifrable: el bloque de clave única (OTP). El OTP toma una clave secreta aleatoria de la misma longitud que el texto sin cifrar y realiza una operación XOR (exclusivo o) con cada bit del texto sin cifrar y la clave para producir el texto cifrado, tal y como se muestra en laimagen anterior.

El descifrado con una OTP es igual que el cifrado. Esto se debe a que cualquier elemento al que se le aplica XOR consigo mismo es cero, y cualquier elemento al que se le aplica XOR con cero es el propio elemento.  Con un texto sin cifrar P, un texto cifrado C y una clave K

C XOR K = (C XOR K) XOR K = C XOR (K XOR K) = C XOR 0 = C

Aunque ofrece una gran seguridad, la OTP rara vez se utiliza porque no es práctico compartir de forma segura las enormes cantidades de material de clave que necesita para funcionar. Un cifrado de flujo utiliza la misma idea que la OTP, pero con una clave ligeramente menos segura.

En lugar de una clave completamente aleatoria, un cifrado de flujo utiliza una clave secreta para alimentar un generador de números pseudoaleatorios. Al compartir la misma clave secreta y algoritmo, el emisor y el receptor de un mensaje pueden generar la misma cadena de bits, lo que les permite cifrar y descifrar un mensaje.

Ejemplo: Cifrado Rivest 4 (RC4)

RC4 es un ejemplo de cifrado de flujo ampliamente utilizado. Fue creado por Ron Rivest en 1987 y originalmente era un secreto comercial de RSA Security. En 1994, los detalles del cifrado se filtraron, lo que lo hizo de uso público.

RC4 se utiliza en una variedad de aplicaciones diferentes, incluidos los estándares de cifrado WEP y WPA para Wi-Fi. El cifrado tiene algunas vulnerabilidades conocidas, especialmente para ciertas aplicaciones, pero aún puede utilizarse si se descartan algunos de los bytes iniciales del flujo de claves generado.

Vea la plataforma Keyfactor en acción y descubra cómo encontrar, controlar y automatizar todas las identidades de las máquinas.

ilustración gráfica de azulejos cuadrados abstractos

Cifrado asimétrico

A diferencia del cifrado simétrico, la criptografía asimétrica utiliza dos claves diferentes para el cifrado y el descifrado. La clave pública se utiliza para cifrar un mensaje, mientras que la clave privada se utiliza para el descifrado.

La clave privada es un número completamente aleatorio. La clave pública se deriva de la clave privada utilizando un problema matemáticamente «difícil».

Este problema "difícil" se basa en una operación matemática que es "fácil" de realizar, pero "difícil" de revertir. Se utilizan varios problemas "difíciles" diferentes, incluidos los basados en enteros y los basados en curvas elípticas.

Criptografía basada en enteros

La criptografía asimétrica basada en enteros utiliza dos problemas "difíciles" principales: los problemas de factorización y de logaritmo discreto.

El problema de factorización se basa en el hecho de que es relativamente fácil multiplicar dos números, pero es difícil factorizarlos. De hecho, la factorización es tan compleja que la mejor manera de hacerlo (en un ordenador "clásico") es mediante una búsqueda por fuerza bruta. Alguien que desee factorizar el producto de dos números primos necesita probar factores potenciales hasta que encuentre uno de los dos factores, lo que puede llevar mucho tiempo.

Un algoritmo de cifrado asimétrico basado en el problema de factorización tendrá una clave pública calculada utilizando el producto de dos claves privadas (números primos grandes). Este cálculo es fácil de realizar, pero cualquiera que desee derivar la clave privada de la clave pública necesitará factorizarla, lo cual es mucho más difícil.

La dificultad de la multiplicación crece polinómicamente con la longitud de los factores, pero la dificultad de la factorización crece exponencialmente. Esto permite encontrar un "punto óptimo", donde un sistema es utilizable pero esencialmente inquebrantable.

El problema del logaritmo discreto utiliza la exponenciación y los logaritmos como sus operaciones "fáciles" y "difíciles". Similar a la factorización, la complejidad del cálculo de logaritmos crece mucho más rápidamente a medida que aumenta el tamaño del exponente.

Ejemplo: Rivest-Shamir-Adleman (RSA)

El cifrado simétricoes un algoritmo criptográfico sencillo según los estándares actuales, pero en su momento se consideró una tecnología puntera. De hecho, el ejército alemán lo utilizó para enviar comunicaciones privadas durante la Segunda Guerra Mundial. La películaThe Imitation Gameexplicamuybien cómo funciona el cifrado simétrico y el papel que desempeñó durante la guerra. 

Con el cifrado simétrico, un mensaje que se escribe en texto sin formato pasa por permutaciones matemáticas para cifrarse. El mensaje cifrado es difícil de descifrar porque la misma letra del texto sin formato no siempre aparece igual en el mensaje cifrado. Por ejemplo, el mensaje «HHH» no se cifraría con tres caracteres iguales. 

Para cifrar y descifrar el mensaje, se necesita la misma clave, de ahí el nombre de cifrado simétrico. Aunque descifrar mensajes sin la clave es extremadamente difícil, el hecho de que se deba utilizar la misma clave para cifrar y descifrar el mensaje conlleva un riesgo significativo. Esto se debe a que, si el canal de distribución utilizado para compartir la clave se ve comprometido, todo el sistema de mensajes seguros se rompe.

Uno de los algoritmos de cifrado asimétrico más famosos que existen es el desarrollado por Ron Rivest, Adi Shamir y Leonard Adleman, denominado RSA. Este algoritmo se basa en el problema de la factorización.

Laimagen anteriormuestra un ejemplo sencillo de cómo funciona el RSA. El texto sin cifrar (2) se eleva a la potencia de la clave pública (5): 2^5 = 32. A continuación, este valor se divide por un módulo público (14) y el resto (4) se envía como texto cifrado: 32 % 14 = 4.

En el otro extremo, se realiza la misma operación con la clave privada en lugar de la clave pública para producir el texto plano: (4^11) % 14 = 2. Este cálculo funciona porque las claves pública y privada se seleccionan de manera que sean inversas en el módulo elegido. 

Criptografía de curva elíptica

La criptografía asimétrica basada en enteros utiliza problemas de factorización y de logaritmo discreto para construir algoritmos de cifrado seguros. La criptografía de curva elíptica utiliza los mismos problemas con un pequeño giro.

captura de pantalla del algoritmo de cifrado

En lugar de utilizar números enteros para sus cálculos, la criptografía de curva elíptica utiliza puntos en una curva elíptica, como laque se muestra arriba. Una clave privada sigue siendo un número aleatorio, pero una clave pública es un punto en la curva.

En estas curvas se definen varias operaciones matemáticas diferentes. Las dos importantes aquí son:

  • Suma de puntos (equivalente a la multiplicación de enteros)
  • Multiplicación de puntos (equivalente a la exponenciación de enteros)

En estas curvas, es posible realizar cálculos que son equivalentes a las operaciones "fáciles" de los problemas de factorización y de logaritmo discreto. Esto significa que los mismos algoritmos básicos pueden adaptarse para su uso con curvas elípticas.

¿Pero por qué molestarse? La criptografía de curva elíptica es útil porque longitudes de clave más pequeñas proporcionan el mismo nivel de seguridad. Esto significa que la criptografía de curva elíptica utiliza menos almacenamiento, potencia de procesamiento y energía para proteger los datos al mismo nivel que un algoritmo equivalente basado en enteros. Estos ahorros pueden ser importantes para sistemas con recursos limitados, como dispositivos de Internet de las Cosas (IoT) o teléfonos inteligentes.

Ventajas y desventajas del cifrado simétrico y asimétrico

Tanto los algoritmos de cifrado simétrico como los asimétricos están diseñados para realizar la misma tarea: proteger la confidencialidad de los datos. Sin embargo, lo hacen de maneras muy diferentes, y cada enfoque tiene sus pros y sus contras:

  • Cifrado simétrico:La principal ventaja de la criptografía simétrica es su eficiencia. En general, los algoritmos de cifrado simétrico utilizan menos memoria y potencia de procesamiento que la criptografía asimétrica.
  • Cifrado asimétrico:El cifrado asimétrico no requiere que las dos partes compartan de forma segura una clave secreta antes de enviar mensajes cifrados. Esto permite comunicarse de forma segura con cualquier persona, siempre y cuando se disponga de su clave pública.

Estas diferentes fortalezas significan que la criptografía simétrica y asimétrica se utilizan a menudo juntas, como en el protocolo TLS. El cifrado asimétrico se utiliza para intercambiar de forma segura una clave simétrica, y el cifrado simétrico se utiliza para la transferencia masiva de datos.

Computación cuántica y sus impactos en la criptografía

Al discutir los pros y los contras de los diferentes algoritmos de cifrado, es importante tener en cuenta el crecimiento de la computación cuántica. Los ordenadores cuánticos tienen la capacidad de romper algunos de los algoritmos de cifrado asimétrico de uso común en la actualidad.

La razón de esto es que algunos de los problemas "difíciles" utilizados en la criptografía asimétrica no son "difíciles" para los ordenadores cuánticos. Mientras que la factorización es exponencialmente difícil para un ordenador clásico, solo tiene una dificultad polinómica para un ordenador cuántico debido a la existencia del algoritmo de Shor.

Si tanto la multiplicación como la factorización tienen complejidad polinómica, entonces es imposible construir un criptosistema utilizando este problema que sea a la vez utilizable y seguro. Lo mismo ocurre con el problema del logaritmo discreto. También se verá comprometido una vez que estén disponibles ordenadores cuánticos lo suficientemente potentes.

Sin embargo, esto no significa que la computación cuántica vaya a suponer el fin de la criptografía asimétrica. Se han descubierto nuevos problemas que se consideran «difíciles» también para los ordenadores cuánticos. Esto ha llevado al desarrollo de nuevos algoritmos de cifrado asimétrico poscuántico basados en estos nuevos problemas «difíciles».factor.