ES2382454T3 - Aparato de cifrado en bloques que utiliza una transformación auxiliar - Google Patents

Aparato de cifrado en bloques que utiliza una transformación auxiliar

Info

Publication number
ES2382454T3
ES2382454T3 ES01912172T ES01912172T ES2382454T3 ES 2382454 T3 ES2382454 T3 ES 2382454T3 ES 01912172 T ES01912172 T ES 01912172T ES 01912172 T ES01912172 T ES 01912172T ES 2382454 T3 ES2382454 T3 ES 2382454T3
Authority
ES
Spain
Prior art keywords
data
unit
transformation
key
input
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
ES01912172T
Other languages
English (en)
Inventor
Mitsuru Matsui
Toshio Tokita
Junko Nakajima
M. Kanda
S. Moriai
K. Aoki
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
Nippon Telegraph and Telephone Corp
Original Assignee
Mitsubishi Electric Corp
Nippon Telegraph and Telephone 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, Nippon Telegraph and Telephone Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of ES2382454T3 publication Critical patent/ES2382454T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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/122Hardware reduction or efficient architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Facsimile Transmission Control (AREA)
  • Slot Machines And Peripheral Devices (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Chair Legs, Seat Parts, And Backrests (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Materials For Medical Uses (AREA)
  • Burglar Alarm Systems (AREA)
  • Communication Control (AREA)
  • Lock And Its Accessories (AREA)
  • Fittings On The Vehicle Exterior For Carrying Loads, And Devices For Holding Or Mounting Articles (AREA)
  • Treatments For Attaching Organic Compounds To Fibrous Goods (AREA)
  • Studio Circuits (AREA)
  • Prostheses (AREA)
  • Complex Calculations (AREA)
  • Document Processing Apparatus (AREA)
  • Stereo-Broadcasting Methods (AREA)

Abstract

Un aparato de transformación de datos con una unidad de procesamiento de datos para llevar a cabo al menos uno entre el cifrado de datos y el descifrado de datos, en base a datos de clave ingresados, en el cual la unidad de procesamiento de datos divide los datos a transformar en datos primeros (L) y datos segundos (R), y realiza una transformación de datos, caracterizado porque la unidad de procesamiento de datos comprende: una unidad de transformación normal de datos (FL) para transformar los datos primeros (L) en base a los datos de clave ingresados; y una unidad de transformación inversa de datos (FL-1) para transformar los datos segundos (R), realizando una transformación inversa de la transformación por parte de la unidad de transformación normal de datos (FL) en base a los datos de clave de entrada.

Description

Aparato de cifrado en bloques que utiliza una transformación auxiliar.
Campo Técnico
La presente invención se refiere a un aparato de transformación de datos, a unos procedimientos de transformación de datos, y a unos medios de almacenaje en los cuales son registrados los procedimientos de transformación de datos, para su cifrado, descifrado y difusión de los datos con el fin de proteger información digital existente en las comunicaciones de información.
Técnica Antecedente
La Fig. 25 representa una función de cifrado que se utiliza en el DES (Estándar de Cifrado de Datos) descrito en “Gendai Ango Riron (Teoría de Cifrado Moderno)” [”(Modern Cipher Theory)”] (Instituto de Ingenieros de Electrónica, Información y Comunicación [“The Institute of Electronics, Information and Communication Engineers”] publicado el 15 de Noviembre de 1997, página 46).
Como se muestra en la Fig. 25, se utilizan ocho cajas S. Estas ocho cajas S son tablas diferentes entre sí. Cada tabla emite de salida datos de 4 bits a partir de datos de entrada de 6 bits.
La Fig. 26 muestra una función de transformación no lineal que se describe en “Especificación de E2 - un Cifrado en Bloque de 128 bits” [“Specification of E2 - a 128-bit Block Cipher”] (Nippon Telegraph and Telephone Corporation” publicado el 14 de Junio de 1998, página 10).
Como se muestra en la Fig. 26, cada unidad de función S se compone de ocho cajas S.
Los dispositivos de cifrado convencionales utilizan múltiples cajas S. Dado que algunos cifrados están equipados con tablas diferentes entre sí, el uso de la memoria se incrementa en comparación con los equipados con una caja
S. Dado que, por otro lado, otros cifrados utilizan solo una caja S, la seguridad del cifrado se reduce.
Como se muestra en la Fig. 7, cuando una unidad de transformación normal de datos (FL) 250 es insertada en la unidad de cifrado, se requiere suministrar una unidad de transformación inversa de datos (FL-1) 270 en una unidad de descifrado para descifrar los textos cifrados. Dado que, por regla general, la unidad de transformación normal de datos (FL) 250 y la unidad de transformación inversa de datos (FL-1) 270 son circuitos diferentes entre sí, ello ocasiona un problema en el sentido de que la unidad de cifrado y la unidad de descifrado no pueden proporcionar la misma configuración.
Por otro lado, en la generación de claves de extensión, se requieren operaciones complejas con el fin de generar claves de extensión que ofrezcan una mayor seguridad. Hay otro problema en el caso de la generación de claves de extensión, en el sentido de que el número de bits de los datos de clave que deben ser introducidos como valor inicial debe ser fijo.
La presente invención tiene como objetivo proporcionar unos sistemas en los cuales los circuitos de cifrado y descifrado sean los mismos, y en los cuales el área de los circuitos, el tamaño de los programas y el uso de las memorias que se utilizan para el cálculo de una transformación no lineal puedan reducirse, y además, puedan generarse las claves de extensión utilizando una configuración más sencilla.
El documento de MATSUI M: “Nuevo algoritmo MISTY de cifrado en bloques”, 4º TALLER INTERNACIONAL DECIFRADO RÁPIDO POR SOFTWARE, ANALES FSE ’97 SPRINGER-VERLAG, BERLIN, ALEMANIA, 1997, páginas 54-68, XP002367857, ISBN: 3-540-63247-6, representa la técnica anterior más cercana. Este documento revela el concepto de introducir una función lineal (FL) dependiente de la clave en un cifrado de bloque.
Los problemas de la técnica anterior son resueltos por el aparato de transformación de datos según la reivindicación 1 y el procedimiento de transformación de datos según la reivindicación 11. Las respectivas reivindicaciones dependientes dan desarrollos ventajosos del aparato de transformación de datos y del procedimiento según la invención.
Divulgación de la Invención
La invención se refiere a un aparato de transformación de datos con una unidad de procesamiento de datos para realizar al menos uno entre el cifrado de datos y el descifrado de datos, en base a datos de clave de entrada, en donde la unidad de procesamiento de datos divide los datos a transformar en datos primeros (L) y datos segundos
(R) y realiza una transformación de datos, caracterizada porque la unidad de procesamiento de datos comprende una unidad de transformación normal de datos (FL) para transformar los datos primeros (L) en base a los datos de clave de entrada; y una unidad de transformación inversa de datos (FL-1) para transformar los datos segundos (R), realizando una transformación inversa de la transformación por medio de la unidad de transformación normal de datos (EL), en base a los datos de clave de entrada.
La invención se refiere además a un correspondiente procedimiento de transformación de datos, un programa de ordenador adaptado para realizar las etapas de dicho procedimiento y un medio portador legible por ordenador que lleva el programa ejecutable por ordenador.
Breve Explicación de los Dibujos
La Fig. 1 muestra una unidad de transformación de datos para el cifrado 100 y una unidad de transformación de
datos para el descifrado 400.
La Fig. 2 muestra notaciones.
La Fig. 3 muestra una configuración de una unidad 200 de cifrado o de una unidad 500 de descifrado.
La Fig. 4 muestra otra configuración de la unidad 200 de cifrado o de la unidad 500 de descifrado.
La Fig. 5 muestra una configuración de una unidad de transformación normal de datos (FL) 251.
La Fig. 6 muestra una configuración de una unidad de transformación inversa de datos (FL-1) 271.
La Fig. 7 muestra una parte de una unidad de cifrado convencional y una unidad de descifrado convencional.
La Fig. 8 muestra una parte de la unidad 200 de cifrado y de la unidad 500 de descifrado. La Fig. 9 muestra la unidad de transformación normal de datos (FL) 251 y la unidad de transformación inversa de datos (FL-1) 271 que están situadas en simetría puntual.
La Fig. 10 muestra la relación entre la unidad de transformación normal de datos (FL) 251 y la unidad de transformación inversa de datos (FL.1) 271 que están situadas en simetría puntual.
La Fig. 11 muestra una unidad F de función no lineal. La Fig. 12 muestra una configuración de una primera unidad 13 de transformación de caja S y una segunda unidad 14 de transformación de caja S.
La Fig. 13 muestra una configuración de una unidad 21 de transformación de caja S.
La Fig. 14 muestra una configuración de una unidad 85 de transformación lineal.
La Fig. 15 muestra una configuración de una unidad 87 de transformación lineal.
La Fig. 16 muestra una configuración de una unidad 300 de generación de claves o de una unidad 600 de
generación de claves. La Fig. 17 explica las operaciones de una unidad 310 de transformación de longitud de bits. La Fig. 18 muestra una configuración de un registro A 341 de desplazamiento. La Fig. 19 muestra una configuración de una tabla de control de una unidad 345 de control de desplazamiento. La Fig. 20 muestra las operaciones del registro A 341 de desplazamiento y de un registro B 342 de desplazamiento. La Fig. 21 muestra la correspondencia entre el registro A 341 de desplazamiento, el registro B 342 de
desplazamiento y las claves de extensión. La Fig. 22 muestra las operaciones de los registros A 341 a D 344 de desplazamiento. La Fig.23 muestra la correspondencia entre los registros A 341 a D 344 de desplazamiento y las claves de
extensión.
La Fig. 24 muestra un ordenador equipado con la unidad de transformación de datos para el cifrado 100 y la unidad
de transformación de datos para el descifrado 400.
La Fig. 25 muestra una configuración de la función de cifrado del DES.
La Fig. 26 muestra una configuración de la función no lineal del cifrado de bloques E2 de 128 bits.
La Fig. 27 muestra otro ejemplo de unidades de transformación de cajas S.
La Fig. 28 muestra una unidad F de función no lineal que está equipada con las unidades primera a cuarta de
transformación de cajas S.
La Fig. 29 muestra otra unidad F de función no lineal en la cual se desplaza una ubicación de la unidad 25 de función de claves.
La Fig. 30 muestra otra unidad F de función no lineal en la cual se desplaza una ubicación de la unidad 25 de función de clave.
5 La Fig. 31 muestra otra configuración de una unidad 30 de función P.
La Fig. 32 muestra otra configuración de la unidad 30 de función P.
La Fig. 33 muestra configuraciones y operaciones de S1 a S4 de la Fig. 31.
La Fig. 34 muestra una prueba de inexistencia de claves equivalentes.
La Fig. 35 muestra una prueba de la no existencia de claves equivalentes.
10 La Fig. 36 muestra otra configuración de la unidad 200 de cifrado o de la unidad 500 de descifrado.
La Fig. 37 muestra otra configuración de la unidad 200 de cifrado o de la unidad 500 de descifrado.
La Fig. 38 muestra otra configuración de la unidad 200 de cifrado o de la unidad 500 de descifrado.
La Fig. 39 muestra otra configuración de la unidad 200 de cifrado o de la unidad 500 de descifrado.
La Fig. 40 muestra otra configuración de la unidad 200 de cifrado o de la unidad 500 de descifrado.
15 La Fig. 41 muestra otra configuración de la unidad 200 de cifrado o de la unidad 500 de descifrado.
La Fig. 42 muestra una configuración en la cual las unidades de la Fig. 39 y de la Fig. 40 están combinadas.
La Fig. 43 muestra una configuración de la unidad 200 de cifrado o de la unidad 500 de descifrado, la cual se muestra en la Fig. 3, que utiliza la unidad F de función no lineal mostrada en la Fig. 28.
La Fig. 44 muestra una configuración modificada de la Fig. 43 mediante la utilización de una unidad F de función no 20 lineal en la cual la unidad 25 de función de clave de la unidad F de función no lineal está suprimida.
La Fig. 45 muestra una configuración modificada de la Fig. 44 mediante la fusión de las claves de extensión de blanqueo con las claves de extensión.
La Fig. 46 muestra una configuración modificada en la cual la unidad 25 de función de clave está suprimida de la unidad F de función no lineal y en la cual una clave de extensión k es suministrada a un circuito XOR 298, cuando la
25 unidad F de función no lineal está configurada como se muestra en la Fig. 29.
La Fig. 47 muestra una configuración modificada en la cual la unidad 25 de función de clave está suprimida de la unidad F de función no lineal y en la cual una clave k’ de extensión transformada de forma lineal es suministrada al circuito XOR 298, cuando la unidad F de función no lineal está configurada como se muestra en la Fig. 30.
Mejor Modo de Llevar a Cabo la Invención
30 Realización 1
La Fig. 1 muestra una unidad de transformación de datos para el cifrado 100 y una unidad de transformación de datos para el descifrado 400 en esta realización.
La unidad de transformación de datos para el cifrado 100 es, por ejemplo, un dispositivo de cifrado que emite de salida textos cifrados de 128 bits a partir de textos no cifrados de entrada de 128 bits. La unidad de transformación 35 de datos para el descifrado 400 es un dispositivo de descifrado que emite de salida textos no cifrados de 128 bits a partir de textos cifrados de entrada de 128 bits. La unidad de transformación de datos para el cifrado 100 se compone de una unidad 200 de cifrado y de una unidad 300 de generación de claves. La unidad 200 de cifrado es una unidad de procesamiento de datos para el cifrado de textos no cifrados. La unidad 300 de generación de claves genera múltiples (n) claves de extensión de 64 bits o de 128 bits utilizando constantes Vi a partir de datos de clave 40 de entrada de 128 bits, 192 bits o 256 bits, y los suministra a la unidad 200 de cifrado. La unidad 400 de transformación de datos para el descifrado se compone de una unidad 500 de descifrado y de una unidad 600 de generación de claves. La unidad 500 de descifrado es una unidad de procesamiento de datos para descifrar textos cifrados. La unidad 600 de generación de claves es la misma o similar a la anterior unidad 300 de generación de claves. Así mismo, dado que la unidad 200 de cifrado y la unidad 500 de descifrado pueden ejecutar el mismo 45 procedimiento, pueden compartir un circuito o un programa, aunque la unidad 200 de cifrado y la unidad 500 de descifrado se ilustran separadamente en las figuras. De modo similar, las unidades 300 y 600 de generación de claves pueden compartir un circuito o un programa. Esto es, un circuito, o un programa, puede ser compartido por la
unidad de transformación de datos para el cifrado 100 y por la unidad de transformación de datos para el descifrado
400.
La Fig. 2 muestra los significados de las notaciones utilizadas para las siguientes figuras o descripciones.
En la Fig. 3 y en las figuras subsiguientes, una mitad izquierda de los datos se llama “datos izquierdos L” y una mitad derecha de los datos se llama “datos derechos R”. Además, los datos introducidos en las unidades 210, 220, 230 y 240 de transformación no lineal de datos son llamados “datos de entrada”, los datos internos de las unidades 210, 220, 230 y 240 de transformación no lineal de datos se llaman “datos intermedios” y los datos emitidos desde las unidades 210, 220, 230 y 240 de transformación no lineal de datos se llaman “datos de salida”.
La Fig. 3 muestra un ejemplo de la unidad 200 de cifrado o de la unidad 500 de descifrado.
La Fig. 3 muestra una configuración en la cual están conectadas en cascada la unidad 210 de transformación no lineal de datos de 6 rondas, la unidad 220 de transformación no lineal de datos de 6 rondas y la unidad 230 de transformación no lineal de datos de 6 rondas. La unidad de transformación normal de datos (FL) 251 y la unidad de transformación inversa de datos (FL-1) 271 están insertadas entre la unidad 210 de transformación no lineal de datos de 6 rondas y la unidad 220 de transformación no lineal de datos de 6 rondas. Además, la unidad de transformación normal de datos (FL) 253 y la unidad de transformación inversa de datos (FL-1) 273 están insertadas entre la unidad 220 de transformación no lineal de datos de 6 rondas y la unidad 230 de transformación no lineal de datos de 6 rondas. Dentro de la unidad 210 de transformación no lineal de datos de 6 rondas, se disponen 6 rondas de unidades de transformación no lineal de datos. Por ejemplo, una unidad 280 de transformación no lineal de datos está compuesta por una unidad F de función no lineal y por un circuito XOR (O exclusivo) 290. De esta forma, en el caso de la Fig. 3, en total se suministran 18 rondas de unidades de transformación no lineal de datos.
La unidad 210 de transformación no lineal de datos está equipada con una primera unidad 280 de transformación no lineal de datos y con una segunda unidad 281 de transformación no lineal de datos. Para dos elementos de datos de entrada arbitrarios, los datos de entrada de la derecha Ro y los datos de entrada de la izquierda Lo, el primero lleva a cabo la primera transformación no lineal sobre los datos de entrada de la izquierda Lo utilizando una primera extensión de clave k1, emite un resultado operado con la función XOR de los datos de salida de la primera transformación no lineal y los datos de entrada de la derecha Ro, como primeros datos intermedios de la izquierda L1, y emite los datos de entrada de la izquierda Lo como primeros datos intermedios de la derecha R1. El último lleva a cabo la segunda transformación no lineal sobre los primeros datos intermedios de la izquierda L1 utilizando una segunda clave de extensión k2, emite un resultado operado con la función XOR de los datos de salida de la segunda transformación no lineal y los primeros datos intermedios de la derecha R1, como segundos datos intermedios de la izquierda L2, y emite los primeros datos intermedios de la izquierda L1 como segundos datos intermedios de la derecha R2. La unidad 210 de transformación no lineal de datos, en la cual están conectadas en cascada desde la primera unidad 280 de transformación no lineal de datos a la sexta unidad 285 de transformación no lineal de datos, emite los datos intermedios finales de la derecha R6 y los datos intermedios de la izquierda L6 como datos de salida después de la transformación.
La Fig. 4 muestra una configuración en la cual una unidad de transformación normal de datos (FL) 255, una unidad de transformación inversa de datos (FL-1) 275, y una unidad 240 de transformación no lineal de datos de 6 rondas se añaden a la unidad 200 de cifrado mostrada en la Fig. 3. En total, la transformación de datos se lleva a cabo mediante 24 rondas de unidades de transformación no lineal de datos.
La Fig. 5 muestra la unidad de transformación normal de datos (FL) 251.
La Fig. 5 muestra que la unidad de transformación normal de datos (FL) 251 divide los datos de entrada en dos elementos de datos, los datos de entrada 51 de la izquierda y los datos de entrada 52 de la derecha, lleva a cabo operaciones lógicas para ambos elementos de datos y genera los datos de salida a partir de los datos de entrada 60 de la izquierda y de los datos de entrada 61 de la derecha. Los datos de entrada 51 de la izquierda son operados con la función AND con una clave de extensión 53 en un circuito AND 54, y a continuación, los datos operados con la función AND son desplazados rotacionalmente hacia la izquierda (también llamado “desplazamiento circular”) en 1 bit en una unidad 55 de desplazamiento rotacional a la izquierda de un 1 bit. Los datos desplazados son operados con la función XOR con los datos de entrada 52 de la derecha en un circuito XOR 56. La salida procedente del circuito XOR 56 se convierte en los datos de salida 61 de la derecha, y son operados con la función OR con una clave 57 de extensión en un circuito OR 58. A continuación, el resultado operado con la función OR es operado con la función XOR con los datos de entrada 51 de la izquierda en un circuito XOR 59 para generar los datos de salida 60 de la izquierda.
La Fig. 6 muestra la unidad de transformación inversa de datos (FL-1) 271.
La Fig. 6 muestra que la unidad de transformación inversa de datos (FL-1) 271 divide los datos de entrada en dos elementos de datos, los datos de entrada 71 de la izquierda y los datos de entrada 72 de la derecha, lleva a cabo operaciones lógicas para ambos elementos de datos, y genera los datos de salida procedentes de los datos de salida 80 de la izquierda y los datos de salida 81 de la derecha.
Los datos de entrada 72 de la derecha son operados con la función OR con una clave de extensión 73 en un circuito OR 74, y a continuación, los datos operados con la función OR son operados con la función XOR con los datos de entrada 71 de la izquierda en un circuito XOR 75. A continuación, la salida procedente del circuito XOR 75 se convierte en los datos de salida 80 de la izquierda y son operados con la función AND con una clave de extensión 76 en un circuito AND 77. Después de ello, el resultado operado con la función AND es desplazado rotacionalmente hacia la izquierda en 1 bit en una unidad 78 de desplazamiento rotacional a la izquierda de 1 bit, y los datos desplazados son operados con la función XOR con los datos de entrada 72 de la derecha en un circuito XOR 79. La salida procedente del circuito XOR 79 se convierte en los datos de salida 81 de la derecha.
La unidad de transformación normal de datos (FL) 251 mostrada en la Fig. 5 y la unidad de transformación inversa de datos (FL-1) 271 mostrada en la Fig. 6 llevan a cabo operaciones opuestas entre sí. Por consiguiente, utilizando la misma clave de extensión, los datos de entrada X de la Fig. 5 pueden obtenerse como datos de salida X de la Fig. 6 haciendo que los datos de salida Y de la Fig. 5 sean los datos de entrada Y de la Fig. 6.
La relación en la cual los datos de entrada a una unidad pueden obtenerse como datos de salida procedentes de la otra unidad, haciendo que los datos de salida procedentes de la primera unidad sean los datos de entrada a la otra unidad es denominada una relación entre las transformaciones normal e inversa. La unidad de transformación normal de datos (FL) 251 y la unidad de transformación inversa de datos (FL-1) 271 son circuitos que realizan dicha relación entre las transformaciones normal e inversa.
Tanto la unidad 55 de desplazamiento rotacional hacia la izquierda de 1 bit de la Fig. 5 como la unidad 78 de desplazamiento rotacional hacia la izquierda de 1 bit de la Fig. 6 llevan a cabo el desplazamiento hacia la izquierda, pero ambas pueden ejecutar el desplazamiento a la derecha. Además, la unidad de transformación normal de datos (FL) 251 y la unidad de transformación inversa de datos (FL-1) 271 pueden ser una entre otras configuraciones, en tanto en cuanto mantengan la relación entre las transformaciones normal e inversa. Por ejemplo, el número de desplazamientos puede modificarse. Además, pueden añadirse un circuito AND con una operación “no”, un circuito OR con una operación “no”, y / o un circuito XOR con una operación “no”. Es decir, lo que sigue son las definiciones mostradas del circuito AND con una operación “no”, el circuito OR con una operación “no”, y el circuito XOR con una operación “no”, representados por “andn”, “orn” y “xorn”, respectivamente.
x andn y : (no x) e y
x orn y : (no x) o y
x xorn y : (no x) o y, pero no ambos
Algunas CPU modernas están provistas de comandos “and”, “or” y “xor” que incluyen “no”. Estos comandos pueden ejecutarse con el mismo coste que los comandos “and”, “or” y “xor”.
La Fig. 7 muestra una unidad 201 de cifrado convencional y una unidad 501 de descifrado convencional.
La unidad 201 de cifrado convencional está equipada con dos unidades normales de transformación de datos FL. Así, la unidad de descifrado debe estar equipada con dos unidades de transformación inversas de datos FL-1 con el fin de llevar a cabo las operaciones inversas. Por consiguiente, dado que la unidad de cifrado por regla general tiene una configuración distinta que la unidad de descifrado, la unidad de cifrado y la unidad de descifrado no pueden compartir el mismo circuito.
Por otro lado, como se muestra en la Fig. 8, en la presente realización, la unidad de transformación normal de datos (FL) 251 y la unidad de transformación inversa de datos (FL-1) 271 están situadas lado con lado en la unidad 200 de cifrado, de forma que la unidad de descifrado con la misma configuración pueda llevar a cabo el descifrado. Por ejemplo, los datos de la derecha R son transformados por la unidad de transformación normal de datos (FL) 251 para obtener los datos de la izquierda L’, y los datos de la izquierda L son transformados por la unidad de transformación inversa de datos (FL-1) 271 para obtener los datos de la derecha R’. En este caso, los datos de la derecha R pueden obtenerse introduciendo los datos de la izquierda L’ en la unidad de transformación inversa de datos (FL-1) 271, y los datos de la izquierda L pueden obtenerse introduciendo los datos de la derecha R’ en la unidad normal de transformación de datos (FL) 251.
Como se describió anteriormente, la unidad 200 de cifrado y la unidad 500 de descifrado pueden ser implementadas mediante la misma configuración, y la unidad 200 de cifrado y la unidad 500 de descifrado pueden compartir el circuito.
La Fig. 9 muestra una configuración en la cual la unidad de transformación normal de datos (FL) 251 y la unidad de transformación inversa de datos (FL-1) 271 están situadas en simetría puntual sobre la unidad 280 de transformación no lineal de datos.
De esta forma, cuando la unidad de transformación normal de datos (FL) 251 y la unidad de transformación inversa de datos (FL-1) 271 están situadas en simetría puntual sobre la unidad 280 de transformación no lineal de datos, el cifrado y el descifrado pueden llevarse a cabo utilizando la misma configuración.
La Fig. 10 muestra la correspondencia entre la unidad de transformación de datos (FL) y la unidad de transformación inversa de datos (FL-1), situadas en simetría puntual.
Como se muestra en la Fig. 10, en el caso de la Fig. 3, la unidad de transformación normal de datos (FL) 251 y la unidad de transformación inversa de datos (FL-1) 271 están situadas en simetría puntual sobre la unidad 220 de transformación no lineal de datos de 6 rondas.
En las Figs. 3, 4, 8 y 9, la unidad de transformación de datos (FL) y la unidad de transformación inversa de datos (FL-1) pueden ser sustituidas entre sí. Además, en las Figs. 3, 4, 8 y 9, los datos de la derecha R y los datos de la izquierda L pueden ser sustituidos entre sí.
La Fig. 36 muestra una configuración en la cual la unidad 200 de cifrado se compone de la unidad 210 de transformación no lineal de datos de 6 rondas, la unidad 220 de transformación no lineal de datos de 6 rondas y la unidad 230 de transformación no lineal de datos de 6 rondas.
La unidad 210 de transformación no lineal de datos de 6 rondas, la unidad 220 de transformación no lineal de datos de 6 rondas y la unidad 230 de transformación no lineal de datos de 6 rondas son circuitos que pueden utilizarse para el cifrado y el descifrado.
Aquí, una unidad 211 de transformación normal / inversa de datos está compuesta por la unidad 210 de transformación no lineal de datos de 6 rondas, la unidad de transformación normal de datos (FL) 250 y la unidad de transformación inversa de datos (FL-1) 271. La unidad de transformación normal / inversa de datos es un circuito que puede utilizarse tanto para el cifrado como para el descifrado. Es decir, la unidad de transformación normal / inversa de datos es un circuito normal / inverso de transformación en el cual los datos de entrada en la unidad pueden obtenerse como los datos de salida procedentes de la otra unidad haciendo que los datos de salida procedentes de la unidad sean los datos de entrada a la otra unidad.
Una unidad 221 de transformación normal / inversa de datos se compone también de la unidad 220 de transformación no lineal de datos de 6 rondas, la unidad de transformación normal de datos (FL) 251 y la unidad de transformación inversa de datos (FL-1) 273.
Además, una unidad 231 de transformación normal / inversa de datos está compuesta por la unidad 230 de transformación no lineal de datos de 6 rondas, la unidad de transformación normal de datos (FL) 253 y la unidad de transformación inversa de datos (FL-1) 275.
La unidad 200 de cifrado está configurada mediante la conexión en cascada de estas unidades 221, 221 y 231 normales / inversas de transformación de datos. Y esta unidad 200 de cifrado puede también ser utilizada como unidad 500 de descifrado.
Además, si se supone que un conjunto de la unidad 210 de transformación no lineal de datos de 6 rondas, la unidad 220 de transformación no lineal de datos de 6 rondas, la unidad de transformación normal de datos (FL) 251 y la unidad de transformación inversa de datos (FL-1) 271 sea una unidad 1210 de transformación no lineal de datos, la unidad 1210 de transformación no lineal de datos es un circuito que puede utilizarse para el cifrado y el descifrado. Aquí, una unidad 1211 de transformación normal / inversa de datos se compone de la unidad 1210 de transformación no lineal de datos, la unidad de transformación normal de datos (FL) 250, y de la unidad de transformación inversa de datos (FL-1) 273.
Además, si se supone que un conjunto de la unidad 220 de transformación no lineal de datos de 6 rondas, la unidad 230 de transformación no lineal de datos de 6 rondas, la unidad de transformación normal de datos (FL) 253 y la unidad de transformación inversa de datos (FL-1) 273 sea una unidad 1220 de transformación no lineal de datos, una unidad 1221 de transformación normal / inversa de datos se compone de la unidad 1220 de transformación no lineal de datos, la unidad de transformación normal de datos (FL) 251 y la unidad de transformación inversa de datos (FL-1)
275.
Las unidades 1211 y 1221 de transformación normal / inversa de datos pueden utilizarse para la unidad de descifrado.
Además, si se supone que un conjunto de las unidades 210 a 230 de transformación no lineal de datos de 6 rondas sea una unidad 2210 de transformación no lineal de datos, la unidad 2210 de transformación no lineal de datos es un circuito que puede utilizarse tanto para el cifrado como para el descifrado.
Aquí, la unidad 2210 de transformación no lineal de datos, la unidad de transformación normal de datos (FL) 250, y la unidad de transformación inversa de datos (FL-1) 275 constituyen una unidad 2211 de transformación normal / inversa de datos.
La unidad 2211 de transformación normal / inversa de datos puede ser utilizada para la unidad de descifrado.
De acuerdo con lo anteriormente descrito, la unidad 200 de cifrado o la unidad 500 de descifrado pueden ser configuradas mediante la conexión en cascada de múltiples unidades de transformación normales / inversas de datos.
Además, en la unidad 200 de cifrado o en la unidad 500 de descifrado, la unidad de transformación normal / inversa de datos puede constituirse jerárquicamente alojando la unidad de transformación normal / inversa de datos dentro de la unidad de transformación normal / inversa de datos.
La Fig. 37 muestra un caso en el que la unidad 200 de cifrado y la unidad de descifrado tienen la misma configuración, que incluye la unidad 210 de transformación no lineal de datos de 6 rondas.
En la Fig. 37, la unidad 210 de transformación no lineal de datos de 6 rondas incluye rondas pares de unidades 280 de transformación no lineal de datos, como se muestra en las Figs. 3 y 4. Los datos A son transformados en datos A’ mediante una primera unidad 256 de entrada de transformación normal de datos, los datos A’ son introducidos en un primer puerto 261 de entrada, los datos A’ introducidos desde el primer puerto 261 de entrada son emitidos desde un primer puerto 263 de salida como datos A1’. Además, los datos B ingresados desde un segundo puerto 262 de entrada son emitidos desde un segundo 264 puerto de salida como datos B1. Los datos B1 emitidos desde el segundo puerto 264 de salida son transformados en datos B1’ por una segunda unidad 279 de salida de transformación inversa de datos.
Los datos A1’ emitidos desde el primer puerto 263 de salida de la unidad 200 de cifrado son introducidos en el segundo puerto 262 de entrada de la unidad 500 de descifrado como datos A1’. Los datos B1’ emitidos desde la segunda unidad 279 de salida de transformación inversa de datos son introducidos en la primera unidad 256 de entrada de transformación normal de datos como datos B1’, y emitidos como datos B1.
La unidad 210 de transformación no lineal de datos introduce los datos B1 y emite los datos B. Además, la unidad 210 de transformación no lineal introduce los datos A1’ y emite los datos A’. La segunda unidad 279 de salida de transformación inversa de datos introduce los datos A’ y emite los datos A.
En la Fig. 38, la unidad 219 de transformación no lineal de datos de ronda impar incluye rondas impares de unidades 280 de transformación no lineal de datos. En consecuencia, los datos A’ ingresados desde el primer puerto 261 de entrada son emitidos desde el segundo puerto 264 de salida como datos A1’. A continuación los datos A1’ son transformados por la segunda unidad 279 de transferencia inversa de datos de salida y emitidos como datos A1’’. Además, los datos B introducidos en el segundo puerto 262 de entrada son emitidos desde el primer puerto 263 de salida como datos B1.
Los datos B1 emitidos desde el primer puerto 262 de salida de la unidad 200 de cifrado son introducidos en el segundo puerto 262 de entrada de la unidad 500 de descifrado como datos B1. Los datos A1’’ emitidos desde la segunda unidad 279 de transformación inversa de datos de salida de la unidad 200 de cifrado son introducidos en la unidad 500 de descifrado como datos A1’’ e introducidos en la primera unidad 256 de transformación normal de datos de entrada.
En los casos de las Figs. 37 y 38, la unidad 200 de cifrado y la unidad 500 de descifrado tienen la misma configuración, llevando a cabo el cifrado y el descifrado.
La Fig. 39 muestra un caso en el que la segunda unidad 257 de transformación normal de datos de entrada se proporciona en el segundo puerto 262 de entrada, y la primera unidad 278 de transformación inversa de datos de salida se proporciona en el primer puerto 263 de salida.
La Fig. 40 muestra un caso en el que la primera unidad 276 de transformación inversa de datos de entrada se proporciona en el primer puerto de entrada 261, y la segunda unidad 259 de transformación normal de datos de salida se proporciona en el segundo puerto 264 de salida.
La Fig. 41 muestra un caso en el que las unidades 256, 258 de transformación normal / inversa de datos se proporcionan en los puertos 261, 263 de entrada / salida de la izquierda y las unidades 277, 278 de transformación inversa de datos se proporcionan en los puertos 262, 264 de entrada / salida de la derecha.
La Fig. 42 muestra un caso en el que las Figs. 39 y 40 están combinadas.
Puede implementarse otro caso mediante la combinación de las Figs. 37 y 39, que no se muestra en la figura. Además, las Figs. 38 y 39 pueden combinarse. Además, la unidad 210 de transformación no lineal de datos de 6 rondas (rondas pares) puede sustituirse por la unidad 219 de transformación no lineal de datos de rondas impares en las Figs. 37 y 39 a 42, que no se muestran en las figuras. En los casos de las Figs. 39 a 42, la unidad de cifrado y la unidad de descifrado pueden ser implementadas mediante la misma configuración.
Realización 2
La Fig. 11 muestra una configuración de una unidad F de función no lineal de la unidad 280 de transformación no lineal de datos.
La unidad F de función no lineal introduce datos 10 de entrada de la función F, lleva a cabo la transformación no lineal y emite datos 40 de salida de la función F. Los datos 10 de entrada de la función F de 64 bits se dividen en ocho elementos de datos, y se procesan en la unidad de 8 bits. Cada uno de los datos de 8 bits es introducido en cada uno de los ocho circuitos XOR 12 de una unidad 25 de función de clave, operados con la función XOR con una clave 11 de extensión, y se lleva a cabo una transformación no lineal utilizando una sustitución en una unidad 20 de función S. A continuación, en una unidad 30 de función P, dos elementos de los datos de 8 bits son operados con la función XOR mediante dieciséis circuitos XOR 815, y son emitidos los datos 40 de salida de la función F de 64 bits. En la unidad 20 de función S, se proporcionan cuatro primeras unidades 13 de transformación de cajas S y cuatro segundas unidades 14 de transformación de cajas S.
La Fig. 12 muestra un ejemplo de implementación de la primera unidad 13 de transformación de las cajas S y de la segunda unidad 14 de transformación de cajas S.
Dentro de la primera unidad 13 de transformación de cajas S, se proporciona una tabla de transformación T. La tabla de transformación T almacena previamente valores de 0 a 255 de manera arbitraria (al azar) correspondientes a valores de 0 a 255. La tabla de transformación T introduce los valores de 0 a 255 y emite el valor (valor de 0 a 255) correspondiente a cada valor. Por ejemplo, cuando se introduce 1, la tabla de transformación T emite 7. La tabla de transformación T lleva a cabo una transformación no lineal determinada con arreglo a consideraciones de seguridad, por ejemplo, verificando si la función es biyectiva o no, si la probabilidad diferencial máxima es suficientemente pequeña o no, etc.
La segunda unidad 14 de transformación de cajas S incluye la primera unidad 13 de transformación de cajas S y una unidad 22 de desplazamiento rotacional a la izquierda de 1 bit (en la figura, “<<<” de “<<<1” muestra el desplazamiento rotacional a la izquierda y “1” muestra 1 bit). La unidad 22 de desplazamiento rotacional a la izquierda de 1 bit lleva a cabo el desplazamiento rotacional a la izquierda en 1 bit para una salida procedente de la primera unidad 13 de transformación de cajas S. Por ejemplo, cuando se introduce 1, la primera unidad 13 de transformación de cajas S emite 7 y la unidad 22 de desplazamiento rotacional a la izquierda de 1 bit emite 14.
Si la primera unidad 13 de transformación de cajas S y la segunda unidad 14 de transformación de cajas S están configuradas como se muestra en la Fig. 12, se puede obtener un efecto similar al caso en el que se proporcionan dos tipos de tablas de transformación T, aunque no se requiere que existan dos tipos de tablas de transformación T. Mediante la inclusión de una sola tabla de transformación T, el uso de la memoria requerido para el almacenaje de la tabla de transformación T puede reducirse, y puede también reducirse la escala del circuito.
Además, como se muestra en la Fig. 27, mediante la provisión de una unidad 15 de desplazamiento rotacional a la derecha de 1 bit (“>>>1” de la tercera unidad 15 de transformación de cajas S de la Fig. 27) así como, o en lugar de, la unidad 22 de desplazamiento rotacional a la izquierda de 1 bit, puede obtenerse un efecto similar en un caso en el que se proporcione también una tabla T de transformación diferente. De otra forma, también es posible transformar los datos y de entrada utilizando la tabla de transformación de datos T después del desplazamiento de los datos y de entrada por la unidad de desplazamiento rotacional a la izquierda de 1 bit (“<<<1” de la cuarta unidad 16 de transformación de cajas S de la Fig. 27) proporcionada para los datos y de entrada. La Fig. 27 muestra los casos de s(y), s(y)<<<1, s(y)>>>1, s(y<<<1), pero también son aplicables los casos de s(y>>>1), s(y<<<1)<<<1, s(y<<<1)>>>1, s(y>>>1)<<<1 y s(y>>>1)>>>1. Haciendo que la cantidad desplazada sea 1 bit, resulta posible algunas veces funcionar más rápido que en casos de desplazamiento de 3 bits o 5 bits en el caso de que las CPUs, etc. tengan solamente un comando de desplazamiento de 1 bit. Además, cuando este proceso de desplazamiento se lleve a cabo mediante hardware que lleve a cabo un desplazamiento de 1 solo bit, a veces es posible funcionar más rápido. Además, el desplazamiento no está limitado a llevarse a cabo a razón de 1 bit, sino que puede utilizarse un número arbitrario de bits como, por ejemplo, 2 bits o 3 bits. Mediante el desplazamiento en un número arbitrario de bits, a veces resulta posible obtener un efecto similar al de la provisión de tipos diferentes de tablas.
La Fig. 28 muestra una unidad 20 de función S que utiliza las unidades 13, 14, 15, 16 primera a cuarta de transformación de cuatro cajas S, mostradas en la Fig. 27.
Otra configuración de la unidad 30 de función P se muestra en la Fig. 31.
A partir de los datos de entrada de 8 bits y1, y2, y3, y4, se obtienen datos Z1, Z2, Z3, Z4, de 32 bits mediante referencia a S1, S2, S3, S4, respectivamente, y son operados con la función XOR en un circuito 913. A partir de los datos de entrada de 8 bits y5, y6, y7, y8, se obtienen los datos Z5, Z6, Z7, Z8, de 32 bits mediante referencia a S2, S3, S4, S1, respectivamente, y son operados con la función XOR en un circuito 916. Este resultado U2 operado con la función XOR y el anterior resultado U1 operado con la función XOR son operados con la función XOR en un circuito 917 para emitir z1’, z2’, z3’, z4’. A continuación, el resultado U1, operado con la función XOR desde el circuito 913 es desplazado a la izquierda en un octeto (en la Fig. 31, “<<<1” representa un desplazamiento rotacional de 1 octeto, no un desplazamiento rotacional de 1 bit) en un circuito 918. El resultado desplazado es operado con la función XOR con la salida procedente del circuito 917 para emitir Z5’,Z6’, Z7’, Z8’.
Como se muestra en (a) a (d) de la Fig. 33, S1 se configura utilizando la primera unidad 13 de transmisión de cajas S, S2 se configura utilizando la segunda unidad 14 de transformación de cajas S, S3 se configura utilizando la tercera unidad 15 de transformación de cajas S y S4 se configura utilizando la cuarta unidad 16 de transformación de cajas S. Los datos de salida de 8 bits procedentes de cada unidad de transformación son copiados cuatro veces para obtener datos de 32 bits, y además, los datos de 32 bits son enmascarados para emitir solo tres elementos de los datos (24 bits).
El desplazamiento rotacional de 1 octeto del circuito 918 es un desplazamiento cíclico por unidad de longitud de bits (8 bits = 1 octeto), que es procesado por la caja S.
La Fig. 32 muestra la unidad de función P cuya configuración es equivalente a la Fig. 31, pero la implementación es diferente.
A partir de los datos de entrada de 8 bits y1, y2, y3, y4, se obtienen los datos de 32 bits z1, z2, z3, z4, mediante referencia a S5, S6, S7, S8, y son operados con la función XOR en un circuito 933 para emitir un resultado operativo
A. A partir de los datos de entrada de 8 bits y5, y6, y7, y8, se obtienen los datos de 32 bits Z5, Z6, Z7, Z8 mediante referencia a S9, SA, SB y SC, y son operados con la función XOR en un circuito 936 para emitir un resultado operativo B. El resultado operativo B es desplazado rotacionalmente a la derecha en 1 octeto (en la Fig. 32, de manera similar a la Fig. 31, el desplazamiento es llevado a cabo en una unidad de longitud de bits (8 bits = 1 octeto) que es procesada por la caja S, no 1 bit) en un circuito 937 y el resultado operativo B y el resultado operativo A son operados con la función XOR en un circuito 938. Este resultado operativo C es desplazado rotacionalmente hacia la parte superior (izquierda) en un octeto en un circuito 939, y el resultado operativo C es también operado con la función XOR con el resultado operativo A en un circuito 940. Este resultado operativo D es desplazado rotacionalmente hacia la parte superior (izquierda) en 2 octetos en un circuito 941, y el resultado operativo D es también operado con la función XOR con la salida procedente del circuito 939 en un circuito 942. Este resultado operativo E es desplazado rotacionalmente (a la derecha) en 1 octeto en un circuito 943, y el resultado operativo E es también operado con la función XOR con la salida procedente del circuito 941 en un circuito 944. La salida F procedente del circuito 944 es emitida como z1’, z2’, z3’, z4’, y la salida procedente del circuito 943 es emitida como z5’, z6’, z7’, z8’.
S5 y SC se configuran utilizando la primera unidad 13 de transformación de caja S y un desplazamiento lógico, S6 y S9 se configuran utilizando la segunda unidad 14 de transformación de caja S y un desplazamiento lógico, S7 y SA se configuran utilizando la tercera unidad 15 de transformación de caja S y un desplazamiento lógico, S8 y SB se configuran utilizando la cuarta unidad 16 de transformación de caja S y un desplazamiento lógico. El desplazamiento lógico se utiliza para emitir datos de salida de 8 bits procedentes de cada unidad de transformación hasta una ubicación predeterminada situada dentro de los datos de salida de 32 bits. El desplazamiento lógico se fija para desplazar hacia la izquierda en 0 octetos en S5 y SA, en 1 octeto en S6 y SB, en 2 octetos en S7 y SC y en 3 octetos en S8 y S9. Es decir, suponiendo una salida de 8 bits a partir de la unidad de transformación como z, puede representarse una salida de 32 bits, como [0, 0, 0, z] (0 muestra que cada uno de los ocho bits es 0) en S5 y SA, [0, 0, z, 0] en S6 y SB, [0, z, 0, 0] en S7 y SC, y [z, 0, 0, 0] en S8 y S9.
La implementación es posible utilizando unas tablas de sustitución cuya entrada sea de 8 bits y cuya salida sea de 32 bits, lo cual se calcula para producir directamente una salida predeterminada.
En los casos de las Figs. 31 y 32, puede proporcionarse el aparato que lleve a cabo una transformación a una velocidad más alta que la transformación empleada para el cifrado E2 convencional mostrado en la Fig. 26, y además, sobre el cual resulte posible una implementación flexible.
En la Fig. 11, cuando las cajas S de la unidad 20 de función S están configuradas respectivamente mediante tipos diferentes de cajas S, se requieren ocho tablas de transformación T. Por otro lado, cuando las cajas S están configuradas como se muestra en la Fig. 12, el uso de la memoria requerida para el almacenaje de las tablas de transformación T puede reducirse a al menos la mitad.
Además, ocho elementos de datos de 8 bits son introducidos por división de tiempo en la primera unidad 13 de transformación de caja S y en la segunda unidad 14 de transformación de caja S mostrada en la Fig. 12, de forma que las respectivas ocho cajas S convencionales pueden ser sustituidas por la primera unidad 13 de transformación de caja S y por la segunda unidad 14 de transformación de caja S.
La Fig. 13 muestra otro ejemplo de la caja S de la unidad 20 de función S.
La configuración concreta se explica con detalle en la obra de Matui y Sakurai, “Circuito de división y circuito compartido del Campo de Galois para la multiplicación y división” [“Galois Field division circuit and shared circuit for multiplication and division”] (Registro de Patente japonesa Nº 2641285 [2 de Mayo de 1997]).
Los datos de 8 bits son introducidos en la unidad 21 de transformación de caja S y se emiten los datos de 8 bits. La unidad 21 de transformación de caja S se configura mediante una unidad 17 de transformación lineal de N bits (aquí, N = 8), una unidad 18 de transformación de subcampo y una unidad 19 de transformación lineal de N bits. La unidad 17 de transformación lineal de N bits lleva a cabo operaciones de datos de 8 bits. La unidad 18 de transformación de subcampo lleva a cabo operaciones de datos de solo 4 bits que son elementos del Campo de Galois, GF (24). La unidad 19 de transformación lineal de N bits lleva a cabo una operación de datos de 8 bits. Una unidad 85 de transformación lineal de la unidad 17 de transformación lineal de N bits es un circuito que lleva a cabo la transformación lineal mostrada en la Fig. 14. Una unidad 87 de transformación lineal es un circuito que lleva a cabo la transformación lineal mostrada en la Fig. 15.
La unidad 85 de transformación lineal puede ser sustituida por un circuito que lleve a cabo una transformación afín (una transformación lineal puede considerarse como un tipo de transformación afín). De modo similar, la unidad 87 de transformación lineal puede ser sustituida por un circuito que lleve a cabo otra transformación afín. La unidad 85 de transformación afín transforma los datos de 8 bits (X) en datos de 8 bits (X’). Se supone que los datos de 8 bits obtenidos (X’) son elementos del Campo de Galois (28). Se supone que los datos de los 4 bits superiores y los datos de los 4 bits inferiores (X1 y X0) de los datos X’ son, respectivamente, elementos de Campo de Galois de subcampo
(24)
y son emitidos hacia la unidad 18 de transformación de subcampo. Aquí, por ejemplo, sea un elemento � del CG
(28)
un elemento que satisface el polinomio irreductible X8 + X6 + X5 + X3 + 1 = 0, y a = �238, una base del CG (24) de subcampo, que puede ser representada como [1, a, a2, a3]. Si los elementos del CG (24), X0, X1, son representados utilizando esto, la relación siguiente puede establecerse como X’ = XO + � X1. (Para los detalles, consúltese la obra de Matui y Sakurai, “Circuito de división y circuito compartido del Campo de Galois para multiplicación y división” [“Galois Field division circuit and shared circuit for multiplication and division”] (Registro de Patente japonesa Nº 2641285 [2 de Mayo de 1997])). La unidad 18 de transformación de subcampo se configura solo por unidades operativas, cada una de las cuales lleva a cabo operaciones de datos de 4 bits.
Aquí, como ejemplo de extracción de “subcampo”, el subcampo CG (2m), donde n = 2m, puede tomarse en consideración para un CG (2n) determinado. En este ejemplo, n = 8, m = 4.
La unidad 18 de transformación de subcampo es un circuito de elementos inversos que utiliza el subcampo construido por el circuito mostrado en el documento “Circuito de división y circuito compartido del Campo de Galois para multiplicación y división” [“Galois Field division circuit and shared circuit for multiplication and division”] (Registro de Patente Nº 2641285 [2 de Mayo de 1997]). Como resultado operativo de este circuito de elementos inversos, los datos de los 4 bits superiores y los datos de los 4 bits inferiores (Y1 e Y0), cada uno de los cuales puede considerarse como un elemento del CG (24), son emitidos hacia la unidad 87 de transformación lineal como datos Y de 8 bits, los cuales pueden considerarse como un elemento del CG (28), donde Y = Y0 + � Y1. Como se expuso anteriormente, este circuito de elementos inversos es un circuito para calcular Y = Y0 + � Y1 = 1 / (Xo + � X1). Además, hay algunas formas de adoptar una “base”, como por ejemplo una “base polinómica” y una “base normal”, en la representación del elemento de “campo finito” (cómo adoptar una base) en el circuito de elementos inversos.
Una primera característica de la unidad 21 de transformación de caja S mostrada en la Fig. 13 es calcular datos con un ancho de bits (4 bits) que es la mitad del ancho de bits (8 bits) de la entrada de datos para la transformación no lineal. Es decir, el circuito de elementos inversos se caracteriza por llevar a cabo operaciones de datos de solo 4 bits.
Sin embargo, la velocidad de cálculo puede reducirse llevando a cabo operaciones de solo 4 bits. Este supuesto ofrece la ventaja de que una escala de un circuito completo puede ser mucho menor que en un supuesto en el que se lleven a cabo operaciones de datos de 8 bits.
Además, una segunda característica de la unidad 21 de transformación de caja S consiste en que la unidad 17 de transformación lineal de N bits y la unidad 19 de transformación lineal de N bits, donde N = 8, se proporcionan a ambos lados de la unidad 18 de transformación de subcampo. Cuando la unidad 21 de transformación de caja S es implementada utilizando la unidad 18 de transformación de subcampo, existe la ventaja de que puede reducirse una escala del circuito entero, y la configuración resulta más sencilla en comparación con el supuesto que emplea una tabla de transformación T que almacena valores aleatorios, mientras que, por el contrario, la seguridad puede reducirse. En consecuencia, las transformaciones lineales o las transformaciones afines se llevan a cabo a ambos lados de la unidad 18 de transformación de subcampo, de forma que pueda recuperarse la reducción del nivel de seguridad debido a la implementación que utiliza la unidad 18 de transformación de subcampo.
En la Fig. 13, las transformaciones lineales se llevan a cabo a ambos lados de la unidad 18 de transformación de subcampo; sin embargo, la transformación lineal puede llevarse a cabo solo en un lado. En otra variante, la transformación lineal puede llevarse a cabo en un lado, y la transformación afín puede llevarse a cabo en el otro lado.
La Fig. 29 muestra un supuesto en el que la unidad 25 de función de clave se muestra en la Fig. 11, esto es, la unidad 25 de función de clave situada antes de la unidad 20 de función S y de la unidad 30 de función P, ahora se sitúa después de la unidad 20 de función S y de la unidad 30 de función P.
La Fig. 30 muestra un supuesto en el que la unidad 25 de función de clave está situada entre la unidad 25 de función S y la unidad 30 de función P.
Mediante el empleo de la configuración mostrada en la Fig. 29 o la Fig. 30, se puede tener un efecto de que una implementación proporciona una operación de velocidad más alta de lo que lo hace la configuración mostrada en la Fig. 11. Además, mediante la modificación de la generación de las claves de extensión, puede obtenerse la misma salida utilizando la configuración mostrada en la Fig. 29 o en la Fig. 30 a partir de la misma entrada que la de la configuración de la Fig. 11. En la unidad de función F convencional mostrada en la Fig. 26, se proporcionan dos funciones S, en cada una de las cuales se lleva a cabo en primer término una operación con la clave de extensión y a continuación se lleva a cabo una operación de función S. Por el contrario, en el caso mostrado en la Fig. 29, una unidad 25 de función de clave está situada en la etapa final de la función F. En el caso mostrado en la Fig. 30, la unidad 25 de función de clave está situada entre la unidad 20 de función S y la unidad 30 de función P.
La Fig. 43 muestra un caso en el que la unidad F de transformación no lineal mostrada en la Fig. 28 se emplea en la unidad 200 de cifrado o en la unidad 500 de descifrado mostradas en la Fig. 3.
Los datos de la izquierda son introducidos en la unidad F de transformación no lineal como datos 10 de entrada de la función F, y se emiten los datos 40 de salida de la función F. Los datos 40 de salida de la función F son operados con la función XOR con los datos de la derecha, y el resultado operado con la función XOR se convierte en los datos de la izquierda de la siguiente ronda. Cuando los datos de la izquierda son introducidos en la unidad F de transformación lineal como los datos 10 de entrada de la función F, al mismo tiempo, los datos de la izquierda son utilizados como datos de la derecha de la siguiente ronda. En la configuración mostrada en la Fig. 43, las operaciones de la unidad 25 de la función de clave, de la unidad 20 de función S y de la unidad 30 de función P se llevan a cabo en la unidad F de transformación no lineal, de forma que la carga de las operaciones resulta considerable dentro de la unidad F de transformación no lineal. Un caso ejemplar en el que puede conseguirse una velocidad de procesamiento más alta mediante la distribución de la carga operativa de la unidad F de transformación no lineal, se expondrá a continuación con referencia a las figuras.
La Fig. 44 muestra un supuesto en el que se utiliza la unidad F de transformación no lineal. La unidad F de transformación no lineal es una unidad en la que la unidad 25 de la función de claves es suprimida de la unidad F de transformación no lineal mostrada en la Fig. 43. La clave de extensión k1 es operada con la función XOR con los datos de la izquierda L0 en un circuito XOR 891. Además, la clave de extensión k2 es operada con la función XOR con los datos de la derecha R0 en un circuito XOR 297. Los datos de la izquierda son introducidos en la unidad F de transformación no lineal como los datos 10 de entrada de la función F, y transformados por la unidad 20 de función S y por la unidad 30 de función P. La salida procedente del circuito XOR 297 y los datos 40 de salida de la función F son operados con la función XOR en un circuito XOR 290 para emitir los datos de la izquierda L1.
Por otro lado, las unidades 300, 600 de generación de claves llevan a cabo una operación XOR de las claves de extensión k1 y k2 y emiten la clave de extensión modificada k1 + k9. La salida R1 del circuito XOR 891 y la clave de extensión k1 + k3 son operadas con la función XOR en un circuito XOR 298 para emitir los datos de la derecha. Las unidades 300, 600 de generación de claves modifican las claves de extensión para generar y emitir k1 + k3, k2 + k4, k3 + k5, …, k16 + k18. Las unidades 300, 600 de generación de claves suministran las claves de extensión modificadas a los procesos distintos del proceso (F) de función no lineal para operar con los datos. Como resultado de ello, los datos de la izquierda L18 y los datos de la derecha R18 resultan ser los mismos que los datos de la izquierda L18 y que los datos de la derecha R18 en el caso de la Fig. 43.
Las claves de extensión modificadas son suministradas a procesos distintos del proceso (F) de función no lineal y operados con los datos y, en consecuencia, las operaciones con los datos de clave pueden ser llevadas a cabo fuera de la unidad F de función no lineal, a saber, en los circuitos XOR 297 y 298, mientras que las operaciones de la unidad 20 de función S y de la unidad 30 de función P son llevadas a cabo en la unidad F de función no lineal. Por consiguiente, las operaciones de la unidad 25 de función de clave son eliminadas de la unidad F de función no lineal, y la carga de la unidad F de función no lineal es distribuida, lo cual permite una implementación de alta velocidad.
La Fig. 45 muestra un caso en el que las operaciones de la clave de extensión de blanqueo kw1, se llevan a cabo asimismo como operaciones de las otras claves de extensión en la configuración mostrada en la Fig. 44. La Fig. 45 muestra un caso en el que la unidad de generación de claves previamente lleva a cabo una operación XOR de una parte de la clave de extensión de blanqueo, kw1superior y de la primera clave de extensión k1 (es decir, la unidad de generación de claves modifica la clave de extensión) y suministra el resultado de la operación al circuito XOR 891.
La figura muestra también un caso en el que la unidad de generación de claves lleva a cabo previamente una operación XOR como parte de la clave de extensión de blanqueo kw1inferior y de la segunda clave de extensión k2 (es decir, la unidad de generación de claves modifica la clave de extensión) y suministra el resultado de la operación al circuito XOR 297.
De esta forma, puede ser eliminada la operación en el circuito XOR 293 mostrado en la Fig. 44. Además, en un caso mostrado en la Fig. 45, la unidad de generación de claves lleva a cabo una operación XOR de una parte de la clave de extensión de blanqueo kw2inferior y de la clave de extensión k17 (es decir, la unidad de generación de claves modifica la clave de extensión) y suministra el resultado de la operación al circuito XOR 299. Y además, la unidad de generación de claves lleva a cabo una operación XOR de la otra parte de la clave de extensión de blanqueo kw2superior y de la clave de extensión k18 (es decir, la unidad de generación de claves modifica la clave de extensión) y suministra el resultado de la operación al circuito XOR 892.
De esta forma, se elimina la operación del circuito XOR 296 mostrada en la Fig. 44.
La Fig. 46 muestra un caso en el que la unidad 25 de función de clave es suprimida de la unidad F de función no lineal y, en su lugar, la unidad de generación de claves suministra la clave de extensión k al circuito XOR 298 cuando la unidad F de función no lineal está configurada como se muestra en la Fig. 29.
La Fig. 47 muestra un caso en el que la unidad 25 de función de claves es suprimida de la unidad F de función no lineal y, en su lugar, la unidad de generación de claves suministra la clave de extensión transformada de manera no lineal k’ = P(k) al circuito XOR 298 cuando la unidad F de función no lineal está configurada como se muestra en la Fig. 30. En el caso de la Fig. 47, se lleva a cabo la misma operación efectuada por el proceso de función P sobre los datos de clave para generar datos de clave transformados de manera no lineal, y los datos de clave transformados de manera no lineal son suministrados a procesos distintos del proceso de función no lineal (F) para procesar los datos que van a ser operados con los datos, como datos de clave para datos de procesamiento. En ambos casos de las Figs. 46 y 47, debido a que la unidad 25 de función de clave es eliminada de la unidad F de función no lineal, la carga operativa de la unidad F de función no lineal se reduce, y la operación del circuito XOR 298 situado fuera de la unidad F de función no lineal puede llevarse a cabo en paralelo con las operaciones llevadas a cabo por la unidad F de función no lineal, lo que posibilita un procesamiento de alta velocidad.
Realización 3
La Fig. 16 muestra una configuración de la unidad 300 de generación de claves (o de la unidad 600 de generación de claves) mostrada en la Fig. 1.
La unidad 300 de generación de claves incluye una unidad 310 de transformación de la longitud de los bits, una primera unidad 320 de transformación de claves de G bits, una segunda unidad 330 de transformación de claves de G bits y una unidad 340 de desplazamiento de claves. A partir de los datos con clave de entrada con 128 bits, 192 bits o 256 bits, la unidad 300 de generación de claves genera datos de clave k1 de 128 bits y datos de clave k2 de 128 bits, y emite varias claves de extensión de 64 bits. La unidad 310 de transformación de la longitud de los bits convierte la longitud de los bits de los datos de clave que van a ser emitidos de forma que la longitud de bits de los datos de clave de salida quede fijada incluso si son introducidos datos de clave con diferente número de bits. En otras palabras, la unidad 310 de transformación de longitud de los bits genera datos de clave SKsuperior de los 128 bits superiores y datos de clave SKinferior de los 128 bits inferiores, y emite los primeros hasta la primera unidad 320 de transformación de claves de G bits y hasta la unidad 340 de desplazamiento de claves. Además, los últimos son emitidos hacia la segunda unidad 330 de transformación de claves de G bits y hacia la unidad 340 de desplazamiento de claves. Además, los datos de clave de 128 bits que son un resultado operado con la función XOR de los primeros y de los últimos son emitidos hacia la primera unidad 320 de transformación de claves de G bits.
La Fig. 17 muestra las operaciones internas de la unidad 310 de transformación de la longitud de los bits.
Cuando los datos de clave de 128 bits son introducidos en la unidad 310 de transformación de la longitud de los bits, los datos de clave introducidos son emitidos como datos de clave SKsuperior de los 128 bits superiores sin cambio alguno. Además, los datos de clave SKinferior de los 128 bits inferiores son fijados en 0 y emitidos.
Cuando los datos de clave de 192 bits son introducidos en la unidad 310 de transformación de la longitud de los bits, los datos superiores de 128 bits de los datos de clave de entrada son emitidos como los datos de clave superiores de 128 bits SKsuperior sin cambio alguno. Además, los datos de clave inferiores de 128 bits SKinferior son generados mediante la combinación de los 64 bits inferiores de los datos de clave de 192 bits de entrada y de los datos inversos de 64 bits, los cuales son generados mediante la inversión de los datos inferiores de 64 bits de los datos de clave de 192 bits de entrada, y emitidos.
Cuando los datos de clave de 256 bits son introducidos, los datos superiores de 128 bits de los datos de clave introducidos son emitidos como SKsuperior, y los datos inferiores de 128 bits son emitidos como SKinferior.
Unos datos XOR de los datos de clave de 128 bits SKsuperior y SKinferior son introducidos en la primera unidad 320 de transformación de claves de G bits desde la unidad 310 de transformación de la longitud de los bits, operados mediante transformaciones no lineales de dos rondas, operados con la función XOR con los datos de clave superiores de 128 bits SKsuperior, adicionalmente operados por unas transformaciones no lineales de dos rondas, y se emiten los datos de clave de 128 bits K1.
Cuando la longitud de los datos de clave introducidos en la unidad 310 de transformación de la longitud de los bits es de 128 bits, la unidad 340 de desplazamiento de claves genera la clave de extensión utilizando los datos de clave de 128 bits emitidos desde la unidad 320 de transformación de claves de G bits y los datos de clave originalmente introducidos. Cuando la longitud de los datos de clave introducidos en la unidad 310 de transformación de la longitud de los bits es de 192 bits o de 256 bits, los datos de clave de 128 bits emitidos desde la primera unidad 320 de transformación de claves de G bits son adicionalmente introducidos en la segunda unidad 340 de transformación de G bits, operados con la función XOR con los datos de clave inferiores de 128 bits SKinferior, operados por dos transformaciones no lineales de dos rondas, y se emiten los datos de clave de 128 bits K2. Dos elementos de datos de clave de 128 bits, procedentes de la primera unidad 320 de transformación de claves de G bits y de la segunda unidad 330 de transformación de claves de G bits, son emitidos hacia la unidad 340 de desplazamiento de claves. La unidad 340 de desplazamiento de claves genera la clave de extensión utilizando los dos elementos de datos de clave de 128 bits y los datos de clave originariamente introducidos.
La unidad 340 de desplazamiento de claves incluye un registro de desplazamiento A 341, un registro de desplazamiento B 342, un registro de desplazamiento C 343, un registro de desplazamiento D 344 y una unidad 345 de control de desplazamiento. La unidad 345 de control de desplazamiento emite una señal 346 de selección hacia cada uno de los registros de desplazamiento para controlar las operaciones de los registros de desplazamiento.
La Fig. 18 muestra una configuración del registro de desplazamiento A341.
El registro de desplazamiento A 341 incluye un selector A 347 que incorpora un grupo de conmutadores para 128 bits y un registro A 348 de 128 bits. Una señal 346 de selección incluye una señal de conmutación para indicar la conexión de todos los conmutadores del selector A 347 al mismo tiempo sobre el lado A y sobre el lado B. La figura muestra un caso en el que el grupo de conmutadores del selector A 347 ha seleccionado A en base a la señal 346 de selección y, en este caso, el registro A 348 lleva a cabo un desplazamiento rotacional hacia la izquierda de 17 bits. Además, cuando el grupo de conmutadores está conectado con B, el registro A lleva a cabo el desplazamiento rotacional a la izquierda de 15 bits. El desplazamiento de 15 bits o el desplazamiento de 17 bits se lleva a cabo mediante un ciclo de reloj.
El número de bits de desplazamiento (15, 17) es uno entre muchos ejemplos, y puede aplicarse otro número de bits de desplazamiento.
La Fig. 19 muestra una parte de una tabla de control almacenada en la unidad 345 de control de desplazamiento.
La tabla de control es una tabla que almacena el número de bits que el registro desplaza en cada reloj. Por ejemplo, en la tabla de control del registro A, en el primer reloj, se especifica un desplazamiento de 15 bits. Y en el segundo reloj, se especifica un desplazamiento de 15 bits adicionales. De modo similar, en cada uno de los relojes tercero y cuarto, se especifica un desplazamiento de 15 bits. En cada uno de los relojes quinto a octavo se especifica un desplazamiento de 17 bits.
La Fig. 20 muestra un resultado de control con arreglo al cual la unidad 345 de control de desplazamiento controla cada registro de desplazamiento utilizando la tabla mostrada en la Fig. 19 en el caso de generar la clave de extensión a partir de los datos de clave de 128 bits.
Los datos de clave superiores de 128 bits SKsuperior introducidos desde la unidad 310 de transformación de la longitud de los bits son insertados en el registro de desplazamiento A 341. Los datos de clave de 128 bits K1 emitidos desde la primera unidad 320 de transformación de claves de G bits son insertados en el registro de desplazamiento B 342. Con esta condición, el registro de desplazamiento A 341 y el registro de desplazamiento B 342 operan en base a la tabla de control mostrada en la Fig. 19. En la Fig. 20, los datos de una columna inclinada muestran que deben ser ignorados y no deben ser emitidos. Los datos en las otras columnas son emitidos como claves de extensión, como se muestra en la Fig. 21.
La Fig.21 muestra una correspondencia entre el valor de los registros y la clave de extensión.
La Fig. 20 muestra un caso en el que se llevan a cabo cuatro desplazamientos de 15 bits en cada reloj y, a partir del quinto reloj, los desplazamientos se llevan a cabo en 17 bits en cada reloj. La decisión de emitir o no los 64 bits superiores y los 64 bits inferiores desde el registro de desplazamiento A 341 y el registro de desplazamiento B 342 como la clave de extensión, y su orden de emisión, se especifican en la tabla de control, que no se muestra en la figura. Y según la tabla de control, mediante la emisión de la señal 346 de selección que incluye una señal de instrucción de salida para el registro de desplazamiento, la clave de extensión es emitida desde cada registro de desplazamiento en 64 bits.
La Fig. 22 muestra un caso en el que la clave de extensión es generada a partir de unos datos de clave de 192 bits o de 256 bits.
Es decir, los datos de clave superiores de 128 bits SKsuperior introducidos desde la unidad 310 de transformación de la longitud de los bits son insertados en el registro de desplazamiento A 341, los datos de clave inferiores de 128 bits SKinferior se insertan en el registro de desplazamiento B 342, los datos de clave de 128 bits K1 emitidos desde la primera unidad 320 de transformación de claves de G bits se insertan en el registro de desplazamiento C 343, y los datos de clave de 128 bits K2 emitidos desde la segunda unidad 330 de transformación de claves de G bits se insertan en el registro de desplazamiento D 344.
Los datos en una columna que tengan una inclinación muestran claves no utilizadas para las claves de extensión.
La Fig. 23 muestra una correspondencia entre el valor del registro y la clave de extensión.
Las claves no utilizadas para las claves de extensión y la correspondencia entre el valor del registro y la clave de extensión mostrada en la Fig. 23 son almacenadas en la tabla de control situada en el controlador.
Como se muestra en la Fig. 19, la unidad 345 de control de desplazamiento almacena el número de bits para el desplazamiento de los datos de clave fijados en el registro de desplazamiento A 341. Es decir, las claves de extensión son generadas de forma secuencial mediante el desplazamiento de los datos de clave insertados en el registro de desplazamiento A 341 mediante Z0 = 0 bits, Z1 = 15 bits, Z2 = 45 bits, Z3 = 60 bits, Z4 = 77 bits, Z5 = 94 bits, Z6 = 111 bits y Z7 = 128 bits, como se muestra en la tabla de control del registro de desplazamiento A.
La suma del número de bits de desplazamiento resulta ser 15 + 15 + 15 +15 + 17 +17 + 17 +17 = 128, de forma que el registro de 128 bits lleva a cabo el desplazamiento rotacional de 128 bits y el registro retorna a su estado inicial.
La razón por la cual la suma del número de bits de desplazamiento alcanza 128 bits (el número de bits del registro) para retornar al estado inicial es que el procesamiento siguiente puede iniciarse de inmediato si el procesamiento siguiente es asignado al registro del estado inicial. Además, en el caso de que se lleve a cabo una transformación inversa (descifrado), el proceso para generar la clave de extensión se inicia desde el estado inicial y, en consecuencia, tanto la transformación (cifrado) como la transformación inversa (descifrado) pueden llevarse a cabo mediante la fijación del estado inicial. Además, la razón por la cual la suma del número de bits de desplazamiento no se fija en más de 128 bits (el número de bits del registro) es impedir la generación de valores idénticos a los del estatus dentro del mismo registro de desplazamiento, debido a la ejecución del desplazamiento en más de un ciclo (más de 128 bits de desplazamiento). Esto es porque, por ejemplo, la realización del desplazamiento rotacional en 2 bits, que es menos de 128 bits (el número de bits del registro), y la realización del desplazamiento rotacional de 130 bits, que es más de 128 bits (el número de bits del registro), producen el valor idéntico. Es deseable fijar dichos valores en la tabla de control del registro A de modo tal que, al realizar los desplazamientos del registro en un ciclo, el número de bits de desplazamiento varíe de forma irregular a lo largo del único ciclo. Sin embargo, con el fin de facilitar la configuración del registro del desplazamiento, se desea un desplazamiento en un número de bits fijo. Por consiguiente, un registro está configurado para llevar a cabo dos tipos de desplazamientos en 15 bits y en 17 bits (en un reloj), y la operación de desplazamiento mediante números de bits diferentes puede implementarse utilizando los dos tipos de desplazamientos, de acuerdo con el siguiente procedimiento.
Establézcase la relación para que Z1 - Z0 = 15 (aquí, Z1 - Z0 = B1), Z2 - Z1 = 30 (es decir, Z2 - Z1 = 2B1), por consiguiente, Z2 - Z1 = 2(Z1 -Z0). Además, como se muestra en la tabla de control del registro de desplazamiento B, establézcase la relación para que Z5 - Z4 = 34 (aquí, Z5 - Z4 = 2B2), Z6 - Z5 = 17 (es decir, Z6 - Z5 = B2), por consiguiente, Z5 - Z4 = 2(Z6 - Z5). Es decir, las diferencias entre los números de los bits de desplazamiento nos dan 15 bits y 30 bits, o 17 bits y 34 bits, y el número de bits de desplazamiento (30 bits o 34 bits) se establece en un múltiplo entero (2 veces = I veces) del número de bits (15 bits y 17 bits) para un desplazamiento de una sola vez.
De esta forma, cuando las diferencias del número de bits de desplazamiento se establecen, bien respecto del número de bits de desplazamiento para una sola vez, o bien para el múltiplo del número entero mayor que dos (I veces, I es un número entero mayor de 2) y el número de bits de desplazamiento para una sola vez, mediante la operación del registro de desplazamiento A 341 una o dos veces (I veces), es posible implementar fácilmente operaciones de desplazamiento cuyo número de bits de desplazamiento esté almacenado en la tabla de control. Operar dos veces (I veces) significa que la operación de desplazamiento termina con dos relojes (I relojes) del reloj operativo suministrado para operar el registro de desplazamiento A 341.
Aquí, al desplazar I veces (dos veces) tanto los datos superiores como los datos inferiores de los datos desplazados hasta I - 1 veces (2 - 1 = 1 vez) son ignorados y no se utilizan para la clave de extensión. Por ejemplo, en el caso de desplazamiento de Z1 = 15 a Z2 = 45, I = (Z2 - Z1) / (el número de bits de desplazamiento de una sola vez) = (45 - 15) / 15 = 2, y tanto los datos superiores como los datos inferiores de los datos desplazados después del desplazamiento I - 1 veces (2 - 1 = 1 vez) son ignorados y no se utilizan para la clave de extensión. Esto puede apreciarse en la Fig. 20, en la cual las columnas de la clave [8] y la clave [9] presentan inclinaciones, que muestran que estas claves no se utilizan para las claves de extensión. Y uno u otro, o ambos, de los datos superiores y los datos inferiores de los datos desplazados después del desplazamiento de I veces (2 veces) es, o son, utilizados como clave de extensión. Esto puede apreciarse en la Fig. 20, la cual muestra que la clave [12] y la clave [13] son emitidas como las claves de extensión.
Las razones por las cuales las operaciones de desplazamiento en base a un múltiplo de un entero mayor de dos se emplean de acuerdo con lo anteriormente descrito, son la habilitación para realizar el desplazamiento de no solo 15 bits o 17 bits, sino también de 30 (= 15 x 2) bits, 34 (= 17 x 2) bits, (o 45 (= 15 x 3 ) bits o 51 ( = 17 x 3) bits, etc.), lo que modifica el número de desplazamientos y mejora adicionalmente la seguridad. Y la razón por la que son suministrados casos en los que los datos desplazados no se utilizan para la clave de extensión es también mejorar la seguridad.
Se desea generar los datos que no son utilizados para la clave de extensión (en las Figs. 20 y 22, las claves de las columnas con inclinaciones, las cuales no se utilizan para las claves de extensión) cuando, por ejemplo, el procesamiento del hardware o el procesamiento del programa no se lleva a cabo de forma consecutiva. Como ejemplos concretos, en la Fig. 3 se desea generar dichos datos cuando se llevan a cabo las operaciones de la unidad de transformación normal de datos (FL) y de la unidad de transformación inversa de datos (FL-1), o antes o después de dichas operaciones, o en momentos de inactividad de procesos o momentos de conmutación de procesos, tales como, por ejemplo, una llamada de función por un programa, una llamada de subrutina, o un proceso de tratamiento de interrupciones.
La característica de la tabla de control mostrada en la Fig. 19 es que la tabla de control especifica el número de bits de desplazamiento de B1 = 8 x 2 - 1 = 15 (B1 = 8 x J1 -1, donde J1 es un número entero mayor que 1) y el número de bits de desplazamiento de B2 = 8 x 2 + 1 = 17 (B2 = 8 x J2 + 1, donde J2 es un número entero mayor que 0, J1 = J2 o J1 f J2). Establecer la magnitud del desplazamiento hasta un ± 1 del múltiplo entero de ocho es llevar a cabo el desplazamiento por los bits impares, lo que mejora la seguridad en comparación con la realización del desplazamiento sólo por los bits pares, dado que la operación de la clave de extensión en la unidad de procesamiento de datos se lleva a cabo por una unidad de 8 bits, esto es, una unidad de bits pares. Y dado que la magnitud del desplazamiento puede establecerse mediante la suma / resta de 1 bit a / del múltiplo de ocho, por ejemplo, en alguna CPU que tenga solamente un comando de desplazamiento de 1 bit, la operación de desplazamiento del tipo expuesto lleva a cabo un procesamiento de alta velocidad en comparación con el desplazamiento en 3 bits o 5 bits. Y además, en el caso de que esta operación de desplazamiento que utiliza el hardware que puede desplazar solamente 1 bit, hay casos en que es posible llevar a cabo un procesamiento de alta velocidad.
En la descripción anterior de la unidad 310 de longitud de bits, ingresan tres tipos de anchos de bits de datos de clave. Incluso cuando los datos de clave con una longitud de Q bits, en los cuales Q oscila entre 128 bits (G bits) y 256 bits (2G bits) (G < Q < 2G), la unidad 310 de transformación de longitud de bits puede extender los datos de clave al mismo tamaño de los datos de clave cuando son introducidos los datos de clave de 256 bits, utilizando algún tipo de algoritmo. Es decir, cuando son introducidos los datos de clave con una longitud de Q, la cual oscila entre G bits y 2G bits, la unidad 310 de transformación de la longitud en bits puede convertir los datos de clave de Q bits en datos de clave de 2G bits.
A continuación, se expondrá la prueba de la no existencia de una clave equivalente con referencia a la Fig. 34.
En la explicación que sigue de la Fig. 34, “+” indica una operación XOR.
Aquí, se supone que se introducen dos datos de clave de 128 bits SK1 y SK2 (SK1 f SK2) y que la unidad 310 de transformación de la longitud de los bits emite SK1superior = SK1 = (SKH1 | SKL1) a partir de SK1 y SK2superior = SK2 = (SKH2 | SKL2) a partir de SK2. Aquí, SKHi (i = 1,2) indica los datos superiores de 64 bits de SKi y SKLi (i = 1,2) indica los datos inferiores de 64 bits de SKi.
Suponiendo que los datos XOR de SKH1 y SKH2 son MA y que los datos XOR de SKL1 y SKL2 son MB, puede decirse “al menos MA f 0 o MB f 0”, dado que SK1 f SK2.
Como se muestra en la Fig. 34, estos MA y MB se convierten en MA + MD, MB + MC, respectivamente, mediante la recepción de las dos rondas de transformaciones no lineales. Esto significa que los datos XOR (MA | MB) de SK1superior y SK2superior se convierten en datos XOR (MA + MD | MB + MC) después de llevar a cabo las dos rondas de transformaciones no lineales en SK1superior y los datos transformados después de llevar a cabo las dos rondas de transformaciones no lineales en SK2superior. Por consiguiente, cuando estos elementos de datos, después de llevar a cabo las dos rondas de transformaciones no lineales, son operados con la función XOR con SK1superior y SK2superior, respectivamente, en un circuito XOR 999, los resultados operados con la función XOR de dos elementos de datos se convierten en (MD | MC). Si la transformación no lineal es una función biyectiva, la introducción de MX f 0 determina siempre la emisión de MY f 0, de forma que, cuando “al menos MA f 0 o MB f 0”, puede decirse que “al menos MC f 0 o que MD f 0”. Por consiguiente, dado que es imposible emitir los mismos datos a partir de SK1superior y SK2superior mediante las dos rondas de transformaciones no lineales, se demuestra la no existencia de la clave equivalente.
Por otro lado, como se muestra en la Fig. 35, se tomará en consideración otro caso, en el cual se llevan a cabo tres rondas de transformaciones no lineales en lugar de dos rondas de transformaciones no lineales. Dado que puede decirse que “al menos MA f 0 o MB f 0”, puede haber un caso en el que o bien MA o MB puedan ser 0. Si MA = 0, MC = 0 y, de la misma manera expuesta anteriormente, los datos XOR (0 | MB) de SK1superior y SK2superior se convierten en los datos XOR (MB + ME | MD) después de llevar a cabo las tres rondas de transformaciones no lineales en SK1superior y los datos transformados después de llevar a cabo las tres rondas de transformaciones no lineales en SK2superior. En consecuencia, cuando estos elementos de datos, después de recibir las tres rondas de transformaciones no lineales, son operados con la función XOR con SK1superior y SK2superior, respectivamente, en el circuito XOR 999, los resultados operados con la función XOR de dos elementos de datos se convierten en (MB + ME | MB + MD). Aquí, cuando se supone que MB = MD = ME f 0, lo siguiente es cierto: (MB + ME | MB + MD) = (0 | 0). Es decir, cuando estos elementos de datos, después de llevar a cabo las tres rondas de transformaciones no lineales, son operados con la función XOR con SK1superior y SK2superior, respectivamente, los resultados de la operación son los mismos. Es decir SK1superior y SK2superior emiten los mismos datos, de forma que existen las claves equivalentes, lo que es preocupante con respecto a la seguridad.
No solo el caso expuesto anteriormente de transformación lineal de tres rondas, sino que una transformación no lineal general puede emitir el equivalente K1 a partir de SK1 y SK2 diferentes, lo que significa que puede existir una clave equivalente. Sin embargo, es posible demostrar la no existencia de la clave equivalente cuando se emplea la transformación lineal de dos rondas de acuerdo a la presente realización.
Además, puede haber otro caso en el que la no existencia de la clave equivalente se demuestre de forma distinta a la de la transformación no lineal de dos rondas de acuerdo con la presente realización; sin embargo, es preferible utilizar la transformación no lineal de dos rondas debido a su configuración sencilla, además de la no existencia demostrada de la clave equivalente.
La Fig. 24 muestra un ordenador para la instalación de la unidad 100 de transformación de datos para el cifrado o la unidad 400 de transformación de datos para el descifrado.
La unidad 100 de transformación de datos para el cifrado y / o la unidad 400 de transformación de datos para el descifrado están conectadas al bus como tarjeta de circuitos impresos. Esta tarjeta de circuitos impresos está provista de una CPU, una memoria y un elemento de circuito lógico, y cifra los textos no cifrados suministrados a partir de la CPU, convirtiéndolos en textos cifrados utilizando la operación anteriormente referida, y devuelve los datos a la CPU. O bien descifra los textos cifrados suministrados a partir de la CPU y devuelve los textos no cifrados a la CPU.
De esta forma, la unidad 100 de transformación de datos para el cifrado o la unidad 400 de transformación de datos para el descifrado pueden ser implementadas por hardware. Además, la unidad 100 de transformación de datos para el cifrado o la unidad 400 de transformación de datos para el descifrado pueden ser también implementadas mediante software, como procedimiento de transformación de datos. Es decir, la operación expuesta anteriormente puede llevarse a cabo utilizando el programa almacenado en una unidad de disco magnético o en una unidad de disco flexible. Como una alternativa, la operación anterior puede ser implementada mediante la combinación de hardware y software, aunque esto no se muestra en la figura. Además, no se requiere implementar toda la operación anterior utilizando un ordenador, sino que es posible implementar la operación referida mediante un sistema distribuido, como por ejemplo un servidor y un cliente, o un ordenador central y un ordenador terminal, aunque esto no se muestra en la figura.
En las Figs. precedentes 1 a 47, una flecha muestra una dirección del flujo operativo, y las figuras que tienen la flecha son diagramas en bloque de la unidad de transformación de datos, y también los diagramas de flujo. “unidad...” mostrados en los diagrama en bloques precedentes puede ser sustituidos por “etapa...” o “proceso...”, de forma que los diagramas puedan ser considerados como diagramas de flujo operativos o diagramas de flujo de programa que muestran el procedimiento de transformación de datos.
En las realizaciones precedentes, se ha expuesto un caso en el que se utilizan textos no cifrados y textos cifrados de 128 bits, pero los datos pueden ser textos no cifrados y textos cifrados de 256 bits, o bien textos no cifrados y textos cifrados con otro número de bits.
Además, en las realizaciones anteriores, se ha expuesto un caso en el que se utilizan datos de clave de 128 bits, 192 bits, 256 bits y claves de extensión de 64 bits, pero los datos de clave pueden tener otro número de bits.
Si la longitud de bits de los textos no cifrados y de los textos cifrados, los datos de clave y la clave de extensión se modifican, por supuesto, la longitud de bits que va a ser procesada por cada unidad, cada etapa, o cada proceso, se modifica de acuerdo con la longitud de los bits.
Disponibilidad Industrial
Según la realización de la presente invención, se proporcionan la unidad de transformación normal de datos (FL) 251 y la unidad de transformación inversa de datos (FL-1) para implementar el cifrado y el descifrado, usando el mismo algoritmo, de modo tal que la unidad 200 de cifrado y la unidad 500 de descifrado puedan compartir el circuito.
Además, según la realización de la presente invención, la tabla T de transformación es compartida por la primera unidad 13 de transformación de caja S y la segunda unidad 14 de transformación de caja S, por lo que se simplifica la configuración.
Además, según la realización de la presente invención, se usa la unidad 18 de transformación de subcampos, lo que simplifica la configuración, y se proporcionan la unidad 85 de transformación lineal y la unidad 87 de transformación lineal, de modo tal que se mejore la seguridad incluso si se usa la unidad 18 de transformación de subcampo.
Además, según la realización de la presente invención, la unidad 345 de control de desplazamiento puede hacer que el registro de desplazamiento opere un cierto número de veces para llevar a cabo el desplazamiento de los datos de clave con el número de bits de desplazamiento (por ejemplo, 30 bits o 34 bits), que no es un número fijo de bits, tal como solamente 15 bits o 17 bits, y mejora la seguridad.
Además, según la realización de la presente invención, se proporciona un caso en el cual los datos desplazados en el registro de desplazamiento no se usan para la clave de extensión, lo cual mejora adicionalmente la seguridad.
5 Además, según la realización de la presente invención, incluso si se ingresan los datos de clave con un número distinto de bits, la unidad 310 de transformación de la longitud de bits cambia los datos de clave con una longitud fija, lo que permite operar una generación flexible de clave.
Además, según la realización de la presente invención, la transformación no lineal de dos rondas se usa en la primera unidad 320 de transformación de clave de G bits, por lo que puede demostrarse la inexistencia de la clave
10 equivalente a K1, lo que mejora la seguridad.
Además, según la realización de la presente invención, se altera la ubicación de la función 25 de clave, lo que habilita un procesamiento de alta velocidad.

Claims (14)

  1. REIVINDICACIONES
    1. Un aparato de transformación de datos con una unidad de procesamiento de datos para llevar a cabo al menos uno entre el cifrado de datos y el descifrado de datos, en base a datos de clave ingresados,
    en el cual la unidad de procesamiento de datos divide los datos a transformar en datos primeros (L) y datos segundos (R), y realiza una transformación de datos,
    caracterizado porque la unidad de procesamiento de datos comprende:
    una unidad de transformación normal de datos (FL) para transformar los datos primeros (L) en base a los datos de clave ingresados; y
    una unidad de transformación inversa de datos (FL-1) para transformar los datos segundos (R), realizando una transformación inversa de la transformación por parte de la unidad de transformación normal de datos (FL) en base a los datos de clave de entrada.
  2. 2. El aparato de transformación de datos de la reivindicación 1,
    en el cual la unidad de procesamiento de datos incluye un primer puerto de entrada, un segundo puerto de entrada, un primer puerto de salida y un segundo puerto de salida,
    en el cual la unidad de transformación normal de datos (FL) emite datos transformados al primer puerto de entrada de la unidad de procesamiento de datos, y
    en el cual la unidad de transformación inversa de datos (FL-1) transforma los datos emitidos desde el segundo puerto de salida de la unidad de procesamiento de datos y emite datos transformados.
  3. 3. El aparato de transformación de datos de la reivindicación 1,
    en el cual la unidad de procesamiento de datos incluye un primer puerto de entrada, un segundo puerto de entrada, un primer puerto de salida y un segundo puerto de salida,
    en el cual la unidad de transformación normal de datos (FL) emite datos transformados al segundo puerto de entrada de la unidad de procesamiento de datos, y
    en el cual la unidad de transformación inversa de datos (FL-1) transforma los datos emitidos desde el primer puerto de salida de la unidad de procesamiento de datos y emite datos transformados.
  4. 4. El aparato de transformación de datos según la reivindicación 1, caracterizado por tener una unidad de procesamiento de datos para ingresar datos de clave, generar al menos primeros datos de clave y segundos datos de clave, y realizar la transformación de datos de al menos uno entre el cifrado de datos y el descifrado de datos, en donde la unidad de procesamiento de datos divide los datos a transformar en datos primeros (L) y datos segundos
    (R) y realiza la transformación de datos,
    en donde la unidad de procesamiento de datos comprende:
    una unidad de transformación normal de datos (FL) para ingresar los datos primeros (L) y los primeros datos de clave, y para realizar la transformación de los datos ingresados usando un circuito de XOR y un circuito con un circuito de operación lógica para ingresar los primeros datos de clave y llevar a cabo una operación lógica; y
    una unidad de transformación inversa de datos (FL-1) para ingresar los datos segundos (R) y los segundos datos de clave, y para realizar la transformación de los datos ingresados usando un circuito XOR y un circuito con un circuito de operación lógica para ingresar los segundos datos de clave y llevar a cabo una operación lógica; que realiza una transformación inversa a la transformación realizada por la unidad de transformación normal de datos (FL) si los segundos datos de clave son una clave idéntica a los primeros datos de clave.
  5. 5. El aparato de transformación de datos de la reivindicación 5,
    en el cual la unidad de transformación normal de datos (FL) comprende un circuito para dividir los datos primeros (L) ingresados entre los primeros datos de entrada a la izquierda y los primeros datos de entrada a la derecha, transformar los primeros datos de entrada a la izquierda por una operación lógica con los primeros datos de clave, operar con XOR los datos transformados y los primeros datos de entrada a la derecha, y emitir el resultado operado con XOR; y
    en el cual la unidad de transformación inversa de datos (FL-1) comprende un circuito para dividir los datos segundos
    (R) ingresados en segundos datos de entrada a izquierda y segundos datos de entrada a derecha, transformar los segundos datos de entrada a izquierda por una operación lógica con los segundos datos de clave, operar con XOR los datos transformados y los segundos datos de entrada a derecha, y emitir el resultado operado con XOR.
  6. 6. El aparato de transformación de datos de la reivindicación 4,
    en donde el aparato de transformación de datos ingresa los datos de clave y genera al menos primeros datos de clave, segundos datos de clave, terceros datos de clave y cuartos datos de clave, en donde la unidad de transformación normal de datos (FL) comprende un circuito para dividir los datos primeros (L) ingresados en primeros datos de entrada a izquierda y primeros datos de entrada a derecha, transformar los primeros datos de entrada a izquierda por una operación lógica con los primeros datos de clave, operar con XOR los datos transformados y los primeros datos de entrada a derecha, y emitir el resultado operado con XOR como los primeros datos de salida a derecha, transformar los primeros datos de salida a derecha por una operación lógica con los terceros datos de clave, operar con XOR los datos transformados y los primeros datos de entrada a izquierda, y emitir el resultado operado con XOR como los primeros datos de salida a izquierda, crear datos a partir de los primeros datos de salida a izquierda y los primeros datos de salida a derecha, y emitir los datos creados; y
    en donde la unidad de transformación inversa de datos (FL-1) comprende un circuito para dividir los datos segundos
    (R) ingresados en datos segundos de entrada a izquierda y datos segundos de entrada a derecha, transformar los segundos datos de entrada a derecha por una operación lógica con los segundos datos de clave, operar con XOR los datos transformados y los segundos datos de entrada a izquierda, y emitir el resultado operado con XOR como segundos datos de salida a izquierda, transformar los segundos datos de salida a izquierda por una operación lógica con los cuartos datos de clave, operar con XOR los datos transformados y los segundos datos de entrada a derecha, y emitir el resultado operado con XOR como segundos datos de salida a derecha; crear segundos datos de salida a partir de los segundos datos de salida a izquierda y los segundos datos de salida a derecha, y emitir los datos creados.
  7. 7.
    El aparato de transformación de datos de la reivindicación 4,
    en el cual el circuito de operación lógica de la unidad de transformación normal de datos (FL) es un circuito de operación lógica para ingresar los primeros datos de clave y realizar al menos una operación lógica distinta a un XOR, y en el cual el circuito de operación lógica de la unidad de transformación inversa de datos (FL-1) es un circuito de operación lógica para ingresar los segundos datos de clave y realizar al menos una operación lógica distinta a un XOR.
  8. 8.
    El aparato de transformación de datos de la reivindicación 4,
    en el cual la unidad de transformación normal de datos (FL) comprende una pluralidad de elementos de operación lógica, en el cual la unidad de transformación inversa de datos (FL-1) comprende una pluralidad de elementos de operación lógica, un cierto número de los cuales es el mismo que el de la pluralidad de elementos de operación lógica de la unidad de transformación normal de datos (FL), y
    en el cual la unidad de transformación normal de datos tiene una disposición de conexiones de la pluralidad de elementos de operación lógica, distintos a la unidad de transformación inversa de datos (FL-1).
  9. 9. El aparato de transformación de datos de la reivindicación 4,
    en el cual la unidad de procesamiento de datos comprende una unidad de transformación no lineal de datos con una primera unidad de entrada, una segunda unidad de entrada, una primera unidad de salida y una segunda unidad de salida,
    en el cual la unidad de transformación normal de datos (FL) emite los datos transformados a la primera unidad de entrada de la unidad de transformación no lineal de datos, y
    en el cual la unidad de transformación inversa de datos (FL-1) transforma y emita datos emitidos desde la segunda unidad de salida de la unidad de transformación no lineal de datos.
  10. 10. El aparato de transformación de la reivindicación 4,
    en el cual la unidad de procesamiento de datos comprende una unidad de transformación no lineal de datos con una primera unidad de ingreso, una segunda unidad de ingreso, una primera unidad de salida y una segunda unidad de salida,
    en el cual la unidad de transformación normal de datos (FL) emite los datos transformados a la segunda unidad de ingreso de la unidad de transformación no lineal de datos, y en el cual la unidad de transformación inversa de datos (FL-1) transforma y emite los datos emitidos desde la primera unidad de salida de la unidad de transformación no lineal de datos.
  11. 11. Un procedimiento de transformación de datos para ejecutar un proceso de procesamiento de datos a fin de realizar al menos uno entre un cifrado de datos y un descifrado de datos, en base a los datos de clave de entrada,
    en donde el proceso de procesamiento de datos divide los datos a transformar en datos primeros (L) y datos segundos (R), y realiza una transformación de datos,
    caracterizado porque el proceso de procesamiento de datos comprende:
    un proceso de transformación normal de datos (FL) para transformar los datos primeros (L) en base a los datos de clave de entrada; y
    un proceso de transformación inversa de datos (FL-1) para transformar los datos segundos (R) realizando una transformación inversa de la transformación por parte de la unidad de transformación normal de datos (FL), en base a los datos de clave de entrada.
  12. 12. Un procedimiento de transformación de datos según la reivindicación precedente, para un aparato de transformación de datos, a fin de ingresar datos de clave, generar al menos primeros datos de clave y segundos datos de clave, y llevar a cabo el procesamiento de datos realizando la transformación de datos de al menos uno entre el cifrado de datos y el descifrado de datos, por parte de una unidad de procesamiento de datos, una unidad de transformación normal de datos (FL) y una unidad de transformación inversa de datos (FL-1), en donde el procesamiento de datos comprende:
    un proceso para dividir datos a transformar en datos primeros (L) y datos segundos (R) por parte de la unidad de procesamiento de datos;
    un proceso de transformación normal de datos, por parte de la unidad de transformación normal de datos (FL), para ingresar los datos primeros (L) y los primeros datos de clave, y llevar a cabo la transformación de los datos ingresados usando un circuito de XOR y un circuito con un circuito de operación lógica, ingresando los primeros datos de clave y llevando a cabo una operación lógica; y
    un proceso de transformación inversa de datos, por parte de la unidad de transformación inversa de datos (FL-1), para ingresar los datos segundos (R) y los segundos datos de clave, y llevar a cabo la transformación de los datos ingresados usando un circuito de XOR y un circuito con un circuito de operación lógica para ingresar los segundos datos de clave y llevar a cabo una operación lógica, que realiza una transformación inversa a la transformación realizada por el proceso de transformación normal de datos (FL) si los segundos datos de clave son una clave idéntica a los primeros datos de clave.
  13. 13.
    Un programa de ordenador que comprende medios de código de programa de ordenador adaptados para realizar las etapas del procedimiento de la reivindicación 11 cuando dicho programa de ordenador se ejecuta en un ordenador.
  14. 14.
    Un medio portador legible por ordenador que lleva el programa ejecutable por ordenador de la reivindicación precedente.
ES01912172T 2000-03-09 2001-03-08 Aparato de cifrado en bloques que utiliza una transformación auxiliar Expired - Lifetime ES2382454T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000064614 2000-03-09
JP2000064614 2000-03-09
PCT/JP2001/001796 WO2001067425A1 (fr) 2000-03-09 2001-03-08 Systeme de chiffrage de blocs utilisant la conversion auxiliaire

Publications (1)

Publication Number Publication Date
ES2382454T3 true ES2382454T3 (es) 2012-06-08

Family

ID=18584290

Family Applications (7)

Application Number Title Priority Date Filing Date
ES06010077T Expired - Lifetime ES2329819T3 (es) 2000-03-09 2001-03-08 Aparato de cifrado de bloques que usa informacion auxiliar.
ES06010076T Expired - Lifetime ES2405942T3 (es) 2000-03-09 2001-03-08 Aparato de cifrado en bloques que utiliza una transformación auxiliar
ES06010073T Expired - Lifetime ES2319560T3 (es) 2000-03-09 2001-03-08 Aparato de cifrado en bloques.
ES06010074T Expired - Lifetime ES2327263T3 (es) 2000-03-09 2001-03-08 Aparato de cifrado de bloques y procedimiento de cifrado de bloques que incluye la programacion de una clave de longitud variable.
ES06010075T Expired - Lifetime ES2407463T3 (es) 2000-03-09 2001-03-08 Aparato de cifrado en bloques que utiliza una transformación auxiliar
ES01912172T Expired - Lifetime ES2382454T3 (es) 2000-03-09 2001-03-08 Aparato de cifrado en bloques que utiliza una transformación auxiliar
ES06010078.1T Expired - Lifetime ES2616544T3 (es) 2000-03-09 2001-03-08 Aparato de cifrado en bloques y método de cifrado en boques que incluye un esquema de claves rotacional

Family Applications Before (5)

Application Number Title Priority Date Filing Date
ES06010077T Expired - Lifetime ES2329819T3 (es) 2000-03-09 2001-03-08 Aparato de cifrado de bloques que usa informacion auxiliar.
ES06010076T Expired - Lifetime ES2405942T3 (es) 2000-03-09 2001-03-08 Aparato de cifrado en bloques que utiliza una transformación auxiliar
ES06010073T Expired - Lifetime ES2319560T3 (es) 2000-03-09 2001-03-08 Aparato de cifrado en bloques.
ES06010074T Expired - Lifetime ES2327263T3 (es) 2000-03-09 2001-03-08 Aparato de cifrado de bloques y procedimiento de cifrado de bloques que incluye la programacion de una clave de longitud variable.
ES06010075T Expired - Lifetime ES2407463T3 (es) 2000-03-09 2001-03-08 Aparato de cifrado en bloques que utiliza una transformación auxiliar

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES06010078.1T Expired - Lifetime ES2616544T3 (es) 2000-03-09 2001-03-08 Aparato de cifrado en bloques y método de cifrado en boques que incluye un esquema de claves rotacional

Country Status (16)

Country Link
US (5) US7864950B2 (es)
EP (7) EP1686722B1 (es)
JP (3) JP4127472B2 (es)
KR (8) KR100465074B1 (es)
CN (5) CN100557663C (es)
AT (3) ATE419692T1 (es)
AU (5) AU767323B2 (es)
CA (5) CA2449669C (es)
DE (3) DE60137269D1 (es)
DK (7) DK1193665T3 (es)
ES (7) ES2329819T3 (es)
MX (1) MXPA01011323A (es)
NO (1) NO333209B1 (es)
SG (4) SG124293A1 (es)
TW (1) TWI275049B (es)
WO (1) WO2001067425A1 (es)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DK1193665T3 (da) * 2000-03-09 2012-04-02 Mitsubishi Electric Corp Blokkrypteringsindretning, som anvender hjælpekonvertering
JP3724399B2 (ja) * 2001-01-23 2005-12-07 株式会社日立製作所 疑似乱数生成装置またはそれを用いた暗号復号処理装置
US7269615B2 (en) 2001-12-18 2007-09-11 Analog Devices, Inc. Reconfigurable input Galois field linear transformer system
US7283628B2 (en) * 2001-11-30 2007-10-16 Analog Devices, Inc. Programmable data encryption engine
US7508937B2 (en) * 2001-12-18 2009-03-24 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
JP4128395B2 (ja) * 2002-05-23 2008-07-30 三菱電機株式会社 データ変換装置
JP3503638B1 (ja) * 2002-09-26 2004-03-08 日本電気株式会社 暗号装置及び暗号プログラム
DE10345457A1 (de) * 2003-09-30 2005-04-28 Infineon Technologies Ag Verfahren und Vorrichtung zur Ver- und Entschlüsselung
US7545928B1 (en) * 2003-12-08 2009-06-09 Advanced Micro Devices, Inc. Triple DES critical timing path improvement
US7580519B1 (en) 2003-12-08 2009-08-25 Advanced Micro Devices, Inc. Triple DES gigabit/s performance using single DES engine
US7257225B2 (en) * 2003-12-29 2007-08-14 American Express Travel Related Services Company, Inc. System and method for high speed reversible data encryption
JP3933647B2 (ja) * 2004-05-10 2007-06-20 シャープ株式会社 消費電力解析防止機能つき半導体装置
US7885405B1 (en) 2004-06-04 2011-02-08 GlobalFoundries, Inc. Multi-gigabit per second concurrent encryption in block cipher modes
US7526085B1 (en) 2004-07-13 2009-04-28 Advanced Micro Devices, Inc. Throughput and latency of inbound and outbound IPsec processing
US7461108B2 (en) * 2004-09-14 2008-12-02 Panasonic Corporation Barrel shift device
US7783037B1 (en) 2004-09-20 2010-08-24 Globalfoundries Inc. Multi-gigabit per second computing of the rijndael inverse cipher
JP4859536B2 (ja) * 2006-05-30 2012-01-25 三菱電機株式会社 データ変換装置
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
JP2008058830A (ja) * 2006-09-01 2008-03-13 Sony Corp データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP5050454B2 (ja) * 2006-09-01 2012-10-17 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
CN100436555C (zh) * 2006-09-06 2008-11-26 深圳市永仁包装印刷材料有限公司 一种水溶性金银墨及其制备方法
JP5055993B2 (ja) 2006-12-11 2012-10-24 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US8036377B1 (en) * 2006-12-12 2011-10-11 Marvell International Ltd. Method and apparatus of high speed encryption and decryption
JP4857230B2 (ja) * 2007-03-30 2012-01-18 株式会社日立製作所 疑似乱数生成装置及びそれを用いた暗号化処理装置
US7890565B2 (en) * 2007-04-30 2011-02-15 Lsi Corporation Efficient hardware implementation of tweakable block cipher
CN100495961C (zh) 2007-11-19 2009-06-03 西安西电捷通无线网络通信有限公司 一种基于分组密码算法的加密处理方法
CN100581101C (zh) 2007-11-19 2010-01-13 西安西电捷通无线网络通信有限公司 一种基于分组密码算法的加密处理设备
JP5272417B2 (ja) * 2008-01-21 2013-08-28 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
US20090186966A1 (en) * 2008-01-22 2009-07-23 Sabic Innovative Plastics Ip B.V. Thermoplastic polyestercarbonate composition
JP5200949B2 (ja) * 2009-01-16 2013-06-05 富士通株式会社 暗号処理装置
US8832464B2 (en) * 2009-03-31 2014-09-09 Oracle America, Inc. Processor and method for implementing instruction support for hash algorithms
US20100250965A1 (en) * 2009-03-31 2010-09-30 Olson Christopher H Apparatus and method for implementing instruction support for the advanced encryption standard (aes) algorithm
US8654970B2 (en) * 2009-03-31 2014-02-18 Oracle America, Inc. Apparatus and method for implementing instruction support for the data encryption standard (DES) algorithm
US20100246815A1 (en) * 2009-03-31 2010-09-30 Olson Christopher H Apparatus and method for implementing instruction support for the kasumi cipher algorithm
US9317286B2 (en) * 2009-03-31 2016-04-19 Oracle America, Inc. Apparatus and method for implementing instruction support for the camellia cipher algorithm
WO2011036745A1 (ja) * 2009-09-24 2011-03-31 株式会社東芝 鍵スケジュール装置および方法
JP2011130340A (ja) * 2009-12-21 2011-06-30 Kddi Corp ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム
KR101334040B1 (ko) * 2010-01-20 2013-11-28 한국전자통신연구원 대칭키 암호화 시스템의 마스킹 연산 방법 및 장치
JP5539024B2 (ja) * 2010-05-27 2014-07-02 キヤノン株式会社 データ暗号化装置およびその制御方法
US8611540B2 (en) * 2010-06-23 2013-12-17 Damaka, Inc. System and method for secure messaging in a hybrid peer-to-peer network
US20120079462A1 (en) * 2010-09-24 2012-03-29 SoftKrypt LLC Systems and methods of source software code obfuscation
FR2966953B1 (fr) * 2010-11-02 2015-08-28 St Microelectronics Rousset Procede de contremesure cryptographique par derivation d'une donnee secrete
US8958550B2 (en) * 2011-09-13 2015-02-17 Combined Conditional Access Development & Support. LLC (CCAD) Encryption operation with real data rounds, dummy data rounds, and delay periods
JP5481455B2 (ja) * 2011-09-27 2014-04-23 株式会社東芝 暗号処理装置
JP5338945B2 (ja) * 2012-05-22 2013-11-13 ソニー株式会社 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム
JP5772934B2 (ja) * 2013-12-02 2015-09-02 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
CN105215593A (zh) * 2014-07-01 2016-01-06 长治市澳瑞特欣鑫健身器材有限公司 一种篮圈焊接模具
CN104917610B (zh) * 2015-06-15 2018-03-06 上海交通大学 基于量子真随机数的通信中继服务器安全系统及方法
KR20170002836A (ko) 2015-06-30 2017-01-09 주식회사 피엔아이티 Nfc를 이용한 미아방지용 캐릭터 목걸이.
US11070358B2 (en) 2015-12-15 2021-07-20 Koninklijke Philips N.V. Computation device and method
US10157289B2 (en) * 2016-09-26 2018-12-18 Bank Of America Corporation Progressive key rotation for format preserving encryption (FPE)
US20220060318A1 (en) * 2018-10-10 2022-02-24 Nippon Telegraph And Telephone Corporation Secure right shift computation system, secure division system, methods therefor, secure computation apparatus, and program
CN109756231B (zh) * 2018-12-27 2023-01-31 北京思朗科技有限责任公司 循环移位处理装置及方法
US11632231B2 (en) * 2020-03-05 2023-04-18 Novatek Microelectronics Corp. Substitute box, substitute method and apparatus thereof
KR20230110668A (ko) 2022-01-16 2023-07-25 주식회사 네이처라인즈 반려동물용 휠 운동장치

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2641285B2 (ja) * 1988-05-23 1997-08-13 三菱電機株式会社 ガロア体除算回路及び乗除算共用回路
JPH0651698A (ja) * 1992-06-03 1994-02-25 Nippon Telegr & Teleph Corp <Ntt> データ攪拌装置およびデータ攪拌方法
US5351299A (en) * 1992-06-05 1994-09-27 Matsushita Electric Industrial Co., Ltd. Apparatus and method for data encryption with block selection keys and data encryption keys
US5623549A (en) * 1995-01-30 1997-04-22 Ritter; Terry F. Cipher mechanisms with fencing and balanced block mixing
US5673319A (en) * 1995-02-06 1997-09-30 International Business Machines Corporation Block cipher mode of operation for secure, length-preserving encryption
US5594797A (en) * 1995-02-22 1997-01-14 Nokia Mobile Phones Variable security level encryption
JP2772937B2 (ja) * 1995-07-11 1998-07-09 太陽誘電株式会社 チップ型電子部品の製造方法
US6201869B1 (en) * 1995-09-05 2001-03-13 Mitsubishi Denki Kabushiki Kaisha Data transformation apparatus and data transformation method
JPH0990870A (ja) * 1995-09-27 1997-04-04 Nec Corp 基本変換方法、暗号化方法、基本変換回路および暗号装置
JPH09269727A (ja) * 1996-03-29 1997-10-14 Toshiba Corp 暗号化方法および暗号化装置
US6058476A (en) * 1996-05-22 2000-05-02 Matsushita Electric Industrial Co., Inc. Encryption apparatus for ensuring security in communication between devices
US6028939A (en) 1997-01-03 2000-02-22 Redcreek Communications, Inc. Data security system and method
JP3515306B2 (ja) * 1997-01-29 2004-04-05 日本電信電話株式会社 逆元演算装置
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
JP3351305B2 (ja) * 1997-08-07 2002-11-25 日本電気株式会社 暗号装置及び暗号装置を実現するプログラムを記録したコンピューターが読みとり可能な記録媒体
US6510228B2 (en) 1997-09-22 2003-01-21 Qualcomm, Incorporated Method and apparatus for generating encryption stream ciphers
KR100296958B1 (ko) * 1998-05-06 2001-09-22 이석우 블록 데이터 암호화 장치
US6269163B1 (en) 1998-06-15 2001-07-31 Rsa Security Inc. Enhanced block ciphers with data-dependent rotations
JP3600454B2 (ja) * 1998-08-20 2004-12-15 株式会社東芝 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
JP2000066586A (ja) 1998-08-24 2000-03-03 Toshiba Corp データ処理装置及び通信システム並びに記録媒体
TW556111B (en) 1999-08-31 2003-10-01 Toshiba Corp Extended key generator, encryption/decryption unit, extended key generation method, and storage medium
DK1193665T3 (da) * 2000-03-09 2012-04-02 Mitsubishi Electric Corp Blokkrypteringsindretning, som anvender hjælpekonvertering

Also Published As

Publication number Publication date
ATE419692T1 (de) 2009-01-15
DK1689114T3 (da) 2009-09-07
US7760870B2 (en) 2010-07-20
EP1686722B1 (en) 2016-12-07
EP1193665A1 (en) 2002-04-03
KR100449594B1 (ko) 2004-09-22
KR100465073B1 (ko) 2005-01-13
WO2001067425A1 (fr) 2001-09-13
ATE431983T1 (de) 2009-06-15
NO20015461L (no) 2002-01-07
AU2003213315A1 (en) 2003-08-14
DK1686721T3 (da) 2013-03-25
NO333209B1 (no) 2013-04-08
TWI275049B (en) 2007-03-01
DK1689113T3 (da) 2013-03-25
CN1734527A (zh) 2006-02-15
CA2373432C (en) 2005-02-08
CN1734527B (zh) 2011-04-06
AU2003213318B2 (en) 2004-07-15
EP1689114A3 (en) 2006-09-06
JP2007041620A (ja) 2007-02-15
EP1689113A2 (en) 2006-08-09
CN1734526B (zh) 2013-09-18
EP1689114A2 (en) 2006-08-09
AU2003213315B2 (en) 2004-04-01
US7822196B2 (en) 2010-10-26
AU2003213317A1 (en) 2003-08-14
EP1686719A1 (en) 2006-08-02
DE60139280D1 (de) 2009-08-27
DK1193665T3 (da) 2012-04-02
ES2327263T3 (es) 2009-10-27
AU2003213312C1 (en) 2004-11-25
EP1193665A4 (en) 2006-06-14
AU2003213312A1 (en) 2003-08-14
SG124292A1 (en) 2006-08-30
EP1686721B1 (en) 2013-03-06
CN100392688C (zh) 2008-06-04
SG124294A1 (en) 2006-08-30
EP1689113B1 (en) 2013-03-06
ES2616544T3 (es) 2017-06-13
KR100465074B1 (ko) 2005-01-13
AU2003213317B2 (en) 2004-04-01
KR20040066874A (ko) 2004-07-27
KR100465070B1 (ko) 2005-01-13
DK1686720T3 (da) 2009-07-20
CA2449665C (en) 2005-06-21
AU2003213312B2 (en) 2004-03-25
KR20040066870A (ko) 2004-07-27
KR100465071B1 (ko) 2005-01-13
CA2449662C (en) 2004-08-17
CN100583192C (zh) 2010-01-20
DE60138773D1 (de) 2009-07-02
KR20040066875A (ko) 2004-07-27
EP1686722A1 (en) 2006-08-02
CN1734526A (zh) 2006-02-15
CN1737880A (zh) 2006-02-22
US20060045265A1 (en) 2006-03-02
JP4598744B2 (ja) 2010-12-15
SG124291A1 (en) 2006-08-30
DE60137269D1 (de) 2009-02-12
EP1686721A1 (en) 2006-08-02
CA2449672C (en) 2005-05-17
MXPA01011323A (es) 2003-08-01
ES2319560T3 (es) 2009-05-08
KR20040066872A (ko) 2004-07-27
ES2405942T3 (es) 2013-06-04
KR20040066877A (ko) 2004-07-27
SG124293A1 (en) 2006-08-30
EP1193665B8 (en) 2012-07-11
EP1689114B1 (en) 2009-07-15
AU4105801A (en) 2001-09-17
EP1686720A1 (en) 2006-08-02
CA2449669A1 (en) 2001-09-13
US20060050873A1 (en) 2006-03-09
CA2449672A1 (en) 2001-09-13
US20060050874A1 (en) 2006-03-09
CA2449669C (en) 2005-02-15
KR100468338B1 (ko) 2005-01-28
EP1686719B1 (en) 2008-12-31
CA2449665A1 (en) 2001-09-13
EP1193665B1 (en) 2012-02-15
AU2003213318A1 (en) 2003-08-14
ATE545991T1 (de) 2012-03-15
KR20020016624A (ko) 2002-03-04
CA2449662A1 (en) 2001-09-13
KR100465072B1 (ko) 2005-01-13
US7697684B2 (en) 2010-04-13
DK1686719T3 (da) 2009-03-30
AU767323B2 (en) 2003-11-06
ES2329819T3 (es) 2009-12-01
KR100465075B1 (ko) 2005-01-13
JP4127472B2 (ja) 2008-07-30
ES2407463T3 (es) 2013-06-12
DK1686722T3 (en) 2017-02-20
JP5242642B2 (ja) 2013-07-24
EP1689113A3 (en) 2006-08-30
NO20015461D0 (no) 2001-11-08
EP1686720B1 (en) 2009-05-20
JP2011018065A (ja) 2011-01-27
US7760871B2 (en) 2010-07-20
US7864950B2 (en) 2011-01-04
CN100557663C (zh) 2009-11-04
CN1364284A (zh) 2002-08-14
CN1808526A (zh) 2006-07-26
US20020159599A1 (en) 2002-10-31
US20060050872A1 (en) 2006-03-09
CA2373432A1 (en) 2001-09-13
KR20040066871A (ko) 2004-07-27
KR20040066876A (ko) 2004-07-27

Similar Documents

Publication Publication Date Title
ES2382454T3 (es) Aparato de cifrado en bloques que utiliza una transformación auxiliar
JP2007041620A5 (es)