ES2291675T3 - Metodo de generar un cifrado de flujo utilizando claves multiples. - Google Patents

Metodo de generar un cifrado de flujo utilizando claves multiples. Download PDF

Info

Publication number
ES2291675T3
ES2291675T3 ES03757595T ES03757595T ES2291675T3 ES 2291675 T3 ES2291675 T3 ES 2291675T3 ES 03757595 T ES03757595 T ES 03757595T ES 03757595 T ES03757595 T ES 03757595T ES 2291675 T3 ES2291675 T3 ES 2291675T3
Authority
ES
Spain
Prior art keywords
order
function
octet
random
octets
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
ES03757595T
Other languages
English (en)
Inventor
Stephen Laurence Boren
Andre Jacques Brisson
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Application granted granted Critical
Publication of ES2291675T3 publication Critical patent/ES2291675T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Saccharide Compounds (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

Un método de generar un cifrado de flujo que tiene x octetos de longitud, cuyo método comprende los pasos de: i) seleccionar un número n que representa varias claves secundarias, y n números primos singulares mn, cada uno de los cuales representa una clave secundaria no repetitiva singular de mn octetos de longitud; ii) generar n números aleatorios singulares, cada uno de los cuales tiene mn octetos de longitud no repetitiva; iii) generar un número R aleatorio de orden n+1; iv) para cada octeto cuya posición en dicho número aleatorio de orden n sea p, siendo p = Modmn(R), aplicar consecutivamente una función a cada octeto de orden p de cada uno de dichos n números aleatorios para generar un valor; v) incrementar en 1 del valor de p; y vi) repetir los pasos iv) y v) y concatenar cada valor citado obtenido en el paso iv) al valor previo obtenido en el paso iv) hasta que se haya obtenido dicho cifrado de flujo de x octetos de longitud.

Description

Método de generar un cifrado de flujo utilizando claves múltiples.
Campo de la técnica
El invento se refiere al campo de los métodos de cifrado y, más particularmente, a un método de generar un cifrado de flujo para cifrar comunicaciones electrónicas que pueden ser extremadamente largas.
Técnica anterior
En la técnica son bien conocidos diversos métodos de cifrado para proporcionar comunicaciones electrónicas seguras. En los métodos de cifrado simétrico, el emisor y el receptor utilizan el mismo código o clave para cifrar y descifrar el mensaje. El único cifrado completamente seguro que, posiblemente, no puede romperse o descifrarse es el de "libreta de un solo uso" (OTP). Un OPT toma una cadena de bits que contiene el mensaje de texto común y una cadena de bits aleatoria, secreta, de la misma longitud que el texto (la clave). Para cifrar el texto con la clave, cada par de bits de la clave y del texto son sometidos en secuencia a la acción de la función O-exclusiva para obtener el bit de texto cifrado. El texto cifrado no puede descifrarse si la clave es realmente aleatoria y se la mantiene en secreto frente a terceros no autorizados. El problema que se plantea con este método es que la clave debe tener, al menos, la misma longitud que el mensaje. Si se utiliza una clave más corta y se la repite, entonces puede romperse el cifrado. En algunos casos, el volumen de datos que es necesario cifrar es extremadamente grande.
El documento US 4.058.673 describe un método para generar un cifrado de flujo con una longitud de x bits. i) Se selecciona un número n que representa varias claves secundarias. Además, se seleccionan n números primos relativamente singulares mn, cada uno de los cuales representa una clave secundaria singular con mn bits de longitud. ii) Se generan N números singulares cada uno de los cuales tiene una longitud de mn bits. iii) Se genera un número R (n + 1), iv) Para cada bit cuya posición en dicho enésimo número aleatorio corresponde a p, siendo p<mn y siendo p función de R, se aplica una función de cada bit de orden p de cada uno de dichos n números aleatorios para generar un valor. v) Se incrementa en uno el valor de p. vi) Se repiten los pasos iv) y v) y cada valor obtenido en el paso iv) se concatena con el valor previo obtenido en el paso iv) hasta que se obtiene el cifrado de flujo de x bits de longitud.
Por tanto, existe la necesidad de un método de generar una clave aleatoria, u OTP, que sea de longitud variable y que permita el cifrado de cantidades muy grandes de datos.
Exposición del invento
El presente invento proporciona un método y un producto de programa de ordenador de acuerdo con las reivindicaciones adjuntas.
El invento proporciona, además, un producto de programa de ordenador para llevar a la práctica el método.
Breve descripción de los dibujos
En los dibujos, que muestran una realización preferida del invento:
la Fig. 1 es una ilustración esquemática de un sistema de ordenador para llevar a la práctica el método del invento; y
la Fig. 2 es una gráfica de flujo que ilustra el método del invento.
Mejores modos de llevar a la práctica el invento
La Fig. 2 ilustra, mediante una gráfica de flujo, el método de generar la clave de cifrado del presente invento. En particular, combinando claves secundarias se forma una clave de cifrado, un cifrado de flujo no repetitivo de longitud indefinida denominado en esta memoria superclave. Dependiendo de la aplicación, pueden especificarse cualquier número n de claves secundarias K_{1}, K_{2}, ..., K_{n}. Cuanto mayor sea el número de claves secundarias, mayor será la longitud de la superclave no repetitiva. La longitud de cada clave secundaria es un número primo de octetos (preferiblemente números primos mayores que 10).
El primer paso del proceso consiste en determinar cómo será de grande una superclave, o cifrado de flujo, a desplegar. Se seleccionan el número n de claves secundarias y la longitud m_{n} no repetitiva de cada clave secundaria, en octetos. Cada una de las claves secundarias tiene una longitud singular, no repetitiva, es decir, no hay dos claves secundarias con la misma longitud no repetitiva. De preferencia, las longitudes no repetitivas de las claves secundarias son números primos de octetos. Preferiblemente, la longitud de las claves secundarias, en octetos, son números primos del orden de 2, 3, 5, ..., 1021, contándose con 172 números primos diferentes en este margen. La selección puede realizarse manualmente introduciendo el número de claves secundarias y sus longitudes no repetitivas de números primos. Alternativamente, el número de claves y sus longitudes no repetitivas de números primos se programan en una aplicación, o un programa selecciona al azar el número de claves secundarias y su longitud no repetitiva. Para n claves secundarias K_{n}, la longitud no repetitiva de la superclave será Tamaño(K_{1}) \times Tamaño(K_{2}) \times Tamaño(K_{3})... \times Tamaño(K_{n}). Por ejemplo, supongamos que se utilizan 10 claves secundarias con las siguientes longitudes no repetitivas de números primos:
Clave secundaria 1 = 13 octetos = K_{1}
Clave secundaria 2 = 17 octetos = K_{2}
Clave secundaria 3 = 19 octetos = K_{3}
Clave secundaria 4 = 23 octetos = K_{4}
Clave secundaria 5 = 29 octetos = K_{5}
Clave secundaria 6 = 31 octetos = K_{6}
Clave secundaria 7 = 37 octetos = K_{7}
Clave secundaria 8 = 41 octetos = K_{8}
Clave secundaria 9 = 43 octetos = K_{9}
Clave secundaria 10 = 47 octetos = K_{10}.
La longitud de la superclave no repetitiva resultante es 13 \times 17 \times 19 \times 23 \times 29 \times 31 \times 37 \times 41 \times 43 \times 47 = 256.186.053.068.611 octetos. Así, utilizando un pequeño número de claves secundarias, cada pequeña longitud no repetitiva de números primos da como resultado una superclave no repetitiva, extremadamente larga. La definición total del tamaño de la superclave anterior está contenida en 300 octetos (la suma de las longitudes de las claves secundarias no repetitivas) y la cabecera (número de claves secundarias y sus longitudes). Así, la definición total de una superclave será una fracción del tamaño de la superclave.
Si bien, preferiblemente, la longitud no repetitiva de cada clave secundaria es un número primo de octetos, para mejorar la aleatoriedad del cifrado resultante, el método también servirá si se utilizan longitudes de números no primos, en tanto el cifrado resultante sea muy grande.
Preferiblemente, para seleccionar el número de claves secundarias, éste se calcula tomando los dos primeros dígitos generados por una cadena aleatoria, se aplica una función mod 50 y se suma 50 para obtener un número de claves de entre 50 y 99.
Cada clave secundaria del proceso de múltiples claves puede crearse como sigue. Primero, se genera un número aleatorio que no sea un cuadrado perfecto, preferiblemente mediante una fuente sumamente aleatoria. Preferiblemente, se trata de un entero en el margen de 500 a 700 dígitos. Éste sirve como "primer valor generador" O. se verifica que el valor O seleccionado no sea un cuadrado perfecto. Si lo es, entonces se generarán valores aleatorios adicionales hasta que uno de ellos satisfaga este criterio. El segundo valor generador es un valor de 32 bits que se utiliza para iniciar la función generadora de valores aleatorios del ordenador. Los generadores de números aleatorios incluidos en los sistemas operativos de la mayoría de los ordenadores son pseudo-aleatorios y no muy robustos. Sin embargo, estos valores son suficientes como punto de partida. El segundo número aleatorio P es generado, también, por la función generadora de números aleatorios del ordenador. Luego, es sometido a la función mod 100 para fijar el punto de partida. Se calcula la raíz cuadrada Q del primer valor generador O, obteniendo como resultado un número Q irracional (uno que se extiende hasta el infinito tras la coma decimal y no es repetitivo). La cadena de dígitos resultante tras la coma decimal es potencialmente infinita en cuanto a longitud, y es sumamente aleatoria. El ordenador desecha los dígitos por delante de la coma decimal y calcula el número Q hasta P dígitos tras la coma. Luego, partiendo del dígito de orden P de Q tras la coma decimal, el ordenador selecciona en secuencia 4 dígitos de una vez y calcula el valor Mod 256 de los 4 dígitos. Esto da como resultado un valor de 8 bits. Este valor se utiliza como primer octeto de la clave secundaria. Este proceso se repite con 4 dígitos cada vez, continuando con los siguientes dígitos en secuencia, hasta que se completa una cadena de datos aleatorios igual a la longitud no repetitiva de número primo aleatorio de la clave secundaria que se está creando. Este proceso se repite para todas las claves secundarias hasta que se han creado las longitudes no repetitivas de todas las claves secundarias. Cada clave secundaria se forma, entonces, tomando la cadena no repetitiva de octetos así creada, y repitiéndola con tanta frecuencia como sea necesario para formar una clave secundaria de longitud suficiente para crear la superclave en combinación con las otras claves secundarias.
El algoritmo para generar las claves secundarias puede describirse como sigue:
1.
Tratar seed1 (generador1) como la representación decimal de un entero del orden de 500-700 dígitos.
2.
Sea X: = seed1
3.
Sea Y: = \sqrt{X} el número irracional creado extrayendo la raíz cuadrada de X
4.
Sean Z_{1}, Z_{2}, Z_{3}, Z_{4}... los dígitos tras la coma decimal en la representación decimal de Y. Cada Z_{i} está en el margen de 0....9.
5.
Llamar a srand(seed1) //sólo la primera vez
6.
Llamar a rand() para obtener el punto de partida irracional, start.
7.
Sea start: = rand()mod 100. start está en el margen de 0, 1...99.
8.
Descartar Z_{1} y Z_{2} totalmente hasta Z_{start}
9.
Sea tmp: = 10*Z_{(start + 1)} + Z_{(start + 2)}. Descartar los valores usados
10.
Sea n: = 50 + (tmp mod 50), n está en el margen de 50, 51,...99.
11.
Para i: = 1,2,...,n, hacer:
12.
Sea j = 3*(i-1)
13.
Sea tmp el siguiente octeto de la cadena Z
14.
Sea tmp: = 100*Z_{j+1} + 10*Z_{j+2} + Z_{j+3}
15.
sea t: = 172 - (tmp mod 172), t está en el margen de 1,2,..., 172.
16.
Sea u el número primo de orden t entre la secuencia 2,3,5,...,1021.
17.
Si u es igual a cualquiera de 1^{1}, 1^{2},..., 1^{\{i-1\}}, hacer t igual a (t + 1)mod 172 ir a 16
18.
Hacer 1^{i} = u
19.
Siguiente I: ir a 11 hasta que se fijen todos los tamaños de las claves secundarias.
20.
Para i: = 1,2,...,n, hacer:
21.
Para j: = 0,1,2,...,1^{i}, hacer:
22.
Sea k: = 4*j
23.
Sea tmp el siguiente octeto de la cadena Z.
24.
Sea tmp: = (1000*Z_{k} + 100*Z_{k+1} + 10*Z_{k+2} + Z_{k+3})mod 256
25.
Sea s^{i}_{j}:tmp
26.
Siguiente j:Siguiente octeto de clave secundaria
27.
Siguiente I:Siguiente clave secundaria
28.
Para i: = 0,1,2,...,255, hacer:
29.
Sea j: = 4*i
30.
Sea tmp: = (1000*Z_{j} + 100*Z_{+1} + 10*Z_{j+2} + Z_{j+3})mod 256
31.
Si tmp es igual a cualquiera de S[0], S[1],..., S[i-1], fijar a (tmp + 1)mod 256 ir a 31
32.
Hacer S[i]: = tmp
33.
Siguiente i
34.
Sea desplazamiento: = Z_{i}Z_{i+1}...Z_{i+9}
35.
Volver n, (1^{1},1^{2},...,1^{n}),(s^{1},s^{2},...s^{n}), S[256] y desplazamiento
36.
Salvar en fichero de claves y añadir seed1 y valor inicial a base de datos
37.
Incrementar seed1 e ir a 2 // repetir hasta que se creen suficientes claves.
Una vez que se han creado todas las claves secundarias como antes se ha indicado, se crea la superclave (cifrado) con la longitud requerida. Esto quiere decir que se continuará creando la superclave para cifrar los datos asociados a cifrar y se continuará creando solamente hasta que se hayan cifrado todos los datos. Primero, se genera un número R aleatorio ("tercer valor generador", o el desplazamiento de partida para la superclave, en oposición al punto de partida P para el número Q). Empezando con cualquiera de las n claves secundarias de longitud m_{n}, se calcula el Modm_{n} de R y el octeto de orden Modm_{n}(R) de cada clave secundaria es sometido consecutivamente a una función X/OR (O-exclusiva) con el correspondiente octeto de orden Modm_{n}(R) de cada otra clave secundaria. Por ejemplo, si R = 100 y la longitud de la primera clave secundaria es de 97 octetos y la de la segunda clave secundaria es de 43 octetos, entonces se selecciona el tercer octeto de la clave secundaria 1 y se somete a la función O-exclusiva con el octeto de orden 14 de la clave secundaria 2 y los correspondientes octetos de las otras claves secundarias restantes seleccionadas del mismo modo basadas en R. El proceso se repite hasta que todos los octetos seleccionados de cada clave secundaria han sido sometidos a la función O-exclusiva. El valor resultante puede ser sometido, entonces, a un cifrado de sustitución u otra función de deslinealización para deslinealizar la cadena de la superclave, como se describe adicionalmente en lo que sigue. El valor binario resultante se suma entonces a la superclave por concatenación. El próximo octeto subsiguiente de la clave secundaria 1 es sometido entonces a la función O-exclusiva con el siguiente octeto de la clave secundaria 2 y así sucesivamente. De nuevo, el proceso se repite hasta que todos los octetos seleccionados de cada clave secundaria han sido sometidos a la función O-exclusiva y han sido deslinealizados. El valor binario resultante de cada función se suma otra vez a la superclave por concatenación. Si bien se prefiere la función O-exclusiva, será evidente que pueden aplicarse otras funciones. Por ejemplo, pueden utilizarse funciones matemáticas de adición o sustracción. A medida que se genera cada octeto de la superclave, se cifra entonces el correspondiente octeto del mensaje de texto común con el octeto correspondiente de la superclave mediante la función O-exclusiva o alguna otra función matemática. Una vez que han sido cifrados todos los octetos del mensaje de texto, termina la generación de la superclave. Entonces, el mensaje cifrado puede descifrarse aplicándole la inversa de la función de cifrado y la
superclave.
Para ilustrar adicionalmente la generación de la superclave a partir de las clave secundarias, supongamos que S^{\{i\}}_{j} designa el octeto de orden j de la "clave secundaria" de orden i. Supongamos que \ell^{\{i\}} designa la longitud de la clave secundaria de orden i. Por ejemplo, podríamos tener \ell^{\{i\}} = 13, \ell^{\{2\}} = 17 y así sucesivamente. A partir de la "clave secundaria" i creamos la secuencia sinfín de octetos
100
Supongamos que S^{\{i\}}_{j} designa el octeto de orden j de la secuencia anterior, si j es cualquier número natural de 0 a \infty; el valor más bajo de j como sufijo de S^{\{i\}}_{j} es Rmódulo \ell{i}, siendo R un número aleatorio. Entonces, el octeto de orden j de la superclave, denominado Z_{j} está definido por
101
Aquí, "\oplus" designa la operación O-exclusiva. El primer octeto de la superclave es:
102
Donde Rmod\ell^{\{i\}} devuelve un entero en el margen de 0,1,2,...,(\ell^{\{i\}} -1). La "superclave" tiene un valor j que va de 0 a (\ell^{\{1\}} \times \ell^{\{2\}} \times \ell^{\{3\}} ... \ell^{\{n\}} -1).
Supongamos que P_{0},P_{1},P_{2},P_{3},... sean los octetos del texto, y C_{0},C_{1,.....} los octetos del texto cifrado, en orden. Asimismo, Z_{0},Z_{1},..... designan los octetos de la "superclave" (calculados como ya se ha descrito en lo que antecede). Definimos el texto cifrado por C_{i}: = P_{i} O-exclusiva S[Z_{i}]. El texto cifrado se forma concatenando los octetos C_{0}, C_{1}.... y luego se devuelve C como resultado del proceso de cifrado. El descifrado, como es obvio, trabaja a la
inversa.
Para cifrar un texto de L octetos, se genera una superclave de L octetos y se utiliza un contador T de números grandes para contar el número de octetos del texto. La salida es un texto cifrado de L octetos. Para descifrar el texto cifrado, se utiliza el mismo contador T para números grandes y la salida es el texto de L octetos.
\newpage
Con el fin de reducir la linealidad del texto cifrado utilizando el presente método, puede aplicarse otro paso a la superclave antes de cifrar el mensaje de texto. En la realización preferida, se aplica un cifrado de sustitución a la superclave y la cadena resultante se utiliza, luego, para cifrar el mensaje de texto. Por ejemplo, se crea una agrupación de 256 octetos singulares, de 1 a 256 ordenados aleatoriamente. El primer octeto de la superclave es sustituido entonces por el valor del octeto de la posición x + 1 de la superclave, siendo x el primer valor de la agrupación de 256 octetos. El segundo octeto de la superclave es sustituido, entonces, por el valor del octeto en posición y + 2 de la superclave, siendo y el segundo valor de la agrupación de 256 octetos, y así sucesivamente. La agrupación de 256 octetos puede formarse a partir de una de las claves secundarias, incorporando octetos de una clave secundaria en la agrupación en tanto no se repita una entrada anterior en la agrupación.
La linealidad del texto cifrado puede reducirse también aplicando el cifrado de sustitución al mensaje cifrado (texto cifrado); sin embargo, es más efectivo aplicar el cifrado de sustitución a la superclave antes del cifrado. Para romper la linealidad pueden utilizarse otras utilidades, además del cifrado de sustitución, por ejemplo utilidades de función no lineal invertible (INLF) disponibles de SANDIA Labs. Resultan útiles para proporcionar protección contra el ataque Berlekamp-Massey.
Aunque, de preferencia, la cadena no repetitiva aleatoria que forma cada clave secundaria es generada en la forma descrita en lo que antecede, el método también funcionará si la cadena no repetitiva de cada clave secundaria es generada, simplemente, por un generador de números aleatorios para formar cada clave secundaria, en tanto la longitud total resultante de la superclave sea lo bastante grande para que la superclave resultante tenga un tamaño, al menos, doble del de los datos a cifrar.
El método anterior puede utilizarse para producir un sistema de seguridad personal mediante el cual se utilice la clave para cifrar ficheros personales que el usuario desea mantener seguros. En ese caso, no se requerirá método alguno de distribución de la clave. Cuando se cifra cada fichero se crea un nuevo fichero cuyo nombre tiene la estructura {OLDFILENAME}.{OFFSET}.wn ({NOMBRE-ANTIGUO}.{DESPLAZAMIENTO}.wn). El OLDFILENAME incluye la extensión para permitir un fácil descifrado y para mantener el mismo formato de fichero por motivos funcionales. Cuando se cifra cada fichero, es descifrado inmediatamente y comparado con el original y, luego, se suprimen tanto la copia de prueba como el fichero original utilizando un proceso de borrado limpio (se graban "ceros" en todo el fichero y, luego, se graban "unos" y, luego, se le borra).
Un formato de fichero de clave preferido es como sigue:
103
104
El anterior formato de fichero de clave es estándar. El único valor diferente es el desplazamiento que se almacena en una cadena de dígitos decimales que están delineados por comillas. Un ejemplo de ello sería "98-7654321", que permite valores que llegan hasta 1000 dígitos de longitud, lo que evita la reutilización de secciones de la cadena de clave si el desplazamiento se ejecuta apropiadamente.
El presente invento se describe en lo que antecede como un método llevado a la práctica en un ordenador, por ejemplo para cifrar y descifrar comunicaciones entre ordenadores 14 y 16 en la red 12. También puede incorporarse como un aparato de hardware para ordenadores, un código de software para ordenadores o una combinación de ellos. El invento también puede incorporarse como un medio de almacenamiento legible por ordenador que incorpore código para llevar a la práctica el invento. Dicho medio de almacenamiento puede ser un disco duro o flexible, magnético u óptico, un CD-ROM, lógica inalterable u otros medios de almacenamiento. El invento también puede incorporarse en una señal portadora modulada, legible por ordenador.
Como será evidente para los expertos en la técnica, a la vista de la exposición anterior, en la práctica de este invento son posibles muchas alteraciones y modificaciones sin apartarse de su alcance. En consecuencia, el alcance del invento ha de considerarse de acuerdo con la sustancia definida por las siguientes reivindicaciones.
\vskip1.000000\baselineskip
Referencias citadas en la descripción
La lista de referencias citadas por el solicitante es, únicamente, para conveniencia del lector. No forma parte del documento de patente europea. Si bien se ha tenido gran cuidado al compilar las referencias, no pueden excluirse errores u omisiones y la OEP declina toda responsabilidad a este respecto.
Documentos de patente citados en la descripción
\bullet US 4058673 A

Claims (18)

1. Un método de generar un cifrado de flujo que tiene x octetos de longitud, cuyo método comprende los pasos de:
i)
seleccionar un número n que representa varias claves secundarias, y n números primos singulares m_{n}, cada uno de los cuales representa una clave secundaria no repetitiva singular de m_{n} octetos de longitud;
ii)
generar n números aleatorios singulares, cada uno de los cuales tiene m_{n} octetos de longitud no repetitiva;
iii)
generar un número R aleatorio de orden n + 1;
iv)
para cada octeto cuya posición en dicho número aleatorio de orden n sea p, siendo p = Modm_{n}(R), aplicar consecutivamente una función a cada octeto de orden p de cada uno de dichos n números aleatorios para generar un valor;
v)
incrementar en 1 del valor de p; y
vi)
repetir los pasos iv) y v) y concatenar cada valor citado obtenido en el paso iv) al valor previo obtenido en el paso iv) hasta que se haya obtenido dicho cifrado de flujo de x octetos de longitud.
2. El método de la reivindicación 1, en el que dicha longitud m_{n} seleccionada de cada una de dichas claves secundarias es un número primo mayor que 10.
3. El método de la reivindicación 1, en el que dicha función aplicada consecutivamente a cada uno de dichos octetos de orden p de dichos n números aleatorios, es la función O-exclusiva, que se aplica obteniendo el resultado de aplicar la función O-exclusiva inicialmente al par de orden n y de orden n + 1 de octetos de orden p, siendo n = 1 e incrementando luego consecutivamente n en 1 y aplicando la función O-exclusiva a dicho resultado y al siguiente octeto de orden p.
4. El método de la reivindicación 1, que comprende el paso adicional de aplicar una función de deslinealización a dicho cifrado de flujo.
5. El método de la reivindicación 4, en el que dicha función de deslinealización es un cifrado de sustitución.
6. El método de la reivindicación 1, en el que cada uno de dichos n números aleatorios es generado:
i)
generando un número aleatorio de orden n + 2 que no sea un cuadrado perfecto;
ii)
calculando la raíz cuadrada de dicho número aleatorio de orden n + 2;
iii)
generando un número aleatorio de orden n + 3;
iv)
comenzando con un dígito cuya posición en dicha raíz cuadrada de dicho número aleatorio de orden n + 2, se calcula basándose en dicho número aleatorio de orden n + 3, tomando secuencialmente cadenas finitas de dígitos de dicha raíz cuadrada del citado número aleatorio de orden n + 2 y convirtiendo cada cadena finita en un octeto;
v)
concatenando cada octeto en secuencia hasta que se ha alcanzado la longitud m_{n} seleccionada de cada uno citado de dichos n números aleatorios.
7. El método de la reivindicación 6, en el que dichas cadenas finitas de dígitos tienen, al menos, 4 dígitos de longitud.
8. El método de la reivindicación 7, en el que dicha cadena finita es convertida en un octeto aplicando una función mod.
9. El método de la reivindicación 8, en el que dicha cadena finita es convertida en un octeto aplicando una función mod 256.
10. Un producto de programa de ordenador para generar un cifrado de flujo que tiene x octetos de longitud, comprendiendo dicho producto de programa de ordenador un medio utilizable en un ordenador con medios de código de programa legibles por ordenador incorporados en dicho medio para:
i)
generar n números aleatorios singulares, cada uno de los cuales tiene m_{n} octetos de longitud no repetitiva, siendo m_{n} un número primo;
ii)
generar un número R aleatorio de orden n + 1;
iii)
para cada octeto cuya posición en dicho número aleatorio de orden n sea p, siendo p = Modm_{n}(R), aplicar consecutivamente una función a cada octeto de orden p de cada uno de dichos n números aleatorios para generar un valor;
iv)
incrementar en 1 del valor de p; y
v)
repetir los pasos iii) y iv) y concatenar cada valor citado obtenido en el paso iii) al valor previo obtenido en el paso iii) hasta que se haya obtenido dicho cifrado de flujo de x octetos de longitud.
11. El producto de programa de ordenador de la reivindicación 10, en el que dicha longitud m_{n} seleccionada de cada una de dichas claves secundarias es un número primo mayor que 10.
12. El producto de programa de ordenador de la reivindicación 10, en el que dicha función aplicada consecutivamente a cada uno de dichos octetos de orden p de dichos n números aleatorios, es la función O-exclusiva, que se aplica consecutivamente obteniendo el resultado de aplicar la función O-exclusiva inicialmente al par de orden n y de orden n + 1 de octetos de orden p, siendo n = 1 e incrementando luego consecutivamente n en 1 y aplicando la función O-exclusiva a dicho resultado y al siguiente octeto de orden p.
13. El producto de programa de ordenador de la reivindicación 10, en el que dicho medio utilizable en un ordenador tiene medios de código de programa legibles por ordenador incorporados en dicho medio para el paso adicional de aplicar una función de deslinealización a dicho cifrado de flujo.
14. El producto de programa de ordenador de la reivindicación 13, en el que dicha función de deslinealización es un cifrado de sustitución.
15. El producto de programa de ordenador de la reivindicación 10, en el que cada uno de dichos n números aleatorios es generado:
i)
generando un número aleatorio de orden n + 2 que no sea un cuadrado perfecto;
ii)
calculando la raíz cuadrada de dicho número aleatorio de orden n + 2;
iii)
generando un número aleatorio de orden n + 3;
iv)
comenzando con un dígito cuya posición en dicha raíz cuadrada de dicho número aleatorio de orden n + 2, se calcula basándose en dicho número aleatorio de orden n + 3, tomando secuencialmente cadenas finitas de dígitos de dicha raíz cuadrada del citado número aleatorio de orden n + 2 y convirtiendo cada cadena finita en un octeto;
v)
concatenando cada octeto en secuencia hasta que se ha alcanzado la longitud m_{n} seleccionada de cada uno citado de dichos n números aleatorios.
16. El producto de programa de ordenador de la reivindicación 15, en el que dichas cadenas finitas de dígitos tienen, al menos, 4 dígitos de longitud.
17. El producto de programa de ordenador de la reivindicación 15, en el que dicha cadena finita es convertida en un octeto aplicando una función mod.
18. El producto de programa de ordenador de la reivindicación 17, en el que dicha cadena finita es convertida en un octeto aplicando una función mod 256.
ES03757595T 2002-11-20 2003-10-06 Metodo de generar un cifrado de flujo utilizando claves multiples. Expired - Lifetime ES2291675T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/299,847 US7190791B2 (en) 2002-11-20 2002-11-20 Method of encryption using multi-key process to create a variable-length key
US299847 2002-11-20

Publications (1)

Publication Number Publication Date
ES2291675T3 true ES2291675T3 (es) 2008-03-01

Family

ID=32297785

Family Applications (1)

Application Number Title Priority Date Filing Date
ES03757595T Expired - Lifetime ES2291675T3 (es) 2002-11-20 2003-10-06 Metodo de generar un cifrado de flujo utilizando claves multiples.

Country Status (13)

Country Link
US (1) US7190791B2 (es)
EP (1) EP1566009B1 (es)
JP (1) JP4608319B2 (es)
KR (1) KR100994841B1 (es)
CN (1) CN100568802C (es)
AT (1) ATE370569T1 (es)
AU (1) AU2003273688B2 (es)
BR (2) BR0316473A (es)
CA (2) CA2414261A1 (es)
DE (1) DE60315700T2 (es)
ES (1) ES2291675T3 (es)
MX (1) MXPA05005358A (es)
WO (1) WO2004047361A1 (es)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7006629B2 (en) * 2000-12-19 2006-02-28 International Business Machines Corporation Method and system for processing a data set
FR2838262B1 (fr) * 2002-04-08 2004-07-30 Oberthur Card Syst Sa Procede de securisation d'une electronique a acces crypte
AU2005255946C1 (en) * 2004-06-14 2009-10-29 The University Of North Carolina At Greensboro Systems and methods for digital content security
US9166782B2 (en) * 2006-04-25 2015-10-20 Stephen Laurence Boren Dynamic distributed key system and method for identity management, authentication servers, data security and preventing man-in-the-middle attacks
US20080304664A1 (en) * 2007-06-07 2008-12-11 Shanmugathasan Suthaharan System and a method for securing information
US20100235689A1 (en) * 2009-03-16 2010-09-16 Qualcomm Incorporated Apparatus and method for employing codes for telecommunications
US8948377B2 (en) * 2010-08-24 2015-02-03 Mitsubishi Electric Corporation Encryption device, encryption system, encryption method, and encryption program
CN102647393B (zh) * 2011-02-21 2017-02-22 鸿合科技有限公司 一种数字标牌的内容防盗播方法
US8767954B2 (en) * 2011-12-01 2014-07-01 Colloid, Llc Methods and systems for deriving a cryptographic framework
WO2015102839A1 (en) * 2013-12-30 2015-07-09 Jvl Ventures, Llc Systems, methods, and computer program products for providing application validation
CN106209736B (zh) * 2015-05-04 2020-01-17 腾讯科技(深圳)有限公司 流媒体数据播放方法、终端及流媒体服务器
CN105406960B (zh) * 2015-12-20 2019-02-22 河南思维自动化设备股份有限公司 一种信息加密和解密的方法
EP3408747A4 (en) * 2016-01-28 2019-09-18 Tfor LLC REMOVAL OF INFORMATION FROM DATA
FI20165911A (fi) * 2016-11-30 2018-05-31 Sam Widlund Menetelmä ja järjestelmä tiedon salaukseen
CN106953875A (zh) * 2017-04-26 2017-07-14 吉林大学珠海学院 基于多密钥流密码的顺序加密方法
ZA202004225B (en) 2019-07-11 2023-07-26 Entersekt International Ltd System and method for secure input at a remote service
US11621837B2 (en) 2020-09-03 2023-04-04 Theon Technology Llc Secure encryption of data using partial-key cryptography
US11310042B2 (en) 2020-09-11 2022-04-19 Crown Sterling Limited, LLC Methods of storing and distributing large keys
US11552780B2 (en) * 2020-12-23 2023-01-10 Theon Technologies, Inc. Homomorphic one-time pad encryption
US11755772B2 (en) * 2021-09-20 2023-09-12 Crown Sterling Limited, LLC Securing data in a blockchain with a one-time pad
US11791988B2 (en) 2021-11-22 2023-10-17 Theon Technology Llc Use of random entropy in cryptography
US11943336B2 (en) 2021-11-22 2024-03-26 Theon Technology Llc Use of gradient decent function in cryptography
US11902420B2 (en) 2021-11-23 2024-02-13 Theon Technology Llc Partial cryptographic key transport using one-time pad encryption
US12405781B2 (en) 2022-08-25 2025-09-02 National Technology & Engineering Solutions Of Sandia, Llc Systems and methods for automatically updating system firmware
US12261952B2 (en) 2022-11-04 2025-03-25 Crown Sterling Limited, LLC Multiple vector one-time key pad
US12250310B2 (en) 2023-01-09 2025-03-11 Crown Sterling Limited, LLC Use of irrational numbers in elliptic curve cryptography

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3706941A (en) * 1970-10-28 1972-12-19 Atomic Energy Commission Random number generator
US4058573A (en) * 1971-07-02 1977-11-15 Ciba-Geigy Corporation Process for the addition of gaseous non-halogenated olefins and acetylenes to perfluoroalkyl iodides
SE385644B (sv) 1974-10-17 1976-07-12 Ericsson Telefon Ab L M Anordning vid kryptering och dekryptering av meddelanden
US4375579A (en) * 1980-01-30 1983-03-01 Wisconsin Alumni Research Foundation Database encryption and decryption circuit and method using subkeys
US4791594A (en) * 1986-03-28 1988-12-13 Technology Inc. 64 Random-access psuedo random number generator
JPH0769662B2 (ja) * 1988-08-03 1995-07-31 松下電器産業株式会社 二元擬似乱数発生器
US5414771A (en) * 1993-07-13 1995-05-09 Mrj, Inc. System and method for the creation of random sequences and for the cryptographic protection of communications
US5454039A (en) * 1993-12-06 1995-09-26 International Business Machines Corporation Software-efficient pseudorandom function and the use thereof for encryption
JPH08181679A (ja) 1994-12-26 1996-07-12 Nec Corp 疑似乱数雑音発生装置
US5533128A (en) * 1995-01-18 1996-07-02 Vobach; Arnold Pseudo-random transposition cipher system and method
JP3557037B2 (ja) * 1996-04-22 2004-08-25 株式会社東芝 乱数生成装置及び方法、鍵系列生成装置及び方法、暗号化装置及び方法、並びに復号装置及び方法
CA2247478A1 (en) * 1996-02-21 1997-08-28 Yoshimi Baba Communication method using common key
US5666414A (en) * 1996-03-21 1997-09-09 Micali; Silvio Guaranteed partial key-escrow
JP2000502822A (ja) * 1996-08-16 2000-03-07 ベル コミュニケーションズ リサーチ,インコーポレイテッド 高速で安全な暗号化のための改良された暗号的に安全な疑似ランダム・ビット・ジェネレータ
US6307940B1 (en) * 1997-06-25 2001-10-23 Canon Kabushiki Kaisha Communication network for encrypting/deciphering communication text while updating encryption key, a communication terminal thereof, and a communication method thereof
US6307936B1 (en) * 1997-09-16 2001-10-23 Safenet, Inc. Cryptographic key management scheme
US6345359B1 (en) * 1997-11-14 2002-02-05 Raytheon Company In-line decryption for protecting embedded software
US6151676A (en) * 1997-12-24 2000-11-21 Philips Electronics North America Corporation Administration and utilization of secret fresh random numbers in a networked environment
US6243470B1 (en) * 1998-02-04 2001-06-05 International Business Machines Corporation Method and apparatus for advanced symmetric key block cipher with variable length key and block
CN1240318A (zh) * 1998-03-04 2000-01-05 朗迅科技公司 产生伪随机数的方法
US6490353B1 (en) * 1998-11-23 2002-12-03 Tan Daniel Tiong Hok Data encrypting and decrypting apparatus and method
US6415032B1 (en) * 1998-12-01 2002-07-02 Xilinx, Inc. Encryption technique using stream cipher and block cipher
US20030210783A1 (en) * 2000-07-27 2003-11-13 Ross Filippi Method and system of encryption
JP4596686B2 (ja) * 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
US20030016823A1 (en) * 2001-07-05 2003-01-23 Shine Chung Method and apparatus of using irrational numbers in random number generators for cryptography
US7197142B2 (en) * 2001-08-24 2007-03-27 Alten Alexander I System and methods for a vernam stream cipher
EP2148463A3 (en) * 2001-10-19 2015-04-22 Panasonic Intellectual Property Management Co., Ltd. A numerical array output device, a numerical array output method, an encryption device, and a decryption device

Also Published As

Publication number Publication date
KR100994841B1 (ko) 2010-11-16
CA2414261A1 (en) 2004-05-20
CA2505338C (en) 2012-09-04
MXPA05005358A (es) 2005-08-03
CA2505338A1 (en) 2004-06-03
EP1566009A1 (en) 2005-08-24
BRPI0316473B1 (pt) 2018-03-13
EP1566009B1 (en) 2007-08-15
JP4608319B2 (ja) 2011-01-12
US7190791B2 (en) 2007-03-13
US20040096056A1 (en) 2004-05-20
AU2003273688A1 (en) 2004-06-15
ATE370569T1 (de) 2007-09-15
DE60315700T2 (de) 2008-06-05
JP2006506668A (ja) 2006-02-23
CN100568802C (zh) 2009-12-09
BR0316473A (pt) 2005-10-11
WO2004047361A1 (en) 2004-06-03
KR20050086746A (ko) 2005-08-30
CN1714531A (zh) 2005-12-28
AU2003273688B2 (en) 2009-06-25
DE60315700D1 (de) 2007-09-27

Similar Documents

Publication Publication Date Title
JP4608319B2 (ja) 複数鍵を用いたストリーム暗号の生成方法
JP3339688B2 (ja) 非決定論的ミクスチャー発生器ストリーム暗号化システム
CN100431293C (zh) 对称-密钥加密的线性变换方法和系统
KR101267109B1 (ko) 준군을 이용한 암호화 프리미티브, 에러 코딩, 및 의사난수 향상 방법
JP2008299330A (ja) 閉ガロア体組合せ
US20120314857A1 (en) Block encryption device, block decryption device, block encryption method, block decryption method and program
JP2008513811A (ja) 計算変換の方法及びシステム
JP7136226B2 (ja) 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム
Panduranga et al. Hybrid approach for image encryption using SCAN patterns and carrier images
US20150172045A1 (en) Method of cryption
Jose et al. Hash and Salt based Steganographic Approach with Modified LSB Encoding
CN109639423B (zh) 一种解密算法的构成装置
WO2005076521A1 (en) Method of generating a stream cipher using multiple keys
CN117725605B (zh) 一种远端自动编制电子档案文件信息保密的方法和系统
KR100578550B1 (ko) 스트림 암호를 이용한 메시지 인증 코드 구성 방법
Sokouti et al. An approach in improving transposition cipher system
KR20110031822A (ko) 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치
RU2266622C1 (ru) Способ блочного шифрования информации
KR101153880B1 (ko) 갈로아 변환을 이용한 키 생성 방법
Wahba Memristive Coupled Neural Network Based Audio Signal Encryption
JP6735062B2 (ja) 乱数列生成装置、方法及びプログラム
Krendelev et al. Block cipher based on modular arithmetic and methods of information compression
Anandh et al. NR2-A Novel Graph-Based Encryption Algorithm
Abbas et al. Audio cryptosystem based on LFSH and Chaotic map with ECC key management
Kak Lecture 15: Hashing for Message Authentication