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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/20—Manipulating the length of blocks of bits, e.g. padding or block truncation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/30—Compression, e.g. Merkle-Damgard construction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
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.
El presente invento se refiere a comunicaciones
y, más específicamente, a la autenticación de mensajes.
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.
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.
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.
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.
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.
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.
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.
(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
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.
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.
Y_{1}...Y_{20}=SHA-HASH(x_{1}...x_{|x|-43})
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.
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).
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)
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)
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 | 정선종 | 해쉬함수를 이용한 정보의 무결성 확인방법 |
-
2001
- 2001-05-11 US US09/854,251 patent/US20030041242A1/en not_active Abandoned
- 2001-11-19 ES ES01309740T patent/ES2220679T3/es not_active Expired - Lifetime
- 2001-11-19 TR TR2004/02260T patent/TR200402260T4/xx unknown
- 2001-11-19 DE DE60103737T patent/DE60103737T2/de not_active Expired - Lifetime
- 2001-11-19 EP EP03021543A patent/EP1387524A1/en not_active Ceased
- 2001-11-19 AT AT01309740T patent/ATE268963T1/de active
- 2001-11-19 EP EP01309740A patent/EP1257084B1/en not_active Expired - Lifetime
-
2002
- 2002-05-03 KR KR1020020024445A patent/KR100884488B1/ko active IP Right Grant
- 2002-05-10 JP JP2002136120A patent/JP2003051821A/ja active Pending
-
2009
- 2009-02-04 JP JP2009023637A patent/JP2009159618A/ja not_active Withdrawn
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) | 암호화 시스템 및 그것의 암호 통신 방법 |