Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SECURE KEY AGREEMENT WITH NON-TRUSTED DEVICES
Document Type and Number:
WIPO Patent Application WO/2019/092299
Kind Code:
A1
Abstract:
Conventional methods for generating cryptographic keys in a noisy network usually assume that the devices are trusted. These methods are therefore vulnerable to numerous attacks, including covert-channel attacks. The present invention differs from previous key generation methods in that it has a mechanism that allows the secure generation of cryptographic keys with non-trusted devices in a noisy network with a prescribed access structure.

Inventors:
CURTY ALONSO MARCOS (ES)
HOI-KWONG LO (CA)
Application Number:
PCT/ES2018/070722
Publication Date:
May 16, 2019
Filing Date:
November 08, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
UNIV VIGO (ES)
International Classes:
H04L9/08
Other References:
ANONYMOUS: "Quantum key distribution - Wikipedia", 26 October 2017 (2017-10-26), XP055579835, Retrieved from the Internet [retrieved on 20190410]
"Chapter 13: Key Management Techniques ED - Menezes A J; Van Oorschot P C; Vanstone S A", 1996, XP001525013, ISBN: 978-0-8493-8523-0, Retrieved from the Internet [retrieved on 20190410]
U. MAURER ET AL: "Secret-key agreement over unauthenticated public channels-part III: privacy amplification", IEEE TRANSACTIONS ON INFORMATION THEORY, vol. 49, no. 4, 2003, USA, pages 839 - 851, XP055256222, ISSN: 0018-9448, DOI: 10.1109/TIT.2003.809559
Attorney, Agent or Firm:
CARPINTERO LÓPEZ, Mario (ES)
Download PDF:
Claims:
REIVINDICACIONES

1.- Un método para la generación de claves criptográficas seguras en presencia de unidades no confiables en un sistema criptográfico, el sistema criptográfico incluye una primera y una segunda estaciones criptográficas (A, B), y cada estación incluye n unidades de generación de claves brutas, KGUA¡, KGUB¡ con i=1 , 2, n, y donde n>1 , y, como mínimo, una unidad clásica de post-procesado de datos CLPUA, CLPUB, incluyendo el método los siguientes pasos: - Cada par de unidades de generación de claves brutas, KGUA¡ y KGUB¡, con i=1 , 2,

... , n, genera un par de secuencias de datos (clave bruta) y envía (a través de canales de comunicaciones seguros) la secuencia de datos generada por KGUA¡ a, como mínimo, una unidad clásica de post-procesado de datos de la primera estación criptográfica, y envía la secuencia de datos generada por KGUB¡ a, como mínimo, una unidad clásica de post-procesado de datos de la segunda estación criptográfica;

- Las unidades clásicas de post-procesado de datos (al menos una) de la primera y la segunda estaciones criptográficas, CLPUA, CLPUB:

- aplican un procedimiento de post-procesado de datos a cada secuencia de datos recibida y generan una clave criptográfica, KA¡, KB¡, con i=1 , 2, n, o un símbolo de error (se generará un símbolo de error si la unidad de generación de claves brutas no ha podido generar una secuencia de datos a partir de la cual pueda obtenerse una clave criptográfica) por cada unidad de generación de claves brutas, donde el procedimiento de post-procesado de datos incluye al menos una operación de reconciliación de la información entre las unidades clásicas de post-procesado de datos de ambas estaciones criptográficas a través de un canal de comunicaciones autenticado y un primer procedimiento de amplificación de privacidad para extraer una clave más corta;

- concatenan las claves criptográficas generadas para formar una primera clave criptográfica concatenada KA'=[K KA2, . . . , KAM] y una segunda clave criptográfica concatenada , KB2, . . . , KBM] donde M es el número de pares de claves criptográficas generadas en ambas estaciones criptográficas que difieren del símbolo de error;

- aplican un procedimiento adicional de amplificación de privacidad a la primera clave criptográfica concatenada y a la segunda clave criptográfica concatenada para extraer una primera y una segunda claves criptográficas seguras, respectivamente, KA y KB.

2.- Un método para la generación de claves criptográficas seguras en presencia de unidades no confiables de un sistema criptográfico, el sistema incluye una primera y una segunda estaciones criptográficas (A, B), y cada estación criptográfica incluye al menos una unidad de generación de claves brutas, KGUA, KGUB respectivamente y más de una unidad clásica de post-procesado de datos CLPUAi, CLPUBr, con l= 1 , 2, ... , s y 1 -1 , 2,....s', donde el método incluye los siguientes pasos:

- KGUA genera s secuencias de datos y cada secuencia de datos generada es enviada a una unidad diferente CLPUAi y KGUB genera s' secuencias de datos y cada secuencia de datos generada es enviada a una unidad diferente CLPUBr;

- Cada unidad clásica de post-procesado de datos de la primera y segunda estaciones criptográficas:

- aplica un procedimiento de post-procesado de datos a cada secuencia de datos recibida y genera o bien una clave criptográfica o un símbolo de error por cada secuencia de datos recibida, donde el procedimiento de postprocesado de datos incluye al menos una operación de reconciliación de la información entre las unidades clásicas de post-procesado de datos de las dos estaciones criptográficas a través de un canal de comunicaciones autenticado y un primer procedimiento de amplificación de privacidad para extraer una clave más corta;

- divide las claves criptográficas generadas en dos o más porciones y las distribuye entre el resto de las unidades clásicas de post-procesado de datos de la primera y segunda estaciones criptográficas, respectivamente; - genera una porción de una clave criptográfica segura aplicando un procedimiento de verificación de errores y una operación adicional de amplificación de privacidad a las porciones de las claves criptográficas recibidas.

3. - un método para la generación de claves criptográficas seguras en presencia de unidades no confiables de un sistema criptográfico, el sistema incluye una primera y una segunda estaciones criptográficas (A, B), y cada estación criptográfica incluye al menos una unidad de generación de claves brutas, KGUA, KGUB respectivamente, y más de una unidad clásica de post-procesado de datos CLPUA¡, CLPUB¡', con i= 1 , 2, s y i'=1 , 2,....s', donde el método incluye los siguientes pasos:

- Las unidades de generación de claves brutas (una como mínimo) de la primera y la segunda estaciones criptográficas generan una secuencia de datos, RA, RB respectivamente, y dividen las secuencias de datos generadas en dos o más porciones y las distribuyen entre las unidades clásicas de post-procesado de datos de la primera y la segunda estaciones criptográficas respectivamente, donde K'A¡j es la porción ja de RA recibida por CLPUA¡ y K'B¡j' es la porción j'a de RB recibida por CLPUB¡.;

- Cada unidad clásica de post-procesado de datos de la primera y segunda estaciones criptográficas:

- obtiene de cada porción recibida de la secuencia de datos RA, RB una porción, K'A¡j,key, K'B¡'j',key;

- aplica un procedimiento de post-procesado de datos a las porciones K'A¡j,key, K'B¡ j ,key y genera porciones de una clave criptográfica segura, donde el procedimiento de post-procesado de datos incluye al menos una operación de reconciliación de la información entre las unidades clásicas de post-procesado de datos de ambas estaciones criptográficas a través de un canal de comunicaciones autenticado y un procedimiento de amplificación de privacidad para extraer una clave más corta.

4. - Un método según la reivindicación 3: - en el que la operación de reconciliación de la información incluye un procedimiento de corrección de errores que implica:

- aplicar determinadas matrices predefinidas MEC a las porciones de datos K'A¡j,key, K'B¡'j',key para obtener las secuencias de datos

respectivamente;

- obtener en cada una de las unidades clásicas de post-procesado de datos una secuencia de datos reconstruida sA, sB definida como . . 0sAq y . . 0sBq' respectivamente, donde sAj se obtiene a partir de sA utilizando una estrategia de decisión basada en votación por mayoría y sBj' se obtiene a partir de sB¡j' utilizando una estrategia de decisión basada en votación por mayoría;

- modificar el valor de las secuencias de datos K'A¡j,key, K'B¡j ,key dependiendo de los valores obtenidos de sA y sB;

- repetir los tres pasos del procedimiento de corrección de errores hasta que la tasa de error se encuentre por debajo de un umbral predefinido;

- en el que la operación de reconciliación de la información incluye un procedimiento de verificación de errores que implica:

- que las unidades clásicas de post-procesado de datos de la primera estación criptográfica seleccionen aleatoriamente una función hash 2-universal, que denominaremos hash, y la apliquen a las porciones ΚΑ βΥ obtenidas a partir de K'A¡j,key mediante el procedimiento de corrección de errores, para obtener y cada unidad clásica de post-procesado de datos de la segunda estación criptográfica obtiene hB¡j'=hash(KB¡'j ,key) donde las porciones KB¡'j',key se obtienen a partir de mediante el procedimiento de corrección de errores y, a continuación, cada unidad clásica de post-procesado de datos envía las porciones hA¡j y hB¡j' a todas las unidades clásicas de post-procesado de datos de su propia estación criptográfica y a todas las unidades de postprocesado de datos de la otra estación criptográfica;

- obtener en cada unidad clásica de post-procesado de datos dos secuencias de datos reconstruidas hA, hB respectivamente y definidas como . . 0hAq y . . 0hBq' respectivamente, donde hAj se obtiene a partir de hA utilizando una estrategia de decisión basada en votación por mayoría y hBj' se obtiene a partir de hB¡j' utilizando una estrategia de decisión basada en votación por mayoría;

- cada una de las unidades clásicas de post-procesado de datos comprueba si hA=hB y si son iguales pasan al procedimiento de amplificación de privacidad, de lo contrario producen un símbolo de abortar;

- en el que el procedimiento de amplificación de privacidad incluye:

- que las unidades clásicas de post-procesado de datos de la primera estación criptográfica seleccionen aleatoriamente una función hash 2-universal, que denominaremos hashPA, y la apliquen a las porciones ΚΑ βΥ para obtener porciones de una clave criptográfica segura como y cada unidad clásica de post-procesado de datos de la segunda estación criptográfica obtiene porciones de una clave criptográfica segura como

5.- Un método según las reivindicaciones 3 ó 4, en el que el método incluye además:

- que cada unidad clásica de post-procesado de datos de la primera y la segunda estaciones criptográficas obtiene de cada porción recibida de las secuencias de datos una porción de la subsecuencia para la estimación de parámetros K'A ij.est, r\ i'j'.est y envía dichas porciones de subsecuencias para la estimación de parámetros al resto de unidades clásicas de post-procesado de datos de las dos estaciones criptográficas. 6.- Un método para la generación de claves criptográficas seguras en presencia de unidades no confiables en un sistema criptográfico, el sistema incluye una primera y una segunda estaciones criptográficas (A, B), y cada estación criptográfica incluye una pluralidad de unidades de generación de claves brutas, KGUA¡, KGUB¡ con i=1 , 2, n, n>1 y una pluralidad de unidades clásicas de post-procesado de datos CLPUAi, CLPUBi', 1=1 , 2, s, 1 -1 , 2,....s', donde el método incluye los siguientes pasos:

- Cada unidad de generación de claves brutas de la primera y segunda estaciones criptográficas genera secuencias de datos, RA¡, RB¡ con i= 1 , 2, ... , n, respectivamente, y divide las secuencias de datos generadas en dos o más porciones y las distribuye entre las unidades clásicas de post-procesado de datos de la primera y segunda estaciones criptográficas respectivamente;

- Cada unidad clásica de post-procesado de datos aplica un procedimiento de post- procesado de datos a cada porción de datos recibida, generando o bien porciones,

K'Ai¡j, K'Bi ¡j', de una primera clave criptográfica, o un símbolo de error por cada porción de la secuencia de datos recibida, donde el procedimiento de post-procesado de datos incluye al menos una operación de reconciliación de la información entre las unidades clásicas de post-procesado de datos de ambas estaciones criptográficas a través de un canal de comunicaciones autenticado y un primer procedimiento de amplificación de privacidad, donde K'Ai¡j es la porción ja de la clave criptográfica correspondiente a la secuencia RA¡ obtenida por la unidad CLPUAi, y Κ'¾ es la porción j'a de la clave criptográfica correspondiente a la secuencia RB¡ obtenida por la unidad CLPUBr;

- Cada unidad clásica de post-procesado de datos CLPUAi obtiene porciones de una clave criptográfica segura concatenando primero las porciones K'Ai¡j de la clave criptográfica obtenida en el paso previo, y aplicando un procedimiento adicional de amplificación de privacidad a las secuencias concatenadas obtenidas.

7.- Un método según la reivindicación 6, en el que el último paso de la reivindicación 6 incluye:

- cada CLPlA con 1=1 , ..,s obtiene secuencias de datos , 0 , K'Ai¡j,0¡+i , 0M], donde 0¡, con i=1 , ... , M , representa un vector cero, y M es el número de pares de unidades de generación de claves brutas que generan secuencias de datos que resultan en una clave y no en el símbolo de error, y cada CLPUBr, con 1 -1 , ... ,s' obtiene secuencias de bits Κ"¾=[0ι , ... , 0M , K'V.O , ... , 0M], con i=1 , ... , M ; - Las unidades CLPUAi, con 1=1 , ... , s, seleccionan aleatoriamente una función hash 2- universal, hashPA, y luego obtienen porciones de una clave criptográfica segura como hashPA(K"Aiij), y cada CLPUBr, con 1 -1 ,...,s' obtiene porciones de una clave criptográfica segura como KBnj =hashPA(K"Bj ).

8. - Un método según las reivindicaciones 1 ó 6 ó 7 en el que el par de secuencias de datos que genera cada par de unidades de generación de claves brutas, KGUA¡ y KGUB¡, i=1 , 2, n, de la primera y segunda estaciones criptográficas respectivamente, se genera utilizando un mecanismo de distribución cuántica de claves.

9. - Un método según las reivindicaciones 2 ó 3 ó 4 ó 5 en el que cada par de secuencias de datos generado por cada par de unidades de generación de claves brutas KGUA y KGUB de la primera y segunda estaciones criptográficas respectivamente, se genera utilizando un mecanismo de distribución cuántica de claves.

10. - Un sistema para la generación de claves criptográficas seguras en presencia de unidades no confiables, el sistema incluye una primera y una segunda estaciones criptográficas (A, B), donde cada estación criptográfica incluye n unidades de generación de claves brutas, KGUA¡, KGUB¡ con i=1 , 2, ... , n, donde n>1 , y al menos una unidad clásica de post-procesado de datos CLPUA, CLPUB, donde:

- Cada par de unidades de generación de claves brutas, KGUA¡ y KGUB¡, incluye medios para la generación de un par de secuencias de datos que están correlacionadas entre sí y envía la secuencia de datos generada por KGUA¡ a como mínimo una unidad clásica de post-procesado de datos de la primera estación criptográfica y envía la secuencia de datos generada por KGUB¡ a como mínimo una unidad clásica de post-procesado de datos de la segunda estación criptográfica;

- Al menos una de las unidades clásicas de post-procesado de datos de la primera y la segunda estaciones criptográficas, CLPUA, CLPUB están configuradas para:

- aplicar un procedimiento de post-procesado de datos a cada secuencia de datos recibida para generar una clave criptográfica, KA¡, KB¡ o un símbolo de error por cada unidad de generación de claves brutas, en el que el procedimiento de post-procesado de datos incluye al menos una operación de reconciliación de la información entre las unidades de post-procesado de ambas estaciones criptográficas a través de un canal de comunicaciones autenticado y un primer procedimiento de amplificación de privacidad para extraer una clave más corta;

- concatenar las claves criptográficas generadas para formar una primera clave criptográfica concatenada KA'=[K KA2, . . . , KAM] y una segunda clave criptográfica concatenada , KB2, . . . , KBM] donde M es el número de pares de claves criptográficas generadas en ambas estaciones criptográficas que difieren del símbolo de error;

- aplicar un procedimiento adicional de amplificación de privacidad a la primera clave criptográfica concatenada y a la segunda clave criptográfica concatenada para extraer una primera y una segunda claves criptográficas seguras, respectivamente, KA y KB.

1 1.- Un sistema para la generación de claves criptográficas seguras en presencia de unidades no confiables, el sistema incluye una primera y una segunda estaciones criptográficas (A, B), en el que cada estación criptográfica incluye al menos una unidad de generación de claves brutas, KGUA, KGUB respectivamente y más de una unidad de post-procesado de datos CLPUAi, CLPUBr, l= 1 , 2, s, 1 -1 , 2,....s', donde: - KGUA incluye medios para generar s secuencias de datos y enviar una secuencia de datos generada a cada CLPUAi y KGUB incluye medios para generar s' secuencias de datos que están correlacionados con las secuencias de datos generados por KGUA y enviar una secuencia de datos generada a cada CLPUBr; - Cada unidad clásica de post-procesado de datos de la primera y segunda estaciones criptográficas está configurada para:

- aplicar un procedimiento de post-procesado de datos a cada secuencia de datos recibida para generar una clave criptográfica o un símbolo de error por cada secuencia de datos recibida, donde el procedimiento de post-procesado incluye al menos una operación de reconciliación de la información entre las unidades de post-procesado de las dos estaciones criptográficas a través de un canal de comunicaciones autenticado y un primer procedimiento de amplificación de privacidad para extraer una clave más corta; - dividir las claves criptográficas generadas en dos o más porciones y distribuirlas entre el resto de las unidades clásicas de post-procesado de datos de la primera y segunda estaciones criptográficas, respectivamente;

- generar una porción de una clave criptográfica segura aplicando un procedimiento de verificación de errores y una operación adicional de amplificación de privacidad a las porciones de las claves criptográficas recibidas.

12.- Un sistema para la generación de claves criptográficas seguras en presencia de unidades no confiables, el sistema incluye una primera y una segunda estaciones criptográficas (A, B), en el que cada estación criptográfica incluye al menos una unidad de generación de claves brutas, KGUA, KGUB y más de una unidad de postprocesado de datos CLPUA¡, CLPUBr, i= 1 , 2, s, i'=1 , 2,....s', donde:

- Al menos una de las unidades de generación de claves brutas de la primera y la segunda estaciones criptográficas generan una secuencia de datos, RA, RB respectivamente que están correlacionados entre sí, e incluyen medios para dividir las secuencias de datos generadas en dos o más porciones y distribuirlas entre las unidades clásicas de post-procesado de datos de la primera y la segunda estaciones criptográficas respectivamente, donde K'A¡j es la porción ja de RA recibida por CLPUA¡ y K'B¡'j' es la porción j'a de RB recibida por CLPUB¡';

- Cada unidad clásica de post-procesado de datos de la primera y segunda estaciones criptográficas está configurada para:

- obtener de cada porción recibida de la secuencia de datos una porción de la subsecuencia de generación de claves K'A¡j,key, 'B¡j',key;

- aplicar un procedimiento de post-procesado a las porciones de las subsecuencias de generación de claves para generar porciones de claves criptográficas seguras, donde dicho procedimiento de post-procesado incluye una operación de reconciliación de la información entre las unidades de procesado de ambas estaciones criptográficas a través de un canal de comunicaciones autenticado y un procedimiento de amplificación de privacidad.

13. - Un sistema para la generación de claves criptográficas seguras en presencia de unidades no confiables, el sistema incluye una primera y una segunda estaciones criptográficas (A, B), donde cada estación criptográfica incluye una pluralidad de unidades de generación de claves brutas, KGUA¡, KGUB¡ con i=1 , 2, ... , n, n>1 , y una pluralidad de unidades de post-procesado de datos CLPUAi, CLPUBr, l= 1 , 2, s, l'=1 , 2,....s', donde:

- Cada unidad de generación de claves brutas de la primera y segunda estaciones criptográficas incluye medios para generar secuencias de datos correlacionadas, RA¡, RB¡ con i=1 , 2, ... , n, respectivamente, y dividir las secuencias de datos generadas en dos o más porciones y distribuirlas entre las unidades clásicas de post-procesado de datos de la primera y segunda estaciones criptográficas respectivamente,

- Cada unidad de post-procesado de datos está configurada para:

- aplicar un procedimiento de post-procesado de datos a cada porción de la secuencia de datos recibida, generando unas primeras porciones K'Ai¡j, K'V de una clave criptográfica o un símbolo de error por cada porción de la secuencia de datos recibida, donde el procedimiento de post-procesado de datos incluye al menos una operación de reconciliación de la información entre las unidades de procesado de ambas estaciones criptográficas a través de un canal de comunicaciones autenticado y un primer procedimiento de amplificación de privacidad, donde K'Ai¡j es la porción ja de la clave criptográfica asociada a RA¡ y obtenida por CLPUAi, y K'V es la porción j'a de la clave criptográfica asociada a RB¡ obtenida por CLPUBr;

- obtener porciones de una clave criptográfica segura concatenando las porciones de las primeras claves criptográficas obtenidas y aplicando un procedimiento adicional de amplificación de privacidad a la secuencia concatenada.

14. - Un medio de almacenamiento de datos digital no transitorio para almacenar un programa informático que incluye instrucciones, que hace que un ordenador que ejecute el programa lleve a cabo el método según cualquiera de las reivindicaciones 1-9.

Description:
ACUERDO SEGURO DE CLAVE CON DISPOSITIVOS NO CONFIABLES

D E S C R I P C I Ó N

SECTOR DE LA TÉCNICA

DESCRIPCIÓN

CAMPO DE LA INVENCIÓN

Esta invención se refiere a un método y a un sistema seguros para la generación de una clave criptográfica aleatoria en una red ruidosa.

ESTADO DE LA TÉCNICA

La criptografía es el arte de hacer códigos. En la criptografía, la seguridad de un protocolo depende a menudo del secreto de una clave criptográfica. Una clave criptográfica suele ser una secuencia aleatoria de números. Si dos partes, Alice y Bob, comparten una clave criptográfica secreta común, K, entonces pueden lograr tanto comunicaciones como autenticación de datos de manera segura (dos aplicaciones importantes de la criptografía) utilizando diversos procedimientos criptográficos conocidos. La forma de generar y distribuir una clave criptográfica secreta entre dos o más partes supone un reto importante para la criptografía: es lo que se denomina el problema de la distribución de la clave. Se han propuesto varios métodos para resolver el problema de la distribución de la clave, de los que ofrecemos aquí algunos ejemplos. El primer ejemplo es la criptografía de clave pública. En la criptografía de clave pública, el problema de la distribución de la clave se resuelve mediante suposiciones computacionales. Hay un par de claves, por ejemplo una para el cifrado y otra para el descifrado. Dada la clave de cifrado, en principio está disponible toda la información necesaria para obtener también la clave de descifrado. Sin embargo, si se asume que los ordenadores convencionales no pueden resolver de manera eficiente ciertos problemas, como por ejemplo la factorización de números enteros grandes, en la práctica a un ordenador convencional le llevaría demasiado tiempo descubrir la clave de descifrado. El segundo ejemplo de un método para la distribución de claves es la criptografía cuántica, más específicamente, la distribución cuántica de claves (QKD, del término anglosajón "Quantum Key Distribution"). Para ver un resumen de la QKD, consúltese, por ejemplo, Lo, H.-K., Curty, M. and Tamaki, K. Secure quantum key distribution. Nat. Photon. 8, 595-604 (2014). En la QKD, el problema de la distribución de la clave se resuelve utilizando el teorema de no clonación en mecánica cuántica. Por ejemplo, en el conocido protocolo estándar de QKD propuesto por Bennett-Brassard, y denominado BB84 (véase, por ejemplo, Bennett, C. H. and Brassard, G. Quantum cryptography: public key distribution and coin tossing. Proc. IEEE Int. Conf. Comp. Systems Signal Processing 175- 179 (IEEE, 1984)), una parte, digamos Alice, envía a una segunda parte, Bob, una secuencia de fotones preparados en diferentes estados de polarización, los cuales se eligen entre dos posibles bases conjugadas,

X y Z. Para cada fotón recibido, Bob selecciona aleatoriamente una de las dos bases conjugadas y realiza una medición del fotón con la base elegida. Asimismo, Bob registra el resultado de su medición y la elección de la base. A continuación, a través de un canal autenticado, Alice y Bob transmiten las bases en las que prepararon y midieron los fotones respectivamente. Descartan todos los datos asociados a eventos donde los fotones fueron enviados y medidos en bases diferentes, y utilizan los datos restantes para generar una clave que se denomina "clave filtrada" (del término anglosajón "sifted key"). Para comprobar si se ha producido algún ataque en el canal de comunicaciones Alice y Bob calculan la tasa cuántica de error de bit (QBER, del término anglosajón "quantum bit error rate") de un subconjunto de datos seleccionado aleatoriamente entre la "clave filtrada", y verifican que la QBER está por debajo de un determinado valor límite. En caso de que sea así, Alice y Bob emplean protocolos clásicos de post-procesado de datos como, por ejemplo, técnicas de corrección de errores y de amplificación de privacidad y generan una clave criptográfica segura a partir de la "clave filtrada". De esta manera, si se produce un ataque en el canal, la persona que intenta efectuarlo, digamos Eve (del término anglosajón "eavesdropper"), al no disponer de la información sobre las bases empleadas, introduciría una perturbación inevitable en las señales transmitidas, que sería detectable por los usuarios legítimos, Alice y Bob. El tercer ejemplo de un método para la distribución de claves es el protocolo de acuerdo de clave pública de

Maurer (véase Maurer U. M. Secret key agreement by public discussion from common information. IEEE Trans. on Inf. Theory 39, 733-742 (1993)). En él, por ejemplo, dos partes, Alice y Bob, podrían recibir señales de una fuente común, Charles, en una galaxia lejana. Si asumimos que el ruido que experimentan los dispositivos receptores de las dos partes es independiente del ruido sufrido por los dispositivos receptores de Eve, entonces las dos partes, Alice y Bob, pueden extraer una clave común de tal manera que ésta sea segura frente a las escuchas de Eve. En criptografía se utilizan a menudo esquemas de compartición de secretos. En un esquema de compartición de secretos, suele ser importante definir una estructura de acceso. Por ejemplo, en un esquema de compartición de secretos de tipo umbral (n, r), un distribuidor divide una secuencia de datos secreta, digamos K, en diferentes porciones que se distribuyen entre n partes de tal manera que cualquier subconjunto de r partes que colaboren juntas sea capaz de recuperar el valor de la secuencia de datos, K, pero cualquier subconjunto de menos de r partes no tendría absolutamente ninguna información sobre el valor de la secuencia de datos, K. Nótese que existen esquemas de compartición de secretos de tipo umbral (n, r), un distribuidor de compartición de secretos que no son de tipo umbral y que permiten estructuras de acceso más generales. Para afrontar la posibilidad de que el propio distribuidor sea deshonesto, y con el fin de garantizar que las porciones de datos distribuidas durante los diferentes pasos del protocolo de compartición de secretos sean consistentes, se han propuesto esquemas de compartición de secretos verificables. En cuanto a posibles aplicaciones, los esquemas de compartición de secretos se pueden utilizar por ejemplo para dividir una clave criptográfica generada en un módulo de seguridad hardware (HSM, del término anglosajón "hardware secure module"). Nótese que, en estos casos, a menudo se asume que los canales de comunicaciones no introducen ruido, pero alguna de las partes puede ser no confiable. En cambio, tanto en el modelo de QKD como en el protocolo de acuerdo de clave pública de Maurer, se asume que los canales de comunicaciones utilizados para generar una clave criptográfica pueden ser ruidosos. Por ejemplo, los sistemas de QKD a menudo utilizan como señales, pulsos de luz coherente fuertemente atenuados o pares de fotones entrelazados. Estas señales pueden enviarse a largas distancias a través de espacio libre o mediante fibras ópticas. Por ejemplo, recientemente se ha implementado un sistema de QKD sobre un canal de fibra óptica de muy bajas pérdidas de 404 km de longitud. Para ello se ha empleado un protocolo de QKD que proporciona seguridad sin necesidad de caracterizar el dispositivo de medición que mide los fotones recibidos ("measurement-device-independent quantum key distribution protocol" en la terminología anglosajona). Asimismo, se han distribuido pares de fotones entrelazados a través de 1200 km (empleando un enlace vía satélite de comunicaciones cuánticas). Nótese que en los sistemas de QKD un posible atacante, Eve, puede tratar de obtener información sobre las señales transmitidas por el canal cuántico de comunicaciones (un canal cuántico de comunicaciones es un canal de comunicaciones que puede transmitir información cuántica). Debido al ruido intrínseco introducido por los canales y a posibles ataques de Eve, un canal cuántico presenta a menudo una tasa cuántica de error de bit (QBER) del orden del 0,5% al 13%. Para poder generar una clave criptográfica secreta en esta situación, los sistemas de QKD normalmente asumen que, además de un canal cuántico de comunicaciones, entre Alice y Bob hay un canal clásico autenticado (o un canal público). Dicho canal clásico autenticado puede ser utilizado en la fase de discusión pública de los sistemas de QKD. Por ejemplo, este canal permite a Alice y Bob comparar un subconjunto de señales cuánticas para estimar la QBER en una transmisión cuántica. Si la QBER es demasiado alta, Alice y Bob pueden simplemente abortar el protocolo de QKD. En caso contrario, esto es, cuando la QBER está por debajo de un cierto valor, Alice y Bob proceden a extraer una clave criptográfica segura mediante el empleo de algún protocolo clásico de postprocesado de datos. Este protocolo clásico de post-procesado de datos puede incluir varios pasos o protocolos como, por ejemplo, la post-selección de datos, la adición de ruido, la estimación de ciertos parámetros, la reconciliación de la información (que típicamente incluye un paso de corrección de errores y un paso de verificación), y la amplificación de privacidad. Esto es así porque existen ciertos problemas que necesitan ser resueltos para poder extraer una clave criptográfica segura. El primero de estos problemas es que las "claves filtradas" que obtienen Alice y Bob, kA raw y kB raw respectivamente, pueden ser diferentes entre sí. Es por ello que es importante que Alice y Bob realicen algún procedimiento para corregir posibles discrepancias entre sus "claves filtradas"; este proceso se denomina reconciliación de la información. Una manera de realizar la reconciliación de la información es que Alice emplee algún código de corrección de errores convencional y que calcule y anuncie públicamente el síndrome de error resultante. Bob, al recibir la información sobre el síndrome de error, puede reconciliar su clave con la de Alice. Como último paso, Alice y Bob pueden realizar un proceso de verificación de errores para confirmar que las nuevas claves obtenidas, que denominaremos kA rec y kB rec respectivamente, están reconciliadas, esto es, ambas son iguales con alta probabilidad. En segundo lugar, hay que tener en cuenta que un posible atacante, Eve, podría tener información parcial sobre el contenido de la clave reconciliada. El objetivo del procedimiento de amplificación de privacidad consiste precisamente en eliminar con alta probabilidad cualquier información residual que Eve pudiese tener sobre la clave reconciliada. La amplificación de privacidad es un proceso en el que una secuencia larga de números parcialmente seguros se comprime en una secuencia más corta de números que es casi perfectamente segura frente a un adversario, Eve. La amplificación de privacidad puede lograrse aplicando una función hash 2-universal, véase por ejemplo Bennett, C. H., Brassard, G., Crepeau, C. y Maurer, U. M. Generalized privacy amplification.

IEEE Trans. on Inf. Theory 41 , 1915-1923 (1995). Un ejemplo particularmente simple de amplificación de privacidad consiste en el uso de "hashing" aleatorio. Más concretamente, dada una secuencia binaria de entrada de n bits representada por un vector columna, X, se podría generar primero una matriz, M, de m x n (donde m < n) bits aleatorios y luego calcular la secuencia binaria de salida de m bits, Y=M*X, simplemente realizando la multiplicación de las matrices M y X en álgebra de módulo 2. En el caso de los sistemas de QKD, Alice podría elegir las entradas de M y luego transmitir sus valores a Bob a través de un canal clásico autenticado. Los esquemas de compartición de secretos, los sistemas de QKD y el protocolo de acuerdo de clave pública de Maurer pueden proporcionar seguridad en el paradigma de teoría de la información (del término anglosajón "information-theoretic security"), también denominada seguridad incondicional. Se trata de seguridad basada en principios de la teoría de la información y que no depende de ninguna hipótesis sobre la capacidad computacional del posible atacante, Eve.

El hackeo cuántico de implementaciones prácticas de sistemas de QKD ha suscitado gran interés recientemente. Estos ataques suelen explotar el hecho de que los dispositivos reales de los sistemas de QKD se comportan de manera distinta a la considerada en los modelos matemáticos que se emplean normalmente para demostrar la seguridad de estos sistemas. Esto abre brechas de seguridad que podrían ser utilizadas por Eve para atacar las implementaciones de los sistemas de QKD. Por ejemplo, se ha propuesto un ataque que, mediante el empleo de una memoria, puede quebrantar la seguridad de incluso aquellos sistemas de QKD cuya seguridad teórica no requiere la caracterización de sus dispositivos (estos sistemas de QKD se denominan DI-QKD, del término anglosajón "device-independent QKD"). En este tipo concreto de ataques, Eve esconde una memoria en el sistema transmisor de, por ejemplo, Alice con el objetivo de almacenar todas las claves criptográficas generadas en cada una de las ejecuciones del sistema de QKD. A continuación, esta memoria envía la información sobre las claves criptográficas generadas al canal de comunicaciones, esto es, a Eve, escondiéndola por ejemplo en la decisión de abortar o no una sesión concreta de QKD posterior, o escondiéndola en la discusión pública de alguno de los protocolos de post-procesado de datos empleado en ejecuciones posteriores del sistema de QKD. Esto podría hacerse mediante la modificación adecuada de la "clave bruta" (esto es, de la clave a partir de la cual se obtiene la "clave filtrada") y/o la información del protocolo que se envía, en cada ejecución, a la unidad/unidades clásicas de post-procesado de datos (CLPU, del término anglosajón "classical post-processing unit") del sistema de QKD. Este tipo de ataques basado en la utilización de memorias, constituye un ejemplo de los ataques basados en "canales encubiertos" (del término anglosajón "covert channels") que, junto con los caballos de Troya, o troyanos, son conocidos por representar retos mayúsculos para la seguridad de los sistemas criptográficos convencionales. Nótese que los caballos de Troya pueden ser ocultados tanto en modificaciones hardware como en modificaciones software de los sistemas criptográficos.

RESUMEN DE LA INVENCIÓN

Se resuelven o eluden los problemas encontrados en el estado de la técnica anterior, y se obtienen normalmente ventajas técnicas, a través de las realizaciones expuestas que proporcionan un método y un sistema según el cual dos o más estaciones criptográficas generan una clave segura común (compartida) en el marco de una estructura de acceso prescrita, en presencia de un canal ruidoso en una red y posiblemente de componentes no confiables dentro de una o varias estaciones criptográficas.

Teniendo en cuenta la descomposición funcional de una estación criptográfica en unidades de generación de claves y unidades clásicas de post-procesado de datos, la presente invención proporciona seguridad en presencia tanto de unidades de generación de claves no confiables como en presencia de unidades clásicas de postprocesado de datos no confiables. En una realización, para contrarrestar a las unidades de generación de claves no confiables, las unidades clásicas de postprocesado de datos emplean técnicas de amplificación de privacidad y garantizan de este modo seguridad pese a la información obtenida por los componentes no confiables dentro de las estaciones criptográficas. Para contrarrestar a las unidades clásicas de post-procesado de datos no confiables se divide una clave criptográfica "bruta" (del término anglosajón "raw key") en varias porciones y se distribuyen éstas entre múltiples unidades clásicas de post-procesado de datos. La invención puede utilizarse para evitar ataques que exploten canales encubiertos y también para protegerse frente a la presencia de troyanos tanto en el hardware como en el software. De esta manera, se puede garantizar la seguridad de la clave criptográfica generada en el paradigma de la teoría de la información. Esto es, la seguridad de la clave generada no depende de ninguna hipótesis sobre la capacidad computacional del posible atacante. Esta clave puede emplearse posteriormente para lograr comunicaciones y autenticación de datos incondicionalmente seguras.

En un primer aspecto, la presente invención propone un método para la generación de claves criptográficas seguras en presencia de unidades no confiables en un sistema criptográfico. Este sistema criptográfico incluye una primera y una segunda estaciones criptográficas (A, B), y cada estación incluye n unidades de generación de claves brutas (del término anglosajón "key generation unit"), KGU A ¡, KGU B ¡ con i=1 , 2, n, y donde n>1 , y, como mínimo, una unidad clásica de post-procesado de datos CLPU A , CLPU B , incluyendo el método los siguientes pasos:

- Cada par de unidades de generación de claves brutas, KGU A ¡ y KGU B ¡, con i=1 , 2, ... , n, genera un par de secuencias de datos (clave bruta) y envía (a través de canales de comunicaciones seguros) la secuencia de datos generada por KGU A ¡ a, como mínimo, una unidad clásica de post-procesado de datos de la primera estación criptográfica, y envía la secuencia de datos generada por KGU B ¡ a, como mínimo, una unidad clásica de post-procesado de datos de la segunda estación criptográfica. Cada par de secuencias de datos (una generada por una unidad de generación de claves brutas KGU A ¡ de la primera estación criptográfica y otra generada por una unidad de generación de claves brutas KGU B ¡ de la segunda estación criptográfica, con ¡=1 , 2, ... , η,) normalmente presentará correlaciones en el sentido de que estas secuencias de datos se generarán utilizando un mecanismo (por ejemplo, QKD, distribución cuántica de claves) que permite que cada par de secuencias de datos de la primera y segunda estaciones criptográficas estén estadísticamente correlacionadas. Esto es, cada par de secuencias de datos no son estadísticamente independientes entre sí, sino que son estadísticamente dependientes, por lo que si se conoce el valor de una de las secuencias de datos se podría obtener información sobre el valor de la otra.

- Las unidades clásicas de post-procesado de datos (al menos una) de la primera y la segunda estaciones criptográficas, CLPU A , CLPU B :

- aplican un procedimiento de post-procesado de datos a cada secuencia de datos recibida y generan una clave criptográfica, K A ¡, K B ¡, con i=1 , 2, n, o un símbolo de error (se generará un símbolo de error si la unidad de generación de claves brutas no ha podido generar una secuencia de datos a partir de la cual pueda obtenerse una clave criptográfica) por cada unidad de generación de claves brutas, donde el procedimiento de post-procesado de datos incluye al menos una operación de reconciliación de la información entre las unidades clásicas de post-procesado de datos de ambas estaciones criptográficas a través de un canal de comunicaciones autenticado y un primer procedimiento de amplificación de privacidad para extraer una clave más corta;

- concatenan las claves criptográficas generadas para formar una primera clave criptográfica concatenada K A '=[K K A 2, . . . , K A M] y una segunda clave criptográfica concatenada , K B 2, . . . , K B M] donde M es el número de pares de claves criptográficas generadas en ambas estaciones criptográficas que difieren del símbolo de error;

- aplican un procedimiento adicional de amplificación de privacidad a la primera clave criptográfica concatenada y a la segunda clave criptográfica concatenada para extraer una primera y una segunda claves criptográficas seguras, respectivamente, K A y K B . Según otro aspecto, se propone un método para la generación de claves criptográficas seguras en presencia de unidades no confiables de un sistema criptográfico, el sistema incluye una primera y una segunda estaciones criptográficas (A, B), y cada estación criptográfica incluye al menos una unidad de generación de claves brutas, KGU A , KGU B respectivamente y más de una unidad clásica de postprocesado de datos CLPU A i, CLPU B r, con 1= 1 , 2, s y 1 -1 , 2,....s', donde el método incluye los siguientes pasos:

- KGU A genera s secuencias de datos y cada secuencia de datos generada es enviada a una unidad diferente CLPU A i, y KGU B genera s' secuencias de datos y cada secuencia de datos generada es enviada a una unidad diferente CLPU B r. Cada par de secuencias de datos (una generada por la unidad de generación de claves brutas KGU A de la primera estación criptográfica y otra generada por la unidad de generación de claves brutas KGU B de la segunda estación criptográfica) presentará correlaciones en el sentido de que estas secuencias de datos se generarán utilizando un mecanismo (por ejemplo, QKD) que permite que cada par de secuencias de datos de la primera y segunda estaciones criptográficas estén estadísticamente correlacionadas. Esto es, cada par de secuencias de datos no son estadísticamente independientes entre sí, sino que son estadísticamente dependientes, por lo que si se conoce el valor de una de las secuencias de datos se podría obtener información sobre el valor de la otra.

- Cada unidad clásica de post-procesado de datos de la primera y segunda estaciones criptográficas:

- aplica un procedimiento de post-procesado de datos a cada secuencia de datos recibida y genera o bien una clave criptográfica o un símbolo de error por cada secuencia de datos recibida, donde el procedimiento de postprocesado de datos incluye al menos una operación de reconciliación de la información entre las unidades clásicas de post-procesado de datos de las dos estaciones criptográficas a través de un canal de comunicaciones autenticado y un primer procedimiento de amplificación de privacidad para extraer una clave más corta; - divide las claves criptográficas generadas en dos o más porciones y las distribuye entre el resto de las unidades clásicas de post-procesado de datos de la primera y segunda estaciones criptográficas, respectivamente; - genera una porción de una clave criptográfica segura aplicando un procedimiento de verificación de errores y una operación adicional de amplificación de privacidad a las porciones de las claves criptográficas recibidas; Según otro aspecto, se propone un método para la generación de claves criptográficas seguras en presencia de unidades no confiables de un sistema criptográfico, el sistema incluye una primera y una segunda estaciones criptográficas (A, B), y cada estación criptográfica incluye al menos una unidad de generación de claves brutas, KGU A , KGU B respectivamente, y más de una unidad clásica de post- procesado de datos CLPU A ¡, CLPU B ¡', con i= 1 , 2, ... , s y i'=1 , 2,....s', donde el método incluye los siguientes pasos:

- Las unidades de generación de claves brutas (una como mínimo) de la primera y la segunda estaciones criptográficas generan una secuencia de datos, R A , R B respectivamente, y dividen las secuencias de datos generadas en dos o más porciones y las distribuyen entre las unidades clásicas de post-procesado de datos de la primera y la segunda estaciones criptográficas respectivamente, donde K' A ¡j es la porción j a de R A recibida por CLPU A ¡ y K' B ¡j' es la porción j' a de R B recibida por CLPU B ¡'. El par de secuencias de datos (una generada por la unidad de generación de claves brutas KGU A de la primera estación criptográfica y otra generada por la unidad de generación de claves brutas KGU B de la segunda estación criptográfica) presentará correlaciones en el sentido de que estas secuencias de datos se generarán utilizando un mecanismo (por ejemplo, QKD) que permite que las secuencias de datos de la primera y segunda estaciones criptográficas estén estadísticamente correlacionadas. Esto es, las secuencias de datos generadas no son estadísticamente independientes entre sí, sino que son estadísticamente dependientes, por lo que si se conoce el valor de una secuencia de datos se podría obtener información sobre el valor de la otra. El número de porciones j, j', en las que se dividen las secuencias de datos podría ser igual al número de unidades CLPU (de tal modo que cada CLPU reciba una porción) o inferior o superior (de tal modo que cada CLPU podría recibir más de una porción). - Cada unidad clásica de post-procesado de datos de la primera y segunda estaciones criptográficas:

- obtiene de cada porción recibida de la secuencia de datos R A , R B una porción, K' A ¡j,key, K' B ¡'j',key, de una secuencia de datos que se utilizará para generar la clave criptográfica. Las porciones obtenidas K' A ¡j,key, K' B ¡ j ,key podrían ser simplemente una parte de la porción recibida de las secuencias de datos R A , R B . Esto es, las porciones recibidas de R A , R B podrían dividirse en varias subsecuencias y una de ellas se utilizará para la generación de claves; de cada porción recibida de R A , R B también se podría obtener una porción, K' A ¡j,est, K' B ¡'j',est, de una secuencia de datos que se utilizará para la estimación de parámetros y estas porciones K' A ¡j,est, K' B ¡ j ,est, se enviarán al resto de unidades clásicas de post-procesado de datos de las dos estaciones criptográficas. - aplica un procedimiento de post-procesado de datos a las porciones K' A ¡j,ke y ,

K' B ¡' j ',key y genera porciones de una clave criptográfica segura, donde el procedimiento de post-procesado de datos incluye al menos una operación de reconciliación de la información entre las unidades clásicas de postprocesado de datos de ambas estaciones criptográficas a través de un canal de comunicaciones autenticado, y un procedimiento de amplificación de privacidad para extraer una clave más corta.

En esta última realización, la operación de reconciliación de la información podría incluir un procedimiento de corrección de errores que implique:

- aplicar determinadas matrices predefinidas MEC a las porciones de datos

K' A ¡j,key, K' B ¡'j',key para obtener las secuencias de datos

respectivamente;

- obtener en cada una de las unidades clásicas de post-procesado de datos una secuencia de datos reconstruida s A , s B definida como . . 0s A q y . . 0s B q' respectivamente, donde s A j se obtiene a partir de s A utilizando una estrategia de decisión basada en votación por mayoría y s B j' se obtiene a partir de s B ¡j' utilizando una estrategia de decisión basada en votación por mayoría;

- modificar el valor de las secuencias de datos K' A ¡j,key, K' B ¡ j ,key dependiendo de los valores obtenidos de s A y s B ;

- repetir los tres pasos del procedimiento de corrección de errores hasta que la tasa de error se encuentre por debajo de un umbral predefinido; En esta última realización, la operación de reconciliación de la información podría incluir un procedimiento de verificación de errores que implique:

- que las unidades clásicas de post-procesado de datos de la primera estación criptográfica seleccionen aleatoriamente una función hash 2-universal, que denominaremos hash, y la apliquen a las porciones Κ Α β Υ obtenidas a partir de K' A ¡j,key mediante el procedimiento de corrección de errores, para obtener y cada unidad clásica de post-procesado de datos de la segunda estación criptográfica obtiene h B ¡ j '=hash(K B ¡' j ,key) donde las porciones K B ¡'j',key se obtienen a partir de mediante el procedimiento de corrección de errores y, a continuación, cada unidad clásica de post-procesado de datos envía las porciones h A ¡j y h B ¡j' a todas las unidades clásicas de post-procesado de datos de su propia estación criptográfica y a todas las unidades clásicas de post-procesado de datos de la otra estación criptográfica;

- obtener en cada unidad clásica de post-procesado de datos dos secuencias de datos reconstruidas h A , h B respectivamente y definidas como . . 0h A q y . . 0h B q ' respectivamente, donde h A j se obtiene a partir de h A utilizando una estrategia de decisión basada en votación por mayoría y h B j' se obtiene a partir de h B ¡j' utilizando una estrategia de decisión basada en votación por mayoría.

- cada una de las unidades clásicas de post-procesado de datos comprueba si h A =h B y si son iguales pasan al procedimiento de amplificación de privacidad, de lo contrario producen un símbolo de abortar.

En esta última realización, el procedimiento de amplificación de privacidad puede incluir: - que las unidades clásicas de post-procesado de datos de la primera estación criptográfica seleccionen aleatoriamente una función hash 2-universal, que denominaremos hashPA, y la apliquen a las porciones Κ Α β Υ para obtener porciones de una clave criptográfica segura como y cada unidad clásica de post-procesado de datos de la segunda estación criptográfica obtiene porciones de una clave criptográfica segura como

Según otro aspecto, se propone un método para la generación de claves criptográficas seguras en presencia de unidades no confiables en un sistema criptográfico, el sistema incluye una primera y una segunda estaciones criptográficas (A, B), y cada estación criptográfica incluye una pluralidad de unidades de generación de claves brutas, KGU A ¡, KGU B ¡ con i=1 , 2, n, n>1 y una pluralidad de unidades clásicas de post-procesado de datos CLPU A i, CLPU B r, 1=1 , 2, s, 1 -1 , 2,....s', donde el método incluye los siguientes pasos:

- Cada unidad de generación de claves brutas de la primera y segunda estaciones criptográficas genera secuencias de datos, R A ¡, R B ¡ con i= 1 , 2, ... , n, respectivamente, y divide las secuencias de datos generadas en dos o más porciones y las distribuye entre las unidades clásicas de post-procesado de datos de la primera y segunda estaciones criptográficas respectivamente. Cada par de secuencias de datos (R A ¡, R B ¡ con i= 1 , 2, ... , n) presentará correlaciones en el sentido de que estas secuencias de datos se generarán utilizando un mecanismo (por ejemplo, QKD) que permite que R A ¡ y R B ¡ estén estadísticamente correlacionadas, con i= 1 , 2, ... , n. Esto es, cada par de secuencias de datos no son estadísticamente independientes entre sí, sino que son estadísticamente dependientes, por lo que si se conoce el valor de una de las secuencias de datos, por ejemplo R A ¡, se podría obtener información sobre el valor de la otra, R B ¡. - Cada unidad clásica de post-procesado de datos aplica un procedimiento de postprocesado de datos a cada porción de datos recibida, generando o bien porciones, K' A iij, K' B i ij', de una primera clave criptográfica, o un símbolo de error por cada porción de la secuencia de datos recibida, donde el procedimiento de post-procesado de datos incluye al menos una operación de reconciliación de la información entre las unidades clásicas de post-procesado de datos de ambas estaciones criptográficas a través de un canal de comunicaciones autenticado y un primer procedimiento de amplificación de privacidad, donde K' A i¡j es la porción j a de la clave criptográfica correspondiente a la secuencia R A ¡ obtenida por la unidad CLPU A i, y Κ'¾ es la porción j' a de la clave criptográfica correspondiente a la secuencia R B ¡ obtenida por la unidad CLPU B r;

- Cada unidad clásica de post-procesado de datos CLPU A i obtiene porciones de una clave criptográfica segura concatenando primero las porciones K' A i¡j de la clave criptográfica obtenida en el paso previo, y cada unidad clásica de post-procesado de datos CLPU B i' obtiene porciones de una clave criptográfica segura concatenando las porciones Κ'¾ de la clave criptográfica obtenida en el paso previo, y aplicando a continuación un procedimiento adicional de amplificación de privacidad a las secuencias concatenadas obtenidas. Este último paso puede incluir:

- Sub-paso de concatenación: cada CLPU A i, con 1=1 ,..,s obtiene secuencias de datos , 0¡-i , K' A j ,0¡+i , 0M], donde 0¡, con i=1 , ... , M, representa un vector cero, y M es el número de pares de unidades de generación de claves brutas (cada par se compone por una unidad de generación de clave bruta de cada estación criptográfica) que generan secuencias de datos que, tras la ejecución de los pasos previos, resultan en una clave y no en el símbolo de error, y cada CLPU B r, con 1 -1 , ..,s' obtiene secuencias de bits Κ"¾=[0ι , 0 , K'¾,0¡+I , 0 M ], con i=1 , ... , M ;

- Sub-paso de amplificación de privacidad: Las unidades CLPU A i, con 1=1 , ..,s, seleccionan aleatoriamente una función hash 2-universal, hashPA, y luego obtienen porciones de una clave criptográfica segura como hashPA(K" A i¡j), y cada CLPU B i', con 1 -1 , ..,s' obtiene porciones de una clave criptográfica segura como K¾=hashPA(K"V). El par de secuencias de datos generado por cada par de unidades de generación de claves brutas (una de la primera estación criptográfica y una de la segunda estación criptográfica respectivamente) puede generarse utilizando un mecanismo de distribución cuántica de claves. Para dividir una secuencia de datos en porciones podría emplearse un esquema de compartición de secretos o un esquema de compartición de secretos verificable. Al finalizar los procedimientos descritos en los distintos métodos, podría aplicarse un protocolo de reconstrucción para obtener, a partir de las porciones de la clave criptográfica segura generadas, una clave criptográfica final en cada una de las estaciones criptográficas.

En otros aspectos, se proponen sistemas para la generación de claves criptográficas seguras. Dichos sistemas incluirán una primera y una segunda estaciones criptográficas (A, B), y cada estación criptográfica incluirá al menos una unidad de generación de claves brutas y al menos una unidad clásica de post-procesado de datos CLPU A CLPU B , con medios para implementar los métodos propuestos anteriormente.

En un último aspecto de la presente invención, se divulga un programa informático que incluye medios de código de programa informático adaptados para realizar los pasos de los métodos descritos, cuando dicho programa se ejecuta en medios de procesamiento de una entidad de red de una red OFDM; dichos medios de procesamiento son por ejemplo un ordenador, un procesador digital de señales, una matriz de puertas programables (FPGA, del término anglosajón "field-programmable gate array"), un circuito integrado de aplicación específica (ASIC, del término anglosajón "application-specific integrated circuit"), un microprocesador, un microcontrolador o cualquier otra forma de hardware programable. También se proporciona un medio de almacenamiento de datos digital no transitorio para almacenar un programa informático que incluye instrucciones, que hacen que un ordenador que ejecute el programa lleve a cabo todos los pasos de los métodos divulgados cuando el programa se ejecuta en un ordenador.

Descripción de las figuras

Para completar la descripción que se hace y con el fin de facilitar la comprensión de las características de la invención, de acuerdo con el ejemplo preferente de realizaciones prácticas de ésta y acompañando dicha descripción como parte integrante de la misma, se adjunta un conjunto de esquemas a modo de ilustración y no limitativo que representan lo siguiente:

La Figura 1 muestra un diagrama esquemático de bloques de una configuración criptográfica que representa el estado de la técnica anterior.

La Figura 2 muestra un diagrama esquemático de bloques que ilustra un ataque basado en la utilización de una memoria contra una configuración criptográfica correspondiente al estado de la técnica anterior con dos estaciones criptográficas, A y B.

La Figura 3 muestra un diagrama esquemático de bloques de un procedimiento de generación de claves criptográficas seguras según una realización de la invención, en un escenario donde al menos una unidad de generación de claves KGU no es confiable.

La Figura 4 muestra un diagrama esquemático de bloques de un procedimiento de generación de claves criptográficas seguras según una realización de la invención, en un escenario donde al menos una unidad clásica de post-procesado de datos no es confiable.

La Figura 5 muestra diagramas esquemáticos de bloques que ilustran los protocolos de distribución y de reconstrucción para un ejemplo de esquema de compartición de secretos verificable.

La Figura 6 muestra un diagrama esquemático de bloques de un procedimiento seguro de generación de claves criptográficas según una realización de la invención, en un escenario donde cada estación criptográfica contiene más de una unidad de generación de claves, KGU, y más de una unidad clásica de post-procesado de datos, CLPU.

Descripción de la invención

La invención describe métodos y sistemas para, en términos generales, generar una clave criptográfica segura común entre dos o más estaciones criptográficas (una estación que es capaz de generar claves criptográficas, por ejemplo, para comunicaciones o autenticación de datos seguras entre dos dispositivos electrónicos). Dicha clave común se genera en presencia de un canal ruidoso en una red de comunicaciones (comunicando las estaciones criptográficas) y posiblemente componentes no confiables dentro de las estaciones criptográficas.

Considérese una red de comunicaciones que permite la comunicación entre varias estaciones criptográficas junto con cualquier nodo intermedio o auxiliar. Cada estación criptográfica puede representar, por ejemplo, un nodo electrónico como sitio seguro como, por ejemplo, un centro de datos o unas instalaciones compartidas, un proveedor de servicios o un dispositivo electrónico de comunicaciones de un usuario final, como un teléfono inteligente o, por ejemplo, un teléfono móvil, un ordenador portátil, un ¡Pad, una tableta, un PC... o, en términos generales, cualquier otro tipo de dispositivo electrónico que pueda generar claves criptográficas para comunicaciones o autenticación de datos con otro dispositivo. Para lograr comunicaciones o autenticación de datos de forma incondicionalmente segura entre, por ejemplo, dos estaciones criptográficas, tradicionalmente llamadas, A y B o Alice y Bob (donde se supone que Alice y Bob son las partes o usuarios que controlan cada estación criptográfica respectivamente) en presencia de un adversario o espía, Eve, es importante que Alice y Bob compartan una clave criptográfica, K, que sea aleatoria y secreta.

Una estación criptográfica contiene una o varias unidades de generación de claves (KGU) y una o varias unidades clásicas de post-procesado de datos (CLPU). Las unidades de generación de claves (también llamadas unidades de generación de claves brutas) generan datos estadísticamente correlacionados (también conocidos como datos primarios, o clave bruta, es decir, datos obtenidos directamente de una fuente de datos) entre partes distantes, los cuales son procesados posteriormente por las CLPUs para obtener la clave criptográfica. Por ejemplo, en el protocolo de acuerdo de clave pública de Maurer, las unidades de generación de claves podrían ser antenas que están recibiendo señales de una fuente común en una radiogalaxia distante. Las unidades clásicas de post-procesado de datos (también llamadas simplemente unidades de post-procesado) pueden ser cualquier dispositivo de procesamiento de datos convencional (también llamados módulos de procesamiento o unidades de procesamiento), como por ejemplo unidades centrales de procesamiento (CPUs), unidades de procesamiento gráfico (GPUs) y matrices de puertas programables (FPGAs) o cualquier otra unidad electrónica con capacidades de cálculo. Un par de KGUs distribuidas entre las dos estaciones criptográficas, A y

B, utilizan algunos medios físicos para generar datos ruidosos (brutos) estadísticamente correlacionados entre las estaciones criptográficas. Estos medios físicos para generar datos estadísticamente correlacionados podrían ser, por ejemplo, sistemas de QKD. En el caso de los sistemas de QKD, estos datos brutos podrían ser datos relacionados con el estado de polarización en el que se preparan fotones individuales o con los estados de polarización que se obtienen tras medir éstos. Cada fotón individual tiene una polarización. Por ejemplo, en la base rectilínea Z, un fotón polarizado verticalmente podría representar un "0" mientras que un fotón polarizado horizontal mente podría representar un "1". Del mismo modo, en la base diagonal X, un fotón polarizado a 45 grados podría representar un "0", mientras que un fotón polarizado a 135 grados podría representar un "1". Cada KGU pasa entonces los datos brutos ruidosos estadísticamente correlacionados a una o varias unidades de post-procesado de datos para que sean procesados, obteniéndose la clave criptográfica K. Si bien éste es un argumento general, para facilitar su ilustración tomaremos el ejemplo de los sistemas de QKD. En los sistemas de QKD, Alice y Bob están conectados por dos canales de comunicaciones, uno cuántico y otro clásico. El canal cuántico se emplea para la transmisión de señales cuánticas, como por ejemplo fotones individuales preparados en diferentes estados de polarización. Estas señales cuánticas se pueden utilizar para generar una clave bruta. Eve puede atacar el canal cuántico, que puede ser una fibra óptica o espacio libre u otro medio (por ejemplo, agua). El término "canal clásico" significa simplemente un canal de comunicaciones convencional que puede transmitir información convencional. El canal clásico puede ser de cualquier forma, lo que incluye líneas telefónicas, Internet, Ethernet, los canales conocidos de una red de comunicaciones móviles (GSM, UMTS, LTE, 3G, 4G o cualquier otro) o una red wifi, incluso un cable directo o, en general, cualquier canal de comunicaciones de cualquier red convencional de comunicaciones con cable o inalámbrica. El canal clásico también puede estar en el mismo medio que el canal cuántico, por ejemplo, a través de la multiplexación espacial, temporal o de frecuencia de las señales. A menudo se asume que el canal clásico está autenticado utilizando para ello cualquier mecanismo de autenticación de datos conocido. Las CLPUs reciben los datos ruidosos y estadísticamente correlacionados de la clave bruta y pueden aplicarles varias operaciones de procesamiento de datos (que pueden incluir, por ejemplo, la post-selección de datos, la adición de ruido, la estimación de parámetros, la reconciliación de la información, que suele incluir un paso de corrección de errores junto con un paso de verificación de errores, y la amplificación de privacidad). A continuación se describirán estas operaciones de forma más detallada. A. Un método de distribución de claves del estado de la técnica anterior y su inseguridad

La Figura 1 muestra un método de distribución de claves del estado de la técnica anterior con dos estaciones criptográficas, A y B, en presencia de un espía, Eve, en el que cada estación criptográfica contiene una sola unidad de generación de claves

(KGU) y una sola unidad clásica de post-procesado de datos (CLPU). En otras palabras, la estación criptográfica A contiene KGU A y CLPU A mientras que la estación criptográfica B contiene KGU B y CLPU B . En las figuras, un superíndice indica si los dispositivos y las claves criptográficas corresponden a la estación criptográfica A o a la estación criptográfica B. Cada KGU genera una clave bruta, R, y cada CLPU produce una clave criptográfica, K. CLPU A y CLPU B están conectadas a través de un canal de comunicaciones convencional autenticado ("Canal Cl. A." en la figura, también denominado canal clásico autenticado), y, dentro de cada estación criptográfica, KGU y CLPU están conectados a través de un canal clásico (convencional) ("Canal Cl." en la figura). En los sistemas de QKD, un canal cuántico

("Canal C." en la figura) conecta KGU A y KGU B ; en el caso del protocolo de acuerdo de clave pública de Maurer, las KGUs podrían recibir señales clásicas difundidas por una fuente común. Por ejemplo, en un protocolo de QKD conocido (el protocolo estándar Bennett-

Brassard BB84), dos partes distantes, Alice y Bob, desean establecer una clave criptográfica segura entre ellas. La estación criptográfica A está controlada por una de las partes, Alice (por ejemplo, el usuario de un primer dispositivo electrónico de comunicaciones donde se encuentra la estación criptográfica A), mientras que la estación criptográfica B está controlada por otra parte, Bob (por ejemplo, el usuario de un segundo dispositivo electrónico de comunicaciones donde se encuentra la estación criptográfica B). Ahora, KGU A prepara y envía a través de un canal cuántico una secuencia de fotones preparados en diferentes estados de polarización a KGU B , estos estados de polarización son elegidos por KGU A entre dos posibles bases conjugadas, X y Z. Para cada fotón recibido, KGU B selecciona aleatoriamente una de las dos bases conjugadas y realiza una medición. KGU B registra el resultado de la medición y la elección de la base. A continuación, KGU A envía los datos de polarización, R A , y otra información auxiliar relevante como la información sobre las bases a CLPU A , y KGU B envía los datos de polarización, R B , y otra información auxiliar relevante como la información sobre las bases a CLPU B .

A través de un canal autenticado ("Canal Cl. A." en la Figura 1), CLPU A y CLPU B transmiten sus bases de preparación y medición respectivamente. Descartan todos los datos de polarización enviados y recibidos en bases diferentes y utilizan los datos restantes para generar una "clave filtrada". Para comprobar si se ha producido algún ataque, CLPU A y CLPU B calculan la tasa cuántica de error de bit (QBER) de un subconjunto de datos seleccionado aleatoriamente entre la clave filtrada y verifican que la QBER está por debajo de un determinado valor umbral. Aplicando protocolos clásicos de post-procesado de datos, como por ejemplo reconciliación de la información (que normalmente incluye un paso de corrección de errores junto con un paso de verificación de errores), y amplificación de privacidad, CLPU A y CLPU B generan una clave criptográfica segura, K A y K B , donde con una alta probabilidad K A =K B y K A es segura frente a un espía.

En este tipo de configuración, se asume comúnmente que todas las KGUs (es decir, KGU A y KGU B ) y todas las CLPU (es decir, CLPU A y CLPU B ) son confiables. Por ejemplo, en este marco se incluyen tanto los sistemas de QKD que no requieren caracterizar los dispositivos (del término anglosajón "device-independent QKD") como aquellos que requieren caracterizar los dispositivos (del término anglosajón

"device-dependent QKD"). Los sistemas estándar de QKD requieren caracterizar los dispositivos y asumen que los dispositivos de QKD funcionan correctamente, por ejemplo, preparando el estado correcto y realizando mediciones perfectas de acuerdo con algunos protocolos teóricos. Por el contrario, los sistemas de QKD que no requieren caracterizar los dispositivos presentan la ventaja de permitir que los dispositivos de QKD funcionen de forma arbitraria siempre que no haya fugas de información (por ejemplo, acerca de la clave criptográfica final) desde las estaciones criptográficas, A y B, a un espía. Desafortunadamente, esta configuración del estado de la técnica anterior es altamente vulnerable frente a la presencia de programas y/o dispositivos maliciosos en el software y/o en el hardware. Por ejemplo, si la espía Eve planta una memoria digamos, por ejemplo, en KGU A , entonces la seguridad de dicho método de distribución de claves correspondiente al estado de la técnica anterior puede verse comprometida. Esto se ilustra en la Figura 2. Eve podría usar esta memoria para almacenar la clave criptográfica generada en una sesión de QKD y luego filtrar esta información al canal de comunicaciones en ejecuciones posteriores del sistema de QKD. Para ello, Eve podría explotar por ejemplo el hecho de que cada ejecución de QKD suele asociarse con una decisión de abortar o no abortar dependiendo de la QBER observada. La memoria podría entonces decidir si hacer o no que KGU A produzca una clave bruta, R A , con una QBER elevada (y así obligar al protocolo a abortar) dependiendo del valor de un bit determinado de la clave generada en una ejecución de QKD previa. Alternativamente, la memoria también podría filtrar la clave criptográfica generada en una determinada ejecución de QKD simplemente ocultándola en la discusión pública de las ejecuciones de QKD posteriores.

Por lo tanto, la manera de distribuir una clave criptográfica segura cuando algunas de las KGUs o CLPUs no son confiables es un problema importante que no está resuelto por los sistemas de distribución de clave del estado de la técnica anterior.

B. Escenario 1 : Un método de distribución de claves con unidades de generación de claves no confiables en una estación criptográfica.

El objetivo principal de la invención es lograr seguridad en la distribución de claves en presencia de dispositivos no confiables. Estos dispositivos no confiables podrían ser, por ejemplo, KGUs o CLPUs o una combinación de ambas. En esta sección, se considera el caso en el que algunas KGUs pueden no ser confiables pero se asume que las CLPUs sí lo son. En este caso, consideramos un nuevo protocolo de distribución de claves con múltiples KGUs, como se muestra en la Figura 3. Esta figura muestra dos estaciones criptográficas, A y B, en presencia de un espía Eve (por ejemplo, en los canales que conectan las estaciones criptográficas A y B y también en algunas de las KGUs de Alice y Bob, lo que hace que estas KGUs no sean confiables). Cada estación criptográfica contiene n (más de una) unidades de generación de claves, KGUs, además de al menos una unidad clásica de post-procesado de datos, CLPU. La i a KGU genera una clave bruta, R¡. El canal que conecta CLPU A y CLPU B es un canal de comunicaciones autenticado convencional ("Canal Cl. A." en la figura, también llamado canal clásico autenticado). El canal que conecta KGU A ¡ y CLPU A así como el canal que conecta KGU B ¡ y CLPU B son canales clásicos (convencionales) seguros ("Canal Cl. S." en la figura) para todos los i=1 , ... ,n. Además, en un sistema QKD, el canal que conecta KGU A ¡ y KGU B ¡ es un canal cuántico ("Canal C." en la figura) para todos los i=1 , ... ,n.

Esto es, en esta figura, la estación criptográfica A tiene n (donde n > 1) unidades KGU KGU A 2, . .. KGU A n , y la estación criptográfica B tiene n unidades KGU B i , KGU B 2, . . . KGU B n . Como comentario adicional, nótese que existen KGUs de bajo coste debido al desarrollo de transmisores para QKD basados en chips. Nuestra invención puede aprovechar estos dispositivos. Asimismo, nótese que los distintos pares de

KGUs se pueden comprar a diferentes proveedores. Nuestra invención nos permite aumentar la confiabilidad y construir un sistema seguro de generación de claves con componentes baratos de proveedores no confiables. Obviamente, si todas las KGUs están comprometidas es imposible lograr seguridad, por lo que supondremos que al menos una de ellas no está comprometida (es decir, supondremos que existe al menos una KGU confiable). Así pues, resulta útil definir la estructura de acceso o la estructura adversaria. Por estructura adversaria nos referimos a qué subconjuntos de pares de unidades KGU A ¡ y KGU B ¡ con i=1 , ... , n, podrían ser deshonestos (no confiables) sin que ello afecte a la seguridad de la clave final (un par de unidades KGU A ¡ y KGU B ¡ es deshonesto si al menos una de las unidades lo es). En la definición de la estructura adversaria se podría distinguir entre los dispositivos deshonestos que están controlados pasivamente por Eve y los que están controlados activamente por Eve. Por ejemplo, un dispositivo controlado pasivamente por Eve puede filtrarle su información, pero por lo demás sigue correctamente todas las indicaciones del protocolo. Un dispositivo controlado activamente por Eve, por otra parte, puede filtrarle su información y, además, no tiene por qué seguir necesariamente las prescripciones del protocolo, pero su comportamiento está completamente controlado por Eve. Un ejemplo de estructura adversaria podría ser que a lo sumo 3 de 4 pares de unidades KGU A ¡ y KGU B ¡ pudieran ser deshonestos y estar controlados activamente por Eve. Esto significa que al menos uno de los 4 pares de unidades KGU A ¡ y KGU B ¡ es honesto. En la Figura 3 asumimos que cada estación criptográfica, A y B, tiene al menos una unidad clásica de post-procesado de datos, CLPU A y CLPU B respectivamente. En este escenario, se supone que todas las CLPUs son confiables. Además, cada KGU A ¡ está conectada a CLPU A a través de un canal clásico (convencional) seguro (denominado "Canal Cl. S. i A " en la Figura 3), y cada KGU B ¡ está conectada a CLPU B a través de un canal clásico (convencional) seguro (denominado "Canal Cl. S. i B " en la Figura 3). En todo este texto, se entiende por "canal clásico o convencional seguro" un canal que proporciona tanto confidencialidad como autenticación. Esto podría lograrse, por ejemplo, utilizando el protocolo de cifrado denominado "libreta de un solo uso" o también conocido como cifrado de Vernam, junto con el esquema de autenticación de Wegman-Carter, o cualquier otro mecanismo conocido. Nótese que en la práctica también se puede utilizar como canal clásico seguro, por ejemplo, un canal protegido físicamente (por ejemplo, un cable físico que protege contra daños e intrusiones) y que sólo conecta los dispositivos prescritos. Nótese que todos los canales clásicos seguros se utilizan para conectar dispositivos situados dentro de una estación criptográfica. Además, hay un canal clásico (convencional) autenticado que conecta CLPU A y CLPU B (denominado "Canal Cl. A." en la Figura 3). Esto podría lograrse utilizando cualquier sistema de autenticación conocido. Además, en un sistema QKD, las unidades KGU A ¡ y KGU B ¡, con i=1 , ... , n, se conectan entre sí a través de un canal cuántico, denominado "Canal C. i" en la Figura 3, al que puede acceder Eve. Obsérvese que todas las KGU A ¡ y KGU B ¡ podrían incluso compartir el mismo canal cuántico físico (por ejemplo, una sola fibra óptica) mediante diversas técnicas de multiplexación (por ejemplo, multiplexación en longitud de onda y multiplexación espacial). Cada unidad KGU A ¡ de la estación criptográfica A envía la clave bruta generada, R A ¡, a CLPU A a través del "Canal Cl. S. i A " mostrado en la Figura 3. Si la estación criptográfica A tiene más de una CLPU, entonces cada KGU A ¡ puede o bien enviar su clave bruta R A ¡ a cada CLPU o porciones de ésta a una o más de las CLPUs de la estación criptográfica A. Del mismo modo, cada unidad KGU B ¡ envía la clave bruta generada, R B ¡, a CLPU B a través del "Canal Cl. S. i B ". Si la estación criptográfica B tiene más de una CLPU, entonces cada KGU B ¡ puede o bien enviar su clave bruta R B ¡ o porciones de ésta a una o más de las CLPUs de la estación criptográfica B. Si se asume que aquí todas las CLPUs son confiables, entonces la transmisión directa de las claves brutas (es decir, sin dividirlas en porciones) generadas por las diferentes

KGUs a las CLPUs (dentro de cada estación criptográfica) no compromete la seguridad.

Las CLPUs pueden aplicar varios protocolos clásicos de post-procesado de datos a las claves brutas recibidas. Debido a las perturbaciones ambientales y a los posibles ataques de espionaje por parte de Eve, la clave bruta R A ¡ generada por KGU A ¡ podría ser diferente de la clave bruta R B ¡ generada por KGU B ¡. Por lo tanto, estos protocolos clásicos del post-procesado de datos deberían incluir generalmente un protocolo para la reconciliación de la información y un protocolo de amplificación de privacidad para poder garantizar que las claves finales generadas, K A y K B , en las estaciones criptográficas A y B sean secretas y probablemente iguales entre sí. En un protocolo de reconciliación de la información, una o más de las CLPUs de las estaciones criptográficas A y B pueden primero intercambiar información para la corrección de errores, que se utiliza para corregir sus datos de tal manera que K A y K B sean con una alta probabilidad iguales entre sí. Esto se puede hacer utilizando cualquier procedimiento conocido (véase, por ejemplo, Brassard G. and Salvail, L. Secret key reconciliation by public discussion. Proc. of Advances in Cryptology (Eurocrypt 93), 410-23 (1993)). A continuación, las estaciones criptográficas A y B podrían realizar un paso de verificación de errores para confirmar que K A y K B son efectivamente iguales entre sí con una alta probabilidad. El paso de amplificación de privacidad se utiliza para garantizar que la clave final, K A y K B , sea de hecho probablemente secreta (es decir, Eve apenas tiene información sobre ella). Para ello, la amplificación de privacidad elimina la información parcial que Eve pudiera haber obtenido sobre, por ejemplo, las claves brutas R A ¡, con i=1 , ... ,n. Eve podría haber obtenido información sobre estas claves brutas espiando los canales cuánticos que conectan las unidades KGU A ¡ y KGU B ¡ para todos los i, así como escuchando el contenido del canal clásico autenticado que conecta CLPU A y CLPU B . Además, todos los pares KGU A ¡ y KGU B ¡ que sean deshonestos podrían filtrarle directamente R A ¡ a Eve. Como se mencionó anteriormente, la amplificación de privacidad se puede realizar aplicando una función hash 2-universal a la clave reconciliada (por ejemplo, multiplicando la clave reconciliada por una matriz aleatoria de entradas binarias).

Además, los protocolos clásicos de post-procesado de datos pueden incluir, por ejemplo, la post-selección de datos, la adición de ruido, la estimación de parámetros y la verificación de errores. En cada uno de estos protocolos clásicos de postprocesado de datos, una o más de las CLPUs de las estaciones criptográficas A y B pueden utilizar el canal clásico autenticado entre ellas para intercambiar información y post-procesar sus datos. Por ejemplo, en el paso de post-selección de datos las CLPUs dividen las claves brutas R A ¡ y R B ¡ en diferentes conjuntos de datos. A modo de ejemplo, las CLPUs pueden dividir las claves brutas en tres conjuntos principales de datos. El primer conjunto de datos contiene los datos de las claves brutas que se post-procesarán para obtener una clave segura, K A y K B ; el segundo conjunto de datos (también denominado conjunto de datos para la estimación de parámetros) contiene los datos de las claves brutas que se utilizarán para la estimación de parámetros con el fin de determinar los parámetros necesarios para generar K A y K B a partir de los datos del primer conjunto de datos; y el tercer conjunto de datos contiene los datos de las claves brutas que se desechan. Por ejemplo, en el protocolo estándar de Bennett-Brassard BB84, Alice y Bob suelen descartar los datos de las claves brutas asociados a aquellos eventos en los que Alice y Bob emplean bases diferentes. Además, las CLPUs pueden añadir ruido a las claves brutas realizando la operación NOT o de negación lógica de algunos de sus bits (véase, por ejemplo, Renner, R., Gisin, N. and Kraus B. An information-theoretic security proof for QKD protocols. Phys. Rev. A 72, 012332 (2005)) o cualquier otro mecanismo conocido para añadir ruido. En el paso de estimación de parámetros, por otra parte, las CLPUs utilizan los datos del conjunto de datos para la estimación de parámetros con el objetivo de determinar cotas superiores o inferiores para aquellas cantidades o parámetros que son necesarios para generar una clave segura. Estos parámetros pueden incluir, por ejemplo, la QBER, la tasa cuántica de error de fase, el número de pulsos que contienen un solo fotón emitidos por Alice y que contribuyen al conjunto de datos que se utiliza para generar una clave segura, etc. Finalmente, en el paso de verificación de errores, como ya se ha mencionado, las CLPUs confirman que K A y K B son iguales con cierta probabilidad. Un protocolo de reconciliación de la información puede constar de muchos pasos y la verificación de errores puede ser el último paso. El propósito de la verificación de errores es confirmar que el protocolo de reconciliación de la información ha tenido éxito. Para ello, podrían utilizar, por ejemplo, una función hash 2-universal para calcular un "hash" tanto de K A como de K B y, a continuación, comprobar si ambos "hash" son iguales.

A continuación describimos, a modo de ejemplo, un protocolo para la distribución de claves que logra seguridad frente a KGUs deshonestas. El protocolo se puede descomponer en dos pasos conceptuales principales. En particular, supongamos que todas las unidades KGU A ¡ de la estación criptográfica A han enviado los datos de la clave bruta R A ¡ a CLPU A , y supongamos también que todas las unidades KGU B ¡ de la estación criptográfica B han enviado los datos de la clave bruta R B ¡ a CLPU B . Entonces, en un primer paso, las unidades CLPU A y CLPU B post-procesan los datos R A ¡ y R B ¡ para obtener una clave secreta, K A ¡ y K B ¡, o el símbolo de abortar 1¡ para todo i. En caso de que se utilice un sistema QKD para la generación de claves brutas, nótese que se puede generar un símbolo de abortar por ejemplo cuando la tasa cuántica de error de bit (QBER) es superior a algún valor prescrito (por ejemplo, 11 % en el caso de la prueba de seguridad de Shor-Preskill para el protocolo Bennett- Brassard BB84). Para ello, CLPU A y CLPU B pueden emplear algunos de los protocolos clásicos de post-procesado de datos descritos anteriormente. Estos protocolos clásicos de post-procesado de datos pueden incluir un paso de amplificación de privacidad para eliminar la información parcial que Eve pudiera tener sobre K A ¡ y K B ¡ debido a un ataque sobre el "Canal C. i" (véase la Figura 3) que conecta KGU A ¡ y KGU B ¡, así como al hecho de que Eve escucha el contenido del canal clásico autenticado que conecta las unidades CLPU A y CLPU B . A continuación viene un paso clave en esta realización de la invención. En particular, en un segundo paso,

CLPU A y CLPU B aplican un paso adicional de amplificación de privacidad a K A '=[K K A 2, . . . , K A M ] y K B - [K B i , K B 2, . . . , K B M ], donde M representa el número de pares K A ¡ y K B ¡ que son diferentes del símbolo de abortar 1¡. La finalidad de este segundo paso de amplificación de privacidad es eliminar la información que los pares deshonestos de KGUs pudieran filtrar a Eve acerca de, digamos, K A '. Para simplificar la discusión, consideremos por ejemplo que la longitud de todas las claves K A ¡ y K B ¡ es N bits para todos los i=1 , ... , M. Consideremos asimismo por ejemplo una estructura adversaria donde a lo sumo t<n pares de unidades, KGU A ¡ y KGU B ¡, pudieran ser deshonestos y estar controlados activamente por Eve. Esto significa que como mucho t*N bits de

K A ' podrían estar comprometidos y ser conocidos por Eve. Entonces, la aplicación de un paso de amplificación de privacidad a K A ' y K B ' elimina esta información comprometida y se traduce en una clave final, K A y K B , de aproximadamente (M-t)*N bits. A continuación describimos la implementación paso a paso de este ejemplo específico. El objetivo es generar una clave criptográfica segura en el escenario estándar de composabilidad de la criptografía. Más concretamente, el objetivo es generar una clave criptográfica epsilon-segura, K A y K B . Es decir, K A y K B deben ser epsilon_cor-correctas y epsilon_sec-secretas. Epsilon, epsilon_cor y epsilon_sec son parámetros de diseño del sistema de generación de claves que satisfacen la condición epsilon_cor+epsilon_sec < epsilon (a grandes rasgos, una clave es epsilon_cor-correcta si K A =K B excepto por una pequeña probabilidad de, como mucho, epsilon_cor. Y una clave es epsilon_sec-secreta si es aleatoria y secreta frente a una espía, Eve, excepto por una pequeña probabilidad de fallo de, como mucho, epsilon_sec).

El protocolo para la generación de una clave criptográfica segura puede incluir los pasos siguientes (esto es solamente una posible realización, y no todos los pasos citados son esenciales y obligatorios en todas las realizaciones de la presente invención):

Protocolo 1 :

1 . Distribución de las claves brutas: cada KGU A ¡ envía a CLPU A la clave bruta R A ¡ o el símbolo de abortar 1¡. Además, cada KGU B ¡ envía a CLPU B la clave bruta R B ¡ o el símbolo de abortar 1¡.

2. Generación de una clave epsilon_cor-correcta K A ' y K B ': CLPU A y CLPU B utilizan un protocolo de post-procesado de datos para generar una clave (epsilon_cor/M)-correcta y (epsilon_sec/M)-secreta (con epsilon_cor+epsilon_sec < epsilon), K A ¡ y K B ¡, a partir de R A ¡ y R B ¡, o generar el símbolo de abortar 1¡ (para indicar que el protocolo de post-procesado de datos no ha tenido éxito y que no ha sido posible generar una clave válida a partir de los claves brutas) para todos los i = 1 , ... ,n. Después, CLPU A concatena las M claves K A ¡ que sean diferentes de 1¡ para formar K A '=[K K A 2, . . . , K A M]. Del mismo modo, CLPU B concatena las M claves K B ¡ que sean diferentes de 1¡ para formar K B '=[Κ Β ι , K B 2 , ... , K B M ].

3. Generación de una clave epsilon-segura K A y K B : CLPU A y CLPU B aplican un paso de amplificación de privacidad para extraer de K A ' y K B ' una clave más corta, K A y K B , de una longitud aproximada de (M-t)*N bits. Esto se puede hacer usando un hashing aleatorio con una matriz aleatoria, como se explicó anteriormente, o usando cualquier otro mecanismo conocido de amplificación de privacidad.

Nótese que el Protocolo 1 es sólo un ejemplo no limitativo de una realización de la invención. Por ejemplo, nótese que un método simplista para implementar el paso de amplificación de privacidad adicional que se aplica a K A ' es, sencillamente, que Alice realice la operación XOR bit a bit entre las distintas claves, K A ¡ (e igualmente Bob). Además, en general, tampoco es necesario aplicar la amplificación de privacidad en dos pasos diferentes (es decir, para generar primero K A ' y K B ' y, posteriormente, para generar K A y K B a partir de K A ' y K B '), sino que podría aplicarse en un solo paso. Esto es, se podría generar directamente en un solo paso una clave criptográfica epsilon- segura, K A y K B , a partir de todas las claves brutas, R A ¡ y R B ¡, juntas. Es importante destacar que el Protocolo 1 ilustra que la amplificación de privacidad puede utilizarse para garantizar el secreto de la clave final, K A y K B , en presencia de KGUs deshonestas con una estructura de acceso prescrita.

C. Escenario 2: Un método de distribución de claves con unidades clásicas de post-procesado de datos no confiables en una estación criptográfica.

En esta sección, se considera un escenario en el que algunas CLPUs de una estación criptográfica pueden no ser confiables, pero las KGUs sí lo son. Una vez más, para mejorar la seguridad, se considera el uso de múltiples CLPUs en una estación criptográfica, como se muestra en la Figura 4. Esta figura muestra dos estaciones criptográficas, A y B, en presencia de un espía Eve (por ejemplo, en los canales que conectan las estaciones criptográficas A y B y también en algunas de las CLPUs de Alice y Bob, lo que hace que dichas CLPUs no sean confiables). Cada estación criptográfica contiene más de una unidad de procesamiento (conocidas como unidades clásicas de post-procesado de datos, CLPUs). Cada CLPU genera porciones de una clave criptográfica, K.

Si bien el ámbito de protección de la invención es general y se aplica a una estructura adversaria general con CLPUs deshonestas que podrían ser controladas pasiva o activamente por Eve, describiremos aquí con fines ilustrativos el caso sencillo de una estructura adversaria de umbral con un número fijo de CLPUs deshonestas controladas activamente por Eve (sin embargo, la invención puede ser aplicada a otras estructuras adversarias más complejas). Más concretamente, consideremos la situación en la que las estaciones criptográficas A y B tienen una KGU confiable cada una y, además, la estación criptográfica A tiene "s" unidades clásicas de postprocesado de datos CLPU CLPU A 2, . . . , CLPU A S , y la estación criptográfica B tiene "s"' unidades clásicas de post-procesado de datos CLPU B i , CLPU B 2 , ... , CLPU B S '. Supongamos además que hasta t < s/3, CLPU A ¡ y hasta t' < s'/3 CLPU B j podrían ser deshonestas y estar activamente controladas por Eve, con i=1 ,... , s, y j=1 ,... , s'.

Nótese que las distintas CLPUs pueden comprarse a proveedores diferentes. La presente invención permite construir un sistema de generación de claves criptográficas seguro con componentes de vendedores no confiables. Como algunas CLPUs son deshonestas (no confiables), la presente invención no les permite acceder a la clave final, K A y K B , sino que únicamente se les permite producir algunas porciones de la clave final, K A y K B . Por ejemplo, en la Figura 4 indicamos las porciones de K A generadas por CLPU A ¡ (para i=1 , 2, .., s) como K A ¡ xy y, del mismo modo, indicamos las porciones de K B generadas por CLPU B j (para j= 1 , 2, .., s') como K B jxy para determinados índices x e y.

KGU A está conectada a cada CLPU A ¡ a través de un canal clásico (convencional) seguro (denominado "Canal Cl. S. i A " en la Figura 4), y KGU B está conectada a cada CLPU B j a través de un canal clásico (convencional) seguro (denominado "Canal Cl. S. j B " en la Figura 4). Además, cada par de unidades CLPU A ¡ y CLPU A ¡', con i,i'=1 , ... ,s, se conectan entre sí a través de un canal clásico (convencional) seguro (denominado "Canal Cl. S. ii' A " en la Figura 4), y cada par de unidades CLPU B j y CLPU 6 ,', con j,j'=1 ,... ,s', se conectan entre sí mediante un canal clásico seguro (denominado "Canal Cl. S. jj' B " en la Figura 4). Asimismo, cada par de unidades CLPU A ¡ y CLPU B j se conectan entre sí a través de un canal clásico (convencional) autenticado (denominado "Canal Cl. A. ij AB " en la Figura 4). Y, en el caso de un sistema QKD, KGU A y KGU B se conectan entre sí a través de un canal cuántico (denominado "Canal C." en la Figura 4), que es accesible a Eve.

En esta situación, se considera un nuevo protocolo de distribución de claves criptográficas en el que KGU A envía porciones de la clave bruta generada, R A , a una o más de las CLPU A ¡. Del mismo modo, KGU B envía porciones de la clave bruta, R B , a una o más de las CLPU B j. En la Figura 4, S A ¡ indica las porciones de R A que KGU A envía a CLPU A ¡ y S B j son las porciones de R B que KGU B envía a CLPU B j. Si la estación criptográfica A y/o B tiene más de una KGU, entonces cada KGU puede enviar porciones de su clave bruta a una o más de las CLPUs de esa estación criptográfica. A continuación, las unidades CLPU A ¡ y CLPU B j post-procesan la clave bruta, R A y R B , en un entorno distribuido actuando sobre las porciones, S A ¡ y S B j, recibidas y generan porciones, K A U , K A ¡, 2 , ... , K A ¡, n _¡ y K B j,i , K B j, 2 , ... , K B j, mJ , de la clave final, K A y K B . Aquí n_i indica el número total de porciones de K A generadas por la unidad CLPU A ¡ y mj indica el número total de porciones de K B generadas por la unidad CLPU B j. Una vez más, este post-procesado clásico de datos puede incluir varios pasos como, por ejemplo, la post-selección de datos, la adición de ruido, la estimación de parámetros, la reconciliación de la información y la amplificación de privacidad.

Para dividir la clave bruta, R A y R B , en porciones, las KGUs podrían utilizar cualquier método conocido, por ejemplo, esquemas de compartición de secretos o esquemas de compartición de secretos verificables. En un esquema de compartición de secretos, la persona o el dispositivo que divide el secreto se denomina distribuidor.

En caso de que un distribuidor pudiera ser deshonesto, es importante verificar que los valores de las porciones enviadas por el distribuidor sean consistentes entre sí. Además, en presencia de partes deshonestas, es importante poder garantizar que todas las partes honestas puedan reconstruir el mismo secreto a partir de las porciones recibidas y, además, si el distribuidor es honesto, el secreto reconstruido debe ser igual al distribuido originalmente por el distribuidor. Estas condiciones pueden garantizarse mediante un esquema de compartición de secretos verificable. En un esquema de compartición de secretos verificable, un distribuidor divide cada porción en porciones adicionales o "porciones de una porción" y envía dichas porciones de una porción a varios participantes. Esos participantes pueden entonces verificar la consistencia de los valores de dichas porciones de porciones.

En presencia de CLPUs deshonestas, el uso de un esquema de compartición de secretos verificable puede garantizar la consistencia de las porciones distribuidas.

Por lo tanto, el uso de un protocolo de reconciliación de la información (que podría incluir un paso de verificación de errores) puede garantizar que la clave final, K A y K B , sea correcta.

A continuación, incluimos la implementación paso a paso de un ejemplo de esquema de compartición de secretos verificable propuesto en Maurer, U. Secure multi-party computation made simple. Discrete Appl. Math. 154, 370-381 (2006). Utiliza un esquema de compartición de secretos de tipo umbral (q,q). Este último sistema podría implementarse, por ejemplo, dividiendo el mensaje X, a ser distribuido, en una suma aleatoria de q porciones X¡, con i = 1 ,...,q. Esto podría hacerse, por ejemplo, seleccionando las primeras q-1 porciones X¡ de X al azar, y luego eligiendo X q = ΧΘΧιθ. . . 0Xq.i , donde el símbolo Θ indica una suma en álgebra de módulo 2. Un esquema de compartición de secretos verificable generalmente puede descomponerse en dos protocolos: el protocolo de distribución y el de reconstrucción. El ejemplo de esquema de compartición de secretos verificable presentado a continuación permite dividir un mensaje X entre n partes, y proporciona seguridad en el paradigma de la teoría de la información contra una estructura adversaria activa de umbral con un máximo de t<n/3 partes deshonestas. Una vez más, por estructura adversaria (general) entendemos un conjunto de subconjuntos que identifica qué combinaciones de partes podrían estar pasivamente corrompidas, y un conjunto de subconjuntos que identifica qué combinaciones de partes podrían estar activamente corrompidas. Nótese que también existen esquemas de compartición de secretos verificables que son seguros frente a estructuras adversarias generales. Con el fin de simplificar la explicación, aquí se asume una estructura adversaria activa de umbral en la que podría haber un máximo de t partes activamente corrompidas (sin embargo, la invención se puede aplicar a otras estructuras adversarias más complejas). Por lo tanto, el ejemplo del esquema de compartición de secretos verificable descrito anteriormente y cuyos protocolos de distribución y reconstrucción se detallan a continuación es seguro frente a dicha estructura adversaria activa de umbral, pero no siempre es seguro frente a estructuras adversarias generales. Sin embargo, si se desea, puede modificarse para hacerlo seguro frente a una estructura adversaria general. De hecho, dicha modificación se introdujo en el documento antes citado, Maurer, U. Secure multi-party computation made simple. Discrete Appl. Math. 154, 370-381 (2006).

Protocolo de distribución:

1. El distribuidor utiliza un esquema de compartición de secretos de tipo umbral (q,q) para dividir el mensaje X en q=n!/[(n-t)!t!] porciones X¡, con i = 1 ,...,q.

2. Sean {σι , ... , a q } todas las (n-t)-combinaciones del conjunto de n partes.

Entonces, para cada i=1 ,...,q, el distribuidor envía X¡ a través de un canal seguro a cada parte del conjunto a¡. Si una parte no recibe su porción, toma como porción predeterminada, por ejemplo, una secuencia de bits con todos sus componentes iguales a cero.

3. Todos los pares de partes en a¡ se envían mutuamente sus porciones X¡ a través de un canal seguro para comprobar que sus porciones son efectivamente iguales. Si se encuentra una inconsistencia, se quejan utilizando un canal de difusión.

4. Si se presenta una queja en el conjunto a¡, el distribuidor difunde X¡ a todas las partes y éstas aceptan la porción recibida. Si el distribuidor se niega a difundir X¡ a todas las partes (o es incapaz de hacerlo) cuando hay una queja en a¡, el protocolo aborta.

Protocolo de reconstrucción: 1. Todos los pares de partes se envían mutuamente sus porciones a través de un canal clásico autenticado. 2. Cada parte utiliza como método de decisión una votación por mayoría para reconstruir las porciones X¡ Vi, y obtiene a continuación Χ=Χι Θ. . . 0X q .

La Figura 5 proporciona una representación gráfica de los protocolos de distribución y reconstrucción explicados anteriormente para el caso de una estructura adversaria de tipo umbral en la que como mucho 1 de 4 partes podría ser deshonesta (es decir, n=4 y t=1). En el esquema de compartición de secretos verificable mostrado en la Figura 5, el mensaje, X, se distribuye entre cuatro partes P¡, con i=1 , ... ,4, y proporciona seguridad en el paradigma de la teoría de la información contra una estructura adversaria activa de tipo umbral con un máximo de t=1 partes deshonestas. En la figura, X¡={ X , y ,z} indica las porciones X x , X y y X z de X. En el protocolo de distribución todos los canales son canales clásicos (convencionales) seguros, mientras que en el protocolo de reconstrucción los canales son canales clásicos (convencionales) autenticados. En el caso que se muestra en la figura, se definen los conjuntos σι ={Ρ2, Ρ3, Ρ4}, σ 2 ={Ρι , Ρ 3 , Ρ 4 }, σ 3 ={Ρι , Ρ 2 , Ρ4} y σ 4 ={Ρι , Ρ 2 , Ρ3}. Como q=n!/[(n-t)!t!=4, el mensaje X se ha dividido en 4 porciones, Χι , X 2 , X3 y X4. A continuación, el distribuidor envía X¡ a través de un canal seguro a todas las partes en a¡. Por ejemplo, envía X1 a P 2 , P3 y P4, y lo mismo para las demás porciones.

Nótese que el canal de difusión que se requiere para realizar los pasos 3 y 4 del protocolo de distribución no tiene que ser un canal físico, sino que podría ser un canal simulado. El esquema de compartición de secretos verificable (en inglés, verifiable secret sharing scheme) presentado anteriormente es un ejemplo no limitativo, y podría utilizarse en su lugar cualquier otro mecanismo de compartición de secretos verificable conocido o todavía por desarrollar. Por ejemplo, si el número n de partes es elevado, existen otros esquemas eficientes de compartición de secretos verificables, o si hay un canal físico de difusión disponible existen esquemas de compartición de secretos verificables que pueden garantizar seguridad siempre que haya una mayoría de partes honestas (véase, por ejemplo, Rabin, T. and Ben-Or, M. Verifiable secret sharing and multiparty protocols with honest majority. Proc. 21 th Annual ACM Symposium on Theory of Computing (STOC'89) 73-85 (ACM, New York, NY, USA, 1989)).

Para implementar varios de los protocolos clásicos de post-procesado de datos que se requieren para generar una clave criptográfica segura, las CLPUs podrían necesitar generar números aleatorios entre partes que no son confiables entre sí. A continuación presentamos la implementación paso a paso de un ejemplo de un protocolo que podría ser utilizado para resolver esta tarea. Se obtiene directamente a partir de los esquemas de compartición de secretos verificables y puede generar una secuencia común completamente aleatoria de l-bits entre n partes cuando hasta t<n/3 de ellas pudieran ser deshonestas y estar activamente controladas por Eve. Para mayor comodidad, lo denominamos protocolo RBS, del término anglosajón "Random Bit String" (o secuencia de bits aleatorios).

Protocolo RBS:

1. Digamos que cada una de las primeras t+1 partes produce localmente una secuencia aleatoria de l-bits r¡ y la envía a todas las demás partes usando el protocolo de distribución de un esquema de compartición de secretos verificable.

2. Cada una de las partes utiliza un canal difusión para confirmar que ha recibido las porciones de las primeras t+1 partes. De lo contrario, el protocolo aborta.

3. Todas las partes utilizan el protocolo de reconstrucción de un esquema de compartición de secretos verificable para obtener r¡ para todos los i = 1 ,...,t+1. Posteriormente, cada parte calcula localmente r = θ. . . 0r t+ i .

Como en el caso anterior, nótese que el canal de difusión requerido en el paso 2 del protocolo RBS podría realizarse con un canal de difusión simulado. Además, nótese que para generar números aleatorios entre partes mutuamente no confiables, de manera que éstos sean seguros frente a estructuras adversarias generales, se podría simplemente utilizar en el protocolo RBS descrito arriba un protocolo de distribución (en el paso 1 ) y un protocolo de reconstrucción (en el paso 3) de un esquema de compartición de secretos verificable que sea seguro frente a estructuras adversarias generales, como por ejemplo el que se propuso en Maurer, U. Secure multi-party computation made simple. Discrete Appl. Math. 154, 370-381 (2006).

Para ilustrar la presente invención en este escenario, a continuación describimos dos protocolos (véanse los Protocolos 2 y 3, a continuación) que podrían utilizarse para lograr distribuir claves criptográficas seguras con CLPUs no confiables. Son dos ejemplos de realizaciones de la presente invención. Para facilitar su descripción, consideraremos en estos dos ejemplos que el número de CLPUs de la estación criptográfica A es igual al de B, es decir, s=s', aunque, por supuesto, esto no es una condición necesaria y el número de CLPUs de cada estación criptográfica puede ser diferente.

El primer ejemplo (véase el Protocolo 2 a continuación) puede descomponerse en dos pasos conceptuales principales. En un primer paso, KGU A y KGU B realizan s sesiones independientes de generación de claves criptográficas, y cada una de estas sesiones se realiza con un par de unidades CLPU A ¡ y CLPU B ¡ diferentes, con i=1 , ... ,s.

El objetivo de cada sesión es generar, por ejemplo, una clave (epsilon/s)-segura, K A ¡ y K B ¡, o el símbolo de abortar 1¡. Para facilitar la ilustración, consideremos que la longitud de cada clave K A ¡ y K B ¡ es N bits para todos los i. Si, por ejemplo, el par CLPU A ¡ y CLPU B ¡ es deshonesto, entonces se tiene que K A ¡ y K B ¡ podrían estar comprometidas y ser conocidas por Eve. Un par CLPU A ¡ y CLPU B ¡ es deshonesto si al menos una de sus unidades es deshonesta. A continuación, en un segundo paso, las claves K A ¡ y K B ¡ se concatenan para formar [K B i , K B 2 , ... , K B M], donde M indica el número de claves K A ¡ y K B ¡ que son diferentes del símbolo de abortar, y las CLPUs aplican un protocolo de verificación de errores y un paso de amplificación de privacidad a K A ' y K B '. Aquí viene una contribución fundamental de esta realización de la invención: este segundo paso se realiza en un entorno distribuido actuando sólo sobre porciones de K A ' y K B '. Nótese que esto es posible porque todas las técnicas de post-procesado de datos descritas anteriormente suelen ser de naturaleza "lineal" (esto es, normalmente implican aplicar funciones simples de álgebra lineal como XOR de bits y multiplicaciones de matrices) y por lo tanto pueden ser fácilmente implementadas actuando sólo sobre porciones de K A ' y K B '. En ciertos pasos, las CLPUs pueden necesitar información sobre porciones que están en manos de otras CLPUs. Para obtener esta información, podrían utilizar, por ejemplo, el protocolo de reconstrucción de un esquema de compartición de secretos verificable. Esto es, todas las unidades que tienen la información se limitan a enviarla a la unidad que la requiere y ésta puede emplear un método de decisión basado en votación por mayoría para discriminar qué información es la correcta. A continuación describimos el protocolo con más detalle:

Protocolo 2 (esto es sólo una posible realización, y no todos los pasos citados son esenciales y obligatorios en todas las realizaciones de la presente invención):

1. Generación de K A ¡ y K B ¡: KGU A y KGU B realizan s sesiones independientes de generación de claves criptográficas, cada una de estas sesiones se realiza con un par de unidades diferentes CLPU A ¡ y CLPU A ¡, con i=1 , ... ,s. Para esto utilizan el "Canal C", el "Canal Cl. S. i A ", el "Canal Cl. S. i B ", y el "Canal Cl. A. ii AB " mostrados en la Figura 4. El resultado de cada sesión de generación de claves serán dos secuencias de bits, K A ¡ y K B ¡, que se supone que son una clave (epsilon_cor/s)-correcta y (epsilon_sec/s)-secreta (con epsilon_cor+epsilon_sec <epsilon), o el símbolo que indica aborto 1¡.

2. Distribución de porciones de K A ¡ y K B ¡: cada CLPU A ¡ divide K A ¡ en porciones y las envía a las otras CLPUs de la estación criptográfica A siguiendo, por ejemplo, el protocolo de distribución de un esquema de compartición de secretos verificable y utilizando los canales clásicos seguros "Canal Cl. S. il A " mostrados en la Figura 4, y todas las CLPU A i, con 1=1 , ..,s y l≠i, se confirman mutuamente que han recibido sus porciones. Sea K' A i¡j la j a porción de K A ¡ recibida por CLPU A i. Del mismo modo, las unidades CLPU B ¡ actúan de forma similar con K B ¡. Sea K' B i¡j la j a porción de K A ¡ recibida por CLPU B i.

3. Generación de K" A i¡j y K" B i¡j: cada CLPU A i, con 1=1 ,.., s, define localmente las secuencias de bits K" A i¡j , ... , 0M , K' A i¡j,0¡+i , ... , 0M], donde 0¡, con i=1 , ... , M, representa el vector cero de N bits, y M es el número de pares CLPU A ¡ y CLPU B ¡ que no produjeron el símbolo de abortar 1¡. Del mismo modo, las unidades CLPU B i actúan de forma similar y obtienen K" B i¡j.

Verificación de errores: Las CLPU A i, con 1=1 , ..,s, usan por ejemplo el protocolo RBS para seleccionar una secuencia aleatoria de bits y con ella eligen al azar una función hash 2-universal entre un conjunto preestablecido de funciones hash 2-universales. Luego, cada una de ellas calcula localmente un hash h A i¡j de una longitud digamos [log2 (4/epsilon_cor)l bits para todas sus secuencias de bits K" A i¡j, y por ejemplo las primeras 2t+1 CLPU A i envían la función hash elegida a todas las CLPU B r a través de los canales clásicos autenticados "Canal Cl. A. II' AB " mostrados en la Figura 4, con 1 -1 , ..,s. Cada CLPU B r reconstruye localmente la función hash usando un método de decisión basado en votación por mayoría y obtiene para todas sus secuencias de bits K" B nj. A continuación, todas las CLPU A i y CLPU B r usan el protocolo de reconstrucción de un esquema de compartición de secretos verificable para obtener h A = h A n0. . . 0h A Mq y h B = h B n0. . . 0h B Mq, donde q=s!/[(s-t)!t!] es el número de porciones de cada K A ¡ y K B ¡. Para esto, se envían unas a otras las secuencias de bits h A i y h B r¡j a través de canales clásicos autenticados, y cada uno de ellos usa un método de decisión basado en votación por mayoría para obtener h A ¡j y h B ¡j a partir de h A i¡j y h B r¡j. Finalmente, cada CLPU A i y CLPU B r comprueba localmente que h A =h B . Si no son iguales, el resultado es el símbolo de abortar. Si son iguales, pasan al paso 5. Este paso de verificación de errores garantiza que K" A =K" A n0. . . ΘΚ' /iq y Κ" Β =Κ" Β ιιθ. . . 0K" B Mq son iguales excepto con probabilidad, como mucho, epsilon_cor, donde K" A ¡j indica la secuencia de bits que se obtendría de K" A iij usando votación por mayoría, y la definición de K" B ¡j es análoga.

Amplificación de privacidad: las CLPU A i usan por ejemplo el protocolo RBS para seleccionar aleatoriamente una función hash 2-universal, hashPA, entre un conjunto preestablecido de ellas. Calculan hashPA(K" A i¡j), y, por ejemplo, las 2t+1 primeras CLPU A i envían la función hashPA a todas las CLPU B r a través de los canales clásicos autenticados "A.C. channel ll' AB " mostrados en la Figura 4, con 1 -1 , ..,s. Luego, las CLPU B r usan un método de decisión basado en votación por mayoría para determinar hashPA a partir de la información recibida y calculan La función hashPA transforma las secuencias de (M*N) bits K" A i¡j y K" B nj en dos secuencias de bits más cortas, K A i¡j y Κ Β π, respectivamente, de un tamaño aproximado de (M-2*t)*N-[log2 (4/epsilon_cor)l bits. La razón para sustraer 2*t*N bits es que, en el peor de los casos, la presencia de t partes deshonestas CLPU A i y t partes independientes deshonestas CLPU B r podría resultar en 2*t pares deshonestos CLPU A , y CLPU B i, con 1=1 , ... , s, y, por lo tanto, 2*t*N bits de K" A podrían estar comprometidos.

Si t<M A ¡/3 y t<M B ¡/3 para todos los i=1 , ... , M, donde M A ¡ indica el número de CLPU A i que no producen el símbolo de abortar, sino que generan porciones post-procesadas, K A i¡j, a partir de K A ¡, y M B ¡ indica el número de CLPU B r que no producen el símbolo de abortar, sino que generan porciones post-procesadas, Κ¾ a partir de K B ¡, entonces las secuencias de bits K A i¡j y Κ¾ producidas por las unidades CLPU A i y CLPU B r en el paso 5 del Protocolo 2 son porciones de una clave final epsilon-segura, K A y K B . Como se mencionó anteriormente, en este escenario a las unidades CLPU A ¡ y CLPU B ¡ sólo se les permite producir porciones de K A y K B . Por ejemplo, un laboratorio seguro ubicado en la estación criptográfica A podría usar votación por mayoría para obtener K A ¡j a partir de las secuencias K . Del mismo modo, un laboratorio seguro ubicado en la estación criptográfica B podría usar votación por mayoría para obtener K B a partir de las secuencias K B r¡j. De este modo, la clave final podría obtenerse como K A =

K A 110. . . ®K A Mq y K B = K B 110. . . ®K B Mq. A continuación presentamos un segundo ejemplo de protocolo que puede proporcionar una distribución segura de claves criptográficas con unidades clásicas de post-procesado de datos no confiables (véase el Protocolo 3, a continuación). Este protocolo presenta dos ventajas principales con respecto al Protocolo 2. En primer lugar, no requiere ejecutar s sesiones independientes de generación de claves, sino que puede generar una clave criptográfica epsilon-segura a partir de la ejecución una única sesión de generación de claves. Y, en segundo lugar, es más eficiente en términos de la tasa de generación de clave secreta, ya que proporciona una tasa de generación de clave secreta que podría ser en torno a s/(s-2*t) veces mayor que la proporcionada por el Protocolo 2. Si bien el ámbito de protección de la presente invención es general, para facilitar la descripción del Protocolo 3, consideraremos a continuación que el procedimiento de generación de clave criptográfica no usa una post-selección aleatoria de datos de la clave bruta (no obstante, la invención puede aplicarse a otros casos más complejos en los que se lleva a cabo una post-selección aleatoria de datos de la clave bruta). Además, para facilitar la ilustración, se supondrá que el protocolo clásico de post-procesado de datos no estima el valor de la QBER real, sino que utiliza un valor de QBER preestablecido para el protocolo de corrección de errores, seguido de un paso de verificación de errores. El Protocolo 3 que se indica a continuación puede descomponerse en dos pasos conceptuales principales. En un primer paso, KGU A y KGU B generan una clave bruta, R A y R B respectivamente. A continuación viene un paso clave en esta realización de la invención. KGU A divide R A en porciones utilizando, por ejemplo, el protocolo de distribución de un esquema de compartición de secretos verificable y luego envía esas porciones a las unidades CLPU A ¡. Este paso se ilustra en la Figura 4, donde S A ¡ representa las porciones de R A que se envían a CLPU A ¡ a través del canal seguro "Canal Cl. S. i A ". Del mismo modo, se envía R B a las unidades CLPU B ¡ dividida en porciones. Entonces, en un segundo paso, cada CLPU A ¡ y CLPU B ¡' con i,i'=1 , ... ,s, aplica el protocolo clásico de postprocesado de datos a las porciones recibidas. Esto es, cada CLPU puede aplicar una post-selección de datos, añadir ruido, realiar la estimación de parámetros, la reconciliación de la información y la amplificación de privacidad en un entorno distribuido actuando directamente sobre las porciones recibidas. Como en el caso de los pasos 4 y 5 del Protocolo 2, esto es posible porque todas estas técnicas de postprocesado de datos emplean funciones simples de álgebra lineal y por lo tanto son fácilmente implementables actuando sólo sobre porciones. A continuación describimos los pasos del Protocolo 3 con más detalle:

Protocolo 3 (esto es solamente una posible realización, y no todos los pasos citados son esenciales y obligatorios en todas las realizaciones de la presente invención): 1. Distribución de R A y R B : KGU A y KGU B generan primero una clave bruta,

R A y R B . A continuación, KGU A utiliza el protocolo de distribución de un esquema de compartición de secretos verificable para crear q=s!/[(s-t)!t!] porciones de R A y luego las distribuye entre las CLPU A ¡, con i = 1 ,...,s, utilizando los canales clásicos seguros "Canal Cl. S. i A " mostrados en la Figura 4. Por ejemplo, para ello KGU A puede utilizar el protocolo de distribución descrito anteriormente. A su vez, KGU B hace lo mismo con R B y las unidades CLPU B ¡ con i= 1 ,...,s. Sea K' A ¡j la j a porción de R A recibida por CLPU A ¡ y sea K' B ¡j la j a porción de R B recibida por CLPU B ¡ (j=1 ,....,q). El conjunto de porciones K' A ¡j recibidas por CLPU A ¡ y el conjunto de porciones K' B ¡j recibidas por CLPU B ¡ están representadas en la Figura 4 como S A ¡ y S B ¡ respectivamente.

Post-selección de datos: cada CLPU A ¡ para todos los i extrae de las porciones K' A ¡j recibidas dos secuencias de bits: K' A ¡j,key y K' A ¡j,est. La primera secuencia de bits se utilizará para generar la clave (transformada en una clave segura gracias al post-procesado de datos) y la segunda secuencia de bits se utilizará para la estimación de parámetros. A su vez, cada CLPU B ¡ para todas las i hace lo mismo con K' B ¡j para obtener K' A ¡j,key y .est-

Estimación de parámetros: todas las CLPU A ¡ y CLPU B ¡', con i,i'=1 , ... ,s, usan el protocolo de reconstrucción de un esquema de compartición de secretos verificable para obtener tanto K A es t como K B es t, que son las partes de R A y R B que se utilizan para la estimación de parámetros. Para ello, se envían sus porciones K' A ¡j,est y K' B ¡' j , es t a través de canales clásicos autenticados. Esto es, cada unidad CLPU A ¡ recibe las porciones K' A ¡j,est y K B ¡'j,est que están en manos de todas las demás CLPUs. Del mismo modo, cada unidad CLPU B ¡ recibe las porciones K' A ¡j,est y K B ¡'j, es t que están en manos de todas las demás CLPUs. A continuación, cada una de ellas utiliza votación por mayoría para obtener tanto K A j, es t como K B j, es t a partir de K' A ¡j,est y K' B ¡j,est para todos los j=1 ,...,q. Posteriormente, calculan . . 0K A q ,est y K B i , es t0. . . 0K B q , es t. Con esta información, cada CLPU A ¡ y CLPU B ¡' realiza localmente el paso de estimación de parámetros del protocolo (por ejemplo, calculan la tasa cuántica de error de fase). Si la tasa cuántica de error de fase es demasiado alta, se genera el símbolo de abortar.

Corrección de errores: las CLPU A ¡ y CLPU B ¡ ejecutan un protocolo de corrección de errores en las partes de R A y R B que se utilizan para la extracción de la clave, K' y y K' B k ey . Este proceso se realiza actuando sobre sus porciones K' A ¡j,key y K' B ¡j,ke y respectivamente. Para ello, cada CLPU A ¡ aplica ciertas matrices MEC a K' A ¡j,ke y para obtener

Del mismo modo, cada CLPU B ¡ aplica MEC a K' B ¡j,ke y para obtener Después, CLPU A ¡ y CLPU B ¡ utilizan el protocolo de reconstrucción de un esquema de compartición de secretos verificable para garantizar que todas las CLPU B ¡ puedan obtener y Para ello, todas las CLPU A ¡ envían a todas las CLPU B ¡' las secuencias de bits s A ¡j a través del canal clásico autenticado "Canal Cl. A. ii' AB " mostrado en la Figura 4. Además, todas las CLPU B ¡ de la estación criptográfica B se envían mutuamente las secuencias de bits s B a través de canales clásicos autenticados. Luego, cada CLPU B ¡ usa votación por mayoría para reconstruir localmente s A j y s B j, para todos los j, a partir de s A ¡j y s B ¡j. Por último, obtienen . . 0s B q . A continuación, las CLPUs de la estación criptográfica B corrigen K' B k ey . Para esto, digamos que todas las CLPU B ¡ que tienen por ejemplo la j a porción K' B ¡j,k ey de K' B k ey para un índice prefijado j=1 ,...,q, realizan la operación NOT o de negación lógica de ciertos bits de esta porción dependiendo del valor de s A y s B . Todo este proceso se repite hasta que finaliza el protocolo de corrección de errores. El final del protocolo de corrección de errores viene determinado por el protocolo concreto de corrección de errores implementado, así como por el valor de la QBER. Sean K A e y y K B ¡j,k ey las porciones K' A ¡j,k ey y K' B ¡j,k ey después de la corrección de errores, y sean leakEc bits la información de síndrome. Aquí la información de síndrome hace referencia a la información que las CLPUs de una estación criptográfica envían a las CLPUs de la otra estación criptográfica (y viceversa) durante el protocolo de corrección de errores. Por ejemplo, en cada iteración del protocolo de corrección de errores las CLPUs de la estación criptográfica A envían |s A | bits de información de síndrome a las CLPUs de la estación criptográfica B.

Verificación de errores: las CLPU A ¡, con i=1 , ... ,s, usan el protocolo RBS para seleccionar aleatoriamente una función hash 2-universal. Luego, cada una de ellas calcula localmente un hash de una longitud digamos de [log2 (4/epsilon_cor)l bits y por ejemplo las primeras 2t+1 CLPU A ¡ envían la función hash a todas las CLPU B ¡', con i'=1 , ... ,s, a través de los canales clásicos autenticados "Canal Cl. A. ii' AB " mostrados en la Figura 4. Cada CLPU B ¡ reconstruye localmente la función hash mediante votación por mayoría y obtiene A continuación, todas las CLPU A ¡ y CLPU B ¡ utilizan el protocolo de reconstrucción de un esquema de compartición de secretos verificable para obtener tanto h A = h A i0. . . 0h A q como h B = h B i0. . . 0h B q a partir de h A ¡j and h B ¡j. Para ello, se envían mutuamente h A ¡j y h B ¡j a través de canales clásicos autenticados. Esto es, cada unidad CLPU A ¡' recibe las porciones h A ¡j y h B ¡j que están en manos de todas las demás CLPUs. Del mismo modo, cada unidad CLPU B ¡' recibe las porciones h A y h B que están en manos de todas las demás CLPUs. Luego, cada una de ellas utiliza votación por mayoría para determinar tanto h A j como h B j para todos los j a partir de h A ¡j y h B . Por último, cada una de ellas comprueba localmente si h A =h B o no. Si no son iguales, generan el símbolo de abortar. Si son iguales, avanzan al paso 6. Este paso de verificación de errores garantiza que ,ke y ©. . .0K A q ,key y ,k ey 0. . .0K B q ,key sean iguales excepto con probabilidad, como mucho, epsilon_cor, donde K A j,k ey y K B j,k ey indican, respectivamente, las secuencias de bits que se obtendrían de Κ Α β Υ y K B ¡j,key utilizando votación por mayoría.

Amplificación de privacidad: las CLPU A ¡ usan por ejemplo el protocolo RBS para seleccionar aleatoriamente una función hash 2-universal, hashPA. Luego, calculan y por ejemplo las 2t+1 primeras CLPU A ¡ envían la función hashPA a todas las CLPU B ¡' a través de los canales clásicos autenticados "Canal Cl. A. ii' AB " mostrados en la Figura 4, con i'=1 , ... ,s. A continuación, las CLPU B ¡ usan votación por mayoría para determinar la función hashPA a partir de la información recibida y calculan La función hashPA elimina la información parcial que Eve podría tener sobre la clave final, K A y K B , lo cual incluye la información de síndrome leakEc revelada durante el protocolo de reconciliación de la información, el valor de hash revelado durante el protocolo de verificación de errores, así como la información adicional que Eve podría tener sobre la clave y que puede calcularse a partir de la tasa cuántica de error de fase.

Nótese que si el número de unidades deshonestas CLPU A ¡ satisface Ϊ<ΜΑ/3 y el número de unidades deshonestas CLPU B ¡ satisface Ϊ<ΜΒ/3, donde MA es el número de unidades CLPU A ¡ que no abortan y MB es el número de unidades CLPU B ¡ que no abortan, entonces a partir de las secuencias de bits K y K producidas en el paso 6 del Protocolo 3 es posible reconstruir una clave epsilon-segura, K A y K B . Para ello, por ejemplo un laboratorio seguro situado en la estación criptográfica A podría utilizar votación por mayoría para obtener K a partir de K para todos los j=1 , ... ,q. Del mismo modo, por ejemplo, un laboratorio seguro situado en la estación criptográfica B podría utilizar votación por mayoría para obtener K a partir de K para todos los j=1 , ... ,q. Finalmente se tiene que Κ Α Α ιθ. . . 0K A q y Κ Β Β ιθ. . . 0K B q .

Nótese que los Protocolos 2 y 3 son sólo ejemplos no limitativos de realizaciones de la invención. Asimismo, nótese que estos protocolos pueden ser modificados para garantizar seguridad frente a estructuras adversarias generales. Para ello, se podría básicamente sustituir el esquema de compartición de secretos verificable descrito arriba, y que es seguro frente a estructuras adversarias de tipo umbral, por otro conocido robusto frente a estructuras adversarias generales (véase, por ejemplo, Maurer, U. Secure multi-party computation made simple. Discrete Appl. Math. 154, 370-381 (2006)), y, además, el método para anunciar las funciones hash y hashPA puede depender ahora de la estructura adversaria. Es importante señalar que los

Protocolos 2 y 3 destacan una contribución fundamental de la presente invención, que es que el uso de esquemas de compartición de secretos podría garantizar la seguridad de los sistemas de distribución de claves criptográficas en presencia de CLPUs deshonestas.

D. Escenario 3: Un método de distribución de claves con unidades de generación de claves no confiables y unidades clásicas de post-procesado de datos no confiables en una estación criptográfica Aquí se considera el escenario más general (realización preferente de la invención), en el que tanto las KGUs como las CLPUs de una estación criptográfica pueden no ser confiables. Una vez más, para garantizar la seguridad se utilizan múltiples CLPUs y KGUs en cada estación criptográfica, como se muestra en la Figura 6, donde hay dos estaciones criptográficas, A y B, en presencia de un espía, Eve, y cada estación criptográfica contiene más de una unidad de generación de claves criptográficas, KGU, y más de una unidad clásica de post-procesado de datos, CLPU. Como en los escenarios anteriores, con fines ilustrativos describiremos a continuación la situación más sencilla de una estructura adversaria activa de tipo umbral con un número fijo de KGUs y CLPUs deshonestas, todas controladas activamente por Eve. Más concretamente, consideremos la situación en la que la estación criptográfica A tiene n unidades KGU KGU A 2 , ... , KGU A n , así como s unidades CLPU CLPU A 2 , ... , CLPU A S , y la estación criptográfica B tiene n unidades KGU B i , KGU B 2 , ... , KGU B n y s' unidades CLPU B i , CLPU B 2 , ... , CLPU B S ' (aquí se supone que las estaciones A y B tienen el mismo número de KGUs, aunque esto es sólo un ejemplo ilustrativo y pueden tener un número diferente de KGUs). Consideremos también que hasta t<s/3 unidades CLPU A i, hasta t'<s'/3 unidades CLPU B j y hasta t"<n pares de unidades de generación de claves KGU A ¡ y KGU B ¡ con i=1 , ... ,n, podrían ser deshonestos (no confiables) y estar controlados activamente por Eve. Un par de unidades KGU A ¡ y KGU B ¡ es deshonesto si al menos una de sus unidades es deshonesta. Esto es sólo un ejemplo no limitativo y, por supuesto, la invención puede ser aplicada a cualquier estructura adversaria general.

Una vez más, dado que algunas CLPUs son deshonestas, a ninguna de ellas se le permite acceder a la clave criptográfica final, K A y K B , sino que únicamente pueden producir porciones de ésta. Por ejemplo, en la Figura 6, las porciones de K A que produce CLPU A i (para 1=1 , 2, ..,s) se denotan como K A i xy para determinados índices x e y, y del mismo modo las porciones de K B que produce CLPU B j (para j=1 ,2,..,s') se denotan como Κ . También, como en los casos anteriores, consideramos que cada KGU A ¡ está conectada a cada CLPU A i a través de un canal de comunicaciones clásico

(convencional) seguro (indicado como "Canal Cl. S. il A " en la Figura 6), con i=1 , ... ,n y 1=1 ,... ,s, cada KGU B ¡ está conectada a cada CLPU B j a través de un canal de comunicaciones clásico (convencional) seguro (indicado como "Canal Cl. S. ij B " en la Figura 6), con j= 1 , ... ,s', cada par de unidades CLPU A i y CLPU A r, con 1,1 -1 , ... ,s, está conectado entre sí a través de un canal de comunicaciones clásico (convencional) seguro (indicado como "Canal Cl. S. ΙΓ Α "' en la Figura 6), cada par de unidades CLPU B j y CLPU B j ', con j,j'=1 , ... ,s', está conectado entre sí a través de un canal de comunicaciones clásico (convencional) seguro (indicado como "Canal Cl. S. jj' B "' en la Figura 6), cada par de unidades CLPU A i y CLPU B j está conectado entre sí a través de un canal de comunicaciones clásico (convencional) autenticado (indicado como "Canal Cl. A. lj AB " en la Figura 6), y, en los sistemas QKD, cada par de unidades KGU A ¡ y KGU B ¡ está conectado entre sí a través de un canal cuántico (indicado como "Canal C. i" en la Figura 6 con i=1 , ... ,n), que es accesible a Eve.

Para ilustrar la invención, a continuación se describe un ejemplo de un protocolo (véase Protocolo 4) que podría ser utilizado para lograr distribución segura de claves criptográficas en este escenario según la presente invención. Para facilitar la descripción del protocolo, en este ejemplo consideramos que el número de CLPUs de la estación criptográfica A es igual al de B, es decir, s=s' (esto es sólo un ejemplo a título ilustrativo y las estaciones criptográficas pueden tener un número diferente de CLPUs). El Protocolo 4 puede descomponerse en dos pasos conceptuales principales. En un primer paso, cada par de unidades KGU A ¡ y KGU B ¡ genera una clave bruta y luego implementan, junto con las unidades clásicas de post-procesado de datos CLPU A i y CLPU B i, el Protocolo 3 descrito anteriormente. Como resultado, las unidades CLPU A i y CLPU B i, con 1=1 , ... , s, obtienen porciones de una clave (epsilon/n)-segura, K A ¡ y K B ¡ (i=1 ,.... ,n), o el símbolo de abortar 1¡. En concreto, sea K' A iij la j a porción de K A ¡ recibida por la CLPU A i, y del mismo modo sea K' B i¡j la j a porción de K B ¡ recibida por la CLPU B i. Además, para simplificar la discusión (aunque no con fines limitativos), consideremos por ejemplo que la longitud de todas las claves K A ¡ y

K B ¡ es N bits para todos los i. A continuación, las CLPUs proceden de forma similar al Protocolo 2. Esto es, las claves K A ¡ y K B ¡ se concatenan para formar K A' =[K K A 2, ... , K A M] y K B '= [K B i , K B 2, .. . , K B M], donde M indica el número de claves K A ¡ y K A ¡ que son diferentes del símbolo de abortar, y las CLPUs aplican un paso de amplificación de privacidad a K A' y K B' . Este paso de amplificación de la privacidad elimina la información que los pares deshonestos de KGUs podrían filtrar a Eve acerca de, por ejemplo, K A' . Este segundo paso se realiza en un escenario distribuido actuando sólo sobre las porciones K' A i¡j y K' B i¡j. A continuación se describe el protocolo con más detalle: Protocolo 4 (esto es solamente una posible realización, y no todos los pasos citados son esenciales y obligatorios en todas las realizaciones de la presente invención):

1. Generación y distribución de porciones de K A ¡ y K B ¡: cada par KGU A ¡ y KGU B ¡, con i=1 , ... ,n, genera una clave bruta y luego implementa, junto con las unidades clásicas de post-procesado de datos CLPU A i y CLPU B i, todos los pasos del Protocolo 3 descrito anteriormente. Como resultado, las unidades CLPU A i y CLPU B i, con 1=1 , ... , s, obtienen porciones de una clave (epsilon/n)- segura, K A ¡ y K B ¡, o el símbolo de abortar 1¡. Sea K' A i¡j la j a porción de K A ¡ recibida por la CLPU A i, y del mismo modo sea K' B i¡j la j a porción de K B ¡ recibida por la CLPU B i.

2. Generación de K" A i¡j y K" B i¡j: cada CLPU A i, con 1=1 , ..,s, define localmente las secuencias de bits K" A i¡j , 0M , K' A IÜ,0¡+I , 0M], donde 0¡, con i=1 , ... , M, representa el vector cero de N bits, y M es el número de claves K A ¡ y K B ¡ que son diferentes del símbolo de abortar 1¡. Del mismo modo, las unidades CLPU B i actúan de forma similar y obtienen Κ"

3. Amplificación de privacidad: las CLPU A i usan el protocolo RBS para seleccionar aleatoriamente una función hash 2-universal, hashPA. Calculan y por ejemplo las 2t+1 primeras CLPU A i envían la función hashPA a todas las CLPU B r a través de los canales clásicos autenticados "Canal Cl. A. II' AB " que se muestran en la Figura 6, con 1 -1 ,..,s. A continuación, las CLPU B i' usan votación por mayoría para determinar la función hashPA a partir de la información recibida y calculan La función hashPA transforma las secuencias K" A i¡j y K" B nj de (M*N) bits en dos secuencias de bits más cortas, K A i¡j y Κ Β π, respectivamente, de un tamaño aproximado de (M-t")*N bits.

Si t<M A ¡/3 y t'<M B ¡/3 para todos los i=1 , ... , M, donde M A ¡ indica el número de CLPU A i que no producen el símbolo de abortar, sino que generan porciones post-procesadas, K A i¡j, a partir de K A ¡, y M B ¡ indica el número de CLPU B r que no producen el símbolo de abortar, sino que generan porciones post-procesadas, Κ¾ a partir de K B ¡, entonces podrá reconstruirse una clave final epsilon-segura, K A y K B , a partir de las porciones K A i¡j y K B r¡j siguiendo el mismo procedimiento que reconstruye la clave criptográfica final del Protocolo 2. Nótese que el Protocolo 4 es sólo un ejemplo de una realización de la invención. Siguiendo ideas similares, se podrían definir protocolos alternativos que también permitan la distribución segura de claves criptográficas en este escenario. Por ejemplo, se podría sustituir el primer paso del Protocolo 4 por un paso en el que cada grupo de unidades KGU A ¡, KGU B ¡, CLPU A ¡ y CLPU B ¡, con i=1 , ... ,n, realice primero una sesión de generación de claves para producir una clave epsilon- segura, K A ¡ y K B ¡, o el símbolo de abortar 1¡, seguido por la distribución de K A ¡ entre todas las CLPU A i y la distribución de K B ¡ entre todas las CLPU B r usando el protocolo de distribución de un esquema de compartición de secretos verificable. En este último caso, para poder garantizar que la clave final sea correcta, se podría incluir un paso de verificación de errores implementado en un entorno distribuido actuando sobre porciones de la clave. Asimismo, nótese que el Protocolo 4 y protocolos similares podrían modificarse para garantizar seguridad frente a estructuras adversarias generales, siguiendo las técnicas explicadas para los dos escenarios anteriores. Es importante destacar que el ejemplo ofrecido por el Protocolo 4 ilustra una contribución fundamental de la invención, a saber, la combinación de esquemas de compartición de secretos y técnicas de amplificación de privacidad podrían garantizar la distribución segura de claves criptográficas con KGUs y CLPUs deshonestas. En resumen, puede afirmarse que el objetivo principal de la presente invención es obtener un sistema de generación de claves criptográficas seguro con componentes fabricados y/o adquiridos a varios proveedores no confiables. La invención puede utilizarse como defensa tanto ante unidades de generación de claves (KGUs) no confiables como ante unidades clásicas de post-procesado de datos (CLPUs) no confiables. Además, la presente invención tiene la ventaja adicional de ser robusta ante un ataque de denegación de servicio, ya que la confianza está distribuida entre múltiples KGUs que podrían estar usando canales totalmente distintos.

En aras de la simplicidad, hasta ahora se ha discutido la invención para ejemplos específicos donde solamente hay dos usuarios. Debe tenerse en cuenta que se puede aplicar a un entorno de red en el que hay múltiples usuarios (y por lo tanto múltiples estaciones criptográficas). Además, se puede aplicar a una configuración de red en la que los múltiples usuarios se conectan entre sí a través de varias rutas, y permite a los usuarios combinar las múltiples claves generadas a partir de las múltiples rutas en una clave final que es segura frente a dispositivos no confiables y también es segura frente a rutas comprometidas que contengan nodos controlados por un espía. Además, en aras de la simplicidad, hemos asumido que cada usuario se encuentra físicamente en una sola estación criptográfica local. Nótese sin embargo que lo que representamos como una sola estación criptográfica en las

Figuras 3, 4 y 6 podría ser potencialmente un conjunto de nodos físicos que se distribuyen en ubicaciones distantes en una red de comunicaciones.

La invención puede combinarse con relés tanto confiables como no confiables. Además, la invención puede aplicarse a una configuración de QKD que no necesita caracterizar el dispositivo de medición que mide los fotones recibidos (del término anglosajón "measurement-device-independent QKD") en la que un intermediario no confiable, Charles, realiza algunas mediciones (por ejemplo, mediciones para determinar el estado de Bell) en los estados cuánticos enviados por las estaciones criptográficas de Alice y Bob. Además, la invención puede combinarse con repetidores cuánticos.

La invención puede combinarse con varios protocolos clásicos de post-procesado de datos, incluidos protocolos de post-selección o, como ya se mencionó anteriormente, protocolos que añaden ruido.

La invención es compatible con varios protocolos de QKD, incluidos, por ejemplo, QKD con estados señuelo, el protocolo COW, el protocolo QKD RR-DPS y QKD basada en estados cuánticos entrelazados. También se puede aplicar a diversos esquemas de codificación de la información y a sistemas de QKD basados tanto en variable discreta como en variable continua.

Aunque hemos discutido nuestra invención en el marco de seguridad de la composabilidad (en el que un protocolo puede combinarse con otros de forma arbitraria), la presente invención también se puede aplicar a otros marcos de seguridad, entre ellos uno que implica suposiciones computacionales.

Si bien se ha descrito la invención con referencia a su realización preferente y realizaciones alternativas, se observará que se pueden efectuar diversas modificaciones a las partes y métodos que la componen, sin alejarse de su espíritu ni de su ámbito de protección.

Una persona experta en la técnica reconocería fácilmente que algunos pasos de varios de los métodos descritos anteriormente pueden ser realizados por computadoras programadas. Aquí, algunas realizaciones también están pensadas para abarcar dispositivos de almacenaje de programas, por ejemplo, medios de almacenaje de datos digitales, que son legibles por máquinas o computadoras y codifican programas de instrucciones ejecutables por máquinas o computadoras, en los que dichas instrucciones realizan algunos o todos los pasos de dichos métodos descritos anteriormente. Los dispositivos de almacenaje de programas pueden ser, por ejemplo, memorias digitales, medios de almacenaje magnéticos, como discos magnéticos y cintas magnéticas, discos duros, o medios de almacenaje de datos digitales de lectura óptica. Las realizaciones también están pensadas para abarcar computadoras programadas para llevar a cabo dichos pasos de los métodos descritos anteriormente.

La descripción y los dibujos se limitan a ilustrar los principios de la invención. Aunque la presente invención se ha descrito haciendo referencia a realizaciones específicas, los expertos en la materia entenderán que pueden efectuarse modificaciones, omisiones y adiciones a la forma y los detalles descritos en este documento, sin apartarse del ámbito de la invención, según se define mediante las siguientes reivindicaciones. Además, todos los ejemplos que aquí se enumeran se ofrecen principal y expresamente con fines pedagógicos, para ayudar al lector a entender los principios de la invención y los conceptos que aporta(n) el/los inventores para extender la técnica, y deben interpretarse de manera no limitativa a dichos ejemplos y condiciones específicamente enumerados. Además, se entienden que todas las menciones del presente documento a principios, aspectos y realizaciones de la invención, así como ejemplos específicos suyos, abarcan asimismo equivalentes de éstos.

Los expertos en la materia entenderán que cualquier diagrama de bloques que figure en este documento representa vistas conceptuales de circuitos ilustrativos que incorporan los principios de la invención. Del mismo modo, se entenderá que cualquier representación gráfica de funcionamiento, diagrama de flujo, diagrama de transición de estado, pseudocódigo y similares representan varios procesos que pueden ser representados sustancialmente en un medio legible por ordenador y ejecutados de esta manera por un ordenador o procesador, independientemente de que dicho ordenador o procesador se muestre o no de forma explícita.