ES2279225T3 - Comunicaciones seguras. - Google Patents
Comunicaciones seguras. Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3242—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key 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/0841—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3226—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
- H04L2209/805—Lightweight 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.
Esta invención se refiere a comunicaciones
seguras entre una primera unidad de comunicaciones y una segunda
unidad de comunicaciones.
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.
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.
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.
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.
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
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.
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
\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
\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
\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},
v \epsilon V ={_{v}(d) : d \epsilon D},
\hskip0.3cmdonde v^{(d)} = (v_{1}^{(d)}, v_{2}^{(d)}, ..., v_{n}^{(d)}),
\hskip0.3cmes decir v_{i}^{(d)} \epsilon F_{q}
\hskip0.2cmson 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:
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:
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:
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:
En el paso 403, se calcula el valor "tag"
del MAC evaluando el polinomio en un punto especificado por la clave
k, es decir:
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.
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:
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.
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)
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)
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 |
-
2003
- 2003-06-24 US US10/602,176 patent/US7284127B2/en active Active
- 2003-10-09 EP EP03809276A patent/EP1554834B1/en not_active Expired - Lifetime
- 2003-10-09 AU AU2003276090A patent/AU2003276090A1/en not_active Abandoned
- 2003-10-09 AT AT03809276T patent/ATE348457T1/de not_active IP Right Cessation
- 2003-10-09 KR KR1020057006971A patent/KR101095239B1/ko active IP Right Grant
- 2003-10-09 ES ES03809276T patent/ES2279225T3/es not_active Expired - Lifetime
- 2003-10-09 JP JP2005501515A patent/JP4550736B2/ja not_active Expired - Lifetime
- 2003-10-09 CN CNB2003801067954A patent/CN100574188C/zh not_active Expired - Lifetime
- 2003-10-09 DE DE60310437T patent/DE60310437T2/de not_active Expired - Lifetime
- 2003-10-09 WO PCT/EP2003/011220 patent/WO2004038998A1/en active IP Right Grant
-
2007
- 2007-08-22 US US11/843,554 patent/US7502930B2/en active Active
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 |