2. Cifrado Simétrico: Compartiendo una Sola Clave 🔑
Conceptos Clave del Cifrado Simétrico
El cifrado simétrico destaca por su gran velocidad y bajo consumo de recursos. Esto lo hace el estándar absoluto para proteger datos masivos (bases de datos completas, archivos en disco o conexiones TLS).
El algoritmo moderno por excelencia es AES (Advanced Encryption Standard). Usar AES-256 significa que hay $2^256$ combinaciones de claves posibles, haciendo imposible un ataque por fuerza bruta hoy en día.
⚠️ El peligro del modo ECB y por qué elegimos GCM
Nunca uses el modo de cifrado ECB (Electronic Codebook). ECB cifra cada bloque por separado de forma idéntica; si hay patrones repetidos en el archivo original, el texto cifrado revelará esos patrones (el famoso ejemplo del pingüino de Linux Tux). En su lugar, usamos GCM (Galois/Counter Mode), que es un modo de Cifrado Autenticado (AEAD). GCM no solo cifra los datos, sino que genera un tag de autenticación de 128 bits que garantiza que los datos no han sido modificados ni manipulados.
La importancia del IV o Nonce
El Vector de Inicialización (IV) o Nonce (número de un solo uso) es un valor aleatorio no secreto de 12 bytes. Su único propósito es asegurar que si cifras el mensaje "Hola" dos veces con la misma contraseña, los resultados cifrados sean totalmente distintos.
Regla de oro: NUNCA reutilices el mismo IV con la misma clave. Si lo haces, el modo GCM pierde sus propiedades de seguridad y un atacante podría descifrar la comunicación.
Implementación en Código
Compara cómo se configura e implementa AES-256-GCM en diferentes lenguajes. Nota que todos generan un IV aleatorio y validan el tag de autenticación.
Ponte a prueba
Demuestra lo aprendido sobre vectores de inicialización y el estándar AES.