ES2565816T3 - Aparato de conversión de datos y método de conversión de datos - Google Patents

Aparato de conversión de datos y método de conversión de datos Download PDF

Info

Publication number
ES2565816T3
ES2565816T3 ES03755263.5T ES03755263T ES2565816T3 ES 2565816 T3 ES2565816 T3 ES 2565816T3 ES 03755263 T ES03755263 T ES 03755263T ES 2565816 T3 ES2565816 T3 ES 2565816T3
Authority
ES
Spain
Prior art keywords
key
data
selector
received
transfer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES03755263.5T
Other languages
English (en)
Inventor
Tomomic KASUYA
Mitsuruc MATSUI
Tetsuyac ICHIKAWA
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of ES2565816T3 publication Critical patent/ES2565816T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Document Processing Apparatus (AREA)
  • Holo Graphy (AREA)

Abstract

Un aparato de conversión de datos para recibir una clave y datos y para realizar conversión de datos para uno de cifrado y descifrado de los datos recibidos usando la clave recibida, el aparato de conversión de datos que comprende: un aleatorizador de datos (30) adaptado para realizar conversión de datos; y un controlador (5) adaptado para controlar una señal de transferencia que indica uno de la clave y los datos a ser transferidos, en donde el controlador (5) está adaptado para sacar la señal de transferencia en un caso de transferencia de uno de la clave y los datos y en donde el aleatorizador de datos (30) incluye, un subconvertidor (330) adaptado para realizar la conversión de datos para uno de cifrado de datos y descifrado de datos convirtiendo los datos recibidos usando la clave recibida y para transferir al menos uno de la clave recibida y los datos recibidos sin conversión de datos tras la recepción de la señal de transferencia sacada por el controlador (5), en donde el subconvertidor (330) incluye al menos uno de, una unidad de convertidor de datos (50) adaptada para realizar conversión de datos lineal y una unidad de inversor de datos (70) adaptada para realizar una conversión de datos que es inversa a la de la unidad de convertidor de datos (50), caracterizado por que al menos una de la unidad de convertidor de datos (50) y la unidad de inversor de datos (70) se adapta para realizar la conversión de datos y para recibir la señal de transferencia sacada desde el controlador (5) y para transferir al menos uno de los datos y la clave sin conversión de datos según la señal de transferencia recibida, cuando el controlador saca la señal de transferencia, en donde a) el controlador (5) se adapta para sacar una señal de transferencia de claves y una señal de máscara como las señales de transferencia para transferir la clave recibida y al menos una de la unidad de convertidor de datos (50) y la unidad de inversor de datos (70) se adapta para transferir la clave, tras la recepción de la señal de transferencia de claves y la señal de máscara sacada desde el controlador (5), anulando los datos recibidos según la señal de transferencia de claves recibida y permitiendo a la clave recibida pasar a través según la señal de máscara recibida o b) el controlador (5) se adapta para sacar una señal de TRANSFERENCIA DE DATOS que es una señal de transferencia de datos como la señal de transferencia para transferir los datos recibidos y al menos una de la unidad de convertidor de datos (50) y la unidad de inversor de datos (70) se adapta para transferir los datos, tras la recepción de la señal de TRANSFERENCIA DE DATOS sacada desde el controlador (5), anulando la clave recibida y permitiendo a los datos recibidos pasar a través según la señal de TRANSFERENCIA DE DATOS recibida.

Description

5
10
15
20
25
30
35
40
45
DESCRIPCION
Aparato de conversion de datos y metodo de conversion de datos Campo tecnico
La presente invencion se refiere a un aparato de conversion de datos para cifrado de datos y/o descifrado de datos y un metodo de los mismos.
Antecedentes de la tecnica
Se dara ahora una descripcion de la tecnica relacionada.
La Fig. 56 es un diagrama que ilustra la configuracion y operacion de un aparato de conversion de datos relacionado.
Como se muestra en la Fig. 56, el aparato de conversion de datos para cifrado de bloques consta de un generador de claves 20 y un aleatorizador de datos 30.
El generador de claves 20 es una unidad de generacion de claves que genera una clave para cifrado/descifrado de datos.
El aleatorizador de datos 30 es una unidad que cifra y descifra datos de entrada.
El generador de claves 20 consta de un generador de claves intermedias 40 y un programador de claves 210. El generador de claves intermedias 40 es una unidad que recibe una clave secreta y genera una clave intermedia (Clave KL) y una clave de salida (Clave KA) basada en la clave secreta recibida. El programador de claves 210 que recibe las claves intermedias (Clave KL) y las claves de salida (Clave KA) generadas en el generador de claves intermedias 40 (Clave KLL, Clave KLH, Clave KAL y Clave KAH) y programa una clave a ser alimentada al aleatorizador de datos 30 entre las claves introducidas. De esta manera, en el generador de claves 20, las claves se generan y programan en el generador de claves intermedias 40 y el programador de claves 210, respectivamente.
El aleatorizador de datos 30, tras la recepcion de P (texto plano), realiza una conversion de datos de los datos para cifrado y entonces saca los datos convertidos como C (texto cifrado). Tras la recepcion de P (texto cifrado), por otra parte, el aleatorizador de datos 30 realiza una conversion de datos de los datos para descifrado de datos y entonces saca los datos convertidos como C (texto descifrado). El aleatorizador de datos 30 realiza de esta manera el proceso de cifrado de datos y el proceso de descifrado de datos.
En el aleatorizador de datos 30, se conectan en serie un convertidor principal 320 y un subconvertidor 330.
El convertidor principal 320 es una unidad que realiza conversion no lineal. Mas particularmente, el convertidor 320 se dota con una funcion F que realiza conversion de datos no lineal durante una vuelta o multiples vueltas o una parte de la funcion F y realiza una conversion no lineal de datos usando la funcion F o la parte de la funcion F. La Fig. 57 muestra el convertidor principal 320 que se dota con la funcion F durante una o mas vueltas.
El subconvertidor 330 se dota con al menos una de una unidad de convertidor de datos (FL) que realiza una conversion lineal de datos y una unidad de inversor de datos (FL-1) que realiza una conversion que es inversa a la conversion realizada por la unidad de convertidor de datos y hace una conversion lineal de datos de entrada usando una clave de entrada por medio de la unidad de convertidor de datos (FL) o la unidad de inversor de datos (FL-1).
El selector 310 es un selector que selecciona una senal de entre las senales de entrada del convertidor principal 320, el subconvertidor 330, P (texto plano o texto cifrado) y una clave. El selector 310 mostrado en la Fig. 56 se dota con un selector que selecciona una senal de entre cuatro senales de entrada, que es equivalente a tres selectores 21, cada uno de los cuales saca una senal de salida de entre dos senales de entrada.
El registro aritmetico 350 es una memoria que mantiene datos que se sacan como el convertidor principal 320, el subconvertidor 330 y C (texto cifrado o texto descifrado) durante un periodo de tiempo predeterminado.
De esta manera, el aleatorizador de datos 30 cifra/descifra los datos de entrada de P (texto plano o texto cifrado) a traves de repeticiones de conversion no lineal mediante el convertidor principal 320 y la conversion lineal mediante el subconvertidor 330 varias veces alternativamente y entonces saca C (texto cifrado o texto descifrado).
Se dara ahora una descripcion de la configuracion interna del convertidor principal 320.
La Fig. 57 muestra la configuracion interna del convertidor principal 320. El convertidor principal 320 de la Fig. 57 se compone de seis unidades de funcion F. Suponiendo aqrn que cada una de las unidades de funcion F se configura con un circuito que se disena para un proceso de funcion F de una vuelta, el convertidor principal 320 de la Fig. 57 entonces es para realizar la conversion de datos no lineal basada en la funcion F durante seis vueltas.
5
10
15
20
25
30
35
40
45
50
55
Con respecto al circuito para el proceso de funcion F de seis vueltas, el convertidor principal 320 se puede dotar con seis circuitos de proceso de funcion F o de otro modo un unico circuito de proceso de funcion F con repeticiones de seis veces el proceso de funcion F para terminar logrando el procesamiento de datos basado en la funcion F seis veces.
En el convertidor principal 320, los datos superiores divididos de datos de entrada se introducen a una unidad de funcion F 321a en primer lugar. Una clave 1 que se programo por el programador de claves 210 tambien se introduce a la misma. En la unidad de funcion F 321a, los datos de entrada superiores se convierte no linealmente mediante el uso de la clave que se menciono antes. En un circuito EXOR 322a, los datos convertidos no linealmente se someten a una operacion XOR con los datos de entrada inferiores. Los datos sacados desde el circuito EXOR 322a se introducen a una unidad de funcion F 321b. La unidad de funcion F 321b, como la unidad de funcion F 321a, realiza la conversion no lineal y los datos convertidos entonces se someten a una operacion XOR con los datos introducidos superiores en un circuito EXOR 322b. Los datos sacados desde el circuito EXOR 322b se introduce a una unidad de funcion F 321c. De esta manera, el mismo proceso que el realizado por la unidad de funcion F 321a y el circuito EXOR 322a se realiza por la unidad de funcion F 321b y el circuito EXOR 322b, por la unidad de funcion F 321c y un circuito EXOR 322c, mediante una unidad de funcion F 321d y un circuito EXOR 322d, mediante una unidad de funcion F 321e y un circuito EXOR 322e y mediante una unidad de funcion F 321f y un circuito EXOR 322f, respectivamente. De esta manera, la conversion no lineal basada en una funcion F de seis vueltas se realiza (o la conversion no lineal basada en una funcion F de una vuelta se repite seis veces) de esa manera y entonces se sacan los datos convertidos.
La estructura para el proceso de conversion no lineal antes mencionado se llama estructura FEISTEL, que se caracteriza por que los datos superiores y los datos inferiores se intercambian y sacan recibiendo uno de los datos superiores divididos y datos inferiores divididos, datos de conversion no lineal recibidos, sacando uno de los datos superiores y los datos inferiores convertidos, sometiendo a una operacion XOR entre uno de los datos superiores y los datos inferiores sacados y el otro de los datos superiores y los datos inferiores, intercambiando datos sometidos a una operacion XOR y el otro de los datos superiores y los datos inferiores que no se introdujeron a la unidad de funcion F y sacando los datos inferiores y los datos superiores intercambiados.
Las estructuras tfpicas para aleatorizacion de datos son la estructura FEISTEL y la estructura SPN (Red de Sustitucion-Permutacion). El convertidor principal 320 con la estructura SPN se dice que sobresale en el procesamiento paralelo. Con la estructura FEISTEL, el convertidor principal 320 se dice que sobresale en reduccion de tamano de hardware.
Senalar que la estructura SPN, a diferencia de la estructura FEISTEL en la que se dividen los datos de entrada, se estructura de manera que se repite una funcion F compuesta de una capa S (capa no lineal) y una capa P (capa lineal).
Se dara ahora una descripcion de la estructura interna del subconvertidor 330.
La Fig. 58 es un diagrama que ilustra circuitos que componen el subconvertidor 330.
El subconvertidor 330 de la Fig. 58 se dota con una unidad de convertidor de datos 50 y una unidad de inversor de datos 70.
En la unidad de convertidor de datos 50, se realiza una operacion AND logica entre los datos de 32 bits superiores de datos de entrada de 64 bits y una clave 1 en un circuito AND 54, un resultado de la cual se somete entonces a desplazamiento de rotacion de un bit a la izquierda. Entonces, en un circuito EXOR 55, una entrada se somete a una operacion XOR con los 32 bits inferiores de los datos de entrada, un resultado de la cual se saca como una senal de salida de 32 bits inferior y tambien se introduce a un circuito OR 57. Entonces, en el circuito OR 57, una entrada se somete a una operacion OR logica con una clave 2, un resultado de la cual entonces se somete a una operacion XOR con los datos de 32 bits superiores de los datos de entrada en un circuito EXOR 56, un resultado de la cual se saca como una senal de salida de 32 bits superiores. De esta manera, los datos de entrada de 64 bits se convierten linealmente y entonces se sacan como una senal de salida de 64 bits.
En la unidad de inversor de datos 70, se realiza una operacion OR logica entre los datos de 32 bits inferiores de datos de entrada de 64 bits y una clave 3 en un circuito OR 74, un resultado de la cual entonces se somete a una operacion XOR con los 32 bits superiores de los datos de entrada en un circuito EXOR 75, un resultado de la cual se saca como una senal de salida de 32 bits superiores y tambien se introduce a un circuito AND 77. En el circuito AND 77, se somete una entrada a una operacion AND logica con una clave 4, un resultado de la cual se somete entonces a desplazamiento de rotacion de un bit a la izquierda. Entonces, en un circuito EXOR 76, una entrada se somete a una operacion XOR con los datos de 32 bits inferiores de los datos de entrada, un resultado de la cual se saca como una senal de salida de 32 bits inferiores. De esta manera, los datos de entrada de 64 bits se convierten linealmente en la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 y entonces se sacan como una senal de salida de 64 bits. Senalar que la clave 1 hasta la clave 4 se alimentan por el programador de claves 210.
La Fig. 59 es un diagrama que muestra un circuito compartido por la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 como un ejemplo del subconvertidor 330.
5
10
15
20
25
30
35
40
45
50
55
Con la Fig. 59, cuando se introduce una senal de conmutacion para conmutar entre la unidad de convertidor de datos 50 y la unidad de inversor de datos 70, se conmutan la unidad de convertidor de datos 50 y la unidad de inversor de datos 70. Mas espedficamente, en el circuito compartido de la Fig. 59 cuando se recibe la senal de conmutacion, un selector 2-1 99a conmuta entre una senal de entrada A y una senal de entrada E y un selector 2-1 99b conmuta entre una senal de entrada C y una senal de entrada F.
Se dara una descripcion del caso en el que el circuito compartido actua como la unidad de convertidor de datos 50 en primer lugar.
El selector 2-1 99a selecciona la senal de entrada A de entre la senal de entrada E y la senal de entrada A y saca la senal como una senal de salida B. Entonces, en un circuito AND 101, una entrada se somete a una operacion AND logica con la clave 1, un resultado de la cual se somete entonces a desplazamiento de rotacion de un bit a la izquierda. Entonces, en un circuito EXOR 91, una entrada se somete a una operacion XOR con los 32 bits inferiores de los datos de entrada, un resultado de la cual se saca como una senal de salida de 32 bits inferiores y tambien se introduce al selector 2-1 99b como la senal de entrada C. El selector 2-1 99b selecciona la senal de entrada C de entre la senal de entrada C y la senal de entrada F y saca la senal C como una senal de salida D. Entonces, en un circuito OR 92, se realiza una operacion OR logica entre la senal de salida D y la clave 2, un resultado de la cual se somete entonces a una operacion XOR con los datos de 32 bits superiores de los datos de entrada en un circuito EXOR 93, un resultado de la cual se saca entonces como una senal de salida de 32 bits superiores.
Entonces se dara una descripcion del caso en el que el circuito compartido actua como la unidad de inversion de datos 70.
El selector 2-1 99b selecciona la senal de entrada F de entre la senal de entrada C y la senal de entrada F y saca la senal de entrada F como la senal de salida D. Entonces, el circuito OR 92 realiza una operacion OR logica entre la senal de salida D y la clave 2, un resultado de la cual se somete a una operacion XOR con los 32 bits superiores de los datos de entrada en el circuito EXOR 93, un resultado de la cual se saca como una senal de salida de 32 bits superiores y tambien se introduce al selector 2-1 99a como la senal de entrada E. El selector 2-1 99a selecciona la senal de entrada E de entre la senal de entrada A y la senal de entrada E y saca la senal de entrada E como la senal de salida B. Entonces, en el circuito AND 101, se realiza una operacion OR logica entre la senal de salida B y la clave 1, un resultado de la cual se somete entonces a desplazamiento de rotacion de un bit a la izquierda, un resultado de lo cual entonces se somete a una operacion XOR con los 32 bits inferiores de los datos de entrada en el circuito EXOR 91, un resultado de la cual se saca como una senal de salida de 32 bits inferiores.
La Fig. 60, en contraste con el aparato de conversion de datos de la Fig. 56, es un diagrama que ilustra un aparato de conversion de datos en el que el convertidor principal 320 se dota con 1/2x (x > 1) de la funcion F, que se disena para procesar la funcion F durante menos de una vuelta.
En el caso donde el convertidor principal 320 se dote con una funcion 1/2F, por ejemplo, se puede realizar un proceso de dos ciclos por medio del camino desde el convertidor principal 320 hasta el subconvertidor 330, el selector 310, el registro aritmetico 350, entonces de vuelta al convertidor principal 320. Esto permite que sea logrado un proceso de conversion de datos no lineal basada en una funcion F de una vuelta. Para implementar tal proceso, el aparato de conversion de datos de la Fig. 60, en contraste con el convertidor de la Fig. 56, se anade con el camino desde el registro aritmetico 350 al selector 310.
Se dara ahora una descripcion de la operacion del convertidor principal 320 por medio del camino desde el registro aritmetico 350 al selector 310.
La Fig. 61 ilustra la configuracion interna del convertidor principal 320.
Como se muestra en la Fig. 61, el convertidor principal 320 se compone de 12 unidades de funcion F, cada una de las cuales procesa la funcion F durante menos de una vuelta, por ejemplo, 1/2 de la funcion F (funcion 1/2F). El convertidor principal 320 de la Fig. 61 realiza conversion de datos usando una unidad de funcion F 1321a, una unidad de funcion F 1321b, un circuito EXOR 1322a y un circuito EXOR 1322b, mientras que el convertidor principal 320 de la Fig. 57 realiza la misma conversion de datos usando la unidad de funcion F 321a y el circuito EXOR 322a.
Con referencia al convertidor principal 320 de la Fig. 61, se explicara en primer lugar el proceso de primera vuelta. Los datos superiores divididos a partir de los datos de entrada superiores se introducen a la unidad de funcion F 1321a. Una clave 1H, que se compone de los bits superiores de la clave 1 programada por el programador de claves 210, tambien se introduce a la unidad de funcion F 1321a. La unidad de funcion F 1321a convierte no linealmente los datos superiores usando la clave 1H. Entonces, los datos convertidos se introducen al circuito EXOR 1322a y se someten a una operacion XOR con los datos superiores divididos a partir de los datos de entrada inferiores.
Los datos sacados desde el circuito EXOR 1322a se mantienen en el registro aritmetico 350 como datos intermedios hasta que se hace un procesamiento de datos en el circuito EXOR 1322b.
Entonces, se explicara un proceso de segunda vuelta. A partir de los datos de entrada superiores, los datos inferiores divididos se introducen a la unidad de funcion F 1321b. Una clave 1L, que se compone de los bits
5
10
15
20
25
30
35
40
45
50
55
inferiores de la clave 1 programada por el programador de claves 210, tambien se introduce a la unidad de funcion F 1321b. La unidad de funcion F 1321b realiza una conversion no lineal de los datos inferiores usando la clave 1L. Entonces, los datos convertidos se introducen al circuito EXOR 1322b.
Ahora, los datos intermedios, que son los datos de salida desde el circuito EXOR 1322a y se mantienen en el registro aritmetico 350, van a ser introducidos al circuito EXOR 1322b. Entonces, se necesita el camino desde el registro aritmetico 350 al selector 310. Mas espedficamente, el camino desde el registro aritmetico 350 al selector 310 permite introducir los datos intermedios mantenidos en el registro aritmetico 350 al selector 310. El selector 310 selecciona los datos intermedios recibidos. Los datos intermedios se introducen entonces al convertidor principal 320 a traves del registro aritmetico 350 y entonces se someten a una operacion XOR con datos de salida desde la unidad de funcion F 1321b por el circuito EXOR 1322b. Los datos de salida desde el circuito EXOR 1322b se introducen a la funcion F 1321c.
De esta manera, el mismo proceso que el realizado por la unidad de funcion F 1321a, el circuito EXOR 1322a, la unidad de funcion F 1321b y el circuito EXOR 1322b se realiza por una unidad de funcion F 1321c, un circuito EXOR 1322c, una unidad de funcion F 1321d y un circuito EXOR 1322d, por una unidad de funcion F 1321e, un circuito EXOR 1322e, una unidad de funcion F 1321f y un circuito EXOR 1322f, por una unidad de funcion F 1321g, un circuito EXOR 1322g, una unidad de funcion F 1321h y un circuito EXOR 1322h, por una unidad de funcion F 1321i, un circuito EXOR 1322i, una unidad de funcion F 1321j y un circuito EXOR 1322j y por una unidad de funcion F 1321k, un circuito EXOR 1322k, una unidad de funcion F 1321l y un circuito EXOR 1322l, respectivamente. Despues de procesar de esta manera la conversion de datos no lineal de 12 vueltas por las unidades de funcion F (o repetir 12 veces), se sacan los datos convertidos.
Problema 1.
Con referencia a los aparatos de conversion de datos de la Fig. 56 y la Fig. 60, el generador de claves 20 usa parte del convertidor principal 320 y parte del subconvertidor 330 para generar una clave usada para cifrado/descifrado de datos. El proposito de usar parte del convertidor principal 320 y parte del subconvertidor 330 es reducir el tamano total del aparato de conversion de datos.
Con esta operacion de generacion de claves tratada mas tarde en detalle, a fin de generar una clave usando de esta manera parte del convertidor principal 320 y parte del subconvertidor 330, se necesita un camino para introducir la clave intermedia (Clave KL) sacada desde el registro de claves KL 240 en el selector 310 como se muestra en la Fig. 56. Este aumento del camino desde el registro de claves KL 240 al selector 310 es una causa que impide que el aparato de conversion de datos se haga mas pequeno.
Esto tambien aumenta el numero de senales de entrada al selector 310 por medio del camino desde el registro de claves KL 240 al selector 310, que causa un aumento en el numero de selectores que componen el selector 310. Esto es otra causa que impide que el aparato de conversion de datos se haga mas pequeno.
Como se menciono anteriormente, la conversion de datos basada en una funcion F de una vuelta en dos o mas ciclos se acompana por la necesidad de introducir los datos intermedios mantenidos durante un periodo de tiempo dado en el convertidor principal 320. Este aumento del camino para transferir los datos intermedios desde el registro aritmetico 350 al selector 310 aun es otra causa que impide que el aparato de conversion de datos se haga mas pequeno.
Adicionalmente, el aumento en el numero de senales de entrada al selector 310 por medio del camino desde el registro aritmetico 350 al selector 310 causa un aumento en el numero de selectores que componen el selector 310. Esto es aun otra causa que impide que el aparato de conversion de datos se haga mas pequeno.
Problema 2.
Con referencia a los aleatorizadores de datos 30 de los aparatos de conversion de datos mostrados en la Fig. 56 y la Fig. 60, el convertidor principal 320 y el subconvertidor 330 se conectan en serie. Esto determina la frecuencia de operacion unicamente por el camino desde el convertidor principal 320 a traves del subconvertidor 330, el selector 310, el registro aritmetico 350 entonces de vuelta al convertidor principal 320, lo cual impide que la frecuencia de operacion sea mejorada. Por lo tanto, ha sido un deseo aumentar la frecuencia de operacion haciendo un camino maximo para procesamiento de datos mas corto en el aleatorizador de datos 30, mejorando por ello la velocidad de flujo maximo de manera notable. Adicionalmente, no se proporciona ningun camino que permita a los datos sacados desde el selector 310 y entonces al registro aritmetico 350 ir dentro del subconvertidor 330 sin pasar a traves del convertidor principal 320. Por lo tanto, no se permite una respuesta flexible a un cambio en la configuracion interna del aparato de conversion de datos, lo que provoca poca flexibilidad en la operacion en general.
Como se menciono anteriormente, en el caso donde la conversion de datos basada en la funcion F de una vuelta se realice en dos o mas ciclos, es parte de los datos de entrada (1/2 de los datos de entrada con una funcion 1/2F) que se convierten en un ciclo. Esto requiere que el camino en el aleatorizador de datos 30 para transferir los datos convertidos de la parte de los datos de entrada al registro aritmetico 350 sea mantenido en el mismo y entonces transferir los datos convertidos al subconvertidor 330 despues de un periodo de tiempo dado.
5
10
15
20
25
30
35
40
45
O de otro modo, se requiere el camino de transferencia en el convertidor principal 320 para transferir los datos convertidos al subconvertidor 330 pasando a traves del convertidor principal 320 despues de un periodo de tiempo dado.
Adicionalmente, con el circuito compartido por la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 mostrado en la Fig. 59, el camino A^B^C^D^E^B^-C... corresponde a un circuito en bucle. Esto requiere que el circuito compartido disenado no llegue a ser un circuito de transmision en una implementacion practica cuando esta afectado por el recorrido de la senal causado por diferencias en el retardo de propagacion de senales de conmutacion, ruido, etc. Otro problema es que las herramientas sinteticas logicas no son aplicables a tal circuito que tiene un circuito en bucle (circuito en BUCLE DE REALIMENTACION) y por lo tanto la smtesis logica no se puede lograr eficientemente.
AOKI K ET AL: “THE 128-BITS BLOCK CIPHER CAMELLIA”, ACTAS DEL IEICE SOBRE FUNDAMENTOS DE ELECTRONICA, COMUNICACIONES Y CIENCIAS INFORMATICAS, SOCIEDAD DE CIENCIAS DE INGENIERfA, TOKIO, JP, vol. E85-A, n° 1, 1 de enero de 2002 (), paginas 11-24, XP001117312, ISSN: 0916-8508 describen un cifrado de bloque de 128 bits que soporta longitudes de clave de 128, 192, 256 bits. Esta tecnica usa una estructura Feistel de 18 vueltas para claves de 128 bits y una estructura Feistel de 24 vueltas para claves de 192 y 256 bits, con blanqueos de entrada/salida adicionales y funciones logicas llamadas funcion FL y funcion FL-1 insertadas cada 6 vueltas.
Ademas, AKASHI SATOH ET AL: “A Compact Rijndael Hardware Architecture with S-Box Optimization”, PROCESAMIENTO Y APLICACIONES PARALELAS Y DISTRIBUIDAS: SEGUNDO SIMPOSIO INTERNACIONAL, ACTAS WA 2004, HONG KONG, CHINA, 13-15 DE DICIEMBRE DE 2004 (EN: APUNTES EN CIENCIAS INFORMATICAS), SPRINGER, DE, 1 de enero de 2001 (), paginas 239-254, XP007906471, DOI: DOI: 10.1007/3-540-45682-1 ISBN: 978-3-540-24128-7, describen estructuras hardware compactas y de alta velocidad y metodos de optimizacion logica para el algoritmo AES Rijndael. Los caminos de datos de cifrado y descifrado se combinan y se reutilizan todos los componentes aritmeticos. Introduciendo un nuevo campo compuesto, tambien se optimiza la estructura de Caja S.
Es un objeto de la presente invencion reducir el tamano de un aparato de conversion de datos.
Es otro objeto de la presente invencion mejorar la frecuencia de operacion de un aparato de conversion de datos. Descripcion de la invencion
Para resolver los objetos mencionados anteriormente, un aparato de conversion de datos segun la presente invencion comprende los rasgos de la reivindicacion 1 y un metodo de conversion de datos segun la presente invencion comprende los rasgos de la reivindicacion 11. Las realizaciones preferidas del aparato de conversion de datos se definen en las reivindicaciones dependientes.
Breve descripcion de los dibujos
La Fig. 1 es un diagrama que ilustra una configuracion de un aparato de conversion de datos segun una primera realizacion.
La Fig. 2 es un diagrama que ilustra una operacion de un generador de claves intermedias 40 que genera una clave de salida a partir de una clave intermedia con una clave de 128 bits.
La Fig. 3 es un diagrama que ilustra una configuracion interna y operacion de un programador de claves 210.
La Fig. 4 es un diagrama que ilustra una operacion de un aleatorizador de datos 30 para cifrado/descifrado.
La Fig. 5 es un diagrama que ilustra una configuracion interna y operacion de una unidad de funcion F 321.
La Fig. 6 es un diagrama que ilustra una configuracion de un aparato de conversion de datos en el que un convertidor principal 320 y un subconvertidor 330 de la Fig. 1 se disponen a la inversa.
La Fig. 7 es un diagrama que ilustra una configuracion de un aparato de conversion de datos, en el que el convertidor principal 320 y el subconvertidor 330 se disponen en paralelo.
La Fig. 8 es un diagrama que ilustra una configuracion interna de un selector 6-1 KL 220 y un selector 6-1 KA 230 en el generador de claves intermedias 40.
La Fig. 9 es un diagrama que ilustra otra configuracion ejemplo del generador de claves intermedias 40.
La Fig. 10 es un diagrama que ilustra una configuracion interna del subconvertidor 330 en el que la unidad de convertidor de datos 50 se dota con una funcion de transferencia de claves.
5
10
15
20
25
30
35
40
45
50
La Fig. 11 es un diagrama que ilustra una configuracion interna del subconvertidor 330 en el que la unidad de inversor de datos 70 se dota con la funcion de transferencia de claves.
La Fig. 12 es un diagrama que ilustra una configuracion interna del subconvertidor 330 en el que la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 se dotan ambas con la funcion de transferencia de claves.
La Fig. 13 es un diagrama que ilustra una configuracion interna del subconvertidor 330 en el que la unidad de convertidor de datos 50 se dota con una funcion de transferencia de datos segun una segunda realizacion.
La Fig. 14 es un diagrama que ilustra una configuracion interna del subconvertidor 330 en el que la unidad de inversor de datos 70 se dota con la funcion de transferencia de datos.
La Fig. 15 es un diagrama que ilustra una configuracion interna del subconvertidor 330 en el que la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 se dotan ambas con la funcion de transferencia de datos.
La Fig. 16 es un diagrama que ilustra una configuracion interna del subconvertidor 330 en el que la unidad de convertidor de datos 50 se dota con la funcion de transferencia de claves y la funcion de transferencia de datos y la unidad de inversor de datos 70 se dota con la funcion de transferencia de claves segun una tercera realizacion.
La Fig. 17 es un diagrama que ilustra una configuracion interna del subconvertidor 330 en el que la unidad de inversor de datos 70 se dota con la funcion de transferencia de claves y la funcion de transferencia de datos y la unidad de convertidor de datos 50 se dota con la funcion de transferencia de claves.
La Fig. 18 es un diagrama que ilustra una configuracion interna del subconvertidor en el que la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 se dotan ambas con la funcion de transferencia de claves y la funcion de transferencia de datos.
La Fig. 19 es un diagrama que ilustra una configuracion interna del subconvertidor 330 en el que la unidad de convertidor de datos 50 se dota con la funcion de transferencia de claves y la funcion de transferencia de datos.
La Fig. 20 es un diagrama que ilustra una configuracion interna del subconvertidor 330 en el que la unidad de inversor de datos 70 se dota con la funcion de transferencia de claves y la funcion de transferencia de datos.
La Fig. 21 es un diagrama que ilustra una configuracion del subconvertidor 330 en el que la unidad de convertidor de datos 50 se dota tanto con la funcion de transferencia de claves como con la funcion de transferencia de datos y la unidad de inversor de datos 70 se dota con la funcion de transferencia de datos.
La Fig. 22 es un diagrama que ilustra una configuracion del subconvertidor 330 en el que la unidad de inversor de datos 70 se dota con la funcion de transferencia de claves y la funcion de transferencia de datos y la unidad de convertidor de datos 50 se dota con la funcion de transferencia de datos.
La Fig. 23 es un diagrama que ilustra una configuracion del subconvertidor 330 en el que la unidad de convertidor de datos 50 se dota con la funcion de transferencia de datos y la unidad de inversor de datos 70 se dota con la funcion de transferencia de claves.
La Fig. 24 es un diagrama que ilustra una configuracion del subconvertidor 330 en el que la unidad de convertidor de datos 50 se dota con la funcion de transferencia de claves y la unidad de inversor de datos 70 se dota con la funcion de transferencia de datos.
La Fig. 25 es un diagrama que ilustra una configuracion del subconvertidor 330 en el que la unidad de inversor de datos 70 y la unidad de convertidor de datos 50 se conectan en serie y la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 se dotan ambas con la funcion de transferencia de datos.
La Fig. 26 muestra una configuracion del subconvertidor 330 en el que la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 de la Fig. 25 conmutan la posicion de las mismas.
La Fig. 27 es un diagrama que ilustra una configuracion del subconvertidor 330 en el que la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 se conectan en serie y la unidad de convertidor de datos 50 se dota con la funcion de transferencia de claves y la funcion de transferencia de datos y la unidad de inversor de datos 70 se dota con la funcion de transferencia de datos.
La Fig. 28 es un diagrama que ilustra una configuracion del subconvertidor 330 en el que la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 de la Fig. 27 conmutan la posicion de las mismas.
La Fig. 29 es un diagrama que ilustra una configuracion del subconvertidor 330 en el que la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 se conectan en serie y la unidad de convertidor de datos 50 se dota con
5
10
15
20
25
30
35
40
la funcion de transferencia de datos y la unidad de inversor de datos 70 se dota con la funcion de transferencia de claves y la funcion de transferencia de datos.
La Fig. 30 es un diagrama que ilustra una configuracion del subconvertidor 330 en el que la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 de la Fig. 29 conmutan el orden de las mismas.
La Fig. 31 es un diagrama que ilustra una configuracion del subconvertidor 330 en el que una 1/2 unidad de subconvertidor 90 se anade con la funcion de transferencia de claves y la funcion de transferencia de datos segun una cuarta realizacion.
La Fig. 32 es un diagrama que ilustra una configuracion del subconvertidor en el que la 1/2 unidad de subconvertidor 90 se anade con la funcion de transferencia de datos.
La Fig. 33 es un diagrama que ilustra una configuracion del subconvertidor 330 en el que la 1/2 unidad de subconvertidor 90 se anade con la funcion de transferencia de claves.
La Fig. 34 es un diagrama que ilustra un proceso de cifrado de datos realizado en un aparato de conversion de datos de CAMELLIA usando una clave de 128 bits.
La Fig. 35 es un diagrama que ilustra un proceso de descifrado de datos realizado en un aparato de conversion de datos de CAMELLIA usando una clave de 128 bits.
La de
Fig. 36 es un CAMELLIA. diagrama que ilustra una configuracion interna de la funcion F en un aparato de conversion de datos
La
Fig. 37 es un diagrama que ilustra una configuracion general y operacion segun una quinta realizacion.
La
Fig. 38 es un diagrama que ilustra una configuracion general y operacion segun una sexta realizacion.
La
Fig. 39 es un diagrama que ilustra una configuracion general y operacion segun una undecima realizacion.
La
Fig. 40 es un diagrama que ilustra una configuracion general y operacion segun una duodecima realizacion.
La
Fig. 41 es un diagrama que ilustra una configuracion general y operacion segun una decima tercera realizacion.
La
Fig. 42 es un diagrama que ilustra una configuracion general y operacion segun una decima cuarta realizacion.
La
Fig. 43 es un diagrama que ilustra una configuracion general y operacion segun una decima quinta realizacion.
La
Fig. 44 es un diagrama que ilustra una configuracion general y operacion segun una decima sexta realizacion.
La
Fig. 45 es un diagrama que ilustra una configuracion general y operacion segun una decima septima realizacion.
La
Fig. 46 es un diagrama que ilustra una configuracion general y operacion segun una decima octava realizacion.
La
Fig. 47 es un diagrama que ilustra una configuracion general y operacion segun una septima realizacion.
La
Fig. 48 es un diagrama que ilustra una configuracion general y operacion segun una octava realizacion.
La
Fig. 49 es un diagrama que ilustra una configuracion general y operacion segun una novena realizacion.
La
Fig. 50 es un diagrama que ilustra una configuracion general y operacion segun una decima realizacion.
La
Fig. 51 es un diagrama que ilustra una configuracion general y operacion segun una decima novena realizacion.
La
Fig. 52 es un diagrama que ilustra una configuracion general y operacion segun una vigesima realizacion.
La
Fig. 53 es un diagrama que ilustra una operacion del generador de claves intermedias 40 que genera la clave de
salida a partir de la clave intermedia con una clave de 192 o 256 bits.
La Fig. 54 es un diagrama que ilustra un proceso de cifrado de datos realizado en un aparato de conversion de datos de CAMELLIA usando una clave de 192 o 256 bits.
La Fig. 55 es un diagrama que ilustra un proceso de descifrado de datos realizado en un aparato de conversion de datos de CAMELLIA usando una clave de 192 o 256 bits.
La Fig. 56 es un diagrama que ilustra la configuracion y operacion de un aparato de conversion de datos relacionado.
La Fig. 57 muestra un ejemplo de la configuracion interna del convertidor principal 320.
5
10
15
20
25
30
35
40
45
50
La Fig. 58 es un diagrama que ilustra el circuito que compone el subconvertidor 330.
La Fig. 59 es un diagrama que ilustra un circuito compartido por la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 que componen el subconvertidor 330.
La Fig. 60 muestra otro ejemplo de la configuracion y operacion del aparato de conversion de datos relacionado.
La Fig. 61 muestra otro ejemplo de la configuracion interna del convertidor principal 320.
La Fig. 62 es un diagrama que ilustra una configuracion del subconvertidor 330 en el que la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 se conectan en serie y la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 se dotan ambas con la funcion de transferencia de claves y la funcion de transferencia de datos.
La Fig. 63 es un diagrama que ilustra una configuracion del subconvertidor 330 en el que la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 de la Fig. 62 conmutan la posicion de las mismas.
La Fig. 64 muestra una configuracion interna del convertidor principal 320 de CAMELLIA.
Mejor modo para llevar a cabo la invencion
Realizacion 1.
Se dara una descripcion de un aparato de conversion de datos segun esta realizacion.
Aparato de conversion de datos
La Fig. 1 es un diagrama que ilustra una configuracion y operacion de un aparato de conversion de datos segun esta realizacion.
Esta realizacion no incluye el “camino para introducir la clave intermedia (Clave KL) que se saca desde el registro de claves KL 240 en el selector 310” ni incluye el “camino para introducir datos que se sacan desde el convertidor principal 320 en el selector 310”, los caminos que se muestran en la Fig. 56 y la Fig. 60. La razon es que un subconvertidor 330 de esta realizacion se dota con una funcion de transferencia de claves/datos extra ademas de su funcion primaria y original para convertir datos.
Se dara mas adelante una descripcion de generacion de claves y cifrado/descifrado de datos mediante el uso de la funcion de transferencia de claves/datos del subconvertidor 330. Otros componentes y operaciones son los mismos que los tratados con referencia a la Fig. 56 y la Fig. 60 y, por lo tanto, no se trataran aqrn.
Con esta realizacion, la clave intermedia (Clave KL) sacada desde el registro de claves KL 240 no se introduce
directamente al selector 310 sino que se introduce al subconvertidor 330 a traves del programador de claves 210 por medio del camino convencional desde el registro de claves KL 240 al programador de claves 210. El subconvertidor 330, dotado con un “modo de conversion de datos” y un “modo de transferencia de claves/datos”, conmuta al “modo de transferencia de claves/datos” tras la recepcion de una clave y transfiere la clave de entrada al selector 310.
Ademas, segun esta realizacion, los datos que se convierten no linealmente por el convertidor principal 320 no se introducen directamente al selector 310 sino que se introducen al subconvertidor 330 en primer lugar. El subconvertidor 330, tras la recepcion de los datos convertidos no linealmente por el convertidor principal 320, conmuta al “modo de transferencia de claves/datos” y transfiere los datos de entrada al selector 310.
Las operaciones de transferencia llevadas a cabo de esta manera por el subconvertidor 330 permiten hacer
redundantes los dos caminos mostrados en la Fig. 56 y la Fig. 60.
Senalar que una lmea de puntos mostrada en la Fig. 1 indica un “camino para transferir los datos intermedios desde el registro aritmetico 350 al selector 310”, que se requiere para introducir en el convertidor principal 320 los datos intermedios mantenidos durante un periodo de tiempo dado, en el caso donde el convertidor principal 320 realiza una conversion de datos basada en funcion F para una vuelta en dos o mas ciclos, como se menciono anteriormente. Por otra parte, el “camino desde el registro aritmetico 350 al selector 310” indicado por la lmea de puntos no se requiere en el caso donde el convertidor principal 320 realice una conversion de datos basada en funcion F para una vuelta en un ciclo. Lo mismo aplica a un camino indicado por una lmea de puntos mostrada en la Fig. 6 en una discusion posterior.
Metodo de generacion de claves
Se dara ahora una descripcion de una clave intermedia y un metodo de generacion de claves de salida del generador de claves intermedias 40.
La Fig. 2 ilustra una operacion del generador de claves intermedias 40 para generar una clave de salida a partir de una clave intermedia.
5
10
15
20
25
30
35
40
45
50
55
En primer lugar, se introduce una clave secreta al generador de claves intermedias 40 y se mantiene en el registro de claves KL 240 como la clave intermedia (Clave KL) por medio del selector 6-1 KL 220. La clave secreta mantenida en el registro de claves KL 240 se introduce al convertidor principal 320 como la clave intermedia (Clave KL) por medio del programador de claves 210. En la primera unidad de funcion F 321a del convertidor principal 320, los bits superiores de la clave intermedia (Clave KL) introducidos se convierten no linealmente mediante el uso de una constante £ 1 que se saca desde el programador de claves 210, entonces se somete a una operacion XOR con los bits inferiores de la clave intermedia (Clave KL) en el circuito EXOR 322a y entonces se introducen a la unidad de funcion F 321b. Del mismo modo, en la unidad de funcion F 321b, una clave sacada desde el circuito EXOR 322a se convierte no linealmente mediante el uso de una constante £ 2 que se saca desde el programador de claves 210 y entonces se somete a una operacion XOR con los bits inferiores de la clave intermedia (Clave KL) en el circuito EXOR 322b. Entonces, la clave de salida resultante como los bits superiores de la clave y la clave sacada desde el circuito EXOR 322a como los bits inferiores de la clave se sacan al subconvertidor 330.
El subconvertidor 330 recibe estas piezas de datos y se someten a una operacion XOR entre los bits superiores y los bits inferiores de la clave por medio de dos operadores OR exclusiva (EXOR) incluidos en la unidad de convertidor de datos 50 y dos operadores OR exclusiva (EXOR) incluidas en la unidad de inversor de datos 70 dentro del subconvertidor 330. Entonces, los datos de salida resultantes se introducen al convertidor principal 320 de nuevo.
El convertidor principal 320 realiza el proceso de conversion de dos etapas que implican la unidad de funcion F 321a, el circuito ExOr 322a, la unidad de funcion F 321b y el circuito EXOR 322b en el convertidor principal 320, de la misma manera que la del proceso antes mencionado mediante el uso de la parte del convertidor principal 320, entonces intercambia los bits superiores y los bits inferiores de la clave convertida y saca los intercambiados.
Los datos de salida se introducen al selector 6-1 KA 230 del generador de claves intermedias 40 y se mantienen en el registro de Claves KA 250 como la clave de salida (Clave KA). El generador de claves intermedias 40 genera de esta manera la clave de salida (Clave KA) a partir de la clave intermedia (Clave KL) usando parte del convertidor principal 320 y parte del subconvertidor 330 como componentes que ejecutan cifrado/descifrado de datos. Cuatro claves, que incluyen la clave KLH de los bits superiores y la clave KLL de los bits inferiores de la clave intermedia (Clave KL) generada y la clave KAH de los bits superiores y la clave KAL de los bits inferiores de la clave de salida (Clave KA) generada, se introducen al programador de claves 210 y se usan como una clave para cifrado/descifrado de datos (llamada clave extendida). Entonces, la clave de salida generada de esta manera (Clave KA) y la clave intermedia (Clave KL) se usan para generar otra clave intermedia y otra clave de salida en cada periodo dado mediante el mismo proceso.
Programacion de claves
Se dara ahora una descripcion de una configuracion interna y una operacion del programador de claves 210.
La Fig. 3 es un diagrama que ilustra una configuracion interna y operacion del programador de claves 210.
La clave intermedia (Clave KL) sacada desde el generador de claves intermedias 40 se divide en la Clave KLH de los bits superiores y la Clave KLL de los bits inferiores se introduce a un selector 4-1 216 y un selector 4-1 217. La clave de salida (Clave KA) sacada desde el generador de claves intermedias 40 tambien se divide en la Clave KAH y la Clave KAL y se introducen al selector 4-1 216 y el selector 4-1 217 del mismo modo. El selector 4-1 216 y el selector 4-1 217 seleccionan una clave de entre las cuatro claves. Entonces, una senal seleccionada por el selector 4-1 216, 217 y una senal obtenida a traves de un desplazamiento de rotacion a la derecha de un bit de la senal seleccionada se introducen a un selector 2-1 214, 215, respectivamente. La razon de por que la senal se somete a una rotacion a la derecha de un bit es la siguiente. Como se trato anteriormente, el subconvertidor 330 se usa en la generacion de la clave de salida (Clave KA) por el generador de claves intermedias 40. En ese caso, la senal se somete a un desplazamiento de rotacion de un bit a la izquierda por un desplazador de rotacion en el subconvertidor 330. Por lo tanto, suponiendo que la senal se sometera a un desplazamiento de rotacion de un bit a la izquierda, la senal se somete a un desplazamiento de rotacion de un bit a la derecha por adelantado de manera que no haya ningun efecto del desplazamiento de rotacion en el resultado. Por consiguiente, el programador de claves 210 no siempre realiza el desplazamiento de rotacion a la derecha de un bit. Depende del numero de bits y la direccion de un desplazamiento de rotacion lo que el desplazador de rotacion del subconvertidor 320 hara para una senal. En otras palabras, el programador de claves 210 va a hacer un desplazamiento de rotacion por adelantado para la senal del mismo numero de bits que el de la direccion opuesta a la de un desplazamiento de rotacion que se hara para la senal por el desplazador de rotacion del subconvertidor 330. Por lo tanto, el selector 2-1 214 y el selector 2-1 215, que son para seleccionar una senal relativa a una clave de entre estas dos senales, siempre seleccionan una clave obtenida a traves del desplazamiento de rotacion por adelantado mediante un numero de bits predeterminado y sacan la clave al subconvertidor 330, cuando se saca una clave al subconvertidor 330 para generar la clave de salida (Clave KA).
Las claves sacadas desde el selector 2-1 214 y el selector 2-1 215 se introducen al subconvertidor 330 en el caso donde el subconvertidor 330 se use en la generacion de la clave de salida (Clave KA) y se introducen a un selector 2-1 212 en el caso donde el convertidor principal 320 se use en la generacion de la clave de salida (Clave KA) y en
5
10
15
20
25
30
35
40
45
50
el proceso de cifrado/descifrado de datos. Entonces, una clave sometida a un desplazamiento de rotacion a la izquierda y derecha de un byte se introduce al selector 2-1 212. La razon de por que la clave sometida a la clave de desplazamiento de rotacion a la izquierda o derecha de un byte se introduce al selector 2-1 212 es que el proceso de cifrado de datos/descifrado de datos requiere esa clave en el caso donde la unidad de funcion F se compone de partes que procesan la funcion F de menos de una tal como 1/2, 1/4 y 1/8, que se tratara mas adelante en detalle.
El 212 selecciona una clave de entre estas dos claves e introduce una clave seleccionada a un selector 2-1 211. Un selector 8-1 213 recibe las constantes £ 1 hasta £ 4 divididas en datos superiores y datos inferiores, selecciona una senal de entre estas ocho senales de entrada e introduce una senal seleccionada al selector 2-1 211. El selector 2-1 211 selecciona una senal de entre las dos senales de entrada y saca una senal de seleccion al convertidor principal 320 como una clave.
Cifrado/Descifrado de datos
Se dara ahora una descripcion de cifrado/descifrado de datos realizado por el aleatorizador de datos 30.
La Fig. 4 es un diagrama que ilustra una operacion del aleatorizador de datos 30 para cifrado/descifrado.
En primer lugar, se introduce P (texto plano o texto cifrado). Se supone aqu que P (texto plano o texto cifrado) tiene una longitud de 128 bits. Los datos de entrada, P, se introducen a un circuito EXOR 31a y se someten a una operacion XOR con una clave secreta (128 bits de longitud) que se introduce a y entonces se saca desde el generador de claves 20 a traves del generador de claves intermedias 40 y el programador de claves 210. Senalar que la clave secreta se introduce al generador de claves intermedias 40 en primer lugar, entonces se selecciona por el selector 6-1 KL 220, entonces se mantiene en el registro de claves KL 240 como la clave intermedia (Clave KL) y entonces se introduce al programador de claves 210 como la clave intermedia (Clave KL).
Como CAMELLIA (camellia) disenado para un proceso de cifrado de bloques con clave comun, se usan los operadores OR exclusiva en el subconvertidor 330 para el circuito EXOR 31a y un circuito EXOR 31b. Mas particularmente, como se muestra en la Fig. 58, los datos de entrada se dividen en datos superiores de los bits superiores y datos inferiores de los bits inferiores. Entonces, cada pieza de datos divididos y una clave de entrada se someten a una operacion XOR en el circuito EXOR 55 y el circuito EXOR 56 de la unidad de convertidor de datos 50 o en el circuito EXOR 75 y el circuito EXOR 76 de la unidad de inversor de datos 70 y se sacan.
Los datos de salida se convierten por el convertidor principal 320 y el subconvertidor 330 mediante el uso de una de las claves extendidas sacadas desde el programador de claves 210. Con la Fig. 4, la conversion de datos se lleva a cabo alternativamente en el orden de: el convertidor principal 320a, un subconvertidor 330a, un convertidor principal 320b, un subconvertidor 330b y un convertidor principal 320c.
Los datos convertidos de esta manera se someten a una operacion XOR con una clave sacada a partir del programador de claves 210 en el circuito EXOR 31b del subconvertidor 330 y se sacan como C (texto cifrado o texto descifrado).
Se dara ahora una descripcion en detalle de una operacion de conversion de datos de CAMELLIA realizada por el convertidor principal 320 y el subconvertidor 330 en el aleatorizador de datos 30 con referencia a la Fig. 1 y la Fig. 4.
Los datos sacados desde el circuito EXOR 31a se dividen en datos superiores y datos inferiores y se introducen al convertidor principal 320a respectivamente. En el convertidor principal 320a, cada pieza de los datos de entrada se convierte no linealmente y los datos superiores y datos inferiores se intercambian como se muestra en la Fig. 4 de manera que los datos inferiores convertidos se tratan como datos superiores y los datos superiores convertidos se tratan como datos inferiores y entonces se introducen al subconvertidor 3301.
En el subconvertidor 330a, los datos de entrada se convierten linealmente. Como se muestra en la Fig. 1, los datos convertidos se introducen al selector 310, entonces se mantienen en el registro aritmetico 350 y luego se introducen al convertidor principal 320 (mostrado como el convertidor principal 320b en la Fig. 4).
El convertidor principal 320b y el subconvertidor 330b realizan los mismos procesos que los realizados por el convertidor principal 320a y el subconvertidor 330, respectivamente. El mismo proceso que el realizado por el convertidor principal 320a se repite de nuevo en el convertidor principal 320c. Los datos de salida desde el convertidor principal 320c, que se obtienen a traves de la serie de repeticiones, se somete a una operacion XOR con datos de claves sacados desde el programador de claves 210 al circuito EXOR 31b y entonces se sacan como C. Con CAMELLIA, se usa un operador logico exclusivo incluido en el subconvertidor 330 para el 31b como el circuito EXOR 31a. Tambien, con CAMELLIA, la conversion de datos se lleva a cabo usando el mismo convertidor principal 320 para cada uno de los convertidores principales 320a, 320b y 320c y repitiendo el mismo proceso. Alternativamente, no obstante, tambien es posible que los convertidores principales 320a, 320b y 320c se compongan separadamente de la misma configuracion interna. Lo mismo aplica al subconvertidor 330a y el subconvertidor 330b.
Senalar aqu que en el caso donde el convertidor principal 320 se dote con parte para procesar la funcion F para una vuelta y luego realice una conversion de datos basada en una funcion F de seis vueltas como se muestra en la Fig. 57, el proceso del convertidor principal 320 se repite seis veces, completando por ello el proceso de la conversion de datos basada en una funcion F de seis vueltas. Esto, con referencia a la Fig. 1, supone que el convertidor principal 5 320 completa la conversion de datos basada en una funcion F de seis vueltas repitiendo el uso del camino en bucle
desde el convertidor principal 320 a traves del selector 310, el registro aritmetico 350, entonces de vuelta al convertidor principal 320 seis veces. Por lo tanto, la tecnica relacionada mostrada en la Fig. 56 y la Fig. 60 requiere el “camino para introducir datos que se sacan desde el convertidor principal 320, al selector 310”.
No obstante, segun esta realizacion, el subconvertidor 330 tiene una funcion de transferencia, que se tratara mas 10 tarde y por lo tanto los datos sacados desde el convertidor principal 320 se pueden introducir al selector 310 con ser transferidos por el subconvertidor 330. De esta manera, segun el aparato de conversion de datos de esta realizacion, el uso del “camino para introducir datos sacados desde el convertidor principal 320 al selector 310 con ser transferidos por el subconvertidor 330” elimina la necesidad del “camino para introducir datos sacados desde el convertidor principal 320 al selector 310”.
15 Conversion principal - convertidor principal 320.
La configuracion interna y la operacion del convertidor principal 320 se han tratado anteriormente con referencia a la Fig. 57 y la Fig. 61.
Como se menciono anteriormente, la estructura para conversion no lineal del convertidor principal 320 caracterizada mas adelante se llama Estructura FEISTEL. Espedficamente, la estructura para conversion no lineal incluye dividir 20 datos de entrada en datos superiores de los bits superiores y datos inferiores de los bits inferiores, convirtiendo no linealmente uno de los datos superiores y los datos inferiores divididos usando la funcion F, generando datos a ser introducidos a la funcion F en base a unos de los datos superiores y los datos inferiores convertidos no linealmente y los otros de los datos superiores y los datos inferiores, dividiendo los datos generados como los datos de entrada en datos superiores y datos inferiores y convirtiendo de nuevo usando la funcion F y repitiendo los procesos antes 25 mencionados.
Conversion principal - convertidor principal 320 - unidad de funcion F 321.
Se dara ahora una descripcion de una configuracion interna y una operacion de la unidad de funcion F 321 incluida en el convertidor principal 320.
La Fig. 5 es un diagrama que ilustra una configuracion interna y una operacion de una unidad de funcion F 321.
30 En primer lugar, los datos de entrada se someten a una operacion XOR con una clave extendida en un circuito EXOr 323, entonces se dividen en ocho piezas y se introducen a una funcion S 324. La clave extendida se define como una clave combinada de la clave de salida (Clave KA) y la clave intermedia (Clave KL), que se generan a partir de la clave secreta por el generador de claves intermedias 40. Con CAMELLIA de una clave secreta de 128 bits de longitud, la clave extendida tiene 256 bits de longitud. La clave intermedia (Clave KL) se divide en una clave KLH de 35 los bits superiores y una clave KLL de los bits inferiores y la clave de salida (Clave KA) tambien se divide en una clave KAH de los bits superiores y una clave KAL de los bits inferiores. Entonces, una clave programada por el programador de claves 210 de entre las cuatro claves se introduce al circuito EXOR 323. La funcion S 324 es una funcion sintetizada (S1 hasta S4) de una operacion aritmetica inversa de GAF (28) y una conversion afm y realiza una conversion no lineal en modo byte. Los datos convertidos y luego sacados se introducen a una funcion P 325, 40 entonces se aleatorizan por la funcion P 325 realizando una conversion lineal y entonces se sacan.
Se dara ahora una descripcion de una operacion en un caso que una unidad de funcion F se compone de un procesamiento de parte para 1/2 de la funcion F (funcion 1/2F).
El procesamiento de la parte para 1/2 de la funcion F en la unidad de funcion F se compone del circuito EXOR 323, cuatro Cajas S S4 324e hasta S1 324h y aproximadamente la mitad de la unidad de funcion P de la Fig. 5. Con esta 45 configuracion, se realiza primero una conversion de datos basada en una 1/2 de la funcion F para una vuelta. Entonces, se repite el mismo proceso para completar el proceso de funcion F para una vuelta. En el primer proceso, se usan una clave y datos que se someten al desplazamiento de rotacion a la izquierda o derecha de un byte tratado anteriormente en el programador de claves 210. El desplazamiento de rotacion a la izquierda o derecha de un byte de la clave y los datos se puede efectuar igual que el del desplazamiento de una caja S en un byte sin cambiar la 50 disposicion de las cajas S S1 hasta S4. Mas espedficamente, como se muestra en la Fig. 5, el mismo proceso se puede realizar como la disposicion de las cajas S en el orden de S2, S3, S4, S1 indicado por S1 324a hasta S4 324d introduciendo una clave y datos que se someten al desplazamiento de rotacion de un byte sin cambiar la disposicion de las cajas S S1, S2, S3, S4 indicadas por S4 324e hasta S1 324h.
A traves de esas operaciones, el proceso de funcion F de una vuelta se completa en dos ciclos.
55 Aparato de conversion de datos con convertidor principal 320 y subconvertidor 330 dispuestos a la inversa.
5
10
15
20
25
30
35
40
45
50
La Fig. 6 es un diagrama que ilustra una configuracion y una operacion de un aparato de conversion de datos en el que el convertidor principal 320 y el subconvertidor 330 de la Fig. 1 se disponen a la inversa.
Incluso en el caso donde el aparato de conversion de datos tenga el convertidor principal 320 y el subconvertidor 330 en posicion inversa, el subconvertidor 330 usa la funcion de transferencia para transferir y sacar datos al convertidor principal 320, justo igual que el caso del aparato de conversion de datos mostrado en la Fig. 1. El uso de tal camino permite al convertidor principal 320 completar la conversion de datos basada en una funcion F de seis vueltas. De esta manera, el “camino para introducir datos sacados desde el subconvertidor 330 al selector 310” se hace redundante.
La clave intermedia (Clave KL) sacada a partir del registro de claves KL 240 no se introduce directamente al selector 310 sino que se introduce al subconvertidor 330 a traves del programador de claves 210 mediante el uso del camino desde el registro de claves KL 240 al programador de claves 210. El subconvertidor 330, tras la recepcion de una clave, transfiere la clave de entrada al convertidor principal 320 usando la funcion de transferencia.
La operacion de transferencia realizada de esta manera por el subconvertidor 330 permite eliminar la necesidad de los dos caminos del “camino para introducir la clave intermedia (Clave KL) sacada desde el registro de claves KL 240 al selector 310” y dos caminos y el “camino para introducir datos sacados desde el convertidor principal 320 al selector 310” o el “camino para introducir datos sacados desde el subconvertidor 330 al selector 310” mostrados en la Fig. 56 y la Fig. 60.
Aparato de conversion de datos con convertidor principal 320 y subconvertidor 330 dispuestos en paralelo.
La Fig. 7 es un diagrama que ilustra un aparato de conversion de datos que es diferente de los de la Fig. 1 y la Fig. 6 de manera que el convertidor principal 320 y el subconvertidor 330 se disponen en paralelo y hay un selector 340 que selecciona una senal de salida de entre dos senales de entrada.
Otros elementos distintos de los mencionados anteriormente son los mismos que los de la Fig. 1 y la Fig. 6.
El aparato de conversion de datos configurado de esta manera, que tiene el convertidor principal 320 y el subconvertidor 330 en una disposicion paralelo, requiere el selector 340 para seleccionar una de las senales sacadas desde el convertidor principal 320 y el subconvertidor 330. Por consiguiente, el convertidor principal 320 y el subconvertidor 330 reciben una senal que se selecciona por el selector 310 de entre una senal seleccionada por el selector 340 y pasa a traves del registro aritmetico 350 y P (texto plano o texto cifrado).
Por otra parte, la clave intermedia (Clave KL) sacada desde el registro de claves KL 240 no se introduce directamente al selector 310 en el momento de generacion de la clave de salida (Clave KA). La clave intermedia (Clave KL) se introduce al subconvertidor 330 a traves del programador de claves 210 por medio de un camino desde el registro de claves KL 240 al programador de claves 210. El subconvertidor 330, tras la recepcion de la clave, transfiere la clave recibida al convertidor principal 320 por medio de la funcion de transferencia. De esta manera, se puede eliminar la necesidad del “camino para introducir la clave intermedia sacada desde el registro de claves KL 240 al selector 310”.
Ademas, tambien se puede eliminar la necesidad de los dos caminos del “camino para introducir datos sacados desde el convertidor principal 320 al selector 310” o el “camino para introducir datos sacados desde el subconvertidor 330 al selector 310”.
Configuracion interna de generador de claves intermedias 40
Se dara ahora una descripcion de una configuracion interna del selector 6-1 KL 220 y el selector 6-1 KA 230 en el generador de claves intermedias 40.
La Fig. 8 es un diagrama que ilustra una configuracion interna del selector 6-1 KL 220 y el selector 6-1 KA 230 en el generador de claves intermedias 40.
La clave intermedia (Clave KL) que se mantiene en el registro de claves KL 240 en el generador de claves intermedias 40 se saca al programador de claves 210 y tambien se introduce al selector 6-1 KL 220 de nuevo. El selector 6-1 KL 220 incluye un selector 6-1 221.
En el selector 6-1 KL 220, la clave intermedia (Clave KL) introducida y tambien cuatro senales obtenidas a traves de desplazamientos de rotacion de la clave intermedia (Clave KL) mediante cuatro numeros arbitrarios diferentes se introducen al selector 6-1 221. Las cuatro senales a ser introducidas al mismo se pueden obtener posiblemente a traves de desplazamientos de rotacion de la clave intermedia en 17 y 15 bits a la izquierda y derecha, respectivamente, lo cual no se muestra en la figura. Las seis senales de la clave intermedia (Clave KL), las cuatro senales sometidas a desplazamientos de rotacion y la clave secreta se tratan como seis senales de entrada, el selector 6-1 221 selecciona una senal de salida de entre seis senales de entrada y tiene el registro de claves KL 240 que mantiene la senal de salida seleccionada como una nueva clave intermedia (Clave KL).
5
10
15
20
25
30
35
40
45
El metodo de generacion de una nueva clave de salida (Clave KA) a partir de la clave de salida (Clave KA) es el mismo que la generacion de una nueva clave intermedia (Clave KL) a partir de la clave intermedia (Clave KL).
La Fig. 9 es un diagrama que ilustra otra configuracion del generador de claves intermedias 40.
La Fig. 9, en contraste con la Fig. 8, muestra la comparticion de un selector indicado por un selector 4-1 223. Espedficamente, la clave intermedia (Clave KL) sacada desde el registro de claves KL 240 y la clave de salida (Clave KA) sacada desde el registro de claves KA 250 se introducen a un selector 2-1 224. El selector 2-1 224 selecciona una de las dos claves, entonces genera cuatro senales mediante los desplazamientos de rotacion de una clave seleccionada mediante cuatro numeros diferentes y entonces saca las cuatro senales al selector 4-1 223. El selector 4-1 223 selecciona una senal de entre las cuatro senales y entonces saca una senal seleccionada a un selector 3-1 KL 222 o un selector 3-1 KA 232.
El selector 3-1 KL 222 selecciona una clave de entre una clave seleccionada por el selector 4-1 223, la clave secreta y la clave intermedia (Clave KL) que se mantuvo en el registro de Claves KL 240 y el registro de claves KL 240 mantiene una clave seleccionada como una nueva clave intermedia.
De manera similar, el selector 3-1 KA 232 selecciona una clave de entre la clave seleccionada por el selector 4-1 223, la clave de salida (Clave KA) generada y la clave de salida (Clave KA) que se mantuvo en el registro de claves KA 250 y el registro de claves KL 240 mantiene una clave seleccionada como una nueva clave de salida (Clave KA).
En contraste con la configuracion mostrada en la Fig. 8 donde se necesitan diez unidades de selectores 2-1, la configuracion mostrada en la Fig. 9 solamente necesita ocho unidades de selectores 2-1. Por lo tanto, comparado con el generador de claves intermedias 40 de la configuracion mostrada en la Fig. 8, la de la configuracion mostrada en la Fig. 9 puede ahorrar dos unidades de selectores 2-1. De esta manera, se puede reducir el tamano del circuito.
Senalar que la configuracion del generador de claves intermedias 40 de la Fig. 8 tambien es aplicable al aparato de conversion de datos de cada realizacion de la presente invencion. Adicionalmente, la configuracion del generador de claves intermedias 40 de la Fig. 9 tambien es aplicable al aparato de conversion de datos de cada realizacion de la presente invencion.
Aun mas, la configuracion del generador de claves intermedias 40 de la Fig. 51 en una discusion posterior tambien es aplicable al aparato de conversion de datos de cada realizacion de la presente invencion.
Conversion subordinada - subconvertidor 330.
Se dara ahora una descripcion de una configuracion interna y una operacion del subconvertidor 330.
Aqm, se dara una descripcion del caso donde al menos una de la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 tiene la funcion de transferencia de claves segun esta realizacion.
Conversion subordinada - subconvertidor 330 - unidad de convertidor de datos 50 con funcion de transferencia de claves.
La Fig. 10 es un diagrama que ilustra una configuracion interna y una operacion del subconvertidor 330.
En contraste con la configuracion de la unidad de convertidor de datos 50 y la de la unidad de inversion de datos 70 de la tecnica relacionada tratada con referencia a la Fig. 58, las de esta realizacion incluyen una senal de transferencia para transferir una clave o datos y circuitos acompanados con la senal de transferencia, ademas.
Con la Fig. 10, la unidad de convertidor de datos 50 tiene la funcion de transferir una clave de entrada.
Espedficamente, una senal de transferencia para transferir una clave se introduce al inversor de datos 50. La unidad de convertidor de datos 50, tras la recepcion de la senal de transferencia, transfiere la clave recibida basada en la senal de transferencia.
Mas espedficamente, las senales de transferencia se controlan por un controlador 5. En el caso de transferir una clave, el controlador 5 saca una senal de transferencia de claves FL y una senal de mascara FL. La unidad de convertidor de datos 50 recibe la senal de transferencia de claves FL y la senal de mascara FL sacada desde el controlador 5.
Se daran ahora descripciones concretas de un proceso de transferencia de claves realizado por la unidad de convertidor de datos 50 usando estas senales de transferencia.
En el caso de transferencia de una clave, la senal de transferencia de claves FL se fija a 0 y se introduce a un circuito AND 51. El circuito AND 51 tambien recibe datos objetivo a ser cifrados/descifrados.
5
10
15
20
25
30
35
40
45
Dado que la senal de transferencia de claves FL es 0, los datos de entrada se inhiben por el circuito AND del circuito AND 51 y se anulan por ello. En otras palabras, cualquiera que sea el valor de datos de entrada que se asigne, los datos de salida del circuito AND 51 llegan a ser cero.
Los bits superiores de los datos asignados a un valor de 0 sacado desde el circuito AND 51 se introducen a un circuito OR 53 y los bits inferiores se introducen al circuito EXOR 55.
Mientras tanto, la senal de mascara FL se introduce a un circuito NOT 52. En el caso de transferencia de una clave, el controlador 5 fija la senal de mascara FL a 0, de manera que la senal de salida desde el circuito NOT 52 llega a ser 1. Por lo tanto, una senal de salida desde el circuito OR 53 que recibe de esta manera senales 0 y 1 llega a ser
1. El circuito AND 54 recibe 1 que es un valor sacado desde el circuito OR 53 y la informacion de la clave 1, de manera que los datos de salida desde el circuito AND 54 son siempre la clave 1.
La clave 1 sacada desde el circuito AND 54 se somete a un desplazamiento de rotacion de un bit a la izquierda y entonces se introduce al circuito EXOR 55. La clave 1 ya se ha sometido a un desplazamiento de rotacion a la izquierda de un bit a la derecha por adelantado en el programador de claves 210 como se muestra en la Fig. 3. Por lo tanto, la clave 1 sacada desde el circuito AND 54 puede restaurar su valor original para ser transferido por lo tanto sometido al desplazamiento de rotacion de 1 bit a la izquierda.
El circuito EXOR 55 recibe los bits inferiores, asignados a un valor de 0, sacados desde el circuito AND 51, de manera que una operacion aritmetica del circuito AND 55 saca la clave 1 como esta. Estos llegan a ser los bits inferiores de la senal de salida.
De esta manera, la unidad de convertidor de datos 50 puede sacar la clave 1 como esta como la senal de salida en base a la senal de transferencia de claves KL y la senal de mascara FL.
Del mismo modo, con la senal de transferencia de claves FL y la senal de mascara FL, la clave 2 se transfiere como esta como la senal de salida. La operacion se tratara mas adelante.
La senal de mascara FL es 0 como se menciono previamente. Por lo tanto, un circuito AND 58 recibe 0 y la clave 1 sacada desde el circuito EXOR 55 y siempre saca 0.
El circuito OR 57 recibe la clave 2 y 0 y por lo tanto su valor de salida es siempre la clave 2.
La clave 2 se introduce al circuito EXOR 56 donde se somete a una operacion XOR con 0 que son los datos superiores sacados por el circuito AND 51, de manera que una salida desde el circuito EXOR 56 es siempre la clave
2. Esta llega a ser los bits superiores de la senal de salida.
De esta manera, se introducen la senal de transferencia de claves FL y la senal de mascara FL y se pueden transferir la clave 1 y la clave 2 como estan. Senalar que, aunque el controlador 5 para controlar la senal de transferencia de claves FL y la senal de mascara de claves FL que son ambas la senal de transferencia, no se muestran en las Fig. 11, 12 y 14 hasta 33, las senales de transferencia van a ser controladas por el controlador 5 como el caso mostrado en la Fig. 10.
Conversion subordinada - subconvertidor 330 - unidad de inversor de datos 70 con funcion de transferencia de claves.
Se dara ahora una descripcion del caso donde la unidad de inversion de datos 70 se dota con la funcion para transferir una clave de entrada.
La Fig. 11 es un diagrama que ilustra el caso donde la unidad de inversor de datos 70 tiene la funcion de transferencia de claves.
Y el circuito AND 71 recibe una senal de transferencia de claves FL-1 y datos.
Como la senal de transferencia de claves FL mencionada anteriormente, la senal de transferencia de claves FL-1 mantiene 0 y por lo tanto los datos introducidos al circuito AND 71 se inhiben y de esta manera se anulan, de manera que los datos de salida desde el circuito AND 71 se fijan a 0.
Como la senal de mascara FL mencionada anteriormente, la senal de mascara FL-1 es 0 y por lo tanto ambas de las senales introducidas a un circuito AND 73 son 0, de manera que los datos de salida desde el circuito AND 73 se fijan a 0.
El circuito OR 74, que recibe los datos de salida desde el circuito AND 73, 0 y la clave 3, saca la clave 3.
El circuito EXOR 75, que recibe los bits superiores, 0, de los datos de salida, 0, desde el circuito AND 71 y por lo tanto saca la clave 3. Estos llegan a ser los bits superiores de la senal de salida.
5
10
15
20
25
30
35
40
45
50
Un circuito OR 78, que recibe un valor 1, que es un valor invertido de la senal de mascara FL-1 0 por un circuito NOT 72 y la clave 3 y por lo tanto saca 1. El circuito AND 77, que recibe los datos de salida 1 desde el circuito OR 78 y la clave 4 y por lo tanto saca la clave 4. La clave 4 se somete a un desplazamiento de rotacion de un bit a la izquierda y entonces se introduce al circuito EXOR 76. Aqrn, de nuevo, la clave 4 ya se ha sometido al desplazamiento de rotacion de un bit por adelantado a la derecha por el programador de claves 210 y entonces se introduce a la unidad de inversor de datos 70. Por lo tanto, la clave 4 puede restaurar su valor original sometida de esta manera al desplazamiento de rotacion de un bit a la izquierda aqrn.
El circuito EXOR 76, que recibe los bits inferiores, 0, de datos de salida desde el circuito AND 71 y la clave 4, saca la clave 4. Estos llegan a ser los bits inferiores de los datos de salida.
De esta manera, la unidad de inversion de datos 70 puede sacar una clave de entrada (clave 3, clave 4) como esta tras la recepcion de las senales de transferencia, la senal de transferencia de claves FL-1 y la senal de mascara FL-1.
Conversion subordinada - subconvertidor 330 - unidad de convertidor de datos 50 y unidad de inversor de datos 70 ambas con la funcion de transferencia de claves.
Se dara ahora una descripcion del caso donde tanto la unidad de convertidor de datos 50 como la unidad de inversor de datos 70 se dotan con la funcion para transferir una clave de entrada.
La Fig. 12 es un diagrama que ilustra una configuracion interna del subconvertidor 330 en el caso donde la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 se dotan con la funcion de transferencia de claves.
La configuracion y operacion de la unidad de convertidor de datos 50 es la misma que la de la unidad de convertidor de datos 50 de la Fig. 10 y la configuracion y la operacion de la unidad de inversor de datos 70 es la misma que la de la unidad de inversor de datos 70 de la Fig. 11 y por lo tanto no se tratara aqrn en detalle.
Al menos una de la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 dotada de esta manera con la funcion de transferencia de claves permite eliminar la necesidad del camino para transferir una clave desde el registro de claves KL 240 al selector 310 mostrado en la Fig. 56 y la Fig. 60, de manera que la clave se puede introducir al subconvertidor 330 desde el registro de claves KL 240 a traves del programador de claves 210. Adicionalmente, la senal de transferencia para transferir una clave que se introduce en el subconvertidor 330 permite al subconvertidor 330 transferir la clave al selector 310.
Haciendo posible de esta manera la transferencia de claves usando el camino, se puede reducir un numero total de selectores en el aparato de conversion de datos. Mas particularmente, segun el aparato de conversion de datos de esta realizacion, la funcion se comparte generando la clave extendida por el generador de claves intermedias 40 y realizando conversion de datos por el convertidor principal 320 y el subconvertidor 330 como se muestra en la Fig. 2 a fin de implementar un aparato de conversion de datos compacto. Entonces, el uso del “camino para transferir la clave intermedia (Clave kL) desde el registro de claves KL 240 al selector 310 a traves del programador de claves 210 por el subconvertidor 330 y entonces al convertidor principal 320 a traves del registro aritmetico 350” de esta realizacion puede frenar el aumento en el numero de selectores, en lugar del uso del “camino para transferir la clave intermedia (Clave KL) desde el registro de Claves KL 240 al selector 310 y entonces al convertidor principal 320 a traves del registro aritmetico 350” mostrado en la Fig. 56 y la Fig. 60.
De esta manera frenar el aumento en el numero de selectores en el aleatorizador de datos del aparato de conversion de datos para cifrado de bloques y por ello reducir el numero total de puertas en los circuitos permite reducir el tamano de todos los circuitos integrados del circuito y el consumo de potencia. Por lo tanto, el aparato de conversion de datos para el cifrado de bloques de esta realizacion se puede implementar eficazmente incluso en dispositivos moviles tales como telefonos celulares para los cuales se desea energicamente la reduccion de tamano junto con un consumo de potencia bajo.
Con referencia a la Fig. 10 hasta la Fig. 33, las claves de entrada pueden ser diferentes una de otra o de otro modo las mismas. La senal de transferencia de claves FL y la senal de transferencia de claves FL-1 tambien pueden ser las mismas senales. La senal de mascara FL y la senal de mascara FL-1 tambien pueden ser las mismas senales.
Realizacion 2.
En esta realizacion, se dara una descripcion del caso donde al menos una de la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 se dota con la funcion de transferencia de datos.
Conversion subordinada - subconvertidor 330 - unidad de convertidor de datos 50 con funcion de transferencia de datos.
En esta realizacion, se dara una descripcion del caso donde el subconvertidor 330 se dota con la funcion de transferencia de datos.
La Fig. 13 es un diagrama que ilustra una configuracion interna del subconvertidor 330 en el que la unidad de convertidor de datos 50 se dota con la funcion de transferencia de datos.
5
10
15
20
25
30
35
40
45
50
El controlador 5 introduce la senal de transferencia de datos FL a la unidad de convertidor de datos 50 como una senal para transferir datos. Se asigna un valor 0 a la senal de transferencia de datos FL introducida a la unidad de convertidor de datos 50. Esta senal se introduce a un circuito AND 59 y un circuito AND 60.
Un circuito AND 54 recibe los bits superiores de datos de entrada y la clave 1. Los datos de salida desde el circuito AND 54 no estan especificados, dependiendo del valor de los datos de entrada. Por otra parte, una senal de salida desde el circuito AND 60 es siempre 0, con independencia del valor de la senal de salida desde el circuito AND 54, incluso con los datos de entrada obtenidos a traves de un desplazamiento de rotacion de un bit a la izquierda de los datos de salida, debido a que la otra senal de entrada, la senal de transferencia de datos FL, mantiene un valor de 0. Los datos de salida, 0, desde el circuito AND 60 se introducen al circuito EXOR 55, donde los datos de entrada y los bits inferiores se someten a una operacion XOR. Dado que la salida desde el circuito AND 60 es 0, los bits inferiores de los datos de entrada se sacan al circuito EXOR 55 como los datos inferiores de la senal de salida.
Mientras tanto, los datos de salida desde el circuito EXOR 55 y una clave se introducen al circuito OR 57 como senales de entrada. Senalar aqrn que una senal de salida desde el circuito OR 57 no esta especificada, pero la senal de transferencia de datos FL se fija a 0, de manera que una senal de salida desde un circuito AND 59 es 0. En el circuito EXOR 56, los bits superiores de datos de entrada y los datos de salida, 0, desde el circuito AND 59 se someten a una operacion XOR. Por lo tanto, los bits superiores de los datos de entrada se sacan como los datos superiores de una senal de salida.
De esta manera, la unidad de convertidor de datos 50, tras la recepcion de la senal de transferencia de datos FL como la senal de transferencia, puede recibir datos de salida como estan, con independencia de la entrada de la clave.
Senalar que la configuracion de la unidad de inversor de datos 70 de la Fig. 13 es la misma que la de la unidad de inversor de datos 70 mostrada en la Fig. 57 y por lo tanto no se tratara aqrn en detalle.
Conversion subordinada - subconvertidor 330 - unidad de inversor de datos 70 con funcion de transferencia de datos.
La Fig. 14 es un diagrama que ilustra una configuracion interna del subconvertidor 330 en el que la unidad de inversor de datos 70 tiene la funcion de transferencia de datos.
La unidad de inversor de datos 70 recibe la senal de transferencia de datos FL-1 para transferir datos. En el caso de transferencia de datos, se asigna 0 a la senal de transferencia de datos FL-1, de manera que un circuito AND 79 saca 0 cualquiera que sea el valor que se asigne a una senal de salida desde el circuito OR 74. Por lo tanto, el circuito EXOR 75 saca los bits superiores de datos de entrada como estan como los datos superiores de la senal de salida.
La senal de transferencia de datos FL-1 se introduce a un circuito AND 80, de manera que una senal de salida desde el circuito AND 80 es 0, con independencia del valor de una senal de salida desde el circuito AND 77. De esta manera, los bits inferiores de datos de entrada se sacan como estan en el circuito EXOR 76 como los datos inferiores de la senal de salida.
De esta manera, la unidad de inversor de datos 70 puede transferir datos como estan como la senal de salida.
Conversion subordinada - subconvertidor 330 - unidad de convertidor de datos 50 y unidad de inversor de datos 70 ambas con funcion de transferencia de datos.
La Fig. 15 es un diagrama que ilustra una configuracion interna del subconvertidor 330 en el que la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 ambas se dotan con la funcion de transferencia de datos.
La unidad de convertidor de datos 50 es la misma en configuracion que el aparato de conversion de datos de la Fig. 13 y la unidad de inversor de datos 70 es la misma en configuracion que la unidad de inversor de datos 70 de la Fig. 14. Por lo tanto, la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 de la Fig. 15 pueden sacar respectivamente datos introducidos como estan.
El subconvertidor 330 que tiene de esta manera la funcion para transferir datos de entrada como estan al selector 310 puede eliminar la necesidad del camino para transferir datos de salida desde el convertidor principal 320 al selector 310 mostrado en la Fig. 56.
Como se muestra en la Fig. 60, en el proceso de cifrado/descifrado de datos, en el caso donde el convertidor principal 320 tiene la funcion F durante menos de una vuelta, los datos intermedios van a ser mantenidos en el registro aritmetico 350 durante un periodo de tiempo dado en orden para que el convertidor principal 320 procese la conversion no lineal basada en una funcion F para una vuelta, que se trato anteriormente. Esto indica que el convertidor principal 320 necesita su propio camino en bucle, que corresponde al camino en bucle de la Fig. 60 para
5
10
15
20
25
30
35
40
45
50
sacar los datos intermedios sacados desde el convertidor principal 320 al registro aritmetico 350 a traves del selector 310.
El uso de la funcion de transferencia de datos del subconvertidor 330 de esta realizacion, por otra parte, puede eliminar la necesidad del camino en bucle antes mencionado. Mas particularmente, los datos intermedios sacados desde el convertidor principal 320 se transfieren por el subconvertidor 330 y se introducen al selector 310. El selector 310 selecciona los datos intermedios recibidos y por ello los datos intermedios se transfieren al convertidor principal 320.
El uso de este camino de datos permite reducir el numero de senales de entrada al selector 310, en contraste con el numero de senales de entrada al selector 310 mostrado en la Fig. 56 o la Fig. 60. Por lo tanto, el aumento de selectores se puede frenar y de esta manera se puede reducir el numero de selectores.
De manera similar, el aparato de conversion de datos de la Fig. 6 y la Fig. 7 se permite que elimine la necesidad del camino desde el convertidor principal 320 al selector 310, permitiendo por ello al dispositivo llegar a ser compacto. Adicionalmente, la reduccion en el numero de selectores permite lograr un consumo de potencia bajo.
Senalar que la senal de transferencia de datos FL y la senal de transferencia de datos FL-1 pueden ser las mismas senales.
Realizacion 3.
En esta realizacion, se dara una descripcion del caso donde al menos una de la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 se dota con la funcion de transferencia de claves y la funcion de transferencia de datos.
Conversion subordinada - subconvertidor 330 - unidad de convertidor de datos 50 con funcion de transferencia de claves y funcion de transferencia de datos y unidad de inversor de datos 70 con funcion de transferencia de claves.
La Fig. 16 es un diagrama que ilustra una configuracion interna del subconvertidor 330 en el que la unidad de convertidor de datos 50 se dota con la funcion de transferencia de claves y la funcion de transferencia de datos y la unidad de inversor de datos 70 se dota con la funcion de transferencia de claves.
La configuracion y la operacion de la unidad de inversor de datos 70 es la misma que las de la unidad de inversor de datos 70 de la Fig. 11 con la funcion de transferencia de claves y por lo tanto no se trataran aqrn.
La configuracion y la operacion de la unidad de convertidor de datos 50 corresponden a la combinacion de las de la unidad de convertidor de datos 50 de la Fig. 10 con la funcion de transferencia de claves y las de la unidad de convertidor de datos 50 de la Fig. 13 con la funcion de transferencia de datos y por lo tanto no se trataran aqrn.
Con la unidad de convertidor de datos 50, la senal de transferencia de claves FL tiene la funcion de inhibir y de esta manera anular datos de entrada y la senal de mascara FL tiene la funcion de dejar pasar a traves una clave de entrada.
La senal de transferencia de datos FL tiene la funcion de anular una clave de entrada para permitir pasar a traves datos.
Por consiguiente, en el caso donde tanto la senal de transferencia de claves FL como la senal de mascara FL ambas que mantienen 0 como la senal de transferencia para transferir una clave, los datos no se pueden transferir, de manera que la senal de trasferencia de datos fL no puede mantener 0 como una senal de transferencia para transferir datos. De manera similar, en el caso donde la senal de transferencia de datos FL mantiene 0 como la senal de transferencia para transferir datos, no se puede transferir una clave, de manera que la senal de transferencia de claves FL y la senal de mascara FL no puede mantener 0 como la senal de transferencia para transferir una clave.
Entonces, en el caso donde ninguna de la senal de transferencia de claves FL, la senal de mascara FL, la senal de transferencia de datos FL, una senal de transferencia de claves FL-1 y una senal de mascara FL-1 mantienen 0 como la senal de transferencia, la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 realizan una conversion lineal de datos de entrada, la cual suponen hacer.
En primer lugar, se dara una descripcion de una operacion de la unidad de convertidor de datos 50 para transferir una clave.
La unidad de convertidor de datos 50 recibe 0 como la senal de transferencia de claves FL y 0 como la senal de mascara FL. Dado que los datos no van a ser transferidos, la senal de transferencia de datos FL permanece sin cambios teniendo 1.
En primer lugar, el circuito AND 51 inhibe y de esta manera anula datos por la senal de transferencia de claves FL. La clave 1 pasa a traves del circuito AND 54 directamente, entonces, se somete a un desplazamiento de rotacion de un bit a la izquierda y entonces se introduce al circuito AND 60. Dado que la senal de transferencia de datos FL es 1,
5
10
15
20
25
30
35
40
45
50
la clave 1 pasa a traves del circuito AND 60 directamente. En el circuito EXOR 55, la clave 1 se somete a una operacion XOR con 0, que es los bits inferiores de datos de salida desde el circuito AND 51. La clave 1 se saca como los datos inferiores de la senal de salida. La clave 2 pasa a traves del circuito OR 57 por 0, que se saca desde el circuito AND 58, pasa a traves del circuito AND 59 por la senal de transferencia de datos FL, entonces se somete a una operacion xOr con 0 que es el bit inferior de los datos de salida sacados desde el circuito AND 51 en el circuito EXOR 56, pasando por ello tambien a traves del circuito XOR 56 y llegan a ser los datos superiores de la senal de salida. La unidad de convertidor de datos 50 puede transferir de esta manera una clave (clave 1, clave 2) como esta.
A continuacion, se dara ahora una descripcion de una operacion de la unidad de convertidor de datos 50 para transferir datos.
La senal de entrada de la senal de transferencia de datos FL es 0. La senal de transferencia de claves FL y la senal de mascara FL continua teniendo 1.
El circuito AND 51 permite pasar a traves datos y los bits inferiores de los datos pasados a traves se introducen al circuito EXOR 55. El circuito AND 60 recibe 0 de la senal de transferencia de datos FL, de manera que 0 se saca desde el circuito AND 60. Los bits inferiores de los datos introducidos al circuito EXOR 55 pasan a traves del circuito EXOR 55 y entonces se sacan como los datos inferiores de la senal de salida.
De manera similar, el circuito AND 59 saca 0 debido a que la senal de transferencia de datos FL es 0. Los bits inferiores de datos introducidos al circuito EXOR 56 pasan a traves del circuito EXOR 56 y entonces se sacan como los datos superiores de la senal de salida.
De esta manera, la unidad de convertidor de datos 50 puede transferir los datos como estan.
Por lo tanto, la senal de transferencia de claves, tal como la senal de transferencia de claves FL y la senal de
1 J 1 transferencia de claves FL y la senal de mascara que tiene la senal de mascara FL y la senal de mascara FL ,
trasfieren una clave y la senal de transferencia de datos FL transfiere datos.
Conversion subordinada - subconvertidor 330 - unidad de convertidor de datos 50 con funcion de transferencia de claves y unidad de inversor de datos 70 con funcion de transferencia de claves y funcion de transferencia de datos.
La Fig. 17 es un diagrama que ilustra una configuracion interna del subconvertidor 330 en el que la unidad de convertidor de datos 50 se dota con la funcion de transferencia de claves y la unidad de inversor de datos 70 se dota con la funcion de transferencia de claves y la funcion de transferencia de datos.
La configuracion y la operacion de la unidad de convertidor de datos 50 son las mismas que las del aparato de conversion de datos de la Fig. 10 con la funcion de transferencia de claves y por lo tanto no se trataran aqrn.
La unidad de inversor de datos 70 opera igual que lo hace la unidad de convertidor de datos 50 de la Fig. 16. De esta manera, la operacion de la unidad de inversor de datos 70, tratada anteriormente, no se reiterara aqrn en detalle.
Conversion subordinada - subconvertidor 330 - unidad de convertidor de datos 50 y unidad de inversor de datos 70 ambas con funcion de transferencia de claves y funcion de transferencia de datos.
La Fig. 18 es un diagrama que ilustra una configuracion del subconvertidor en el que la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 se dotan ambas con la funcion de transferencia de claves y la funcion de transferencia de datos.
Las operaciones de transferencia realizadas por la unidad de convertidor de datos 50 y la unidad de inversor de datos 70, tratadas anteriormente, no se reiteraran aqrn. En esta realizacion, tanto la unidad de convertidor de datos 50 como la unidad de inversor de datos 70 se dotan con la funcion de transferencia de claves y la funcion de transferencia de datos, de manera que se permite al aparato de conversion de datos que realice un proceso sofisticado de transferencia de una clave y datos.
Conversion subordinada - subconvertidor 330 - unidad de convertidor de datos 50 con funcion de transferencia de claves y funcion de transferencia de datos.
La Fig. 19 es un diagrama que ilustra una configuracion del subconvertidor 330 en el que la unidad de convertidor de datos 50 se dota con la funcion de transferencia de claves y la funcion de transferencia de datos y la unidad de inversor de datos 70 no tiene ninguna de esas funciones de transferencia.
Las operaciones de la unidad de convertidor de datos 50 y la unidad de inversor de datos 70, tratadas anteriormente, no se reiteraran aqrn.
Conversion subordinada - subconvertidor 330 -unidad de inversor de datos 70 con funcion de transferencia de claves y funcion de transferencia de datos.
5
10
15
20
25
30
35
40
45
50
La Fig. 20 es un diagrama que ilustra una configuracion del subconvertidor 330 en el que la unidad de inversor de datos 70 se dota con la funcion de transferencia de claves y la funcion de transferencia de datos y la unidad de convertidor de datos 50 no se dota con ninguna de esas funciones de transferencia.
Las operaciones detalladas de la unidad de convertidor de datos 50 y la unidad de inversor de datos 70, tratadas anteriormente, no se reiteraran aqrn.
Conversion subordinada - subconvertidor 330 - unidad de convertidor de datos 50 con funcion de transferencia de claves y funcion de transferencia de datos y unidad de inversor de datos 70 con funcion de transferencia de datos.
La Fig. 21 es un diagrama que ilustra una configuracion del subconvertidor 330 en el que la unidad de convertidor de datos 50 se dota tanto con la funcion de transferencia de claves como la funcion de trasferencia de datos y la unidad de inversor de datos 70 se dota con la funcion de transferencia de datos.
Las operaciones de la unidad de convertidor de datos 50 y la unidad de inversor de datos 70, tratadas anteriormente, no se reiteraran aqrn.
Conversion subordinada - subconvertidor 330 - unidad de inversor de datos 70 con funcion de transferencia de claves y funcion de transferencia de datos y unidad de convertidor de datos 50 con funcion de transferencia de datos.
La Fig. 22 es un diagrama que ilustra una configuracion del subconvertidor 330 en el que la unidad de convertidor de datos 50 se dota con la funcion de transferencia de datos y la unidad de inversor de datos 70 se dota con la funcion de transferencia de claves y la funcion de transferencia de datos.
Las operaciones de la unidad de convertidor de datos 50 y la unidad de inversor de datos 70, tratadas anteriormente, no se reiteraran aqrn.
Conversion subordinada - subconvertidor 330 - unidad de convertidor de datos 50 con funcion de transferencia de datos y unidad de inversor de datos 70 con funcion de transferencia de claves.
La Fig. 23 es un diagrama que ilustra una configuracion del subconvertidor 330 en el que la unidad de convertidor de datos 50 se dota con la funcion de transferencia de datos y la unidad de inversor de datos 70 se dota con la funcion de transferencia de claves.
Las operaciones respectivas de las mismas, tratadas anteriormente, no se reiteraran aqrn.
Conversion subordinada - subconvertidor 330 - unidad de convertidor de datos 50 con funcion de transferencia de claves y unidad de inversor de datos 70 con funcion de transferencia de datos.
La Fig. 24 es un diagrama que ilustra una configuracion del subconvertidor 330 en el que la unidad de convertidor de datos 50 se dota con la funcion de transferencia de claves y la unidad de inversor de datos 70 se dota con la funcion de transferencia de datos.
Las operaciones respectivas de las mismas, tratadas anteriormente, no se reiteraran aqrn.
Conversion subordinada - subconvertidor 330 - unidad de inversor de datos 70 y unidad de convertidor de datos 50 conectadas en serie - unidad de convertidor de datos 50 y unidad de inversor de datos 70 ambas con funcion de transferencia de datos.
La Fig. 25 es un diagrama que ilustra una configuracion en la que la unidad de inversor de datos 70 y la unidad de convertidor de datos 50 se conectan en serie y la unidad de inversor de datos 70 se dota con la funcion de transferencia de datos y la unidad de convertidor de datos 50 tambien se dota con la funcion de transferencia de datos.
Las operaciones internas respectivas de las mismas, tratadas anteriormente, no se reiteraran aqrn.
Con la configuracion mostrada en la Fig. 25, los datos transferidos por la unidad de inversor de datos 70 se introducen a la unidad de convertidor de datos 50 y entonces se sacan como la senal de salida que se transfiere ademas por la unidad de convertidor de datos 50.
La unidad de inversor de datos 70 y la unidad de convertidor de datos 50 dispuestas en serie de esta manera y conectadas en serie permiten la conversion de datos lineal no solamente realizada tanto por la unidad de convertidor de datos 50 como la unidad de inversor de datos 70 sino realizada tambien por la unidad de inversor de datos 70 sola o por la unidad de convertidor de datos 50 sola. Mas particularmente, es posible que los datos lineales convertidos por la unidad de inversor de datos 70 se introduzcan a la unidad de convertidor de datos 50, donde los datos recibidos se transfieren sin realizar una conversion lineal. Tambien es posible que la unidad de inversor de datos 70 transfiera datos recibidos a la unidad de convertidor de datos 50 y la unidad de convertidor de datos 50 sola realice una conversion de datos lineal.
5
10
15
20
25
30
35
40
45
50
Por consiguiente, esta es la configuracion que es eficaz para el caso donde los datos vayan a ser convertidos por la unidad de convertidor de datos 50 sola o la unidad de inversor de datos 70 sola. El mismo efecto se puede lograr por los subconvertidores 330 mostrados en la Fig. 26 hasta la Fig. 30 en discusiones posteriores.
Conversion subordinada - subconvertidor 330 - unidad de convertidor de datos 50 y unidad de inversor de datos 70 conectadas en serie - unidad de convertidor de datos 50 y unidad de inversor de datos 70 ambas con funcion de transferencia de datos.
La Fig. 26 es una configuracion del subconvertidor 330 en el que la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 de la Fig. 25 invierten la posicion.
La operacion y el efecto de las mismas son los mismos que los del subconvertidor 330 de la Fig. 25 y por lo tanto no se trataran aqrn.
Conversion subordinada - subconvertidor 330 - unidad de convertidor de datos 50 y unidad de inversor de datos 70 conectadas en serie - unidad de convertidor de datos 50 con funcion de transferencia de claves y funcion de transferencia de datos y unidad de inversor de datos 70 ambas con funcion de transferencia de datos.
La Fig. 27 es un diagrama que ilustra una configuracion del subconvertidor 330 en el que la unidad de convertidor de datos 50 de la Fig. 26 se anade con la funcion de transferencia de claves.
Las configuraciones internas y operaciones de la unidad de convertidor de datos 50 y la unidad de inversor de datos 70, tratadas anteriormente, no se reiteraran aqrn.
Conversion subordinada - subconvertidor 330 - unidad de inversor de datos 70 y unidad de convertidor de datos 50 conectadas en serie - unidad de convertidor de datos 50 con funcion de transferencia de claves y funcion de transferencia de datos y unidad de inversor de datos 70 ambas con funcion de transferencia de datos.
La Fig. 28 muestra una configuracion del subconvertidor 330 en el que la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 invierten la posicion.
Las configuraciones internas y las operaciones de la unidad de convertidor de datos 50 y la unidad de inversor de datos 70, tratadas anteriormente, no se reiteraran aqrn.
Conversion subordinada - subconvertidor 330 - unidad de convertidor de datos 50 y unidad de inversor de datos 70 conectadas en serie - unidad de convertidor de datos 50 con funcion de transferencia de datos y unidad de inversor de datos 70 con funcion de transferencia de claves y funcion de transferencia de datos.
La Fig. 29 es un diagrama que ilustra una configuracion en la que la unidad de inversor de datos 70 de la Fig. 26 se anade con la funcion de transferencia de claves.
Las configuraciones y operaciones de la unidad de convertidor de datos 50 y la unidad de inversor de datos 70, tratadas anteriormente, no se reiteraran aqrn.
Conversion subordinada - subconvertidor 330 - unidad de inversor de datos 70 y unidad de convertidor de datos 50 conectadas en serie - unidad de convertidor de datos 50 con funcion de transferencia de datos y unidad de inversor de datos 70 con funcion de transferencia de claves y funcion de transferencia de datos.
La Fig. 30 muestra una configuracion del subconvertidor 330 en el que la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 de la Fig. 29 invierten la posicion.
Las configuraciones internas y las operaciones de las mismas, tratadas anteriormente, no se reiteraran aqrn.
De esta manera, la senal de transferencia de claves FL y la senal de transferencia de claves FL-1 tienen la funcion de
J 1
inhibir y de esta manera anular datos de entrada y la senal de mascara FL y la senal de mascara FL tienen la funcion de permitir pasar a traves una clave de entrada.
Entonces, la senal de transferencia de datos FL y la senal de transferencia de datos FL-1 tienen la funcion de anular una clave de entrada para permitir pasar a traves datos.
Todas de las seis senales mencionadas anteriormente son senales de transferencia. Tras la no recepcion de esas senales de transferencia, la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 realizan la conversion lineal de datos que suponen hacer, como se muestra en la tecnica relacionada.
Conversion subordinada - subconvertidor 330 - unidad de convertidor de datos 50 y unidad de inversor de datos 70 conectadas en serie - unidad de convertidor de datos 50 y unidad de inversor de datos 70 ambas con funcion de transferencia de claves y funcion de transferencia de datos.
La Fig. 62 incluye la configuracion de la unidad de convertidor de datos 50 mostrada en la Fig. 27 y la configuracion de la unidad de inversor de datos 70 mostrada en la Fig. 29. Mas particularmente, la unidad de convertidor de datos
5
10
15
20
25
30
35
40
45
50
50 y la unidad de inversor de datos 70 conectadas en serie ambas se dotan con la funcion de transferencia de claves y la funcion de transferencia de datos.
Las configuraciones y las operaciones de la unidad de convertidor de datos 50 y la unidad de inversor de datos 70, tratadas anteriormente, no se reiteraran aqm.
Conversion subordinada - subconvertidor 330 - unidad de inversor de datos 70 y unidad de convertidor de datos 50 conectadas en serie - unidad de convertidor de datos 50 y unidad de inversor de datos 70 ambas con funcion de transferencia de claves y funcion de transferencia de datos.
La Fig. 63 incluye una configuracion del subconvertidor 330 en el cual la unidad de convertidor de datos 50 y unidad de inversor de datos 70 de la Fig. 62 invierten la posicion.
Las configuraciones internas y las operaciones de las mismas, tratadas anteriormente, no se reiteraran aqm. Realizacion 4.
En esta realizacion, se dara una descripcion de una configuracion y una operacion de una 1/2 unidad de subconvertidor 90, en la cual la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 se implementan en un circuito compartido, que se dota con la funcion de transferencia de claves y la funcion de transferencia de datos.
Conversion subordinada - subconvertidor 330 - 1/2 unidad de subconvertidor 90 con funcion de transferencia de claves y funcion de transferencia de datos.
La Fig. 31 es un diagrama que ilustra una configuracion del subconvertidor 330 en el que la 1/2 unidad de subconvertidor 90 se anade con la funcion de transferencia de claves y la funcion de transferencia de datos.
En contraste con la Fig. 59 explicada en la tecnica relacionada, se anaden la senal de transferencia de claves, la senal de mascara y la senal de transferencia de datos. Entonces, en conexion con esas senales de transferencia que se introducen, se proporcionan circuitos adicionales para transferir una clave y datos.
En primer lugar, una senal de conmutacion es una senal para conmutar entre la unidad de convertidor de datos 50 y la unidad de inversor de datos 70. En el caso donde la senal A se selecciona por la senal de conmutacion de entre la senal A y la senal E introducidas al selector 2-1 99a y entonces se saca como la senal de salida B y la senal C se selecciona por la senal de conmutacion de entre la senal C y la senal F introducidas al selector 2-1 99b y entonces se saca como la senal de salida D, la 1/2 unidad de subconvertidor 90 realiza la misma conversion de datos que la realizada por la unidad de convertidor de datos 50.
Por otra parte, en el caso donde el selector 2-1 99a seleccione la senal E como la senal de salida B mediante la senal de conmutacion y el selector 2-1 99b seleccione la senal F como la senal de salida B mediante la senal de conmutacion, la 1/2 unidad de subconvertidor 90 realiza la misma conversion de datos que la realizada por la unidad de inversor de datos 70.
En el caso donde la 1/2 unidad de subconvertidor 90 funcione como la unidad de convertidor de datos 50 mediante la senal de conmutacion, la operacion ilustrada en la Fig. 31 es la misma que la realizada por la unidad de convertidor de datos 50 mostrada en la Fig. 18. Espedficamente, la senal de transferencia de claves corresponde a la senal de transferencia de claves FL de la Fig. 18, la senal de mascara corresponde a la senal de mascara FL de la Fig. 18 y la senal de transferencia de datos corresponde a la senal de transferencia de datos FL de la Fig. 18.
Mas particularmente, cada circuito corresponde como sigue. Un circuito 98 corresponde al circuito AND 51 (Fig. 18). Un circuito 91 corresponde al circuito EXOR 55 (Fig. 18). Un circuito 95 corresponde al circuito AND 60 (Fig. 18). Un circuito 101 corresponde al circuito AND 54 (Fig. 18). Un circuito 94 corresponde al circuito OR 53 (Fig. 18). Un circuito 100 corresponde al circuito NOT 52 (Fig. 18). Un circuito 96 corresponde al circuito AND 58 (Fig. 18). Un circuito 92 corresponde al circuito OR 57 (Fig. 18). Un circuito 97 corresponde al circuito AND 59 (Fig. 18). Un circuito 93 corresponde al circuito EXOR 56 (Fig. 18).
La 1/2 unidad de subconvertidor 90, con tal correspondencia, puede cumplir la funcion de la unidad de convertidor de datos 50 de la Fig. 18. Mas particularmente, llega a ser posible que la 1/2 unidad de subconvertidor 90 realice una conversion de datos y tambien transfiera la clave (clave 1, clave 2), tras la recepcion de la senal de transferencia de claves, sacando una clave de entrada como la senal de salida. Estas operaciones tratadas anteriormente son las mismas que las de la unidad de convertidor de datos 50 de la Fig. 18 y por lo tanto no se trataran aqm.
En el caso donde la 1/2 unidad de subconvertidor 90 funcione como la unidad de inversor de datos 70 mediante la senal de conmutacion, la operacion de la 1/2 unidad de subconvertidor 90 de la Fig. 31 es la misma que la de la unidad de inversor de datos 70 de la Fig. 18. Espedficamente, la senal de transferencia de claves corresponde a la senal de transferencia de claves FL-1 de la Fig. 18, la senal de mascara corresponde a la senal de mascara FL-1 de la Fig. 18 y la senal de transferencia de datos corresponde a la senal de transferencia de datos FL-1 de la Fig. 18.
5
10
15
20
25
30
35
40
45
50
Mas particularmente, cada circuito corresponde como sigue. El circuito 98 corresponde al circuito AND 71 (Fig. 18), el circuito 91 corresponde al circuito EXOr 76 (Fig. 18), el circuito 95 corresponde al circuito AND 80 (Fig. 18), el circuito 101 corresponde al circuito AND 77 (Fig. 18), el circuito 94 corresponde al circuito OR 78 (Fig. 18), el circuito 96 corresponde al circuito AND 73 (Fig. 18), el circuito 92 corresponde al circuito OR 74 (Fig. 18), el circuito 97 corresponde al circuito AND 79 (Fig. 18) y el circuito 93 corresponde al circuito EXOR 75 (Fig. 18).
La 1/2 unidad de subconvertidor 90, con tal correspondencia, puede cumplir la funcion de la unidad de inversor de datos 70 de la Fig. 18. Mas particularmente, llega a ser posible que la 1/2 unidad de subconvertidor 90 realice una conversion de datos inversa y tambien transfiera la clave (clave 3, clave 4), tras la recepcion de la senal de transferencia de claves, sacando una clave de entrada como la senal de salida. Esas operaciones tratadas anteriormente son las mismas que las de la unidad de inversor de datos 70 de la Fig. 18 y por lo tanto no se trataran aqrn.
Conversion subordinada - subconvertidor 330 - 1/2 unidad de subconvertidor 90 con funcion de transferencia de datos.
La Fig. 32 es un diagrama que ilustra una configuracion del subconvertidor en la que la 1/2 unidad de subconvertidor 90 se anade con la funcion de transferencia de datos.
Como el caso de la Fig. 31, la 1/2 unidad de subconvertidor 90 tiene la misma funcion que la de la unidad de convertidor de datos 50 de la Fig. 13 en el caso donde la senal A se seleccione por el selector 2-1 99a y la senal C se seleccione por el selector 2-1 99b. En este caso, la senal de transferencia de datos corresponde a la senal de transferencia de datos FL.
La 1/2 unidad de subconvertidor 90, por otra parte, tiene la misma funcion que la de la unidad de inversor de datos 70 de la Fig. 14 en el caso donde la senal E se seleccione por el selector 2-1 99a y la senal F se seleccione por el selector 2-1 99b mediante la senal de conmutacion. En este caso, la senal de transferencia de datos corresponde a la senal de transferencia de datos FL-1.
La 1/2 unidad de subconvertidor 90, configurada de esta manera, puede realizar una conversion de datos y tambien transferir datos sin realizar la conversion de datos sacando datos tras la recepcion de la senal de transferencia indicando una transferencia de datos.
Esas operaciones, tratadas anteriormente, no se reiteraran aqrn.
Conversion subordinada - subconvertidor 330 - 1/2 unidad de subconvertidor 90 con funcion de transferencia de claves.
La Fig. 33 es un diagrama que ilustra una configuracion del subconvertidor 330 en la que la 1/2 unidad de subconvertidor 90 se anade con la funcion de transferencia de claves.
Como el caso de la Fig. 31, la 1/2 unidad de subconvertidor 90 funciona igual que la unidad de convertidor de datos 50 de la Fig. 10 en el caso donde la senal A se seleccione por el selector 2-1 99a y la senal C se seleccione por el selector 2-1 99b. En este caso, la senal de transferencia de claves y la senal de mascara corresponden a la senal de transferencia de claves FL y la senal de mascara FL, respectivamente.
La 1/2 unidad de subconvertidor 90, por otra parte, funciona igual que la unidad de inversor de datos 70 de la Fig. 11 en el caso donde la senal E se seleccione por el selector 2-1 99a y la senal F se seleccione por el selector 2-1 99b
mediante la senal de conmutacion. En este caso, la senal de transferencia de claves y la senal de mascara
-1 -1
corresponden a la senal de transferencia de claves FL y la senal de mascara FL , respectivamente.
La 1/2 unidad de subconvertidor 90 configurada de esta manera puede realizar una conversion de datos y tambien transferir datos sin realizar la conversion de datos sacando datos tras la recepcion de una senal de transferencia indicando una transferencia de datos.
Esas operaciones, tratadas anteriormente, no se reiteraran aqrn.
Como se trata en esta realizacion, la 1/2 unidad de subconvertidor 90 configurada para implementar la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 en el circuito compartido se dotan de esta manera con la funcion de transferencia de claves y la funcion de transferencia de datos. Esto permite reducir el tamano del aparato de conversion de datos sobre todo reduciendo el tamano del subconvertidor 330 y evitando el aumento de selectores que resulta de la eliminacion de la necesidad de los caminos de claves y los caminos de datos logrados como se trato anteriormente.
Con referencia a la primera hasta la cuarta realizaciones, los aparatos de conversion de datos para cifrado de bloques se trataron centrandose en las configuraciones de CAMELLIA. No obstante, los subconvertidores 330 dotados con la funcion de transferencia tratada anteriormente tambien son aplicables a cualquier aparato de conversion de datos que realiza cifrado de bloques, tal como CAMELLIA, MISTY, KASUMI.
5
10
15
20
25
30
35
40
45
50
Los aparatos de conversion de datos tratados con referencia a la Fig. 1, Fig. 6 o Fig. 7, pueden tener uno o dos selectores 2-1 que se incluyen en el selector 310.
En comparacion con eso, el aparato de conversion de datos de la tecnica relacionada tratada anteriormente requiere tres selectores 2-1 a fin de seleccionar una senal de salida de entre cuatro senales como se muestra en la Fig. 56.
Ademas, en el caso del aparato de conversion de datos que usa la funcion 1/2F mostrada en la Fig. 60, se requieren cuatro selectores 2-1 a fin de seleccionar una senal de salida de entre cinco senales de entrada.
Consecuentemente, los aparatos de conversion de datos mostrados en la Fig. 1, Fig. 6 o Fig. 7 permiten reducir el numero de selectores incluidos en el aleatorizador de datos 30 en comparacion con el aparato de conversion de datos de la tecnica relacionada.
Ademas, con referencia al aparato de conversion de datos mostrado en la Fig. 7, el convertidor principal 320 y el subconvertidor 330 se disponen en paralelo y por ello se requiere un selector 340. El selector 340 se compone de un unico selector 2-1 que recibe dos senales de salida sacadas desde el convertidor principal 320 y el subconvertidor 330, respectivamente y selecciona una senal de entre las dos senales recibidas. De esta manera, hay dos selectores
2-1 que se requieren para el selector 310 y el selector 340 en la Fig. 7.
Por consiguiente, el aparato de conversion de datos mostrado en la Fig. 7 tambien permite reducir el numero de selectores incluidos en el aleatorizador de datos 30 en comparacion con el aparato de conversion de datos de la tecnica relacionada.
Realizacion 5.
En esta realizacion, se dara una descripcion del cifrado de bloque CAMELLIA en el que el convertidor principal 320 y el subconvertidor 330 se disponen en paralelo.
CAMELLIA soporta una longitud de bloque de 128 bits y esta disponible para su uso una longitud de clave de 128, 192 o 256 bits.
La estructura de algoritmo es la estructura FEISTEL caracterizada anteriormente. Basicamente, el proceso de cifrado y el proceso de descifrado se pueden implementar en el mismo hardware o software.
La funcion F es dependiente de la longitud de la clave, es decir, 18 vueltas para una clave de 128 bits (6 vueltas x 3 del convertidor principal 320 de la Fig. 34) y 24 vueltas para una clave de 192 o 256 bits como se muestra en la Fig. 54 y la Fig. 55. La Fig. 54 y la Fig. 55 se trataran mas tarde.
La Fig. 34 es un diagrama que ilustra un proceso de cifrado de CAMELLIA para una clave de 128 bits. Espedficamente, la Fig. 34 muestra el caso donde P (texto plano) se somete a una conversion de datos (descifrado de datos) usando el convertidor principal 320 y el subconvertidor 330 y entonces se saca C (texto cifrado). Con la Fig. 34, FL (una funcion de conversion de datos) y FL-1 (una funcion de conversion inversa de datos) se colocan entre cada funcion F de seis vueltas.
La Fig. 34 en la izquierda muestra la misma operacion que la realizada por el aleatorizador de datos 30 de la Fig. 4. Particularmente, el circuito EXOR 31a y el circuito EXOR 31b de la Fig. 4 corresponden a un circuito EXOR 600 y un circuito EXOR 601 de la Fig. 34, respectivamente y en la practica, EXOR incluida en el subconvertidor 330 operan el proceso. Se tiene que asumir que todas las claves de entrada mostradas en la Fig. 34 se han programado y sacado desde el programador de claves como se muestra en la Fig. 4.
La Fig. 34 en la derecha muestra un diagrama que es el mismo que el de la Fig. 57.
La Fig. 35 es un diagrama que ilustra un proceso de descifrado de CAMELLIA para una clave de 128 bits.
La Fig. 35 muestra el caso donde C (texto cifrado) se somete a una conversion de datos usando el convertidor principal 320 y el subconvertidor 330 y entonces se saca P (texto descifrado).
Las operaciones mostradas en la Fig. 34 y la Fig. 35, tratadas anteriormente, no se reiteraran aqrn.
Se dara ahora una descripcion en detalle de un interior de la funcion F de CAMELLIA.
La Fig. 36 es un diagrama que ilustra una configuracion interna de la funcion F de CAMELLIA.
La funcion F de CAMELLIA emplea estructura SPN dentro y los datos se procesan basicamente en unidades de ocho bits para datos de entrada (1) hasta datos de entrada (8). La funcion F de CAMELLIA incluye una funcion S 324 que se compone de cajas S y conversion lineal mediante OR exclusivas (EXOR) que se llama funcion P 325.
En la funcion F 321, al principio, se introducen datos de entrada (1) hasta datos de entrada (8) que tienen respectivamente una longitud de ocho bits, entonces los 64 bits de los datos de entrada se someten a una operacion XOR con 64 bits de claves (1) hasta (8) de ocho bits, respectivamente y entonces se sacan. Los datos de salida se
5
10
15
20
25
30
35
40
45
introducen a la funcion S 324 y entonces se convierten no linealmente de una forma por byte mediante la funcion S
324 que sintetiza la operacion aritmetica inversa de GF (28) y conversion afm.
Los datos entonces se someten a una conversion lineal basada en OR exclusiva mediante la funcion P 325. A traves de estas operaciones, se aleatorizan los datos y luego se sacan como datos de salida (1) hasta datos de salida (8).
La funcion de CAMELLIA soporta una anchura de datos de 64 bits. La Fig. 36 muestra dos conjuntos de cajas S Si hasta S4 proporcionadas en la funcion S 324 (un conjunto de Si, S2, S3 y S4 de la parte inferior de la Fig. 36 y otro conjunto de S2, S3, S4 y Si por encima de ella).
Por lo tanto, como se muestra en la Fig. 36, el proceso tambien se puede hacer manejando en primer lugar los datos de entrada (1) hasta los datos de entrada (4) para conversion de datos y luego manejando los datos de entrada restantes de los datos de entrada (5) hasta los datos de entrada (8). Con este caso, en la segunda vuelta de conversion de datos, a fin de usar el circuito como esta con las cajas S que estan dispuestas en el orden de Si a S4, los datos van a ser sometidos al desplazamiento de rotacion de un byte por adelantado y entonces se introducen los datos de entrada (5) hasta los datos de entrada (8) que se han sometido al desplazamiento de rotacion por adelantado. Esto permite a los datos corresponder a las cajas S Si hasta S4 sin cambiar la estructura de la funcion S 324.
De esta manera, la funcion F implementa una conversion de datos no lineal a traves de las operaciones de EXOR (OR exclusiva) entre claves y datos de entrada, dos vueltas de operaciones por los cuatro tipos de funcion S (Si hasta S4) y operaciones por la funcion P 325. La operacion tfpica de CAMELLIA, incluyendo la funcion S 324 por las cajas S (circuito aritmetico inverso en GF (28) + conversion afm) Si hasta S4, la funcion P 325, la funcion de conversion de datos (FL) y la funcion de conversion de datos inversa (FL-i), se pueden implementar mediante una simple combinacion de algebras booleanas.
Se dara ahora una descripcion en detalle de una configuracion general y una operacion de CAMELLIA.
La Fig. 37 es un diagrama que ilustra una configuracion general y una operacion de CAMELLIA.
Con CAMELLIA, si la clave secreta a ser introducida es una clave de i28 bits, la clave se extiende internamente a la clave de 256 bits y la clave extendida como la clave extendida se usa para cifrado/descifrado de datos.
Si la clave secreta a ser introducida es una clave de i92 o 256 bits, la clave se extiende internamente a una clave de 5i2 bits a ser usada para cifrado/descifrado de datos. El caso de una clave de i92 o 256 bits se tratara mas tarde.
En primer lugar, se dara ahora una descripcion de un rasgo estructural de CAMELLIA.
El algoritmo entero de CAMELLIA se implementa a traves de operaciones repetidas de la misma funcion F mediante el convertidor principal 320. La funcion F se configura como se muestra en la Fig. 36.
En el aleatorizador de datos 30, como ilustran el circuito EXOR 3ia y el circuito EXOR 3ib de la Fig. 4, se realiza una OR exclusiva entre los datos de entrada o de salida y una clave. Esto se llama blanqueo.
Tambien, en el aleatorizador de datos 30, el subconvertidor 330 que incluye conversion de datos (FL) y conversion inversa de datos (FL-i) se coloca entre los convertidores principales 320 incluyendo una funcion F de seis vueltas. Esto se muestra en la Fig. 34 y la Fig. 35.
Como se menciono anteriormente, la clave extendida (una clave intermedia + una clave de salida) se genera como se muestra en la Fig. 2.
Esto muestra que el aparato de conversion de datos para implementar el algoritmo CAMELLIA se puede configurar con el subconvertidor 330 que incluye conversion de datos (FL) y conversion de datos inversa (FL-i), la funcion P
325 y los cuatro tipos de cajas S.
La funcion P 325 puede llegar a ser mas pequena estando basada por escrito en el metodo de escritura que se indica en la “Specification of Camellia - a i28-bits Block Cipher”.

Espedficamente, segun la especificacion antes mencionada, la funcion P se puede escribir como sigue. z i ' = z i + z 3 + z 4 + z 6 + z 7 + z 8

z 2 ' = z i + z 2 + z 4 + z 5 + z 7 + z 8

z 3 ' = z i + z 2 + z 3 + z 5 + z 6 + z 8

z 4 ' = z 2 + z 3 + z 4 + z 5 + z 6 + z 7
z 5 ' = z i + z 2 + z 6 + z 7 + z 8
5
10
15
20
25
30
35
40
45
z 6 ' = z 2 + z 3 + z 5 + z 7 + z 8
z7'=z3+z4 +z5+z6+z8
z 8 ' = z 1 + z 4 + z 5 + z 6 + z 7
“+” en las ecuaciones anteriores para calcular z1' hasta z8' indica una operacion OR exclusiva.
La z1 hasta z8 son salidas desde S1, S2, S3, S4, S5 (=S2), S6 (=S3), S7 (=S4) y S8 (=S1), respectivamente. Ahora, si z5 hasta z8 se convierte en zz2, zz3, zz4 y zz1, respectivamente, entonces los resultados son los siguientes.
z 1 ' = z 1 + z 3 + z 4 + z z 1 + z z 3 + z z 4
z 2 ' = z 1 + z 2 + z 4 + z z 1 + z z 2 + z z 4
z 3 ' = z 1 + z 2 + z 3 + z z 1 + z z 2 + z z 3
z 4 ' = z 2 + z 3 + z 4 + z z 2 + z z 3 + z z 4

z 5 ' = z 1 + z 2 + z z 1 + z z 3 + z z 4

z 6 ' = z 2 + z 3 + z z 1 + z z 2 + z z 4

z 7 ' = z 3 + z 4 + z z 1 + z z 2 + z z 3

z 8 ' = z 1 + z 4 + z z 2 + z z 3 + z z 4
En base a esto, operar en dos relojes, tal como operar S1 hasta S4 para sacar Z1 hasta Z4 y operar S1 hasta S4 para sacar zz1 hasta zz4, etc., permite reducir el circuito de la funcion P aproximadamente en la mitad de tamano.
Se dara ahora una descripcion de un aparato de conversion de datos para CAMELLIA con referencia a la Fig. 37.
El aparato de conversion de datos para CAMELLIA mostrado en la Fig. 37 incluye el convertidor principal 320 y el subconvertidor 330 dispuestos en paralelo.
El subconvertidor 330 incluye la unidad de convertidor de datos 50 y la unidad de inversor de datos 70.
El convertidor principal 320 tiene la unidad de funcion F que consta de funcion 1/2F. En el caso donde el convertidor principal 320 se configura con la funcion F o menos de una funcion F, es decir, 1/2x (x>1) de la funcion F, como se ejemplifica con la funcion 1/2F de la Fig. 61, va a ser mantenido un resultado de salida desde el circuito EXOR 1322a, que es un resultado intermedio del proceso mediante la unidad de funcion F 1321a y el proceso mediante la unidad de funcion F 1321b.
En general, si se reduce el numero de unidades de la funcion F instalada y se emplea un metodo de implementacion de una conversion de datos basada en una funcion F de una vuelta en una pluralidad de veces de arquitectura en bucle, entonces se reduce el tamano del circuito para la funcion F. No obstante, se aumentan el numero de circuitos de control para controlar el bucle y el numero de circuitos tales como selectores para introducir claves a cada funcion F. De esta manera, hay una relacion de compromiso entre el tamano de circuito para la funcion F y el tamano de circuito para control en bucle.
Por lo tanto, en la persecucion de la reduccion de tamano de un aparato de conversion de datos para CAMELLIA, se necesita un estudio sobre el numero de la funcion F a ser instalada y el numero de repeticiones. Mas espedficamente, se debena llevar a cabo un estudio cuidadoso sobre si implementar un aparato de conversion de datos para CAMELLIA mediante una unica funcion F instalada en el convertidor principal 320, si reducir el numero de cajas S instaladas en la funcion F y lograr una conversion de datos basada en una funcion F de una vuelta a traves de una operacion en varios ciclos, etc. Este es un estudio sobre la relacion de compromiso entre la reduccion en tamano del circuito empleando la unidad de funcion F de menos de una funcion F y el aumento en el tamano del circuito empleando el bucle acompanado por el aumento en el numero de selectores, etc.
Ademas con CAMELLIA, como se menciono anteriormente, como la funcion para generar la clave de salida (clave KA), se usa parte del convertidor principal 320 en el aleatorizador de datos 30. Por esta razon, tambien se necesita otro estudio cuidadoso sobre un efecto del aumento de selectores, etc. que se anade para usar la funcion F del aleatorizador de datos 30.
Como se trato con referencia a la Fig. 36, con la funcion F de CAMELLIA, los cuatro tipos de cajas S (S1, S2, S3 y S4) para entrada/salida de 8 bits se usan dos veces cada uno. Entonces, se necesita aqm otro estudio sobre si instalar ocho unidades de las cajas S o instalar cuatro unidades con repeticion dos veces o similar.
Segun “On Hardware Implementation of 128-bits Block Ciphers (III)” descrita en las Actas del Simposio 2001 sobre Criptograffa y Seguridad de la Informacion, el tamano del circuito para una unica caja S incluye aproximadamente
5
10
15
20
25
30
35
40
45
50
200 puertas y por lo tanto si el numero de cajas S se reduce por cuatro desde 8 a 4, entonces se pueden reducir aproximadamente 800 puertas.
Por otra parte, se requieren al menos 32 unidades de selectores 2-1 (aproximadamente 100 puertas de circuitos NAND) para repeticiones que estan en la relacion de compromiso.
A partir de este hecho, se espera que el circuito llegue a ser mas pequeno con la instalacion de cuatro unidades de cajas S con repeticion de dos veces en lugar de instalar ocho unidades.
De esta manera, con la unidad de funcion F 321 del aparato de conversion de datos para CAMELLIA, se puede hacer una conversion de datos una vez con ocho unidades de cajas S instaladas y alternativamente se puede hacer una conversion de datos con cuatro unidades de cajas S instaladas que implican repeticion de dos veces de conversion de datos. Se puede usar cualquiera de las dos. No obstante, en vista del tamano del circuito, es deseable la de repeticion de dos veces de conversion de datos.
En el caso de usar el algoritmo CAMELLIA mostrado en la Fig. 37, se puede implementar cifrado/descifrado de datos mediante el ciclo del generador intermedio 40 segun esta secuencia.
Los pasos de procesamiento del ciclo del generador de claves intermedias 40 se describiran ahora mas adelante.
En primer lugar, en el paso 1, se realiza Blanqueo usando el subconvertidor 330.
Entonces, en el paso 2, se realiza una operacion de la mitad de una vuelta de la funcion F (funcion 1/2F) usando el convertidor principal 320.
De manera similar, en el paso 3, se realiza una operacion para la otra mitad de una vuelta de la funcion F (funcion 1/2F) usando el convertidor principal 320.
En el paso 4 hasta el paso 13, el paso 2 y el paso 3 se repiten cinco veces.
En el paso 14, se realiza una operacion para la funcion de conversion de datos (FL) y la funcion de conversion de datos inversa (FL-1) del subconvertidor 330 para conversion de datos.
Entonces, en el paso 15 hasta el paso 27, se repiten el paso 2 hasta el paso 14.
Entonces, en el paso 28 hasta el paso 39, se repiten el paso 2 hasta el paso 13.
Por ultimo, en el paso 40, se realiza el mismo Blanqueo que el del paso S1.
Senalar aqrn que el paso 1 indica que la operacion realizada por el circuito EXOR 31a de la Fig. 4 y el paso 40 indica la operacion realizada por el circuito EXOr 31b de la Fig. 4. En otras palabras, el circuito EXOR 31a y el circuito EXOr 31b operan usando las EXOR de la unidad de convertidor de datos 50 y la unidad de inversor de datos 70, respectivamente, en el subconvertidor 330.
La configuracion y la operacion del generador de claves 20 son las mismas que las tratadas anteriormente y por lo tanto no se reiteraran aqrn.
En el paso 2 y el paso 3 tratados anteriormente, se realiza una conversion de datos basada en una funcion F unica en dos ciclos mediante el convertidor principal 320. Una operacion de este proceso de datos se tratara ahora en detalle con referencia a la Fig. 37 y la Fig. 64.
La Fig. 64 es diferente de la Fig. 61 de manera que se introduce en primer lugar una clave inferior como una clave de entrada y entonces se introduce una clave superior para implementar el proceso.
En primer lugar, se tratara en detalle una operacion del paso 1. Los datos de entrada P (texto plano o texto descifrado) se seleccionan por un selector 2-1 311 y dividen en datos superiores y datos inferiores. Los datos superiores se someten a Blanqueo por la unidad de convertidor de datos 50 en el subconvertidor 330 y los datos inferiores se introducen a la unidad de inversor de datos 70 en el subconvertidor 330 y someten de manera similar a Blanqueo. Los datos superiores y los datos inferiores sometidos a Blanqueo se introducen a un selector 2-1 H 341 y un selector 2-1 342 en un selector 2-1 340, respectivamente. Cada pieza de los datos de entrada se selecciona por el selector 2-1 H 341 o el selector 2-1 L 342 y entonces se mantiene en un registro aritmetico H 351 o un registro aritmetico L 352, respectivamente.
Se tratara ahora una operacion del paso 2.
Los bits superiores de los datos superiores mantenidos en el registro aritmetico H 351 se introducen a un selector 21 312, entonces los bits inferiores de los datos superiores se someten a desplazamiento de rotacion de un byte y entonces se introducen al selector 2-1 312. El selector 2-1 312 selecciona los bits inferiores sometidos a desplazamiento de rotacion de entre las dos entradas y saca los bits seleccionados al convertidor principal 320. El desplazamiento de rotacion para los bits inferiores seleccionados de un byte permite aplicar e introducir
5
10
15
20
25
30
35
40
45
50
optimamente los datos de entrada (5) hasta los datos de entrada (8) a las cajas S, como se muestra en la Fig. 36. En el convertidor principal 320, la mitad superior de la primera vuelta de conversion de datos mostrada en al Fig. 64 se realiza por la unidad de funcion F 321 que tiene una funcion 1/2F. Senalar aqu que la unidad de funcion F 321 de la Fig. 37 y las unidades de funcion F 1321a hasta 1321l de la Fig. 64 con la funcion 1/2F se configuran igual. Con referencia a una conversion de datos realizada por la unidad de funcion F 1321a de la Fig. 64, los bits de la mitad inferior de los datos superiores de entrada se convierten usando una clave 1L y entonces se sacan los datos convertidos al circuito EXOR 1322a. El circuito EXOR 1322a recibe datos convertidos sacados por la unidad de funcion F 1321a y se someten a una operacion XOR entre los datos recibidos y los datos inferiores de entrada. En otras palabras, los datos (datos intermedios) sacados desde el convertidor principal 320 se introducen a un selector
3-1 L 342 y entonces se mantienen en un registro aritmetico L 352. Al mismo tiempo, los datos superiores de P mantenidos en el registro aritmetico H 351 pasan a traves del selector 2-1 311 y entonces se transfieren, por medio de la funcion de transferencia de datos de la unidad de convertidor de datos 50 del subconvertidor 330, por ejemplo y se mantienen en el registro aritmetico H 351 de nuevo a traves del selector 2-1 H 341 desde el registro aritmetico H 351.
A continuacion, se dara ahora una descripcion de una operacion del paso 3.
El procesamiento de datos por la unidad de funcion F 1321b de la Fig. 64 se implementa en el segundo ciclo de procesamiento por el convertidor principal 320 de la Fig. 37. Espedficamente, sin estar sometidos al desplazamiento de rotacion de un byte, los bits superiores de los datos superiores introducidos al selector 2-1 312 se seleccionan por el selector 2-1 312 y entonces se sacan al convertidor principal 320. Mediante la aplicacion de esta operacion, los datos de los bits de la mitad superior de los datos superiores se convierten no linealmente por la unidad de funcion F 1321b y entonces se sacan al circuito EXOR 1322b. El circuito EXOR 1322b introduce al convertidor principal 320 los datos intermedios que se sacan desde el convertidor principal 320 y se mantienen en el registro aritmetico L352 en el primer ciclo, como la otra senal de entrada y por ello los datos intermedios se introducen al circuito EXOR 1322b. Los datos de salida sometidos a una operacion XOR en el circuito EXOR 1322b se seleccionan por el selector 2-1 H 341 y entonces se mantienen en el registro aritmetico H 351. En esta etapa, los datos superiores de P se estan manteniendo en el registro aritmetico L 352 a traves del selector 3-1 342. Esto significa que los datos superiores y los datos inferiores a ser usados para conversion de datos en la segunda vuelta en el convertidor principal 320 se mantienen en el registro aritmetico H 351 y el registro aritmetico L 352, respectivamente.
En los pasos 4 hasta 13, se repiten cinco veces los pasos 2 y 3.
Mas particularmente, la conversion de datos de segunda vuelta se hace por la unidad de funcion F 1321c y el circuito EXOR 1322c en un ciclo y por la unidad de funcion F 1321d y el circuito EXOR 1322d en otro ciclo, el proceso en dos ciclos en total corresponde a los procesos del paso 4 y el paso 5. El proceso de la tercera vuelta a la sexta vuelta se realiza de la misma forma, lo cual corresponde a los procesos de los pasos 6 hasta 13.
Senalar, como se menciono anteriormente, que las funciones de las unidades de funcion F 1321a hasta 1321l de la Fig. 64 son las mismas que la funcion de la unidad de funcion F 321 de la Fig. 37.
Se dara ahora una descripcion de un proceso del paso 14.
Este proceso indica el proceso realizado por el subconvertidor 330 de la Fig. 37.
En primer lugar, los datos superiores y los datos inferiores, que se procesan en el paso 13 y entonces se mantienen en el registro aritmetico H 351 y el registro aritmetico L 352, respectivamente, se introducen al selector 2-1 311, entonces se seleccionan e introducen a la unidad de convertidor de datos 50 y la unidad de inversion de datos 70, respectivamente.
En la unidad de convertidor de datos 50 y la unidad de inversor de datos 70, los datos de entrada se someten a una conversion lineal. Entonces, los datos convertidos por la unidad de convertidor de datos 50 se introducen al selector 2-1 H 341 y los datos convertidos por la unidad de inversor de datos 70 se introducen al selector 3-1 L 342. Entonces, se seleccionan y mantienen en el registro aritmetico H 351 y el registro aritmetico L 352, respectivamente.
Los procesos de los pasos 15 hasta 27 corresponden a los procesos del convertidor principal 320 y el subconvertidor 330 de la Fig. 37.
Los procesos de los pasos 28 hasta 39 corresponden al proceso del convertidor principal 320 de la Fig. 37.
En el paso 40, como el paso 1, se realiza Blanqueo usando la EXOR del subconvertidor 330.
A traves de esto pasos del generador de claves intermedias 40, llega a ser posible que un texto de cifrado C se saque a traves del proceso de cifrado en caso de datos de entrada P que son un texto plano y un texto de descifrado C se saca despues del proceso de descifrado por el mismo circuito para el proceso de cifrado, en caso de datos de entrada P que son texto cifrado.
5
10
15
20
25
30
35
40
45
50
Con el aparato de conversion de datos que usa CAMELLIA de la Fig. 37, la disposicion en paralelo del convertidor principal 320 y el subconvertidor 330 permite ahorrar tiempo de ciclo para cada ciclo y mejorar la frecuencia de operacion, en contraste con el caso de la disposicion en serie de los mismos.
Ademas, con la disposicion en paralelo del convertidor principal 320 y el subconvertidor 330, el camino para introducir una senal al subconvertidor 330 sin la senal que pasa a traves del convertidor principal 320 y el camino para introducir una senal al convertidor principal 320 sin la senal que pasa a traves del subconvertidor 330 llegan a estar disponibles. Esto permite un ajuste flexible a cambios en la configuracion y operacion del dispositivo, tal como adicion, eliminacion, etc. en actividades futuras.
Con el aparato de conversion de datos que usa CAMELLIA en el que se disponen en serie el convertidor principal 320 y el subconvertidor 330, por otra parte, en el caso de realizar la conversion de datos de una vuelta por un proceso de funcion F en dos o mas ciclos, dado que los datos a ser convertidos en un ciclo son parte de los datos de entrada, se necesita el camino en el aleatorizador de datos 30 para mantener datos convertidos de la parte de los datos de entrada en el registro aritmetico 350 y transferir los datos convertidos al subconvertidor 330 despues de un periodo dado. O, alternativamente, se necesita el camino de transferencia en el convertidor principal 320 para transferir los datos al subconvertidor 330 a traves del convertidor principal 320 despues del periodo dado.
Segun esta realizacion, no obstante, dado que el convertidor principal 320 y el subconvertidor 330 se disponen en paralelo, se hacen redundantes el camino adicional y la funcion de transferencia adicional del convertidor principal 320. Esto permite evitar que el tamano del circuito del dispositivo aumente.
Adicionalmente, en el caso de usar el circuito compartido mostrado en la Fig. 59 en el que se implementan la unidad de convertidor de datos 50 y la unidad de inversor de datos 70, el camino A ^ B ^ C ^ D ^ E ^ B ^ C... llega a ser un circuito en bucle. Por lo tanto, el circuito en bucle no se debena disenar para llegar a ser un circuito de transmision cuando esta influido por el recorrido de la senal, ruido, etc. causado por la diferencia de retardo de propagacion de las senales de conmutacion en una implementacion LSI practica del circuito. Otro problema es que las herramientas de smtesis logica no pueden hacer frente a tal circuito con el circuito en bucle (un circuito de ALIMENTACION EN BUCLE), de manera que no se puede lograr una smtesis logica eficiente.
A fin de resolver este problema, la unidad de convertidor de datos 50 y la unidad de inversor de datos 70 del subconvertidor 330 se disenan para estar separados en la Fig. 37. Esto permite al aparato de conversion de datos evitar tal problema relacionado con el recorrido, etc.
Ademas, como se menciono anteriormente, el subconvertidor 330 de la Fig. 37 que usa la funcion de transferencia de claves/datos puede eliminar la necesidad del camino de claves desde el registro de claves KL 240 y el camino de datos desde el convertidor principal 320. Esto puede contribuir a la reduccion de tamano adicional del aparato de conversion de datos para cifrado de bloques de CAMELLIA y lograr un consumo de potencia bajo.
Realizacion 6.
Se dara ahora una descripcion de una sexta realizacion.
La Fig. 38 es un diagrama de bloques de un aparato de conversion de datos para CAMELLIA de una sexta realizacion. La Fig. 28 es diferente de la Fig. 37 de manera que el subconvertidor 330 incluye la 1/2 unidad de subconvertidor 9, que implementa la unidad de aparato de conversion de datos 50 y la unidad de inversor de datos 70 en el circuito compartido. Por lo tanto, se hacen redundantes el selector 2-1 215 y el selector 4-1 217 de la Fig. 37.
De esta manera, el aparato de conversion de datos segun esta realizacion no requiere ninguno de los cuatro selectores necesarios para el selector 2-1 215 y el selector 4-1 217 y el camino para introducir una clave sacada desde el selector 2-1 215 al subconvertidor 330. Esto permite simplificar la configuracion del programador de claves 210 y ademas reducir el tamano por ello del aparato de conversion de datos.
Realizacion 7.
La Fig. 47 es un diagrama de bloques de un aparato de conversion de datos para CAMELLIA segun una septima realizacion.
Esta realizacion es diferente de la del diagrama de bloques de la Fig. 37 de manera que la unidad de funcion F 321 en el convertidor principal 320 se configura con una funcion 1/8F. En otras palabras, el convertidor principal 320 de esta realizacion realiza una conversion de datos basada en una funcion F de una vuelta en ocho ciclos. Por lo tanto, en contraste con la Fig. 37, el selector 2-1 312 de la Fig. 37 se sustituye por un selector 8-1 315. Otros componentes son los mismos que los de la Fig. 37.
Realizacion 8.
La Fig. 48 es un diagrama de bloques de un aparato de conversion de datos para CAMELLIA segun una octava realizacion.
5
10
15
20
25
30
35
40
45
Esta realizacion es diferente de la realizacion mostrada en la Fig. 47 de manera que 330 se dota con la 1/2 unidad de subconvertidor 90. Por lo tanto, se hacen redundantes el selector 2-1 215 y el selector 4-1 217 mostrados en la Fig. 47.
Realizacion 9.
Se muestra otra realizacion en la Fig. 49.
La Fig. 49 es un diagrama de bloques de un aparato de conversion de datos para CAMELLIA segun una novena realizacion.
Esta realizacion es diferente de la de la Fig. 37 de manera que la unidad de funcion F 321 en el convertidor principal 320 se configura con una funcion 1/4F. Por lo tanto, el selector 2-1 312 de la Fig. 37 se sustituye por un selector 4-1 316 en la Fig. 49. El convertidor principal 320 realiza una conversion de datos en cuatro ciclos para realizar una conversion de datos basada en una funcion F de una vuelta mediante la unidad de funcion F 321, usando datos de entrada de 16 bits seleccionados por el selector 4-1 316. Otros componentes son los mismos que los de la Fig. 37.
Realizacion 10.
La Fig. 50 es un diagrama de bloques de un aparato de conversion de datos para CAMELLIA segun una decima realizacion.
Esta realizacion es diferente de la realizacion de la Fig. 49 de manera que el subconvertidor 330 se dota con la 1/2 unidad de subconvertidor 90. Por lo tanto, en contraste con el caso de la Fig. 49, se hacen redundantes el selector 21 215 y el selector 4-1 217. Otros componentes son los mismos que los de la Fig. 49.
Realizacion 11.
Se dara ahora una descripcion de una undecima realizacion.
La Fig. 39 es un diagrama de bloques de un aparato de conversion de datos para CAMELLIA segun la undecima realizacion.
La Fig. 39 es diferente de la Fig. 37 de manera que el convertidor principal 320 se configura con la unidad de funcion F 321 que tiene una unica funcion F. Por lo tanto, el convertidor principal 320 puede realizar el proceso de la funcion F para una vuelta en un ciclo, lo cual elimina la necesidad del selector 2-1 312 en la Fig. 37. El selector 2-1 212 de la Fig. 37 tambien se hace redundante y el selector 8-1 213 se sustituye por un selector 4-1 218 que selecciona una constante de entre cuatro constantes.
Realizacion 12.
Se dara ahora una descripcion de una duodecima realizacion.
La Fig. 40 es un diagrama de bloques de un aparato de conversion de datos para CAMELLIA segun la duodecima realizacion.
En la Fig. 40 se anade un selector 2-1 313. Dado que el subconvertidor 330 se configura con la 1/2 unidad de subconvertidor 90, unos de los datos superiores y los datos inferiores de los datos seleccionados por el selector 2-1 311 van a ser seleccionados. Segun esta realizacion, el proceso mediante el convertidor principal 320 se realiza en un ciclo, de manera que el selector 2-1 312 se hace redundante como la Fig. 39. Tambien, se hacen redundantes el selector 2-1 215 y el selector 4-1 217 de la Fig. 39.
Realizacion 13.
Se dara ahora una descripcion de una decima tercera realizacion.
La Fig. 41 es un diagrama de bloques de un aparato de conversion de datos para CAMELLIA segun la decima tercera realizacion.
La Fig. 41 es diferente de la Fig. 39 de manera que el convertidor principal 320 no repite el proceso de la unidad de funcion F 321 seis veces, sino que tiene seis vueltas de la unidad de funcion F 321 dispuestas en serie proporcionadas en la misma y realiza una conversion de datos. Por lo tanto, hay una senal de salida extra desde el convertidor principal 320 en esta realizacion. La razon de esto es que los datos de salida de la segunda vuelta de la funcion F del convertidor principal 320 van a ser introducidos a un selector 3-1 H 343 y un selector 4-1 L 344 y entonces se mantienen en el registro aritmetico H 351 y el registro aritmetico L 352, respectivamente. Por consiguiente, el selector 3-1 H 343 recibe tres senales y el selector 4-1 L 344 recibe cuatro senales.
Ademas, se proporcionan cuatro conjuntos de selectores 4-1 500 y selectores 4-1 501 y hay selectores extra para introducir cuatro claves seleccionadas por esos selectores en el convertidor principal 320. Ademas, el subconvertidor
5
10
15
20
25
30
35
40
45
330 y el convertidor principal 320 reciben claves tambien desde otros selectores, un selector 4-1 502 y un selector 41 503, en el programador de claves 210.
Realizacion 14.
Se dara ahora una descripcion de una decima cuarta realizacion.
La Fig. 42 es un diagrama de bloques de un aparato de conversion de datos para CAMELLIA segun la decima cuarta realizacion.
La Fig. 42, como la Fig. 41, es diferente de la Fig. 40 de manera que la unidad de funcion F del convertidor principal 32 se dota con la funcion F de seis vueltas dispuesta en serie. Por lo tanto, como el caso de la Fig. 41, las senales de entrada del selector 3-1 H 343 y el selector 4-1 L 344 aumentan en numero en uno respectivamente, en contraste con la Fig. 40 y se requieren cuatro conjuntos de selectores 4-1 500 y selectores 4-1 501. El subconvertidor 330 y el convertidor principal 320 reciben claves tambien desde otros selectores en el programador de claves 210, el selector
4-1 502 y el selector 3-1 504. El selector 3-1 504 recibe tres senales de entrada.
Realizacion 15.
Se muestra otra realizacion en la Fig. 43.
La Fig. 43 es un diagrama de bloques de un aparato de conversion de datos para CAMELLIA segun una decima quinta realizacion.
Esta realizacion es diferente de la de la Fig. 41 de manera que el convertidor principal 320 se dota con la unidad de funcion F 321 que tiene la funcion F de dos vueltas. Por lo tanto, en contraste con la Fig. 41, el selector 3-1 H 343 y el selector 4-1 L 344 se sustituyen por el selector 2-1 H 341 y el selector 3-1 L 342, respectivamente y se hacen redundantes los cuatro conjuntos de selectores que incluyen los selectores 4-1 500 y los selectores 4-1 501.
Realizacion 16.
Se muestra otra realizacion en la Fig. 44.
La Fig. 44 es un diagrama de bloques de un aparato de conversion de datos para CAMELLIA segun una decima sexta realizacion.
Esta realizacion es diferente de la realizacion de la Fig. 42 de manera que la unidad de funcion F 321 del convertidor principal 320 es la funcion F de dos vueltas. Por lo tanto, el selector 3-1 H 343 y el selector 4-1 L 344 de la Fig. 42 se sustituyen por el selector 2-1 H 341 y el selector 3-1 L 342, respectivamente y se hacen redundantes los cuatro conjuntos de selectores que incluyen el selector 4-1 500 y el selector 4-1 501.
Realizacion 17.
La Fig. 45 es un diagrama de bloques de un aparato de conversion de datos para CAMELLIA segun una decima septima realizacion.
Segun esta realizacion, la unidad de funcion F 321 del convertidor principal 320 incluye una funcion F de tres vueltas. Por lo tanto, en contraste con la Fig. 41, se hacen redundantes los cuatro conjuntos de selectores que incluyen el selector 4-1 500 y el selector 4-1 501 y se anade en su lugar un selector 4-1 505. Una senal seleccionada por el selector 4-1 505 se introduce al convertidor principal 320.
Realizacion 18.
La Fig. 46 es un diagrama de bloques de un aparato de conversion de datos para CAMELLIA segun una decima octava realizacion.
Como la realizacion mostrada en la Fig. 45, la unidad de funcion F 321 del convertidor principal 320 incluye la funcion F de tres vueltas. Esta realizacion es diferente de la de la Fig. 45 de manera que el subconvertidor 330 incluye la 1/2 unidad de subconvertidor 90. Otros componentes son los mismos que los de la figura.
Realizacion 19.
La Fig. 51 es un diagrama de bloques de un aparato de conversion de datos para CAMELLIA segun una decima novena realizacion.
En primer lugar, el generador de claves intermedias 40 de esta realizacion es diferente en configuracion del de la Fig. 37. La configuracion del generador de claves intermedias 40 de esta realizacion es equivalente a la del generador de claves intermedias 40 de la Fig. 37, etc. Por lo tanto, el generador de claves intermedias 40 de la Fig. 37, etc. se puede sustituir por el generador de claves intermedias 40 de la Fig. 51.
5
10
15
20
25
30
35
40
45
50
Se dara ahora una descripcion de una configuracion del generador de claves intermedias 40 de la Fig. 51.
En primer lugar, un selector 2-1 KL 291 recibe una clave secreta de entrada y una clave intermedia (Clave KL) mantenida en el registro de claves KL 240, selecciona una senal de entre estas dos senales de entrada y mantiene una clave en el registro de claves KL 240. Un selector 2-1 KA 292 recibe una clave de salida generada por el generador de claves intermedias 40 y una clave de salida (Clave KA) mantenida en el registro de claves KA 250. El selector 2-1 KA 292 selecciona una senal de entre esas dos senales de entrada y mantiene una senal seleccionada en el registro de claves KA 250.
Un selector 2-1 227 selecciona una clave de entre la clave intermedia (Clave KL) y la clave de salida (Clave KA) mantenida en y sacada desde el registro de claves KL 240 y el registro de claves Ka 250, respectivamente y saca una clave a un selector 8-1 228. En el selector 8-1 228, una clave seleccionada por el selector 2-1 227 se somete a desplazamiento de rotacion de ocho tipos de numeros, 0, 15, 30, 45, 60, 77, 94 y 111, de bits a la izquierda o derecha como se muestra en la Fig. 51. Espedficamente, si el numero de bits para desplazamiento de rotacion es 0, no se desplazan datos. Si el numero de bits para desplazamiento de rotacion es 15, los datos se someten a desplazamiento de rotacion en 15 bits a la izquierda o derecha. Lo mismo aplica a los otros casos. A traves de los desplazamientos de rotacion de datos de esa manera, se producen ocho senales. Entonces, el selector 8-1 228 selecciona una senal de entre las ocho senales y saca la senal seleccionada.
Esas operaciones permiten al generador de claves intermedias 40 de esta realizacion configurada de esta manera funcionar igual que el generador de claves intermedias 40 de la Fig. 37. De esta manera, los bits de la mitad superiores de datos sacados a partir del generador de claves intermedias 40 llegan a ser KLH y los bits de la mitad inferiores llegan a ser KLL y esos se introducen a un selector 2-1 510 y un selector 2-1 511, respectivamente, en el programador de claves 210. De esta manera, el selector 4-1 216 y el selector 4-1 217 de la Fig. 37 se puede sustituir por el selector 2-1 510 y el selector 2-1 511, respectivamente, de esta realizacion.
Por lo tanto, el generador de claves intermedias 40 mostrado en la Fig. 52, como el generador de claves intermedias 40 mostrado en la Fig. 37, requiere diez selectores 2-1. No obstante, el selector 2-1 510 y el selector 2-1 511 solamente requieren dos selectores 2-1. Por consiguiente, el numero total de selectores 2-1 requerido para el generador de claves intermedias 40, el selector 2-1 510 y el selector 2-1 511 es 12.
El generador de claves intermedias 40 mostrado en la Fig. 37 requiere diez selectores 2-1 y el selector 4-1 216 y el selector 4-1 217 requieren seis selectores 2-1. Por consiguiente, el numero total de selectores 2-1 requerido para el generador de claves intermedias 40, el selector 4-1 216 y el selector 4-1 217 es 16.
De esta manera, el aparato de conversion de datos de esta realizacion puede reducir el numero de selectores 2-1 por cuatro en comparacion con el aparato de conversion de datos mostrado en la Fig. 37.
Consecuentemente, esta realizacion permite lograr reducir el tamano en base a la reduccion en el numero de selectores y tambien lograr un consumo de potencia bajo que acompana la reduccion en el numero de puertas resultante de la reduccion de selectores.
Senalar que la configuracion del generador de claves intermedias 40 tratado en esta realizacion tambien es aplicable a las de todas las otras realizaciones de la presente invencion.
Realizacion 20.
La Fig. 52 es un diagrama de bloques de un aparato de conversion de datos para CAMELLIA segun una vigesima realizacion.
Esta realizacion es diferente de la de la Fig. 51 de manera que el subconvertidor 330 incluye la 1/2 unidad de subconvertidor 90. De esta manera, se hacen redundantes el selector 2-1 215 y el selector 2-1 511 de la Fig. 51 segun esta realizacion. Otros componentes son los mismos que los de la Fig. 51.
Senalar que el numero de bits de desplazamiento de rotacion referido en la Fig. 51 y la Fig. 52 es sinonimo con el numero de bits para desplazamiento de rotacion.
Realizacion 21.
La Fig. 34 y la Fig. 35 tratadas en la cuarta realizacion muestran el proceso de cifrado/descifrado de CAMELLIA para una clave de 128 bits.
No obstante, las configuraciones de los aparatos de conversion de datos tratadas en todas las realizaciones de la presente invencion son aplicables a cualquier aparato de conversion de datos que realice el proceso de cifrado/descifrado de CAMELLIA no solamente para una clave de 128 bits sino tambien una clave de 192 y 256 bits.
La Fig. 53 es un diagrama que ilustra un proceso de generacion de una clave de 192 bits.
5
10
15
20
25
30
35
40
45
50
Como se trato anteriormente, con una clave de 128 bits, se genera una clave de 256 bits como la clave extendida. Ahora, con una clave secreta de 192 o 256 bits a ser introducida, la longitud de bits de la clave extendida es 512.
Con la Fig. 53, una clave KL y una clave KR son claves intermedias y una clave KA y una clave KB son claves de salida. Entonces, todas las claves KL, KR, KA y KB son de 128 bits y por lo tanto poner las claves juntas genera una clave extendida de 512 bits.
Con una clave secreta de 256 bits a ser introducida, se asignan a la clave KL 128 bits, que son bits de la mitad superiores de la clave secreta de entrada y se asignan a la clave KR los 128 bits inferiores.
La clave KL y la clave KR se someten a una operacion XOR, respectivamente y entonces se introducen a una parte del convertidor principal 320 como se muestra en la Fig. 53.
La Fig. 53 corresponde a la Fig. 2 en el lado derecho, que muestra el metodo de generacion de una clave extendida en el caso donde la clave secreta tiene una longitud de 128 bits.
El metodo de generacion de la clave de salida KA a partir de una clave de entrada mostrada en la Fig. 53 en la izquierda es el mismo que el metodo de generacion de la clave de salida KA ilustrada en la Fig. 2, excepto que la clave de entrada se basa en un resultado sometido a una operacion XOR con la clave KL o la clave KR. La Fig. 2 no
muestra el proceso de generacion de la clave de salida Kb a partir de la clave KR mostrada en la Fig. 53 en la
derecha. Por lo tanto, se describira ahora el proceso de generacion de la clave de salida (clave KB).
Con una clave de 256 bits introducida, los 128 bits inferiores llegan a ser la clave de entrada (clave KR) y se
introducen al convertidor principal 320. Los bits superiores de los 128 bits inferiores se convierten no linealmente mediante una constante £ 5 usando la unidad de funcion F 321a en la primera etapa en el convertidor principal 320 y se sacan. Los datos de salida se someten a una operacion XOR con los bits inferiores de la clave de entrada (clave KR) en el circuito EXOR 322a y entonces se introducen a la unidad de funcion F 321b. En la unidad de funcion F 321b, los datos se someten a otra conversion no lineal mediante una constante £ 6 y los datos convertidos entonces se someten a una operacion XOR con los bits superiores de la clave de entrada (KR) en el circuito EXOR 322b. Los datos convertidos a traves de una operacion por el circuito EXOR 322b se sacan como datos superiores de 64 bits de la clave de salida (Clave KB) y los datos resultantes de una operacion por el circuito EXOR 322a se sacan como datos inferiores de 64 bits de la clave de salida (Clave KB).
Las claves de salida generadas de esta manera (Clave KA y Clave KB) y las claves de entrada (Clave KL y Clave KR) se transfieren como una clave extendida de 512 bits desde el generador de claves intermedias 40 al programador de claves 210, entonces se programan por el programador de claves 210 y se usan para cifrado/descifrado de datos.
Con una clave secreta de 192 bits, los 128 bits superiores de la clave secreta de entrada llegan a ser la Clave KL. Entonces, los 64 bits inferiores de la clave secreta de entrada llegan a ser los 64 bits superiores de la clave KR. Los 64 bits inferiores de la clave KR son los inversos de los 64 bits superiores de la clave KR que son los 64 bits inferiores de la clave secreta de entrada. Otros metodos de generacion de claves son los mismos que el metodo de generacion de la clave secreta de 256 bits y por lo tanto no se trataran aqrn.
La Fig. 54 es un diagrama que ilustra el proceso de cifrado de CAMELLIA para una clave de 192 o 256 bits.
En contraste con la Fig. 34 que ilustra el proceso de cifrado de CAMELLIA para una clave de 128 bits, el numero de convertidores principales 320 se aumenta de tres a cuatro y el numero de subconvertidores 330 se aumenta de dos a tres. Por lo tanto, el proceso de cifrado para una clave de 192 o 256 bits que usa una funcion F de 24 vueltas se lleva a cabo para cifrado total. Otros componentes son los mismos que los del caso para una clave de 128 bits mostrada en la Fig. 34 y por lo tanto no se trataran aqrn.
La Fig. 55 es un diagrama que ilustra el proceso de descifrado de CAMELLIA para una clave de 192 o 256 bits.
El proceso de descifrado de CAMELLIA para una clave de 128 bits se trato anteriormente con referencia a la Fig. 35. En contraste con la Fig. 35, el numero de convertidores principales 320 se aumenta a cuatro, el numero de los subconvertidores 330 se aumenta a tres y se proporciona una funcion F de 24 vueltas como el caso del proceso de cifrado. Otros componentes son los mismos que los del proceso de descifrado de CAMELLIA para una clave de 128 bits y por lo tanto no se trataran aqrn.
Senalar que los detalles del algoritmo CAMELLIA de cifrado de bloques de claves de 128, 192 o 156 bits se exponen en “128-bit Block Cipher Camellia Algorithm Specification”.
Todas las realizaciones mostradas anteriormente son aplicables a cualquier aparato de conversion de datos para una clave de 128, 192 o 256 bits.
La funcion de transferencia de claves y datos proporcionada en el subconvertidor 330 se puede aplicar a todas las realizaciones de la presente invencion.
5
10
15
20
25
30
Con todas las realizaciones precedentes, las operaciones de los componentes respectivos se asocian unas con otras y por lo tanto las operaciones de los componentes respectivos se pueden sustituir por una secuencia de operaciones basadas en la relacion de las operaciones tratadas anteriormente. Con la sustitucion, las realizaciones pueden llegar a ser las de un metodo de la invencion.
Ademas, si los procesos de los componentes respectivos sustituyen las operaciones de los mismos, entonces las realizaciones precedentes pueden llegar a ser realizaciones para programas.
Aun mas, si los programas se almacenan en medios de almacenamiento legibles por ordenador que almacenan programas, entonces las realizaciones pueden llegar a ser realizaciones para medios de almacenamiento legibles por ordenador que almacenan programas.
Todas las realizaciones para programas o las realizaciones para almacenamiento legible por ordenador que almacenan programas se pueden implementar por programas operables por ordenador.
Los procesos de las realizaciones respectivas para programas y aquellos para las realizaciones respectivas para medios de almacenamiento legibles por ordenador son ejecutables por programas, que se almacenan en una memoria. Los programas se leen por una unidad central de proceso (CPU) desde la memoria y se ejecutan para implementar diagramas de flujo por la unidad central de proceso. Senalar que la memoria y la unidad central de proceso no se muestran en las figuras.
Tambien senalar que el software o programa de cada realizacion se puede implementar por un microprograma almacenado en una ROM (MEMORIA SOLO DE LECTURA). Alternativamente, cada funcion de los programas precedentes se puede implementar por una combinacion de software, microprograma y hardware.
Aplicabilidad industrial
La restriccion del aumento de selectores y la reduccion en el numero de selectores permiten reducir el tamano del dispositivo.
Tambien, la reduccion en un numero global de puertas en circuitos permite lograr un consumo de potencia bajo.
Aun mas, se puede mejorar la frecuencia de operacion.
El subconvertidor puede transferir datos de entrada o una clave de entrada.
Se permite un ajuste flexible a un cambio en la configuracion del aparato.
Se permite que una de la unidad de conversion de datos 50 y la unidad de inversion de datos 70 realice conversion de datos y la otra de la unidad de conversion de datos 50 y la unidad de inversion de datos 70 transfiera datos de entrada o una clave de entrada.
El camino desde el convertidor principal al selector se hace redundante, permitiendo por ello al dispositivo llegar a ser compacto y la reduccion en el numero de selectores permite lograr un consumo de potencia bajo.

Claims (15)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    REIVINDICACIONES
    1. Un aparato de conversion de datos para recibir una clave y datos y para realizar conversion de datos para uno de cifrado y descifrado de los datos recibidos usando la clave recibida, el aparato de conversion de datos que comprende:
    un aleatorizador de datos (30) adaptado para realizar conversion de datos; y
    un controlador (5) adaptado para controlar una senal de transferencia que indica uno de la clave y los datos a ser transferidos,
    en donde el controlador (5) esta adaptado para sacar la senal de transferencia en un caso de transferencia de uno de la clave y los datos y
    en donde el aleatorizador de datos (30) incluye,
    un subconvertidor (330) adaptado para realizar la conversion de datos para uno de cifrado de datos y descifrado de datos convirtiendo los datos recibidos usando la clave recibida y para transferir al menos uno de la clave recibida y los datos recibidos sin conversion de datos tras la recepcion de la senal de transferencia sacada por el controlador (5),
    en donde el subconvertidor (330) incluye al menos uno de,
    una unidad de convertidor de datos (50) adaptada para realizar conversion de datos lineal y
    una unidad de inversor de datos (70) adaptada para realizar una conversion de datos que es inversa a la de la unidad de convertidor de datos (50),
    caracterizado por que
    al menos una de la unidad de convertidor de datos (50) y la unidad de inversor de datos (70) se adapta para realizar la conversion de datos y para recibir la senal de transferencia sacada desde el controlador (5) y para transferir al menos uno de los datos y la clave sin conversion de datos segun la senal de transferencia recibida, cuando el controlador saca la senal de transferencia,
    en donde
    a) el controlador (5) se adapta para sacar una senal de transferencia de claves y una senal de mascara como las senales de transferencia para transferir la clave recibida y al menos una de la unidad de convertidor de datos (50) y la unidad de inversor de datos (70) se adapta para transferir la clave, tras la recepcion de la senal de transferencia de claves y la senal de mascara sacada desde el controlador (5), anulando los datos recibidos segun la senal de transferencia de claves recibida y permitiendo a la clave recibida pasar a traves segun la senal de mascara recibida o
    b) el controlador (5) se adapta para sacar una senal de TRANSFERENCIA DE DATOS que es una senal de transferencia de datos como la senal de transferencia para transferir los datos recibidos y al menos una de la unidad de convertidor de datos (50) y la unidad de inversor de datos (70) se adapta para transferir los datos, tras la recepcion de la senal de TRANSFERENCIA DE DATOS sacada desde el controlador (5), anulando la clave recibida y permitiendo a los datos recibidos pasar a traves segun la senal de TRANSFERENCIA DE DATOS recibida.
  2. 2. El aparato de conversion de datos segun la reivindicacion 1, en donde el aleatorizador de datos (30) ademas incluye,
    un convertidor principal (320) adaptado para recibir los datos y para convertir no linealmente los datos recibidos,
    en donde el controlador (5) se adapta para sacar la senal de transferencia de datos como la senal de transferencia cuando se transfieren los datos y
    en donde el subconvertidor (330) se adapta para recibir la senal de transferencia de datos sacada desde el controlador (5) y los datos convertidos no linealmente por el convertidor principal (320) y para transferir los datos recibidos segun la senal de transferencia de datos recibida.
  3. 3. El aparato de conversion de datos segun la reivindicacion 1, que ademas comprende:
    un generador de claves (20) adaptado para generar la clave,
    en donde el controlador (5) se adapta para sacar la senal de transferencia de claves como la senal de transferencia en un caso de transferencia de la clave y
    5
    10
    15
    20
    25
    30
    35
    40
    45
    en donde el subconvertidor (330) se adapta para recibir la senal de transferencia de claves sacada desde el controlador (5) y la clave generada por el generador de claves (20) y para transferir la clave recibida segun la senal de transferencia de claves recibida.
  4. 4. El aparato de conversion de datos segun la reivindicacion 3, en donde el generador de claves (20) ademas incluye,
    un generador de claves intermedias (40), adaptado para recibir una clave secreta y generar una clave intermedia en base a la clave secreta recibida,
    en donde el subconvertidor (330) se adapta, tras la recepcion de la senal de transferencia de claves sacada desde el controlador (5), para transferir la clave intermedia generada por el generador de claves intermedias (40) al convertidor principal (320) segun la senal de transferencia de claves recibida,
    en donde el convertidor principal (320) se adapta para repetir la conversion y salida de la clave intermedia transferida por el subconvertidor (330) al menos una vez,
    en donde el subconvertidor se adapta para repetir la conversion y salida de la clave intermedia sacada desde el convertidor principal (320) al menos una vez,
    en donde al menos uno del convertidor principal (320) y el subconvertidor (330) se adapta para repetir la conversion y salida de la clave intermedia al menos una vez,
    en donde el convertidor principal (320) saca la clave intermedia sacada desde al menos uno del convertidor principal (320) y el subconvertidor (330) como una clave de salida y
    en donde el generador de claves intermedias (40) se adapta para recibir la clave de salida sacada desde el convertidor principal (320), generando por ello una clave extendida que incluye la clave intermedia y la clave de salida.
  5. 5. El aparato de conversion de datos segun la reivindicacion 4, en donde el generador de claves intermedias (40) incluye,
    un selector 6-1 KL (220) adaptado para seleccionar una clave de entre seis claves recibidas y
    un registro de claves KL (240) adaptado para mantener la clave seleccionada por el selector 6-1 KL (220) como la clave intermedia,
    en donde el selector 6-1 KL (220) se adapta para recibir una clave secreta, para recibir seis claves que incluyen la clave secreta, la clave intermedia mantenida en el registro de claves KL (240) y cuatro claves obtenidas a traves de desplazamientos de rotacion de la clave intermedia mantenida en el registro de claves KL (240) por cuatro numeros diferentes y seleccionar una clave de entre las seis claves recibidas,
    en donde el registro de claves KL (240) se adapta para mantener una clave seleccionada por el selector 6-1 KL (220) y
    en donde el subconvertidor (330) se adapta, tras la recepcion de la senal de transferencia de claves sacada desde el controlador (5), para recibir la clave mantenida en el registro de claves KL (240) como la clave intermedia y para transferir la clave intermedia recibida.
  6. 6. El aparato de conversion de datos segun la reivindicacion 4, en donde el generador de claves intermedias (40) incluye,
    un selector 4-1 (223) adaptado para seleccionar una clave de entre cuatro claves recibidas,
    un selector 3-1 KL (222) adaptado para seleccionar una clave de entre tres claves recibidas y
    un registro de claves KL (240) adaptado para mantener una clave seleccionada por el selector 3-1 KL (222) como la clave intermedia,
    en donde el selector 4-1 (223) se adapta para recibir cuatro claves obtenidas a traves de los desplazamientos de rotacion de la clave intermedia mantenida en el registro de claves KL (240) por cuatro numeros diferentes y para seleccionar una clave de entre las cuatro claves recibidas,
    en donde el selector 3-1 KL (222) se adapta para recibir una clave secreta, para recibir tres claves que incluyen la clave secreta, la clave seleccionada por el selector 4-1 (223) y la clave intermedia mantenida en el registro de claves KL (240) y para seleccionar una clave de entre las tres claves recibidas,
    en donde el registro de claves KL (240) se adapta para mantener una clave seleccionada por el selector 3-1 KL (222) y
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    en donde el subconvertidor (330) se adapta, tras la recepcion de la senal de transferencia de claves sacada desde el controlador (5), para recibir la clave mantenida en el registro de claves KL (240) como la clave intermedia y para transferir la clave intermedia recibida.
  7. 7. El aparato de conversion de datos segun la reivindicacion 4, en donde el generador de claves (20) ademas incluye,
    un programador de claves (210) adaptado para recibir la clave extendida generada por el generador de claves intermedias (40) y una constante predeterminada y para programar una clave para sacar una de la clave extendida recibida y la constante predeterminada recibida para al menos uno del convertidor principal (320) y el subconvertidor (330) segun una condicion predeterminada.
  8. 8. El aparato de conversion de datos segun la reivindicacion 1, en donde el subconvertidor (330) incluye,
    una 1/2 unidad de subconvertidor (90) adaptada para implementar conversion de datos para conversion de datos lineal e inversion de datos para conversion de datos que es inversa a la conversion de datos lineal en un circuito compartido y
    en donde el subconvertidor (330) se adapta para convertir los datos mediante el uso de la 1/2 unidad de subconvertidor (90), recibe la senal de transferencia sacada por el controlador (5) en un caso donde el controlador (5) saco la senal de transferencia y para transferir al menos uno de la clave y los datos segun la senal de transferencia recibida.
  9. 9. El aparato de conversion de datos segun la reivindicacion 1, en donde la unidad de convertidor de datos (50) y la unidad de inversor de datos (70) se disponen en serie y
    en donde una de la unidad de convertidor de datos (50) y la unidad de inversor de datos (70) se adapta para recibir uno de los datos convertidos por otra de la unidad de convertidor de datos (50) y la unidad de inversor de datos (70), la clave transferida y los datos transferidos y para realizar una de la conversion de datos, transferencia de claves y transferencia de datos mediante el uso de uno de los datos convertidos, la clave transferida y los datos transferidos que se reciben.
  10. 10. El aparato de conversion de datos segun la reivindicacion 1, en donde el aparato de conversion de datos se adapta para recibir uno de una clave de 128 bits, una clave de 192 bits y una clave de 256 bits y para convertir los datos recibidos usando las claves recibidas.
  11. 11. Un metodo de conversion de datos a ser realizado en un aparato segun una de las reivindicaciones 1 a 10, para
    recibir una clave y datos y realizar conversion de datos para al menos uno de cifrado de datos y descifrado de datos de los datos recibidos usando la clave recibida, en donde el metodo de conversion de datos que comprende:
    sacar una senal de transferencia que indica una de la clave recibida y los datos recibidos a ser transferidos en un caso de transferencia de la de la clave recibida y los datos recibidos,
    realizar la conversion de datos para uno de cifrado de datos y descifrado de datos convirtiendo los datos recibidos usando la clave recibida, la conversion de datos que es una conversion de datos lineal y una conversion inversa a la conversion de datos lineal y
    transferir al menos uno de la clave recibida y los datos recibidos sin conversion de datos tras la recepcion de la senal de transferencia sacada,
    caracterizado por que
    a) una senal de transferencia de claves y una senal de mascara se sacan como la senal de transferencia para transferir la clave recibida y
    la clave se transfiere tras la recepcion de la senal de transferencia de claves y la senal de mascara anulando los datos recibidos segun la senal de transferencia de claves recibida y permitiendo a la clave recibida pasar a traves segun la senal de mascara recibida o
    b) una senal de TRANSFERENCIA DE DATOS que es una senal de transferencia de datos se saca como la senal de transferencia para transferir los datos recibidos y
    los datos se transfieren tras la recepcion de la senal de TRANSFERENCIA DE DATOS anulando la clave recibida y permitiendo a los datos recibidos pasar a traves segun la senal de TRANSFERENCIA DE DATOS recibida.
  12. 12. El aparato de conversion de datos segun la reivindicacion 1, que ademas comprende:
    5
    10
    15
    20
    25
    30
    35
    40
    45
    un generador de claves (20) adaptado para generar una clave,
    en donde el generador de claves (20) ademas incluye un generador de claves intermedias (40) adaptado para recibir una clave secreta, para generar una clave intermedia basada en la clave secreta recibida y para generar una clave de salida basada en la clave intermedia generada usando el convertidor principal (320) y el subconvertidor (330).
  13. 13. El aparato de conversion de datos segun la reivindicacion 12, en donde el generador de claves intermedias (40) incluye,
    un selector 6-1 KL (220) adaptado para recibir seis claves y seleccionar una clave de entre las seis claves recibidas,
    un registro de claves KL (240) adaptado para mantener la clave seleccionada por el selector 6-1 KL (220) como la clave intermedia,
    un selector 6-1 KA (230) adaptado para seleccionar una clave de entre seis claves y
    un registro de claves KA (250) adaptado para mantener la clave seleccionada por el selector 6-1 KA (230) como la clave de salida,
    en donde el selector 6-1 KL (220) se adapta para recibir una clave secreta, para recibir seis claves que incluyen la clave secreta, la clave intermedia mantenida en el registro de claves KL (240) y cuatro claves obtenidas a traves de desplazamientos de rotacion de la clave intermedia mantenida en el registro de claves KL (240) por cuatro numeros diferentes y seleccionar una clave de entre las seis claves recibidas,
    en donde el registro de claves KL (240) se adapta para mantener una clave seleccionada por el selector 6-1 KL, como una clave intermedia,
    en donde el selector 6-1 KA (230) se adapta para recibir una clave de salida generada usando el convertidor principal (320) y el subconvertidor (330), para recibir seis claves que incluyen la clave de salida recibida, la clave de salida mantenida en el registro de claves KA (250) y cuatro claves obtenidas a traves de desplazamientos de rotacion de la clave de salida mantenida en el registro de claves KA (250) por cuatro numeros diferentes y para seleccionar una clave de entre las seis claves recibidas y
    en donde el registro de claves KA (250) se adapta para mantener la clave seleccionada por el selector 6-1 KA (230) como una clave de salida.
  14. 14. El aparato de conversion de datos segun la reivindicacion 12, en donde el generador de claves intermedias (40) incluye,
    un selector 2-1 (224) que se adapta para seleccionar una clave de entre dos claves, un selector 4-1 (223) que se adapta para seleccionar una clave de entre cuatro claves, un selector 3-1 KL (222) que se adapta para seleccionar una clave de entre tres claves,
    un registro de claves KL (240) que se adapta para mantener la clave seleccionada por el selector 3-1 KL (222) como una clave intermedia,
    un selector 3-1 KA (232) que se adapta para seleccionar una clave de entre tres claves y
    un registro de claves KA (250) que se adapta para mantener la clave seleccionada por el selector 3-1 KA (232) como una clave de salida,
    en donde el selector 2-1 (224) se adapta para seleccionar una clave de entre la clave intermedia mantenida en el registro de claves KL (240) y la clave de salida mantenida en el registro de claves KA (250),
    en donde el selector 4-1 (223) se adapta para recibir cuatro claves obtenidas a traves de desplazamientos de rotacion de la clave seleccionada por el selector 2-1 (224) por cuatro numeros diferentes y seleccionar una clave de entre las cuatro claves recibidas,
    en donde el selector 3-1 KL (222) se adapta para recibir una clave secreta, para recibir tres claves que incluyen la clave secreta, la clave seleccionada por el selector 4-1 (223) y la clave intermedia mantenida en el registro de claves KL (240) y para seleccionar una clave de entre las tres claves,
    en donde el registro de claves KL (240) se adapta para mantener la clave seleccionada por el selector 3-1 KL (222) como una clave intermedia,
    5
    10
    15
    20
    25
    en donde el selector 3-1 KA (232) se adapta para recibir una clave de salida generada usando el convertidor principal (320) y el subconvertidor (330), para recibir tres claves que incluyen la clave de salida recibida, la clave
    seleccionada por el selector 4-1 (223) y la clave de salida mantenida en el registro de claves KA (250) y para
    seleccionar una clave de entre las tres claves y
    en donde el registro de claves KA 8250) se adapta para mantener una clave seleccionada por el selector 3-1 KA (232) como una clave de salida.
  15. 15. El aparato de conversion de datos segun la reivindicacion 12, en donde el generador de claves intermedias (40) incluye,
    un selector 2-1 KL (291) que se adapta para seleccionar una clave de entre dos claves,
    un registro de claves KL (240) que se adapta para mantener la clave seleccionada por el selector 2-1 KL (291),
    un selector 2-1 KA (250) que se adapta para seleccionar una clave de entre dos claves,
    un registro de claves KA (250) que se adapta para mantener la clave seleccionada por el selector 2-1 KA (292),
    un selector 2-1 (227) que se adapta para seleccionar una clave de entre dos claves y
    un selector 8-1 (228) que se adapta para seleccionar una clave de entre ocho claves,
    en donde el selector 2-1 KL (291) se adapta para recibir una clave secreta y seleccionar una clave de entre la clave secreta recibida y la clave mantenida en el registro de claves KL (240),
    en donde el selector 2-1 KA (292) se adapta para recibir una clave de salida generada usando el convertidor principal (320) y el subconvertidor (330) y para seleccionar una clave de entre la clave de salida recibida y la clave mantenida en el registro de claves KA (250),
    en donde el selector 2-1 (227) se adapta para seleccionar una clave de entre dos claves seleccionadas por el selector 2-1 KL (291) y el selector 2-1 KA (292) y
    en donde el selector 8-1 (228) se adapta para recibir ocho claves obtenidas a traves de desplazamientos de rotacion de la clave seleccionada por el selector 2-1 (227) por ocho numeros diferentes y para seleccionar una clave de entre las ocho claves recibidas.
ES03755263.5T 2002-05-23 2003-03-07 Aparato de conversión de datos y método de conversión de datos Expired - Lifetime ES2565816T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2002148786 2002-05-23
JP2002148786A JP4128395B2 (ja) 2002-05-23 2002-05-23 データ変換装置
PCT/JP2003/002689 WO2003100751A1 (fr) 2002-05-23 2003-03-07 Dispositif et procede de conversion de donnees

Publications (1)

Publication Number Publication Date
ES2565816T3 true ES2565816T3 (es) 2016-04-07

Family

ID=29561194

Family Applications (1)

Application Number Title Priority Date Filing Date
ES03755263.5T Expired - Lifetime ES2565816T3 (es) 2002-05-23 2003-03-07 Aparato de conversión de datos y método de conversión de datos

Country Status (12)

Country Link
US (1) US7639800B2 (es)
EP (1) EP1507247B1 (es)
JP (1) JP4128395B2 (es)
KR (1) KR100806468B1 (es)
CN (1) CN1647139B (es)
AU (1) AU2003211779A1 (es)
CA (1) CA2485943C (es)
DK (1) DK1507247T3 (es)
ES (1) ES2565816T3 (es)
NO (1) NO337611B1 (es)
TW (1) TWI229299B (es)
WO (1) WO2003100751A1 (es)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7760874B2 (en) 2004-07-14 2010-07-20 Broadcom Corporation Method and system for implementing FI function in KASUMI algorithm for accelerating cryptography in GSM/GPRS/EDGE compliant handsets
US7623658B2 (en) * 2004-08-23 2009-11-24 Broadcom Corporation Method and system for implementing the A5/3 encryption algorithm for GSM and EDGE compliant handsets
US7627115B2 (en) * 2004-08-23 2009-12-01 Broadcom Corporation Method and system for implementing the GEA3 encryption algorithm for GPRS compliant handsets
US7627113B2 (en) * 2005-02-08 2009-12-01 Broadcom Corporation Method and system for hardware accelerator for implementing f8 confidentiality algorithm in WCDMA compliant handsets
CN101044535B (zh) * 2005-03-16 2011-06-15 三菱电机株式会社 数据变换装置以及数据变换方法
JP2007199156A (ja) * 2006-01-24 2007-08-09 Sony Corp 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム
JP4790541B2 (ja) * 2006-08-25 2011-10-12 日本電信電話株式会社 ハッシュ関数回路及びその演算方法
JP4961909B2 (ja) * 2006-09-01 2012-06-27 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5055993B2 (ja) * 2006-12-11 2012-10-24 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5223245B2 (ja) * 2007-06-25 2013-06-26 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
CN101335985B (zh) * 2007-06-29 2011-05-11 华为技术有限公司 安全快速切换的方法及系统
US8959307B1 (en) 2007-11-16 2015-02-17 Bitmicro Networks, Inc. Reduced latency memory read transactions in storage devices
JPWO2009075337A1 (ja) 2007-12-13 2011-04-28 日本電気株式会社 暗号化方法及び復号化方法、装置並びにプログラム
JP5272417B2 (ja) * 2008-01-21 2013-08-28 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
US9729316B2 (en) 2008-02-27 2017-08-08 International Business Machines Corporation Unified broadcast encryption system
JP5200949B2 (ja) * 2009-01-16 2013-06-05 富士通株式会社 暗号処理装置
US9317286B2 (en) * 2009-03-31 2016-04-19 Oracle America, Inc. Apparatus and method for implementing instruction support for the camellia cipher algorithm
US8665601B1 (en) 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8560804B2 (en) 2009-09-14 2013-10-15 Bitmicro Networks, Inc. Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
JP5605197B2 (ja) 2010-12-09 2014-10-15 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP5652363B2 (ja) * 2011-03-28 2015-01-14 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
WO2012141189A1 (ja) * 2011-04-11 2012-10-18 日本電気株式会社 暗号化方法、暗号化装置および暗号化プログラム
US9372755B1 (en) 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
US9043669B1 (en) 2012-05-18 2015-05-26 Bitmicro Networks, Inc. Distributed ECC engine for storage media
US9423457B2 (en) 2013-03-14 2016-08-23 Bitmicro Networks, Inc. Self-test solution for delay locked loops
US9400617B2 (en) 2013-03-15 2016-07-26 Bitmicro Networks, Inc. Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9934045B1 (en) 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9720603B1 (en) 2013-03-15 2017-08-01 Bitmicro Networks, Inc. IOC to IOC distributed caching architecture
US9858084B2 (en) 2013-03-15 2018-01-02 Bitmicro Networks, Inc. Copying of power-on reset sequencer descriptor from nonvolatile memory to random access memory
US9875205B1 (en) 2013-03-15 2018-01-23 Bitmicro Networks, Inc. Network of memory systems
US9734067B1 (en) 2013-03-15 2017-08-15 Bitmicro Networks, Inc. Write buffering
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9971524B1 (en) 2013-03-15 2018-05-15 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9842024B1 (en) 2013-03-15 2017-12-12 Bitmicro Networks, Inc. Flash electronic disk with RAID controller
US9672178B1 (en) 2013-03-15 2017-06-06 Bitmicro Networks, Inc. Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US10148430B1 (en) * 2013-04-17 2018-12-04 Amazon Technologies, Inc Revocable stream ciphers for upgrading encryption in a shared resource environment
US9684580B2 (en) * 2013-11-05 2017-06-20 Ixia Methods, systems, and computer readable media for efficient scrambling of data for line rate transmission in high speed communications networks
JP2015130580A (ja) * 2014-01-07 2015-07-16 富士通株式会社 データスクランブル装置、セキュリティ装置、セキュリティシステム及びデータスクランブル方法
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash device
US10042792B1 (en) 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
US10078604B1 (en) 2014-04-17 2018-09-18 Bitmicro Networks, Inc. Interrupt coalescing
US9811461B1 (en) 2014-04-17 2017-11-07 Bitmicro Networks, Inc. Data storage system
US9952991B1 (en) 2014-04-17 2018-04-24 Bitmicro Networks, Inc. Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation
JP6187624B1 (ja) * 2016-03-17 2017-08-30 富士電機株式会社 情報処理装置、情報処理方法及びプログラム
US10404459B2 (en) * 2017-02-09 2019-09-03 Intel Corporation Technologies for elliptic curve cryptography hardware acceleration
US10552050B1 (en) 2017-04-07 2020-02-04 Bitmicro Llc Multi-dimensional computer storage system
US10698839B2 (en) * 2017-12-12 2020-06-30 Western Digital Technologies, Inc. Seed scrambling
US10635400B2 (en) 2017-12-12 2020-04-28 Western Digital Technologies, Inc. Seed generation
CN112805769B (zh) * 2018-10-04 2023-11-07 日本电信电话株式会社 秘密s型函数计算系统、装置、方法及记录介质
US11838402B2 (en) 2019-03-13 2023-12-05 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption
US11240022B1 (en) * 2019-04-11 2022-02-01 Wells Fargo Bank, N.A. Passive encryption rotation keys
US11632231B2 (en) * 2020-03-05 2023-04-18 Novatek Microelectronics Corp. Substitute box, substitute method and apparatus thereof

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10172298A (ja) * 1996-12-05 1998-06-26 Mitsubishi Electric Corp 半導体記憶装置
GB2321728B (en) * 1997-01-30 2001-12-19 Motorola Inc Apparatus and method for accessing secured data stored in a portable data carrier
JP3600454B2 (ja) * 1998-08-20 2004-12-15 株式会社東芝 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
US7184549B2 (en) * 2000-01-14 2007-02-27 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for encryption, method and apparatus for decryption, and computer-readable medium storing program
TWI275049B (en) * 2000-03-09 2007-03-01 Nippon Telegraph & Telephone Block cipher apparatus using auxiliary transformation
JP4457474B2 (ja) * 2000-04-04 2010-04-28 ソニー株式会社 情報記録装置、情報再生装置、情報記録方法、情報再生方法、および情報記録媒体、並びにプログラム提供媒体
US7333609B2 (en) * 2001-04-03 2008-02-19 Mitsubishi Denki Kabushiki Kaisha Encrypting apparatus
JP2003067340A (ja) * 2001-08-28 2003-03-07 Mitsubishi Electric Corp 認証の選択システム、認証システム
US7986820B2 (en) * 2001-10-19 2011-07-26 Mitsubishi Electric Research Laboratories, Inc. Method for comparing features extracted from images of fingerprints

Also Published As

Publication number Publication date
TW200307226A (en) 2003-12-01
NO20045596L (no) 2005-02-18
EP1507247A1 (en) 2005-02-16
EP1507247B1 (en) 2016-02-24
KR100806468B1 (ko) 2008-02-21
JP2003345244A (ja) 2003-12-03
DK1507247T3 (en) 2016-03-29
KR20050004187A (ko) 2005-01-12
WO2003100751A1 (fr) 2003-12-04
CA2485943A1 (en) 2003-12-04
CN1647139B (zh) 2011-09-14
EP1507247A4 (en) 2011-01-19
CA2485943C (en) 2011-04-19
US20050226407A1 (en) 2005-10-13
CN1647139A (zh) 2005-07-27
US7639800B2 (en) 2009-12-29
NO337611B1 (no) 2016-05-09
AU2003211779A1 (en) 2003-12-12
TWI229299B (en) 2005-03-11
JP4128395B2 (ja) 2008-07-30

Similar Documents

Publication Publication Date Title
ES2565816T3 (es) Aparato de conversión de datos y método de conversión de datos
JP6592804B2 (ja) 新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令
CN101764684B (zh) 实现sms4算法的加解密系统
JP2009516976A (ja) マルチレーン高速暗号化及び復号
WO2001067425A1 (fr) Systeme de chiffrage de blocs utilisant la conversion auxiliaire
JP2000162965A (ja) 暗復号装置及び記憶媒体
JP4025722B2 (ja) データ暗号化のための方法および装置
KR100525389B1 (ko) 실시간 입력 스트림의 암호화/복호화 장치
JPH10240500A (ja) 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム
KR20050087271A (ko) 가변 키 길이를 가지는 초기 라운드 키에 대응하는 암호라운드 키와 복호 라운드 키를 선택적으로 발생하는 키스케쥴 장치
JPH11298471A (ja) ブロック暗号化方法及び装置
US20100027781A1 (en) Method and apparatus for enhancing performance of data encryption standard (des) encryption/decryption
JP2014240921A (ja) 暗号装置、暗号処理方法及び暗号処理プログラム
KR101662291B1 (ko) 경량 블록암호 lea 기반 암호화 및 복호화 장치
JP5605197B2 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
ES2293665T3 (es) Metodo para la conversion criptografica de bloques de entrada de l bits de informacion de datos digitales en bloques de salida de l bits.
KR102393958B1 (ko) 암호화 알고리즘이 적용된 시스템에서의 데이터 처리 방법
JP4230152B2 (ja) 暗号回路
JP2002032016A (ja) データ暗号化標準アルゴリズムを利用した暗号化装置
Mitsuyama et al. Burst mode: a new acceleration mode for 128-bit block ciphers
KR20030037890A (ko) 디이에스 암호화 장치
JPWO2002058037A1 (ja) 暗号回路