Las comunicaciones por Internet son por definición todas inseguras, unas más que otras pero cualquier cosa que pasa por la web pierde cualquier posibilidad de evitar que sea interceptado.
La solución para esto es la encriptación, mandamos un mensaje que no importa que cualquiera lo pueda descargar y revisar, pero lo mandamos encriptado, es decir modificado de manera tal que resulte ininteligible e imposible de descifrar por los medios prácticos conocidos.
Hasta fines de los años noventa los algoritmos de encriptación fuerte eran considerados secretos de estado y existía una carrera entre los países por desarrollar métodos más y más difíciles de romper. Los algoritmos de encriptación estaban en la misma categoría que los secretos atómicos y otros por el estilo y el que los difundiera lo secaban en la cárcel.
Entonces apareció el algoritmo de clave pública RSA y siguieron otros que usaban claves privadas largas que eran muy sencillos de implementar en computadores.
En 1991, Phil Zimmermann creó PGP (Pretty Good Privacy), un software de cifrado de uso civil basado en criptografía de clave pública, que ponía la encriptación fuerte en manos de cualquiera que tuviera un PC.
El Gobierno de los Estados Unidos lo enjuició bajo el cargo de "exportar armas", al final la justicia lo absolvió porque era ridículo encarcelar a alguien por publicar un programa que -de cualquier manera- ya lo tenía todo el mundo. Entonces se abrió todo y ya no hubo más restricciones ni secretos.
La encriptación de clave pública se basa en un problema matemático muy sencillo que nunca ha sido resuelto: tomar un número enorme que es producto de la multiplicación de dos números primos y usar uno de ellos para encriptar nuestro texto claro, usando el otro para desencriptar.
Como a partir de ese número enorme es absurdamente difícil encontrar cuales son esos dos números primos, desencriptar sin las claves era prácticamente imposible. La factorización es un problema que solo se puede hacer por tanteo, nunca se ha encontrado un algoritmo para hacerla,
Mi duda era ¿no podría usarse la IA -que está haciendo tantas maravillas en la matemática- para encontrar un algoritmo así? Se lo pregunté a Gemini y la respuesta es no, la IA no es capaz de resolver esa clase de problemas.
"En los últimos años, la IA ha demostrado un gran potencial en la búsqueda de optimizaciones y en el descubrimiento de código más eficiente (por ejemplo, sistemas capaces de encontrar mejores métodos para ordenar datos o multiplicar matrices).
Sin embargo, hay una diferencia fundamental entre optimizar un proceso existente y descubrir una verdad matemática fundamental: Si la IA encontrara un atajo universal de este tipo, estaría resolviendo de forma implícita uno de los mayores misterios de la complejidad computacional (la relación entre las clases P y NP).
Hasta ahora, los modelos de IA generan soluciones basadas en patrones de datos y lógica existente, pero no tienen la capacidad de alterar las leyes matemáticas subyacentes".
O sea, la IA puede demostrar teoremas, conjeturas y cosas por el estilo pero no puede crear un nuevo algoritmo sobre un problema matemático fundamental que no ha sido resuelto -en este caso la factorización- a veces lo que nos parece muy fácil en los humanos es imposible para las máquinas.
Humanos 1, Máquinas 0. Pero ojo, la factorización RSA y otros métodos para encriptar (como las curvas elípticas) si pueden romperse con una combinación de métodos de fuerza bruta, es decir ir probando distintas combinaciones, escogidas como un cedazo.
Por eso son métodos que -aunque no se pueden romper con los computadores clásicos que tenemos hoy- si pueden romperse cuando se lleguen a desarrollar los computadores cuánticos, que ya están bastante avanzados.
Esto porque la computación cuántica permite hacer millones de veces más cálculos en paralelo y para esos computadores ya se desarrolló el Algoritmo de Shor, que puede romper claves RSA ¿cómo funciona? Me explica Gemini:
"Utiliza superposiciones para evaluar simultáneamente una enorme cantidad de secuencias numéricas.
Aplica una herramienta matemática llamada Transformada de Fourier Cuántica para detectar el patrón periódico oculto en esas secuencias.
A partir de ese periodo, mediante un cálculo aritmético simple, se obtienen los factores primos casi de inmediato".
Cuando los computadores cuánticos ya sean estables y puedan construirse con una cantidad suficiente de qbits. los archivos encriptados con RSA, con curvas elípticas y otros algoritmos por el estilo quedarán obsoletos.
Ya existen algoritmos cuánticos para desencriptar, solo falta que los computadores cuánticos funcionen y están bastante avanzados en eso, pero también ya hay algoritmos para encriptación post cuántica, es decir que no se puedan romper con computadores cuánticos.
Ahora si, el secreto perfecto
Todos esos métodos se basan en procesos que -con una potencia de cálculo masiva- al menos en teoría podrían romperse, pero Claude Shannon, el papi de la Teoría de la Información encontró un sistema de encriptación que ningún computador podría romper, lo llamó "El secreto perfecto"
Y es ridículamente simple: se toma cualquier texto, se convierte a una secuencia de números equivalentes a cada letra, se pasan a binario y ese chorizo de unos y ceros se pasa por una Suma Exclusiva (XOR) con otro chorizo de números al azar de exactamente el mismo largo (la clave)
El resultado de esa simple operación XOR es el Secreto Perfecto,un texto imposible de descifrar con ningún computador, es una imposibilidad teóricamente demostrada a diferencia de los otros métodos que son muy difíciles éste es imposible.
Es lo que todavía usan las embajadas y los servicios de inteligencia para los secretos más delicados. Es lo que usa el llamado "Teléfono Rojo" entre Washington y Moscú para cuando se comunican o cuando se ordena activar un ataque atómico.
Perfecto como es, tiene un par de dificultades que se dice lo hacen muy poco práctico, excepto para casos muy especiales y mensajes muy cortos, así me explica Gemini;
1. La clave debe ser tan larga como el mensaje: Si el mensaje es más largo que la clave, tendrías que reutilizar partes de la clave, lo que rompe por completo la seguridad.
2. Debe ser verdaderamente aleatoria: Generada por procesos físicos impredecibles (como ruido térmico o desintegración radiactiva), no por un algoritmo matemático (pseudoaleatorio).
3. Debe usarse una sola vez (One-Time): Si usas la misma clave para cifrar dos mensajes distintos, un atacante que intercepte ambos mensajes puede aplicar XOR entre ellos y anular la clave, dejando al descubierto patrones lingüísticos que permiten descifrar ambos textos fácilmente.
Estas eran limitaciones serias hasta hace pocos años, pero creo que ahora -por lo menos las dos primeras- son fáciles de arreglar. Hoy, si tenemos un mensaje de 100 Mb no cuesta nada generar y enviar por mano (en un pendrive por ejemplo) una clave de ese tamaño.
La administración de las claves, para ir borrándolas apenas se usan, puede ser un poco más complicado, pero de ninguna manera imposible. Con un protocolo estricto de destrucción y borrado seguro, sincronizado de claves sería suficiente.
Entonces se me ocurrió diseñar un sistema de secreto perfecto con un amigo en Santiago, USA o donde sea. Esto es un experimento imaginario solamente, y lo sometí a revisión de mi amigo Gemini, el criptólogo. Sería algo más o menos así:
Yo y mi amigo tendríamos cada uno un laptop sin tarjeta de red, donde se encriptarían y desencriptarían los mensajes en modo local, desconectados de Internet o cualquier otro equipo. Todos los mensajes tendrían un largo fijo, por ejemplo de 100Mb, si son menores se rellenan con espacios.
Con una aplicación que genere números random a partir del calor de la CPU o cualquier medición física verdaderamente aleatoria, generaría unas 100 claves de 100Mb cada una y grabaría dos juegos, cada clave en una tarjeta SD. pequeña, a las claves les pondría como nombre de archivo un número del 1 al 100. Iría a Santiago y le entrego las 100 tarjetas SD, yo me quedaría con el juego de las otras 100.
Cada vez que quiera mandar un mensaje lo escribo en texto claro en mi equipo desconectado, le hago XOR con la clave y se lo mando desde un equipo conectado a Internet. Incluso le podría poner como nombre "trata de desencriptar esto maldito" por si lo intercepta un hacker.
Después de escribir mi mensaje, destruyo la clave a martillazos para que no queden huellas. mi amigo recibe el mensaje encriptado, lo copia a su equipo sin conexión y lo desencripta haciendo XOR con la clave de menos número que tenga (por ejemplo 1 para el primer mensaje). Él también debería destruir físicamente la clave después de usarla.
Le pregunté a Gemini si algo así funcionaría, la respuesta fue:
"Sí, exactamente. Si implementas eso al pie de la letra, tendrás el secreto perfecto, matemáticamente irrompible e inmune incluso a un ordenador con potencia cuántica infinita.
Has rediseñado con precisión quirúrgica el funcionamiento clásico de una libreta de un solo uso (One-Time Pad). Cumples con todas las reglas de oro de Claude Shannon:
1- Las claves son independientes y del largo necesario.
2- Se realiza una operación XOR limpia.
3- Las claves se usan una sola vez y se destruyen inmediatamente después de su uso".
¡Ya tengo el secreto perfecto! Ahora me falta tener una bomba atómica o algo lo suficientemente importante para que se justifique implementar un secreto tan perfecto. Nunca se sabe...
Y si a nadie le interesó esta entrada -es lo más probable- lo siento en el alma porque a mi me interesó mucho. Si quieren saber más sobre esto pueden ver mi antigua entrada El Secreto Perfecto o mi conversación completa con Gemini sobre esto.
En estos días Gemini se ha ido convirtiendo en el mejor profesor que he tenido nunca, le puedo preguntar de todo y me contesta sin juzgarme. Bueno con una excepción.
Se me ocurrió preguntarle esto : "de nuestros enemigos líbranos señor" ¿se sabe cómo se originó esa forma que usan los católicos para santiguarse? porque mi impresión que pedir a DIos que "nos libre de nuestros enemigos" no es muy cristiano que digamos. Al menos esa es mi impresión, estoy curioso desde cuando se empezó a usar".
Me empezó a escribir la respuesta que -efectivamente- esa fórmula parecía más cercana al Antiguo Testamento que al Nuevo, de pronto se borró todo y puso: "Normalmente puedo ayudarte con este tipo de cosas, pero parece que no tengo acceso a ese contenido. Puedes volver a intentarlo o pedirme otra cosa". ¡Se aplicó la autocensura!




