ES2279225T3 - Comunicaciones seguras. - Google Patents

Comunicaciones seguras. Download PDF

Info

Publication number
ES2279225T3
ES2279225T3 ES03809276T ES03809276T ES2279225T3 ES 2279225 T3 ES2279225 T3 ES 2279225T3 ES 03809276 T ES03809276 T ES 03809276T ES 03809276 T ES03809276 T ES 03809276T ES 2279225 T3 ES2279225 T3 ES 2279225T3
Authority
ES
Spain
Prior art keywords
communications
contribution
code
unit
value
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.)
Expired - Lifetime
Application number
ES03809276T
Other languages
English (en)
Inventor
Christian Gehrmann
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of ES2279225T3 publication Critical patent/ES2279225T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Developing Agents For Electrophotography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Treatments For Attaching Organic Compounds To Fibrous Goods (AREA)
  • Diaphragms For Electromechanical Transducers (AREA)
  • Vehicle Body Suspensions (AREA)

Abstract

Un método de proporcionar comunicaciones seguras entre una primera y una segunda unidades de comunicaciones (A, B, C), comprendiendo el método un intercambio de claves entre la primera y la segunda unidades de comunicaciones que se traduce en una clave secreta compartida (S), incluyendo el intercambio de claves una interacción de un usuario; comprendiendo el método los pasos de: - proporcionar (103, 105; 205, 208, 228), al menos parcialmente mediante una interacción de un usuario, un código de seguridad (K) a la primera y a la segunda unidades de comunicaciones; - generar (103, 117, 217) una primera contribución (X) a la clave secreta compartida por la primera unidad de comunicaciones y una segunda contribución (Y) a la clave secreta compartida por la segunda unidad de comunicaciones, y transmitir (112, 120, 220) cada contribución generada a la correspondiente otra unidad de comunicaciones; - autentificar (114, 115, 124, 214, 215) la primera y la segunda contribuciones transmitidas por la correspondiente unidad de comunicaciones que la recibe en base al menos al código de seguridad; y - establecer (118, 122, 218) dicha clave secreta compartida por cada una de las unidades de comunicaciones a partir al menos de la correspondiente primera o segunda contribución recibida, solamente si la correspondiente contribución recibida se autentifica con éxito; caracterizado porque el paso de autentificación de la primera y de la segunda contribuciones transmitidas comprende la autentificación de la primera contribución calculando (114, 214) un valor ¿tag¿ (t, t¿) de un código de autentificación de mensajes, siendo calculado el valor ¿tag¿ a partir de la primera contribución y del código de seguridad.

Description

Comunicaciones seguras.
Campo de la invención
Esta invención se refiere a comunicaciones seguras entre una primera unidad de comunicaciones y una segunda unidad de comunicaciones.
Antecedentes de la invención
En sistemas de comunicaciones inalámbricas, el establecimiento de comunicaciones seguras entre las unidades de comunicaciones participantes es un aspecto importante. En muchos sistemas de comunicaciones, se implementa un mecanismo de intercambio de claves que proporciona a las unidades de comunicaciones participantes una clave secreta compartida común. Una vez que se establece una clave secreta compartida entre dos unidades, la clave secreta compartida puede utilizarse para proporcionar cifrado y/o protección de integridad de los mensajes comunicados entre las unidades.
En muchas situaciones, el establecimiento de comunicaciones seguras se consigue mediante un intercambio de claves que implica una interacción de un usuario tal como un usuario que introduce un código de seguridad, por ejemplo una contraseña o un PIN (personal identification number, número de identificación personal), en una o en ambas unidades de comunicaciones. En concreto, puede ser necesaria una interacción de un usuario en situaciones en las que las unidades participantes no han establecido aún ninguna relación de seguridad, tal como una clave secreta compartida.
Un ejemplo de una tecnología de comunicaciones inalámbricas de corto alcance es Bluetooth, una tecnología de comunicaciones por radio que funciona en la banda sin licencia ISM (Industrial, Scientific and Medical, industrial, científica y médica) a 2,45 GHz, que está mundialmente disponible. La banda proporciona un espectro de radio de 83,5 MHz. Bluetooth es una tecnología que proporciona implementaciones de radios de baja potencia y bajo coste. Utilizando Bluetooth es posible conectar dispositivos personales de una manera específica en las denominadas pico-redes. El estándar de Bluetooth (ver "Baseband Specification" en "Specification of the Bluetooth System, Core, Version 1.1", Bluetooth Special Interest Group, febrero de 2001) comprende además una serie de mecanismos de seguridad. En concreto, el estándar Bluetooth proporciona un mecanismo de emparejamiento, en el que dos dispositivos que no se han conectado antes llevan a cabo un intercambio de claves para establecer una clave secreta compartida, la denominada clave de enlace, entre dos dispositivos Bluetooth. La clave de enlace se obtiene a partir de un PIN que introduce(n) el(los) usuario(s) de los dispositivos. La clave de enlace se utiliza posteriormente para proteger la comunicación Bluetooth.
El denominado protocolo de intercambio de claves de Diffie-Hellman descrito en la patente de Estados Unidos número 4.200.770 proporciona una clave secreta compartida a dos dispositivos. De acuerdo con este protocolo, cada dispositivo genera una clave secreta, obtiene una clave pública a partir de dicha clave secreta, y envía la clave pública al otro dispositivo. Cada dispositivo genera entonces la clave secreta compartida a partir de su clave secreta y de la correspondiente clave pública recibida del otro dispositivo.
Es un problema general de un mecanismo de intercambio de claves de este tipo el que puede ser atacado mediante un ataque del tipo "man-in-the-middle" (una persona entre ambos), es decir una brecha en la seguridad en la que un usuario malicioso intercepta y altera los mensajes entre los dispositivos que se comunican.
La solicitud de patente europea EP 1.248.408, describe un protocolo de intercambio de claves de Diffie-Hellman modificado, de forma que las dos partes autentifican la una a la otra utilizando una contraseña compartida. En este método conocido, una parte genera el valor de Diffie-Hellman g^{x} y lo combina con una función de la contraseña utilizando la operación de grupo asociada con el protocolo de Diffie-Hellman.
El artículo "Enhancements to Bluetooth baseband security" de C. Gehrmann y K. Nyberg, Proceedings of Nordsec 2001, Copenhagen, noviembre de 2001, describe un esquema de autentificación que implica una interacción de un usuario. En concreto, el artículo anterior describe un método de autentificación de una clave secreta compartida que fue previamente establecida mediante un intercambio de claves de Diffie-Hellman anónimo. El método se basa en la presunción de que si está presente "a man-in-the-midle" (una persona entre ambos) en el intercambio de claves de Diffie-Hellman, las claves de Diffie-Hellman establecidas serán diferentes en los dispositivos legítimos. La autentificación se basa en la comprobación de valores calculados por los dos dispositivos en base a la clave secreta compartida establecida. Los valores de comprobación creados o bien se representan en ambos dispositivos y se comparan por un usuario, o bien el valor de comprobación calculado por uno de los dispositivos se introduce en el otro dispositivo por el usuario para permitir al otro dispositivo el llevar a cabo la comparación.
Un problema del sistema conocido anterior es que requiere que la interacción humana autentificando la clave secreta compartida establecida tenga lugar en el instante del establecimiento de la comunicación segura. Sin embargo, esto puede ser no deseado, por ejemplo en situaciones en las que las comunicaciones seguras reales deben establecerse de forma rápida.
Resumen de la invención
El anterior y otros problemas se resuelven por un método de proporcionar comunicaciones seguras entre una primera y una segunda unidades de comunicaciones, comprendiendo el método un intercambio de claves entre la primera y la segunda unidades de comunicaciones que se traduce en una clave secreta compartida, incluyendo el intercambio de claves una interacción de un usuario; comprendiendo el método los pasos de:
- proporcionar, al menos parcialmente mediante una interacción de un usuario, un código de seguridad a la primera y a la segunda unidades de comunicaciones;
- generar una primera contribución a la clave secreta compartida por la primera unidad de comunicaciones y una segunda contribución a la clave secreta compartida por la segunda unidad de comunicaciones, y transmitir cada contribución generada a la correspondiente otra unidad de comunicaciones;
- autentificar la primera y la segunda contribuciones transmitidas por la correspondiente unidad de comunicaciones que la recibe en base al menos al código de seguridad; y
- establecer dicha clave secreta compartida por cada una de las unidades de comunicaciones a partir al menos de la correspondiente primera o segunda contribución recibida, solamente si la correspondiente contribución recibida se autentifica con éxito.
Es una ventaja de la invención el que el código de seguridad pueda determinarse y proporcionarse a las unidades de comunicaciones con anterioridad al intercambio real de claves y usarse en un momento posterior cuando tenga lugar el intercambio real de claves, es decir la creación real de la clave secreta compartida. Por lo tanto, se elimina la necesidad de la interacción de un usuario durante la creación real de la clave secreta compartida con el fin de autentificar la clave secreta compartida sin comprometer la seguridad del método.
Una ventaja adicional de la invención es que reduce el riesgo de un ataque del tipo "a-man-in-the-middle" en relación con un intercambio de claves, incrementando con ello la seguridad de un sistema de comunicaciones.
Se prefiere que el código de seguridad se genere automáticamente, por ejemplo por la primera unidad de comunicaciones, asegurando con ello la aleatoriedad del código de seguridad. Cuando el código de seguridad generado por una de las unidades de comunicaciones se transfiere a la otra unidad de comunicaciones a través de un canal de comunicaciones que implica una interacción de un usuario distinto del enlace de comunicaciones utilizado para el intercambio de claves, se incrementa la seguridad ya que el riesgo de que un adversario intercepte también el canal de comunicaciones separado es bajo. Por ejemplo, un canal de comunicaciones que implica una interacción de un usuario puede ser una línea telefónica, una carta enviada formando parte de un proceso de registro, o similares. Se prefiere que el código de seguridad sea corto, preferentemente lo suficientemente corto como para que pueda ser comunicado a través de un interfaz hombre-máquina o un interfaz hombre-hombre. Por ejemplo, el código de seguridad puede ser una cadena que comprenda menos de diez dígitos y/o letras y/u otros símbolos, por ejemplo de 4 a 6 dígitos hexadecimales, simplificando con ello la comunicación del código de seguridad. Por ejemplo, el código de seguridad puede leerse fácilmente en la pantalla de la unidad de comunicaciones que generó el código de seguridad, comunicarse por teléfono, por correo u otras formas equivalentes, y teclearse en la otra unidad, un teléfono, un ordenador o
equivalente.
Por lo tanto, la interacción de un usuario implica el que un usuario de al menos una de las unidades de comunicaciones lea el código de seguridad, por ejemplo en una pantalla, introduzca el código de seguridad, o al menos lleve a cabo una entrada de usuario indicativa de una autorización para transferir el código de seguridad, o equivalente, es decir la interacción de un usuario implica al menos la "salida" del código de seguridad de una de las unidades de comunicaciones o la recepción de una entrada por parte de un usuario, por ejemplo una entrada indicativa de un código de seguridad. En algunas realizaciones, la interacción de un usuario implica además un interfaz hombre-hombre, por ejemplo la comunicación del código de seguridad de un usuario de un dispositivo a un usuario del otro dispositivo.
El intercambio de claves puede basarse en cualquier mecanismo de intercambio de claves adecuado que dé como resultado una clave secreta compartida, preferiblemente una clave secreta compartida que sea lo suficientemente larga como para proporcionar suficiente seguridad durante las comunicaciones posteriores. En una realización, el intercambio de claves es un intercambio de claves de Diffie-Hellman. Otros ejemplos de mecanismos de intercambio de claves incluyen el intercambio de claves RSA. Es una ventaja que el intercambio de claves de acuerdo con la invención pueda basarse en mecanismos de intercambio de claves estándar.
De acuerdo con una realización preferida de la invención, el paso de autentificar la primera y la segunda contribuciones transmitidas comprende la autentificación de la primera contribución mediante el cálculo de un valor "tag" de un código de autentificación de mensajes, calculándose el valor "tag" a partir de la primera contribución y del código de seguridad, proporcionando con ello una autentificación eficiente de la primera contribución que proporciona un elevado nivel de seguridad y requiriendo solamente pocos recursos computacionales. Preferiblemente, el código de autentificación de mensajes (MAC) es un MAC incondicionalmente seguro, es decir un MAC que básicamente no puede romperse incluso con grandes recursos de cálculo.
De acuerdo con otra realización preferida, el valor "tag" calculado se calcula seleccionando un símbolo de una palabra código de un código corrector de errores, por ejemplo un código Reed-Solomon, correspondiendo la palabra código a la primera contribución y siendo identificado el símbolo por el código de seguridad. Por lo tanto, se proporciona una elevada seguridad a la autentificación incluso para códigos de seguridad cortos.
Preferentemente, la autentificación comprende además el cálculo de un valor resumen de una función resumen unidireccional de la primera contribución y el cálculo de dicho valor "tag" mediante la selección de un símbolo de una palabra código de un código de corrección de errores, correspondiendo la palabra código al valor resumen de la primera contribución y siendo identificado el símbolo por el código de seguridad. Por lo tanto, puede reducirse aún más la longitud del código de seguridad mientras se mantiene un nivel elevado de seguridad.
El término unidad de comunicaciones comprende cualquier dispositivo o grupo de dispositivos que comprenda los circuitos adecuados para recibir y/o transmitir señales de comunicaciones, por ejemplo señales de comunicaciones por radio, para facilitar la comunicación de datos. Ejemplos de tales dispositivos incluyen equipos portátiles de comunicaciones por radio y otros dispositivos portátiles. El término equipos portátiles de comunicaciones por radio incluye todos los equipos tales como teléfonos móviles, localizadores personales, comunicadores, es decir organizadores electrónicos, teléfonos inteligentes, PDA (personal digital assistants), ordenadores portátiles, u otros similares.
Otros ejemplos de unidades de comunicaciones incluyen equipos de comunicaciones fijos, por ejemplo ordenadores fijos u otros equipos electrónicos que incluyen un interfaz de comunicaciones inalámbricas. En una realización, una de las unidades puede comprende un cierto número de dispositivos. Por ejemplo, la unidad de comunicaciones puede comprender una red de ordenadores que comprende, por ejemplo, un punto de acceso que proporciona acceso inalámbrico a dicha red de ordenadores, por ejemplo una LAN.
Por ejemplo, las unidades de comunicaciones pueden operar de acuerdo con la tecnología Bluetooth o con cualquier otra tecnología de comunicaciones inalámbricas, por ejemplo una LAN inalámbrica.
Otras realizaciones preferidas se describen en las reivindicaciones dependientes.
A destacar que las características del método descrito anteriormente y en lo que sigue pueden implementarse mediante "software" y pueden ser llevadas a la práctica en un sistema de procesamiento de datos u otros medios de procesamiento mediante la ejecución de instrucciones ejecutables en un ordenador. Las instrucciones pueden ser programas codificados cargados en una memoria, tal como una RAM, pueden proceder de un medio de almacenamiento o pueden proceder de otro ordenador a través de una red de ordenadores. Alternativamente, las características descritas pueden implementarse mediante "hardware" en lugar de mediante "software" o mediante una combinación con "software".
La presente invención puede implementarse de diferentes maneras incluyendo el método descrito anteriormente y en lo que sigue, un sistema de comunicaciones y productos adicionales, cada una ofreciendo uno o más de los beneficios y ventajas descritos en conexión con el método mencionado en primer lugar, y teniendo cada manera una o más realizaciones preferidas que corresponden a las realizaciones preferidas descritas en conexión con el método mencionado en primer lugar y descritas en las reivindicaciones dependientes.
La invención se refiere además a un sistema de comunicaciones para proporcionar comunicaciones seguras al menos entre una primera y una segunda unidades de comunicaciones por medio de un intercambio de claves entre la primera y la segunda unidades de comunicaciones que se traduce en una clave secreta compartida, incluyendo el intercambio de claves una interacción de un usuario; comprendiendo el sistema de comunicaciones:
- medios para proporcionar, al menos parcialmente mediante una interacción de un usuario, un código de seguridad a la primera y a la segunda unidades de comunicaciones;
- medios para generar una primera contribución a la clave secreta compartida por la primera unidad de comunicaciones y una segunda contribución a la clave secreta compartida por la segunda unidad de comunicaciones;
- medios para transmitir cada contribución generada a la correspondiente otra unidad de comunicaciones;
- medios para autentificar la primera y la segunda contribuciones transmitidas por la correspondiente unidad de comunicaciones que la recibe en base al menos al código de seguridad; y
- medios para establecer dicha clave secreta compartida por cada una de las unidades de comunicaciones a partir al menos de la correspondiente primera o segunda contribución recibida, solamente si la correspondiente contribución recibida se autentifica con éxito.
La invención se refiere también a una unidad de comunicaciones para proporcionar comunicaciones seguras con otra unidad de comunicaciones por medio de un intercambio de claves que se traduce en una clave secreta compartida, incluyendo el intercambio de claves una interacción de un usuario, comprendiendo la unidad de comunicaciones medios de procesamiento de datos, medios de interfaz con el usuario y un interfaz de comunicaciones, estando los medios de procesamiento adaptados para llevar a cabo los siguientes pasos:
- generar un código de seguridad para que sea proporcionado, al menos parcialmente mediante una interacción de un usuario a través de los medios de interfaz con el usuario, a la otra unidad de comunicaciones;
- generar y transmitir a través del interfaz de comunicaciones una primera contribución a la clave secreta compartida, y recibir a través del interfaz de comunicaciones una segunda contribución a la clave secreta compartida, siendo generada la segunda contribución por la otra unidad de comunicaciones;
- autentificar la segunda contribución recibida en base al código de seguridad; y
- establecer dicha clave secreta compartida a partir de al menos la segunda contribución, solamente si la segunda contribución recibida se autentifica con éxito.
La invención se refiere también a una unidad de comunicaciones para proporcionar comunicaciones seguras con otra unidad de comunicaciones por medio de un intercambio de claves que se traduce en una clave secreta compartida, incluyendo el intercambio de claves una interacción de un usuario, comprendiendo la unidad de comunicaciones medios de procesamiento de datos, medios de almacenamiento y un interfaz de comunicaciones, estando los medios de procesamiento adaptados para realizar un intercambio de claves que se traduce en una clave secreta compartida, comprendiendo el intercambio de claves:
- recibir, al menos parcialmente mediante una interacción de un usuario, y almacenar un código de seguridad generado por otra unidad de comunicaciones;
- recibir a través del interfaz de comunicaciones una primera contribución a la clave secreta generada por la otra unidad de comunicaciones;
- autentificar la primera contribución recibida en base al código de seguridad;
- establecer dicha clave secreta compartida a partir de al menos la primera contribución, si la primera contribución recibida se autentifica con éxito, y transmitir a través del interfaz de comunicaciones una segunda contribución a la clave secreta compartida.
Aquí, el término medios de procesamiento comprende cualquier circuito y/o dispositivo adaptado adecuadamente para llevar a cabo las funciones anteriores. En concreto, el término anterior comprende microprocesadores programables de uso general o específico, DSP (Digital Signal Processors, procesadores de señales digitales), ASIC (Applications Specific Integrated Circuits, circuitos integrados de aplicación específica), PLA (Programmable Logic Arrays), FPGA (Field Programmable Gate Arrays), circuitos electrónicos de uso especial, etc., o una combinación de los mismos.
El interfaz de comunicaciones puede comprender cualquier circuito o dispositivo adecuado para comunicar datos a través de un canal de comunicaciones inalámbrico. Por ejemplo, el interfaz puede comprender un transmisor y receptor de radio, o un transmisor/receptor utilizando otra tecnología de comunicaciones, por ejemplo señales infrarrojas o similares.
El término medios de almacenamiento se intenta que comprenda cualquier disposición o dispositivo adecuado para almacenamiento de datos, por ejemplo una EEPROM (electrically erasable programmable read only memory, memoria de sólo lectura programable borrable eléctricamente), una memoria flash, una EPROM (erasable programmable read only memory, memoria de sólo lectura programable borrable), o una RAM (random access memory, memoria de acceso aleatorio). Los medios de almacenamiento pueden formar parte integrada de la unidad de comunicaciones, o pueden estar conectados a dicha unidad, por ejemplo insertados de forma removible. Por ejemplo, los medios de almacenamiento pueden ser unos medios de almacenamiento removibles, por ejemplo una tarjeta de memoria, una tarjeta PCMCIA, una tarjeta inteligente, o equivalentes.
Breve descripción de los dibujos
El anterior y otros aspectos de la invención se harán evidentes y se aclararán con las realizaciones descritas a continuación con referencia a los dibujos en los que:
- la figura 1 muestra un diagrama de flujo de una realización de un mecanismo seguro de intercambio de claves;
- las figuras 2a y 2b muestran diagramas de flujo de otras realizaciones de un mecanismo seguro de intercambio de claves;
- la figura 3 muestra un diagrama de flujo de un método de cálculo de un código de autentificación de mensajes basado en un código de corrección de errores;
- las figuras 4a y 4b muestran diagramas de flujo de ejemplos de un método de cálculo de un código de autentificación de mensajes basado en un código Reed-Solomon;
- la figura 5 muestra una tabla que indica las probabilidades de éxito de un ataque de sustitución para diversos ejemplos de la construcción MAC de las figuras 4a y 4b;
- la figura 6 muestra un diagrama de bloques de dos unidades de comunicaciones; y
- la figura 7 muestra un diagrama de bloques de una unidad de comunicaciones móvil comunicándose con una red de ordenadores a través de un punto de acceso de la red de ordenadores.
Descripción detallada de las realizaciones preferidas
La figura 1 muestra un diagrama de flujo de una realización de un mecanismo seguro de intercambio de claves. Cuando dos unidades, designadas globalmente por A y B, respectivamente, intentan realizar un intercambio seguro de claves con el fin de establecer una clave secreta compartida, llevan a cabo los siguientes pasos, en donde los pasos representados en el lado izquierdo del diagrama de flujo, designados globalmente por la referencia numérica 101, los realiza la unidad A, mientras que los pasos representados en el lado derecho del diagrama de flujo, designados globalmente por la referencia numérica 102, los realiza la unidad B.
El siguiente intercambio de claves se basa en el denominado método "Diffie-Hellman" para acuerdo de claves. Con el fin de facilitar la comprensión de la descripción que sigue, se describirá brevemente el acuerdo de claves de Diffie-Hellman. Para una descripción más detallada véase la patente de Estados Unidos número 4.200.770.
Cuando dos unidades A y B desean establecer una clave secreta compartida, acuerdan un número primo p>2 y una base g, que sea una primitiva módulo p. Los parámetros p y g pueden estar codificados por hardware en ambas unidades, pueden generarse por una de las unidades y comunicarse a la otra unidad, pueden recuperarse de una tercera parte, u otras formas equivalentes. Por ejemplo, con el fin de generar p y g, puede seleccionarse un valor de p, por ejemplo como un número aleatorio grande, por ejemplo con 1.000 bitios o más, y puede llevarse a cabo una prueba conocida de números primos con el fin de comprobar si p es un número primo. Si no lo es, puede seleccionarse un nuevo p y comprobarse hasta que se encuentre un número primo. Posteriormente, se selecciona un número aleatorio g y se comprueba si g es un generador; si no lo es, se selecciona un nuevo g y se comprueba hasta que se encuentra un generador.
Cada unidad genera un número secreto que es menor que p-1. En lo que sigue, llamaremos x al número secreto generado por la unidad A, e y al número secreto generado por la unidad B. Cada unidad genera entonces una clave pública basada en el número secreto y en los parámetros anteriores. La unidad A genera X = g^{x} mod p, donde mod designa la función módulo, es decir el resto de una división entera. De forma similar, la unidad B genera Y = g^{y} mod p.
Las unidades intercambian sus claves públicas, y cada unidad calcula un valor secreto común S de acuerdo con:
Unidad A: S = (Y)^{x} mod p,
Unidad B: S = (X)^{y} mod p.
Por lo tanto, como resultado, las unidades A y B han establecido una clave secreta común S sin haberse comunicado los valores secretos x e y, ya que
10
Ahora, con referencia a la figura 1, en un paso inicial 103 del intercambio de claves, la unidad A genera un número aleatorio x, una correspondiente clave pública de Diffie-Hellman X y una cadena secreta corta K u otro código de seguridad. La clave pública de Diffie-Hellman X se calcula como se ha descrito anteriormente en base a los correspondientes parámetros g y p, que han sido acordados por las unidades A y B. Preferentemente, la cadena secreta K se determina de forma aleatoria de un espacio de claves adecuado, por ejemplo como una cadena de 4 a 6 dígitos hexadecimales.
En el siguiente paso 104, la unidad A utiliza un MAC (message authentication code, código de autentificación de mensajes) como se ha descrito anteriormente para calcular un valor "tag" t a partir de la clave pública X. Aquí, el término código de autentificación de mensajes se refiere a cualquier función adecuada para calcular un valor "tag" a partir de un mensaje a comunicar entre un emisor y un receptor, en donde la función se basa en un valor secreto compartido simétrico entre el emisor y el receptor. El valor secreto recibe el nombre de clave. La clave secreta es una variable de entrada en el cálculo del MAC. Solamente alguien que está en posesión de la clave secreta correcta es capaz de calcular el valor "tag" de un mensaje arbitrario. Un valor "tag" de un MAC es un valor de comprobación de la integridad que se calcula a partir de los datos del mensaje original y se comunica al receptor del mensaje. Tras la recepción de un mensaje protegido por un MAC, el receptor calcula un correspondiente valor "tag" en base a los datos recibidos. Si el valor "tag" calculado es igual que el valor "tag" recibido, el mensaje se acepta como auténtico. Ejemplos de MAC conocidos incluyen el algoritmo denominado HMAC (Keyed-Hashing for Message Authentication), que se basa en funciones resumen criptográficas unidireccionales tales como el algoritmo SHA-1 (secure hash algorithm, algoritmo resumen de seguridad) y el algoritmo MD5 (message-digest, resumen del mensaje). Los MAC se utilizan para proporcionar protección de integridad de los datos en muchos protocolos de comunicaciones de datos. Una realización de una función MAC basada en códigos de corrección de errores se describirá posteriormente. En el paso 104, la entrada a la función MAC incluye la clave pública X, y la cadena secreta generada K se utiliza como una clave para el cálculo del valor "tag" t del MAC. Se entiende que, en algunas realizaciones, en las que durante el establecimiento de las claves se comunican datos adicionales, el valor "tag" puede calcularse a partir de un mensaje que incluya la clave pública X y los datos adicionales, proporcionando con ello protección de integridad también para los datos adicionales.
En el paso 105, la cadena secreta K generada y el valor "tag" t calculado se comunican a la unidad B a través de un canal de comunicaciones adecuado que implica una interacción de un usuario, como se indica por la flecha de línea discontinua 106 de la figura 1. Por ejemplo, los valores de K y de t pueden transferirse de la unidad A a la unidad B leyendo los valores en una pantalla de la unidad A e introduciendo los valores en la unidad B por medio de un teclado. En otra realización, los valores pueden transferirse por otros medios, por ejemplo a través de una red de telecomunicaciones, enviando los valores como un mensaje cifrado, por ejemplo un e-mail, un SMS, o equivalente, o a través de cualquier otro canal de comunicaciones adecuado que implique una interacción de un usuario, preferentemente un canal de comunicaciones diferente del canal de comunicaciones en el que se quieren establecer las comunicaciones seguras. Es una ventaja el que las unidades A y B no tengan que tener un enlace de comunicaciones establecido entre ellas; incluso no tienen que estar una en la proximidad de la otra. Por ejemplo, el usuario de la unidad A puede comunicar la cadena secreta y el valor "tag" al usuario de la unidad B por teléfono, correo o cualquier otro medio adecuado. Además, la comunicación de los valores de K y de t generados puede realizarse con anterioridad al instante en el que debe realmente establecerse la clave secreta compartida entre las unidades, por ejemplo como parte de un proceso de registro. En una realización, junto con K y t se comunica un identificador ID con el fin de facilitar la posterior recuperación de K y de t.
En el paso 107, la unidad B recibe los valores de K y de t y, en el paso 110, los almacena en un medio de almacenamiento 111 de la unidad B, por ejemplo en una EPROM o en una EEPROM de un dispositivo portátil, en una tarjeta inteligente, en un disco duro o en cualquier otro dispositivo de almacenamiento de datos adecuado. Si los valores K y t están asociados a un identificador ID, los valores K y t se almacenan asociados a dicho identificador, por ejemplo utilizando el identificador como un índice.
De forma similar, en el paso 108 la unidad A almacena la cadena secreta K, opcionalmente asociada al identificador ID, en un medio de almacenamiento 109 de la unidad A. Además, la unidad A almacena el valor secreto x, en el que se basó el cálculo de la clave pública X.
Con esto concluye el proceso de registro inicial. Los pasos siguientes, que incluyen el intercambio real de claves, se realizan cuando las unidades A y B están realmente conectadas a través de un enlace de comunicaciones. Esto puede suceder inmediatamente después del registro inicial anterior o en un momento posterior, como se indica en la figura 1 por las líneas 127.
En el paso 112, la unidad A inicia el intercambio real de claves transmitiendo la clave pública X a la unidad B a través de un enlace de comunicaciones inalámbrico. En una realización en la que la cadena secreta K se asoció a un identificar ID, la unidad A transmite también dicho identificador. Del mismo modo, si en el paso 104 el valor "tag" t se calculó para la clave pública y datos adicionales, la unidad A envía también dichos datos adicionales a la unidad B.
Cuando la unidad B recibe la clave pública X procedente de la unidad A (paso 113), en el paso 114 la unidad B recupera la cadena secreta K del medio de almacenamiento 111, en una realización en base al identificador ID. La unidad B calcula el valor "tag" t' de la función MAC de la clave pública recibida X en base a la cadena secreta K.
En el paso 115, la unidad B compara el valor "tag" t' calculado con el valor "tag" t almacenado previamente. Si los valores "tag" son diferentes, la clave pública recibida se rechaza (paso 116). Por ejemplo, la unidad B puede abortar el intercambio de claves enviando el correspondiente mensaje a la unidad A y/o informando al usuario del rechazo, por ejemplo proporcionando una indicación visual o audible. En caso contrario, es decir si los valores "tag" son iguales, se acepta la clave pública X y el proceso continúa en el paso 117.
En el paso 117, la unidad B genera un valor secreto y y una correspondiente clave pública de Diffie-Hellman Y, como se describió anteriormente.
En el paso 118, la unidad B genera la correspondiente clave secreta compartida de Diffie-Hellman S = (X)^{y} mod p.
En el paso 119, la unidad B cifra la cadena secreta K recuperada del medio de almacenamiento 111 utilizando la clave secreta compartida S generada lo que da como resultado una cadena secreta cifrada K*. El cifrado se puede basar en cualquier método de cifrado adecuado basado en una clave secreta simétrica, por ejemplo AES, SAFER+, RC5, DES, 3DES, etc.
En el paso 120, la unidad B envía a la unidad A la cadena secreta cifrada K* y la clave pública de Diffie-Hellman Y. De nuevo, en una realización la unidad B envía además el correspondiente identificador ID.
En el paso 121, la unidad A recibe la cadena secreta cifrada K* y la clave pública de Diffie-Hellman Y.
En el paso 122, la unidad A genera la clave secreta compartida de Diffie-Hellman S = (Y)^{x} mod p, utilizando el valor secreto x almacenado en el medio de almacenamiento 109.
En el paso 123, la unidad A utiliza la clave secreta compartida S generada para descifrar la cadena secreta cifrada K* recibida y obtener la cadena secreta descifrada K'.
En el paso 124, la unidad A compara la cadena secreta recibida y descifrada K' con la cadena secreta K originalmente generada por la unidad A y almacenada en el medio de almacenamiento 109. Si las cadenas secretas no son iguales, la clave pública recibida Y se rechaza, es decir la clave secreta compartida S generada se descarta (paso 125). En caso contrario, el proceso continúa en el paso 126.
En el paso 126, se acepta la clave pública recibida Y, es decir se acepta la clave secreta compartida S calculada como una clave secreta compartida. En una realización, se envía el correspondiente mensaje a la unidad B, completando con ello el intercambio de claves. La clave secreta compartida generada puede utilizarse ahora para proteger la posterior comunicación entre las unidades A y B, por ejemplo mediante el cifrado y/o la protección de la integridad de los mensajes enviados entre las unidades.
Se entiende que, en una realización alternativa, la clave pública Y comunicada desde la unidad B a la unidad A puede autentificarse por un método diferente, por ejemplo calculando un MAC. Es una ventaja de autentificar Y mediante la inclusión de K* el que pueda usarse varias veces la misma clave sin comprometer la seguridad del método.
Las figuras 2a y 2b muestran diagramas de flujo de un mecanismo de intercambio de claves de acuerdo con otras realizaciones de la invención. Como en el ejemplo anterior, dos unidades llevan a cabo un intercambio seguro de claves con el fin de establecer una clave secreta compartida. En contraste con el ejemplo previo, una de las unidades comprende dos dispositivos B y C, mientras que la otra unidad comprende solamente un dispositivo, designado globalmente como dispositivo A. El proceso de registro inicial se lleva a cabo entre el dispositivo A y el dispositivo C. Por ejemplo el dispositivo A puede ser un dispositivo portátil tal como un teléfono móvil, una PDA, o algo equivalente; el dispositivo B puede ser un punto de acceso de una red de ordenadores o similar, y el dispositivo C puede ser un ordenador servidor de la red de ordenadores, como se describirá con mayor detalle en relación con la figura 7 posterior. Por lo tanto, los pasos representados en el lado izquierdo de los diagramas de flujo de las figuras 2a y 2b, designados globalmente por la referencia numérica 101, los realiza el dispositivo A; los pasos representados en el centro de los diagramas de flujo, designados globalmente por la referencia numérica 202, los realiza el dispositivo B; mientras que los pasos representados en el lado derecho de los diagramas de flujo, designados globalmente por la referencia numérica 201, los realiza el dispositivo C. En los ejemplos de las figuras 2a y 2b, algunos de los pasos llevados a cabo por los dispositivos A, B ó C corresponden a pasos realizados por la unidad A de la figura 1, en cuyo caso las mismas referencias numéricas se refieren a los pasos correspondientes.
Refiriéndonos ahora a la figura 2a, en un paso inicial 103 el dispositivo A genera un número aleatorio x, una correspondiente clave pública de Diffie-Hellman X y una cadena secreta corta K y, en el paso siguiente 104, el dispositivo A utiliza un MAC (message authentication code, código de autentificación de mensajes) para calcular un valor "tag" t a partir de la clave pública X y con la cadena secreta K como clave, como se describió anteriormente.
En el paso 205, la cadena secreta K generada y el valor "tag" t calculado se comunican al dispositivo C a través de un canal de comunicaciones adecuado, como se indica por la flecha de línea discontinua 206. Esta comunicación corresponde a las comunicaciones de los parámetros anteriores entre los dispositivos A y B de la figura 1, tal y como se describió con referencia a las referencias numéricas 105, 106 y 107 de la figura 1. Sin embargo, en la presente realización, los parámetros se comunican entre los dispositivos A y C implicando una interacción de un usuario. Por ejemplo, los valores de K y de t pueden transferirse del dispositivo A al dispositivo C como parte de un proceso de registro. En una realización, el usuario del dispositivo A puede leer la cadena secreta y el valor "tag" en el dispositivo A y comunicarlos a un usuario del dispositivo C, por ejemplo por teléfono, correo o cualquier otro medio adecuado. En otra realización, el dispositivo A puede generar un mensaje que comprenda los datos anteriores y enviarlo al operador de red que tenga autoridad sobre la red de ordenadores que comprenda al dispositivo C y al punto de acceso B. En otra realización un identificador ID se comunica junto con K y t con el fin de facilitar su recuperación posterior.
En el paso 207, el dispositivo C recibe los valores de K y de t y, en el paso 210, los almacena en un medio de almacenamiento 211, por ejemplo una base de datos de claves para gestión de la información relacionada con la seguridad de la red de ordenadores. Si los valores K y t están asociados a un identificador ID, los valores K y t se almacenan asociados a dicho identificador, por ejemplo utilizando el identificador como un índice.
De forma similar, en el paso 108 el dispositivo A almacena la cadena secreta K, opcionalmente asociada al identificador ID, en un medio de almacenamiento 109 del dispositivo A. Además, el dispositivo A almacena el valor secreto x, en el que se basó el cálculo de la clave pública X. Opcionalmente, el dispositivo A puede almacenar también la clave pública X. Alternativamente, la clave pública puede volverse a generar en un momento posterior a partir del valor secreto x.
Con esto concluye el proceso de registro inicial entre los dispositivos A y C. Los pasos siguientes, que incluyen el intercambio real de claves, se realizan cuando los dispositivos A y B están realmente conectados a través de un enlace de comunicaciones. Esto puede suceder inmediatamente después del registro inicial anterior o en un momento posterior, como se indica por las líneas 227.
En el paso 112, el dispositivo A inicia el intercambio real de claves con el dispositivo B transmitiendo la clave pública X y, opcionalmente, los datos adicionales al dispositivo B a través de un enlace de comunicaciones inalámbrico. En una realización en la que la cadena secreta K se asoció a un identificar ID, el dispositivo A transmite también dicho identificador.
Tras haber recibido la clave pública X del dispositivo A (paso 213), el dispositivo B recupera la cadena secreta K y el valor "tag" t del medio de almacenamiento 211 (pasos 208 y 209). En una realización, el dispositivo B puede enviar una petición al dispositivo C a través de la red de ordenadores, por ejemplo incluyendo el identificador ID recibido. En respuesta a la petición, el dispositivo C recupera el valor "tag" y la cadena secreta de la base de datos 211 y los envía al dispositivo B (paso 208) donde se reciben (paso 209). En otra realización, el dispositivo B puede tener acceso directo a la base de datos 211 a través de la red de ordenadores y, por consiguiente, el dispositivo B puede recuperar los parámetros directamente de la base de datos. Preferentemente, la cadena secreta K y el valor "tag" t pueden comunicarse a través de una conexión segura 222, por ejemplo cifrados y/o a través de una red de ordenadores segura.
En el paso 214, el dispositivo B calcula el valor "tag" t' de la función MAC de la clave pública X recibida y en base a la cadena secreta K recuperada.
En el paso 215, el dispositivo B compara el valor "tag" t' calculado con el valor "tag" t recuperado. Si los valores "tag" son diferentes, la clave pública recibida se rechaza (paso 216). En caso contrario, se acepta la clave pública X y el proceso continúa en el paso 217.
En el paso 217, el dispositivo B genera un valor secreto y y una correspondiente clave pública de Diffie-Hellman Y, como se describió anteriormente.
En el paso 218, el dispositivo B genera la correspondiente clave secreta compartida de Diffie-Hellman S = (X)^{y} mod p.
En el paso 219, el dispositivo B cifra la cadena secreta K recuperada utilizando la clave secreta compartida S generada lo que da como resultado una cadena secreta cifrada K*, como se describió en relación con la figura 1.
En el paso 220, el dispositivo B envía la cadena secreta cifrada K* y la clave pública de Diffie-Hellman Y al dispositivo A. De nuevo, en una realización el dispositivo B envía además el correspondiente identificador ID.
En el paso 121, el dispositivo A recibe la cadena secreta cifrada K* y la clave pública de Diffie-Hellman Y.
En el paso 122, el dispositivo A genera la clave secreta compartida de Diffie-Hellman S = (Y)^{x} mod p utilizando el valor secreto x almacenado en el medio de almacenamiento 109.
En el paso 123, el dispositivo A utiliza la clave secreta compartida S generada para descifrar la cadena secreta cifrada K* recibida para obtener la cadena secreta descifrada K'.
En el paso 124, el dispositivo A compara la cadena secreta recibida y descifrada K' con la cadena secreta K originalmente generada por el dispositivo A y almacenada en el medio de almacenamiento 109. Si las cadenas secretas no son iguales, la clave pública recibida Y se rechaza, es decir la clave secreta compartida S generada se descarta (paso 125). En caso contrario, el proceso continúa en el paso 126.
En el paso 126, se acepta la clave pública recibida Y, es decir se acepta la clave secreta compartida S calculada como una clave secreta compartida. En una realización, se envía un correspondiente mensaje al dispositivo B, completando con ello el intercambio de claves. La clave secreta compartida generada puede utilizarse ahora para proteger la posterior comunicación entre los dispositivos A y B, por ejemplo mediante el cifrado y/o la protección de la integridad de los mensajes enviados entre los dispositivos.
Con referencia ahora a la figura 2b, en este ejemplo el dispositivo C, es decir el servidor de red o equivalente, inicia el proceso de intercambio de claves. Por consiguiente, en esta realización, los dispositivos A y el sistema que comprende los dispositivos B y C cambian los papeles en comparación con el ejemplo de la figura 2a, y los pasos descritos en relación con la figura 2a los realizan ahora los otros dispositivos correspondientes. En lo que sigue, los correspondientes pasos se designan por las mismas referencias numéricas que en la figura 2a. En concreto, los pasos descritos como pasos iniciales 103 y 104 de generación del número aleatorio x, de la correspondiente clave pública de Diffie-Hellman X y de la cadena secreta corta K, y del cálculo del valor "tag" t a partir de la clave pública X con la cadena secreta K como clave, respectivamente, los realiza el dispositivo C, es decir el servidor de red o equiva-
lente.
Por consiguiente, en los pasos 205 y 207, la cadena secreta K generada y el valor "tag" t calculado se comunican desde el dispositivo C al dispositivo A a través de un canal de comunicaciones adecuado, tal y como se describió anteriormente y se indica por la flecha de línea discontinua 206. Se entiende que en esta realización, el operador de red inicia la comunicación.
En el paso 210, el dispositivo A almacena los datos recibidos en un medio de almacenamiento 109 del dispositivo A.
De forma similar, en el paso 108 el dispositivo C almacena la cadena secreta K y el valor secreto x en un medio de almacenamiento 211, por ejemplo una base de datos de claves para gestión de la información relacionada con la seguridad de la red de ordenadores. Se entiende que, también en este ejemplo, la cadena secreta K y, por consiguiente, los valores relacionados de x, X y t pueden estar asociados a un identificador ID, como se describió en relación con la figura 2a.
Con esto concluye el proceso de registro inicial entre los dispositivos A y C. Los pasos siguientes, que incluyen el intercambio real de claves, se realizan cuando los dispositivos A y B están realmente conectados a través de un enlace de comunicaciones. Esto puede suceder inmediatamente después del registro inicial anterior o en un momento posterior, como se indica por las líneas 227. De nuevo, en esta realización, el dispositivo B inicia el intercambio de claves en lugar de hacerlo el dispositivo A.
Por consiguiente, el dispositivo B recupera la cadena secreta K y las claves de Diffie-Hellman x y X del medio de almacenamiento 211 (pasos 228 y 229). Como se describió anteriormente, esto puede hacerse a través de una petición directa a la base de datos, a través de una petición enviada al dispositivo C a través de la red de ordenadores (segura), por ejemplo incluyendo el identificador ID recibido, u otras formas equivalentes.
En el paso 112, el dispositivo B inicia el intercambio real de claves transmitiendo la clave pública X y, opcionalmente, los datos adicionales al dispositivo A a través de un enlace de comunicaciones inalámbrico.
En el paso 213, el dispositivo A recibe la clave pública X y, en el paso 214, el dispositivo B calcula el valor "tag" t' de la función MAC de la clave pública X recibida y en base a la cadena secreta K almacenada en el dispositivo A.
En el paso 215, el dispositivo A compara el valor "tag" t' calculado con el valor "tag" t previamente almacenado. Si los valores "tag" son diferentes, la clave pública recibida se rechaza (paso 216). En caso contrario, se acepta la clave pública X y el proceso continúa en el paso 217.
En el paso 217, el dispositivo A genera un valor secreto y y una correspondiente clave pública de Diffie-Hellman Y, como se describió anteriormente.
En el paso 218, el dispositivo A genera la correspondiente clave secreta compartida de Diffie-Hellman S = (X)^{y} mod p.
En el paso 219, el dispositivo A cifra la cadena secreta K utilizando la clave secreta compartida S generada lo que da como resultado una cadena secreta cifrada K*, como se describió en relación con la figura 1.
En el paso 220, el dispositivo A envía la cadena secreta cifrada K* y la clave pública de Diffie-Hellman Y al dispositivo B.
En el paso 121, el dispositivo B recibe la cadena secreta cifrada K* y la clave pública de Diffie-Hellman Y.
En el paso 122, el dispositivo B genera la clave secreta compartida de Diffie-Hellman S = (Y)^{x} mod p, utilizando el valor secreto x recuperado del medio de almacenamiento 211.
En el paso 123, el dispositivo B utiliza la clave secreta compartida S generada para descifrar la cadena secreta cifrada K* recibida para obtener la correspondiente cadena secreta descifrada K'.
En el paso 124, el dispositivo B compara la cadena secreta recibida y descifrada K' con la cadena secreta K originalmente generada por el dispositivo C y recuperada del medio de almacenamiento 211. Si las cadenas secretas no son iguales, la clave pública recibida Y se rechaza, es decir la clave secreta compartida S generada se descarta (paso 125). En caso contrario, el proceso continúa en el paso 126.
En el paso 126, se acepta la clave pública recibida Y, es decir se acepta la clave secreta compartida S calculada como una clave secreta compartida. En una realización, se envía un correspondiente mensaje al dispositivo A, completando con ello el intercambio de claves. La clave secreta compartida generada puede utilizarse ahora para proteger la posterior comunicación entre los dispositivos A y B, por ejemplo mediante el cifrado y/o la protección de la integridad de los mensajes enviados entre los dispositivos.
Se entiende que, en algunas realizaciones, los pasos 122, 123, 124 y 126 pueden ser realizados por el dispositivo C, evitando con ello la necesidad de implementar realmente el algoritmo de intercambio de claves en ambos dispositivos B y C. En este caso, el dispositivo B simplemente reenvía los datos de claves recibidos del dispositivo A al dispositivo C, por ejemplo a través de una red de ordenadores segura, en donde se autentifican los datos de claves y se procesan después de la forma descrita anteriormente.
Por lo tanto, en resumen, los ejemplos anteriores describen un método de intercambio de claves entre una primera unidad de comunicaciones y una segunda unidad de comunicaciones. El método comprende una etapa de registro y una etapa de intercambio de claves. La etapa de registro comprende:
- generar por la primera unidad de comunicaciones un primer valor de clave privada y una correspondiente primera clave pública de un mecanismo de intercambio de claves, preferiblemente un acuerdo de claves de Diffie-Hellman;
- generar por la primera unidad de comunicaciones un código de seguridad;
- calcular, por la primera unidad de comunicaciones, un valor "tag" de mensaje de la primera clave pública de acuerdo con un código de autentificación de mensajes utilizando el código de seguridad; y
- hacer accesibles el código de seguridad y el valor "tag" calculado a la segunda unidad de comunicaciones.
La etapa de intercambio real de claves puede llevarse a cabo en cualquier momento posterior cuando las dos unidades están conectadas a través de un enlace de comunicaciones y pueden intercambiar mensajes a través de dicho enlace de comunicaciones. Esta etapa comprende:
- transmitir por la primera unidad de comunicaciones la primera clave pública a la segunda unidad de comunicaciones;
- calcular por la segunda unidad de comunicaciones el valor "tag" de la primera clave pública recibida de acuerdo con dicho código de autentificación de mensajes utilizando el código de seguridad, y aceptar la primera clave pública recibida si el valor "tag" calculado es igual que el valor "tag" hecho accesible a la segunda unidad de comunicaciones;
- generar por la segunda unidad de comunicaciones un segundo valor de clave privada y una correspondiente segunda clave pública de dicho mecanismo de intercambio de claves;
- calcular por la segunda unidad de comunicaciones una clave secreta compartida de dicho mecanismo de intercambio de claves a partir de la primera clave pública y del segundo valor de clave privada;
- cifrar por la segunda unidad de comunicaciones el código de seguridad utilizando la clave secreta compartida calculada;
- transmitir por la segunda unidad de comunicaciones la segunda clave pública y el conjunto de datos cifrados a la primera unidad de comunicaciones;
- calcular por la primera unidad de comunicaciones dicha clave secreta compartida de dicho mecanismo de intercambio de claves a partir de la segunda clave pública y del primer valor de clave privada; y
- descifrar por la primera unidad de comunicaciones el conjunto de datos cifrados recibidos utilizando la clave secreta compartida calculada por la primera unidad de comunicaciones, y aceptar la clave secreta compartida calculada si el conjunto de datos descifrado es igual que el código de seguridad originalmente generado por la primera unidad de comunicaciones.
La figura 3 muestra un diagrama de flujo de un método de cálculo de un código de autentificación de mensajes basado en un código de corrección de errores. En el ejemplo de la figura 3, se supone que un conjunto de datos d de un espacio de datos D ha de autentificarse utilizando un MAC (message authentication code, código de autentificación de mensajes). El conjunto de datos d puede ser un mensaje, por ejemplo la clave pública X en el método descrito anteriormente, o un conjunto de datos obtenido a partir de un mensaje M por una función adecuada h, es decir d = h(M), como se describirá con más detalle luego. Para el fin de este ejemplo, al conjunto de datos d se le denominará también mensaje.
En general, un MAC es una aplicación f de un espacio de datos D y de un espacio de claves K en un espacio de valores "tag" C, es decir f: D x K \rightarrow C donde a un mensaje d \epsilon D y a una clave k \epsilon K se le hace corresponder un valor "tag" t \epsilon C, es decir (d, k) \rightarrow t.
Se utiliza un MAC para proteger la integridad del mensaje, es decir para asegurar que no se han alterados los datos durante la transmisión desde un emisor hasta un receptor. En autentificación manual se utilizan valores cortos de MAC, es decir valores "tag" con una longitud inferior a de 10 a 15 dígitos y/o caracteres y/u otros símbolos, permitiendo con ello a un usuario el comunicar y/o comparar los valores "tag". En un esquema de autentificación manual de este tipo, la seguridad se basa en una seguridad incondicional de la función MAC y no en una seguridad computacional. Por ejemplo, si como funciones MAC se utilizaran funciones resumen con códigos resumen largos, la seguridad se basaría en seguridad computacional.
La seguridad incondicional de una función MAC puede determinarse considerando diferentes tipos de posibles ataques. Dos tipos principales de ataques que se consideran normalmente son el ataque de imitación y el ataque de sustitución. Con el fin de facilitar la comprensión de la descripción que sigue, se describirán aquí brevemente estos tipos de ataques. Para una descripción más detallada véase, por ejemplo, G. Kabatianskii, B. Smeets y T. Johansson, "On the cardinality of systematic A-codes via error correcting codes", IEEE Transaction on Information Theory, volumen IT-42, páginas 566-578, 1996.
En un ataque de imitación, el atacante intenta convencer a un receptor de que algunos datos son enviados desde un emisor legítimo sin observar ningún intercambio previo de datos entre el emisor y el receptor legítimos. Por el contrario, en un ataque de sustitución, el atacante observa primero algunos datos d y después sustituye los datos observados por otros datos d' \neq d. Las probabilidades de que un atacante tenga éxito en un ataque de imitación y en un ataque de sustitución se denominan P_{I} y P_{S}, respectivamente, y pueden expresarse como:
\vskip1.000000\baselineskip
11
\vskip1.000000\baselineskip
En el contexto del protocolo de intercambio de claves descrito anteriormente, la probabilidad de que un atacante sustituya los datos observados d con otros datos d' es una medida importante de la seguridad del método de intercambio de claves, es decir la probabilidad de reemplazar la clave pública transmitida desde la unidad A a la unidad B en los ejemplos de las figuras 1 y 2a y desde la unidad B a la unidad A en la figura 2b con otra clave pública. En este escenario, el atacante tiene éxito si d' se acepta por el receptor como datos válidos. En un escenario de comunicaciones inalámbricas de corto alcance, tal como Bluetooth, ambas unidades están físicamente cerca la una de la otra y puede restringirse que sólo acepten datos si ambas unidades han señalizado que están dispuestas. Por lo tanto, ya que en un escenario de este tipo pueden evitarse fácilmente los ataques de imitación, la probabilidad de un ataque de sustitución puede considerarse como la medida de seguridad más importante. Además, en el escenario de las figuras 1 y 2, el valor "tag" calculado por la función MAC se comunica sobre un canal de comunicaciones separado diferente del enlace de comunicaciones por el que se envían los datos. Esto contrasta con un escenario MAC estándar, en el que tanto los datos como el valor "tag" se transmiten y pueden ser observados por un atacante. Con estas suposiciones, la probabilidad de que un ataque de sustitución tenga éxito puede expresarse como:
\vskip1.000000\baselineskip
12
\vskip1.000000\baselineskip
Por lo tanto, suponiendo que la clave se elige de forma uniformemente aleatoria del espacio de claves K, la probabilidad anterior puede expresarse como:
\vskip1.000000\baselineskip
13
\vskip1.000000\baselineskip
donde |
\hskip0.1cm
| representa la cardinalidad de un conjunto, es decir |K| es la cardinalidad de K y el numerador de la ecuación anterior es la cardinalidad del conjunto de todas las claves del espacio de claves K que produce la misma función MAC para d y d'. Por lo tanto, de la ecuación anterior se deduce que con el fin de proporcionar una seguridad alta, la probabilidad de colisión de la función MAC f debe ser baja.
Los ejemplos que siguen de construcciones MAC se basan en códigos de corrección de errores. Para el fin de esta descripción se considerarán códigos de corrección de errores sobre un campo finito F_{q}. En concreto, se considerará un código q-ario sobre F_{q} con palabras código de longitud n, al que denominaremos V. En general, el código es una aplicación de mensajes a palabras código, de forma que a cada mensaje le corresponde una palabra código única y cada palabra código comprende un número de símbolos. Por lo tanto, el código V consiste en el conjunto de vectores
v \epsilon V ={_{v}(d) : d \epsilon D},
\hskip0.3cm
donde v^{(d)} = (v_{1}^{(d)}, v_{2}^{(d)}, ..., v_{n}^{(d)}),
\hskip0.3cm
es decir v_{i}^{(d)} \epsilon F_{q}
\hskip0.2cm
son los símbolos de la palabra
código v^{(d)}.
La distancia de Hamming d_{H}(x,y) entre dos n-uplas q-arias x e y es el número de componentes de las n-uplas que no son iguales, es decir:
14
es decir, la distancia mínima entre todas las palabras código del código V.
Con referencia a la figura 3, se describirá un ejemplo de una construcción MAC basada en códigos de corrección de errores.
En un paso inicial 301, se proporcionan los datos de entrada para la construcción MAC, es decir, el mensaje d a autentificar y la clave k a utilizar como entradas a la función MAC.
En el paso 302, se selecciona un índice i \epsilon {1, ..., n} como una función g de la clave k, es decir i = g(k). En concreto, si el espacio de claves K tiene n elementos, es decir |K| = n, a cada k se le puede hacer corresponder unívocamente uno de los índices de símbolos y cada índice se corresponde con una clave. En una realización, la clave se utiliza directamente como un índice, es decir i = k.
En el paso 303, se determina que el valor "tag" t sea el símbolo i-ésimo de la palabra código v^{(d)} del código V que corresponde al mensaje d, es decir:
15
Por lo tanto, el valor "tag" se determina que sea un símbolo seleccionado de la palabra código de un código de corrección de errores, en donde la palabra código es la palabra código correspondiente al mensaje y el símbolo viene especificado por la clave. En consecuencia, en el ejemplo anterior, se obtiene un MAC con un tamaño del espacio de claves igual a n y con un tamaño del espacio de mensajes igual al tamaño del espacio de codificación. Además, la probabilidad anterior P_{S} de un ataque de sustitución viene dada por:
16
Las figuras 4a y 4b muestran diagramas de flujo de ejemplos de un método de calcular un código de autentificación de mensajes basado en un código Reed-Solomon.
El término códigos Reed-Salomon (RS) se refiere a un tipo de códigos de corrección de errores en los que las palabras código se definen por medio de una división polinómica con un polinomio generador, ver I.S. Reed y G. Solomon, "Polynomial Codes over Certain Finite Fields", Journal of Soc. Ind. Appl. Math., volumen 8, páginas 300-304, 1960, que se incorpora aquí en su totalidad al ser referenciado. El término código Reed-Solomon se pretende además que comprenda variantes del código Reed-Solomon, por ejemplo los denominados códigos Reed-Solomon generalizados.
En la construcción de la figura 4a, en un paso inicial 401 se proporcionan los datos de entrada para la construcción del MAC, es decir el mensaje d a autentificar y la clave k a utilizar como entradas a la función MAC.
En el paso 402, el mensaje se expresa como una \tau-upla q-aria sobre F_{q}, es decir d = d_{0}, d_{1}, ..., d\tau_{-1}, donde d_{i} \epsilon F_{q}. Por lo tanto, el polinomio de codificación de Reed-Solomon (RS) correspondiente al mensaje se define como:
17
En el paso 403, se calcula el valor "tag" del MAC evaluando el polinomio en un punto especificado por la clave k, es decir:
18
Por lo tanto, la clave k especifica un símbolo del código Reed-Solomon que se utiliza como valor "tag". Se entiende, como se describió anteriormente, que el símbolo puede especificarse por cualquier función adecuada de la
clave.
Hay que resaltar además, en esta construcción, que la clave se selecciona del campo finito F_{q}, es decir k \epsilon F_{q}. En consecuencia, esta construcción tiene las siguientes propiedades: n = q = |K| y |D| = q^{\tau} = n^{\tau} . Por lo tanto, la distancia mínima del código anterior es d_{H}(V) = n - \tau + 1 y, por consiguiente, la probabilidad de un ataque de sustitución con éxito es P_{S} = (\tau - 1)/n. Es una ventaja de los códigos Reed-Solomon el que sean código largos con una elevada distancia mínima.
Todo lo anterior implica además que la probabilidad P_{S} aumenta con el tamaño del espacio de mensajes D.
La figura 4b muestra un diagrama de flujo de otra realización de una construcción MAC basada en un código Reed-Solomon.
De nuevo, de acuerdo con esta construcción, en un paso inicial 404 se proporcionan los datos de entrada para la construcción del MAC, es decir el mensaje d a autentificar y la clave k a utilizar como entradas a la función MAC.
En el paso 405, al mensaje se le aplica una función resumen unidireccional h. Para los fines de esta descripción, el término función resumen unidireccional se refiere a un algoritmo que coge como entrada un conjunto de datos, por ejemplo una cadena, y produce como salida un valor binario de longitud fija (resumen). En concreto, este proceso es irreversible, es decir no es factible desde el punto de vista computacional el encontrar un conjunto de datos que han producido un valor resumen dado. De forma similar, no es factible desde el punto de vista computacional el encontrar dos conjuntos de datos arbitrarios que produzcan el mismo valor resumen. Un ejemplo de una función resumen adecuada es el algoritmo SHA-1 (Secure Hash Algorithm) estándar. El algoritmo SHA-1 toma un mensaje de menos de 264 bitios de longitud y produce un resumen del mensaje de 160 bitios. Otros ejemplos de funciones resumen unidireccionales incluyen los algoritmos MD4, MD5 y otros similares. La salida de la función resumen \delta = h(d) se utiliza entonces como entrada del código Reed-Solomon. En una realización, la salida de la función resumen se trunca para reducir aún más el tamaño del mensaje efectivo.
Por lo tanto, en el paso 406 el valor resumen \delta se expresa como una \tau-upla q-aria sobre F_{q}, es decir \delta = \delta_{0}, \delta_{1}, ..., \delta\tau_{-1}, donde \delta_{i}\epsilon F_{q}.
En el paso 407 se calcula el valor "tag" t del MAC evaluando el correspondiente polinomio de codificación de Reed-Solomon en un punto especificado por la clave k, es decir:
19
Por lo tanto, aplicando al mensaje en primer lugar una función resumen unidireccional como el algoritmo SHA-1 se reduce el tamaño del espacio del mensaje, reduciendo con ello la probabilidad P_{S} de un ataque de sustitución con éxito sin aumentar considerablemente la longitud de la clave o la longitud de la salida del MAC, es decir la longitud del valor "tag". Consecuentemente, se proporciona una autentificación segura incluso para claves cortas y valores "tag" cortos de los mensajes, permitiendo con ello la comunicación de la clave y de los valores "tag" de los mensajes a través de de una interacción de un usuario.
La figura 5 muestra una tabla que representa las probabilidades de un ataque de sustitución con éxito para una serie de ejemplos de construcción del MAC de las figuras 4a y 4b. La primera columna denominada log_{2}|D| comprende el tamaño del mensaje en términos del número de bitios, la segunda columna denominada log_{2}(n) muestra el tamaño de la clave en términos del número de bitios, mientras que la última columna muestra la correspondiente probabilidad de un ataque de sustitución con éxito. Por ejemplo, un código que tenga una longitud de código de cuatro dígitos hexadecimales y un tamaño de clave de cuatro dígitos (n = q = 16^{4}, es decir log_{2}(n) = 16) conduce a una probabilidad de alrededor de 2^{-13} a 2^{-16} para mensajes que tengan una longitud de 128 bitios. Por lo tanto, una salida del algoritmo SHA-1 truncada a 128 bitios y un tamaño de la clave y un tamaño del código de cuatro dígitos hexadecimales producen una seguridad suficientemente elevada. Si el tamaño de la clave se aumenta a 5 dígitos (log_{2}(n) = 20), la probabilidad disminuye más hasta alrededor de 2^{-17} o menos.
La figura 6 muestra un diagrama de bloques de un sistema de comunicaciones que incluye dos unidades de comunicaciones designadas, globalmente, como A y B. La unidad de comunicaciones A y la unidad de comunicaciones B se comunican la una con la otra por medio de un enlace de comunicaciones 605.
La unidad de comunicaciones A comprende una unidad de procesamiento 602, una unidad de comunicaciones por radio 603 conectada a la unidad de procesamiento, un medio de almacenamiento 604 conectado a la unidad de procesamiento, y un interfaz de usuario 606 conectado a la unidad de procesamiento.
La unidad de comunicaciones por radio 603 transmite los datos recibidos de la unidad de procesamiento 602 a la unidad de comunicaciones B a través del enlace de radio 605, y recibe datos del enlace de radio y los reenvía a la unidad de procesamiento. Por ejemplo, la unidad de comunicaciones por radio 603 puede basarse en la tecnología Bluetooth y transmitir/recibir en la banda ISM a 2,45 GHz.
La unidad de procesamiento 602, por ejemplo un microprocesador programado adecuadamente, procesa los datos recibidos de otras unidades y los datos a enviar a otras unidades de acuerdo con la funcionalidad implementada por la unidad de comunicaciones A. En concreto, la unidad de procesamiento 602 está programada adecuadamente para realizar las funciones de seguridad descritas anteriormente, en particular la generación de un código de seguridad y el correspondiente valor "tag", el intercambio de claves y el método de autentificación descrito anteriormente.
El medio de almacenamiento 604, por ejemplo una EPROM, una EEPROM, una memoria flash o equivalentes, está adaptado para almacenar el código de seguridad K así como los parámetros necesarios para el protocolo de intercambio de claves.
El interfaz de usuario 606 comprende una pantalla para visualizar el código de seguridad K generado y el correspondiente valor "tag" t, de forma que un usuario pueda leer los valores generados y pueda transferirlos a la unidad de comunicaciones B. Adicionalmente, el interfaz de usuario 606 puede comprender medios de entrada de datos, tales como un teclado, un teclado numérico, un dispositivo apuntador, una pantalla táctil, o similares.
La unidad de comunicaciones B comprende una unidad de procesamiento 609, una unidad de comunicaciones por radio 608 conectada a la unidad de procesamiento, un medio de almacenamiento 610 conectado a la unidad de procesamiento, y un interfaz de usuario 611 conectado a la unidad de procesamiento.
La unidad de comunicaciones por radio 609 es igual que la unidad de comunicaciones por radio 603 de la unidad de comunicaciones A, permitiendo con ello la comunicación vía radio entre las unidades de comunicaciones A y B.
La unidad de procesamiento 609 procesa los datos recibidos de otras unidades y los datos a enviar a otras unidades de acuerdo con la funcionalidad implementada por la unidad de comunicaciones. En concreto, la unidad de procesamiento está programada adecuadamente para realizar las funciones de seguridad descritas anteriormente, en particular el intercambio de claves y el método de autentificación descrito anteriormente y que corresponden al protocolo de intercambio de claves y al mecanismo de autentificación implementado por la unidad A.
Del mismo modo, el medio de almacenamiento 610, por ejemplo una EPROM, una EEPROM, una memoria flash o equivalentes, está adaptado para almacenar el código de seguridad K, el valor "tag" t, así como los parámetros necesarios para el protocolo de intercambio de claves.
El interfaz de usuario 611 comprende un dispositivo de entrada, por ejemplo un teclado, un teclado numérico, una pantalla táctil o equivalente que permite a un usuario introducir el código de seguridad K y el correspondiente valor "tag" t generado por la unidad de comunicaciones A. Adicionalmente, el interfaz de usuario puede comprender una pantalla, un dispositivo apuntador y/o equivalentes.
Por lo tanto, el sistema de comunicaciones de la figura 6 comprende dos unidades de comunicaciones, por ejemplo dos dispositivos de comunicaciones portátiles tales como teléfonos móviles, un teléfono móvil y un ordenador portátil, dos ordenadores portátiles, o cualquier combinación de equipos electrónicos similares que establezcan comunicaciones seguras a través del enlace de comunicaciones 605 estableciendo una clave secreta compartida de acuerdo con el método descrito anteriormente.
En una realización, las unidades de procesamiento y/o los medios de almacenamiento pueden insertarse, de forma removible, en la correspondiente unidad de comunicaciones, permitiendo con ello establecer la asociación de seguridad con independencia de la unidad real. Por ejemplo, los medios de almacenamiento y/o la unidad de procesamiento pueden estar constituidos por una tarjeta inteligente, por ejemplo una tarjeta SIM.
A destacar además que las unidades de comunicaciones pueden comprender además componentes que se han omitido en el diagrama esquemático de bloques de la figura 6. Por ejemplo, las unidades de comunicaciones pueden comprender además una unidad de control automático de ganancia (AGC) conectada al receptor, un decodificador, un codificador o similares.
La figura 7 muestra un diagrama de bloques de una unidad de comunicaciones portátil que se comunica con una red de ordenadores a través de un punto de acceso de la red de ordenadores.
La unidad de comunicaciones A es igual que la unidad de comunicaciones A descrita en relación con la figura 6. La unidad de comunicaciones A comprende una unidad de procesamiento 602, una unidad de comunicaciones por radio 603 conectada a la unidad de procesamiento, un medio de almacenamiento 604 conectado a la unidad de procesamiento, y un interfaz de usuario 606 conectado a la unidad de procesamiento. Estos componentes se han descrito con gran detalle anteriormente.
La unidad de comunicaciones A se comunica con el punto de acceso 702 de una red de comunicaciones 701 a través de un enlace de comunicaciones inalámbrico 605. Por ejemplo, la red de comunicaciones 701 puede ser una LAN inalámbrica, una LAN cableada que proporciona acceso inalámbrico a través de uno o más puntos de acceso, o equivalentes. En la figura 7, se representan como otros componentes de la red, a título de ejemplo, dos nodos de red 703 y 704, respectivamente. En el ejemplo de la figura 7, el nodo de red 703 es un ordenador servidor de la red que aloja una base de datos de claves 705 de códigos de seguridad y de valores "tag" correspondientes a un cierto número de unidades que pueden acceder a la red de ordenadores 701 a través de un enlace inalámbrico. Por lo tanto, cuando la unidad A desea registrarse en la red de ordenadores de acuerdo con el procedimiento descrito en relación con las figuras 2a y 2b, el servidor de red 703 puede jugar el papel del dispositivo C en dicho procedimiento. Por ejemplo, de acuerdo con la realización de la figura 2b, cuando el servidor de red 703 ha generado un código de seguridad K y un valor "tag" t, los valores pueden transferirse a la unidad A. Por ejemplo, la transferencia puede hacerla un operador como parte de un proceso de inicialización, comunicando los datos a un usuario de la unidad A a través del teléfono, enviando una carta u otras formas equivalentes. Los parámetros se introducen entonces en la unidad A. Además, los datos se almacenan en la base de datos 705. Cuando la unidad A establece una conexión con el punto de acceso B, se recuperan los parámetros almacenados y se utilizan en el proceso de intercambio seguro de claves de la figura 2b.
En una realización alternativa, el punto de acceso B incluye o tiene acceso directo a la base de datos de claves, y el proceso de registro se realiza directamente entre la unidad A y el punto de acceso B como se describió en relación con la figura 1.
Debe enfatizarse que el término "comprende/que comprende" cuando se utiliza en esta especificación se toma para especificar la presencia de características, números enteros, pasos o componentes expuestos, pero no excluye la presencia o adición de una o más de otras características, números enteros, pasos, componentes o grupos de los mismos.
Aunque se han descrito y mostrado realizaciones preferidas de la presente invención, la invención no está restringida a las mismas, sino que puede implementarse también de otras formas dentro del alcance de la invención definido en las reivindicaciones siguientes.
La invención puede implementarse por medio de "hardware" comprendiendo varios elementos distintos y por medio de un ordenador programado adecuadamente. En las reivindicaciones de dispositivo que enumeran varios medios, algunos de estos medios pueden estar incorporados en un mismo elemento "hardware", por ejemplo un ordenador o microprocesador programado adecuadamente, uno o más interfaces de usuario, y/o uno o más interfaces de comunicaciones como se han descrito en esta descripción. El simple hecho de que ciertas medidas se enumeren en reivindicaciones dependientes mutuamente diferentes no indica que una combinación de estas medidas no pueda utilizarse con ventaja.

Claims (29)

1. Un método de proporcionar comunicaciones seguras entre una primera y una segunda unidades de comunicaciones (A, B, C), comprendiendo el método un intercambio de claves entre la primera y la segunda unidades de comunicaciones que se traduce en una clave secreta compartida (S), incluyendo el intercambio de claves una interacción de un usuario; comprendiendo el método los pasos de:
- proporcionar (103, 105; 205, 208, 228), al menos parcialmente mediante una interacción de un usuario, un código de seguridad (K) a la primera y a la segunda unidades de comunicaciones;
- generar (103, 117, 217) una primera contribución (X) a la clave secreta compartida por la primera unidad de comunicaciones y una segunda contribución (Y) a la clave secreta compartida por la segunda unidad de comunicaciones, y transmitir (112, 120, 220) cada contribución generada a la correspondiente otra unidad de comunicaciones;
- autentificar (114, 115, 124, 214, 215) la primera y la segunda contribuciones transmitidas por la correspondiente unidad de comunicaciones que la recibe en base al menos al código de seguridad; y
- establecer (118, 122, 218) dicha clave secreta compartida por cada una de las unidades de comunicaciones a partir al menos de la correspondiente primera o segunda contribución recibida, solamente si la correspondiente contribución recibida se autentifica con éxito;
caracterizado porque el paso de autentificación de la primera y de la segunda contribuciones transmitidas comprende la autentificación de la primera contribución calculando (114, 214) un valor "tag" (t, t') de un código de autentificación de mensajes, siendo calculado el valor "tag" a partir de la primera contribución y del código de seguridad.
2. Un método de acuerdo con la reivindicación 1, en el que el código de seguridad es lo suficientemente corto como para que pueda ser comunicado mediante una interacción de un usuario.
3. Un método de acuerdo con la reivindicación 1, que comprende además:
- cifrar (119, 219) el código de seguridad por la segunda unidad de comunicaciones utilizando la clave secreta compartida generada;
- transmitir (120, 220) el código de seguridad cifrado (K*) a la primera unidad de comunicaciones junto con la segunda contribución generada;
- descifrar (123) el código de seguridad cifrado recibido por la primera unidad de comunicaciones; y
- comparar (124) el código de seguridad recibido descifrado con el código de seguridad proporcionado a la primera unidad de comunicaciones para autentificar la segunda contribución recibida.
4. Un método de acuerdo con la reivindicación 1, en el que la primera y la segunda contribuciones son una primera y una segunda claves públicas de un protocolo de intercambio de claves de Diffie-Hellman.
5. Un método de acuerdo con la reivindicación 1, en el que el paso de proporcionar un código de seguridad a la primera y a la segunda unidades de comunicaciones comprende generar un código de seguridad por la primera unidad de comunicaciones y proporcionar el código de seguridad generado a la segunda unidad de comunicaciones a través de un canal de comunicaciones incluyendo una interacción de un usuario.
6. Un método de acuerdo con la reivindicación 1, en el que el valor "tag" se calcula seleccionando un símbolo de una palabra código de un código de corrección de errores, correspondiendo la palabra código a la primera contribución y siendo identificado el símbolo por el código de seguridad.
7. Un método de acuerdo con la reivindicación 6, que comprende además calcular un valor resumen de una función resumen unidireccional de la primera contribución y calcular dicho valor "tag" seleccionando un símbolo de una palabra código de un código de corrección de errores, correspondiendo la palabra código al valor resumen de la primera contribución y siendo identificado el símbolo por el código de seguridad.
8. Un método de acuerdo con la reivindicación 6, en el que el código de corrección de errores es un código Reed-Solomon.
9. Un método de acuerdo con la reivindicación 1 que comprende:
- generar la primera contribución a la clave secreta compartida por la primera unidad de comunicaciones, y transmitir la primera contribución generada a la segunda unidad de comunicaciones;
- autentificar la primera contribución recibida por la segunda unidad de comunicaciones en base al código de seguridad, y generar la clave secreta compartida a partir al menos de la primera contribución recibida si la primera contribución recibida se acepta como auténtica;
- transmitir a la primera unidad de comunicaciones una segunda contribución a la clave secreta compartida generada por la segunda unidad de comunicaciones; y
- autentificar la segunda contribución recibida por la primera unidad de comunicaciones en base al código de seguridad; y generar la clave secreta compartida por la primera unidad de comunicaciones solamente si la segunda contribución recibida se acepta como auténtica.
10. Un método de acuerdo con la reivindicación 9, en el que el método comprende además:
- calcular un primer valor "tag" de mensaje de un código de autentificación de mensajes de la primera contribución utilizando el código de seguridad como una clave; y
- proporcionar el primer valor "tag" de mensaje a la segunda unidad de comunicaciones;
y en el que el paso de autentificar la primera contribución recibida por la segunda unidad de comunicaciones en base al código de seguridad comprende:
- calcular un segundo valor "tag" de mensaje de dicho código de autentificación de mensajes de la primera contribución recibida utilizando el código de seguridad como una clave; y
- comparar el primero y el segundo valor "tag" de mensaje para autentificar la primera contribución recibida.
11. Un método de acuerdo con una cualquiera de las reivindicaciones 1 a 10, en el que el método comprende una etapa de registro y una etapa de intercambio de claves, comprendiendo la etapa de registro:
- generar por la primera unidad de comunicaciones un primer valor de clave privada y una correspondiente primera clave pública de un mecanismo de intercambio de claves;
- generar por la primera unidad de comunicaciones un código de seguridad;
- calcular por la primera unidad de comunicaciones un valor "tag" de mensaje de la primera clave pública de acuerdo con un código de autentificación de mensajes utilizando el código de seguridad;
- hacer accesibles el código de seguridad y el valor "tag" calculado a la segunda unidad de comunicaciones al menos parcialmente mediante una interacción de un usuario; y
comprendiendo la etapa de intercambio de claves:
- transmitir por la primera unidad de comunicaciones la primera clave pública a la segunda unidad de comunicaciones;
- calcular por la segunda unidad de comunicaciones el valor "tag" de la primera clave pública recibida de acuerdo con dicho código de autentificación de mensajes utilizando el código de seguridad, y aceptar la primera clave pública recibida si el valor "tag" calculado es igual que el valor "tag" comunicado;
- generar por la segunda unidad de comunicaciones un segundo valor de clave privada y una correspondiente segunda clave pública de dicho mecanismo de intercambio de claves;
- calcular por la segunda unidad de comunicaciones una clave secreta compartida de dicho mecanismo de intercambio de claves a partir de la primera clave pública y del segundo valor de clave privada;
- cifrar por la segunda unidad de comunicaciones el código de seguridad utilizando la clave secreta compartida calculada;
- transmitir por la segunda unidad de comunicaciones la segunda clave pública y el código de seguridad cifrado a la primera unidad de comunicaciones;
- calcular por la primera unidad de comunicaciones dicha clave secreta compartida de dicho mecanismo de intercambio de claves a partir de la segunda clave pública y del primer valor de clave privada; y
- descifrar por la primera unidad de comunicaciones el código de seguridad cifrado recibido utilizando la clave secreta compartida calculada por la primera unidad de comunicaciones, y aceptar la clave secreta compartida calculada si el código de seguridad descifrado es igual que el código de seguridad originalmente generado por la primera unidad de comunicaciones.
12. Un sistema de comunicaciones para proporcionar comunicaciones seguras al menos entre una primera y una segunda unidades de comunicaciones (A, B, C) por medio de un intercambio de claves entre la primera y la segunda unidades de comunicaciones que se traduce en una clave secreta compartida (S), incluyendo el intercambio de claves una interacción de un usuario; comprendiendo el sistema de comunicaciones:
- medios (606, 611, 602, 703) para proporcionar, al menos parcialmente mediante una interacción de un usuario, un código de seguridad (K) a la primera y a la segunda unidades de comunicaciones;
- medios (602, 609, 702, 703) para generar una primera contribución a la clave secreta compartida por la primera unidad de comunicaciones y una segunda contribución a la clave secreta compartida por la segunda unidad de comunicaciones;
- medios para transmitir (603, 608) cada contribución generada a la correspondiente otra unidad de comunicaciones;
- medios para autentificar (602, 609) la primera y la segunda contribuciones transmitidas por la correspondiente unidad de comunicaciones que la recibe en base al código de seguridad; y
- medios para establecer (602, 609) dicha clave secreta compartida por cada una de las unidades de comunicaciones a partir al menos de la correspondiente primera o segunda contribución recibida, solamente si la correspondiente contribución recibida se autentifica con éxito;
caracterizado porque la primera y la segunda unidades de comunicaciones comprenden cada una medios (602, 609) para calcular un valor "tag" (t, t') de un código de autentificación de mensajes, siendo calculado el valor "tag" a partir de la primera contribución y del código de seguridad.
13. Un sistema de comunicaciones de acuerdo con la reivindicación 12, en el que la primera unidad de comunicaciones comprende medios de procesamiento (602, 703) adaptados para generar el código de seguridad y medios de salida (606) para proporcionar el código de seguridad generado a la segunda unidad de comunicaciones a través de un segundo canal de comunicaciones diferente del primer canal de comunicaciones.
14. Un sistema de comunicaciones de acuerdo con la reivindicación 12, en el que los medios de procesamiento están adaptados para calcular el valor "tag" seleccionando un símbolo de una palabra código de un código de corrección de errores, correspondiendo la palabra código a la primera contribución y siendo identificado el símbolo por el código de seguridad.
15. Un sistema de comunicaciones de acuerdo con la reivindicación 14, en el que los medios de procesamiento están adaptados además para calcular un valor resumen de una función resumen unidireccional de la primera contribución y para calcular dicho valor "tag" seleccionando un símbolo de una palabra código de un código de corrección de errores, correspondiendo la palabra código al valor resumen de la primera contribución y siendo identificado el símbolo por el código de seguridad.
16. Un sistema de comunicaciones de acuerdo con la reivindicación 14, en el que el código de corrección de errores es un código Reed-Solomon.
17. Una unidad de comunicaciones (A) para proporcionar comunicaciones seguras con otra unidad de comunicaciones (B) por medio de un intercambio de claves que se traduce en una clave secreta compartida (S), incluyendo el intercambio de claves una interacción de un usuario, comprendiendo la unidad de comunicaciones medios de procesamiento de datos (602), medios de interfaz con el usuario (606) y un interfaz de comunicaciones (603), estando los medios de procesamiento adaptados para llevar a cabo los siguientes pasos:
- generar un código de seguridad para que sea proporcionado, al menos parcialmente mediante una interacción de un usuario a través de los medios de interfaz con el usuario, a la otra unidad de comunicaciones;
- generar y transmitir a través del interfaz de comunicaciones una primera contribución a la clave secreta compartida, y recibir a través del interfaz de comunicaciones una segunda contribución a la clave secreta compartida, siendo generada la segunda contribución por la otra unidad de comunicaciones;
- autentificar la segunda contribución recibida en base al código de seguridad; y
- establecer dicha clave secreta compartida a partir de al menos la segunda contribución, solamente si la segunda contribución recibida se autentifica con éxito;
caracterizada porque los medios de procesamiento están adaptados además para calcular un valor "tag" de un código de autentificación de mensajes a proporcionar a la otra unidad de comunicaciones, siendo calculado el valor "tag" a partir de la primera contribución y del código de seguridad.
\newpage
18. Una unidad de comunicaciones de acuerdo con la reivindicación 17, en la que los medios de procesamiento están adaptados además para calcular el valor "tag" seleccionando un símbolo de una palabra código de un código de corrección de errores, correspondiendo la palabra código a la primera contribución y siendo identificado el símbolo por el código de seguridad.
19. Una unidad de comunicaciones de acuerdo con la reivindicación 18, en la que los medios de procesamiento están adaptados además para calcular un valor resumen de una función resumen unidireccional de la primera contribución y para calcular dicho valor "tag" seleccionando un símbolo de una palabra código de un código de corrección de errores, correspondiendo la palabra código al valor resumen de la primera contribución y siendo identificado el símbolo por el código de seguridad.
20. Una unidad de comunicaciones de acuerdo con la reivindicación 18, en la que el código de corrección de errores es un código Reed-Solomon.
21. Una unidad de comunicaciones de acuerdo con la reivindicación 17, en la que los medios de procesamiento están adaptados además para:
- descifrar un código de seguridad cifrado recibido junto con la segunda contribución, utilizando en el descifrado dicha clave secreta compartida; y
- aceptar la segunda contribución recibida solamente si el código de seguridad descifrado es igual que el código de seguridad generado.
22. Una unidad de comunicaciones (B) para proporcionar comunicaciones seguras con otra unidad de comunicaciones (A) por medio de un intercambio de claves que se traduce en una clave secreta compartida (S), incluyendo el intercambio de claves una interacción de un usuario, comprendiendo la unidad de comunicaciones medios de procesamiento de datos (609), medios de almacenamiento (610) y un interfaz de comunicaciones (608), estando los medios de procesamiento adaptados para realizar un intercambio de claves que se traduce en una clave secreta compartida, comprendiendo el intercambio de claves:
- recibir, al menos parcialmente mediante una interacción de un usuario, y almacenar un código de seguridad generado por otra unidad de comunicaciones;
- recibir a través del interfaz de comunicaciones una primera contribución a la clave secreta generada por la otra unidad de comunicaciones;
- autentificar la primera contribución recibida en base al código de seguridad;
- establecer dicha clave secreta compartida a partir de al menos la primera contribución si la primera contribución recibida se autentifica con éxito, y transmitir a través del interfaz de comunicaciones una segunda contribución a la clave secreta compartida;
caracterizada porque la unidad de comunicaciones está adaptada además para almacenar en los medios de almacenamiento un valor "tag" de autentificación de mensaje; y en donde los medios de procesamiento están adaptados además para:
- calcular un valor "tag" de un código de autentificación de mensajes a partir de la primera contribución recibida y del código de seguridad; y
- aceptar la primera contribución recibida solamente si el valor "tag" calculado es igual que el valor "tag" de autentificación de mensaje almacenado.
23. Una unidad de comunicaciones de acuerdo con la reivindicación 22, en la que los medios de procesamiento están adaptados además para calcular el valor "tag" seleccionando un símbolo de una palabra código de un código de corrección de errores, correspondiendo la palabra código a la primera contribución y siendo identificado el símbolo por el código de seguridad.
24. Una unidad de comunicaciones de acuerdo con la reivindicación 23, en la que los medios de procesamiento están adaptados además para calcular un valor resumen de una función resumen unidireccional de la primera contribución y para calcular dicho valor "tag" seleccionando un símbolo de una palabra código de un código de corrección de errores, correspondiendo la palabra código al valor resumen de la primera contribución y siendo identificado el símbolo por el código de seguridad.
25. Una unidad de comunicaciones de acuerdo con la reivindicación 23, en la que el código de corrección de errores es un código Reed-Solomon.
26. Una unidad de comunicaciones de acuerdo con la reivindicación 22, en la que los medios de procesamiento está adaptados además para:
- cifrar el código de seguridad almacenado, utilizando en el cifrado dicha clave secreta compartida; y
- transmitir a la otra unidad de comunicaciones el código de seguridad cifrado con la segunda contribución a través del interfaz de comunicaciones.
27. Un programa de ordenador que comprende programas codificados para llevar a cabo todos los pasos de una cualquiera de las reivindicaciones 1 a 11 cuando dicho programa corre en un ordenador.
28. Un producto programa de ordenador que comprende programas codificados almacenados en un medio legible mediante ordenador para llevar a cabo el método de una cualquiera de las reivindicaciones 1 a 11 cuando dicho producto programa de ordenador corre en un ordenador.
29. Un medio legible mediante ordenador que tiene almacenado en el mismo programas codificados para llevar a cabo todos los pasos de una cualquiera de las reivindicaciones 1 a 11 cuando dicho programa corre en un ordenador.
ES03809276T 2002-10-24 2003-10-09 Comunicaciones seguras. Expired - Lifetime ES2279225T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US42096402P 2002-10-24 2002-10-24
US420964P 2002-10-24
US602176 2003-06-24
US10/602,176 US7284127B2 (en) 2002-10-24 2003-06-24 Secure communications

Publications (1)

Publication Number Publication Date
ES2279225T3 true ES2279225T3 (es) 2007-08-16

Family

ID=32110307

Family Applications (1)

Application Number Title Priority Date Filing Date
ES03809276T Expired - Lifetime ES2279225T3 (es) 2002-10-24 2003-10-09 Comunicaciones seguras.

Country Status (10)

Country Link
US (2) US7284127B2 (es)
EP (1) EP1554834B1 (es)
JP (1) JP4550736B2 (es)
KR (1) KR101095239B1 (es)
CN (1) CN100574188C (es)
AT (1) ATE348457T1 (es)
AU (1) AU2003276090A1 (es)
DE (1) DE60310437T2 (es)
ES (1) ES2279225T3 (es)
WO (1) WO2004038998A1 (es)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7284127B2 (en) * 2002-10-24 2007-10-16 Telefonktiebolaget Lm Ericsson (Publ) Secure communications
US20040243856A1 (en) * 2003-05-29 2004-12-02 Will Shatford Four factor authentication system and method
US7607012B2 (en) * 2003-10-01 2009-10-20 Nokia Corporation Method for securing a communication
US7389419B2 (en) * 2003-12-10 2008-06-17 International Business Machines Corporation Methods for supplying cryptographic algorithm constants to a storage-constrained target
JP2005210193A (ja) * 2004-01-20 2005-08-04 Matsushita Electric Works Ltd 共通秘密鍵生成装置
US7778422B2 (en) * 2004-02-27 2010-08-17 Microsoft Corporation Security associations for devices
US8538560B2 (en) * 2004-04-29 2013-09-17 Rosemount Inc. Wireless power and communication unit for process field devices
EP1596538A1 (en) * 2004-05-10 2005-11-16 Sony Ericsson Mobile Communications AB Method and device for bluetooth pairing
EP1622333A1 (en) * 2004-07-29 2006-02-01 Sun Microsystems France S.A. Method and apparatus for minimally onerous and rapid authentification
US7464267B2 (en) * 2004-11-01 2008-12-09 Innomedia Pte Ltd. System and method for secure transmission of RTP packets
US20060116107A1 (en) * 2004-11-24 2006-06-01 Hulvey Robert W System and method for pairing wireless headsets and headphones
US8428042B1 (en) * 2005-01-10 2013-04-23 Zte (Usa) Inc. Feedback mechanisms for multicast/broadcast service in wireless communication networks
EP1688888A1 (fr) * 2005-02-04 2006-08-09 Sokymat Automotive GmbH Procédé de communication et de contrôle de données d'authentification entre un dispositif portable à transpondeur et une unité de lecture d'un véhicule
US7739513B2 (en) * 2005-02-22 2010-06-15 Sony Corporation Secure device authentication
US7649999B2 (en) * 2005-06-08 2010-01-19 Iris Anshel Method and apparatus for establishing a key agreement protocol
US7788494B2 (en) 2005-06-28 2010-08-31 Intel Corporation Link key injection mechanism for personal area networks
US20070037552A1 (en) * 2005-08-11 2007-02-15 Timothy Lee Method and system for performing two factor mutual authentication
US7861078B2 (en) * 2005-10-14 2010-12-28 Juniper Networks, Inc. Password-authenticated asymmetric key exchange
FR2892876A1 (fr) * 2005-11-02 2007-05-04 Gemplus Sa Procede de depot securise de donnees numeriques, procede associe de recuperation de donnees numeriques, dispositifs associes pour la mise en oeuvre des procedes, et systeme comprenant les dits dispositifs
US7894806B2 (en) * 2005-11-14 2011-02-22 American Teleconferencing Services, Ltd. Systems and methods to direct a mobile communications device to a preferred teleconference bridge
US20070152171A1 (en) * 2005-12-30 2007-07-05 Michael Goldstein Free electron laser
US7900817B2 (en) * 2006-01-26 2011-03-08 Ricoh Company, Ltd. Techniques for introducing devices to device families with paper receipt
US8670564B1 (en) 2006-08-14 2014-03-11 Key Holdings, LLC Data encryption system and method
US7711861B2 (en) 2006-08-30 2010-05-04 Microsoft Corporation Synchronized indicator light for secure connections
US20080065704A1 (en) * 2006-09-12 2008-03-13 Microsoft Corporation Data and replica placement using r-out-of-k hash functions
FI20060936A0 (fi) * 2006-10-24 2006-10-24 Nokia Corp Menetelmä kanavanvaihtojen suorittamiseksi viestintäjärjestelmässä
US8103247B2 (en) 2006-10-31 2012-01-24 Microsoft Corporation Automated secure pairing for wireless devices
GB0622366D0 (en) * 2006-11-09 2006-12-20 Cambridge Silicon Radio Ltd Authenticating devices for RF communications
US8010795B2 (en) * 2006-11-27 2011-08-30 Red Hat, Inc. Secure information transfer using dedicated public key pairs
US8613057B2 (en) * 2006-11-27 2013-12-17 Red Hat, Inc. Identity management facilitating minimum disclosure of user data
WO2008105703A1 (en) * 2007-01-19 2008-09-04 Bjoerhn Anders Pos module
US8543831B2 (en) * 2007-11-14 2013-09-24 Qimonda Ag System and method for establishing data connections between electronic devices
CN101946453B (zh) * 2007-12-19 2014-03-05 佩塞特股份公司 用于接收和发送加密数据的系统
US8452017B2 (en) * 2007-12-21 2013-05-28 Research In Motion Limited Methods and systems for secure channel initialization transaction security based on a low entropy shared secret
US8200819B2 (en) * 2008-03-14 2012-06-12 Industrial Technology Research Institute Method and apparatuses for network society associating
IES20080215A2 (en) * 2008-03-20 2008-10-15 New Bay Res Ltd Access rights for digital objects
US20090252331A1 (en) * 2008-04-08 2009-10-08 International Business Machines Corporation Method of securing typed conversation using encryption keys in a virtual world
US7522723B1 (en) * 2008-05-29 2009-04-21 Cheman Shaik Password self encryption method and system and encryption by keys generated from personal secret information
US8929948B2 (en) 2008-06-17 2015-01-06 Rosemount Inc. Wireless communication adapter for field devices
US8694060B2 (en) 2008-06-17 2014-04-08 Rosemount Inc. Form factor and electromagnetic interference protection for process device wireless adapters
CN102067048B (zh) 2008-06-17 2017-03-08 罗斯蒙特公司 用于具有可变压降的现场设备的rf适配器
CN101662765B (zh) * 2008-08-29 2013-08-07 深圳富泰宏精密工业有限公司 手机短信保密系统及方法
US9344438B2 (en) * 2008-12-22 2016-05-17 Qualcomm Incorporated Secure node identifier assignment in a distributed hash table for peer-to-peer networks
US20100199095A1 (en) * 2009-01-30 2010-08-05 Texas Instruments Inc. Password-Authenticated Association Based on Public Key Scrambling
US9674976B2 (en) 2009-06-16 2017-06-06 Rosemount Inc. Wireless process communication adapter with improved encapsulation
US8284934B2 (en) * 2009-07-21 2012-10-09 Cellco Partnership Systems and methods for shared secret data generation
CA2697687C (en) * 2010-03-24 2014-02-18 Diversinet Corp. Method and system for secure communication using hash-based message authentication codes
WO2011155938A1 (en) * 2010-06-10 2011-12-15 Empire Technology Development Llc Radio channel metrics for secure wireless network pairing
US8644515B2 (en) * 2010-08-11 2014-02-04 Texas Instruments Incorporated Display authenticated security association
US10761524B2 (en) 2010-08-12 2020-09-01 Rosemount Inc. Wireless adapter with process diagnostics
US9219604B2 (en) * 2011-05-09 2015-12-22 Cleversafe, Inc. Generating an encrypted message for storage
US9310794B2 (en) 2011-10-27 2016-04-12 Rosemount Inc. Power supply for industrial process field device
JP5981761B2 (ja) * 2012-05-01 2016-08-31 キヤノン株式会社 通信装置、制御方法、プログラム
US9992017B2 (en) 2013-06-28 2018-06-05 Telefonaktiebolaget L M Ericsson (Publ) Encrypting and storing data
CN103731258B (zh) * 2013-12-20 2017-07-28 三星电子(中国)研发中心 生成密钥的方法及设备
US10979219B2 (en) 2014-03-12 2021-04-13 Nokia Technologies Oy Pairing of devices
US10212136B1 (en) * 2014-07-07 2019-02-19 Microstrategy Incorporated Workstation log-in
US10412098B2 (en) 2015-12-11 2019-09-10 Amazon Technologies, Inc. Signed envelope encryption
US9705859B2 (en) * 2015-12-11 2017-07-11 Amazon Technologies, Inc. Key exchange through partially trusted third party
US10855664B1 (en) 2016-02-08 2020-12-01 Microstrategy Incorporated Proximity-based logical access
US10231128B1 (en) 2016-02-08 2019-03-12 Microstrategy Incorporated Proximity-based device access
EP3276911B1 (de) * 2016-07-26 2019-12-04 Volkswagen Aktiengesellschaft Authentifizierte verbindung zwischen mindestens zwei kommunikationspartnern
SG10201609247YA (en) * 2016-11-04 2018-06-28 Huawei Int Pte Ltd System and method for configuring a wireless device for wireless network access
EP3535925B1 (en) * 2016-11-04 2020-03-25 Koninklijke Philips N.V. Reaching agreement on a secret value
JP6693574B2 (ja) * 2016-12-15 2020-05-13 日本電気株式会社 メッセージ認証システム、装置及びメッセージ検証方法
US10657242B1 (en) 2017-04-17 2020-05-19 Microstrategy Incorporated Proximity-based access
US10771458B1 (en) 2017-04-17 2020-09-08 MicoStrategy Incorporated Proximity-based user authentication
US11140157B1 (en) 2017-04-17 2021-10-05 Microstrategy Incorporated Proximity-based access
JP6834771B2 (ja) * 2017-05-19 2021-02-24 富士通株式会社 通信装置および通信方法
JP6950745B2 (ja) * 2017-11-10 2021-10-13 日本電信電話株式会社 鍵交換装置、鍵交換システム、鍵交換方法、及び鍵交換プログラム
KR20200086800A (ko) * 2019-01-10 2020-07-20 삼성전자주식회사 전자 장치, 전자 장치 제어방법 및 네트워크 시스템
JP7377487B2 (ja) * 2019-07-17 2023-11-10 日本電信電話株式会社 鍵交換システム、通信装置、鍵交換方法及びプログラム
US11375371B1 (en) * 2019-12-31 2022-06-28 Mcafee, Llc Methods, systems, and media for protected near-field communications
KR102418900B1 (ko) * 2020-09-01 2022-07-08 주식회사 티엔젠 무인이동체의 보안을 위한 암호키 관리 시스템 및 방법
WO2022204888A1 (zh) * 2021-03-29 2022-10-06 华为技术有限公司 一种配对方法及装置
US20210319143A1 (en) * 2021-06-25 2021-10-14 Intel Corporation Memory bus link authentication and encryption mechanisms for hardware-based replay protection
KR102664864B1 (ko) * 2022-02-22 2024-05-17 (주)나연테크 Ble 네트워크에서 무결성 침해 중간자 공격에 대한 대응 방법 및 시스템
DE102023122464A1 (de) 2023-08-22 2023-11-30 Patrick Stoll System zum sicheren elektronischen Austausch von Daten über ein öffentliches Netzwerk

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4200770A (en) * 1977-09-06 1980-04-29 Stanford University Cryptographic apparatus and method
US4423287A (en) * 1981-06-26 1983-12-27 Visa U.S.A., Inc. End-to-end encryption system and method of operation
US5651069A (en) * 1994-12-08 1997-07-22 International Business Machines Corporation Software-efficient message authentication
US5664016A (en) * 1995-06-27 1997-09-02 Northern Telecom Limited Method of building fast MACS from hash functions
US7010692B2 (en) * 1996-04-17 2006-03-07 Phoenix Technologies Ltd. Cryptographic methods for remote authentication
US6226383B1 (en) * 1996-04-17 2001-05-01 Integrity Sciences, Inc. Cryptographic methods for remote authentication
US6690289B1 (en) * 1997-06-12 2004-02-10 Microsoft Corporation Message formatting, authentication, and error detection in home control systems
US6192474B1 (en) * 1998-07-31 2001-02-20 Lucent Technologies Inc. Method for establishing a key using over-the-air communication and password protocol and password protocol
AU4025901A (en) 1999-09-28 2001-04-30 Thomson Licensing S.A. System and method for initializing a simple network management protocol (snmp) agent
EP1224766A2 (en) 1999-10-29 2002-07-24 Broadcom Corporation Apparatus and method for secure field upgradability
US7047408B1 (en) * 2000-03-17 2006-05-16 Lucent Technologies Inc. Secure mutual network authentication and key exchange protocol
US7076656B2 (en) * 2001-04-05 2006-07-11 Lucent Technologies Inc. Methods and apparatus for providing efficient password-authenticated key exchange
EP1255372B1 (en) 2001-05-03 2008-03-19 Telefonaktiebolaget LM Ericsson (publ) Method and system for data integrity protection
DE60109585D1 (de) * 2001-05-08 2005-04-28 Ericsson Telefon Ab L M Sicherer Zugang zu einem entfernten Teilnehmermodul
US20030041242A1 (en) 2001-05-11 2003-02-27 Sarver Patel Message authentication system and method
US20040218762A1 (en) * 2003-04-29 2004-11-04 Eric Le Saint Universal secure messaging for cryptographic modules
US7373515B2 (en) 2001-10-09 2008-05-13 Wireless Key Identification Systems, Inc. Multi-factor authentication system
KR100445574B1 (ko) 2001-12-19 2004-08-25 한국전자통신연구원 대화형 영 지식 증명을 이용한 패스워드 기반의 인증 및키 교환 프로토콜 설계 방법
WO2004025921A2 (en) * 2002-09-16 2004-03-25 Telefonaktiebolaget L M Ericsson (Publ) Secure access to a subscription module
US7284127B2 (en) * 2002-10-24 2007-10-16 Telefonktiebolaget Lm Ericsson (Publ) Secure communications
US20040093496A1 (en) * 2002-11-04 2004-05-13 Colnot Vincent Cedric Method and apparatus to secure online transactions on the internet

Also Published As

Publication number Publication date
EP1554834B1 (en) 2006-12-13
DE60310437T2 (de) 2007-09-27
JP4550736B2 (ja) 2010-09-22
CN100574188C (zh) 2009-12-23
WO2004038998A1 (en) 2004-05-06
AU2003276090A1 (en) 2004-05-13
CN1729645A (zh) 2006-02-01
EP1554834A1 (en) 2005-07-20
US20070288753A1 (en) 2007-12-13
KR20050073573A (ko) 2005-07-14
US20040083368A1 (en) 2004-04-29
ATE348457T1 (de) 2007-01-15
KR101095239B1 (ko) 2011-12-20
DE60310437D1 (de) 2007-01-25
US7284127B2 (en) 2007-10-16
JP2006504362A (ja) 2006-02-02
US7502930B2 (en) 2009-03-10

Similar Documents

Publication Publication Date Title
ES2279225T3 (es) Comunicaciones seguras.
ES2279142T3 (es) Codigo de autenticacion de mensajes basado en un codigo de correccion de errores.
CN103621127B (zh) 用于无线认证的接入点控制器、方法及集成电路
US8644515B2 (en) Display authenticated security association
US10650373B2 (en) Method and apparatus for validating a transaction between a plurality of machines
AU2018352026B2 (en) System and method for generating and depositing keys for multi-point authentication
ES2400020T5 (es) Generación de claves criptográficas
US8429405B2 (en) System and method for human assisted secure information exchange
WO2012140291A1 (es) Sistema y método para operaciones biométricas remotas
Chaturvedi et al. A privacy preserving biometric-based three-factor remote user authenticated key agreement scheme
CN114008967A (zh) 经认证的基于晶格的密钥协商或密钥封装
US20190199521A1 (en) Method and apparatus for secure access to a sensor or device network
TW200537959A (en) Method and apparatus for authentication in wireless communications
KR20030080095A (ko) 무선 통신 장치용 보안 처리 및 데이터 스토리지를제공하는 방법 및 장치
US20060031675A1 (en) Method for verifying a secure association between devices
CN117440372B (zh) 无线网络的零信任认证方法及装置
Saliou Enhancement of Bluetooth Security Authentication Using Hash-Based Message Authentication Code (HMAC) Algorithm