ES2279142T3 - Codigo de autenticacion de mensajes basado en un codigo de correccion de errores. - Google Patents
Codigo de autenticacion de mensajes basado en un codigo de correccion de errores. Download PDFInfo
- Publication number
- ES2279142T3 ES2279142T3 ES03750705T ES03750705T ES2279142T3 ES 2279142 T3 ES2279142 T3 ES 2279142T3 ES 03750705 T ES03750705 T ES 03750705T ES 03750705 T ES03750705 T ES 03750705T ES 2279142 T3 ES2279142 T3 ES 2279142T3
- Authority
- ES
- Spain
- Prior art keywords
- message
- key
- tag
- value
- code
- 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
- 238000012937 correction Methods 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 claims abstract description 43
- 238000012545 processing Methods 0.000 claims abstract description 28
- 238000004891 communication Methods 0.000 claims description 76
- 230000003993 interaction Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims 4
- 230000006870 function Effects 0.000 description 36
- 238000010276 construction Methods 0.000 description 16
- 230000008901 benefit Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3033—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
-
- 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
-
- 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/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/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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Power Engineering (AREA)
- Mobile Radio Communication Systems (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Error Detection And Correction (AREA)
- Telephone Function (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Un método de procesamiento de un mensaje (d, X) para determinar un valor "tag" (t) a partir del mensaje y de una clave (k, K) de acuerdo con un código de autentificación de mensajes (MAC), caracterizado porque el método comprende: - seleccionar (302) uno de una pluralidad de símbolos (vi(d)), formando la pluralidad de símbolos una palabra código que codifica un conjunto de datos (d, d) que procede del mensaje, codificando la palabra código el conjunto de datos de acuerdo con un código de corrección de errores, en el que dicha clave determina cuál de dicha pluralidad de símbolos se selecciona; y - determinar (303) que el valor "tag" sea el símbolo seleccionado.
Description
Código de autenticación de mensajes basado en un
código de corrección de errores.
La presente invención se refiere al
procesamiento de un mensaje para determinar un valor "tag" de
acuerdo con un código de autenticación de mensajes.
La integridad y la autenticidad de los datos son
exigencias fundamentales de cualquier sistema de comunicaciones de
datos seguro, y comprenden una garantía de que la información no ha
sido modificada por nadie que no esté autorizado a hacerlo. En los
escenarios de comunicaciones inalámbricas existe un riesgo
especialmente elevado de que un adversario intercepte y posiblemente
modifique los datos transmitidos y, por consiguiente, una especial
necesidad de protección de la integridad y de la autenticación.
La integridad de los datos puede proporcionarse
mediante un MAC (Message Authentication Code, código de
autenticación de mensajes). Los MAC se utilizan para la protección
de la integridad de la carga útil de las comunicaciones de datos,
ya que proporcionan una forma eficiente desde el punto de vista
computacional de proteger incluso grandes cantidades de datos.
Los MAC se basan 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 y el mensaje a proteger es otra entrada. El cálculo
del MAC da como resultado un valor de comprobación de la integridad
al que se denomina valor "tag". Solamente alguien que está en
posesión de la clave secreta correcta es capaz de calcular el valor
"tag" de cualquier mensaje dado. En escenarios convencionales
de protección automática de la integridad, el valor "tag"
calculado se adjunta al mensaje antes de transmitir al receptor por
el canal de comunicaciones el mensaje y el valor "tag". Tras
la recepción de un mensaje protegido por un MAC, el receptor calcula
un valor "tag" correspondiente en base a los datos recibidos y
a la clave secreta compartida. 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).
En esquemas de autenticación manuales, el valor
"tag" calculado no se adjunta necesariamente al mensaje
transmitido. En un esquema de este tipo, el valor "tag" puede
ser calculado por el dispositivo que envía el mensaje y por el
dispositivo que recibe el mensaje. Posteriormente, un usuario
compara los valores "tag" calculados o transfiere manualmente
un valor "tag" calculado de un dispositivo al otro para su
comparación por dicho dispositivo. De forma similar, en algunas
aplicaciones, puede utilizarse un MAC para llevar a cabo una
comprobación de integridad de un conjunto de datos que fue generado
por dos dispositivos diferentes de forma separada. Por lo tanto, en
este escenario el conjunto de datos no se transmite desde un emisor
a un receptor y, por consiguiente, el valor "tag" no necesita
ser añadido a los datos antes de la transmisión.
El artículo "Enhancements to Bluetooth
baseband security" de C. Gehrmann y K. Nyberg, Proceedings of
Nordsec 2001, Copenhagen, noviembre 2001, describe un ejemplo de un
esquema manual de autenticación de este tipo de una clave secreta
compartida de Diffie-Hellman que fue previamente
generada por dos dispositivos sin comunicar nunca la clave secreta
compartida a través de un enlace de comunicaciones. 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 la clave de
Diffie-Hellman, las claves
Diffie-Hellman establecidas serán diferentes en los
dispositivos legítimos. De acuerdo con este método, la clave
secreta compartida generada se autentifica intercambiando
manualmente una clave secreta, calculando un valor "tag" de un
código de autenticación de mensajes de la clave secreta compartida
generada y de la clave secreta, y comparando manualmente los valores
"tag" generados.
En este tipo de escenarios que implican la
interacción de un usuario es deseable mantener pequeña la longitud
del valor "tag" con el fin de hacer factible una comparación o
una transferencia del valor "tag" por parte de un usuario, es
decir con el fin de reducir el tiempo necesario para dicha
comparación manual y para reducir el riesgo de errores.
G. Kabatianskii, B. Smeets y T. Johansson en
"On the cardinality of systematic A-codes via
error correcting codes", IEEE Transaction on Information Theory,
volumen IT-42, páginas 566-578,
1996, describen la relación entre códigos de autenticación de
mensajes y códigos de corrección de errores, y describen una
construcción de un MAC basada en un código de corrección de errores
en la que el código se divide en clases de equivalencia de forma
que todas las palabras código que difieren en una constante se
sustituyen por una palabra código especial, generando con ello un
nuevo código, el denominado código factor. El valor "tag" se
calcula entonces a partir de un símbolo de dicho código factor en
base a dos claves.
Es un objeto de la presente invención el
proporcionar un valor "tag" de un código de autenticación de
mensajes que proporcione un elevado nivel de protección contra
falsificaciones para tamaños pequeños del valor "tag" y para
tamaños pequeños de las claves.
El anterior y otros objetivos se consiguen por
un método de procesamiento de un mensaje para determinar un valor
"tag" a partir del mensaje y de una clave de acuerdo con un
código de autenticación de mensajes, comprendiendo el método:
- -
- seleccionar uno de una pluralidad de símbolos, formando la pluralidad de símbolos una palabra código que codifica un conjunto de datos que procede del mensaje, codificando la palabra código el conjunto de datos de acuerdo con un código de corrección de errores, en el que dicha clave determina cuál de dicha pluralidad de símbolo se selecciona; y
- -
- determinar que el valor "tag" sea el símbolo seleccionado.
El inventor se ha dado cuenta de que el método
anterior proporciona un alto nivel de protección contra
falsificaciones incluso para tamaños pequeños del valor "tag" y
para tamaños pequeños de las claves.
Es una ventaja adicional el que al seleccionar
directamente el valor "tag" como un símbolo de una palabra
código de un código de corrección de errores, se proporciona una
construcción del MAC eficiente desde el punto de vista
computacional.
En una realización, el conjunto de datos que
procede del mensaje es el propio mensaje. Por consiguiente, en esta
realización, el mensaje se utiliza directamente como una entrada al
código de corrección de errores.
En otra realización, el conjunto de datos que
procede del mensaje es un valor resumen de una función resumen
unidireccional calculada a partir del mensaje, reduciendo con ello
el tamaño del mensaje y permitiendo una reducción adicional del
tamaño de la clave y/o del valor "tag" mientras se mantiene el
mismo nivel de seguridad.
Es una ventaja adicional el que la seguridad se
base en una seguridad incondicional de la función MAC en lugar de
descansar en una seguridad computacional como es el caso cuando se
utilizan funciones resumen con códigos resumen largos como funciones
MAC.
En concreto, se ha comprobado que la
construcción MAC descrita anteriormente y en lo que sigue
proporciona probabilidades de falsificación suficientemente bajas
incluso para valores "tag" pequeños y claves cortas, es decir
valores "tag" y claves que tienen una longitud inferior a de 10
a 15 dígitos y/o caracteres y/u otros símbolos, por ejemplo de 4 a
6 caracteres hexadecimales, permitiendo con ello a un usuario el
comunicar y/o comparar los valores "tag".
Para los fines de la presente descripción, el
término mensaje se pretende que comprenda cualquier conjunto de
datos digitales cuya integridad y/o autenticidad haya de
verificarse. Ejemplos de mensajes incluyen conjuntos de datos
enviados desde un emisor a un receptor, por ejemplo a través de un
enlace de comunicaciones inalámbricas, conjuntos de datos generados
de forma separada o en cooperación por dispositivos diferentes, y
otros similares.
En una realización, al menos una contribución al
mensaje se comunica desde un emisor a un receptor a través de un
primer canal de comunicaciones; y el valor "tag" y,
opcionalmente, la clave se comunican a través de un segundo canal de
comunicaciones diferente del primer canal. En una realización, el
segundo canal de comunicaciones implica una interacción de un
usuario.
Por ejemplo, puede comunicarse el mensaje
completo o, en algunas realizaciones, cada dispositivo que participa
en la comunicación puede generar una contribución al mensaje final y
enviar la contribución al otro dispositivo respectivo. Ambos
dispositivos generan entonces el mensaje final. En este caso, una o
más de las contribuciones transmitidas y/o el mensaje final pueden
verificarse por el método descrito anteriormente y en lo que
sigue.
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
provocadas por 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 en 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 dispositivo 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 dispositivo
de comunicaciones para comunicar mensajes de datos, comprendiendo el
dispositivo de comunicaciones medios de procesamiento adaptados para
determinar un valor "tag" a partir de un mensaje y de una
clave de acuerdo con un código de autenticación de mensajes, estando
adaptados dichos medios de procesamiento para:
- -
- seleccionar uno de una pluralidad de símbolos, formando la pluralidad de símbolos una palabra código que codifica un conjunto de datos que procede del mensaje, codificando la palabra código el conjunto de datos de acuerdo con un código de corrección de errores, en el que dicha clave determina cuál de dicha pluralidad de símbolos se selecciona; y
- -
- determinar que el valor "tag" sea el símbolo seleccionado.
El término dispositivo de comunicaciones
comprende cualquier dispositivo que comprenda circuitería adecuada
para recibir y/o transmitir señales de comunicaciones, por ejemplo
señales de comunicaciones 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 dispositivos 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, uno de los
dispositivos puede ser un dispositivo de red, por ejemplo un punto
de acceso de una red de ordenadores que proporciona acceso
inalámbrico a dicha red de ordenadores, por ejemplo una LAN.
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 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 un
ejemplo de un escenario de autenticación de mensajes que implica la
interacción de un usuario;
- la figura 2 muestra un diagrama de flujo de
otro ejemplo de un escenario de autenticación de mensajes que
implica la interacción de un usuario;
- la figura 3 muestra un diagrama de flujo de un
método de cálculo de un código de autenticació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
autenticación de mensajes basado en un código de
Reed-Solomon;
- la figura 5 muestra una tabla que indica las
probabilidades de éxito de un ataque de sustitución para diversos
ejemplos de construcción de la construcción MAC de las figuras 4a y
4b;
- la figura 6 muestra un diagrama de bloques de
dos dispositivos de comunicaciones; y
- la figura 7 muestra una realización de un
mecanismo seguro de intercambio de claves en el que una contribución
a la clave secreta compartida generada se comunica a través de un
enlace de comunicaciones inalámbricas y se autentifica por medio de
la autenticación de mensajes descrita en relación con las figuras 3,
4a y 4b.
La figura 1 muestra un diagrama de flujo de un
ejemplo de un escenario de autenticación de mensajes que implica la
interacción de un usuario. El escenario de autenticación de mensajes
implica dos dispositivos, designados globalmente como A y B,
respectivamente. Los pasos en el lado izquierdo del diagrama de
flujo, designados globalmente mediante la referencia numérica 101,
son realizados por el dispositivo A, mientras que los pasos en el
lado derecho del diagrama de flujo, designados globalmente mediante
la referencia numérica 102, son realizados por el dispositivo B.
En el ejemplo de la figura 1, ambos dispositivos
tienen almacenado un mensaje d, como se representa en las
cajas 103 y 109, respectivamente. Por ejemplo, el mensaje d
puede haber sido generado por uno de los dispositivos y haber sido
enviado al otro dispositivo; alternativamente, ambos dispositivos
pueden haber recibido el mensaje d de uno o más dispositivos
adicionales, o pueden haber generado el mensaje en cooperación uno
con otro y/o con un tercer dispositivo.
Con el fin de verificar que ambos dispositivos
han almacenado el mismo mensaje, en un paso inicial 104, el
dispositivo A genera una clave k, por ejemplo una cadena
secreta de una longitud adecuada y seleccionada de un espacio de
claves adecuado. En el paso 105, el dispositivo A envía la clave
generada al dispositivo B, por ejemplo a través de un enlace de
comunicaciones inalámbricas u otra conexión de datos adecuada entre
los dos dispositivos. En el paso 110, el dispositivo B recibe la
clave. A partir de ahora, a la clave recibida por el dispositivo B
la denominaremos k'.
En el paso 106, el dispositivo A calcula un
valor "tag" t de una función MAC utilizando como
entradas el mensaje d almacenado por el dispositivo A y la clave
k generada por el dispositivo A. De forma similar, en el paso
111, el dispositivo B calcula un correspondiente valor "tag"
t' de la misma función MAC que el dispositivo A, utilizando
como entradas la clave recibida k' y el mensaje d
almacenado por el dispositivo B.
En el paso 107, el dispositivo A presenta al
usuario del dispositivo A el valor "tag" t calculado y
la clave k generada. De forma similar, en el paso 112, el
dispositivo B presenta al usuario del dispositivo B el valor
"tag" t' calculado por el dispositivo B y la clave
k' recibida. El(los) usuario(s)
compara(n) los valores presentados con el fin de determinar
si son iguales, es decir si t = t'. Por ejemplo, si
los dispositivos están próximos el uno al otro, un usuario puede
comparar directamente los valores presentados. Si los dispositivos
están situados lejos el uno del otro, un usuario del dispositivo A
puede leer el valor "tag" t y la clave k del
dispositivo A, comunicar el valor "tag" y la clave a un usuario
del dispositivo B, por ejemplo por teléfono o por otros medios de
comunicación, de forma que el usuario del dispositivo B pueda
realizar la comparación con el valor "tag" t' y con la
clave k' presentados por el dispositivo B.
En los pasos 108 y 113, el(los)
usuario(s) de los dispositivos A y B, respectivamente,
introducen el resultado de la comparación anterior, por ejemplo
pulsando una tecla OK, cuando los valores "tag" y las claves
son iguales, y una tecla NOK cuando los valores no son iguales.
Se entiende que pueden implementarse diversas
realizaciones alternativas de la introducción por parte del usuario
del resultado de la autenticación. Por ejemplo, al usuario se le
puede pedir que sólo introduzca el resultado en uno de los
dispositivos. En otra realización alternativa, los dispositivos
pueden asumir que la autenticación no fue satisfactoria si el
usuario no presiona la tecla OK dentro de un periodo de tiempo
predeterminado.
Si los valores "tag" y las claves son
iguales, el mensaje d almacenado en los dos dispositivos se
autentifica con éxito, y los dispositivos A y B pueden continuar su
respectivo procesamiento del mensaje. Por lo tanto, el escenario de
autenticación de la figura 1 implica una interacción de un usuario
como se indica por la flecha de línea discontinua 114, ya que el
usuario compara los valores presentados e indica el resultado de la
comparación a los
dispositivos.
dispositivos.
La figura 2 muestra un diagrama de flujo de otro
ejemplo de un escenario de autenticación de mensajes que implica una
interacción de un usuario. De nuevo, el escenario de autenticación
de mensajes implica dos dispositivos A y B, respectivamente, y los
pasos en el lado izquierdo del diagrama de flujo, designados
globalmente mediante la referencia numérica 201, son realizados por
el dispositivo A, mientras que los pasos en el lado derecho del
diagrama de flujo, designados globalmente mediante la referencia
numérica 202, son realizados por el dispositivo B.
Como en el ejemplo anterior, ambos dispositivos
han almacenado un mensaje d como se representa en las cajas
103 y 109, respectivamente. Con el fin de verificar que ambos
dispositivos han almacenado el mismo mensaje, en un paso inicial 104
el dispositivo A genera una clave k.
En el paso 205, el dispositivo A calcula un
valor "tag" t de una función MAC utilizando como
entradas el mensaje d almacenado por el dispositivo A y la
clave k generada por el dispositivo A.
En el paso 206, el dispositivo A presenta al
usuario del dispositivo A el valor "tag" t calculado y
la clave k generada. Por ejemplo, los valores pueden
presentarse como dos valores separados o concatenados en una única
cadena.
El usuario del dispositivo A lee el(los)
valor(es) presentado(s) y lo(los) introduce en
el dispositivo B (paso 208). Por ejemplo, el usuario puede
introducir los valores a través de un teclado o de un teclado
numérico del dispositivo B, o a través de cualquier otro
dispositivo de entrada adecuado. Se entiende que si, por ejemplo,
los dispositivos se encuentran alejados el uno del otro, el usuario
del dispositivo A puede comunicar el(los) valor(es) a
un usuario del dispositivo B, por ejemplo por teléfono u otro medio
de comunicación, de forma que el usuario del dispositivo B pueda
introducir los valores en el dispositivo B.
En el paso siguiente 209, el dispositivo B
calcula el valor "tag" t' de la misma función MAC que el
dispositivo A, utilizando como entradas la clave k y el
mensaje d almacenado por el dispositivo B.
En el paso 210, el dispositivo B compara el
valor "tag" t' calculado con el valor "tag"
t introducido por el usuario del dispositivo B. Si los
valores "tag" son iguales, el mensaje d es autentificado
con éxito (paso 211); en caso contrario el mensaje d se
rechaza como degradado (paso 212). En una realización, el
dispositivo B puede presentar un correspondiente mensaje al usuario
del dispositivo indicando el resultado de la autenticación.
Alternativa o adicionalmente, el dispositivo B puede enviar un
correspondiente mensaje al dispositivo A.
De nuevo, el escenario de autenticación de la
figura 2 implica la interacción de un usuario como se indica por la
flecha de línea discontinua 213.
Por lo tanto, acabamos de describir dos
escenarios de autenticación que implican la interacción de un
usuario. En los escenarios anteriores, al menos uno entre la clave
k introducida en la función MAC y el valor "tag"
t calculado por la función MAC es leído y/o introducido por
un usuario. Al usuario se le puede pedir, incluso, que comunique
los valores a otro usuario, por ejemplo vía telefónica. Por lo
tanto, en los escenarios anteriores y similares, es deseable
mantener pequeño el tamaño del valor "tag" y de la clave, sin
reducir la seguridad proporcionada por el esquema de
autenticación.
Se entiende además que los escenarios descritos
anteriormente solamente sirven como ejemplos, y que existen muchos
otros esquemas de autenticación que implican la interacción de un
usuario. Por ejemplo, en una realización, la clave k puede
ser generada por un tercer dispositivo y comunicada a los
dispositivos A y B, o la clave puede ser generada por el usuario,
por ejemplo como un número PIN (Personal Identification number,
número de identificación personal), e introducida en ambos
dispositivos, o la clave puede ser codificada por hardware en los
dos dispositivos, o formas similares. Además, la clave y,
posiblemente, el valor "tag" pueden ser calculados por el
dispositivo A mucho antes de la autenticación concreta. Por ejemplo,
el dispositivo A puede generar la clave y el valor "tag"
durante la generación del mensaje d por el dispositivo A. En
otra realización adicional, los parámetros comunicados, es decir la
clave k en la figura 1 o la clave y el valor "tag" en la
figura 2, pueden comunicarse desde el dispositivo A a un tercer
dispositivo de donde los puede recuperar el dispositivo B. Por
ejemplo, si B es un dispositivo de red de una red de ordenadores,
los parámetros anteriores pueden comunicarse a otro ordenador de la
red de ordenadores donde pueden almacenarse y posteriormente ser
recuperados por el dispositivo B.
La figura 3 muestra un diagrama de flujo de un
método de cálculo de un código de autenticació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 autenticación de mensajes), por
ejemplo como en los pasos 106 y 111 de la figura 1 ó en los pasos
205 y 209 de la figura 2. 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 a un
espacio de valores "tag" C, es decir f: D x K
\rightarrow C donde a un mensaje d \in D y
a una clave k \in K se le hace corresponder un valor
"tag" t \in C, es decir (d,
k)\rightarrowt.
Se utiliza un MAC para proteger la integridad
del mensaje, es decir para asegurar que no se han alterados los
datos, por ejemplo durante la transmisión desde un emisor hasta un
receptor del mensaje. En autenticació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 autenticació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 utilizan funciones resumen con códigos resumen largos, la
seguridad se basa 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, que se incorpora aquí en su
totalidad al ser referenciado.
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:
Por ejemplo, en el contexto del protocolo de
intercambio de claves descrito en conexión con la figura 7
posterior, 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 una clave pública transmitida
durante el intercambio de claves por 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, ambos
dispositivos están físicamente cerca el uno del otro y puede
restringirse que sólo acepten datos si ambos dispositivos han
señalizado que están dispuestos. Por consiguiente, 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
muchos escenarios de autenticación manual, 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 juntos y pueden ser observados por un atacante. Con
estas suposiciones, la probabilidad de que un ataque de sustitución
tenga éxito puede expresarse como:
Por lo tanto, suponiendo que la clave se elige
de forma uniformemente aleatoria del espacio de claves K, la
probabilidad anterior puede expresarse como:
donde | | 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
consiguiente, 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 \in V =
{v^{(d)}:d \in D},
\;donde
\;v^{(d)} = (v_{1}^{(d)}, v_{2}^{(d)}, ..., v_{n}^{(d)}),
\;es decir,
\;v_{i}^{(d)} \in F_{q} son los símbolos de la palabra 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á una
realización de una construcción MAC basada en códigos de corrección
de errores, es decir, la figura 3 es un diagrama de flujo de una
realización de cualquiera de los sub-procesos 106,
111, 205, 209 y 714 de las figuras 1, 2 y 7, respectivamente.
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 una realización, la clave puede ser una cadena
de símbolos, dígitos, caracteres o similares. Preferiblemente, la
clave comprende menos de 10 a 15 símbolos, más preferiblemente menos
de 7 símbolos, por ejemplo de 4 a 6 caracteres hexadecimales.
\newpage
En el paso 302, se selecciona un índice i
\in {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" sea el símbolo i-ésimo de la palabra código v^{(d)}
del código V que corresponde al mensaje d, es
decir:
t =
f(d,k) = v_{i}{}^{(d)} =
v_{g(k)}{}^{(d)}.
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:
P_{S} = 1 -
d_{H}(V)/n.
Las figuras 4a y 4b muestran diagramas de flujo
de ejemplos de un método de calcular un código de autenticació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, como se
describió con respecto a la figura 3 anterior.
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} \in F_{q}. Por lo tanto, el polinomio de
codificación de Reed-Solomon (RS) correspondiente al
mensaje se define como:
p^{(d)}(x) =
d_{0} + d_{1}x +d_{2}x^{2} + ...+ d_{\tau -1}x^{\tau
-1}.
En el paso 403, se calcula el valor "tag"
del MAC evaluando el polinomio en un punto especificado por la clave
k, es decir:
t =
f(d,k) = v_{k}{}^{(d)} = p^{(d)}(k) = d_{0} + d_{1}k
+d_{2}k^{2} + ...+ d_{\tau -1}k^{\tau
-1}
Por lo tanto, la clave k especifica un
símbolo del código Reed-Solomon que se utiliza como
valor "tag". Se entiende, como se describió anteriormente, que
el símbolo puede especificarse por cualquier función adecuada de la
clave.
Hay que resaltar además, en esta construcción,
que la clave se selecciona del campo finito F_{q}, es
decir k \in F_{q}. En consecuencia, esta construcción
tiene las siguientes propiedades: n = q = |K| y |D| =
q^{\tau} = n^{\tau}. 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, proporcionando con ello una seguridad
elevada.
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.
\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} \in 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:
t =
f(\delta,k) = v_{k}{}^{(\delta)} = p^{(\delta)}(k) = \delta_{0} +
\delta_{1}k + \delta_{2}k^{2} + ...+ \delta_{\tau -1}k^{\tau
-1}.
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
autenticació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
por medio de una interacción humana.
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 de la 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 dispositivos de
comunicaciones designados, globalmente, como A y B. El dispositivo
de comunicaciones A y el dispositivo de comunicaciones B se
comunican el uno con el otro por medio de un enlace de
comunicaciones 605.
El dispositivo 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 al
dispositivo 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 otros dispositivos y los datos a enviar a otros
dispositivos de acuerdo con la funcionalidad implementada por el
dispositivo 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 una clave y el correspondiente valor "tag" de una
función MAC como se ha descrito anteriormente.
El medio de almacenamiento 604, por ejemplo una
EPROM, una EEPROM, una memoria flash, o equivalentes, está adaptado
para almacenar la clave k así como los parámetros necesarios
para la autenticación de los mensajes descrita anteriormente.
El interfaz de usuario 606 comprende una
pantalla para visualizar la clave generada k y el
correspondiente valor "tag" t, de forma que un usuario
pueda leer los valores generados y pueda transferirlos al
dispositivo 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.
El dispositivo 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 del dispositivo
de comunicaciones A, permitiendo con ello la comunicación vía radio
\hbox{entre los dispositivos de comunicaciones A y
B.}
La unidad de procesamiento 609 procesa los datos
recibidos de otros dispositivos y los datos a enviar a otros
dispositivos de acuerdo con la funcionalidad implementada por el
dispositivo de comunicaciones. En concreto, la unidad de
procesamiento está programada adecuadamente para realizar las
funciones de seguridad descritas anteriormente, en particular el
método de autenticación descrito anteriormente y que corresponde al
mecanismo de autenticación implementado por el dispositivo A.
Del mismo modo, el medio de almacenamiento 604,
por ejemplo una EPROM, una EEPROM, una memoria flash, o
equivalentes, está adaptado para almacenar la clave k y el
valor "tag" t.
El interfaz de usuario 611 comprende un
dispositivo de entrada, por ejemplo un teclado, un teclado numérico,
una pantalla táctil o equivalentes que permite a un usuario
introducir la clave k y el correspondiente valor "tag"
t generado por el dispositivo 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 dispositivos 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 estén adaptados para realizar una autenticación de
mensajes 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 el correspondiente dispositivo de
comunicaciones, permitiendo con ello establecer la asociación de
seguridad con independencia del dispositivo 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 los dispositivos de
comunicaciones pueden comprender además componentes que se han
omitido en el diagrama esquemático de bloques de la figura 6. Por
ejemplo, dependiendo de la implementación real del esquema de
autenticación, los dispositivos pueden comprender medios de entrada
y/o de salida adicionales para introducir y/o sacar los parámetros
del método de autenticación. Por ejemplo, uno de los dispositivos
puede comprender un interfaz de comunicaciones adicional, por
ejemplo una tarjeta de red, para recuperar la clave y/o el valor
"tag" de un servidor de red, o equivalente.
La figura 7 muestra una realización de un
mecanismo seguro de intercambio de claves en el que una contribución
a la clave secreta compartida generada se comunica a través de un
enlace de comunicaciones inalámbricas y se autentifica mediante la
autenticación de mensajes descrita anteriormente. Por lo tanto, en
esta realización, el mensaje es una contribución a una clave secreta
compartida. Cuando dos dispositivos, designados 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 izquierda del diagrama de flujo, designados globalmente por la
referencia numérica 701, los realiza el dispositivo A, mientras que
los pasos representados en el lado derecho del diagrama de flujo,
designados globalmente por la referencia numérica 702, los realiza
el
dispositivo B.
dispositivo B.
El siguiente intercambio de claves se basa en el
denominado método "Diffie-Heelman" 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, que se
incorpora aquí en su totalidad al ser referenciada.
Cuando dos dispositivos A y B desean establecer
una clave secreta compartida, acuerdan un número primo p>2
y una base g, que es una primitiva módulo p. Los
parámetros p y g pueden estar codificados por hardware
en ambos dispositivos, pueden generarse por uno de los dispositivos
y comunicarse al otro dispositivo, 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 1000 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 dispositivo genera un número secreto que es
menor que p-1. En lo que sigue, llamaremos
x al número secreto generado por el dispositivo A, e y
al número secreto generado por el dispositivo B. Cada dispositivo
genera entonces una clave pública basada en el número secreto y en
los parámetros anteriores. El dispositivo 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, el dispositivo B
genera Y = g^{y} mod p.
Los dispositivos intercambian sus claves
públicas, y cada dispositivo calcula un valor secreto común S
de acuerdo con:
- Dispositivo A: S = (Y)^{x} mod p,
- Dispositivo B: S = (X)^{y} mod p.
Por lo tanto, como resultado, los dispositivos A
y B han establecido una clave secreta común S sin haberse
comunicado los valores secretos x e y, ya que
(g^{y}
\ mod \ p)^{x} \ mod \ p = (g^{x} \ mod \ p)^{y} \ mod \
p.
Ahora, con referencia a la figura 7, en un paso
inicial 703 del intercambio de claves, el dispositivo A genera un
número aleatorio x, una correspondiente clave pública de
Diffie-Hellman X y una cadena secreta corta
K. 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 los dispositivos 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 704, el dispositivo A
utiliza un MAC (message authentication code, código de autenticación
de mensajes) como se ha descrito anteriormente para calcular un
valor "tag" t a partir de la clave pública X
utilizando la cadena secreta K como clave. 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 incluye 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 705, la cadena secreta K
generada y el valor "tag" t calculado se comunican al
dispositivo B a través de un canal de comunicaciones adecuado, como
se indica por la flecha de línea discontinua 706 de la figura 7. Por
ejemplo, los valores de K y de t pueden transferirse
del dispositivo A al dispositivo B mediante una interacción de un
usuario, por ejemplo leyendo los valores en una pantalla del
dispositivo A e introduciendo los valores en el dispositivo 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,
preferiblemente un canal de comunicaciones diferente del canal de
comunicaciones en que han de establecerse las comunicaciones
seguras. Es una ventaja el que los dispositivos A y B no tengan que
tener un enlace de comunicaciones establecido entre ellos; incluso
no tienen que estar uno en la proximidad del otro. Por ejemplo, el
usuario del dispositivo A puede comunicar la cadena secreta y el
valor "tag" al usuario del dispositivo B por teléfono, correo o
cualquier otro medio adecuado. Además, la comunicación de los
valores generados de K y t puede realizarse con
anterioridad al instante en que debe realmente establecerse la clave
secreta compartida entre los dispositivos, 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 t.
En el paso 707, el dispositivo B recibe los
valores de K y de t y, en el paso 710, los almacena en
un medio de almacenamiento 711 del dispositivo B, por ejemplo una
EPROM o 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 en relación con dicho identificador, por
ejemplo utilizando el identificador como un índice.
De forma similar, en el paso 708 el dispositivo
A almacena la cadena secreta K, opcionalmente asociada al
identificador ID, en un medio de almacenamiento 709 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.
Con esto concluye el proceso de registro
inicial. Los pasos siguientes, que incluyen el intercambio real de
claves se realiza 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 en la figura 7 por las líneas
727.
En el paso 712, el dispositivo A inicia el
intercambio real de claves transmitiendo la clave pública X
al dispositivo B a través de un enlace de comunicaciones
inalámbricas. 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. Del mismo modo, si en el paso
704 el valor "tag" t se calculó para la clave pública y
datos adicionales, el dispositivo A envía también dichos datos
adicionales al dispositivo B.
Cuando el dispositivo B recibe la clave pública
X procedente del dispositivo A (paso 713), en el paso 714 el
dispositivo B recupera la cadena secreta K del medio de
almacenamiento 711, en una realización en base al identificador
ID. El dispositivo 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 715, el dispositivo 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 716). Por
ejemplo, el dispositivo B puede abortar el intercambio de claves
enviando el correspondiente mensaje al dispositivo 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 717.
En el paso 717, 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 718, el dispositivo B genera la
correspondiente clave secreta compartida de
Diffie-Hellman S = (X)^{y} mod
p.
En el paso 719, el dispositivo B cifra la cadena
secreta K recuperada del medio de almacenamiento 711
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.
En el paso 720, 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 721, el dispositivo A recibe la
cadena secreta cifrada K* y la clave pública de
Diffie-Hellman Y.
En el paso 722, 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 709.
En el paso 723, el dispositivo 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 724, 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 709. 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 725).
En caso contrario, el proceso continúa en el paso 726.
En el paso 726, se acepta la clave pública
recibida Y, es decir se acepta la clave secreta compartida
calculada S como una clave secreta compartida. En una
realización, se envía el correspondiente mensaje al dispositivo,
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 una realización alternativa,
la clave pública Y comunicada desde el dispositivo B al
dispositivo A puede autentificarse por un método diferente, por
ejemplo calculando un MAC de acuerdo con el método descrito
anteriormente.
Se entiende que el método de autenticación
descrito aquí puede también usarse para autentificar una clave
secreta compartida establecida previamente, por ejemplo una clave
secreta compartida generada por un acuerdo de claves de
Diffie-Hellman anónima. Por lo tanto, en esta
realización el mensaje es una clave secreta compartida, generada en
cooperación por dos dispositivos.
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
uno 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.
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 (12)
1. Un método de procesamiento de un mensaje (d,
X) para determinar un valor "tag" (t) a partir del mensaje y de
una clave (k, K) de acuerdo con un código de autenticación de
mensajes (MAC), caracterizado porque el método
comprende:
- -
- seleccionar (302) uno de una pluralidad de símbolos (v_{i}(d)), formando la pluralidad de símbolos una palabra código que codifica un conjunto de datos (d,\delta) que procede del mensaje, codificando la palabra código el conjunto de datos de acuerdo con un código de corrección de errores, en el que dicha clave determina cuál de dicha pluralidad de símbolos se selecciona; y
- -
- determinar (303) que el valor "tag" sea el símbolo seleccionado.
2. Un método de acuerdo con la reivindicación
1, en el que el conjunto de datos que procede del mensaje consiste
en dicho mensaje.
3. Un método de acuerdo con la reivindicación
1, que comprende además determinar (405) que dicho conjunto de datos
sea un valor resumen (\delta) de una función resumen
unidireccional (h(d)) calculada a partir del mensaje.
4. Un método de acuerdo con la reivindicación
1, en el que la clave es lo suficientemente corta como para que sea
comunicada a través de una interacción de un usuario.
5. Un método de acuerdo con la reivindicación
1, en el que el código de corrección de errores es un código
Reed-Solomon y en el que el valor "tag" se
determina evaluando (403) un polinomio de codificación
Reed-Solomon en un punto determinado por la
clave.
6. Un método de acuerdo con la reivindicación
1, en el que el valor "tag" es un elemento en un campo
finito.
7. Un método de acuerdo con la reivindicación
1, que comprende además:
- comunicar (712) al menos una contribución al
mensaje desde un emisor (701) a un receptor (702) a través de un
primer canal de comunicaciones; y
- comunicar (705) el valor "tag" y/o la
clave (K) desde el emisor al receptor a través de un segundo canal
de comunicaciones (706) diferente del primer canal de
comunicaciones.
8. Un método de acuerdo con la reivindicación
7, en el que el segundo canal de comunicaciones incluye una
interacción de un usuario.
9. Un dispositivo de comunicaciones (A, B) para
comunicar mensajes de datos, comprendiendo el dispositivo de
comunicaciones medios de procesamiento (606, 609) adaptados para
determinar un valor "tag" (t) a partir de un mensaje (d, X) y
de una clave (k, K) de acuerdo con un código de autenticación de
mensajes (MAC), caracterizado porque dichos medios de
procesamiento están adaptados para:
- -
- seleccionar (302) uno de una pluralidad de símbolos (v_{i}(d)), formando la pluralidad de símbolos una palabra código que codifica un conjunto de datos (d, \delta) que procede del mensaje, codificando la palabra código el conjunto de datos de acuerdo con un código de corrección de errores, en el que dicha clave determina cuál de dicha pluralidad de símbolos se selecciona; y
- -
- determinar (303) que el valor "tag" sea el símbolo seleccionado.
10. Un programa de ordenador que comprende
programas codificados para llevar a cabo todos los pasos de una
cualquiera de las reivindicaciones 1 a 8 cuando dicho programa corre
en un ordenador.
11. Un programa de ordenador de acuerdo con la
reivindicación 10, incorporado como 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 8 cuando dicho producto
programa de ordenador corre en un ordenador.
12. Un programa de ordenador de acuerdo con la
reivindicación 10, incorporado como 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 8 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 | ||
| US10/602,167 US7702910B2 (en) | 2002-10-24 | 2003-06-24 | Message authentication |
| US602167 | 2003-06-24 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2279142T3 true ES2279142T3 (es) | 2007-08-16 |
Family
ID=32179830
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES03750705T Expired - Lifetime ES2279142T3 (es) | 2002-10-24 | 2003-10-09 | Codigo de autenticacion de mensajes basado en un codigo de correccion de errores. |
Country Status (10)
| Country | Link |
|---|---|
| US (1) | US7702910B2 (es) |
| EP (1) | EP1554835B1 (es) |
| JP (1) | JP4664206B2 (es) |
| KR (3) | KR101255357B1 (es) |
| CN (1) | CN1729646B (es) |
| AT (1) | ATE348459T1 (es) |
| AU (1) | AU2003268933A1 (es) |
| DE (1) | DE60310439T2 (es) |
| ES (1) | ES2279142T3 (es) |
| WO (1) | WO2004038999A1 (es) |
Families Citing this family (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005159905A (ja) * | 2003-11-27 | 2005-06-16 | Ntt Docomo Inc | データ保存装置及び通信端末装置 |
| US7831828B2 (en) * | 2004-03-15 | 2010-11-09 | Cardiac Pacemakers, Inc. | System and method for securely authenticating a data exchange session with an implantable medical device |
| US7739513B2 (en) * | 2005-02-22 | 2010-06-15 | Sony Corporation | Secure device authentication |
| US7392037B2 (en) * | 2005-08-19 | 2008-06-24 | Intel Corporation | Wireless communication device and methods for protecting broadcasted management control messages in wireless networks |
| US8280982B2 (en) | 2006-05-24 | 2012-10-02 | Time Warner Cable Inc. | Personal content server apparatus and methods |
| US9386327B2 (en) * | 2006-05-24 | 2016-07-05 | Time Warner Cable Enterprises Llc | Secondary content insertion apparatus and methods |
| US8024762B2 (en) | 2006-06-13 | 2011-09-20 | Time Warner Cable Inc. | Methods and apparatus for providing virtual content over a network |
| GB0622366D0 (en) * | 2006-11-09 | 2006-12-20 | Cambridge Silicon Radio Ltd | Authenticating devices for RF communications |
| EP2220807B1 (en) * | 2007-12-13 | 2013-02-13 | Certicom Corp. | Devices and method for controlling features on a device |
| BRPI0820948A2 (pt) * | 2007-12-19 | 2018-06-12 | Paysert Ab | sistema para recepção e transmissão de dados criptografados |
| KR100987213B1 (ko) * | 2008-07-11 | 2010-10-12 | 삼성전자주식회사 | 바이오 키를 이용하여 VoIP을 기반으로 한 통신을수행하는 방법 및 장치 |
| JP5493946B2 (ja) * | 2010-02-08 | 2014-05-14 | 株式会社リコー | 複合システム、セキュリティ方法、セキュリティプログラム及び記録媒体 |
| US20110264530A1 (en) | 2010-04-23 | 2011-10-27 | Bryan Santangelo | Apparatus and methods for dynamic secondary content and data insertion and delivery |
| FI125393B (en) * | 2012-07-17 | 2015-09-30 | Arm Finland Oy | A method, apparatus and system for use in a web service |
| WO2014076911A1 (ja) * | 2012-11-13 | 2014-05-22 | 日本電気株式会社 | メッセージ認証システム、およびメッセージ認証方法 |
| US20140282786A1 (en) | 2013-03-12 | 2014-09-18 | Time Warner Cable Enterprises Llc | Methods and apparatus for providing and uploading content to personalized network storage |
| EP3078220A4 (en) | 2013-12-02 | 2017-05-17 | Mastercard International Incorporated | Method and system for secure tranmission of remote notification service messages to mobile devices without secure elements |
| US9762395B2 (en) | 2014-04-30 | 2017-09-12 | International Business Machines Corporation | Adjusting a number of dispersed storage units |
| US10511581B2 (en) * | 2015-11-17 | 2019-12-17 | International Business Machines Corporation | Parallelizable encryption using keyless random permutations and authentication using same |
| US10586023B2 (en) | 2016-04-21 | 2020-03-10 | Time Warner Cable Enterprises Llc | Methods and apparatus for secondary content management and fraud prevention |
| US10951591B1 (en) * | 2016-12-20 | 2021-03-16 | Wells Fargo Bank, N.A. | SSL encryption with reduced bandwidth |
| US10951607B2 (en) * | 2018-05-14 | 2021-03-16 | GM Global Technology Operations LLC | Authentication methods and systems |
| US11403849B2 (en) | 2019-09-25 | 2022-08-02 | Charter Communications Operating, Llc | Methods and apparatus for characterization of digital content |
| US12197558B2 (en) | 2022-05-09 | 2025-01-14 | Nxp B.V. | Method for authenticating an electronic device |
| US12137164B1 (en) * | 2023-06-27 | 2024-11-05 | SanDisk Technologies, Inc. | Storage-free message authenticators for error-correcting-codes |
Family Cites Families (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4200770A (en) * | 1977-09-06 | 1980-04-29 | Stanford University | Cryptographic apparatus and method |
| US4688250A (en) * | 1986-01-29 | 1987-08-18 | Rca Corporation | Apparatus and method for effecting a key change via a cryptographically protected link |
| JP2570635B2 (ja) * | 1994-11-07 | 1997-01-08 | 日本電気株式会社 | デジタル署名方式 |
| 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 |
| JPH09270053A (ja) * | 1996-03-29 | 1997-10-14 | Mitsubishi Electric Corp | 認証番号発行装置および認証番号検証装置 |
| 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 |
| JPH118616A (ja) * | 1997-06-17 | 1999-01-12 | Dainippon Printing Co Ltd | 故障利用攻撃対応icカード |
| NL1007495C2 (nl) * | 1997-11-07 | 1999-05-12 | Koninkl Kpn Nv | Werkwijze voor het beveiligd uitlezen van een vercijferd, opgeslagen cryptografische sleutel en communicatieapparaten daarvoor. |
| 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 |
| US6851052B1 (en) * | 1998-12-10 | 2005-02-01 | Telcordia Technologies, Inc. | Method and device for generating approximate message authentication codes |
| CA2296967A1 (en) * | 1999-02-02 | 2000-08-02 | Gregory S. Caso | Show-thru prevention and user authentication of uplink bursts without overhead |
| DE60006935T2 (de) | 1999-02-11 | 2004-11-04 | Rsa Security Inc., Bedford | Ein fuzzy engagement schema |
| US6779111B1 (en) * | 1999-05-10 | 2004-08-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Indirect public-key encryption |
| US6754824B1 (en) * | 1999-06-25 | 2004-06-22 | Telefonaktiebolaget L M Ericsson (Publ) | Modulated message authentication system and method |
| US6845449B1 (en) * | 1999-07-23 | 2005-01-18 | Networks Associates Technology, Inc. | System and method for fast nested message authentication codes and error correction codes |
| HK1046795B (zh) | 1999-08-09 | 2005-04-22 | 高通股份有限公司 | 用来产生消息鉴别码的方法和设备 |
| DK174672B1 (da) * | 1999-11-09 | 2003-08-25 | Orange As | System til elektronisk udlevering af en personlig identifikationskode |
| JP2001175602A (ja) * | 1999-12-20 | 2001-06-29 | Casio Comput Co Ltd | 通信端末接続確立方法および通信システム |
| US6631172B1 (en) * | 2000-05-01 | 2003-10-07 | Lucent Technologies Inc. | Efficient list decoding of Reed-Solomon codes for message recovery in the presence of high noise levels |
| EP1255372B1 (en) | 2001-05-03 | 2008-03-19 | Telefonaktiebolaget LM Ericsson (publ) | Method and system for data integrity protection |
| US20030041242A1 (en) | 2001-05-11 | 2003-02-27 | Sarver Patel | Message authentication system and method |
| US6718503B1 (en) * | 2002-01-04 | 2004-04-06 | Itran Communications Ltd. | Reduced latency interleaver utilizing shortened first codeword |
-
2003
- 2003-06-24 US US10/602,167 patent/US7702910B2/en active Active
- 2003-10-09 DE DE60310439T patent/DE60310439T2/de not_active Expired - Lifetime
- 2003-10-09 ES ES03750705T patent/ES2279142T3/es not_active Expired - Lifetime
- 2003-10-09 AU AU2003268933A patent/AU2003268933A1/en not_active Abandoned
- 2003-10-09 JP JP2005501514A patent/JP4664206B2/ja not_active Expired - Fee Related
- 2003-10-09 KR KR1020057007151A patent/KR101255357B1/ko not_active Expired - Fee Related
- 2003-10-09 CN CN2003801070745A patent/CN1729646B/zh not_active Expired - Fee Related
- 2003-10-09 EP EP03750705A patent/EP1554835B1/en not_active Expired - Lifetime
- 2003-10-09 AT AT03750705T patent/ATE348459T1/de not_active IP Right Cessation
- 2003-10-09 KR KR1020117009789A patent/KR20110053391A/ko not_active Ceased
- 2003-10-09 KR KR1020107022927A patent/KR101092696B1/ko not_active Expired - Fee Related
- 2003-10-09 WO PCT/EP2003/011219 patent/WO2004038999A1/en not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| JP2006504361A (ja) | 2006-02-02 |
| KR20050083819A (ko) | 2005-08-26 |
| KR20100114947A (ko) | 2010-10-26 |
| US7702910B2 (en) | 2010-04-20 |
| EP1554835A1 (en) | 2005-07-20 |
| ATE348459T1 (de) | 2007-01-15 |
| EP1554835B1 (en) | 2006-12-13 |
| CN1729646B (zh) | 2010-09-29 |
| KR101255357B1 (ko) | 2013-04-17 |
| AU2003268933A1 (en) | 2004-05-13 |
| WO2004038999A1 (en) | 2004-05-06 |
| KR20110053391A (ko) | 2011-05-20 |
| KR101092696B1 (ko) | 2011-12-09 |
| JP4664206B2 (ja) | 2011-04-06 |
| DE60310439D1 (de) | 2007-01-25 |
| CN1729646A (zh) | 2006-02-01 |
| US20050262418A1 (en) | 2005-11-24 |
| DE60310439T2 (de) | 2007-09-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2279225T3 (es) | Comunicaciones seguras. | |
| EP1554835B1 (en) | Message authentication code based on error correcting code | |
| US8325994B2 (en) | System and method for authenticated and privacy preserving biometric identification systems | |
| US10650373B2 (en) | Method and apparatus for validating a transaction between a plurality of machines | |
| JP7232816B2 (ja) | 資産を認証する認証システム及び認証方法 | |
| US11930111B2 (en) | System and method for generating and depositing keys for multi-point authentication | |
| US6912659B2 (en) | Methods and device for digitally signing data | |
| CN101999132B (zh) | 在服务器凭证验证时生成一次性口令和签名的强认证令牌 | |
| US10069822B2 (en) | Authenticated network time for mobile device smart cards | |
| Wong et al. | Multi-channel protocols | |
| CN113114475A (zh) | 基于比特自检puf身份认证系统及协议 | |
| CN1973569A (zh) | 用于保护认证和密钥协商协议的方法 | |
| CN110855667A (zh) | 一种区块链加密方法、装置及系统 | |
| JP5300026B2 (ja) | Icカードシステムにおけるカード認証システム | |
| Murkute et al. | Online banking authentication system using qr-code and mobile OTP | |
| Chen et al. | A secure RFID authentication protocol adopting error correction code | |
| US11494480B2 (en) | Authentication method | |
| Duc et al. | Enhancing Security of Class I Generation 2 RFID against Traceability and Cloning | |
| KR101875528B1 (ko) | 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법 | |
| Ma et al. | Design and Implementation of smart channel establishment schemes for mobile wallet services | |
| KR20150098955A (ko) | 암호화 시스템 및 그것의 암호 통신 방법 |