La criptografía es la ciencia que se encarga de proteger la información mediante el uso de mecanismos de seguridad. Se clasifica en dos tipos principales:
El secreto perfecto se logra cuando el cifrado es irrompible, incluso con recursos computacionales ilimitados. Un ejemplo es el sistema de Vernam o libreta de un solo uso, que cumple con tres condiciones:
Cifrado en flujo: cifra la información bit a bit, lo que permite el cifrado en tiempo real. Es más rápido y eficiente para transmisiones de datos continuas.
Cifrado en bloque: cifra la información en bloques de tamaño fijo (128, 256 bits, etc.). Es más seguro y se utiliza comúnmente para el almacenamiento de datos.
AES (Advanced Encryption Standard) es un algoritmo de cifrado simétrico en bloque que se considera muy seguro. Utiliza una matriz para realizar operaciones matemáticas sobre los bloques de datos y la clave, logrando difusión y confusión.
Los modos de operación son diferentes maneras de aplicar un algoritmo de cifrado en bloque para evitar que patrones en el texto plano se reflejen en el texto cifrado. Un ejemplo es el modo ECB (Electronic Codebook), que se debe evitar porque puede revelar información si se repiten bloques de datos.
El cifrado autenticado garantiza la integridad, confidencialidad y autenticidad del mensaje. El modo GCM (Galois/Counter Mode) es un modo de operación recomendado que proporciona cifrado autenticado al añadir un MAC (Message Authentication Code) o hash al texto cifrado, asegurando que el mensaje no ha sido modificado y proviene del remitente legítimo.
Diffie-Hellman: es un algoritmo de intercambio de claves que permite a dos partes establecer una clave secreta compartida a través de un canal inseguro. No se utiliza para cifrar información, solo para acordar una clave.
RSA: es un algoritmo de clave pública que se utiliza para el firmado digital, lo que permite verificar la autenticidad e integridad de un mensaje. No se recomienda para el intercambio de claves debido a su complejidad computacional.
Las curvas elípticas son funciones matemáticas que se utilizan en criptografía para crear algoritmos de cifrado de clave pública más eficientes que RSA. Ofrecen un nivel de seguridad equivalente o superior con claves más cortas, lo que las hace ideales para dispositivos con recursos limitados. Un ejemplo es ECDH (Elliptic Curve Diffie-Hellman), que se utiliza para el intercambio de claves.