Este post es una traducción y adaptación de su versión original en We Live Security
Rob Slade se describe modestamente como un “investigador de malware, autor y ampuloso”. Entre sus libros se incluyen “Guide to Computer Viruses” y “Viruses Revealed”, este último escrito junto con David Harley, miembro del equipo de ESET.
Lo primero que debes saber acerca de la criptografía cuántica es que no es criptografía. Al menos, no por la parte de “cuántica”.
(Lo segundo que debes saber acerca de la criptografía cuántica es que no tiene absolutamente NADA que ver con utilizar computadoras cuánticas para romper sistemas criptográficos. Esta aclaración es muy importante, aunque explicarla probablemente necesite otro post.)
Respecto al revuelo acerca de la NSA siendo capaz de leer los mails de todos, si utilizas correctamente la criptografía, es muy segura. Por supuesto, debes utilizar claves largas para que sea segura pero, si quieres que lo sea aún más, generalmente con utilizar claves más largas alcanzará.
Ahí mismo es donde surge el problema. La mayoría del encriptado que la gente utiliza actualmente es el llamado encriptado simétrico. Con “simétrico” entendemos que ambas partes de la conversación deben utilizar la misma clave. Así que es necesario idear cómo comunicar la clave que quieres utilizar. Podría ser que se envíe previamente, pero eso sólo funcionará si a) conocías a la persona con la que querías comunicarte, y b) no te diste cuenta de repente que la NSA está leyendo tu correo, y por eso quieres utilizar una clave más robusta. (Después de todo, si tuvieras una forma segura de intercambiar claves con alguien, no necesitarías encriptado, ¿no es así?)
(Hay otro tipo de criptografía, conocida como asimétrica. Utiliza una mezcla de claves: algunas públicas, otras privadas. Cuando le envías a alguien un mensaje, se podría utilizar una mezcla de tus claves, las suyas, y las públicas o privadas. Es complicada, necesita tener quorum en su utilización, y se encuentra ligada intrínsecamente con las matemáticas, así que utilizarla hace que la comunicación se haga más lenta. Entonces, la mayoría de la gente la utiliza sólo para transmisiones de información pequeñas, como por ejemplo las claves que se usarán para encriptado simétrico. De vuelta, explicar esto probablemente necesite otro artículo. O varios.)
Veamos, comencé afirmando que la criptografía cuántica no es en realidad criptografía. Entonces, ¿por qué la llaman criptografía cuántica? Bueno, así se llama a las formas de utilización de física cuántica para intercambiar claves con alguien; claves que podrías utilizar luego para encriptado simétrico ordinario.
Los objetos cuánticos, como por ejemplo fotones, pueden transmitir información. En realidad, resulta que pueden transmitir mucha información si los analizas de la forma correcta, pero para propósitos de criptografía cuántica solamente necesitamos dos formas posibles de enviar un bit por cada objeto. Llamemos a estas formas de enviar esa información rara y extraña(considerando que todo en la física cuántica es bastante “singular”), y recordemos que los bits de información pueden ser solamente uno o cero.
La persona que inicia la conversación (llamémosla Alice) aleatoriamente (quizás lanzando una moneda) elige enviarle a la otra persona (que casualmente se llamará Bob) un fotón que contiene un cero raro. Luego le envía otro fotón, quizás con un extraño uno. Luego le envía un uno raro. Así continúa enviándole fotones. Dependiendo de cuán larga y robusta quiere ella que sea la clave, podría enviarle centenas o incluso miles de fotones.
Del otro lado, Bob no sabe qué tipo de formas para la información eligió Alice para cada fotón, así que deberá elegir al azar si cada uno de ellos será leído de forma rara o extraña. (Tienes solamente una oportunidad para leer un fotón.) Luego escribe los unos o ceros que lee de cada fotón, y le envía un mensaje a Alice diciéndole no los unos y ceros, sino con qué forma eligió leer cada fotón. Alice le responde diciéndole cuáles acertó. Los unos y ceros leídos de forma incorrecta son desechados por los dos.
Ahora ambos tienen una sucesión de ceros y unos que ambos pueden utilizar como clave en encriptado simétrico. (Generalmente, Bob elegirá correctamente la mitad de las veces, así que Alice sabe que debe enviarle una cantidad de fotones un poco más grande que el doble de longitud de clave que ella desee. Solo un poco más grande, para tener margen de error.)
El tema es que cualquiera puede verlos llevar a cabo su conversación. Entonces, una intermediaria también podría leer los fotones. Sin embargo, la intermediaria (llamémosla Eve)también debe elegir una forma de leer cada uno de los fotones. En última instancia, Eve obtendrá solamente la mitad de la clave que necesita para espiar la verdadera comunicación entre Alice y Bob una vez que estos decidan la clave a utilizar.
Aquí hay otro beneficio. ¿Recuerdas que dije que sólo se podía leer una vez un fotón? Si lees el fotón de la forma incorrecta, debido a factores físicos de él, la mitad de las veces alterarás su contenido. Además, cuando Alice y Bob comiencen su comunicación, se darán cuenta de que hay errores que no esperaban. Los intermediarios usualmente son transparentes, por lo que no percibes lo que están haciendo. Con la criptografía cuántica, ¡te das cuenta desde el principio!
Eso en lo que respecta a la teoría. ¿Y en la práctica?
Desafortunadamente, todo esto es altamente costoso. Para enviar fotones de a uno en una distancia no muy corta, necesitas fibra óptica monomodo, la más cara de todas. Y además debe ser utilizada de forma dedicada: no la puedes utilizar para otra cosa. Hay formas de enviar cantidades de fotones utilizando cables más baratos. Pero, cada vez que lo haces, Eve puede leerlos todos de distinta forma, y luego desecharlos, para que no sepas que se encuentra de intermediaria.
Además, todo lo que hacemos en el mundo cuántico tiende a tener errores. Muchos errores. Así que, si creas un dispositivo de criptografía cuántica para ser vendido comercialmente, debes asegurarte de que detectará y corregirá dichos errores. Debes hacer esto de forma tal que los usuarios que utilicen tu dispositivo no se vean afectados considerablemente por los errores. Desafortunadamente, cuando haces eso introduces un gran margen de error que el usuario desconoce. Resulta que esto le da a Eve muchas oportunidades de intentar comprometer al sistema: las suficientes como para que pueda descubrir casi todas las claves que son elegidas, o incluso forzar a los usuarios a utilizar la clave que ella desee.
Hay formas de solucionar estos problemas. Pero se hacen complicadas rápidamente, y además también hay formas de lidiar con dichas soluciones.
Amo las ideas y los conceptos detrás de la criptografía cuántica. Sin embargo, al final es simplemente otra forma de intercambio de claves, con una cantidad de problemas a considerar. Y, esto último, es un gran problema.