Cada vez que envías un mensaje privado, accedes a tu banco o compras algo en línea, tus datos atraviesan un laberinto matemático diseñado para hacer que el espionaje sea prácticamente imposible. Las matemáticas del cifrado en línea que protegen estas transacciones se basan en una idea simple pero poderosa: algunas operaciones matemáticas son fáciles de realizar en una dirección, pero extraordinariamente difíciles de invertir. Esta asimetría es el fundamento de la privacidad digital moderna, y entenderla no requiere un doctorado, solo la disposición de seguir la lógica.
El problema del candado y la llave: por qué existen las matemáticas del cifrado en línea
Imagina que necesitas enviar un secreto a alguien que nunca has conocido, en una sala llena de personas que escuchan cada palabra. No puedes susurrar. No puedes pasar una nota. Todo lo que dices lo escucha todo el mundo. ¿Cómo compartes un secreto en esas condiciones?
Este es el problema fundamental de la comunicación en internet. Cada mensaje que envías atraviesa infraestructura pública: routers, cables y servidores operados por desconocidos. Antes de 1976, la única solución era que ambas partes ya compartieran un código secreto. Luego dos investigadores, Whitfield Diffie y Martin Hellman, publicaron un artículo que lo cambió todo. Demostraron que dos personas podían crear un secreto compartido a través de un canal público sin intercambiarlo directamente jamás. La lógica detrás de su método, y de todo el cifrado construido sobre él desde entonces, gira en torno a las llamadas «funciones de trampilla»: operaciones fáciles de realizar pero difíciles de deshacer.
Multiplicar es fácil, factorizar es difícil
La función de trampilla más famosa en criptografía involucra números primos. Multiplicar dos números primos grandes es trivial para una computadora. Pero dado solo el producto, encontrar los dos números originales es extraordinariamente difícil. Este es el fundamento de RSA, el sistema de cifrado descrito por Ron Rivest, Adi Shamir y Leonard Adleman en 1977.
El concepto reducido a lo esencial: eliges dos números primos grandes y los multiplicas para obtener un número muy grande. Ese número grande se convierte en parte de tu clave pública, que cualquiera puede ver. Pero solo alguien que conoce los dos números primos originales puede derivar la clave privada necesaria para descifrar mensajes. La seguridad descansa enteramente en el hecho de que ningún algoritmo conocido puede factorizar eficientemente un número suficientemente grande en sus componentes primos.
¿Qué tan grande es «suficientemente grande»? Las claves RSA modernas suelen tener 2.048 o 4.096 bits. Un número de 2.048 bits tiene aproximadamente 617 dígitos decimales. Los mejores algoritmos de factorización clásicos tardarían más que la edad del universo en romper uno.
RSA es demasiado lento para cifrar grandes cantidades de datos directamente. En la práctica, se usa para intercambiar de forma segura una clave más pequeña y rápida que maneja el cifrado masivo real. Piensa en RSA como el mensajero seguro que entrega la clave real, no como el candado en sí.
El intercambio de claves: compartir secretos en público
Antes de RSA, Diffie y Hellman resolvieron el problema del intercambio de claves usando una trampilla matemática diferente: el problema del logaritmo discreto. Su intercambio de claves Diffie-Hellman funciona como mezclar colores de pintura.
Dos personas acuerdan públicamente un color de partida. Cada una elige secretamente su propio color y lo mezcla con el público, luego intercambian los resultados mezclados. Cada persona añade entonces su color secreto a la mezcla que recibió. Ambas llegan al mismo color final, pero un observador que solo vio el color público y las dos mezclas no puede deducir cuál es. En términos matemáticos, ambas partes calculan un secreto compartido a partir de valores intercambiados públicamente, y la dificultad de invertir las matemáticas (calcular logaritmos discretos) impide que cualquiera que esté escuchando derive ese secreto compartido.
Esta técnica, o variantes modernas de ella, se usa cada vez que tu navegador establece una conexión segura con un sitio web.
El caballo de batalla: el cifrado simétrico AES
Una vez que dos partes comparten una clave secreta, cambian al cifrado simétrico para los datos reales. El estándar global es AES (Advanced Encryption Standard), adoptado por el gobierno de EE. UU. en 2001 tras un concurso de cinco años ganado por los criptógrafos belgas Joan Daemen y Vincent Rijmen.
AES procesa tus datos en bloques de 128 bits (16 bytes a la vez) y hace pasar cada bloque por múltiples rondas de mezcla: sustitución de bytes, desplazamiento de filas, mezcla de columnas y combinación con fragmentos de la clave. AES-128 usa 10 rondas, AES-192 usa 12 y AES-256 usa 14. Cada ronda hace que la relación entre los datos originales y la salida cifrada sea más enredada y más difícil de invertir sin la clave.
AES es el primer y único cifrado de acceso público aprobado por la NSA para información de alto secreto. Es lo suficientemente rápido para funcionar en todo, desde teléfonos inteligentes hasta granjas de servidores, razón por la que maneja la mayor parte del tráfico cifrado del mundo.
Las matemáticas del cifrado en línea en tu navegador
Cuando visitas un sitio web con HTTPS (el ícono del candado), tu navegador realiza un protocolo de enlace TLS. Aquí es donde toda la matemática se une en un protocolo práctico:
- Tu navegador y el servidor acuerdan qué algoritmos de cifrado usar.
- El servidor prueba su identidad con un certificado digital.
- Ambos lados realizan un intercambio de claves Diffie-Hellman (o una variante que usa curvas elípticas) para crear una clave de sesión compartida.
- Todos los datos posteriores se cifran con AES usando esa clave de sesión.
La última versión, TLS 1.3, redujo el protocolo de enlace de dos viajes de ida y vuelta a uno, reduciendo la latencia a la mitad y eliminando opciones de cifrado más antiguas y débiles.
Secreto de reenvío: por qué robar la clave de hoy no descifra los mensajes de ayer
Las aplicaciones de mensajería modernas como Signal llevan el cifrado más lejos con el algoritmo Double Ratchet. En lugar de usar una clave para toda una conversación, el Double Ratchet genera una nueva clave de cifrado para cada mensaje individual. Si un atacante compromete una clave, solo puede descifrar ese mensaje. Los mensajes anteriores y futuros permanecen protegidos.
El algoritmo lo consigue mezclando continuamente nuevas salidas de Diffie-Hellman en su cadena de derivación de claves. El resultado es el secreto de reenvío (los mensajes pasados permanecen seguros si se filtra una clave) y lo que los criptógrafos llaman recuperación tras compromiso (los mensajes futuros vuelven a ser seguros después de un compromiso). Este protocolo es usado por miles de millones de personas a través de Signal, WhatsApp y otras plataformas de mensajería.
Curvas elípticas: mayor seguridad con claves más pequeñas
Las claves RSA deben ser grandes para seguir siendo seguras: 2.048 bits como mínimo, con 4.096 cada vez más recomendados. La criptografía de curva elíptica (ECC) logra seguridad equivalente con claves significativamente más pequeñas. Una clave ECC de 256 bits proporciona la misma seguridad que una clave RSA de 3.072 bits.
ECC se basa en una estructura matemática diferente: el conjunto de puntos en una curva definida por una ecuación como y2 = x3 + ax + b. Los puntos de la curva se pueden «sumar» siguiendo reglas geométricas específicas. La trampilla es que multiplicar un punto por un número (sumarlo consigo mismo repetidamente) es rápido, pero dado el resultado y el punto de partida, encontrar el número de veces que se realizó la operación es computacionalmente inviable. Este es el problema del logaritmo discreto de curva elíptica, y es más difícil de resolver que la factorización estándar, bit por bit.
Las claves más pequeñas significan cálculos más rápidos y menos ancho de banda. Esto hace que ECC sea la opción preferida para dispositivos móviles, sistemas embebidos y las conexiones TLS que aseguran tu navegación ahora mismo.
La amenaza cuántica y lo que viene después
Todo lo descrito anteriormente depende del supuesto de que ciertos problemas matemáticos son difíciles para las computadoras. Las computadoras cuánticas amenazan ese supuesto. En 1994, el matemático Peter Shor diseñó un algoritmo que podría factorizar números grandes en tiempo polinómico en una computadora cuántica, lo que significa que RSA, Diffie-Hellman y ECC serían todos vulnerables.
Todavía no existe ninguna computadora cuántica capaz de hacer esto. Las máquinas actuales tienen aproximadamente mil qubits físicos, muy lejos de los millones necesarios para la factorización con corrección de errores de números grandes. Pero la amenaza se toma en serio debido a los ataques de «cosechar ahora, descifrar después»: un adversario podría registrar tráfico cifrado hoy y descifrarlo una vez que el hardware cuántico madure.
En agosto de 2024, el NIST publicó tres estándares finalizados de cifrado poscuántico. Estos algoritmos, basados en problemas matemáticos que involucran retículos (estructuras geométricas en espacios de alta dimensión), están diseñados para resistir ataques tanto clásicos como cuánticos. El NIST también publicó un plan de transición formal instando a las organizaciones a comenzar la migración ahora.
La idea central no ha cambiado: encontrar un problema matemático fácil en un sentido y difícil en el otro. La diferencia es que los nuevos problemas deben ser difíciles incluso para máquinas que aprovechan la física cuántica. Las matemáticas evolucionan, pero el principio perdura.
Toda comunicación privada en línea, desde sesiones TLS hasta mensajería cifrada de extremo a extremo, está protegida por una pila de primitivas matemáticas en capas. Las matemáticas del cifrado en línea que subyacen a estos sistemas se basan en suposiciones de dificultad computacional: problemas de la clase de complejidad que se cree están fuera de P (y, para esquemasMarcos mentales de representaciones comprimidas y expectativas que el cerebro utiliza para codificar, almacenar y recuperar información. Cuando recuerdas algo, tu cerebro lo reconstruye usando esquemas más cualquier indicio contextual presente. poscuánticos, fuera de BQP). Entender esta pila requiere examinar las funciones de trampilla específicas, sus parámetros de seguridad y cómo se componen en protocolos reales.
Matemáticas del cifrado en línea: primitivas asimétricas y sus suposiciones de dificultad
RSA: factorización de enteros
RSA, descrito por Rivest, Shamir y Adleman en 1977 (e independientemente por Clifford Cocks en el GCHQ en 1973), deriva su seguridad del problema de la factorización de enteros. La generación de claves selecciona dos primos grandes p y q, calcula n = pq y encuentra exponentes e y d tales que ed ≡ 1 (mod λ(n)), donde λ es la función totiente de Carmichael. La clave pública es (n, e); la clave privada es d. El cifrado calcula c ≡ me (mod n); el descifrado calcula m ≡ cd (mod n).
El mejor ataque clásico conocido es la Criba General del Cuerpo de Números (GNFS), que se ejecuta en tiempo subexponencial: Ln[1/3, (64/9)1/3]. Para un módulo de 2.048 bits, el GNFS es computacionalmente inviable con el hardware actual. La clave RSA más grande rota públicamente tiene 829 bits. Las directrices actuales del NIST recomiendan claves de mínimo 2.048 bits, con 3.072 bits para protección más allá de 2030.
El rendimiento de RSA es demasiado bajo para el cifrado masivo. En la práctica, RSA se usa para transmitir claves compartidas para la criptografía de clave simétrica, que maneja el cifrado real de datos.
Diffie-Hellman: el problema del logaritmo discreto
El intercambio de claves Diffie-Hellman (DH), publicado en 1976, fue el primer protocolo práctico de clave pública. Opera en el grupo multiplicativo de enteros módulo un primo p con generador g. Alice calcula A = ga mod p (secreto a); Bob calcula B = gb mod p (secreto b). Ambos derivan el secreto compartido s = gab mod p. La seguridad descansa en la suposición Diffie-Hellman Computacional (CDH): dados g, p, ga mod p y gb mod p, calcular gab mod p es difícil.
El problema CDH no es más difícil que el Problema del Logaritmo Discreto (DLP): si puedes calcular logaritmos discretos, puedes resolver CDH recuperando a desde ga. La familia de algoritmos de cálculo de índices (incluyendo variantes de la Criba del Cuerpo de Números) proporciona ataques subexponenciales sobre DLP en cuerpos finitos, requiriendo tamaños de grupo de al menos 2.048 bits para márgenes de seguridad adecuados.
Criptografía de curva elíptica: ECDLP
La criptografía de curva elíptica (ECC), propuesta en 1985, opera sobre el grupo de puntos de una curva elíptica E: y2 = x3 + ax + b sobre un cuerpo finito Fp. La operación de grupo es la adición de puntos, definida geométricamente por la regla de la cuerda y la tangente. La multiplicación escalar (calcular nP = P + P + … + P, n veces) es eficiente mediante doblado-y-suma. El problema inverso, el Problema del Logaritmo Discreto de Curva Elíptica (ECDLP), encontrar n dado P y nP, no tiene ningún algoritmo clásico subexponencial conocido.
El mejor ataque general sobre ECDLP es el rho de Pollard, con tiempo de ejecución O(√n), que es completamente exponencial en el tamaño de la clave. Esto significa que una clave ECC de 256 bits proporciona seguridad equivalente a una clave RSA de 3.072 bits: una reducción de 12x en el tamaño de clave para el mismo nivel de seguridad de 128 bits. Las curvas estándar incluyen NIST P-256, Curve25519 (X25519 para intercambio de claves, Ed25519 para firmas) y las curvas Brainpool.
La ventaja asintótica de ECC sobre RSA crece con el nivel de seguridad. Con seguridad de 256 bits, ECC requiere claves de 512 bits mientras que RSA requeriría claves de 15.360 bits. Esto hace que ECC sea la opción dominante para TLS, SSH y aplicaciones móviles.
Cifrado simétrico: AES y la red de sustitución-permutación
AES (Rijndael), estandarizado por el NIST en 2001 como FIPS 197, es una red de sustitución-permutación que opera sobre una matriz de estado de 4×4 bytes (bloques de 128 bits). Soporta claves de 128, 192 y 256 bits con 10, 12 y 14 rondas respectivamente. Cada ronda aplica cuatro transformaciones:
- SubBytes: sustitución no lineal de bytes mediante una S-caja derivada del inverso multiplicativo en GF(28) compuesto con una transformación afín. Este es el único componente no lineal del cifrado y su principal fuente de confusión.
- ShiftRows: desplazamiento cíclico a la izquierda de las filas en 0, 1, 2 y 3 posiciones, proporcionando difusión entre columnas.
- MixColumns: multiplicación de cada columna por un polinomio fijo en GF(28)[x]/(x4 + 1), proporcionando difusión dentro de las columnas. Omitida en la ronda final.
- AddRoundKey: XOR con una clave de ronda derivada del calendario de claves mediante la expansión de clave Rijndael.
El mejor ataque conocido sobre AES-128 completo es el ataque biclique con complejidad 2126,1, una mejora marginal sobre la fuerza bruta (2128). AES sigue siendo el único cifrado de acceso público aprobado por la NSA para clasificación de alto secreto. Su margen de seguridad se considera cómodo para el futuro previsible contra adversarios clásicos. Contra adversarios cuánticos, el algoritmo de Grover reduce la seguridad efectiva de AES-128 a 64 bits, razón por la que se recomienda AES-256 para resiliencia poscuántica.
Composición de protocolos: TLS 1.3
El protocolo de enlace TLS 1.3 (RFC 8446) compone las primitivas anteriores en un protocolo práctico de cifrado de canal. El protocolo de enlace se completa en un único viaje de ida y vuelta:
- ClientHello: el cliente envía las suites de cifrado admitidas, un nonce aleatorio y, crucialmente, un fragmento de clave para su grupo de intercambio de claves preferido (típicamente X25519 o P-256 ECDHE). Al incluir el fragmento de clave de forma optimista, TLS 1.3 elimina un viaje de ida y vuelta en comparación con TLS 1.2.
- ServerHello + EncryptedExtensions: el servidor selecciona una suite de cifrado, responde con su propio fragmento de clave y comienza a cifrar inmediatamente. El servidor también envía su certificado y una firma CertificateVerify.
- Derivación de clave: ambos lados usan el secreto compartido ECDHE como entrada para HKDF (Función de Derivación de Clave Basada en HMAC) para derivar claves de enlace, luego claves de sesión para datos de aplicación.
TLS 1.3 exige secreto de reenvío al requerir intercambio de claves efímero (sin transporte de clave RSA estática). Cada sesión genera claves ECDHE nuevas, de modo que comprometer la clave privada a largo plazo de un servidor no expone retroactivamente las sesiones pasadas. Los únicos cifrados AEAD permitidos son AES-128-GCM, AES-256-GCM y ChaCha20-Poly1305.
Cifrado de extremo a extremo: el Double Ratchet
El Double Ratchet del protocolo Signal extiende el secreto de reenvío al nivel de mensaje individual. Combina dos mecanismos de trinquete:
- Trinquete de clave simétrica: una cadena KDF donde cada clave de mensaje se deriva de la clave de cadena anterior. Una vez que se usa una clave de mensaje, la clave de cadena avanza y la clave antigua se elimina. Esto proporciona secreto de reenvío dentro de una única cadena de envío.
- Trinquete Diffie-Hellman: con cada intercambio de mensajes, las partes rotan sus pares de claves DH efímeras. La salida DH se alimenta a una cadena KDF raíz que deriva nuevas claves de cadena de envío y recepción. Esto proporciona recuperación tras compromiso: incluso si un atacante aprende las claves de cadena actuales, los nuevos pasos del trinquete DH introducen entropía que el atacante no posee.
El efecto combinado: cada mensaje usa una clave única. El compromiso de cualquier clave individual revela solo ese mensaje. El protocolo rastrea números de mensaje y longitudes de cadena anteriores para manejar la entrega fuera de orden, almacenando claves de mensajes omitidos (limitadas por MAX_SKIP) para descifrado posterior.
Las propiedades de seguridad del Double Ratchet, secreto de reenvío y seguridad post-compromiso, surgen de la composición de la unidireccionalidad de la cadena KDF con la suposición CDH sobre los grupos DH del trinquete. La especificación de Signal también incluye un Sparse Post-Quantum Ratchet (SPQR) para seguridad híbrida clásica/poscuántica.
La amenaza cuántica y la criptografía poscuántica
El algoritmo de Shor (1994) factoriza enteros y calcula logaritmos discretos en tiempo polinómico en una computadora cuántica: O((log N)2(log log N)(log log log N)) compuertas para factorizar N. Esto rompe RSA, DH de campo finito y ECDH. El algoritmo de Grover proporciona una aceleración cuadrática para la búsqueda, reduciendo a la mitad la seguridad efectiva de los cifrados simétricos (AES-256 baja a 128 bits de seguridad, todavía adecuado).
Los procesadores cuánticos actuales (del orden de 1.000 qubits físicos) están muy lejos de los millones de qubits con corrección de errores necesarios para la factorización criptográficamente relevante. Pero el modelo de amenaza de «cosechar ahora, descifrar después», donde los adversarios registran texto cifrado hoy para su descifrado cuántico futuro, motiva una migración inmediata.
En agosto de 2024, el NIST finalizó tres estándares poscuánticos:
- FIPS 203 (ML-KEM): mecanismo de encapsulación de claves basado en retículos modulares (derivado de CRYSTALS-Kyber). Estándar principal para encapsulación de claves de propósito general. La seguridad depende de la dificultad del problema Module Learning With Errors (MLWE).
- FIPS 204 (ML-DSA): algoritmo de firma digital basado en retículos modulares (derivado de CRYSTALS-Dilithium). Estándar principal de firma digital.
- FIPS 205 (SLH-DSA): algoritmo de firma digital sin estado basado en funciones hash (derivado de SPHINCS+). Estándar de firma de respaldo basado puramente en la seguridad de la función hash.
La hoja de ruta de transición del NIST (NIST IR 8547) prevé la obsolescencia de RSA, DH de campo finito y ECDH para el establecimiento de claves antes de 2035. HQC (Hamming Quasi-Cyclic) fue seleccionado como candidato KEM adicional en marzo de 2025, proporcionando diversidad algorítmica más allá de los esquemas basados en retículos.
Los problemas de retículos que sustentan ML-KEM y ML-DSA pertenecen a una familia de problemas (LWE, MLWE, NTRU) que han resistido ataques clásicos y cuánticos durante décadas. A diferencia de la factorización y el DLP, ningún algoritmo cuántico proporciona aceleración exponencial contra estos problemas. La dificultad matemática se desplaza de la teoría de números a la geometría de retículos de alta dimensión, pero el principio arquitectónico permanece: funciones de sentido único lo suficientemente difíciles como para apostar los secretos de la civilización.



