ES2616544T3 - Aparato de cifrado en bloques y método de cifrado en boques que incluye un esquema de claves rotacional - Google Patents
Aparato de cifrado en bloques y método de cifrado en boques que incluye un esquema de claves rotacional Download PDFInfo
- Publication number
- ES2616544T3 ES2616544T3 ES06010078.1T ES06010078T ES2616544T3 ES 2616544 T3 ES2616544 T3 ES 2616544T3 ES 06010078 T ES06010078 T ES 06010078T ES 2616544 T3 ES2616544 T3 ES 2616544T3
- Authority
- ES
- Spain
- Prior art keywords
- data
- unit
- key
- bits
- transformation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key 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)
- Stereo-Broadcasting Methods (AREA)
- Studio Circuits (AREA)
- Chair Legs, Seat Parts, And Backrests (AREA)
- Burglar Alarm Systems (AREA)
- Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
- Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
- Treatments For Attaching Organic Compounds To Fibrous Goods (AREA)
- Document Processing Apparatus (AREA)
- Prostheses (AREA)
- Complex Calculations (AREA)
- Fittings On The Vehicle Exterior For Carrying Loads, And Devices For Holding Or Mounting Articles (AREA)
- Electrophonic Musical Instruments (AREA)
- Communication Control (AREA)
- Lock And Its Accessories (AREA)
- Materials For Medical Uses (AREA)
Abstract
Aparato de transformación de datos que tiene una unidad de procesamiento de datos (200, 500) para introducir datos de clave (K) y realizar al menos uno de cifrado de datos y descifrado de datos, y una unidad (300, 600) de generación de datos de clave para ser utilizados por la unidad (200, 500) de procesamiento de datos y proporcionar los datos de clave (K) a la unidad (200, 500) de procesamiento de datos, en el que la unidad (200, 500) de procesamiento de datos comprende una unidad (210, 220, 230) de transformación no lineal que tiene varias rondas en cascada, cada una de las diferentes rondas introduce una clave de extensión y realiza una transformación no lineal, en el que la unidad (300, 600) de generación de claves incluye una unidad (340) de desplazamiento de claves para introducir al menos uno de los datos de clave (K) generados y de los datos generados a partir de los datos de clave y dependiendo de los datos de clave, realizar un desplazamiento rotacional mediante un número predeterminado de bits Z1, Z2,..., Zm, donde m es un entero, donde Zk - Zj >= I X (Zi+1 - Zi) >= I X B siendo I un entero, donde B >= Zi+1 - Zi,, y donde cada uno de i, j, k es uno de 1 a m, y generar una clave de extensión para cada una de las diferentes rondas de la unidad de transformación no lineal a partir de los datos de clave en los que se realiza el desplazamiento rotacional, y en el que la unidad (340) de desplazamiento de claves incluye: un registro (341, 342, 343, 344) para realizar un desplazamiento rotacional para realizar un desplazamiento rotacional mediante B>= (Zi+1 - Zi) bits en una operación; y un controlador (345) para operar el registro de desplazamiento rotacional 1 vez sobre los datos de clave, en el que el desplazamiento rotacional se realiza mediante Zi bits, para realizar el desplazamiento rotacional de B>= (Zi+1 - Zi) bits, haciendo que el registro (341, 342, 343, 344) para realizar un desplazamiento rotacional, genere los datos de clave (K) en los que se realiza el desplazamiento rotacional mediante Zi+1 bits, y operar el registro de desplazamiento rotacional I veces sobre los datos de clave, donde el desplazamiento rotacional se realiza mediante Zi+1 bits, para realizar el desplazamiento rotacional mediante I x B>= I x (Zi+1 - Zi) bits, y haciendo que el registro de desplazamiento rotacional genere los datos de clave que realizan el desplazamiento rotacional mediante Zi+2 bits.
Description
5
10
15
20
25
30
35
40
45
DESCRIPCION
Aparato de cifrado en bloques y metodo de cifrado en boques que incluye un esquema de claves rotacional Campo Tecnico
La presente invencion se refiere a un aparato de transformacion de datos, a unos procedimientos de transformacion de datos, y a medios portadores en los cuales estan registrados procedimientos de transformacion de datos, para su cifrado, descifrado y difusion de los datos con el fin de proteger la informacion digital existente en las comunicaciones de informacion.
Antecedentes de la tecnica
La figura 25 representa una funcion de cifrado que se utiliza en el DES (Estandar de Cifrado de Datos) descrito en “Gendai Ango Riron (Teona de Cifrado Moderno)” (’’Modern Cipher Theory)” (Instituto de Ingenieros de Electronica, Informacion y Comunicacion (The Institute of Electronics, Information and Communication Engineers, publicado el 15 de noviembre de 1997, pagina 46).
Como se muestra en la figura 25, se utilizan ocho cajas S. Estas ocho cajas S son tablas diferentes entre sl Cada tabla emite datos de 4 bits a partir de datos de entrada de 6 bits.
Una descripcion general del Estandar de Cifrado de Datos (DES) se puede encontrar en Schneier B: “Applied Cryptography, Description of DES” 1996, Cifrado aplicado. Protocolos, algoritmos y codigo fuente en C., Nueva York, John Wiley & Sons, U.S.A., paginas 270-277, XP002237575, ISBN: 0-471-11709-9.
La figura 26 muestra una funcion de transformacion no lineal que se describe en “Especificacion 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, pagina 10).
Como se muestra en la figura 26, cada unidad de funcion S se compone de ocho cajas S.
Los dispositivos de cifrado convencionales utilizan multiples cajas S. Dado que algunos cifrados estan equipados con tablas diferentes entre sf, el uso de la memoria se incrementa en comparacion 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 figura 7, cuando una unidad 250 de transformacion normal de datos (FL) se inserta en la
-1
unidad de cifrado, es necesario suministrar una unidad 270 de transformacion inversa de datos (FL ) en una unidad de descifrado para descifrar los textos cifrados. Dado que, por regla general, la unidad 250 de transformacion normal
-1
de datos (FL) y la unidad 270 de transformacion inversa de datos (FL ) son circuitos diferentes entre sf, ello ocasiona un problema en el sentido de que la unidad de cifrado y la unidad de descifrado no pueden proporcionar la misma configuracion.
Por otro lado, en la generacion de claves de extension, se requieren operaciones complejas con el fin de generar claves de extension que ofrezcan una mayor seguridad. Hay otro problema en el caso de la generacion de claves de extension, en el sentido de que el numero de bits de los datos de clave que se deben introducir como valor inicial, debe ser fijo.
En el documento “E2 - Un Nuevo Cifrado en Bloque de 128 bits” (“E2 - A New 128-bit Block Cipher”) de Kanda et al. (IEICE TRANS. FUNDAMENTALS, vol. E83-A, n° 1 de enero de 2000, paginas 48-59), se ha descrito una tecnica de rotacion de bytes en un cifrado en bloque de 128 bits.
La presente invencion tiene como objetivo proporcionar unos sistemas en los cuales los circuitos de cifrado y descifrado sean los mismos, y en los cuales el area de los circuitos, el tamano de los programas y el uso de las memorias que se utilizan para el calculo de una transformacion no lineal puedan reducirse y, ademas, puedan generarse las claves de extension utilizando una configuracion massencilla.
Divulgacion de la Invencion
La invencion se define mediante las reivindicaciones adjuntas.
Un aparato de transformacion de datos de la presente invencion dispone de una unidad de procesamiento de datos para introducir datos de clave y realizar al menos uno de cifrado de datos y descifrado de datos, y una unidad de generacion de claves para generar datos de clave a utilizar por la unidad de procesamiento de datos y suministrar los datos de clave a la unidad de procesamiento de datos,
la unidad de procesamiento de datos incluye una unidad de transformacion no lineal que tiene varias rondas en cascada, cada una de las diferentes rondas introduce una clave de extension y realiza una transformacion no lineal,
5
10
15
20
25
30
35
40
45
50
la unidad de generacion de claves incluye una unidad de desplazamiento de claves para introducir al menos uno de los datos de clave y los datos generados a partir de los datos de clave y, dependiendo de los datos de clave, realizar un desplazamiento rotacional mediante un numero predeterminado de bits Z1, Z2,..., Zm (donde cada uno de i, j, k es uno de 1 a m, Zk - Zj = IX (Zi+1 - Zi) = I X B (I es un entero, B = Zi+1 - Zi)), y generar una clave de extension para cada una de las diferentes rondas de la unidad de transformacion no lineal a partir de los datos de clave en los que se realiza el desplazamiento rotacional, y la unidad de desplazamiento de claves incluye:
un registro de desplazamiento rotacional para realizar un desplazamiento rotacional de (Zi+1 - Zi) bits (B bits) en una operacion; y
un controlador para operar el registro de desplazamiento rotacional 1 vez sobre los datos de clave, en el que el desplazamiento rotacional se realiza mediante Zi bits, para realizar el desplazamiento rotacional mediante (Zi+1 - Zi) bits (B bits), haciendo que el registro de desplazamiento rotacional genere los datos de clave que realizan el desplazamiento rotacional mediante Zi+1 bits, y
operar el registro de desplazamiento rotacional I vez o veces sobre los datos de clave, en los cuales el desplazamiento rotacional se realiza mediante Zi+1 bits, para llevar a cabo el desplazamiento rotacional por I x (Zi+1 - Zi) bits (I x B bits), y haciendo que el registro de desplazamiento rotacional genere los datos de clave que realizan el desplazamiento rotacional mediante Zi+2 bits.
El registro de desplazamiento rotacional anterior es un circuito que realiza un desplazamiento rotacional de Zi+1 - Zi bits (B bits) mediante 1 ciclo de reloj de un reloj de funcionamiento proporcionado para operar el registro de desplazamiento rotacional.
El circuito de desplazamiento rotacional anterior incluye un selector para seleccionar uno de B1 = 8 x J1 + 1 (J1 = un entero mayor que 0) bits y B2 = 8 x J2 - 1 (J2 = un entero mayor que 1, donde no existe relacion entre J1 y J2, es decir, J1 t J2 o J1 = J2) bits como (Zi+1 - Zi) bits (B bits).
Un procedimiento de transformacion de datos de la presente invencion es para ejecutar un proceso de tratamiento de datos para realizar al menos uno de cifrado de datos y descifrado de datos, y un proceso de generacion de claves para generar datos de clave a utilizar por el proceso de tratamiento de datos y suministrar los datos de clave al proceso de tratamiento de datos,
el proceso de tratamiento de datos incluye un proceso de transformacion no lineal que tiene varias rondas en cascada, cada una de las diferentes rondas introduce una clave de extension y realiza una transformacion no lineal,
el proceso de generacion de claves incluye un proceso de desplazamiento de clave para introducir al menos uno de los datos de clave y los datos que se generan a partir de los datos de clave y, dependiendo de los datos de clave, realizar un desplazamiento rotacional mediante un numero predeterminado de bits Z1, Z2, ... Zm (donde cada uno de i, j, k es uno de 1 a m, Zk - Zj = I x (Zi+1 - Zi) = I X B (I es un entero, B = Zi+1 - Zi)), y generar una clave de extension para cada una de las diferentes rondas de la unidad de transformacion no lineal a partir de los datos de clave en los que se realiza el desplazamiento rotacional, y
el proceso de desplazamiento de clave incluye:
un proceso de desplazamiento rotacional; y
un proceso de control para operar el proceso de desplazamiento rotacional 1 vez en los datos de clave, en el que el desplazamiento rotacional se realiza mediante Zi bits, para realizar el desplazamiento rotacional de (Zi+1 - Zi) bits (B bits), haciendo que el proceso de desplazamiento rotacional genere los datos de clave sobre los que se realiza el desplazamiento rotacional mediante Zi+1 bits, y operar el proceso de desplazamiento rotacional I veces sobre los datos de clave, en el que el desplazamiento rotacional se realiza mediante Zi+1 bits, para realizar el desplazamiento rotacional mediante I x (Zi+1 - Zi) bits (I x B bits), y haciendo que el proceso de desplazamiento rotacional genere los datos de clave sobre los que se realiza el desplazamiento rotacional mediante Zi+2 bits.
Otro aspecto de la presente invencion se refiere a un medio de almacenamiento legible por ordenador para almacenar un programa para hacer que un ordenador realice el procedimiento de transformacion de los datos anteriores.
Otro aspecto de la presente invencion se refiere a un programa informatico para hacer que un ordenador realice el procedimiento de transformacion de los datos anteriores.
Breve Explicacion de los Dibujos
La figura 1 muestra una unidad 100 de transformacion de datos para el cifrado y una unidad 400 de transformacion de datos para el descifrado.
5
10
15
20
25
30
35
40
La figura 3 muestra una configuracion de una unidad 200 de cifrado o de una unidad 500 de descifrado.
La figura 4 muestra otra configuracion de la unidad 200 de cifrado o de la unidad 500 de descifrado.
La figura 5 muestra una configuracion de una unidad 251 de transformacion normal de datos (FL).
La figura 6 muestra una configuracion de una unidad 271 de transformacion inversa de datos (FL-1).
La figura 7 muestra una parte de una unidad de cifrado convencional y una unidad de descifrado convencional.
La figura 8 muestra una parte de la unidad 200 de cifrado y de la unidad 500 de descifrado.
La figura 9 muestra la unidad 251 de transformacion normal de datos (FL) y la unidad 271 de transformacion inversa de datos (FL-1) que estan situadas en simetna puntual.
La figura 10 muestra la relacion entre la unidad 251 de transformacion normal de datos (FL) y la unidad 271 de transformacion inversa de datos (FL-1) que estan situadas en simetna puntual.
La figura 11 muestra una unidad F de funcion no lineal.
La figura 12 muestra una configuracion de una primera unidad 13 de transformacion de caja S y una segunda unidad 14 de transformacion de caja S.
La figura 13 muestra una configuracion de una unidad 21 de transformacion de caja S.
La figura 14 muestra una configuracion de una unidad 85 de transformacion lineal.
La figura 15 muestra una configuracion de una unidad 87 de transformacion lineal.
La figura 16 muestra una configuracion de una unidad 300 de generacion de claves o de una unidad 600 de generacion de claves.
La figura 17 explica las operaciones de una unidad 310 de transformacion de longitud de bits.
La figura 18 muestra una configuracion de un registro A 341 de desplazamiento.
La figura 19 muestra una configuracion de una tabla de control de una unidad 345 de control de desplazamiento.
La figura 20 muestra las operaciones del registro A 341 de desplazamiento y de un registro B 342 de desplazamiento.
La figura 21 muestra la correspondencia entre el registro A 341 de desplazamiento, el registro B 342 de desplazamiento y las claves de extension.
La figura 22 muestra las operaciones de los registros A 341 a D 344 de desplazamiento.
La figura 23 muestra la correspondencia entre los registros A 341 a D 344 de desplazamiento y las claves de extension.
La figura 24 muestra un ordenador equipado con la unidad 100 de transformacion de datos para el cifrado y la unidad 400 de transformacion de datos para el descifrado.
La figura 25 muestra una configuracion de la funcion de cifrado del DES.
La figura 26 muestra una configuracion de la funcion no lineal del cifrado de bloques E2 de 128 bits.
La figura 27 muestra otro ejemplo de unidades de transformacion de cajas S.
La figura 28 muestra una unidad F de funcion no lineal que esta equipada con las unidades primera a cuarta de transformacion de cajas S.
La figura 29 muestra otra unidad F de funcion no lineal en la cual se desplaza una ubicacion de la unidad 25 de funcion de claves.
La figura 30 muestra otra unidad F de funcion no lineal en la cual se desplaza una ubicacion de la unidad 25 de funcion de clave.
La figura 31 muestra otra configuracion de una unidad 30 de funcion P.
5
10
15
20
25
30
35
40
45
50
La figura 33 muestra configuraciones y operaciones de S1 a S4 de la figura 31. La figura 34 muestra una prueba de inexistencia de claves equivalentes.
La figura 35 muestra una prueba de la no existencia de claves equivalentes.
La figura 36 muestra otra configuracion de la unidad 200 de cifrado o de la unidad 500 de descifrado.
La figura 37 muestra otra configuracion de la unidad 200 de cifrado o de la unidad 500 de descifrado. La figura 38 muestra otra configuracion de la unidad 200 de cifrado o de la unidad 500 de descifrado. La figura 39 muestra otra configuracion de la unidad 200 de cifrado o de la unidad 500 de descifrado. La figura 40 muestra otra configuracion de la unidad 200 de cifrado o de la unidad 500 de descifrado.
La figura 41 muestra otra configuracion de la unidad 200 de cifrado o de la unidad 500 de descifrado.
La figura 42 muestra una configuracion en la cual las unidades de la figura 39 y de la figura 40 estan combinadas.
La figura 43 muestra una configuracion de la unidad 200 de cifrado o de la unidad 500 de descifrado, la cual se muestra en la figura 3, que utiliza la unidad F de funcion no lineal mostrada en la figura 28.
La figura 44 muestra una configuracion modificada de la figura 43 mediante la utilizacion de una unidad F de funcion no lineal en la cual la unidad 25 de funcion de clave de la unidad F de funcion no lineal esta suprimida.
La figura 45 muestra una configuracion modificada de la figura 44 mediante la fusion de las claves de extension de blanqueo con las claves de extension.
La figura 46 muestra una configuracion modificada en la cual la unidad 25 de funcion de clave esta suprimida de la unidad F de funcion no lineal y en la cual una clave de extension k es suministrada a un circuito XOR 298, cuando la unidad F de funcion no lineal esta configurada como se muestra en la figura29.
La figura 47 muestra una configuracion modificada en la cual la unidad 25 de funcion de clave esta suprimida de la unidad F de funcion no lineal y en la cual una clave k' de extension transformada de forma lineal es suministrada al circuito XOR 298, cuando la unidad F de funcion no lineal esta configurada como se muestra en la figura 30.
Mejor Modo de Llevar a Cabo la Invencion
Ejemplo 1
La figura 1 muestra una unidad 100 de transformacion de datos para el cifrado y una unidad 400 de transformacion de datos para el descifrado en este ejemplo.
La unidad 100 de transformacion de datos para el cifrado 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 400 de transformacion de datos para el descifrado 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 100 de transformacion de datos para el cifrado se compone de una unidad 200 de cifrado y de una unidad 300 de generacion 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 generacion de claves genera multiples (n) claves de extension de 64 bits o de 128 bits utilizando constantes Vi a partir de datos de clave de entrada de 128 bits, 192 bits o 256 bits, y los suministra a la unidad 200 de cifrado. La unidad 400 de transformacion de datos para el descifrado se compone de una unidad 500 de descifrado y de una unidad 600 de generacion de claves. La unidad 500 de descifrado es una unidad de procesamiento de datos para descifrar textos cifrados. La unidad 600 de generacion de claves es la misma o similar a la anterior unidad 300 de generacion de claves. Asf mismo, dado que la unidad 200 de cifrado y la unidad 500 de descifrado pueden ejecutar el mismo 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 generacion de claves pueden compartir un circuito o un programa. Esto es, un circuito, o un programa, puede ser compartido por la unidad 100 de transformacion de datos para el cifrado y por la unidad 400 de transformacion de datos para el descifrado.
La figura 2 muestra los significados de las notaciones utilizadas para las siguientes figuras o descripciones.
En la figura 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”. Ademas, los datos introducidos en las unidades 210, 220, 230 y 240 de transformacion no lineal de datos son llamados “datos de entrada”, los datos internos de las unidades 210, 220, 230 y 240 de transformacion no lineal de datos se llaman “datos intermedios” y los datos emitidos desde las unidades 210, 220, 230 y 240 de transformacion no lineal de datos se llaman “datos de salida”.
5
10
15
20
25
30
35
40
45
50
55
La figura 3 muestra una configuracion en la cual estan conectadas en cascada la unidad 210 de transformacion no lineal de datos de 6 rondas, la unidad 220 de transformacion no lineal de datos de 6 rondas y la unidad 230 de transformacion no lineal de datos de 6 rondas. La unidad 251 de transformacion normal de datos (FL) y la unidad 271 de transformacion inversa de datos (FL-1) estan insertadas entre la unidad 210 de transformacion no lineal de datos de 6 rondas y la unidad 220 de transformacion no lineal de datos de 6 rondas. Ademas la unidad 253 de transformacion normal de datos (FL) y la unidad 273 de transformacion inversa de datos (FL-1) estan insertadas entre la unidad 220 de transformacion no lineal de datos de 6 rondas y la unidad 230 de transformacion no lineal de datos de 6 rondas. Dentro de la unidad 210 de transformacion no lineal de datos de 6 rondas, se disponen 6 rondas de unidades de transformacion no lineal de datos. Por ejemplo, una unidad 280 de transformacion no lineal de datos esta compuesta por una unidad F de funcion no lineal y por un circuito XOR (O exclusivo) 290. De esta forma, en el caso de la figura 3, en total se suministran 18 rondas de unidades de transformacion no lineal de datos.
La unidad 210 de transformacion no lineal de datos esta equipada con una primera unidad 280 de transformacion no lineal de datos y con una segunda unidad 281 de transformacion 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 transformacion no lineal sobre los datos de entrada de la izquierda Lo utilizando una primera extension de clave k1, emite un resultado operado con la funcion XOR de los datos de salida de la primera transformacion 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 ultimo lleva a cabo la segunda transformacion no lineal sobre los primeros datos intermedios de la izquierda R1 utilizando una segunda clave de extension k2, emite un resultado operado con la funcion XOR de los datos de salida de la segunda transformacion 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 transformacion no lineal de datos, en la cual estan conectadas en cascada desde la primera unidad 280 de transformacion no lineal de datos a la sexta unidad 285 de transformacion 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 despues de la transformacion.
La figura 4 muestra una configuracion en la cual una unidad 255 de transformacion normal de datos (FL), una unidad
_1
275 de transformacion inversa de datos (FL ), y una unidad 240 de transformacion no lineal de datos de 6 rondas se anaden a la unidad 200 de cifrado mostrada en la figura 3. En total, la transformacion de datos se lleva a cabo mediante 24 rondas de unidades de transformacion no lineal de datos.
La figura 5 muestra la unidad 251 de transformacion normal de datos (FL).
La figura 5 muestra que la unidad 251 de transformacion normal de datos (FL) 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 logicas 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 funcion AND con una clave de extension 53 en un circuito AND 54, y a continuacion, los datos operados con la funcion AND son desplazados rotacionalmente hacia la izquierda (tambien 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 funcion 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 funcion OR con una clave 57 de extension en un circuito OR 58. A continuacion, el resultado operado con la funcion OR es operado con la funcion 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.
_1
La figura 6 muestra la unidad 271 de transformacion inversa de datos (FL ).
_1
La figura 6 muestra que la unidad 271 de transformacion inversa de datos (FL ) 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 logicas 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 laderecha.
Los datos de entrada 72 de la derecha son operados con la funcion OR con una clave de extension 73 en un circuito OR 74 y, a continuacion, los datos operados con la funcion OR son operados con la funcion XOR con los datos de entrada 71 de la izquierda en un circuito XOR 75. A continuacion, la salida procedente del circuito XOR 75 se convierte en los datos de salida 80 de la izquierda y son operados con la funcion AND con una clave de extension 76 en un circuito AND 77. Despues de ello, el resultado operado con la funcion 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 funcion 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.
5
10
15
20
25
30
35
40
45
La unidad 251 de transformacion normal de datos (FL) mostrada en la figura 5 y la unidad 271 de transformacion -1
inversa de datos (FL ) mostrada en la figura 6 llevan a cabo operaciones opuestas entre sl Por consiguiente, utilizandola misma clave de extension, los datos de entrada X de la figura 5 pueden obtenerse como datos de salida X de la figura 6 haciendo que los datos de salida Y de la figura 5 sean los datos de entrada Y de la figura 6.
La relacion 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 relacion entre las transformaciones normal e inversa. La unidad 251 de transformacion
-1
normal de datos (FL) y la unidad 271 de transformacion inversa de datos (FL ) son circuitos que realizan dicha relacion entre las transformaciones normal einversa.
Tanto la unidad 55 de desplazamiento rotacional hacia la izquierda de 1 bit de la figura 5 como la unidad 78 de desplazamiento rotacional hacia la izquierda de 1 bit de la figura 6 llevan a cabo el desplazamiento hacia la izquierda, pero ambas pueden ejecutar el desplazamiento a la derecha. Ademas, la unidad 251 de transformacion
-1
normal de datos (FL) y la unidad 271 de transformacion inversa de datos (FL ) pueden ser una entre otras configuraciones, en tanto en cuanto mantengan la relacion entre las transformaciones normal e inversa. Por ejemplo, el numero de desplazamientos puede modificarse. Ademas, pueden anadirse un circuito AND con una operacion “no”, un circuito OR con una operacion “no”, y/o un circuito XOR con una operacion “no”. Es decir, lo que sigue son las definiciones mostradas del circuito AND con una operacion “no”, el circuito OR con una operacion “no”, y el circuito XOR con una operacion “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) e y.
Algunas CPU modernas estan 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 figura 7 muestra una unidad 201 de cifrado convencional y una unidad 501 de descifrado convencional.
La unidad 201 de cifrado convencional esta equipada con dos unidades normales de transformacion de datos FL.
-1
Asf, la unidad de descifrado debe estar equipada con dos unidades de transformacion inversas de datos FL con el fin de llevar a cabo las operaciones inversas. Por consiguiente, dado que la unidad de cifrado por regla general tiene una configuracion 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 figura 8, en la presente realizacion, la unidad 251 de transformacion normal de datos (FL) y la unidad 271 de transformacion inversa de datos (FL-1) estan situadas lado con lado en la unidad 200 de cifrado, de forma que la unidad de descifrado con la misma configuracion pueda llevar a cabo el descifrado. Por ejemplo, los datos de la derecha R son transformados por la unidad 251 de transformacion normal de datos (FL) para obtener los datos de la izquierda L', y los datos de la izquierda L son transformados por la unidad 271 de transformacion inversa de datos (FL-1) 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 271 de transformacion inversa -1
de (FL ), y los datos de la izquierda L pueden obtenerse introduciendo los datos de la derecha R' en la unidad 251 normal de transformacion de datos (FL).
Como se describio anteriormente, la unidad 200 de cifrado y la unidad 500 de descifrado se pueden implementar mediante la misma configuracion, y la unidad 200 de cifrado y la unidad 500 de descifrado pueden compartir el circuito.
La figura 9 muestra una configuracion en la cual la unidad 251 de transformacion normal de datos (FL) y la unidad 271 de transformacion inversa de datos (FL-1) estan situadas en simetna puntual sobre la unidad 280 de transformacion no lineal de datos.
De esta forma, cuando la unidad 251 de transformacion normal de datos (FL) y la unidad 271 de transformacion inversa de datos (FL') estan situadas en simetna puntual sobre la unidad 280 de transformacion no lineal de datos, el cifrado y el descifrado pueden llevarse a cabo utilizando la misma configuracion.
La figura 10 muestra la correspondencia entre la unidad de transformacion de datos (FL) y la unidad de
-1
transformacion inversa de datos (FL ), situadas en simetna puntual.
5
10
15
20
25
30
35
40
45
50
Como se muestra en la figura 10, en el caso de la figura 3, la unidad 251 de transformacion normal de datos (FL) y la unidad 271 de transformacion inversa de datos (FL-1) estan situadas en simetna puntual sobre la unidad 220 de transformacion no lineal de datos de 6 rondas.
En las figuras 3, 4, 8 y 9, la unidad de transformacion de datos (FL) y la unidad de transformacion inversa de datos _1
(FL ) pueden ser sustituidas entre sn Ademas, en las figuras 3, 4, 8 y 9, los datos de la derecha R y los datos de la izquierda L pueden ser sustituidos entre sl
La figura 36 muestra una configuracion en la cual la unidad 200 de cifrado se compone de la unidad 210 de transformacion no lineal de datos de 6 rondas, la unidad 220 de transformacion no lineal de datos de 6 rondas y la unidad 230 de transformacion no lineal de datos de 6rondas.
La unidad 210 de transformacion no lineal de datos de 6 rondas, la unidad 220 de transformacion no lineal de datos de 6 rondas y la unidad 230 de transformacion no lineal de datos de 6 rondas son circuitos que pueden utilizarse para el cifrado y el descifrado.
Aqrn, una unidad 211 de transformacion normal / inversa de datos esta compuesta por la unidad 210 de
transformacion no lineal de datos de 6 rondas, la unidad 250 de transformacion normal de datos (FL) y la unidad 271
de transformacion inversa de datos (FL-1). La unidad de transformacion normal / inversa de datos es un circuito que puede utilizarse tanto para el cifrado como para el descifrado. Es decir, la unidad de transformacion normal / inversa de datos es un circuito normal / inverso de transformacion 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 transformacion normal / inversa de datos se compone tambien de la unidad 220 de
transformacion no lineal de datos de 6 rondas, la unidad 251 de transformacion normal de datos (FL) y la unidad 273
de transformacion inversa de datos (FL-1).
Ademas, una unidad 231 de transformacion normal / inversa de datos esta compuesta por la unidad 230 de transformacion no lineal de datos de 6 rondas, la unidad 253 de transformacion normal de datos (FL) y la unidad 275 de transformacion inversa de datos (FL-1).
La unidad 200 de cifrado esta configurada mediante la conexion en cascada de estas unidades 211, 221 y 231 normales / inversas de transformacion de datos. Y esta unidad 200 de cifrado puede tambien ser utilizada como unidad 500 de descifrado.
Ademas, si se supone que un conjunto de la unidad 210 de transformacion no lineal de datos de 6 rondas, la unidad 220 de transformacion no lineal de datos de 6 rondas, la unidad 251 de transformacion normal de datos (FL) y la unidad 271 de transformacion inversa de datos (FL-1) sea una unidad 1210 de transformacion no lineal de datos, la unidad 1210 de transformacion no lineal de datos es un circuito que puede utilizarse para el cifrado y el descifrado.
Aqrn, una unidad 1211 de transformacion normal / inversa de datos se compone de la unidad 1210 de transformacion no lineal de datos, la unidad 250 de transformacion normal de datos (FL), y de la unidad 273 de transformacion inversa de datos (FL-1).
Ademas, si se supone que un conjunto de la unidad 220 de transformacion no lineal de datos de 6 rondas, la unidad 230 de transformacion no lineal de datos de 6 rondas, la unidad 253 de transformacion normal de datos (FL) y la unidad 273 de transformacion inversa de datos (FL-1) sea una unidad 1220 de transformacion no lineal de datos, una unidad 1221 de transformacion normal / inversa de datos se compone de la unidad 1220 de transformacion no lineal de datos, la unidad 251 de transformacion normal de datos (FL) y la unidad 275 de transformacion inversa de datos
(FL-1).
Las unidades 1211 y 1221 de transformacion normal / inversa de datos pueden utilizarse para la unidad de descifrado.
Ademas, si se supone que un conjunto de las unidades 210 a 230 de transformacion no lineal de datos de 6 rondas sea una unidad 2210 de transformacion no lineal de datos, la unidad 2210 de transformacion no lineal de datos es un circuito que puede utilizarse tanto para el cifrado como para el descifrado.
Aqrn, la unidad 2210 de transformacion no lineal de datos, la unidad 250 de transformacion normal de datos (FL) y la unidad 275 de transformacion inversa de datos (FL-1) constituyen una unidad 2211 de transformacion normal / inversa de datos.
La unidad 2211 de transformacion normal / inversa de datos se puede utilizar para la unidad de descifrado.
De acuerdo con lo anteriormente descrito, la unidad 200 de cifrado o la unidad 500 de descifrado se pueden configurar mediante la conexion en cascada de multiples unidades de transformacion normales / inversas de datos.
5
10
15
20
25
30
35
40
45
50
Ademas, en la unidad 200 de cifrado o en la unidad 500 de descifrado, la unidad de transformacion normal/inversa de datos puede constituirse jerarquicamente alojando la unidad de transformacion normal / inversa de datos dentro de la unidad de transformacion normal / inversa dedatos.
La figura 37 muestra un caso en el que la unidad 200 de cifrado y la unidad de descifrado tienen la misma configuracion, que incluye la unidad 210 de transformacion no lineal de datos de 6 rondas.
En la figura 37, la unidad 210 de transformacion no lineal de datos de 6 rondas incluye rondas pares de unidades 280 de transformacion no lineal de datos, como se muestra en las figuras 3 y 4. Los datos A son transformados en datos A' por una primera unidad 256 de entrada de transformacion normal de datos, los datos A' se introducen en un primer puerto 261 de entrada, los datos A' introducidos desde el primer puerto 261 de entrada se emiten desde un primer puerto 263 de salida como datos A1'. Ademas, los datos B ingresados desde un segundo puerto 262 de entrada se emiten desde un segundo puerto 264 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 transformacion inversa de datos.
Los datos A1' emitidos desde el primer puerto 263 de salida de la unidad 200 de cifrado se introducen 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 transformacion inversa de datos se introducen en la primera unidad 256 de entrada de
transformacion normal de datos como datos B1', y emitidos como datos B1.
La unidad 210 de transformacion no lineal de datos introduce los datos B1 y emite los datos B. Ademas, la unidad 210 de transformacion no lineal introduce los datos A1' y emite los datos A'. La segunda unidad 279 de salida de transformacion inversa de datos introduce los datos A' y emite los datos A.
En la figura 38, la unidad 219 de transformacion no lineal de datos de ronda impar incluye rondas impares de unidades 280 de transformacion no lineal de datos. En consecuencia, los datos A' ingresados desde el primer puerto 261 de entrada se emiten desde el segundo puerto 264 de salida como datos A1'. A continuacion, los datos A1' son transformados por la segunda unidad 279 de transferencia inversa de datos de salida y emitidos como datos A1''. Ademas, los datos B introducidos en el segundo puerto 262 de entrada se emiten 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 se introducen 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 transformacion inversa de datos de salida de la unidad 200 de cifrado se introducen en la unidad 500
de descifrado como datos A1'' y se introducen en la primera unidad 256 de transformacion normal de datos de entrada.
En los casos de las figuras 37 y 38, la unidad 200 de cifrado y la unidad 500 de descifrado tienen la misma configuracion, llevando a cabo el cifrado y eldescifrado.
La figura 39 muestra un caso en el que la segunda unidad 257 de transformacion normal de datos de entrada se proporciona en el segundo puerto 262 de entrada, y la primera unidad 278 de transformacion inversa de datos de salida se proporciona en el primer puerto 263 de salida.
La figura 40 muestra un caso en el que la primera unidad 276 de transformacion inversa de datos de entrada se proporciona en el primer 261 puerto de entrada, y la segunda unidad 259 de transformacion normal de datos de salida se proporciona en el segundo puerto 264 de salida.
La figura 41 muestra un caso en el que las unidades 256, 258 de transformacion normal / inversa de datos se proporcionan en los puertos 261, 263 de entrada / salida de la izquierda y las unidades 277, 279 de transformacion inversa de datos se proporcionan en los puertos 262, 264 de entrada / salida de la derecha.
La figura 42 muestra un caso en el que las figuras 39 y 40 estan combinadas.
Puede implementarse otro caso mediante la combinacion de las figuras 37 y 39, que no se muestra en la figura. Ademas, las figuras 38 y 39 pueden combinarse. Ademas, la unidad 210 de transformacion no lineal de datos de 6 rondas (rondas pares) puede sustituirse por la unidad 219 de transformacion no lineal de datos de rondas impares en las figuras 37 y 39 a 42, que no se muestran en las figuras. En los casos de las figuras 39 a 42, la unidad de cifrado y la unidad de descifrado se pueden implementar mediante la misma configuracion.
Ejemplo 2
La figura 11 muestra una configuracion de una unidad F de funcion no lineal de la unidad 280 de transformacion no lineal de datos.
5
10
15
20
25
30
35
40
45
50
55
La unidad F de funcion no lineal introduce datos 10 de entrada de la funcion F, lleva a cabo la transformacion no lineal y emite datos 40 de salida de la funcion F. Los datos 10 de entrada de la funcion 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 se introduce en cada uno de los ocho circuitos XOR 12 de una unidad 25 de funcion de clave, operados con la funcion XOR con una clave 11 de extension, y se lleva a cabo una transformacion no lineal utilizando una sustitucion en una unidad 20 de funcion S. A continuacion, en una unidad 30 de funcion P, dos elementos de los datos de 8 bits son operados con la funcion XOR mediante dieciseis circuitos XOR 815, y se emiten los datos 40 de salida de la funcion F de 64 bits. En la unidad 20 de funcion S, se proporcionan cuatro primeras unidades 13 de transformacion de cajas S y cuatro segundas unidades 14 de transformacion de cajas S.
La figura 12 muestra un ejemplo de implementacion de la primera unidad 13 de transformacion de las cajas S y de la segunda unidad 14 de transformacion de cajas S.
Dentro de la primera unidad 13 de transformacion de cajas S, se proporciona una tabla de transformacion T. La tabla de transformacion T almacena previamente valores de 0 a 255 de manera arbitraria (al azar) correspondientes a valores de 0 a 255. La tabla de transformacion 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 transformacion T emite 7. La tabla de transformacion T lleva a cabo una transformacion no lineal determinada con arreglo a consideraciones de seguridad, por ejemplo, verificando si la funcion es biyectiva o no, si la probabilidad diferencial maxima es suficientemente pequena o no, etc.
La segunda unidad 14 de transformacion de cajas S incluye la primera unidad 13 de transformacion 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 transformacion de cajas S. Por ejemplo, cuando se introduce 1, la primera unidad 13 de transformacion 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 transformacion de cajas S y la segunda unidad 14 de transformacion de cajas S estan configuradas como se muestra en la figura 12, se puede obtener un efecto similar al caso en el que se proporcionan dos tipos de tablas de transformacion T, aunque no se requiere que existan dos tipos de tablas de transformacion T. Mediante la inclusion de una sola tabla de transformacion T, el uso de la memoria requerido para el almacenaje de la tabla de transformacion T puede reducirse, y puede tambien reducirse la escala del circuito.
Ademas, como se muestra en la figura 27, proporcionando una unidad de desplazamiento rotacional a la derecha de 1 bit (“>>>1” de la tercera unidad 15 de transformacion de cajas S de la figura 27) asf 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 tambien una tabla T de transformacion diferente. De otra forma, tambien es posible transformar los datos y de entrada utilizando la tabla de transformacion de datos T despues 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 transformacion de cajas S de la figura 27) proporcionada para los datos y, de entrada. La figura 27 muestra los casos de s(y), s(y)<<<1, s(y)>>>1, s(y<<<1), pero tambien 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 mas rapido que en casos de desplazamiento de 3 bits o 5 bits en el caso de que las CPU, etc. tengan solamente un comando de desplazamiento de 1 bit. Ademas, 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 mas rapido. Ademas, el desplazamiento no esta limitado a llevarse a cabo a razon de 1 bit, sino que puede utilizarse un numero arbitrario de bits como, por ejemplo, 2 bits o 3 bits. Mediante el desplazamiento en un numero arbitrario de bits, a veces resulta posible obtener un efecto similar al de la provision de tipos diferentes de tablas.
La figura 28 muestra una unidad 20 de funcion S que utiliza las unidades 13, 14, 15, 16 primera a cuarta de transformacion de cuatro cajas S, mostradas en la figura 27.
Otra configuracion de la unidad 30 de funcion P se muestra en la figura 31.
A partir de los datos de entrada de 8 bits y.,, 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 funcion XOR en un circuito 913. A partir de los datos de entrada de 8 bits y5, y6, y7, ys, se obtienen los datos Z5, Z6, Z7, Za, de 32 bits mediante referencia a S2, S3, S4, S1, respectivamente, y son operados con la funcion XOR en un circuito 916. Este resultado U2 operado con la funcion XOR y el anterior resultado U1 operado con la funcion XOR son operados con la funcion XOR en un circuito 917 para emitir z1', z2', z3', z4'. A continuacion, el resultado U1, operado con la funcion XOR desde el circuito 913 es desplazado a la izquierda en 1 octeto (en la figura 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 funcion XOR con la salida procedente del circuito 917 para emitir Z5', Z6', Z7', Z8'.
5
10
15
20
25
30
35
40
45
50
55
Como se muestra en (a) a (d) de la figura 33, S1 se configura utilizando la primera unidad 13 de transmision de cajas S, S2 se configura utilizando la segunda unidad 14 de transformacion de cajas S, S3 se configura utilizando la tercera unidad 15 de transformacion de cajas S y S4 se configura utilizando la cuarta unidad 16 de transformacion de cajas S. Los datos de salida de 8 bits procedentes de cada unidad de transformacion son copiados cuatro veces para obtener datos de 32 bits, y ademas, 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 dclico por unidad de longitud de bits (8 bits = 1 octeto), que es procesado por la caja S.
La figura 32 muestra la unidad de funcion P cuya configuracion es equivalente a la figura 31, pero la implementacion es diferente.
A partir de los datos de entrada de 8 bits y.,, y2, y3, y4, se obtienen los datos de 32 bits z-,, z2, z3, z4, mediante referencia a S5, S6, S7, S8, y son operados con la funcion 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 funcion 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 figura 32, de manera similar a la figura 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 funcion XOR en un circuito 938. Este resultado operativo C es desplazado rotacionalmente hacia la parte superior (izquierda) en 1 octeto en un circuito 939, y el resultado operativo C es tambien operado con la funcion 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 tambien operado con la funcion 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 tambien operado con la funcion XOR con la salida procedente del circuito 941 en un circuito 944. La salida F procedente del circuito 944 es emitida como z-,', z2', z3', z4', y la salida procedente del circuito 943 es emitida como zs, ze', z/, z8'.
S5 y SC se configuran utilizando la primera unidad 13 de transformacion de caja S y un desplazamiento logico, S6 y S9 se configuran utilizando la segunda unidad 14 de transformacion de caja S y un desplazamiento logico, S7 y SA se configuran utilizando la tercera unidad 15 de transformacion de caja S y un desplazamiento logico, S8 y SB se configuran utilizando la cuarta unidad 16 de transformacion de caja S y un desplazamiento logico. El desplazamiento logico se utiliza para emitir datos de salida de 8 bits procedentes de cada unidad de transformacion hasta una ubicacion predeterminada situada dentro de los datos de salida de 32 bits. El desplazamiento logico 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 transformacion 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 yS9.
La implementacion es posible utilizando unas tablas de sustitucion cuya entrada sea de 8 bits y cuya salida sea de 32 bits, que se calcula para producirdirectamente una salida predeterminada.
En los casos de las figuras 31 y 32, puede proporcionarse el aparato que lleve a cabo una transformacion a una velocidad mas alta que la transformacion empleada para el cifrado E2 convencional mostrado en la figura 26, y, ademas, sobre el cual resulte posible una implementacion flexible.
En la figura 11, cuando las cajas S de la unidad 20 de funcion S estan configuradas respectivamente mediante tipos diferentes de cajas S, se requieren ocho tablas de transformacion T. Por otro lado, cuando las cajas S estan configuradas como se muestra en la figura 12, el uso de la memoria requerida para el almacenaje de las tablas de transformacion T puede reducirse a al menos lamitad.
Ademas, ocho elementos de datos de 8 bits se introducen por division de tiempo en la primera unidad 13 de transformacion de caja S y en la segunda unidad 14 de transformacion de caja S mostrada en la figura 12, de forma que las respectivas ocho cajas S convencionales pueden ser sustituidas por la primera unidad 13 de transformacion de caja S y por la segunda unidad 14 de transformacion de cajaS.
La figura 13 muestra otro ejemplo de la caja S de la unidad 20 de funcion S.
La configuracion concreta se explica con detalle en la obra de Matui y Sakurai, “Circuito de division y circuito compartido del Campo de Galois para la multiplicacion y division” [“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 se introducen en la unidad 21 de transformacion de caja S y se emiten los datos de 8 bits. La unidad 21 de transformacion de caja S se configura mediante una unidad 17 de transformacion lineal de N bits (aqrn, N = 8), una unidad 18 de transformacion de subcampo y una unidad 19 de transformacion lineal de N bits. La unidad
5
10
15
20
25
30
35
40
45
50
17 de transformacion lineal de N bits lleva a cabo operaciones de datos de 8 bits. La unidad 18 de transformacion de
4
subcampo lleva a cabo operaciones de datos de solo 4 bits que son elementos del Campo de Galois, GF (2 ). La
unidad 19 de transformacion lineal de N bits lleva a cabo una operacion de datos de 8 bits. Una unidad 85 de
transformacion lineal de la unidad 17 de transformacion lineal de N bits es un circuito que lleva a cabo la transformacion lineal mostrada en la figura 14. Una unidad 87 de transformacion lineal es un circuito que lleva a cabo la transformacion lineal mostrada en la figura 15.
La unidad 85 de transformacion lineal se puede sustituir por un circuito que lleve a cabo una transformacion afm (una transformacion lineal puede considerarse como un tipo de transformacion afm). De modo similar, la unidad 87 de
transformacion lineal se puede sustituir por un circuito que lleve a cabo otra transformacion afm. La unidad 85 de
transformacion afm transforma los datos de 8 bits (X) en datos de 8 bits (X'). Se supone que los datos de 8 bits
8
obtenidos (X') son elementos del Campo de Galois (2 ). 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 4
(2 ) y se emiten hacia la unidad 18 de transformacion de subcampo. Aqm, por ejemplo, sea un elemento p del CG
(28) un elemento que satisface el polinomio irreductible X8 + X6 + X5 + X3 + 1 = 0, y a = p238, una base del CG (24)
2 3 4
de subcampo, que puede ser representada como [1, a, a , a ]. Si los elementos del CG (2 ), X0, X1, son representados utilizando esto, la relacion siguiente puede establecerse como X' = XO + p X1. (Para los detalles, consultese la obra de Matui y Sakurai, “Circuito de division y circuito compartido del Campo de Galois para multiplicacion y division” [“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 transformacion de subcampo se configura solo por unidades operativas, cada una de las cuales lleva a cabo operaciones de datos de 4bits.
Aqm, como ejemplo de extraccion de “subcampo”, el subcampo CG (2m), donde n = 2m, puede tomarse en consideracion para un CG (2n) determinado. En este ejemplo, n = 8, m =4.
La unidad 18 de transformacion de subcampo es un circuito de elementos inversos que utiliza el subcampo construido por el circuito mostrado en el documento “Circuito de division y circuito compartido del Campo de Galois para multiplicacion y division” [“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
4
considerarse como un elemento del CG (2 ), se emiten hacia la unidad 87 de transformacion lineal como datos Y de
8
8 bits, los cuales pueden considerarse como un elemento del CG (2 ), donde Y = Yo + p Y1. Como se expuso anteriormente, este circuito de elementos inversos es un circuito para calcular Y = Yo + p Y1 = 1 / (Xo + p X1). Ademas, hay algunas formas de adoptar una “base”, como por ejemplo una “base polinomica” y una “base normal”, en la representacion del elemento de “campo finito” (como adoptar una base) en el circuito de elementos inversos.
Una primera caractenstica de la unidad 21 de transformacion de caja S mostrada en la figura 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 transformacion 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 calculo 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.
Ademas, una segunda caractenstica de la unidad 21 de transformacion de caja S consiste en que la unidad 17 de transformacion lineal de N bits y la unidad 19 de transformacion lineal de N bits, donde N = 8, se proporcionan a ambos lados de la unidad 18 de transformacion de subcampo. Cuando la unidad 21 de transformacion de caja S se implementa utilizando la unidad 18 de transformacion de subcampo, existe la ventaja de que puede reducirse una escala del circuito entero, y la configuracion resulta mas sencilla en comparacion con el supuesto que emplea una tabla de transformacion 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 transformacion de subcampo, de forma que pueda recuperarse la reduccion del nivel de seguridad debido a la implementacion que utiliza la unidad 18 de transformacion de subcampo.
En la figura 13, las transformaciones lineales se llevan a cabo a ambos lados de la unidad 18 de transformacion de subcampo; sin embargo, la transformacion lineal puede llevarse a cabo solo en un lado. En otra variante, la transformacion lineal puede llevarse a cabo en un lado, y la transformacion afm puede llevarse a cabo en el otro lado.
5
10
15
20
25
30
35
40
45
50
55
La figura 29 muestra un supuesto en el que la unidad 25 de funcion de clave se muestra en la figura 11, esto es, la unidad 25 de funcion de clave situada antes de la unidad 20 de funcion S y de la unidad 30 de funcion P, ahora se situa despues de la unidad 20 de funcion S y de la unidad 30 de funcion P.
La figura 30 muestra un supuesto en el que la unidad 25 de funcion de clave esta situada entre la unidad 25 de funcion S y la unidad 30 de funcion P.
Mediante el empleo de la configuracion mostrada en la figura 29 o la figura 30, se puede tener un efecto de que una implementacion proporciona una operacion de velocidad mas alta de lo que lo hace la configuracion mostrada en la figura 11. Ademas, mediante la modificacion de la generacion de las claves de extension, puede obtenerse la misma salida utilizando la configuracion mostrada en la figura 29 o en la figura 30 a partir de la misma entrada que la de la configuracion de la figura 11. En la unidad de funcion F convencional mostrada en la figura 26, se proporcionan dos funciones S, en cada una de las cuales se lleva a cabo en primer termino una operacion con la clave de extension y a continuacion se lleva a cabo una operacion de funcion S. Por el contrario, en el caso mostrado en la figura 29, una unidad 25 de funcion de clave esta situada en la etapa final de la funcion F. En el caso mostrado en la figura 30, la unidad 25 de funcion de clave esta situada entre la unidad 20 de funcion S y la unidad 30 de funcion P.
La figura 43 muestra un caso en el que la unidad F de transformacion no lineal mostrada en la figura 28 se emplea en la unidad 200 de cifrado o en la unidad 500 de descifrado mostradas en la figura 3.
Los datos de la izquierda se introducen en la unidad F de transformacion no lineal como datos 10 de entrada de la funcion F, y se emiten los datos 40 de salida de la funcion F. Los datos 40 de salida de la funcion F son operados con la funcion XOR con los datos de la derecha, y el resultado operado con la funcion XOR se convierte en los datos de la izquierda de la siguiente ronda. Cuando los datos de la izquierda se introducen en la unidad F de transformacion lineal como los datos 10 de entrada de la funcion F, al mismo tiempo, los datos de la izquierda son utilizados como datos de la derecha de la siguiente ronda. En la configuracion mostrada en la figura 43, las operaciones de la unidad 25 de la funcion de clave, de la unidad 20 de funcion S y de la unidad 30 de funcion P se llevan a cabo en la unidad F de transformacion no lineal, de forma que la carga de las operaciones resulta considerable dentro de la unidad F de transformacion no lineal. Un caso ejemplar en el que puede conseguirse una velocidad de procesamiento mas alta mediante la distribucion de la carga operativa de la unidad F de transformacion no lineal, se expondra a continuacion con referencia a lasfiguras.
La figura 44 muestra un supuesto en el que se utiliza la unidad F de transformacion no lineal. La unidad F de transformacion no lineal es una unidad en la que la unidad 25 de la funcion de claves es suprimida de la unidad F de transformacion no lineal mostrada en la figura 43. La clave de extension k1 es operada con la funcion XOR con los datos de la izquierda L0 en un circuito XOR 891. Ademas, la clave de extension k2 es operada con la funcion XOR con los datos de la derecha R0 en un circuito XOR 297. Los datos de la izquierda se introducen en la unidad F de transformacion no lineal como los datos 10 de entrada de la funcion F, y transformados por la unidad 20 de funcion S y por la unidad 30 de funcion P. La salida procedente del circuito XOR 297 y los datos 40 de salida de la funcion F son operados con la funcion XOR en un circuito XOR 290 para emitir los datos de la izquierda L1.
Por otro lado, las unidades 300, 600 de generacion de claves llevan a cabo una operacion XOR de las claves de extension k1 y k2 y emiten la clave de extension modificada k1 + k3. La salida R1 del circuito XOR 891 y la clave de extension k1 + k3 son operadas con la funcion XOR en un circuito XOR 298 para emitir los datos de la derecha. Las unidades 300, 600 de generacion de claves modifican las claves de extension para generar y emitir k1 + k3, k2 + k4, k3 + k5, ..., k16 + k18. Las unidades 300, 600 de generacion de claves suministran las claves de extension modificadas a los procesos distintos del proceso (F) de funcion 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 figura 43.
Las claves de extension modificadas se suministran a procesos distintos del proceso (F) de funcion no lineal y operados con los datos y, en consecuencia, las operaciones con los datos de clave se pueden llevar a cabo fuera de la unidad F de funcion no lineal, a saber, en los circuitos XOR 297 y 298, mientras que las operaciones de la unidad 20 de funcion S y de la unidad 30 de funcion P se llevan a cabo en la unidad F de funcion no lineal.
Por consiguiente, las operaciones de la unidad 25 de funcion de clave se eliminan de la unidad F de funcion no lineal, y la carga de la unidad F de funcion no lineal es distribuida, lo cual permite una implementacion de alta velocidad.
La figura 45 muestra un caso en el que las operaciones de la clave de extension de blanqueo kw1, se llevan a cabo asimismo como operaciones de las otras claves de extension en la configuracion mostrada en la figura 44. La figura 45 muestra un caso en el que la unidad de generacion de claves previamente lleva a cabo una operacion XOR de una parte de la clave de extension de blanqueo, kw1superior y de la primera clave de extension k1 (es decir, la unidad de generacion de claves modifica la clave de extension) y suministra el resultado de la operacion al circuito XOR 891.
5
10
15
20
25
30
35
40
45
50
La figura muestra tambien un caso en el que la unidad de generacion de claves lleva a cabo previamente una operacion XOR como parte de la clave de extension de blanqueo key1inferior y de la segunda clave de extension k2 (es decir, la unidad de generacion de claves modifica la clave de extension) y suministra el resultado de la operacion al circuito XOR 297.
De esta forma, puede se puede eliminar la operacion en el circuito XOR 293 mostrado en la figura 44. Ademas, en un caso mostrado en la figura 45, la unidad de generacion de claves lleva a cabo una operacion XOR de una parte de la clave de extension de blanqueo kw2inferior y de la clave de extension k17 (es decir, la unidad de generacion de claves modifica la clave de extension) y suministra el resultado de la operacion al circuito XOR 299. Y, ademas, la unidad de generacion de claves lleva a cabo una operacion XOR de la otra parte de la clave de extension de blanqueo kw2superior y de la clave de extension kl8 (es decir, la unidad de generacion de claves modifica la clave de extension) y suministra el resultado de la operacion al circuito XOR892.
De esta forma, se elimina la operacion del circuito XOR 296 mostrada en la figura 44.
La figura 46 muestra un caso en el que la unidad 25 de funcion de clave es suprimida de la unidad F de funcion no lineal y, en su lugar, la unidad de generacion de claves suministra la clave de extension k al circuito XOR 298 cuando la unidad F de funcion no lineal esta configurada como se muestra en la figura29.
La figura 47 muestra un caso en el que la unidad 25 de funcion de claves es suprimida 25 de la unidad F de funcion no lineal y, en su lugar, la unidad de generacion de claves suministra la clave de extension transformada de manera no lineal k' = P(k) al circuito XOR 298 cuando la unidad F de funcion no lineal esta configurada como se muestra en la figura 30. En el caso de la figura 47, se lleva a cabo la misma operacion efectuada por el proceso de funcion 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 se suministran a procesos distintos del proceso de funcion 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 figuras 46 y 47, debido a que la unidad 25 de funcion de clave se elimina de la unidad F de funcion no lineal, la carga operativa de la unidad F de funcion no lineal se reduce, y la operacion del circuito XOR 298 situado fuera de la unidad F de funcion no lineal puede llevarse a cabo en paralelo con las operaciones llevadas a cabo por la unidad F funcion no lineal, lo que posibilita un procesamiento de altavelocidad.
Realizacion de la invencion
La figura 16 muestra una configuracion de la unidad 300 de generacion de claves (o de la unidad 600 de generacion de claves) mostrada en la figura 1.
La unidad 300 de generacion de claves incluye una unidad 310 de transformacion de la longitud de los bits, una primera unidad 320 de transformacion de claves de G bits, una segunda unidad 330 de transformacion 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 generacion de claves genera datos de clave k1 de 128 bits y datos de clave k2 de 128 bits, y emite varias claves de extension de 64 bits. La unidad 310 de transformacion 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 se introducen datos de clave con diferente numero de bits. En otras palabras, la unidad 310 de transformacion 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 transformacion de claves de G bits y hasta la unidad 340 de desplazamiento de claves. Ademas, los ultimos se emiten hacia la segunda unidad 330 de transformacion de claves de G bits y hacia la unidad 340 de desplazamiento de claves. Ademas, los datos de clave de 128 bits que son un resultado operado con la funcion XOR de los primeros y de los ultimos se emiten hacia la primera unidad 320 de transformacion de claves de G bits.
La figura 17 muestra las operaciones internas de la unidad 310 de transformacion de la longitud de los bits.
Cuando los datos de clave de 128 bits se introducen en la unidad 310 de transformacion de la longitud de los bits, los datos de clave introducidos se emiten como datos de clave SKsuperior de los 128 bits superiores sin cambio. Ademas, los datos de clave SKinferior de los 128 bits inferiores se fijan en 0 yse emiten.
Cuando los datos de clave de 192 bits se introducen en la unidad 310 de transformacion de la longitud de los bits, los datos superiores de 128 bits de los datos de clave de entrada se emiten como los datos de clave superiores de 128 bits SKsuperior sin cambio alguno. Ademas, los datos de clave inferiores de 128 bits SKinferior se generan mediante la combinacion 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 se generan mediante la inversion de los datos inferiores de 64 bits de los datos de clave de 192 bits de entrada, y se emiten.
Cuando se introducen los datos de clave de 256 bits, los datos superiores de 128 bits de los datos de clave introducidos se emiten como SKsuperior, y los datos inferiores de 128 bits se emiten como SKinferior.
5
10
15
20
25
30
35
40
45
50
55
Unos datos XOR de los datos de clave de 128 bits SKsuperior y SKinferior se introducen en la primera unidad 320 de transformacion de claves de G bits desde la unidad 310 de transformacion de la longitud de los bits, operados mediante transformaciones no lineales de dos rondas, operados con la funcion 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 transformacion de la longitud de los bits es de 128 bits, la unidad 340 de desplazamiento de claves genera la clave de extension utilizando los datos de clave de 128 bits emitidos desde la unidad 320 de transformacion 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 transformacion 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 transformacion de claves de G bits son adicionalmente introducidos en la segunda unidad 330 de transformacion de G bits, operados con la funcion 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 transformacion de claves de G bits y de la segunda unidad 330 de transformacion de claves de G bits, se emiten hacia la unidad 340 de desplazamiento de claves. La unidad 340 de desplazamiento de claves genera la clave de extension utilizando los dos elementos de datos de clave de 128 bits y los datos de clave originariamenteintroducidos.
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 senal 346 de seleccion hacia cada uno de los registros de desplazamiento para controlar las operaciones de los registros de desplazamiento.
La figura 18 muestra una configuracion 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 senal 346 de seleccion incluye una senal de conmutacion para indicar la conexion 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 senal 346 de seleccion y, en este caso, el registro A 348 lleva a cabo un desplazamiento rotacional hacia la izquierda de 17 bits. Ademas, cuando el grupo de conmutadores esta 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 numero de bits de desplazamiento (15, 17) es uno entre muchos ejemplos, y puede aplicarse otro numero de bits de desplazamiento.
La figura 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 numero 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 figura 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 figura 19 en el caso de generar la clave de extension 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 transformacion 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 transformacion de claves de G bits son insertados en el registro de desplazamiento B 342. Con esta condicion, el registro de desplazamiento A 341 y el registro de desplazamiento B 342 operan en base a la tabla de control mostrada en la figura 19. En la figura 20, los datos de una columna inclinada muestran que deben ser ignorados y no deben ser emitidos. Los datos en las otras columnas se emiten como claves de extension, como se muestra en la figura 21.
La figura 21 muestra una correspondencia entre el valor de los registros y la clave de extension.
La figura 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 decision 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 extension, y su orden de emision, se especifican en la tabla de control, que no se muestra en la figura. Y segun la tabla de control, mediante la emision de la senal 346 de seleccion que incluye una senal de instruccion de salida para el registro de desplazamiento, la clave de extension es emitida desde cada registro de desplazamiento en 64 bits.
5
10
15
20
25
30
35
40
45
50
55
La figura 22 muestra un caso en el que la clave de extension 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 transformacion 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 transformacion de claves de G bits se insertan en el registro de desplazamiento C 343, y los datos de clave de 128 bits K9 emitidos desde la segunda unidad 330 de transformacion de claves de G bits se insertan en el registro de desplazamiento D344.
Los datos en una columna que tengan una inclinacion muestran claves no utilizadas para las claves de extension. La figura 23 muestra una correspondencia entre el valor del registro y la clave de extension.
Las claves no utilizadas para las claves de extension y la correspondencia entre el valor del registro y la clave de extension mostrada en la figura 23 son almacenadas en la tabla de control situada en el controlador.
Como se muestra en la figura 19, la unidad 345 de control de desplazamiento almacena el numero de bits para el desplazamiento de los datos de clave fijados en el registro de desplazamiento A 341. Es decir, las claves de extension 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 numero 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 razon por la cual la suma del numero de bits de desplazamiento alcanza 128 10 bits (el numero 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. Ademas, en el caso de que se lleve a cabo una transformacion inversa (descifrado), el proceso para generar la clave de extension se inicia desde el estado inicial y, en consecuencia, tanto la transformacion (cifrado) como la transformacion inversa (descifrado) pueden llevarse a cabo mediante la fijacion del estado inicial. Ademas, la razon por la cual la suma del numero de bits de desplazamiento no se fija en mas de 128 bits (el numero de bits del registro) es impedir la generacion de valores identicos a los del estatus dentro del mismo registro de desplazamiento, debido a la ejecucion del desplazamiento en mas de un ciclo (mas de 128 bits de desplazamiento). Esto es porque, por ejemplo, la realizacion del desplazamiento rotacional en 2 bits, que es menos de 128 bits (el numero de bits del registro), y la realizacion del desplazamiento rotacional de 130 bits, que es mas de 128 bits (el numero de bits del registro), producen el valor identico. 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 numero de bits de desplazamiento vane de forma irregular a lo largo del unico ciclo. Sin embargo, con el fin de facilitar la configuracion del registro del desplazamiento, se desea un desplazamiento en un numero de bits fijo. Por consiguiente, un registro esta configurado para llevar a cabo dos tipos de desplazamientos en 15 bits y en 17 bits (en un reloj), y la operacion de desplazamiento mediante numeros de bits diferentes puede implementarse utilizando los dos tipos de desplazamientos, de acuerdo con el siguienteprocedimiento.
Establezcase la relacion para que Z1 - Z0 = 15 (aqm, Z1 - Z0 = B1), Z2 - Z1 = 30 (es decir, Z2 - Z1 = 2B1), por consiguiente, Z2 - Z1 = 2(Z1 - Z0). Ademas, como se muestra en la tabla de control del registro de desplazamiento B, establezcase la relacion para que Z5 - Z4 = 34 (aqm, Z5 - Z4 = 2B2), Z6 - Z5 = 17 (es decir, Z6 - Z5 = B2), por consiguiente, Z5 - Z4 = 2(Z6 - Z5). Es decir, las diferencias entre los numeros de los bits de desplazamiento nos dan 15 bits y 30 bits, o 17 bits y 34 bits, y el numero de bits de desplazamiento (30 bits o 34 bits) se establece en un multiplo entero (2 veces = I veces) del numero de bits (15 bits y 17 bits) para un desplazamiento de una sola vez.
De esta forma, cuando las diferencias del numero de bits de desplazamiento se establecen, bien respecto del numero de bits de desplazamiento para una sola vez, o bien para el multiplo del numero entero mayor que dos (I veces, I es un numero entero mayor de 2) y el numero de bits de desplazamiento para una sola vez, mediante la operacion del registro de desplazamiento A 341 una o dos veces (I veces), es posible implementar facilmente operaciones de desplazamiento cuyo numero de bits de desplazamiento este almacenado en la tabla de control. Operar dos veces (I veces) significa que la operacion de desplazamiento termina con dos relojes (I relojes) del reloj operativo suministrado para operar el registro de desplazamiento A 341.
Aqm, 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 extension. Por ejemplo, en el caso de desplazamiento de Z1 = 15 a Z2 = 45, I = (Z2 - Z1) / (el numero 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 despues del desplazamiento I - 1 veces (2 - 1 = 1 vez) son ignorados y no se utilizan para la clave de extension. Esto puede apreciarse en la figura 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 extension. Y uno u otro, o ambos, de los datos superiores y los datos inferiores de los datos desplazados despues del desplazamiento de I veces (2 veces) es, o son, utilizados
5
10
15
20
25
30
35
40
45
50
55
como clave de extension. Esto puede apreciarse en la figura 20, la cual muestra que la clave [12] y la clave [13] son emitidas como las claves de extension.
Las razones por las cuales las operaciones de desplazamiento en base a un multiplo de un entero mayor de dos se emplean de acuerdo con lo anteriormente descrito, son la habilitacion para realizar el desplazamiento de no solo 15 bits o 17 bits, sino tambien de 30 (= 15 x X2) bits, 34 (= 17 x 2) bits, (o 45 (= 15 x 3) bits o 51 (= 17 x 3) bits, etc.), lo que modifica el numero de desplazamientos y mejora adicionalmente la seguridad. Y la razon por la que se proporcionan casos en los que los datos desplazados no se utilizan para la clave de extension es tambien mejorar la seguridad.
Se desea generar los datos que no se utilizan para la clave de extension (en las figuras 20 y 22, las claves de las columnas con inclinaciones, las cuales no se utilizan para las claves de extension) 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 figura 3 se desea generar dichos datos cuando se llevan a cabo las operaciones de la
-1
unidad de transformacion normal de datos (FL) y de la unidad de transformacion inversa de datos (FL ), o antes o despues de dichas operaciones, o en momentos de inactividad de procesos o momentos de conmutacion de
procesos, tales como, por ejemplo, una llamada de funcion por un programa, una llamada de subrutina, o un proceso de tratamiento de interrupciones.
La caractenstica de la tabla de control mostrada en la figura 19 es que la tabla de control especifica el numero de bits de desplazamiento de B1 = 8 x 2 - 1 = 15 (B1 = 8 x J1 - 1, donde J1 es un numero entero mayor que 1) y el numero de bits 5 de desplazamiento de B2 = 8 x 2 + 1 = 17 (B2 = 8 x J2 + 1, donde J2 es un numero entero mayor que 0, J1 = J2 o J1 t J2). Establecer la magnitud del desplazamiento hasta un ± 1 del multiplo entero de ocho es llevar a cabo el desplazamiento por los bits impares, lo que mejora la seguridad en comparacion con la realizacion del desplazamiento solo por los bits pares, dado que la operacion de la clave de extension 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 multiplo de 8, por ejemplo, en alguna CPU que tenga solamente un comando de desplazamiento de 1 bit, la operacion de desplazamiento del tipo expuesto lleva a cabo un procesamiento de alta velocidad en comparacion con el desplazamiento en 3 bits o 5 bits. Y, ademas, en el caso de que esta operacion 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 descripcion 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 transformacion de longitud de bits puede extender los datos de clave al mismo tamano de los datos de clave cuando se introducen los datos de clave de 256 bits, utilizando algun tipo de algoritmo. Es decir, cuando se introducen los datos de clave con una longitud de Q, la cual oscila entre 0 bits y 2G bits, la unidad 310 de transformacion de la longitud en bits puede convertir los datos de clave de Q bits en datos de clave de 2G bits.
A continuacion, se expondra la prueba de la no existencia de una clave equivalente con referencia a la figura 34.
En la explicacion que sigue de la figura 34, “+” indica una operacion XOR. Aqrn, se supone que se introducen dos datos de clave de 128 bits SK1 y SK2 (SK1 t SK2) y que la unidad 310 de transformacion de la longitud de los bits emite SK1superior = 5 SK1 = (SKH1 | SkL1) a partir de SK1 y SK2superior = SK2 = (SKH2 | SKL2) a partir de SK2. Aqrn, 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 AA y que los datos XOR de SKL1 y SKL2 son AB, puede decirse “al menos AA t 0 o AB t 0”, dado que SK1 t SK2.
Como se muestra en la figura 34, estos AA y AB se convierten en AA + AD, AB + AC, respectivamente, mediante la recepcion de las dos rondas de transformaciones no lineales. Esto significa que los datos XOR (AA | AB) de SK1superior y SK2superior se convierten en datos XOR (AA + AD | AB + AC) despues de llevar a cabo las dos rondas de transformaciones no lineales en SK1superior y los datos transformados despues de llevar a cabo las dos rondas de transformaciones no lineales en SK2superior. Por consiguiente, cuando estos elementos de datos, despues de llevar a cabo las dos rondas de transformaciones no lineales, son operados con la funcion XOR con SK1superior y SK2superior, respectivamente, en un circuito XOR 999, los resultados operados con la funcion XOR de dos elementos de datos se convierten en (AD | AC). Si la transformacion no lineal es una funcion biyectiva, la introduccion de AX t 0 determina siempre la emision de AY t 0, de forma que, cuando “al menos AA t 0 o AB t 0”, puede decirse que “al menos AC t 0 o que AD t 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.
5
10
15
20
25
30
35
40
45
50
55
Por otro lado, como se muestra en la figura 35, se tomara en consideracion 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 AA t 0 o AB t 0”, puede haber un caso en el que o bien AA o AB puedan ser 0. Si aA = 0, AC = 0 y, de la misma manera expuesta anteriormente, los datos XOR (0 | AB) de SKIsuperior y SK2superior se convierten en los datos XOR (AB + AE | AD) despues de llevar a cabo las tres rondas de transformaciones no lineales en SKIsuperior y los datos transformados despues de llevar a cabo las tres rondas de transformaciones no lineales en SK2superior. En consecuencia, cuando estos elementos de datos, despues de recibir las tres rondas de transformaciones no lineales, son operados con la funcion XOR con SKIsuperior y SK2superior, respectivamente, en el circuito XOR 999, los resultados operados con la funcion XOR de dos elementos de datos se convierten en (AB + AE | AB + AD). Aqm, cuando se supone que AB = AD = AE t 0, lo siguiente es cierto: (AB + AE | AB + AD) = (0 | 0). Es decir, cuando estos elementos de datos, despues de llevar a cabo las tres rondas de transformaciones no lineales, son operados con la funcion XOR con SKIsuperior y SK2superior, respectivamente, los resultados de la operacion son los mismos. Es decir, SKIsuperior 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 transformacion lineal de tres rondas, sino que una transformacion 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 transformacion lineal de dos rondas de acuerdo a la presente realizacion.
Ademas, puede haber otro caso en el que la no existencia de la clave equivalente se demuestre de forma distinta a la de la transformacion no lineal de dos rondas de acuerdo con la presente realizacion; sin embargo, es preferible utilizar la transformacion no lineal de dos rondas debido a su configuracion sencilla, ademas de la no existencia demostrada de la clave equivalente.
La figura 24 muestra un ordenador para la instalacion de la unidad 5 de transformacion de datos para el cifrado 100 o la unidad 400 de transformacion de datos para el descifrado.
La unidad 100 de transformacion de datos para el cifrado y/o la unidad 400 de transformacion de datos para el descifrado estan conectadas al bus como tarjeta de circuitos impresos. Esta tarjeta de circuitos impresos esta provista de una CPU, una memoria y un elemento de circuito logico, y cifra los textos no cifrados suministrados a partir de la CPU, convirtiendolos en textos cifrados utilizando la operacion 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 transformacion de datos para el cifrado o la unidad 400 de transformacion de datos para el descifrado se pueden implementar por hardware. Ademas, la unidad 100 de transformacion de datos para el cifrado o la unidad 400 de transformacion de datos para el descifrado pueden ser tambien implementadas mediante software, como procedimiento de transformacion de datos. Es decir, la operacion expuesta anteriormente puede llevarse a cabo utilizando el programa almacenado en una unidad de disco magnetico o en una unidad de disco flexible. Como una alternativa, la operacion anterior se puede implementar mediante la combinacion de hardware y software, aunque esto no se muestra en la figura. Ademas, no se requiere implementar toda la operacion anterior utilizando un ordenador, sino que es posible implementar la operacion 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 figuras precedentes 1 a 47, una flecha muestra una direccion del flujo operativo, y las figuras que tienen la flecha son diagramas en bloque de la unidad de transformacion de datos, y tambien los diagramas de flujo. “unidad...” mostrados en los diagramas 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 transformacion 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 numero de bits.
Ademas, 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 extension de 64 bits, pero los datos de clave pueden tener otro numero 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 extension 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
Segun una realizacion de la presente invencion, la unidad 345 de control del desplazamiento puede hacer que el registro de desplazamiento opere el numero entero de veces para realizar el desplazamiento de los datos de clave con el numero de bits de desplazamiento (por ejemplo, 30 bits o 34 bits) que no es un numero fijo de bits, tal como 5 solo 15 bits o 17 bits, y mejora la seguridad.
Claims (6)
- 5101520253035404550REIVINDICACIONES1. Aparato de transformacion de datos que tiene una unidad de procesamiento de datos (200, 500) para introducir datos de clave (K) y realizar al menos uno de cifrado de datos y descifrado de datos, y una unidad (300, 600) de generacion de datos de clave para ser utilizados por la unidad (200, 500) de procesamiento de datos y proporcionar los datos de clave (K) a la unidad (200, 500) de procesamiento de datos,en el que la unidad (200, 500) de procesamiento de datos comprende una unidad (210, 220, 230) de transformacion no lineal que tiene varias rondas en cascada, cada una de las diferentes rondas introduce una clave de extension y realiza una transformacion no lineal,en el que la unidad (300, 600) de generacion de claves incluye una unidad (340) de desplazamiento de claves para introducir al menos uno de los datos de clave (K) generados y de los datos generados a partir de los datos de clave y dependiendo de los datos de clave, realizar un desplazamiento rotacional mediante un numero predeterminado de bits Zi, Z2,..., Zm, donde m es un entero, donde Zk- Zj = I X (Zi+1 - Zi) = I X B siendo I un entero, donde B = Zi+1 - Zi,, y donde cada uno de i, j, k es uno de 1 a m, y generar una clave de extension para cada una de las diferentes rondas de la unidad de transformacion no lineal a partir de los datos de clave en los que se realiza el desplazamiento rotacional,yen el que la unidad (340) de desplazamiento de claves incluye:un registro (341, 342, 343, 344) para realizar un desplazamiento rotacional para realizar un desplazamiento rotacional mediante B= (Zi+1 - Zi) bits en una operacion; yun controlador (345) para operar el registro de desplazamiento rotacional 1 vez sobre los datos de clave, en el que el desplazamiento rotacional se realiza mediante Zi bits, para realizar el desplazamiento rotacional de B= (Zi+1 - Zi) bits, haciendo que el registro (341, 342, 343, 344) para realizar un desplazamiento rotacional, genere los datos de clave (K) en los que se realiza el desplazamiento rotacional mediante Zi+1 bits, yoperar el registro de desplazamiento rotacional I veces sobre los datos de clave, donde el desplazamiento rotacional se realiza mediante Zi+1 bits, para realizar el desplazamiento rotacional mediante I x B= I x (Zi+1 - Zi) bits, y haciendo que el registro de desplazamiento rotacional genere los datos de clave que realizan el desplazamiento rotacional mediante Zi+2 bits.
- 2. El aparato de transformacion de datos de la reivindicacion1, en el que el registro de desplazamiento rotacional es un circuito que realiza un desplazamiento rotacional de B= Zi+1 - Zi bits mediante 1 ciclo de reloj de un reloj de operacion proporcionado para operar el registro de desplazamiento rotacional.
- 3. El aparato de transformacion de datos de la reivindicacion 1, en el que el circuito de desplazamiento rotacional incluye un selector (347) para seleccionar, como B bits para el desplazamiento rotacional, uno de B1 = 8 x J1 + 1 bits, donde J1 es un entero mayor que 0 y B2 = 8 x J2 - 1 bits, donde J2 es un entero mayor que 1 donde J1 t J2 o J1 = J2.
- 4. Procedimiento de transformacion de datos para ejecutar un proceso de tratamiento de datos para realizar al menos uno de cifrado de datos y descifrado de datos, y un proceso de generacion de claves para generar datos de clave a utilizar por el proceso de tratamiento de datos y suministrar los datos de clave al proceso de tratamiento de datos,en el que el proceso de tratamiento de datos incluye un proceso de transformacion no lineal que tiene varias rondas en cascada, cada una de las diferentes rondas introduce una clave de extension y realiza una transformacion no lineal,en el que el proceso de generacion de claves incluye un proceso de desplazamiento de clave para introducir al menos uno de los datos de clave y los datos que se generan a partir de los datos de clave y, dependiendo de los datos de clave, realizar un desplazamiento rotacional mediante un numero predeterminado de bits Z1, Z2, ... Zm, donde m es un entero, donde Zk - Zj = I x (Zi+1 - Zi) = I X B, siendo I un entero, donde B = Zi+1 - Zi, y donde cada uno de i, j, k es uno de 1 a m,y generar una clave de extension para cada una de las diferentes rondas de la unidad de transformacion no lineal a partir de los datos de clave en los que se realiza el desplazamiento rotacional, yen el que el proceso de desplazamiento de claves incluye:un proceso de desplazamiento rotacional para realizar un desplazamiento rotacional mediante B= (Zi+1 - Zi) bits en una operacion; yun proceso de control para operar el proceso de desplazamiento rotacional 1 vez sobre los datos de clave, en el que el desplazamiento rotacional se realiza mediante Zi bits, para realizar el desplazamiento rotacional de B= (Zi+1 - Zi)bits, haciendo que el proceso de desplazamiento rotacional genere los datos de clave sobre los que se realiza el desplazamiento rotacional mediante Zi+1 bits, y operar el proceso de desplazamiento rotacional I veces sobre los datos de clave, en el que el desplazamiento rotacional se realiza mediante Zi+1 bits, para realizar el desplazamiento rotacional mediante I x B= I x (Zi+i - Zi) bits, y haciendo que el proceso de desplazamiento rotacional genere los 5 datos de clave sobre los que se realiza el desplazamiento rotacional mediante Zi+2 bits.
- 5. Un programa de ordenador que comprende medios de codigo de programa informatico adaptados para realizar las etapas del procedimiento de la reivindicacion 4 cuando dicho programa informatico se ejecuta en un ordenador.
- 6. Un medio portador legible por ordenador que lleva el programa ejecutable por ordenador de la reivindicacion 5.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000064614 | 2000-03-09 | ||
| JP2000064614 | 2000-03-09 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2616544T3 true ES2616544T3 (es) | 2017-06-13 |
Family
ID=18584290
Family Applications (7)
| 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 |
| 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 |
| 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. |
| ES06010076T Expired - Lifetime ES2405942T3 (es) | 2000-03-09 | 2001-03-08 | Aparato de cifrado en bloques que utiliza una transformación auxiliar |
| ES06010077T Expired - Lifetime ES2329819T3 (es) | 2000-03-09 | 2001-03-08 | Aparato de cifrado de bloques que usa informacion auxiliar. |
| ES06010073T Expired - Lifetime ES2319560T3 (es) | 2000-03-09 | 2001-03-08 | Aparato de cifrado en bloques. |
Family Applications After (6)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| 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 |
| 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. |
| ES06010076T Expired - Lifetime ES2405942T3 (es) | 2000-03-09 | 2001-03-08 | Aparato de cifrado en bloques que utiliza una transformación auxiliar |
| ES06010077T Expired - Lifetime ES2329819T3 (es) | 2000-03-09 | 2001-03-08 | Aparato de cifrado de bloques que usa informacion auxiliar. |
| ES06010073T Expired - Lifetime ES2319560T3 (es) | 2000-03-09 | 2001-03-08 | Aparato de cifrado en bloques. |
Country Status (16)
| Country | Link |
|---|---|
| US (5) | US7864950B2 (es) |
| EP (7) | EP1686720B1 (es) |
| JP (3) | JP4127472B2 (es) |
| KR (8) | KR100449594B1 (es) |
| CN (5) | CN1734527B (es) |
| AT (3) | ATE431983T1 (es) |
| AU (5) | AU767323B2 (es) |
| CA (5) | CA2449669C (es) |
| DE (3) | DE60139280D1 (es) |
| DK (7) | DK1686722T3 (es) |
| ES (7) | ES2616544T3 (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 (56)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI275049B (en) * | 2000-03-09 | 2007-03-01 | Nippon Telegraph & Telephone | Block cipher apparatus using auxiliary transformation |
| 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 |
| EP1821195B1 (en) * | 2004-09-14 | 2010-08-18 | 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 |
| CN100581101C (zh) * | 2007-11-19 | 2010-01-13 | 西安西电捷通无线网络通信有限公司 | 一种基于分组密码算法的加密处理设备 |
| CN100495961C (zh) * | 2007-11-19 | 2009-06-03 | 西安西电捷通无线网络通信有限公司 | 一种基于分组密码算法的加密处理方法 |
| 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 | 富士通株式会社 | 暗号処理装置 |
| US9317286B2 (en) * | 2009-03-31 | 2016-04-19 | Oracle America, Inc. | Apparatus and method for implementing instruction support for the camellia cipher 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 |
| 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 |
| US20100246815A1 (en) * | 2009-03-31 | 2010-09-30 | Olson Christopher H | Apparatus and method for implementing instruction support for the kasumi cipher algorithm |
| US8832464B2 (en) * | 2009-03-31 | 2014-09-09 | Oracle America, Inc. | Processor and method for implementing instruction support for hash algorithms |
| 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를 이용한 미아방지용 캐릭터 목걸이. |
| WO2017102879A1 (en) | 2015-12-15 | 2017-06-22 | Koninklijke Philips N.V. | A computation device and method |
| US10157289B2 (en) * | 2016-09-26 | 2018-12-18 | Bank Of America Corporation | Progressive key rotation for format preserving encryption (FPE) |
| JP6813468B2 (ja) * | 2017-11-14 | 2021-01-13 | Kddi株式会社 | 演算装置、演算方法及び演算プログラム |
| WO2020075797A1 (ja) * | 2018-10-10 | 2020-04-16 | 日本電信電話株式会社 | 秘密右シフト演算システム、秘密除算システム、それらの方法、秘密計算装置、およびプログラム |
| 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)
| 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 | 太陽誘電株式会社 | チップ型電子部品の製造方法 |
| WO1997009705A1 (en) * | 1995-09-05 | 1997-03-13 | Mitsubishi Denki Kabushiki Kaisha | Data conversion apparatus and data conversion method |
| JPH0990870A (ja) * | 1995-09-27 | 1997-04-04 | Nec Corp | 基本変換方法、暗号化方法、基本変換回路および暗号装置 |
| JPH09269727A (ja) * | 1996-03-29 | 1997-10-14 | Toshiba Corp | 暗号化方法および暗号化装置 |
| TW333630B (en) * | 1996-05-22 | 1998-06-11 | Matsushita Electric Industrial Co Ltd | An 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 | 日本電信電話株式会社 | 逆元演算装置 |
| TW367465B (en) * | 1997-04-23 | 1999-08-21 | Matsushita Electric Industrial Co Ltd | Cryptographic processing apparatus cryptographic processing method, and storage medium storing cryptographic processing program for improving security without greatly increasing hardware scale and processing time |
| 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 |
| TWI275049B (en) * | 2000-03-09 | 2007-03-01 | Nippon Telegraph & Telephone | Block cipher apparatus using auxiliary transformation |
-
2001
- 2001-03-08 TW TW090105464A patent/TWI275049B/zh not_active IP Right Cessation
- 2001-03-08 EP EP06010074A patent/EP1686720B1/en not_active Expired - Lifetime
- 2001-03-08 DK DK06010078.1T patent/DK1686722T3/en active
- 2001-03-08 DE DE60139280T patent/DE60139280D1/de not_active Expired - Lifetime
- 2001-03-08 KR KR10-2001-7014247A patent/KR100449594B1/ko not_active Expired - Lifetime
- 2001-03-08 EP EP06010078.1A patent/EP1686722B1/en not_active Expired - Lifetime
- 2001-03-08 DK DK01912172.2T patent/DK1193665T3/da active
- 2001-03-08 DE DE60138773T patent/DE60138773D1/de not_active Expired - Lifetime
- 2001-03-08 DK DK06010077T patent/DK1689114T3/da active
- 2001-03-08 AT AT06010074T patent/ATE431983T1/de not_active IP Right Cessation
- 2001-03-08 DK DK06010073T patent/DK1686719T3/da active
- 2001-03-08 KR KR10-2004-7008596A patent/KR100465071B1/ko not_active Expired - Lifetime
- 2001-03-08 CA CA002449669A patent/CA2449669C/en not_active Expired - Lifetime
- 2001-03-08 EP EP06010075A patent/EP1686721B1/en not_active Expired - Lifetime
- 2001-03-08 CN CN2005100959349A patent/CN1734527B/zh not_active Expired - Lifetime
- 2001-03-08 KR KR10-2004-7008602A patent/KR100465072B1/ko not_active Expired - Lifetime
- 2001-03-08 SG SG200407209A patent/SG124293A1/en unknown
- 2001-03-08 ES ES06010078.1T patent/ES2616544T3/es not_active Expired - Lifetime
- 2001-03-08 SG SG200407213A patent/SG124294A1/en unknown
- 2001-03-08 KR KR10-2004-7008605A patent/KR100465073B1/ko not_active Expired - Lifetime
- 2001-03-08 ES ES06010075T patent/ES2407463T3/es not_active Expired - Lifetime
- 2001-03-08 CA CA002449665A patent/CA2449665C/en not_active Expired - Lifetime
- 2001-03-08 CN CN2005100912925A patent/CN1734526B/zh not_active Expired - Lifetime
- 2001-03-08 CA CA002449662A patent/CA2449662C/en not_active Expired - Lifetime
- 2001-03-08 EP EP06010076A patent/EP1689113B1/en not_active Expired - Lifetime
- 2001-03-08 EP EP01912172A patent/EP1193665B8/en not_active Expired - Lifetime
- 2001-03-08 KR KR10-2004-7008606A patent/KR100465074B1/ko not_active Expired - Lifetime
- 2001-03-08 ES ES01912172T patent/ES2382454T3/es not_active Expired - Lifetime
- 2001-03-08 SG SG200407161A patent/SG124292A1/en unknown
- 2001-03-08 ES ES06010074T patent/ES2327263T3/es not_active Expired - Lifetime
- 2001-03-08 US US09/959,853 patent/US7864950B2/en not_active Expired - Lifetime
- 2001-03-08 DE DE60137269T patent/DE60137269D1/de not_active Expired - Lifetime
- 2001-03-08 SG SG200407157A patent/SG124291A1/en unknown
- 2001-03-08 KR KR10-2004-7008595A patent/KR100465070B1/ko not_active Expired - Lifetime
- 2001-03-08 AT AT06010073T patent/ATE419692T1/de not_active IP Right Cessation
- 2001-03-08 KR KR10-2004-7008607A patent/KR100465075B1/ko not_active Expired - Lifetime
- 2001-03-08 CA CA002449672A patent/CA2449672C/en not_active Expired - Lifetime
- 2001-03-08 AT AT01912172T patent/ATE545991T1/de active
- 2001-03-08 MX MXPA01011323A patent/MXPA01011323A/es active IP Right Grant
- 2001-03-08 JP JP2001565161A patent/JP4127472B2/ja not_active Expired - Lifetime
- 2001-03-08 CN CNB2005100939383A patent/CN100557663C/zh not_active Expired - Lifetime
- 2001-03-08 DK DK06010074T patent/DK1686720T3/da active
- 2001-03-08 ES ES06010076T patent/ES2405942T3/es not_active Expired - Lifetime
- 2001-03-08 ES ES06010077T patent/ES2329819T3/es not_active Expired - Lifetime
- 2001-03-08 EP EP06010073A patent/EP1686719B1/en not_active Expired - Lifetime
- 2001-03-08 DK DK06010075.7T patent/DK1686721T3/da active
- 2001-03-08 CN CN200510096622A patent/CN100583192C/zh not_active Expired - Lifetime
- 2001-03-08 CA CA002373432A patent/CA2373432C/en not_active Expired - Lifetime
- 2001-03-08 AU AU41058/01A patent/AU767323B2/en not_active Expired
- 2001-03-08 EP EP06010077A patent/EP1689114B1/en not_active Expired - Lifetime
- 2001-03-08 KR KR10-2004-7008598A patent/KR100468338B1/ko not_active Expired - Lifetime
- 2001-03-08 ES ES06010073T patent/ES2319560T3/es not_active Expired - Lifetime
- 2001-03-08 CN CNB018004709A patent/CN100392688C/zh not_active Expired - Lifetime
- 2001-03-08 WO PCT/JP2001/001796 patent/WO2001067425A1/ja not_active Ceased
- 2001-03-08 DK DK06010076.5T patent/DK1689113T3/da active
- 2001-11-08 NO NO20015461A patent/NO333209B1/no not_active IP Right Cessation
-
2003
- 2003-07-08 AU AU2003213317A patent/AU2003213317B2/en not_active Expired
- 2003-07-08 AU AU2003213312A patent/AU2003213312C1/en not_active Expired
- 2003-07-08 AU AU2003213315A patent/AU2003213315B2/en not_active Expired
- 2003-07-08 AU AU2003213318A patent/AU2003213318B2/en not_active Expired
-
2005
- 2005-10-28 US US11/260,110 patent/US7760870B2/en not_active Expired - Lifetime
- 2005-10-28 US US11/260,126 patent/US7760871B2/en not_active Expired - Lifetime
- 2005-10-28 US US11/260,111 patent/US7697684B2/en not_active Expired - Lifetime
- 2005-10-28 US US11/260,129 patent/US7822196B2/en not_active Expired - Lifetime
-
2006
- 2006-11-02 JP JP2006298813A patent/JP4598744B2/ja not_active Expired - Lifetime
-
2010
- 2010-08-27 JP JP2010190217A patent/JP5242642B2/ja not_active Expired - Lifetime
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2616544T3 (es) | Aparato de cifrado en bloques y método de cifrado en boques que incluye un esquema de claves rotacional |