Empieza aquí
Introducción
La criptografía es la ciencia de guardar secretos en presencia de adversarios. Empezó como un oficio de sacerdotes, generales y diplomáticos, fue un arma en dos guerras mundiales y hoy es matemática que funciona, sin que nadie lo note, cada vez que abres una web, pagas con tarjeta o desbloqueas el móvil. Esta web sigue esa historia desde los primeros cifrados de sustitución hasta los algoritmos poscuánticos estandarizados en 2024.
En este capítulo
Para qué sirve la criptografía
Esconder un mensaje es solo una de sus tareas. La criptografía moderna protege cuatro cosas distintas, y cada capítulo de esta web construye las herramientas para una o varias de ellas:
- Confidencialidad: solo el destinatario entiende el mensaje. Es lo que hacen los cifrados, desde el de César hasta AES.
- Integridad: nadie puede cambiar el mensaje sin que se note. Lo consiguen las funciones hash y los códigos de autenticación de mensajes, y también los modos autenticados de los cifrados en bloque.
- Autenticidad: el mensaje viene de verdad de quien dice. Una clave secreta compartida la da; una firma digital la da a cualquiera que tenga la clave pública.
- No repudio: el autor no puede negar después haber firmado. Solo lo dan las firmas de clave pública, porque solo una persona tiene la clave privada.
Que dos personas que nunca se han visto acuerden un secreto por un canal que todo el mundo escucha parece imposible. Hasta 1976 todo el mundo lo creía. La revolución de la clave pública es la bisagra de esta historia: antes, la criptografía consistía en mantener secretas las claves; después, también en claves que se pueden publicar.
Un poco de vocabulario
- Texto en claro y texto cifrado
- El mensaje antes y después de cifrarlo. El cifrado y el descifrado dependen de una clave , y para todo mensaje .
- Cifrado y código
- Un cifrado transforma letras o bits según una regla; un código sustituye palabras enteras por palabras clave de un libro («ÁGUILA» por «atacad»). Para leer un código hay que capturar el libro; un cifrado hay que romperlo.
- Criptoanálisis
- El arte de romper cifrados: recuperar el texto en claro o la clave sin que te la den. Cada capítulo tiene sus ataques, porque cada diseño es la respuesta a un ataque.
- Simétrica y asimétrica
- En la criptografía simétrica las dos partes comparten la misma clave secreta; en la asimétrica (de clave pública) hay un par: una clave pública para cifrar o verificar y una privada para descifrar o firmar.
- Codificar, cifrar y resumir
- Tres cosas distintas que se confunden a menudo. Codificar (hexadecimal, Base64) solo cambia cómo se escriben los bytes: no hay clave y cualquiera lo deshace. Cifrar necesita una clave para deshacerse. Resumir (hash) no se puede deshacer: produce una huella de tamaño fijo de cualquier entrada.
El enemigo conoce el sistema
En 1883 el lingüista neerlandés Auguste Kerckhoffs publicó seis reglas para los cifrados militares. La segunda es el principio fundacional de la criptografía moderna:
El sistema no debe requerir secreto, y debe poder caer en manos del enemigo sin inconveniente.Auguste Kerckhoffs, «La cryptographie militaire» (1883)
Todo el secreto debe residir en la clave, que es pequeña y fácil de cambiar. El diseño del cifrado debe ser público, porque los diseños se filtran (se capturan máquinas, se desensamblan programas, los empleados cambian de trabajo) y porque solo merece confianza un diseño que muchos han atacado en público. Claude Shannon lo dijo más crudamente en 1949: «el enemigo conoce el sistema». Todos los estándares modernos (DES, AES, SHA-3, ML-KEM) se publicaron íntegros y se eligieron tras años de ataques públicos; los esquemas que dependían de un diseño secreto, del CSS de los DVD a los cifrados de la telefonía GSM, cayeron poco después de que su secreto saliera a la luz.
Bits, bytes y codificaciones
Los cifrados clásicos trabajan con letras. Los modernos trabajan con bytes, grupos de ocho bits, así que el primer paso es siempre convertir el texto en bytes. Hoy se hace con UTF-8: las letras sin acento ocupan un byte, una letra acentuada o la ñ dos, un emoji cuatro. El texto cifrado también son bytes, normalmente no imprimibles, así que para mostrarlo, copiarlo o mandarlo por correo se escribe con un alfabeto imprimible: el hexadecimal usa dos caracteres (0–9, a–f) por byte; Base64 reagrupa los bits de seis en seis y escribe cada grupo con uno de 64 caracteres, así que ocupa un tercio más que los bytes en lugar del doble.
La aplicación de escritorio pone estas codificaciones en su propia familia, en gris, precisamente para insistir en ello: Base64 no es cifrado. Muchos sistemas reales se han «protegido» con él.
El viaje
Los capítulos siguen la historia, que aquí coincide con la lógica de la materia: cada cifrado nuevo responde al ataque que rompió el anterior.
-
01
Sustitución h. 1900 a. C. – 1863
Esconder letras: de César a Vigenère
Durante dos mil años cifrar consistió en cambiar unas letras por otras. Los cifrados se volvieron más ingeniosos, del desplazamiento de César a la palabra clave de Vigenère, y quienes los rompían, más pacientes: de al-Kindi contando letras en el Bagdad del siglo IX a Babbage y Kasiski midiendo la distancia entre repeticiones.
- Espacio de claves de una sustitución:
- Análisis de frecuencias
- Índice de coincidencia
- Examen de Kasiski
-
02
Enigma 1918 – 1945
La máquina que perdió una guerra
Un cifrado electromecánico con 159 trillones de configuraciones, usado por todos los ejércitos alemanes, roto primero por tres matemáticos polacos con la teoría de permutaciones y después, a escala industrial, en Bletchley Park. Su historia enseña que la parte más débil de un cifrado suele ser la forma de usarlo.
- Enigma es una involución sin puntos fijos
- Las permutaciones conjugadas tienen la misma estructura de ciclos
- Espacio de claves
-
03
Shannon 1882 – 1949
Irrompible, demostrado: la libreta de un solo uso
Existe un cifrado que ninguna potencia de cálculo puede romper, y Claude Shannon lo demostró en 1949. También demostró su precio: una clave verdaderamente aleatoria tan larga como todo lo que vayas a enviar, usada una sola vez. Si se reutiliza, como hicieron los soviéticos, el mensaje se derrama.
- La libreta de un solo uso tiene secreto perfecto
- Cota de Shannon:
- Distancia de unicidad
- Confusión y difusión
-
04
DES y AES 1971 – 2001
Confusión y difusión: de DES a AES
Un cifrado en bloque revuelve un bloque de bits de tamaño fijo bajo una clave, tan a fondo que sin la clave parece una permutación aleatoria. Lucifer, de IBM, se convirtió en el estándar estadounidense DES en 1977; veinte años después su clave de 56 bits cayó ante una máquina construida por 250.000 dólares, y un concurso abierto eligió a su sucesor: Rijndael, hoy AES, el cifrado más usado de la historia.
- Una red de Feistel es invertible para cualquier función de ronda
- Luby–Rackoff
- Encuentro a medio camino: el doble DES no es el doble de fuerte
- es un cuerpo
-
05
Modos 1976 – 2018
Un bloque no basta: ECB, CBC, CTR, GCM
AES cifra dieciséis bytes. Todo lo demás (cómo encadenar bloques, dónde va la aleatoriedad, cómo detectar manipulaciones) es trabajo del modo de operación, y ahí es donde se producen la mayoría de las roturas reales: patrones que se transparentan, oráculos de relleno, nonces repetidos, textos cifrados que un atacante puede editar.
- El cifrado determinista revela igualdades
- Repetir el nonce en CTR es una libreta de dos usos
- Cifrar y luego autenticar es seguro (Bellare–Namprempre)
- GHASH es un polinomio sobre
-
06
Hashes 1979 – 2020
Huellas dactilares de los datos
Una función hash comprime cualquier entrada, una palabra o un disco entero, en una huella corta que cambia por completo si cambia un solo bit. Las huellas protegen descargas, contraseñas, firmas, Git y Bitcoin. Romperlas significa encontrar dos entradas con la misma huella, y la paradoja del cumpleaños dice que es mucho más fácil de lo que parece.
- Cota del cumpleaños: colisiones tras intentos
- Merkle–Damgård: una compresión resistente a colisiones da un hash resistente a colisiones
- Extensión de longitud
- Seguridad de la esponja
-
07
Contraseñas 1976 – 2021
Lentas a propósito: sal, bcrypt, scrypt y Argon2
Las contraseñas son cortas, humanas y repetidas, y los servidores sufren brechas. Guardarlas bien es el arte de encarecer cada intento: una sal para que cada cuenta haya que atacarla por separado, y un hash deliberadamente lento y exigente en memoria, para que un intento le cueste a la GPU del atacante tanto como al servidor.
- Entropía de una contraseña
- La sal derrota al precálculo
- Compromiso tiempo–memoria (Hellman)
- Funciones exigentes en memoria
-
08
RSA y DH 1970 – 1998
Secretos en público: Diffie–Hellman y RSA
Durante cuatro mil años, dos personas que querían comunicarse en secreto tenían que compartir antes una clave. En 1976 Whitfield Diffie y Martin Hellman mostraron cómo acordarla en público, y un año después Rivest, Shamir y Adleman construyeron un cifrado cuya clave de cifrado puede publicarse en un periódico. Los dos se apoyan en teoría de números que Fermat y Euler ya conocían en el siglo XVIII.
- Pequeño teorema de Fermat
- Teorema de Euler
- Corrección de RSA
- Teorema chino del resto
- Elevar al cuadrado y multiplicar
-
09
ECC 1985 – 2013
La aritmética de las curvas: ECDH, ECDSA, Ed25519
Los puntos de una curva cúbica se pueden sumar con una regla: se traza la recta, se busca el tercer punto y se refleja. Sobre un cuerpo finito esta geometría se convierte en un grupo en el que los logaritmos son aún más difíciles que en los números de RSA, así que una clave de 256 bits hace el trabajo de una de 3.072. Es la criptografía que llevan dentro hoy todos los móviles, las passkeys y las conexiones TLS.
- La ley de la cuerda y la tangente hace de un grupo abeliano
- Hasse:
- Rho de Pollard: pasos
- Repetir un nonce de ECDSA revela la clave privada
-
10
Poscuántica 1994 – 2026
Después de Shor: retículos, ML-KEM y ML-DSA
Un ordenador cuántico grande rompería RSA, Diffie–Hellman y todas las curvas elípticas de esta web. Todavía no existe, pero el tráfico cifrado que se graba hoy podría leerse cuando exista. Por eso en 2024, tras un concurso público de ocho años, el NIST estandarizó sustitutos basados en retículos y en hashes, y ha empezado la migración de todo Internet.
- Shor: factorización y logaritmos discretos en tiempo polinómico
- Grover: búsqueda en , y no mejor
- Aprender con errores es tan difícil como los problemas de retículos en el peor caso (Regev)
- Corrección del cifrado de Regev
Cómo leer esta web
En orden, como un libro corto, o saltando al capítulo que te pique la curiosidad: cada uno se sostiene solo y enlaza hacia atrás cuando lo necesita. Los resultados se enuncian como teoremas, con demostraciones breves que puedes desplegar, y cada capítulo tiene figuras interactivas que ejecutan los algoritmos reales en tu navegador: el AES del capítulo 04 es el AES-128 completo, comprobado con los vectores de prueba oficiales, y la Enigma del capítulo 02 tiene el mismo cableado que las máquinas de Bletchley Park. Nada de lo que escribes se envía a ninguna parte.
La página de historia pone cuatro mil años de acontecimientos en una sola línea, y la app es el propio cryptoKit: una aplicación de escritorio libre (Java) con los 44 algoritmos de los que se habla aquí, para cifrar, descifrar, resumir y firmar tus propios datos, cada uno con un enlace al capítulo que lo explica.
Una advertencia. Entender cómo funciona un cifrado no es lo mismo que saber construir con él un sistema seguro. Las figuras de esta web están escritas para leerse, no para resistir ataques de canal lateral. Para datos reales, usa bibliotecas y protocolos bien revisados, como aquellos sobre los que está construida la aplicación de escritorio.