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 PDF

Info

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
Application number
ES03750705T
Other languages
English (en)
Inventor
Christian Gehrmann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of ES2279142T3 publication Critical patent/ES2279142T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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/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.
Campo de la invención
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.
Antecedentes de la invención
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.
Resumen de la invención
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.
Breve descripción de los dibujos
El anterior y otros aspectos de la invención se harán evidentes y se aclararán con las realizaciones descritas a continuación con referencia a los dibujos en los que:
- la figura 1 muestra un diagrama de flujo de 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.
Descripción detallada de las realizaciones preferidas
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.
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:
100
101
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:
102
Por lo tanto, suponiendo que la clave se elige de forma uniformemente aleatoria del espacio de claves K, la probabilidad anterior puede expresarse como:
103
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:
104
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.
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.
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.
ES03750705T 2002-10-24 2003-10-09 Codigo de autenticacion de mensajes basado en un codigo de correccion de errores. Expired - Lifetime ES2279142T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4200770A (en) * 1977-09-06 1980-04-29 Stanford University Cryptographic apparatus and method
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

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) 암호화 시스템 및 그것의 암호 통신 방법