Podemos clasificar la criptografía clásica en tres grandes grupos: los algoritmos hash, la criptografía de clave simétrica y la criptografía de clave pública.
Veremos a continuación, una breve explicación de las características de cada uno de ellos para entender el porqué de su debilidad frente a la computación cuántica.
Para finalizar, trataremos el concepto de Cryptographic Agility o Criptoagilidad.
Una función criptográfica hash es un algoritmo matemático que toma datos y los transforma generando una única salida, acortada y de longitud fija: “digest”. Se utiliza, principalmente, para proteger las contraseñas evitando guardarlas en texto legible e interpretable.
Una función criptográfico-hash (CHF - Cruptographic hash function) debe cumplir varias propiedades fundamentales:
Si coinciden dos digest, podemos estar seguros de que los datos son iguales que el original. Si son diferentes, podemos estar seguros de que los datos han sido manipulados o no son auténticos.
Por lo tanto, atendiendo a estas propiedades, los CHF suelen evaluarse en función de su capacidad para hacer frente a dos tipos de ataques:
Dado un hash determinado, un atacante usará entradas aleatorias hasta encontrar otro como ese hash. Si tenemos n bits en la entrada, hay 2n posibles valores. Por tanto, para tener un éxito igual o superior al 50%, debería realizar 2(n-1) intentos. En la computación clásica llevaría demasiado tiempo, pero utilizando la computación cuántica podría ser más viable, ya que la velocidad de computación mejora enormemente. Entonces, analizando todo lo anterior, estamos en condiciones de expresar la mayor amenaza de la hashing-criptografía: los ataques de fuerza bruta; de hecho, el algoritmo cuántico Grover's puede reducir la complejidad temporal hasta 2 (n/2).
La criptografía de CLAVE SIMÉTRICA (o de clave privada) (SKC-Symmetric Key Cryptography) es la forma más antigua e intuitiva de criptografía.
Se asegura la confidencialidad de la información mediente el intercambio cifrado de claves simétricas (SKE-Symmetric Key Exchange), y se utiliza una única clave secreta, tanto para cifrar como para descifrar.
La implantación de un sistema de clave simétrica debe garantizar los dos procesos siguientes:
Por tanto, un sistema de clave simétrica debe utilizar un fuerte algoritmo de encriptación que pueda hacer frente a ataques criptográficos y garantizar la confidencialidad para compartir y gestionar la clave secreta.
Para medir la dificultad de romper un cifrado se utiliza el nivel de seguridad (security level). Esto mide el número de operaciones de computación necesarias para romper un cifrado. Normalmente se expresa en bits, por lo que un cifrado ofrece una seguridad de N bit si se necesita construir 2n para romperlo. Por ejemplo, el nivel de seguridad AES-128 es 128. Utiliza una clave de 128 bits, por lo que un ordenador clásico necesitaría 2128 operaciones para tratar todas las opciones.
Para entender cómo la computación cuántica puede amenazar la criptografía simétrica, analizaremos dos tipos de ataques:
Los criptosistemas de clave simétrica son muy rápidos, pero tienen algunas carencias: siendo la clave utilizada la misma en los dos extremos de la comunicación, ¿cómo podemos compartir de forma segura esa clave? Además, a medida que aumentan los participantes, aumenta enormemente el número de claves necesarias, resultando que no hay mecanismo del todo eficiente ante las posibles amenazas.
Los criptosistemas de CLAVE ASIMÉTRICA (o de clave pública) intentan hacer frente a estos problemas; se basa es que cualquier interlocutor debe tener dos claves, una privada y otra pública y en que aunque estas claves estarán íntimamente unidas, ciertas propiedades matemáticas imposibilitan que conociendo una pueda obtenerse la otra.
La criptografía de clave asimétrica (AKC-Assymetric Key Criptography) es muy utilizada para:
Para conseguir una criptografía asimétrica segura se combinan diferentes conceptos criptográficos:
Una vez entendido a qué debe atender un criptosistema asimétrico, vamos a ver con qué peligro se puede encontrar:
La crypto-agility, o cryptographic agility, o agilidad criptográfica, o CRIPTOAGILIDAD es la capacidad de los sistemas informáticos para modificar o adaptar la tecnología criptográfica utilizada de forma eficaz y rápida para responder a nuevas amenazas o cambios tecnológicos. Esto significa que los sistemas deben poder sustituir un algoritmo criptográfico por otro sin ninguna interrupción o pérdida de seguridad. Este concepto es fundamental si se tiene en cuenta el desarrollo de ordenadores cuánticos, ya que los estándares criptográficos usados actuales pueden quedar obsoletos.
¿Por qué es tan importante hoy en día?
La importancia de la criptoagilidad se debe a varias razones, pero sobre todo hay que destacar:
Para medir la criptoagilidad se utilizan diferentes criterios y enfoques, pero aún no hay estándares universales o globales completamente establecidos. Sin embargo, el NIST (National Institute of Standards and Technology) y similares han establecido una serie de criterios y pautas, entre las que destacan:
Aunque no existen estándares globales específicos para medir la criptoagilidad, son importantes las siguientes iniciativas:
La situación de las empresas depende de la madurez del sector, del tamaño y de las estrategias de seguridad.
1. Empresas con seguridad avanzada:
Grandes empresas del sector de la tecnología y la ciberseguridad (por ejemplo, IBM, Google, Microsoft): Estas ya tienen en marcha estudios y proyectos sobre criptografía post-cuántica. Utilizan algoritmos modulares y API flexibles, garantizando la posibilidad de cambios rápidos. A modo de ejemplo, IBM ha desarrollado sistemas y planes de transición diseñados para garantizar la agilidad cripto-resistente, con especial atención a la transición cuántico-resistente.
2. Empresas en situación de alto riesgo:
Pequeñas y medianas empresas de salud, manufacturas y sectores tradicionales: La mayoría aún no cuenta con una estrategia de criptoagilidad. Los sistemas de ciberseguridad aún se basan en los algoritmos clásicos actuales, como el RSA o el ECC, y no están preparados para pasar a los algoritmos post-cuánticos. Las nuevas normativas y las necesidades de transición corren el riesgo de no cubrirse.
3. Sometidos a presión normativa:
Las empresas que están en sectores regulados (por ejemplo, bancos o entidades gubernamentales) se están preparando cada vez más para la transición post-cuántica. Deben seguir las directrices de organizaciones como el NIST y la criptoagilidad será una prioridad estratégica para ellos en los próximos años.
4. Escépticos de seguridad o rezagados:
Muchas empresas aún no han sido conscientes de los riesgos de los ordenadores cuánticos y de las nuevas amenazas. Esta es la situación más peligrosa, ya que la obsolescencia de los algoritmos clásicos les provocará graves problemas de seguridad a corto plazo.
En conclusión:
La criptoagilidad se ha convertido una necesidad vital para garantizar la seguridad digital actual y para hacer frente a futuras amenazas. Aunque las grandes empresas ya están desarrollando estrategias, hay muchos sectores que sufren un retraso que puede provocar graves debilidades de seguridad en el futuro. La criptoagilidad debe impulsarse desde un nivel global de regulación que garantice transiciones amables y eficaces.
La nueva tecnología PQC (Post-Quantum Cryptography) o criptografía post-cuántica tiene como objetivo defenderse del peligro que la capacidad de las computadoras cuánticas supondrá para la seguridad de los sistemas criptográficos actuales.
Las computadoras cuánticas, utilizando los algoritmos de Shor y Grover, serán capaces de descifrar rápidamente sistemas tradicionales como RSA y ECC; por ello, el NIST (National Institute of Standards and Technology) inició en 2016 el proceso de desarrollo de nuevos estándares seguros.
El 7 de agosto de 2024 el NIST publicó las tres primeras criptografías postcuánticas estándar oficiales, que sustituirán a RSA y ECC:
Está basado en "CRYSTALS-Kyber".
Basado en CRYSTALS-Dilithium
Module-LWE es una extensión de LWE, en este caso el error se añade en un espacio modular en lugar de a una ecuación lineal. Esto permite un mejor rendimiento de computación y un menor tamaño de las claves.
Module-SIS: con bates espacio-lineales (y no en un espacio modular).
Basado en SPHINCS + firmas digitales
En la criptografía cuántica existen numerosas líneas de investigación en marcha y la viabilidad práctica de algunos protocolos está demostrada, pero para conseguir la aplicabilidad de esta técnica habrá que superar problemas de fiabilidad en el transporte de luz a largas distancias y otros problemas ya identificados: que se trata, tan solo, de una solución parcial, necesidad de equipos especiales, altos costes de las infraestructuras, vulnerabilidad a ataques DoS, etc. Por ello, algunas agencias gubernamentales aconsejan que estas técnicas no se implanten todavía. No obstante, las aplicaciones de criptografías cuánticas están muy arraigadas en China (se han conseguido largas redes de fibra óptica e incluso vía satélite Micius) y varias empresas de todo el mundo ya han comenzado a comercializar y utilizar soluciones integradas de hardware.
En la actualidad existen dos grandes tendencias para implementar la criptografía cuántica:
En la bibliografía se citan otros protocolos que se encuentran en fase de investigación:
BB84 es el primer protocolo de tendencia Quantum key distribution (QKD) diseñado para distribuir las claves de los algoritmos simétricos de encriptación. Se publicó en 1984 y se ha demostrado que puede tener una aplicación práctica, pero sólo a pequeñas distancias, ya que al transportar la luz por cables de fibra óptica por cables se transforma su polarización. No es posible separar los errores derivados de las escuchas no autorizadas que se puedan producir en el camino, por lo que el protocolo pierde fiabilidad. Pero, al margen de los detalles técnicos, se ha demostrado su eficacia para distribuir las claves compartidas de encriptación.
Analicemos la base matemática de este protocolo:
Si a una situación inicial de "0" o "1" se le aplica dos veces la puerta Hadamard, la situación final del circuito cuántico es la misma que la inicial.
Visto en formato de circuitos cuánticos quedaría así:
Una de las propiedades cuánticas de los fotones es la polarización. Según esto, el fotón, al pasar por el dispositivo llamado PBS (Polarizing Beam Splitter), será reflejado o atravesado, pudiendo interpretarse “0” o “1”. Al ser un fotón único, cogerá una vía u otra (no es posible ambas a la vez), y la probabilidad de tomar una vía u otra viene determinada por el ángulo entre los ejes de polarización del fotón y del PBS.
Si son ortogonales (coincidentes) la probabilidad será del 100% (podemos estar seguros de que se reflejará (90º) o de que atravesará el filtro (0º), uno u otro) y, por ejemplo, si es de 45º, habrá un 50% de probabilidad para cada una de las dos vías. Por tanto, en los casos en los que el ángulo no es ortogonal, diremos que la situación está superpuesta, ya que no se sabe a ciencia cierta cuál es el camino que tomará el fotón hasta que pase por PBS. Se suele decir que el PBS colapsa el estado cuántico del fotón; porque ha convertido en un valor exacto lo que antes era una probabilidad.
Además de los dispositivos PBS, se necesitan rotadores de polarización (por ejemplo, rotadores de faraday) que provocan la rotación del ángulo de polarización del fotón. Utilizando un dispositivo de este tipo, a un fotón se le produce una rotación de 45º en su ángulo de polarización.
Por lo tanto, ahora podemos equiparar la base matemática arriba descrita con lo que acabamos de comentar sobre la transmisión del fotón:
Teniendo en cuenta todo lo anterior, el funcionamiento del protocolo BB84 para la realización de intercambios clave es el siguiente:
Alice y Bob quieren compartir una clave para la encriptación simétrica. Para ello cuentan con dos canales: uno clásico de bits, y otro de intercambio de fotones polarizados (qubits). Estos dos canales no son seguros y Eve puede leerlos sin permiso. En el canal cuántico Alice envía la información y Bob la recibe; y en el canal clásico la información se intercambia en ambas direcciones.
Para empezar, Alice crea dos series aleatorias de bits:
Bob también generará, al azar, una serie "b_Bob", que será la que siga para decidir, al recibir cada fotón, si lo lee con o sin rotación de polarización, como hizo Alice en el envío.
Bob guardará las lecturas que realice (mediante un dispositivo PBS) y las guardará en una serie de bits llamada “a_Bob".
Al finalizar la comunicación de los fotones, Bob y Alice compartirán, a través de canal clásico inseguro, las secuencias b_Alice y b_Bob. Se compararán las dos series: si Bob y Alice han aplicado la misma rotación, el valor leído por Bob debe ser igual al que envió Alice, A NO SER QUE ALGUIEN (EVE) haya leído el fotón por el camino y lo haya reenviado con un ángulo de polarización diferente. A continuación intercambiarán algunos de los valores enviados y leídos (por ejemplo los 100 primeros) y, si hay bits enviados y leídos con la misma rotación que tienen diferente valor, todo el proceso se desestima y habrá que repetir el protocolo desde el principio. Si todo ha ido bien, utilizarán como clave simétrica los bits enviados y recibidos que no han compartido para las validaciones (en este caso no utilizarían esos 100 primeros que han compartido por canal clásico).
Si Eve leyera el fotón en el camino tendría que decidir al azar si cambiar o no el ángulo de polarización antes de pasar a PBS para reenviárselo de nuevo a Bob. Como consecuencia de este reenvío, quizás en algunos casos “acierte” y los valores de b_Alice y b_Bob coincidan, pero habrá otros en los que no coincidan.
El protocolo se puede ejecutar mediante el siguiente circuito Qiskit:
Paso 1: Alice prepara dos series aleatorias:
Paso 2: Bob prepara una serie b_Bob para leer cada qubit que le ha enviado Alice con o sin rotación, realiza la medición y, a través de medios clásicos, por vía pública, Alice y Bob intercambian sus secuencias “b” para ver cada uno con qué secuencia de rotación / no-rotación ha trabajado.
Paso 3: Alice y Bob intercambian ahora una secuencia con un número determinado de bits enviados y leídos de su secuencia “a” que tengan igual rotación en la emisión y en la lectura, porque deberían coincidir al 100%, 5 por ejemplo, y comprueban que los 5 que se han leído con la misma rotación han dado el resultado correcto, determinan que la transmisión es correcta, no ha sido interceptada, y pueden utilizar el resto de qubits leídos con igual rotación como clave de encriptación (no los 5 primeros porque han sido compartidos por medios públicos).
Veamos ahora qué ocurriría si incorporamos a EVE, que está leyendo sin permiso el mensaje a mitad de camino:
Paso 1: Alice prepara dos series aleatorias:
Paso 2: Bob prepara una serie b_Bob para leer cada qubit que le ha enviado Alice con o sin rotación, realiza la medición y, a través de medios clásicos, por vía pública, Alice y Bob intercambian sus secuencias “b” para ver cada uno con qué secuencia de rotación / no-rotación ha trabajado.
Eve utilizará el dispositivo PBS para leer el valor de cada qubit. Si su selección rotación/no-rotación coincide con la de Alice, leerá los valores correctos al 100%, y si no coincide al 50%. Después de leer (y romper) cada fotón, tiene que preparar uno nuevo para enviárselo a Bob, con el “1” o “0” que ha leído y eligiendo al azar rotación/no-rotación.
Podríamos tener estas transmisiones/lecturas:
Paso 3: Alice y Bob intercambian ahora una secuencia con un número determinado de bits enviados y leídos de su secuencia “a” que tengan igual rotación en la emisión y en la lectura, porque deberían coincidir al 100%, 5 por ejemplo, y comprueban que los 5 que se han leído con la misma rotación han dado el resultado correcto, determinan que la transmisión es correcta, no ha sido interceptada, y pueden utilizar el resto de qubits leídos con igual rotación como clave de encriptación (no los 5 primeros porque han sido compartidos por medios públicos).
En este caso, Alice y Bob, al intercambiar los 5 primeros bits cuya rotación coincide en el envío y en la recepción, se darán cuenta de que hay qubits (concretamente el tercero) que se han enviado y leído con la misma rotación/no-rotación y sin embargo no coincide; así que rechazan el proceso.
Para nuestro ejemplo hemos utilizado muy pocos bits en las comprobaciones, pero hay que tener en cuenta que también hay bits que ofrecerán falsos positivos (en el ejemplo el de color azul) porque hay probabilidades en juego, y puede que Eve acierte; por lo tanto, el número de bits intercambiados deberá ser suficientemente grande para asegurarnos de que los falsos positivos no nos lleven a engaño.
El principio más importante que rige el Protocolo E91 es el entrelazamiento cuántico. Cuando dos partículas están entrelazadas, y una determinada propiedad se mide en una de ellas, se mide el estado contrario en la otra partícula asociada. Tampoco en este caso es posible prever con certeza qué situación se observará antes de realizar la medición. El resto es similar al protocolo BB84: el canal cuántico (para el envío de fotones/qubits entrelazados) y el canal clásico (bits), ambos son utilizados por los dos extremos de la comunicación para detectar si se ha producido alguna intercepción en el trayecto. Su funcionamiento, en base al envío de fotones interconectados, es el siguiente:
Para conseguir fotones entrelazados se utiliza una fuente de fotones (Entangled Photon Source, EPS) a través de un proceso especial llamado Down-Conversion Parametric Spontaneous (SPDC). En dicho proceso, un fotón de alta energía llamado fotón "bomba" o Pump Foton, interactúa con una red de cristal especial (BBO) y se separa en dos fotones de energía más baja denominados fotones "signal" e "idler". Lo podemos ver representado en el apartado "a)" del diagrama de la derecha.
La polarización de los fotones salientes del EPS puede ser vertical u horizontal (existe una probabilidad del 50% para uno u otro) pero, además, los dos fotones que "nacen" en el proceso SPDC lo hacen entrelazados con ángulos de polarización perpendiculares; por tanto, la lectura de la polarización de uno de los fotones indica también cuál será el resultado de la medición del otro: el valor contrario al obtenido en el primero, tal y momo se muestra en el apartado "b)" del diagrama.
El EPS envía uno de estos fotones a Alice y el otro a Bob, que nada más recibir el fotón, en sus dos extremos, seleccionarán un ángulo para realizar la medición en función de un valor generado aleatoriamente (1,2 ó 3). Estos tres ángulos se miden en el mismo plano (entendiendo que el fotón viaja perpendicularmente a dicho plano) y tienen una diferencia de 45º:
En los casos en los que se ha seleccionado el mismo ángulo según el valor aleatorio en ambos extremos, las dos lecturas dan el VALOR CONTRARIO (con una seguridad del 100%) porque los dos fotones están entrelazados.
Al igual que en el protocolo BB84, las series de valores aleatorios serán compartidas por el canal ordinario. Los valores de qubit leídos correspondientes a los valores que coinciden con los ángulos (b=2, b ‘=1 y b=3, b’=2) formarán la clave de encriptación (Alice y Bob los guardarán en secreto). El resto será compartido en el canal público, con lo que se calculará la correlación estadística de estos valores en ambos extremos. Si el valor de este análisis estadístico se aleja de lo esperado ( |S|=2/√2 ), se demuestra que el fotón ha sido leído en el trayecto y se ha vuelto a crear otro nuevo; en este caso ambos extremos cancelarán la comunicación y comenzarán de nuevo.
A destacar que en el protocolo E91 no se debe compartir parte de la clave por el canal ordinario para detectar si ha habido alguna lectura en el camino (como se hace en la BB84) sino que es el propio análisis estadístico el que certifica si ha habido o no una intrusión.