Criptografía simétrica: definición, tipos, algoritmos y vulnerabilidades
Criptografía simétrica: descubre definición, tipos, algoritmos (AES, Twofish, Blowfish) y vulnerabilidades. Aprende a proteger claves y prevenir ataques.
Los algoritmos de clave simétrica son un método de criptografía en el que la misma clave (el mismo secreto compartido) se utiliza tanto para el cifrado como para el descifrado. El secreto puede generarse de forma aleatoria, derivarse de una contraseña mediante una función de derivación de claves (KDF), o establecerse mediante un procedimiento de intercambio de claves seguro como Diffie-Hellman. La seguridad del sistema depende de que esa clave permanezca secreta y de la calidad de los mecanismos de generación y almacenamiento de la clave.
Los algoritmos de clave simétrica son ampliamente usados porque, en general, son mucho más rápidos en los ordenadores que los algoritmos de clave pública. En la criptografía de clave pública (también llamada criptografía asimétrica) la clave de cifrado puede hacerse pública y todo el mundo puede cifrar mensajes para el propietario de la clave privada. Ese enfoque es muy útil para intercambiar claves o autenticar identidades, pero las operaciones asimétricas son costosas en tiempo de CPU. Por eso las aplicaciones prácticas usan un esquema híbrido: la criptografía asimétrica sirve para negociar una clave secreta y después los algoritmos de clave simétrica se encargan del cifrado de los datos por su eficiencia.
Galería de imágenes
1 ImagenTipos básicos: cifradores de flujo y de bloque
Existen dos tipos principales de algoritmos de clave simétrica: los cifrados de flujo y los cifrados de bloque.
- Cifradores de flujo: procesan los datos bit a bit o byte a byte, generando una secuencia pseudoaleatoria que se combina con el mensaje (por ejemplo mediante XOR). Son adecuados para transmitir datos en tiempo real y para tamaños arbitrarios. Ejemplos históricos incluyen RC4, aunque RC4 hoy se considera inseguro en la mayoría de usos.
- Cifradores de bloque: toman bloques fijos de bits y los cifran como unidades completas. Los bloques suelen ser de 64 o 128 bits; algoritmos modernos como el Advanced Encryption Standard (AES) usan bloques de 128 bits. Para cifrar mensajes más largos que un bloque se usan modos de operación (ver más adelante).
Ejemplos de algoritmos
Algunos cifrados simétricos populares y relevantes históricamente son: Twofish, Serpent, AES (también conocido como Rijndael, también conocido como Rijndael), Blowfish, CAST5, RC4, TDES (Triple DES) e IDEA. Algunos están estandarizados y se usan ampliamente (por ejemplo AES); otros han caído en desuso por debilidades, problemas de rendimiento o por razones de compatibilidad y normativa.
Modos de operación (por qué importan)
Un cifrador de bloque por sí solo sólo transforma bloques individuales; para cifrar mensajes más largos se usan modos de operación que definen cómo encadenar bloques y cómo emplear vectores de inicialización o contadores. Los modos habituales incluyen ECB, CBC, CFB, OFB, CTR, y modos autenticados como GCM o CCM. Es importante elegir el modo adecuado:
- ECB (Electronic Codebook): no es recomendable para datos repetitivos porque bloques iguales resultan en texto cifrado igual.
- CBC (Cipher Block Chaining): requiere un IV aleatorio y es ampliamente usado, pero vulnerable a ciertos ataques si no se valida el relleno (padding oracle).
- CTR y OFB/CFB: convierten un cifrador de bloque en cifrador de flujo; requieren que los nonces/IV no se repitan.
- GCM/CCM: proporcionan cifrado y autenticación (AEAD), protegiendo además contra manipulaciones del texto cifrado.
Vulnerabilidades y ataques
La seguridad real de un esquema simétrico no depende sólo del algoritmo matemático, sino también de su uso. A lo largo de la historia, varios métodos de criptoanálisis han explotado debilidades de diseño, implementación o uso incorrecto:
- Ataques de texto plano conocido: el atacante conoce parte del texto claro y lo utiliza para recuperar la clave o más texto claro.
- Ataques de texto plano elegido: el atacante puede obtener cifrados de textos escogidos y explotar la relación entre entrada y salida.
- Criptoanálisis diferencial y criptoanálisis lineal: técnicas matemáticas que analizan cómo pequeños cambios en la entrada afectan al cifrado, valiéndose de grandes cantidades de pares texto claro/texto cifrado para recuperar la clave.
- Fuerza bruta: ensayo de todas las claves posibles. La resistencia depende de la longitud de la clave (por ejemplo, claves de 128 bits son seguras frente a ataques de fuerza bruta con la tecnología actual).
- Reutilización de IV/nonce: en modos como CTR u OFB, reutilizar un nonce permite relaciones directas entre textos cifrados y puede revelar información. En RC4, reutilizar clave o flujos iniciales también fue una fuente de ataques.
- Padding oracle y errores de implementación: problemas en cómo se valida el relleno o se manejan errores pueden filtrar información y permitir recupero de texto claro.
- Ataques de canal lateral: obtención de la clave mediante análisis del tiempo de ejecución, consumo de energía, emisiones electromagnéticas, fallos inducidos, etc.
- Debilidad por tamaño de bloque: cifradores con bloques de 64 bits (p. ej. DES, Triple DES) sufren problemas prácticos de colisiones por la paradoja del cumpleaños en grandes volúmenes de datos (ej.: ataque Sweet32).
Buenas prácticas
- Usar algoritmos y modos modernos y estandarizados (p. ej. AES en modos AEAD como GCM o CCM) en lugar de esquemas obsoletos como RC4 o DES.
- Elegir longitudes de clave adecuadas: 128 bits suele ser suficiente para la mayoría de usos actuales; 256 bits se emplea cuando se desea margen adicional para resistencia futura.
- Generar claves y nonces/IVs con generadores de números aleatorios criptográficamente seguros. Nunca reutilizar IVs/nonce cuando el modo lo prohíbe.
- Derivar claves de contraseñas con funciones robustas (PBKDF2, Argon2, scrypt) y parámetros adecuados para evitar ataques por fuerza bruta.
- Implementar autenticación de los datos (MAC o usar AEAD) para detectar modificaciones y prevenir ataques de manipulación.
- Proteger las claves en reposo y en uso (almacenamiento seguro, uso de módulos HSM, protección contra fugas por side-channels).
- Actualizar y parchear bibliotecas criptográficas; preferir implementaciones bien auditadas y mantenidas.
Aplicaciones prácticas
La criptografía simétrica se utiliza para cifrar grandes volúmenes de datos con eficiencia: comunicaciones seguras (p. ej. la etapa simétrica en TLS después del intercambio de claves), cifrado de disco y archivos, VPNs, protocolos inalámbricos, almacenamiento en la nube y muchas aplicaciones de software que requieren confidencialidad y rendimiento.
En la historia también ha habido ataques que explotaban la simetría o debilidades concretas en diseños o implementaciones, por lo que los sistemas simétricos antiguos se consideraron menos seguros en ciertos contextos. Esos ataques incluyen los ya mencionados ataques de texto plano conocido, ataques de texto plano elegido, criptoanálisis diferencial y criptoanálisis lineal.
Otros términos usados para describir este tipo de cifrado son clave secreta, clave compartida, clave única y, a veces, cifrado de clave privada (este último no debe confundirse con la "clave privada" de la criptografía de clave pública). En la práctica moderna, la criptografía simétrica forma parte de sistemas híbridos donde se combinan lo mejor de la criptografía asimétrica y simétrica para lograr seguridad y rendimiento.

Algoritmos simétricos y asimétricos
A diferencia de los algoritmos simétricos, los algoritmos de clave asimétrica utilizan una clave diferente para el cifrado que para el descifrado. Es decir, un usuario que conozca la clave de cifrado de un algoritmo asimétrico puede cifrar mensajes, pero no puede calcular la clave de descifrado y no puede descifrar los mensajes cifrados con esa clave. A continuación se ofrece una breve comparación de estos dos tipos de algoritmos:
Velocidad
Los algoritmos de clave simétrica suelen ser mucho menos intensivos desde el punto de vista computacional que los de clave asimétrica. En la práctica, los algoritmos de clave asimétrica suelen ser entre cientos y miles de veces más lentos que los de clave simétrica.
Gestión de claves
Una de las desventajas de los algoritmos de clave simétrica es el requisito de una clave secreta compartida, en la que ambas partes tienen la misma copia en cada extremo. Para garantizar la seguridad de las comunicaciones entre todos los miembros de un grupo de n personas se necesita un total de n(n - 1)/2 claves, que es el número total de canales de comunicación posibles. Para limitar el impacto de un posible descubrimiento por parte de un atacante criptográfico, deben cambiarse regularmente y mantenerse seguras durante su distribución y en servicio. El proceso de selección, distribución y almacenamiento de claves se conoce como gestión de claves, y es difícil de conseguir de forma fiable y segura.
Criptosistema híbrido
En los diseños de criptosistemas modernos, se utilizan tanto algoritmos asimétricos (de clave pública) como simétricos para aprovechar lo mejor de ambos. Los algoritmos asimétricos se utilizan para distribuir claves simétricas al inicio de una sesión. Una vez que todas las partes de la sesión conocen una clave simétrica, se pueden utilizar algoritmos de clave simétrica más rápidos que utilizan esa clave para cifrar el resto de la sesión. Esto simplifica el problema de la distribución de claves, ya que las claves asimétricas sólo tienen que distribuirse de forma auténtica, mientras que las simétricas deben distribuirse de forma auténtica y confidencial.
Entre los sistemas que utilizan este enfoque híbrido se encuentran SSL, PGP y GPG, etc.
Páginas relacionadas
- Algoritmos de clave asimétrica
Preguntas y respuestas
P: ¿Qué son los algoritmos de clave simétrica?
R: Los algoritmos de clave simétrica son un método de criptografía en el que las claves de descifrado y cifrado son exactamente el mismo secreto compartido.
P: ¿Cómo se puede generar el secreto?
R: El secreto puede generarse aleatoriamente, o a partir de una contraseña, o mediante un procedimiento secreto de intercambio de claves como Diffie-Hellman.
P: ¿Por qué son importantes los algoritmos de clave simétrica?
R: Los algoritmos de clave simétrica son muy importantes porque son más rápidos en los ordenadores que los algoritmos de clave pública.
P: ¿Qué es la criptografía de clave pública (criptografía de clave asimétrica)?
R: En la criptografía de clave pública (criptografía de clave asimétrica) la clave para el cifrado puede darse al público sin ningún problema, y todo el mundo puede enviarle mensajes secretos. La clave para el cifrado es "abierta" porque, en la práctica, no puede utilizarse para obtener la clave para el descifrado.
P: ¿Cuáles son los dos tipos de cifrado simétrico?
R: Dos tipos de cifradores simétricos son los cifradores de flujo y los cifradores de bloque. Los cifradores de flujo cifran un mensaje como un flujo de bits de uno en uno, mientras que los cifradores de bloque toman bloques de bits, los cifran como una sola unidad y, a veces, también utilizan la respuesta posteriormente.
P: ¿Qué tamaño de bloques utilizan los cifradores modernos?
R: Los cifradores modernos, como el Advanced Encryption Standard, utilizan bloques de 128 bits.
P: ¿Qué tipos de ataques se han utilizado para explotar la simetría en la historia?
R: En la historia algunos métodos de criptoanálisis explotaban la simetría por lo que los sistemas simétricos eran menos seguros. Algunos ataques que se han utilizado son los ataques de texto plano conocido, los ataques de texto plano elegido, el criptoanálisis diferencial y el criptoanálisis lineal.
Artículos relacionados
Autor
AlegsaOnline.com Criptografía simétrica: definición, tipos, algoritmos y vulnerabilidades Leandro Alegsa
URL: https://es.alegsaonline.com/art/95629