ES2548860T3 - Codificador, procedimiento de codificación, decodificador, procedimiento de decodificación y medio de grabación legible por ordenador que tiene almacenado un programa en el mismo - Google Patents

Codificador, procedimiento de codificación, decodificador, procedimiento de decodificación y medio de grabación legible por ordenador que tiene almacenado un programa en el mismo Download PDF

Info

Publication number
ES2548860T3
ES2548860T3 ES07075185.4T ES07075185T ES2548860T3 ES 2548860 T3 ES2548860 T3 ES 2548860T3 ES 07075185 T ES07075185 T ES 07075185T ES 2548860 T3 ES2548860 T3 ES 2548860T3
Authority
ES
Spain
Prior art keywords
data
mac
blocks
procedure
decoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES07075185.4T
Other languages
English (en)
Inventor
Toru Sorimachi
Toshio Tokita
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of ES2548860T3 publication Critical patent/ES2548860T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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/10Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with particular housing, physical features or manual controls
    • 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
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Un aparato de codificación que comprende: una unidad (100) de codificación para introducir datos que han de codificarse y producir datos codificados, y un generador (200) de códigos de autenticación de mensajes (MAC) para introducir los datos codificados producidos por la unidad de codificación y generar un MAC para garantizar una integridad de los datos codificados, en el que el generador de MAC inicia la generación del MAC antes de que la unidad de codificación acabe de codificar los datos y en el que se codifican datos de texto en claro que incluyen al menos un dato en bloques de texto en claro formando datos de texto cifrado usando la unidad de codificación y se genera un código de autenticación de mensajes (MAC) para garantizar una integridad de los datos de texto cifrado, en el que la unidad (100) de codificación tiene un primer bucle de retroalimentación para retroalimentar a la unidad (100) de codificación los datos en bloques de texto cifrado Ci producidos por la unidad (100) de codificación cuando la unidad (100) de codificación codifica los datos en bloques de texto en claro, para introducir los datos de texto en claro, realizando un procedimiento de codificación retroalimentando los datos en bloques de texto cifrado Ci a través del primer bucle de retroalimentación, y produciendo los datos en bloques de texto cifrado Ci, en el que el aparato de codificación comprende, además, una línea (69) de alimentación para introducir los datos en bloques de texto cifrado Ci desde la unidad (100) de codificación y producir los datos en bloques de texto cifrado Ci para el generador (200) de códigos de autenticación de mensajes (MAC), y en el que el generador (200) de códigos de autenticación de mensajes (MAC) tiene un segundo bucle de retroalimentación para retroalimentar un resultado de MAC intermedio calculado Ti, para introducir los datos en bloques de texto cifrado Ci desde la línea (69) de alimentación, calcular un resultado de MAC intermedio en función de los datos en bloques de texto cifrado Ci introducidos, retroalimentar el resultado de MAC intermedio como el resultado de MAC intermedio calculado Ti por el segundo bucle de retroalimentación, y generar el MAC para garantizar la integridad de los datos de texto cifrado, caracterizado porque la unidad de codificación y el generador de MAC realizan alternativamente el procedimiento de codificación y un procedimiento de generación de MAC compartiendo un módulo de codificación y un bucle de retroalimentación (67, 68), en el que el bucle de retroalimentación (67, 68) incluye: una memoria para, respectivamente, almacenar y producir resultados del procedimiento de codificación y del procedimiento de generación de MAC, y un selector para seleccionar alternativamente los resultados del procedimiento de codificación y del procedimiento de generación de MAC de la memoria para realizar, alternativamente, el procedimiento de codificación y el procedimiento de generación de MAC.

Description

5
10
15
20
25
30
35
40
45
E07075185
01-10-2015
DESCRIPCIÓN
Codificador, procedimiento de codificación, decodificador, procedimiento de decodificación y medio de grabación legible por ordenador que tiene almacenado un programa en el mismo
Campo técnico
La presente invención versa sobre un aparato de codificación, un aparato de decodificación y procedimiento de codificación/decodificación; en particular, sobre una invención que permite codificar/decodificar otro dato mientras se codifica/decodifica cierto otro dato.
Técnica antecedente
La Fig. 43 muestra un diagrama de bloques de un codificador que realiza una codificación del modo de encadenamiento de bloques de cifrado (denominado en lo sucesivo modo CBC).
Una codificación del modo CBC se realiza como sigue: en primer lugar, la unidad de bloques introduce datos en bloques de texto en claro Mi de 64 bits; los datos de entrada son codificados por un módulo 51 de codificación usando una clave K de codificación; los datos en bloques de texto cifrado Ci y los datos en bloques de texto en claro Mi+1, después de los datos Mi, son objeto de una operación lógica de O excluyente; y el resultado objeto de una operación lógica de O excluyente es suministrado al módulo 51 de codificación para su codificación, usando la clave K de codificación, como siguiente entrada para el procedimiento de codificación. A continuación, este procedimiento se encadena reiteradamente, y la totalidad de los datos de texto en claro M será codificada formando los datos de texto cifrado C.
La Fig. 44 muestra un diagrama de bloques de un aparato de decodificación que realiza una decodificación del modo CBC.
El aparato de decodificación mostrado en la Fig. 44 es un aparato para decodificar los datos de texto cifrado codificados por el aparato de codificación mostrado en la Fig. 43. Los datos en bloques de texto cifrado C1 son introducidos en un módulo 71 de decodificación para su decodificación, usando la clave K de codificación, objeto de una operación lógica de O excluyente con un valor inicial IV, y decodificados formando datos en bloques de texto en claro M1. Cuando se introducen los datos en bloques de texto cifrado C2, el módulo 71 de decodificación decodifica los datos en bloques C2 usando la clave K de codificación, objeto de una operación lógica de O excluyente con los datos en bloques de texto cifrado C1, que han sido previamente introducidos y almacenados en un registro 111, y decodificados formando datos en bloques de texto en claro M2.
Aquí, se puede proporcionar el registro 111 dentro de un selector 73.
El modo CBC puede representarse por medio de las expresiones siguientes, en las que los datos en bloques de texto en claro son Mi (i = 1, 2, …, n), los datos en bloques de texto cifrado Ci (i = 1, 2, …, n), el procedimiento de codificación que usa la clave K de codificación está definido como Ek, y el procedimiento de decodificación que usa la clave K de codificación está definido como Dk:
C1 = Ek (M1 EXR IV) Ci = Ek (Mi EXR Ci-1) (i = 2, 3, …, n) M1 = Dk (C1) EXR IV Mi = Dk (Ci) EXR Ci-1 (i = 2, 3, …, n)
Aquí, EXR representa una operación de O excluyente. IV representa un valor inicial que ha de usarse para una etapa inicial de los procedimientos de codificación y de decodificación. Se usa el mismo valor inicial IV tanto en el codificador como en el decodificador.
La Fig. 45 muestra un codificador que realiza una codificación del modo de retroalimentación de salidas (denominado en lo sucesivo modo OFB).
La Fig. 46 muestra un decodificador que realiza una decodificación del modo OFB.
La Fig. 47 muestra un codificador que realiza una codificación del modo de retroalimentación de cifrado (denominado en lo sucesivo modo CFB).
La Fig. 48 muestra un decodificador que realiza una decodificación según el modo CFB.
Aquí, se puede proporcionar el registro 111 dentro del selector 73.
La Fig. 49 es un diagrama de bloques que muestra un procedimiento para codificar datos de texto en claro M y datos de texto en claro N usando el codificador del modo CBC.
10
15
20
25
30
35
40
45
50
55
E07075185
01-10-2015
En lo que sigue se explicará un caso en el que los datos de texto en claro M incluyen datos en bloques de texto en claro M1, datos en bloques de texto en claro M2, y datos de texto en claro M3, y los datos de texto en claro N incluyen únicamente datos en bloques de texto en claro N1.
Cuando se inicia la codificación de datos en bloques de texto en claro M1, se producen datos en bloques de texto cifrado C1, y los datos en bloques de texto cifrado C1 son también usados para el procedimiento de codificación de datos en bloques de texto en claro M2. Así, los datos en bloques de texto cifrado Ci son retroalimentados al procedimiento de codificación de datos en bloques de texto en claro Mi+1, lo que forma un procedimiento en cadena. En consecuencia, no es posible codificar los datos en bloques de texto en claro N1 a no ser que haya acabado el procedimiento de codificación de los datos en bloques de texto en claro M1 hasta los datos en bloques de texto en claro M3.
La Fig. 50 muestra el procedimiento de codificación del modo CBC, al igual que la Fig. 49.
En el caso de la Fig. 50, lleva mucho tiempo preparar cada uno de los datos en bloques de texto en claro M1, los datos en bloques de texto en claro M2, y los datos en bloques de texto en claro M3. Mientras, la codificación ha terminado antes de que se preparen los siguientes datos en bloques de texto en claro Mi+1, lo que genera un tiempo en reposo (el tiempo de T1 a T2, T3 a T4). Así, aunque se genere un tiempo en reposo, tiene que llevarse a cabo el procedimiento en cadena, de modo que los datos en bloques de texto cifrado Ci deberían ser retroalimentados en el procedimiento de codificación de los datos de texto en claro Mi+1. Por lo tanto, no puede realizarse el procedimiento para los datos en bloques de texto en claro N1 hasta que termine el procedimiento de codificación de los datos en bloques de texto en claro M3.
La Fig. 51 muestra un procedimiento de confidencialidad de datos y un procedimiento de garantía de la integridad de datos. Los datos de texto en claro M, por ejemplo, son codificados en los datos de texto cifrado C por el codificador del modo OFB. El codificador del modo CBC calcula un código de autenticación de mensajes (MAC) P, que es añadido al último bit de los datos de texto cifrado C. En caso de recibir datos que están codificados y a los que se añada el MAC P, así como de que el decodificador del modo OFB decodifique los datos de texto cifrado C formando los datos de texto en claro M, el MAC P se calcula a partir de los datos de texto cifrado C por el decodificador del modo CBC. Es posible confirmar que los datos de texto cifrado C transmitidos no han sido manipulados comparando el MAC P obtenido con el MAC P transmitido y recibido.
La Fig. 52 muestra un procedimiento para el procedimiento de confidencialidad y el procedimiento del cálculo del MAC mostrados en la Fig. 51.
Los datos en bloques de texto en claro M1 hasta los datos en bloques de texto en claro M3 son codificados en serie formando los datos en bloques de texto cifrado C1 hasta los datos en bloques de texto cifrado C3. Posteriormente, se calcula el MAC P introduciendo en serie los datos en bloques de texto cifrado C1 hasta los datos en bloques de texto cifrado C3.
El codificador y el decodificador de cada modo mostrado en las Figuras 42 a 48 tienen el problema siguiente: los datos obtenidos por el procedimiento de codificación y de decodificación de los datos del bloque anterior deberían ser retroalimentados y usados para codificar y decodificar los datos del bloque siguiente; existe el problema de que, una vez que se inicie el procedimiento de codificación o el procedimiento de decodificación, no puede comenzar otro procedimiento de codificación u otro procedimiento de decodificación a no ser que finalicen todas las etapas del procedimiento de codificación o del procedimiento de decodificación. En consecuencia, si el procedimiento de codificación/decodificación que ya se ha iniciado previamente requiere mucho tiempo, el subsiguiente procedimiento de codificación/decodificación debería esperar mucho tiempo.
Además, en caso de realizar el procedimiento de confidencialidad y el procedimiento de garantía de la integridad, el procedimiento de garantía de la integridad debería llevarse a cabo tras realizar el procedimiento de confidencialidad, que lleva mucho tiempo de proceso.
El documento US 5 764 762 da a conocer un registro de paquetes de datos codificados para su uso en un sistema remoto de datos transaccionales medidos.
Es un objeto de la realización preferente de la presente invención obtener un codificador, un decodificador, un procedimiento de codificación y un procedimiento de decodificación que puedan realizar un procedimiento de codificación/decodificación de otro dato mientras se realiza el procedimiento de codificación/decodificación de cierto dato.
Además, es otro objeto de la realización preferente de la presente invención realizar la codificación/decodificación de los datos que tengan una prioridad mayor que otros datos.
Además, es otro objeto de la realización preferente de la presente invención realizar el procedimiento de confidencialidad y el procedimiento de garantía de la integridad en paralelo a velocidad elevada.
5
10
15
20
25
30
35
40
45
50
55
60
E07075185
01-10-2015
Divulgación de la invención
Según la presente invención, se proporcionan procedimientos, aparatos y medios de almacenamiento legibles por ordenador según las reivindicaciones independientes.
Breve descripción de los dibujos
La Fig. 1 muestra un codificador del modo CBC según la primera realización. La Fig. 2 muestra un procedimiento de operación del codificador del modo CBC. La Fig. 3 es un diagrama de flujo que muestra la operación del codificador del modo CBC. La Fig. 4 es un diagrama de flujo que muestra la operación de un selector 54. La Fig. 5 es un diagrama de flujo que muestra un procedimiento de interrupción de un conmutador 57. La Fig. 6 muestra otro ejemplo de una memoria 55. La Fig. 7 es un diagrama de flujo que muestra un procedimiento de interrupción de la memoria 55. La Fig. 8 muestra otro ejemplo de la memoria 55. La Fig. 9 muestra un procesamiento de prioridades. La Fig. 10 muestra otro procesamiento de prioridades. La Fig. 11 muestra otro procesamiento de prioridades. La Fig. 12 muestra un caso en el que se proporciona la memoria 55 en paralelo con una línea 66 de retroalimentación. La Fig. 13 muestra un procedimiento de operación del codificador de la Fig. 12. La Fig. 14 muestra un caso en el que se proporciona la memoria 55 en paralelo con una línea 67 de retroalimentación. La Fig. 15 muestra un procedimiento de operación del codificador de la Fig. 14. La Fig. 16 muestra un codificador del modo OFB. La Fig. 17 muestra un procedimiento de operación del codificador de la Fig. 16. La Fig. 18 muestra un codificador del modo CFB. La Fig. 19 muestra un procedimiento de operación del codificador de la Fig. 18. La Fig. 20 muestra un decodificador del modo CBC. La Fig. 21 muestra un procedimiento de operación del decodificador de la Fig. 20. La Fig. 22 muestra un decodificador del modo OFB. La Fig. 23 muestra un procedimiento de operación del decodificador de la Fig. 22. La Fig. 24 muestra un decodificador del modo CFB. La Fig. 25 muestra un procedimiento de operación del decodificador de la Fig. 24. La Fig. 26 muestra un codificador del modo CBC que almacena una clave. La Fig. 27 muestra un procedimiento de operación del codificador del modo CBC. La Fig. 28 muestra un decodificador del modo CBC que almacena una clave. La Fig. 29 muestra un procedimiento de operación del decodificador del modo CBC. La Fig. 30 muestra un procedimiento de operación de un codificador que tiene una unidad 100 de codificación y un generador 200 de MAC. La Fig. 31 muestra un diagrama de flujo de un codificador que tiene una unidad 100 de codificación y un generador 200 de MAC. La Fig. 32 muestra un codificador en el que una unidad 100 de codificación y un generador 200 de MAC están unidos como una sola unidad. La Fig. 33 muestra un procedimiento de operación del codificador en el que una unidad 100 de codificación y un generador 200 de MAC están unidos como una sola unidad. La Fig. 34 muestra un decodificador que tiene una unidad 300 de decodificación y un generador 400 de MAC. La Fig. 35 muestra un decodificador en el que una unidad 300 de decodificación y un generador 400 de MAC están unidos como una sola unidad. La Fig. 36 muestra un procedimiento de operación del decodificador en el que una unidad 300 de decodificación y un generador 400 de MAC están unidos como una sola unidad. La Fig. 37 muestra un codificador que tiene una unidad 100 de codificación y un generador 200 de MAC según la segunda realización. La Fig. 38 muestra un decodificador que tiene una unidad 300 de decodificación y un generador 400 de MAC. La Fig. 39 muestra una configuración modelo de un módulo 51 de codificación que usa una clave K de codificación. La Fig. 40 muestra un ejemplo de implementación de un soporte físico de un codificador y un decodificador. La Fig. 41 muestra un ejemplo de implementación de un soporte físico de un codificador y un decodificador. La Fig. 42 muestra un caso en el que un programa 47 de cifrado es llamado por un programa 46 de aplicación. La Fig. 43 muestra un codificador convencional del modo CBC. La Fig. 44 muestra un decodificador convencional del modo CBC. La Fig. 45 muestra un codificador convencional del modo OFB. La Fig. 46 muestra un decodificador convencional del modo OFB.
10
15
20
25
30
35
40
45
50
55
E07075185
01-10-2015
La Fig. 47 muestra un codificador convencional del modo CFB. La Fig. 48 muestra un decodificador convencional del modo CFB. La Fig. 49 muestra un procedimiento convencional de codificación. La Fig. 50 muestra un procedimiento convencional de codificación. La Fig. 51 explica un procedimiento de confidencialidad y un procedimiento de garantía de la integridad. La Fig. 52 muestra un procedimiento de operación de un procedimiento convencional de confidencialidad y de un procedimiento convencional de garantía de la integridad.
Mejor modo de realización de la invención
Realización 1
La Fig. 1 muestra un codificador del modo CBC según la presente realización.
El codificador de la presente realización está configurado por un selector 54, un circuito 58 de O excluyente, un módulo 51 de codificación que usa una clave K de codificación, y una memoria 55. Una unidad 52 de codificación incluye el circuito 58 de O excluyente y el módulo 51 de codificación que usa la clave K de codificación. El selector 54 y el módulo 51 de codificación que usa la clave K de codificación forman un bucle de retroalimentación con líneas 65, 66 y 67 de retroalimentación. Los datos en bloques de texto cifrado Ci codificados por el módulo 51 de codificación que usa la clave K de codificación son introducidos nuevamente en el circuito 58 de O excluyente a través del bucle de retroalimentación, y los datos de entrada del módulo Si se generan en el circuito 58 de O excluyente. A continuación, los datos de entrada del módulo Si generados son suministrados al módulo 51 de codificación que usa la clave K de codificación.
Se proporciona la memoria 55 en paralelo con la línea 65 de retroalimentación. La memoria 55 incluye un registro 56 y un conmutador 57. El conmutador 57 conmuta la entrada al registro 56 o que se ignore una salida del módulo 51 de codificación que usa la clave K de codificación. Esta conmutación es realizada, por ejemplo, por una interrupción IT. Cuando se genera la interrupción IT, el conmutador 57 se conecta a E, y cuando se resuelve la interrupción, el conmutador 57 se conecta a F. El registro 56 da entrada a los datos en bloques de texto cifrado Ci suministrados a través de E y los almacena. Los datos en bloques de texto cifrado Ci son dados al selector 54. Se proporcionan al selector 54 tres entradas A, B y C y él selecciona una de las tres. Esta selección depende de la interrupción IT.
La Fig.2 muestra un procedimiento de operación del codificador mostrado en la Fig. 1.
La Fig. 3 es un diagrama de flujo que muestra la operación del codificador mostrado en la Fig. 1.
La entrada del selector 54 se pone en A cuando se suministra energía eléctrica al codificador y el conmutador 57 está conectado a E. Además, cuando se solicita codificar datos de texto en claro N, se genera una interrupción IT. La interrupción IT se mantiene ACTIVADA a no ser que se resuelva la solicitud de codificar los datos de texto en claro N. Además, los datos de texto en claro M se codifican usando la clave K1, y los datos de texto en claro N se codifican usando la clave K2. Cuando se genera la interrupción IT o se resuelve la interrupción IT, vuelve a suministrarse nuevamente la clave K1 o la clave K2 al módulo de codificación.
En el instante T0, se suministra la clave K1 y se inicia el procedimiento de codificación de los datos de texto en claro M1. Cuando el procedimiento de codificación de los datos de texto en claro M1 se inicia en el instante T0, la entrada del selector 54 es conmutada a B después de que se introduce una vez el valor inicial IT desde la entrada A del selector 54. Además, en el instante X, durante el cual se están codificando los datos de texto en claro M1 usando la clave K1, se supone que se genera una interrupción IT para solicitar la codificación de los datos en bloques de texto en claro N1. Los datos en bloques de texto cifrado C1 llegan a ser almacenados en la memoria 55 antes del instante T1. A continuación, en el instante T1, se suministra la clave K2 al módulo 51 de codificación debido a la generación de la interrupción IT. Además, el selector 54 pone la entrada en A en el instante T1. El conmutador 57 se conecta a F en el instante T1. Después del instante T1, los datos en bloques de texto en claro N1 son codificados usando la clave K2, y se producen los datos en bloques de texto cifrado D1. En el instante Y se supone que termina la codificación de los datos en bloques de texto en claro N1 y se resuelve la interrupción IT. Debido a la resolución de la interrupción IT, en el instante T2, se suministra la clave K1 al módulo 51 de codificación, la entrada del selector 54 se conmuta a C, y el conmutador 57 se conecta a E. Al conmutar el selector 54 a C, se introducen los datos en bloques de texto cifrado C1 almacenados en la memoria 55 para codificar los datos en bloques de texto en claro M2, los datos en bloques de texto en claro M2 son codificados por el módulo de codificación usando la clave K1, y se producen los datos en bloques de texto cifrado C2. Antes del instante T3, la entrada del selector 54 se conmuta a B. En el caso de codificar los datos en bloques de texto en claro M3, se retroalimentan los datos en bloques de texto cifrado C2 desde una línea 65 de retroalimentación de un bucle de retroalimentación y son introducidos, los datos en bloques de texto en claro M3 son codificados por el módulo de codificación usando la clave K1, y se producen los datos en bloques de texto cifrado C3.
Cuando se usan las mismas claves para codificar los datos de texto en claro M y los datos de texto en claro N (K1 = K2), es suficiente suministrar la clave una vez en el momento de inicio del procedimiento de codificación.
10
15
20
25
30
35
40
45
50
55
E07075185
01-10-2015
Se explicará la operación total con referencia al diagrama de flujo de la Fig. 3.
En la etapa S1, se inicia y prosigue el procedimiento de codificación de los datos de texto en claro M. Cuando acaban de procesarse los datos finales en bloques, el procedimiento de codificación termina. En la etapa S2, se observa una interrupción IT generada en un instante arbitrario. Cuando la interrupción IT se genera mientras se procesan los datos en bloques de texto en claro Mi, en la etapa S3, los datos en bloques de texto cifrado Ci que se están procesando son almacenados en el registro 56 de la memoria 55. En la etapa S4, se lleva a cabo el procedimiento de codificación de los datos de texto en claro N, que la interrupción IT solicita que se codifiquen. Este procedimiento de codificación de la etapa S4 se realiza de forma continua hasta que se libera la interrupción IT, según se muestra en la etapa S5. Cuando se libera la interrupción IT, en la etapa S6, los datos en bloques de texto en claro Mi son codificados usando los datos en bloques de texto cifrado Ci almacenados en el registro 56 de la memoria 55. Después, el procedimiento vuelve a la etapa S1, y se continuará el procedimiento de codificación.
La Fig. 4 muestra la operación del selector 54.
Cuando se ACTIVA la energía eléctrica, la entrada se pone en A según se muestra en la etapa S11. Cuando el procedimiento de codificación se inicia en la etapa S12, la entrada se pone en B en la etapa S13. Concretamente, se usan los datos en bloques de texto cifrado Ci retroalimentados desde la línea 65 de retroalimentación del bucle de retroalimentación. En la etapa S14, si se detecta que los datos en bloques que se están procesando son los datos finales, el procedimiento vuelve a la etapa S11, en la que el estado es igual, ya que la energía eléctrica está ACTIVADA. En la etapa S15, si se detecta que se genera la interrupción IT, la entrada se pone en A en la etapa S16, y si se inicia el procedimiento de codificación, la entrada se pone en B en la etapa S18. Hasta que se resuelva la interrupción IT, la entrada se mantiene en B. Es decir, se usan los datos en bloques de texto cifrado Ci retroalimentados desde la línea 65 de retroalimentación del bucle de retroalimentación. En la etapa S19, si se detecta que la interrupción IT está resuelta, la entrada se pone en C en la etapa S20. Al poner la entrada en C, se introducen los datos en bloques de texto cifrado Ci almacenados en la memoria 55. Cuando el procedimiento de codificación usa la entrada de C, el procedimiento vuelve a la etapa S13 y la entrada se pone en B.
Según se ha descrito más arriba, el selector 54 puede conmutarse en función de la generación de la interrupción IT.
El procedimiento de codificación de los datos de texto en claro M también se puede iniciar en un instante arbitrario en función de la generación de la interrupción IT.
La Fig. 5 es un diagrama de flujo que muestra el procesamiento de la interrupción por el conmutador 57.
Cuando se ACTIVA la energía eléctrica y en el caso del procedimiento de codificación de los primeros datos de texto en claro posteriores, el conmutador 57 se conecta a E. Cuando se genera la interrupción IT en la etapa S31, el conmutador 57 conmuta de E a F. Después, en la etapa S33, si se detecta que la interrupción IT está resuelta, el conmutador 57 conmuta de F a E. Así, el conmutador 57 ignora los datos en bloques de texto cifrado Ci desde la generación hasta la resolución de la interrupción. En consecuencia, el registro 56 de la memoria 55 mantiene los datos en bloques de texto cifrado Ci, que fueron generados en el momento de la generación de la interrupción IT.
Según se ha descrito más arriba, las operaciones del codificador ilustrado en las Figuras 1 a 5 muestran el mecanismo de procesamiento de interrupciones, que recibe la solicitud de codificar los datos de texto en claro N antes de la finalización de la codificación de los datos de texto en claro M en el codificador para codificar los datos en bloques de texto en claro Mi (i = 1, 2, 3, …) incluidos en los datos de texto en claro M y los datos en bloques de texto en claro Nj (j = 1, 2, 3, …) incluidos en los datos de texto en claro N.
Además, el codificador mostrado en las Figuras 1 a 5 incluye el módulo 51 de codificación para codificar los datos en bloques de texto en claro Mi y producir los datos en bloques de texto cifrado Ci, los bucles 65 y 66 de retroalimentación para retroalimentar los datos en bloques de texto cifrado Ci producidos en el módulo 51 de codificación a la unidad 52 de codificación a través de la línea 65 de retroalimentación, y la memoria 55, proporcionada en paralelo con la línea 65 de retroalimentación del bucle de retroalimentación, para recibir la solicitud de codificación de los datos de texto en claro N por la interrupción, y almacenar los datos en bloques de texto cifrado Ci retroalimentados si los datos en bloques de texto en claro Mi+1 no son codificados con posterioridad a los datos en bloques de texto en claro Mi iniciando el procedimiento de codificación de cualquiera de los datos en bloques de texto en claro N.
Además, el codificador mostrado en las Figuras 1 a 5 incluye el selector 54 para seleccionar los datos en bloques de texto cifrado Ci, retroalimentados por la línea 65 de retroalimentación del bucle de retroalimentación, y suministrar los datos en bloques de texto cifrado Ci a través del bucle de retroalimentación cuando los datos en bloques de texto en claro Mi+1 son codificados de forma subsiguiente a los datos en bloques de texto en claro Mi, y para seleccionar los datos en bloques de texto cifrado Ci almacenados en la memoria 55 y suministrarlos a la unidad 52 de codificación a través del bucle de retroalimentación cuando los datos en bloques de texto en claro Mi+1 no son codificados a continuación de los datos en bloques de texto en claro Mi, y de cualquier dato de texto en claro N.
10
15
20
25
30
35
40
45
50
E07075185
01-10-2015
La memoria 55 almacena el estado del codificador en caso de que se genere la interrupción IT. Almacenando el estado del procedimiento de codificación, se hace posible volver al estado original de la codificación de cierto dato aunque se realice la codificación de otro dato durante el tiempo en que se codifica el cierto dato. Concretamente, usando los datos almacenados en la memoria, el estado del codificador puede volver al estado que es completamente idéntico al estado en el momento en que la codificación es interrumpida, lo que permite seguir el procedimiento de codificación interrumpido.
La Fig. 6 muestra otro ejemplo de configuración de la memoria 55.
La memoria 55 incluye una unidad 52 de control de interrupciones, un conmutador 96 de entrada, un conmutador 97 de salida, y varios registros (REG 1, 2, 3). Proporcionando los varios registros así, se hace posible recibir varias interrupciones.
La Fig. 7 muestra el procesamiento de la interrupción llevado a cabo por la memoria 55.
Cuando se genera la interrupción IT, en la etapa S41, se almacena el número k, que el el número del registro k que se usa en en ese momento. En la etapa S42, el conmutador 96 de entrada y el conmutador 97 de salida se conectan al registro 1, que es uno de los registros distintos del registro k. En este estado, se lleva a cabo el procedimiento de codificación de los datos de texto en claro N. Además, se observa si se genera otra interrupción durante el tiempo en que se codifican los datos de texto en claro N. Cuando se detecta que se genera otra interrupción IT en la etapa S43, vuelve a invocarse nuevamente la etapa S40, que es el procedimiento para procesar la interrupción. De esta manera, siempre que se genere la interrupción IT, se invoca de manera recursiva a la etapa S40. En consecuencia, pueden realizarse varios procesos jerárquicos para el procesamiento de la interrupción. En la etapa S44, se comprueba si está resuelta la interrupción. Cuando la interrupción está resuelta, el conmutador 96 de entrada y el conmutador 97 de salida se conmutan al registro k usando el número k almacenado en la memoria. En el caso de la Fig. 6, la memoria 55 incluye tres registros, de modo que pueden llevarse a cabo procesos jerárquicos de 3 capas para procesar la interrupción.
La Fig. 8 muestra otro ejemplo de configuración de la memoria 55.
La memoria 55 incluye una pila 64. La pila 64 es un registro en el que la primera entrada es la última salida (FILO). Cuando se genera la interrupción IT durante el tiempo en que se usa una pila 1, los datos almacenados en la pila 1 son transferidos a una pila 2, y los datos posteriores son apilados en la pila 1. Cuando se resuelve la interrupción IT, se da salida a los datos apilados en la pila 1, y los datos almacenados en la pila 2 son devueltos a la pila 1. La Fig. 8 muestra un caso en el que pueden llevarse a cabo procesos jerárquicos de 4 capas para procesar la interrupción.
Según se muestra en la Fig. 6, cuando es posible realizar varios procesos jerárquicos para procesar la interrupción, puede asignarse una prioridad a cada una de las interrupciones. Por ejemplo, se asigna una prioridad 1 a la interrupción IT1, y se asigna una prioridad 2, que significa una prioridad inferior a la prioridad 1, a la interrupción IT2. Asignando la prioridad de esta manera, es posible posponer el proceso para la prioridad 2 cuando se genere la interrupción IT1 que tiene la prioridad 1.
La Fig. 9 muestra un caso en el que el procedimiento de codificación que tiene la prioridad 1 se lleva a cabo antes que el procedimiento de codificación que tiene la prioridad 2. En este caso, el procedimiento de codificación que tiene la prioridad 1 termina primero.
La Fig. 10 muestra un caso en el que ambos procedimientos de codificación tienen la misma prioridad.
Cuando las prioridades son iguales, cada uno de los datos en bloques de texto en claro de ambos procedimientos de codificación es codificado de forma alterna.
La Fig. 11 muestra un caso en el que se codifican datos que tienen la prioridad 1 y datos que tienen la prioridad 2.
Asignando la prioridad a cada interrupción según se muestra en las Figuras 9 a 11, es posible llevar a cabo un procedimiento de codificación que resulte deseable para el usuario. En caso de procesar datos de un asunto urgente
o datos de poca longitud, puede llevarse a cabo un procesamiento eficaz asignando una prioridad mayor a tales datos.
La Fig. 12 muestra un caso en el que la memoria 55 es puesta en paralelo con la línea 66 de retroalimentación.
El circuito 58 de O excluyente y el módulo 51 de codificación que usa la clave K de codificación constituyen la unidad 52 de codificación.
La Fig. 13 muestra un procedimiento de operación del codificador de la Fig. 12.
Cuando las siguientes conexiones son seleccionadas por el primer selector 61 y el segundo selector 62, se permite que estos selectores operen de la misma manera que el selector 54 de la Fig. 1.
10
15
20
25
30
35
40
45
50
55
E07075185
01-10-2015
el primer selector 61 + el segundo selector 62 = el selector 54
A + D = A B + D = B A + C = C B + C = C
En la Fig. 13, cuando el segundo selector 62 selecciona D, se hace efectiva la selección (A o B) del primer selector 61, y cuando el segundo selector 62 selecciona C, se da salida al contenido de la memoria 55. Concretamente, el segundo selector 62 debería seleccionar C si se desea usar el contenido de la memoria 55 (cuando el procedimiento de codificación vuelve de los datos de texto en claro N a los datos de texto en claro M debido a la resolución de la interrupción IT).
La Fig. 14 muestra un caso en el que la memoria 55 es puesta en paralelo con la línea 67 de retroalimentación.
La Fig. 15 muestra un procedimiento de operación del codificador de la Fig. 14.
Si el instante X en que se genera la interrupción IT es anterior a la operación de O excluyente por parte del circuito 58 de O excluyente, la memoria 55 almacena los datos de entrada del módulo Si objeto de una operación lógica de O excluyente por parte del circuito 58 de O excluyente. A continuación, los datos en bloques de texto en claro N1 son codificados. Posteriormente, se hace que el segundo selector 62 seleccione e introduzca los datos de entrada del módulo Si en el módulo 51 de codificación que usa la clave K de codificación, y que los codifique para producir los datos en bloques de texto cifrado C1.
Según se muestra en las Figuras 1, 12 y 14, la memoria 55 puede ser puesta en paralelo con una cualquiera de la línea 65 de retroalimentación, la línea 66 de retroalimentación y la línea 67 de retroalimentación. La memoria 55 almacena el estado que es inmediatamente anterior a que el codificador empiece a codificar otro dato durante la codificación de cierto dato. La memoria 55 puede ser puesta en cualquier lugar, con la condición de que el codificador pueda volver al estado original usando los datos almacenados en la memoria 55 cuando el codificador acabe de codificar los otros datos. Además, puede proporcionarse la memoria 55 en varias ubicaciones.
Según se ha descrito más arriba, el codificador según la presente realización lleva a cabo el procedimiento de codificación de los primeros datos de procesamiento (los datos de texto en claro M), que incluyen al menos un dato en bloques Mi (i = 1, 2, 3, …, m), y de los segundos datos de procesamiento (los datos de texto en claro N), que incluyen al menos un dato en bloques Nj (j = 1, 2, 3, …, n), y el codificador incluye la memoria 55 para almacenar el estado del procedimiento de codificación. El codificador empieza a codificar los primeros datos en bloques de los segundos datos de procesamiento antes de codificar todos los datos en bloques (M1-Mm) de los primeros datos de procesamiento. Y en el instante en que el codificador empieza a codificar los primeros datos en bloques N1 de los segundos datos de procesamiento, se almacena en la memoria 55 el estado de la codificación de los primeros datos de procesamiento (por ejemplo, los datos en bloques de texto cifrado Ci). Cuando el codificador reinicia la codificación de los primeros datos de procesamiento, el estado de la codificación del codificador es devuelto al estado almacenado de la codificación de los primeros datos de procesamiento, y luego el codificador reinicia el procesamiento de la codificación de los primeros datos de procesamiento.
Además, el codificador reinicia la codificación de los primeros datos de procesamiento antes de completar la codificación de los datos de todos los bloques (N1-Nn) de los segundos datos de procesamiento y, simultáneamente, la memoria 55 almacena el estado de la codificación de los segundos datos de procesamiento (por ejemplo, los datos en bloques de texto cifrado Dj) cuando el codificador reinicia la codificación de los primeros datos de procesamiento. Cuando el codificador reinicia la codificación de los segundos datos de procesamiento, el estado de la codificación del codificador es devuelto al estado almacenado de la codificación de los segundos datos de procesamiento, y después del codificador reinicia la codificación de los segundos datos de procesamiento.
La Fig. 16 muestra una configuración del codificador del modo OFB.
La figura se caracteriza por incluir, además, la memoria 55. La memoria 55 almacena los datos de salida del módulo T1 suministrados desde el módulo 51 de codificación.
La Fig. 16 muestra un codificador para codificar datos en bloques de texto en claro Mi (i = 1, 2, 3, …) incluidos en los datos de texto en claro M y datos en bloques de texto en claro Nj (j = 1, 2, 3, …) incluidos en los datos de texto en claro N. El codificador incluye un mecanismo de procesamiento de la interrupción que recibe la solicitud de codificar los datos de texto en claro N durante la codificación de los datos de texto en claro M antes de completar la codificación de los datos de texto en claro M y el módulo 51 de codificación para producir datos codificados como los datos en bloques de salida del módulo Ti. El codificador incluye además, bucles 65 y 66 de retroalimentación para retroalimentar los datos en bloques de salida del módulo Ti suministrados desde el módulo 51 de codificación en el módulo de codificación a través de la línea 65 de retroalimentación, y la memoria 55 proporcionada en paralelo con la línea 65 de retroalimentación del bucle de retroalimentación y para recibir una solicitud de codificación de los datos de texto en claro N y almacenar los datos en bloques de salida del módulo Ti retroalimentados cuando los
15
25
35
45
E07075185
01-10-2015
datos en bloques de texto en claro Mi+1 no son codificados de forma subsiguiente a los datos en bloques de texto en claro Mi porque el codificador empieza a codificar cualesquiera datos en bloques de texto en claro de los datos de texto en claro N. El codificador también incluye, además, el selector 54 que selecciona los datos en bloques de salida del módulo Ti retroalimentados por la línea 65 de retroalimentación del bucle de retroalimentación para suministrárselos al módulo 51 de codificación a través del bucle de retroalimentación cuando los datos en bloques de texto en claro Mi son codificados de forma subsiguiente a los datos en bloques de texto en claro Mi, y selecciona los datos en bloques de salida del módulo Ti almacenados en la memoria 55 para suministrárselos al módulo 51 de codificación a través del bucle de retroalimentación cuando los datos en bloques de texto en claro Mi+1 no son codificados de forma subsiguiente a los datos en bloques de texto en claro Mi, sino después de cualquiera datos en bloques de texto en claro de los datos de texto en claro N.
La Fig. 17 explica el codificador del modo OFB mostrado en la Fig. 16.
En la Fig. 17, la operación del modo CBC de la Fig. 2 cambia a la operación del modo OFB, y las otras operaciones son iguales a las de la Fig. 2.
La Fig. 18 muestra un codificador del modo CFB.
En comparación con la Fig. 47, el codificador de la Fig. 18 incluye, además, la memoria 55. La memoria 55 almacena datos en bloques de texto cifrado Ci producidos en el circuito 58 de O excluyente.
Además, hay configurada una unidad 52 de codificación por el circuito 58 de O excluyente y el módulo 51 de codificación que usa la clave K de codificación.
La Fig. 18 muestra un codificador para codificar datos en bloques de texto en claro Mi (i = 1, 2, 3, …) incluidos en los datos de texto en claro M y datos en bloques de texto en claro Nj (j = 1, 2, 3, …) incluidos en los datos de texto en claro N. El codificador incluye un mecanismo de procesamiento de la interrupción que recibe la solicitud de codificar los datos de texto en claro N durante la codificación de los datos de texto en claro M antes de la finalización de la codificación de los datos de texto en claro M y la unidad 52 de codificación para codificar los datos en bloques de texto en claro Mi y producir los datos en bloques de texto cifrado Ci. El codificador incluye, además, los bucles 65 y 66 de retroalimentación para retroalimentar los datos en bloques de texto cifrado Ci suministrados desde la unidad 52 de codificación al módulo de codificación a través de la línea 65 de retroalimentación, y la memoria 55 proporcionada en paralelo con la línea 65 de retroalimentación del bucle de retroalimentación, para recibir una solicitud de codificación de los datos de texto en claro N y almacenar los datos en bloques de texto cifrado Ci retroalimentados cuando los datos en bloques de texto en claro Mi+1 no son codificados de forma subsiguiente a los datos en bloques de texto en claro Mi porque el codificador empieza la codificación de ciertos datos en bloques de texto en claro de los datos de texto en claro N. El codificador también incluye, además, el selector 54 que selecciona los datos en bloques de texto cifrado Ci retroalimentados por la línea 65 de retroalimentación del bucle de retroalimentación para suministrárselos al módulo 51 de codificación a través del bucle de retroalimentación cuando los datos en bloques de texto en claro Mi son codificados de forma subsiguiente a los datos en bloques de texto en claro Mi, y selecciona los datos en bloques de texto cifrado Ci almacenados en la memoria 55 para suministrárselos al módulo 51 de codificación a través del bucle de retroalimentación cuando los datos en bloques de texto en claro Mi+1 no son codificados de forma subsiguiente a los datos en bloques de texto en claro Mi, sino después de ciertos datos en bloques de texto en claro de los datos de texto en claro N.
La Fig. 19 explica el codificador del modo OFB mostrado en la Fig. 18.
En la Fig. 19, la operación del modo CBC de la Fig. 2 cambia a la operación del modo OFB, y las otras operaciones son iguales a las de la Fig. 2.
La Fig. 20 muestra un decodificador del modo CBC.
En comparación con la Fig. 44, el decodificador de la Fig. 20 incluye, además, la memoria 75.
La memoria 75 incluye un registro 76 y un conmutador 77.
Además, hay configurada una unidad 72 de decodificación por un circuito 78 de O excluyente y un módulo 71 de decodificación que usa la clave K.
Puede proporcionarse un registro 111 dentro de un selector 74.
El decodificador mostrado en la Fig. 20, que decodifica los datos en bloques de texto cifrado Ci (i = 1, 2, 3, …) incluidos en los datos de texto cifrado C y los datos en bloques de texto cifrado Nj (j = 1, 2, 3, …) incluidos en los datos de texto cifrado D, incluye un mecanismo de procesamiento de la interrupción que recibe una solicitud de decodificar los datos de texto cifrado D durante el procedimiento de decodificación de los datos de texto cifrado C.
Además, el decodificador mostrado en la Fig. 20 incluye, además, el módulo 71 de decodificación para producir datos decodificados de los datos en bloques de texto cifrado Ci como datos en bloques de salida del módulo Ti,
10
15
20
25
30
35
40
45
50
55
E07075185
01-10-2015
bucles 85, 111, 82 y 86 de retroalimentación para retroalimentar los datos en bloques de texto cifrado Ci a la unidad 72 de decodificación a través de las líneas 85, 111 y 82 de retroalimentación para decodificar datos en bloques de texto cifrado Ci+1. El decodificador incluye, además, la memoria 75 proporcionada en paralelo con las líneas 85, 111, 82 y 86 de retroalimentación del bucle de retroalimentación y para recibir un solicitud para decodificar los datos de texto cifrado D y almacenar los datos en bloques retroalimentados cuando los datos en bloques de texto cifrado Ci+1 no son decodificados de forma subsiguiente a los datos en bloques de texto cifrado Ci porque el decodificador comienza a decodificar cualesquiera datos en bloques de texto cifrado de los datos de texto cifrado D.
Además, el decodificador mostrado en la Fig. 20 incluye el selector 74 que selecciona los datos en bloques de texto cifrado Ci retroalimentados por las líneas 85, 111, 82 de retroalimentación del bucle de retroalimentación para suministrárselos a la unidad 72 de codificación a través del bucle de retroalimentación cuando los datos en bloques de texto cifrado Ci son codificados de forma subsiguiente a los datos en bloques de texto cifrado Ci, y selecciona los datos en bloques de texto cifrado Ci almacenados en la memoria para suministrárselos a la unidad 72 de codificación a través del bucle de retroalimentación cuando los datos en bloques de texto cifrado Ci+1 no son codificados de forma subsiguiente a los datos en bloques de texto cifrado Ci, sino después de cualesquiera datos en bloques de texto cifrado de los datos de texto cifrado D.
“Línea de retroalimentación” y “bucle de retroalimentación”, usados en la anterior explicación de la Fig. 20, no significan “retroalimentación” que “introduzca datos producidos de sí misma”. Aquí, “retroalimentación” significa suministrar nuevamente datos en bloques de texto cifrado Ci para decodificar los datos en bloques de texto cifrado Ci+1 después de decodificar los datos en bloques de texto cifrado Ci.
La Fig. 21 muestra un procedimiento de operación del decodificador mostrado en la Fig. 20.
Cuando se genera la interrupción IT durante la decodificación de los datos en bloques de texto cifrado Ci usando la clave de codificación (también denominada clave de decodificación) K1, los datos en bloques de texto cifrado Ci son almacenados en el registro 76 de la memoria 75. Después, los datos en bloques de texto cifrado Di son decodificados usando la clave de codificación (también denominada clave de decodificación) K2 formando los datos en bloques de texto en claro N1. Luego, se leen los datos en bloques de texto cifrado C1 almacenados en el registro 76 de la memoria 75, los datos en bloques de texto cifrado C2 son decodificados formando los datos en bloques de texto en claro M2. La operación del selector 74 es igual que la mostrada en la Fig. 4. Además, la operación del conmutador 77 es igual que la mostrada en la Fig. 5.
La Fig. 22 muestra el decodificador del modo OFB.
El decodificador mostrado en la Fig. 22, que decodifica los datos en bloques de texto cifrado Ci (i = 1, 2, 3, …) incluidos en los datos de texto cifrado C y los datos en bloques de texto cifrado Dj (j = 1, 2, 3, …) incluidos en los datos de texto cifrado D, incluye un mecanismo de procesamiento de la interrupción que recibe una solicitud para decodificar los datos de texto cifrado D durante la decodificación de los datos de texto cifrado C en un punto arbitrario en el tiempo. El decodificador incluye, además, el módulo 71 de decodificación para producir datos decodificados como datos en bloques de salida del módulo Ti, bucles 85, 86 de retroalimentación para retroalimentar los datos en bloques de salida del módulo Ti al módulo 71 de decodificación a través de las líneas 85 de retroalimentación. El decodificador incluye, además, la memoria 75 proporcionada en paralelo con la línea 85 de retroalimentación del bucle de retroalimentación, y para recibir una solicitud de decodificación de los datos de texto cifrado D y almacenar los datos en bloques de salida del módulo Ti retroalimentados cuando los datos en bloques de texto cifrado Ci+1 no son decodificados de forma subsiguiente a los datos en bloques de texto cifrado Ci porque el decodificador comienza la decodificación de cualesquiera datos en bloques de texto cifrado de los datos de texto cifrado D. Además, el decodificador mostrado en la Fig. 22 incluye el selector 74 que selecciona los datos en bloques de salida del módulo Ti retroalimentados por la línea 85 de retroalimentación del bucle de retroalimentación para suministrárselos al módulo 71 de decodificación a través del bucle de retroalimentación cuando los datos en bloques de texto cifrado Ci son codificados de forma subsiguiente a los datos en bloques de texto cifrado Ci, y selecciona los datos en bloques de salida del módulo Ti almacenados en la memoria 75 para suministrárselos al módulo 71 de decodificación a través del bucle de retroalimentación cuando los datos en bloques de texto cifrado Ci+1 no son codificados de forma subsiguiente a los datos en bloques de texto cifrado Ci, sino después de cualesquiera datos en bloques de texto cifrado de los datos de texto cifrado D.
La Fig. 23 explica la operación del decodificador del modo OFB mostrado en la Fig. 22.
La operación de la Fig. 23 es igual que la del decodificador del modo CBC mostrado en la Fig. 21, salvo que la operación se lleva a cabo en el modo OFB en lugar del modo CBC.
La Fig. 24 muestra un decodificador del modo CFB.
Se configura una unidad 72 de decodificación por medio del circuito 78 de O excluyente y un módulo 71 de decodificación.
Aquí, se puede proporcionar el registro 111 dentro del selector 74.
15
25
35
45
55
E07075185
01-10-2015
El decodificador mostrado en la Fig. 24, que decodifica los datos en bloques de texto cifrado Ci (i = 1, 2, 3, …) incluidos en los datos de texto cifrado C y los datos en bloques de texto cifrado Dj (j = 1, 2, 3, …) incluidos en los datos de texto cifrado D, incluye un mecanismo de procesamiento de la interrupción que recibe una solicitud de decodificación de los datos de texto cifrado D durante la decodificación de los datos de texto cifrado C en un punto arbitrario en el tiempo. El decodificador incluye, además, el módulo 71 de decodificación para producir datos decodificados como datos en bloques de salida del módulo Ti, bucles 85, 111, 82, 86 de retroalimentación para retroalimentar los datos en bloques de salida del módulo Ti al módulo 71 de decodificación a través de las líneas 85, 111, 82 de retroalimentación. El decodificador incluye, además, la memoria 75 proporcionada en paralelo con la línea 85, 111, 82 de retroalimentación del bucle de retroalimentación y para recibir una solicitud de decodificación de los datos de texto cifrado D y almacenar los datos en bloques de salida del módulo Ti retroalimentados cuando los datos en bloques de texto cifrado Ci+1 no son decodificados de forma subsiguiente a los datos en bloques de texto cifrado Ci porque el decodificador empieza a decodificar cualesquiera datos en bloques de texto cifrado de los datos de texto cifrado D. Además, el decodificador mostrado en la Fig. 24 incluye el selector 74 que selecciona los datos en bloques de salida del módulo Ti retroalimentados por la línea 85 de retroalimentación del bucle de retroalimentación para suministrárselos al módulo 71 de decodificación a través del bucle de retroalimentación cuando los datos en bloques de texto cifrado Ci son codificados de forma subsiguiente a los datos en bloques de texto cifrado Ci, y selecciona los datos en bloques de salida del módulo Ti almacenados en la memoria 75 para suministrárselos al módulo 71 de decodificación a través del bucle de retroalimentación cuando los datos en bloques de texto cifrado Ci+1 no son codificados de forma subsiguiente a los datos en bloques de texto cifrado Ci, sino después de cualesquiera datos en bloques de texto cifrado de los datos de texto cifrado D.
“Línea de retroalimentación” y “bucle de retroalimentación”, usados en la anterior explicación de la Fig. 24, no significan “retroalimentación” que “introduzca datos producidos de sí misma”. Aquí, “retroalimentación” significa suministrar nuevamente datos en bloques de texto cifrado Ci para decodificar los datos en bloques de texto cifrado Ci+1 después de decodificar los datos en bloques de texto cifrado.
La Fig. 25 explica la operación del decodificador del modo CFB mostrado en la Fig. 24.
En la Fig. 25, la operación en el modo CBC mostrado en la Fig. 21 es sustituida con la operación en el modo CFB, y las otras operaciones son iguales que las mostradas en la Fig. 21.
La Fig. 26 muestra un ejemplo de mejora del codificador del modo CBC mostrado en la Fig. 1.
Se añaden un selector 154 y una memoria 155 al codificador de la Fig. 26. La Fig. 1 muestra un caso en el que la clave K1 es suministrada desde el exterior si se resuelve la interrupción IT, mientras la clave K1 suministrada desde el exterior es almacenada y usada aquí de nuevo.
La memoria 155 incluye un registro 156 y un conmutador 157. El conmutador 157 conmuta entre ignorar o introducir la clave K de codificación en el registro 156. Esta conmutación es llevada a cabo, por ejemplo, por la interrupción IT. Cuando se genera la interrupción IT, el conmutador 157 se conecta a E, y cuando se resuelve la interrupción IT, el conmutador 157 se conecta a F. El registro 156 introduce la clave K suministrada a través de E y la almacena. La clave K almacenada en el registro 156 es enviada al selector 154. El selector 154 tiene dos entradas A y C, de las cuales el selector 154 selecciona una. Esta selección depende de la interrupción IT, que será descrita posteriormente.
La Fig. 27 muestra un procedimiento de operación del codificador mostrado en la Fig. 26.
Cuando se suministra la energía eléctrica del codificador, las entradas al selector 54 y al selector 154 se ponen en A, y el conmutador 57 y el conmutador 157 se conectan a E. Además, cuando existe una solicitud de codificación de los datos de texto en claro N, se genera la interrupción IT y se la mantiene ACTIVADA hasta que se resuelve la solicitud de codificación de los datos de texto en claro N. Además, los datos de texto en claro M han de codificarse usando la clave K1, y los datos de texto en claro N han de codificarse usando la clave K2. Las claves K1 y K2 se suministran al módulo 51 de codificación.
En el instante T0, se suministra la clave K1 desde el exterior como clave KI. Cuando el conmutador 157 se conecta a E, la clave K1 se almacena en el registro 156. A continuación, se inicia el procedimiento de codificación para los datos en bloques de texto en claro M1. Cuando comienzan los datos en bloques de texto en claro M1 en el instante T0, el selector 54 introduce un valor inicial IV a través de A, y entonces el selector 54 se conmuta a B. En el instante X durante el procedimiento de codificación de los datos en bloques de texto en claro M1 usando la clave K1, se supone que se genera la interrupción IT para solicitar la codificación de los datos en bloques de texto en claro N1. Hasta el instante T1, los datos en bloques de texto cifrado C1 se almacenan en la memoria 55. A continuación, se suministra la clave K2 al módulo 51 de codificación desde el exterior como clave KI en el instante T1 debido a la generación de la interrupción IT. En el instante T1, la entrada al selector 54 se pone en A. Y en el instante T1, el conmutador 57 y el conmutador 157 se conectan a F. En consecuencia, la clave K2 no se almacena en el registro
156. Después del instante T1, se lleva a cabo la codificación de los datos en bloques de texto en claro N1 usando la clave K2, y se producen los datos en bloques de texto cifrado D1. En el instante Y, finaliza la codificación de los datos en bloques de texto en claro N1, y se resuelve la interrupción IT. Debido a esta resolución de la interrupción IT, en el
10
15
20
25
30
35
40
45
50
55
E07075185
01-10-2015
instante T2, la entrada al selector 54 se conmuta a C, y el conmutador 57 se conecta a E. En consecuencia, la clave K1 es enviada al selector 154 desde el registro 156 como clave KL, y la clave K1 es suministrada al módulo 51 de codificación desde el selector 154 como clave K1. Además, cuando el selector 54 se conmuta a C, los datos en bloques de texto cifrado C1 almacenados in la memoria 55 son introducidos para codificar los datos en bloques de texto en claro M2, los datos en bloques de texto en claro M2 son codificados por el módulo 51 de codificación usando la clave K1, y se producen los datos en bloques de texto cifrado C2. Antes del instante T3, la entrada al selector 54 se conmuta a B, y cuando se codifican los datos en bloques de texto en claro M3, se introducen los datos en bloques de texto cifrado C2 retroalimentados desde la línea 65 de retroalimentación del bucle de retroalimentación, los datos en bloques de texto en claro M3 son codificados por el módulo 51 de codificación usando la clave K1, y se producen los datos en bloques de texto cifrado C3.
Además, antes del instante T3, la entrada al selector 154 se conmuta a A.
Se describirá la operación del selector 154.
Cuando se ACTIVA la energía eléctrica, la entrada al selector 154 se pone en A. Además, cuando también se detecta la generación de la interrupción IT, la entrada se mantiene configurada en A. Hasta que se resuelva la interrupción IT, el selector 154 opera con la configuración de su entrada en A. Cuando se detecta la resolución de la interrupción IT, el selector 154 configura la entrada a C. Debido a la configuración de la entrada a C, la clave K1 almacenada en la memoria 55 es introducida en el módulo 51 de codificación como clave K. Cuando se inicia la codificación usando la clave introducida desde C, el selector configura la entrada en A.
Según se ha descrito más arriba, el selector 154 puede conmutarse en función de la generación de la interrupción IT.
A continuación se explicará la operación del procesamiento de la interrupción del conmutador 157.
Cuando se ACTIVA la energía eléctrica, y en el primer procedimiento de codificación de los datos de texto en claro M, el conmutador 157 se conecta a E, y la clave K1 para los datos de texto en claro M se almacena en el registro
156. Y cuando se genera la interrupción IT en el instante X, el conmutador 157 se conecta a F desde E en el instante T1, y se ignora la clave K2 para los datos de texto en claro N. Además, cuando se detecta la resolución de la interrupción IT en el instante Y, el conmutador 157 se conecta a E desde F en el instante T2. De esta forma, el conmutador 157 ignora la clave K2 para los datos de texto en claro N desde la generación hasta la resolución de la interrupción IT. En consecuencia, la clave K1 para los datos de texto en claro M se mantiene almacenada en el registro 156 de la memoria 155.
La Fig. 28 muestra la configuración del decodificador mostrado en la Fig. 20 cuando se almacena la clave K1 para ser reutilizada.
La Fig. 28 muestra un caso en el que se añaden un selector 174 y una memoria 175 al decodificador de la Fig. 20. Las operaciones del selector 174 y de la memoria 175 son iguales que las del selector 154 y de la memoria 155 mostrados en la Fig. 26.
La memoria 55 y la memoria 155 son ejemplos de la memoria para almacenar el estado del codificador cuando se genera la interrupción IT. De esta manera, el estado del procedimiento de codificación se almacena en la memoria 55 y en la memoria 155, lo que permite que el codificador vuelva al estado de codificación de cierto dato incluso cuando se lleve a cabo la codificación de otro dato durante el tiempo en que se codifica el cierto dato. Concretamente, usando los datos almacenados en la memoria 55 y la clave K almacenada en la memoria 155, el estado del codificador puede ser devuelto al estado idéntico cuando la codificación se interrumpe, y el procedimiento de codificación interrumpido puede continuar.
La memoria 155 y la memoria 175 pueden ser configuradas idénticamente a la memoria 55 mostrada en las Figuras 6 y 8. O la clave K1 puede almacenarse añadiendo la configuración, tal como las mostradas en las Figuras 26 y 28 a las Figuras 16, 18, 22 y 24.
Además, dado que las memorias 55 y 155 mostradas en la Fig. 26 operan igual, estas memorias pueden ser integradas en una sola memoria.
Según se ha expuesto, el decodificador en relación con la presente realización lleva a cabo la decodificación de los primeros datos de procesamiento (datos de texto cifrado C), que incluyen al menos los datos en bloques Ci (i = 1, 2, 3, …, m) , y de los segundos datos de procesamiento (datos de texto cifrado D), que incluyen al menos un dato en bloque Dj (J = 1, 2, 3, …, n). El decodificador incluye la memoria 75 que almacena el estado del procedimiento de decodificación. El decodificador inicia el procedimiento de decodificación de unos datos iniciales en bloques D1 de los segundos datos de procesamiento antes de la finalización del procedimiento de decodificación de todos los datos en bloques (C1 a Cn) de los primeros datos de procesamiento. Cuando el decodificador inicia el procedimiento de decodificación de los datos iniciales en bloques D1 de los segundos datos de procesamiento, el decodificador hace que la anterior memoria almacene el estado de decodificación de los primeros datos de procesamiento, y cuando el
10
15
20
25
30
35
40
45
50
55
E07075185
01-10-2015
decodificador reinicia la decodificación de los primeros datos de procesamiento, el estado del decodificador es devuelto al estado de decodificación del decodificador almacenado en la memoria 75 y el decodificador reinicia el procedimiento de decodificación de los primeros datos de procesamiento.
Además, el decodificador reinicia el procedimiento de decodificación de los primeros datos de procesamiento antes de la finalización de todos los datos en bloques (D1 a Dn) de los segundos datos de procesamiento, y la memoria 74 almacena el estado de decodificación de los segundos datos de procesamiento cuando el decodificador reinicia el procedimiento de decodificación de los primeros datos de procesamiento. Cuando el decodificador reinicia el procedimiento de decodificación de los segundos datos de procesamiento, el estado del decodificador es devuelto al estado de decodificación de los segundos datos de procesamiento almacenados en la memoria y el decodificador reinicia el procedimiento de decodificación de los segundos datos de procesamiento.
Aquí, el estado del procedimiento de codificación es, por ejemplo, Datos en bloques codificados Ci (y la clave K1) en el caso del modo CBC mostrado en la Fig. 1, Datos de salida del módulo Ti (y la clave K1) en el caso del modo OFB mostrado en la Fig. 16, y Datos en bloques codificados Ci (y la clave K1) en el caso del modo CFB mostrado en la Fig. 18.
El estado de decodificación es, por ejemplo, Datos en bloques codificados Ci (y la clave K1) en el caso del modo CBC mostrado en la Fig. 20, Datos de salida del módulo Ti (y la clave K1) en el caso del modo OFB mostrado en la Fig. 22, y Datos en bloques codificados Ci (y la clave K1) en el caso del modo CFB mostrado en la Fig. 24.
En la descripción anterior, el codificador y el decodificador han sido explicados, respectivamente, en casos de tres modos. Los tres modos son únicamente ejemplos; la presente realización puede ser aplicada al codificador y al decodificador en otros modos, tal como un modo mejorado o un modo transformado. En particular, las características de la realización es que el procedimiento de codificación/decodificación, en el que los datos en bloques Ci, Mi, o Ti generados en el momento de la codificación/decodificación de los datos anteriores son usados para el procedimiento de codificación/decodificación de los datos del bloque siguiente Mi+1 o Ci+1 como datos de retroalimentación, se proporciona la memoria 55 para almacenar el estado del procedimiento de codificación/decodificación, para que el estado del codificador/decodificador pueda ser devuelto al estado original usando los datos en bloques Ci, Mi, o Ti después del procedimiento de codificación/decodificación de otro dato. En consecuencia, qué modo de codificación/decodificación se use carece de importancia.
Aquí, en lugar de la interrupción IT, puede recibirse la solicitud de codificación usando otro mecanismo, tal como un sistema de interrogación secuencial o un sistema de obtención de testigo, y puede llevarse a cabo un procesamiento interactivo en paralelo de al menos dos procedimientos de codificación/decodificación.
Además, en la realización anterior, se usa la clave K de codificación para el procedimiento de codificación/decodificación; sin embargo, la realización puede ser aplicada al procedimiento de codificación/decodificación sin usar la clave de codificación.
Realización 2
En la siguiente realización se explicará otro caso, en el que el codificador lleva a cabo un procedimiento de confidencialidad y un procedimiento de garantía de la integridad de datos.
El procedimiento de confidencialidad de datos significa codificar datos para hacer los datos ininteligibles incluso cuando los datos sean objeto de pinchazo en la línea o robados. Además, el procedimiento de garantía de la integridad de datos significa garantizar que los datos no son sustituidos por nadie. En el caso de transferir datos, a veces es preciso garantizar la integridad de los datos, así como llevar a cabo el procedimiento de confidencialidad de los datos. El procedimiento de confidencialidad de datos se lleva a cabo codificando los datos. El procedimiento de garantía de la integridad de datos se lleva a cabo añadiendo un MAC (código de autenticación de mensajes) al último bit de los datos y comprobando el MAC para detectar la manipulación.
La Fig. 29 muestra un caso en el que una unidad 100 de codificación del modo OFB realiza el procedimiento de confidencialidad, y un generador 200 de MAC del modo CBC genera el MAC.
La Fig. 29 muestra el codificador que codifica los datos de texto en claro, que incluyen al menos un dato en bloques de texto en claro, usando el módulo de codificación y genera el MAC para garantizar la integridad de los datos de texto cifrado. El codificador incluye una unidad 100 de codificación que tiene un primer bucle de retroalimentación 65 que retroalimenta los datos en bloques de salida del módulo Ti suministrados al módulo 51 de codificación desde el módulo 51 de codificación en la codificación de los datos en bloques de texto en claro por el módulo 51 de codificación. La unidad 100 de codificación introduce los datos en bloques de texto en claro, retroalimenta los datos en bloques de salida del módulo Ti usando el primer bucle 65 de retroalimentación para realizar el procedimiento de codificación para producir datos en bloques de texto cifrado Ci. El codificador incluye un generador 200 de MAC que tiene un segundo bucle 66 de retroalimentación que retroalimenta un resultado de MAC intermedio calculado Ti. El generador 200 de MAC introduce los datos en bloques de texto cifrado Ci en todas las salidas de los datos en
5
10
15
20
25
30
35
40
45
50
55
E07075185
01-10-2015
bloques de texto cifrado Ci desde la unidad 100 de codificación, calcula el MAC, hace que el resultado de MAC intermedio calculado Ti sea retroalimentado usando el segundo bucle 66 de retroalimentación, y genera un MAC P para garantizar la integridad de los datos de texto cifrado.
La Fig. 30 muestra un procedimiento de operación del codificador mostrado en la Fig. 29.
Los datos en bloques de texto en claro M1 son codificados en primer lugar formando los datos en bloques de texto cifrado C1. A continuación, los datos en bloques de texto en claro M2 son introducidos para ser codificados formando los datos en bloques de texto cifrado C2. Simultáneamente a la codificación de los datos en bloques de texto en claro M1, los datos en bloques de texto cifrado C1 son introducidos y se inicia el cálculo del MAC. Entre el instante T1 y el instante T2, se llevan a cabo el procedimiento de codificación de los datos en bloques de texto en claro M2 y el cálculo del MAC en función de los datos en bloques de texto cifrado C1. Entre el instante T2 y el instante T3, se llevan a cabo el procedimiento de codificación de los datos en bloques de texto en claro M3 y el cálculo del MAC en función de los datos en bloques de texto cifrado C2. En el instante T3, se lleva a cabo el cálculo del MAC en función de los datos en bloques de texto cifrado C3 y se produce el MAC P.
La configuración de la Fig. 29 se caracterizada porque los datos en bloques de texto cifrado Ci producidos en el circuito 58 de O excluyente son introducidos en el circuito 59 de O excluyente por una línea 69 de alimentación. La línea 69 de alimentación combina los procedimientos de codificación del modo OFB y del modo CBC para que el procedimiento de confidencialidad y el procedimiento de garantía de la integridad se lleven a cabo mediante procesamiento en serie. En el caso de la Fig. 52, el proceso en el instante T6 requiere mucho tiempo de proceso; sin embargo, en el caso de la Fig. 30, el procesamiento acaba en el instante T4, lo que muestra que se ha realizado un procesamiento a velocidad elevada.
La Fig. 31 es un diagrama de flujo que muestra la operación del codificador mostrado en la Fig. 29.
En S51, se inicializa a 1 un contador i de datos en bloques. S52 muestra la operación de la unidad 100 de codificación. La unidad 100 de codificación da entrada a los datos en bloques de texto en claro Mi, codifica los datos de texto en claro Mi formando los datos en bloques de texto cifrado Ci, y produce los datos en bloques de texto cifrado Ci. S53 muestra la operación del generador 200 de MAC. El generador 200 de MAC da entrada a los datos en bloques de texto cifrado Ci y los codifica y calcula el MAC. S54 comprueba si el contador i de datos en bloques indica el último dato n del bloque. Cuando el contador no lo indica, el contador i de datos en bloques es incrementado en S55, y la operación vuelve al procedimiento de S52. Concretamente, se repiten los procedimientos de la unidad 100 de codificación y del generador 200 de MAC. Cuando se detecta en S54 que se ha completado el procedimiento del último dato del bloque, el último MAC calculado en S53 se convierte en el MAC final, y el MAC es añadido al último bit de los datos en bloques de texto cifrado Ci en S56. Según se muestra en la Fig. 31, en cada generación de los datos en bloques de texto cifrado Ci por la unidad 100 de codificación, el generador 200 de MAC introduce los datos en bloques de texto cifrado Ci para calcular el MAC, lo que permite el procesamiento en serie a velocidad elevada.
La Fig. 32 muestra una configuración que combina la unidad 100 de codificación y el generador 200 de MAC mostrados en la Fig. 29. Es decir, el módulo 51 de codificación es compartido por la unidad 100 de codificación y el generador 200 de MAC, y el circuito de O excluyente es usado como el circuito 58 de O excluyente de la unidad 100 de codificación y el circuito 59 de O excluyente del generador 200 de MAC. Además, la línea de retroalimentación es usada como tanto la línea 65 de retroalimentación de la unidad 100 de codificación como la línea 66 de retroalimentación del generador 200 de MAC.
Un primer selector 61 selecciona un valor inicial IV en el momento de inicio del procedimiento de confidencialidad. Un segundo selector selecciona el valor inicial IV en el momento de inicio del procedimiento de garantía de la integridad. Un tercer selector 63 selecciona de forma alterna el procedimiento de confidencialidad y el procedimiento de garantía de la integridad. El procedimiento de confidencialidad puede realizarse poniendo la entrada del tercer selector en E. Además, el procedimiento de garantía de la integridad puede realizarse poniendo la entrada del tercer selector en F.
Una memoria 93 almacena los datos de salida del módulo Ti producidos en el módulo 51 de codificación que usa la clave K de codificación. La memoria 93 incluye un conmutador 96 de entrada, un conmutador 97 de salida, un primer registro 98 y un segundo registro 99. El conmutador 96 de entrada y el conmutador 97 de salida están sincronizados con la conmutación del tercer selector 63. En cada conmutación del tercer selector 63, se conmutan tanto el conmutador 96 de entrada como el conmutador 97 de salida.
La Fig. 33 muestra un procedimiento de operación del codificador mostrado en la Fig. 32.
Entre el instante T0 y el instante T1, se lleva a cabo el procedimiento de confidencialidad de los datos en bloques de texto en claro M1. Los datos de salida del módulo generados durante el procedimiento de confidencialidad son almacenados en el primer registro 98. Entre el instante T1 y el instante T2, se calcula el MAC en función de los datos en bloques de texto cifrado C1. El resultado de MAC intermedio calculado generado por el procedimiento de garantía de la integridad se almacena en el segundo registro 99. A continuación, entre el instante T2 y el instante T3, se lleva
15
25
35
45
55
E07075185
01-10-2015
a cabo el procedimiento de confidencialidad de los datos en bloques de texto en claro M2 en función de los datos de salida del módulo almacenados en el primer registro 98 y los datos en bloques de texto en claro M2. A continuación, entre el instante T3 y el instante T4, el resultado de MAC intermedio calculado almacenado en el segundo registro 99 y se introducen los datos en bloques de texto cifrado C2 y se calcula el MAC. Repitiendo estas operaciones, se completan el procedimiento de confidencialidad y el procedimiento de garantía de la integridad y se producen los datos de texto cifrado y el MAC P. En el caso de la Fig. 33, el procedimiento finaliza en el instante T6 y no se reduce el tiempo de procesamiento. Sin embargo, según se muestra en la Fig. 32, el módulo 51 de codificación que usa la clave K de codificación, el circuito 58 de O excluyente, y la línea 67, 68 de retroalimentación (bucle de retroalimentación) son compartidos por la unidad de codificación y el generador de MAC, para que pueda reducirse la escala del circuito.
La Fig. 34 muestra un decodificador que incluye una unidad 300 de decodificación del modo OFB y un generador 400 de MAC del modo CBC.
El generador 400 de MAC está configurado igual que el generador 200 de MAC.
La Fig. 34 muestra el decodificador que decodifica los datos de texto cifrado, que incluyen al menos un dato en bloques de texto cifrado, formando los datos de texto en claro y genera el MAC para garantizar la integridad de los datos de texto cifrado. El decodificador incluye una unidad 300 de decodificación que tiene un primer bucle de retroalimentación 65 que retroalimenta los datos en bloques de salida del módulo Ti generados en el procedimiento de decodificación de los datos en bloques de texto cifrado Ci usando el módulo 71 de decodificación. La unidad 300 de decodificación introduce los datos en bloques de texto cifrado Ci, hace que los datos en bloques de salida del módulo Ti sean retroalimentados por el primer bucle 65 de retroalimentación para la decodificación y produce los datos en bloques de texto en claro Mi. El decodificador incluye, además, un generador 400 de MAC que tiene un segundo bucle de retroalimentación 66 que retroalimenta el resultado de MAC intermedio calculado Ti. El generador 400 de MAC introduce los mismos datos en bloques de texto cifrado con los datos en bloques de texto cifrado Ci introducidos en la unidad 300 de decodificación, realiza el cálculo de MAC para producir el resultado de MAC intermedio calculado, hace que el segundo bucle de retroalimentación 66 retroalimente el resultado de MAC intermedio calculado Ti, y genera el MAC Q para garantizar la integridad de los datos de texto cifrado.
Los datos en bloques de texto cifrado Ci son introducidos en el circuito 78 de O excluyente de la unidad 300 de decodificación y, al mismo tiempo, los datos en bloques de texto cifrado Ci son introducidos en el generador 400 de MAC por la línea 69 de alimentación. Por medio de esta configuración, se llevan a cabo simultáneamente los procedimientos de la unidad 300 de decodificación y del generador 400 de MAC, de modo que puede aumentar la velocidad de procesamiento.
La Fig. 35 muestra una configuración en la que se integran la unidad 300 de decodificación y el generador 400 de MAC del decodificador mostrados en la Fig. 34.
La Fig. 35 muestra un caso en el que el módulo 71 de decodificación y las líneas de retroalimentación 87, 88 (bucle de retroalimentación) son compartidos.
Un primer selector 81 selecciona el valor inicial IV en el momento de inicio del procedimiento de decodificación. Un segundo selector 82 selecciona el valor inicial IV en el momento de inicio del procedimiento de garantía de la integridad. Un tercer selector 83 selecciona de forma alterna el procedimiento de decodificación y el procedimiento de garantía de la integridad. La decodificación puede realizarse poniendo la entrada del tercer selector 83 en E. Además, puede realizarse el procedimiento de garantía de la integridad poniendo la entrada del tercer selector 83 en
F.
La memoria 93 almacena los datos de salida del módulo Ti producidos en el módulo 51 de codificación que usa la clave K de codificación. La memoria 93 incluye un conmutador 96 de entrada, un conmutador 97 de salida, un primer registro 98 y un segundo registro 99. El conmutador 96 de entrada y el conmutador 97 de salida están sincronizados con la conmutación del tercer selector 83. En cada conmutación del tercer selector 83, también se conmutan el conmutador 96 de entrada y el conmutador 97 de salida.
La Fig. 36 muestra un procedimiento de operación del decodificador mostrado en la Fig. 35.
El decodificador introduce los datos de texto cifrado y el MAC P.
Entre el instante T0 y el instante T1, los datos en bloques de texto cifrado Ci son decodificados y los datos en bloques de texto cifrado Ci son almacenados en el registro 111. Los datos de salida del módulo generados durante el procedimiento de decodificación son almacenados en el registro 98. Entre el instante T1 y el instante T2, se calcula el MAC en función de los datos en bloques de texto cifrado Ci almacenados en el registro 111. El resultado de MAC intermedio calculado generado durante el procedimiento de garantía de la integridad es almacenado en el segundo registro 99. A continuación, entre el instante T2 y el instante T3, los datos en bloques de texto cifrado C2 son almacenados en el registro 111, se lleva a cabo el procedimiento de decodificación de los datos en bloques de texto en claro M2 en función de los datos de salida del módulo almacenados en el primer registro 98 y los datos en
10
15
20
25
30
35
40
45
50
55
E07075185
01-10-2015
bloques de texto cifrado C2. Acto seguido, entre el instante T3 y el instante T4, se introducen el resultado de MAC intermedio calculado almacenado en el segundo registro 99 y los datos en bloques de texto cifrado C2 almacenados en el registro 111 y se calcula el MAC. Repitiendo estas operaciones, se producen los datos de texto en claro y el MAC Q. El MAC Q es comparado con el MAC P. Si el MAC P coincide con el MAC Q, puede garantizarse la integridad de los datos. Así se completan el procedimiento de decodificación y el procedimiento de garantía de la integridad.
La Fig. 37 muestra una configuración en la que se usa la unidad 100 de codificación del modo CBC en lugar de la unidad 100 de codificación del modo OFB mostrada en la Fig. 29.
La Fig. 37 muestra el codificador, que codifica los datos de texto en claro, incluyendo al menos un dato en bloques de texto en claro, usando el módulo de codificación y genera el MAC para garantizar la integridad de los datos de texto cifrado. El codificador incluye una unidad 100 de codificación que tiene un primer bucle 65 de retroalimentación que retroalimenta los datos en bloques de texto cifrado Ci producidos en el módulo 51 de codificación en el momento de codificación de los datos en bloques de texto en claro por la unidad 52 de codificación. La unidad 100 de codificación introduce los datos en bloques de texto en claro Mi, hace que los datos en bloques de texto cifrado Ci sean retroalimentados usando el primer bucle 65 de retroalimentación para realizar el procedimiento de codificación, y produce los datos en bloques de texto cifrado Ci. El codificador incluye, además, un generador 200 de MAC que tiene un segundo bucle 66 de retroalimentación que retroalimenta un resultado de MAC intermedio calculado Ti. El generador 200 de MAC introduce los datos en bloques de texto cifrado Ci en todas las salidas de los datos en bloques de texto cifrado Ci desde la unidad 100 de codificación, calcula el MAC, hace que el resultado de MAC intermedio calculado Ti sea retroalimentado usando el segundo bucle de retroalimentación 66, y genera un MAC P para garantizar la integridad de los datos de texto cifrado.
La Fig. 38 muestra una configuración en la que se proporciona la unidad 300 de decodificación del modo CBC en lugar de la unidad 300 de decodificación del modo OFB mostrada en la Fig. 34.
La Fig. 38 muestra el decodificador que decodifica los datos de texto cifrado, que incluyen al menos un dato en bloques de texto cifrado, formando los datos de texto en claro, y genera el MAC para garantizar la integridad de los datos de texto cifrado. El decodificador incluye una unidad 300 de decodificación que tiene unos primeros bucles 85, 82 de retroalimentación para retroalimentar los datos en bloques de texto cifrado Ci, y la unidad 300 de decodificación introduce los datos en bloques de texto cifrado Ci y hace que los datos en bloques de texto cifrado Ci sean retroalimentados por los primeros bucles 85, 82 de retroalimentación para la decodificación, y produce los datos en bloques de texto en claro Mi. El decodificador incluye, además, un generador 400 de MAC que tiene un segundo bucle de retroalimentación 66 para retroalimentar el resultado de MAC intermedio calculado Ti, y el generador 400 de MAC introduce los datos en bloques de texto cifrado Ci que son idénticos a los datos en bloques de texto cifrado Ci introducidos en la unidad 300 de decodificación, calcula el MAC, produce el resultado de MAC intermedio calculado Ti, hace que el resultado de MAC intermedio calculado Ti sea retroalimentado por el segundo bucle de retroalimentación, y genera el MAC para garantizar la integridad de los datos de texto cifrado.
Según se ha descrito más arriba, las Figuras 29 y 37 muestran los codificadores, cada uno de los cuales incluye la unidad de codificación que da entrada a datos que han de codificarse y produce los datos, y el generador de MAC que da entrada a los datos codificados producidos por la unidad de codificación y genera el MAC para garantizar la integridad de los datos de texto cifrado, iniciando el generador de MAC la generación del MAC antes de que la unidad de codificación complete la codificación de los datos.
Además, las Figuras 34 y 38 muestran los decodificadores, cada uno de los cuales incluye la unidad de decodificación que da entrada a los datos que han de decodificarse y da produce los datos, y el generador de MAC, que da entrada a los datos introducidos por la unidad de decodificación y genera el MAC para garantizar la integridad de los datos de texto cifrado, iniciando el generador de MAC la generación del MAC antes de que la unidad de decodificación complete la decodificación de los datos.
La unidad 100 de codificación o la unidad 300 de decodificación del modo OFB, que no se muestran en las Figuras, pueden ser usadas en el codificador/decodificador anterior.
El generador 200 de MAC del modo OFB o del modo CFB, que no se muestra en las Figuras, puede ser usado en el codificador/decodificador anterior.
La Fig. 39 muestra una configuración del módulo 51 de codificación o del módulo 71 de decodificación.
El módulo 51 de codificación incluye un planificador 511 de claves y un aleatorizador 512 de datos. El planificador 511 de claves introduce una clave K para generar un número n de claves extendidas ExtK1 a ExtKn. El aleatorizador 512 de datos genera un número aleatorio usando una función F y un circuito de O excluyente. La función F introduce la clave extendida y lleva a cabo una transformación no lineal de los datos.
En el módulo 51 de codificación del codificador anterior, puede usarse un algoritmo de cifrado de bloques, tal como:
10
15
20
25
30
35
40
45
50
E07075185
01-10-2015
(1)
DES (Estándar de Codificación de Datos),
(2)
MISTY, el algoritmo de cifrado de bloques dado a conocer por la publicación de patente internacional nº WO97/9705 (solicitud de patente estadounidense nº 08/83640),
(3)
KASUMI, cifrado de bloques de 64 bits desarrollado en función del algoritmo de cifrado de bloques MISTY, que se determinó para ser aplicado al cifrado internacional estándar para el teléfono celular de la siguiente generación (IMT2000) (para más detalles, conviene visitar http://www.3gpp.org/About_3GPP/3gpp.htm), o
(4)
Camellia, el algoritmo de cifrado en bloques dado a conocer en la solicitud de patente japonesa nº 200064614 (presentada el 9 de marzo de 2000). Además, en el módulo de decodificación del decodificador, puede aplicarse un algoritmo de cifrado de bloques, tal como DES, MISTY, KASUMI o Camellia.
La Fig. 40 muestra una forma de implementación del codificador o del decodificador.
La Fig. 40 muestra un caso en el que el codificador y el decodificador están instalados en una FPGA, un IC o una LSI. Concretamente, el codificador y el decodificador anteriormente mencionados pueden ser implementados mediante soporte físico. Además, el codificador y el decodificador pueden ser implementados mediante una placa de circuito impreso, que no se muestra en la figura.
La Fig. 41 muestra un caso en el que el codificador y el decodificador son implementados mediante soporte lógico.
El anterior codificador puede ser implementado mediante un programa 47 de cifrado. El programa 47 de cifrado se almacena en ROM (memoria de solo lectura) 42 (un ejemplo de almacenamiento). El programa 47 de cifrado puede almacenarse en otro tipo de almacenamiento, tal como RAM (memoria de acceso aleatorio), en un disco flexible, o en un disco duro. Además, el programa 47 de cifrado puede ser descargado de un ordenador servidor. El programa 47 de cifrado opera como una subrutina. El programa 47 de cifrado es invocado desde un programa 46 de aplicación almacenado en la RAM 45 por medio de una llamada a una subrutina, y se ejecuta el programa 47 de cifrado. O el programa 47 de cifrado puede ser activado mediante la generación de una interrupción recibida por la unidad 43 de control de interrupciones. La memoria 55 puede ser una parte de la RAM 45. El programa 46 de aplicación y el programa 47 de cifrado son programas ejecutados por la CPU.
La Fig. 42 muestra un mecanismo mediante el cual el programa 46 de aplicación llama al programa 47 de cifrado.
El programa 46 de aplicación llama al programa 47 de cifrado usando la clave K, el valor inicial IV, los datos de texto en claro M, y los datos de texto cifrado C como parámetros. El programa 47 de cifrado toma como entradas la clave K, el valor inicial IV y los datos de texto en claro M y devuelve los datos de texto cifrado C. Cuando el programa 47 de cifrado y el programa de descifrado son el mismo, el programa de cifrado es llamada usando la clave K, el valor inicial IV, los datos de texto cifrado C y los datos de texto en claro M como parámetros.
El programa 47 de cifrado puede ser implementado por un procesador de señales digitales y un programa que es leído y ejecutado por el procesador de señales digitales. Concretamente, el programa 47 de cifrado puede ser implementado mediante la combinación de soporte físico y soporte lógico.
Las Figuras 40, 41 y 42 explican principalmente casos para el codificador; sin embargo, el decodificador puede ser implementado de la misma manera.
El codificador y el decodificador mostrados en las Figuras 40 y 41 pueden ser instalados en un dispositivo electrónico. Por ejemplo, el codificador y el decodificador pueden ser instalados en todo tipo de dispositivos electrónicos tales como un ordenador personal, una máquina de fax, un teléfono celular, una videocámara, una cámara digital, una cámara de TV. En particular, las características de la presente realización pueden ser utilizadas de forma efectiva en el caso de la codificación/decodificación de los datos de varios canales. O la aplicación de la realización es efectiva cuando se reciben de varios usuarios varios datos que han de ser decodificados, cuando se generan aleatoriamente varios datos a partir de varios usuarios y los datos deban ser codificados en tiempo real. Concretamente, el codificador y el decodificador de la realización son realmente eficaces cuando el número de los dispositivos para codificar/decodificar es pequeño en comparación con el número de datos que han de codificarse/decodificarse. Por ejemplo, el codificador y el decodificador son muy eficaces para el ordenador servidor que requiere soportar muchos ordenadores cliente, para una estación base o un controlador de líneas que requiera recoger datos de muchos teléfonos celulares.
En lugar del procesamiento en paralelo de procedimientos de codificación y procedimientos de decodificación, el procedimiento de codificación y el procedimiento de decodificación pueden realizarse en paralelo.
Además, la anterior explicación muestra un caso de combinación de la unidad de codificación (o unidad de decodificación) del modo OFB y el generador de MAC del modo CBC; sin embargo, puede usarse cualquier combinación de modos, tales como el modo OFB, el modo CBC, el modo CFB, un modo mejorado de estos modos, etcétera.
E07075185
01-10-2015
Además, la anterior explicación muestra un caso en el que el generador de MAC realiza la codificación usando la clave K de codificación; sin embargo, el generador de MAC puede realizar la codificación de datos, el cálculo de datos u otro procesamiento de datos.
Aplicabilidad industrial
5 Como se ha descrito, según la realización preferente de la presente invención, el procedimiento de codificación de los datos de texto en claro N puede iniciarse durante el procedimiento de codificación de los datos de texto en claro
M. Además, el procedimiento de decodificación de los datos de texto cifrado D puede iniciarse durante el procedimiento de decodificación de los datos de texto cifrado C.
Además, según la realización preferente de la presente invención, pueden asignarse prioridades a los datos que han 10 de codificarse/decodificarse y puede realizarse un procesamiento a velocidad elevada en función de las prioridades de los datos.
Además, según la realización preferente de la presente invención, también pueden llevarse a cabo en paralelo el procedimiento de confidencialidad y el procedimiento de garantía de la integridad, lo que permite un procesamiento a velocidad elevada. Además, el procedimiento de confidencialidad y el procedimiento de garantía de la integridad
15 pueden ser realizados por un soporte físico integrado.

Claims (8)

  1. REIVINDICACIONES
    1.
    Un aparato de codificación que comprende:
    una unidad (100) de codificación para introducir datos que han de codificarse y producir datos codificados, y
    un generador (200) de códigos de autenticación de mensajes (MAC) para introducir los datos codificados
    5
    producidos por la unidad de codificación y generar un MAC para garantizar una integridad de los datos
    codificados,
    en el que el generador de MAC inicia la generación del MAC antes de que la unidad de codificación acabe
    de codificar los datos y en el que se codifican datos de texto en claro que incluyen al menos un dato en
    bloques de texto en claro formando datos de texto cifrado usando la unidad de codificación y se genera un
    10
    código de autenticación de mensajes (MAC) para garantizar una integridad de los datos de texto cifrado,
    en el que la unidad (100) de codificación tiene un primer bucle de retroalimentación para retroalimentar a la
    unidad (100) de codificación los datos en bloques de texto cifrado Ci producidos por la unidad (100) de
    codificación cuando la unidad (100) de codificación codifica los datos en bloques de texto en claro, para
    introducir los datos de texto en claro, realizando un procedimiento de codificación retroalimentando los
    15
    datos en bloques de texto cifrado Ci a través del primer bucle de retroalimentación, y produciendo los datos
    en bloques de texto cifrado Ci,
    en el que el aparato de codificación comprende, además, una línea (69) de alimentación para introducir los
    datos en bloques de texto cifrado Ci desde la unidad (100) de codificación y producir los datos en bloques
    de texto cifrado Ci para el generador (200) de códigos de autenticación de mensajes (MAC), y
    20
    en el que el generador (200) de códigos de autenticación de mensajes (MAC) tiene un segundo bucle de
    retroalimentación para retroalimentar un resultado de MAC intermedio calculado Ti, para introducir los datos
    en bloques de texto cifrado Ci desde la línea (69) de alimentación, calcular un resultado de MAC intermedio
    en función de los datos en bloques de texto cifrado Ci introducidos, retroalimentar el resultado de MAC
    intermedio como el resultado de MAC intermedio calculado Ti por el segundo bucle de retroalimentación, y
    25
    generar el MAC para garantizar la integridad de los datos de texto cifrado,
    caracterizado porque la unidad de codificación y el generador de MAC realizan alternativamente el procedimiento de codificación
    y un procedimiento de generación de MAC compartiendo un módulo de codificación y un bucle de
    retroalimentación (67, 68), en el que el bucle de retroalimentación (67, 68) incluye:
    30
    una memoria para, respectivamente, almacenar y producir resultados del procedimiento de codificación
    y del procedimiento de generación de MAC, y
    un selector para seleccionar alternativamente los resultados del procedimiento de codificación y del
    procedimiento de generación de MAC de la memoria para realizar, alternativamente, el procedimiento
    de codificación y el procedimiento de generación de MAC.
    35
    2. Un aparato de codificación que comprende:
    una unidad (100) de codificación para introducir datos que han de codificarse y producir datos codificados, y
    un generador (200) de códigos de autenticación de mensajes (MAC) para introducir los datos codificados
    producidos por la unidad de codificación y generar un MAC para garantizar una integridad de los datos
    codificados,
    40
    en el que el generador de MAC inicia la generación del MAC antes de que la unidad de codificación acabe
    de codificar los datos y en el que se codifican datos de texto en claro que incluyen al menos un dato en
    bloques de texto en claro y se genera un código de autenticación de mensajes (MAC) para garantizar una
    integridad de los datos de texto cifrado,
    en el que la unidad (100) de codificación tiene un primer bucle de retroalimentación para retroalimentar al
    45
    módulo (51) de codificación datos en bloques de salida del módulo Ti producidos por el módulo (51) de
    codificación de la unidad (100) de codificación cuando la unidad (100) de codificación codifica los datos en
    bloques de texto en claro, para introducir los datos de texto en claro, realizando un procedimiento de
    codificación retroalimentando los datos en bloques de salida del módulo Ti a través del primer bucle de
    retroalimentación, y produciendo los datos en bloques de texto cifrado,
    50
    en el que el aparato de codificación comprende, además, una línea (69) de alimentación para introducir los
    datos en bloques de texto cifrado desde la unidad (100) de codificación y producir los datos en bloques de
    texto cifrado para el generador (200) de códigos de autenticación de mensajes (MAC), y
    en el que el generador (200) de MAC tiene un segundo bucle de retroalimentación para retroalimentar un
    resultado de MAC intermedio calculado, para introducir los datos en bloques de texto cifrado desde la línea
    55
    (69) de alimentación, calcular un resultado de MAC intermedio en función de los datos en bloques de texto
    cifrado introducidos, retroalimentar el resultado de MAC intermedio como el resultado de MAC intermedio
    calculado a través del segundo bucle de retroalimentación, y generar el MAC para garantizar la integridad
    de los datos de texto cifrado,
    caracterizado porque
    la unidad de codificación y el generador de MAC comparten un módulo de codificación y un bucle de
    retroalimentación (67, 68) para realizar alternativamente el procedimiento de codificación y un
    procedimiento de generación de MAC, en el que el bucle de retroalimentación incluye:
    una memoria para, respectivamente, almacenar y producir resultados del procedimiento de codificación
    5
    y del procedimiento de generación de MAC, y
    un selector para seleccionar alternativamente los resultados del procedimiento de codificación y del
    procedimiento de generación de MAC de la memoria para realizar, alternativamente, el procedimiento
    de codificación y el procedimiento de generación de MAC.
  2. 3.
    Un procedimiento de codificación que comprende:
    10
    una etapa de codificación para introducir datos que han de codificarse y producir datos codificados, y
    una etapa de generación de MAC para introducir los datos codificados producidos en la etapa de
    codificación y generar un MAC para garantizar una integridad de los datos codificados,
    en el que la etapa de generación de MAC inicia la generación del MAC antes de que la etapa de
    codificación acabe de codificar los datos y en el que se codifican datos de texto en claro que incluyen al
    15
    menos un dato en bloques de texto en claro formando datos de texto cifrado usando una unidad de
    codificación y se genera un código de autenticación de mensajes (MAC) para garantizar una integridad de
    los datos de texto cifrado,
    en el que la etapa de codificación incluye una primera etapa de retroalimentación para retroalimentar datos
    en bloques de texto cifrado Ci producidos por la unidad de codificación cuando la unidad de codificación
    20
    codifica los datos en bloques de texto en claro, introducir los datos en bloques de texto en claro, realizar un
    procedimiento de codificación retroalimentando los datos en bloques de texto cifrado Ci a través de un
    primer bucle de retroalimentación, y producir los datos en bloques de texto cifrado Ci,
    en el que los datos en bloques de texto cifrado Ci producidos por la etapa de codificación son alimentados,
    por una etapa de alimentación, a la etapa de generación de MAC, y
    25
    en el que la etapa de generación de MAC incluye una segunda etapa de retroalimentación para
    retroalimentar un resultado de MAC intermedio calculado, introducir los datos en bloques de texto cifrado Ci
    en la etapa de alimentación, calcular un resultado de MAC intermedio en función de los datos en bloques de
    texto cifrado Ci introducidos, retroalimentar el resultado de MAC intermedio como el resultado de MAC
    intermedio calculado a través de la segunda etapa de retroalimentación, y generar el MAC para garantizar
    30
    la integridad de los datos de texto cifrado, caracterizado porque la etapa de codificación y la etapa de generación de MAC realizan alternativamente el procedimiento de
    codificación y un procedimiento de generación de MAC compartiendo un módulo de codificación y un bucle
    de retroalimentación, en el que el bucle de retroalimentación incluye:
    35
    una memoria para, respectivamente, almacenar y producir resultados del procedimiento de codificación
    y del procedimiento de generación de MAC, y
    un selector para seleccionar alternativamente los resultados del procedimiento de codificación y del
    procedimiento de generación de MAC de la memoria para realizar, alternativamente, el procedimiento
    de codificación y el procedimiento de generación de MAC.
    40
    4. Un procedimiento de codificación que comprende:
    una etapa de codificación para introducir datos que han de codificarse y producir datos codificados, y
    una etapa de generación de MAC para introducir los datos codificados producidos en la etapa de
    codificación y generar un MAC para garantizar una integridad de los datos codificados,
    en el que la etapa de generación de MAC inicia la generación del MAC antes de que la etapa de
    45
    codificación acabe de codificar los datos y en el que se codifican datos de texto en claro que incluyen al
    menos un dato en bloques de texto en claro formando datos de texto cifrado usando una unidad de
    codificación y se genera un código de autenticación de mensajes (MAC) para garantizar una integridad de
    los datos de texto cifrado,
    en el que la etapa de codificación tiene una primera etapa de retroalimentación para retroalimentar datos en
    50
    bloques de salida del módulo Ti producidos por un módulo de codificación cuando los se codifican los datos
    en bloques de texto en claro, para introducir los datos en bloques de texto en claro, realizar un
    procedimiento de codificación retroalimentando los datos en bloques de salida del módulo Ti a través de un
    primer bucle de retroalimentación, y producir los datos en bloques de texto cifrado,
    en el que los datos en bloques de texto cifrado producidos por la etapa de codificación son alimentados, por
    55
    una etapa de alimentación, a la etapa de generación de MAC, y
    en el que la etapa de generación de MAC tiene una segunda etapa de retroalimentación para retroalimentar
    un resultado de MAC intermedio calculado, para introducir los datos en bloques de texto cifrado de la etapa
    de alimentación, calcular un resultado de MAC intermedio en función de los datos en bloques de texto
    cifrado introducidos, retroalimentar el resultado de MAC intermedio como el resultado de MAC intermedio
    calculado a través de la segunda etapa de retroalimentación, y generar el MAC para garantizar la integridad
    de los datos de texto cifrado,
    caracterizado porque la etapa de codificación y la etapa de generación de MAC comparten un módulo de codificación y un bucle
    5
    de retroalimentación para realizar alternativamente el procedimiento de codificación y un procedimiento de
    generación de MAC, en el que el bucle de retroalimentación incluye:
    una memoria para, respectivamente, almacenar y producir resultados del procedimiento de codificación
    y del procedimiento de generación de MAC, y
    un selector para seleccionar alternativamente los resultados del procedimiento de codificación y del
    10
    procedimiento de generación de MAC de la memoria para realizar, alternativamente, el procedimiento
    de codificación y el procedimiento de generación de MAC.
  3. 5.
    Un aparato de decodificación que comprende:
    una unidad (300) de decodificación para introducir datos que han de decodificarse y producir datos
    decodificados, y
    15
    un generador (400) de códigos de autenticación de mensajes (MAC) para introducir los datos decodificados
    producidos por la unidad de decodificación y generar un MAC para garantizar una integridad de los datos
    codificados,
    en el que el generador de MAC inicia la generación del MAC antes de que la unidad de decodificación
    acabe de decodificar los datos y en el que se decodifican datos de texto cifrado que incluyen al menos un
    20
    dato en bloques de texto cifrado formando datos de texto en claro y se genera un código de autenticación
    de mensajes (MAC) para garantizar una integridad de los datos de texto cifrado,
    en el que la unidad (300) de decodificación incluye un primer bucle de retroalimentación para retroalimentar
    datos en bloques de salida del módulo generados en la decodificación de datos por un módulo de
    decodificación, para introducir los datos en bloques de texto cifrado Ci, decodificar los datos en bloques de
    25
    texto cifrado Ci usando los datos en bloques de salida del módulo retroalimentados a través del primer
    bucle de retroalimentación, y producir datos en bloques de texto en claro Mi,
    en el que el aparato de decodificación comprende, además, una línea (69) de alimentación para introducir
    los datos en bloques de texto cifrado Ci que se introducen a la unidad (300) de decodificación y producir los
    datos en bloques de texto cifrado Ci para el generador (400) de códigos de autenticación de mensajes
    30
    (MAC), y
    en el que el generador (400) de MAC incluye un segundo bucle de retroalimentación para retroalimentar un
    resultado de MAC intermedio calculado Ti, para introducir los datos en bloques de texto cifrado Ci desde la
    línea (69) de alimentación, calcular un resultado de MAC intermedio en función de los datos en bloques de
    texto cifrado Ci introducidos, producir el resultado de MAC intermedio como el resultado de MAC intermedio
    35
    calculado Ti, retroalimentar el resultado de MAC intermedio calculado Ti a través del segundo bucle de
    retroalimentación, y generar el MAC para garantizar la integridad de los datos de texto cifrado, caracterizado porque la unidad de decodificación y el generador de MAC comparten un módulo de decodificación y un bucle de
    retroalimentación y realizan alternativamente un procedimiento de decodificación y un procedimiento de
    40
    generación de MAC, en el que el bucle de retroalimentación incluye:
    una memoria que almacena y produce resultados del procedimiento de decodificación y del
    procedimiento de generación de MAC, y
    un selector para seleccionar alternativamente los resultados del procedimiento de decodificación y del
    procedimiento de generación de MAC para dárselos al módulo de decodificación para realizar,
    45
    alternativamente, el procedimiento de decodificación y el procedimiento de generación de MAC.
  4. 6.
    Un aparato de decodificación que comprende:
    una unidad (300) de decodificación para introducir datos que han de decodificarse y producir datos
    decodificados, y
    un generador (400) de códigos de autenticación de mensajes (MAC) para introducir los datos que han de
    50
    decodificarse y generar un MAC para garantizar una integridad de los datos codificados,
    en el que el generador de MAC inicia la generación del MAC antes de que la unidad de decodificación
    acabe de decodificar los datos y en el que se decodifican datos de texto cifrado que incluyen al menos un
    dato en bloques de texto cifrado formando datos de texto en claro usando un módulo de decodificación y se
    genera un código de autenticación de mensajes (MAC) para garantizar una integridad de los datos de texto
    55
    cifrado,
    en el que la unidad (300) de decodificación tiene un primer bucle de retroalimentación para retroalimentar
    datos en bloques de texto cifrado Ci, para introducir los datos en bloques de texto cifrado, realizar un
    procedimiento de decodificación retroalimentando los datos en bloques de texto cifrado Ci a través del
    primer bucle de retroalimentación, y producir datos en bloques de texto en claro,
    en el que el aparato de decodificación comprende, además, una línea (69) de alimentación para introducir
    los datos en bloques de texto cifrado que se introducen a la unidad (300) de decodificación y producir los
    datos en bloques de texto cifrado para el generador (400) de códigos de autenticación de mensajes (MAC),
    y
    5
    en el que el generador (400) de códigos de autenticación de mensajes (MAC) tiene un segundo bucle de
    retroalimentación para retroalimentar un resultado de MAC intermedio calculado, para introducir los datos
    en bloques de texto cifrado desde la línea (69) de alimentación, calcular un resultado de MAC intermedio en
    función de los datos en bloques de texto cifrado introducidos, producir el resultado de MAC intermedio
    como el resultado de MAC intermedio calculado, retroalimentar el resultado de MAC intermedio calculado a
    10
    través del segundo bucle de retroalimentación, y generar el MAC para garantizar la integridad de los datos
    de texto cifrado,
    caracterizado porque la unidad de decodificación y el generador de MAC comparten un módulo de decodificación y un bucle de
    retroalimentación para realizar alternativamente el procedimiento de decodificación y un procedimiento de
    15
    generación de MAC, en el que el bucle de retroalimentación incluye:
    una memoria para, respectivamente, almacenar y producir resultados del procedimiento de
    decodificación y del procedimiento de generación de MAC, y
    un selector para seleccionar alternativamente los resultados del procedimiento de decodificación y del
    procedimiento de generación de MAC de la memoria para realizar, alternativamente, el procedimiento
    20
    de decodificación y el procedimiento de generación de MAC.
  5. 7.
    Un procedimiento de decodificación que comprende:
    una etapa de decodificación para introducir datos que han de decodificarse y producir datos decodificados,
    y
    una etapa de generación de MAC para introducir los datos decodificados producidos en la etapa de
    25
    decodificación y generar un MAC para garantizar una integridad de los datos codificados,
    en el que la etapa de generación de MAC inicia la generación del MAC antes de que la etapa de
    decodificación acabe de decodificar los datos y en el que se decodifican datos de texto cifrado que incluyen
    al menos un dato en bloques de texto cifrado formando datos de texto en claro y se genera un código de
    autenticación de mensajes (MAC) para garantizar una integridad de los datos de texto cifrado,
    30
    en el que la etapa de decodificación incluye una primera etapa de retroalimentación para retroalimentar
    datos en bloques de salida del módulo generados en la decodificación de datos por un módulo de
    decodificación, introducir los datos en bloques de texto cifrado Ci, decodificar los datos en bloques de texto
    cifrado Ci usando los datos en bloques de salida del módulo retroalimentados a través del primer bucle de
    retroalimentación, y producir datos en bloques de texto en claro Mi,
    35
    en el que los datos en bloques de texto cifrado Ci introducidos en la etapa de de codificación son
    alimentados, por una etapa de alimentación, a la etapa de generación de MAC, y
    en el que la etapa de generación de MAC incluye una segunda etapa de retroalimentación para
    retroalimentar un resultado de MAC intermedio calculado Ti, introducir los datos en bloques de texto cifrado
    Ci en la etapa de alimentación, calcular un resultado de MAC intermedio en función de los datos en bloques
    40
    de texto cifrado Ci introducidos, producir el resultado de MAC intermedio como el resultado de MAC
    intermedio calculado Ti, retroalimentar el resultado de MAC intermedio calculado Ti por un segundo bucle
    de retroalimentación, y generar el MAC para garantizar la integridad de los datos de texto cifrado, caracterizado porque la etapa de decodificación y la etapa de generación de MAC comparten un módulo de decodificación y un
    45
    bucle de retroalimentación y realizan alternativamente el procedimiento de decodificación y un
    procedimiento de generación de MAC, en el que el bucle de retroalimentación incluye:
    una memoria que almacena y produce resultados del procedimiento de decodificación y del
    procedimiento de generación de MAC, y
    un selector para seleccionar alternativamente los resultados del procedimiento de decodificación y del
    50
    procedimiento de generación de MAC para dárselos al módulo de decodificación para realizar,
    alternativamente, el procedimiento de decodificación y el procedimiento de generación de MAC.
  6. 8.
    Un procedimiento de decodificación que comprende:
    una etapa de decodificación para introducir datos que han de decodificarse y producir datos decodificados,
    y
    55
    una etapa de generación de MAC para introducir los datos que han de decodificarse y generar un MAC
    para garantizar una integridad de los datos codificados,
    en el que la etapa de generación de MAC inicia la generación del MAC antes de que la etapa de
    decodificación acabe de decodificar los datos y en el que se decodifican datos de texto cifrado que incluyen
    al menos un dato en bloques de texto cifrado formando datos de texto en claro usando una unidad de
    decodificación y se genera un código de autenticación de mensajes (MAC) para garantizar una integridad
    de los datos de texto cifrado,
    en el que la etapa de decodificación tiene una primera etapa de retroalimentación para retroalimentar datos
    en bloques de texto cifrado Ci, para introducir los datos en bloques de texto cifrado, realizar un
    5
    procedimiento de decodificación de los datos en bloques de texto cifrado Ci retroalimentados a través de un
    primer bucle de retroalimentación, y producir datos en bloques de texto en claro,
    en el que los datos en bloques de texto cifrado introducidos en la etapa de decodificación son alimentados,
    por una etapa de alimentación, a la etapa de generación de MAC, y
    en el que la etapa de generación de MAC tiene una segunda etapa de retroalimentación para retroalimentar
    10
    un resultado de MAC intermedio calculado, introducir los datos en bloques de texto cifrado Ci en la etapa de
    alimentación, calcular un resultado de MAC intermedio en función de los datos en bloques de texto cifrado
    Ci introducidos, producir el resultado de MAC intermedio como el resultado de MAC intermedio calculado,
    retroalimentar el resultado de MAC intermedio calculado a través de la segunda etapa de retroalimentación,
    15
    y generar el MAC para garantizar la integridad de los datos de texto cifrado, caracterizado porque la etapa de decodificación y la etapa de generación de MAC comparten un módulo de decodificación y un
    bucle de retroalimentación para realizar alternativamente el procedimiento de decodificación y un
    procedimiento de generación de MAC, en el que el bucle de retroalimentación incluye:
    una memoria para, respectivamente, almacenar y producir resultados del procedimiento de
    20
    decodificación y del procedimiento de generación de MAC, y
    un selector para seleccionar alternativamente los resultados del procedimiento de decodificación y del
    procedimiento de generación de MAC de la memoria para realizar, alternativamente, el procedimiento
    de decodificación y el procedimiento de generación de MAC.
  7. 9.
    Un medio de almacenamiento legible por ordenador que almacena un programa para hacer que un ordenador
    25
    ejecute etapas del procedimiento de codificación descrito en una de las reivindicaciones 3 a 4.
  8. 10.
    Un medio de almacenamiento legible por ordenador que almacena un programa para hacer que un ordenador
    ejecute etapas del procedimiento de decodificación descrito en una de las reivindicaciones 7 a 8.
ES07075185.4T 2000-01-14 2000-12-22 Codificador, procedimiento de codificación, decodificador, procedimiento de decodificación y medio de grabación legible por ordenador que tiene almacenado un programa en el mismo Expired - Lifetime ES2548860T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000005161 2000-01-14
JP2000005161 2000-01-14

Publications (1)

Publication Number Publication Date
ES2548860T3 true ES2548860T3 (es) 2015-10-21

Family

ID=18533842

Family Applications (1)

Application Number Title Priority Date Filing Date
ES07075185.4T Expired - Lifetime ES2548860T3 (es) 2000-01-14 2000-12-22 Codificador, procedimiento de codificación, decodificador, procedimiento de decodificación y medio de grabación legible por ordenador que tiene almacenado un programa en el mismo

Country Status (15)

Country Link
EP (2) EP1161027B1 (es)
JP (1) JP4036648B2 (es)
KR (1) KR100406223B1 (es)
CN (2) CN100385850C (es)
AT (1) ATE429746T1 (es)
AU (1) AU760811C (es)
CA (1) CA2366353C (es)
DE (1) DE60042062D1 (es)
DK (1) DK1816782T3 (es)
ES (1) ES2548860T3 (es)
HK (1) HK1041998B (es)
NO (1) NO332197B1 (es)
SG (1) SG117471A1 (es)
TW (1) TW546938B (es)
WO (1) WO2001052472A1 (es)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4710607B2 (ja) * 2003-07-14 2011-06-29 ソニー株式会社 暗号装置、暗号方法および暗号プログラム、復号装置、復号方法および復号プログラム、ならびに、記録媒体
JP2006107380A (ja) * 2004-10-08 2006-04-20 Sony Corp 情報処理装置及び情報処理方法、メモリ装置、並びにコンピュータ・プログラム
JP4549303B2 (ja) 2005-02-07 2010-09-22 株式会社ソニー・コンピュータエンタテインメント パイプラインを用いてメッセージ認証コードを提供する方法および装置
JP4287397B2 (ja) * 2005-03-29 2009-07-01 東芝情報システム株式会社 暗号文生成装置、暗号文復号装置、暗号文生成プログラム及び暗号文復号プログラム
JP4287398B2 (ja) * 2005-03-29 2009-07-01 東芝情報システム株式会社 暗号化復号化システム、暗号文生成プログラム及び暗号文復号プログラム
US7831039B2 (en) * 2006-06-07 2010-11-09 Stmicroelectronics S.R.L. AES encryption circuitry with CCM
US8233619B2 (en) * 2006-06-07 2012-07-31 Stmicroelectronics S.R.L. Implementation of AES encryption circuitry with CCM
DE102007052656B4 (de) * 2007-11-05 2010-03-25 Texas Instruments Deutschland Gmbh Digital-Verschlüsselungs-Hardware-Beschleuniger
JP2015114434A (ja) * 2013-12-10 2015-06-22 Kddi株式会社 ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム
JP6557727B2 (ja) * 2014-12-03 2019-08-07 ナグラビジョン エス アー メッセージを暗号化/復号化するためのブロック暗号方法及びこの方法を実施するための暗号装置
WO2017026055A1 (ja) * 2015-08-11 2017-02-16 富士通株式会社 情報処理装置、データ表示方法及びデータ表示プログラム
US11438137B2 (en) * 2017-09-01 2022-09-06 Mitsubishi Electric Corporation Encryption device, decryption device, encryption method, decryption method, and computer readable medium
WO2020186125A1 (en) 2019-03-13 2020-09-17 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5769344A (en) * 1980-10-13 1982-04-28 Nippon Telegr & Teleph Corp <Ntt> Controller of stored program
US4791669A (en) * 1985-11-30 1988-12-13 Nec Corporation Encryption/decryption system
JPH0273747A (ja) * 1988-09-09 1990-03-13 Nec Corp 交換処理待ちキュー優先制御回路
JP2918297B2 (ja) * 1990-06-18 1999-07-12 富士通株式会社 割込規制方式
JP2667575B2 (ja) * 1990-11-27 1997-10-27 株式会社東芝 タスクスケジューリング方式
US5365588A (en) * 1993-03-12 1994-11-15 Hughes Aircraft Company High speed encryption system and method
US5673319A (en) * 1995-02-06 1997-09-30 International Business Machines Corporation Block cipher mode of operation for secure, length-preserving encryption
US5796836A (en) * 1995-04-17 1998-08-18 Secure Computing Corporation Scalable key agile cryptography
US5615264A (en) * 1995-06-08 1997-03-25 Wave Systems Corp. Encrypted data package record for use in remote transaction metered data system
US5664016A (en) * 1995-06-27 1997-09-02 Northern Telecom Limited Method of building fast MACS from hash functions
US5631960A (en) * 1995-08-31 1997-05-20 National Semiconductor Corporation Autotest of encryption algorithms in embedded secure encryption devices
US5835599A (en) * 1996-04-15 1998-11-10 Vlsi Technology, Inc. Muti-cycle non-parallel data encryption engine
JPH09298736A (ja) * 1996-05-08 1997-11-18 Matsushita Electric Ind Co Ltd スクランブル伝送装置およびスクランブル装置およびデスクランブル装置および信号処理装置
JP3570114B2 (ja) * 1996-10-21 2004-09-29 富士ゼロックス株式会社 データ検証方法およびデータ検証システム
US6459792B2 (en) * 1997-04-23 2002-10-01 Matsushita Electric Industrial Co., Ltd. Block cipher using key data merged with an intermediate block generated from a previous block
DE19724072C2 (de) * 1997-06-07 1999-04-01 Deutsche Telekom Ag Vorrichtung zur Durchführung eines Blockchiffrierverfahrens
JP2000022684A (ja) * 1998-07-01 2000-01-21 Nec Corp データ暗号復号化通信方法及びシステム

Also Published As

Publication number Publication date
HK1041998A1 (en) 2002-07-26
WO2001052472A1 (fr) 2001-07-19
AU760811B2 (en) 2003-05-22
EP1816782A1 (en) 2007-08-08
DK1816782T3 (en) 2015-10-12
EP1816782B1 (en) 2015-07-15
TW546938B (en) 2003-08-11
AU760811C (en) 2003-12-18
CA2366353A1 (en) 2001-07-19
DE60042062D1 (de) 2009-06-04
CA2366353C (en) 2005-09-06
AU2400801A (en) 2001-07-24
KR100406223B1 (ko) 2003-11-17
EP1161027A1 (en) 2001-12-05
CN1343411A (zh) 2002-04-03
JP4036648B2 (ja) 2008-01-23
NO20014443D0 (no) 2001-09-13
CN100385850C (zh) 2008-04-30
KR20010114222A (ko) 2001-12-31
SG117471A1 (en) 2005-12-29
CN1783774A (zh) 2006-06-07
EP1161027A4 (en) 2005-09-14
ATE429746T1 (de) 2009-05-15
NO20014443L (no) 2001-11-13
EP1161027B1 (en) 2009-04-22
NO332197B1 (no) 2012-07-23
HK1041998B (zh) 2009-09-11

Similar Documents

Publication Publication Date Title
ES2548860T3 (es) Codificador, procedimiento de codificación, decodificador, procedimiento de decodificación y medio de grabación legible por ordenador que tiene almacenado un programa en el mismo
US20090125726A1 (en) Method and Apparatus of Providing the Security and Error Correction Capability for Memory Storage Devices
JPS61501484A (ja) 貯蔵及び送信デ−タを危険又は盗聴から保護する方法と装置
KR101653121B1 (ko) 통합 시큐리티 장치 및 통합 시큐리티 장치에 이용되는 신호 처리 방법
CN111082925B (zh) 基于aes算法和puf技术的嵌入式系统加密保护装置和方法
KR20140037071A (ko) 원격 생체인식 동작들을 위한 시스템 및 방법
JP2019121403A (ja) ランダムコード発生装置
CN113079001B (zh) 密钥更新方法、信息处理设备及密钥更新装置
US8122075B2 (en) Pseudorandom number generator and encryption device using the same
JP2003084853A (ja) プログラム可能なゲートアレイのためのコピー防止方法及びシステム
KR100963417B1 (ko) 보안 기능을 갖는 rfid 보안 장치 및 방법
TWI249666B (en) Device using parity check bit to carry out data encryption protection and method thereof
JP5586758B1 (ja) 動的暗号化鍵生成システム
KR101428665B1 (ko) Aes-otp기반의 보안 시스템 및 방법
JP6203556B2 (ja) 情報処理システム
JP2008276728A (ja) 疑似乱数生成装置及びそれを用いた暗号化処理装置
JP2007184000A (ja) 暗号化装置及び暗号化方法及び復号装置及び復号方法及びプログラムを記録したコンピュータ読み取り可能な記録媒体
US11121884B2 (en) Electronic system capable of self-certification
JP2006279488A (ja) 暗号文生成装置、暗号文復号装置、暗号文生成プログラム及び暗号文復号プログラム
AU2003203427B2 (en) Encryptor, encrypting method, decryptor, decrypting method, and computer readable recording medium having program stored therein
JP2007013503A (ja) 暗号化装置及び方法、復号化装置及び方法
KR100295106B1 (ko) 이동통신의인증및데이타보호방법
JPH11327436A (ja) 暗号化装置
CN115280813A (zh) 交互认证方法、装置及系统、计算机设备及可读存储介质
JP2018092174A (ja) 乱数生成装置、記憶装置及び情報処理システム