ES2327263T3 - Aparato de cifrado de bloques y procedimiento de cifrado de bloques que incluye la programacion de una clave de longitud variable. - Google Patents
Aparato de cifrado de bloques y procedimiento de cifrado de bloques que incluye la programacion de una clave de longitud variable. Download PDFInfo
- Publication number
- ES2327263T3 ES2327263T3 ES06010074T ES06010074T ES2327263T3 ES 2327263 T3 ES2327263 T3 ES 2327263T3 ES 06010074 T ES06010074 T ES 06010074T ES 06010074 T ES06010074 T ES 06010074T ES 2327263 T3 ES2327263 T3 ES 2327263T3
- Authority
- ES
- Spain
- Prior art keywords
- data
- key
- unit
- transformation
- bits
- 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)
- Mobile Radio Communication Systems (AREA)
- Slot Machines And Peripheral Devices (AREA)
- Fittings On The Vehicle Exterior For Carrying Loads, And Devices For Holding Or Mounting Articles (AREA)
- Lock And Its Accessories (AREA)
- Prostheses (AREA)
- Treatments For Attaching Organic Compounds To Fibrous Goods (AREA)
- Chair Legs, Seat Parts, And Backrests (AREA)
- Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
- Studio Circuits (AREA)
- Electrophonic Musical Instruments (AREA)
- Communication Control (AREA)
- Stereo-Broadcasting Methods (AREA)
- Complex Calculations (AREA)
- Document Processing Apparatus (AREA)
- Materials For Medical Uses (AREA)
- Burglar Alarm Systems (AREA)
- Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
Abstract
Un aparato de transformación de datos que tiene una unidad de generación de clave (300, 600) para generar datos de clave de salida en base a K datos de clave de entrada, y una unidad de procesado de datos para realizar al menos uno de entre el encriptado de datos y el desencriptado de datos en base a los datos de clave de salida, caracterizado porque la unidad generadora de clave comprende: una primera unidad de transformación de G bits (320) para transformar los K datos de clave de entrada introducidos en la misma en los primeros datos de clave de G bits representados por G bits, y una segunda unidad de transformación de clave de G bits (330) para transformar los primeros datos de clave de G bits introducidos en la misma dentro de los segundos datos de clave de G bits representados por G bits, y porque la unidad de generación de clave, si los K datos de clave de entrada están representados por G bits, genera primeros K 1 datos de clave por medio de la transformación de los K datos de clave introducidos por medio de la unidad de transformación de clave de G bits (320), y saca los primeros K 1 datos de clave de G bits como los datos de clave de salida, y porque la unidad generadora de clave, si los K datos de clave de entrada están representados por 2 G bits, genera datos de clave representados por G bits a partir de los K datos de clave de entrada, y genera primeros K1 datos de clave de G bits por medio de la transformación de los datos de clave generados por la primera unidad de transformación de clave de G bits (320) y genera segundos K2 datos de clave de G bits representados por G bits por medio de la transformación de los primeros K 1 datos de clave de G bits por la segunda unidad de transformación de clave de G bits (330), concatena los primeros K1 datos de clave de G bits y los segundos K2 datos de clave de G bits, y saca los datos de clave concatenados como los datos de clave de salida.
Description
Aparato de cifrado de bloques y procedimiento de
cifrado de bloques que incluye la programación de una clave de
longitud variable.
La presente invención se refiere a un aparato de
transformación de datos, a unos procedimientos de transformación de
datos, y a unos medios de almacenaje los cuales son registrados los
procedimientos de transformación de datos, para su encriptación,
desencriptado, y difusión de los datos con el fin de proteger una
información digital existente en las comunicaciones de
información.
La Fig. 25 representa una función de
encriptación que se utiliza en el DES descrito en "Gendai Ango
Riron (Teoría de Cifrado Moderno)" "(Modern Cipher
Theory)"] (Instituto de Ingenieros de Electrónica, Información y
Comunicación ["The Institute of Electronics, Information and
Communication Engineers"] publicado el 15 de Noviembre de 1997,
página 46).
Como se muestra en la Fig. 25, se utilizan ocho
cajas S. Estas ocho cajas S son tablas diferentes entre sí. Cada
tabla emite de salida unos datos de 4 bits a partir de unos datos de
entrada de 6 bits.
La Fig. 26 muestra una función de transformación
no lineal que se describe en "Especificación de E2 - un Cifrado
de Bloque de 128 bits" ["Specification of E2 - a
128-bit Block Cipher"] ("Nippon Telegraph and
Telephone Corporation" publicado el 14 de Junio de 1998, página
10), así como en Kanda M. et al.: "E2 - un nuevo cifrado
de bloques de 128 bits" ["E2 - a new 128-bit
block cipher"], Transacciones sobre Fundamentos de la Electrónica
["IEICE Transactions on Fundamentals of Electronics"],
Communications and Computer Sciences, Engineering Sciences Society,
Tokio, JP. Vol. E38-A, No. 1, Enero 2000,
(2000-01), páginas 48-59, XP
002367858 ISSN: 0916-8508.
Como se muestra en la Fig. 26, cada unidad de
función S se compone de ocho cajas S.
Los dispositivos de encriptación convencionales
utilizan múltiples cajas S. Dado que algunos cifrados están
equipados con tablas diferentes entre sí, el uso de la memoria se
incrementa en comparación con los equipados con una caja S. Dado
que, por otro lado, otros cifrados utilizan solo una caja S, la
seguridad del cifrado se reduce.
Como se muestra en la Fig. 7, cuando una unidad
de transformación normal de datos (FL) 250 es insertada en la
unidad de encriptación, se requiere suministrar una unidad de
transformación de datos inversa (FL^{-1}) 270 en una unidad de
desencriptado para descriptar los textos cifrados. Dado que, por
regla general, la unidad de transformación normal de datos (FL) 250
y la unidad de transformación de datos inversa (FL^{-1}) 270 son
circuitos diferentes entre sí, ello ocasiona un problema en el
sentido de que la unidad de encriptación y la unidad de
desencriptación no pueden proporcionar la misma configuración.
Por otro lado, en la generación de claves de
extensión, se requieren operaciones complejas con el fin de generar
claves de extensión que ofrezcan una mayor seguridad. Hay otro
problema en el caso de la generación de claves de extensión en el
sentido de que el número de bits de los datos de clave que deben ser
introducidos como valor inicial debe ser fijo. El documento
EP-A-0 982 895 (de Kabushiki Kaisha
Toshiba) describe un procesador de datos en el que un texto plano
se encripta a un texto cifrado por medio de la utilización de una
clave de encriptado y/o un texto encriptado se desencripta a un
texto plano por medio de la utilización de una clave de
desencriptado, y en el que el dispositivo está construido por una
pluralidad de funciones de conversión de clave secuencialmente
conectadas, que son un tipo involución, y que dirigen el procesado
de conversión de clave y las claves ampliadas de salida en base a
la clave para el encriptado o los resultados de desencriptado o
conversión de clave y de una sección de conversión de clave en la
que los resultados de conversión de clave son transferidos de
manera secuencial entre las funciones de conversión de clave en
orden o en orden inverso.
La presente invención tiene como objetivo
proporcionar unos sistemas en los cuales los circuitos de
encriptación y desencriptado sean los mismos, y en los cuales el
área de los circuitos, el tamaño de los programas y el uso de las
memorias que se utilizan para una conmutación de transformación no
lineal puedan reducirse, y así mismo, puedan generarse unas claves
de extensión utilizando una configuración más sencilla.
Este objetivo se resuelve mediante el aparato de
transformación de datos de acuerdo con la reivindicación 1, con el
procedimiento de transformación de datos de acuerdo con la
reivindicación 4, con el programa informático de acuerdo con la
reivindicación 5 y con el medio de portadora de acuerdo con la
reivindicación 6. Mejoras adicionales del aparato de transformación
de datos se ofrecen en las reivindicaciones dependientes.
Un aparato de transformación de datos de la
presente invención se caracteriza porque en el aparato de
transformación de datos que tiene una unidad de procesado de datos
para introducir datos de clave y para realizar al menos un
encriptado de datos o un desencriptado de datos, y una unidad
generadora de clave para generar datos de clave para ser usados por
la unidad de procesado de datos y suministrar los datos de clave a
la unidad de procesado de datos,
La unidad generadora de clave incluye:
una primera unidad de transformación de clave de
G bits para introducir datos de clave de G bits que tengan G bits,
transformar los datos de clave de G bits y sacar los primeros datos
de clave transformados de G bits que tienen G bits; y
una segunda unidad de transformación de G bits
para introducir la salida de los primeros datos de clave de
transformados de G bits desde la primera unidad de transformación de
clave de G bits, transformar los datos de clave de G bits y sacar
segundos datos de clave transformados de G bits.
la unidad generadora de clave, si la unidad
generadora de clave introduce K datos de clave de G bits, introduce
los K datos de clave de G bits a la primera unidad de transformación
de clave de G bits para transformar y sacar una salida de K_{1}
datos de clave de G bits de la primera unidad de transformación de
clave de G bits como datos de clave de G bits, y
la unidad generadora de clave, si la unidad
generadora de clave introduce K datos de clave de 2G bits, genera
datos de clave de G bits a partir de los K datos de clave de 2G
bits, introduce los datos de clave de G bits generados en la
primera unidad de transformación de clave de G bits para
transformarlos, y saca los primeros K_{1} datos de clave de G
bits, introduce los primeros K_{1} datos de clave de G bits
transformados a la segunda unidad de transformación de G bits, y
saca segundos K_{2} datos de clave de G bits, concatena la salida
de los primeros K_{1} datos de clave de G bits informados, con la
salida de la primera unidad de transformación de clave de G bits y
saca un resultado concatenado como datos de clave de bits 2 G
(K_{1}, K_{2})
La anterior primera unidad de transformación de
clave de G bits incluye:
una unidad de transformación no lineal que tiene
dos rondas para realizar la transformación no lineal sobre los
datos de clave de G bits; y
una unidad de operación lógica para realizar una
operación lógica de una salida de datos de clave de G bits
transformada de medio camino a partir de una segunda ronda de la
unidad de transformación no lineal y de la entrada de datos de
clave de G bits a la primera unidad de transformación de clave de G
bits.
La anterior unidad de generación de clave
incluye de manera adicional una unidad de transformación de longitud
de bit para convertir los datos de clave de Q bits en datos de
clave de 2G bits si los datos de clave G<Q<2G de Q bits son
introducidos.
Un procedimiento de transformación de datos de
la presente invención se caracteriza porque en un procedimiento de
transformación de datos para ejecutar un procedimiento de procesado
de datos para la introducción de datos de clave y la realización de
al menos un encriptado de datos y un desencriptado de datos, y un
proceso de generación de clave para generar datos de clave para ser
usados por el procedimiento de procesado de datos y suministrar los
datos de clave al procedimiento de procesado de datos,
el procedimiento de generación de
clave
incluye:
- \quad
- un primer proceso de transformación de clave de G bits para la introducción de datos de clave de G bits que tengan G bits, transformar los datos de clave de G bits y sacar los primeros datos de clave transformados de G bits; y
- \quad
- un segundo proceso de transformación de G bits para introducir la primera salida de datos de clave transformados de G bits desde el primer proceso de transformación de clave de G bits, transformando los datos de clave de G bits, y sacando segundos datos de clave transformados de G bits, y
- \quad
- el proceso de generación de clave, si la unidad generadora de clave introduce K datos de clave de G bits, introduce K datos de clave de G bits en la primera unidad de transformación de clave de G bits, transforma los K datos de clave de G bits, y saca K_{1} datos de clave de G bits de salida desde el proceso de transformación de clave de G bits como datos de clave de G bits transformados, y el proceso de generación de clave, si la unidad generadora de clave introduce K datos de clave de 2G bits, genera datos de clave de G bits a partir de los K datos de clave de 2G bits, introduce los datos de clave de G bits generados en la primera unidad de transformación de clave de G bits para trasformarlos y saca los primeros K_{1} datos de clave de G bits transformados, introduce los primeros K_{1} datos de clave de G bits transformados en el segundo proceso de transformación de G bits para transformarlos y saca segundos K_{2} datos de clave de G bits, concatena la salida de los primeros K_{1} datos de clave de G bits transformados de la unidad de transformación de clave de G bits y la salida de los segundos K_{2} datos de clave de G bits transformados de la segunda unidad de transformación de G bits y saca un resultado concatenado como la transformada de los datos de clave de 2G bits (K_{1}, K_{2}).
La presente invención se caracteriza por un
medio de almacenaje legible por computadora para almacenar un
programa para que una computadora lleve a cabo el procedimiento de
transformación de datos expuesto.
La presente invención se caracteriza por un
programa para que una computadora lleve a cabo el procedimiento de
transformación de datos expuesto.
La Fig. 1 muestra una unidad de transformación
de datos para una encriptación 100 y una unidad de transformación
de datos para una desencriptado 400.
La Fig. 2 muestra unas anotaciones.
La Fig. 3 muestra una configuración de una
unidad de encriptación 200 o de una unidad de desencriptado 500.
La Fig. 4 muestra otra configuración de la
unidad de encriptación 200 o de la unidad de desencriptado 500.
La Fig. 5 muestra una configuración de una
unidad de transformación normal de datos (FL) 251.
La Fig. 6 muestra una configuración de una
unidad de transformación inversa de datos (FL^{-1}) 271.
La Fig. 7 muestra una parte de una unidad de
encriptación convencional y una unidad de desencriptado
convencional.
La Fig. 8 muestra una parte de la unidad de
encriptación 200 y de la unidad de desencriptado 500.
La Fig. 9 muestra la unidad de transformación
normal de datos (FL) 251 y la unidad de transformación inversa de
datos (FL^{-1}) 271 que están situadas en simetría de puntos.
La Fig. 10 muestra la relación entre la unidad
de transformación normal de datos (FL) 251 y la unidad de
transformación inversa de datos (FL^{.1}) 271 que están situadas
en simetría de puntos.
La Fig. 11 muestra una unidad de función no
lineal F.
La Fig. 12 muestra una configuración de una
primera unidad 13 de transformación de una caja S y una segunda
unidad 14 de transformación de una caja S.
La Fig. 13 muestra una configuración de una
unidad de transformación 21 de una caja S.
La Fig. 14 muestra una configuración de una
unidad de transformación lineal 85.
La Fig. 15 muestra una configuración de una
unidad de transformación lineal 87.
La Fig. 16 muestra una configuración de una
unidad de generación de claves 300 o de una unidad de generación de
claves 600.
La Fig. 17 explica las operaciones de una unidad
de transformación 310 de la longitud de bits.
La Fig. 18 muestra una configuración de un
registro de desplazamiento A 341.
La Fig. 19 muestra una configuración de una
tabla de control de una unidad de control de desplazamiento 345.
La Fig. 20 muestra las operaciones del registro
de desplazamiento A 341 y de un registro de desplazamiento B
342.
La Fig. 21 muestra la correspondencia entre el
registro de desplazamiento A 341, el registro de desplazamiento B
342 y las claves de extensión.
La Fig. 22 muestra las operaciones de los
registros de desplazamiento A 341 a D 344.
La Fig. 23 muestra la correspondencia entre los
registros de desplazamiento A 341 a D 344 y las claves de
extensión.
La Fig. 24 muestra una computadora equipada con
la unidad de transformación de datos para la encriptación 100 y la
unidad de transformación de datos para la desencriptado 400.
La Fig. 25 muestra una configuración de la
función de encriptación por DES.
La Fig. 26 muestra una configuración de una
función no lineal del cifrado de bloques E2 de 128 bits.
La Fig. 27 muestra otro ejemplo de unidades de
transformación de cajas S.
La Fig. 28 muestra una unidad de función no
lineal F que está equipada con las primera a cuarta unidades de
transformación de cajas S.
La Fig. 29 muestra otra unidad de función no
lineal F en la cual está desplazada la unidad de función de claves
25.
La Fig. 30 muestra otra unidad de función no
lineal F en la cual está desplazado un emplazamiento de la unidad
de función de clave 25.
La Fig. 31 muestra otra configuración de la
unidad de función P 30.
La Fig. 32 muestra otra configuración de la
unidad de función P 30.
La Fig. 33 muestra las configuraciones y
operaciones de S1 a S4 de la Fig. 31.
La Fig. 34 muestra una prueba de la inexistencia
de claves equivalentes.
La Fig. 35 muestra una prueba de la no
existencia de claves equivalentes.
La Fig. 36 muestra otra configuración de la
unidad de encriptación 200 o de la unidad de desencriptado 500.
La Fig. 37 muestra otra configuración de la
unidad de encriptación 200 o de la unidad de desencriptado 500.
La Fig. 38 muestra otra configuración de la
unidad de encriptación 200 o de la unidad de desencriptado 500.
La Fig. 39 muestra otra configuración de la
unidad de encriptación 200 o de la unidad de desencriptado 500.
La Fig. 40 muestra otra configuración de la
unidad de encriptación 200 o de la unidad de desencriptado 500.
La Fig. 41 muestra otra configuración de la
unidad de encriptación 200 o de la unidad de desencriptado 500.
La Fig. 42 muestra una configuración en la cual
las unidades de la Fig. 39 y de la Fig. 40 están combinadas.
La Fig. 43 muestra una configuración de la
unidad de encriptación 200 o de la unidad de desencriptado 500, la
cual se muestra en la Fig. 3, que utiliza la unidad de función no
lineal F mostrada en la Fig. 28.
La Fig. 44 muestra una configuración modificada
de la Fig. 43 mediante la utilización de una unidad de función no
lineal F' en la cual la unidad de función de clave 25 de la unidad
de función no lineal F está suprimida.
La Fig. 45 muestra una configuración modificada
de la Fig. 44 mediante la fusión de las claves de extensión de
blanqueo con las claves de extensión.
La Fig. 46 muestra una configuración modificada
en la cual la unidad de función de clave 25 está suprimida de la
unidad de función no lineal F y en la cual una clave de extensión k
es suministrada a un circuito XOR 298, cuando la unidad de función
no lineal F está configurada como se muestra en la Fig. 29.
La Fig. 47 muestra una configuración modificada
en la cual la unidad de función de clave 25 está suprimida de la
unidad de función no lineal F y en la cual una clave de extensión
transformada de forma no lineal k' es suministrada al circuito XOR
298, cuando la unidad de función no lineal F está configurada como
se muestra en la Fig. 30.
Realización
1
La Fig. 1 muestra una unidad de transformación
de datos de encriptación 100 y una unidad de transformación de
datos de descriptado 400 en esta forma de realización.
La unidad de transformación de datos de
encriptación 100 es, por ejemplo, un dispositivo de encriptación que
emite de salida unos textos cifrados de 128 bits a partir de unos
textos no cifrados de entrada de 128 bits. La unidad de
transformación de datos de desencriptado 400 es un dispositivo de
desencriptado que emite de salida unos textos no cifrados de 128
bits a partir de unos textos cifrados de entrada de 128 bits. La
unidad de transformación de datos de encriptación 100 se compone de
una unidad de encriptación 200 y de una unidad de generación de
claves 300. La unidad de encriptación 200 es una unidad de
procesamiento de datos para la encriptación de textos no cifrados.
La unidad de generación de claves 300 genera múltiples claves de
extensión (n) de 64 bits o de 128 bits utilizando unas constantes
V_{i} a partir de unos datos con clave de entrada de 128 bits,
192 bits o 256 bits, y para suministrarlos a la unidad de
encriptación 200. La unidad de transformación de datos de
desencriptado 400 se compone de una unidad de desencriptado 500 y de
una unidad de generación de claves 600. La unidad de desencriptado
500 es una unidad de procesamiento de datos para descriptar textos
cifrados. La unidad de generación de claves 600 es la misma o
similar a la unidad de generación de claves expuesta 300. Así
mismo, dado que la unidad de encriptación 200 y la unidad de
desencriptado 500 pueden ejecutar el mismo procedimiento, pueden
compartir un circuito o un programa, aunque la unidad de
encriptación 200 y la unidad de desencriptado 500 se ilustran
separadamente en las figuras. De modo similar, las unidades de
generación de claves 300 y 600 no pueden compartir un circuito o un
programa. Esto es, un circuito o un programa puede ser compartido
por la unidad de transformación de datos de encriptación 100 y por
la unidad de transformación de datos de desencriptado 400.
La Fig. 2 muestra los significados de las
anotaciones utilizadas para las figuras o descripciones
siguientes.
En la Fig. 3 y en las figuras subsecuentes, una
mitad izquierda de datos se llama "datos de la izquierda L" y
una mitad derecha de datos se llama "datos de la derecha R".
Así mismo, los datos introducidos en las unidades de transformación
no lineal de datos 210, 220, 230 y 240 son llamados "datos de
entrada", los datos internos de las unidades de transformación
no lineal de datos 210, 220, 230, y 240 se llaman "datos
intermedios", y los datos emitidos de salida desde las unidades
de transformación no lineal de datos 210, 220, 230, y 240 se llaman
"datos de salida".
La Fig. 3 muestra un ejemplo de la unidad de
encriptación 200 o de la unidad de desencriptado 500.
La Fig. 3 muestra una configuración en la cual
están conectadas en cascada la unidad de transformación no lineal
de datos 210 de 6 rondas, la unidad de transformación no lineal de
datos 220 de 6 rondas, y la unidad de transformación no lineal de
datos 230 de 6 rondas. La unidad de transformación normal de datos
(FL) 251 y la unidad de transformación inversa de datos (FL^{-1})
271 están insertadas entre la unidad de transformación no lineal de
datos 210 de 6 rondas y la unidad de transformación no lineal de
datos 220 de 6 rondas. Así mismo, la unidad de transformación
normal de datos (FL) 253 y la unidad de transformación inversa de
datos (FL^{-1}) 273 están insertadas entre la unidad de
transformación no lineal de datos 220 de 6 rondas y la unidad de
transformación no lineal de datos 230 de 6 rondas. Dentro de la
unidad de transformación no lineal de datos 210 de 6 rondas, se
disponen 6 rondas de unidades de transformación no lineal de datos.
Por ejemplo, una unidad de transformación no lineal de datos 280
está compuesta por una unidad de función no lineal F y por un
circuito XOR (OR exclusivo) 290. De esta forma, en el caso de la
Fig. 3, en total se suministran 18 rondas de unidades de
transformación no lineal de datos.
La unidad de transformación no lineal de datos
210 está equipada con una primera unidad de transformación no
lineal de datos 280 y con una segunda unidad de transformación no
lineal de datos 281. Para dos elementos de datos de entrada
arbitrarios, los datos de entrada de la derecha R_{o} y los datos
de entrada de la izquierda L_{o}, el primero lleva a cabo la
primera transformación no lineal sobre los datos de entrada de la
izquierda L_{o} utilizando una primera extensión de clave k_{1},
emite de salida un resultado operado con la función XOR de los
datos de salida de la primera transformación no lineal y los datos
de entrada de la derecha R_{o} como primeros datos intermedios de
la izquierda L_{1} y emite de salida los datos de entrada de la
izquierda L_{o} como primeros datos intermedios de la derecha
R_{1}. El último lleva a cabo una segunda transformación no
lineal sobre los primeros datos intermedios de la izquierda R_{1}
utilizando una segunda clave de extensión k_{2}, emite de salida
un resultado operado con la función XOR de los datos de salida de
la segunda transformación no lineal y los primeros datos intermedios
de la derecha R_{1} como segundos datos intermedios de la
izquierda L_{2}, y emite de salida los primeros datos intermedios
de la izquierda L_{1} como segundos datos intermedios de la
derecha R_{2}. La unidad de transformación no lineal de datos
210, en la cual están conectados en cascada de la primera unidad de
transformación no lineal de datos 280 a la sexta unidad de
transformación no lineal de datos 285, emite de salida los datos
intermedios finales de la derecha R_{6} y los datos intermedios
de la izquierda L_{6} como datos de salida después de la
transformación.
La Fig. 4 muestra una configuración en la cual
una unidad de transformación normal de datos (FL) 255, una unidad
de transformación inversa de datos (FL^{-1}) 275, y una unidad de
transformación no lineal de datos 240 de 6 rondas se añaden a la
unidad de encriptación 200 como se muestra en la Fig. 3. En total,
la transformación de datos se lleva a cabo mediante 24 rondas de
unidades de transformación no lineal de datos.
La Fig. 5 muestra la unidad de transformación
normal de datos (FL) 251.
La Fig. 5 muestra que la unidad de
transformación normal de datos (FL) 251 divide los datos de entrada
en dos elementos de datos, los datos de entrada 51 de la izquierda
y los datos de entrada 52 de la derecha, lleva a cabo las
operaciones lógicas para ambos elementos de datos, y genera los
datos de salida a partir de los datos de entrada 60 de la izquierda
y de los datos de entrada 61 de la derecha. Los datos de entrada 51
de la izquierda son operados con la función AND con una clave de
extensión 53 en un circuito AND 54, y a continuación, los datos
operados con la función AND son desplazados rotacionalmente hacia la
izquierda (también llamado "desplazamiento circular") en 1 bit
en una unidad de desplazamiento rotacional a la izquierda 55 de un 1
bit. Los datos desplazados son operados con la función XOR con los
datos de entrada 52 de la derecha en un circuito XOR 56. La salida
procedente del circuito XOR 56 se convierte en los datos de salida
61 de la derecha, y son operados con la función OR con una clave de
extensión 57 en un circuito OR 58. A continuación, el resultado
operado con la función OR es operado con la función XOR con los
datos de entrada 51 de la izquierda en un circuito XOR 59 para
generar los datos de salida 60 de la izquierda.
La Fig. 6 muestra la unidad de transformación
inversa de datos (FL^{-1}) 271.
La Fig. 6 muestra que la unidad de
transformación inversa de datos (FL^{-1}) 271 divide los datos de
entrada en dos elementos de datos, los datos de entrada 71 de la
izquierda y los datos de entrada 72 de la derecha, lleva a cabo las
operaciones lógicas para ambos elementos de datos, y genera los
datos de salida procedentes de los datos de salida 80 de la
izquierda y los datos de salida 81 de la derecha.
Los datos de entrada 72 de la derecha son
operados con la función OR con una clave de extensión 73 en un
circuito OR 74, y a continuación, los datos operados con la función
OR son operados con la función XOR con los datos de entrada 71 de
la izquierda en un circuito XOR 75. A continuación, la salida
procedente del circuito XOR 75 se convierte en los datos de salida
80 de la izquierda y son operados con la función AND con una clave
de extensión 76 en un circuito AND 77. Después de ello, el resultado
operado con la función AND es desplazado rotacionalmente hacia la
izquierda en 1 bit en una unidad de desplazamiento rotacional 78 a
la izquierda de 1 bit, y los datos desplazados son operados con la
función XOR con los datos de entrada 72 de la derecha en un
circuito XOR 79. La salida procedente del circuito XOR 79 se
convierte en los datos de salida 81 de la derecha.
La unidad de transformación normal de datos (FL)
251 mostrada en la Fig. 5 y la unidad de transformación inversa de
datos (FL^{-1}) 271 mostrada en la Fig. 6 llevan a cabo
operaciones opuestas entre sí. De acuerdo con ello, utilizando la
misma extensión de clave, los datos de entrada X de la Fig. 5 pueden
obtenerse como datos de salida X de la Fig. 6 haciendo que los
datos de salida Y de la Fig. 5 sean los datos de entrada Y de la
Fig. 6.
La relación en la cual los datos de entrada en
una unidad que pueden obtenerse como datos de salida procedentes de
la otra unidad haciendo que los datos de salida procedentes de otra
unidad sean los datos de entrada en la otra unidad es denominada
una relación entre las transformaciones normal e inversa. La unidad
de transformación normal de datos (FL) 251 y la unidad de
transformación inversa de datos (FL^{-1}) 271 son circuitos que
realizan dicha relación entre las transformaciones normal e
inversa.
Tanto la unidad de desplazamiento rotacional 55
hacia la izquierda de 1 bit de la Fig. 5 como la unidad de
desplazamiento rotacional 78 hacia la izquierda de 1 bit de la Fig.
6 llevan a cabo el desplazamiento hacia la izquierda, pero, ambas
pueden ejecutar el desplazamiento a la derecha. Así mismo, la unidad
de transformación normal de datos (FL) 251 y la unidad de
transformación inversa de datos (FL^{-1}) 271 pueden ser
cualquiera de una u otra configuraciones, en tanto en cuanto
mantengan la relación entre las transformaciones normal e inversa.
Por ejemplo, el número de desplazamientos puede modificarse. Además,
pueden añadirse un circuito AND con una operación "not", un
circuito OR con una operación "not", y/o un circuito XOR con
una operación "not". Es decir, lo que sigue son las
definiciones mostradas del circuito AND con una operación
"not", el circuito OR con una operación "not", y el
circuito XOR con una operación "not", representados por
"andn", "orn", y "xorn", respectivamente.
- \quad
- x andn y : (not x) e y
- \quad
- x orn y : (not x) o y
- \quad
- x xorn y : (not x) e y
Algunos modernos CPUs están provistos de unos
comandos "and", "or", y "xor" incluyendo "not".
Estos comandos pueden ejecutarse con el mismo coste que los
comandos "and", "or", y "xor".
La Fig. 7 muestra una unidad de encriptación
convencional 201 y una unidad de desencriptado convencional 501.
La unidad de encriptación convencional 201 está
equipada con dos unidades normales de transformación de datos FL.
Así, la unidad de desencriptado debe estar equipada con dos unidades
de transformación inversas de datos FL^{-1} con el fin de llevar
a cabo las operaciones inversas. Por consiguiente, dado que la
unidad de encriptación por regla general tiene una configuración
diferente que la unidad de desencriptado, la unidad de encriptación
y la unidad de desencriptado no pueden compartir el mismo
circuito.
Por otro lado, como se muestra en la Fig. 8, en
la presente forma de realización, la unidad de transformación
normal de datos (FL) 251 y la unidad de transformación inversa de
datos (FL^{-1}) 271 están situadas lado con lado en la unidad de
encriptación 200, de forma que la unidad de desencriptado con la
misma configuración pueda llevar a cabo la desencriptado. Por
ejemplo, los datos de la derecha R son transformados por la unidad
de transformación normal de datos (FL) 251 para obtener los datos de
la izquierda L', y los datos de la izquierda L son transformados
por la unidad de transformación inversa de datos (FL^{-1}) 271
para obtener los datos de la derecha R'. En este caso, los datos de
la derecha R pueden obtenerse introduciendo los datos de la
izquierda L' en la unidad de transformación inversa de datos
(FL^{-1}) 271, y los datos de la izquierda L pueden obtenerse
introduciendo los datos de la derecha R' en la unidad normal de
transformación de datos (FL) 251.
Como se describió anteriormente, la unidad de
encriptación 200 y la unidad de desencriptado 500 pueden ser
implementadas mediante la misma configuración, y la unidad de
encriptación 200 y la unidad de desencriptado 500 pueden compartir
el circuito.
La Fig. 9 muestra una configuración en la cual
la unidad de transformación normal de datos (FL) 251 y la unidad de
transformación inversa de datos (FL^{-1}) 271 están situadas en
simetría de puntos sobre la unidad de transformación no lineal de
datos 280.
De esta forma, cuando la unidad de
transformación normal de datos (FL) 251 y la unidad de
transformación inversa de datos (FL^{-1}) 271 están situadas en
simetría de puntos sobre la unidad de transformación no lineal de
datos 280, la encriptación y la desencriptado pueden llevarse a
cabo utilizando la misma configuración.
La Fig. 10 muestra la correspondencia entre la
unidad de transformación de datos (FL) y la unidad de transformación
inversa de datos (FL^{-1}) situadas en simetría de puntos.
Como se muestra en la Fig. 10, en el caso de la
Fig. 3, la unidad de transformación normal de datos (FL) 251 y la
unidad de transformación inversa de datos (FL^{-1}) 271 están
situadas en simetría de puntos sobre la unidad de transformación no
lineal de datos 220 de 6 rondas.
En las Figs. 3, 4, 8, y 9, la unidad de
transformación de datos (FL) y la unidad de transformación inversa
de datos (FL^{-1}) pueden ser sustituidas entre sí. Además, en las
Figs. 3, 4, 8, y 9, los datos de la derecha R y los datos de la
izquierda L pueden ser sustituidos entre sí.
La Fig. 36 muestra una configuración en la cual
la unidad de encriptación 200 se compone de la unidad de
transformación no lineal de datos 210 de 6 rondas, la unidad de
transformación no lineal de datos 220 de 6 rondas, y la unidad de
transformación no lineal de datos 230 de 6 rondas.
La unidad de transformación no lineal de datos
210 de 6 rondas, la unidad de transformación no lineal de datos 220
de 6 rondas, y la unidad de transformación no lineal de datos 230 de
6 rondas son circuitos que pueden utilizarse para la encriptación y
la desencriptado.
Aquí, una unidad de transformación
normal/inversa de datos 211 está compuesta por la unidad de
transformación no lineal de datos 210 de 6 rondas, y la unidad de
transformación normal de datos (FL) 250, y la unidad de
transformación inversa de datos (FL^{-1}) 271. La unidad de
transformación normal/inversa de datos es un circuito que puede
utilizarse tanto para la encriptación como para la desencriptado. Es
decir, la unidad de transformación normal/inversa de datos es un
circuito normal/inverso de transformación en el cual los datos de
entrada en la unidad pueden obtenerse como datos de salida
procedentes de la otra unidad haciendo que los datos de salida
procedentes de la unidad sean los datos de entrada en la otra
unidad.
Una unidad de transformación normal/inversa de
datos 221 se compone también de la unidad de transformación no
lineal de datos 220 de 6 rondas, y la unidad de transformación
normal de datos (FL) 251, y la unidad de transformación inversa de
datos (FL^{-1}) 273.
Así mismo, una unidad de transformación
normal/inversa de datos 231 está compuesta por la unidad de
transformación no lineal de datos 230 de 6 rondas, de la unidad de
transformación normal de datos (FL) 253, y de la unidad de
transformación inversa de datos (FL^{-1}) 275.
La unidad de encriptación 200 está configurada
mediante la conexión en cascada de estas unidades normal/inversa de
transformación de datos 211, 221, y 231. Y esta unidad de
encriptación 200 puede también ser utilizada como unidad de
desencriptado 500.
Así mismo, si un conjunto de la unidad de
transformación no lineal de datos 210 de 6 rondas, de la unidad de
transformación no lineal de datos 220 de 6 rondas, de la unidad de
transformación normal de datos (FL) 251, y de la unidad de
transformación inversa de datos (FL^{-1}) 271 se supone que sea
una unidad de transformación no lineal de datos 1210, la unidad de
transformación no lineal de datos 1210 es un circuito que puede
utilizarse para la encriptación y la desencriptado. Aquí, una
unidad de transformación normal/inversa de datos 1211 se compone de
la unidad de transformación no lineal de datos 1210, de la unidad de
transformación normal de datos (FL) 250, y de la unidad de
transformación inversa de datos (FL^{-1}) 273.
Así mismo, si un conjunto de la unidad de
transformación no lineal de datos 220 de 6 rondas, de la unidad de
transformación no lineal de datos 230 de 6 rondas, de la unidad de
transformación normal de datos (FL) 253, y de la unidad de
transformación inversa de datos (FL^{-1}) 273 se supone que sea
una unidad de transformación no lineal de datos 1220, una unidad de
transformación normal/inversa de datos 1221 se compone de la unidad
de transformación no lineal de datos 1220, de la unidad de
transformación normal de datos (FL) 251, y de la unidad de
transformación inversa de datos (FL^{-1}) 275.
Las unidades de transformación normal/inversa de
datos 1211 y 1221 pueden utilizarse con destino a la unidad de
desencriptado.
Así mismo, si un conjunto de las unidades 210 a
230 de transformación no lineal de datos de 6 rondas se supone que
sean una unidad de transformación no lineal de datos 2210, la unidad
de transformación no lineal de datos 2210 es un circuito que puede
utilizarse tanto para la encriptación como para la
desencriptado.
Aquí, la unidad de transformación no lineal de
datos 2210, la unidad de transformación normal de datos (FL) 250, y
la unidad de transformación inversa de datos (FL^{-1}) 275
constituyen una unidad de transformación normal/inversa de datos
2211.
La unidad de transformación normal/inversa de
datos 2211 puede ser utilizada con destino a la unidad de
desencriptado.
De acuerdo con lo anteriormente descrito, la
unidad de encriptación 200 o la unidad de desencriptado 500 pueden
ser configuradas mediante la conexión en cascada de múltiples
unidades de transformación normales/inversas de datos.
Así mismo, en la unidad de encriptación 200 o en
la unidad de desencriptado 500, la unidad de transformación
normal/inversa de datos puede constituirse jerárquicamente alojando
la unidad de transformación normal/inversa de datos dentro de la
unidad de transformación normal/inversa de datos.
La Fig. 37 muestra un caso en el que la unidad
de encriptación 200 y la unidad de desencriptado tienen la misma
configuración que incluye la unidad de transformación no lineal de
datos 210 de 6 rondas.
En la Fig. 37, la unidad de transformación no
lineal de datos 210 de 6 rondas incluye unas rondas pares de
unidades de transformación no lineal de datos 280 como se muestra en
las Figs. 3 y 4. Los datos A son transformados en datos A' mediante
una primera unidad de entrada de transformación normal de datos 256,
los datos A' son introducidos en un primer puerto de entrada 261,
los datos A' introducidos desde el primer puerto de entrada 261 son
emitidos de salida desde un primer puerto de salida 263 como datos
A_{1}'. Así mismo, la entrada de los datos B desde un segundo
puerto de entrada 262 son emitidos de salida desde un segundo puerto
de salida 264 como datos B_{1}. Los datos B_{1} emitidos de
salida desde el segundo puerto de salida 264 son transformados en
datos B_{1}' por una segunda unidad de salida de transformación
inversa de datos 279.
Los datos A_{1}' emitidos de salida desde el
primer puerto de salida 263 de la unidad de encriptación 200 son
introducidos en el segundo puerto de entrada 262 de la unidad de
desencriptado 500 como datos A_{1}'. Los datos B_{1}' emitidos
de salida desde la segunda unidad de salida de transformación
inversa de datos 279 son introducidos en la primera unidad de
entrada de transformación normal de datos 256 como datos B_{1}',
y emitidos de salida como datos B_{1}.
La unidad de transformación no lineal de datos
210 introduce los datos B_{1} y emite de salida los datos B. Así
mismo, la unidad de transformación no lineal 210 introduce los datos
A_{1}' y emite de salida los datos A'. La segunda unidad de
salida de transformación inversa de datos 279 introduce los datos A'
y emite de salida los datos A.
En la Fig. 38, la unidad de transformación no
lineal de datos 219 de ronda impar incluye unas rondas impares de
unidades de transformación no lineal de datos 280. De acuerdo con
ello, la entrada de los datos A' procedente del primer puerto de
entrada 261 son emitidos de salida desde el segundo puerto de salida
264 como datos A_{1}'. A continuación los datos A_{1}' son
transformados por la segunda unidad de transferencia inversa de
datos de salida 279, y emitidos de salida como datos A_{1}''. Así
mismo, los datos B introducidos en el segundo puerto de entrada 262
son emitidos de salida desde el primer puerto de salida 263 como
datos B_{1}.
Los datos B_{1} emitidos de salida desde el
primer puerto de salida 262 de la unidad de encriptación 200 son
introducidos en el segundo puerto de entrada 262 de la unidad de
desencriptado 500 como datos B_{1}. Los datos A_{1}'' emitidos
de salida desde la segunda unidad de transformación inversa de datos
de salida 279 de la unidad de encriptación 200 son introducidos en
la unidad de desencriptado 500 como datos A_{1}'' e introducidos
en la primera unidad 256 de transformación normal de datos de
entrada.
En los casos de las Figs. 37 y 38, la unidad de
encriptación 200 y la unidad de desencriptado 500 tienen la misma
configuración, llevando a cabo la encriptación y la
desencriptado.
La Fig. 39 muestra un caso en el que la segunda
unidad de transformación normal de datos de entrada 257 está
dispuesta en el segundo puerto de entrada 262, y la primera unidad
de transformación inversa de datos de salida 278 está dispuesta en
el primer puerto de salida 263.
La Fig. 40 muestra un caso en el que la primera
unidad de transformación inversa de datos de entrada 276 está
dispuesta en el primer puerto de entrada 261, y la segunda unidad de
transformación normal de datos de salida 259 está dispuesta en el
segundo puerto de salida 264.
La Fig. 41 muestra un caso en el que las
unidades de transformación normal/inversa de datos 256/258 están
dispuestas en los puertos de entrada/salida 261, 263 de la izquierda
y las unidades de transformación inversa de datos 277, 279 están
dispuestas en los puertos de entrada/salida 262, 264 de la
derecha.
La Fig. 42 muestra un caso en el que las Figs.
39 y 40 están combinadas.
Puede implementarse otro supuesto mediante la
combinación de las Figs. 37 y 39, caso que no se muestra en la
figura. Así mismo, las Figs. 38 y 39 pueden combinarse. Así mismo,
la unidad de transformación no lineal de datos 210 de 6 rondas
(rondas par) puede sustituirse por la unidad de transformación no
lineal de datos 219 de rondas impar en las Figs. 37, 39 a 42, que
no se muestran en las figuras. En los casos de las Figs. 39 a 42,
la unidad de encriptación y la unidad de desencriptado pueden ser
implementadas mediante la misma configuración.
\vskip1.000000\baselineskip
Realización
2
La Fig. 11 muestra una configuración de una
unidad de función no lineal F de la unidad de transformación no
lineal de datos 280.
Una unidad de función no lineal F introduce unos
datos de entrada 10 de la función F, lleva a cabo la transformación
no lineal, y emite de salida unos datos de salida 40 de la función
F. Los datos de entrada 10 de la función F de 64 bits son
divididos en ocho elementos de datos, y procesados en la unidad de 8
bits. Cada uno de los datos de 8 bits es introducido en cada uno de
los ocho circuitos XOR 12 de una unidad 25 de función de clave,
operados con la función XOR con una clave de extensión 11, y se
lleva a cabo una transformación no lineal utilizando una
sustitución en una unidad de función S 20. A continuación, en una
unidad de función P 30, dos elementos de los datos de 8 bits son
operados con la función XOR mediante dieciséis circuitos XOR 815, y
son emitidos de salida los datos de salida 40 de la función F de 64
bits. En la unidad 20 de función S, se disponen cuatro primeras
unidades de transformación de cajas S 13 y cuatro segundas unidades
de transformación de cajas S 14.
La Fig. 12 muestra un ejemplo de implementación
de la primera unidad de transformación 13 de las cajas S y de la
segunda unidad de transformación de caja S 14.
Dentro de la primera unidad de transformación de
cajas S 13, se dispone una tabla de transformación T. La tabla de
transformación T almacena previamente los valores de 0 a 255 de
manera arbitraria (al azar) correspondientes a los valores de 0 a
255. La tabla de transformación T introduce los valores de 0 a 255 y
emite de salida el valor (valor de 0 a 255) correspondiente a cada
valor. Por ejemplo, cuando se introduce 1, la tabla de
transformación T emite de salida 7. La tabla de transformación T
lleva a cabo una transformación no lineal determinada con arreglo a
consideraciones de seguridad, por ejemplo, verificando si la función
es biyectiva o no, si la probabilidad diferencial es
suficientemente pequeña o no, etc.
La segunda unidad de transformación de caja S 14
incluye la primera unidad de transformación de caja S 13 y una
unidad de desplazamiento rotacional 22 a la izquierda de 1 bit (en
la figura, "\men{3}" de "\men{3}1" muestra el
desplazamiento rotacional a la izquierda y "1" muestra 1 bit).
La unidad de desplazamiento rotacional 22 a la izquierda de 1 bit
lleva a cabo el desplazamiento rotacional a la izquierda en 1 bit
hasta una salida procedente de la primera unidad de transformación
de caja S 13. Por ejemplo, cuando se introduce 1, la primera unidad
de transformación de caja S 13 emite de salida 7, y la unidad de
desplazamiento rotacional 22 de la izquierda de 1 bit emite de
salida 14.
Si la primera unidad de transformación de caja S
13 y la segunda unidad de transformación de caja S 14 están
configuradas como se muestra en la Fig. 12, se puede obtener un
efecto similar al caso en el que se proporcionan dos tipos de
tablas de transformación T, aunque no se requiere que existan dos
tipos de tablas de transformación T. Mediante la inclusión de una
sola tabla de transformación T, el uso de la memoria requerido para
el almacenaje de la tabla de transformación T puede reducirse, y
puede también reducirse la escala del circuito.
Así mismo, como se muestra en la Fig. 27,
mediante la provisión de una unidad de desplazamiento rotacional a
la derecha de 1 bit ("\may{3}1" de la tercera unidad de
transformación de caja S 15 de la Fig. 27) así como, o, en lugar de
la unidad de desplazamiento rotacional 22 a la izquierda de 1 bit,
puede obtenerse un efecto similar en un caso en el que se
proporcione también una tabla de transformación diferente T. De
otra forma, también es posible transformar los datos de entrada y
utilizando la tabla de transformación de datos T después del
desplazamiento de los datos de entrada y por la unidad de
desplazamiento rotacional a la izquierda de 1 bit
("\men{3}1" de la cuarta unidad de transformación de caja S
16 de la Fig. 27) dispuesta para los datos de entrada y. La Fig.
27 muestra los casos de s(y), s(y)\men{3}1,
s(y)\may{3}1, s(y\men{3}1), pero también
son aplicables los casos de s(y\may{3}1),
s(y\men{3}1)\men{3}1,
s(y\men{3}1)\may{3}1,
s(y\may{3}1)\men{3}1,
s(y\may{3}1)\may{3}1. Haciendo que la cantidad
desplazada sea 1 bit, resulta posible algunas veces funcionar más
rápido que en casos de desplazamiento de 3 bits o 5 bits en el caso
de que las CPUs, etc. tengan un comando de desplazamiento de 1 solo
bit. Así mismo, cuando este proceso de desplazamiento se lleve a
cabo mediante un software que lleve a cabo un desplazamiento de 1
solo bit, a veces es posible funcionar más rápido. Así mismo, el
desplazamiento no está limitado a llevarse a cabo en 1 bit, sino
que puede utilizarse un número arbitrario de bits, como por ejemplo
2 bits o 3 bits. Mediante el desplazamiento en un número arbitrario
de bits, a veces resulta posible obtener un efecto similar al de la
provisión de tipos diferentes de tablas.
La Fig. 28 muestra una unidad de función S 20
que utiliza las primera a cuarta unidades 13, 14, 15, 16 de
transformación mostradas en la Fig. 27 de cuatro cajas S.
Otra configuración de la unidad de función P 30
se muestra en la Fig. 31.
A partir de los datos de entrada de 8 bits
y_{1}, y_{2}, y_{2}, y_{4}, se obtienen unos datos Z_{1},
Z_{2}, Z_{3}, Z_{4}, de 32 bits mediante referencia a S1, S2,
S3, S4, respectivamente, y son operados con la función XOR en un
circuito 913. A partir de los datos de entrada de 8 bits y_{5},
y_{6}, y_{7}, y_{8}, se obtienen los datos Z_{5}, Z_{6},
Z_{7}, Z_{8}, de 32 bits mediante referencia a S2, S3, S4, S1,
respectivamente, y son operados con la función XOR en un circuito
916. Este resultado U_{2} operado con la función XOR y el primer
resultado U_{1} operado con la función XOR son operados con la
función XOR en un circuito 917 para emitir de salida z_{1}',
z_{2}', z_{3}', z_{4}'. A continuación, el resultado U_{1},
operado con la función XOR desde el circuito 913 es desplazado a la
izquierda en un byte (en la Fig. 31, "\men{3}1" representa
un desplazamiento rotacional de 1 byte, no un desplazamiento
rotacional de 1 bit) en un circuito 918. El resultado desplazado es
operado con la función XOR con la salida procedente del circuito 917
para emitir de salida z_{5}', z_{6}', z_{7}', z_{8}'.
Como se muestra en (a) a (d) de la Fig. 33, S1
se configura utilizando la primera unidad de transmisión de caja S
13, S2, se configura utilizando la segunda unidad de transformación
de caja S 14, S3 se configura utilizando la tercera unidad de
transformación de caja S 15, S4 se configura utilizando la cuarta
unidad de transformación de caja S 16. Los datos de salida 8 bits
procedentes de cada unidad de transformación son copiados cuatro
veces para obtener datos de 32 bits, y así mismo, los datos de 32
bits son enmascarados para emitir de salida solo tres elementos de
los datos (24 bits).
El desplazamiento rotacional de 1 byte del
circuito 918 es un desplazamiento cíclico por unidad de longitud de
bits (8 bits = 1 byte) el cual es procesado por la caja S.
La Fig. 32 muestra la unidad de función P cuya
configuración es equivalente a la Fig. 31, pero la implementación
es diferente.
A partir de los datos de entrada de 8 bits
y_{1}, y_{2}, y_{3}, y_{4}, se obtienen los datos de 32
bits z_{1}, z_{2}, z_{3}, z_{4}, mediante referencia a S5,
S6, S7, S8, y son operados con la función XOR en un circuito 933
para emitir de salida un resultado operativo A. A partir de los
datos de entrada de 8 bits y_{5}, y_{6}, y_{7}, y_{8}, se
obtienen los datos de 32 bits Z_{5}, Z_{6}, Z_{7}, Z_{8}
mediante referencia a S9, SA, SB, SC, y son operados con la función
XOR en un circuito 936 para emitir de salida un resultado operativo
B. El resultado operativo B es desplazado rotacionalmente a la
derecha en 1 byte (en la Fig. 32, de modo similar a la Fig. 31, el
desplazamiento se lleva a cabo por una unidad de longitud de bits
(8 bits = 1 byte) que es procesado por la caja S, no 1 bit) en un
circuito 937 y el resultado operativo B y el resultado operativo A
son operados con la función XOR en un circuito 938. Este resultado
operativo C es desplazado rotacionalmente hacia la parte superior
(izquierda) en un byte en un circuito 939, y el resultado operativo
C es también operado con la función XOR con el resultado operativo A
en un circuito 940. Este resultado operativo D es desplazado
rotacionalmente hacia arriba (izquierda) en 2 byte en un circuito
941, y el resultado operativo D es también operado con la función
XOR con la salida procedente del circuito 939 en un circuito 942.
Este resultado operativo E es desplazado rotacionalmente (a la
derecha) en 1 byte en un circuito 943, y el resultado operativo E
es también operado con la función XOR con la salida procedente del
circuito 941 en un circuito 944. La salida F procedente del
circuito 944 es emitido de salida como z_{1}', z_{2}',
z_{3}', z_{4}', y la salida procedente del circuito 943 es
emitida de salida como z_{5'}, z_{6'}, z_{7}', z_{8}'.
S5 y SC se configuran utilizando la primera
unidad de transformación de caja S 13 y un desplazamiento lógico,
S6 y S9 se configuran utilizando la segunda unidad de transformación
de caja S 14 y un desplazamiento lógico, S7 y SA se configuran
utilizando la tercera unidad de transformación de caja S 15 y un
desplazamiento lógico, S8 y SB se configuran utilizando la cuarta
unidad de transformación de caja S 16 y un desplazamiento lógico.
El desplazamiento lógico se utiliza para emitir de salida unos datos
de salida de 8 bits procedentes de cada unidad de transformación
hasta un emplazamiento predeterminado situado dentro de los datos de
salida de 32 bits. El desplazamiento lógico se fija para
desplazarse hacia la izquierda en 0 byte en S5 y SA, en 1 byte en
S6 y SB, en 2 bytes en S7 y SC, en 3 bytes en S8 y S9. Es decir,
suponiendo una salida de 8 bits a partir de la unidad de
transformación como z, puede representarse una salida de 32 bits,
como [0, 0, 0, z] (0 muestra que cada uno de los ocho bits es 0) en
S5 y SA, [0, 0, z, 0] en S6 y SB, [0, z, 0, 0] en S7 y SC, [z, 0, 0,
0] en S8 y S9.
La implementación es posible utilizando unas
tablas de sustitución cuya entrada sea de 8 bits y cuya salida sea
de 32 bits, lo cual se calcula para producir directamente una salida
predeterminada.
En los casos de las Figs. 31 y 32, puede
disponerse el aparato que lleve a cabo una transformación a una
velocidad más alta que la transformación empleada para el cifrado
E2 convencional mostrado en la Fig. 26, y sobre el cual resulte
posible también una implementación flexible.
En la Fig. 11, cuando las cajas S de la unidad
de función S 20 están configuradas respectivamente mediante tipos
diferentes de cajas S, se requieren ocho tablas de transformación T.
Por otro lado, cuando las cajas S están configuradas como se
muestra en la Fig. 12, el uso de la memoria requerida para el
almacenaje de las tablas de transformación T puede reducirse a al
menos la mitad.
Así mismo, ocho elementos de datos de 8 bits son
introducidos por división de tiempo en la primera unidad de
transformación de caja S 13 y en la segunda unidad de transformación
de caja S 14 mostrada en la Fig. 12, de forma que las respectivas
ocho cajas S convencionales pueden ser sustituidas por la primera
unidad de transformación de caja S 13 y por la segunda unidad de
transformación de caja S 14.
La Fig. 13 muestra otro ejemplo de la caja S de
la unidad de función S 20.
La configuración concreta se explica con detalle
en Matui, Sakurai, "circuito de división y circuito compartido
del Campo Galois de multiplicación y división" ["Galois Field
division circuit and shared circuit for multiplication and
division"] (Registro de Patente japonesa No. 2641285 [2 de mayo
de 1997]).
Los datos de 8 bits son introducidos en la
unidad de transformación de caja S 21 y los datos de 8 bits son
emitidos de salida. La unidad de transformación de caja S 21 se
configura mediante una unidad de transformación lineal 17 de N bits
(aquí, N = 8), una unidad de transformación de subcampo 18, y una
unidad de transformación lineal 19 de N bits. La unidad de
transformación lineal 17 de N bits lleva a cabo operaciones de datos
de 8 bits. La unidad de transformación de subcampo 18 lleva a cabo
operaciones de datos de solo 4 bits que son elementos del Campo
Galois, GF (2^{4}). La unidad de transformación lineal 19 de N
bits lleva a cabo una operación de datos de 8 bits. Una unidad de
transformación lineal 85 de la unidad de transformación lineal 17
de N bits es un circuito que lleva a cabo la transformación lineal
mostrada en la Fig. 14. Una unidad de transformación lineal 87 es
un circuito que lleva a cabo la transformación lineal mostrada en la
Fig. 15.
La unidad de transformación lineal 85 puede ser
sustituida por un circuito que lleve a cabo una transformación afín
(una transformación lineal puede considerarse como un tipo de
transformación afín). De modo similar, la unidad de transformación
lineal 87 puede ser sustituida por un circuito que lleve a cabo
otra transformación afín. La unidad de transformación afín 85
transforma los datos de 8 bits (X) en datos de 8 bits (X'). Los
datos de 8 bits obtenidos (X') se supone que son elementos del Campo
Galois (2^{8}). Los datos de 4 bits superiores y los datos de 4
bits inferiores (X_{1} y X_{0}) de los datos X' se supone que
son, respectivamente, elementos del Campo Galois de subcampo
(2^{4}) y son emitidos de salida hasta la unidad de transformación
de subcampo 18. Aquí, por ejemplo, suponiendo que un elemento
\beta del CG (2^{8}) sea un elemento que satisface el polinomio
irreductible X^{8} + X^{6} + X^{5} + X^{3} + 1 = 0, y
\alpha = \beta^{238}, una base del CG (2^{4}) de subcampo
puede ser representada como [1, \alpha, \alpha^{2},
\alpha^{3}]. Si los elementos del CG (2^{4}), X_{0},
X_{1}, son representados utilizando esto, la relación subsecuente
puede establecerse como X' = X_{O} + \beta X_{1}. (Para los
detalles, consúltese Matui, Sakurai, "circuito de división y
circuito compartido del Campo Galois de multiplicación y
división" ["Galois Field division circuit and shared circuit
for multiplication and division"] (Registro de Patente japonesa
No. 2641285 [2 de Mayo de 1997])). La unidad de transformación de
subcampo 18 se configura solo por las unidades operativas cada una
de las cuales lleva a cabo operaciones de datos de 4 bits.
Aquí, como ejemplo de "subcampo" de
extracción, el subcampo CG (2^{m}) donde n = 2m puede tomarse en
consideración para un CG (2^{n}) determinado. En este ejemplo, n
= 8, m = 4.
La unidad de transformación de subcampo 18 es un
circuito de elementos inversos que utiliza el subcampo construido
por el circuito mostrado en el documento "circuito de división y
circuito compartido del Campo Galois de multiplicación y
división" ["Galois Field division circuit and shared circuit
for multiplication and division"] (Registro de Patente japonesa
No. 2641285 [2 de Mayo de 1997]). Como resultado operativo de este
circuito de elementos inversos, los datos de 4 bits superiores y
los datos de 4 bits inferiores (Y_{1} e Y_{0}), cada uno de
los cuales puede considerarse como un elemento del CG (2^{4}), son
emitidos de salida hasta la unidad de transformación lineal 87 como
datos de 8 bits Y los cuales pueden considerarse como un elemento
del CG (2^{8}), donde Y = Y_{0} + \beta Y_{1}. Como se
expuso anteriormente, este circuito de elementos inversos es un
circuito de computación Y = Y_{0} + \beta Y_{1} = 1/(X_{o} +
\beta X_{1}). Así mismo, hay algunas formas de adoptar una
"base", como por ejemplo una "base polinómica" y una
"base normal", en la representación del elemento de "campo
finito" (cómo adoptar una base) en el circuito de elementos
inversos.
Una primera característica de la unidad de
transformación de caja S 21 mostrada en la Fig. 13 es computar los
datos con una anchura de bits (4 bits) que es la mitad de la anchura
de bits (8 bits) de la entrada de datos de la transformación no
lineal. Es decir, el circuito de elementos inversos se caracteriza
por llevar a cabo operaciones de datos de solo 4 bits.
Sin embargo, la velocidad de computación puede
reducirse llevando a cabo operaciones de solo 4 bits. Este
supuesto ofrece la ventaja de que la 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.
Así mismo, una segunda característica de la
unidad de transformación de caja S 21 consiste en que la unidad de
transformación lineal 17 de N bits y la unidad de transformación
lineal 19 de N bits, donde N = 8, se disponen a ambos lados de la
unidad de transformación de subcampo 18. Cuando la unidad de
transformación de caja S 21 es implementada utilizando la unidad de
transformación de subcampo 18, existe la ventaja de que puede
reducirse una escala del entero circuito y la configuración resulta
más sencilla en comparación con el supuesto que emplea una tabla de
transformación T que almacena valores aleatorios, mientras que por
el contrario, la seguridad puede reducirse. De acuerdo con ello,
las transformaciones lineales o las transformaciones afines se
llevan a cabo a ambos lados de la unidad de transformación de
subcampo 18, de forma que pueda recuperarse la reducción del nivel
de seguridad debido a la implementación que utiliza la unidad de
transformación de subcampo 18.
En la Fig. 13, las transformaciones lineales se
llevan a cabo a ambos lados de la unidad de transformación de
subcampo 18; sin embargo, la transformación lineal puede llevarse a
cabo solo en un lado. En otra variante, la transformación lineal
puede llevarse a cabo en un lado, y la transformación afín puede
llevarse a cabo en el otro lado.
La Fig. 29 muestra un supuesto en el que la
unidad de función de clave 25 se muestra en la Fig. 11, esto es, la
unidad de función de clave 25 situada antes de la unidad de función
S 20 y de la unidad de función P 30, ahora se sitúa después de la
unidad de función S 20 y de la unidad de función P 30.
La Fig. 30 muestra un supuesto en el que la
unidad de función de clave 25 está situada entre la unidad de
función S y la unidad de función 30.
Mediante el empleo de la configuración mostrada
en la Fig. 29 o la Fig. 30, se puede tener un efecto de que una
implementación proporciona una operación de velocidad más alta de lo
que lo hace la configuración mostrada en la Fig. 11. Así mismo,
mediante la modificación de la generación de las claves de
extensión, puede obtenerse la misma salida utilizando la
configuración mostrada en la Fig. 29 o en la Fig. 30 a partir de la
misma entrada que la de la configuración de la Fig. 11. En la
unidad de función F convencional mostrada en la Fig. 26, se ofrecen
dos funciones S, en cada una de las cuales se lleva a cabo en primer
término una operación con la clave de extensión y a continuación se
lleva a cabo una operación de función S. Por el contrario, en el
caso mostrado en la Fig. 29, una unidad de función de clave 25 está
situada en la etapa final de la función F. En el caso mostrado en
la Fig. 30, la unidad de función de clave 25 está situada entre la
unidad de función S 20 y la unidad de función P 30.
La Fig. 43 muestra un caso en el que la unidad
de transformación no lineal F mostrada en la Fig. 28 se emplea en
la unidad de encriptación 200 o en la unidad de desencriptado 500
mostradas en la Fig. 3.
Los datos de la izquierda son introducidos en la
unidad de transformación no lineal F como datos de entrada 10 de la
función F, y los datos de salida 40 de la función F son emitidos de
salida. Los datos de salida 40 de la función F son operados con la
función XOR con los datos de la derecha, y el resultado operado con
la función XOR se convierte en los datos de la izquierda de la
siguiente ronda. Cuando los datos de la izquierda son introducidos
en la unidad de transformación lineal F como datos de entrada 10 de
la función F, al mismo tiempo, los datos de la izquierda son
utilizados como datos de la derecha de la siguiente ronda. En la
configuración mostrada en la Fig. 43, las operaciones de la unidad
de la función de clave 25, de la unidad de función S 20, y de la
unidad de función P 30 se llevan a cabo en la unidad de
transformación no lineal F, de forma que la carga de las
operaciones resulta considerable dentro de la unidad de
transformación no lineal F. Un caso ejemplar en el que puede
conseguirse una velocidad de procesamiento más alta mediante la
distribución de la carga operativa de la unidad de transformación
no lineal F, se expondrá a continuación con referencia a las
figuras.
La Fig. 44 muestra un supuesto en el que se
utiliza la unidad de transformación no lineal F'. La unidad de
transformación no lineal F' es una unidad en la que la unidad de la
función de claves 25 es suprimida de la unidad de transformación no
lineal F mostrada en la Fig. 43. La clave de extensión k_{1} es
operada con la función XOR con los datos de la izquierda L_{0} en
un circuito XOR 891. Así mismo, la clave de extensión k_{2} es
operada con la función XOR con los datos de la derecha R_{0} en
un circuito XOR 297. Los datos de la izquierda son introducidos en
la unidad de transformación no lineal F' como datos de entrada 10 de
la función F, y transformados por la unidad de función F 20 y por
la unidad de función P 30. La salida procedente del circuito XOR
297 y los datos de salida 40 de la función F son operados con la
función XOR en un circuito XOR 290 para emitir de salida los datos
de la izquierda L_{1}.
Por otro lado, las unidades de generación de
claves 300, 600 llevan a cabo una operación XOR de las claves de
extensión k_{1} y k_{2} y emiten de salida la clave de extensión
modificada k_{1} + k_{3}. La salida R_{1} del circuito XOR
891 y la clave de extensión k_{1} + k_{3} son operadas con la
función XOR en un circuito XOR 298 para emitir de salida los datos
de la derecha. Las unidades de generación de claves 300, 600
modifican las claves de extensión para generar y emitir de salida
k_{1} + k_{3}, k_{2} + k_{4}, k_{3} + k_{5}, ...,
k_{16} + k_{18}. Las unidades de generación de claves 300, 600
suministran las claves de extensión modificadas a procesos
distintos del proceso de la función no lineal (F) para operar con
los datos. Como resultado de ello, los datos de la izquierda
L_{18} y los datos de la derecha R_{18} resultan ser los mismos
que los datos de la izquierda L_{18} y que los datos de la derecha
R_{18} en el caso de la Fig. 43.
Las claves de extensión modificadas son
suministradas a procesos distintos del proceso de la función no
lineal (F) y operados con los datos, y en consecuencia, las
operaciones con los datos con clave pueden ser llevadas a cabo
fuera de la unidad de función no lineal F', a saber, en los
circuitos XOR 297 y 298, mientras que las operaciones de la unidad
de función S 20 y de la unidad de función P 30 son llevadas a cabo
en la unidad de función no lineal F'. Por consiguiente, las
operaciones de la unidad de función de clave 25 son eliminadas de
la unidad de función no lineal F, y la carga de la unidad de función
no lineal F es distribuida, lo cual permite una implementación de
alta velocidad.
La Fig. 45 muestra un caso en el que las
operaciones de la clave de extensión de blanqueo kw_{1}, se llevan
a cabo también como operaciones de las otras claves de extensión en
la configuración mostrada en la Fig. 44. La Fig. 45 muestra un caso
en el que la unidad de generación de claves previamente lleva a cabo
una operación XOR de una parte de la clave de extensión de
blanqueo, kw_{1alta} y de la primera clave de extensión k_{1}
(es decir, la unidad de generación de claves modifica la clave de
extensión) y suministra el resultado de la operación al circuito
XOR 891.
La figura muestra también un caso en el que la
unidad de generación de claves lleva a cabo previamente una
operación XOR como parte de la clave de extensión de blanqueo
kw_{1baja} y de la segunda clave de extensión k_{2} (es decir,
la unidad de generación de claves modifica la clave de extensión) y
suministra el resultado de la operación al circuito XOR 297.
De esta forma, puede ser eliminada la operación
en el circuito XOR 293 mostrado en la Fig. 44. Así mismo, en un
caso mostrado en la Fig. 45, la unidad de generación de claves lleva
a cabo una operación XOR de una parte de la clave de extensión de
blanqueo kw_{2baja} y de la clave de extensión k_{17} (es decir,
la unidad de generación de claves modifica la clave de extensión) y
suministra el resultado de la operación al circuito XOR 299. Así
mismo también, la unidad de generación de claves lleva a cabo una
operación XOR de la otra parte de la clave de extensión de blanqueo
kw_{2alta} y de la clave de extensión k_{18} (es decir, la
unidad de generación de claves modifica la clave de extensión) y
suministra el resultado de la operación al circuito XOR 892.
De esta forma, se elimina la operación del
circuito XOR 296 mostrada en la Fig. 44.
La Fig. 46 muestra un caso en el que la unidad
de función de clave 25 es suprimida de la unidad de función no
lineal F, y en su lugar, la unidad de generación de claves
suministra la clave de extensión k al circuito XOR 298 cuando la
unidad de función no lineal F está configurada como se muestra en la
Fig. 29.
La Fig. 47 muestra un caso en el que la unidad
de función de claves 25 es suprimida de la unidad de función no
lineal F, y en su lugar, la unidad de generación de claves
suministra la clave de extensión transformada de manera no lineal
k' = P(k) al circuito XOR 298 cuando la unidad de función no
lineal F está configurada como se muestra en la Fig. 30. En el caso
de la Fig. 47, se lleva a cabo la misma operación efectuada por el
proceso de función P sobre los datos con clave para generar datos
con clave transformados de manera no lineal, y los datos con clave
transformados de manera no lineal son suministrados a procesos
distintos del proceso de función no lineal (F) para procesar los
datos que van a ser operados con los datos como datos con clave
destinados a los datos de procesamiento. En ambos casos, de las
Figs. 46 y 47, debido a que la unidad de función de clave 25 es
eliminada de la unidad de función no lineal F, la carga operativa de
la unidad de función no lineal F se reduce, y la operación del
circuito XOR 298 situado fuera de la unidad de función no lineal F
puede llevarse a cabo en paralelo con las operaciones llevadas a
cabo por la unida de función no lineal F, lo que posibilita un
procesamiento de alta velocidad.
\vskip1.000000\baselineskip
Realización
3
La Fig. 16 muestra una configuración de la
unidad de generación de claves 300 (o de la unidad de generación de
claves 600) mostrada en la Fig. 1.
La unidad de generación de claves 300 incluye
una unidad de transformación 310 de la longitud de los bits, una
primera unidad de transformación de claves 320 de G bits, una
segunda unidad de transformación de claves 330 de G bits, y una
unidad de desplazamiento de claves 340. A partir de los datos con
clave de entrada con 128 bits, 192 bits, o 256 bits, la unidad de
generación de claves 300 genera unos datos con clave k_{1} de 128
bits y unos datos con clave k_{2} de 128 bits, y emite de salida
varias claves de extensión de 64 bits. La unidad de transformación
310 de la longitud de los bits convierte la longitud de los bits de
los datos con clave que van a ser emitidos de salida de forma que
la longitud de bits de los datos con clave de salida fijados
incluso si son introducidos los datos con clave con diferente número
de bits. En otras palabras, la unidad de transformación 310 de
longitud de los bits genera unos datos con clave SK_{altos} de
128 bits superiores y unos datos con clave SK_{bajos} de 128 bits
inferiores y emite de salida los primeros hasta la unidad de
transformación de claves 320 de G bits y hasta la unidad de
desplazamiento de claves 340. Así mismo, los últimos son emitidos
de salida hasta la segunda unidad de transformación de claves 330 de
G bits y hasta la unidad de desplazamiento de claves 340. Así
mismo, los datos con clave de 128 bits que son un resultado operado
con la función XOR de los primeros y de los últimos son emitidos de
salida hasta la primera unidad de transformación de claves 320 de G
bits.
La Fig. 17 muestra las operaciones internas de
la unidad de transformación 310 de la longitud de los bits.
Cuando los datos con clave de 128 bits son
introducidos en la unidad de transformación 310 de la longitud de
los bits, los datos con clave introducidos son emitidos de salida
como datos con clave SK_{altos} de los 128 bits superiores sin
cambio alguno. Así mismo, los datos con clave SK_{bajos} de los
128 bits inferiores son puestos a 0 y emitidos de salida.
Cuando los datos con clave de 192 bits son
introducidos en la unidad de transformación 310 de la longitud de
los bits, los datos superiores 128 bits de los datos con clave de
entrada son emitidos de salida como datos con clave superiores de
128 bits SK_{altos} sin cambio alguno. Así mismo, los datos con
clave inferiores de 128 bits SK_{bajos} son generados mediante la
combinación de los 64 bits inferiores de los datos con clave de 192
bits introducidos y de los datos inversos de 64 bits, los cuales son
generados mediante la inversión de los datos inferiores de 64 bits
de los datos con clave de 192 bits introducidos, y emitidos de
salida.
Cuando los datos con clave de 256 bits son
introducidos, los datos superiores de 128 bits de los datos con
clave introducidos son emitidos de salida como SK_{altos}, y los
datos inferiores de 128 bits son emitidos de salida como
SK_{bajos}.
Unos datos XOR de los datos con clave de 128
bits SK_{altos} y SK_{bajos} son introducidos en la primera
unidad de transformación de claves 320 de G bits desde la unidad de
transformación 310 de la longitud de los bits, operados mediante
transformaciones no lineales de dos rondas, operados con la función
XOR con los datos con clave superiores de 128 bits SK_{altos},
adicionalmente operados por unas transformaciones lineales de dos
rondas, y unos datos con clave de 128 bits K_{1} son emitidos de
salida.
Cuando la longitud de los datos con clave
introducidos en la unidad de transformación 310 de la longitud de
los bits es de 128 bits, la unidad de desplazamiento de claves 340
genera la clave de extensión utilizando los datos con clave de 128
bits emitidos de salida desde la unidad de transformación de claves
320 de G bits y los datos con clave originalmente introducidos.
Cuando la longitud de los datos con clave introducidos en la unidad
de transformación 310 de la longitud de los bits es de 192 bits o de
256 bits, los datos con clave de 128 bits emitidos de salida desde
la primera unidad de transformación de claves 320 de G bits son
también introducidos en la segunda unidad de transformación 340 de
G bits, operados con la función XOR con los datos con clave
inferiores de 128 bits SK_{bajos}, operados por dos
transformaciones no lineales de dos rondas, y unos datos con clave
de 128 bits K_{2} son emitidos de salida. Dos elementos de los
datos con clave de 128 bits, procedentes de la unidad de
transformación de claves 320 de G bits y de la segunda unidad de
transformación de claves 330 de G bits, son emitidos de salida
hasta la unidad de desplazamiento de claves 340. La unidad de
desplazamiento de claves 340 genera la clave de extensión utilizando
los dos elementos de datos con clave de 128 bits y los datos con
clave originariamente introducidos.
La unidad de desplazamiento de claves 340
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 de control de
desplazamiento 345. La unidad de control de desplazamiento 345 emite
de salida una señal de selección 346 hasta cada uno de los
registros de desplazamiento para controlar las operaciones de los
registros de desplazamiento.
La Fig. 18 muestra una configuración del
registro de desplazamiento A 341.
El registro de desplazamiento A 341 incluye un
selector A 347 que incorpora un grupo de conmutadores para 128
bits y un registro A 348 de 128 bits. Una señal de selección 346
incluye una señal de conmutación para indicar la conexión con todos
los conmutadores del selector A 347 al mismo tiempo sobre el lado A
y sobre el lado B. La figura muestra un caso en el que el grupo de
conmutadores del selector A 347 ha seleccionado A en base a la
señal de selección 346, y en este caso, el registro A 348 lleva a
cabo un desplazamiento rotacional hacia la izquierda en 17 bits.
Así mismo, cuando el grupo de conmutadores está conectado a B, el
registro A lleva a cabo el desplazamiento rotacional a la izquierda
en 15 bits. El desplazamiento en 15 bits o el desplazamiento en 17
bits se lleva a cabo mediante un ciclo cronometrado.
El número de bits de desplazamiento (15, 17) es
uno entre muchos ejemplos, y puede aplicarse otro número de bits de
desplazamiento.
La Fig. 19 muestra una parte de una tabla de
control almacenada en la unidad de control de desplazamiento
345.
La tabla de control es una tabla que almacena el
número de bits que el registro desplaza en cada reloj. Por ejemplo,
en la tabla de control del registro A, en el primer reloj, se
especifica un desplazamiento de 15 bits. Y, en el segundo reloj, se
especifica un desplazamiento de 15 bits adicionales. De modo
similar, en cada uno de los tercero y cuarto relojes, se especifica
un desplazamiento de 15 bits. En cada uno de los quinto a octavo
relojes se especifica un desplazamiento de 17 bits.
La Fig. 20 muestra un resultado de control con
arreglo al cual la unidad de control de desplazamiento 345 controla
cada registro de desplazamiento utilizando la tabla mostrada en la
Fig. 19 en el caso de generar la clave de extensión a partir de los
datos con clave de 128 bits.
Los datos con clave superiores de 128 bits
SK_{altos} introducidos desde la unidad de transformación 310 de
la longitud de los bits son insertados en el registro de
desplazamiento A 341. Los datos con clave de 128 bits K_{1}
emitidos de salida desde la unidad de transformación de claves 320
de G bits son insertados en el registro de desplazamiento B 342. En
esta situación, el registro de desplazamiento A 341 y el registro
de desplazamiento B 342 operan en base a la tabla de control
mostrada en la Fig. 19. En la Fig. 20, los datos de una columna
inclinada muestran que deben ser ignorados y no deben ser emitidos
de salida. Los datos de las otras columnas son emitidos de salida
como claves de extensión como se muestra en la Fig. 21.
La Fig. 21 muestra una correspondencia entre el
valor de los registros y la clave de extensión.
La Fig. 20 muestra un caso en el que se llevan a
cabo cuatro desplazamientos de 15 bits en cada reloj, y a partir
del quinto reloj, los desplazamientos se llevan a cabo en 17 bits en
cada reloj. La decisión para emitir o no de salida los 64 bits
superiores y los 64 bits inferiores desde el registro de
desplazamiento A 341 y el registro de desplazamiento B 342 como
clave de extensión y su orden de emisión de salida se especifica en
la tabla de control, que no se muestra en la figura. Y de acuerdo
con la tabla de control, mediante la emisión de salida de la señal
de selección 346 que incluye una señal de instrucción de salida al
registro de desplazamiento, la clave de extensión es emitida de
salida desde cada registro de desplazamiento en 64 bits.
La Fig. 22 muestra un caso en el que la clave de
extensión es generada desde unos datos con clave de 192 bits o de
256 bits.
Es decir, los datos con clave superiores de 128
bits SK_{altos} introducidos desde la unidad de transformación
310 de la longitud de los bits son insertados en el registro de
desplazamiento A 341, los datos con clave inferiores de 128 bits
SK_{bajos} se insertan en el registro de desplazamiento B 342, los
datos con clave de 128 bits K_{1} emitidos de salida desde la
primera unidad de transformación de claves 320 de G bits se
insertan en el registro de desplazamiento C 343, y los datos con
clave de 128 bits K_{2} emitidos de salida desde la segunda
unidad de transformación de claves 330 de G bits se insertan en el
registro de desplazamiento D 344.
Los datos de una columna que tienen una
inclinación muestran las claves no utilizadas para las claves de
extensión.
La Fig. 23 muestra una correspondencia entre el
valor del registro y la clave de extensión.
Las claves no utilizadas para las claves de
extensión y la correspondencia entre el valor del registro y la
clave de extensión mostrada en la Fig. 23 son almacenadas en la
tabla de control situada en el controlador.
Como se muestra en la Fig. 19, la unidad de
control de desplazamiento 345 almacena el número de bits de
desplazamiento de los datos con clave fijados en el registro de
desplazamiento A 341. Es decir, las claves de extensión son
generadas de forma secuencial mediante el desplazamiento de los
datos con clave insertados en el registro de desplazamiento A 341
mediante Z_{0} = 0 bits, Z_{1} = 15 bits, Z_{2} = 45 bits,
Z_{3} = 60 bits, Z_{4} = 77 bits, Z_{5} = 94 bits, Z_{6} =
111 bits, Z_{7} = 128 bits como se muestra en la tabla de control
del registro de desplazamiento A.
La suma del número de bits de desplazamiento
resulta ser 15 + 15 + 15 +15 + 17 +17 + 17 +17 = 128, de forma que
el registro de 128 bits lleva a cabo el desplazamiento rotacional de
128 bits y el registro retorna a su estado
inicial.
inicial.
La razón por la cual la suma del número de bits
de desplazamiento alcanza 128 bits (el número de bits del registro)
para retornar al estado inicial es que el procesamiento siguiente
puede iniciarse de inmediato si el procesamiento siguiente es
asignado al registro del estado inicial. Así mismo, en el caso de
que se lleve a cabo una transformación inversa (desencriptado), el
proceso de generación de la clave de extensión se inicia desde el
estado inicial, y de acuerdo con ello, tanto la transformación
(encriptación) como la transformación inversa (desencriptado)
pueden llevarse a cabo mediante la fijación del estado inicial. Así
mismo, la razón por la cual la suma del número de bits de
desplazamiento no se fija en más de 128 bits (el número de bits del
registro) es para impedir la generación de valores idénticos a los
del estatus existente en el mismo registro de desplazamiento debido
a la ejecución del desplazamiento en más de un ciclo (mayor de 128
bits de desplazamiento). Esto es porque, por ejemplo, la
realización del desplazamiento rotacional en 2 bits que es menos de
128 bits (el número de bits del registro) y la realización del
desplazamiento rotacional de 130 bits, que es más de 128 bits (el
número de bits del registro), producen el valor idéntico. Es
deseable fijar dichos valores en la tabla de control del registro A
porque, al realizar los desplazamientos del registro en un ciclo,
el número de bits de desplazamiento varía de forma irregular a lo
largo del único ciclo. Sin embargo, con el fin de facilitar la
configuración del registro del desplazamiento, se desea un
desplazamiento en un número de bits fijo. Por consiguiente, un
registro está configurado para llevar a cabo dos tipos de
desplazamientos en 15 bits y en 17 bits (en un reloj), y la
operación de desplazamiento mediante números de bits diferentes
puede implementarse utilizando los dos tipos de desplazamientos, de
acuerdo con el siguiente procedimiento.
Establecida la relación para que Z_{1} -
Z_{0} = 15 (aquí, Z_{1} - Z_{0} = B_{1}), Z_{2} - Z_{1}
= 30 (es decir, Z_{2} - Z_{1} = 2B_{1}), por consiguiente,
Z_{2} - Z_{1} = 2(Z_{1 -} Z_{0}). Así mismo, como se
muestra en la tabla de control del registro de desplazamiento B,
establecida la relación para que Z_{5} - Z_{4} = 34 (aquí,
Z_{5} - Z_{4} = 2B_{2}), Z_{6} - Z_{5} = 17 (es decir,
Z_{6} - Z_{5} = B_{2}), por consiguiente, Z_{5} - Z_{4}
= 2(Z_{6} - Z_{5}). Es decir, la diferencia entre los
números de los bits de desplazamiento nos da 15 bits y 30 bits, o 17
bits y 34 bits, y el número de bits de desplazamiento (30 bits o 34
bits) se establece en un múltiplo integral (2 veces = I veces) del
número de bits (15 bits y 17 bits) para un desplazamiento de una
sola vez.
De esta forma, cuando las diferencias del número
de bits de desplazamiento se establecen o bien respecto del número
de bits de desplazamiento para una sola vez, o bien para el múltiplo
del número entero mayor de dos (I veces, I es un número entero
mayor de 2) y el número de bits de desplazamiento para una sola vez,
mediante la operación del registro de desplazamiento A 341 de una o
dos veces (I veces), es posible implementar fácilmente operaciones
de desplazamiento cuyo número de bits de desplazamiento esté
almacenado en la tabla de control. Operar dos veces (I veces)
significa que la operación de desplazamiento termina con dos relojes
(I relojes) del reloj operativo suministrado para operar el
registro de desplazamiento A 341.
Aquí, al desplazarse I veces (dos veces), tanto
los datos más altos como los datos más bajos de los datos
desplazados hasta I - 1 veces (2 - 1 = 1 vez) son ignorados y no se
utilizan para la clave de extensión. Por ejemplo, en el caso de
desplazamiento de Z_{1} = 15 a Z_{2} = 45, I = (Z_{2} -
Z_{1})/(el número de bits de desplazamiento de una sola vez) =
(45 - 15)/15 = 2, y tanto los datos más altos como los datos más
bajos de los datos desplazados después del desplazamiento I - 1
veces (2 - 1 = 1 vez) son ignorados y no se utilizan para la clave
de extensión. Esto puede apreciarse en la Fig. 20, en la cual las
columnas de la clave [8] y la clave [9] presentan inclinaciones,
que muestran que estas claves no se utilizan para las claves de
extensión. Y uno u otro o ambos datos más altos y datos más bajos de
los datos desplazados después del desplazamiento de I veces (2
veces) es o son utilizados como clave de extensión. Esto puede
apreciarse en la Fig. 20, la cual muestra que la clave [12] y la
clave [13] son emitidas de salida como claves de extensión.
Las razones por las cuales las operaciones de
desplazamiento en base a un múltiplo de un entero mayor de dos
empleado de acuerdo con lo anteriormente descrito, se deben a la
posibilidad de realizar el desplazamiento de no solo 15 bits o de
17 bits, sino también de 30 (= 15 x 2) bits, 34 (= 17 x 2) bits, (o
45 (= 15 x 3 ) bits o 51 ( = 17 x 3) bits, etc.), lo que modifica
el número de desplazamientos y mejora en mayor medida la seguridad.
Y, la razón por la que son suministrados casos en los que los datos
desplazados no se utilizan para la clave de extensión es también
para mejorar la seguridad.
Se desea generar los datos que no son utilizados
para la clave de extensión (en las Figs. 20 y 22, las claves de las
columnas con inclinaciones, las cuales no se utilizan para las
claves de extensión) cuando, por ejemplo, el procesamiento del
hardware o el procesamiento del programa no se lleva a cabo de forma
consecutiva. Como ejemplos concretos, en la Fig. 3 se desea generar
dichos datos cuando se llevan a cabo las operaciones de la unidad
de transformación normal de datos (FL) y de la unidad de
transformación inversa de datos (FL^{-1}), o antes o después de
dichas operaciones o en momentos de inactividad de procesos o
momentos de conmutación de procesos, como por ejemplo una llamada a
función por un programa, una llamada a subrutina, o un proceso de
tratamiento de interrupciones.
La característica de la tabla de control
mostrada en la Fig. 19 es que la tabla de control especifica el
número de bits de desplazamiento de B_{1} = 8 x 2 - 1 = 15
(B_{1} = 8 x J_{1} -_{ }1, donde J_{1} es un número entero
mayor de 1) y el número de bits de desplazamiento B_{2} = 8 x 2 +
1 = 17 (B_{2} = 8 x J_{2} + 1, donde J_{2} es un número
entero mayor de 0, J_{1} = J_{2} o J_{1} \neq J2).
Establecer la cantidad de desplazamiento hasta un \pm del
múltiplo integral de ocho es para llevar a cabo el desplazamiento
por bits impares, lo que mejora la seguridad en comparación con la
realización de desplazamiento sólo por números pares, dado que la
operación de la clave de extensión de 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 cantidad de desplazamiento
puede establecerse mediante la adición/sustracción de un bit a/del
múltiplo de ocho, por ejemplo, en alguna CPU que tenga un comando
de desplazamiento de 1 solo bit, la operación de desplazamiento del
tipo expuesto lleva a cabo un procesamiento de alta velocidad en
comparación con el desplazamiento en 3 bits o 5 bits. Y así mismo,
en el caso de que esta operación de desplazamiento que utiliza el
hardware que puede desplazar solamente 1 bit, hay casos en el que
es posible llevar a cabo un procesamiento de alta velocidad.
En la descripción anterior de la unidad 310 de
longitud de bits, tres tipos de anchuras de bits de datos con clave
son introducidos. Incluso cuando los datos con 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 de transformación
310 de longitud de los bits puede extender los datos con clave al
mismo tamaño de los datos con clave cuando son introducidos los
datos con clave de 256 bits, utilizando algún tipo de algoritmo. Es
decir, cuando son introducidos los datos con clave con una longitud
de Q, la cual oscila entre G bits y 2G bits, la unidad de
transformación 310 de longitud de bits puede convertir los datos
con clave de Q bits en datos con clave de 2G bits.
A continuación, se expondrá la prueba de la no
existencia de una clave equivalente con referencia a la Fig.
34.
En la explicación que sigue de la Fig. 34,
"+" indica una operación XOR. Aquí, se supone que se introducen
dos datos con clave de 128 bits SK1 y SK2 (SK1 \neq SK2) y que
la unidad de transformación 310 de la longitud de los bits emite de
salida SK1_{altos} = SK1 = (SKH1 | SKL1) a partir de SK1 y
SK2_{altos} = SK2 = (SKH2 | SKL2) a partir de SK2. Aquí, SKHi
(i = 1,2) significa los datos superiores de 64 bits de SKi y SKLi (i
= 1,2) significa los datos inferiores de 64 bits de SKi.
Suponiendo que los datos XOR de SKH1 y SKH2 son
\DeltaA y que los datos XOR de SKL1 y SKL2 son \DeltaB, puede
decirse "al menos \DeltaA \neq 0 o \DeltaB \neq 0",
dado que SK1 \neq SK2.
Como se muestra en la Fig. 34, estos \DeltaA y
\DeltaB se convierten en \DeltaA + \DeltaD, \DeltaB +
\DeltaC, respectivamente, mediante la recepción de las dos rondas
de transformaciones no lineales. Esto significa que los datos XOR
(\DeltaA | \DeltaB) de SK1_{altos} SK2_{altos} se
convierten en datos XOR (\DeltaA + \DeltaD | \DeltaB +
\DeltaC) después de llevar a cabo las dos rondas de
transformaciones no lineales en SK1_{altos} y los datos
transformados después de llevar a cabo las dos rondas de
transformaciones no lineales en SK2_{altos}. De acuerdo con ello,
cuando estos elementos de datos después de llevar a cabo las dos
rondas de transformaciones no lineales son operados con la función
XOR con SK1_{altos} y SK2_{altos}, respectivamente, en un
circuito XOR 999, los resultados operados con la función XOR de dos
elementos de datos se convierten en (\DeltaD | \DeltaC). Si
la transformación no lineal es una función biyectiva, la
introducción de \DeltaX \neq 0 determina siempre la emisión de
salida de \DeltaY \neq 0, de forma que, cuando "al menos
\DeltaA \neq 0 o \DeltaB \neq 0", puede decirse que "al
menos \DeltaC \neq 0 o que \DeltaD \neq 0". Por
consiguiente, dado que es imposible emitir de salida los mismos
datos a partir de SK1_{altos} y SK2_{altos} mediante las dos
rondas de transformaciones no lineales, se demuestra la no
existencia de la clave equivalente.
Por otro lado, como se muestra en la Fig. 35, se
tomará en consideración otro caso, en el cual se llevan a cabo tres
rondas de transformaciones no lineales en lugar de dos rondas de
transformaciones no lineales. Dado que puede decirse que "al
menos \DeltaA \neq 0 o \DeltaB \neq 0", puede haber un
caso en el que o bien \DeltaA o \DeltaB puedan ser 0. Si
\DeltaA = 0, \DeltaC = 0, y de la misma manera expuesta
anteriormente, los datos XOR (0 | \DeltaB) de SK1_{altos} y
SK2_{altos} se convierten en los datos XOR (\DeltaB + \DeltaE
| \DeltaD) después de llevar a cabo las tres rondas de
transformaciones no lineales en SK1_{altos} y los datos
transformados después de llevar a cabo las tres rondas de
transformaciones no lineales en SK2_{altos}. De acuerdo con ello,
cuando estos elementos de datos después de recibir las tres rondas
de transformaciones no lineales son operados con la función XOR con
SK1_{altos} y SK2_{altos}, respectivamente, en el circuito XOR
999, los resultados operados con la función XOR de dos elementos de
datos se convierten en (\DeltaB + \DeltaE | \DeltaB +
\DeltaD). Aquí, cuando se supone que \DeltaB = \DeltaD =
\DeltaE \neq 0, lo siguiente es cierto: (\DeltaB + \DeltaE
| \DeltaB + \DeltaD) = (0 | 0). Esto es, cuando estos
elementos de datos después de llevar a cabo las tres rondas de
transformaciones no lineales son operados con la función XOR con
SK1_{altos} y SK2_{altos}, respectivamente, los resultados de la
operación son los mismos. Es decir SK1_{altos} y SK2_{altos}
emiten de salida los mismos datos, de forma que existen las claves
equivalentes, lo que es preocupante con respecto a la seguridad.
No solo el caso expuesto de transformación
lineal de tres rondas, sino que una transformación no lineal general
puede emitir de salida el equivalente K_{1} a partir de SK1 y SK2
diferentes, lo que significa que puede existir una clave
equivalente. Sin embargo, es posible demostrar la no existencia de
la clave equivalente cuando se emplea la transformación lineal de
dos rondas de acuerdo con la presente forma de realización.
Así mismo, puede haber otro caso en el que la no
existencia de la clave equivalente se demuestre distinto del de la
transformación no lineal de dos rondas de acuerdo con la presente
forma de realización, sin embargo, es preferente utilizar la
transformación no lineal de dos rondas debido a su configuración
sencilla además de la demostrada no existencia de la clave
equivalente.
La Fig. 24 muestra una computadora para la
instalación de la unidad de transformación de datos para la
encriptación 100 o la unidad de transformación de datos para la
desencriptado 400.
La unidad de transformación de datos para la
encriptación 100 y/o la unidad de transformación de datos para la
desencriptado 400 están conectadas al bus como tarjeta de circuito
impreso. Esta tarjeta de circuito impreso está provista de una CPU,
una memoria, y un elemento de circuito lógico, y encripta los textos
no cifrados suministrados a partir de la CPU convirtiéndolos en
textos cifrados utilizando la operación anteriormente referida, y
devuelve los datos a la CPU. O descripta los textos cifrados
suministrados a partir de la CPU y devuelve los textos no cifrados
a la CPU.
De esta forma, la unidad de transformación de
datos para la encriptación 100 o la unidad de transformación de
datos para la desencriptado 400 pueden ser implementadas por
hardware. Así mismo, la unidad de transformación de datos para la
encriptación 100 o la unidad de transformación de datos para la
desencriptado 400 pueden ser también implementadas mediante
software como procedimiento de transformación de datos. Es decir, la
operación expuesta puede llevarse a cabo utilizando el programa
almacenado en una unidad de disco magnético o en una unidad de
disco flexible. Como una alternativa, la operación expuesta puede
ser implementada mediante la combinación de hardware y software,
aunque esto no se muestra en la figura. Así mismo, no se requiere
implementar toda la operación referida utilizando una computadora,
sino que es posible implementar la operación referida mediante un
sistema distribuido, como por ejemplo un servidor y un cliente, o
una computadora central y una computadora terminal, aunque esto no
se muestra en la figura.
En las Figs. ilustradas 1 a 47, una flecha
muestra una dirección del flujo operativo, y las figuras que tienen
la flecha son diagramas de bloque de la unidad de transformación de
datos y diagramas de flujo. "... unidad" mostrado en el
diagrama de bloques expuestos puede ser sustituido por "...
etapa" o "... proceso", de forma que los diagramas pueden
ser considerados como diagramas de flujo operativos o diagramas de
flujo de programa que muestran el procedimiento de transformación
de datos.
En las formas de realización anteriores, 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 textos no cifrados y textos cifrados
con otro número de bits.
Así mismo, en las formas de realización
anteriores, se ha expuesto un caso en el que se han utilizado unos
datos con clave de 128 bits, 192 bits, 256 bits y unas claves de
extensión de 64 bits, pero los datos con clave pueden tener otro
número de bits.
Si la longitud de bits de los textos no cifrados
y de los textos cifrados, los datos con clave y la clave de
extensión se modifican, por supuesto, la longitud de bits que va a
ser procesada por cada unidad, cada etapa, o cada proceso, se
modifica de acuerdo con la longitud de los bits.
De acuerdo con la presente invención, incluso si
los datos de clave tienen un número diferente de bits, la unidad de
transformación de longitud 310 cambia a los datos de clave con una
longitud fija, lo que hace posible operar una generación de clave
flexible.
Claims (6)
-
\global\parskip0.980000\baselineskip
1. Un aparato de transformación de datos que tiene una unidad de generación de clave (300, 600) para generar datos de clave de salida en base a K datos de clave de entrada, y una unidad de procesado de datos para realizar al menos uno de entre el encriptado de datos y el desencriptado de datos en base a los datos de clave de salida, caracterizado porque la unidad generadora de clave comprende:- \quad
- una primera unidad de transformación de G bits (320) para transformar los K datos de clave de entrada introducidos en la misma en los primeros datos de clave de G bits representados por G bits, y una segunda unidad de transformación de clave de G bits (330) para transformar los primeros datos de clave de G bits introducidos en la misma dentro de los segundos datos de clave de G bits representados por G bits, y
- \quad
- porque la unidad de generación de clave, si los K datos de clave de entrada están representados por G bits, genera primeros K_{1} datos de clave por medio de la transformación de los K datos de clave introducidos por medio de la unidad de transformación de clave de G bits (320), y saca los primeros K_{1} datos de clave de G bits como los datos de clave de salida, y
- \quad
- porque la unidad generadora de clave, si los K datos de clave de entrada están representados por 2 G bits, genera datos de clave representados por G bits a partir de los K datos de clave de entrada, y genera primeros K_{1} datos de clave de G bits por medio de la transformación de los datos de clave generados por la primera unidad de transformación de clave de G bits (320) y genera segundos K_{2} datos de clave de G bits representados por G bits por medio de la transformación de los primeros K_{1} datos de clave de G bits por la segunda unidad de transformación de clave de G bits (330), concatena los primeros K_{1} datos de clave de G bits y los segundos K_{2} datos de clave de G bits, y saca los datos de clave concatenados como los datos de clave de salida.
- 2. El aparato de transformación de datos de la reivindicación 1, en el que la primera unidad de transformación de clave de G bits incluye:
- \quad
- Una unidad de transformación no lineal que tiene dos rondas para realizar la transformación no lineal de los K datos de clave de entrada; y
- \quad
- Una unidad de operación lógica para realizar una operación lógica sobre datos de clave transformados a medio camino representados por G bits sacados de una segunda ronda de la unidad de transformación no lineal y los K datos de clave de entrada introducidos en la primera unidad de transformación de clave de G bits.
- 3. El aparato de transformación de datos de la reivindicación 1, en el que la unidad generadora de clave incluye de manera adicional una unidad de transformación de longitud binaria para convertir los datos de clave de Q bits en datos de clave representados por 2G bits si se introducen los datos de clave de Q bits (G<Q<2G).
- 4. Un procedimiento de transformación de datos para ejecutar un proceso de generación de clave para generar datos de clave de salida en base a K datos de clave de entrada, y una unidad de procesado de datos para realizar al menos uno de entre el encriptado de datos y el desencriptado de datos en base a los datos de clave de salida,caracterizado porque el proceso de generación de clave comprende:
- \quad
- un primer proceso de transformación de G bits para transformar los K datos de clave de entrada introducidos en la misma en los primeros datos de clave de G bits representados por G bits, y un segundo proceso de transformación de clave de G bits para transformar los primeros datos de clave de G bits introducidos en la misma dentro de los segundos datos de clave de G bits representados por G bits, y
- \quad
- porque el proceso de generación de clave, si los K datos de clave de entrada están representados por G bits, genera primeros K_{1} datos de clave por medio de la transformación de los K datos de clave introducidos por medio del proceso de transformación de clave de G bits, y saca los primeros K_{1} datos de clave de G bits como los datos de clave de salida, y
- \quad
- porque el proceso de generación de clave, si los K datos de clave de entrada están representados por 2G bits, genera datos de clave representados por G bits a partir de los K datos de clave de entrada, y genera primeros K_{1} datos de clave de G bits por medio del proceso de los datos de clave generados por medio de la transformación de los datos de clave de G bits por el primer proceso de transformación de clave de G bits, y genera segundos K_{2} datos de clave de G bits representados por G bits por medio de la transformación de los primeros K_{1} datos de clave de G bits por el segundo proceso de de transformación de clave de G bits, concatena los primeros K_{1} datos de clave de G bits y los segundos K_{2} datos de clave de G bits, y saca los datos de clave concatenados como los datos de clave de salida.
- 5. Un programa de ordenador que comprende un medio de código de ordenador adaptado para realizar los pasos del procedimiento de la reivindicación 4 cuando el mencionado programa de ordenador se está ejecutando en un ordenador.
- 6. Un medio portador legible por un ordenador que soporta el programa de ordenador de la reivindicación 5.
\global\parskip1.000000\baselineskip
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000-64614 | 2000-03-09 | ||
JP2000064614 | 2000-03-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2327263T3 true ES2327263T3 (es) | 2009-10-27 |
Family
ID=18584290
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES06010073T Expired - Lifetime ES2319560T3 (es) | 2000-03-09 | 2001-03-08 | Aparato de cifrado en bloques. |
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. |
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. |
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 |
ES01912172T Expired - Lifetime ES2382454T3 (es) | 2000-03-09 | 2001-03-08 | Aparato de cifrado en bloques que utiliza una transformación auxiliar |
ES06010075T Expired - Lifetime ES2407463T3 (es) | 2000-03-09 | 2001-03-08 | Aparato de cifrado en bloques que utiliza una transformación auxiliar |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES06010073T Expired - Lifetime ES2319560T3 (es) | 2000-03-09 | 2001-03-08 | Aparato de cifrado en bloques. |
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. |
Family Applications After (3)
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 |
ES01912172T Expired - Lifetime ES2382454T3 (es) | 2000-03-09 | 2001-03-08 | Aparato de cifrado en bloques que utiliza una transformación auxiliar |
ES06010075T Expired - Lifetime ES2407463T3 (es) | 2000-03-09 | 2001-03-08 | Aparato de cifrado en bloques que utiliza una transformación auxiliar |
Country Status (16)
Country | Link |
---|---|
US (5) | US7864950B2 (es) |
EP (7) | EP1193665B8 (es) |
JP (3) | JP4127472B2 (es) |
KR (8) | KR100465070B1 (es) |
CN (5) | CN1734526B (es) |
AT (3) | ATE419692T1 (es) |
AU (5) | AU767323B2 (es) |
CA (5) | CA2449672C (es) |
DE (3) | DE60137269D1 (es) |
DK (7) | DK1686722T3 (es) |
ES (7) | ES2319560T3 (es) |
MX (1) | MXPA01011323A (es) |
NO (1) | NO333209B1 (es) |
SG (4) | SG124292A1 (es) |
TW (1) | TWI275049B (es) |
WO (1) | WO2001067425A1 (es) |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1734526B (zh) * | 2000-03-09 | 2013-09-18 | 三菱电机株式会社 | 数据变换装置和数据变换方法 |
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 |
WO2006030639A1 (ja) * | 2004-09-14 | 2006-03-23 | Matsushita Electric Industrial Co., Ltd. | バレルシフト装置 |
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 | ソニー株式会社 | 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム |
JP5050454B2 (ja) * | 2006-09-01 | 2012-10-17 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
JP2008058830A (ja) * | 2006-09-01 | 2008-03-13 | Sony Corp | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム |
CN100436555C (zh) * | 2006-09-06 | 2008-11-26 | 深圳市永仁包装印刷材料有限公司 | 一种水溶性金银墨及其制备方法 |
JP5055993B2 (ja) * | 2006-12-11 | 2012-10-24 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
US8036377B1 (en) | 2006-12-12 | 2011-10-11 | Marvell International Ltd. | Method and apparatus of high speed encryption and decryption |
JP4857230B2 (ja) * | 2007-03-30 | 2012-01-18 | 株式会社日立製作所 | 疑似乱数生成装置及びそれを用いた暗号化処理装置 |
US7890565B2 (en) * | 2007-04-30 | 2011-02-15 | Lsi Corporation | Efficient hardware implementation of tweakable block cipher |
CN100495961C (zh) | 2007-11-19 | 2009-06-03 | 西安西电捷通无线网络通信有限公司 | 一种基于分组密码算法的加密处理方法 |
CN100581101C (zh) | 2007-11-19 | 2010-01-13 | 西安西电捷通无线网络通信有限公司 | 一种基于分组密码算法的加密处理设备 |
JP5272417B2 (ja) * | 2008-01-21 | 2013-08-28 | ソニー株式会社 | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム |
US20090186966A1 (en) * | 2008-01-22 | 2009-07-23 | Sabic Innovative Plastics Ip B.V. | Thermoplastic polyestercarbonate composition |
JP5200949B2 (ja) * | 2009-01-16 | 2013-06-05 | 富士通株式会社 | 暗号処理装置 |
US8654970B2 (en) * | 2009-03-31 | 2014-02-18 | Oracle America, Inc. | Apparatus and method for implementing instruction support for the data encryption standard (DES) algorithm |
US20100246815A1 (en) * | 2009-03-31 | 2010-09-30 | Olson Christopher H | Apparatus and method for implementing instruction support for the kasumi cipher algorithm |
US8832464B2 (en) * | 2009-03-31 | 2014-09-09 | Oracle America, Inc. | Processor and method for implementing instruction support for hash algorithms |
US20100250965A1 (en) * | 2009-03-31 | 2010-09-30 | Olson Christopher H | Apparatus and method for implementing instruction support for the advanced encryption standard (aes) algorithm |
US9317286B2 (en) * | 2009-03-31 | 2016-04-19 | Oracle America, Inc. | Apparatus and method for implementing instruction support for the camellia cipher algorithm |
WO2011036745A1 (ja) * | 2009-09-24 | 2011-03-31 | 株式会社東芝 | 鍵スケジュール装置および方法 |
JP2011130340A (ja) * | 2009-12-21 | 2011-06-30 | Kddi Corp | ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム |
KR101334040B1 (ko) * | 2010-01-20 | 2013-11-28 | 한국전자통신연구원 | 대칭키 암호화 시스템의 마스킹 연산 방법 및 장치 |
JP5539024B2 (ja) * | 2010-05-27 | 2014-07-02 | キヤノン株式会社 | データ暗号化装置およびその制御方法 |
US8611540B2 (en) * | 2010-06-23 | 2013-12-17 | Damaka, Inc. | System and method for secure messaging in a hybrid peer-to-peer network |
US20120079462A1 (en) * | 2010-09-24 | 2012-03-29 | SoftKrypt LLC | Systems and methods of source software code obfuscation |
FR2966953B1 (fr) | 2010-11-02 | 2015-08-28 | St Microelectronics Rousset | Procede de contremesure cryptographique par derivation d'une donnee secrete |
US8958550B2 (en) * | 2011-09-13 | 2015-02-17 | Combined Conditional Access Development & Support. LLC (CCAD) | Encryption operation with real data rounds, dummy data rounds, and delay periods |
JP5481455B2 (ja) * | 2011-09-27 | 2014-04-23 | 株式会社東芝 | 暗号処理装置 |
JP5338945B2 (ja) * | 2012-05-22 | 2013-11-13 | ソニー株式会社 | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム |
JP5772934B2 (ja) * | 2013-12-02 | 2015-09-02 | ソニー株式会社 | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム |
CN105215593A (zh) * | 2014-07-01 | 2016-01-06 | 长治市澳瑞特欣鑫健身器材有限公司 | 一种篮圈焊接模具 |
CN104917610B (zh) * | 2015-06-15 | 2018-03-06 | 上海交通大学 | 基于量子真随机数的通信中继服务器安全系统及方法 |
KR20170002836A (ko) | 2015-06-30 | 2017-01-09 | 주식회사 피엔아이티 | Nfc를 이용한 미아방지용 캐릭터 목걸이. |
CN108370311A (zh) | 2015-12-15 | 2018-08-03 | 皇家飞利浦有限公司 | 计算设备和方法 |
US10157289B2 (en) * | 2016-09-26 | 2018-12-18 | Bank Of America Corporation | Progressive key rotation for format preserving encryption (FPE) |
CN112805770B (zh) * | 2018-10-10 | 2023-10-03 | 日本电信电话株式会社 | 秘密右移位运算系统及方法、秘密除法运算系统及方法、秘密计算装置以及记录介质 |
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 | 太陽誘電株式会社 | チップ型電子部品の製造方法 |
KR100250803B1 (ko) * | 1995-09-05 | 2000-04-01 | 다니구찌 이찌로오 | 데이타 변환장치 및 데이타 변환방법 |
JPH0990870A (ja) * | 1995-09-27 | 1997-04-04 | Nec Corp | 基本変換方法、暗号化方法、基本変換回路および暗号装置 |
JPH09269727A (ja) | 1996-03-29 | 1997-10-14 | Toshiba Corp | 暗号化方法および暗号化装置 |
US6058476A (en) * | 1996-05-22 | 2000-05-02 | Matsushita Electric Industrial Co., Inc. | Encryption apparatus for ensuring security in communication between devices |
US6028939A (en) | 1997-01-03 | 2000-02-22 | Redcreek Communications, Inc. | Data security system and method |
JP3515306B2 (ja) * | 1997-01-29 | 2004-04-05 | 日本電信電話株式会社 | 逆元演算装置 |
US6459792B2 (en) * | 1997-04-23 | 2002-10-01 | Matsushita Electric Industrial Co., Ltd. | Block cipher using key data merged with an intermediate block generated from a previous block |
JP3351305B2 (ja) * | 1997-08-07 | 2002-11-25 | 日本電気株式会社 | 暗号装置及び暗号装置を実現するプログラムを記録したコンピューターが読みとり可能な記録媒体 |
US6510228B2 (en) | 1997-09-22 | 2003-01-21 | Qualcomm, Incorporated | Method and apparatus for generating encryption stream ciphers |
KR100296958B1 (ko) * | 1998-05-06 | 2001-09-22 | 이석우 | 블록 데이터 암호화 장치 |
US6269163B1 (en) | 1998-06-15 | 2001-07-31 | Rsa Security Inc. | Enhanced block ciphers with data-dependent rotations |
JP3600454B2 (ja) * | 1998-08-20 | 2004-12-15 | 株式会社東芝 | 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体 |
JP2000066586A (ja) * | 1998-08-24 | 2000-03-03 | Toshiba Corp | データ処理装置及び通信システム並びに記録媒体 |
TW556111B (en) | 1999-08-31 | 2003-10-01 | Toshiba Corp | Extended key generator, encryption/decryption unit, extended key generation method, and storage medium |
CN1734526B (zh) * | 2000-03-09 | 2013-09-18 | 三菱电机株式会社 | 数据变换装置和数据变换方法 |
-
2001
- 2001-03-08 CN CN2005100912925A patent/CN1734526B/zh not_active Expired - Lifetime
- 2001-03-08 DE DE60137269T patent/DE60137269D1/de not_active Expired - Lifetime
- 2001-03-08 DE DE60139280T patent/DE60139280D1/de not_active Expired - Lifetime
- 2001-03-08 KR KR10-2004-7008595A patent/KR100465070B1/ko active IP Right Grant
- 2001-03-08 DK DK06010078.1T patent/DK1686722T3/en active
- 2001-03-08 CN CN2005100959349A patent/CN1734527B/zh not_active Expired - Lifetime
- 2001-03-08 KR KR10-2001-7014247A patent/KR100449594B1/ko active IP Right Grant
- 2001-03-08 CA CA002449672A patent/CA2449672C/en not_active Expired - Lifetime
- 2001-03-08 KR KR10-2004-7008602A patent/KR100465072B1/ko active IP Right Grant
- 2001-03-08 AT AT06010073T patent/ATE419692T1/de not_active IP Right Cessation
- 2001-03-08 KR KR10-2004-7008598A patent/KR100468338B1/ko active IP Right Grant
- 2001-03-08 AU AU41058/01A patent/AU767323B2/en not_active Expired
- 2001-03-08 ES ES06010073T patent/ES2319560T3/es not_active Expired - Lifetime
- 2001-03-08 KR KR10-2004-7008596A patent/KR100465071B1/ko active IP Right Grant
- 2001-03-08 US US09/959,853 patent/US7864950B2/en active Active
- 2001-03-08 KR KR10-2004-7008605A patent/KR100465073B1/ko active IP Right Grant
- 2001-03-08 KR KR10-2004-7008607A patent/KR100465075B1/ko active IP Right Grant
- 2001-03-08 EP EP01912172A patent/EP1193665B8/en not_active Expired - Lifetime
- 2001-03-08 WO PCT/JP2001/001796 patent/WO2001067425A1/ja active IP Right Grant
- 2001-03-08 DK DK06010075.7T patent/DK1686721T3/da active
- 2001-03-08 TW TW090105464A patent/TWI275049B/zh not_active IP Right Cessation
- 2001-03-08 ES ES06010076T patent/ES2405942T3/es not_active Expired - Lifetime
- 2001-03-08 CN CNB2005100939383A patent/CN100557663C/zh not_active Expired - Lifetime
- 2001-03-08 CA CA002449662A patent/CA2449662C/en not_active Expired - Lifetime
- 2001-03-08 DK DK01912172.2T patent/DK1193665T3/da active
- 2001-03-08 CA CA002373432A patent/CA2373432C/en not_active Expired - Lifetime
- 2001-03-08 SG SG200407161A patent/SG124292A1/en unknown
- 2001-03-08 MX MXPA01011323A patent/MXPA01011323A/es active IP Right Grant
- 2001-03-08 DK DK06010074T patent/DK1686720T3/da active
- 2001-03-08 ES ES06010077T patent/ES2329819T3/es not_active Expired - Lifetime
- 2001-03-08 DK DK06010077T patent/DK1689114T3/da active
- 2001-03-08 ES ES06010074T patent/ES2327263T3/es not_active Expired - Lifetime
- 2001-03-08 ES ES06010078.1T patent/ES2616544T3/es not_active Expired - Lifetime
- 2001-03-08 AT AT06010074T patent/ATE431983T1/de not_active IP Right Cessation
- 2001-03-08 SG SG200407209A patent/SG124293A1/en unknown
- 2001-03-08 DE DE60138773T patent/DE60138773D1/de not_active Expired - Lifetime
- 2001-03-08 CN CNB018004709A patent/CN100392688C/zh not_active Expired - Lifetime
- 2001-03-08 CA CA002449669A patent/CA2449669C/en not_active Expired - Lifetime
- 2001-03-08 CA CA002449665A patent/CA2449665C/en not_active Expired - Lifetime
- 2001-03-08 KR KR10-2004-7008606A patent/KR100465074B1/ko active IP Right Grant
- 2001-03-08 AT AT01912172T patent/ATE545991T1/de active
- 2001-03-08 EP EP06010078.1A patent/EP1686722B1/en not_active Expired - Lifetime
- 2001-03-08 EP EP06010077A patent/EP1689114B1/en not_active Expired - Lifetime
- 2001-03-08 ES ES01912172T patent/ES2382454T3/es not_active Expired - Lifetime
- 2001-03-08 EP EP06010075A patent/EP1686721B1/en not_active Expired - Lifetime
- 2001-03-08 ES ES06010075T patent/ES2407463T3/es not_active Expired - Lifetime
- 2001-03-08 EP EP06010073A patent/EP1686719B1/en not_active Expired - Lifetime
- 2001-03-08 DK DK06010073T patent/DK1686719T3/da active
- 2001-03-08 EP EP06010074A patent/EP1686720B1/en not_active Expired - Lifetime
- 2001-03-08 CN CN200510096622A patent/CN100583192C/zh not_active Expired - Lifetime
- 2001-03-08 SG SG200407157A patent/SG124291A1/en unknown
- 2001-03-08 JP JP2001565161A patent/JP4127472B2/ja not_active Expired - Lifetime
- 2001-03-08 EP EP06010076A patent/EP1689113B1/en not_active Expired - Lifetime
- 2001-03-08 DK DK06010076.5T patent/DK1689113T3/da active
- 2001-03-08 SG SG200407213A patent/SG124294A1/en unknown
- 2001-11-08 NO NO20015461A patent/NO333209B1/no not_active IP Right Cessation
-
2003
- 2003-07-08 AU AU2003213312A patent/AU2003213312C1/en not_active Expired
- 2003-07-08 AU AU2003213318A patent/AU2003213318B2/en not_active Expired
- 2003-07-08 AU AU2003213315A patent/AU2003213315B2/en not_active Expired
- 2003-07-08 AU AU2003213317A patent/AU2003213317B2/en not_active Expired
-
2005
- 2005-10-28 US US11/260,129 patent/US7822196B2/en not_active Expired - Lifetime
- 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
-
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 |
---|---|---|
ES2327263T3 (es) | Aparato de cifrado de bloques y procedimiento de cifrado de bloques que incluye la programacion de una clave de longitud variable. | |
WO2001089098A2 (en) | A method and system for performing permutations with bit permutation instructions | |
KR20020087332A (ko) | 대칭키 암호 알고리즘의 모듈화된 ecb, cbc, cfb, ofb모드 구현 회로 |