ES2858435T3 - Dispositivos y método de intercambio de claves - Google Patents

Dispositivos y método de intercambio de claves Download PDF

Info

Publication number
ES2858435T3
ES2858435T3 ES18707865T ES18707865T ES2858435T3 ES 2858435 T3 ES2858435 T3 ES 2858435T3 ES 18707865 T ES18707865 T ES 18707865T ES 18707865 T ES18707865 T ES 18707865T ES 2858435 T3 ES2858435 T3 ES 2858435T3
Authority
ES
Spain
Prior art keywords
matrix
network node
key
module
shared
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES18707865T
Other languages
English (en)
Other versions
ES2858435T8 (es
Inventor
Sauvik Bhattacharya
Morchon Oscar Garcia
Ludovicus TOLHUIZEN
Ronald Rietman
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips NV filed Critical Koninklijke Philips NV
Application granted granted Critical
Publication of ES2858435T3 publication Critical patent/ES2858435T3/es
Publication of ES2858435T8 publication Critical patent/ES2858435T8/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0847Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving identity based encryption [IBE] schemes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

Un primer nodo de red electrónico (110) configurado para un protocolo de intercambio de claves, KEX, comprendiendo el primer nodo de red - una interfaz de comunicación (120) dispuesta para comunicación digital con un segundo nodo de red, - un circuito procesador configurado para - obtener una matriz compartida A, siendo la matriz compartida A compartida con el segundo nodo de red a través de la interfaz de comunicación, siendo las entradas en la matriz compartida A seleccionadas módulo un primer módulo q, - generar una matriz de clave privada SI, estando las entradas en la matriz de clave privada SI limitadas en valor absoluto por un límite s, - generar una matriz de clave pública PI - calculando un producto de matriz entre la matriz compartida A y la matriz de clave privada SI, obteniendo módulo el primer módulo q un producto de matriz - escalando las entradas en el producto de matriz descendentemente a un segundo módulo p, siendo una entrada escalada igual a la entrada no escalada multiplicada por el segundo módulo p, dividida por el primer módulo q y redondeada al entero más cercano, siendo el segundo módulo p más pequeño que el primer módulo q, siendo el límite s como máximo el segundo módulo p, - enviar la matriz de clave pública PI del primer nodo de red al segundo nodo de red, - recibir una matriz de clave pública PR del segundo nodo de red, - calcular una clave sin procesar como un producto de matriz entre la clave pública recibida PR del segundo nodo y la matriz de clave privada SI del primer nodo de red módulo el segundo módulo p, en donde el primer nodo de red está configurado adicionalmente para - recibir datos de reconciliación h del segundo nodo de red, - calcular una clave compartida aplicando una función de reconciliación rec a los datos de reconciliación recibidos h y a la clave sin procesar, o en donde el primer nodo de red está configurado adicionalmente para - obtener la clave compartida y datos de reconciliación h a partir de la clave sin procesar, - enviar los datos de reconciliación h al segundo nodo de red.

Description

DESCRIPCIÓN
Dispositivos y método de intercambio de claves
Campo de la invención
La invención se refiere a un nodo de red, un método de acuerdo de clave y un medio legible por ordenador.
Antecedentes de la invención
En criptografía, un protocolo de acuerdo de clave es un protocolo por el que dos o más partes que pueden no compartir aún una clave común pueden acordar una clave de este tipo. Preferentemente, ambas partes pueden influenciar el resultado de modo que ninguna parte puede forzar la elección de clave. Un atacante que intercepta todas las comunicaciones entre las dos partes no debería descubrir nada acerca de la clave. Además, mientras el atacante que ve la misma comunicación no descubre nada o descubre poco, las propias partes pueden derivar una clave compartida.
Los protocolos de acuerdo de clave son útiles, por ejemplo, para asegurar comunicaciones, por ejemplo, para encriptar y/o autenticar mensajes entre las partes.
Los protocolos de acuerdos de clave prácticos se introdujeron en 1976 cuando Whitfield Diffie y Martin Hellman introdujeron el concepto de criptografía de clave pública. Propusieron un sistema para el acuerdo de clave entre dos partes que hace uso de la aparente dificultad de calcular logaritmos sobre un campo finito GF(q) con q elementos. Usando el sistema, dos usuarios pueden acordar una clave simétrica. La clave simétrica puede usarse a continuación para, digamos, comunicación encriptada entre las dos partes.
Los métodos de acuerdo de clave actuales aplicables cuando las partes aún no tienen un secreto compartido, tal como el método de acuerdo de clave de Diffie-Hellman, requiere operaciones matemáticas que consumen muchos recursos. Por ejemplo, Diffie-Hellman requiere que se realicen operaciones de exponenciación en un campo finito. Tanto el exponente como el tamaño de campo pueden ser grandes. Esto hace los protocolos de acuerdo de clave menos adecuados para dispositivos con recursos bajos. Por otra parte, los protocolos de acuerdo de clave serían muy útiles en dispositivos con recursos limitados. Por ejemplo, en áreas de aplicación tales como la Internet de las Cosas, redes inalámbricas ad-hoc y similares, podría usarse un acuerdo de clave para proteger enlaces entre dispositivos. Otro ejemplo es la comunicación entre un lector y una etiqueta electrónica, digamos un lector de tarjetas y una tarjeta inteligente, o un lector de etiquetas y etiqueta, por ejemplo, una etiqueta de RFID o una etiqueta de NFC. Sería ventajoso tener un protocolo de acuerdo de clave que sitúa una pequeña carga en al menos una de las dos partes, es decir, en la etiqueta electrónica.
Para facilitar una comunicación segura entre las partes, los protocolos de acuerdo de clave en ocasiones se subdividen adicionalmente en esquemas de intercambio de clave criptográfica (KEX) y encapsulamiento de clave criptográfica (KEM). Los esquemas de encapsulamiento de clave criptográfica (KEM) usan criptografía asimétrica para establecer un secreto compartido entre dos partes, usando un valor conocido públicamente (por ejemplo, clave pública) y un valor poseído secretamente (por ejemplo, clave privada) para cada parte.
Los esquemas de KEX implican el intercambio de claves públicas por cada parte, que se usa, a continuación, independientemente por la otra parte junto con su propia clave privada para calcular el secreto compartido común. Un ejemplo bien conocido de un esquema de k Ex es el intercambio de claves de Diffie-Hellman, mencionado anteriormente, cuya seguridad se basa en resolver el problema de logaritmo discreto. Una característica interesante de algunos esquemas de KEX es que el secreto compartido final real nunca se intercambia entre las partes, ni siquiera de forma encriptada, sino que se calcula independientemente por las dos partes en cada extremo. Esto resulta en una característica deseada conocida como secreto hacia delante, que asegura que incluso poner en compromiso una clave privada de largo plazo de una parte por un atacante en el futuro no comprometería el secreto del mensaje encriptado intercambiado en el pasado.
Los esquemas de KEM establecen un secreto compartido entre dos entidades o partes usando criptografía asimétrica por una parte, normalmente el iniciador de la comunicación, para encriptar (usando la clave pública de la otra parte) y transmitir un secreto compartido a la otra parte, conocida como el respondedor, que puede desencriptar, a continuación, el mismo (usando su clave privada) y, a continuación, usar el mismo para comunicación de forma segura con la parte de iniciador. Los esquemas de KEM no pueden conseguir secreto hacia delante, ya que cualquier atacante que compromete la clave privada de una parte para una sesión pasada y ha grabado todos los mensajes intercambiados entre las partes en esa sesión puede recuperar el secreto compartido para esa sesión particular.
Soluciones de técnica anterior adicionales se divulgan en los documentos: CESG: "Draft QSC-007 Key exchanges v0.0.1", ETSI DRAFT; QSC(16)008008, INSTITUTO EUROPEO DE NORMAS DE TELECOMUNICACIONES (ETSI), 650, ROUTE DES LUCIOLES ; F-06921 SOPHIA-ANTIPOLIS; FRANCIA, vol. ISG - QSC - Quantum Safe Cryptography, n.° 0.129 de octubre de 2016 (29-10-2016), páginas 1-18; JOPPE BOS ET AL: "Frodo", SEGURIDAD INFORMÁTICA Y COMUNICACIONES, ACM, 2 PENN PLAZA, SUITE 701 NUEVA YORK, NY 10121-0701 ESTADOS UNIDOS, 24 de octubre de 2016 (24-10-2016), páginas 1006-1018; y ERDEM ALKIM ET AL: "Post­ quantum key exchange - a new hope", ASOCIACIÓN INTERNACIONAL PARA LA INVESTIGACIÓN CRIPTOLÓGICA, vol. 20161116:063839, 16 de noviembre de 2016 (16-11-2016), páginas 1-22. Debido al aumento de necesidades de seguridad en la Internet de las Cosas, los esquemas de intercambio de claves también necesitan conseguir una alta eficiencia (es decir, requisitos de cantidad mínima de comunicación o de ancho de banda) mientras también permanecen seguros, contra adversarios clásicos así como con capacidad significativa.
Sumario de la invención
Se proporciona un nodo de red electrónico configurado para un protocolo de intercambio de claves. El nodo de red se denominará como el primer nodo de red para distinguir el mismo de un segundo nodo de red con el que se comunica.
El primer nodo de red comprende
- una interfaz de comunicación dispuesta para comunicación digital con un segundo nodo de red, y
- un circuito procesador configurado para
- obtener una matriz compartida, siendo la matriz compartida compartida con el segundo nodo de red a través de la interfaz de comunicación, siendo las entradas en la matriz compartida A seleccionadas módulo un primer módulo q,
- generar una matriz de clave privada, siendo las entradas en la matriz de clave privada números enteros limitados en valor absoluto por un límite,
- generar una matriz de clave pública
- calculando un producto de matriz entre la matriz compartida y la matriz de clave privada, obteniendo módulo el primer módulo un producto de matriz
- escalando las entradas en el producto de matriz descendentemente a un segundo módulo, siendo una entrada escalada igual a la entrada no escalada multiplicada por el segundo módulo, dividida por el primer módulo y redondeada al entero más cercano, siendo el segundo módulo más pequeño que el primer módulo, siendo el límite como máximo el segundo módulo,
- enviar la matriz de clave pública del primer nodo de red al segundo nodo de red,
- recibir una matriz de clave pública del segundo nodo de red,
- calcular una clave sin procesar como un producto de matriz entre la clave pública recibida del segundo nodo y la matriz de clave privada del primer nodo de red módulo el segundo módulo.
Debido a que la matriz de clave privada está limitada y la matriz de clave pública se escala descendentemente, se reduce la sobrecarga de cálculo y la comunicación del acuerdo de clave. Usando datos de reconciliación puede superarse la diferencia entre la matriz de clave sin procesar calculada en el primer y segundo nodo de red. Uno de los nodos calcula datos de reconciliación y el otro usa los mismos. Por ejemplo, el circuito procesador del primer nodo de red puede configurarse para
- recibir datos de reconciliación del segundo nodo de red,
- calcular una clave compartida aplicando una función de reconciliación a los datos de reconciliación recibidos y a la clave sin procesar, o el circuito procesador del primer nodo de red puede configurarse para
- obtener la clave compartida y datos de reconciliación a partir de la clave sin procesar,
- enviar los datos de reconciliación al segundo nodo de red.
Los nodos de red son dispositivos electrónicos. Por ejemplo, pueden ser dispositivos electrónicos móviles, tales como un teléfono móvil, tableta, o un ordenador con tarjeta inteligente. El nodo de red puede ser un decodificador de salón, ordenador, televisión y similares. El método de acuerdo de clave descrito en este documento puede aplicarse en una gran variedad de aplicaciones prácticas. Tales aplicaciones prácticas incluyen seguridad en la Internet (de las Cosas). Los protocolos pueden aplicarse a protocolos tales como IKE, TLS, SSH y otros. En general, el esquema propuesto es seguro poscuántico tanto para caso de uso de Internet general como para entornos con recursos limitados. Puede usarse acuerdo de clave siempre que se requiere una comunicación segura, por ejemplo confidencial, entre dos nodos. Esto puede ser en una red de sensores, pero también, por ejemplo, para asegurar transacciones financieras.
Un método de acuerdo con la invención puede implementarse en un ordenador como un método implementado por ordenador, o en hardware especializado o en una combinación de ambos. Código ejecutable para un método de acuerdo con la invención puede almacenarse en un producto de programa informático. Ejemplos de productos de programa informático incluyen dispositivos de memoria, dispositivos de almacenamiento óptico, circuitos integrados, servidores, software en línea, etc. Preferentemente, el producto de programa informático comprende código de programa no transitorio almacenado en un medio legible por ordenador para realizar un método de acuerdo con la invención cuando dicho producto de programa se ejecuta en un ordenador.
En una realización preferida, el programa informático comprende código de programa informático adaptado para realizar todas las etapas de un método de acuerdo con la invención cuando el programa informático se ejecuta en un ordenador. Preferentemente, el programa informático se incorpora en un medio legible por ordenador.
Otro aspecto de la invención proporciona un método de hacer el programa informático disponible para descarga. Este aspecto se usa cuando el programa informático se carga en, por ejemplo, la App Store de Apple, Play Store de Google o Windows Store de Microsoft, y cuando el programa informático está disponible para descarga desde una tienda de este tipo.
Breve descripción de los dibujos
Detalles adicionales, aspectos y realizaciones de la invención se describirán, a modo de ejemplo únicamente, con referencia a los dibujos. Elementos en las figuras se ilustran por simplicidad y claridad y no necesariamente se han dibujado a escala. En las figuras, elementos que corresponden a elementos ya descritos pueden tener los mismos números de referencia. En los dibujos,
la Figura 1 muestra esquemáticamente un ejemplo de una realización de una red de acuerdo de clave, la Figura 2 muestra esquemáticamente un ejemplo de una realización de una clave sin procesar,
la Figura 3 muestra esquemáticamente un ejemplo de una realización de un método de intercambio de clave electrónica,
la Figura 4a muestra esquemáticamente un medio legible por ordenador que tiene una parte grabable que comprende un programa informático de acuerdo con una realización,
la Figura 4b muestra esquemáticamente una representación de un sistema de procesador de acuerdo con una realización.
Lista de números de referencia en las Figuras 1-2:
100 una red de acuerdo de clave
110 un nodo de red de tipo iniciador
120 una interfaz de comunicación
130 una unidad de matriz compartida
140 una unidad de matriz de clave privada
150 una unidad de matriz de clave pública
160 una unidad de clave compartida
162 una clave sin procesar
164 datos de reconciliación (h)
166 una clave compartida
210 un nodo de red de tipo respondedor
220 una interfaz de comunicación
230 una unidad de matriz compartida
240 una unidad de matriz de clave privada
250 una unidad de matriz de clave pública
260 una unidad de clave compartida
262 una clave sin procesar
264 datos de reconciliación (h)
266 una clave compartida
300 una clave sin procesar
301 una parte más significativa
302 una parte significativa intermedia
303 una parte menos significativa
Descripción detallada de las realizaciones
Mientras esta invención es susceptible de realización de muchas formas diferentes, en los dibujos se muestran y en este documento se describirán en detalle una o más realizaciones específicas, con el entendimiento de que la presente divulgación se considerará como ilustrativa de los principios de la invención y no pretenderá limitar la invención a las realizaciones específicas mostradas y descritas.
A continuación, para su entendimiento, se describen elementos de las realizaciones en la operación. Sin embargo, será evidente que los respectivos elementos se disponen para realizar las funciones que se describen como realizadas por los mismos.
Además, la invención no se limita a las realizaciones, y la invención reside en todas y cada una de las características novedosas o combinación de características descritas en este documento o recitadas en reivindicaciones dependiente mutuamente diferentes.
La Figura 1 muestra esquemáticamente un ejemplo de una realización de una red de acuerdo de clave 100.
En la Figura 1 se muestran dos nodos de red en el sistema: un nodo de red 110 de tipo iniciador y un nodo de red 210 de tipo respondedor. En una realización del sistema de acuerdo de clave, el número de nodos puede ser mayor, incluso mucho mayor, que dos, por ejemplo, más de 1000 nodos, por ejemplo, más de 10A6 nodos.
La diferencia entre un nodo de red de tipo iniciador o respondedor es cómo se ocupa de los datos de reconciliación. Un nodo de red de tipo iniciador recibe datos de reconciliación y aplica los mismos para obtener la clave compartida, mientras que un nodo de red de tipo respondedor genera datos de reconciliación y envía los mismos al nodo de red de tipo iniciador. El nodo de red de tipo respondedor no necesita datos de reconciliación para obtener la clave compartida. Habitualmente, un tipo iniciador iniciará también el protocolo de acuerdo de clave entre los dos nodos de red, ya que este puede reducir el número de ciclos ejecutados entre los dos nodos de red. Sin embargo, no es necesario; el protocolo de acuerdo de clave también podría iniciarse por un nodo de red de tipo respondedor.
Adicionalmente, en una realización del nodo de red, el nodo de red está configurado para operar de acuerdo con un modo de iniciador y de acuerdo con un modo de respondedor. Por ejemplo, si el nodo de red inicia un acuerdo de clave, por ejemplo, envía un mensaje a otro nodo de red que señaliza el inicio del protocolo de acuerdo de clave, a continuación el nodo de red puede conmutar al modo de iniciador. Si el nodo de red responde a un acuerdo de clave, por ejemplo, recibe un mensaje desde otro nodo de red que señaliza el inicio del protocolo de acuerdo de clave, a continuación el nodo de red puede conmutar al modo de respondedor. Aunque esto es conveniente en la práctica, esta opción tampoco es estrictamente necesaria; por ejemplo, en un sistema de acuerdo de clave algunos modos pueden configurarse únicamente como iniciador y algunos pueden configurarse únicamente como nodos de respondedor. Una consecuencia de esto será que algunos nodos no pueden acordar una clave compartida juntos. Para algunas redes esto no necesita ser un problema, por ejemplo, en una red ad-hoc o redes inalámbricas ad-hoc, etc., siempre que de forma suficiente muchos pares de nodos de red puedan comunicarse y acordar una clave compartida.
El nodo de iniciador 110 comprende una interfaz de comunicación 120. El nodo de respondedor 210 comprende una interfaz de comunicación 220. Las interfaces de comunicaciones pueden disponerse para comunicación digital con los otros nodos en el sistema de acuerdo de clave. No es necesario sin embargo que todos los nodos en el sistema puedan alcanzarse en todo momento.
Las interfaces de comunicación 120 y 220 se disponen para comunicación digital. Por ejemplo, las interfaces de comunicaciones pueden disponerse para comunicarse a través de una red informática. Por ejemplo, la interfaz de comunicación puede disponerse para comunicación inalámbrica, por ejemplo, Wi-Fi, ZigBee, Bluetooth y similares, y/o por cable, por ejemplo, Ethernet, USB y similares. La comunicación entre los nodos 110 y 210 también puede ser una combinación de conexiones por cable e inalámbricas. Por ejemplo, los nodos en el sistema 100, incluyendo los nodos 110 y 120, pueden comprender un almacenamiento electrónico que contiene un identificador de comunicación, que identifica inequívocamente el nodo dentro del sistema 100. Por ejemplo, el identificador de comunicación puede incluirse en mensajes digitales intercambiados entre los nodos 110 y 210, por ejemplo, para dirigir el mensaje. Por ejemplo, el identificador de comunicación puede ser una dirección IP, una dirección de mAc y similares.
El nodo de red electrónico está configurado para un protocolo de intercambio de clave (KEX). El protocolo implica intercambiar mensajes entre los nodos 110 y 210 a través de las interfaces de comunicaciones 120 y 220, y realizar cálculos en, por ejemplo, datos recibidos desde el otro nodo. La ejecución del protocolo de acuerdo de clave se implementa en un circuito procesador, ejemplos del cual se muestran a continuación. La Figura 1 muestra unidades funcionales que pueden ser unidades funcionales del circuito procesador. Por ejemplo, la Figura 1 puede usarse como un modelo de una posible organización funcional del circuito procesador. El circuito procesador no se muestra separado las unidades en la Figura 1. Por ejemplo, las unidades funcionales mostradas en la Figura 1 también pueden implementarse total o parcialmente en instrucciones informáticas que se almacenan en los nodos de red y son ejecutables por un microprocesador del nodo de red.
El nodo de iniciador 110 y el nodo de respondedor 210 están configurados para un protocolo de intercambio de clave (KEX). Los esquemas de KEX implican el intercambio de datos públicos, a menudo denominados claves públicas, por cada parte, que se usan a continuación independientemente por la otra parte junto con sus datos privados, a menudo denominados clave privada, para calcular el secreto compartido común. Una característica interesante de algunas realizaciones es que el secreto compartido final real nunca se intercambia entre las partes, ni tan siguiera de forma encriptada, sino que se calcula independientemente por las dos partes en cada extremo. Esto resulta en una característica deseable conocida como secreto hacia delante, que asegura que incluso el compromiso de las claves privadas a largo plazo de una parte por un atacante en el futuro no comprometerá el secreto del mensaje encriptado intercambiado en el pasado.
Realizaciones de las invenciones no se basan en una tercera parte confiable para proporcionar comunicación confidencial. El canal de comunicación entre las interfaces de comunicación 120 y 220 no necesitan ser necesariamente un canal seguro. Los atacantes pueden ser capaces de interceptar el canal de comunicación. Incluso así, la clave que se acuerda entre nodos 110 y 210 puede ser segura. Si el canal de comunicación se protege contra alteraciones, puede obtenerse un grado de autenticación en la medida de lo previsto por el canal. Sin embargo, si el canal entre las interfaces de comunicación 120 y 220 no está protegido contra alteraciones, ningún esquema de KEX conseguirá la autenticación. Para obtener la autenticación, pueden combinarse realizaciones con cualquier mecanismo de autenticación conocido, por ejemplo, un mecanismo de autenticación implícito, por ejemplo, usando claves públicas certificadas, o un mecanismo de autenticación explícito, por ejemplo, usando firmas digitales.
Un ejemplo bien conocido de un esquema de KEX es el intercambio de clave de Diffie-Hellman, cuya seguridad se basa en resolver el problema de logaritmo discreto. En la invención, se define un mecanismo de intercambio de clave cuya dureza se basa en un así denominado problema de Aprendizaje con Redondeo (LWR). La dureza del problema de LWR puede basarse en la suposición de dureza del así denominado problema de Aprendizaje con Error (LWE) cuando se limita el número de instancias de LWE. Ya que la dureza del caso promedio del problema de LWE se basa en la dureza del peor caso de ciertos problemas basados en rejilla relacionados, que son difíciles de resolver para un ordenador cuántico, este esquema de intercambio de clave es un protocolo de acuerdo de clave seguro poscuántico.
El problema de Aprendizaje con Errores (LWE) es un problema matemáticamente complicado, que da origen a esquemas criptográficos poscuánticos debido a su presunta dificultad incluso contra ordenadores cuánticos y seguridad bien entendida. Sin embargo, los esquemas que surgen del mismo habitualmente son muy pesados en rendimiento con respecto a complejidades tanto de cálculo como comunicación. El problema de Aprendizaje con Errores (LWE) puede describirse como se indica a continuación:
c p 7 11
Para un vector de n dimensiones <? y una distribución de errores x sobre Zq, se obtiene la distribución de A LWE /" t, \
LWE n n,q,x v 5 / sobre 7 < n? X 7 <? eligiendo un vector a uniforme y aleatoriamente a partir de 7 < n? y un error e a partir de x, y proporcionando (a,b = (a,s) e) £ ZJ x Z„.
Figure imgf000006_0001
El problema de LWR es una versión "desaleatorizada" del problema de LWE, usando redondeo con un módulo "p" en lugar de insertar errores para ocultar información secreta, e introduciendo, a continuación, un error determinístico escalando descendentemente desde Zq (donde q es el módulo LWE original) a Zp.
vector a uniforme y aleatoriamente a partir de 7 * n ? ’ y proporcionando
Figure imgf000006_0002
En este punto, Lx! indica el entero más cercano a x. El problema de LWR de búsqueda se define en términos de encontrar el secreto s exactamente similar al problema de LWE de búsqueda. El problema de LWR de decisión es 4^lw r r s \ j n y
distinguir la distribución n-q’pK J de la distribución uniforme sobre ^v con m instancias para un s <— D fijo. Se ha mostrado que los problemas de LWR de búsqueda y decisión son al menos tan duros como los correspondientes problemas de LWE cuando m se limita de tal forma que 2mBp/q es una constante (donde B es un límite sobre los errores en el problema de LWE).
Los esquemas de intercambio de clave poscuánticos basándose en el problema de LWE poseen una confianza generalizada debido a la seguridad bien entendida del problema de LWE. Sin embargo, no existen ningún esquema de intercambio de clave basado en LWE que es ligero en rendimiento, capaz de usarse en entornos con recursos limitados. Los algoritmos existentes incluyen diversas operaciones que son lentas en dispositivos con recursos limitados, tales como: multiplicación de matriz módulo q, muestreado de una distribución de probabilidad tal como una distribución gaussiana, y cálculo o transmisión de matrices con grandes entradas.
En la invención, las dos partes generan dos matrices que son aproximadamente, pero no exactamente, iguales. Para llegar a un acuerdo exacto, se envían algunos datos de reconciliación. Se explica un esquema para hacerlo en una solicitud de patente del mismo solicitante, con título "REACHING AGREEMENT ON A SECRET VALUE", presentado a la OEP el 4 de noviembre de 2016, con número de solicitud 16197277.3; por ejemplo, el método en las páginas 7­ 10 puede usarse para reconciliación en realizaciones de acuerdo con la invención. También pueden adoptarse variantes divulgadas en otra parte en la solicitud de patente citada.
En esta solicitud, usaremos la siguiente notación para las siguientes tres funciones:
1. Función de redondeo
Figure imgf000007_0001
para q, bh, B e Z, bh~¿-1, B< log2 q - bh, sea B = log2 q - B. Entonces,
[■ ] B,bh-v -> [2~B.v] (mod 2b)
L l/ lo h íu ?log q-(B+bh)\ Intuitivamente, B,oh extrae los B bits más significativos de *■ >, donde el segundo componente es un factor de redondeo para garantizar errores de redondeos sin sesgo.
2. Función de redondeo cruzado ' " ’B.bh-. para q, bh, B e Z, bh> 1, B < log2 q - bh, sea B = log2 q - B. Entonces,
(. )B,bh'- v [2 B+bh_ (jnod 2 bh)
Intuitivamente, ^ ^ B .b h extrae los bh bits menos significativos de los (6 bh) bits más significativos de v.
3. Función de reconciliación rec(w, b)\ para q, bh, B e Z, bh^1, B< log2 q - bh, w e Zq, b e [°.2bh).
rec(w,b) = [v]Bjbh
donde v es el elemento más cercano a w de tal forma que !
Figure imgf000007_0002
La función de reconciliación citada anteriormente se usa como un ejemplo, en este documento. Como se indica, también podrían usarse los métodos de reconciliación en la aplicación citada anteriormente. La Figura 2 es una ilustración esquemática de las funciones de redondeo y redondeo cruzado. Como un ejemplo, la Figura 2 muestra una clave sin procesar 300. La clave sin procesar 300 se ilustra como una cadena de bits, con los bits más significativos a la izquierda y los bits menos significativos a la derecha. Intuitivamente, la función de redondeo aplicada a la clave sin procesar corresponde a los B bits en la parte más significativa 301, la función de redondeo cruzado a los bh siguientes bits en la parte intermedia 302. Pueden descartarse los log2q - B - bh menos significativos.
El nodo de iniciador 110 comprende una unidad de matriz compartida 130. El nodo de respondedor 210 comprende una unidad de matriz compartida 230. Las unidades de matriz compartida 130 y 230 están configuradas para obtener una matriz compartida (A) que se comparte entre los dos nodos. Siendo las entradas en la matriz compartida A números enteros seleccionados módulo un primer módulo q. Existen muchas formas de garantizar que se comparta la misma matriz entre los nodos 110 y 210, especialmente dado el hecho de que la matriz A no se mantiene necesariamente privada para los nodos 110 y 210.
Por ejemplo, uno de los nodos, digamos el nodo de iniciador 110, por ejemplo, en la unidad de matriz compartida 130, puede seleccionar una matriz A, por ejemplo, aleatoriamente con elementos módulo q. Las entradas pueden enviarse, a continuación, a través de las unidades de comunicación al otro nodo, por ejemplo, a la unidad de matriz compartida 230. En este caso, la última unidad de matriz compartida 230 recibirá simplemente la matriz y almacenará la misma. La matriz A también puede elegirse por el nodo de respondedor 210 en su lugar y enviarse al nodo de iniciador 110.
Los dos nodos también pueden cooperar en la elección de la matriz A. Por ejemplo, cada nodo puede seleccionar algunas de las entradas, y enviar las mismas a la otra parte. Por ejemplo, los nodos de iniciador pueden seleccionar las entradas impares, y el nodo de respondedor las entradas pares, etc. De esta manera, ninguno de los dos nodos tiene control sobre la matriz A final. Por ejemplo, cada uno de los dos nodos podría seleccionar una matriz A completa y comunicar la misma al otro lado. Después de esto, las dos matrices pueden añadirse módulo q. Para evitar dar una ventaja al último nodo que envía la matriz, dicho último nodo puede enviar primero un compromiso sobre la matriz elegida.
Una forma interesante de reducir la sobrecarga de enviar la matriz A completa es generar una semilla aleatoria y enviar la semilla aleatoria a través del canal de comunicación al otro nodo. Después de recibir la semilla, el primer y segundo nodo de red pueden usar la misma para generar la matriz A de cualquiera de las formas anteriores. Se usa la misma semilla aleatoria para inicializar un generador de número pseudo aleatorio determinístico que a su vez genera la matriz (A) a partir del resultado del generador de número pseudo aleatorio. Como anteriormente, cada nodo puede enviar una semilla, por ejemplo, para generar diferentes partes de A, o pueden combinarse las dos semillas, por ejemplo, añadirse, o procesarse mediante una función XOR, etc., y la semilla combinada puede usarse para generar A.
Las semillas pueden seleccionarse, por ejemplo, de un generador de número aleatorio adicional, por ejemplo, un generador de número aleatorio verdadero. Los nodos también pueden configurarse con una lista de números aleatorios, por ejemplo, en su fabricación. En este caso, los nodos seleccionan un siguiente número aleatorio de la lista cada vez que se genera una nueva matriz A para un nuevo acuerdo de clave. Si la lista de número aleatorio se agota, puede reponerse de una fuente confiable.
En una realización, la matriz A es una matriz cuadrada con dimensiones n por n. Esto no es estrictamente necesario, las dimensiones de los otros elementos del protocolo podrían adaptarse para tener en cuenta una matriz A no cuadrada. Elegir una matriz A cuadrada es, sin embargo, más conveniente y se supondrá en todo momento.
El nodo de iniciador 110 comprende una unidad de matriz de clave privada 140. El nodo de respondedor 210 comprende una unidad de matriz de clave privada 240. La unidad de matriz de clave privada 140 está configurada para generar una matriz de clave privada Si; la unidad de matriz de clave privada 240 está configurada para generar una matriz de clave privada Sr . Las entradas en las matrices de clave privada son números enteros limitados en valor absoluto por un límite s. Por ejemplo, una entrada en una matriz de clave privada puede elegirse entre -s y s (limites incluidos).
Los inventores encontraron que, sorpresivamente, elegir el límite pequeño tiene una ventaja doble: las multiplicaciones de matrices con la matriz de clave privada son más rápidas, y la distancia entre las claves sin procesar calculadas en cada lado es menor (véase a continuación). Esto último significa que se necesitan menos datos de reconciliación y/o la posibilidad de un fallo en el protocolo debido a que los nodos acordaron una clave diferente es menor. El límite s se elige como máximo el segundo módulo, por ejemplo, menor que o igual al segundo módulo. Esta elección es ventajosa ya que posteriormente multiplicamos módulo p. Podemos restringir el mismo a como máximo (o menor que) la mitad del segundo módulo (p/2) si permitimos entradas con signo en S.
El límite puede ser menor que el segundo módulo o la mitad del segundo módulo, y en la práctica el límite se elegirá habitualmente mucho más pequeño que este. En una realización, el límite s en el valor absoluto de entradas en la matriz de clave privada (Si, Sr) es 2 (s = 2). Es decir, todas las entradas en una matriz de clave privada son o bien -2, -1, 0, 1 o bien 2. Para multiplicar la matriz A con una matriz de clave privada se necesitan únicamente sumas, restas y desplazamientos de 1 bit. Una multiplicación de matrices de este tipo puede implementarse, por lo tanto, de forma muy eficiente.
Desde una perspectiva de implementación, se consiguen mejores resultados eligiendo que el límite sea 1 (s = 1). Es decir, las entradas de una matriz de clave privada son únicamente los valores -1, 0 y 1. Nos referiremos a esto también como 'binario con signo'. La multiplicación de matrices por una matriz en binario con signo únicamente implica sumas y restas. No se necesita ninguna multiplicación para multiplicación módulo p o q.
También son posibles otros números pequeños para s, por ejemplo, si s=3, las entradas permitidas son: 0, 1, -1, 2, -2, 3, -3. Rutinas de multiplicación para multiplicar por estos números pueden comprenderse en los nodos. Por ejemplo, 1, -1 pueden tratarse por un sumador/restador, -2, 2 pueden tratarse por un desplazamiento seguido por un sumador/restador, y 3, -3 pueden tratarse sumando/restando tanto el número desplazado como no desplazado. En una realización, la matriz de clave privada comprende únicamente entradas que son 0, potencias de dos y opcionalmente potencias negativas de dos ya que estas son fáciles de multiplicar.
En una realización, la matriz de clave privada contiene números tanto positivos y negativos. Sin embargo, también es posible adicionalmente restringir la matriz de clave privada a números no negativos. Por ejemplo, las entradas en la matriz de clave privada pueden estar entre 0 y s (límites incluidos). Por ejemplo, eligiendo s = 1, en el último caso evita operaciones tanto de multiplicación como de resta.
Las dimensiones de las matrices de clave privada se eligen de modo que pueden multiplicarse por la matriz A. Por ejemplo, si A es n por n, entonces la matriz de clave privada del nodo de iniciador puede ser una matriz de n por n; la matriz de clave privada del nodo de respondedor puede ser una matriz n por m. Los tamaños de n y m se eligen lo suficientemente grandes para obtener un suficiente número de bits en la clave compartida, y para obtener un nivel de seguridad suficientemente alto.
Además de restringir el tamaño de las entradas de la matriz de clave privada se obtienen ventajas adicionales restringiendo el número de elementos distintos de cero. Nos referiremos a la ponderación de Hamming de una columna o fila de una matriz como su número de entradas distintas de cero.
Los inventores investigaron diferentes formas de restringir la ponderación de Hamming de matrices de clave privada. Generalmente es suficiente restringir la ponderación de Hamming para o bien las columnas o bien para las filas, dependiendo de si la matriz de clave privada se multiplica a izquierda o derecha por la matriz A. Por ejemplo, si la matriz de clave privada se multiplica a la derecha por la matriz A (por ejemplo, AS) es suficiente restringir la ponderación de Hamming en columnas de la matriz de clave privada.
Por ejemplo, puede seleccionarse un límite superior para la ponderación de Hamming de las columnas y/o filas de una matriz de clave privada. El límite superior puede ser el mismo para todas las columnas y/o filas. En una realización, las columnas y/o filas de la matriz de clave privada (Si, Sr) tienen la misma ponderación de Hamming fija.
Se mejora la seguridad si -sujeto a las condiciones- se elige una matriz de clave privada uniformemente aleatoria de las matrices de clave privada candidatas, que es de las matrices que satisfacen los requisitos elegidos, por ejemplo, en cuanto a los límites en las entradas y las ponderaciones de Hamming en columnas o filas. Por ejemplo, si se desea imponer la condición de que la ponderación de Hamming de cada columna sea 50, entonces es ventajoso seleccionar una matriz de clave privada del conjunto de todas las matrices con las dimensiones correctas que tienen ponderación de Hamming de 50 para cada columna. Se conocen algoritmos eficientes para seleccionar una cadena de bits uniformemente aleatorios de cualquier ponderación de Hamming deseada.
Una forma diferente para restringir la ponderación de Hamming de las matrices de clave privada es elegir las columnas y/o filas de una matriz de clave privada (Si, Sr) de una distribución de probabilidad. Por ejemplo, las entradas en la matriz de clave privada (Si, Sr) pueden elegirse de una distribución de probabilidad no uniforme, en donde la probabilidad de una entrada cero es mayor que la probabilidad de una entrada distinta de cero. En una realización, la distribución de probabilidad se elige de modo que proporciona una ponderación de Hamming esperada predeterminada para las columnas y/o filas. Por ejemplo, para elegir una columna de longitud n y ponderación de Hamming esperada hs se puede seleccionar cada entrada como distinta de cero con probabilidad hs/n. La entrada distinta de cero puede elegirse como 1 o -1, por ejemplo, con igual probabilidad.
Una ponderación de Hamming en las columnas o filas que es demasiada pequeña puede tener impacto en la seguridad. Por ejemplo, para el caso de binario con signo, se puede elegir la ponderación de Hamming hs de tal forma que log2 ( u ) K es al menos 127, más preferentemente al menos 255. La razón es hacer inviable un ataque de fuerza bruta haciendo un bucle sobre matrices de clave privada. En una realización, la ponderación de Hamming hs es tan pequeña como sea posible para satisfacer el límite anterior.
El nodo de iniciador 110 comprende una unidad de matriz de clave pública 150. El nodo de respondedor 210 comprende una matriz de clave pública 250. La unidad de matriz de clave pública calcula una matriz de clave pública a partir de matriz A y una matriz de clave privada S.
Los términos público y privado se conciben para transmitir que la clave compartida no puede obtenerse únicamente con el conocimiento de información pública, o no sin el conocimiento de alguna información privada. Sin embargo, no hay ningún requisito de que la información pública se comparta activamente. Por ejemplo, el protocolo de acuerdo de clave podría ejecutarse a través de un canal (supuestamente) seguro, que mantiene las claves públicas seguras de interceptadores. En este caso el protocolo de acuerdo de clave proporciona una capa adicional de seguridad en caso de que la seguridad del canal se rompa.
La unidad de matriz de clave pública calcula una matriz de clave pública P (Pi, Pr para el iniciador y el respondedor respectivamente) calculando un producto de matriz entre la matriz compartida (A) y la matriz de clave privada (Si o Sr respectivamente), obteniendo módulo el primer módulo (q) un producto de matriz y escalando el resultado descendentemente.
Sin embargo, no se revela esta multiplicación de matrices intermedia. El conocimiento de la matriz compartida A y el resultado de esta multiplicación de matriz revelará la clave privada, ya que puede calcularse invirtiendo la matriz A. La etapa de escalado realizada por la unidad de matriz de clave pública bloquea esta opción. La unidad de matriz de clave pública escala las entradas en el producto de matriz descendentemente a un segundo módulo p. El segundo módulo p es menor que el primer módulo q. Una entrada escalada es igual a la entrada no escalada multiplicada por el segundo módulo (p), dividida por el primer módulo (g) y redondeada al entero más cercano. Por ejemplo, si x es !£ * | , una entrada no escalada módulo q en el producto de matriz, la entrada escalada puede seleccionarse como lq en donde H representa el entero más cercano. Después de la operación de cambio de escala, ya no es posible calcular de forma sencilla la clave privada a partir de la clave pública y la matriz A.
Las entradas en una matriz de clave pública pueden representarse como enteros en el intervalo [0, p - 1]. Las entradas en una matriz de clave privada también pueden representarse como enteros en el intervalo [0,p -1], Existe
una ventaja de elegir las entradas en el intervalo 2 2 para reducir el tamaño de los enteros para multiplicaciones posteriores. Como se ha indicado anteriormente la matriz de clave privada también puede tener entradas elegidas en el intervalo [-s, s] o incluso [0,s],
La multiplicación de matriz A y una matriz de clave privada S se hace módulo el primer módulo q. Para este fin el nodo de red puede comprender una unidad de reducción modular para reducir módulo q. Si las entradas en la matriz de clave privada S son pequeñas, por ejemplo, limitadas por 1, o limitada por 1 en valor absoluto, la reducción modular puede simplificarse; durante la multiplicación de matriz, cada vez que una entrada se vuelve mayor que q o más pequeña que 0, el resultado se devuelve al intervalo 0 a q - 1 restando o sumando q.
Tanto el nodo de iniciador como el nodo de respondedor envían su matriz de clave pública al otro nodo, por ejemplo, usando las interfaces de comunicaciones 120 y 220. Los inventores encontraron al menos tres ventajas que se realizan escalando descendentemente el producto de matriz. En primer lugar, se evita la generación y suma explícita de ruido en el producto de matriz. Introducir ruido requiere el cálculo de una distribución de probabilidad, por ejemplo, una distribución gaussiana. Estas son relativamente intensivas en cálculo. Segundo, se reducen los requisitos de comunicación. Ya que el segundo módulo p es menor que el primer módulo q, se necesitan menos bits para representar una entrada de la matriz de clave pública que de una matriz de clave privada. Tercero, los cálculos que implican la matriz de clave pública son más pequeños ya que implican números más pequeños. Es sorprendente que una sola medida proporcione simultáneamente tres ventajas.
Se prefiere en gran medida que el segundo módulo p divida el primer módulo q. De forma interesante, los inventores encontraron que ni el primer ni el segundo módulo necesita ser un número primo. De hecho, se encontró que elegir el segundo módulo (p) y/o el primer módulo (q) como una potencia de 2 tiene la ventaja de que las claves públicas y privadas se distribuyen uniformemente. En una realización tanto el primer como el segundo módulo es una potencia de 2.
En una realización, requerimos adicionalmente que 2s+*^|p además de módulos p y q que son potencias de dos. Esto provoca claves compartidas uniformes incluso si se observan los datos de reconciliación. B es el número de bits de clave compartida extraídos por entrada de clave sin procesar.
Los tamaños de los módulos no necesitan ser muy grandes. Por ejemplo, en una realización el segundo módulo tiene como tamaño de bits de 12 o más, y/o el primer módulo tiene como tamaño de bits de 8 o más. Son posibles tamaños más grandes o pequeños dependiendo de los requisitos de seguridad. En una realización, q está en el intervalo de 2A12 y 2A15, p está en el intervalo de 2A7 y 2A9 (inclusivos). Los valores de p y q pueden elegirse mayores o menores según dicten las demandas de seguridad.
El nodo de iniciador 110 comprende una unidad de clave compartida 160. El nodo de respondedor 210 comprende una unidad de clave compartida 260. Las unidades de clave compartida son diferentes en el sentido de que o bien generan y transmiten o bien reciben y aplican los datos de reconciliación.
Tanto la unidad de clave compartida 160 como la unidad de clave compartida 260 están configuradas para calcular una clave sin procesar 162, 262 como un producto de matriz módulo el segundo módulo (p) entre la clave pública recibida del otro nodo y la matriz de clave privada del propio nodo de red. Las dimensiones de las matrices, y multiplicaciones de matrices, se eligen de tal forma que si la operación de cambio de escala se omitiera ambas partes calcularían una clave sin procesar idéntica. Es decir, resultarían claves idénticas sin escalar, y todos los cálculos se harían módulo q. Sin embargo, debido al escalado, ambas claves sin procesar no necesitan ser idénticas. Calcular la clave sin procesar se hace módulo p. Los nodos de red pueden comprender una unidad modular para reducir el resultado de las multiplicaciones módulo p.
La unidad de clave compartida 260 del nodo de respondedor 210 se dispone para obtener la clave compartida 266 y los datos de reconciliación 264 a partir de la clave sin procesar 262, y para enviar los datos de reconciliación 264 al nodo de red de iniciador 110. Los datos de reconciliación pueden tomar la forma de uno o más bits en la clave sin procesar. Los bits elegidos como datos de reconciliación se ignoran para el propósito de generar una clave.
La unidad de clave compartida 260 elige algunos bits de las entradas de la clave sin procesar a partir de la que formar una clave. Por ejemplo, los bits elegidos pueden concatenarse. En una realización, los bits elegidos se introducen en una función de derivación de clave (KDF), por ejemplo, una función de troceo criptográfica. Un ejemplo de una KDF se proporciona en, por ejemplo, la CMLA_KDF de la Especificación Técnica de CMLA, Versión: V1.43-20131218, o la función de KDF definida en "DRM specification", OMA-TS-DRM-DRM-V2_0_2-20080723-A, Alianza Móvil Abierta™, Versión 2.0.2, sección 7.1.2, etc. La función de derivación de clave puede aplicarse a las entradas de bits de clave en la clave sin procesar, por ejemplo, obtenidas por la función de redondeo, por ejemplo, después de concatenación, o a partir de los resultados de la función de reconciliación, por ejemplo, también después de concatenación.
Algunos bits que no se eligen como bits de clave pueden seleccionarse como datos de reconciliación. Finalmente, algunos bits pueden descartarse por completo. En una realización, se seleccionan bits de clave de las partes de MSB de las entradas de clave sin procesar, se seleccionan datos de reconciliación de partes intermedias de las entradas de clave sin procesar, pueden descartarse partes menos significativas de la clave sin procesar. Por ejemplo, los bits de clave pueden obtenerse aplicando la función de redondeo a las entradas de la clave sin procesar; los bits de reconciliación pueden obtenerse aplicando la función de redondeo cruzado a las entradas de la clave sin procesar.
Los datos de reconciliación de clave obtenidos a partir de la clave sin procesar por unidad de clave compartida 260 se envía al nodo de iniciador 110.
La unidad de clave compartida 160 está configurada para recibir los datos de reconciliación 164 (h) del segundo nodo de red, y para calcular una clave compartida aplicando una función de reconciliación a los datos de reconciliación recibidos y la matriz de clave sin procesar 162. Por ejemplo, la función de reconciliación puede aplicarse a cada una de las entradas en la clave sin procesar 162 y correspondiente parte de datos de reconciliación. Por ejemplo, si los datos de reconciliación 164 eran parte de la clave sin procesar generada por la unidad de respondedor 210, el nodo de iniciador puede seleccionar una clave sin procesar que podría haberse obtenido por el nodo 210 y es compatible con los datos de reconciliación recibidos, por ejemplo tiene los mismos bits intermedios como se recibieron. Una forma de hacer esto es usar la función de reconciliación definida anteriormente. Como resultado, se recuperan los mismos bits que usó el nodo para crear la clave compartida. Concatenando los bits de la misma forma, o introduciendo los mismos a la misma KDF, se obtiene la misma clave compartida 166. En una realización, la clave compartida es una clave simétrica.
No se necesitan muchos datos de reconciliación, puede ser suficiente únicamente un único bit. Sin embargo, se observó que es ventajoso aumentar el número de bits de reconciliación a 2 bits o más, ya que reduce la probabilidad de fallo del protocolo.
Valores típicos para B y bh son 1 o 2. En este documento B es el número de bits de clave extraídos por entrada de clave sin procesar, y bh el número de bits de reconciliación por entrada de clave sin procesar. El tamaño de n y m se elige de tal forma que nmB es suficientemente grande, por ejemplo, nmB > 256. Por ejemplo, n y m pueden elegirse aproximadamente ¡guales. Para mantener la sobrecarga pequeña se pueden elegir los mismos como [■/2567Í?].
Se podría reutilizar una de la matriz A y la matriz de clave privada para múltiples ejecuciones del protocolo de acuerdo de clave (si ambas son la misma se obtendría la misma clave compartida). Esto reduciría la sobrecarga de comunicación, especialmente si se reutiliza la matriz A. Sin embargo, los inventores se dieron cuenta de que no hay necesidad de reutilizar ninguna de la matriz A y la matriz de clave privada ya que ninguna autenticación se conecta a estos elementos. En una realización preferida, se obtienen una nueva matriz A y una nueva clave privada para cada nuevo intercambio de claves. Esto tiene la ventaja de que los atacantes no tendrán la opción de observar información adicional observando múltiples ejecuciones del protocolo. Además, se mejora el secreto hacia delante. Después de que se completa el protocolo y ambos nodos han calculado una clave compartida, uno de los nodos puede enviar un mensaje de confirmación de clave al otro nodo para verificar que han acordado la misma clave. Por ejemplo, un mensaje de confirmación de clave puede ser un troceo de la clave compartida, una encriptación de un valor fijo, una encriptación de un valor aleatorio junto con el valor aleatorio. También puede realizarse la confirmación de valor usando un protocolo de respuesta a puesta a prueba. También se puede elegir omitir la confirmación de clave. Si las partes obtienen una clave compartida diferente, entonces puede fallar una comunicación posterior realizada entre ellos. Por ejemplo, la clave compartida puede usarse para encriptar y/o autenticar comunicaciones adicionales, por ejemplo, mensajes digitales. Si llegan a una clave compartida diferente, entonces puede fallar el desencriptado y/o verificación.
A continuación, se describen realizaciones ventajosas específicas adicionales. El sistema básico que representa esta invención es un protocolo, denominado en adelante el esquema de intercambio de clave (KEX), que puede efectuarse por dos entidades o partes, denominadas en adelante Iniciador y Respondedor para establecer un secreto compartido entre ellos mismos que únicamente conocen ellos. Para este propósito, usan un número de parámetros de sistema comunes que deben acordar antes de efectuar el esquema de KEX, alguna información privada poseída por cada uno de ellos, en adelante denominadas sus claves privadas y alguna información pública poseída por cada uno de ellos, en adelante denominadas sus claves públicas. La seguridad del esquema de KEX se basa en el problema de Aprendizaje con Redondeo (LWR) cuya seguridad se basa en el problema de Aprendizaje con Errores (LWE), protegiendo el secreto del secreto compartido y el secreto de las claves privadas del Iniciador y Respondedor. En los ejemplos a continuación, las matrices de clave privada son binario con signo.
Una realización del esquema de KEX comprende tres fases:
1. Establecimiento:
• Iniciador y Respondedor acuerdan valores comunes para los siguientes parámetros de sistema que son números enteros positivos:
i. q: el módulo del problema de LWR.
¡i. ir. la dimensión del problema de LWR. También representa la dimensión de una matriz A E Z H 1' que es un parámetro público del problema de LWR.
iii. hs: la ponderación de Hamming de cada cadena en una distribución de cadenas de binario con signo (es decir, ternario), de tal forma que hs < n.
iv. n\ número de instancias o muestras de problema de LWR creadas por el Iniciador durante el protocolo de KEX.
v. nr. número de instancias o muestras de problema de LWR creadas por el Respondedor durante el protocolo de KEX.
vi. B: número de bits extraídos por coeficiente de las claves sin procesar de las dos partes, mientras se crea el secreto compartido final o clave.
vii. bh. número de bits extraídos por coeficiente de las claves sin procesar de las dos partes, mientras se crean los datos de reconciliación.
viii. p: el módulo de redondeo del problema de LWR, un entero múltiplo de 2B+bh+1 y que satisface p|q. Obsérvese que el requisito de p como una potencia de dos permite implementaciones más rápidas y más eficientes.
• Además, las partes acuerdan la matriz pública
i. para cada sesión de KEX se elige una instancia nueva de esta matriz.
La selección de los parámetros comunes puede integrarse en un protocolo tal como TLS o IKE si los parámetros específicos se correlacionan con un identificador dado. Por ejemplo, un identificador de protocolo, por ejemplo, en TLS el elemento de conjunto de cifrado puede usarse para codificar los parámetros comunes. La matriz pública también puede derivarse a partir de una semilla por ejemplo, por medio de una función de troceo. En una solución diferente, el iniciador decidirá algunos parámetros que se enviarán al respondedor.
2. Generación de clave:
• Iniciador crea una nueva clave privada ski e {0> ±1 }nXn<^HW Tn(hs)n, muestreando n veces de la distribución HWTn (hs), que representa la distribución de vectores uniformes en {0,+1}n que tienen una ponderación de Hamming de hs.
• Iniciador crea su clave pública
Figure imgf000012_0001
• Respondedor crea una nueva clave privada skR e {0 ,± 1}nXm ■£- muestreando m veces de la distribución HWTn (hs), que representa la distribución de vectores uniformes en {0, 1}n que tienen una ponderación de Hamming de hs.
pkR = ¡ Í-) .{skR.A (mod q)}]eZ 5 lxn.
• Respondedor crea su clave pública lKqJ ' i 1
3. Intercambio de clave:
Tabla 1: intercambio de clave entre un iniciador I y un respondedor R utilizando matrices secretas de redondeo y dispersas que contienen entradas ternarias, conduciendo al establecimiento de un secreto compartido K entre I y R. La columna de en medio proporciona un ejemplo de los mensajes que puede intercambiarse entre el iniciador y el respondedor
Figure imgf000012_0002
continuación
Figure imgf000013_0004
Los inventores encontraron cuatro requisitos que pueden imponerse en los parámetros para mejorar la seguridad. Estos incluyen los siguientes.
1. Longitud de clave mínima: para garantizar que el secreto compartido contiene al menos un número objetivo de bits, el parámetro n del iniciador, el parámetro m del respondedor y el parámetro B del sistema deberían ser de tal forma que, n ■m ■B> Longitud deseada de secreto compartido en bits.
2. Seguridad contra ataque de búsqueda exhaustivo de clave privada: suponemos un nivel de seguridad dirigido en bits de S (poscuántico) y 2S (clásico). Para asegurar que una búsqueda de fuerza bruta y exhaustiva de la clave privada para estimar sus entradas tiene una carga de trabajo lo suficientemente alta, el número de secretos en los vectores de clave secreta (teniendo cada uno una ponderación de Hamming hs) debería satisfacer:
Figure imgf000013_0001
donde, 22S es el tiempo de ejecución del algoritmo de búsqueda cuántica de Grover y 2S es el tiempo de ejecución de un algoritmo de búsqueda clásica. Por ejemplo, S puede ser 128 o 256 etc. Obsérvese que este límite es para el caso en el que el límite en los valores absolutos de entradas en las matrices de clave privada es 1. Puede establecerse un límite similar para límites mayores s.
3. Probabilidad de éxito: para garantizar que la probabilidad de que el iniciador y el respondedor no lleguen a mismo secreto compartido final es como máximo pta iio , los valores para los parámetros n, m, hs y la constante c debería elegirse de tal forma que,
Figure imgf000013_0002
donde
Figure imgf000013_0003
4. Análisis de seguridad: para garantizar que la complejidad de tiempo del algoritmo de reducción en rejilla de BKZ es al menos 2128, garantizando seguridad poscuántica de 128 bits, la dimensión de LWR n debe ser mayor que el siguiente límite menor expresado en términos del factor de Root-Hermite de BKZ S (un parámetro del algoritmo de BKZ), redondeo de módulo p y grado de dispersión 0 = hs/n:
> lo 2 + 05
Figure imgf000013_0005
11 ~ og og p , og •
El factor de Root-Hermite de BKZ S es una indicación de la precisión del algoritmo de BKZ. Por ejemplo, para seguridad clásica puede suponerse S= 1,003922, con tamaño de bloque de BKZ=409, para criptografía poscuántica se puede suponer S = 1,00367, con tamaño de bloque de BKZ=450, y para seguridad aumentada en criptografía poscuántica se puede suponer S= 1,00309, con tamaño de bloque de BKZ =573.
La selección de las matrices de clave privada puede hacerse probabilísticamente. La generación de clave secreta probabilística simplifica la implementación. Mientras se crean la clave privada s^ e {0,±1}nXf,<- hlW T^hJ11 y s^Re {0,±1}n m<- HWTn(hs)m, en |Ugar de generar hs entradas distintas de cero por columna de la clave privadas, cada (i,j)ésima entrada de clave privada skiJj en esta realización se crearía como se indica a continuación:
f hs\
sk&» = 1, con probabilidad
\2n ) ’
Figure imgf000014_0001
Como alternativa, si la generación es determinista, a continuación puede hacerse lo siguiente usando una PRF segura estándar: si hay hs elementos distintos de cero (o bien 1 o bien -1) en un vector de n posiciones, entonces el resultado de la PRF selecciona posiciones aleatorias en la columna junto con valores 1 o -1 aleatorios hasta que la PRF seleccionó hs elementos distintos de cero en diferentes ubicaciones. Por ejemplo, el resultado de PRF puede dividirse en bloques de \log n\ + 1 bits en los que el primer [log n\ bits del bloque identifican la posición del elemento distinto de cero y el último bit del bloque determina si el elemento es 1 o -1.
El intercambio de clave propuesto tiene varias ventajas.
Complejidad de cálculo: como la matriz de clave privada está dispersa y tiene entradas, 0, 1 y -1, los cálculos módulo q en nuestro esquema son rápidos. Específicamente, las multiplicaciones que implican matrices de gran dimensión (por ejemplo, durante la generación de claves públicas y claves sin procesar) pueden optimizarse enormemente. Cuantificamos el rendimiento de cálculo de nuestro esquema de intercambio de clave propuesto en la siguiente tabla, proporcionando ciclos de reloj de CPU requeridos para las fases del esquema de intercambio de clave, cuando se ejecutan en un procesador Intel Xeon Quad-core de 3,2 GHz:
Tabla 2: rendimiento de cálculo del esquema propuesto, mostrando ciclos de reloj de CPU requeridos para generación de clave e intercambio de clave total, para tres niveles de seguridad. En la columna 6 se muestra
Figure imgf000014_0002
El caso I puede elegirse para seguridad media, por ejemplo, para seguridad clásica. Los casos II y II pueden elegirse para seguridad poscuántica. El caso III es más seguro que el caso II.
Complejidad de comunicación: debido al uso de redondeo a un módulo menor, somos capaces de reducir el tamaño de cada entrada de una clave pública y clave sin procesar, consiguiendo requisitos de ancho de banda significativamente menores. Cuantificamos esto en las dos siguientes tablas, en las que demostramos los requisitos de ancho de banda de nuestro esquema propuesto (con y sin el uso de redondeo, respectivamente). Las realizaciones se comparan con el protocolo basado en LWE descrito en "Frodo: Take off the ring! Practical, Quantum-Secure Key Exchange from LWE", de J. Bos, C. Costello, L. Ducas, I. Mironov, M. Naehrig, V. Nikolaenko, A. Raghunathan, D. Stebila.
El ancho de banda se calcula como el tamaño total de mensajes de intercambio de clave intercambiados (es decir, claves públicas y datos de reconciliación) y no incluye el intercambio de la matriz pública A.
Tabla 3: rendimiento de comunicación del esquema propuesto, que muestra mejoras en rendimiento de ancho de banda en un esquema de intercambio de clave basado en LWE del estado de la técnica, Frodo. (Número de bits de clave finales B=2 número de bits de datos de reconciliación bh = 2
Figure imgf000014_0003
continuación
Figure imgf000015_0001
Ganancia de ancho de banda usando LWE y pequeños secretos dispersos:
Tabla 4: rendimiento de comunicación del esquema propuesto cuando se usan únicamente pequeños secretos dispersos, en lugar de en combinación con redondeo. (Número de bits de clave finales B=2, número de bits de datos de reconciliación bh = 2
Figure imgf000015_0002
Las ganancias de ancho de banda para la primera tabla - LWR disperso (redondeo usado en combinación con pequeños secretos dispersos) son más deseables que para la segunda tabla - LWE disperso (se usan únicamente pequeños secretos dispersos) debido a las siguientes razones: el valor mínimo de la dimensión n del problema de LWR y LWE es mayor en el caso de LWE disperso en comparación con el valor mínimo de n en el caso de LWR disperso. Esto es porque este valor mínimo se determina por la varianza de la distribución de errores gaussiana en LWE disperso, que impone un límite mínimo más estricto sobre n que en el caso de LWR disperso (en el que el
V
límite mínimo de n se controla por la relación *?). El ancho de banda en LWR disperso se controla por log2 p, que es menor que log2 q (en el caso de LWE disperso).
En las diversas realizaciones, la interfaz de comunicación puede seleccionarse de diversas alternativas. Por ejemplo, interfaz de comunicación puede ser una interfaz de red a una red de área local o extensa, por ejemplo, la Internet, una interfaz de almacenamiento a un almacenamiento de datos interno o externo, un teclado, etc.
Los nodos de red pueden comprender un almacenamiento electrónico, por ejemplo, para almacenar datos intermedios tal como la matriz A, las matrices de clave pública y privada, y la clave compartida, etc. El almacenamiento puede implementarse como una memoria electrónica, digamos una memoria flash, o memoria magnética, digamos disco duro o similar. El almacenamiento puede comprender múltiples memorias discretas juntas que forman el almacenamiento. El almacenamiento también puede ser una memoria transitoria, digamos una RAM. En el caso de un almacenamiento temporal, el almacenamiento puede usar algunos medios para obtener parámetros comunes antes de uso, por ejemplo, obteniendo los mismos a través de una conexión de red opcional (no mostrada separadamente).
Habitualmente, cada uno de los dispositivos 110 y 210 comprende un microprocesador (no mostrado separadamente en la Figura 1) que ejecuta software apropiado almacenado en los dispositivos 110 y 210; por ejemplo, ese software puede haberse descargado y/o almacenado en una correspondiente memoria, por ejemplo, una memoria volátil tal como RAM o una memoria no volátil tal como Flash (no mostrada separadamente). Como alternativa, los dispositivos 110 y 210 pueden, en su totalidad o en parte, implementarse en lógica programable, por ejemplo, como campo de matriz de puertas programables (FPGA). Los dispositivos 110 y 210 pueden implementarse, en su totalidad o en parte, como un así denominado circuito integrado específico de aplicación (ASIC), es decir un circuito integrado (CI) personalizado para su uso particular. Por ejemplo, los circuitos pueden implementarse en CMOS, por ejemplo, usando un lenguaje de descripción de hardware tal como Verilog, VHDL etc. En una realización, un nodo de red comprende un circuito de interfaz de comunicación, un circuito de matriz compartida, un circuito de matriz de clave privada, un circuito matriz de clave pública y un circuito clave compartida. Los circuitos implementan las correspondientes unidades descritas en este documento. Los circuitos pueden ser un circuito procesador y circuito de almacenamiento, ejecutando el circuito procesador instrucciones representadas electrónicamente en los circuitos de almacenamiento.
Un circuito procesador puede implementarse de una manera distribuida, por ejemplo, como múltiples circuitos subprocesadores. Un almacenamiento puede distribuirse a través de múltiples subalmacenamientos distribuidos. Parte o toda la memoria puede ser una memoria electrónica, memoria magnética, etc. Por ejemplo, el almacenamiento puede tener una parte volátil o no volátil. Parte del almacenamiento puede ser de solo lectura. Los circuitos también pueden ser, FPGA, ASIC o similar.
La Figura 3 muestra esquemáticamente un ejemplo de una realización de un método de intercambio de clave electrónica. El método puede ejecutarse por un primer nodo de red electrónico, tal como el nodo de iniciador 110 o el nodo de respondedor 210.
El método 400 comprende
- disponer (410) comunicación digital entre el primer nodo de red y un segundo nodo de red,
- obtener (420) una matriz compartida (A), siendo la matriz compartida compartida con el segundo nodo de red a través de la comunicación digital, siendo las entradas en la matriz compartida A seleccionadas módulo un primer módulo q,
- generar (430) una matriz de clave privada (Si), estando las entradas en la matriz de clave privada limitadas en valor absoluto por un límite (s),
- generar (440) una matriz de clave pública (Pi)
- calculando (442) un producto de matriz entre la matriz compartida (A) y la matriz de clave privada (Si), obteniendo módulo el primer módulo (q) un producto de matriz
- escalando (444) las entradas en el producto de matriz descendentemente a un segundo módulo (p), siendo una entrada escalada igual a la entrada no escalada multiplicada por el segundo módulo (p), dividida por el primer módulo (q) y redondeada al entero más cercano, siendo el segundo módulo (p) menor que el primer módulo (q), siendo el límite (s) como máximo el segundo módulo (p),
- enviar (452) la matriz de clave pública del primer nodo de red al segundo nodo de red,
- recibir (454) una matriz de clave pública (Pr) del segundo nodo de red,
- calcular (460) una clave sin procesar como un producto de matriz entre la clave pública recibida del segundo nodo y la matriz de clave privada del primer nodo de red módulo el segundo módulo (p),
Si el primer nodo de red está operando de acuerdo con un modo de iniciador, entonces el primer nodo de red realiza los siguientes elementos adicionales.
- recibir (472) datos de reconciliación (h) del segundo nodo de red,
- calcular (482) una clave compartida aplicando una función de reconciliación (rec) a los datos de reconciliación recibidos y a la clave sin procesar.
Si el primer nodo de red está operando de acuerdo con un modo de respondedor, entonces el primer nodo de red realiza los siguientes elementos adicionales.
- obtener (474) la clave compartida y datos de reconciliación a partir de la clave sin procesar,
- enviar (484) los datos de reconciliación al primer nodo de red.
Son posibles muchas formas diferentes de ejecutar el método, como será evidente para un experto en la materia. Por ejemplo, puede variarse el orden de las etapas o algunas etapas pueden ejecutarse en paralelo. Además, entre etapas pueden insertarse otras etapas de método. Las etapas insertadas pueden representar refinamientos del método tal como se describe en este documento, o pueden no estar relacionadas con el método. Por ejemplo, una etapa dada puede no haber terminado completamente antes de que se inicie la siguiente etapa.
Un método de acuerdo con la invención puede ejecutarse usando software, que comprende instrucciones para provocar que un sistema de procesador realice el método 400. Software puede incluir únicamente estas etapas tomadas por una subentidad particular del sistema. El software puede almacenarse en un medio de almacenamiento adecuado, tal como un disco duro, un disco flexible, una memoria, un disco óptico, etc. El software puede enviarse como una señal por cable, o inalámbrica, o usando una red de datos, por ejemplo, la Internet. El software puede hacerse disponible para descargar y/o para uso remoto en un servidor. Un método de acuerdo con la invención puede ejecutarse usando un flujo de bits dispuesto para configurar lógica programable, por ejemplo, un campo de matriz de puertas programables (FPGA), para realizar el método.
Se apreciará que la invención también se extiende a programas informáticos, particularmente programas informáticos en una portadora, adaptada para poner en práctica la invención. El programa puede ser en forma de código fuente, código objeto, una fuente intermedia de código y código objeto tal como forma parcialmente compilada, o en cualquier otra forma adecuada para su uso en la implementación del método de acuerdo con la invención. Una realización relacionada con un producto de programa informático comprende instrucciones ejecutables por ordenador que corresponden a cada una de las etapas de procesamiento de al menos uno de los métodos expuestos. Estas instrucciones pueden subdividirse en subrutinas y/o almacenarse en uno o más archivos que puede enlazarse estática o dinámicamente. Otra realización relacionada con un producto de programa informático comprende instrucciones ejecutables por ordenador que corresponden a cada de uno de los medios de al menos uno de los sistemas y/o productos expuestos.
La Figura 4a muestra un medio legible por ordenador 1000 que tiene una parte grabable 1010 que comprende un programa informático 1020, comprendiendo el programa informático 1020 instrucciones para provocar que un sistema de procesador realice un método de acuerdo de clave, de acuerdo con una realización. El programa informático 1020 puede incorporarse en el medio legible por ordenador 1000 como marcas físicas o por medio de magnetización del medio legible por ordenador 1000. Sin embargo, también es concebible cualquier otra realización adecuada. Adicionalmente, se apreciará que, aunque el medio legible por ordenador 1000 se muestra en este punto como un disco óptico, el medio legible por ordenador 1000 puede ser cualquier medio legible por ordenador adecuado, tal como un disco duro, memoria de estado sólido, memoria flash, etc., y puede ser no grabable o grabable. El programa informático 1020 comprende instrucciones para provocar que un sistema de procesador realice dicho método de acuerdo de clave 400.
La Figura 4b muestra en una representación esquemática de un sistema de procesador 1140 de acuerdo con una realización. El sistema de procesador comprende uno o más circuitos integrados 1110. La arquitectura del uno o más circuitos integrados 1110 se muestra esquemáticamente en la Figura 4b. El circuito 1110 comprende una unidad de procesamiento 1120, por ejemplo, una CPU, para ejecutar componentes de programa informáticos para ejecutar un método de acuerdo con una realización y/o implementar sus módulos o unidades. El circuito 1110 comprende una memoria 1122 para almacenar código de programación, datos, etc. Parte de la memoria 1122 puede ser de solo lectura. El circuito 1110 puede comprender un elemento de comunicación 1126, por ejemplo, una antena, conectores o ambos y similares. El circuito 1110 puede comprender un circuito integrado especializado 1124 para realizar parte o todo el procesamiento definido en el método. El procesador 1120, la memoria 1122, CE especializado 1124 y el elemento de comunicación 1126 pueden conectarse entre sí a través de una interconexión 1130, digamos un bus. El sistema de procesador 1110 puede disponerse para comunicación con contacto y/o sin contacto, usando una antena y/o conectores, respectivamente.
Por ejemplo, en una realización, un nodo de red puede comprender un circuito procesador y un circuito de memoria, estando el procesador dispuesto para ejecutar software almacenado en el circuito de memoria. Por ejemplo, el circuito procesador puede ser un procesador Intel Core i7, ARM Cortex-R8, etc. En una realización, el circuito procesador puede ser un ARM Cortex M0. El circuito de memoria puede ser un circuito de ROM, o una memoria no volátil, por ejemplo, una memoria flash. El circuito de memoria puede ser una memoria volátil, por ejemplo, una memoria SRAM. En el último caso, el dispositivo de verificación puede comprender una interfaz de software no volátil, por ejemplo, un disco duro, una interfaz de red, etc., dispuesta para proporcionar el software.
Se ha de observar que las realizaciones anteriormente mencionadas ilustran en lugar de limitar la invención, y que los expertos en la materia serán capaces de diseñar muchas realizaciones alternativas.
En las reivindicaciones, cualquier signo de referencia situado entre paréntesis no debe interpretarse como que limita la reivindicación. El uso del verbo "comprender" y sus conjugaciones no excluye la presencia de elementos o etapas distintas de las indicadas en una reivindicación. El artículo "un" o "una" precediendo a un elemento no excluye la presencia de una pluralidad de tales elementos. La invención puede implementarse por medio de hardware que comprende varios elementos distintos y por medio de un ordenador programado adecuadamente. En la reivindicación de dispositivo que enumera varios medios, varios de estos medios pueden incorporarse por uno y el mismo artículo de hardware. El mero hecho de que ciertas medidas se citan en reivindicaciones dependientes mutuamente diferentes no indica que una combinación de estas medidas no puede usarse con ventaja.
En las referencias de reivindicaciones en paréntesis se refieren a signos de referencia en dibujos de realizaciones ilustrativas o a fórmulas de las realizaciones, aumentando por lo tanto la inteligibilidad de la reivindicación. Estas referencias no se interpretarán como que limitan la reivindicación.

Claims (1)

  1. REIVINDICACIONES
    1. Un primer nodo de red electrónico (110) configurado para un protocolo de intercambio de claves, KEX, comprendiendo el primer nodo de red
    - una interfaz de comunicación (120) dispuesta para comunicación digital con un segundo nodo de red,
    - un circuito procesador configurado para
    - obtener una matriz compartida A, siendo la matriz compartida A compartida con el segundo nodo de red a través de la interfaz de comunicación, siendo las entradas en la matriz compartida A seleccionadas módulo un primer módulo q,
    - generar una matriz de clave privada Si, estando las entradas en la matriz de clave privada Si limitadas en valor absoluto por un límite s,
    - generar una matriz de clave pública Pi
    - calculando un producto de matriz entre la matriz compartida A y la matriz de clave privada Si, obteniendo módulo el primer módulo q un producto de matriz
    - escalando las entradas en el producto de matriz descendentemente a un segundo módulo p, siendo una entrada escalada igual a la entrada no escalada multiplicada por el segundo módulo p, dividida por el primer módulo q y redondeada al entero más cercano, siendo el segundo módulo p más pequeño que el primer módulo q, siendo el límite s como máximo el segundo módulo p,
    - enviar la matriz de clave pública Pi del primer nodo de red al segundo nodo de red,
    - recibir una matriz de clave pública Pr del segundo nodo de red,
    - calcular una clave sin procesar como un producto de matriz entre la clave pública recibida Pr del segundo nodo y la matriz de clave privada Si del primer nodo de red módulo el segundo módulo p, en donde el primer nodo de red está configurado adicionalmente para
    - recibir datos de reconciliación h del segundo nodo de red,
    - calcular una clave compartida aplicando una función de reconciliación rec a los datos de reconciliación recibidos h y a la clave sin procesar, o en donde el primer nodo de red está configurado adicionalmente para - obtener la clave compartida y datos de reconciliación h a partir de la clave sin procesar,
    - enviar los datos de reconciliación h al segundo nodo de red.
    2. Un primer nodo de red de acuerdo con la reivindicación 1, en donde el límite s en valor absoluto en las entradas en la matriz de clave privada Si, Sr es 2, s = 2, o en donde el límite es 1, s = 1, correspondiendo este último a binario con signo.
    3. Un primer nodo de red como en una cualquiera de las reivindicaciones anteriores, en donde columnas y/o filas de la matriz de clave privada Si, Sr tienen una ponderación de Hamming fija hs.
    4. Un primer nodo de red como en una cualquiera de las reivindicaciones anteriores, en donde la matriz de clave privada Si, Sr se elige uniformemente aleatoria de matrices de clave privada candidatas.
    5. Un primer nodo de red como en una cualquiera de las reivindicaciones anteriores, en donde entradas en la matriz de clave privada Si, Sr se eligen de una distribución de probabilidad no uniforme, en donde la probabilidad de una entrada cero es mayor que la probabilidad de una entrada distinta de cero.
    6. Un primer nodo de red como en la reivindicación 5, en donde la matriz de clave privada Si, Sr se elige de una distribución de probabilidad, teniendo la distribución de probabilidad una ponderación de Hamming esperada fija para las columnas y/o filas de la matriz de clave privada Si, Sr.
    Figure imgf000018_0001
    preferentemente al menos 255, en donde n es una dimensión de la matriz A y hs es la ponderación de Hamming. 8. Un primer nodo de red como en una cualquiera de las reivindicaciones anteriores, en donde el segundo módulo p divide el primer módulo q.
    9. Un primer nodo de red como en una cualquiera de las reivindicaciones anteriores, en donde el segundo módulo p y/o el primer módulo q es una potencia de 2.
    10. Un primer nodo de red como en una cualquiera de las reivindicaciones anteriores, dispuesto para obtener una matriz nueva A y/o una clave privada nueva para cada nuevo intercambio de claves.
    11. Un primer nodo de red como en una cualquiera de las reivindicaciones anteriores, en donde el tamaño de los datos de reconciliación h es 2 bits o más.
    12. Un primer nodo de red como en una cualquiera de las reivindicaciones anteriores, dispuesto para obtener una matriz compartida A generando una semilla aleatoria y enviando la semilla aleatoria a través del canal de comunicación al otro nodo, usando el primer y segundo nodo de red la semilla aleatoria para inicializar un generador de número pseudo aleatorio determinístico, generando la matriz A a partir del resultado del generador de número pseudo aleatorio.
    13. Un primer nodo de red como en una cualquiera de las reivindicaciones anteriores, en donde
    - la matriz A tiene al menos una dimisión igual a n, y opcionalmente es una matriz n por n cuadrada,
    - la clave privada del primer nodo tiene dimensiones n y / í ,
    - la clave privada del segundo nodo tiene dimensiones m y n, en donde n y m son más pequeñas que n.
    14. Un primer nodo de red como en una cualquiera de las reivindicaciones anteriores, en donde
    - el primer módulo q tiene como tamaño de bits de 12 o más, y/o
    - el segundo módulo p tiene como tamaño de bits de 7 o más, y/o
    15. Un método de intercambio de claves electrónicas, KEX, (400) para un primer nodo de red electrónico (110), comprendiendo el método
    - disponer (410) una comunicación digital entre el primer nodo de red y un segundo nodo de red,
    - obtener (420) una matriz compartida A siendo la matriz compartida A compartida con el segundo nodo de red a través de la comunicación digital, siendo las entradas en la matriz compartida A seleccionadas módulo un primer módulo q,
    - generar (430) una matriz de clave privada Si, estando las entradas en la matriz de clave privada Si limitadas en valor absoluto por un límite s,
    - generar (440) una matriz de clave pública Pi
    - calculando (442) un producto de matriz entre la matriz compartida A y la matriz de clave privada Si, obteniendo módulo el primer módulo q un producto de matriz
    - escalando (444) las entradas en el producto de matriz descendentemente a un segundo módulo p, siendo una entrada escalada igual a la entrada no escalada multiplicada por el segundo módulo p, dividida por el primer módulo q y redondeada al entero más cercano, siendo el segundo módulo p más pequeño que el primer módulo q, siendo el límite s como máximo el segundo módulo p,
    - enviar (452) la matriz de clave pública Pi del primer nodo de red al segundo nodo de red,
    - recibir (454) una matriz de clave pública Pr del segundo nodo de red,
    - calcular (460) una clave sin procesar como un producto de matriz entre la clave pública recibida Pr del segundo nodo y la matriz de clave privada Si del primer nodo de red módulo el segundo módulo p, en donde el método comprende adicionalmente
    - recibir (472) datos de reconciliación h del segundo nodo de red,
    - calcular (482) una clave compartida aplicando una función de reconciliación rec a los datos de reconciliación recibidos h y a la clave sin procesar, o en donde el método comprende adicionalmente
    - obtener (474) la clave compartida y datos de reconciliación h a partir de la clave sin procesar,
    - enviar (484) los datos de reconciliación h al segundo nodo de red.
    16. Un medio legible por ordenador (1000) que comprende datos transitorios y no transitorios (1020) que representan instrucciones para provocar que un sistema de procesador realice el método de acuerdo con la reivindicación 15.
ES18707865T 2017-02-15 2018-02-15 Dispositivos y método de intercambio de claves Active ES2858435T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP17156214.3A EP3364596A1 (en) 2017-02-15 2017-02-15 Key exchange devices and method
PCT/EP2018/053766 WO2018149912A1 (en) 2017-02-15 2018-02-15 Key exchange devices and method

Publications (2)

Publication Number Publication Date
ES2858435T3 true ES2858435T3 (es) 2021-09-30
ES2858435T8 ES2858435T8 (es) 2022-01-07

Family

ID=58046562

Family Applications (1)

Application Number Title Priority Date Filing Date
ES18707865T Active ES2858435T3 (es) 2017-02-15 2018-02-15 Dispositivos y método de intercambio de claves

Country Status (11)

Country Link
US (1) US11070367B2 (es)
EP (2) EP3364596A1 (es)
JP (1) JP7019730B2 (es)
CN (1) CN110419194B (es)
BR (1) BR112019016779A2 (es)
CA (1) CA3053298A1 (es)
ES (1) ES2858435T3 (es)
MX (1) MX2019009656A (es)
PL (1) PL3583739T3 (es)
RU (1) RU2737105C1 (es)
WO (1) WO2018149912A1 (es)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3402118A1 (en) 2017-05-10 2018-11-14 Koninklijke Philips N.V. Key agreement devices and method
CN111492616B (zh) 2017-10-17 2024-04-16 皇家飞利浦有限公司 用于基于晶格的密码学的可配置设备
US10819510B2 (en) * 2018-02-06 2020-10-27 Wickr Inc. Facilitating communications using hybrid cryptography
US10841086B2 (en) 2018-02-06 2020-11-17 Wickr, Inc. Facilitating communications using hybrid cryptography
US11146540B2 (en) * 2018-05-09 2021-10-12 Datalogic Ip Tech S.R.L. Systems and methods for public key exchange employing a peer-to-peer protocol
EP3624391A1 (en) * 2018-09-12 2020-03-18 Koninklijke Philips N.V. Public/private key system with decreased encrypted message size
CN109525385B (zh) * 2018-11-23 2022-04-08 全链通有限公司 一种共享密钥的封装方法、第一节点和第二节点
EP3754896A1 (en) * 2019-06-18 2020-12-23 Koninklijke Philips N.V. Authenticated key agreement
CN111064570B (zh) * 2019-12-17 2023-01-31 航天信息股份有限公司 共享密钥处理方法、装置、存储介质和电子设备
CN111464289B (zh) 2020-01-13 2021-07-27 华中科技大学 一种后量子密钥交换协议的实现方法、设备及系统
JP7460515B2 (ja) 2020-03-13 2024-04-02 Kddi株式会社 電子署名生成装置、電子署名生成方法及び電子署名生成プログラム
CN111897545B (zh) * 2020-06-28 2022-02-01 东风汽车集团有限公司 应用于ecu的安全访问方法和系统
US11153080B1 (en) * 2020-07-29 2021-10-19 John A. Nix Network securing device data using two post-quantum cryptography key encapsulation mechanisms
US12003629B2 (en) 2020-12-30 2024-06-04 John A. Nix Secure server digital signature generation for post-quantum cryptography key encapsulations
CN114268439B (zh) * 2021-12-16 2023-09-15 中原工学院 一种基于格的身份基认证密钥协商方法
CN114244513B (zh) * 2021-12-31 2024-02-09 日晷科技(上海)有限公司 密钥协商方法、设备及存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0920753B1 (en) * 1996-08-19 2006-12-13 NTRU Cryptosystems, Inc. Public key cryptosystem method and apparatus
CA2277633C (en) * 1999-07-19 2009-10-20 Certicom Corp. Split-key key-agreement protocol
CN1258051A (zh) * 1999-12-23 2000-06-28 赵风光 一种公开密钥加密体制和装置
JP2005252864A (ja) * 2004-03-05 2005-09-15 Nippon Telegr & Teleph Corp <Ntt> セキュリティシステム、セキュリティ装置及びそのプログラム
CA2561796C (en) * 2004-04-02 2012-04-17 Research In Motion Limited Key agreement and re-keying over a bidirectional communication path
US8422681B2 (en) * 2008-03-06 2013-04-16 International Business Machines Corporation Non-interactive hierarchical identity-based key-agreement
EP2334008A1 (en) * 2009-12-10 2011-06-15 Tata Consultancy Services Limited A system and method for designing secure client-server communication protocols based on certificateless public key infrastructure
US8861716B2 (en) * 2010-03-30 2014-10-14 International Business Machines Corporation Efficient homomorphic encryption scheme for bilinear forms
RU2452111C1 (ru) * 2010-11-17 2012-05-27 ЗАО Институт инфокоммуникационных технологий Способ пороговой генерации ключей для системы защиты информации на основе идентификационных данных
CN102025491A (zh) * 2010-12-15 2011-04-20 北京联合智华微电子科技有限公司 双矩阵组合公钥的生成方法
US10181049B1 (en) * 2012-01-26 2019-01-15 Hrl Laboratories, Llc Method and apparatus for secure and privacy-preserving querying and interest announcement in content push and pull protocols
CN104396184B (zh) * 2012-04-12 2017-12-01 丁津泰 基于有错配对的新密码系统
EP2667539A1 (en) * 2012-05-21 2013-11-27 Koninklijke Philips N.V. Key sharing methods, device and system for configuration thereof.
US20140185805A1 (en) * 2013-01-03 2014-07-03 Neuropace, Inc. Securely Exchanging Cipher Keys
WO2015075012A1 (en) * 2013-11-21 2015-05-28 Koninklijke Philips N.V. System for sharing a cryptographic key
US10110569B1 (en) * 2015-04-08 2018-10-23 CSuite Technologies, Inc. Systems and methods of storing data on a cloud-based personal virtual server
US9948460B2 (en) * 2015-08-28 2018-04-17 City University Of Hong Kong Multivariate cryptography based on clipped hopfield neural network
US10623972B2 (en) * 2016-08-05 2020-04-14 T-Mobile Usa, Inc. Common network resource allocation for matching data
US10129223B1 (en) * 2016-11-23 2018-11-13 Amazon Technologies, Inc. Lightweight encrypted communication protocol
US10630682B1 (en) * 2016-11-23 2020-04-21 Amazon Technologies, Inc. Lightweight authentication protocol using device tokens
US10425225B1 (en) * 2016-12-14 2019-09-24 Amazon Technologies, Inc. Synchronizable hardware security module
US10263778B1 (en) * 2016-12-14 2019-04-16 Amazon Technologies, Inc. Synchronizable hardware security module

Also Published As

Publication number Publication date
US20190386825A1 (en) 2019-12-19
CA3053298A1 (en) 2018-08-23
ES2858435T8 (es) 2022-01-07
JP7019730B2 (ja) 2022-02-15
WO2018149912A1 (en) 2018-08-23
EP3583739B1 (en) 2020-12-02
CN110419194A (zh) 2019-11-05
CN110419194B (zh) 2023-04-04
JP2020508021A (ja) 2020-03-12
MX2019009656A (es) 2019-09-27
RU2737105C1 (ru) 2020-11-24
BR112019016779A2 (pt) 2020-03-31
EP3364596A1 (en) 2018-08-22
PL3583739T3 (pl) 2021-10-11
EP3583739A1 (en) 2019-12-25
US11070367B2 (en) 2021-07-20

Similar Documents

Publication Publication Date Title
ES2858435T3 (es) Dispositivos y método de intercambio de claves
ES2842954T3 (es) Dispositivos y método de acuerdo de clave
RU2752697C1 (ru) Криптографическое устройство с изменяемой конфигурацией
JP7208987B2 (ja) 更新可能な共有マトリクスを備える暗号装置
EP3547603A1 (en) Configurable device for lattice-based cryptography
Rani et al. A Compound Algorithm Using Neural and AES for Encryption and Compare it with RSA and existing AES
WO2018011825A1 (en) Encryption and decryption of messages
RU2558621C2 (ru) Способ шифрования сообщения, представленного в виде битовой строки
Tayoub et al. Implementation of Public-Key cryptographic systems on embedded devices (case: Computation speed)
RU2450457C1 (ru) Способ шифрования