Desde que los hombres comenzaron a comunicarse, experimentaron la necesidad de proteger la información confidencial del alcance de ojos y oídos indiscretos.La historia documenta diferentes métodos de protección que permiten ocultar mensajes secretos dentro de textos aparentemente banales (estenografía), o bien que pasaran desapercibidos al enemigo (tintas invisibles o micropuntos en periódicos o libros) hasta llegar a la criptografía, que permite cifrar el contenido de un mensaje haciéndolo ilegible para todos, salvo el propietario de la clave de descifrado (la cifra de Cesar, por ejemplo).En general, la criptografía intenta resolver dos problemas que si bien son distintos, están ligados el uno con el otro.
El primer objetivo que aborda la criptografía es el cifrado de los mensajes enviados para ocultar la información que se desea transmitir. Ya en la antigua roma Julio Cesar utilizaba sistemas primitivos de cifrado para evitar que sus enemigos pudiesen enterarse de sus planes si capturaban a un mensajero.
Desde tiempos primitivos se han ensayado muchos métodos y protocolos, hasta llegar a los actuales (DES, IDEA, etc.). Como un ejemplo simple de cifrado, podemos citar la “cinta aleatoria”, totalmente seguro e inviolable, que consiste en generar como clave una lista aleatoria de ceros y unos, que se suma al contenido del mensaje (previamente convertido al binario, claro). El receptor tiene en su poder una cinta idéntica, que sirve de “llave” para leer el mensaje y deducir el texto original (simplemente, restando la clave al texto recibido). A pesar de ser tan elemental, este sistema es ciento por ciento inviolable, aunque dispongamos del ordenador mas potente y de todo el tiempo del mundo, siempre y cuando la cinta con la clave se utilice una sola vez (de hecho, este sistema en ingles se conoce como “one-time pad”).
Si se sigue investigando sobre el cifrado, es por que el sistema anterior a pesar de ser tan seguro y sencillo tiene alguna pega, si no seria usado por todo el mundo. En efecto, hay una: debemos tener un medio seguro de hacer llegar la clave a nuestro destinatario. Todos medios de comunicación (correo, teléfono, etc.) pueden ser interceptados, por lo que tenemos los mismos problemas que al principio. Si dispusiésemos de un canal seguro para hacer llegar la clave, bien lo podríamos haber usado para enviar directamente el mensaje sin cifrar, y fin del problema.
En definitiva, no existe forma segura de poner en conocimiento del destinatario el valor de la cinta, es decir, de la clave. Por este motivo, se han desarrollado protocolos y algoritmos que permitan compartir secretos a través de canales públicos. Actualmente el algoritmo más usado se basa en criptografía de clave pública (el famoso RSA).
Este tipo de algoritmos basan su funcionamiento en la utilización de un juego de dos claves, una publica, conocida por todos y que se utiliza para cifrar la información a transmitir, y otra privada, que solo es conocida por su propietario, con la que se descifra el mensaje para recuperar la información secreta.
Esto es posible gracias a ciertas funciones matemáticas que tienen la particularidad de ser muy sencillas en un sentido, pero sumamente complicadas en el contrario. Podemos entenderlo mejor con un ejemplo: es muy simple elevar un número al cuadrado, por ejemplo 5. Pero resulta muy complicado extraer mentalmente la raíz cuadrada de 5. RSA basa su fortaleza en la gran dificultad que representa el obtener los factores primos que componen un número “grande” (cientos de dígitos). Utilizando los ordenadores más potentes, se tardarían millones de años en factorizar una clave de este tipo.
Así como un ordenador tradicional utiliza la presencia o ausencia de corriente eléctrica para representar dos estados (cero o uno), un ordenador cuántico se basa en las propiedades cuánticas de la materia para almacenar información sirviéndose, por ejemplo, de dos estados diferentes de un átomo o de dos polarizaciones distintas de un fotón. La gran diferencia es que, debido a principios de la física cuantica, además de los dos estados que representan un 1 y un 0, respectivamente, el átomo puede encontrarse en una superposición de ambos, esto es, se encuentra en estado 0 y 1 a la vez. De esta forma, un sistema cuántico de dos estados (llamado qubit) se encuentra en una superposición de los dos estados lógicos 0 y 1. Por lo tanto, un qubit sirve para codificar un 0, un 1 ó ¡0 y 1 al mismo tiempo! Si se dispone de varios qubits, se podrían codificar simultáneamente cantidades de información impresionantes.
Estas características, además de ofrecer grandes capacidades de almacenamiento y velocidades de proceso, permiten el abordar problemas clásicos que son irresolubles en la práctica usando métodos tradicionales de una forma totalmente nueva. De hecho, a mediados de los noventas los laboratorios de AT&T Bell invento un par de algoritmos ejecutables en ordenadores cuanticos, uno de ellos capaz de factorizar números grandes en un tiempo insignificante frente a los ordenadores clásicos, y otro que puede buscar en una lista a velocidades muy superiores a las actuales.
Estas dos soluciones vienen a ser la herramienta capaz de demoler el andamiaje sobre el que se ha montado el RSA, dado que si se lograra construir un ordenador cuantico capaz de ejecutar estos algoritmos, ya no harían falta millones de años de procesamiento para quebrar una clave, por lo que habría que buscar métodos diferentes de cifrado. Pensemos que el algoritmo cuantico de factorización permite romper DES o cualquier otro algoritmo de cifrado de clave secreta en un tiempo que es raíz cuadrada del que se tardaría con un ordenador clásico. En otras palabras, todos los secretos guardados con claves de hasta 64 bits, hoy en día consideradas invulnerables, dejarían de serlo. Por ejemplo, si para atacar el DES por fuerza bruta hay que probar 256 claves con un ordenador convencional, el algoritmo de la AT&T lo haría en solo 16 intentos. Afortunadamente, todavía no se ha construido un ordenador de este tipo, ni se espera hacerlo en las próximas dos o tres décadas.
Heisenberg postulo en el siglo pasado que es imposible conocer de manera simultánea dos variables complementarias de una partícula, como son su posición y velocidad. Dicho postulado se conoce como “Principio de Incertidumbre”. Antes de seguir, también debemos recordar que la luz (o los fotones que la componen) pueden polarizarse en una de cuatro direcciones posibles: vertical (que representaremos con “|”), horizontal (“—“), diagonal a la izquierda (“”) o diagonal a la derecha (“/”). Estas cuatro polarizaciones forman dos bases perpendiculares entre si: | y –, y / y , respectivamente.
El principio de incertidumbre de Heisenberg impide que podamos saber en cuál de las cuatro posibles polarizaciones se encuentra un fotón. Para conocerla, deberíamos utilizar un filtro, que podríamos imaginarnos como una ranura en una lámina, que tuviera la orientación de la polarización que quisiésemos comprobar, por ejemplo, vertical (|). Es evidente que los fotones con la misma polarización pasarán, mientras que los polarizados horizontalmente, y por lo tanto, perpendiculares al filtro, no pasarán. Sorprendentemente, y debido a principios físicos bien demostrados ¡la mitad de los polarizados diagonalmente pasarán y serán reorientados verticalmente! Por lo tanto, si se envía un fotón y pasa a través del filtro, no puede saberse a ciencia cierta si poseía polarización vertical o diagonal, tanto como /. Igualmente, si no pasa, no puede afirmarse que estuviera polarizado horizontal o diagonalmente. En ambos casos, un fotón con polarización diagonal podría pasar o no con igual probabilidad.
Ahora bien, ¿como podemos servirnos de este fenómeno cuantico para encriptar información confidencial? Al igual que en el caso de la “cinta aleatoria” que veíamos al principio de la nota, una de las formas de polarización de los fotones enviados representa el “0” y la otra el “1”. De esta manera, en la base rectangular, que llamaremos (+), un 1 vendría representado por una polarización |, mientras que un 0, por –; mientras que en la base diagonal (x), el 1 sería la polarización / y el 0, . En estas condiciones, para enviar un mensaje binario, el espía “A” envía fotones a “B” con la polarización adecuada, cambiando aleatoriamente de una base a otra.
Ahora supongamos que un espía “I” intercepta la comunicación entre “A” y “B”, utilizando un filtro cualquiera (por ejemplo, |) y mide su polarización. Debido al principio de incertidumbre mencionado, jamás podrá saber si los fotones del mensaje pertenecían a la base ortogonal “+” o “x”. La comunicación es segura.
Pero evidentemente, “B” debería tener la misma dificultad que “I” para poder descifrar el mensaje, dado que las leyes físicas son las mismas para ambos.
Por supuesto, se supone que “A” y “B” no han acordado de antemano que bases utilizaran para enviar cada fotón, dado que si dispusiesen de una forma segura de hacerse llegar esa información, la utilizarían para enviar el mensaje y no necesitarían de la criptografía. Tampoco pueden utilizar otro sistema de cifrado como RSA, ya que como vimos, la criptografía cuantica lo hace vulnerable.
La solución a este dilema fue propuesta en 1984 por Charles Bennet y Gilles Brassard, quienes idearon el siguiente método para hacer llegar el mensaje al destinatario sin necesidad de recurrir a otros canales de distribución. En esencia, consta de tres pasos:
Primero: “A” le manda a “B” una cadena de “0” y “1” totalmente aleatoria, utilizando una elección entre bases + y x también al azar.
Segundo: “B” mide la polarización de esos fotones mediante un filtro, utilizando también de forma totalmente al azar las bases + y x. Dado que desconoce que bases uso “A” para codificar el mensaje, en promedio 1 de cada 4 bits que recibe “B” será erróneo.
Tercero: “A” se comunica con “B”, utilizando para ello cualquier canal disponible, aunque sea completamente inseguro (y que probablemente “I” esta escuchando) y le dice que base de polarización utilizo para enviar cada fotón (+ o x) aunque no le dice que polarización concreta (|, –, , /). “B” le responde con una lista de los casos en que acertó con la polarización correcta (y por lo tanto recibió el 0 o el 1 sin error). Luego, ambos eliminan de la lista los bits que se recibieron con las bases erróneas, con lo que obtienen una secuencia aleatoria más corta que la original, pero que es la misma para ambos. Esta secuencia constituye una “cinta aleatoria” 100% segura.
Veamos ahora que paso con el intruso “I”, si quiere interceptar el mensaje transigido entre “A” y “B”. Si ha tenido la suerte de escuchar el mensaje, no ha podido obtener nada en concreto de el, ya que ignora las polarizaciones concretas que utilizo “A” para codificar el mensaje (no olvidemos que “A” le dice a “B” que bases utilizo, pero no las polarizaciones empleadas). Además, la sola presencia de “I” en la línea será detectada, dado que si mide la polarización de un fotón con el filtro adecuado, lo alterara. Si bien esta alteración impide que “A” y “B” se comuniquen, ya que este cambio puede hacer que se obtengan distintos bits a pesar de utilizar las mismas bases ortogonales.
Es decir, nos hace falta un método para detectar si “I” esta presente en la línea. Y es tan sencillo como que “B” le cuente a “A” utilizando cualquier canal cuáles son los primeros, digamos que, 50 bits de su clave aleatoria. Si coinciden con los de “A”, entonces saben que “I” no les espió ni el canal tiene ruido y utilizan con seguridad el resto de los bits generados. Si no coinciden, ya saben que “I” esta presente, o utilizaron un canal muy ruidoso y por lo tanto deben desechar la clave entera.
En los años transcurridos desde 1984 no se han producido demasiados avances teóricos en el ámbito de la criptografía cuantica. Pero si se han logrado avances en la implementación practica de un sistema que aproveche dichos postulados.
El principal obstáculo fue al principio la manipulación de fotones individuales. Cualquier fuente de luz (sol, láser, LED) emite enormes cantidades de ellos, por lo que emitir y detectar fotones individuales fue un desafió que pudo resolver recién en 1989, cuando el mismo Bennet consiguió la primer transmisión se señales cuanticas a una distancia de 32 centímetros. Si bien la distancia fue pequeña, implico la resolución de innumerables problemas prácticos.
En 1995, investigadores de la Universidad de Ginebra utilizando un canal de fibra óptica lograron el envió de fotones individuales a una distancia de 23 kilómetros. Luego, el laboratorio de Los Álamos logro superar los 50 kilómetros. Se han logrado enlaces aéreos (sin soporte físico) de hasta 1,6 kilómetros. Queda mucho camino por recorrer, pero la transmisión de claves mediante este sistema es una opción perfectamente viable.
Si bien existen obstáculos por superar, algunos importantes como lograr formas seguras de saber que “A” realmente se esta comunicando con “B” y no con “I”, que pasa si se interrumpe la transmisión, etc., se ha demostrado teóricamente que la transmisión cuantica de información es inviolable.
Como escribe Singh en su excelente libro “The Code Book”, si los ingenieros consiguen hacer funcionar la criptografía cuántica a través de largas distancias, la evolución de los algoritmos de cifrado se detendrá. La búsqueda de la privacidad habrá llegado a su fin. La tecnología garantizaría las comunicaciones seguras para gobiernos, militares, empresas y particulares. La única cuestión pendiente sería si los gobiernos nos permitirían a los ciudadanos usarla. ¿Cómo regularán los Estados la criptografía cuántica, enriqueciendo la Era de la Información, pero sin proteger al mismo tiempo las actividades criminales?
Seguramente no será mañana, pero podemos contar que en un futuro no muy lejano las comunicaciones entre personas serán totalmente inviolables, haciendo realidad el sueño de Cesar.