ES2255712T3 - Aparato de transformacion de datos y procedimiento de transformacion de datos. - Google Patents

Aparato de transformacion de datos y procedimiento de transformacion de datos.

Info

Publication number
ES2255712T3
ES2255712T3 ES96925956T ES96925956T ES2255712T3 ES 2255712 T3 ES2255712 T3 ES 2255712T3 ES 96925956 T ES96925956 T ES 96925956T ES 96925956 T ES96925956 T ES 96925956T ES 2255712 T3 ES2255712 T3 ES 2255712T3
Authority
ES
Spain
Prior art keywords
data
transformation
unit
input
subdata
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
ES96925956T
Other languages
English (en)
Inventor
Mitsuru Mitsubishi Denki Kabushiki Kaisha MATSUI
Toshio Mitsubishi Denki Kabushiki Kaisha TOKITA
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of ES2255712T3 publication Critical patent/ES2255712T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Communication Control (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

Aparato de transformación de datos para transformar un primer dato de entrada (101) y un segundo dato de entrada (102), que comprende: - una primera unidad de transformación (121, 161) para efectuar una primera transformación no lineal del primer dato de entrada (101) utilizando un primer parámetro de clave (111), dando salida a un resultado trasformado, efectuando una operación XOR del resultado transformado y del segundo dato de entrada (102) par dar salida a un resultado operado con la función XOR como segundo dato intermedio (106), y dar salida a un segundo dato de entrada (102) como primer dato intermedio (105) sin ninguna transformación, y - una segunda unidad de transformación (122, 162) para efectuar una segunda transformación no lineal del primer dato intermedio (105) utilizando un segundo parámetro de clave (112), dando salida a un resultado transformado, efectuar una operación XOR del resultado transformado y del segundo dato intermedio (106) para dar salida a un resultado operado con la función XOR como cuarto dato intermedio (108), y dar salida al segundo dato intermedio (106) como tercer dato intermedio (107) sin ninguna transformación.

Description

Aparato de transformación de datos y procedimiento de transformación de datos.
Campo técnico
La presente invención se refiere a un aparato de transformación de datos y a un procedimiento de transformación de datos para la encriptación, la desencriptación de datos de entrada y la difusión de datos con el fin de proteger una información digital de comunicación.
Antecedentes de la técnica
Como procedimiento convencional de transformación de datos con destino a su encriptación, el "Algoritmo FEAL-8" (Algoritmo-8 de Cifrado Rápido de datos) se divulga por Miyaguchi et al. (Miyaguchi, Shiraishi, y Shimizu, "Algoritmo de Cifrado FEAL-8" Informe de Investigación Práctica NTT vol. 39, No. 4/5, 1988).
La Fig. 29 es un diagrama parcial del anteriormente señalado algoritmo de cifrado "FEAL-8".
En la figura, las referencias numerales 1001 y 1002 indican los datos de entrada de dos secuencias, las referencias numerales 1003 y 1004 indican los datos de salida de dos secuencias, y las referencias numerales 1005, 1006, 1007 y 1008 indican datos intermedios. 1011, 1012, 1013 y 1014 muestran respectivamente un primer parámetro de clave, un segundo parámetro de clave, un tercer parámetro de clave, y un cuarto parámetro de clave. Cada una de las referencias 1021, 1022, 1023 y 1024 muestran la unidad de subtransformación de cada etapa de transformación. Cada unidad de subtransformación incluye cada uno de los transformadores no lineales 1031, 1032, 1033, 1034 y cada uno de los circuitos XOR (de OR exclusivo) 1041, 1042, 1043, 1044.
A continuación se explicará una operación. Los datos de entrada 1001 y 1002 de dos secuencias son recibidos en una unidad de subtransformación 1021 de una primera etapa para ser transformados en nuevos datos, esto es, los datos intermedios 1005 y 1006 de dos secuencias. El dato intermedio es introducido en la unidad de subtransformación 1022 de una segunda etapa para ser transformados en nuevos datos, esto es, los datos intermedios 1007 y 1008. La anterior operación es repetida ocho veces en total, y los datos de salida 1003 y 1004 de dos secuencias son sacados como el último resultado de transformación procedente de la unidad de subtransformación de una octava etapa.
A continuación se explicará una operación de la unidad de subtransformación 1021 de la primera etapa para un ejemplo de las anteriores unidades de subtransformación.
La unidad de subtransformación 1021 recibe los datos de entrada 1001 y 1002 de dos secuencias y da salida a los datos intermedios 1005 y 1006 de dos secuencias. De acuerdo con lo descrito con detalle en el anteriormente señalado Informe de Investigación Práctica [Practical Research Report], el segundo dato de entrada, esto es, el dato de entrada 1002 es dividido en bytes independientes y el dato dividido es operado con la función XOR con el parámetro de clave. Y la adición aritmética es repetida respecto del dato y el dato divido es unido de nuevo. Esta operación de transformación no lineal se lleva a cabo en el transformador no lineal 1031. El dato transformado es operado con la función XOR con el primer dato de entrada 1001. El resultado operado con la función XOR es sacado de la primera etapa en forma de segundo dato intermedio 1006. Por otro lado, el segundo dato de entrada 1002 es sacado de forma del primer dato intermedio 1005 sin ninguna transformación.
En la segunda unidad de subtransformación 1022, el dato es procesado lo mismo que en el procedimiento anterior sacándose el dato intermedio de la segunda etapa. De la misma forma, en este ejemplo, se llevan a cabo en total los procesos de ocho etapas. Como resultado de ello se sacan los datos de salida 1003 y 1004.
El aparato de transformación de datos convencional está configurado según lo anteriormente descrito. El dato transformado es sacado únicamente después de que la transformación no lineal se ha completado en una etapa de la unidad de subtransformación, y es introducido en la unidad de subtransformación de la siguiente etapa. A saber, cada subtransformación se efectúa secuencialmente y lleva tiempo el efectuar un procedimiento completo.
LUBY M ET AL: "Como construir permutaciones pseudoaleatorias a partir de funciones pseudoaleatorias", Diario SIAM sobre Informática, Sociedad de Matemática Industrial y Aplicada, EU, ["HOW TO CONSTRUCT PSEUDORANDOM PERMUTATIONS FROM PSEUDORANDOM FUNCTIONS", SIAM JOURNAL ON COMPUTING, SOCIETY FOR INDUSTRIAL AND APPLIED MATHEMATICS], US, vol. 17, no. 2, 1 April 1988 (1988-04-01) pages 373-386, XP000567129 ISSN: 0097-5397], divulgan como construir un generador de permutación invertible pseudoaleatoria a partir de un generador pseudoaletatorio. Esta construcción está basada en uno de las principales características de diseño del Estándar de Encriptación de Datos (DES) de la Oficina Internacional de Estándares de los Estados Unidos [U.S. National Bureau of Standard]. Una aplicación práctica de esta medida es que un generador de bytes aleatorio puede utilizarse para construir eficazmente un criptosistema de bloques de clave privada que se ha demostrado seguro contra un ataque elegido de texto plano.
Así mismo, el documento GB-A-2 285 562 describe un mecanismo de generación de un modelo de transformación que comprende una sección de entrada de clave para introducir una clave de encriptación; una sección de generación de un modelo de transformación para generar un modelo de transformación para la transformación de los datos de entrada; una sección de salida para dar salida al modelo de transformación generado. Cuando una secuencia numérica correspondiente al modelo de transformación determinado es introducida como clave en una sección de entrada de clave, dicha sección de generación del modelo de transformación genera y da salida al modelo de transformación predeterminado correspondiente a la secuencia numérica. La secuencia numérica pseudoaleatoria es preferentemente generada en respuesta a la clave de entrada, y el modelo de transformación generado puede consistir en un modelo de permutación o en una tabla de sustitución.
Finalmente, BROSCIUS A G ET AL: "Explotando el paralelismo en la implementación de equipos físicos del DES" avances en Criptología. Santa Bárbara, Ago. 11 A 15, 1991, actas de la conferencia sobre Teoría y Aplicaciones de las Técnicas Criptográficas (CRYPTO), ["EXPLOITING PARALLELISM IN HARDWARE IMPLEMENTATION OF THE DE" ADVANCES IN CRYPTOLOGY. SANTA BARBARA, AUG. 11-15, 1991, PROCEEDINGS OF THE CONFERENCE ON THEORY AND APPLICATIONS OF CRYPTOGRAPHIC TECHNIQUES (CRYPTO), BERLIN, SPRINGER, DE, 1991, pages 367-376, XP 000269040], analiza las aproximaciones paralelas para varios niveles de una implementación. En el nivel más bajo, el núcleo del algoritmo puede ser separado en varias computaciones paralelas para un incremento de velocidad. Generando subclaves con un ciclo de antelación, el tiempo requerido puede ser efectivamente solapado mediante el empleo de la subclave en el resto de la operación de redondeo. Una superposición adicional puede componerse de dos etapas de puertas OR exclusivas (XOR) a expensas de una complejidad incrementada y del recuento de puertas. Un nivel superior en la jerarquía, el empleo de múltiples implementaciones de redondeo puede incrementar la anchura de banda de las computaciones si el modo DES de la operación escogida no requiere la realimentación del texto cifrado. De todos los modos oficiales, esta exigencia deja fuera todos los modos excepto el Libro de Códigos Electrónico (ECB). Desgraciadamente, se sabe que el ECB es susceptible de ataques basados en análisis de texto plano, que los bloques de entrada idénticos múltiples dan como resultado el mismo bloque de texto encriptado de salida. Finalmente, al nivel del sistema, el procesamiento de E/S concurrente con la computación DES proporciona la operación continua de la unidad de encriptación. Además de este almacenamiento, el uso de un Acceso Directo a Memoria (DMA) para la encriptación posibilita que el procesador de la máquina continúe otro trabajo concurrentemente con la encriptación en curso.
La presente invención está destinada a resolver el problema anterior. El objeto de la invención es efectuar una pluralidad de subtransformaciones en paralelo para incrementar una velocidad de procesamiento de la transformación de datos, como por ejemplo la encriptación, la desencriptación y la difusión de datos.
Divulgación de la invención
El objeto anterior de acuerdo con la invención se resuelve mediante un aparato de transformación de datos y mediante un procedimiento que comprende la característica de la reivindicación 1 y de la reivindicación 17, respectivamente. Formas de realización preferentes del aparato se definen en las subreivindicaciones.
De acuerdo con un primer aspecto de la invención, un aparato de transformación de datos para transformar un primer dato de entrada y un segundo dato de entrada se caracteriza por una primera unidad de transformación para efectuar una primera transformación no lineal del primer dato de entrada utilizando un primer parámetro de clave, dando salida a un resultado transformado, efectuar una operación XOR del resultado transformado y del segundo dato de entrada para dar salida a un resultado operado con la función XOR como segundo dato intermedio, y dar salida a un segundo dato de entrada como primer dato intermedio sin ninguna transformación, y una segunda unidad de transformación para efectuar una segunda transformación no lineal del primer dato intermedio utilizando un segundo parámetro de clave, dar salida a un resultado transformado, efectuar una operación XOR del resultado transformado y del segundo dato intermedio para dar salida a un resultado operado con la función XOR como cuarto dato intermedio, y dar salida al segundo dato intermedio como tercer dato intermedio sin ninguna transformación.
De acuerdo con una forma de realización preferente de este aparato la primera unidad de transformación incluye un primer transformador no lineal y un circuito XOR situado entre una entrada para el primer dato de entrada y una entrada de la segunda unidad de transformación para el segundo dato intermedio; y la segunda unidad de transformación incluye un segundo transformador no lineal y un circuito XOR situado entre una entrada para un primer dato intermedio y una entrada de una siguiente unidad de transformación para el cuarto dato intermedio; o la primera unidad de transformación incluye un circuito XOR situado entre una entrada para el segundo dato de entrada y una entrada de la segunda unidad de transformación para el primer dato intermedio y un primer transformador no lineal situado entre una entrada para un primer dato de entrada y una entrada de la segunda unidad de transformación para el segundo dato intermedio, y la segunda unidad de transformación incluye un circuito XOR situado entre la entrada para el segundo dato intermedio y una entrada de una siguiente unidad de transformación para el tercer dato intermedio y un segundo transformador no lineal situado entre una entrada para el primer dato intermedio y una entrada de la siguiente unidad de transformación para el cuarto dato intermedio; en el que la primera unidad de transformación y la segunda unidad de transformación están alternativamente conectadas d veces (d\geq2) desde una primera etapa hasta una última etapa, y la unidad de transformación de la última etapa, siendo cualquiera de entre la primera unidad de transformación y la segunda unidad de transformación, obtiene datos intermedios de número impar y datos intermedios de número par como datos de salida después de la transformación.
De acuerdo con otra forma de realización preferente de este aparato, en el que el primer dato de entrada, introducido en la primera unidad de transformación, es divido en un primer subdato de entrada y en un segundo subdato de entrada y el parámetro de clave es dividido en enésimos parámetros de clave divididos; este aparato comprende una primera unidad de subtransformación para efectuar una transformación no lineal del primer subdato de entrada del primer subdato de entrada, utilizando un primer parámetro de clave, dar salida a un resultado transformado, efectuar una operación XOR del resultado transformado y del segundo subdato de entrada, dar salida a un resultado operado con la función XOR como segundo subdato intermedio, y dar salida al segundo subdato de entrada como primer subdato intermedio sin ninguna transformación; y una segunda unidad de subtransformación para efectuar una transformación no lineal interna de los primeros subdatos intermedios utilizando el segundo parámetro de clave dividido, dar salida a un resultado transformado, operar con la función XOR el resultado transformado y los segundos datos intermedios, dar salida a un resultado operado con la función XOR como cuarto subdato intermedio y dar salida al segundo subdato intermedio como tercer dato intermedio sin ninguna transformación; en el que la primera unidad de subtransformación y la segunda unidad de subtransformación están alternadamente conectadas n veces (n\geq2) desde una primera etapa hasta una última etapa, y en el que los datos intermedios de número impar y los datos intermedios de número par sacados en la última etapa están unidos como resultado de transformación.
De acuerdo con una forma de realización adicional preferente del presente aparato, en la que el primer dato de entrada, introducido en la primera unidad de transformación, es dividido en un primer subdato de entrada y un segundo subdato de entrada, y el parámetro de clave es dividido en un primero y unos enésimos parámetros de clave divididos; este aparato comprende una primera unidad de transformación para efectuar una transformación no lineal interna del primer subdato de entrada, utilizando un primer parámetro de clave dividido, dar salida a un resultado transformado como segundo subdato intermedio, operar una función XOR del primer subdato de entrada y del segundo subdato de entrada, y dar salida a un resultado operado con la función XOR como primer subdato intermedio; y una segunda unidad de transformación para efectuar una transformación no lineal interna del primer subdato intermedio, sacado de la primera unidad de subtransformación utilizando el segundo parámetro de clave dividido, dar salida a un resultado transformado como cuarto subdato intermedio, operando una función XOR del primer subdato intermedio y del segundo subdato intermedio, y dar salida a un resultado operado con la función XOR como tercer dato intermedio; en el que la primera unidad de subtransformación y la segunda unidad de subtransformación están alternadamente conectadas n veces (n\geq2) desde una primera etapa hasta una última etapa, y en el que el dato intermedio de número impar y el dato intermedio de número par sacados a partir de la última etapa son unidos como resultado de transformación.
De acuerdo con otra forma de realización preferente adicional del presente aparato, el primer dato de entrada y el segundo dato de entrada, el dato intermedio de número impar y el dato intermedio de número par están respectivamente divididos en piezas de dato de forma que cada uno de los datos divididos tiene igual número de dígitos tanto de números impares como pares.
De acuerdo con otra forma de realización preferente adicional del presente aparato, la primera unidad de transformación incluye un primer transformador no lineal y un circuito XOR situados entre una entrada para el primer dato de entrada y una entrada para la segunda unidad de transformación para el segundo dato intermedio; y la segunda unidad de transformación incluye un segundo transformador no lineal y un circuito XOR situado entre una entrada para el primer dato intermedio y una entrada de una unidad de transformación siguiente para el cuarto dato intermedio; o la primera unidad de transformación incluye el circuito XOR situado entre una entrada para el segundo dato de entrada y una entrada de la segunda unidad de transformación, para el primer dato intermedio y un primer transformador no lineal situado entre una entrada para el primer dato intermedio y una entrada de la segunda unidad de transformación para el segundo dato intermedio, y la segunda unidad de transformación incluye el circuito XOR situado entre la entrada para el segundo dato intermedio y una entrada de una siguiente unidad de transformación para el tercer dato intermedio y un segundo transformador no lineal situado entre una entrada para el primer dato intermedio y una entrada de la siguiente unidad de transformación para el cuarto dato intermedio; en el que la primera unidad de transformación y la segunda unidad de transformación están alternadamente conectadas d veces (d\geq2) desde una primera etapa hasta una última etapa, y en el que el aparato comprende así mismo una unidad de selección de datos conectada en el lado de entrada de la primera unidad de transformación, una unidad de retención de datos conectada en el lado de salida de la segunda unidad de transformación, y una unidad de suministro de parámetros de clave; en el que en un primer momento, la unidad de selección de datos selecciona uno primero dato de entrada y un segundo dato de entrada para introducirlos en la primera unidad de transformación, y después de ello la unidad de selección de datos selecciona los datos de salida procedentes de la unidad de retención de datos para introducirlos en la primera unidad de transformación para constituir un bucle de realimentación; en el que este ciclo de transformación de datos es repetido m veces (m\geq2), y después de ello la unidad de retención de datos obtiene unos datos intermedios de número impar y unos datos intermedios de número par como resultado de transformación.
De acuerdo con otra forma de realización adicional preferente de este aparato para transformar el primer dato de entrada y el segundo dato de entrada, los cuales tienen ambos el mismo número de dígitos, comprende o bien una de entre una unidad de transformación incluyendo un primer transformador no lineal y un primer circuito XOR, y una segunda unidad de transformación incluyendo un segundo circuito XOR y un segundo transformador no lineal, en el que las unidades de transformación están conectadas d veces (d\geq2); en el que el aparato de transformación de datos comprende adicionalmente una unidad de selección de datos dispuesta en el lado de entrada de una primera unidad de transformación, una unidad de retención de datos dispuesta en el lado de salida de una última unidad de transformación, y una unidad de suministro de parámetros de clave; en el que, en un primer momento, la unidad de selección de datos selecciona el primero dato de entrada y el segundo dato de entrada para introducirlos en la primera unidad de transformación, y después de ello la unidad de selección de datos selecciona el dato de salida a partir de la unidad de retención de datos para introducirlos en la primera unidad de transformación, para formar un bucle de realimentación; y en el que este ciclo de transformación de datos es repetido m veces (m\geq2), y después de ello esta unidad de retención de datos obtiene unos datos intermedios de número impar y unos datos intermedios de número par como resultado de transformación.
De acuerdo con otra forma de realización preferente adicional del presente aparato, el primer dato de entrada es dividido en un primer subdato de entrada y en un segundo subdato de entrada, y el parámetro de clave es dividido de un primero a unos enésimos parámetros de clave divididos; y la unidad de transformación así mismo incluye una primera unidad de subtransformación para efectuar una transformación no lineal del primer subdato de entrada, utilizar el primer parámetro de clave dividido, dar salida a un resultado transformado, operar una función XOR del resultado transformado y del segundo subdato de entrada para dar salida a un resultado XOR como segundo subdato intermedio y dar salida al segundo subdato de entrada como primer subdato intermedio sin ninguna transformación; y una segunda unidad de subtransformación para introducir la obtención del primer subdato intermedio a partir de la primera unidad de subtransformación, efectuar una transformación no lineal interna del primer subdato intermedio utilizando el segundo parámetro de clave dividido, dar salida a un resultado transformado, operar una función XOR del resultado transformado y del segundo subdato intermedio para dar salida a un resultado operado con la función XOR como cuarto subdato intermedio, y dar salida al segundo subdato intermedio como tercer subdato intermedio sin ninguna transformación; en el que la primera unidad de subtransformación y la segunda unidad de subtransformación están alternadamente conectadas n veces (n\geq2), desde una primera etapa hasta una última etapa; en el que la unidad de de transformación incluye una unidad de subselección de datos dispuesta en el lado de entrada de la primera unidad de subtransformación, una unidad de subretención de datos dispuesta en el lado de salida de cualquiera de entre la primera y la segunda unidades de subtransformación, y una unidad de subsuministro de parámetros de clave; en el que, en un primer momento, la unidad de subseleccion de datos selecciona e introduce el primer subdato de entrada y el segundo subdato de entrada, después de seleccionar e introducir el primer subdato de entrada y el segundo subdato de entrada, la unidad de subselección de datos se regula para seleccionar e introducir el dato de salida procedentes de la unidad de subretención de datos para constituir un bucle de realimentación; y en el que la unidad de transformación repite la transformación de datos m veces (m\geq2), y la unidad de suministro de parámetros de clave suministra el parámetro de clave dividido para cada unidad de subtransformación correspondiente a la transformación repetida, y por fin, la unidad de subretención obtiene los subdatos intermedios de número impar y los subdatos intermedios de número par como primer dato de salida después de la transformación.
De acuerdo con otra forma de realización preferente adicional del presente aparato, el primer dato de entrada es dividido en un primer subdato de entrada y en un segundo subdato de entrada, y el parámetro de clave es dividido de un primero a unos enésimos parámetros de clave divididos; y la unidad de transformación incluye así mismo una primera unidad de subtransformación para introducir un primer subdato de entrada, efectuar una transformación no lineal del primer subdato de entrada utilizando el primer parámetro de clave dividido, dar salida a un resultado transformado como segundo subdato intermedio, operar una función XOR del primer subdato de entrada y del segundo subdato de entrada para dar salida a una función operada XOR como primer subdato intermedio; y una segunda unidad de subtransformación de datos para introducir el primer subdato intermedio sacado a partir de la primera unidad de subtransformación, efectuar una transformación no lineal del primer subdato intermedio utilizando el segundo parámetro de clave dividido, dar salida a un resultado transformado como cuarto subdato intermedio, operar una función XOR del primer subdato intermedio y del segundo dato intermedio y dar salida a un resultado operado con la función XOR como tercer subdato intermedio; en el que la primera unidad de subtransformación y la segunda unidad de subtransformación están alternadamente conectadas n veces (n\geq2) desde una primera etapa hasta una última etapa, en el que la unidad de subtransformación incluye una unidad de subselección de datos dispuesta en el lado de entrada de la primera unidad de subtransformación, una unidad de subretención de datos dispuesta en el lado de salida de cualquiera de entre la primera y la segunda unidades de subtransformación, y una unidad de subsuministro de parámetros de clave; en el que, en un primer momento, la unidad de subselección de datos selecciona e introduce un primer subdato de entrada y un segundo subdato de entrada, después de seleccionar e introducir el primer subdato de entrada y el segundo subdato de entrada, la unidad de subselección de datos se regula para seleccionar e introducir el dato de salida procedentes de la unidad de subretención de datos para constituir un bucle de realimentación; y en el que la unidad de transformación repite la transformación de datos m veces (m\geq2), la unidad de subsuministro de parámetros de clave suministra el parámetro de clave dividido para cada unidad de subtransformación correspondiente a la transformación repetida, y por fin, la unidad de subretención emite datos intermedios de número impar y datos intermedios de número par como primeros datos de salida después de la transformación.
De acuerdo con otra forma de realización preferente adicional del presente aparato, el dato de número impar que va a introducirse en cada unidad de subtransformación, es dividido en dos piezas de dato, ambas con un número de dígitos idéntico; y las primeras unidades de subtransformación son conectadas n veces (n\geq2).
De acuerdo con otra forma de realización preferente adicional del presente aparato al menos uno de los transformadores no lineales es un circuito X^{n} (X: un elemento) sobre el Campo Galois, en el que el circuito X^{n} sobre el Campo Galois puede constituirse mediante una base normal.
De acuerdo con otra forma de realización preferente adicional del presente aparato, al menos una parte del transformador no lineal es una Memoria de Solo Lectura, una Memoria de Acceso Aleatorio o un Circuito Lógico.
Finalmente, de acuerdo con otra forma de realización preferente adicional el presente aparato comprende dos circuitos lógicos, consistiendo o bien en dos circuitos XOR o bien en circuitos AND y OR, dispuestos en al menos uno de entre el primer lado de entrada y del segundo lado de entrada de la primera unidad de transformación como transformador de datos, en el que el dato de entrada, introducido en el transformador de datos, es dividido en dos piezas de datos que tienen un número predeterminado de dígitos en forma de primer subdato y de segundo subdato, el parámetro de clave es dividido en un primer parámetro de clave de transformación y en un segundo parámetro de clave de transformación; en el que el primer subdato es sometido a una primera operación lógica utilizando el primer parámetro de clave de transformación, un primer resultado operativo es operado con la función XOR con el segundo subdato para dar salida a un primer XOR y el primer XOR es sacado como dato de salida después de transformar el segundo subdato; y en el que la primera función XOR es sometida a una segunda operación lógica utilizando el segundo parámetro de clave de transformación, un segundo resultado operativo es operado con la función XOR con el primer subdato para dar salida a un segundo XOR, el segundo XOR es sacado como dato de salida después de transformar el primer subdato, y el dato de salida después de transformar el segundo subdato son unidos y sacados.
De acuerdo con un segundo aspecto de la presente invención, un procedimiento de transformación de datos para transformar el primer dato de entrada y el segundo dato de entrada se caracteriza por las etapas de:
a)
efectuar una primera transformación no lineal del primer dato de entrada utilizando un primer parámetro de clave, dando salida a un resultado transformado,
efectuar una operación XOR del resultado transformado y del segundo dato de entrada para dar salida a un resultado operado con la función XOR como segundo dato intermedio, y dar salida al segundo dato de entrada como primer dato intermedio sin ninguna transformación, y
b)
efectuar una segunda transformación no lineal del primer dato intermedio utilizando un segundo parámetro de clave, sacando un resultado transformado,
efectuar una operación XOR del resultado transformado y del segundo dato intermedio para dar salida a un resultado operado con la función XOR como cuarto dato intermedio, y dar salida al segundo dato intermedio como tercer dato intermedio sin ninguna transformación.
Breve descripción de los dibujos
La Fig. 1 es un diagrama de bloques que muestra una configuración de un aparato de transformación de datos de acuerdo con la Forma de Realización 1, la Fig. 2 muestra un ejemplo de un transformador no lineal, la Fig. 3 es un diagrama de bloques que muestra una configuración de un aparato de transformación de datos de acuerdo con la Forma de Realización 2, la Fig. 4 muestra que el aparato de transformación de datos de la primera Forma de Realización es idéntico lógicamente al aparato de transformación de datos de la segunda Forma de Realización, la Fig. 5 muestra otro ejemplo del aparato de transformación de datos de la misma configuración que el aparato de transformación de datos de la primera y la segunda Formas de Realización, la Fig. 6 muestra una parte de una configuración básica de un transformador no lineal de una unidad de subtransformación de un aparato de transformación de datos de la Forma de Realización 3, la Fig. 7 muestra una configuración global en cascada del aparato de transformación de datos de la tercera forma de realización, la Fig. 8 muestra el procedimiento de transformación del aparato de la Fig. 7, la Fig. 9 muestra el procedimiento de transformación del aparato de la Fig. 7, la Fig. 10 muestra el procedimiento del aparato de la Fig. 7, la Fig. 11 muestra una parte de una configuración básica y un transformador no lineal de una unidad de subtransformación de un aparato de transformación de datos de la Forma de Realización 4, la Fig. 12 muestra un parte de unas unidades de subtransformación en cascada y un procedimiento de transformación de datos del aparato de transformación de datos de la cuarta Forma de Realización, la Fig. 13 muestra una configuración básica de un transformador no lineal de la unidad de transformación de un aparato de transformación de datos de la Forma de Realización 5, la Fig. 14 es un diagrama de bloques que muestra una configuración de un aparato de transformación de datos de la Forma de Realización 6, la Fig. 15 es un diagrama de bloques que muestra una configuración de un aparato de transformación de datos de la Forma de Realización 7, la Fig. 16 es un diagrama de bloques que muestra una configuración de un aparato de transformación de datos de la Forma de Realización 8, la Fig. 17 es un diagrama de bloques que muestra una configuración de un aparato de transformación de datos de la Forma de Realización 9, la Fig. 18 muestra una configuración de un transformador no lineal externo de un aparato de transformación de datos de la Forma de Realización 9, la Fig. 19 muestra una configuración de un transformador no lineal interno de un aparato de transformación de datos de la Forma de Realización 9, la Fig. 20 muestra un ejemplo de unos elementos no lineales (tabla de sustitución) del transformador no lineal interno del aparato de transformación de datos de la novena Forma de Realización, la Fig. 21 muestra un ejemplo de unos elementos no lineales (tabla de sustitución) del transformador no lineal interno del aparato de transformación de datos de la novena Forma de Realización, la Fig. 22 muestra un ejemplo de elementos no lineales del transformador no lineal interno de la Fig. 19 constituido por una base normal de circuito X^{n} sobre el Campo Galois, la Fig. 23 es un diagrama de bloques que muestra una configuración de un aparato de transformación de datos de la Forma de Realización 10, la Fig. 24 muestra una configuración detallada del transformador de datos de la Fig. 23, la Fig. 25 es un diagrama de bloques que muestra otro aparato de transformación de datos de la forma de realización 11, la Fig. 26 muestra cada una de las características de once Formas de Realización de la primera Forma de Realización a la undécima Forma de Realización, la Fig. 27 muestra un ejemplo de aplicación del aparato de transformación de datos de la invención, la Fig. 28 muestra un ejemplo de aplicación del aparato de transformación de datos de la invención, y la Fig. 29 muestra una configuración de un aparato de transformación de datos convencional.
Mejor modo de llevar a cabo la invención
Forma de Realización 1
En un campo de procesamiento de información, se ha llamado la atención sobre la encriptación y desencriptación con el fin de mantener la seguridad de los datos o la seguridad de la comunicación entre dos personas. Es importante a los fines de encriptación y desencriptación procesar los datos a alta velocidad y para reducir la posibilidad del criptoanálisis.
Con referencia a un procedimiento de encriptación bien conocido, el dato de entrada es transformado no linealmente utilizando un parámetro de clave. La llamada probabilidad diferencial muestra la fortaleza del cifrado. Puede decirse que el cifrado es fuerte cuando la probabilidad diferencial es pequeña. De acuerdo con el Documento 1: Seguridad Demostrable Contra el Criptoanálisis Diferencial [Provable Security Against Differential Cryptanalysis], por Kaisa Nyberg, Lars Ramkilde Knudsen, Journal of Cryptology, vol. 8, No. 1 (1995), sobre encriptación de datos mediante una cascada de una pluralidad de subtransformaciones, si la probabilidad diferencial de la transformación no lineal es "p" se demuestra lo siguiente.
(1) Si hay más de tres etapas de subtransformaciones, la probabilidad diferencial como aparato global es inferior a 2p^{2} cuando se efectúa la transformación no lineal dentro del sistema en el que el valor del dato de salida es uno determinado por uno correspondiente al dato de entrada.
La afirmación anterior, es decir, que el valor del dato de salida es uno determinado por uno correspondiente al dato de entrada significa lo siguiente. Cuando el dato de entrada X tiene uno de los valores de 0 a 255 y el dato de salida Y tiene uno de los valores de 0 a 255, un valor particular del dato de salida Y correspondiente a un particular dato de entrada X es previamente determinado como par de datos de entrada y de datos de salida. Por ejemplo, cuando el valor del dato de entrada X es 8, el valor del dato de salida Y es siempre 125.
En el algoritmo mostrado en la Fig. 29, si cada una de las probabilidades diferenciales de los transformadores no lineales 1031, 1032, y 1033 es "p", la probabilidad diferencial del algoritmo global de la Fig. 29 resulta ser inferior a 2p^{2}.
La técnica convencional del Algoritmo FEAL pertenece a un tipo de algoritmos mostrado en la Fig. 29. En este Algoritmo FEAL, la probabilidad diferencial "p" es 1 en la transformación no lineal de cada proceso de subtransformación, con lo cual la probabilidad diferencial del algoritmo global resulta ser menos de 2, de acuerdo con lo anteriormente expuesto. Esto no demuestra nada respecto de la fortaleza del cifrado.
La Fig. 2 muestra un ejemplo de un transformador no convencional.
En la figura, la referencia numeral 151 indica un circuito XOR del transformador no lineal, la referencia numeral 152 indica un circuito inverso de Campo Galois. Este transformador no lineal emite como señal de salida "0", al recibir la entrada 0. n muestra el tamaño de bit del dato de entrada/salida. Cuando se emplea el transformador no lineal de la Fig. 2, se sabe que la probabilidad diferencial "p" resulta ser 2/2^{n} (donde "n" es un número impar) o p=4/2^{n} (donde "n" es un número par).
Sin embargo, la escala del circuito del circuito inverso 152 de Campo Galois resulta grande cuando el tamaño del dato de entrada es grande.
De acuerdo con la presente invención, la configuración descrita más adelante satisface también la manifestación anterior (1), lo que se demuestra en el Documento 2: "Sobre la Seguridad Demostrable de los Cifrados de Bloque contra el Criptoanálisis Diferencial y Lineal", ["On Provable Security of Block Ciphers against Differential and Linear Cryptanalysis", (Mitsuru Matsui, Text for the 18th Simposium on Information Theory and Its Applications, October 24-27, 1995)]. El documento 2 muestra que esta invención proporciona unos cifrados más fuertes que la configuración de (1) porque 2p^{2} en la manifestación anterior (1) puede reducirse a p^{2} incluso si el proceso de transformación no lineal es el mismo que en la Fig. 29.
En esta forma de realización, se explicará el aparato de transformación de datos, que incluye la unidad de subtransformación en la que la probabilidad diferencial "p" es pequeña y los datos pueden ser transformados a alta velocidad.
La Fig. 1 muestra una configuración del aparato de transformación de datos de la presente forma de realización.
En la figura, las referencias numerales 101 y 102 indican el dato de entrada A y el dato de entrada B, respectivamente. Las referencias numerales 103 y 104 indican el dato de salida A y el dato de salida B de la última etapa, que es el resultado de la transformación de datos y las referencias numerales 105 a 108 indican los datos intermedios, y las referencias numerales 111 a 114 indican los parámetros clave para la encriptación. Las referencias numerales 121 a 124 indican las unidades de subtransformación desde la primera etapa hasta la etapa enésima, incluyendo los transformadores no lineales 131 a 134 para la primera hasta las fases enésimas, y los circuitos XOR 141 a 144.
A continuación se explicará una operación del aparato de transformación de datos de la configuración anterior. Aquí, las longitudes de dos datos de entrada son idénticas. En el proceso de transformación de datos, lleva tiempo efectuar una transformación no lineal. El tiempo requerido por una operación XOR es lo suficientemente corto para ser ignorado en comparación con la transformación no lineal.
En la Fig. 1, se efectúa una primera transformación no lineal de una de las entradas, el dato de entrada A 101, utilizando el primer parámetro de clave 111 en el circuito XOR 151 y en el circuito inverso 152 de Campo Galois ambos mostrados en la Fig. 2. El resultado transformado 109 es operado con la función XOR con otra entrada, el dato de entrada B 102 y el resultado operado con la función XOR es transmitido hasta la siguiente fase como dato intermedio B 106 (S2). Por otro lado, el dato de entrada B 102 es transmitido hasta la siguiente fase sin ninguna transformación como primer dato intermedio A 105 (S1). Se efectúa una segunda transformación no lineal del dato intermedio A y el resultado transformado es operado con la función XOR con el dato intermedio B 106 para dar salida al dato intermedio B 108 (S4). El dato intermedio B 106 es transmitido hasta la siguiente etapa como dato intermedio A 107 sin ninguna transformación (S3). En el procedimiento de la operación anterior, la operación del segundo transformador no lineal 132 se efectúa en paralelo con la primera transformación no lineal.
Tanto en las unidades de subtransformación de la fase de número impar como de la fase de número par, las transformaciones no lineales se efectúan casi en paralelo de acuerdo con lo anteriormente descrito, lo que posibilita una transformación de datos de alta velocidad.
En la anterior explicación de la forma de realización, las longitudes de dos datos de entrada son idénticas. En otro caso, cuando las longitudes de dos datos de entrada son diferentes, por ejemplo, cuando el dato de entrada A incluye n_{1} bits y el dato de entrada B incluye n_{2} (n_{1} > n_{2}), se demuestra lo que sigue:
(2) Si hay más de tres etapas de subtransformaciones, la probabilidad diferencial de un aparato global resulta ser inferior a p^{2} cuando se efectúa la transformación no lineal dentro del sistema en el que el valor de un dato de salida se determina por una correspondiente al dato de entrada.
De acuerdo con ello, en la configuración de la Fig. 1, cuando las longitudes de los dos datos de entrada son diferentes, aún cuando la probabilidad diferencial "p" de cada unidad de transformación es la misma que en el caso anterior, el aparato de transformación de datos puede configurarse de forma que la probabilidad de diferencial "p" del aparato global se garantiza como inferior a p^{2}. En cuanto a las entradas en el circuito XOR del aparato anterior, se introducen dos datos con diferentes longitudes. Unos bits de datos sobrantes ((n_{1} - n_{2}) bits) de un dato de entrada A resulta excluido con la operación XOR. Únicamente el mismo número de bits como dato de entrada B (n_{2} bits) del dato de entrada A es operado con la función XOR con el dato de entrada B. En otra forma de operación, por ejemplo,
(n_{1} - n_{2}) bits de constantes puede concatenarse con el dato de entrada B y con el dato de entrada B con la parte concatenada que es operada con la función XOR con un dato de entrada A. Así mismo, el parámetro de clave es suministrado apropiadamente en correspondencia con la longitud de los datos que van a procesarse cuando el dato de entrada A y el dato de entrada B tienen longitudes de dato diferentes.
La configuración del soporte físico es la anteriormente mencionada en esta forma de realización. Es posible efectuar una transformación no lineal y una operación XOR utilizando un soporte lógico. Y el aparato de transformación de datos puede efectuar una operación de fase de número impar y, en paralelo, otra operación de número par, la cual es tan efectiva como la anteriormente expuesta.
Forma de Realización 2
A continuación se explicará otra configuración de una transformación no lineal de alta velocidad, la cual constituye el punto esencial de análisis de la presente invención.
En esta forma de realización, una localización del circuito XOR es alterada en cada unidad de subtransformación. La Fig. 3 muestra un diagrama de bloques de esta configuración. En la figura, las referencias numerales 161 a 164 indican la primera a la cuarta unidades de subtransformación. Los parámetros de clave 111 a 114, los transformadores no lineales 132 a 135, y los circuitos XOR 141 a 144 son los mismos elementos que en la primera forma de realización de la Fig. 1. Las conexiones internas de las unidades de subtransformación 161 a 164 son diferentes de las unidades de subtransformación 121 a 124 de la Fig. 1.
En el aparato de transformación de datos en el que los elementos están conectados de acuerdo con lo anteriormente descrito, la probabilidad diferencial de un aparato global resulta ser inferior a p^{2}, lo que significa que es menor que 2 p^{2} de acuerdo con lo anteriormente expuesto en (1), y el aparato puede generar un cifrado fuerte.
En cuanto al dato de entrada A 101 y al dato de entrada B 102 introducidos en la primera unidad de subtransformación 161, el dato de entrada A 101 es transformado no linealmente utilizando el primer parámetro de clave 111 del transformador no lineal 132, y el resultado transformado es sacado como el dato intermedio B 106 de la primera etapa (S12). El dato de entrada A 101 es operado con la función XOR con el dato de entrada B 102 en el circuito XOR 141, y el resultado operado con la función XOR es sacado como el dato intermedio A 105 de la primera etapa (S11).
El dato intermedio A 105 sacado por la unidad de subtransformación 161, es introducido en la segunda unidad de subtransformación 162. El dato intermedio A es transformado no linealmente utilizando el segundo parámetro de clave 112 del transformador no lineal 133, y el resultado transformado es sacado como dato intermedio B 108 de la segunda etapa (S14). El dato intermedio A 105 de la primera etapa y el dato intermedio B 106 son operados con la función XOR en el circuito XOR 142, y el resultado operado con la función XOR es sacado como dato intermedio A 107 de la segunda etapa (S13).
Las anteriores unidades primera y segunda de subtransformación están conectadas de manera alternada. La última etapa puede ser cualquiera de las dos unidades primera y segunda de subtransformación lo mismo que en la primera forma de realización.
En el aparato de transformación de datos conectado de acuerdo con lo anteriormente descrito, la probabilidad diferencial de un aparato global resulta ser inferior a p^{2} de acuerdo con el Documento 2, lo que se explicó en la primera forma de realización. En cuanto a la velocidad operativa del circuito, la operación XOR es mucho más rápida que la transformación no lineal. La transformación no lineal de la primera etapa y de la segunda etapa se llevan a cabo de esta forma casi en paralelo, lo que incrementa la velocidad de procesamiento del aparato de transformación de datos como conjunto.
A continuación se explicará, con referencia a la Fig. 4, que la configuración de la Fig. 1 es sustancialmente la misma que la configuración de la Fig. 3.
En la Fig. 4, las referencias numerales 121 a 124 muestran las unidades de subtransformación de la Fig. 1. Las referencias numerales 161 a 164 muestran las unidades de subtransformación de la Fig. 3. Tanto las unidades de subtransformación de la Fig. 1 como las unidades de subtransformación de la Fig. 3 están incluidas en la configuración de la Fig 4. La diferencia de la Fig. 1 y la Fig. 3 es qué parte del circuito es definida como unidad de subtransformación. Es decir, en la Fig. 1, los elementos situados entre el lado de entrada del primer transformador no lineal 131 y del lado de entrada del segundo transformador no lineal 132 (el primer transformador no lineal 131 y el circuito XOR 141) se definen como la primera unidad de subtransformación 121. Y los elementos situados entre el lado de entrada del segundo transformador no lineal 132 y del lado de entrada del siguiente primer transformador no lineal 133 (el segundo transformador no lineal 132 y el circuito XOR 142) se definen como la segunda unidad de subtransformación 122. En la Fig. 3, los elementos situados entre el lado de salida del primer transformador no lineal 131 y del lado de salida del segundo transformador no lineal 132 (el circuito XOR 141 y el segundo transformador no lineal 132) se definen como primera unidad de subtransformación 161. Y los elementos situados entre el lado de salida del segundo transformador no lineal 132 y del lado de salida del siguiente primer transformador no lineal 133 (el circuito XOR 142 y el primer transformador no lineal 133) se definen como segunda unidad de transformación 162.
La Fig. 5 muestra una configuración de otro ejemplo del aparato de transformación de datos, que es sustancialmente igual que el de las configuraciones de la Fig. 1 y de la Fig. 3.
En la Fig. 5, los circuitos XOR 141 a 145 están conectados en cascada. Esto es, los circuitos XOR están conectados de forma que el dato de salida procedente del circuito XOR resulta ser uno del dato de entrada del siguiente circuito XOR. Los transformadores no lineales 131, 133, 135 están conectados con los circuitos XOR de número impar 141, 143, 145, respectivamente. Los transformadores no lineales 132, 134, 136 están conectados con los circuitos XOR de número par 142, 144, respectivamente.
El aparato de transformación de datos configurado de acuerdo con lo mostrado en la Fig. 5 es capaz de procesar datos a alta velocidad porque las operaciones del primer y segundo transformadores no lineales 131 y 132, 133 y 134, o 135 y 156 se efectúan casi en paralelo de la misma forma que el aparato de transformación de datos configurado de acuerdo con lo mostrado en las Figs. 1 y 3.
Forma de Realización 3
De acuerdo con lo descrito en la Forma de Realización 1, el transformador no lineal de la Fig. 2, cuando el tamaño de los datos de entrada/salida resulta ser grande, la escala del circuito resulta también grande. En esta forma de realización, el aparato de transformación de datos está configurado como una estructura anidada para constituir un aparato de transformación de datos compacto utilizando un transformador no lineal de pequeño tamaño (por ejemplo, un circuito de elementos inversos).
El algoritmo FEAL de la técnica convencional no genera cifrados suficientemente fuertes porque la probabilidad diferencial "p" es grande.
En esta forma de realización, se utiliza un transformador no lineal de pequeño tamaño, lo que convierte en pequeña la escala del circuito y reduce también la probabilidad diferencial de un circuito global.
La Fig. 6 muestra la unidad de subtransformación y el transformador no lineal situado dentro de la unidad de subtransformación.
En la Fig. 6 "a" muestra la unidad de subtransformación de la primera etapa, la referencia numeral 221 muestra la unidad de subtransformación externa, y la referencia numeral 231 muestra el transformador no lineal externo de ella. "b" muestra una configuración detallada del transformador no lineal externo 231 anteriormente expuesto. Una unidad de división interna 351 divide el dato de entrada A 101 en dos piezas de dato, el dato de entrada A1 301 y el dato de entrada A2 302. Las referencias numerales 303 a 308 indican los datos internos intermedios y las referencias numerales 311 a 313 indican los parámetros de clave divididos del parámetro de clave 111. Una unidad conjunta interna 352 une el dato intermedio interno 303 y el dato intermedio interno 304. Las referencias numerales 321 y 322 muestran unidades de subtransformación internas, las referencias numerales 331 a 333 muestran transformadores no lineales internos, y las referencias 341 a 343 muestran circuitos XOR internos. La unidad de suministro 158 de parámetros de clave divide el parámetro de clave 111.
Por ejemplo, en el algoritmo mostrado en la Fig. 6, cuando se utilizan los transformadores no lineales internos 331, 332 y 333 que tienen una probabilidad diferencial "p", la probabilidad diferencial del transformador no lineal externo 231 resulta ser inferior a p^{2}. De acuerdo con ello, la probabilidad diferencial del algoritmo que incluye más de tres etapas de las unidades de subtransformación externas 221, resulta ser inferior a (p^{2})^{2} = p^{4}.
La Fig. 7 muestra una configuración global de la unidad de subtransformación en la que cuatro etapas de las unidades de subtransformación externas mostradas como "a" de la Fig. 6 están conectadas y cada una de las unidades de subtransformación externas incluye los transformadores no lineales mostrados como "b" de la Fig. 6 teniendo tres etapas de las unidades de subtransformación internas.
En la figura, únicamente elementos representativos están indicados por referencias numerales: las unidades de subtransformación externas 221 a 224, los transformadores no lineales externos 231, 234, los circuitos XOR 141 a 144 de la unidad de subtransformación externa, las unidades de subtransformación interna 321 a 323, los transformadores no lineales internos 331 a 336 de los primero y segundo transformadores no lineales externos 231 y 232.
Las Figs. 8 a 10 muestran un procedimiento de transformación de datos secuencial del aparato de transformación de datos configurado de acuerdo con lo mostrado en la Fig. 7.
A continuación se expondrá, con referencia a la Fig. 6, una operación del transformador no lineal externo 231.
La unidad de división interna 351 divide el dato de entrada A 101 recibido en la unidad de subtransformación externa 221 con un número arbitrario de dígitos en dos piezas de dato, el dato de entrada A1 301 y el dato de entrada A2 302. La unidad de suministro 158 de parámetros de clave divide el parámetro de clave 111 por un número arbitrario de dígitos en un número "n" de parámetros de clave divididos. La unidad de suministro 158 de parámetros de clave suministra los parámetros de clave divididos en forma de primer parámetro de clave dividido 311 hasta el parámetro de clave dividido enésimo 313. En la primera unidad de subtransformación interna 321, se efectúa una transformación no lineal interna del dato de entrada A1 101, el dato dividido del dato de entrada A 101, utilizando el primer parámetro de clave dividido 311. El dato transformado es operado con la función XOR con el dato de entrada A2 302 y el resultado operado con la función XOR es sacado como primer dato intermedio interno A2 306. El dato de entrada A2 es sacado como primer dato intermedio interno A1 sin ninguna transformación.
El primer dato intermedio interno A1 305 de la primera unidad de subtransformación interna 321 es introducido en la segunda unidad de subtransformación 322 como entrada A1. Se efectúa una transformación no lineal interna del primer dato intermedio interno A1 utilizando el segundo parámetro de clave dividido 312. El dato transformado es operado con la función XOR con el dato de entrada A2, esto es, el primer dato intermedio interno A2 306. El resultado operado con la función XOR es sacado como segundo dato intermedio interno A2 308, y el primer dato intermedio interno A2 306 es sacado como segundo dato intermedio interno A1 307 sin ninguna transformación. La primera unidad de subtransformación interna anteriormente expuesta, y la anteriormente expuesta segunda unidad de subtransformación interna están conectadas alternadamente hasta "n" fases. El dato intermedio interno A1 303 y el dato intermedio interno A2 304 de la última etapa están unidos por una unidad conjunta interna 352 y el resultado es sacado como resultado de transformación 109.
A continuación se explicará una operación del aparato de transformación de datos de la Fig. 7 configurado de acuerdo con lo anteriormente descrito.
En el primer ciclo, tanto el dato de entrada A 101 como el dato de entrada B 102 son introducidos y procesados como se muestra en la Fig. 8. Lleva tiempo efectuar una transformación no lineal, de forma que la mayor parte del periodo de tiempo requerido por el primer ciclo se invierte en las operaciones de los transformadores no lineales internos 331, 332 de la unidad de subtransformación externa 221 y de los transformadores no lineales internos 334, 335 de la unidad de subtransformación externa 222. Es decir, los datos suministrados dentro del aparato de transformación de datos dentro del primer ciclo se muestran mediante la línea en negrita de la Fig. 8 y las operaciones se efectúan en los transformadores no lineales internos 331, 332, 334 y 335.
En el siguiente ciclo, las operaciones se efectúan como se muestra en la Fig. 9. A saber, la mayor parte del periodo de tiempo del segundo ciclo se invierte por el transformador no lineal interno 333 de la primera unidad de subtransformación externa 221, el transformador no lineal interno 336 de la segunda unidad de subtransformación externa 222, el transformador no lineal interno 337 de la tercera unidad de subtransformación externa 223, y el transformador no lineal interno 391 de la cuarta unidad de subtransformación externa 224. En la figura, la línea discontinua en negrita muestra la transmisión de los datos del lado de entrada A.
En el siguiente ciclo, las operaciones se efectúan como se muestra en la Fig. 10. A saber, la mayor parte del periodo de tiempo de este ciclo se invierte por los demás transformadores no lineales internos 338, 339 y 392, 393 de las tercera y cuarta unidades de subtransformación externa 223 y 224. Las operaciones del procedimiento de transformación de datos global se completa mediante estos tres ciclos. En el sistema convencional, el dato es transformado secuencialmente, esto es, la transformación no lineal de cada etapa es iniciada después de que ha terminado la transformación no lineal de la etapa previa. En este caso de transformación de datos convencional, el procedimiento de transformación de datos requiere doce ciclos. A saber, el aparato de transformación de datos de la presente forma de realización puede procesar datos a una velocidad aproximadamente cuatro veces mayor que el aparato de transformación de datos convencional.
En el aparato de transformación de datos de la presente forma de realización, un transformador no lineal de la Forma de Realización 1 se emplea para los transformadores no lineales 331 a 393, teniendo una configuración anidada dentro de las unidades de subtransformación. También puede utilizarse un transformador no lineal de la Forma de Realización 2, que es también una configuración anidada. El mismo efecto puede sacarse como con el transformador no lineal expuesto en la Forma de Realización 1.
Forma de Realización 4
En esta forma de realización, un transformador no lineal de pequeño tamaño es aplicado al transformador no lineal en la unidad de subtransformación convencional.
La Fig. 11 muestra la unidad de subtransformación y la configuración detallada del transformador no lineal dentro de la unidad de subtransformación.
En la Fig. 11, "a" muestra la unidad de subtransformación de la primera etapa. La referencia numeral 421 indica una unidad de subtransformación externa y la referencia numeral 431 indica un transformador no lineal externo. En la Fig. 11, "b" muestra una configuración detallada del transformador no lineal externo 431, la referencia numeral 551 muestra una unidad de división interna y las referencias numerales 501 a 508 indican datos de entrada. Las referencias numerales 511 a 513 indican parámetros de clave divididos del parámetro de clave 111. La referencia numeral 552 muestra una unidad conjunta interna, y las referencias numerales 521 a 523 muestran unas unidades de subtransformación internas, las referencias numerales 531 a 533 muestran unos transformadores no lineales internos, y las referencia numerales 541 a 543 indican circuitos XOR.
En el algoritmo mostrado en la Fig. 11, cuando los transformadores no lineales internos 531, 532, 533 tienen la probabilidad diferencial "p", la probabilidad diferencial del transformador no lineal externo 431 es inferior a p^{2}. De acuerdo con ello, cuando el algoritmo incluye más de tres etapas de la unidad de subtransformación externa 421, la probabilidad diferencial del algoritmo resulta ser inferior a 2(p^{2})^{2} = 2 p^{4}.
En la Fig. 12, "a" muestra una configuración general de la unidad de subtransformación, en la que están conectadas dos etapas de las unidades de subtransformación externas mostradas como "a" en la Fig. 11. La unidad de subtransformación interna que tiene las tres etapas mostradas como "b" en la Fig. 11 se utiliza para el transformador no lineal de cada unidad de subtransformación externa. La Fig. 12 muestra también el procedimiento de transformación de datos secuencial del aparato de transformación de datos configurado como "a".
En la figura, únicamente se indican con referencias numerales los elementos representativos: las unidades de subtransformación externas 421 y 422, los circuitos XOR 441 y 442 de las unidades de subtransformación externa, las unidades de subtransformación internas 521, 522 y 523, y los transformadores no lineales internos 531 a 536 situados dentro de las primera y segunda unidades de subtransformación internas. Los demás elementos no se indican mediante referencias numerales.
A continuación se expondrá una operación del aparato de transformación de datos configurado de acuerdo con lo anteriormente descrito.
En el primer ciclo, el dato de entrada A 101 y el dato de entrada B 102 son introducidos y procesados como se muestra en "b" de la Fig. 12. Lleva tiempo procesar el dato en los transformadores no lineales internos 531 y 532 de la unidad de subtransformación externa 421. A saber, en el primer ciclo, el dato es procesado dentro de los transformadores no lineales internos 531 y 532 y el dato de entrada A y el dato de entrada B son transmitidos como se muestra mediante la línea en negrita "b" de la Fig. 12.
En el siguiente ciclo, el dato es procesado adicionalmente como se muestra en "c" de la Fig. 12. Lleva tiempo procesar el dato en el transformador no lineal interno 533 de la unidad de subtransformación externa 421 y del transformador no lineal interno 534 de la segunda unidad de subtransformación externa 422. La línea interrumpida en negrita muestra la transmisión del dato del lado de entrada A.
En el siguiente ciclo, el dato es adicionalmente procesado como se muestra en "d" de la Fig. 12. Lleva tiempo procesar el dato dentro del resto de los transformadores no lineales internos 535 y 536 de la segunda unidad de subtransformación externa 432. Las operaciones del procedimiento de transformación del dato global se completan mediante estos tres ciclos. En el sistema convencional, el dato es secuencialmente transformado, esto es, la transformación no lineal de cada fase es iniciada después de que ha finalizado la transformación no lineal de la fase previa. En el ejemplo convencional, el procedimiento de transformación de datos convencional requiere seis ciclos. El aparato de transformación de datos de la presente forma de realización completa la transformación de datos mediante tres ciclos, lo que significa que puede efectuarse una operación a alta velocidad.
En la forma de realización anterior, el transformador no lineal mostrado en la Forma de Realización 1 se utiliza dentro de la unidad de subtransformación que tiene una configuración anidada. El transformador no lineal mostrado en la Forma de Realización 2 puede también emplearse para una configuración anidada de la misma, lo que produce el mismo efecto.
Forma de Realización 5
Otro aparato de transformación de datos, en el que un transformador no lineal, siendo un elemento básico de la configuración de la presente invención, se aplica a un transformador no lineal de la unidad de subtransformación convencional.
La Fig. 13 muestra una configuración de este aparato de transformación de datos y del transformador no lineal situado dentro de la unidad de transformación.
En la Fig. 13, "a" muestra una configuración general, las referencias numerales 621 a 624 indican las unidades de subtransformación externas, las referencias numerales 631 a 634 indican los transformadores no lineales externos situados dentro de las unidades de subtransformación externas, y las referencias numerales 641 a 644 y 741 a 744 indican circuitos XOR. Las referencias numerales 601, 602, 701, 702 indican datos de entrada A1, B1, A2, B2, respectivamente. Las referencias numerales 603, 604, 703, 704, indican datos de salida después de la transformación. Las referencias numerales 605 a 608, 705 a 708 indican datos intermedios. En la Fig. 13, "b" muestra una configuración detallada del transformador no lineal externo 631. Las referencias numerales 651, 751 son datos después de la transformación no lineal, las referencias numerales 775 a 778 indican datos intermedios internos, y las referencias numerales 711 a 713 indican parámetros de clave divididos del parámetro de clave 111. Las referencias numerales 721 a 723 indican las unidades de subtransformación internas, las referencias numerales 731 a 733 indican transformadores no lineales internos y las referencias numerales 761 a 763 indican circuitos XOR.
El aparato de transformación de datos de la Fig. 13 introduce cuatro piezas arbitrarias de datos, un dato de entrada A1, un dato de entrada A2, un dato de entrada B1, y un dato de entrada B2. En cada proceso de subtransformación, se efectúan una transformación no lineal y una operación XOR, cada una de ellas entre el dato de entrada A1 y el dato de entrada B1, y entre el dato de entrada A2 y el dato de entrada B2. El resultado transformado es sacado como dato intermedio B1 y como dato intermedio B2. El dato de entrada B1 y el dato de entrada B2, se convierten en el dato intermedio A1 y el dato intermedio A2 sin ninguna transformación.
Una operación del aparato de transformación de datos anteriormente expuesto se desarrolla de la misma manera que en los aparatos de transformación de datos de las Formas de Realización 3 y 4, operación que se describió anteriormente con detalle y no se explicará aquí. El aparato de transformación de datos de la presente forma de realización mejora la velocidad operativa del aparato.
Forma de Realización 6
En esta forma de realización, la primera unidad de subtransformación 121 y la segunda unidad de subtransformación 122 están emparejadas como forma de unidad operativa básica. El procedimiento de transformación de datos de la Forma de Realización, el cual se efectuó mediante los plurales primeras unidades de subtransformación 121 y las plurales segundas unidades de subtransformación 122 conectadas de manera alternada, se efectuó repitiendo la operación de la unidad operativa básica anteriormente explicada. A saber, una unidad operativa está configurada por la primera unidad de transformación 121 y por la segunda unidad de subtransformación 122, cuyas operaciones pueden efectuarse repetidamente. Al final de la operación efectuada por esta unidad operativa, la salida procedente de la segunda unidad de transformación es almacenada y suministrada como siguiente dato de entrada para la primera unidad de subtransformación. La operación de la unidad operativa puede así repetirse, lo que reduce la escala del soporte físico.
La Fig.14 es un diagrama de bloques que muestra la configuración anterior. En la figura, las referencias numerales 121 y 122 muestran la primera y segunda unidad de subtransformación, respectivamente. Las referencias numerales 111 y 112 muestran el primero y segundo parámetros de clave. Los transformadores no lineales 131 y 132, los circuitos XOR 141 y 142 son los mismos de los de la Fig. 1 de la Forma de Realización 1. A referencia numeral 153 indica una unidad de control, la referencia numeral 154 indica una unidad de repetición, las referencias numerales 156a y 156b son unidades de selección de datos, las referencias numerales 157a y 157b son unidades de retención de datos, y la referencia numeral 158 indica una unidad de suministro de parámetros de clave.
La que sigue es una operación del aparato de transformación de datos expuesto.
El dato arbitrario de entrada A 101 y el dato arbitrario B 102 son introducidos en la primera unidad de subtransformación 121 a través de las unidades de selección de datos 156a y 156b. A continuación, un dato intermedio A 105 y un dato intermedio B 106 son introducidos en la segunda unidad de subtransformación 122. La operación de la primera y segunda unidades de subtransformación es la misma de la Forma de Realización 1. La unidad de suministro 158 de parámetros de clave suministra unos parámetros, que son apropiados para cada una de la primera y segunda unidades de subtransformación, a los transformadores no lineales de la primera y segunda unidades de subtransformación para repetir el proceso, lo que se explicará más adelante. Un dato intermedio A 107 y un dato intermedio B sacado a partir de la segunda unidad de subtransformación 122 son introducidos en las unidades de retención de datos 157a y 157b. Los datos son entonces transmitidos a las unidades de selección de datos 156a y 156b a través de la unidad de repetición 154, y de esta forma introducidos en la primera unidad de subtransformación 121 como un dato de entrada A y dato de entrada B. A continuación, el proceso anterior se repite para dar salida al dato de salida A 103 y el dato de entrada B 104.
El aparato de transformación de datos de la presente forma de realización puede transformar los datos a alta velocidad de la misma forma que la Forma de Realización1. El número de unidades de subtransformación se reduce, lo que reduce la escala del aparato.
En la forma de realización anterior un conjunto de una etapa de la primera unidad de subtransformación 121 y de una etapa de la segunda unidad de subtransformación 122 se define como unidad operativa básica de repetición. La otra forma, la serie de la primera unidad de transformación y de la segunda unidad de transformación está conectada el necesario numero de veces puede definirse como unidad operativa de repetición.
En una configuración de la Fig.14, una serie de la primera unidad de su transformación y la segunda unidad de su trasformación que define como una unidad de conexión encascada. El aparato de transformación de datos incluye de esta forma siempre un número par de unidades de subtransformación. Esta forma, puede efectuarse la transformación adecuada incluso si el dato de entrada A y el dato de entrada B tienen números diferentes de dígitos de los datos. Por ejemplo, se emplean un dato de entrada A que tiene 7 dígitos y un dato de entrada B que tiene 9 dígitos, la unidad de suministro de parámetros de clave suministra el parámetro de clave 111 para un dato de 7 dígitos al transformador no lineal 131 y la unidad de suministro 158 de parámetros de clave suministra el parámetro de clave 119 para el dato de 9 dígitos al transformador no lineal 132. El dato de entrada A 101 de 7 dígitos es transformado no linealmente en el transformador no lineal 131 utilizando el parámetro de clave 111 de 7 dígitos dentro del dato intermedio B 106 de 7 dígitos y así es sacado como dato intermedio A 107. Este dato intermedio A 107 es transmitido mediante la unidad de retención 157a de datos y de la unidad de selección 156a de datos y se convierte de nuevo en el dato de entrada A. De esta forma debe haber un número par de unidades de subtransformación para que el dato de entrada A con 7 dígitos sea siempre transformado utilizando el parámetro de clave 111 de 7 dígitos. Si existe un número impar en las unidades de subtransformación dentro del transformador no lineal 131, el dato de 7 dígitos y el dato de 9 dígitos son linealmente transformados de forma alternante.
Un número impar de unidades de subtransformación puede conectarse en cascada si la unidad de suministro 158 de parámetros de clave puede alternativamente suministrar el parámetro de clave del dato de 7 dígitos y el parámetro de clave del dato de 9 dígitos (este supuesto no se muestra en la figura).
Forma de Realización 7
En esta forma de realización, el proceso efectuado por el proceso de transformación de datos de la Forma de Realización 2, el cual está configurado mediante las plurales primeras unidades de subtransformación 161 y las plurales de segunda subtransformación 162 alternadamente conectadas, se efectúa ahora repitiendo la operación de la unidad operativa básica de una primera unidad de subtransformación y de una segunda unidad de subtransformación. A saber, un bucle de alimentación se constituye de acuerdo con lo descrito en la Forma de Realización, de forma que el dato intermedio A y el dato intermedio B son devueltos a la unidad de selección de datos del lado de entrada para ser procesados de nuevo. Así, la escala del circuito puede reducirse.
La Fig. 15 es un diagrama de bloques que muestra la configuración anterior. En la figura, las referencias numerales, 125, 126 muestran la primera unidad de subtransformación y la segunda unidad de subtransformación, respectivamente. Las referencias numerales 111,112 muestran el primero y el segundo parámetro de clave, respectivamente. Los transformadores no lineales 132- 133 los circuitos XOR 141a 142 son los mismos de los de las Fig. 3 de la Forma de Realización 2. La unidad de control 153, la unidad de repetición 154, las unidades de selección 156a, 156 b de datos, las unidades de retención 157a, 157b de datos, y la unidad de suministro 158 de parámetros de claves son las mismas que las de la Forma de Realización 6.
La que sigue será una operación del aparato de transformación datos configurado de acuerdo con lo anteriormente descrito.
Un dato de entrada A arbitrario 101 y un dato de entrada B 102 son introducidos a la primera unidad de subtransformación 125 a través de las unidades de selección 156a, 156b de datos. A continuación un dato intermedio 105 A y un dato intermedio B 106 son introducidos en la segunda unidad de subtransformación 126. Las operaciones de la primera y segunda unidades de subtransformación son las mismas que en la Forma de Realización2. El parámetro de clave, que va a suministrarse a las primeras y segundas de subtransformación correspondientes al proceso de repetición posteriormente descrito, es suministrado a los transformadores no lineales de las primeras y segundas unidades de subtransformación mediante la unidad de suministro de parámetros clave. El dato intermedio A 107 y el dato intermedio B 108 sacados por la segunda unidad de subtransformación 126 son transmitidos a través de las unidades de retención 157a, 157b de datos, las unidades de selección 156a, 156b de datos de la unidad de repetición 154 que va a ser introducida en la primera unidad de subtransformación 125 como el dato de entrada A y como dato de entrada B respectivamente. Después de el proceso de repetición anteriormente expuesto, el dato de salida A 103 y el dato de salida B 104 son finalmente sacados.
La transformación de datos puede efectuarse a alta velocidad mediante la configuración expuesta porque por la misma razón que la indicada Forma de Realización, forma de realización 2, de forma que también el numero de unidades de subtransformación puede reducirse y reducirse también la escala del circuito.
En la explicación anterior de la operación, una etapa de la primera unidad de subtransformación 125 y un a etapa de segunda unidad de subtransformación 126 están conectadas encascada para constituir la unidad operativa de repetición. En otra forma, la primera unidad de subtransformación 125 y la segunda unidad de subtransformación 126 están emparejadas y un numero necesario de etapas están conectadas encascada para constituir la unidad operativa de repetición, la cual es la misma que en la Forma de Realización 6. En otro ejemplo, aunque no se muestra una configuración detallada de la misma la figura en este la presión de memoria no se especifica la operación, un numero par de fases de las unidades de subtransformación externas de las Formas de Realización 4 y 5 puede sustituirse mediante la unidad operativa de repetición de la misma forma que las formas de realización, Formas de Realización 6 y 7. En este ejemplo el numero de unidades de subtransformación externas pueden reducirse sin reducir la velocidad operativa. Así mismo, en este mismo, cuando la unidad operativa de repetición consiste en un numero par de unidades de subtransformación externa, puede llevarse a cabo una operación de alta velocidad puede desprenderse mediante la explicación de la Forma de Realización 4.
La unidad de selección de datos y la unidad de datos de la Forma de Realización 607 están dispuestas formando un par constitutivo de un bucle de realimentación. Aunque no se muestra en la figura una configuración detallada ni se especifica una numeración de esta memoria descriptiva, el bucle de alimentación puede aplicarse al las unidades de subtransformación interna Formas de Realización 3 a 5. A saber, una unidad de selección de datos internas esta dispuesta de o después de las unidades internas 351 o 551 del transformador no lineal externo mostrado en las Figs. 6 y 11 para la selección de datos de entrada. Una unidad de retención de datos internas esta dispuesta dentro de o antes de las unidades conjuntas internas 352 o 552. El bucle de realimentación puede así constituirse incluyendo esta unidad de selección de datos interna y esta unidad de datos interna . En otra forma, la unidad de selección de datos puede disponerse antes del transformador no lineal externo de la Fig,13 para seleccionar los datos de entrada. La unidad de retención de datos puede disponerse después del transformador no lineal externo. El bucle de realimentación se constituye incluyendo la unidad de selección de datos y la unidad de retención de datos. De esta forma la escala de circuito de la unidad de subtransformación interna puede reducirse sin reducirse la velocidad operativa.
Forma de Realización 8
En esta forma de realización el proceso descrito en la Forma de Realización 1, el cual se efectuó mediante las unidades plurales de subtransformación 121 a 124, se efectúa repitiendo la unidad operativa básica de repetición. En esta explicación de la forma de realización, el dato de entrada arbitraria A 101 y el dato de entrada B102 tienen idénticos dígitos de dato. Cuando los números de los dígitos del dato de entrada A 101 y el dato de entrada B 102 son idénticos, el número de las unidades de subtransformación de repetición tiene que ser siempre un número par. El número arbitrario de etapas, de esta forma puede conectarse para constituir el bucle de realimentación.
La Fig. 16 es un diagrama de bloques que muestra la configuración anteriormente expuesta. Para facilitar la explicación de la operación, la configuración incluye únicamente una fase de la unidad de subtransformación y constituye el bucle de realimentación de la Fig. 16.
En la figura, la referencia numeral 121 indica la unidad de subtransformación. El primer parámetro de clave 111, el transformador 131, el circuito XOR 141, la unidad de repetición 154, las unidades de selección 156a, 156b, las unidades de retención 157a, 157b, y la unidad de suministro 158 de parámetros de clave, son los mismos elementos de las otras formas de realización.
La que sigue es una operación del aparato de transformación de datos anteriormente configurado.
El dato de entrada A arbitrario 101 y el dato de entrada B 102 son introducidos en la unidad de subtransformación 121 a través de las unidades de selección 156a, 156b de datos. La operación de la unidad de subtransformación 121 es la misma que en la Forma de Realización 1. El parámetro de clave es suministrado al transformador no lineal de la unidad de subtransformación mediante la unidad de suministro 158 de parámetros de clave correspondiente al proceso de repetición descrito más abajo. El dato intermedio A 105 y el dato intermedio B 106, sacados de la unidad de subtransformación 121, son introducidos en la unidad de subtransformación 121 como dato de entrada A y dato de entrada B, respectivamente, mediante la unidad de repetición 154. A continuación el proceso anteriormente expuesto se repite hasta finalmente dar salida al dato de salida A 103 y el dato de salida B 104.
Mediante la configuración expuesta, el número de transformadores no lineales puede reducirse y la escala del aparato puede también reducirse.
En la anterior explicación de la forma de realización, la unidad operativa de repetición incluye únicamente una fase de la unidad de subtransformación 121. Es posible que la unidad operativa de repetición incluya varias fases de las unidades de subtransformación conectadas en cascada. La velocidad operativa no puede reducirse y la escala del aparato puede reducirse.
En otra forma, la unidad de subtransformación puede sustituirse por la unidad de subtransformación del aparato de transformación de datos especificado en la Forma de Realización 2.
Así mismo, esta forma de realización puede aplicarse a la unidad de subtransformación interna de las Formas de Realización 3 a 5 así como a las Formas de Realización 6 y 7, aunque en la figura no se muestra una configuración detallada del supuesto actual y tampoco se especifica una operación en la presente memoria.
Forma de Realización 9
En la presente forma de realización, un transformador no lineal de pequeño tamaño es aplicado a un transformador no lineal de una unidad de subtransformación convencional.
La Fig. 17 muestra una configuración de un aparato de transformación de datos de la presente forma de realización.
La Fig. 18 es un diagrama de bloques que muestra una configuración de un transformador no lineal externo 831 (y 832 a 838) mostrado en la Fig. 17,
La Fig. 19 es un diagrama de bloques que muestra una configuración de un transformador no lineal interno 931 (y 932, 933) mostrado en la Fig. 18.
En esta forma de realización, se presume que el parámetro de clave 811 tiene 32 x 3 = 96 bits, la longitud del parámetro de clave 811a + el parámetro de clave 811b + el parámetro de clave 811c es de 32 bits, la longitud del parámetro de clave 811d + el parámetro de clave 811e + el parámetro de clave 811f es de 32 bits, y la longitud del parámetro de clave 811g + el parámetro de clave 811h + el parámetro de clave 811i es de 32 bits. El parámetro de clave 811a tiene 16 bits, y el parámetro de clave 811b tiene 7 bits y el parámetro de clave 811c tiene 9 bits.
Las Figs. 20 y 21 son tablas de sustitución S7 y S9 en caso de que los transformadores no lineales 951, 952a, y 952b mostrados en la Fig. 19 se lleven a cabo mediante una ROM (Memoria de Solo Lectura) o una RAM (Memoria de Acceso Aleatorio). Por ejemplo, en la tabla de sustitución S7, cuando el dato X = 0 es introducido, es sacado el dato Y = 85. Cuando el dato X= 1 es introducido, es sacado el dato Y = 95. Así mismo, cuando X = 128 es introducido, es sacado Y = 42. En el caso de la tabla de sustitución S9, la operación es la misma que en la tabla S7. Cuando el dato
X = 0, 1, ..., 511 es introducido, es sacado Y = 341, 310, ..., 170.
La anterior tabla de sustitución S7 está configurada de acuerdo con lo descrito a continuación.
Cuando se presume que la raíz es "\alpha" para una función polinómica irreducible de grado siete
x^{7} + x^{5} + x^{4} + x^{3} + 1 = 0,
y se presume que la base de entrada es una base normal
\{\alpha, \ \alpha^{2}, \ \alpha^{4}, \ \alpha^{8}, \ \alpha^{16}, \ \alpha^{32}, \ \alpha^{64}\}
y se presume que la base de salida es una base normal
\{\alpha^{32}, \ \alpha^{4}, \ \alpha^{2}, \ \alpha^{64}, \ \alpha^{16}, \ \alpha, \ \alpha^{8}\}.
X^{17} se expresa mediante "entrada X", que es el elemento de GF (Campo Galois) (2^{7}), de acuerdo con la base anterior. X^{17} es operado con la función XOR (operado con la función OR exclusivo) con 55h (número hexadecimal) y sacado. Las anteriores entradas y salidas se muestran en la tabla de la Fig. 20 mediante número decimal. En esta tabla, el lado izquierdo de los datos de entrada/salida muestra el LSB (bit menos significativo).
Así mismo, la tabla de sustitución anterior S9 está configurada del modo siguiente.
Cuando se presume que la raíz es "\alpha" para un factor polinómico irreducible de 9 grados
X^{9} + x^{8} + x^{7} + x^{6} + x^{4} + x^{3} + 1 = 0,
y se presume que la base de entrada sea una base normal
\{\alpha, \ \alpha^{2}, \ \alpha^{4}, \ \alpha^{8}, \ \alpha^{16}, \ \alpha^{32}, \ \alpha^{64}, \ \alpha^{128}, \ \alpha^{256}\}
y se presume que la base de salida sea una base normal
\{\alpha^{64}, \ \alpha, \ \alpha^{16}, \ \alpha^{8}, \ \alpha^{256}, \ \alpha^{2}, \ \alpha^{128}, \ \alpha^{32}, \ \alpha^{4}\}
X^{5} es expresado mediante "entrada X", que es el elemento de GF (Campo Galois) (2^{9}), de acuerdo con la base anterior. X^{5} es operado con la función XOR (operado con la función de OR exclusivo) con 155h (número hexadecimal) y sacado. Las anteriores entradas y salidas se muestran en la tabla de la Fig. 21 mediante un número decimal. En esta tabla, el lado izquierdo de los datos de entrada/salida muestra el LSB (bits menos significativo).
El Campo Galois es representado mediante un vector que utiliza una base polinomial, o base normal.
Típicamente el vector está representado utilizando la base polinomial. Por ejemplo, cuando el elemento primitivo de GF (2^{m}) se presume que es "\alpha", un elemento arbitrario de GF (2^{m}) se representa mediante el vector que utiliza una base polinómica {1, \alpha, \alpha^{2}, ..., \alpha^{m-1}}.
Es una ventaja de la base polinómica que la adición de elementos sobre el GF (2^{m}) se efectúa mediante la adición (operación XOR) por cada bit. A saber, cuando esta operación se efectúa mediante el equipo físico, puede aplicarse un número "m" de circuitos XOR de 2 entradas. En el caso de representación por un vector utilizando una base polinómica, sin embargo, es difícil efectuar la multiplicación por el equipo físico comparado con la adición. Ello es generalmente implementado mediante una ROM para efectuar la multiplicación.
Para otra base típica, se emplea una base normal para representar el vector. La base normal se fija consistiendo en una raíz "\alpha" de una función polinómica primitiva de m grados y sus elementos conjugados, y se describe como
\{\alpha, \ \alpha^{2}, \ \alpha^{4}, \ ..., \ \alpha^{m-2}, \ \alpha^{m-1}\}.
Es muy fácil efectuar una operación cuadrática utilizando una base normal, que es la mayor ventaja de de utilizar una base normal. Cuando se introduce un elemento arbitrario de GF (2^{m}) mediante una operación cuadrática ello se efectúa variando la representación del vector del elemento arbitrario a la derecha cíclicamente. En el caso de que la operación cuadrática anterior sea efectuada mediante soporte físico, se lleva a cabo únicamente mediante la reconexión de las líneas de los bits. La ventaja expuesta de representar el vector mediante una base normal posibilita efectuar el circuito X^{n} para un elemento arbitrario X mediante una escala menor de soporte físico que en el caso de representar el vector mediante una base polinómica. Un circuito de elemento inverso (X^{-1}) puede también presumirse como que es el circuito X^{n}. A saber, un elemento inverso X^{-1} de un elemento arbitrario X sobre el GF (2^{m}) es igual a X^{2m-2}^{}, y puede ser procesado en el circuito X^{n} mediante su tratamiento como n = 2^{m} - 2. Para un ejemplo del equipo físico anterior, el caso del sexto bit menos significativo (5 de salida se muestra en la Fig. 22 cuando es implementado por un circuito lógico suponiendo que los 7 bits de entrada de la anterior tabla de sustitución S7 son {el bit 0 de entrada, el bit 1 de entrada, el bit 2 de entrada, el bit 3 de entrada, el bit 4 de entrada, el bit 5 de entrada, el bit 6 de entrada} y que los 7 bits de salida son {el bit 0 de salida, el bit 1 de salida, el bit 2 de salida, el bit 3 de salida, el bit 4 de salida, el bit 5 de salida, el bit 6 de salida}.
La operación del aparato de transformación de datos configurado como se muestra en las Figs. 17 a 19 puede claramente entenderse mediante la descripción de las formas de realización anteriores, por consiguiente, la operación no se explica aquí con detalle.
Forma de Realización 10
En la presente forma de realización, se explicará un aparato de transformación de datos, donde la escala del circuito está ligeramente incrementada y que genera un cifrado más fuerte.
La Fig. 23 muestra una configuración del aparato de transformación de datos de la presente invención.
El aparato de la forma de realización influye así mismo unos transformadores de datos FL1 a FL10 del aparato de transformación de datos de la Forma de Realización 9.
La Fig. 24 muestra una configuración detallada del transformador de datos FL1 971 (a FL10 980).
Cada uno de los transformadores de datos FL1 a FL10 incluye un circuito AND 971a, un circuito OR 971b y unos circuitos XOR 971c, 971d. Un parámetro de claves KL1 tiene 32 bits, el cual es dividido en unos parámetros de clave KL1a y KL1b por una unidad de suministro de parámetros de clave (esto no se ilustra). Por ejemplo, el parámetro de claves KL1 es dividido en el parámetro de clave KL1a de 16 bits y el parámetro de clave KL1b de 16 bits. En la figura, cada circuito AND 971a y el circuito OR 971b pueden ser, o bien un circuito AND o un circuito OR. Ambos pueden ser circuitos OR.
La siguiente es una operación del aparato de transformación de datos anterior.
El transformador de datos 971 incluye dos circuitos XOR 971c, 971d y el primer y segundo circuitos lógicos, los cuales son ambos dos circuitos AND, dos circuitos OR, o circuitos AND y OR. El transformador de datos 971 está dispuesto a uno u otro o a ambos lados del lado de entrada A o/y del lado de entrada B de la primera unidad de subtransformación.
El dato de entrada A (o el dato de entrada B) es dividido por un número arbitrario de dígitos en dos piezas de dato, AA y AB. El parámetro de clave es dividido en un parámetro de clave de transformación A 981a y en parámetro de clave de transformación B 981b, cada uno de los cuales corresponde a una pieza dividida de dato. Una primera operación AND/OR de las piezas de dato AA y del parámetro de clave de transformación A 981a se efectúa dentro del primer circuito lógico. El circuito lógico XOR 971c opera con la función XOR el primer resultado operado con la función AND/OR con las piezas de dato AB para dar salida al primer resultado operado con la función XOR. Este primer resultado operado con la función XOR es sacado como dato después de la transformación de las piezas de dato AB. El segundo circuito lógico efectúa la operación AND/OR del primer resultado operado con la función XOR y del parámetro de clave de transformación B para dar salida al segundo resultado operado con la función AND/OR. El circuito XOR 971d opera con la función XOR el segundo resultado operado con la función AND/OR y las piezas de dato AA para dar salida al segundo resultado operado con la función XOR. Este segundo resultado operado con la función XOR es sacado como dato de salida después de la transformación de las piezas de dato AA. Los datos de salida expuestos después de la transformación de las piezas de dato AA y de los datos de salida después de la transformación de las piezas de datos AB se unen para emitir una salida sobre la siguiente fase como dato de salida A (o dato de
salida B).
Los transformadores de datos nuevamente suministrados FL1 A FL10 son funciones lineales, cuya salida varía de acuerdo con el valor del parámetro de clave. Estos transformadores no incrementan la probabilidad diferencial y posibilitan que el aparato de transformación de datos mejore su resistencia contra otros criptoanálisis exceptuando el criptoanálisis diferencial. La operación de la transformación no lineal se ha explicado ya en las formas de realización anteriores y no se describirá aquí.
Los transformadores de datos FL1 a FL10 no necesitan siempre estar configurados como se muestra en la Fig. 23. Por ejemplo, los transformadores de datos FL1, LF3, FL5, FL7, FL9 pueden insertarse en un lado de una secuencia A (lado izquierdo en la figura) y en la secuencia B (lado derecho de la figura). En otra forma, los transformadores de datos pueden suministrarse en uno u otro de las primeras y segundas unidades de subtransformación del par a uno o ambos lados de una secuencia A o/y una secuencia B.
Forma de Realización 11
En las formas de realización 9 y 10, los transformadores no lineales, siendo un elemento básico del aparato de transformación de datos de la presente invención, son anidados en el transformador no lineal de la unidad de subtransformación convencional. En la presente forma de realización, los transformadores no lineales, siendo un elemento básico del aparato de transformación de datos de la invención, están anidados en el transformador no lineal de la unidad de subtransformación, siendo un elemento básico del aparato de transformación de datos de la presente invención. Como se muestra en la Fig. 25, la presente forma de realización es un aparato de transformación de datos modificado de la Forma de Realización 10, algunos de cuyos elementos están dispuestos de manera diferente dentro del aparato. Como la operación del aparato de transformación de datos ha sido explicada en las anteriores formas de realización, no se describe aquí con detalle. Cada localización del transformador de datos FL1 a FL10 no siempre necesita estar situado como se muestra en la figura así como en la Forma de Realización 10. Aun con dicha localización diferente, el aparato puede trabajar eficazmente también.
La Fig. 26 es una tabla que muestra cada una de las características de las Formas de Realización 1 a 11.
Las Formas de Realización 1, 2, 4, y 5 se muestran, respectivamente, en las filas, y en las columnas, las Formas de Realización 3, 6, 7, 8, 9, 10, y 11, se muestran para combinar con cada una de las citadas Formas de Realización 1, 2, 4 y 5. Las filas de las Formas de Realización 1 y 2 muestran respectivamente características de sus unidades de subtransformación. En la Fig. 26, la unidad de subtransformación de la Forma de Realización 1, configurada como se muestra en la Fig. 1, se denomina tipo 1. La unidad de subtransformación de la Forma de Realización 2, configurada como se muestra en la Fig. 3, se denomina tipo 2. La Forma de Realización 3 tiene una configuración anidada de la unidad de subtransformación externa y de la unidad de subtransformación interna. Las unidades de subtransformación de las Figs. 1 y 3 sin tener configuraciones anidadas, son definidas como las unidades de subtransformación externas en la Fig. 26. En la Fig. 26, el número de la figura entre paréntesis mediante () indica qué figura de la configuración se muestra dentro. Por ejemplo, (Fig. 1) indica que en la Fig. 1 se muestra el tipo 1 de unidad de subtransformación. (Fig. 6) indica que en la Fig. 6 se indica la Forma de Realización 3, lo cual incluye la unidad de subtransformación externa del tipo 1 y la unidad de subtransformación interna del tipo 2. Los elementos plurales entre paréntesis mediante {} indica que uno cualquiera de los elementos plurales puede ser elegido opcionalmente. En la Forma de Realización 3, por ejemplo, de cualquiera de las unidades de subtransformación del tipo 1 y del tipo 2 es aplicable a la unidad de subtransformación interna. Puede claramente entenderse mediante la figura que cualquier característica de las Formas de Realización 1, 2, 4, y 5 puede combinarse con cualquier característica de las Formas de Realización 3, 6, 7, 8, 10 y 10. El aparato de transformación de datos de la presente invención puede configurarse no solo mediante la combinación de las características mostradas en la Fig. 26, sino que también puede configurarse mediante la combinación de estas características con otras características que no se muestran en la Fig. 26. El aparato de transformación de datos puede configurarse no solo mediante una combinación de características, sino también configurarse mediante cada característica de cada Forma de Realización.
Lo que sigue muestra la aplicación de ejemplos del aparato de transformación de datos de acuerdo con la presente invención.
La Fig. 27 ilustra un ordenador personal con una estación de trabajo, donde el aparato de transformación de datos de la invención es aplicado.
El aparato de transformación de datos 60 incluye una unidad de visualización 61, un teclado 62, un ratón 63, una almohadilla 64 para el ratón, una unidad 65 del sistema y un elemento accionador 100 de disco compacto.
En el aparato de transformación de datos de la invención, por ejemplo, un dato es introducido desde el elemento accionador 100 de disco compacto, el dato es transmitido hasta la unidad 65 del sistema, y es visualizado sobre la unidad de visualización 61 como se muestra en la Fig. 27. Por otro lado, el aparato de transformación de datos emite el dato visulizado por la unidad de visualización 61 hasta el elemento accionador 100 de disco compacto. El aparato de transformación de datos también transforma un dato y transmite la información a través de unos conductores (no ilustrados). Sin embargo, la aplicación del aparato de transformación de datos de la invención no está limitada al ordenador personal o a la estación de trabajo mostrada en la Fig. 27. El aparato de transformación de datos puede configurarse de diversas formas, por ejemplo, un reproductor de vídeo puede incluirse en lugar del accionador 100 de disco compacto como dispositivo de entrada.
En otro ejemplo, el dato puede introducirse a partir de una red. El dato puede recibirse en analógico o en digital.
En la Fig. 27, el aparato de transformación de datos de la invención se muestra configurado de manera independiente. El aparato de transformación de datos puede implementarse dentro unidades, telas como una impresora 66, un escáner 68, o una unidad de facsímil 69 como se muestra en la Fig. 28. En otro ejemplo, el aparato de transformación de datos de la invención puede implementarse como parte de una tarjeta de un sistema de cámara de televisión, de una máquina de medición, de un ordenador, etc. En un ejemplo de aplicación adicional, cada uno de los equipos mostrados en la Fig. 28 está conectado a través de una LAN (RAL) (Red de Aérea Local) para transmitir mutuamente la información codificada, lo cual no se ilustra en la Fig. 28. La información codificada puede transmitirse/recibirse a través de una WAN (RAA) (Red de Aérea Amplia) como por ejemplo ISDN (Sri).
Aplicabilidad industrial
Como ha sido descrito, en el aparato de transformación de datos de acuerdo con la presente invención, la unidad de subtransformación está configurada para procesar parcialmente datos de entrada en paralelo, lo que posibilita que el aparato tenga una probabilidad diferencial pequeña y que se efectúe una transformación de datos a alta velocidad. El aparato de transformación de datos puede eficazmente aplicarse sobre un encriptador para el aparato de procesamiento de la información o la comunicación de datos. Así mismo, en el aparato de transformación de datos de la invención, el bucle de realimentación está dispuesto para repetir la operación de los mismos elementos existentes dentro del circuito. Por consiguiente, el aparato puede ser aplicable a un encriptador con una escala de circuitos reducida y con unas prestaciones a alta velocidad.

Claims (17)

1. Aparato de transformación de datos para transformar un primer dato de entrada (101) y un segundo dato de entrada (102), que comprende:
una primera unidad de transformación (121, 161) para efectuar una primera transformación no lineal del primer dato de entrada (101) utilizando un primer parámetro de clave (111), dando salida a un resultado trasformado, efectuando una operación XOR del resultado transformado y del segundo dato de entrada (102) par dar salida a un resultado operado con la función XOR como segundo dato intermedio (106), y dar salida a un segundo dato de entrada (102) como primer dato intermedio (105) sin ninguna transformación, y
una segunda unidad de transformación (122, 162) para efectuar una segunda transformación no lineal del primer dato intermedio (105) utilizando un segundo parámetro de clave (112), dando salida a un resultado transfor-
mado,
efectuar una operación XOR del resultado transformado y del segundo dato intermedio (106) para dar salida a un resultado operado con la función XOR como cuarto dato intermedio (108), y dar salida al segundo dato intermedio (106) como tercer dato intermedio (107) sin ninguna transformación.
2. El aparato de transformación de datos de la reivindicación 1, en el que la primera unidad de transformación (121) incluye un primer transformador no lineal (131) y un circuito XOR (141) situado entre una entrada para el primer dato de entrada (101) y una entrada de la segunda unidad de transformación (122) para el segundo dato intermedio (106); y
la segunda unidad de transformación (122) incluye un segundo transformador no lineal (132) y un circuito XOR (142) situado entre una entrada para el primer dato intermedio (105) y una entrada de una siguiente unidad de transformación (123) para el cuarto dato intermedio (108); o
en el que la primera unidad de transformación (161) incluye un circuito XOR (141) situado entre una entrada para el segundo dato de entrada (102) y una entrada de la segunda unidad de transformación (162) para el primer dato intermedio (105) y un primer transformador no lineal (132) situado entre una entrada el primer dato de entrada (101) y una entrada de la segunda unidad de transformación (162) para el segundo dato intermedio (106), y
la segunda unidad de transformación (162) incluye el circuito XOR (142) situado entre la entrada para el dato intermedio (106) y una entrada para el siguiente unidad de transformación (163) para el tercer dato intermedio (107) y un segundo transformador no lineal (133) situado entre una entrada para el primer dato intermedio (105) y una entrada para la siguiente unidad de transformación (163) para el cuarto dato intermedio (108);
en el que la primera unidad de transformación (121, 161) y la segunda unidad de transformación (122, 162) están conectadas de forma alternada d (d \geq 2) veces desde una primera etapa hasta una última etapa
en el que la unidad de transformación de la última etapa, siendo cualquiera de entre la primera unidad de transformación y la segunda unidad de transformación, da salida a un dato intermedio (103) de número impar y un dato intermedio (104) de número par, como datos de salida después de la transformación.
3. El aparato de transformación de datos de la reivindicación 2,
en el que el primer dato de entrada (101), introducido en la primera unidad de transformación (221), es dividido en un primer subdato de entrada (301) y un segundo subdato de entrada (302) y el parámetro de clave (111) es dividido de un primero a unos enésimos parámetros de clave divididos (311 a 313); y
comprendiendo adicionalmente el aparato de transformación de datos:
una primera unidad de subtransformación (321) para efectuar una transformación no lineal del primer subdato de entrada (301), utilizando un primer parámetro de clave dividido (311), dando salida a un resultado transformado, efectuando una operación XOR del resultado transformado y del segundo subdato de entrada (302),
dando salida a un resultado operado con la función XOR como segundo subdato intermedio (306), y dando salida al segundo subdato de entrada (302) como primer subdato intermedio (305) sin ninguna transformación; y una segunda unidad de subtransformación (322) para efectuar una transformación no lineal interna del primer subdato intermedio (305) utilizando el segundo parámetro clave dividido (312) dando salida a un resultado transformado, operando una función XOR del resultado transformado y del segundo subdato intermedio (306), dando salida a un resultado operado con la función XOR como cuarto subdato intermedio (308), y dando salida al segundo dato intermedio (306) como tercer subdato intermedio (307) sin ninguna transformación;
en el que la primera unidad de subtransformación (321) y la segunda unidad de subtransformación (322) están conectadas de forma alternada n veces (n\geq2) desde una primera etapa hasta una última etapa, y
en el que el dato intermedio de número impar (303) y el dato intermedio de número par (304) sacados de la última etapa son unidos como resultado de transformación (109).
4. El aparato de transformación de datos de la reivindicación 2, en el que el primer dato de entrada (101) introducido en la primera unidad de transformación (221), es dividido en un primer subdato de entrada (301) y en un segundo subdato de entrada (302) y el parámetro de clave (111) es dividido de un primero a unos enésimos parámetros de clave divididos; y
comprendiendo adicionalmente el aparato de transformación de datos:
una primera unidad de transformación para efectuar una transformación no lineal interna del primer subdato de entrada, utilizando un primer parámetro de clave dividido, dar salida a un resultado transformado como segundo subdato intermedio,
operar una función XOR del primer subdato de entrada y del segundo subdato de entrada, y dar salida a un resultado operado con la función XOR como primer subdato intermedio; y
una segunda unidad de subtransformación para efectuar una transformación no lineal interna del primer subdato intermedio, sacado de la primera unidad de subtransformación utilizando el segundo parámetro de clave dividido, dar salida a un resultado transformado como cuarto subdato intermedio, operar una función XOR del primer subdato intermedio y del segundo subdato intermedio, y dar salida a un resultado operado como una función XOR como tercer dato intermedio;
en el que la primera unidad de subtransformación y la segunda unidad de subtransformación están conectadas alternadamente n veces (n\geq2) desde una primera etapa hasta una última etapa, y
en el que el dato intermedio de número impar, y el dato intermedio de número par sacados de la última etapa son unidos como resultado de transformación.
5. El aparato de transformación de datos de la reivindicación 1,
en el que el primer dato de entrada (101) y el segundo dato de entrada (102), el dato intermedio de número impar (105, 107, 109) y el dato intermedio de número par (106, 108, 104) están respectivamente divididos en piezas de dato de forma que cada uno de los datos divididos tiene un número igual de dígitos en ambos datos de número impar y de número par.
6. El aparato de transformación de datos de la reivindicación 1,
en el que la primera unidad de transformación (121) incluye un primer transformador no lineal (131) y un circuito XOR (141) situado entre una entrada para el primer dato de entrada (101) y una entrada de la segunda unidad de transformación (122) para el segundo dato intermedio (106); y
la segunda unidad de transformación (122) incluye un segundo transformador no lineal (132) y un circuito XOR (142) situado entre una entrada para el primer dato intermedio (105) y una entrada de una siguiente unidad de transformación (123) para el cuarto dato intermedio (108); o
en el que la primera unidad de transformación (161) incluye un circuito XOR (141) situado entre una entrada para el segundo dato de entrada (102) y una entrada de la segunda unidad de transformación (162) para el primer dato intermedio (105) y un primer transformador no lineal (132) situado entre una entrada para el primer dato de entrada (101) y una entrada de la segunda unidad de transformación (162) para el segundo dato intermedio (106), y
en el que la segunda unidad de transformación (162) incluye el circuito XOR (142) situado entre la entrada para el segundo dato intermedio (106) y una entrada de una siguiente unidad de transformación (163) para el tercer dato intermedio (107) y un segundo transformador no lineal (133) situado entre una entrada para el primer dato intermedio (105) y una entrada de la siguiente unidad de transformación (163) para el cuarto dato intermedio (108); y
en el que la primera unidad de transformación (121, 161) y la segunda unidad de transformación (122, 162) están conectadas de manera alternada d veces (d\geq2) desde una primera etapa hasta una última etapa,
comprendiendo adicionalmente el aparato de transformación de datos:
una unidad (156a, 156b) de selección de datos conectada en el lado de entrada en la primera unidad de transformación (121, 161),
una unidad (157a, 157b) de retención de datos conectada en el lado de salida de la segunda unidad de transformación (122, 162), y
una unidad (158) de suministro de parámetros de clave;
en el que, en un primer momento, la unidad (156a, 156b) de selección de datos está adaptada para seleccionar un primer dato de entrada (101) y un segundo dato de entrada (102) para introducirlos en la primera unidad de transformación (121, 161), y después de ello la unidad (156a, 156b) de selección de datos está adaptada para seleccionar el dato de salida a partir de la unidad (157a, 157b) de retención de datos para introducirlos en la primera unidad de transformación (121, 161) para constituir un bucle de realimentación;
en el que este ciclo de transformación de datos es repetido m veces (m\geq2), y después de ello la unidad (157a, 157b) de retención de datos está adaptada para dar salida a un dato intermedio de número impar (103) y un dato intermedio de número par (104) como resultado de transformación.
7. El aparato de transformación de datos de la reivindicación 1,
para transformar un primer dato de entrada (101) y un segundo dato de entrada (102), teniendo ambos el mismo número de dígitos, comprendiendo una cualquiera de entre:
una primera unidad de transformación (121) que incluye un primer transformador no lineal (131) y un primer circuito XOR (141); y
una segunda unidad de transformación (122) incluyendo un segundo circuito XOR (142) y un segundo transformador no lineal (132);
en el que las unidades de transformación están conectadas d veces (d\geq2);
comprendiendo adicionalmente al aparato de transformación de datos:
una unidad (156a, 156b) de selección de datos dispuesta en el lado de entrada de una primera unidad de transformación (121),
una unidad (157a, 157b) de retención de datos dispuesta en el lado de salida de una última unidad de transformación (122),
y
una unidad (158) de suministro de parámetros de clave;
en el que, en un primer momento, la unidad (156a, 156b) de selección de datos está adaptada para seleccionar el primer dato de entrada (101) y el segundo dato de entrada (102) para introducirlos en la primera unidad de transformación (121), y después de ello la unidad de selección de datos (156a, 156b) está adaptada para seleccionar el dato de salida desde la unidad (157a, 157b) de retención de datos para introducirlos en la primera unidad de transformación (121) para constituir un bucle de realimentación; y
en el que este ciclo de transformación de datos es repetido m veces (m \geq2), y después de ello la unidad (157a, 157b) de retención de datos está adaptada para dar salida a un dato intermedio de número impar (103) y un dato intermedio de número par (104) como resultado de transformación.
8. El aparato de transformación de datos de la reivindicación 2,
en el que el primer dato de entrada (101) es dividido en un primer subdato de entrada (301) y un segundo subdato de entrada (302), y el parámetro de clave (111) es dividido de un primero hasta unos enésimos parámetros de clave (311 a 313);
en el que la unidad de transformación incluye adicionalmente:
una primera unidad de subtransformación (321) para efectuar una transformación lineal del primer subdato de entrada (301), utilizando el primer parámetro de clave dividido (311), dando salida a un resultado transformado, operando una función XOR del resultado transformado y del segundo subdato de entrada (302) para dar salida a un resultado XOR como segundo subdato intermedio (306) y dando salida al segundo subdato de entrada (302) como primer subdato intermedio (305) sin ninguna transformación; y
una segunda unidad de subtransformación (322) para introducir el primer subdato intermedio (305) sacado de la primer unidad de subtransformación efectuando una subtransformación no lineal interna del primer subdato intermedio (305) utilizando el segundo parámetro de clave dividido (312) dar salida a un resultado transformado, operando una función XOR del resultado transformado y del segundo subdato intermedio (306) para dar salida a un resultado operado con la función XOR como cuarto subdato intermedio (308), y dar salida al segundo sudbato intermedio (306) como tercer subdato intermedio (307) sin ninguna transformación;
en el que la primera unidad de subtransformación (321) y la segunda unidad de subtransformación (322) están conectadas de forma alternada n veces (n \geq2) desde una primera etapa hasta una última etapa,
en el que la unidad de transformación incluye adicionalmente:
una unidad de subselección de datos dispuesta en el lado de entrada de la primera unidad de subtransformación, una unidad de subretención de datos dispuesta en el lado de salida de cualquiera de entre las unidades primera y segunda de transformación y,
una unidad de subsuministro de parámetros de clave;
en el que, en un primer momento, la unidad de subselección de datos está adaptada para suministrar el primer subdato de entrada y el segundo subdato de entrada, después de seleccionar e introducir el primer subdato de entrada y el segundo subdato de entrada, la unidad de subselección de datos se regula para seleccionar e introducir el dato de salida de la unidad de subretención de datos para constituir un bucle de realimentación; y
en el que la unidad de transformación está adaptada para repetir la transformación de datos m veces (m \geq2), la unidad de subsuministro de parámetros de clave está adaptada para suministrar el parámetro de clave dividido para cada unidad de subtransformación correspondiente a la transformación repetida, y por fin, la unidad de subretención de datos está adaptada para dar salida a un subdato intermedio de número impar y un subdato intermedio de número par como primer dato de salida después de la transformación.
9. El aparato de transformación de datos de la reivindicación 2,
en el que el primer dato de entrada (101) es dividido en un primer subdato de entrada (301) y en un segundo subdato de entrada (302), y el parámetro de clave (111) es dividido en un primer parámetro hasta unos enémisimos parámetros de clave divididos (311 a 313);
en el que la unidad de transformación incluye adicionalmente:
una primera unidad de subtransformación (321) para introducir el primer subdato de entrada (301), efectuar una transformación no lineal del primer subdato de entrada (301) utilizando el primer parámetro de clave dividido (311), dar salida a un resultado transformado como segundo subdato intermedio, operar una función XOR del primer subdato de entrada y del segundo subdato de entrada para dar salida a una función operada XOR como primer subdato intermedio; y
una segunda unidad de transformación para introducir el primer subdato intermedio sacado de la primera unidad de subtransformación, efectuar una transformación no lineal del primer subdato intermedio utilizando el segundo parámetro de clave dividido, dar salida a un resultado transformado como cuarto dato intermedio, operar una función XOR del primer subdato intermedio y del segundo subdato intermedio y dar salida a un resultado sacado con la función XOR, como tercer subdato intermedio;
en el que la primera unidad de subtransformación y la segunda unidad de subtransformación están conectadas de modo alternado n veces (n \geq2) desde una primera etapa hasta una última etapa,
en el que la unidad de subtransformación incluye adicionalmente:
una unidad de subselección de datos dispuesta en el lado de entrada de la primera unidad de subtransformación,
una unidad de subretención de datos dispuesta en el lado de salida de una cualquiera de entre la primera y la segunda unidad es de subtransformación y
una unidad de subsuministro de parámetros de clave;
en el que, en un primer momento, la unidad de subselección de datos está adaptada para seleccionar e introducir el primer subdato de entrada y el segundo subdato de entrada, después de seleccionar e introducir el primer subdato de entrada y el segundo subdato de entrada, la unidad de subselección de datos se regula para seleccionar e introducir el dato de entrada procedente de la unidad de subretención de datos para constituir un bucle de realimentación; y
el en el que la unidad de transformación está adaptada para repetir la transformación de datos m veces (m \geq2), la unidad de subsuministro de parámetros de clave está adaptada para suministrar el parámetro de clave dividido a cada unidad de subtransformación correspondiente a la transformación repetida, y por fin, la unidad de subretención de datos está adaptada para dar salida al dato intermedio de número impar y al dato intermedio de número par como primeros datos de salida después de la transformación.
10. El aparato de transformación de datos de las reivindicaciones 8 o 9, en el que el dato de número impar que va a introducirse en cada unidad de subtransformación, es dividido en dos piezas de dato, las cuales tienen ambas un número idéntico de dígitos; y
en el que las primeras unidades de subtransformación están conectadas n veces (n \geq2).
11. El aparato de transformación de datos de la reivindicación 1, en el que al menos uno de entre los transformadores no lineales es un circuito X^{n} sobre Campo Galois.
12. El aparato de transformación de datos de la reivindicación 11 en el que el circuito X^{n} sobre Campo Galois está constituido por una base normal.
13. El aparato de transformación de datos de la reivindicación 1, en el que al menos una parte del transformador no lineal es una Memoria de Solo Lectura.
14. El aparato de transformación de datos de la reivindicación 1, en el que al menos una parte del transformador no lineal es una Memoria de Acceso Aleatorio.
15. El aparato de transformación de datos de la reivindicación 1, en el que al menos una parte del transformador no lineal es un Circuito Lógico.
16. El aparato de transformación de datos de la reivindicación 2, comprendiendo adicionalmente:
dos circuitos lógicos (971a y 971b), siendo cualquiera de dos circuitos XOR (971c y 971d) y unos circuitos AND y OR dispuestos para al menos uno de entre el primer lado de entrada y el segundo lado de entrada de la primera unidad de transformación como transformador (971) de datos,
en el que el dato de entrada, introducido en el transformador (971) de datos es dividido en dos piezas de dato teniendo un número predeterminado de dígitos como primer subdato y segundo subdato, el parámetro de clave es dividido en un primer parámetro (981a) de clave de transformación y un segundo parámetro (981b) de clave de transformación;
en el que una primera operación lógica se efectúa sobre el primer subdato utilizando el primer parámetro (981a) de clave de transformación, el primer resultado de la operación es operado con la función XOR con el segundo subdato para dar salida a un primer resultado XOR y el primer resultado XOR es sacado como dato de salida después de transformar el segundo subdato;
en el que una segunda operación lógica se efectúa sobre el primer resultado XOR, utilizando el segundo parámetro de clave de transformación, el resultado de la segunda operación es operado con la función XOR con el primer subdato para dar salida a un segundo resultado XOR, el segundo resultado XOR es sacado como dato de salida después de transformar el primer subdato, y el dato de salida después de transformar el primer subdato y el dato de salida después de transformar el segundo subdato son unidos y sacados.
17. Procedimiento de transformación de datos para transformar el primer dato de entrada (101) y el segundo de dato (102), comprendiendo las etapas de:
a)
efectuar una primera transformación no lineal del primer dato de entrada (101) utilizando un primer parámetro de clave (111), dar salida a un resultado transformado,
efectuar una operación XOR del resultado transformado y del segundo dato de entrada (102) para dar salida a un resultado operado con la función XOR como segundo dato intermedio (106), y dar salida al segundo dato de entrada (102) como primer dato intermedio (105) sin ninguna transformación, y
b)
efectuar una segunda transformación no lineal del primer dato intermedio (105) utilizando un segundo parámetro de clave (112), dando salida a un resultado transformado,
efectuar una operación XOR del resultado transformado y del segundo dato intermedio (106) para dar salida a un resultado operado con la función XOR como cuarto dato intermedio (108) y dar salida al segundo dato intermedio (106) como tercer dato intermedio (107) sin ninguna transformación.
ES96925956T 1995-09-05 1996-07-31 Aparato de transformacion de datos y procedimiento de transformacion de datos. Expired - Lifetime ES2255712T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP22768595 1995-09-05
JP8-11073 1996-01-25
JP7-227685 1996-01-25
JP1107396 1996-01-25

Publications (1)

Publication Number Publication Date
ES2255712T3 true ES2255712T3 (es) 2006-07-01

Family

ID=26346455

Family Applications (1)

Application Number Title Priority Date Filing Date
ES96925956T Expired - Lifetime ES2255712T3 (es) 1995-09-05 1996-07-31 Aparato de transformacion de datos y procedimiento de transformacion de datos.

Country Status (10)

Country Link
US (3) US6201869B1 (es)
EP (1) EP0790595B1 (es)
KR (1) KR100250803B1 (es)
CN (2) CN100435505C (es)
AU (1) AU693719B2 (es)
DE (1) DE69635651T2 (es)
DK (1) DK0790595T3 (es)
ES (1) ES2255712T3 (es)
NO (1) NO324428B1 (es)
WO (1) WO1997009705A1 (es)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69635651T2 (de) * 1995-09-05 2006-09-07 Mitsubishi Denki K.K. Vorrichtung und Verfahren zur Datenumwandlung
JP3088337B2 (ja) 1997-05-30 2000-09-18 三菱電機株式会社 暗号処理装置、icカード及び暗号処理方法
US6088800A (en) 1998-02-27 2000-07-11 Mosaid Technologies, Incorporated Encryption processor with shared memory interconnect
JP2000124813A (ja) 1998-10-20 2000-04-28 Texas Instr Japan Ltd リードソロモン符号化装置およびその方法とリードソロモン復号装置およびその方法
MY131509A (en) * 1999-03-15 2007-08-30 Sony Corp Data processing method, apparatus and system for encrypted- data transfer
JP3499810B2 (ja) 2000-03-06 2004-02-23 株式会社東芝 暗号化装置、暗号化方法及び暗号化装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体並びに復号装置、復号方法及び復号装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体
EP1686721B1 (en) * 2000-03-09 2013-03-06 Mitsubishi Denki Kabushiki Kaisha Block cipher apparatus using auxilliary transformation
US7283628B2 (en) * 2001-11-30 2007-10-16 Analog Devices, Inc. Programmable data encryption engine
US7269615B2 (en) 2001-12-18 2007-09-11 Analog Devices, Inc. Reconfigurable input Galois field linear transformer system
US7508937B2 (en) * 2001-12-18 2009-03-24 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
KR100446533B1 (ko) * 2002-10-08 2004-09-01 삼성전자주식회사 무선 통신 시스템에서 암호화 장치 및 방법
KR100456599B1 (ko) * 2002-11-12 2004-11-09 삼성전자주식회사 병렬 디이에스 구조를 갖는 암호 장치
US7310421B2 (en) * 2003-10-06 2007-12-18 National Institute Of Information And Communications Technology Particular plaintext detector
US7433469B2 (en) * 2004-04-27 2008-10-07 Intel Corporation Apparatus and method for implementing the KASUMI ciphering process
FR2871969B1 (fr) * 2004-06-18 2006-12-01 Sagem Procede et dispositif d'execution d'un calcul cryptographique
WO2006117390A1 (de) * 2005-05-04 2006-11-09 Siemens Enterprise Communications Gmbh & Co. Kg Verfahren und vorrichtung zum ermitteln von indizes die korrektursymbolen zugeordnet sind
FR2878390A1 (fr) * 2005-11-24 2006-05-26 Samsung Electronics Co Ltd Systeme et procede cryptographiques pour chiffrer des donnees d'entree
WO2007105709A1 (ja) * 2006-03-14 2007-09-20 Nec Corporation 情報処理システム、情報処理方法および情報処理プログラム
JP2007299088A (ja) * 2006-04-28 2007-11-15 Fujitsu Ltd データ保護システム、方法及びプログラム
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
US7620792B2 (en) * 2006-08-21 2009-11-17 Sigmatel, Inc. Processing system, memory and methods for use therewith
JP2008172617A (ja) * 2007-01-12 2008-07-24 Fujitsu Ltd 符号化装置、復号装置、符号化プログラム、復号プログラム、データ転送システム
JP2008270870A (ja) * 2007-04-16 2008-11-06 Sony Corp 通信システム、通信装置及び通信方法、並びにコンピュータ・プログラム
US20100027781A1 (en) * 2007-12-20 2010-02-04 Galbi Duane E Method and apparatus for enhancing performance of data encryption standard (des) encryption/decryption
JP5272417B2 (ja) * 2008-01-21 2013-08-28 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP5200949B2 (ja) 2009-01-16 2013-06-05 富士通株式会社 暗号処理装置
JP5488608B2 (ja) 2009-10-27 2014-05-14 日本電気株式会社 ブロック暗号装置、ブロック暗号化方法およびプログラム
US8266181B2 (en) 2010-05-27 2012-09-11 International Business Machines Corporation Key-break and record-loop processing in parallel data transformation
US20120079462A1 (en) * 2010-09-24 2012-03-29 SoftKrypt LLC Systems and methods of source software code obfuscation
JP5682526B2 (ja) * 2011-03-28 2015-03-11 ソニー株式会社 データ処理装置、およびデータ処理方法、並びにプログラム
JP5682527B2 (ja) 2011-03-28 2015-03-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP2018182429A (ja) * 2017-04-06 2018-11-15 株式会社村田製作所 データ変換装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6037586A (ja) 1983-08-09 1985-02-26 富士通株式会社 Des暗号装置鍵誤り検出方式
JPS61117940A (ja) 1984-11-13 1986-06-05 Hitachi Ltd デ−タ保護方式
JPH0727325B2 (ja) * 1987-02-13 1995-03-29 沖電気工業株式会社 暗号化装置
JP2760799B2 (ja) 1988-04-28 1998-06-04 株式会社日立製作所 暗号方式
JP2825205B2 (ja) 1989-07-20 1998-11-18 日本電信電話株式会社 暗号装置
JP3053106B2 (ja) 1990-11-02 2000-06-19 株式会社日立製作所 暗号化処理装置、及び復号化処理装置
JP2862030B2 (ja) * 1991-06-13 1999-02-24 三菱電機株式会社 暗号化方式
JPH0535448A (ja) 1991-07-26 1993-02-12 Matsushita Electric Ind Co Ltd 有限体における乗算器
JPH0588849A (ja) 1991-09-26 1993-04-09 Matsushita Electric Ind Co Ltd 正規基底を用いた乗算器の構成法
JP3180836B2 (ja) 1992-05-21 2001-06-25 日本電気株式会社 暗号通信装置
US5317638A (en) 1992-07-17 1994-05-31 International Business Machines Corporation Performance enhancement for ANSI X3.92 data encryption algorithm standard
US5398284A (en) * 1993-11-05 1995-03-14 United Technologies Automotive, Inc. Cryptographic encoding process
JPH07191603A (ja) 1993-12-24 1995-07-28 Canon Inc 暗号装置及びこれを用いた秘匿・認証通信システム
JP3029381B2 (ja) * 1994-01-10 2000-04-04 富士通株式会社 データ変換装置
US6125182A (en) * 1994-11-09 2000-09-26 Channel One Communications, Inc. Cryptographic engine using logic and base conversions
US5717760A (en) * 1994-11-09 1998-02-10 Channel One Communications, Inc. Message protection system and method
JPH08179690A (ja) 1994-12-22 1996-07-12 Nec Corp プロダクト暗号装置
JP3129384B2 (ja) 1995-02-08 2001-01-29 日亜化学工業株式会社 窒化物半導体レーザ素子
US5757915A (en) * 1995-08-25 1998-05-26 Intel Corporation Parameterized hash functions for access control
DE69635651T2 (de) * 1995-09-05 2006-09-07 Mitsubishi Denki K.K. Vorrichtung und Verfahren zur Datenumwandlung
JPH0990870A (ja) 1995-09-27 1997-04-04 Nec Corp 基本変換方法、暗号化方法、基本変換回路および暗号装置

Also Published As

Publication number Publication date
NO324428B1 (no) 2007-10-15
US6415030B2 (en) 2002-07-02
EP0790595B1 (en) 2005-12-28
EP0790595A4 (en) 2003-10-15
CN100435505C (zh) 2008-11-19
CN1136692C (zh) 2004-01-28
US20020131589A1 (en) 2002-09-19
DE69635651D1 (de) 2006-02-02
US7096369B2 (en) 2006-08-22
KR970707525A (ko) 1997-12-01
DE69635651T2 (de) 2006-09-07
DK0790595T3 (da) 2006-05-08
CN1496048A (zh) 2004-05-12
US6201869B1 (en) 2001-03-13
NO972052L (no) 1997-05-05
EP0790595A1 (en) 1997-08-20
NO972052D0 (no) 1997-05-02
CN1164912A (zh) 1997-11-12
AU693719B2 (en) 1998-07-02
AU6629396A (en) 1997-03-27
KR100250803B1 (ko) 2000-04-01
WO1997009705A1 (fr) 1997-03-13
US20010000708A1 (en) 2001-05-03

Similar Documents

Publication Publication Date Title
ES2255712T3 (es) Aparato de transformacion de datos y procedimiento de transformacion de datos.
Massey SAFER K-64: A byte-oriented block-ciphering algorithm
Beaulieu et al. The SIMON and SPECK lightweight block ciphers
Brown et al. Improving resistance to differential cryptanalysis and the redesign of LOKI
Stallings The advanced encryption standard
KR101246490B1 (ko) 갈루아 폐체 암호 시스템
DK1686722T3 (en) Block encryption device and block encryption method comprising rotation key programming
JP4128395B2 (ja) データ変換装置
KR100435052B1 (ko) 암호화장치
US20090055458A1 (en) Substitution Boxes
ES2364826A1 (es) Clave de encriptado precalculada.
WO2009031883A1 (en) Encryption processor
US20140055290A1 (en) Methods and Apparatus in Alternate Finite Field Based Coders and Decoders
US20110064214A1 (en) Methods and Apparatus in Alternate Finite Field Based Coders and Decoders
US20160112069A1 (en) Methods and Apparatus in Alternate Finite Field Based Coders and Decoders
JPH08179690A (ja) プロダクト暗号装置
JPH10240500A (ja) 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム
Masoodi et al. Symmetric algorithms I
JP4098719B2 (ja) Aesアルゴリズム用のプログラマブルデータ暗号化エンジン
JP2005513541A6 (ja) Aesアルゴリズム用のプログラマブルデータ暗号化エンジン
Matsumoto et al. Cryptographic Mersenne Twister and Fubuki stream/block cipher
Mihalkovich et al. MPF based symmetric cipher performance comparison to AES and TDES
KR100434558B1 (ko) 고속블록암호화방법및이를위한키스케쥴링방법
JP2006517036A (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.