ES2293665T3 - Metodo para la conversion criptografica de bloques de entrada de l bits de informacion de datos digitales en bloques de salida de l bits. - Google Patents

Metodo para la conversion criptografica de bloques de entrada de l bits de informacion de datos digitales en bloques de salida de l bits. Download PDF

Info

Publication number
ES2293665T3
ES2293665T3 ES97951348T ES97951348T ES2293665T3 ES 2293665 T3 ES2293665 T3 ES 2293665T3 ES 97951348 T ES97951348 T ES 97951348T ES 97951348 T ES97951348 T ES 97951348T ES 2293665 T3 ES2293665 T3 ES 2293665T3
Authority
ES
Spain
Prior art keywords
binary vector
subblock
conversion
subblocks
value
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
ES97951348T
Other languages
English (en)
Inventor
Alexandr Andreevich Moldovyan
Nikolay Andreevich Moldovyan
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.)
Otkytoe Aksionernoe Obschestvo "moskovskaya Gorodskaya Telefonaya Set" Gsp
Original Assignee
Otkytoe Aksionernoe Obschestvo "moskovskaya Gorodskaya Telefonaya Set" Gsp
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 Otkytoe Aksionernoe Obschestvo "moskovskaya Gorodskaya Telefonaya Set" Gsp filed Critical Otkytoe Aksionernoe Obschestvo "moskovskaya Gorodskaya Telefonaya Set" Gsp
Application granted granted Critical
Publication of ES2293665T3 publication Critical patent/ES2293665T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Emergency Protection Circuit Devices (AREA)
  • Analogue/Digital Conversion (AREA)
  • Nitrogen And Oxygen Or Sulfur-Condensed Heterocyclic Ring Systems (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Método para la conversión criptográfica de bloques (B) de entrada de L bits de datos digitales en bloques de salida de L bits, que comprende una pluralidad de fases, incluyendo cada fase las etapas de subdividir un bloque de datos en N 2 subbloques (b1...bN), realizar una primera etapa de conversión de confusión de subbloques sobre un primer subbloque, primera etapa que comprende utilizar al menos un vector binario para modificar el primer subbloque, y realizar una segunda etapa de conversión de confusión de subbloques sobre un segundo subbloque, posterior a la primera etapa de conversión de confusión de subbloques, segunda etapa que comprende generar al menos un vector binario (V) dependiendo del valor de uno de los subbloques (b1...bN) y del valor del vector binario utilizado en la primera etapa de conversión de confusión de subbloques, y modificar el segundo subbloque utilizando el vector binario (V).

Description

Método para la conversión criptográfica de bloques de entrada de L bits de información de datos digitales en bloques de salida de L bits.
Resumen
La presente invención se refiere al campo de la comunicación eléctrica y de la ingeniería informática, y más particularmente, al campo de los métodos y dispositivos criptográficos para cifrar datos digitales. El método comprende dividir un bloque de datos en N \geq 2 subbloques, convertir estos subbloques uno después de otro generando al menos un vector binario según el valor del subbloque y modificar el subbloque utilizando el vector binario. La novedad del método reivindicado radica en generar el vector binario en la etapa posterior de la conversión del subbloque dependiendo de la estructura del vector binario en la etapa anterior de la conversión del subbloque. La novedad también radica en generar dos vectores binarios y convertir uno de ellos mediante la operación de desplazamiento cíclico sobre un número de bits igual al valor del segundo vector binario. Además, la novedad radica en modificar uno de los subbloques aplicándolo a una operación de desplazamiento cíclico sobre un número de bits igual al valor actual del vector binario. La novedad también radica en la utilización, en una conversión de subbloques, de un número T \geq 2 de tablas de relleno, por el que el número (v) de la tabla se calcula según vector binario, y el subbloque se modifica mediante una operación de relleno por la tabla v-ésima.
Campo técnico
La invención se refiere al campo de la comunicación eléctrica y de la ingeniería informática, y en particular, al campo de métodos y dispositivos criptográficos para cifrar mensajes (información).
Técnica anterior
Los siguientes términos se utilizan en la descripción del método reivindicado, tomado en la totalidad de sus características:
-
La clave secreta es información binaria que sólo conoce el usuario autorizado;
-
La conversión criptográfica es conversión de información digital que garantiza la influencia de un bit de datos fuente en múltiples bits de datos de salida, por ejemplo, con el fin de proteger la información de una lectura no autorizada, formar una suscripción digital, generar un código de detección de modificación; algunos de los tipos importantes de conversiones criptográficas son conversión unilateral, hashing y cifrado;
-
El Hashing de información es un cierto método de generación del llamado código hash cuyo tamaño está fijado normalmente (generalmente 128 bits) para cualquier tamaño de mensaje; los métodos de hashing se utilizan ampliamente basándose en funciones hash iterativas que utilizan mecanismos de bloques de conversión de información criptográfica (véase Lai X., Massey J.L Hash Functions Base on Block Ciphers/Workshop on the Theory and Applications of Cryptographic Techniques, EUROCRYPT'92, Hungría, del 24 al 28 de mayo de 1992, Proceedings, páginas 53 a 66);
-
El cifrado es el proceso de conversión de información que depende de la clave secreta y transforma el texto fuente en un texto cifrado representado mediante una secuencia seudoaleatoria de caracteres de manera que es prácticamente imposible obtener alguna información de la misma sin conocer la clave secreta;
-
El descifrado o desencriptación es el proceso inverso del procedimiento de cifrado; el descifrado permite recuperar la información según el criptograma siempre y cuando el operador conozca la clave secreta;
-
La cifra es una combinación de etapas elementales para convertir datos de entrada utilizando la clave secreta; la cifra puede implementarse en la forma de un programa informático o como un dispositivo separado;
-
Un vector binario es una cierta secuencia de bits activados y desactivados, por ejemplo 101101011; una estructura específica del vector binario puede interpretarse como un número binario si se considera que la posición de cada bit corresponde con un orden binario, es decir, el vector binario puede compararse con un valor numérico que se determina de manera unívoca por la estructura del vector binario;
-
El criptoanálisis es la técnica para calcular la clave secreta para obtener un acceso no autorizado a la información encriptada o la elaboración de un método que proporciona acceso a la información encriptada sin tener que calcular la clave secreta;
-
La conversión unilateral es una conversión de bloques de datos de entrada de L bits en un bloque de datos de salida de L bits tal que permite calcular fácilmente el bloque de salida según el bloque de entrada, mientras que calcular el bloque de entrada que se convertiría en bloque de salida seleccionado de manera aleatoria es de hecho una tarea impracticable;
-
La función unilateral es una función cuyo valor se calcula fácilmente según el argumento dado, aunque calcular el argumento según el valor de la función dada es un problema difícil en cuanto a la computación; las funciones unilaterales se implementan como una secuencia de procedimiento de conversión unilateral de cierto bloque de entrada (argumento) cuyo valor de salida se toma para el valor de la función;
-
La resistencia criptográfica constituye la medida de fiabilidad de la protección de la información cifrada y representa la intensidad de trabajo medida como el número de operaciones elementales que van a realizarse para recuperar la información según el criptograma en condiciones en las que el operador conoce el algoritmo de conversión y no la clave secreta; en el caso de conversiones unilaterales, se entiende por resistencia criptográfica la complejidad de calcular el valor de entrada del bloque según su valor de salida;
-
Las operaciones de desplazamiento cíclico dependientes de los subbloques que están convirtiéndose o dependientes del vector binario son operaciones de desplazamiento cíclico sobre un número de bits determinado por el valor del subbloque o por el valor del vector binario; la operación de desplazamiento cíclico a la izquierda (a la derecha) se designa con el símbolo "\langle\langle\langle" ("\rangle\rangle\rangle"), por ejemplo, la notación B_{1} \langle\langle\langle B_{2} denota la operación de desplazamiento cíclico a la izquierda del subbloque B_{1} sobre el número de bits igual al valor del vector binario B_{2}; tales operaciones son básicas para la cifra RC5 (R. Rivest, The RC5 Encryption Algorithm/Fast Software Encryption, Second Internacional Workshop Proceeding (Lovaina, Bélgica, del 14 al 16 de diciembre de 1994) Lecture Notes in Computer Science, v. 1008, Springer-Verlag, 1995, páginas 86 a 96);
-
Una operación unaria es una operación que se ejecuta sobre un único operando (un bloque de datos o vector binario); el valor del subbloque, después de realizar ciertas operaciones unarias dadas depende solo de su valor inicial; un ejemplo de operaciones unarias son las operaciones de desplazamiento cíclico;
-
Una operación binaria es una operación que se ejecuta sobre dos operandos; el resultado de realizar ciertas operaciones binarias dadas depende del valor de cada operando; un ejemplo de operaciones binarias son las operaciones de suma, resta, multiplicación, etc.
Se conocen métodos de encriptación de bloques de datos, véase, por ejemplo, US Standard DES (oficina nacional de normas. norma para la encriptación de datos Publicación de normas de procesamiento de información federal 46, Enero de 1977). En este método, la encriptación de bloques de datos se lleva a cabo formando una clave secreta, subdividiendo el bloque de datos convertido en dos subbloques, I y R, y modificar alternativamente el último por medio de la realización de una operación de suma bit a bit módulo 2 sobre el subbloque L y se genera un vector binario como el valor de salida de cierta función F según el valor del subbloque R. Después de esto, los bloques se permutan. La función F del método anterior se implementa realizando operaciones de permutación y relleno ejecutadas sobre el subbloque R. Este método garantiza una alta velocidad de conversión cuando se implementa en la forma de un circuito electrónico especializado.
Sin embargo, el método conocido de la técnica anterior utiliza la clave secreta de pequeño tamaño (56 bits) que lo hace vulnerable al criptoanálisis según una selección de claves. Esto último se debe al alto rendimiento global computacional de los ordenadores modernos que se utilizan de manera generalizada.
La técnica anterior más próxima al método reivindicado para la conversión criptográfica de bloques de entrada de L bits de datos digitales en bloques de salida de L bits es un método descrito en el trabajo (Kaliski B.S., Robshaw M.J.B, Fast Block Chipre Proposal/Fast Software Encryption, Proceedings of the Cambrigde Security Workshop, Lecture Notes in Computer Science, v. 809, Springer-Verlag, 1994, páginas 26 a 39; véase también B. Schneier, "Applied Cryptography", segunda edición, John Wiley & Sons, Inc., Nueva York, 1966, páginas 342 a 344). El método de la técnica anterior más próximo comprende generar una clave secreta, subdividir un bloque de datos de entrada de 1024 bytes en subbloques B_{0}, B_{1}, B_{2}, ..., B_{255} de 32 bits y convertir subbloques alternos. La clave secreta se genera como una tabla de permutación y una secuencia ordenada de 2048 subclaves Q_{0}, Q_{1}, Q_{2}, ..., Q_{2047}, cada una de las cuales tiene una longitud de 32 bits. La encriptación de los bloques de datos se realiza como cuatro fases de conversión. Una fase de conversión consiste en lo siguiente. Según la tabla de permutación dirigida por la clave secreta, se realiza la permutación de los subbloques de datos. Después, todos los subbloques se convierten alternativamente. Un subbloque, por ejemplo el subbloque B_{1}, se transforma como sigue. Se genera un vector V binario de 32 bits según los valores B_{h}, B_{k}, B_{j}, del subbloque en los que h, i, j, k son números diferentes según la expresión analítica V= B_{h} + F(B_{h}, B_{k}, B_{j}) + Q_{q}, en la que el signo "+" designa la operación de suma de módulo 2^{32}, y q es el número de la subclave actual. Los números h, i, j, k se seleccionan dependiendo del número de la fase de cifrado y el número de la etapa de conversión del subbloque. El vector binario generado se utiliza para convertir el subbloque B_{1} como sigue. Se realiza una operación de suma bit a bit de módulo 2 en el subbloque B_{1} y V, y el valor obtenido después de la finalización de esta operación se asigna al subbloque B_{1}. Esto se registra como la relación B_{1} \leftarrow B_{1} \oplus V, en la que el signo "\leftarrow" denota la operación de asignación y el símbolo "\oplus" denota la operación de suma bit a bit de módulo 2. Posteriormente, de manera similar, se lleva a cabo la conversión de otro subbloque, etc., hasta que se convierten todos los bloques. Cada nueva etapa de formación del vector binario de 32 bits se realiza independientemente del valor del vector binario que se ha generado en la etapa anterior. En una fase de encriptación, el índice i asume, en un cierto orden de prioridad, 256 valores diferentes correspondientes a todos los números de los subbloques (de 0 a 255).
\newpage
Este método proporciona una alta resistencia criptográfica debido a una gran longitud de bloques de datos y a la utilización de un gran número de operaciones de conversión realizadas sobre un subbloque.
Sin embargo, la técnica anterior más próxima presenta algunas desventajas, concretamente, cuando se implementa en software, falla al proporcionar una alta velocidad de conversión criptográfica de datos requerida para crear sistemas de software de protección de información informática que funcionarían en tiempo real. Por ejemplo, para el procesador Pentium/200 la velocidad de encriptación no supera los 6 Mbit/s. Esta desventaja se debe al hecho de que para garantizar la resistencia al criptoanálisis diferencial, es necesario llevar a cabo un gran número de operaciones de conversión sobre un único bit de datos de entrada.
También se conoce a partir de MOLDOVYAN N A; MOLDOVYAN A A; SOVETOV B YA: "Software oriented ciphers for computer communication protection" PROCEEDINGS OF THE FOURTH INTERNATIONAL CONFERENCE, APPLICATIONS OF COMPUTER SYSTEMS, 14 de noviembre de 1997 (14/11/1977), páginas 441 a 450, Szezecin, Polonia, SCHNEIER B: "Applied cryptography, second edition" APPLIED CRYPTOGRAPHY. PROTOCOLS, ALGORITHMS, AND SOURCE CODE IN C, NEW YORK, NY: JOHN WILEY & SONS, EEUU, 1996, XP002192446 ISBN: 0-471-11709-9, y el documento US-A-5442705, para convertir una pluralidad de subbloques de datos modificando cada subbloque generando a su vez un vector binario y convertir el subbloque según el vector binario. La técnica anterior da a conocer un método de conversión criptográfica de bloques de entrada de L bits de datos digitales en bloques de salida de L bits, que comprende subdividir un bloque de datos en N \geq 2 subbloques, y realizar una etapa de conversión de los subbloques que comprende generar al menos un vector binario dependiendo del valor de uno de los subbloques, y modificar el subbloque utilizando el vector binario.
La base de la presente invención radica en la tarea de desarrollar un método de conversión criptográfica de bloques de entrada de L bits de datos digitales en bloques de salida de L bits, en el que la conversión de datos de entrada se efectuaría de tal manera para reducir el número de operaciones de conversión sobre un único bit de los datos de entrada, con la provisión simultánea de una alta resistencia al criptoanálisis diferencial por lo que se incrementa la velocidad de encriptación.
Descripción de la invención
Esta tarea se consigue debido al hecho de que en el método de conversión criptográfica de bloques de entrada de L bits de datos digitales en bloques de salida de L bits se utiliza una pluralidad de fases, consistiendo cada fase en subdividir un bloque de datos en N \geq 2 subbloques, convertir subbloques alternos generando al menos un vector binario según el valor del subbloque y modificar el subbloque utilizando el vector binario, la nueva característica, según la invención, es que el vector binario se genera en la etapa de conversión de subbloques posterior dependiendo de la estructura del vector binario en la etapa anterior de la conversión de subbloques.
Con tal solución, se garantiza una mejor disipación de la influencia de bits del bloque de datos de entrada sobre los bits del bloque de salida, debido a lo cual se proporciona una alta resistencia al criptoanálisis diferencial con reducción simultánea en el número de operaciones de conversión que se realizan, lo que garantiza el incremento en la velocidad de la conversión criptográfica. Se proporciona una mejor disipación debido al hecho de que los bits de los subbloques transformados en las etapas de conversión anteriores afectan al proceso de convertir el bloque actual de dos maneras: (1) influyendo directamente en el valor del vector binario actual, y (2) influyendo en el valor del vector binario actual a través del valor del vector binario en las etapas de conversión anteriores.
También, una característica novedosa es que se generan dos vectores binarios y uno de ellos se convierte utilizando una operación de desplazamiento cíclico sobre un número de bits igual al valor del segundo vector binario.
Tal solución permite mejorar adicionalmente la resistencia criptográfica frente a la conversión de bloques de información de longitud de L = 512, 1024, 2048, 4096 y 8192 bits ya que las operaciones de desplazamiento cíclico de este tipo son no lineales y define una función más compleja de generación de vectores binarios.
También, una característica novedosa es el hecho de que la modificación de uno de los bloques se realiza aplicándolo a una operación de desplazamiento cíclico sobre un número de bits que es igual al valor del vector binario actual.
Con tal solución, es posible garantizar la mejora adicional de la resistencia criptográfica de la conversión ya que las operaciones de desplazamiento cíclico de este tipo son no lineales y se realizan directamente sobre los subbloques que están convirtiéndose.
También, una característica novedosa es que en la conversión de subbloques se utilizan tablas de relleno, cuyo número es T \geq 2, por lo que el número (v) de la tabla se calcula según el vector binario y el subbloque se modifica utilizando una operación de relleno dada por la tabla v-ésima.
Debido a tal solución, se proporciona una mejora adicional de la resistencia criptográfica de convertir bloques de información de longitud de L = 64 y 128 bits ya que las operaciones de relleno son no lineales y son efectivas en la implementación cuando el tamaño del bloque de información que está transformándose es relativamente pequeño. La utilización de operaciones de relleno no predeterminadas es un método para conseguir alta resistencia criptográfica frente a los métodos de criptoanálisis más fuertes, en particular, al criptoanálisis diferencial tal como se describe, por ejemplo, en el trabajo (Biham E., Shamir A., Differential Cryptanalysis of DES-like Cryptosystems/Journal of Cryptology, v. 4, n. 1, 1991, páginas 3 a 72).
La esencia de la presente invención se explica a continuación en mayor detalle por medio de algunas de sus realizaciones realizadas con referencias a los dibujos adjuntos.
\vskip1.000000\baselineskip
Breve descripción de los dibujos
La figura 1 es un diagrama generalizado de conversión criptográfica según el método reivindicado.
La figura 2 es un esquema de encriptación correspondiente al ejemplo 2.
La figura 3 es un esquema de conversión unilateral correspondiente al ejemplo 3.
\vskip1.000000\baselineskip
Realizaciones preferidas de la invención
La invención se aplica con la ayuda de un diagrama generalizado de conversión criptográfica de bloques de datos según el método reivindicado presentado en la figura 1, en el que: B es el bloque que está convirtiéndose, b_{1},
b_{2}, ..., b_{n} son los subbloques que están convirtiéndose F es un bloque de operación que efectúa modificaciones en los subbloques, f es un bloque de operación que efectúa la generación de vectores binarios, V_{0} es el valor inicial del vector binario. El bloque de datos de entrada digitales de L bits, en el que L es el número de dígitos binarios en el bloque, se subdivide en N \geq 2 subbloques cada uno de los cuales tiene el tamaño de L/N bits. La línea continua se corresponde con la transferencia de subbloques que están convirtiéndose, la línea discontinua se corresponde con la transferencia del vector binario.
Los bloques se transforman alternativamente modificándose con la utilización del bloque F de operación que se utiliza en las conversiones del valor del vector binario que condiciona la dependencia del valor de salida del subbloque que está convirtiéndose sobre el valor del vector binario. El bloque f de operación para convertir el vector binario utiliza el valor del subbloque que se ha convertido en la etapa anterior, es decir, el bloque de operación genera un vector binario según la estructura de uno de los subbloques que está convirtiéndose y según el valor del vector binario que tuvo en la etapa previa de conversión del subbloque utilizando el vector binario. Esto condiciona la dependencia del valor del vector binario sobre los datos que se están convirtiendo. La realización de procedimientos de conversión definidos por la función F sobre un subbloque se denominará como una etapa de generación del vector binario. Una etapa de conversión de subbloques incluye una etapa de generación de vectores binarios y una etapa de modificación de subbloques. Las etapas de conversión se ejecutan secuencialmente sobre todos los subbloques seguidas por una permutación de subbloques.
En casos particulares de la implementación del método reivindicado, la permutación de subbloques puede no utilizarse. El realizar N etapas de modificación de subbloques, N etapas de generación de vectores binarios y permutación de subbloques mostradas en la figura 1, constituye una fase de la conversión. El valor del vector binario después de la etapa N-ésima de la generación de los vectores binarios sirve como un valor inicial del vector binario para la siguiente fase de la conversión en la construcción de funciones unilaterales de conversión de bloques de datos digitales de L bits. Al crear cifras el valor inicial del vector binario para cada fase se genera dependiendo de la clave secreta. El número de fases de conversión puede definirse dependiendo de versiones específicas de formación de los bloques F y f de operación. Lo que es importante en el diagrama anterior, es que el vector binario se genera dependiendo de su estructura en la etapa anterior de la conversión de subbloques utilizando el vector binario.
Por conversión de subbloques utilizando el vector binario se entiende (1) ejecutar una operación binaria cuyos operandos son un subbloque y un vector binario, o (2) ejecutar una operación unaria sobre un subbloque (por ejemplo, permutación o rellenado de bits), cuya modificación se selecciona dependiendo del valor del vector binario, o (3) ejecutar una operación binaria realizada sobre un subbloque y una subclave cuyo número depende del valor del vector binario. Por ejemplo, en el primer caso esto puede ser la conversión de un subbloque B de 32 bits cuando se asigna a este bloque el valor igual al resultado de la suma de módulo 2^{32} del subbloque B y el vector binario V: B \leftarrow B + V. En el segundo caso, esto puede ser una operación de desplazamiento a la izquierda cíclico realizada sobre un subbloque B sobre un número de órdenes igual al valor del vector binario expresado analíticamente con la relación B \leftarrow b < \langle\langle\langle V. En el tercer caso, esto puede ser, por ejemplo, una conversión fijada por la expresión B \leftarrow B \oplus Q_{V1} en la que Q_{v} es una subclave con el número v calculado por el valor del vector binario v = V mod 2^{11}. La última relación define la selección del número igual al valor de los 11 dígitos de orden más bajo del vector binario.
Un caso especial importante de la segunda versión del vector binario utilizado en conversiones de subbloques es realizar una operación de relleno dependiente del vector binario sobre un subbloque. Tal tipo de relleno puede utilizarse para definir una pluralidad de tablas de relleno diferentes, a las que se asigna a cada una un número ordinal, y para realizar la operación de relleno sobre el subbloque en el que se utiliza la tabla, cuyo número se selecciona dependiendo del valor V, por ejemplo, cuando se utilizan 32 tablas de relleno, el número de la tabla puede calcularse mediante la fórmula v = V mod 2^{5}. El significado de seleccionar la tabla de relleno que se utiliza para realizar la operación de relleno en el subbloque en la etapa actual según un vector binario especialmente generado consiste en hacer una selección indefinida de tablas de relleno indefinida para cada etapa de conversión de subbloques que mejora la resistencia de la conversión criptográfica.
Por generación de vectores binarios se entiende un registro de una cierta secuencia de bits activados o desactivados creada, por ejemplo, para un registro o una celda de memoria de un ordenador. Por generación de vectores binarios dependiendo de su estructura en la etapa de conversión de subbloques anterior utilizando el vector binario se entiende una especificación de dependencia del valor actual del vector binario que está generándose sobre el valor que el vector binario tenía en la etapa anterior, en funcionamiento, en la conversión de los subbloques de datos. Por ejemplo, supóngase que el subbloque B_{i} se ha convertido utilizando el valor V de vector binario. Antes de la utilización del vector binario en cualquier otra etapa de conversión, por ejemplo, del subbloque B_{j}, el vector binario puede generarse según la expresión V \leftarrow V + Q_{b}, en la que b = B_{i} mod 2^{11}, dependiendo el número de subclave calculado del valor del subbloque B_{j}.
La posibilidad de implementación técnica del método reivindicado se explica con los siguientes ejemplos específicos de su realización.
Ejemplo 1
Este ejemplo es una versión del método reivindicado que ejecuta el cifrado de bloques de datos de 512 bytes (4096 bits). La utilización de tal tamaño de bloques de entrada está condicionada por el hecho de que este tamaño de bloque es estándar en los sistemas informáticos. Cuando se utilizan cifras de bloques que procesan bloques de tal tamaño, existe la posibilidad de acceso arbitrario a los datos almacenados en el soporte magnético integrado en una forma encriptada. En este ejemplo, se utiliza una clave secreta de 8192 bytes representada en la forma de la totalidad de 2048 subclaves numeradas de 32 bits {Q_{v}} en la que v = 0, 1, 2, ..., 2047. La clave secreta se forma, por ejemplo, copiándola del soporte magnético a la memoria de trabajo del ordenador. La conversión criptográfica según el ejemplo 1 se describe con el siguiente algoritmo.
Algoritmo 1: Cifrado de bloques de 4096 bits.
Entrada: bloque de 4096 bits representado como una totalidad de 128 subbloques de 32 bits {B_{1}, B_{2}, ..., B_{128}}.
1.
Fijar el número del bloque que está procesándose i = 1 y los valores iniciales de los vectores binarios V_{1}, V_{2} y V_{3}, y v: V_{1} \leftarrow Q_{1}; V_{2} \leftarrow Q_{2}; V_{3} \leftarrow Q_{3}; v \leftarrow 79.
2.
Generar el vector binario v según la estructura del vector binario V_{1}: v \leftarrow v \oplus (V_{1} mod 2^{11}), en la que "\oplus" es la operación de suma de módulo 2.
3.
Generar el vector binario V_{2}: V_{2} \leftarrow [(V_{2} + Q_{V}) \oplus V_{1}]\rangle\rangle\rangle, donde "+" es la operación de suma de módulo 2^{32}.
4.
Generar el vector binario v según la estructura del vector binario V_{2}: v \leftarrow V \oplus (V_{2} mod 2^{11}).
5.
Generar el vector binario V_{3}: V_{3} {[V_{3} \rangle\rangle\rangle V_{2}) \oplus Q_{v}] - V_{1}} \rangle\rangle\rangle 22, donde "-" designa la operación de resta de módulo 2^{32}.
6.
Generar el vector binario v según la estructura del vector binario V_{3}: v \leftarrow v \oplus (V_{3} mod 2^{11}).
7.
Generar el vector binario V_{1}: V_{1} \leftarrow V_{1} + Q_{V}.
8.
Convertir el subbloque B_{1}: B_{1} \leftarrow [(B_{1} \langle\langle\langle V_{2}) \ominus V_{3}] + V,.
9.
Generar el vector binario V_{1}: V_{1} \leftarrow B_{1}.
10.
Convertir el subbloque B_{1}: B_{1} \leftarrow B_{1} + V_{2}.
11.
Si i#128, modificar el valor del número i: i \leftarrow i + 1 y pasar a la etapa 2.
12.
Permutar los subbloques en orden inverso.
Salida: bloque de texto de cifras de 4096 bits en la forma de la totalidad de subbloques {B_{1}, B_{2}, ..., B_{128}} convertidos.
El algoritmo 1 describe una fase de cifrado. Después de la primera fase, se realiza una segunda fase de cifrado tomando el bloque de salida de la primera fase como un bloque de entrada para la segunda fase. Después, se realiza una tercera (última) fase de cifrado tomando el bloque de salida de la segunda fase como un bloque de entrada de la tercera fase. Cuando se implementa en software, la velocidad de encriptación que utiliza las tres fases de conversión es de aproximadamente 30 Mbit/s para el microprocesador Pentium/200.
Ejemplo 2
Considérese una realización del método reivindicado utilizando operaciones de relleno definidas por las tablas de relleno. Permítase que se ejecuten las operaciones de relleno en los subbloques de datos que tengan una longitud de k bits, donde k es un entero. Entonces, para definir la operación de relleno que transforma un subbloque de entrada de k bits en un subbloque de salida de k bits, será necesario utilizar una tabla que contenga dos filas de números:
0 1 2... N-1
a_{0} a_{1} a_{2} a_{N-1},
donde N = 2^{k}.
La tabla dada contiene, en su fila inferior, todos los posibles valores del bloque de k bits de manera uniforme en un momento dado pero en un orden arbitrario. La secuencia apropiada de la posición de los números en la línea inferior define una versión específica de la tabla de relleno y, por consiguiente, también una versión específica de la operación de relleno realizada utilizando esta tabla. La operación de relleno se realiza de la siguiente manera. Se selecciona un número de la fila superior que sea igual al valor del bloque de entrada. El valor en la línea inferior situado debajo de este número se selecciona como un bloque de salida. Así, la tabla de relleno puede ubicarse en una memoria de trabajo de un ordenador como una notación secuencial de palabras de ordenador de k bits ubicadas en celdas con las direcciones w_{0}, w_{1}, w_{2}, ..., w_{N-1}. En este caso, el valor de bloque de entrada b sirve para calcular la dirección de la palabra w_{0} + b que se toma como un bloque de entrada. Este método de representación de la tabla de relleno requiere la utilización de un tamaño de memoria igual a kN bits.
Selecciónese el número de tablas de relleno igual a 2^{L} (el tamaño de la memoria requerida en este caso será de 2^{L}kN bits) y dispóngase las tablas de relleno de manera ininterrumpida una tras otra. Tómese como una dirección de la tabla con el número v el valor de la dirección w_{0} de su primera palabra de k bits. Supóngase que el número de la tabla con el número 0 sea s. En este caso, la dirección de la tabla de relleno con un número arbitrario v es s + vN. Si se define un vector binario que determine el número de la tabla de relleno actual, v, y el subbloque de entrada actual para realizar la operación de relleno, entonces se ejecuta reemplazando el bloque de entrada actual por una palabra de k bits ubicada en la dirección s + vN + b, donde b es el valor del subbloque sobre el que se realiza la operación de relleno actual. Al utilizar esta relación, es fácil definir una selección de la tabla de relleno que tenga el número v y realizar relleno en el subbloque con el valor b. En el caso considerado, el establecimiento de dependencia de las tablas de relleno sobre el valor del vector binario y la realización de la operación de relleno se efectúan por microprocesador muy rápidamente cuando se seleccionan valores de los parámetros L y k apropiados, por ejemplo, cuando L = 5 y
k = 8. Con estos parámetros, para ubicar las tablas de relleno se requiere una memoria de trabajo de 8 Kbytes, lo que es aceptable ya que los ordenadores modernos tienen una memoria de trabajo con un tamaño muy superior a este valor (de 1 a 64 Mbytes y superior).
Supóngase que L = 5 y k = 8, es decir, existen 32 tablas que definen las operaciones de relleno sobre subbloques de datos de 8 bits. Supóngase que se forma una clave secreta representada como una totalidad de 7R subclaves de
8 bits
100
donde R es el número de fases de cifrado. Durante la r-ésima fase de cifrado, se utiliza a r-ésima fila de subclaves.
Desígnese las tablas de relleno empleadas de la siguiente manera: T_{0}, T_{1}, T_{2}, ..., T_{31}, y la operación de relleno definida por la tabla T_{V} como S_{V}, donde v = 0, 1, 2, ..., 31. Las tablas de relleno T_{0}, T_{1}, T_{2}, ..., T_{15} pueden seleccionarse de manera arbitraria, mientras que las tablas T_{16}, T_{17}, ..., T_{31} se toman de tal manera que las operaciones de relleno S_{V} y S_{31-V} son mutualmente inversas. La última condición se cumple cuando los pares de tablas T_{16} y T_{15}, T_{17} y T_{14}, T_{18} y T_{13}, ..., T_{31} y T_{0}, proporcionarán operaciones de relleno mutuamente inversas. Para un conjunto de tablas de relleno arbitrarias T_{0}, T_{1}, T_{2}, ..., T_{15}, es fácil crear tablas correspondientes a operaciones de relleno inversas. Por ejemplo, para la operación de relleno fijada por la siguiente tabla
0 1 2... 255
a_{0} a_{1} a_{2}... a_{255},
mientras que el relleno inverso se fija por la tabla
0 1 2... 255
Z_{0} Z_{1} Z_{2} Z_{255},
en la que la fila (z_{0}, z_{1}, z_{2}, ..., z_{255}) resulta ser la fila superior después de que se han ordenado las columnas de las tablas anteriores en el orden de números crecientes en la fila inferior.
La figura 2 muestra el diagrama de la primera fase de cifrado. En la figura 2, la línea vertical continua se corresponde con la transmisión de subbloques de datos de 8 bits, la línea discontinua corresponde a la transmisión de subbloques de 5 bits, la línea horizontal continua corresponde a la transmisión de subclaves de 8 bits. La operación de suma bit a bit de módulo 2 se designa mediante el signo "\oplus", v designa el número de la tabla de relleno seleccionada, el bloque S designa la operación de relleno, k_{11}, k_{12}, ..., k_{17} son las subclaves utilizadas durante la primera fase. Las fechas sobre las líneas indican la dirección de la transmisión de la señal. El ejemplo 2 corresponde a una encriptación de bloques de datos digitales con un tamaño de 64 bits. El cifrado se realiza como sigue. Un bloque de entrada se subdivide en 8 subbloques, b_{0}, b_{1}, b_{2}, ..., b_{7}, cada uno con un tamaño de 8 bits. Después, se genera un vector binario v que tiene el valor de los 5 bits de orden inferior del subbloque b_{0}: v \leftarrow mod 2^{5}. Después se realiza la operación de suma bit a bit de módulo 2 sobre el subbloque b_{1}, y la subclave k_{11} y el valor de salida de esta operación se asigna al bloque b1 que puede escribirse analíticamente como sigue: b_{1} \leftarrow b_{1} \ominus r_{11}. Entonces, según la tabla de relleno con el número v se lleva a cabo la operación sobre el subbloque b_{1}: b_{1} \leftarrow S_{V} (b_{1}). Después, según el valor b_{1}, se genera un vector binario v, v: v \leftarrow v \oplus (b_{1} mod 2^{5}), por el que el nuevo valor del vector binario depende de su valor anterior. A continuación, se realiza la conversión del subbloque b_{2}: b_{2} \leftarrow b_{2} \oplus k_{12} y entonces b_{2} \leftarrow S_{V}(b_{2}).
De manera similar se lleva a cabo la conversión de los subbloques b_{3}, b_{4}, b_{5}, b_{6} y b_{7}. Durante la última etapa de cada fase de cifrado, los subbloques se permutan en el orden inverso, es decir, los bloques b_{7} y b_{0}, b_{6} y b_{1}, b_{5} y b_{2}, b_{4} y b_{3} se intercambian por parejas.
La segunda fase se realiza de manera similar, excepto que se utiliza la segunda fila de subclaves en lugar de la primera fila de subclaves. Entonces se lleva a cabo la tercera fase del cifrado utilizando la tercera fila de subclaves, etc. Teniendo esto en cuenta, se realizan R fases de cifrado cuando R = 4. Cuando se implementa en software, esta realización del método reivindicado proporciona una velocidad de encriptación de aproximadamente 25 Mbit/s para el microprocesador Pentium/200. Si se requiere, puede fijarse otro número de fases, por ejemplo, R = 2, 3, 5, 6.
Ejemplo 2
El ejemplo se describe mediante al siguiente algoritmo.
Algoritmo 2.
Entrada. Un bloque de entrada de datos digitales de 64 bits representado como una concatenación de subbloques de 8 bits b_{0} | b_{1} | b_{2} | b_{3} | b_{4} | b_{5} | b_{6} | b_{7} en la que el signo "|" denota la operación de concatenación.
1.
Fijar el número de fases de cifrado R = 4 y el contador del número de fases r = 1.
2.
Fijar el contador i = 1.
3.
Generar el vector binario v: v \leftarrow b_{i-1} mod 2^{5}.
4.
Convertir subbloque b_{i}: b \leftarrow b_{i} \oplus k_{ri}, b_{i} \leftarrow S_{V} (b_{i}), donde la operación de relleno S_{V} se realiza utilizando la tabla de relleno con el número v.
5.
Generar el vector binario v: v \leftarrow v \oplus (b_{i} mod 2^{5}).
6.
Si i \neq 7, entonces incrementar i \leftarrow i + 1 y pasar a la etapa 4.
7.
Si r \neq R, entonces incrementar r \leftarrow r + 1. Si no, PARAR.
8.
Permutar los subbloques en orden inverso y pasar a la etapa 3.
Salida: bloque de texto de cifras de 64 bits.
En este ejemplo, se observa que el número de la tabla de relleno empleada depende de los bloques que están convirtiéndose y no está predeterminado por la etapa de conversión actual, es decir, no se conoce de antemano la operación de relleno para todas las etapas de conversión. Se determina por una clave secreta y el bloque de datos que está convirtiéndose. El descifrado se lleva a cabo de manera similar y se describe mediante el siguiente algoritmo.
Algoritmo 3.
Entrada: bloque de texto de cifras de entrada de 64 bits b_{0} | b_{1} | b_{2} | b_{3} | b_{4} | b_{5} | b_{6} | b_{7}.
1.
Fijar el número de fases de cifrado R = 4 y el contador del número de fases r = 1.
2.
Fijar el contador i = 1.
3.
Generar el vector binario v: v \leftarrow b_{i-1} mod 2^{5}.
4.
Almacenar el número del b_{i} en la variable g: g \leftarrow b_{i}. Convertir el subbloque b_{i}: b_{i} \leftarrow S_{31-V} (b_{i}), b_{1} \leftarrow b_{i} \oplus k_{r'i}, donde r' = 5-r.
5.
Generar el vector binario v: v \leftarrow v \oplus (g mod 2^{5}).
6.
Si i \neq 7, entonces incrementar i \leftarrow i + 1 y pasar a la etapa 4.
7.
Si r \neq R, entonces incrementar r \leftarrow r + 1. Si no, PARAR.
8.
Permutar los subbloques en orden inverso y pasar a la etapa 3.
Salida: bloque de 64 bits de texto original.
Los anteriores algoritmos de cifrado y descifrado pueden modificarse fácilmente para convertir bloques de datos de otro tamaño, por ejemplo, 128 y 256 bits.
Ejemplo 3
Este ejemplo se refiere a la creación de una función unilateral basada en el método reivindicado para la conversión criptográfica. Como en los ejemplos 1 y 2, se supone la utilización de 32 tablas de relleno T_{0}, T_{1}, T_{2}, ..., T_{31}. Se supone que se conocen las tablas de relleno y no se utilizan claves secretas. La función unilateral se proporciona por el algoritmo 4. La secuencia de operaciones de conversión de los subbloques de datos para una única fase de conversión se muestra en la figura 2.
Algoritmo 4.
Entrada. Bloque de datos de entrada de 64 bits representado como una concatenación de subbloques de 8 bits
b_{0} | b_{1} | b_{2} | ... | b_{7}.
1.
Fijar el número de fases de conversión R = 8, el contador del número de fases r = 1 y el valor inicial del vector binario v = 13.
2.
Fijar el contador i = 1.
3.
Generar el vector binario v: v \leftarrow v \oplus (b_{i-1} mod 2^{5)}.
4.
Convertir el subbloque b_{i-1}: b_{i-1} \leftarrow b_{i-1} \rangle\rangle\rangle r, b_{i-1} S_{V} (b_{i-1}).
5.
Si i \neq 8, entonces incrementar i \leftarrow i + 1 y pasar a la etapa 3.
6.
Permutar los subbloques b_{0}, b1, ..., b_{7} en orden inverso.
7.
Si r \neq R, entonces incrementar r \leftarrow + 1 y pasar a la etapa 2. Si no, PARAR.
Salida: valor de 64 bits de la función F.
De manera similar, es posible crear una función unilateral para convertir un bloque de datos de 128 bits que puede utilizarse para aplicar métodos hash a los datos.
Los ejemplos anteriores muestran que el método propuesto de conversiones criptográficas de bloques de datos digitales es técnicamente viable y permite resolver el problema actual.
Aplicabilidad industrial
El método reivindicado puede implementarse, por ejemplo, en ordenadores personales y proporciona la posibilidad de crear a partir de él módulos software de encriptación de alta velocidad y de reemplazar equipos de encriptación especializados costosos por un ordenador personal dotado de un sistema software de alta velocidad de encriptación.

Claims (4)

1. Método para la conversión criptográfica de bloques (B) de entrada de L bits de datos digitales en bloques de salida de L bits, que comprende una pluralidad de fases, incluyendo cada fase las etapas de
subdividir un bloque de datos en N \geq 2 subbloques (b1 ... b_{N}),
realizar una primera etapa de conversión de confusión de subbloques sobre un primer subbloque, primera etapa que comprende utilizar al menos un vector binario para modificar el primer subbloque, y
realizar una segunda etapa de conversión de confusión de subbloques sobre un segundo subbloque, posterior a la primera etapa de conversión de confusión de subbloques, segunda etapa que comprende generar al menos un vector binario (V) dependiendo del valor de uno de los subbloques (b1 ... b_{N}) y del valor del vector binario utilizado en la primera etapa de conversión de confusión de subbloques, y modificar el segundo subbloque utilizando el vector binario (V).
2. Método según la reivindicación 1, caracterizado porque se generan dos vectores binarios y uno de ellos se convierte utilizando una operación de desplazamiento cíclico sobre un número de bits que es igual al valor de dicho segundo vector binario.
3. Método según la reivindicación 1, caracterizado porque uno de dichos subbloques se modifica aplicándole una operación de desplazamiento cíclico sobre un número de bits que es igual al valor actual del vector binario.
4. Método según la reivindicación 1, caracterizado porque en la conversión de confusión de subbloques se utilizan tablas de transformación cuyo número es T \geq 2, calculándose el número de tabla v según dicho vector binario y modificándose dicho subbloque utilizando la operación de transformación definida por dicha tabla v-ésima.
ES97951348T 1997-11-28 1997-11-28 Metodo para la conversion criptografica de bloques de entrada de l bits de informacion de datos digitales en bloques de salida de l bits. Expired - Lifetime ES2293665T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU1997/000394 WO1999000930A1 (en) 1997-11-28 1997-11-28 Method for the cryptographic conversion of l-bit input blocks of digital data into l-bit output blocks

Publications (1)

Publication Number Publication Date
ES2293665T3 true ES2293665T3 (es) 2008-03-16

Family

ID=20130174

Family Applications (1)

Application Number Title Priority Date Filing Date
ES97951348T Expired - Lifetime ES2293665T3 (es) 1997-11-28 1997-11-28 Metodo para la conversion criptografica de bloques de entrada de l bits de informacion de datos digitales en bloques de salida de l bits.

Country Status (10)

Country Link
US (1) US7142673B1 (es)
EP (1) EP1043863B1 (es)
JP (1) JP2001509608A (es)
KR (1) KR100350207B1 (es)
AT (1) ATE363783T1 (es)
DE (1) DE69737773D1 (es)
ES (1) ES2293665T3 (es)
PL (1) PL341508A1 (es)
UA (1) UA55496C2 (es)
WO (1) WO1999000930A1 (es)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070061835A1 (en) * 2005-08-05 2007-03-15 Realnetworks, Inc. System and method for registering users and devices
KR100972517B1 (ko) * 2008-02-28 2010-07-28 쌍용자동차 주식회사 자동차용 시트의 엑티브 헤드레스트
CN104022872B (zh) * 2014-04-09 2015-03-25 广州赛意信息科技有限公司 数据加密方法
US9774443B2 (en) * 2015-03-04 2017-09-26 Apple Inc. Computing key-schedules of the AES for use in white boxes

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CH558993A (de) * 1973-03-19 1975-02-14 Patelhold Patentverwertung Verfahren und einrichtung zur verschluesselten nachrichtenuebertragung.
DE3905667A1 (de) * 1989-02-24 1990-08-30 Ant Nachrichtentech Verfahren zum ver- und entschluesseln eines nachrichtenstromes
DE4016203A1 (de) * 1990-05-19 1991-11-21 Rolf Prof Dr Trautner Verfahren zur blockweisen chiffrierung von digitalen daten
US5142578A (en) * 1991-08-22 1992-08-25 International Business Machines Corporation Hybrid public key algorithm/data encryption algorithm key distribution method based on control vectors
RU2024209C1 (ru) * 1991-10-30 1994-11-30 Борис Владимирович Березин Устройство шифрования двоичной информации "албер"
RU2032990C1 (ru) * 1992-04-28 1995-04-10 Борис Владимирович Березин Способ шифрования двоичной информации
JPH0812537B2 (ja) * 1993-03-11 1996-02-07 日本電気株式会社 暗号化装置
US5511123A (en) * 1994-08-04 1996-04-23 Northern Telecom Limited Symmetric cryptographic system for data encryption
US5778074A (en) * 1995-06-29 1998-07-07 Teledyne Industries, Inc. Methods for generating variable S-boxes from arbitrary keys of arbitrary length including methods which allow rapid key changes
EP0839418B1 (en) * 1996-05-20 2003-05-02 Koninklijke Philips Electronics N.V. Cryptographic method and apparatus for non-linearly merging a data block and a key
US6031911A (en) * 1996-07-18 2000-02-29 Entrust Technologies, Ltd. Practical S box design
US6301362B1 (en) * 1998-06-12 2001-10-09 International Business Machines Corporation Method and apparatus for cryptographically transforming an input block into an output block
US6937727B2 (en) * 2001-06-08 2005-08-30 Corrent Corporation Circuit and method for implementing the advanced encryption standard block cipher algorithm in a system having a plurality of channels

Also Published As

Publication number Publication date
UA55496C2 (uk) 2003-04-15
DE69737773D1 (de) 2007-07-12
WO1999000930A1 (en) 1999-01-07
US7142673B1 (en) 2006-11-28
EP1043863A1 (en) 2000-10-11
EP1043863A4 (en) 2002-05-22
KR20010032479A (ko) 2001-04-25
KR100350207B1 (ko) 2002-08-28
EP1043863B1 (en) 2007-05-30
ATE363783T1 (de) 2007-06-15
PL341508A1 (en) 2001-04-23
JP2001509608A (ja) 2001-07-24

Similar Documents

Publication Publication Date Title
US5623548A (en) Transformation pattern generating device and encryption function device
Brown et al. Improving resistance to differential cryptanalysis and the redesign of LOKI
JP5055993B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
CN101162557B (zh) 密码处理装置和密码处理方法
JP6406350B2 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
JP2015191106A (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
RU2124814C1 (ru) Способ шифрования блоков цифровых данных
US7801307B2 (en) Method of symmetric key data encryption
JP2002032018A (ja) データ暗号化標準アルゴリズムを利用した暗号化装置
JP3044565B2 (ja) 暗号装置
TWI546731B (zh) 輸入-相依隨機數產生裝置及其方法
JP2015191107A (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
ES2287978T3 (es) Metodo para la conversion criptografica de bloques de datos binarios.
CN105472602A (zh) 一种加密装置及加密方法
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.
JP4470135B2 (ja) 擬似乱数生成システム
RU2188513C2 (ru) Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки
JP5182295B2 (ja) 暗号化装置及び暗号処理方法
RU2140713C1 (ru) Способ блочного криптографического преобразования двоичной информации
KR101076747B1 (ko) 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치
RU2140709C1 (ru) Способ криптографического преобразования блоков цифровых данных
CN111510296B (zh) Sm4/aes双模加密电路
CN212115336U (zh) Sm4/aes双模加密电路
RU2140716C1 (ru) Способ криптографического преобразования блоков цифровых данных
KR100308893B1 (ko) 엘.에프.에스.알을 이용한 확장 알.씨.4 암호화 방법