Cifrado explicado - Simétrico, asimétrico y más
Lectura de 2 min aprox.
El cifrado es una técnica que transforma los datos en un formato ilegible para terceros mediante un algoritmo y una clave específicos. Los datos cifrados solo pueden ser descifrados a su forma original por quienes poseen la clave correcta. Es una tecnología fundamental que sustenta la seguridad digital moderna, incluyendo la comunicación por internet, el almacenamiento de archivos y la gestión de contraseñas.
Antecedentes históricos
La historia de la criptografía se remonta al cifrado César de la era a.C., pero el punto de inflexión de la criptografía moderna llegó en la década de 1970. En 1976, Diffie y Hellman presentaron el concepto de criptografía de clave pública, y en 1977 se ideó el cifrado RSA. En 2001, el Instituto Nacional de Estándares y Tecnología de EE. UU. (NIST) adoptó AES como cifrado estándar, y desde entonces ha servido como base de la comunicación por internet. La estandarización de la criptografía resistente a la cuántica (criptografía poscuántica) también avanzó como preparación para los avances en computación cuántica, y en 2024 el NIST estandarizó formalmente tres algoritmos de criptografía poscuántica: ML-KEM, ML-DSA y SLH-DSA.
Tipos de cifrado
El cifrado de clave simétrica (criptografía simétrica) usa la misma clave para cifrar y descifrar. AES (Advanced Encryption Standard) es representativo y se caracteriza por su procesamiento rápido. El cifrado de clave pública (criptografía asimétrica) usa un par formado por una clave pública para cifrar y una clave privada para descifrar. RSA y la criptografía de curva elíptica son representativos, con la ventaja de no requerir una distribución segura de claves. En la comunicación real, se usa ampliamente el cifrado híbrido que combina ambos.
La diferencia entre el cifrado y el hash
El cifrado y el hash son conceptos que se confunden fácilmente, pero son fundamentalmente diferentes. El cifrado es una transformación reversible y bidireccional: con la clave correcta se pueden recuperar los datos originales. El hash, en cambio, es una transformación unidireccional que no se puede revertir a los datos originales. El hash se usa para almacenar contraseñas. El servicio almacena solo el valor hash de la contraseña y lo compara con el hash de la contraseña introducida al iniciar sesión. Así, aunque la base de datos sufra una filtración, las contraseñas originales no quedan directamente expuestas. Se recomiendan funciones hash específicas para contraseñas como bcrypt y Argon2.
Casos de uso reales
Por ejemplo, al diseñar una migración a la nube, una política habitual es unificar el cifrado de los datos almacenados en un cifrado autenticado como AES-256-GCM. Centralizar la gestión de claves en un servicio de gestión de claves en la nube (como AWS KMS) permite controlar en un solo lugar la generación, el almacenamiento y los permisos de acceso a las claves, y automatizar su rotación en un ciclo fijo. Una arquitectura en la que la aplicación no guarda las claves es eficaz para evitar que se filtren.
El proceso de cifrado
Consideraciones prácticas
Un error común al implementar el cifrado es intentar diseñar tu propio algoritmo criptográfico. En el mundo de la criptografía, «no inventes tu propio cifrado» es una regla inquebrantable; debes usar algoritmos probados como AES o ChaCha20. La gestión de claves también es un desafío importante. Guardar la clave en el mismo lugar que los datos cifrados es como dejar la llave junto a la caja fuerte. El cifrado se usa en todos los aspectos de la vida diaria, como la comunicación HTTPS, el WPA3 de Wi-Fi y el cifrado del almacenamiento de los smartphones. Cabe señalar que, si la generación de contraseñas se completa por entero dentro del navegador, la cadena generada no viaja por la red.
¿Te resultó útil este artículo?