MXPA05005358A - Metodo para generar una cifra de corriente usando multiples claves. - Google Patents

Metodo para generar una cifra de corriente usando multiples claves.

Info

Publication number
MXPA05005358A
MXPA05005358A MXPA05005358A MXPA05005358A MXPA05005358A MX PA05005358 A MXPA05005358 A MX PA05005358A MX PA05005358 A MXPA05005358 A MX PA05005358A MX PA05005358 A MXPA05005358 A MX PA05005358A MX PA05005358 A MXPA05005358 A MX PA05005358A
Authority
MX
Mexico
Prior art keywords
byte
function
bytes
random number
length
Prior art date
Application number
MXPA05005358A
Other languages
English (en)
Inventor
Jacques Brisson Andre
Original Assignee
Stephen Laurence Boren
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 Stephen Laurence Boren filed Critical Stephen Laurence Boren
Publication of MXPA05005358A publication Critical patent/MXPA05005358A/es

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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Abstract

En metodos simetricos de encripcion, la cifra de corriente debe ser tan larga como el mensaje de texto simple. Dicha cifra es dificil de generar si el dato de texto simple que se va a encriptar es enorme. La presente invencion proporciona un metodo para generar una cifra de corriente de longitud variable que puede ser extremadamente larga. Se genera creando un numero de subclaves aleatorias que tienen longitudes no repetitivas y combinando dichas subclaves en una forma aleatoria.

Description

WO 2004/047361 Al lili II II I I II' I 11,:! II ?G???G II I ! III: II I !! (84.) Designated States (regional): ARIPO patenl (GH, GM, Published: KE, LS, W, MZ, SD, SL, SZ, TZ, UG, ZM, ZW), — with imernational search repon Eurasian patent ( AM, AZ. BY, KG. KZ. MD. BU, TJ, TM), European palent (AT, BE. BG, CH, CY, CZ, DE, DK, EE. ES, H. FR, GB. GR, "HU, EE, IT, LU, MC, NL, FE RO, For hi'o-letter codes aiid oúter abbreviaiions. refer to jhe "Guid- SE, SI, SK: TR), OAPI patent (BF, BJ, CR CG, CI, CM, ance Noles on Codes and Abbreviaiions " appearíng at íhe begin- GA, GN, GQ, GW, ML, MR. E, SN, TD, TG). ning of each regular iss e of íhe PCX Gazelle.
I-IETODO PARA GENERAR UNA CIFRA DE CORRIENTE USANDO MÚLTIPLES CLAVES Referencia a Solicitudes Relacionadas Esta solicitud es una continuación en parte de la Solicitud de Patente de Estados Unidos No. 10/299,847 presentada el 20 de noviembre de 2002, que está pendiente Campo Técnico La invención se relaciona con el campo de métodos de encripción y más particularmente con un método para generar una cifra de corriente para encriptar comunicaciones electrónicas que pueden ser extremadamente largas . Técnica Anterior Son bien conocidos en el ramo diversos métodos de encripción para proporcionar comunicaciones electrónicas seguras . En métodos simétricos de encripción, el que envía y el recipiente usan el mismo código o clave para encriptar y descifrar el mensaje. La única cifra completamente eegura que no se puede posiblemente romper o descifrar es el Adaptador de Un Tiempo (OTP) . Un OTP tomar una corriente de bits que contiene el mensaje de texto sencillo, y una corriente de bit al azar secreto de la misma longitud que el texto sencillo (la clave) . Para encriptar el texto completo que la clave, cada par de bits de la clave y el texto completo se accionan en secuencia mediante la función exclusiva o para obtener un bit de texto de cifra. El texto de cifra no se puede descifrar si la clave es verdaderamente aleatoria y la clave se mantiene secreta a una parte no autorizada. El problema con este método es que solamente la cave debe ser cuando menos de la misma longitud que el mensaje. Si se usa una clave más corta y se repite entonces la cifra se puede romper. En algunos casos, el dato que necesita encriptarse es extremadamente largo. Por lo tanto, existe la necesidad un método para generar una clave al azar, u OTP, que sea de longitud variable y que permita la encripción de cantidades muy grandes de datos . Exposición de la Invención La presente invención, por lo tanto, proporciona un método para generar una cifra de corriente que tiene x bytes de longitud, el método comprendiendo los pasos de (i) seleccionar un número n de subclaves cada una teniendo una longitud de no repetición única de p¾. bytes; (ii) generar n números al azar, uno para cada subclave, cada uno teniendo longitud de mn bytes; (iii). generar un numero R al azar n+l°; (iv) ajusfar p= Modmn(R); (v) para cada byte cuya posición en el número n al azar es p aplicando una función a todos los n bytes para generar un valor; (vi) concatenar el valor al final de la cifra de corriente, (vii) ajusfar p=p+l; y (viii) repetir el paso (v) , (vi) y (vii) hasta que la cifra de corriente es x bytes de longitud. De preferencia la longitud m seleccionada de cada subclave es un número primario. El método también puede incluir el paso adicional de aplicar una función de deslinearización a la cifra de corriente. De conformidad con un aspecto de la invención cada uno de los n números al azar se genera: (i) generando un número al azar n + 2o que no es un cuadrado perfecto; (ü) calculando la raiz cuadrada del n + 2o número al azar, (iii) generar un n + 3o número al azar; (iv) comenzando con un dígito cuya posición en el n + 2o número al azar se calcula basado en el n + 3° número al azar, tomar sartas de dígitos finitas en secuencia y convertir cada finita en un byte; (v) concatenar cada byte en secuencia hasta que la longitud mn seleccionada de cada uno de los n números al azar se ha alcanzado. La invención proporciona además un producto de programa de computadora, un artículo para llevar a cabo el método, y un sistema de procesamiento de datos para llevar a cabo el método. Breve Descripción de los Dibujos En los dibujos que describen una modalidad preferida de la invención: La Figura 1 es una ilustración esquemática de un sistema de computadora para llevar a cabo el método de la invención; y La Figura 2 es una gráfica de flujo que ilustra el método de la invención. Mejor Modo para Llevar a Cabo la Invención La Figura 2 ilustra a través de una gráfica de flujo el método para generar la clave de encripción de la presente invención. En particular una clave de encripción, una cifra de corriente de no repetición de longitud indefinida referida en la presente como la Super Clave, se forma combinando subclaves. Cualquier número n de subclaves K2, Kn se puede especificar dependiendo de la aplicación. Entre mayor es el número de subclaves, mayor es la longitud de la Super Clave de no repetición. La longitud de cada subclave es un número primario de bytes (de preferencia con números primarios mayores de 10). El primer paso en el proceso es determinar qué tan grande una Super Clave, o cifra de corriente, se despliega. El número de n subclaves y la longitud mn no repetitiva de cada subclave, en bytes, se seleccionan. Las subclaves tienen cada una, una longitud no repetitiva única, es decir, ningunas dos subclaves son de la misma longitud no repetitiva. De preferencia las longitudes no repetitivas de subclase son números primarios de bytes. De preferencia la longitud de las subclaves, en bytes, son números primarios en la escala de 2, 3, 5, ..., 1021, ya que hay 172 números primarios diferentes en esta escala. La selección se puede hacer dando entrada manualmente al número de subclaves y sus longitudes no repetitivas de número primario. Alternativamente, el número de claves y sus longitudes no repetitivas de número primario se programa en una aplicación, o un programa selecciona al azar el número de subclaves y su longitud no repetitiva. Para n subclaves Kn, la longitud no repetitiva de la Super Clave será el tamaño (¾) X Tamaño ( 2) X Tamaño (¾) ... X Tamaño ( n) . Por e emplo, se supone que se usan 10 subclaves de las siguientes longitudes no repetitivas de número primario: Subelave 1 = 13 bytes = Ki Subclave 2 = 17 bytes = ¾ Subclave 3 = 19 bytes = K3 Subclave 4 = 23 bytes = ¾ Subclave 5 = 29 bytes — 5 Subclave 6 = 31 bytes = K6 Subclave 7 = 37 bytes = K7 Subclave 8 = 41 bytes = 8 Subclave 9 = 43 bytes = ¾ Subclave 10 = = 47 bytes - La longitud de Superclave no repetitiva resultante es 13X 17X 19X 23X 29X 31 X 37X 41X 43X 47 = 266,186,053,068,611 bytes. De esta manera, usando un número pequeño de subclaves, cada una de número primario pequeño la longitud no repetitiva resulta en una Superclave no repetitiva extremadamente larga. La definición total para el tamaño de la Superclave anterior está contenida en 300 bytes (la suma de los longitudes de las subclaves no repetitivas) y el titulo (numero de subclaves y sus longitudes) . De esta manera, la definición total para una Superclave será una fracción del tamaño de la Superclave. Aún cuando de preferencia la longitud no repetitiva de cada subclave es un número primario de bytes, para mejorar la calidad aleatoria de la cifra resultante, el método también trabajará si se usan longitudes de número no primario, en tanto que la cifra resultante sea muy grande . Para seleccionar el número de subclaves, de preferencia este se calcula tomando los primeros dos dígitos generados por una corriente alteatorisa, MODed por 50 y añadiendo 50 para proporcionar número de claves entre 50 y 99. Cada subclave del proceso de múltiples claves se puede crear como sigue. Primero se genera un número al azar que no es un cuadrado perfecto, de preferencia por fuente altamente aleatoria. De preferencia es un entero en la escala de 500 a 700 dígitos. Esto sirve como un "primer valor de siembra" 0. Se verifica que el valor O seleccionado no sea un cuadrado perfecto. Si lo es, entonces valores aleatorios adicionales se generarán hasta que se llena este criterio. El segundo valor de siembra es un valor de 32-bit que se usa para sembrar ,1a función al azar de la computadora. Los generadores de número aleatorio que se incluyen en los sistemas de operación de la mayoría de las computadoras son pseudo-aleatorios y no muy robustos. Estos valores, sin embargo, son suficientes como un punto de partida. El segundo número aleatorio P también se genera de la función aleatoria de la computadora. Luego de MODed por 100 para a ustar el punto de partida. La raíz cuadrada Q del primer valor 0 de siembra se calcula, resultando en un número Q irracional (uno que se extiende infinitamente después del punto decimal y es no repetitivo) . La sarta de dígitos resultante después del punto decimal es potencialmente infinita en longitud y es altamente aleatoria. La computadora descarta los dígitos en frente del decimal y computa el número Q hasta dígitos P después del decimal.
Luego, empezando en el dígito Pl de Q después del punto decimal, la computadora selecciona en secuencia 4 dígitos en un tiempo, y calcula el valor Mod 256 de los 4 dígitos. Estos resulta en un valor de 8 bits. Este valor se usa como el primer byte de la subclave. Este proceso se repite 4 dígitos a la vez, continuando con los siguientes dígitos en secuencia, hasta que una sarta de datos aleatorios igual a la longitud no repetitiva de número primario de la subclave que se está creando se completa. Este proceso se repite para todas las subclaves hasta " que la longitud no repetitiva para todas las subclaves se crea. Cada subclave luego se forma tomando las sartas de bytes no repetitivas creadas de esta manera, y repitiéndola tan frecuentemente como sea necesario para formar un subclave de longitud uficíente para crear una Superclave en combinación con las otras subclaves. El algoritmo para generar las subclaves se puede describir como sigue: 1. Tratar la semilla 1 como la representación decimal de un entero en la escala de 500-700 dígitos. 2. Dejar X: = semilla 1 3. Dejar X: = es el número irracional generado sacando raíz cuadrada de X 4. Dejar Za, Z2, Z3, Z, .., que sean los dígito después del punto decimal en la representación decimal de ?. Cada Za está en la escala de 0, ..,9. 5. llamar saleatorio ( semilla2 ) . // solamente la primera vez 6. Llamar aleatorioO para obtener el punto de partida irracional, iniciar. 7. Dejar iniciar. = aleatorio= mod 100., el inicio es en la escala 0, 1, .., 99. 8. Descartar Zx y Z2 todo el a+camino a Zlniciar. 9. Dejar tmp: = 10*Z(iJlícílíI + u + Z (iniciar + D - Descartar aquellos valores usados . 10. Dejar n : = 50 + (tmp mod 50) ., n está en la escala de 50, 51, .., 99. 11. Para y := l,2,..,n, hacer: 12: Dejar j = 3^ (i-1) 13. Dejar tmp que sea el siguiente byte de la corriente Z. 14. Dejar tmp := 100*Zj+i + 10*j+2 + Zj+3 15. Dejar t := 172 - (tmp mod 172), t está en la escala de 1,2, .. , 172. 16. Dejar que u sea el primario entre la secuencia 2, 3, 5,.., 1021. 17. Si u es igual a cualquiera de l1, lz, ... , lfi_li, ajustar t a (5+l)mod 172 ir a 16 18. Ajustar l1 = u 19. Siguiente I: ir a 11 hasta que se ajustan todos los tamaños de subclave. 20. Para i:= l,2,..,n, hacer: 21. Para j:= 0, l,2,..,li, hacer: 22. Dejar k := 4*j 23. Dejar tmp que sea el siguiente byte para la corriente Z 24. Dejar tmp : = {1000+?* + 100*ZX+1 + 10*Zk+2 + Zx+3) mod 256 25. Dejar := tmp 26. Siguiente j : Siguiente byte de subclave 27. Siguiente I: Siguiente subclave 28. Para i:= 0, 1, 2, .. , 255, hacer: 29. Dejar j := 4*i 30. Dejar tmp := (1000*Zj + 100*Zj+1 + 10*Zj+2 +Zj+3) mod 256 31. Si tmp es igual a cualquiera de S[0], S[l], . • r S[i--1] / ajustar a (tmp+l)mod 256 ir a 31 32. Ajustar S [i] := tmp. 33. Siguiente i 34. Dejar desviar := ZiZi+i... Zíi9 35. Regresar n, (l1, l2, .. , ln) , (s1, s2, .. , sn) , S[256] y desviar. 36. Guardar en archivo de clave y añadir semilla 1 y valor de inicio a DB 37. Incrementar semilla 1 e ir a 2 // repetir hasta que se crean suficientes claves. Una vez que se crean todas las subclaves como arriba, la Super Clave (cifra) se crea a la longitud requerida. Esto significa que la Super Clave continuará siendo creada para encriptar el dato asociado que se va a encriptar, y continúa siendo creado hasta que todo el dato se encripta. Primero un número aleatorio R ("tercer valor do semilla", o la desviación de inicio para la Super Clave, en oposición al punto de partida P para el número Q) se general. Empezando con cualquiera de las n subclaves, que tienen longitud mn, el Modmn de R se calcula y el Modirin(R) byte de cada subclave es consecutivamente exclusivo-or' d (X/OR'd) con el byte Modmn(R) correspondiente de cada tercer subclave. Por ejemplo, si R=100, y la longitud de la primera subclave es 97 bytes y la segunda subclave 43 bytes, entonces el 3er byte de subclave 1 se selecciona y X|OR'd con el 14° byte de subclave 2 y bytes correspondientes de las otras subclaves restantes seleccionadas de la misma forma basadas en R. El proceso se repite hasta que todos los bytes seleccionados de cada subclave se han X/OR'd. El valor resultante puede entonces ponerse a través de una cifra de substitución u otra función de deslinearización para deslinealizar la corriente de Super Clave, como se describe adicionalmente abajo. El valor binario resultante luego se añade a la Super Clave por concatenación. El siguiente byte subsecuente de la subclave 1 es entonces X|OR d con el siguiente byte de la subclave 2 y asi sucesivamente. Nuevamente el proceso se repite hasta que todos los bytes seleccionados de cada subclave se han X/OR'd y deslinealizado. El valor binario resultante de cada función se añade nuevamente a la Super Clave mediante concatenación. Mientras que se prefiere la función X/OR, será evidente que se pueden aplicar otras funciones. Por ejemplo, se pueden usar funciones matemáticas de adición o resta. A medida que cada byte de la Super Clave se genera, el byte correspondiente del mensaje de texto completo luego se encripta con el byte correspondiente de la Superclave mediante la función exclusiva o función de alguna otra función matemática. Una vez que todos los bytes del mensaje de texto completo se han encriptado, termina la generación de la Super Clave. El mensaje encriptado puede luego descifrarse aplicando el inverso de la función de encriptado al mismo y la Super Clave . Para ilustrar adicionalmente la generación de la Super Clave de las subclaves, se deja Sa)j denotar el byte j de la "subclave" i. Se deja l(i> denotar la longitud de la subclave i. Por ejemplo, podríamos tener la> = 13, 1() . ) 17, y asi sucesivamente. Crear de la "subclave" i la secuencia sin fin de bytes "-50 r >l r 2 f . . . r o 1(1) r ü0 / ¿>1 · · · Se deja que Sa)j denote el byte j de la secuencia anterior, si j es cualquier número 0 natural a 00; el valor más bajo de j en el subscripto de S(1)¿ es Rmódulo l > en donde R es un número aleatorio. Luego, el byte j de la "Super Clave", llamarlo Z-¡, se define por ¾ = Swi + S(2!d * ... + Sín>-i Aquí, "+" denota la operación XOR. El primer byte de la Super Clave es: Zi + ... + Sfe iínJ En donde Rmod Iw; regresa un entero en la escala 0,1,2,..., (la> - 1) La "SuperClave" tiene un valor j que varia de 0 a ( (l > x 1(2> x 1'3) .. , l!n))-l) . Se deja P0, Pi, 2, P3... , sean los bytes del texto sencillo, y C0,Ci..., los bytes del texto de cifra, en orden. Asimismo, ??,??..., denota los bytes de la "Super Clave" (computado como ya se describió arriba) . Definimos el texto de cifra por C¿ := Pi x o S[ZÍ]. El texto de cifra C se forma concatenando los bytes C0,Ci.., y luego C se regresa como el resultado del proceso de encripción. El descifrado trabajo en reversa en la forma evidente. Para encriptar un texto completo de L-byte, se genera una Super Clave de L-byte y el contador T de número grande se usa para contar el número de bytes en el texto completo. La salida es un texto de cifra de L-byte. Para descifrar el texto de cifra, el mismo contador T de número grande se usa y la salida es el texto completo de L-byte. A fin de reducir la linealidad del texto de cifra usando el presente método, se puede aplicar un paso adicional a la Super Clave antes de que se encripte el mensaje de texto completo. En la modalidad preferida, una cifra de substitución se aplica a la Super Clave, y la sarta resultante se usa luego para encriptar el mensaje de texto completo. Por ejemplo, una disposición de 256 bytes únicos se crea, de 1 a 256 ordenados aleatoriamente. El primer byte en la super clave luego se substituyó para el mismo el valor del byte x+l° en la Super Clave, en donde x es el primer valor en la disposición de 256 bytes. El segundo byte en la Super Clave luego se substituyó par el mismo el valor del y+2° byte en la Super Clave, en donde y es el segundo valor en la disposición de 256 bytes, y asi sucesivamente. La disposición de 256 bytes se puede formar de una de las subclaves, taponando los bytes de una subclase hacia la disposición en tanto que no repiten una entrada previa en la disposición. La linealidad del texto de cifra se puede reducir aplicando también la cifra de substitución al mensaje encriptado (texto de cifra) , sin embargo, es más efectivo aplicar una cifra de substitución a la Super Clave antes de encriptar. Otras utilidades además de una cifra de substitución se pueden usar para romper la linealidad, tal como utilidades de función no lineal invertible (INLF) disponibles de SANDIA labs. Estos son útiles para proporcionar protección contra el ataque Berlekamp-Masse . Mientras que preferentemente la sarta no repetitiva aleatoria que forma cada subclave se genera como as describe arriba, el método también trabajará si la sarta no repetitiva de cada subclase se genera simplemente por un generador de número aleatorio para formar cada subclase, en tanto que la longitud resultante total de la Super clave es suficientemente grande de modo que la Super Clave resultante es cuando menos el doble del tamaño del dato que se va a encriptar. El método anterior se puede usar para producir un sistema de seguridad personal mediante el que la clave se usa para encriptar archivos personales que el usuario desea asegurar. En ese caso ningún método de distribución de la clave se requerirá. A medida que cada archivo se encripta un numero archivo denominado {OLDFILENAKE} . {OFFSET} .wn. El 0LDFI1ENAME incluye la extensión para permitir el descifrado sencillo y mantener el mismo formato de archivo para funcionalidad. A medida que cada archivo se encripta, se descifra inmediatamente y se compara con el original y luego ambas la copia de prueba y el archivo original se omiten usando un proceso de omisión de barrido limpio (archivo completo escrito nuevamente como 0 y luego como 1 y luego se omite] . Un formato de archivo clave preferido se define como sigue: typedef struct wndeyfiletype { char campo [2] ; //debe ser WN para identificar formato de archivo versión larga; // número de versión de tipo de archivo para permitir cambios NÚMEROGRANDE desviado; // la desviación es un número grande almacenado como un //sarta de dígitos decimales delineados por "rrfs numsk largo; // el número de subclaves sklen [musk] largo; // las longitudes de subclave individuales char ski [sklen [1] ] ; // la Ia subclave char ski [sklen [2] ] ; // la 2a subclave char ski [sklen [3] ] ; // la 3a subclave char sknumsk [sklen [numsk] ] ; // la subclave numsk char substitu [256] ; // la clave de cifra de substitución } WNKEYFILE; El formato de archivo de clave anterior es convencional. El único valor diferente es la desviación que se almacena en una sarta de dígitos decimales que están delineados por "'s. Un ejemplo de este sería "987654321", esto permite que valores que varían hasta 1000 dígitos de largo que impide el nuevo uso de secciones de la corriente de clave si la desviación se implementa apropiadamente. La presente invención se describe arriba como un método implementado en computadora, por ejemplo, para oncriptar y descifrar comunicaciones entre computadoras 14 y 16 a través de la red 12. También se puede modalizar como un aparato de hardware de computadora, código de software de computadora o una combinación de los mismos. La invención también se puede modalizar como un medio de almacenamiento legible por computadora que modaliza código para implementar la invención. Este medio de a macenamiento puede ser magnético u óptico, disco duro o suave, CD-ROM, firmware xx otro medio de almacenamiento. La invención también se puede modalizar en una señal portadora modulada legible por computadora. Como será evidente a aquellos expertos en el ramo en la luz de la exposición anterior, son posibles muchas alteraciones y modificaciones en la práctica de esta invención sin abandonar el espíritu o alcance de la misma. Consecuentemente, el alcance de la invención se debe considerar de conformidad con la substancia definida por las siguientes reivindicaciones.

Claims (1)

18 REIVINDICACIONES 1. - Un método para generar una cifra de corriente que tiene x bytes de longitud,. el método comprendiendo los pasos de: (i) seleccionar un número n que representa un número de subclases, y n números primarios únicos mn cada uno representando una longitud de subclave no repetitiva única de mn bytes; (ii) generar n números aleatorios únicos, cada uno teniendo longitud no repetitiva de mn bytes; (iii) generar un número R aleatorio n+l°; (iv) para cada byte cuya posición en dicho n número aleatorio es p, en donde p= Modmn(R), aplicando consecutivamente una función a cada p byte de cada uno de los n números aleatorios para generar un valor; (v) aumentar el valor de p por 1; y (vi) repetir el paso (iv) y (v) y concatenar cada valor producido en el paso (iv) al valor previo producido en el paso (iv) hasta que la cifra de corriente de x bytes en longitud se ha producido. 2. - El método de conformidad con la reivindicación 1, en donde la longitud mn seleccionada de cada subclave es un número primario mayor de 10. 3. - El método de conformidad con la reivindicación 1, en donde la función aplicada consecutiva 19 a* cada uno de los p bytes de los n números aleatorios es la función exclusiva-o, que se aplica obteniendo el resultado de aplicar la función exclusiva-o inicialmente al n 6y el n+l° par de p bytes, en donde n=l y luego aumentar consecutivamente n por 1 y aplicar la función exclusiva-o al resultado del siguiente byte p. 4. - El método de conformidad con la reivindicación 1, que comprende el paso adicional de aplicar una función de deslinealización a la cifra de corriente. 5. - El método de conformidad con la reivindicación 4, en donde la función de deslinealización es una cifra de substitución. 6. - El método de conformidad con la reivindicación 1, en donde cada uno de los n números aleatorios se generan por: (i) generando n + 2° número aleatorio que no es un cuadrado perfecto; (ii) calculando la raiz cuadrada del n + 2o número aleatorio; (iii) generando un n + 3o número aleatorio; (iv) comenzando con un dígito cuya posición en el número aleatorio n + 2o se calcula basado en el número aleatorio n + 3°, tomando sartas finitas de dígitos en secuencia y convirtiendo cada sarta finita en un byte; 20 (v) concatenar cada byte en secuencia hasta que se alcanza la longitud mn seleccionada de cada uno de los n números aleatorios. 7. - El método, de conformidad con la reivindicación 6 en donde las sartas finitas de dígitos son de cuando menos 4 dígitos de largo. 8. - El método de conformidad con la reivindicación ? , en donde la sarta finita se convierte en un byte aplicando una función mod. 9.- El método de conformidad con la reivindicación 8r en donde la sarta finita se convierte en un byte aplicando una función mod 256. 10.- Un producto de programa de computadora para generar una cifra de corriente que tiene x bytes de longitud, el producto de programa de computadora comprendiendo un medio utilizable por computadora que tiene medios de código de programa legible por computadora modalizados en el medio para: (i) generar n números aleatorios únicos, cada uno teniendo una longitud no repetitiva de mn bytes en donde mn es un número primario; (ii) generar un n+l° numero aleatorio R; (iii) para cada byte cuya posición en el n número aleatorio es p, en donde p= Modmn(R), aplicando consecutivamente una función a cada p byte de cada uno de 21 los n números aleatorios para generar un valor; (iv) incrementar el valor de p por 1; y (v) repetir el pasos (iii) y (iv) y concatenar cada valor producido en el paso (iii) al valor previo producido en el paso (iii) hasta que la cifra de corriente de x bytes de longitud se ha producido. 11. - El producto de programa de computadora de conformidad con la reivindicación 11, en donde la longitud mn seleccionada de cada subclave es un número primario mayor de 10. 12. - El producto de programa de computadora de conformidad con la reivindicación 10 , en donde la función consecutivamente aplicada a cada uno de los p bytes de los n números aleatorios es la función exclusiva-o, que se aplica consecutivamente obteniendo el resultado de aplicar la función exclusiva-o al par n y n+l° de n bytes en donde n=l y luego aumentar consecutivamente n por 1 y aplicar la función exclusiva-o al resultado del siguiente ? byte. 13. - El producto de programa de computadora de conformidad con la reivindicación 10, en donde el medio utilizable por computadora tiene un medio de código de programa legible por computadora modalizado en el medio para el paso adicional de aplicar una función de deslinealización a la cifra de corriente. 14.- El producto de programa de computadora de 22 conformidad con la reivindicación 13, en donde la función de deslinealización es una cifra de substitución. 15. - El producto de programa de computadora de onformidad con la reivindicación 10, en donde cada uno de los n números aleatorios se genera: (i) generando un número aleatorio n + 2 ° que no es un cuadrado perfecto; (ii) calculando la raiz cuadrada del n + 2a número aleatorio; (iii) generando un n + 3o número aleatorio, comenzando con un dígito cuya posición en el n + 2 ° número aleatorio se calcula basado en el n + 3o número aleatorio, tomando sartas finitas de dígitos en secuencia y convírtíendo cada sarta finita en un byte generado, (iv) concatenando cada byte generado en secuencia hasta que se ha alcanzado la longitud mn seleccionada de cada uno de los n números aleatorios . 16. - El producto de programa de computadora de conformidad con la reivindicación 15, en donde las sartas finitas de dígitos son de cuando menos 4 dígitos de largo. 17. - El producto de programa de computadora de conformidad con la reivindicación 15, en donde la sarta finita se convierte en un byte aplicando una función mod. 18. - El producto de programa de computadora de conformidad con la reivindicación 17, en donde la sarta 23 finita se convierte en un byte aplicando una función mod
MXPA05005358A 2002-11-20 2003-10-06 Metodo para generar una cifra de corriente usando multiples claves. MXPA05005358A (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
PCT/CA2003/001538 WO2004047361A1 (en) 2002-11-20 2003-10-06 Method of generating a stream cipher using multiple keys

Publications (1)

Publication Number Publication Date
MXPA05005358A true MXPA05005358A (es) 2005-08-03

Family

ID=32297785

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA05005358A MXPA05005358A (es) 2002-11-20 2003-10-06 Metodo para generar una cifra de corriente usando multiples claves.

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) BRPI0316473B1 (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 (24)

* 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
CA2570340A1 (en) * 2004-06-14 2005-12-29 The University Of North Carolina At Greensboro Systems and methods for digital content security
CN101479984B (zh) * 2006-04-25 2011-06-08 斯蒂芬·L.·博伦 用于身份管理、验证服务器、数据安全和防止中间人攻击的动态分发密钥系统和方法
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
WO2012025988A1 (ja) * 2010-08-24 2012-03-01 三菱電機株式会社 暗号化装置、暗号化システム、暗号化方法及び暗号化プログラム
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 河南思维自动化设备股份有限公司 一种信息加密和解密的方法
CN108885576B (zh) * 2016-01-28 2022-07-08 罗之落有限责任公司 从数据中清除信息
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
US11943336B2 (en) 2021-11-22 2024-03-26 Theon Technology Llc Use of gradient decent function in cryptography
US11791988B2 (en) 2021-11-22 2023-10-17 Theon Technology Llc Use of random entropy in cryptography
US11902420B2 (en) * 2021-11-23 2024-02-13 Theon Technology Llc Partial cryptographic key transport using one-time pad encryption
US20240069889A1 (en) * 2022-08-25 2024-02-29 National Technology & Engineering Solutions Of Sandia, Llc Systems and methods for automatically updating system firmware

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 株式会社東芝 乱数生成装置及び方法、鍵系列生成装置及び方法、暗号化装置及び方法、並びに復号装置及び方法
KR19990082665A (ko) * 1996-02-21 1999-11-25 오오노 도시오 공통키 통신방법
US5666414A (en) * 1996-03-21 1997-09-09 Micali; Silvio Guaranteed partial key-escrow
WO1998007251A1 (en) * 1996-08-16 1998-02-19 Bell Communications Research, Inc. Improved cryptographically secure pseudo-random bit generator for fast and secure encryption
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
EP1304829B1 (en) * 2001-10-19 2007-12-05 Matsushita Electric Industrial 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
DE60315700D1 (de) 2007-09-27
ES2291675T3 (es) 2008-03-01
CA2505338C (en) 2012-09-04
US7190791B2 (en) 2007-03-13
BR0316473A (pt) 2005-10-11
DE60315700T2 (de) 2008-06-05
WO2004047361A1 (en) 2004-06-03
JP2006506668A (ja) 2006-02-23
CN100568802C (zh) 2009-12-09
BRPI0316473B1 (pt) 2018-03-13
AU2003273688B2 (en) 2009-06-25
KR20050086746A (ko) 2005-08-30
US20040096056A1 (en) 2004-05-20
AU2003273688A1 (en) 2004-06-15
KR100994841B1 (ko) 2010-11-16
EP1566009A1 (en) 2005-08-24
CA2505338A1 (en) 2004-06-03
ATE370569T1 (de) 2007-09-15
CA2414261A1 (en) 2004-05-20
EP1566009B1 (en) 2007-08-15
JP4608319B2 (ja) 2011-01-12
CN1714531A (zh) 2005-12-28

Similar Documents

Publication Publication Date Title
MXPA05005358A (es) Metodo para generar una cifra de corriente usando multiples claves.
JP3339688B2 (ja) 非決定論的ミクスチャー発生器ストリーム暗号化システム
US6069954A (en) Cryptographic data integrity with serial bit processing and pseudo-random generators
EP0839418B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
US7451310B2 (en) Parallelizable authentication tree for random access storage
US20030056118A1 (en) Method for encryption in an un-trusted environment
EP1161811B1 (en) Method and apparatus for encrypting and decrypting data
JPH0863097A (ja) データを暗号化するための対称暗号化方法およびシステム
WO2005076521A1 (en) Method of generating a stream cipher using multiple keys
US20110182419A1 (en) Encryption algorithm with randomized buffer
JP2003535378A (ja) ビット単位の論理演算を使用した並列モジュロ演算
US20010033654A1 (en) W-EC1 encryption and decryption method and system
Spies Feistel finite set encryption mode
JP2003535363A (ja) 複数の送信攻撃から暗号システムを保護する方法
AU5361099A (en) Efficient block cipher method
JP2003535500A (ja) 暗号化されたメッセージの妥当性を確認する方法
JP2003535499A (ja) メッセージの終わりのマーカ
Salam et al. ShiftMod cipher: A symmetrical cryptosystem scheme
JPH1117673A (ja) 共通鍵暗号通信方法及びその通信ネットワーク
CN112668042A (zh) 一种文件加密方法
KR101076747B1 (ko) 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치
JP5293612B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法およびプログラム
Padhi et al. Modified version of XTS (XOR-Encrypt-XOR with Ciphertext Stealing) using tweakable enciphering scheme
Abdulhamid et al. Comparative Study of Cryptographic Algorithms.
EP3285429A1 (en) Method for securely transmitting digital data

Legal Events

Date Code Title Description
FG Grant or registration