Recapitulemos de manera muy llana; la base de la criptografía consiste en cifrar o descifrar mensajes por medio de una llave secreta. Los criptosistemas en general, desarrollan su «fuerza» alrededor de esta llave y normalmente, para tratar de descubrirla, deberemos factorizar dos números primos enormes, o también pudiera ser resolviendo el problema del logaritmo discreto, como es el caso del esquema ElGamal. Los números se eligen para ser tan grandes que ni siquiera con la potencia de procesamiento de una supercomputadora, se pueda descubrir la llave teniendo en cuenta un tiempo t intratable pensando en realizar cualquier ataque sobre dicha llave.
Sin embargo, toda la resistencia de estos sistemas radica primordialmente en sus «matemáticas». Para la cuestión de la factorización de primos, si algún día los matemáticos lograran un algoritmo ultraeficiente de ejecución, se pondría en riesgo cualquier criptosistema dependiente de este mecanismo.
La Criptografía Cuántica es un paradigma que trata de abordar esta «vulnerabilidad» aprovechando entre otras cuestiones, el principio de incertidumbre de Heisenberg.
Definiendo: la Criptografía Cuántica es aquella rama de la Criptología que utiliza la física para desarrollar un criptosistema ‘completamente’ seguro manteniendo la secrecía entre distintas entidades independientes. Una de las acepciones de la palabra qubit hace referencia al comportamiento esencial de las partículas más pequeñas de la materia y la energía. Esto se traduce principalmente a que la seguridad de un sistema criptográfico cuántico, depende en mayor medida de sus propiedades físicas que de cualquier aspecto matemático.
Entonces la Criptografía Cuántica usa fotones para transmitir una clave, la cual puede utilizarse por supuesto para cifrar o descifrar información; sin embargo, es natural preguntarse cómo es que un fotón puede convertirse justamente en una clave y de qué manera le adjuntamos información. Es justo en este momento donde el espín del fotón y su relación con el 1 y el 0 binarios, vienen a colación. Por ejemplo, del string 1010101011 podríamos decir que a X fotón con el espín vertical se le asigne un 0. Sin embargo, aún tenemos (o al menos eso parece) el siguiente problema; si el núcleo de nuestro criptosistema radica en la clave, ¿cuál sería la manera más segura para intercambiarla con nuestros destinatarios, sin que ésta se vea comprometida?
Justamente la aportación cuántica a la seguridad del proceso de distribución de claves consiste esencialmente en que un espía no puede extraer información, sin revelar su presencia a los participantes, ya que por las leyes de la mecánica cuántica, no es posible copiar estados.
Existen diversos protocolos para la distribución cuántica de claves privadas. El más 'sencillo' fue propuesto en 1984 por C.H. Bennett y G. Brassard y se conoce como BB84. Después se propusieron diversas modificaciones, que dan lugar a otros protocolos sustancialmente equivalentes.
No obstante, como apunte para el lector, para estudiar a detalle los aspectos más sutiles de la Criptografía Cuántica se deben consultar diversas fuentes muy especializadas. Este artículo únicamente pretende subrayar de manera muy trivial las nociones más básicas.
Como lo apuntábamos, la unidad básica de nuestro sistema cuántico es el qubit denotado físicamente por el espín, |0> y |1>. Sin embargo, dadas las características del modelo, el estado cuántico puede ser una superposición de los dos estados elementales, lo cual es crucial para él.
La evolución de un estado cuántico se describe mediante transformaciones cuánticas, que son operadores lineales unitarios definidos en un espacio de Hilbert (sugiero revisar a detalle lo anterior consultando otras fuentes no precisadas en este artículo). La potencia de la computación cuántica se basa en el paralelismo cuántico, derivado del hecho de que aplicar una transformación a un estado cuántico, superposición de todos los estados de la base, es como operar simultáneamente con todas las cadenas de n bits. Esto a su vez, permite un incremento exponencial de la velocidad de cálculo.
Pero como el título lo denota, uno de los problemas de mayor dificultad a la hora de llevar a cabo comunicaciones seguras mediante un sistema de clave privada, es la distribución segura de las claves.
Precisamente una de las razones del éxito obtenido por los criptosistemas comunes de factorización de primos, que describíamos brevemente, es que permiten prescindir de acordar y distribuir la clave secreta. Aunque, a pesar de la funcionalidad, la seguridad de este sistema nunca ha sido probada matemáticamente, pues recalcando nuestras aseveraciones anteriores, no se sabe si factorizar un número primo, algún día, puede lograr hacerse en tiempo 'polinomial'. Adicionalmente, la construcción hipotética (que ya es mucho más real que hipotética) de una computadora cuántica, en la que se implemente el algoritmo de Shor permitiendo factorizar en tiempo polinomial, supondría claramente la fractura irremediable de estos criptosistemas.
Continuando, las propias leyes de la mecánica cuántica permiten tratar el problema de la distribución segura de claves privadas. Los participantes pueden transmitir la clave privada a través de un canal cuántico como un cable de fibra óptica. En este caso, los estados de polarización de un fotón se pueden usar para diseñar un protocolo criptográfico cuántico, para la distribución de una clave aleatoria de un solo uso, en principio como lo haríamos con el cifrado Vernam. Existen diferentes protocolos cuánticos de distribución de claves denominados QKD (Quantum Key Distribution), ideados con el fin de intercambiar claves privadas de un solo uso, que incluso se pueden usar en sistemas simétricos de seguridad. Estos protocolos, se pueden llevar a cabo con tecnología actual. De hecho, la Criptografía Cuántica es la primera aplicación comercial de la Mecánica Cuántica.
Fases de un protocolo de generación de claves
A grandes rasgos, las fases de un protocolo de generación de claves son: generación y distribución de la clave, análisis y corrección de errores y ampliación de la privacidad. A continuación, se describe cada una de ellas para el BB84:
Paso 1: Alicia genera una cadena aleatoria de ceros y unos (por ejemplo lanzando una moneda al aire).
Paso 2: Para cada bit de la cadena, Alicia elige aleatoriamente una de las dos bases B1 o BX y envía a Bob, por un canal cuántico, el qubit correspondiente, mediante un fotón polarizado, de acuerdo con el siguiente alfabeto:
Si ha elegido B1: el 0 lo codifica como |0> (polarización horizontal) y el 1 como |1> (polarización vertical).
Si ha elegido BX: el 0 lo codifica como |+> (polarización 45º) y el 1 como |-> (polarización-45º).
Cuando Bob recibe cada fotón, no tiene modo de saber con qué alfabeto ha sido codificado, así que él lo mide eligiendo, también aleatoriamente, para cada uno de ellos la base B1 o BX. Aproximadamente la mitad de las veces Bob elegirá la misma base que Alicia y la otra mitad elegirá la base contraria a la utilizada por ella.
Paso 3: Para localizar y eliminar los bits en que las mediciones se han realizado con distintas bases, se realiza el proceso de contraste de información, denominado shiftting o reconciliación de bases.
Bob comunica a Alicia, por el canal clásico, qué base ha usado en cada medición. Como respuesta, Alicia le comunica las posiciones en las que ella ha usado la misma base. En estas posiciones, Alicia y Bob deben tener bits coincidentes.
Paso 4: Alicia y Bob borran de sus cadenas los bits en los que se han usado bases diferentes y se quedan con el resto. De este modo, si no ha habido ruidos ni interferencia de espías, tienen una clave común, llamada clave bruta, cuya longitud será aproximadamente la mitad de la de la cadena inicial.
Si ha habido espías, cualquier estrategia de espionaje va a introducir discrepancias en la clave de Bob. Por ello, para detectar la presencia de espías, Alicia y Bob pueden comparar sobre el canal público determinadas posiciones, aleatoriamente elegidas de sus claves brutas. Si las discrepancias superan una tasa prefijada, abortan el protocolo y empiezan de nuevo.
Pero, en un sistema práctico de distribución cuántica de claves, pueden aparecer errores, debidos a imperfecciones técnicas del emisor o del receptor, o simplemente a cambios de temperatura, y no a la presencia de un espía. Por ello es importante determinar una tasa de errores admisibles por encima de la cual se debe abortar el proceso y para ello, es necesario analizar los efectos de las posibles estrategias de espionaje sobre el protocolo a utilizar.
Cuando la tasa de error está por debajo de un treshold especifico, se admitirá la clave generada y se llevará a cabo un proceso de depuración, en el que los errores se pueden detectar y corregir con códigos clásicos utilizando el canal clásico de comunicación.
Estrategias de ataque individual al protocolo BB84
En un modelo ideal, la fuente emite fotones individuales y Eva ataca de modo independiente cada qubit. Como primera opción, vamos a suponer que Eva ha espiado la comunicación y que actúa del siguiente modo:
Intercepta el fotón enviado por Alicia, elige aleatoriamente una de las dos bases B1 o BX, mide el qubit recibido, guarda el resultado de la medición y envía a Bob el qubit resultante. Tras la fase de reconciliación de bases, Eva se queda solo con los bits correspondientes a las posiciones en las que Alicia y Bob han usado la misma base.
Esta estrategia de ataque individual se denomina Interceptar-Reenviar y es una especie de man in the middle para el modelo.
Uno supondría que nos encontramos ante otro sistema que es altamente probable de ser atacado, al igual que un criptosistema clásico, por lo cual es natural considerar si en realidad la Criptografía Cuántica es más efectiva que la Criptografía Clásica a la hora de establecer comunicaciones seguras, y si vale la pena su desarrollo.
Considero que nos encontramos ante otro claro problema de implementación de base.
La teoría de la Criptografía Cuántica, mientras no cambien las leyes que rigen la mecánica cuántica, es completamente segura, a priori. Lo que está fallando son las implementaciones que se hacen, ya sea por las claras dificultades que tenemos para crear dispositivos cuánticos 'puros' en nuestro 'mundo clásico', o por fallas en el diseño de sus protocolos y algoritmos, así como en el intento de ataque descrito arriba, que no se pueda medir la relación señal/ruido por la razón que sea, y con ello, el sistema no detecte la perturbación.
Dicho lo anterior, es evidente que se pueden mejorar los sistemas cuánticos para que tengan en cuenta estas vulnerabilidades y disminuyan los ataques a los mismos. Por lo tanto, pienso que los sistemas cuánticos, al menos, desde el punto de vista teórico, no están en peligro de ser rotos en absoluto, a diferencia de los cifrados basados en algoritmos matemáticos, y pueden considerarse perfectamente seguros por el momento.
Y justo este es uno de los motivos, de vital importancia, para que los sistemas criptográficos sean abiertos, se sometan al escrutinio del mayor número de expertos posibles, y se publiquen sin restricciones los resultados de dichas investigaciones.
Debemos convencernos de que la seguridad por oscuridad no es viable, y es inadmisible que se tenga en cuenta para el desarrollo de cualquier modelo criptográfico.