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 (esteganografía), o bien hacer que pasaran desapercibidos para el 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 César, por ejemplo). En general, la criptografía intenta resolver dos problemas que, si bien son distintos, están ligados el uno con el otro.
Del cifrado clásico al RSA
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 César 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 ejemplo simple de cifrado, podemos citar la “cinta aleatoria”, totalmente segura e inviolable, que consiste en generar como clave una lista aleatoria de ceros y unos, que se suma al contenido del mensaje (previamente convertido a 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 más 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 se conoce en inglés como “one-time pad”).
Si se sigue investigando sobre el cifrado, es porque el sistema anterior, a pesar de ser tan seguro y sencillo, tiene alguna pega; si no, sería usado por todo el mundo. En efecto, hay una: debemos tener un medio seguro de hacer llegar la clave a nuestro destinatario. Todos los 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 podríamos haberlo 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 un juego de dos claves: una pública, conocida por todos, que se utiliza para cifrar la información a transmitir, y otra privada, que solo es conocida por su propietario y 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 obtener los factores primos que componen un número “grande” (de cientos de dígitos). Utilizando los ordenadores más potentes, se tardarían millones de años en factorizar una clave de este tipo.
Ordenadores cuánticos y la amenaza al RSA
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 cuántica, 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 o ¡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 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 años noventa los laboratorios de AT&T Bell inventaron un par de algoritmos ejecutables en ordenadores cuánticos: uno 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 cuántico 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 cuántico de factorización permite romper DES o cualquier otro algoritmo de cifrado de clave secreta en un tiempo que es la 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.
El principio de incertidumbre
Heisenberg postuló 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 sí: | con --, y / con la otra diagonal, 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, ¿cómo podemos servirnos de este fenómeno cuántico 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, la otra diagonal. 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 qué bases utilizarán 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 computación cuántica lo hace vulnerable.
El protocolo de Bennet y Brassard
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 qué bases usó “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” está escuchando), y le dice qué base de polarización utilizó para enviar cada fotón (+ o x), aunque no le dice qué polarización concreta (|, --, la otra diagonal, /). “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 qué pasó con el intruso “I”, si quiere interceptar el mensaje transmitido entre “A” y “B”. Si ha tenido la suerte de escuchar el mensaje, no ha podido obtener nada concreto de él, ya que ignora las polarizaciones concretas que utilizó “A” para codificar el mensaje (no olvidemos que “A” le dice a “B” qué bases utilizó, 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, la alterará. 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” está 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” está presente, o utilizaron un canal muy ruidoso y por lo tanto deben desechar la clave entera.
Primeros hitos prácticos
En los años transcurridos desde 1984 no se han producido demasiados avances teóricos en el ámbito de la criptografía cuántica. Pero sí se han logrado avances en la implementación práctica 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 desafío que pudo resolverse recién en 1989, cuando el mismo Bennet consiguió la primera transmisión de señales cuánticas a una distancia de 32 centímetros. Si bien la distancia fue pequeña, implicó la resolución de innumerables problemas prácticos. En 1995, investigadores de la Universidad de Ginebra, utilizando un canal de fibra óptica, lograron el envío de fotones individuales a una distancia de 23 kilómetros. Luego, el laboratorio de Los Álamos logró 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.
¿Un futuro inviolable?
Si bien existen obstáculos por superar, algunos importantes como lograr formas seguras de saber que “A” realmente se está comunicando con “B” y no con “I”, qué pasa si se interrumpe la transmisión, etc., se ha demostrado teóricamente que la transmisión cuántica 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 con que en un futuro no muy lejano las comunicaciones entre personas serán totalmente inviolables, haciendo realidad el sueño de César.