ES2220679T3 - Sistema y metodo de autentificacion de mensajes. - Google Patents

Sistema y metodo de autentificacion de mensajes.

Info

Publication number
ES2220679T3
ES2220679T3 ES01309740T ES01309740T ES2220679T3 ES 2220679 T3 ES2220679 T3 ES 2220679T3 ES 01309740 T ES01309740 T ES 01309740T ES 01309740 T ES01309740 T ES 01309740T ES 2220679 T3 ES2220679 T3 ES 2220679T3
Authority
ES
Spain
Prior art keywords
message
function
compression
block
key
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
ES01309740T
Other languages
English (en)
Inventor
Sarvar Patel
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.)
Nokia of America Corp
Original Assignee
Lucent Technologies Inc
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 Lucent Technologies Inc filed Critical Lucent Technologies Inc
Application granted granted Critical
Publication of ES2220679T3 publication Critical patent/ES2220679T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/20Manipulating the length of blocks of bits, e.g. padding or block truncation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/30Compression, e.g. Merkle-Damgard construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Communication Control (AREA)

Abstract

Un método de tratar un mensaje para autenticación utilizando una función de compresión (90) y una función resumen anidada que incluye una función resumen interna (100) y una función resumen externa (102), por lo que dicha función resumen interna (100) produce un resultado para dicha función resumen externa (102), caracterizándose dicho método por: llevar a cabo una repetición única de dicha función de compresión (90) empleando una clave (K) y dicho mensaje (X) como entradas si el citado mensaje (X) cabe en un bloque de entrada de dicha función de compresión (90); y si dicho mensaje es mayor que el citado bloque de entrada de dicha función de compresión (90), proporcionar dicho mensaje (X) y una clave a dicha función resumen anidada para tratar el citado mensaje (X).

Description

Sistema y método de autenticación de mensajes.
Antecedentes del invento 1. Campo del invento
El presente invento se refiere a comunicaciones y, más específicamente, a la autenticación de mensajes.
2. Descripción de la técnica relacionada
La Fig. 1 representa un diagrama esquemático de un primero y un segundo sistemas inalámbricos de comunicaciones que proporcionan un servicio de comunicaciones inalámbricas a unidas inalámbricas (por ejemplo, las unidades inalámbricas 12a-c) que están situadas, respectivamente, en las regiones geográficas 14 y 16. Una central móvil (MSC) (por ejemplo, las MSC 20 y 24) es responsable de, entre otras cosas, establecer y mantener llamadas entre las unidades inalámbricas, llamadas entre una unidad inalámbrica y una unidad de telefonía fija (por ejemplo, la unidad 25 de telefonía fija), y/o conexiones entre una unidad inalámbrica y una red de datos en paquetes (PDN), tal como Internet. Como tal, la MSC interconecta las unidades inalámbricas de su región geográfica con una red pública de telefonía conmutada (PSTN) 28 y/o una red de datos en paquetes (PDN) 29. El área geográfica servida por la MSC se divide en áreas espacialmente diferentes denominadas "células". Como se ilustra en la Fig. 1, cada célula se representa esquemáticamente mediante un hexágono de un diseño en nido de abeja; sin embargo, en la práctica, cada célula tiene una forma irregular que depende de la topografía del terreno que la rodea.
Típicamente, cada célula contiene una estación base (por ejemplo, las estaciones base 22a-e y 26a-e) que comprende las radios y las antenas que la estación base utiliza para comunicarse con las unidades inalámbricas de esa célula. Las estaciones base comprenden, también, el equipo de transmisión que la estación base utiliza para comunicarse con la MSC del área geográfica. Por ejemplo, la MSC 20 está conectada a las estaciones base 22a-e del área geográfica 14 y una MSC 24 está conectada a las estaciones base 26a-e de la región geográfica 16. Dentro de una región geográfica, la MSC conmuta llamadas entre estaciones base en tiempo real a medida que la unidad inalámbrica se mueve entre células, en lo que se denomina transferencia de llamada. Dependiendo de la realización, un controlador de estación base (BSC) puede ser un controlador de estación base (BSC) separado (no mostrado) conectado a varias estaciones base o situado en cada estación base que administra los recursos de radio para las estaciones base y remite información al MSC.
Las MSC 20 y 24 utilizan una red 32 de señalización, tal como una red de señalización conforme a la norma identificada como TIA/EIA-41-D, titulada "Cellular Radiotelecommunications Intersystem Operations" (Operaciones entre sistemas de radiotelecomunicaciones celulares), de Diciembre de 1997 ("IS-41"), que permite el intercambio de información acerca de las unidades inalámbricas itinerantes dentro de las respectivas áreas geográficas 14 y 16. Por ejemplo, una unidad inalámbrica 12a es itinerante cuando la unidad inalámbrica 12a abandona el área geográfica 14 de la MSC 20 a la que fue asignada originalmente (por ejemplo, la MSC de origen). Para garantizar que una unidad inalámbrica itinerante puede recibir una llamada, la unidad inalámbrica itinerante 12a se registra con la MSC 24 en la que reside en ese momento (por ejemplo, la MSC visitada) notificando de su presencia a la MSC 24 visitada. Una vez que una unidad inalámbrica itinerante 12a es identificada por una MSC 24 visitada, la MSC 24 visitada envía una petición de registro a la MSC 20 de origen por la red 32 de señalización, y la MSC 20 de origen actualiza una base de datos 34, denominada registro de situaciones de origen (HLR) con la identificación de la MSC 24 visitada, proporcionando por tanto la situación de la unidad inalámbrica 12a itinerante a la MSC 20 de origen. Una vez autenticada la unidad inalámbrica itinerante, la MSC 20 de origen proporciona a la MSC 24 visitada un perfil de cliente. Al recibir el perfil de cliente, la MSC 24 visitada actualiza una base de datos 36, denominada registro de posiciones de visitas (VLR), para proporcionar las mismas características que la MSC 20 de origen. El HLR, el VLR y/o el centro de autenticación (AC) pueden estar situados conjuntamente en la MSC o puede accederse a ellos a distancia.
En el sistema universal de telecomunicaciones móviles (UMTS) y 3G IS-41, cuando una unidad inalámbrica realiza o recibe una llamada, es autenticada antes de que pueda continuar con la llamada. Tras ser autenticada, se activa una clave de integridad (IK) de 128 bits, que se generó utilizando una clave secreta, y que puede utilizarse para comprobar la integridad de un mensaje enviado entre la unidad inalámbrica y la autenticación del mensaje o del sistema.
El diseño de buenos esquemas de autenticación de mensajes es una de las áreas importantes del cifrado. El objetivo de los esquemas de autenticación de mensajes es, por una parte, transmitir de manera eficaz un mensaje a otra parte de tal modo que la parte receptora pueda determinar si el mensaje que recibe ha sido manipulado fraudulentamente o no. La Fig. 2 muestra como se realiza la autenticación de un mensaje con una unidad inalámbrica en un sistema inalámbrico de comunicaciones. El ajuste incluye dos partes, la unidad inalámbrica y el sistema inalámbrico de comunicaciones, que han coincidido en una clave secreta k. Se utilizan dos algoritmos: un algoritmo de firma S_{k} y un algoritmo de verificación V_{k}. Si la unidad inalámbrica quiere enviar un mensaje M al sistema inalámbrico de comunicaciones, entonces calcula en primer lugar una etiqueta o código de autenticación de mensaje (MAC), \mu = S_{k}(M), empleando el generador 50 de MAC. La unidad envía el par de mensaje y etiqueta (M, \mu) al sistema inalámbrico de comunicaciones y, al recibir el par (M, \mu), el sistema inalámbrico de comunicaciones calcula V_{k}(M, \mu), que devuelve 1 si el MAC es válido o 0 en caso contrario. En la Fig. 2 se muestra que el sistema inalámbrico de comunicaciones introduce el mensaje y la k en el generador 52 de MAC, que produce una etiqueta', y se lleva a cabo una comparación 54 entre la etiqueta (\mu) recibida desde la unidad inalámbrica y la etiqueta' generada en el sistema. Si son iguales, el mensaje es aceptado como válido; de otro modo, el mensaje es rechazado. Sin conocer la clave secreta k es prácticamente imposible que un adversario construya un mensaje y el MAC correspondiente que el algoritmo de verificación acepte como válidos.
El mismo esquema de autenticación de mensaje se realiza en la transmisión de mensajes desde el esquema inalámbrico de comunicaciones a la unidad inalámbrica. Por ejemplo, la Fig. 3 muestra como envía el sistema inalámbrico de comunicaciones un mensaje protegido a una unidad inalámbrica generando una etiqueta con un generador 56 de MAC que utiliza como entradas el mensaje y una clave secreta k. El sistema inalámbrico de comunicaciones envía un mensaje junto con la etiqueta a una unidad inalámbrica, que introduce el mensaje y la clave secreta k en un generador 58 de MAC, para generar una etiqueta'. La unidad inalámbrica hace una comparación 60 entre etiqueta' y la etiqueta recibida del sistema inalámbrico de comunicaciones. Si las etiquetas coinciden, el mensaje es aceptado como válido. Si no, el mensaje es rechazado como si hubiese sido alterado o como inválido.
La exigencia de seguridad para un código de autenticación de mensaje puede explicarse como sigue. Un adversario falsifica un MAC si, dada la posibilidad de consultar el MAC S_{k}, V_{k} en mensajes elegidos, donde k se mantiene secreto, el adversario puede dar con un par válido (M*, \mu*), tal que V_{k}(M*, \mu*) = 1, pero el mensaje M* no se introdujo nunca en S_{x}.
Un enfoque común para la autenticación de mensajes visto comúnmente en la práctica supone el uso de funciones resumen de cifrado. Una función resumen puede caracterizarse, típicamente, como una función que asocia entradas de una longitud a salidas de menor longitud. Además, es difícil encontrar dos entradas que se asocien con la misma salida. Estos esquemas de MAC basados en funciones resumen de cifrado son buenos porque utilizan bloques de construcción de cifrado rápidos y seguros. Típicamente, las funciones resumen de cifrado, F(x), son funciones públicas, carentes de clave y resistentes a las colisiones, que asocian entradas, x, de longitudes arbitrarias con salidas cortas. La expresión "resistencia a las colisiones" supone que no debe ser factible, desde el punto de vista del cálculo, encontrar dos mensajes, x_{1} y x_{2} tales que F(x_{1}) = F(x_{2}). La MD5, SHA-1 y RIPE-MD son funciones resumen de cifrado ampliamente utilizadas. Junto con la resistencia a las colisiones, las funciones resumen están diseñadas, usualmente, para tener otras propiedades, tanto con el fin de utilizar la función con otros fines como para incrementar la capacidad de resistencia a las colisiones.
La mayoría de las funciones resumen de cifrado como MD5 y SHA-1 utilizan una construcción repetida en la que el mensaje de entrada es tratado bloque por bloque. Como se muestra en la Fig. 4, al bloque de construcción básico se le denomina función de compresión, f, que es una función resumen que toma dos entradas de tamaño t y b y las asocia en una salida más corta, de longitud t. En MD5, la entrada de tamaño t tiene 128 bits de largo y la entrada de tamaño b tiene 512 bits de largo. En SHA-1, la entrada de tamaño t tiene 160 bits de largo y la entrada de tamaño b tiene 512 bits de largo. A la entrada de tamaño t se le denomina variable de encadenamiento y la entrada de tamaño b o carga útil o bloque se utiliza para tratar realmente el mensaje x, b bits cada vez. Como se muestra en la Fig. 5, la función resumen F(x) se forma entonces repitiendo la función de compresión f sobre el mensaje m utilizando h_{i} como variable de encadenamiento y x_{i} como carga útil, de acuerdo con los siguientes pasos:
1. Emplear un procedimiento apropiado para anexar la longitud del mensaje y rellenar para hacer que la entrada sea un múltiplo del tamaño b de bloque. La entrada puede fragmentarse en piezas de tamaño de bloque x = x_{1}....x_{n}.
2. h_{0} = IV, una constante fija
3. Para i=1 a n
4. h_{i} = f(h_{i}-1,x_{i})
5. Emitir h_{n} como F(x).
Por ejemplo, al utilizar SHA-1 como función resumen, cada llamada a la función resumen SHA-1 tiene un vector inicial de 160 bits (IV) y supone una carga útil o entrada de 512 bits que es asociada con una salida de 160 bits. El IV se establece como el IV definido en la norma para la función resumen SHA-1 conocida como la NIST FIPS PUB 180, "Secure Hash Standard" (Norma resumen segura), del National Institute of Standards and Technology, del Departamento de Comercio del Gobierno de los EE.UU, de Mayo de 1993.
Las funciones resumen de cifrado, por diseño, carecen de clave. Sin embargo, como la autenticación de mensajes requiere el uso de una clave secreta, se necesita un método de asignar una clave a la función resumen. Una forma de hacerlo es utilizar la clave secreta en lugar del IV fijo y conocido. Como se muestra en la Fig. 6, la clave k sustituye a la variable de encadenamiento en la función de compresión f (encadenarvariable,x1) para formar f_{k}(x1) = f(k,x1), donde x1 tiene un tamaño b de bloque. Se modifica la función resumen repetida F(IV, x) sustituyendo el IV fijo por la clave secreta k, para formar F_{k}(x) = F(k,x). La resistencia a las colisiones de una función con clave es distinta de la que tienen las que carecen de ella, porque el adversario no puede evaluar Fk(x) en ningún punto sin consultar al usuario. Esta exigencia es más débil que la exigencia de colisión estándar y, por tanto, diremos que la función F_{k}(x) es poco resistente a las colisiones.
Menezes, Oorschot, Vanstone, en Handbook of Applied Cryptography, 1996, CRC Press LLC, EE.UU.,
XP002198439, describen, en general, funciones resumen repetidas y funciones resumen con clave.
Para mejorar la seguridad de la función resumen de cifrado con clave, se desarrolló una función MAC anidada (NMAC) que se define como:
NMAC_{k} (x) = F_{k1} (F_{k2} (x)),
donde la función resumen de cifrado F es protegida primero con la clave secreta k_{2} en lugar de IV y el mensaje x es resumido repetidamente para obtener la salida de F_{k2}(x). M. Bellare, R. Canetti y H. Krawczyk, en Keying Hash Functions for Message Authentication (Protección con clave de funciones resumen para autenticación de mensajes), en Advances in Cryptology - Crypto 1996, en la 16^{th} Annual International Cryptology Conference, celebrada en Santa Bárbara, del 18 al 22 de Agosto de 1996, y en Proceedings of the Annual International Cryptology Conference (Crypto), Berlin, Springer, DE (18-08-1196), CONF 16, 1-15, describen las construcciones resumen anidadas NMAC y HMAC. Esta salida F_{k2}(x) es complementada entonces hasta alcanzar un tamaño de bloque de acuerdo con el esquema de relleno de F y, luego, se protege el resultado de F_{k2}(x) con la clave secreta k_{1} y se resume con una función resumen externa F, como se muestra en la Fig. 7. Así, la clave k de NMAC tiene dos partes k = (k_{1},k_{2}). El siguiente teorema acerca de la relación entre la seguridad de NMAC y la seguridad de la función resumen de cifrado subyacente, lo demuestran M. Bellare, R. Canetti y H. Krawczyk, en Keying Hash Functions for Message Authentication, antes citado.
Teorema 1: En t pasos y q consultas, si la función de compresión con clave, f, es un MAC seguro \in_{f} y la F resumen repetida protegida con clave es un \in_{F} poco resistente a colisiones, entonces la función NMAC es un MAC seguro (\in_{f}+ \in_{F}).
La construcción NMAC hace, al menos, dos llamadas a la función de compresión; la llamada interna a F_{k2}(x) tiene el mismo coste que la función resumen sin clave F(x). Así, la llamada externa a F_{k1} es una llamada extra más de las requeridas por la función resumen sin clave. La llamada a la función externa es, básicamente, una llamada a la función de compresión con clave f_{k1}, ya que la salida de tamaño 1 de F_{k2}(x) puede caber en la entrada de tamaño b a la función de compresión. Para x grande, consistente en muchos bloques, el coste de la llamada extra a la compresión externa no es significativo. Sin embargo, para mensajes x de pequeñas dimensiones, la función extra de compresión externa puede tener como consecuencia, en términos de resultado porcentual, una falta de eficacia significativamente elevada, cuando se la compara con la función resumen sin clave. La Tabla 1 muestra la falta de eficacia para x pequeños para la función resumen SHA-1. Se compara el número de llamadas para compresión requeridas por la función resumen subyacente y por NMAC para varios x pequeños, que crecen en incrementos de 30 octetos. La falta de eficacia de NMAC con respecto a la función resumen subyacente se indica, también, en la tabla.
TABLA 1 Comparación del número de llamadas a la compresión para mensajes cortos de diversos tamaños
1
Como puede verse, la penalización para los mensajes pequeños, puede ser elevada. En particular, para mensajes que quepan en un bloque, la penalización es del 100% debido a que en NMAC se requieren dos llamadas a la función de compresión en vez de una llamada en caso de la función resumen de cifrado subyacente.
HMAC es una variante práctica de NMAC para aquellas ejecuciones prácticas que no tengan acceso a la función de compresión f y que solamente puedan llamar a la función resumen de cifrado F con el mensaje. Para esas ejecuciones prácticas, no puede colocarse la clave en la variable de encadenamiento, y se llama a la función F con el IV fijo y conocido utilizado en la función de compresión inicial. La función HMAC se define como:
HMAC_{k} (x)= F \left(\upbar{k}\oplus orelleno, F\left(\upbar{k}\oplus irelleno, x\right)\right)
donde se utiliza una clave k y es el relleno de \overline{k} con ceros para completar el tamaño de bloque b de la función resumen repetida. El valor \overline{k} es hecho pasar por una puerta O exclusiva a modo de bits con orelleno y el resultado se concatena al mensaje x. Se llama a la función resumen F con todo el mensaje concatenado. Como se muestra en la Fig. 8, tras la primera repetición de la función de compresión f, se produce la clave k2 como k2= f(\overline{k} \oplus irelleno). Una vez completada la función resumen F, se produce el valor resultante F(\overline{k}\oplus irelleno, X). La función resumen F es llamada nuevamente con un mensaje que comprende el valor de \overline{k} \oplus orelleno, una operación O exclusiva a modo de bits con \overline{k} y orelleno. Después de la primera repetición dentro de la segunda llamada de la función resumen F, se obtiene la clave k1 a partir de la función de compresión f(IV, \overline{k} \oplus orelleno). Los valores irelleno y orelleno son constantes fijas, como los describen M. Bellare, R. Canetti y H. Krawczyk, en Keying Hash Functions for Message Authentication, en Proc. CRYPTO 96, Lecture Notes in Computer Science, Springer-Verlag, 1996. La segunda repetición dentro de la segunda llamada a la función resumen utiliza la función de compresión f(k1, F(\overline{k} \oplus irelleno, X)) para producir la función HMAC F(\overline{k} \oplus orelleno, F(\overline{k} \oplus irelleno, x)).
Definiendo k_{1}= f(\overline{k} \oplus orelleno) y k_{2}= f(\overline{k} \oplus irelleno), HMAC_{k}(x) se convierte en HMAC_{(k1,k2)}(x). HMAC es el estándar de Internet para autenticación de mensajes. Como se muestra, la prueba de seguridad de HMAC está relacionada con NMAC y supone que la función resumen de cifrado subyacente es (poco) resistente a las colisiones y que la función de compresión subyacente es un MAC seguro cuando ambos están protegidos adecuadamente mediante clave. HMAC es eficiente para mensajes largos; sin embargo, para mensajes cortos, la construcción anidada tiene como consecuencia una falta de eficacia significativa. Por ejemplo, para asignar un MAC a un mensaje más corto que un bloque, cuando no se proporciona acceso a la función de compresión, HMAC requiere cuatro llamadas a la función de compresión. Cuando se permite el acceso a la función de compresión, k1 y k2 pueden calcularse previamente e insertarse en la variable de encadenamiento de la función de compresión, exigiendo, por tanto, dos llamadas a la función de compresión. Esta falta de eficacia puede ser particularmente elevada para algunas aplicaciones, como la autenticación de mensajes de señalización, cuando todos los mensajes individuales pueden caber en uno o dos bloques. Asimismo, es bien sabido que, para el tráfico TCP/IP, un gran número de paquetes (por ejemplo, el acuse de recibo) tienen tamaños de alrededor de 40 octetos, que caben en un bloque de la mayor parte de los resúmenes de cifrado. Se propone una mejora que permita que tanto los mensajes cortos como los largos sean autenticados en forma más eficiente que HMAC, al tiempo que, también, se proporcionan pruebas de seguridad.
Sumario del invento
Un método y un sistema de acuerdo con el invento se establecen en las reivindicaciones independientes. Sus formas preferidas se establecen en las reivindicaciones dependientes.
Breve descripción de los dibujos
Otros aspectos y ventajas del presente invento pueden resultar evidentes a partir de la lectura de la siguiente descripción detallada y por referencia a los dibujos, en los que:
la Fig. 1 muestra un diagrama general de sistemas inalámbricos de comunicaciones para los que puede utilizarse el sistema de generación del MAC de acuerdo con los principios del presente invento;
la Fig. 2 es un diagrama general que ilustra cómo se utiliza un MAC para autenticar mensajes enviados desde una unidad inalámbrica a un sistema inalámbrico de comunicaciones;
la Fig. 3 es un diagrama general que ilustra como se utiliza un MAC para autenticar mensajes enviados desde un sistema inalámbrico de comunicaciones a una unidad inalámbrica;
la Fig. 4 es un diagrama de bloques de una función de compresión f;
la Fig. 5 es un diagrama de bloques que ilustra la construcción repetida de una función resumen F dada una función de compresión f;
la Fig. 6 es un diagrama de bloques que ilustra una función resumen con clave;
la Fig. 7 es un diagrama de bloques que ilustra una función resumen anidada (NMAC);
la Fig. 8 es un diagrama de bloques que ilustra una variante de una función NMAC, conocida como HMAC;
la Fig. 9 es un diagrama de bloques de un caso de bloque único en el sistema de autenticación de mensajes de acuerdo con los principios del presente invento;
la Fig. 10 muestra una diagrama de bloques de un caso de bloques múltiples en el sistema de autenticación de mensajes de acuerdo con los principios del presente invento;
las Figs. 11a y 11b ilustran diagramas de bloques de una realización ENMAC del sistema de autenticación de mensajes de acuerdo con los principios del presente invento;
la Fig. 12 representa un diagrama de proceso de una realización ENMAC del sistema de autenticación de mensajes de acuerdo con los principios del presente invento;
las Figs. 13a y 13b muestran diagramas de bloques de una realización EHMAC del sistema de autenticación de mensajes de acuerdo con los principios del presente invento;
las Figs. 14a y 14b ilustran diagramas de bloques de una realización SMAC del sistema de autenticación de mensajes de acuerdo con los principios del presente invento; y
la Fig. 15 muestra un diagrama de proceso para una realización SMAC del sistema de autenticación de mensajes de acuerdo con los principios del presente invento.
Descripción detallada
En lo que sigue se describen realizaciones ilustrativas de un sistema y de un método de construcción de MAC de acuerdo con los principios del presente invento, para tratar mensajes de longitud arbitraria, que proporcionan una eficacia mejorada. En la descripción que sigue, la expresión "función resumen" abarca una función de compresión f y una función resumen repetida F. Una función resumen puede carecer de clave o tenerla, por lo que F_{k} designa una función resumen repetida con clave y f_{k} designa una función de compresión con clave. Recuérdese que f_{k}(x) es la función de compresión cuyo tamaño de bloque de entrada es de b bits y cuyo tamaño de salida es t bits, y el tamaño de la variable de encadenamiento y, por tanto, el tamaño de la clave es, también, de t bits. De acuerdo con un aspecto del presente invento, dependiendo del tamaño del mensaje, el generador de MAC utiliza diferentes disposiciones de función resumen para generar el MAC. Por ejemplo, el generador de MAC podría realizar una sola repetición de una función de compresión con clave como función resumen si el mensaje x (y cualesquiera bits adicionales requeridos) cabe en un bloque de entrada de la función de compresión f. Para mensajes que no caben en el bloque de entrada, el generador de MAC utiliza funciones resumen anidadas. Como se muestra en la Fig. 9, un mensaje x es introducido en la función de compresión f con cualquier relleno complementario requerido, así como cualesquiera campos de longitud de mensaje, campos indicadores de bloque u otros campos anexados al mensaje x. Si el mensaje x (y cualesquiera bits adicionales requeridos) cabe en el bloque de entrada para la función de compresión, se realiza una única repetición de la función f 90 de compresión con clave empleando el mensaje x y una clave k para producir un MAC f_{k}(x) para el mensaje x.
De otro modo, como se muestra en la Fig. 10, si el mensaje x (y cualesquiera bits adicionales requeridos) no cabe en un bloque de entrada de la función de compresión f, el bloque de mensaje x es dividido en partes, tales como una parte 1 y una parte 2. Las partes del bloque de mensaje pueden ser conjuntos, solapados o no, de los bits que constituyen el mensaje x. De acuerdo con otro aspecto del presente invento, una primera parte es utilizada en la función resumen interna F y una segunda parte se utiliza en la función resumen externa, que se muestra como función de compresión f_{cv1}. Por ejemplo, parte2 es proporcionada a la función resumen interna F cuando se realizan (si son necesarias) llamadas o repeticiones de la función de compresión 100a a 100n con bloques parte2_{1} a parte2_{n} de parte2, incluyendo cualesquiera campos o rellenos, cuando n\geq1. La llamada o repetición inicial 100a a la función de compresión f utiliza una variable de encadenamiento CV2 que podría ser una clave o una clave derivada de una clave o el valor inicial estándar para la función resumen F, dependiendo de la realización. El resultado de la función resumen interna Fcv2(parte2) es proporcionado a la función resumen externa o de compresión f(102) junto con parte1 del mensaje x completo y una variable de encadenamiento CV1. La variable de encadenamiento CV1 podría ser una clave o una clave derivada de una clave o el valor inicial estándar IV para la función resumen F, dependiendo de la realización. El valor resultante fcv1(parte1,Fcv2(parte2))parte1) puede emplearse para generar el MAC utilizado en la autenticación del mensaje.
La descripción genérica antes expuesta puede utilizarse para proporcionar un comportamiento mejorado con respecto a técnicas anteriores de generación de MAC. Por ejemplo, para conseguir una eficacia mejorada con respecto a NMAC para mensajes cortos y, también, una eficacia algo mayor para mensajes más grandes, se proporciona la siguiente construcción de MAC. Recuérdese que f_{k}(x) es la función de compresión cuyo tamaño del bloque de entrada es de b bits y cuyo tamaño de salida es de t bits, siendo el tamaño de la variable de encadenamiento y, por tanto, el tamaño de la clave, también de t bits. Como se muestra en las Figs. 11a y 11b, una realización particular de la construcción para un MAC de acuerdo con los principios de presente invento, es como sigue:
\newpage
ENMAC_{k}(x) =f_{k1}(x,relleno,1) si |x| \leq b-2 bits
=f_{k1}(x_{pref},F_{k2}(x_{sufi}),0) si no,
donde, en el primer caso, los primeros b-2 bits del bloque se utilizan para contener el mensaje x. Si el mensaje x no llena los primeros b-2 bits, entones se requiere un relleno y el bloque restante, excepto el último bit, se llena con un 1 obligatorio seguido por ceros (posiblemente, ninguno). En caso de que el mensaje tenga b-2 bits de longitud, el bit b-1 se pone a 1. En esta realización, el último bit del bloque indica si se utiliza una sola llamada a la compresión para ENMAC. El último bit del bloque se pone a 1 en el caso de llamada única a la compresión y se pone a 0 cuando se requieren múltiples llamadas o repeticiones de la función de compresión f. En el segundo caso, cuando las cosas no quepan en un bloque, la cadena x se fragmenta en dos partes o segmentos x_{pref} y x_{sufi}, donde
x_{pref} = x_{1}...x_{b-t-1}, y
x_{sufi} = x_{b-t}...x_{|x|}
En primer lugar, se resume x_{sufi} utilizando un valor k2 de clave para producir el resultado de t bits de F_{k2}(x_{sufi}). Luego, se realiza una llamada a la compresión externa utilizando un valor k1 de clave, donde los primeros b-t-1 bits se ponen a x_{pref} y a los siguientes t bits se les da el valor del resultado F_{k2}(x_{sufi}), y el último bit se pone a cero.
La construcción ENMAC descrita en lo que antecede puede utilizar una función resumen SHA-1 como función resumen de cifrado subyacente, tal como se describe en lo que sigue con referencia en particular a la Fig. 12. Como se muestra en el bloque 110, la circuitería de tratamiento que ejecuta la construcción ENMAC determina si la longitud de x, |x|, es menor o igual que 510 bits. Si lo es, la circuitería de tratamiento avanza al paso 112 para formar la carga útil de 512 bits de f_{k1}() cargando x en los primeros 510 bits. Luego, se anexa un "1" a x en el bloque 114 y tantos ceros como sea necesario (posiblemente, ninguno), para rellenar los 511 bits, en el bloque 116. Si |x| es menor de 510 bits, entonces de rellenará con ceros más allá del 1 o, si |x| es igual a 510 bits, entonces no se rellena con ceros y solamente se anexa un 1 en la posición del bit 511, en el bloque 114. En el bloque 118 se pone a uno el último bit, el 512, (bit indicador de bloque) para indicar que el mensaje cabe en un solo bloque. En el bloque 120 se ejecuta la función de compresión con clave f_{k1}(x,relleno,1) utilizando la clave k1 como variable de encadenamiento de 160 bits y el mensaje x, el o los bits de relleno y el bit indicador de bloque como bloque de entrada o carga útil de 512 bits. Subsiguientemente, se emite como salida el resultado f_{k1}(x,relleno,1) y se utiliza para proporcionar el MAC en el bloque 122.
Si, en el bloque 110, el mensaje x es mayor que 510 bits, la circuitería de tratamiento avanza al bloque 124, donde el mensaje es dividido en dos partes x_{pref} y x_{sufi}, siendo x_{pref} = x_{1}...x_{351} y x_{sufi} = x_{352}...x_{|x|}. Luego, en el bloque 126, la circuitería de tratamiento ejecuta la función resumen con clave F_{k2} utilizando la clave k2 y la parte de mensaje x_{sufi} con cualesquiera bit o bits adicionales de relleno y/o campo o campos de bits como carga útil para conseguir el resultado de 160 bits de F_{k2}(x_{sufi}). En el bloque 128, los primeros 351 bits de la carga útil de la función de compresión externa f_{k1} se ajustan para que sean x_{pref} y, en el bloque 130, los siguientes 160 bits de la carga útil se ajustan para que sean el resultado de F_{k2}(x_{sufi}) calculado en el bloque 126. El último bit, el 512, de la carga útil se pone a 0 en el bloque 132. Finalmente, en el bloque 134, se aplica la función de compresión externa con clave f_{k1} a la carga útil de 512 bits formada en los bloques 128 a 132 y el resultado f_{k1}(x_{pref},F_{k2}(x_{sufi}),0) se emite como salida en el bloque 136 para producir un MAC.
La siguiente Tabla 2 compara el número de llamadas de compresión requeridas por la función resumen subyacente SHA-1 y por ENMAC para mensajes cortos de tamaños variables en incrementos de 30 octetos. Existe una diferencia significativa entre la tabla 2 y la anterior tabla 1 que comparaba NMAC simples. Para muchos de los tamaños cortos, NMAC tiene la misma eficacia que la función resumen subyacente. Para mensajes mayores, la eficacia de NMAC, ENMAC y la función resumen subyacente no diferirá significativamente de uno a otro. Para mensajes con un tamaño de 480 bits, la entrada en la Tabla 2 indica, sorprendentemente, que el ENMAC es más eficaz que la función resumen subyacente. Esta anomalía se presenta porque la función SHA-1 subyacente reserva 64 bits para la información de tamaño mientras que ENMAC sólo reserva 2 bits para mensajes menores de 510 bits. Así, el ahorro que se consigue por el uso de ENMAC para mensajes que caben en uno o en unos pocos bloques, es significativo.
TABLA 2 Comparación del número de llamadas a la compresión para mensajes cortos de diversos tamaños
2
Si se utilizase una clave k_{3} diferente para asignar MAC a mensajes que caben en un bloque y se utilizase la clave k =
(k_{1},k_{2}) para asignar MAC a mensajes mayores que usan NMAC, entonces se podría argumentar que el sistema sería seguro. En esencia, esto es lo que se hace, pero en vez de utilizar una clave diferente para crear un MAC diferente, el bit de cola se pone a 1 si el mensaje cabe en un bloque y, en otro caso, se pone a 0. En segundo lugar, mientras que NMAC complementa la carga útil de la llamada a la compresión externa con ceros, ENMAC sitúa parte del mensaje en la llamada externa.
Los resultados de la seguridad de ENMAC son similares a los de NMAC y se expondrán y demostrarán en lo que sigue con fines pedagógicos.
Teorema 2. En t pasos y q consultas, si la función de compresión con clave f es un MAC seguro \varepsilon_{f}, y la F resumen repetida con clave es \varepsilon_{F} poco resistente a las colisiones, entonces la función ENMAC es un MAC seguro (\varepsilon_{f} + \varepsilon_{F}).
Prueba: Supongamos que un adversario A_{E} tiene éxito contra ENMAC con \varepsilon_{E} probabilidades suponiendo t pasos de tiempo y q consultas elegidas adaptablemente a la función ENMAC. Este adversario es utilizado para construir otro adversario A_{f} que falsificará un MAC asociado con la función de compresión con clave en un mensaje sobre el que, previamente, no se realizaron consultas. Esta probabilidad de romper el MAC es limitada en términos de \varepsilon_{E} y \varepsilon_{F}, la mejor probabilidad de que un adversario encuentre una colisión en la función resumen F en un tiempo t y q consultas. La probabilidad de romper el MAC de esta manera particular, empleando A_{E}, ha de ser menor que la mejor probabilidad de romper el MAC de cualquier forma, \varepsilon_{f}. Esto puede aprovecharse para imponer un límite sobre \varepsilon_{E}. El algoritmo A_{f} utilizado para falsificar el MAC de compresión con clave, se establece en lo que sigue.
Eligiendo k_{2} al azar
3
Supongamos \varepsilon_{E} = \varepsilon_{E1} + \varepsilon_{E}, donde \varepsilon_{E1} es la probabilidad de que ENMAC sea atacado y el mensaje ENMAC falsificado por A_{E}, tiene un tamaño de, aproximadamente, un bloque o, para ser precisos, menor que b-2 bits. Y supongamos que E_{+} sea el evento y \varepsilon_{E+} sea la probabilidad de que sea atacado ENMAC y el mensaje ENMAC falsificado por A_{E} tiene un tamaño mayor que un bloque. Además, \varepsilon_{E+} = \varepsilon_{E+pref\neq} + \varepsilon_{E+pref=} donde \varepsilon_{E+pref\neq} es la probabilidad de que el ENMAC sea falsificado con un mensaje multibloque y el prefijo del mensaje no sea igual al prefijo de ninguno de los mensajes previamente consultados por A_{E}. Y \varepsilon_{E+pref=} es la probabilidad de que el ENMAC sea falsificado con un mensaje multibloque y el prefijo del mensaje sea igual al prefijo de alguno de los mensajes previamente consultados por A_{E}. En este caso, el sufijo del mensaje falsificado ha de ser diferente del sufijo de los mensajes que tengan el mismo prefijo.
4
La ecuación 1 rompe la probabilidad de falsificar un nuevo MAC de f en la probabilidad de falsificar un nuevo MAC de f mediante falsificación de un ENMAC MAC, en un solo bloque o en múltiples bloques. La probabilidad de romper f rompiendo un ENMAC de múltiples bloques se rompe en la ecuación 2 en el caso de que ningún prefijo sea igual a otro prefijo en todos los mensajes consultados y en el caso de que se encuentre algún prefijo que sea igual entre los mensajes consultados. En la ecuación 3, la probabilidad de que el MAC de f sea falsificado mediante E_{+,pref=} se iguala al caso de que ocurra la probabilidad de E_{+,pref=} y no ocurran colisiones en el resumen del sufijo entre los mensajes con los mismos prefijos. La ecuación 4 se ha obtenido escribiendo de nuevo la ecuación 3, utilizando la ley de DeMorgan. En la ecuación 6, la probabilidad de colisión entre el conjunto con el mismo prefijo es reemplazada por la probabilidad de colisión con todas las q peticiones. La ecuación 9 es el resultado deseado de que la probabilidad de falsificar ENMAC, \varepsilon_{E} sea menor que \varepsilon_{f}, la probabilidad de falsificar el MAC más \varepsilon_{F}, la probabilidad de encontrar una colisión.
Como, en la práctica, los datos se tratan, con frecuencia, en octetos, puede ser apropiado llevar a cabo el caso de bloque único cuando la longitud del mensaje x sea menor que b-8 bits, en lugar de los b-2 bits antes especificados. En el caso de ENMAC de bloques múltiples, la formación de x_{sufi}, que comienza en un límite que no es un vocablo, puede originar la realineación de todos los vocablos en x_{sufi}. Esto puede evitarse utilizando una variante diferente de ENMAC como sigue, empleando con fines prácticos dimensiones de octetos en vez de bits.
ENMAC_{k}(x) =f_{k1}(x,relleno,1) si |x|<=504 bits
=f_{k1}(F_{k2}(x_{pref}),x_{sufi},0) si no,
donde para SHA-1 como función resumen de cifrado subyacente f,
x_{pref}=x_{1}...x_{|x|-344}, y
x_{sufi}=x_{|x|-343}...x_{|x|}.
Para mensajes con una longitud de hasta 63 octetos (504 bits) y además de cualquier relleno adicional de un 1 seguido por ceros para completar el mensaje hasta 504 bits, el último octeto se reserva para el bloque indicador o "X0000001", donde un uno indica un mensaje de bloque único y la X puede ser un "1" a continuación de un mensaje de 504 bits sin relleno. Para mensajes sin relleno de menos de 504 bits, la X es un "0". Para mensajes mayores que 504 bits, el mensaje es dividido en partes x_{pref} y x_{sufi}. Cuando la longitud de x_{sufi} es de 43 octetos (344 bits) y la longitud de x_{pref}=longitud del mensaje-344 bits.
Además de la o de las realizaciones descritas en lo que antecede, el sistema de autenticación de mensajes de acuerdo con los principios del presente invento puede omitir y/o añadir parámetros de entrada y/o funciones de compresión y/o funciones resumen u otras operaciones, valores de clave y/o utilizar variaciones o partes del sistema descrito. Por ejemplo, las Figs. 13a y 13b muestran una realización del sistema de autenticación de mensajes utilizado como sistema HMAC mejorado en la forma siguiente.
EHMAC_{k}(x)=F(k \oplus orelleno,x,1) si|x|<=b-a-1-otros campos
= F(k \oplus orelleno,x_{pref}, F(k \oplus irelleno,x_{sufi}),0) si no.
En el primer caso de la Fig. 13a, el mensaje x cabe en el bloque único. Esto significa que el mensaje x tiene que ser menor que b-1-otros campos, donde "otros campos" puede incluir algunos bits debido a los esquemas de relleno y/o aumento de longitud de la función resumen F. Suponiendo que x es lo bastante pequeño, entonces se forma una entrada mayor cuya primera parte es k \oplus orelleno, seguido por x que, a su vez, va seguido por un bit puesto a 1. Este mensaje mayor se introduce en la función resumen subyacente F. Mirando dentro de F, se ve que primero se crea una clave k1 llamando a la función de compresión f(k \oplus orelleno), donde k puede tener que ser rellenada hasta la longitud apropiada. El resultado se utiliza como variable de encadenamiento para la siguiente llamada a la función de compresión cuya carga útil es (x,1) complementada y/o aumentada en longitud de acuerdo con las especificaciones de la función resumen F.
En la Fig. 13b, en la que el mensaje x junto con los campos adicionales requeridos no cabrá en un bloque, se rompe la cadena x en dos partes o segmentos x_{pref} y x_{sufi}, donde
x_{pref} = x_{1}...x_{b-t-1-otros}, y
x_{sufi} resto de x
En primer lugar, en una función resumen interna 130, se realiza una operación O-exclusiva a modo de bits entre la clave k e irelleno para producir k2, que se utiliza como variable de encadenamiento junto con el bloque de entrada x_{sufi1}. Se llama a la función f de compresión hasta que el bloque x_{sufin} es introducido en la última función de compresión con cualquier relleno complementario, campos de longitud añadida u otros campos para producir el resultado de la función resumen para F(k \oplus irelleno,x_{sufi}) donde k puede tener que ser complementado hasta la longitud apropiada. En una función resumen externa 132, la clave k1 se determina llamando a una función de compresión 134 con el valor IV como variable de encadenamiento y k \oplus orelleno como entrada. El valor k1 se utiliza como variable de encadenamiento para una función de compresión 136 con la entrada ajustada a x_{pref} antepuesta a F(k \oplus irelleno,x_{sufi}), y anexado con un cero. El resultado F(k \oplus orelleno,x_{pref},F(k \oplus irelleno,x_{sufi}),0) puede utilizarse para proporcionar el MAC.
Las Figs. 14a y 14b ilustran todavía otra realización del sistema de autenticación de mensajes utilizado como sistema SMAC, como se describe en lo que sigue en el contexto de un ejemplo específico de ejecución práctica en términos de octetos.
SMAC(x) =f_{K}(x,relleno,1) si |x|<=63 octetos
=f_{K}(F(x_{prefijo}),x_{sufijo},0) si |x|>63 octetos
x_{pref}:octetos x_{1}...x_{|x|-43}
x_{sufi}:octetos x_{|x|-42}...x_{|x|}
Como con las otras realizaciones, SMAC comprende dos casos: el caso de bloque único (<=63 octetos) de la Fig. 14a y el caso de bloques múltiples (>63 octetos) de la Fig. 14b. En ambos casos, se realiza una llamada a una función de compresión con clave f, tal como una función SHA. En el caso de bloque único no se requieren llamadas a otras funciones. Sin embargo, en el caso de bloques múltiples, se aplica una función resumen sin clave F 140, tal como la SHA1_HASH estándar, a la parte de comienzo del mensaje x_{pref}. Luego, el resultado del resumen y el mensaje restante se ponen en un bloque de entrada o de carga útil y se realiza una llamada a una función de comparación con clave f 142. Más detalles de la carga de la función de compresión f SHA-1 se muestran en las siguientes Tablas 3 y 4.
Como se muestra, el último bit, el 512, de la función de compresión sha1 es utilizado como "bit indicador de bloque único" y se pone a 1 en el caso de un bloque único y a 0 en el caso de bloques múltiples. Como el mensaje es tratado en múltiples octetos en esta realización, no puede utilizarse ninguno de los restantes bits del último octeto para tratar el mensaje. De aquí que se reserve el último octeto (el 64) de la función de compresión. En el caso de bloques múltiples, también se ponen a cero los bits 505-511, como se muestra en la Tabla 4. Para el caso de bloque único, se ponen a cero los bits 506-511; sin embargo, el bit 505 se utiliza como bit extra de relleno cuya función resultará evidente una vez que se explique el esquema de relleno para complementar utilizado en el caso de bloque único.
Los mensajes que llenen parcialmente un bloque requerirán que se aplique un método de relleno. El caso de bloques múltiples no requiere un método de relleno para completar la función de compresión, ya que el bloque está totalmente lleno, como se muestra en la Tabla 4. Sin embargo, la función SHA1_HASH no utiliza su propio relleno cuando se resume x_{pref}. Para completar el relleno de mensajes en el caso de bloque único, se anexa un 1 al mensaje y, luego, se anexan los ceros necesarios, posiblemente ninguno, hasta que se rellenen los restantes bits del bloque o, más precisamente, hasta que se llene el bit 505. Como ejemplo, en el caso especial de que el mensaje de bloque único tenga una longitud de 63 octetos o 504 bits, se añade un 1 en el bit 505. Los restantes bits 506-512 se rellenan como se ha descrito previamente.
En el caso de bloques múltiples, la función resumen F 140 se aplica a los bloques x_{pref1} a x_{prefn} a todos salvo los últimos 43 octetos del mensaje, proporcionando como salida un condensado de 20 octetos. Los últimos 43 octetos no son tratados en la función resumen F, de modo que pueden ser tratados por la función de compresión f 142. La razón de que sean 43 octetos es que de los 64 octetos disponibles, los primeros 20 octetos se utilizarán para cargar el condensado y el último octeto se reserva especialmente, como se muestra en la Tabla 4, para la función resumen SHA-1 y la función de compresión SHA-1.
TABLA 3 Caso de bloque único - Carga de función de compresión sha_1
5
TABLA 4 Caso de bloques múltiples - Carga de la función de compresión sha_1
Y_{1}...Y_{20}=SHA-HASH(x_{1}...x_{|x|-43})
6
La Fig. 15 muestra un diagrama de proceso para la construcción de SMAC. Inicialmente, la clave es sometida a una operación O-exclusiva con el IV y es cargada en la variable de encadenamiento de la función de compresión sha1, como se muestra en el bloque 148. En el bloque 150, la circuitería de tratamiento realiza una determinación para ver si |x|>63 octetos. Si no lo es, la circuitería de tratamiento pasa al caso de bloque único, en el que el mensaje x es cargado en el lado izquierdo del bloque de 512 bits de la función de compresión f, en el bloque 152. En el bloque 154, la circuitería de tratamiento anexa un "1" en el siguiente bit. En el bloque 156 se rellena el resto del bloque con ceros hasta el último bit, el 512, que es puesto a 1 en el bloque 158. En el bloque 160, se llama a la función de compresión f utilizando la variable de encadenamiento (K XOR IV) y la carga útil de los bloques 152-158. En el bloque 162 se devuelve el MAC de 20 octetos.
En el bloque 150, si |x|>63 octetos, la circuitería de tratamiento pasa al caso de bloques múltiples. En el bloque 164, el mensaje x es dividido en dos piezas: x_{pref} con los octetos x_{1}....x_{|x|-43} y x_{sufi}: octetos x_{|x|-42}....x_{|x|}. En el bloque 166, se llama a la función SHA1_HASH con x_{pref} y se obtiene un resultado de 20 octetos. En el bloque 168, se carga el resultado de 20 octetos en el lado izquierdo del bloque de 64 octetos de la función de compresión sha1 y se añade x_{sufi} a los octetos 21 a 63. En el bloque 170 se pone a 0 el último octeto, el 64. Finalmente, en el bloque 172 se llama a la función de compresión utilizando la variable de encadenamiento calculada inicialmente (K XOR IV) y la carga útil procedente de los bloques 168 y 170. En el bloque 162 se devuelve el MAC de 20 octetos.
SMAC es más parecido a NMAC que HMAC, por lo que lo compararemos a NMAC en vez de a HMAC. NMAC tiene una llamada interna a la función resumen F y una llamada externa a la función de compresión f. SMAC hace lo mismo para mensajes mayores de 63 octetos, pero se salta la llamada a la función resumen para mensajes más cortos. Para mensajes más largos, SMAC trata alguna parte del mensaje en la llamada externa a la función de compresión, reduciendo así el texto tratado por la llamada a la función resumen interna. NMAC no hace esto, sino que llena el resto de la carga útil de llamadas externas a la función de compresión con ceros. En NMAC, la función resumen interna tiene clave, mientras que en SMAC la llamada interna no tiene clave. La llamada interna de SMAC puede tener clave pero, por eficacia, en esta realización no se actúa así. La seguridad no se ve afectada fundamentalmente porque no se cree factible encontrar una colisión incluso en la función SHA1_HASH sin clave.
En lo que sigue se facilita el código que podría utilizarse para ejecutar el SMAC.
7
8
El sistema MAC se ha descrito utilizándolo con funciones resumen o de compresión particulares, tales como SHA-1, pero pueden utilizarse otras funciones resumen o funciones de cifrado relacionadas, así como funciones adicionales o diferentes. Además, se han descrito valores de octeto o de bit particulares para los mensajes, las cargas útiles, las variables de encadenamiento y los valores de clave pero, dependiendo de las realizaciones, estos números pueden cambiar. Además, los valores de clave pueden consistir en una clave, derivada de una clave o de una o más partes de la misma. Debe comprenderse que pueden emplearse notaciones, referencias y caracterizaciones diferentes de los diversos valores, entradas y bloques de arquitectura. Por ejemplo, se utilizan las expresiones "función de compresión f" y "función resumen F" cuando la función resumen F repetida se ha construido utilizando funciones de compresión f repetitivas o encadenadas. Ha de entenderse que una función de compresión es, también, una función resumen.
En realizaciones alternativas, la funcionalidad descrita para el sistema de autenticación de mensajes puede conseguirse con circuitería de tratamiento en un centro de autenticación de origen, registro de situaciones de origen (HLR), un MSC de origen, un centro de autenticación visitante, un registro de situaciones de visitas (VLR) y/o en un MSC visitante. Además, el sistema de autenticación de mensajes y partes del mismo pueden incorporarse en un unidad inalámbrica, una estación base, un controlador de estación base, MSC, VLR,HLR u otro subsistema de un sistema inalámbrico de comunicaciones. Dependiendo de la realización, el MAC puede ser enviado en asociación con el mensaje, y el MAC se compara y/o verifica con un MAC generado en el extremo de recepción. Una funcionalidad adicional puede alterar o transformar el MAC antes de que sea enviado en asociación con el mensaje y la misma funcionalidad puede ejecutarse sobre el MAC generado en el extremo de recepción para comparación y/o verificación (autenticación de mensaje). Finalmente, el MAC podría ser enviado y la funcionalidad adicional alterar o transformar el MAC recibido y el MAC generado en el extremo de recepción para llevar a cabo la autenticación del mensaje. Un ejemplo de funcionalidad adicional podría ser la utilización de los 32 bits menos significativos del MAC para cualesquiera comparaciones o funciones de verificación al realizar la autenticación del mensaje. Como tal, el MAC y/o el MAC alterado o transformado puede denominarse MAC o etiqueta.
Además, aunque el sistema de autenticación de mensajes se describe en el contexto de un sistema inalámbrico de comunicaciones, el sistema de autenticación de mensajes puede ser utilizado para verificar la integridad de un mensaje de comunicaciones, o autenticarlo, enviado desde un punto emisor a un punto receptor por cualquier otra red o medio de comunicaciones. Debe comprenderse que el sistema y sus partes así como partes de la arquitectura descrita, pueden llevarse a la práctica o integrarse con circuitería de tratamiento en la unidad o en distintos lugares del sistema de comunicaciones, o en circuitos integrados específicos de la aplicación, circuitería de tratamiento activada por software, dispositivos lógicos programables, microprogramas, equipos físicos u otras disposiciones de componentes discretos, como lo entenderá un experto normal en la técnica con el beneficio de esta exposición. Lo que se ha descrito es únicamente ilustrativo de la aplicación de los principios del presente invento. Los expertos en la técnica reconocerán fácilmente que estas y otras diversas modificaciones, disposiciones y métodos pueden llevarse a cabo con relación al presente invento sin seguir estrictamente las aplicaciones ilustrativas representadas y descritas en esta memoria y sin salirse del alcance del presente invento, tal y como se reivindica.

Claims (7)

1. Un método de tratar un mensaje para autenticación utilizando una función de compresión (90) y una función resumen anidada que incluye una función resumen interna (100) y una función resumen externa (102), por lo que dicha función resumen interna (100) produce un resultado para dicha función resumen externa (102), caracterizándose dicho método por:
llevar a cabo una repetición única de dicha función de compresión (90) empleando una clave (K) y dicho mensaje (X) como entradas si el citado mensaje (X) cabe en un bloque de entrada de dicha función de compresión (90); y
si dicho mensaje es mayor que el citado bloque de entrada de dicha función de compresión (90), proporcionar dicho mensaje (X) y una clave a dicha función resumen anidada para tratar el citado mensaje (X).
2. El método de la reivindicación 1, que incluye las operaciones de:
ejecutar una función resumen como dicha función resumen interna (100) empleando una primera parte (parte 2) de dicho mensaje como entrada para conseguir dicho resultado; y
ejecutar una función resumen con clave (102) como dicha otra función resumen externa empleando dicha segunda parte (parte 1) del mencionado mensaje y dicho resultado como entradas.
3. El método de la reivindicación 2, en el que dicha función resumen es una función resumen F repetida y dicha función resumen con clave es una función de compresión f con clave.
4. El método de la reivindicación 2, en el que dicha función resumen es una función resumen F repetida y dicha función resumen con clave es una función resumen F repetida.
5. El método de la reivindicación 1, que incluye las operaciones de:
utilizar un resultado procedente de dicha función de compresión para generar un código de autenticación de mensaje (TAG); y
enviar dicho código de autenticación de mensaje (TAG) en asociación con dicho mensaje (MESSAGE) para autenticar el citado mensaje empleando dicho código de autenticación de mensaje (TAG).
6. El método de la reivindicación 1, que incluye las operaciones de:
utilizar un resultado de dicha función de compresión para generar un código de autenticación de mensaje (TAG'); y
comparar dicho código de autenticación de mensaje (TAG') con un código de autenticación de mensaje (TAG) recibido con dicho mensaje (MESSAGE), por lo que dicho mensaje se acepta como auténtico si el citado código de autenticación de mensaje (TAG') y dicho código de autenticación recibido (TAG) coinciden.
7. Un sistema de autenticación de mensajes que utiliza una función de compresión (90) y una función resumen anidada que incluye una función resumen interna (100) y una función resumen externa (102), por lo que dicha función resumen interna (100) produce un resultado para dicha función resumen externa (102), caracterizándose dicho sistema por:
circuitería de tratamiento para ejecutar una repetición única de dicha función de compresión (90) empleando una clave (K) y dicho mensaje (X) como entradas si el citado mensaje (X) cabe en un bloque de entrada de dicha función de compresión (90) y, si dicho mensaje es mayor que dicho bloque de entrada de la mencionada función de compresión (90), proporcionar dicho mensaje (X) y una clave a la citada función resumen anidada para tratar dicho mensaje (X).
ES01309740T 2001-05-11 2001-11-19 Sistema y metodo de autentificacion de mensajes. Expired - Lifetime ES2220679T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/854,251 US20030041242A1 (en) 2001-05-11 2001-05-11 Message authentication system and method
US854251 2001-05-11

Publications (1)

Publication Number Publication Date
ES2220679T3 true ES2220679T3 (es) 2004-12-16

Family

ID=25318149

Family Applications (1)

Application Number Title Priority Date Filing Date
ES01309740T Expired - Lifetime ES2220679T3 (es) 2001-05-11 2001-11-19 Sistema y metodo de autentificacion de mensajes.

Country Status (8)

Country Link
US (1) US20030041242A1 (es)
EP (2) EP1387524A1 (es)
JP (2) JP2003051821A (es)
KR (1) KR100884488B1 (es)
AT (1) ATE268963T1 (es)
DE (1) DE60103737T2 (es)
ES (1) ES2220679T3 (es)
TR (1) TR200402260T4 (es)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050271246A1 (en) * 2002-07-10 2005-12-08 Sharma Ravi K Watermark payload encryption methods and systems
US7284127B2 (en) 2002-10-24 2007-10-16 Telefonktiebolaget Lm Ericsson (Publ) Secure communications
US7702910B2 (en) 2002-10-24 2010-04-20 Telefonaktiebolaget L M Ericsson (Publ) Message authentication
US7539304B1 (en) * 2002-11-18 2009-05-26 Silicon Image, Inc. Integrated circuit having self test capability using message digest and method for testing integrated circuit having message digest generation circuitry
CN100449986C (zh) * 2003-01-28 2009-01-07 华为技术有限公司 一种提高键入-散列法运算速度的方法
CN1868163B (zh) * 2003-10-16 2011-01-26 松下电器产业株式会社 加密通信系统和通信装置
US8127137B2 (en) 2004-03-18 2012-02-28 Digimarc Corporation Watermark payload encryption for media including multiple watermarks
US20070153766A1 (en) * 2004-04-16 2007-07-05 Nortel Networks Limited System and method for providing early ringback by a home legacy mobile station domain network
JP2006041684A (ja) * 2004-07-23 2006-02-09 Sony Corp 暗号処理装置および暗号処理方法
US9094429B2 (en) * 2004-08-10 2015-07-28 Blackberry Limited Server verification of secure electronic messages
US8966284B2 (en) * 2005-09-14 2015-02-24 Sandisk Technologies Inc. Hardware driver integrity check of memory card controller firmware
CN102142070B (zh) * 2005-09-14 2013-11-06 桑迪士克科技公司 存储卡控制器固件的硬件驱动器完整性检查
US7953971B2 (en) * 2005-10-27 2011-05-31 Research In Motion Limited Synchronizing certificates between a device and server
KR20080058462A (ko) * 2005-11-04 2008-06-25 닛본 덴끼 가부시끼가이샤 메시지 인증 장치, 메시지 인증 방법, 메시지 인증 프로그램을 기록한 매체
EP1997269A4 (en) * 2006-03-22 2014-01-08 Lg Electronics Inc ASYMMETRIC CRYPTOGRAPHY FOR WIRELESS SYSTEMS
JP4810289B2 (ja) * 2006-04-17 2011-11-09 ルネサスエレクトロニクス株式会社 メッセージ認証子生成装置、メッセージ認証子検証装置、及びメッセージ認証システム
JP4802123B2 (ja) * 2007-03-07 2011-10-26 富士通株式会社 情報送信装置、情報送信方法、情報送信プログラムおよび該プログラムを記録した記録媒体
FR2918830B1 (fr) * 2007-07-13 2009-10-30 Viaccess Sa Verification de code mac sans revelation.
JP5006770B2 (ja) * 2007-11-28 2012-08-22 日本電信電話株式会社 メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体
JP2008118706A (ja) * 2008-01-10 2008-05-22 Nec Corp 暗号化通信制御方式
JP4914381B2 (ja) * 2008-02-07 2012-04-11 日本電信電話株式会社 メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体
US20090245506A1 (en) * 2008-04-01 2009-10-01 Mathieu Ciet Fourier series based authentication/derivation
WO2010024379A1 (ja) * 2008-08-29 2010-03-04 日本電気株式会社 通信システム、送信側及び受信又は転送側の通信装置、データ通信方法、データ通信プログラム
JP5079671B2 (ja) * 2008-11-27 2012-11-21 日本電信電話株式会社 ハッシュ値生成装置、検証装置、ハッシュ値生成方法、検証方法、プログラム、および記録媒体
JP5447510B2 (ja) * 2009-05-11 2014-03-19 日本電気株式会社 タグ生成装置、タグ検証装置、通信システム、タグ生成方法、タグ検証方法および記録媒体
KR101072277B1 (ko) * 2009-08-31 2011-10-11 주식회사 아나스타시스 실시간 데이터 무결성 보장 장치 및 방법과 이를 이용한 블랙박스 시스템
US8923218B2 (en) * 2009-11-02 2014-12-30 Qualcomm Incorporated Apparatus and method for random access signaling in a wireless communication system
DE102010042539B4 (de) * 2010-10-15 2013-03-14 Infineon Technologies Ag Datensender mit einer sicheren, aber effizienten Signatur
DE102012201164B4 (de) * 2012-01-26 2017-12-07 Infineon Technologies Ag Vorrichtung und verfahren zur erzeugung eines nachrichtenauthentifizierungscodes
EP2683112B1 (en) 2012-07-03 2017-09-27 ABB Research Ltd. Secure message transmission
KR101428770B1 (ko) * 2013-05-29 2014-08-08 한국전자통신연구원 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법
KR101516573B1 (ko) * 2013-07-26 2015-05-04 한국전자통신연구원 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법
US10432409B2 (en) 2014-05-05 2019-10-01 Analog Devices, Inc. Authentication system and device including physical unclonable function and threshold cryptography
WO2015200196A1 (en) * 2014-06-25 2015-12-30 Sypris Electronics, Llc System and device binding metadata with hardware intrinsic properties
KR101572935B1 (ko) 2014-10-02 2015-12-11 현대자동차주식회사 메시지 인증 코드 혼합을 통한 can 패킷 인증 방법 및 그 장치
KR102021177B1 (ko) * 2017-01-17 2019-09-11 인제대학교 산학협력단 동적 분리 채널에서의 메시지 인증코드 전송을 통한 위변조 검증 방법 및 시스템
EP3574608B1 (en) * 2017-01-25 2022-03-30 Koninklijke KPN N.V. Guaranteeing authenticity and integrity in signalling exchange between mobile networks
US10958452B2 (en) 2017-06-06 2021-03-23 Analog Devices, Inc. System and device including reconfigurable physical unclonable functions and threshold cryptography
RU2697953C2 (ru) * 2018-02-06 2019-08-21 Акционерное общество "Лаборатория Касперского" Система и способ вынесения решения о компрометации данных
US10885170B1 (en) * 2018-11-20 2021-01-05 Apotheka Systems Inc. Methods, systems, and storage media for managing patient information using a blockchain network
WO2021201779A1 (en) * 2020-03-31 2021-10-07 Agency For Science, Technology And Research Method and system for generating a hash-based message authentication code (hmac) based on white-box implementation
US20230141773A1 (en) * 2021-11-11 2023-05-11 International Business Machines Corporation Real Time Audio Stream Validation

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5664016A (en) * 1995-06-27 1997-09-02 Northern Telecom Limited Method of building fast MACS from hash functions
KR19980050938A (ko) * 1996-12-21 1998-09-15 양승택 인터넷 상에서 암호환된 문서 전송방법
KR19990053174A (ko) * 1997-12-23 1999-07-15 정선종 해쉬함수를 이용한 정보의 무결성 확인방법

Also Published As

Publication number Publication date
DE60103737D1 (de) 2004-07-15
EP1387524A1 (en) 2004-02-04
KR20020086232A (ko) 2002-11-18
JP2003051821A (ja) 2003-02-21
US20030041242A1 (en) 2003-02-27
EP1257084A1 (en) 2002-11-13
EP1257084B1 (en) 2004-06-09
TR200402260T4 (tr) 2004-12-21
KR100884488B1 (ko) 2009-02-18
DE60103737T2 (de) 2005-07-07
ATE268963T1 (de) 2004-06-15
JP2009159618A (ja) 2009-07-16

Similar Documents

Publication Publication Date Title
ES2220679T3 (es) Sistema y metodo de autentificacion de mensajes.
US11018854B2 (en) Data conversion systems and methods
EP2528268B3 (en) Cyptographic key generation
KR100625503B1 (ko) 무선 통신 시스템에서 비밀 공유 데이터를 갱신하는 방법
EP0982965B1 (en) Method for establishing session key agreement
US6918035B1 (en) Method for two-party authentication and key agreement
Barkan et al. Instant ciphertext-only cryptanalysis of GSM encrypted communication
ES2279868T3 (es) Autenticacion local en un sistema de comunicacion.
EP1248483A1 (en) System and method for providing secure communications between wireless units using a common key
ES2279142T3 (es) Codigo de autenticacion de mensajes basado en un codigo de correccion de errores.
CN102315937A (zh) 无线通信装置和服务器之间数据的安全交易系统和方法
WO2001001630A1 (en) Methods and arrangements for secure linking of entity authentication and ciphering key generation
EP1180315B1 (en) Integrity protection method for radio network signaling
EP1192752B1 (en) Modulated message authentication system and method
Leu et al. Improving security level of LTE authentication and key agreement procedure
Fazzat et al. A comparative performance study of cryptographic algorithms for connected vehicles
Ch et al. Ensuring reliability & freshness in wireless sensor networks
Haider Birthday Forgery Attack on 128-EIA3 Version 1.5
Zeng et al. Reliable Enhanced Secure Code Dissemination with Rateless Erasure Codes in WSNs.
Ryu et al. Practical techniques for ack authentication in ieee 802.15. 4 networks
KR20150098955A (ko) 암호화 시스템 및 그것의 암호 통신 방법