ES2364826A1 - Clave de encriptado precalculada. - Google Patents

Clave de encriptado precalculada. Download PDF

Info

Publication number
ES2364826A1
ES2364826A1 ES200800722A ES200800722A ES2364826A1 ES 2364826 A1 ES2364826 A1 ES 2364826A1 ES 200800722 A ES200800722 A ES 200800722A ES 200800722 A ES200800722 A ES 200800722A ES 2364826 A1 ES2364826 A1 ES 2364826A1
Authority
ES
Spain
Prior art keywords
key
encryption
data
aes
dispersion
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.)
Granted
Application number
ES200800722A
Other languages
English (en)
Other versions
ES2364826B2 (es
Inventor
Nhu-Ha Yup
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.)
Exelis Inc
Original Assignee
ITT Manufacturing Enterprises LLC
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 ITT Manufacturing Enterprises LLC filed Critical ITT Manufacturing Enterprises LLC
Publication of ES2364826A1 publication Critical patent/ES2364826A1/es
Application granted granted Critical
Publication of ES2364826B2 publication Critical patent/ES2364826B2/es
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Un método de encriptado autenticado comprende la recepción, por parte de un dispositivo de Norma de Encriptado Avanzado (Advanced Encryption Standard (AES)), de una clave de cifrado y el cálculo de una clave de dispersión ("hash") utilizando la clave de cifrado recibida. La clave de dispersión calculada es guardada en una memoria de almacenaje. El dispositivo AES recibe entonces un paquete de datos y lo encripta utilizando la clave de cifrado recibida. La clave de dispersión es enviada desde la memoria de almacenaje a un dispositivo GHASH que se utiliza para autenticar el paquete de datos. El encriptado del paquete de datos se lleva a cabo después de que la clave de dispersión haya sido almacenada en la memoria. Se autoriza al flujo de entrada del paquete de datos de almacenar en la memoria de almacenaje la clave de dispersión.

Description

Clave de encriptado precalculada.
Campo de la invención
La presente invención se refiere de forma general al sistema y método para proporcionar encriptado o cifrado y desencriptado o descifrado autenticados. De manera más especifica, la presente invención se refiere a un método para el cálculo de una clave de encriptado en un sistema que tiene múltiples canales de algoritmos de cifrado de bloques según Norma de Encriptado Avanzada (AES).
Antecedentes de la invención
Cuando dos partes comunican frecuentemente necesitan proteger su privacidad y la autenticidad de los datos transmitidos. La protección de la privacidad de los datos asegura que otras partes no autorizadas no comprenderán el contenido de las transmisiones. La protección de la autenticidad de los datos proporciona la seguridad a la parte que recibe el mensaje de que el remitente real de un mensaje coincide con el remitente declarado del mismo. Por lo tanto, proporciona seguridad al receptor de que el mensaje no ha sido modificado accidentalmente o intencionadamente en tránsito.
En un método de encriptado autenticado, el remitente encripta un mensaje utilizando una clave y un término especifico ("nonce") (llamado también vector de inicialización o IV) para conseguir un texto cifrado. El receptor desencripta el texto cifrado utilizando una clave y un término especifico ("nonce") para lograr o bien un mensaje o un símbolo especial de invalidación que indica al receptor que el texto cifrado debe ser considerado como no auténtico.
El encriptado exclusivamente con privacidad calcula un texto cifrado a partir de un texto normal, una clave y un término especifico ("nonce"). Un código de autenticación (MAC) calcula una etiqueta de autenticación a partir de un mensaje y una clave. Al MAC un mensaje significa el cálculo de su etiqueta de autenticación utilizando un código de autenticación del mensaje.
A modo de antecedente adicional, el algoritmo de cifrado bloque en Norma de Encriptado Avanzado (AES), o cifra AES, en un algoritmo de cifrado iterativo con el significado de que los datos son manipulados de forma similar en un número predeterminado de pasadas. La longitud del bloque está fijada en 128 bits y la longitud de la clave se puede disponer de forma independiente en 128, 192 ó 256 bits. La cifra AES permite también un número variable de pasadas (Nr) cuyo total puede ser de 10, 12 ó 14, que dependen de la longitud del bloque y de la longitud de la clave.
La cifra AES encripta un bloque de datos llevando a cabo 9, 11 o 13 transformaciones de pasadas completas seguido de una transformación de pasada incompleta final. La transformación de pasada incompleta comprende un paso menos que una transformación de pasada completa. La cadena de datos sobre la que se opera durante cada pasada es llamada "Estado" que se puede representar como conjunto rectangular de bits que tiene cuatro filas y un número de columnas (Nb) que varia con la longitud del bloque. De manera específica, el valor de Nb es igual a la longitud del bloque (128, 192 ó 256) dividido por 32, significando que tiene un valor de 4, 6 ó 8. Cada una de las pasadas completas comprende las cuatro siguientes transformaciones llevadas a cabo en el orden siguiente: (1) Bitsub; (2) ShiftRow; (3) MixColumn; y (4) AddRoundKey. La transformación de pasada incompleta no comprende la transformación MixColumn.
De manera similar al encriptado, la cifra AES desencripta datos llevando a cabo el mismo número de pasadas completas seguido de una pasada incompleta. Dado que las transformaciones de encriptado se pueden invertir, el Estado de cada pasada de desencriptado es operado por el inverso de las transformaciones antes indicadas. Además, las características de las transformaciones y las transformaciones inversas permiten la simetría en los algoritmos de encriptado y desencriptado. En otras palabras, cada pasada de desencriptado completa comprende las siguientes transformaciones inversas que se pueden llevar a cabo en el orden indicado (1) InvBitsub; (2) InvShiftRow; (3) InvMixColumn; e (4) InvAddRoundKey. También en este caso, de manera similar al encriptado, la transformación de pasada de desencriptado incompleta no incluye la transformación InvMixColumn.
Se puede encontrar mayor detalle de la cifra AES en una publicación de norma general de proceso de transformación de información ("Federal Information Processing Standards Publication" (FIPS-PUBS)) emitida por el Instituto Nacional de Normas y Tecnología ("National Institute of Standards and Technology" (NIST)). La publicación es la Norma de Encriptado Avanzado ("Advanced Encryption Standard" (AES)), de 26 de Noviembre de 2001 y se puede conseguir electrónicamente en http://csrc.nist.gov/publications/. Esta publicación se incorpora en la presente invención, en su totalidad, a titulo de referencia.
La cifra AES soporta diferentes modalidades operativas, incluyendo encadenado de bloques de cifras (CBC), libro de códigos electrónico (ECB) y modalidad de contaje Galois (GCM). El GCM es una modalidad operativa de cifrado de bloques que utiliza dispersión ("hashing") por medio de un campo Galois binario para proporcionar encriptado autenticado. El documento detallado titulado "La modalidad operativa de contaje Galois (GCM)" ("The Galois/Counter Mode of Operation" (GCM)) se puede encontrar en csrc.nist.gov/CryptoToolkit/modes/proposedmodes/
gcm/gcm-spec.pdf. Esta publicación se incorpora también en su totalidad a titulo de referencia a la presente descripción.
Un sistema convencional de cifrado de bloques GCM-AES comprende encriptado realizado durante 10, 12 ó 14 pasadas utilizando claves de pasada ("round keys"). Se calcula una clave de dispersión a partir de las claves de pasada para proporcionar el encriptado autenticado para cada bloque o paquete que es transmitido a un receptor remoto. Esto requiere 10, 12 ó 14 ciclos de reloj para cada bloque o paquete que es transmitido por el remitente o emisor. De manera similar, durante el desencriptado el receptor requiere 10, 12 ó 14 ciclos de reloj para calcular la clave de dispersión desde las claves de pasada para cada bloque o paquete. Esto resulta de manera desventajosa en una generación total incrementada y retardo por el procesador en la autenticación del bloque o paquete correspondiente. La presente invención se dirige a solucionar y, según una de sus características, soluciona esta deficiencia.
Características de la invención
Para satisfacer esta y otras necesidades y teniendo en cuenta sus objetivos, la presente invención da a conocer un método de encriptado autenticado. El método comprende las siguientes etapas: (a) recibir mediante un dispositivo de Norma de Encriptado Avanzado (AES) ("Advanced Encryption Standard") una clave de cifrado; (b) calcular mediante un dispositivo AES una clave de dispersión ("hash key") utilizando la clave de filtrado recibida; (c) almacenar la clave de dispersión calculada en una memoria de almacenaje; (d) recibir, mediante el dispositivo AES un paquete de datos; (e) encriptado mediante el dispositivo AES del paquete de datos utilizando la clave de cifrado recibida; (f) recibir la clave de dispersión mediante un dispositivo GHASH, a partir de la memoria de almacenaje; y (g) autenticar el paquete de datos, por el dispositivo GHASH, utilizando la clave de dispersión. La etapa de encriptado comprende la utilización de una modalidad de contaje en el dispositivo AES para encriptar el paquete de datos. La utilización de la modalidad de contaje comprende el someter iterativamente XOR (a) a una parte de texto normal del paquete de datos con (b) un valor encriptado de datos de contaje utilizando una clave de cifrado y obteniendo de esta manera un texto cifrado ("ciphertext") de datos. La etapa de autenticado comprende la transmisión del texto cifrado al dispositivo GHASH y multiplicar iterativamente el texto cifrado, por el dispositivo GHASH, utilizando la clave de dispersión. El encriptado del paquete de datos es llevado a cabo después de que la tecla de dispersión ha sido almacenada en la memoria de almacenaje.
Después de que la tecla de dispersión ha sido almacenada en la memoria de almacenaje se habilita el flujo de entrada del paquete de datos. El paquete de datos es encriptado usando la tecla de encriptado y después de habilitar el flujo de entrada del paquete de datos, dicho paquete de datos es autenticado utilizando la tecla de dispersión almacenada en la memoria de almacenaje.
La tecla de dispersión es calculada llevando a cabo 10 pasadas de expansiones de clave en la clave de cifrado recibida si la clave de cifrado recibida es un bloque de datos de 128 bits, y llevando a cabo 12 pasadas de expansiones de clave en la clave de cifrado recibida si la clave de cifrado recibida es un bloque de datos de 192 bits, y llevando a cabo 14 pasadas de expansiones de clave en la clave de cifrado recibida si la clave de cifrado recibida es un bloque de datos de 256 bits.
El método de la invención incluye la recepción, como mínimo, de dos claves de cifrado separadas a partir de canales de datos respectivos y calcular, como mínimo, dos claves de dispersión separadas correspondientes a las dos o más claves de cifrado recibidas separadamente. La recepción del paquete de datos comprende la recepción durante un intervalo de tiempo de un número predeterminado de paquetes de datos. El cálculo de la clave de dispersión comprende el cálculo de la clave de dispersión una vez por intervalo de tiempo y almacenar la clave de dispersión calculada comprende el almacenaje de la clave de dispersión calculada una vez por intervalo de tiempo.
Otra realización de la invención comprende un módulo de encriptado autenticado. El módulo de encriptado comprende un dispositivo AES para utilizar una clave de cifrado para calcular una clave de dispersión, una memoria de almacenaje para almacenar la clave de dispersión calculada y un dispositivo GHASH para recibir la clave de dispersión calculada almacenada en la memoria de almacenaje para autenticar un paquete de datos. El dispositivo AES encripta el paquete de datos para formar un texto cifrado. El dispositivo GHASH recibe el texto cifrado del dispositivo AES para multiplicar el texto cifrado recibido por la clave de dispersión calculada. Se calcula una etiqueta de autenticación utilizando el texto cifrado multiplicado con la clave de dispersión calculada. Un controlador posibilita el flujo de entrada del paquete de datos después de que se ha almacenado la clave de dispersión en la memoria de almacenaje. El paquete de datos comprende datos autenticados adicionales (AAD) y el dispositivo GHASH está configurado para recibir el AAD para multiplicar el AAD con la clave de dispersión calculada.
El dispositivo AES está configurado para recibir, como mínimo, dos claves de encriptado diferentes procedentes de diferentes canales de datos. El dispositivo AES comprende dos módulos de encriptado para encriptar, como mínimo, dos paquetes distintos de datos recibidos a partir de canales de datos respectivos utilizando las dos o más claves de encriptado distintas. El paquete de datos comprende múltiples paquetes de datos y la clave de dispersión es calculada por el dispositivo AES una vez para todos los múltiples paquetes de datos recibidos. La clave de dispersión es almacenada en la memoria de almacenaje una vez para todos los múltiples paquetes de datos recibidos.
Se comprenderá que la descripción general anterior y la siguiente descripción detallada tienen carácter de ejemplo pero no son restrictivas de la presente invención.
Breve descripción de los dibujos
La presente invención se comprenderá mejor a partir de la siguiente descripción detallada en relación con los dibujos adjuntos:
La figura 1 es un diagrama de bloques funcional que muestra a titulo de ejemplo el encriptado y autenticación de un paquete (o bloque) de datos.
La figura 2 es un diagrama de bloques funcional que muestra a titulo de ejemplo un desencriptado y autenticación de un paquete encriptado (o bloque) de datos.
La figura 3 es un diagrama de bloques de un módulo de encriptado AES-GCM con una memoria externa SA de acuerdo con una realización de la presente invención.
La figura 4 es un diagrama de bloques funcional de una operación de encriptado autenticada, mostrando encriptado descifrado de bloque y multiplicación sobre campo Galois.
La figura 5 es un diagrama de bloques funcional de una operación de desencriptado autenticada mostrando encriptado descifrado de bloque y multiplicación sobre campo Galois.
La figura 6 es un diagrama de bloques de un módulo de dispositivo AES que comprende cuatro canales de flujo de datos de entrada y dos módulos de transformación de cifrado de acuerdo con una realización de la presente invención.
La figura 7 es un diagrama de bloques de un dispositivo GHASH de acuerdo con una realización de la presente invención.
La figura 8 es un diagrama de flujo que muestra un método para la autenticación de un paquete de datos de acuerdo con una realización de la presente invención.
La figura 9 es un diagrama de flujo de un método de autenticación de un paquete de datos encriptado de acuerdo con la realización a título de ejemplo de la presente invención.
Descripción detallada de la invención
La presente invención comprende una modalidad de funcionamiento AES-GCM. El GCM tiene dos operaciones, encriptado autenticado y desencriptado autenticado. La operación de encriptado autenticado tiene cuatro entradas, cada una de los cuales es una cadena de bits del modo siguiente:
(1)
Clave secreta K, cuya longitud es apropiada para el cifrado del bloque subyacente;
(2)
Vector de inicialización IV ("nonce");
(3)
Texto normal P; y
(4)
Datos autenticados adicionales (AAD) que se indican como A.
Estos datos están autenticados pero no encriptados
\vskip1.000000\baselineskip
La operación autenticada de encriptado tiene dos salidas del modo siguiente:
(1)
Un texto cifrado C, cuya longitud es exactamente la del texto normal P, y
(2)
Una etiqueta de autenticado T. La longitud de la etiqueta está designada como t.
\vskip1.000000\baselineskip
Si la anchura cifrada del bloque es la operación de desencriptado autenticada y len() es el número de bits de un argumento, entonces
1
100
Se ha mostrado en la figura 1 un encriptado y autenticación a titulo de ejemplo de un paquete (o bloque) de datos. Tal como se ha mostrado, el paquete de entrada (11) comprende un campo de encabezamiento, un campo de secuencia y un campo de datos normales. El campo de datos es encriptado y autenticado por el módulo de encriptado GCM (12). El campo de encabezamiento puede ser autenticado en el módulo de encriptado GCM al incluirlo en el campo AAD. El campo de secuencia puede ser incluido en el IV y enviado al módulo de encriptado GCM. De este modo el módulo de encriptado GCM encripta y autentica el paquete (11). El paquete de salida, mostrado como paquete (13), es transmitido al receptor y comprende (1) el campo de datos encriptado, (2) la etiqueta de autenticación que es llevada en el campo de valor de comprobación de integridad (ICV), y el campo de encabezamiento añadido (3) y campo de secuencia (4).
Al incluir el número de secuencia en el IV, se puede satisfacer la exigencia de que los valores IV sean únicos. Los datos que forman el IV tienen que ser conocidos tanto para el lado de encriptado como el de desencriptado, pero el IV no es necesario que sea incluido en el paquete y puede ser enviado separadamente. Se apreciará que la longitud del texto normal del paquete de entrada (11) es la misma que la longitud que del texto cifrado del paquete de salida (13).
Haciendo referencia a continuación a la figura 2, se ha mostrado el módulo de desencriptado GCM (16) que desencripta y verifica la autenticidad del paquete de entrada recibido (15). El módulo de encriptado GCM desencripta el texto cifrado para proporcionar el texto normal del paquete de salida (17). La etiqueta de autenticación es comparada con una etiqueta de autenticación calculada internamente para verificar la autenticidad del paquete de entrada (15). El paquete de salida final comprende el campo de encabezamiento y el campo de secuencia tal como se ha mostrado.
La operación de desencriptado autenticada tiene cinco entradas: K, IV, C, A y T. La operación de desencriptado autenticada tiene solamente una sola salida, el valor de texto normal P o un símbolo especial FAIL que indica que los datos de entrada no son auténticos. El texto cifrado C, el vector de inicialización IV, los datos autenticados adicionales A y la etiqueta T son auténticos para la clave K, cuando son generados por la operación de encriptado del módulo de encriptado GCM (12) con entradas K. IV. A y texto normal P. La operación de desencriptado autenticado del módulo de desencriptado GCM (16), con alta probabilidad, devuelve FAIL siempre que sus entradas no fueron creadas por la operación de encriptado con la clave idéntica.
Los datos autenticados adicionales A son utilizados para proteger información que necesita ser autenticada, pero que se debe dejar sin encriptar. Cuando se utiliza el GCM para asegurar un protocolo de red los datos A pueden incluir direcciones, puertos, números de secuencia, números de versión de protocolo y otros campos que indican la forma en la que se debe manipular el texto normal, se debe enviar o debe procesarse. En muchas situaciones puede ser deseable autenticar estos campos si bien deben ser dejados libres para permitir que la red o sistema funcione de manera apropiada. Cuando estos datos son incluidos en el AAD, se facilita la autenticación sin copiado de datos en el texto cifrado.
El objetivo principal del IV es constituir un texto temporal o "nonce" es decir, ser distinto para cada invocación de la operación de encriptado para una clave fijada. Es aceptable que el IV sea generado al azar siempre que el carácter distintivo de los valores IV sea altamente probable. El IV es autenticado, y no es necesario incluirlo en el campo AAD.
La potencia de la autenticación de P, IV y A es determinada por la longitud de la etiqueta de autenticación. Cuando la longitud de P es cero, GCM actúa como MAC en la entrada A. La modalidad de funcionamiento que utiliza GCM como código de autenticación de mensaje autónomo se indica como GMAC.
Las ecuaciones utilizadas por el módulo de encriptado GCM (12), mostrado en la figura 1, se describirán a continuación. Lo siguiente supone que la anchura del bloque de cifrado de w es de 128 bits.
Se supondrá que n y u indican un par de enteros positivos, de manera tal que el número total de bits en el texto normal es (n-1)128+u, en la que 1 \leq u \leq 128. El texto normal consiste en una secuencia de n cadenas de bits, en la que la longitud de bits de la última cadena de bits es u, y la longitud de bits de las otras cadenas de bits es 128. La secuencia es designada como P_{1}, P_{2}, ..., P_{n-1}, P^{*}_{n}, y las cadenas de bits son llamadas bloques de datos, si bien la última cadena de bits P^{*}_{n}, puede no ser un bloque completo. De manera similar, el texto cifrado se designa como C_{1},
C_{2}, ..., C_{n-1}, C^{*}_{n}, en la que el número de bits del bloque final C^{*}_{n} es u. Los datos autenticados adicionales A se indican como A_{1}, A_{2}, ..., A_{m-1}, A^{*}_{m}, en los que la última cadena de bits A^{*}_{m} puede ser un bloque parcial de longitud v y m y v indican el par de enteros positivos de manera que el número total de bits de A es (m-1)128+v y 1 \leq v \leq 128.
\newpage
La operación de encriptado autenticada se define por las siguientes ecuaciones, en las que w se utiliza como anchura de cifrado del bloque:
2
Se generan sucesivos valores de contador utilizando la función incr (), que trata los 32 bits de la derecha de su argumento como entero no negativo con el bit menos significativo en la derecha e incrementa este valor módulo 2^{32}.
La función len () devuelve una cadena de 64 bits que contiene el entero no negativo que describe el número de bits en su argumento, con el bit menos significativo a la derecha. La expresión 0^{1} indica una cadena de I bits cero y
A \parallel B indica la concatenación de dos cadenas de bits A y B. La función MSB_{t}(S) devuelve la cadena de bits que contiene solamente los t bits más significativos (de la izquierda) de S, y el símbolo {} indica la cadena de bits con longitud cero.
La función GHASH es definida por GHASH (H, A, C) = X_{m+n+1}, en la que las entradas A y C están formateadas tal como se ha descrito anteriormente, y las variables para i = 0, ..., m+n+1 se definen del modo siguiente:
3
La operación de desencriptado autenticada es similar a la operación de encriptado, pero con el orden de la etapa de dispersión y de la etapa de encriptado invertidas. De manera más formal, se define por las siguientes ecuaciones:
4
400
La etiqueta T' que es calculada por la operación de desencriptado es comparada con la etiqueta T asociada con el texto cifrado C. Si las dos etiquetas se corresponden (tanto en longitud como en valor), entonces el texto cifrado se devuelve. De otro modo, se devuelve el símbolo especial FAIL.
Haciendo referencia a continuación a la figura 3, se ha mostrado un diagrama de bloques funcional del módulo de encriptado AES-GCM, indicado de manera general como (30). La memoria SA (34), que es externa al módulo de encriptado AES-GCM, almacena la clave de encriptado K y la clave de dispersión H. Tal como se ha descrito en lo anterior,
5
que será encriptado del cifrado de bloque del valor O^{w} con la clave K.
\vskip1.000000\baselineskip
La clave de encriptado K es facilitada al dispositivo AES (31) y la clave de dispersión H es facilitada al dispositivo GHASH (32). El aparato de estado finito (FSM), indicado en general con el numeral (33), recibe señales de control de entrada y controla el módulo de encriptado AES-GCM (30). El dispositivo AES (31) puede ser accionado en la modalidad de libro de código electrónico (ECB), modalidad de encadenado del bloque de cifrado (CBC) y la parte de contador (CTR) del GCM tanto para encriptado como desencriptado. El dispositivo AES soporta diferentes tamaños de bloques de clave, incluyendo 128 bits, 192 bits y 256 bits.
El dispositivo AES ejecuta un algoritmo que tiene operaciones realizadas en una disposición bidimensional de bits llamada el "State". El State consiste en cuatro filas de bits cada una de las cuales contiene Nb bits, siendo Nb la longitud del bloque dividido por 32. El State incluye una entrada y una salida. Al inicio del cifrado y cifrado inverso, la entrada, que es el conjunto de bits de entrada, es copiada en el conjunto State. Las operaciones de cifrado o cifrado inverso son realizadas entonces en esta disposición State después de lo cual es copiado su valor final a la salida que es otro conjunto de bits de salida.
Para el algoritmo del dispositivo AES la longitud del bloque de entrada, el bloque de salida y el State es de 128 bits. Esto es representado por Nb=4 que refleja el número de palabras de 32 bits (número de columnas) en el State. La longitud de la clave de cifrado K es 128, 192 o 256 bits. La longitud de la clave es representada por Nk=4, 6 u 8, que refleja el número de palabras de 32 bits (número de columnas) en la clave de cifrado. El número de pasadas realizadas durante la ejecución del algoritmo depende de las dimensiones de la clave. El número de pasadas es representado por Nr, donde Nr=10 cuando Nk=4, Nr=12 cuando Nk=6, y Nr=l4 cuando Nk=8.
Tanto para el cifrado como cifrado inverso el algoritmo del dispositivo AES utiliza una función de pasada que está compuesta de cuatro transformaciones con orientación de bit diferentes: (1) sustitución de bit utilizando una tabla de sustitución (S-box), (2) desplazamiento de filas del conjunto State por diferentes desplazamientos, (3) mezclar los datos dentro de cada columna del conjunto State y (4) añadir una clave de pasada ("round key") al State. Estas transformaciones (y sus inversos) se describen en la publicación de la Norma AES a la que se ha hecho referencia en lo anterior y que es incorporada a esta descripción a titulo de referencia. Estas combinaciones clave-bloque-pasada se resumen en la siguiente tabla:
\vskip1.000000\baselineskip
6
\vskip1.000000\baselineskip
Al inicio del cifrado la entrada es copiada en el conjunto State tal como se ha descrito anteriormente. Después de una adición de clave de pasada inicial el conjunto State es transformado implementando una función de pasada 10, 12 ó 14 veces (dependiendo de la longitud de la clave), difiriendo la pasada final ligeramente de las primeras Nr-1 pasadas. El State final es copiado en la salida tal como se ha descrito anteriormente.
Tal como se ha descrito el cifrado comprende cuatro transformaciones. Estas transformaciones individuales-SubBits(), ShiftRows(), MixColums(), y AddRoundKey()- procesan el State. Todas la Nr pasadas son idénticas a excepción de la pasada final que no incluye la transformación MixColums().
Se apreciará que el cifrado antes mencionado puede ser invertido y a continuación implementado en orden inverso para producir un cifrado inverso para el algoritmo del dispositivo AES. Las transformaciones individuales utilizadas en el cifrado inverso- InvShiftRows(), InvSubBits(), InvMixColums(), y AddRoundKey()- procesan el State y se describen en la publicación de la norma AES.
La presente invención, si las dimensiones de la clave es 128 bits, calcula la clave de dispersión H utilizando el dispositivo AES (31) ejecutando 10 pasadas de cálculo (10 periodos de reloj). Después de haber calculado la última pasada la clave de dispersión H es enviada a la memoria SA (34) para su almacenaje. De forma similar la presente invención si las dimensiones de la clave son de 192 bits, calcula la clave de dispersión H ejecutando 12 pasadas de cálculo (12 periodos de reloj) y a continuación almacenando la clave de dispersión H n la memoria SA (34). Además, la presente invención si las dimensiones de la clave es de 256 bits, calcula la clave de dispersión H ejecutando 14 pasadas de calculo (14 periodos de reloj). Después de la última pasada, la presente invención almacena la clave de dispersión H en la memoria SA.
El dispositivo AES es programado de manera ventajosa para calcular y almacenar la clave de dispersión H antes del momento de intercambio de clave entre el remitente y el receptor. Este precalculo ahorra 10, 12 ó 14 ciclos de reloj por paquete o bloque que de otro modo se requerirían para calcular la clave de dispersión H de cada paquete o bloque.
Haciendo referencia a continuación a la figura 4 y recordando las ecuaciones de encriptado autenticado, se indicará a modo de ejemplo la forma en la que se determina la etiqueta de autenticación por la operación de encriptado autenticado indicada de manera general con el numeral (40). La operación de autenticación (40) comprende dos funciones principales utilizadas en GCM que son el encriptado cifrado del bloque y la multiplicación sobre el campo GF (2^{128}). Tal como se ha mostrado, la función E_{K} (designada como 43a, 43b y 43c) indica el encriptado de la cifra bloque utilizando la clave K. La función multH (designada como 44a, 44ab, 44c y 44d) indica multiplicación en GF (2^{128}) por la clave de dispersión H. La función incr (designada como 41a y 41b) designa la función de incremento de contador (CTR). A efectos de simplicidad, solamente se ha mostrado un bloque único de datos autenticados adicionales (designados Auth Data 1) y dos bloques de texto normal (designados Plaintext 1 y Plaintext 2).
La adición de dos elementos X e Y en GF (2^{128}) consiste en añadir un polinomio representando a X con otro polinomio representando a Y. Esta operación es idéntica a la exclusión por bits o (XOR) de X e Y. Las operaciones XOR se han mostrado en la figura 4 como XOR (45a) hasta XOR (45f). La multiplicación de dos elementos X e Y consiste en la multiplicación del polinomio que representa X con el polinomio que representa Y, dividiendo el polinomio resultante de 256 bits por un polinomio de campo; siendo el resultado un resto de 128 bits. El polinomio de campo es fijo y determina la representación del campo. El GCM utiliza el polinomio f = 1+ \alpha + \alpha^{2} + \alpha^{7} + \alpha^{128}.
En general, haciendo referencia a la figura 4, proporciona la salida de contador Yi que es encriptada con la clave de encriptado K en el módulo (43b, c) de E_{K}. La salida encriptada es sometida a XOR con texto normal 1, 2, obteniendo de esta manera texto cifrado 1, 2. Separadamente, el estado CTR Yo (contador 0) es encriptado por el módulo (43a) de E_{K} para obtener E(K, Yo). Los datos Auth Data 1 son operados por multH (44a) y a continuación sometidos a XOR con el texto cifrado 1, que es operado a continuación por mult_{H} (44b). La salida de multH (44b) es sometida a XOR con el texto de cifrado 2, que es operado a continuación por mult_{H} (44c). La salida de multH es sometida a XOR con la concatenación de cadenas de bits A y C, siendo finalmente sometida a XOR con E(K, Yo) para obtener la etiqueta de autenticación T que se ha descrito anteriormente. Se apreciará que la variable Xi anteriormente descrita resulta de las operaciones iterativas de multiplicación de la clave de dispersión H con el texto cifrado o el AAD. A su vez, la función GHASH es definida por GHASH (H, A, C) = Xi.
Haciendo referencia a la figura 5 y recordando las ecuaciones de encriptado autenticado antes descritas, se muestra como método (50) la forma en la que la etiqueta de autenticación es obtenida durante la operación de desencriptado. El método (50) es similar al método (40), excepto que el texto cifrado cuando es sometido a XOR con la sal ida del módulo E_{K} produce el texto normal. Tal como se ha mostrado, el módulo E_{K} (designado 53a, 53b y 53c) produce el desencriptado de la cifra bloque utilizando la clave K. La función multH (designada como 54a, 54b, 54c y 54d) indica multiplicación en GF (2^{128}) por la clave de dispersión H. La función incr (designada como 51a, 51b) indica la función de incremento de contador (CTR). A efectos de simplicidad solamente se ha mostrado un bloque único de datos autenticados adicional (designado Auth Data 1) y dos bloques de texto cifrado (designados ciphertext 1 y ciphertext 2) (texto cifrado 1 y texto cifrado 2).
Un diagrama de bloques a titulo de ejemplo de un módulo de dispositivo AES ha sido mostrado en la figura 6 designado de manera general con el numeral (60). El módulo del dispositivo AES comprende cuatro canales de flujo de datos que comparten dos módulos de transformación de cifras. Los dos módulos de transformación de cifras se han mostrado indicados como (70a, 70b). Se comprenderá que se pueden incluir hasta cuatro módulos de transformaciones de cifras, de manera que cada uno de los cuatro canales tiene su propio módulo de transformación de cifras. Cuatro registros de entrada (82) se han mostrado en la figura. Los registros de entrada (82) son registros de tipo primero en entrar primero en salir ("first-in-first-out" (FIFO)), si bien se pueden utilizar otros tipos de registros. Cada uno de los registros de entrada recibe una cadena de datos de una primera longitud de bits predeterminada desde su canal de sistema correspondiente. En la realización a titulo de ejemplo, la longitud de bits predeterminada (designada 85) es de 64 bits, si bien se pueden utilizar cadenas de datos más largas.
Las señales de control (83), clave (84) (un dato de clave por canal) y el control del tampón de entrada del conjunto de estado ("state") (SAIB) (también 84) están dispuestos como señales de entrada para el módulo (60) del dispositivo AES. Las señales de control están acopladas, una para cada uno, a cuatro controladores de máquina de estado finito (FSM) (76). Existe solamente un FSM (76) asociado con cada canal, cada uno de los cuales, en respuesta a las señales de control recibidas, controlan el funcionamiento del módulo (60) del dispositivo AES.
Los registros de entrada (82) están acoplados a los registros tampón (80a, 80b). Cada uno de los registros tampón bajo control de uno de los FSM, recupera selectivamente y almacena cadenas de datos de una longitud de bits predeterminada desde uno de los registros FIFO (82) hasta que se ha almacenado un bloque de datos de una longitud de bits predeterminada en el registro de entrada FIFO (80a, 80b) del tampón (registro BIF, 80a, 80b). La longitud de bits predeterminada del bloque de datos es una longitud de bloque soportada por la cifra bloque AES, es decir, una longitud de 128 bits.
El módulo (60) del dispositivo AES comprende un registro (81) de almacenaje de la clave de cifrado para cada canal del sistema. El registro (81) de almacenaje de la clave de cifrado recibe de la SA la clave de cifrado K asociada con cada canal del sistema (cuatro canales). Bajo control de su respectivo FSM el registro de almacenaje de clave de cifrado transmite la clave de cifrado almacenada K a un bloque (75) de expansión de clave. El bloque (75) de expansión de clave genera una sola clave de pasada ("round key") llevando a cabo una sola operación de expansión de calve para cada pasada de la cifra bloque de AES.
Los datos de salida del registro tampón (80a, 80b) son acoplados al circuito XOR (77, 78) para llevar a cabo la operación lógica XOR. Cada uno de los circuitos XOR recibe el bloque de datos de cada uno de los registros tampón (80a, 80b) y otro bloque de datos de cada uno de cuatro registros (IV/OR/CTR) (79). Estos dos bloques de datos son sometidos a XOR. Existe un registro (IV/OR/CTR) para cada canal del sistema. Estos registros almacenan el IV ("nonce") para calcular Yo durante el estado O de contaje de la modalidad AES-GCM, y/o calculando Yi durante el otro estado de contaje (CTR) de la modalidad AES-GCM. También se han mostrado otras dos modalidades, a saber la modalidad ECB y la modalidad CBC. Como respuesta a una señal de control ECB/CBC los datos almacenados en registros (79) IV/OR/CTR es transmitido al circuito XOR (77, 78) o se transmite una cadena de ceros al circuito XOR (77, 78). En la modalidad CBC el IV es sometido a XOR con los datos en BIF (80a, 80b) antes de ser enviado a los módulos de encriptado (70a, 70b). En la modalidad ECB no se utiliza IV. En la modalidad CTR/GCM se utiliza el contador 1, 2, 3, 4 para introducir datos en los módulos de encriptado (70a, 70b) para la operación de encriptado. El OR de IV/OR/CRT 1-4 (designado (79)) es un registro de salida que almacena los datos encriptados facilitados desde los módulos de encriptado (70a, 70b).
Antes de cada pasada de la cifra bloque de AES, el bloque de expansión (75) de la clave trasmite la clave de pasada a uno de los bloques funcionales AddRoundKey (74a, 74b). Se pueden tener hasta cuatro bloques funcionales AddRoundKey (uno para cada canal). El bloque de datos de uno de los registros tampón (80a, 80b) que había sido sometido a XOR con el bloque de datos procedente del registro (79) es transferido al bloque funcional AddRoundKey (74a, 74b). El bloque (74a, 74b) de la función AddRoundKey recibe un bloque de datos y lleva a cabo una transformación inicial AddRoundKey sobre el bloque de datos de acuerdo con la cifra bloque de AES. El bloque de datos del bloque funcional (74a, 74b) AddRounKey es transmitido a continuación a un registro de entrada del módulo de transformación de cifra (74a, 74b) (uno por canal).
El bloque de datos transmitido al registro de entrada del bloque de cifras de los bloques de transformación (70a, 70b) es operado a continuación por transformaciones de cifras de bloques AES para cualquier encriptado o desencriptado. De forma especifica, si las señales de control recibidas dan instrucciones al FSM para que el canal específico encripte datos, entonces las transformaciones de encriptado son operativas. Inversamente, si las señales de control recibidas dan instrucciones al FSM para que el canal específico desencripte datos, entonces las transformaciones de desencriptado son operativas. Las funciones de transformación comparten circuitos lógicos combinados para llevar a cabo las transformaciones de encriptado o desencriptado. De este modo una primera transformación lleva a cabo la transformación Bitsub/InvBitsub sobre el bloque de datos recibidos. De manera similar la segunda y tercera transformaciones llevará a cabo respectivamente ShiftRow/InvShiftRow y MixCol/InvMixCol, basándose en la señal recibida desde el canal específico FSM. El bloque de datos es operado sucesivamente por esas transformaciones y a continuación es transmitido a un segundo bloque AddRoundKey del bloque de transformación (70a, 70b).
Después de esta pasada de transformación inicial el bloque de datos es realimentado al registro de entrada del bloque de cifras para la siguiente pasada de transformación. Además, dependiendo del estado, el bloque de datos es transmitido al contador encriptado FIFO (ECF) (73) (uno por canal) y/o IV/OR/CTR (79) (uno por canal).
\newpage
Si el bloque de datos esta siendo desencriptado, entonces el bloque de datos es realimentado al registro de entrada del bloque de cifras del módulo de transformación (70a, 70b), mediante (1) los registros de desencriptado de texto normal (68a, 68b) (uno por canal) (2) multiplexador (71) y (3) circuito XOR (72). Los registros de desencriptado de texto normal (68a, 68b) reciben datos de los registros de texto normal (69) (uno por canal).
Después de haber completado el número predeterminado de pasadas de transformación, la última clave de pasada en el bloque de expansión de clave (75) es almacenada en una memoria externa del módulo (60) del dispositivo AES-GCM. Está última clave de pasada queda entonces disponible para su utilización como valor de clave de pasada inicial durante una subsiguiente operación de desencriptado. El valor de la clave de pasada es transmitido a la memoria SA (figura 3) mediante el registro (67) clave/cbc - múltiplex de datos incluido en los datos/control del tampón de salida de SA (SAOB).
Las cadenas de datos transferidas al registro tampón (80a, 80b) desde uno de los registro de entrada de canal (82) son también transferidos al registro apropiado de texto normal (69). Las cadenas de datos son almacenadas en el registro de almacenaje de texto normal hasta que las otras cadenas de datos han sido encriptadas (o desencriptadas) un número predeterminado de pasadas por los circuitos de encriptado/desencriptado. Los datos llamados "de texto normal" en el registro (69) de almacenaje de texto normal son transmitidas entonces al registro (65) de 64 bits.
Las cadenas de datos de salida de Ci (texto cifrado) son facilitadas del registro (79) IV/OR/CTR (uno por canal) como datos de salida mediante el mux (66) de 4x64 bits. Las cadenas de datos de salidas de Ci son utilizadas como datos de entrada para calcular el GHASH (H, A, C) en módulos GHASH (61) (o dispositivo GHASH (32) mostrado en la figura 3).
La salida del mux (66) de 4x64 bits y la salida del registro (65) están acoplados a los cuatro módulos GHASH (61) (uno por canal) mediante un multiplexador (63). Las salidas del mux (66) de 4x64 bits y el registro (65) están también acoplados a cuatro registros FIFO (62) (uno por canal) mediante el multiplexador (64). El multiplexador (63) proporciona las cadenas de datos Ci o el AAD (texto normal) a módulos GHASH (61) para llevar a cabo la multiplicación de Galois (ver figura 4). El multiplexador (64) proporciona el texto normal/texto cifrado como salida mediante los registros FIFO (62). La clave HASH es facilitada como salida mediante el mux/registro (67) clave/cbc-datos a la memoria SA para almacenaje.
Haciendo referencia a continuación a la figura 7, se ha mostrado un dispositivo GHASH a titulo de ejemplo indicado de forma general con el numeral (90). Se pueden tener hasta cuatro de dichos dispositivos GHASH. El dispositivo GHASH (90) comprende el controlador GHASH (91), el módulo de alineación GHASH (95), el módulo GMULT (101), el módulo de configuración ghash (103) y el módulo de interfaz GHASH (107). El controlador GHASH (91) recibe datos de control para almacenaje en los registros de control (92). La secuencia de la máquina de estado es detectada en el módulo (93) de flujo FSM mientras que el control del módulo GMULT (101) es proporcionado por el módulo de lógica de control (94).
El módulo (95) de alineación GHASH recibe bloques de datos de texto cifrado (Ci) que es calculado en el dispositivo AES (31) (figura 3). En el mismo bus de datos de entrada, el módulo (95) de alineación GHASH recibe también los bits AAD (A_{i}). Los bloques de datos son enviados al módulo de alineación (97) mediante el conducto (96) y son activados en bits en el registro (98). Después de alineación de bits, se facilitan 128 bits al registro (100). Cuando es necesario el multiplexador (99) recubre alguno de los bits con bits cero que son recibidos desde el módulo de recubrimiento ("padding") (102).
El texto cifrado y/o los bits ADD son facilitados al módulo GMULT (101) para llevar a cabo la multiplicación del texto cifrado y/o del AAD con la clave de dispersión. Se pueden tener hasta cuatro claves de dispersión almacenadas en la memoria SA (una por canal). El módulo lógico (94) del controlador empieza la multiplicación GHASH. Tal como se ha mostrado, la clave de dispersión (una, hasta cuatro claves de dispersión) es facilitada al módulo GMULT mediante el registro de clave (104). Se comprenderá que la clave de dispersión ha sido ya calculada por el dispositivo AES (31) (figura 3) y almacenada en la memoria SA (34). De acuerdo con ello, cuando los datos del texto cifrado son recibidos por el módulo (95) de alineación GHASH, la clave de dispersión se encuentra lista para su utilización por el módulo GMULT (101) mediante el registro de clave (104).
El resultado de la multiplicación de dispersión es emitido hacia el registro MAC (105). De este modo el GHASH (H, A, C) que está definido por X_{i} es emitido por intermedio del mult iplexador (106) y el registro de salida de datos (109) bajo el control del registro de direcciones (108). El cálculo final de la etiqueta de autenticación T es llevada a cabo en cualquier otro lugar después de someter a XOR el GHASH (H, A, C) con el E (K, Yo) (ver
figura 4).
Haciendo referencia a continuación a la figura 8, se ha mostrado un método para autenticar un paquete de datos de acuerdo con una realización a título de ejemplo de la presente invención. Tal como se ha mostrado, la etapa (141) proporciona un intercambio de clave entre el remitente y el receptor. De esta manera se obtiene la clave de encriptado (clave de cifras) K. Este intercambio de clave puede ser llevado a cabo por ejemplo, una vez cada 100 paquetes o bien una vez cada 1000 paquetes. A continuación la etapa (142) calcula la etapa GHASH H utilizando el dispositivo AES (31) (figura 3). La clave de dispersión H es calculada llevando a cabo expansiones de clave utilizando diez pasadas de expansiones en la clave de cifra K (10 ciclos de reloj) para una clave de cifrado de 128 bits o 12 pasadas (12 ciclos de reloj) para una clave de cifrado de 192 bits o 14 pasadas (14 ciclos de reloj) para una clave de cifrado de 256 bits. La etapa (143) reserva la clave de cifrado recibida K y la clave de dispersión calculada H en la memoria SA (34)
(figura 3).
Después de que la clave de cifrado K y la clave de dispersión H están guardadas en la memoria SA, la etapa (144) utiliza un controlador lógico para autorizar la entrada del paquete en el dispositivo AES (31). La etapa (145) lleva a cabo el encriptado utilizando la modalidad operativa AES-CTR. Finalmente la etapa (146) autentica el paquete mediante el dispositivo GHASH (32) (figura 3) utilizando el multiplicador de Galois.
De manera similar, la figura 9 muestra un método de autenticado de un paquete encriptado de datos en el terminal receptor de acuerdo con una realización a titulo de ejemplo de la presente invención. Tal como se ha mostrado, la etapa (151) proporciona un intercambio de clave entre el emisor y el receptor. De está manera se obtiene la clave de desencriptado (clave de descifrado) K. Este intercambio de clave puede ser llevado a cabo por ejemplo, una vez cada 100 paquetes o bien una vez cada 1000 paquetes. La etapa (152) calcula entonces la clave GHASH H utilizando el dispositivo AES (31) (figura 3). La clave de dispersión H es calculada llevando a cabo expansiones de clave utilizando diez pasadas de expansiones en la clave de descifrado K (10 ciclos de reloj) para una clave de descifrado de 128 bits o 12 pasadas (12 ciclos de reloj), para una clave de descifrado de 192 bits o 14 pasadas (14 ciclos de reloj), para una clave de descifrado de 256 bits. La etapa (153) reserva la clave de descifrado K recibida y la clave de dispersión calculada H en la memoria SA (34) (figura 3).
Después de que la clave de descifrado K y la clave de dispersión H han sido guardadas en la memoria SA, la etapa (154) utiliza un controlador lógico para autorizar el flujo de entrada del paquete encriptado en el dispositivo AES (31). La etapa (155) lleva a cabo el desencriptado utilizando la modalidad AES-CTR de funcionamiento. Finalmente, la etapa (156) autentica el paquete mediante el dispositivo GHASH (32) (figura3) utilizando el multiplicador de Galois.
Si bien la invención se ha mostrado y descrito haciendo referencia a realizaciones específicas, la invención no esta destinada a su limitación a los detalles que se han mostrado. En vez de ello, varias modificaciones pueden ser introducidas en los detalles dentro del ámbito y alcance de los equivalentes de las reivindicaciones y sin salir de la presente invención.

Claims (20)

1. Método de encriptado autenticado que comprende las siguientes etapas:
(a) recibir mediante un dispositivo de Norma de Encriptado Avanzado (Advanced Encryption Standard (AES)) una clave de cifrado;
(b) calcular, mediante el dispositivo AES una clave de dispersión ("hash") utilizando la clave de cifrado recibida;
(c) almacenar la clave de dispersión calculada en una memoria de almacenamiento;
(d) recibir, mediante el dispositivo AES un paquete de datos;
(e) encriptado del paquete de datos por el dispositivo AES utilizando la clave de cifrado recibida;
(f) recibir la clave de dispersión mediante un dispositivo GHASH a partir de la memoria de almacenamiento y;
(g) autenticar el paquete de datos por el dispositivo GHASH utilizando la clave de dispersión.
\vskip1.000000\baselineskip
2. Método según la reivindicación 1 en el que
la etapa de encriptado comprende la utilización de una modalidad de contaje en el dispositivo AES para el encriptado del paquete de datos.
\vskip1.000000\baselineskip
3. Método según la reivindicación 2, en el que
la utilización de la modalidad de contaje comprende someter a XOR iterativamente (a) una parte de texto normal del paquete de datos con (b) un valor encriptado de datos de contaje utilizando la clave de cifrado obteniendo de esta manera un texto cifrado de datos.
\vskip1.000000\baselineskip
4. Método según la reivindicación 1, en el que
la etapa de autenticación comprende
transmisión del texto cifrado al dispositivo GHASH, y
multiplicar iterativamente el texto cifrado por el dispositivo GHASH utilizando la clave de dispersión.
\vskip1.000000\baselineskip
5. Método según la reivindicación 1, en el que
el encriptado del paquete de datos es llevado a cabo después de almacenar la clave de dispersión en la memoria de almacenamiento.
\vskip1.000000\baselineskip
6. Método según la reivindicación 1 que comprende además la etapa de:
posibilitar el flujo del paquete de datos después de que la clave de dispersión ha sido almacenada en la memoria de almacenamiento.
\vskip1.000000\baselineskip
7. Método según la reivindicación 6 en el que
después de posibilitar el flujo del paquete de datos, se procede al encriptado del paquete de datos utilizando la clave de encriptado mediante el dispositivo AES, y
después de posibilitar el flujo del paquete de datos, autenticar el paquete de datos utilizando la clave de dispersión almacenada en la memoria de almacenamiento por el dispositivo GHASH.
\vskip1.000000\baselineskip
8. Método según la reivindicación 1 en el que
el cálculo de la clave de dispersión comprende llevar a cabo 10 pasadas de expansión de clave en la clave de cifrado recibida si la clave de cifrado recibida es un bloque de 128 bits de datos, y
el cálculo de la clave de dispersión comprende la realización de 12 pasadas de expansión de clave en la clave de cifrado recibida si la clave de cifrado recibida es un bloque de 192 bits de datos, y
el cálculo de la clave de dispersión comprende la realización de 14 pasadas de expansión de clave en la clave de cifrado recibida si la clave de cifrado recibida es un bloque de 256 bits de datos.
\vskip1.000000\baselineskip
9. Método según la reivindicación 1 en el que
la recepción de la clave cifrada incluye la recepción, como mínimo, de dos claves de cifrado separadas, a partir de respectivos canales de datos, y
el cálculo de la clave de dispersión comprende el cálculo, como mínimo, de dos claves de dispersión separadas que corresponden a las dos o más claves de cifrado recibidas separadamente.
\vskip1.000000\baselineskip
10. Método según la reivindicación 1 en el que
la recepción del paquete de datos comprende la recepción durante un intervalo de tiempo de un número predeterminado de paquetes de datos,
el cálculo de la clave de dispersión comprende el cálculo de la clave de dispersión una vez por el intervalo de tiempo, y
el almacenamiento de la clave de dispersión calculada comprende el almacenamiento de la clave de dispersión calculada una vez por intervalo de tiempo.
\vskip1.000000\baselineskip
11. Método de desencriptado autenticado que comprende las siguientes etapas:
(a) recibir, mediante un dispositivo de Norma de Encriptado Avanzado (Advanced Encryption Standard (AES)) una clave de cifrado;
(b) calcular, mediante el dispositivo AES una clave de dispersión ("hash") utilizando la clave de cifrado recibida;
(c) almacenar la clave de dispersión calculada en una memoria de almacenamiento;
(d) recibir, mediante el dispositivo AES un paquete de datos;
(e) desencriptar, por medio del dispositivo AES el paquete de datos utilizando la clave de cifrado recibida;
(f) recibir la clave de dispersión mediante un dispositivo GHASH desde la memoria de almacenamiento; y
(g) autenticar el paquete de datos por el dispositivo GHASH utilizando la clave de descomposición.
\vskip1.000000\baselineskip
12. Método según la reivindicación 11 en el que
la etapa de desencriptado comprende la utilización de una modalidad de contaje en el dispositivo AES para desencriptar el paquete de datos.
\vskip1.000000\baselineskip
13. Método según la reivindicación 11 en el que
el desencriptado del paquete de datos es llevado a cabo después de que la clave de dispersión ha sido almacenada en la memoria de almacenamiento.
\vskip1.000000\baselineskip
14. Método según la reivindicación 11 que comprende además la etapa de:
posibilitar el flujo del paquete de datos después de que la clave de dispersión ha sido almacenada en la memoria de almacenamiento.
\vskip1.000000\baselineskip
15. Método según la reivindicación 14 en el que
después de posibilitar el flujo del paquete de datos, proceder al desencriptado del paquete de datos utilizando la clave de encriptado mediante el dispositivo AES, y
después de posibilitar el flujo del paquete de datos, autenticar el paquete de datos utilizando la clave de dispersión almacenada en la memoria de almacenamiento por el dispositivo GHASH.
\vskip1.000000\baselineskip
16. Módulo de encriptado autenticado que comprende:
un dispositivo de Norma de Encriptado Avanzado (Advanced Encryption Standard (AES)) para utilizar una clave de cifrado para calcular una clave de dispersión ("hash"),
una memoria de almacenamiento para almacenar la clave de dispersión calculada, y
un dispositivo GHASH para recibir la clave de dispersión calculada almacenada en la memoria de almacenamiento para autenticar un paquete de datos.
en el que (a) el dispositivo AES encripta el paquete de datos para formar texto cifrado, (b) el dispositivo GHASH recibe el texto cifrado desde el dispositivo AES para multiplicar el texto cifrado recibido con la clave de dispersión calculada y, (c) se calcula una etiqueta de autenticación utilizando el texto cifrado multiplicado por la clave de dispersión calculada.
\vskip1.000000\baselineskip
17. Módulo según la reivindicación 16 que comprende
un controlador para posibilitar flujo de entrada del paquete de datos después de que la clave de dispersión calculada ha sido almacenada en la memoria de almacenamiento.
\vskip1.000000\baselineskip
18. Módulo según la reivindicación 16 en el que
el paquete de datos comprende datos autenticados adicionales (AAD), y
el dispositivo GHASH está configurado para recibir el AAD para multiplicar el AAD por la clave de dispersión calculada.
\vskip1.000000\baselineskip
19. Módulo según la reivindicación 16 en el que
el dispositivo AES está configurado para recibir como mínimo dos claves de encriptado distintas desde respectivos canales de datos, y
el dispositivo AES comprende dos módulos de encriptado para encriptar, como mínimo, dos paquetes distintos de datos recibidos desde los canales de datos respectivos utilizando las dos o más claves de encriptado distintas.
\vskip1.000000\baselineskip
20. Módulo según la reivindicación 16 en el que
el paquete de datos comprende múltiples paquetes de datos, y
la clave de dispersión es calculada por el dispositivo AES una vez para todos los paquetes múltiples recibidos de datos, y
la clave de dispersión es almacenada en la memoria de almacenamiento una vez para todos los múltiples paquetes de datos recibidos.
ES200800722A 2007-03-12 2008-03-12 Clave de encriptado precalculada. Expired - Fee Related ES2364826B2 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/716.916 2007-03-12
US11/716,916 US9209967B2 (en) 2007-03-12 2007-03-12 Precalculated encryption key
US11/716,916 2007-03-12

Publications (2)

Publication Number Publication Date
ES2364826A1 true ES2364826A1 (es) 2011-09-15
ES2364826B2 ES2364826B2 (es) 2013-02-06

Family

ID=39327893

Family Applications (1)

Application Number Title Priority Date Filing Date
ES200800722A Expired - Fee Related ES2364826B2 (es) 2007-03-12 2008-03-12 Clave de encriptado precalculada.

Country Status (6)

Country Link
US (1) US9209967B2 (es)
AU (1) AU2008201156B2 (es)
DE (1) DE102008013785A1 (es)
ES (1) ES2364826B2 (es)
GB (1) GB2447552B (es)
IT (1) ITTO20080186A1 (es)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8467527B2 (en) 2008-12-03 2013-06-18 Intel Corporation Efficient key derivation for end-to-end network security with traffic visibility
US8355499B2 (en) 2008-12-12 2013-01-15 Micron Technology, Inc. Parallel encryption/decryption
US8356177B2 (en) * 2008-12-30 2013-01-15 Cisco Technology, Inc. Key transport in authentication or cryptography
CN101827107A (zh) * 2010-05-11 2010-09-08 南京大学 一种基于ieee802.1ae协议的gcm高速加解密器
DE102011009008A1 (de) 2011-01-20 2012-07-26 Rohde & Schwarz Gmbh & Co. Kg Authentifizierung von verschlüsselten Datenblöcken
DE102011082741A1 (de) 2011-09-15 2013-03-21 Rohde & Schwarz Gmbh & Co Kg Verschlüsselung basierend auf Netzwerkinformationen
US9544075B2 (en) 2012-02-22 2017-01-10 Qualcomm Incorporated Platform for wireless identity transmitter and system using short range wireless broadcast
US10419907B2 (en) 2012-02-22 2019-09-17 Qualcomm Incorporated Proximity application discovery and provisioning
US10360593B2 (en) 2012-04-24 2019-07-23 Qualcomm Incorporated Retail proximity marketing
US9176838B2 (en) 2012-10-19 2015-11-03 Intel Corporation Encrypted data inspection in a network environment
US9400744B2 (en) 2012-10-30 2016-07-26 Mangstor, Inc. Magnetic random access memory journal for multi-level cell flash memory
EP2909962B1 (en) * 2012-11-29 2018-02-28 BlackBerry Limited Authenticated encryption method using working blocks
US9264222B2 (en) 2013-02-28 2016-02-16 Apple Inc. Precomputing internal AES states in counter mode to protect keys used in AES computations
WO2015015702A1 (ja) * 2013-08-02 2015-02-05 日本電気株式会社 認証暗号装置、認証暗号方法および認証暗号用プログラム
US9304941B2 (en) * 2014-02-27 2016-04-05 Mangstor, Inc. Self-encrypting flash drive
EP3032523B1 (en) * 2014-04-10 2019-03-27 Fuji Electric Co., Ltd. Information processing device, program, and storage medium
US8990556B1 (en) 2014-08-13 2015-03-24 Gimbal, Inc. Sharing beacons
US9806887B1 (en) * 2014-09-23 2017-10-31 Amazon Technologies, Inc. Authenticating nonces prior to encrypting and decrypting cryptographic keys
AU2015357253B2 (en) * 2014-12-03 2018-03-08 Nagravision S.A. Block cryptographic method for encrypting/decrypting messages and cryptographic devices for implementing this method
US9107152B1 (en) 2015-03-11 2015-08-11 Gimbal, Inc. Beacon protocol advertising bi-directional communication availability window
US9665699B2 (en) * 2015-03-13 2017-05-30 Nxp B.V. Implementing padding in a white-box implementation
US10108557B2 (en) * 2015-06-25 2018-10-23 Intel Corporation Technologies for memory confidentiality, integrity, and replay protection
CN105227298B (zh) * 2015-09-30 2018-02-16 大连理工大学 基于改进型gcm的智能变电站报文安全传输实现方法
US10110376B1 (en) * 2016-03-28 2018-10-23 Secturion Systems, Inc. Systolic parallel Galois hash computing device
US10491377B2 (en) * 2017-02-28 2019-11-26 Google Llc Hashing using data parallel instructions
EP3661115B1 (en) * 2017-09-01 2024-01-17 Mitsubishi Electric Corporation Encryption device, decryption device, encryption method, decryption method, encryption program, and decryption program
KR102602696B1 (ko) * 2017-10-13 2023-11-16 삼성전자주식회사 암호화 장치 및 복호화 장치, 이들의 동작방법
CN109670320B (zh) * 2017-10-13 2023-04-25 三星电子株式会社 加密设备和解密设备、以及其操作方法
US11070373B2 (en) 2018-02-21 2021-07-20 Ebay Inc. Masked key hopping
CN109714151A (zh) * 2019-01-14 2019-05-03 盛科网络(苏州)有限公司 基于aes-gcm的芯片数据处理方法及系统
US11838402B2 (en) 2019-03-13 2023-12-05 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption
US11394531B2 (en) * 2019-07-12 2022-07-19 Intel Corporation Overhead reduction for link protection

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030223580A1 (en) * 2002-05-23 2003-12-04 Snell Dorian L. Advanced encryption standard (AES) hardware cryptographic engine
WO2004002057A2 (en) * 2002-06-25 2003-12-31 Koninklijke Philips Electronics N.V. Round key generation for aes rijndael block cipher
US20060002549A1 (en) * 2004-06-17 2006-01-05 Prasad Avasarala Generating keys having one of a number of key sizes

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6937727B2 (en) * 2001-06-08 2005-08-30 Corrent Corporation Circuit and method for implementing the advanced encryption standard block cipher algorithm in a system having a plurality of channels
US20060034456A1 (en) * 2002-02-01 2006-02-16 Secure Choice Llc Method and system for performing perfectly secure key exchange and authenticated messaging
US7418100B2 (en) * 2004-10-20 2008-08-26 Cisco Technology, Inc. Enciphering method
KR100675837B1 (ko) * 2004-12-13 2007-01-29 한국전자통신연구원 고속 gcm-aes 블록 암호화 장치 및 방법
US7886143B2 (en) * 2006-11-30 2011-02-08 Broadcom Corporation Multi-data rate cryptography architecture for network security

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030223580A1 (en) * 2002-05-23 2003-12-04 Snell Dorian L. Advanced encryption standard (AES) hardware cryptographic engine
WO2004002057A2 (en) * 2002-06-25 2003-12-31 Koninklijke Philips Electronics N.V. Round key generation for aes rijndael block cipher
US20060002549A1 (en) * 2004-06-17 2006-01-05 Prasad Avasarala Generating keys having one of a number of key sizes

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
David A. McGrew;John Viega. "The Galois/Counter Mode of Operation (GCM)". 31-05-2005. Disponible en: http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/proposedmodes/gcm/gcm-revised-spec.pdf *

Also Published As

Publication number Publication date
AU2008201156B2 (en) 2011-06-23
GB2447552B (en) 2012-02-08
ITTO20080186A1 (it) 2008-09-13
ES2364826B2 (es) 2013-02-06
US20100027783A1 (en) 2010-02-04
DE102008013785A9 (de) 2008-12-24
DE102008013785A1 (de) 2008-09-18
US9209967B2 (en) 2015-12-08
GB0804483D0 (en) 2008-04-16
GB2447552A (en) 2008-09-17
AU2008201156A1 (en) 2008-10-02

Similar Documents

Publication Publication Date Title
ES2364826B2 (es) Clave de encriptado precalculada.
Wu et al. AEGIS: A fast authenticated encryption algorithm
US10320554B1 (en) Differential power analysis resistant encryption and decryption functions
US8301905B2 (en) System and method for encrypting data
US20110255689A1 (en) Multiple-mode cryptographic module usable with memory controllers
Karthigaikumar et al. Simulation of image encryption using AES algorithm
RU2005104953A (ru) Эффективное шифрование и аутентификация для систем обработки данных
US20110231673A1 (en) Cryptographic processing using a processor
JP2004363739A (ja) 改竄検知可能な、共通鍵暗号の暗号化装置または復号化装置
CN111066077B (zh) 加密装置、加密方法、解密装置以及解密方法
US8442217B2 (en) Method of implementing one way hash functions and apparatus therefor
Sarkar et al. Role of cryptography in network security
Stallings NIST block cipher modes of operation for authentication and combined confidentiality and authentication
Joshy et al. Text to image encryption technique using RGB substitution and AES
Paar et al. Message authentication codes (MACs)
Buell Modern symmetric ciphers—Des and Aes
JP4395527B2 (ja) 情報処理装置
JP6631989B2 (ja) 暗号化装置、制御方法、及びプログラム
Landge et al. VHDL based Blowfish implementation for secured embedded system design
KR100494560B1 (ko) Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법
Yap et al. Security analysis of GCM for communication
KR102348802B1 (ko) Aes 암호화 및 복호화 회로
KR100546777B1 (ko) Seed 암/복호화 장치, 암/복호화 방법, 라운드 처리 방법, 이에 적합한 f함수 처리기
Jagetiya et al. Evolution of Information Security Algorithms
KR20080075725A (ko) 와이브로 무선인터넷 보안을 위한 다중모드 보안장치

Legal Events

Date Code Title Description
FG2A Definitive protection

Ref document number: 2364826

Country of ref document: ES

Kind code of ref document: B2

Effective date: 20130206

PC2A Transfer of patent

Owner name: EXELIS, INC.

Effective date: 20130311

FD2A Announcement of lapse in spain

Effective date: 20240426