ES2291864T3 - Procedimiento y sistema de encriptacion. - Google Patents
Procedimiento y sistema de encriptacion. Download PDFInfo
- Publication number
- ES2291864T3 ES2291864T3 ES04723233T ES04723233T ES2291864T3 ES 2291864 T3 ES2291864 T3 ES 2291864T3 ES 04723233 T ES04723233 T ES 04723233T ES 04723233 T ES04723233 T ES 04723233T ES 2291864 T3 ES2291864 T3 ES 2291864T3
- Authority
- ES
- Spain
- Prior art keywords
- alphabet
- symbol
- stage
- message
- mask
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 230000000977 initiatory effect Effects 0.000 claims abstract description 46
- 238000011282 treatment Methods 0.000 claims description 53
- 238000004422 calculation algorithm Methods 0.000 claims description 44
- 238000004364 calculation method Methods 0.000 claims description 23
- 239000013256 coordination polymer Substances 0.000 claims description 10
- 238000000605 extraction Methods 0.000 claims description 8
- 238000012986 modification Methods 0.000 claims description 4
- 230000004048 modification Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 3
- 230000000295 complement effect Effects 0.000 claims 1
- 238000007792 addition Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013478 data encryption standard Methods 0.000 description 4
- 230000003071 parasitic effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 244000257039 Duranta repens Species 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
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/36—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with means for detecting characters not meant for transmission
-
- 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/34—Bits, or blocks of bits, of the telegraphic message being interchanged in time
-
- 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/04—Masking or blinding
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Radar Systems Or Details Thereof (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
- Selective Calling Equipment (AREA)
- Circuits Of Receivers In General (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Procedimiento para la encriptación y la desencriptación de una información (I); estando representada dicha información (I) por una serie de símbolos (S); dichos símbolos (S) se toman en un conjunto de símbolos llamado en lo sucesivo el alfabeto; dicho procedimiento se caracteriza por que emplea un generador pseudoaleatorio (GA) que suministra una secuencia de valores, denominada en lo sucesivo secuencia aleatoria (SA), los valores que forman dicha secuencia aleatoria (SA) están incluidos en un conjunto, llamado en lo sucesivo el espacio de valores aleatorios; dicho generador pseudoaleatorio (GA) puede iniciarse, antes de usar y proporcionar dicha secuencia aleatoria (SA), por medio de una serie de números, en lo sucesivo denominada clave de iniciación (CI); dicha clave de iniciación (CI) determina la secuencia aleatoria (SA) que proporcionará dicho generador pseudoaleatorio (GA), de manera que tras una posterior iniciación utilizando la misma clave de iniciación, la secuencia de valores provistos será la misma que después de la primera iniciación.
Description
Procedimiento y sistema de encriptación.
La protección de las comunicaciones por vía
electrónica toma cada vez más importancia con el desarrollo de la
red Internet y sus aplicaciones. Las necesidades de seguridad
superan en buena medida el marco de las comunicaciones
profesionales entre las empresas y sus clientes. Más generalmente,
son todas las comunicaciones por correo electrónico, incluidas las
comunicaciones al público en general, las que deberían estar
protegidas contra la lectura, y lo que es más grave, contra una
posible modificación por parte de un actor no autorizado.
Se encuentran disponibles numerosas técnicas de
encriptación que permiten obtener un texto encriptado de la misma
longitud que el texto en claro y en el que los 256 bytes posibles
son equiprobables, algo que los criptólogos suelen considerar una
condición necesaria. Estas técnicas pueden clasificarse en dos
grandes familias: los algoritmos de bloques y los algoritmos de
máscara.
Los algoritmos de bloques cortan el texto en
bloques de longitud fija; la encriptación o la desencriptación se
realizan bloque por bloque y tienen como resultado un bloque de la
misma longitud que el bloque que se había proporcionado. Es lo que
ocurre con la encriptación mediante el sistema DES - Data Encryption
Standard -, que utiliza bloques de 8 bytes, admitidos como estándar
en Estados Unidos en 1976, y que desde entonces se han convertido
en estándar en todo el mundo, o el AES - Advanced Encryption
Standard -, que utiliza bloques de 16 bytes, seleccionado en 2000
futuro nuevo estándar por los organismos oficiales americanos.
Los algoritmos de máscara consisten en generar
una máscara de la misma longitud que el texto que hay que encriptar
y aplicar un XOR entre el texto y la máscara. La desencriptación se
realiza aplicando por segunda vez un XOR con la misma máscara. En
este punto y en lo sucesivo, XOR designa la operación "O
EXCLUSIVO, bit a bit". Recordemos, en relación con un bit, que
aplicar un XOR con un bit 0 conserva el bit inicial y aplicar un XOR
con un bit 1 devuelve el bit inicial. La máscara se obtiene, por
ejemplo, mediante un generador pseudoaleatorio inicializado de la
misma forma desde ambos lados. La codificación DES en modo OFB,
estandarizada desde 1980, vuelve a utilizar un generador
pseudoaleatorio particular que utiliza el algoritmo de encriptación
DES.
Todos los algoritmos proporcionan textos
encriptados en los que todos los bytes son equiprobables.
Por desgracia, estos algoritmos no pueden
utilizarse directamente para encriptar el correo electrónico. Así,
los diversos servidores y otros dispositivos de tratamiento por los
que circulan los correos electrónicos en Internet consideran
ciertos bytes caracteres de control. Estos símbolos pueden provocar
comportamientos parásitos, como, por ejemplo, el añadido
sistemático de un byte x0D - retorno de carro - cuando pase un byte
x0A - a la línea - no acompañado por su x0D retorno de carro, o que
no se tenga en cuenta la serie del mensaje cuando pase un byte x00
que se considera un final de mensaje. N.B.: en este punto y en lo
sucesivo, se denomina xAB al byte que contiene el número que se
escribe AB en codificación hexadecimal. Estas perturbaciones hacen
que el mensaje sea ilegible y que sea imposible desencriptarlo
cuando llega.
Para remediar este inconveniente, algunos
sistemas de encriptación del correo electrónico agrupan los bits
por paquetes de 6, cada uno de estos paquetes está representado por
un byte diferente de un carácter de control. En consecuencia, se
transmiten 8 bits por 6 bits útiles y se aumenta un tercio el
volumen de datos a transmitir.
Puede emplearse otra solución utilizando la
codificación denominada ASCII de 7 bits, en la que los símbolos que
no tienen código en 7 bits - letras acentuadas, caracteres
especiales... - se vuelven a codificar en dos símbolos de 7 bits.
La transmisión se realiza en bytes (8 bits), cuyo bit de mayor peso
está en 0. Si se utiliza un sistema de encriptación de máscara XOR
tal y como se ha descrito anteriormente, sólo se utilizan 7 bits de
la máscara y no se modifica el bit de mayor peso que, después de la
aplicación del XOR, permanece a 0. Cuando el byte así obtenido toma
un valor no deseable (x00, x0D, x0A...), basta con forzar
artificialmente a 1 su bit de mayor peso, lo que lleva a añadir 128
a su valor, antes de enviarlo a la red. La operación de
desencriptación es similar a la de encriptación: se aplica la misma
máscara XOR, se reconstituye el texto inicial tras haber forzado a
0 el bit de mayor peso.
Este método arregla el problema de los valores
susceptibles de provocar fenómenos parásitos no deseables. En
cambio, precisa, durante la transmisión, el uso de 8 bits por
símbolos, cuando el mensaje inicial estaba codificado en 7 bits por
símbolos, por lo que se produce un aumento de una séptima parte del
volumen de datos a transmitir. Y en ciertos casos, los caracteres,
cuyo bit de mayor peso está en 1, pueden provocar otros efectos no
deseables durante la transmisión. De forma general, el principal
inconveniente de las técnicas de este tipo es que el juego de
símbolos utilizado por el mensaje encriptado es diferente del
utilizado para el mensaje en claro, lo que puede ser insalvable
para ciertas aplicaciones. Además, el uso de estas técnicas queda
limitado al caso de la codificación ASCII de 7 bits. Estas técnicas
no son compatibles con las evoluciones, como la codificación ASCII
de 8 bits o la codificación Unicode de 16 bits para tener en cuenta
alfabetos no latinos - cirílico, griego, árabe, hebreo, japonés,
chino...
En este contexto, el documento
EP-A-1 063 811 enseña el uso de un
generador aleatorio, que proporciona una serie de bits aleatorios
cuyo número de resultados posibles es una potencia de 2. En dicho
documento se utilizan operaciones aritméticas en el cuerpo de
Galois GF (2^{b}), en particular adiciones y multiplicaciones para
generar las permutaciones apuntadas en la presente invención. Ahora
bien, el resultado de estas permutaciones es susceptible de dar
como resultado un elemento cualquiera GF (2^{b}) (eventualmente
con la excepción de cero si se parte de un elemento no nulo y si se
limita a multiplicaciones por elementos no nulos). El documento
EP-A-1 063 811 no muestra ningún
método que permita asegurar que el resultado de la encriptación se
compone únicamente por símbolos incluidos en el alfabeto de
mensaje. En concreto, dicho documento no se interesa por el número
de elementos del alfabeto de mensaje y no enseña la operación de
numeración que realiza una biyección entre el alfabeto de mensaje y
el conjunto de enteros módulo N (N no suele ser una potencia de 2).
Pues bien, según la invención, esta característica técnica permite
efectuar después una encriptación/desencriptación empleando
operaciones matemáticas en dicho conjunto de enteros módulo N y
asegurar que el resultado que se obtenga sólo esté compuesto por
símbolos pertenecientes al alfabeto de
mensaje.
mensaje.
La invención se refiere a un procedimiento para
la encriptación y la desencriptación de una información. La
información se representa con una serie de símbolos. Los símbolos se
consideran en un conjunto de símbolos, denominado en lo sucesivo el
alfabeto.
El procedimiento se caracteriza porque emplea un
generador pseudoaleatorio que proporciona una secuencia de valores
denominada en lo sucesivo secuencia aleatoria. Los valores que
forman la secuencia aleatoria se incluyen en un conjunto denominado
en lo sucesivo el espacio de valores aleatorios.
El generador pseudoaleatorio puede iniciarse,
antes del uso y suministro de la secuencia aleatoria, por medio de
una serie de números, denominada en lo sucesivo clave de
iniciación.
La clave de iniciación determina la secuencia
aleatoria que proporcionará el generador pseudoaleatorio, de manera
que, tras una iniciación posterior que utilice la misma clave de
iniciación, la secuencia de valores proporcionados sea la misma que
tras la primera iniciación. El generador pseudoaleatorio se
caracteriza también porque el conocimiento de la secuencia de
valores proporcionados no permite encontrar en un tiempo razonable
la clave de iniciación.
El procedimiento incluye tres etapas
previas.
La primera etapa previa consiste en separar en
dos partes distintas el alfabeto, una de las partes se denomina en
lo sucesivo el alfabeto de control y está compuesta por símbolos
destinados a no modificarse durante la encriptación, la otra parte
se denomina en lo sucesivo el alfabeto de mensaje y está compuesta
por símbolos destinados a modificarse eventualmente durante la
encriptación. Así, está incluido cada uno de los símbolos
utilizados para representar la información, ya sea en el alfabeto de
control, ya sea en el alfabeto de mensaje; ningún símbolo es común
a estos dos alfabetos.
La segunda etapa previa consiste en definir un
conjunto, llamado alfabeto de máscara, formado por la totalidad o
parte de elementos del espacio de valores aleatorios.
La tercera etapa previa consiste en asignar a
cada elemento del alfabeto de máscara una permutación del alfabeto
de mensaje.
Las tres etapas anteriores se realizan de una
vez antes de emplear por primera vez el procedimiento.
La aplicación del procedimiento, para realizar
la operación de encriptación de una información que haya que
encriptar, consta de las siguientes etapas preliminares:
- la etapa de considerar una serie de números,
denominada en lo sucesivo la clave primaria de encriptación,
- la etapa de crear la clave de iniciación a
partir de la totalidad o parte de la clave primaria de
encriptación,
- la etapa de inicializar el generador
pseudoaleatorio con la clave de iniciación.
El procedimiento consiste en seleccionar uno
tras otro los símbolos que componen la información que hay que
encriptar y en encriptar cada uno de los símbolos así seleccionados
aplicándoles las operaciones siguientes:
si el símbolo seleccionado pertenece al alfabeto
de control, no se modifica,
si el símbolo seleccionado pertenece al alfabeto
de mensaje, se ejecutan las etapas siguientes:
- la etapa de leer el próximo valor de la
secuencia aleatoria proporcionado por el generador
pseudoaleatorio,
- si el valor leído en la etapa anterior no es
un elemento del alfabeto de máscara, deberá reiterarse la etapa
anterior hasta que se obtenga un elemento del alfabeto de
máscara,
- el elemento del alfabeto de máscara,
determinado en la etapa anterior, se denomina en lo sucesivo el
elemento de máscara.
Las operaciones incluyen igualmente las etapas
siguientes:
- la etapa de seleccionar la permutación del
alfabeto de mensaje asignada al elemento de máscara especificado en
la etapa anterior,
- la etapa de aplicar al símbolo seleccionado la
permutación del alfabeto de mensaje seleccionada en la etapa
anterior,
- la etapa de sustituir el símbolo seleccionado
por el resultado de la permutación empleada en la etapa
anterior.
Una vez que se hayan ejecutado estas
operaciones, se pasa al símbolo siguiente de la información que
haya que encriptar, y así sucesivamente hasta que se hayan tratado
todos los símbolos de la información que haya que encriptar.
Preferentemente según la invención, la
aplicación del procedimiento, para realizar la operación de
desencriptación de una información que haya que desencriptar,
consta de las mismas etapas preliminares que la operación de
encriptación. Así, el generador pseudoaleatorio se inicializará de
la misma forma que durante la encriptación y, en consecuencia,
proporcionará la misma secuencia de valores que durante la
encriptación.
El procedimiento consiste en seleccionar uno
después de otro los símbolos que componen la información que hay
que desencriptar y en desencriptar cada uno de los símbolos así
seleccionados aplicándoles las operaciones siguientes:
si el símbolo seleccionado pertenece al alfabeto
de control, no se modifica,
si el símbolo seleccionado pertenece al alfabeto
de mensaje, se ejecutan las etapas siguientes:
- la etapa de leer el próximo valor de la
secuencia aleatoria proporcionado por el generador
pseudoaleatorio,
- si el valor leído en la etapa anterior no es
un elemento del alfabeto de máscara, deberá reiterarse la etapa
anterior hasta que se obtenga un elemento del alfabeto de
máscara.
El elemento del alfabeto de máscara, determinado
en la etapa anterior, se denomina en lo sucesivo el elemento de
máscara.
Las operaciones de desencriptación incluyen las
etapas siguientes:
- la etapa de seleccionar la permutación inversa
de la permutación del alfabeto de mensaje asignada al elemento de
máscara especificado en la etapa anterior,
- la etapa de aplicar al símbolo seleccionado la
permutación inversa seleccionada en la etapa anterior,
- la etapa de sustituir el símbolo seleccionado
por el resultado de la permutación empleada en la etapa
anterior.
Una vez que se hayan ejecutado estas
operaciones, se pasa al símbolo siguiente de la información que
haya que desencriptar, y así sucesivamente hasta que se hayan
tratado todos los símbolos de la información que haya que
desencriptar.
Preferentemente según la invención, los valores
del espacio de valores aleatorios son números, de manera que el
alfabeto de máscara está compuesto por números. El procedimiento
incluye además una operación previa de numeración del alfabeto de
mensaje. La numeración consiste en atribuir a cada símbolo del
alfabeto de mensaje, sin omisión ni repetición, un número
comprendido entre 0 y N-1, en lo sucesivo denominado
número del símbolo, donde N representa el número de elementos del
alfabeto de mensaje, de manera que para todo número comprendido
entre 0 y N-1 haya uno y sólo un símbolo del que
este número sea su número.
En el caso de esta variante de realización de la
invención, el procedimiento se caracteriza porque el resultado de
la permutación del alfabeto de mensaje asociada a un elemento de
máscara dado, para un símbolo dado perteneciente al alfabeto de
mensaje, puede calcularse ejecutando sucesivamente las etapas
siguientes:
- la etapa de determinar el número del símbolo
dado,
- la etapa de añadir el elemento de máscara dado
al número determinado en la etapa anterior,
- la etapa de calcular el resto de la división
por N del resultado de la adición efectuada en la etapa
anterior,
- la etapa de determinar el símbolo del alfabeto
de mensaje cuyo número es el número calculado en la etapa anterior,
con lo que este símbolo es el resultado que se quería calcular.
De esto se deduce que la permutación así
definida corresponde a una adición módulo N en los números de
símbolos y que el símbolo determinado en la etapa anterior es el
resultado de esta permutación aplicada al símbolo dado.
Preferentemente según la invención, los valores
del espacio de valores aleatorios son números, de manera que el
alfabeto de máscara está formado por números. El procedimiento
incluye además una operación previa de numeración del alfabeto de
mensaje. La numeración consiste en atribuir a cada símbolo del
alfabeto de mensaje, sin omisión ni repetición, un número
comprendido entre 0 y N-1, en lo sucesivo denominado
número del símbolo, donde N representa el número de elementos del
alfabeto de mensaje, de manera que para todo número comprendido
entre 0 y N-1 haya uno y sólo un símbolo del que
este número sea su número.
En el caso de esta variante de realización, el
procedimiento se caracteriza porque el resultado de la permutación
del alfabeto de mensaje asociada a un elemento de máscara dado, para
un símbolo dado perteneciente al alfabeto de mensaje, puede
calcularse ejecutando sucesivamente las etapas siguientes:
- la etapa de determinar el número del símbolo
dado,
- la etapa de sustraer el elemento de máscara
dado al número determinado en la etapa anterior,
- cuando el resultado de la sustracción
efectuada en la etapa anterior sea negativo, deberá realizarse la
etapa de añadir a este resultado tantas veces como sea necesario el
número N hasta obtener un número positivo,
- la etapa de calcular el resto de la división
por N del resultado de la etapa anterior,
- la etapa de determinar el símbolo del alfabeto
de mensaje cuyo número es el número calculado en la etapa anterior,
este símbolo es así el resultado que se quiere calcular.
De esto se deduce que la permutación así
definida corresponde a una sustracción módulo N en los números de
símbolos y que el símbolo determinado en la etapa anterior es el
resultado de esta permutación aplicada al símbolo dado.
Preferentemente según la invención, los valores
del espacio de valores aleatorios son números, de manera que el
alfabeto de máscara está formado por números. El procedimiento
incluye además una operación previa de numeración del alfabeto de
mensaje. La numeración consiste en atribuir a cada símbolo del
alfabeto de mensaje, sin omisión ni repetición, un número
comprendido entre 0 y N-1, en lo sucesivo denominado
número del símbolo, donde N representa el número de elementos del
alfabeto de mensaje, de manera que para todo número comprendido
entre 0 y N-1 haya uno y sólo un símbolo del que
este número sea su número.
En el caso de esta variante de realización, el
alfabeto de máscara sólo incluye números no nulos y primos de N. El
procedimiento se caracteriza porque el resultado de la permutación
del alfabeto de mensaje asociada a un elemento de máscara dado,
para un símbolo dado perteneciente al alfabeto de mensaje, puede
calcularse ejecutando sucesivamente las etapas siguientes:
- la etapa de determinar el número del símbolo
dado,
- la etapa de multiplicar por el elemento de
máscara dado el número determinado en la etapa anterior,
- la etapa de calcular el resto de la división
por N del resultado de la multiplicación efectuada en la etapa
anterior,
- la etapa de determinar el símbolo del alfabeto
de mensaje cuyo número es el número calculado en la etapa
anterior.
Así, este símbolo es el resultado que se deseaba
calcular.
De esto se deduce que la permutación así
definida corresponde a una multiplicación módulo N en los números
de símbolos y que el símbolo determinado en la etapa anterior es el
resultado de esta permutación aplicada al símbolo dado.
Preferentemente según la invención, los valores
del espacio de valores aleatorios son números, de manera que el
alfabeto de máscara está formado por números. El procedimiento
incluye además una operación previa de numeración del alfabeto de
mensaje. La numeración consiste en atribuir a cada símbolo del
alfabeto de mensaje, sin omisión ni repetición, un número
comprendido entre 0 y N-1, en lo sucesivo denominado
número del símbolo, donde N representa el número de elementos del
alfabeto de mensaje, de manera que para todo número comprendido
entre 0 y N-1, haya uno y sólo un símbolo del que
este número sea su número.
En el caso de esta variante de realización, el
alfabeto de máscara sólo incluye números no nulos y primos de N. El
procedimiento se caracteriza porque el resultado de la permutación
del alfabeto de mensaje asociada a un elemento de máscara dado,
para un símbolo dado perteneciente al alfabeto de mensaje, puede
calcularse ejecutando sucesivamente las etapas siguientes:
- la etapa de determinar el número del símbolo
dado,
- la etapa de determinar un número que,
multiplicado por el elemento de máscara dado, difiera del número
determinado en la etapa anterior, en un múltiplo entero de N,
- la etapa de calcular el resto de la división
por N del número determinado en la etapa anterior,
- la etapa de determinar el símbolo del alfabeto
de mensaje cuyo número es el número calculado en la etapa
anterior.
Así, este símbolo es el resultado que se deseaba
calcular.
De esto se deduce que la permutación así
definida corresponde a una división módulo N en los números de
símbolos y que el símbolo determinado en la etapa anterior es el
resultado de esta permutación aplicada al símbolo dado.
Preferentemente según la invención, los valores
del espacio de valores aleatorios son números, de manera que el
alfabeto de máscara está formado por números. El procedimiento
incluye además una operación previa de numeración del alfabeto de
mensaje. La numeración consiste en atribuir a cada símbolo del
alfabeto de mensaje, sin omisión ni repetición, un número
comprendido entre 0 y N-1, en lo sucesivo denominado
número del símbolo, donde N representa el número de elementos del
alfabeto de mensaje, de manera que para todo número comprendido
entre 0 y N-1 haya uno y sólo un símbolo del que
este número sea su número.
El alfabeto de máscara sólo incluye números no
nulos y primos de Phi (N) donde Phi (N) designa el número de
enteros comprendidos entre 1 y N-1 y primos de
N.
En el caso de esta variante de realización, el
procedimiento se caracteriza porque el resultado de la permutación
del alfabeto de mensaje asociada a un elemento de máscara dado, para
un símbolo dado perteneciente al alfabeto de mensaje, puede
calcularse ejecutando sucesivamente las etapas siguientes:
- la etapa de determinar el número del símbolo
dado,
- la etapa de calcular el resto de la división
por N del resultado de la elevación del número determinado en la
etapa anterior a una potencia igual al elemento de máscara
dado,
- la etapa de determinar el símbolo del alfabeto
de mensaje cuyo número es el número calculado en la etapa
anterior.
Así, este símbolo es el resultado que se deseaba
calcular, de manera que la permutación así definida corresponda a
una exponenciación modular en los números de símbolos y que el
símbolo determinado en la etapa anterior sea el resultado de esta
permutación aplicada a dicho símbolo dado.
Preferentemente según la invención, los valores
del espacio de valores aleatorios son números, de manera que el
alfabeto de máscara está formado por números. El procedimiento
incluye además una operación previa de numeración del alfabeto de
mensaje. La numeración consiste en atribuir a cada símbolo del
alfabeto de mensaje, sin omisión ni repetición, un número
comprendido entre 0 y N-1, en lo sucesivo denominado
número del símbolo, donde N representa el número de elementos del
alfabeto de mensaje, de manera que para todo número comprendido
entre 0 y N-1 haya uno y sólo un símbolo del que
este número sea su número.
El alfabeto de máscara sólo incluye números no
nulos o primos de Phi (N) donde Phi (N) designa el número de
enteros comprendidos entre 1 y N-1 y primos de
N.
En el caso de esta variante de realización, el
procedimiento se caracteriza porque el resultado de la permutación
del alfabeto de mensaje asociada a un elemento de máscara dado, para
un símbolo dado perteneciente al alfabeto de mensaje, puede
calcularse ejecutando sucesivamente las etapas siguientes:
- la etapa de determinar el número del símbolo
dado,
- la etapa de determinar un número positivo, que
elevado a una potencia igual al elemento de máscara dado, difiera
del número determinado en la etapa anterior en un múltiplo entero
de N,
- la etapa de determinar el resto de la división
por N del número determinado en la etapa anterior,
- la etapa de determinar el símbolo del alfabeto
de mensaje cuyo número es el número calculado en la etapa
anterior.
Así, este símbolo es el resultado que se deseaba
calcular. De esto se deduce que la permutación así definida
corresponde a la extracción de una raíz en aritmética modular en los
números de símbolos y que el símbolo determinado en la etapa
anterior es el resultado de esta permutación aplicada al símbolo
dado.
Preferentemente según la invención, el
procedimiento incluye una operación previa que consiste en asociar
a cada elemento del alfabeto de máscara un cuádruplo de números
denominados p, q, r y s de modo que el número r y el resultado de
la expresión p.s-q.r sean números no nulos ni
múltiplos de N, donde N representa el número de elementos del
alfabeto de mensaje. El procedimiento incluye además una operación
previa de numeración del alfabeto de mensaje. La numeración
consiste en atribuir a cada símbolo del alfabeto de mensaje, sin
omisión ni repetición, un número comprendido entre 0 y
N-1, en lo sucesivo denominado número del símbolo,
de manera que para todo número comprendido entre 0 y
N-1 haya uno y sólo un símbolo del que este número
sea su número.
En el caso de esta variante de realización, el
procedimiento se caracteriza porque el resultado de la permutación
del alfabeto de mensaje asociada a un elemento de máscara dado, para
un símbolo dado perteneciente al alfabeto de mensaje, puede
calcularse ejecutando sucesivamente las etapas siguientes:
- la etapa de determinar el cuádruplo de números
p, q, r y s asociado al elemento de máscara dado,
- la etapa de determinar el número del símbolo
que hay que encriptar o desencriptar, este número se denomina en lo
sucesivo m,
- la etapa de calcular la expresión m.r +s,
- la etapa, cuando el resultado del cálculo
efectuado en la etapa anterior sea nulo o un múltiplo de N, de
calcular un número k de modo que la expresión k.r - p sea un
múltiplo de N,
- la etapa, cuando el resultado del cálculo
efectuado en la etapa anterior no sea ni cero ni un múltiplo de N,
de calcular un número positivo k de modo que la expresión k.(m.r +
s) - (m.p + q) sea un múltiplo de N,
- la etapa de calcular el resto de la división
por N del número k calculado en la etapa anterior,
- la etapa de determinar el símbolo del alfabeto
de máscara cuyo número es el número calculado en la etapa
anterior.
Este símbolo es el resultado que se deseaba
calcular. De ello se deduce que la permutación así definida
corresponde al cálculo de una función homográfica en aritmética
modular en los números de símbolos y que el símbolo determinado en
la etapa anterior es el resultado de esta permutación aplicada al
símbolo dado.
Preferentemente según la invención, el
procedimiento emplea un primer generador pseudoaleatorio que puede
iniciarse con la clave de iniciación. Los valores proporcionados por
el primer generador pseudoaleatorio se utilizan como datos de
entrada de un algoritmo de resumen cuyos resultados se utilizan para
proporcionar la secuencia aleatoria. El generador pseudoaleatorio
está formado por el primer generador pseudoaleatorio y el algoritmo
de
resumen.
resumen.
Preferentemente según la invención, el
procedimiento incluye además la etapa preliminar de crear a partir
de la totalidad o parte de la clave primaria de encriptación una
serie de números llamada en lo sucesivo clave secundaria de
encriptación. El procedimiento emplea un primer generador
pseudoaleatorio que puede inicializarse con la clave de iniciación.
Los valores proporcionados por el primer generador pseudoaleatorio
se encriptan con un primer algoritmo de encriptación que utiliza
como clave de encriptación la clave secundaria de encriptación. Los
resultados del primer algoritmo de encriptación se utilizan para
proporcionar la secuencia aleatoria.
El generador pseudoaleatorio está formado por el
primer generador pseudoaleatorio y el primer algoritmo de
encriptación.
La invención se refiere igualmente a un sistema
para la encriptación y la desencriptación de una información. La
información se representa mediante una serie de símbolos. Los
símbolos se consideran en un conjunto de símbolos, llamado en lo
sucesivo el alfabeto.
El alfabeto se divide en dos partes distintas.
Una de las partes se denomina en lo sucesivo el alfabeto de control
y está compuesta por símbolos destinados a no modificarse durante la
encriptación, la otra parte se denomina en lo sucesivo el alfabeto
de mensaje y está compuesta por símbolos destinados a modificarse
eventualmente durante la encriptación.
El sistema está destinado más particularmente a
proteger las comunicaciones entre un ordenador, en lo sucesivo
denominado el ordenador del cliente y una red formada por uno o
varios ordenadores. El sistema se intercala entre el ordenador del
cliente y la red, de manera que toda información que circule entre
el ordenador del cliente y la red y que deba encriptarse o
desencriptarse, pasa a través del sistema. El sistema incluye un
generador pseudoaleatorio que proporciona una secuencia de valores,
denominada en lo sucesivo secuencia aleatoria. Los valores que
forman dicha secuencia aleatoria se incluyen en un conjunto
denominado en lo sucesivo el espacio de valores aleatorios. Algunos
de estos valores se incluyen en un subconjunto del espacio de
valores aleatorios. Este subconjunto se denomina en lo sucesivo
alfabeto de máscara.
\newpage
El generador pseudoaleatorio puede
inicializarse, antes del uso y suministro de la secuencia aleatoria,
por medio de una serie de números, denominada en lo sucesivo clave
de iniciación. La clave de iniciación determina la secuencia
aleatoria que proporcionará el generador.
El sistema incluye además:
- dos unidades de entrada salida, una de ellas
está destinada a asegurar las comunicaciones entre el sistema y el
ordenador del cliente, la otra está destinada a asegurar las
comunicaciones entre dicho sistema y dicha red,
- primeros medios de tratamiento que permiten
tener en cuenta una serie de números, en lo sucesivo denominada la
clave primaria de encriptación, y crear la clave de iniciación a
partir de la totalidad o parte de la clave primaria de
encriptación,
- segundos medios de tratamiento que permiten
decidir si un valor perteneciente al espacio de valores aleatorios
pertenece al alfabeto de máscara,
- terceros medios de tratamiento que permiten
leer los valores sucesivos proporcionados por el generador
pseudoaleatorio hasta obtener un elemento perteneciente al alfabeto
de máscara,
- cuartos medios de tratamiento que permiten
decidir, entre los símbolos que circulan a través de dicho sistema,
cuáles son los símbolos que deben encriptarse o desencriptarse y
cuáles son los símbolos que deben transmitirse sin
modificación,
- quintos medios de tratamiento.
Estos quintos medios de tratamiento permiten,
por un lado, a partir de un elemento dado del alfabeto de máscara,
en lo sucesivo llamado el elemento de máscara, seleccionar una
permutación del alfabeto de mensaje. Esta permutación se llama en
lo sucesivo permutación asignada al elemento de máscara.
Estos quintos medios de tratamiento permiten,
por otro lado, habiéndose seleccionado así la permutación asignada
al elemento de máscara y habiéndose suministrado un elemento dado
del alfabeto de mensaje por parte de una de las dos unidades de
entrada salida, determinar el resultado de esta permutación aplicada
a dicho elemento dado proporcionado y enviar a la otra de las dos
unidades de entrada salida mencionadas el resultado así
determinado.
Preferentemente según la invención, los quintos
medios de tratamiento permiten además seleccionar la permutación
inversa de la permutación asignada a un elemento del alfabeto de
máscara.
Preferentemente según la invención, los valores
del espacio de valores aleatorios son números, los quintos medios
de tratamiento permiten además asociar un número a un símbolo del
alfabeto de mensaje, realizar una adición en aritmética modular
entre el número y un elemento del alfabeto de máscara y asociar al
resultado de esta adición un elemento del alfabeto de mensaje.
Preferentemente según la invención, los valores
del espacio de valores aleatorios son números, los quintos medios
de tratamiento permiten además asociar un número a un símbolo del
alfabeto de mensaje, realizar una sustracción en aritmética modular
entre el número y un elemento del alfabeto de máscara y asociar al
resultado de esta sustracción un elemento del alfabeto de
mensaje.
Preferentemente según la invención, los valores
del espacio de valores aleatorios son números, los quintos medios
de tratamiento permiten además asociar un número a un símbolo del
alfabeto de mensaje, realizar una multiplicación en aritmética
modular entre el número y un elemento del alfabeto de máscara y
asociar al resultado de esta multiplicación un elemento del
alfabeto de mensaje.
Preferentemente según la invención, los valores
del espacio de valores aleatorios son números, los quintos medios
de tratamiento permiten además asociar un número a un símbolo del
alfabeto de mensaje, realizar una división en aritmética modular
entre el número y un elemento del alfabeto de máscara y asociar al
resultado de esta división un elemento del alfabeto de mensaje.
Preferentemente según la invención, los valores
del espacio de valores aleatorios son números, los quintos medios
de tratamiento permiten además asociar un número a un símbolo del
alfabeto de mensaje, realizar una exponenciación en aritmética
modular del número que tenga por exponente un elemento del alfabeto
de máscara y asociar al resultado de esta exponenciación un
elemento del alfabeto de mensaje.
Preferentemente según la invención, los valores
del espacio de valores aleatorios son números, los quintos medios
de tratamiento permiten además asociar un número a un símbolo del
alfabeto de mensaje, realizar una extracción de raíz en aritmética
modular y asociar al resultado de esta extracción de raíz un
elemento del alfabeto de mensaje.
Preferentemente según la invención, el número de
símbolos que componen el alfabeto de mensaje se denomina en lo
sucesivo N, el sistema incluye además sextos medios de tratamiento
que permiten asociar a un elemento del alfabeto de máscara un
cuádruplo de números denominados p, q, r y s. Los quintos medios de
tratamiento permiten
además:
además:
- asociar a un símbolo de alfabeto de mensaje un
número comprendido entre 0 y N-1, este número se
denomina en lo sucesivo m,
- calcular la expresión m.r +s,
- determinar si la expresión m.r + s es nula o
múltiplo de N,
- calcular un número k comprendido entre 0 y
N-1 de modo que la expresión k.r - p sea un múltiplo
de N,
- calcular un número k comprendido entre 0 y
N-1 de modo que la expresión k. (m.r + s) - (m.p +
q) sea un múltiplo de N,
- asociar a un número k así calculado un
elemento del alfabeto de mensaje.
Preferentemente según la invención, el sistema
incluye un primer generador pseudoaleatorio que puede inicializarse
con la clave de inicio y medios de cálculo que permiten aplicar un
algoritmo de resumen a los valores proporcionados por el primer
generador pseudoaleatorio. Los resultados del algoritmo de resumen
se transmiten a los segundos y terceros medios de tratamiento. El
generador pseudoaleatorio está formado por el primer generador
pseudoaleatorio y medios de cálculo que permiten aplicar un
algoritmo de resumen a los valores proporcionados por el primer
generador pseudoaleatorio.
Preferentemente según la invención, el sistema
incluye un primer generador pseudoaleatorio que puede inicializarse
con la clave de iniciación. El sistema incluye además séptimos
medios de tratamiento que permiten crear a partir de la totalidad o
parte de la clave primaria de encriptación una serie de números
denominada en lo sucesivo clave secundaria de encriptación. El
procedimiento incluye además medios de cálculo que permiten aplicar
un algoritmo de encriptación, que utiliza como clave de encriptación
la clave secundaria de encriptación, el algoritmo de encriptación
se aplica a los valores proporcionados por el primer generador
pseudoaleatorio. Los resultados del algoritmo de encriptación se
transmiten a los segundos y terceros medios de tratamiento. El
generador pseudoaleatorio está formado por el primer generador
pseudoaleatorio y medios de cálculo que permiten aplicar un
algoritmo de encriptación a los valores proporcionados por el primer
generador pseudoaleatorio.
La presente invención se refiere a un sistema de
encriptación en el que el texto encriptado utiliza el mismo juego
de símbolos que el mensaje en claro, evitando los efectos parásitos
no deseables provocados por ciertos valores particulares. El texto
encriptado se creará con la misma longitud que el texto en
claro.
Antes de aplicar la invención, se separa en dos
partes el juego de símbolos utilizado.
La primera parte, llamada en lo sucesivo
alfabeto de control, se compone por caracteres de control, es decir,
símbolos tales como los saltos de línea, los retornos de carro, fin
de mensaje, y más generalmente, todos los símbolos que pueden
provocar, por parte de diversos servidores y otros dispositivos de
tratamiento mediante los que circulan los correos electrónicos en
Internet, un comportamiento distinto a la simple transmisión del
símbolo. Los caracteres de control se transmitirán en claro.
La segunda parte, llamada en lo sucesivo
alfabeto de mensaje, se compone por todos los demás símbolos. Son
símbolos que representan el mensaje propiamente dicho.
El procedimiento y el sistema de encriptación,
objetos de la presente invención, emplean un generador
pseudoaleatorio. Este generador pseudoaleatorio proporciona valores
incluidos en un conjunto de valores, en lo sucesivo denominado
espacio de valores aleatorios. La serie de valores sucesivamente
proporcionados por el generador pseudoaleatorio se denominará en lo
sucesivo secuencia aleatoria.
El generador pseudoaleatorio se inicializa por
medio de una serie de números llamada clave de iniciación. La
secuencia aleatoria proporcionada por el generador pseudoaleatorio
depende de la clave de iniciación y, tras cada iniciación
utilizando la misma clave de iniciación, se obtiene la misma
secuencia aleatoria.
Durante la aplicación del procedimiento de
encriptación y del sistema de encriptación, se utiliza una clave de
encriptación, llamada en lo sucesivo clave primaria de encriptación;
el conocimiento de esta clave primaria de encriptación debe
permitir posteriormente desencriptar el mensaje que se había
encriptado con esta clave. La clave de iniciación se determina a
partir de la clave de encriptación. El uso de la misma clave
primaria de encriptación durante la desencriptación asegura así que
la secuencia aleatoria utilizada durante la desencriptación sea la
misma que la utilizada durante la encriptación.
\newpage
Todos los elementos del espacio de valores
aleatorios no se utilizan durante la encriptación. Se definirá un
subconjunto, que incluya la totalidad o parte de los elementos del
espacio de valores aleatorios. Este subconjunto se denominará en lo
sucesivo alfabeto de máscara y sólo los elementos del alfabeto de
máscara se utilizarán durante la encriptación y la desencriptación.
A cada elemento del alfabeto de máscara se asocia una permutación
particular del alfabeto de mensaje, es decir, una aplicación
biunívoca del alfabeto de mensaje en sí mismo. Esta aplicación se
utilizará durante la encriptación, Como es biunívoca, dos símbolos
diferentes tendrán dos imágenes diferentes, que permitirán así una
desencriptación sin ambigüedad. Durante la desencriptación, se
utilizará la aplicación recíproca, es decir, la permutación inversa
de la permutación utilizada durante la encriptación.
Una realización particular de la invención
objeto de la presente patente corresponde a una elección particular
de permutaciones asociadas a los elementos del alfabeto de máscara.
En el plano matemático, una realización particular de la invención
corresponde a una aplicación del alfabeto de máscara a valores en el
conjunto de permutaciones del alfabeto de mensaje.
El número de elecciones posibles es muy elevado.
Si el alfabeto de mensaje está compuesto por N elementos, existe
factorial (N) permutaciones diferentes del alfabeto de mensaje
(donde factorial (N) representa el producto de N primos enteros).
Este número aumenta con extrema rapidez con N. Por ejemplo, para
N=128, factorial(N) es un número de 215 cifras en notación
decimal clásica.
De forma más detallada, la operación de
encriptación se realiza como sigue. Se comienza por inicializar el
generador pseudoaleatorio con la clave de iniciación. A continuación
se lee secuencialmente, símbolo por símbolo, la información que hay
que encriptar. Si el símbolo encontrado pertenece al alfabeto de
control, no se modifica. Si pertenece al alfabeto de mensaje, se
lee el elemento siguiente proporcionado por el generador
pseudoaleatorio. Si este elemento así leído no pertenece al
alfabeto de máscara, se leerá el elemento siguiente proporcionado
por el generador pseudoaleatorio y, en caso necesario, se reiterará
esta operación hasta obtener un elemento del alfabeto de máscara,
llamado en lo sucesivo elemento de máscara. Se utilizará la
permutación del alfabeto de mensaje asociada a este elemento de
máscara. Esta permutación se aplica, como aplicación del alfabeto de
mensaje a valores en sí mismo, al símbolo que hay que encriptar, el
resultado ocupará el lugar del símbolo que hay que encriptar. Se
reiteran estas operaciones para cada uno de los símbolos que
componen la información que hay que encriptar. La serie de
elementos de máscaras generadas durante estas operaciones se
denomina la máscara de encriptación.
La operación de desencriptación se realiza de
forma exactamente similar utilizando, para cada símbolo, no la
permutación asociada al elemento de máscara, sino la permutación
inversa de esta última. La reiniciación, antes de la
desencriptación, del generador pseudoaleatorio con la misma clave de
iniciación que durante la encriptación asegura que la máscara de
encriptación utilizada durante la
\hbox{desencriptación sea la
misma que la utilizada durante la encriptación.}
Ahora pongamos algunos ejemplos, a título
ilustrativo y en absoluto limitativo de las posibilidades de la
invención, de la aplicación de esta invención. El número N designa
como anteriormente el número de símbolos contenidos en el alfabeto
de mensaje, se elige, de una vez, una numeración del alfabeto de
mensaje, es decir, una función f que a un símbolo x del alfabeto de
mensaje asocie un número f(x) comprendido entre 0 y
N-1, y ello de forma biunívoca. Esta función se
llamará en lo sucesivo función de numeración. Desde un punto de
vista matemático, la función de numeración es una biyección entre el
alfabeto de mensaje y el conjunto de enteros módulo N. Se llamará
f-1 a la función inversa de la función de
numeración, es decir, la función que a un número comprendido entre
0 y N-1 asocie un símbolo x del alfabeto de mensaje
de manera que f(x) sea igual a y.
Explicitemos aquí, a título ilustrativo y en
absoluto limitativo de las posibilidades de la invención, un caso
particular de dicha función f en un ejemplo en que la codificación
de símbolos se hace en ASCII de 8 bits, es decir, en un byte,
representado con un número comprendido entre 0 y 255, y en el que
los caracteres de control son los tres bytes x00, x0A,x0D
representados por los números 0, 10 y 13. En este ejemplo, el número
N de símbolos contenidos en el alfabeto de mensaje es igual a 253.
El cálculo de la función de numeración f se efectúa como sigue.
Dado un byte que represente un elemento dado del alfabeto de
mensaje, se considera el número x comprendido entre 0 y 255 que lo
representa. Se aplican así sucesivamente las tres operaciones
siguientes, donde la función Dec es la operación consistente en
restar un entero de una unidad:
- Dec(x)
- IF x>12 THEN Dec(x)
- IF x>8 THEN Dec(x)
Tras aplicar estas tres operaciones, el número x
tiene un valor comprendido entre 0 y 252 y es el número asociado
por la función de numeración f al elemento dado del alfabeto de
mensaje.
En el presente ejemplo, los valores
proporcionados por el generador pseudoaleatorio serán números y el
alfabeto de máscara tendrá el mismo tamaño que el alfabeto de
mensaje y estará compuesto por el conjunto de números comprendido
entre 0 y 252. Para definir con precisión el sistema de encriptación
utilizado, habrá que elegir 253 permutaciones particulares del
alfabeto de máscara entre las factorial (253), que es un número de
500 cifras en notación decimal, permutaciones posibles. En
consecuencia, el número de posibilidades es enorme.
Demos ahora, a título ilustrativo y en absoluto
limitativo de las posibilidades de la invención, una elección
particular de permutación del alfabeto de mensaje. Aquí elegimos
asociar a un elemento m del alfabeto de máscara la permutación, es
decir la aplicación biunívoca, que a un número x comprendido entre 0
y 252 asocia el resto por 253 de la suma x+m. Así, las
permutaciones elegidas corresponden a adiciones en aritmética módulo
253. Las permutaciones inversas corresponden evidentemente a
sustracciones módulo 253.
De forma más detallada, el algoritmo de
encriptación consiste, una vez puesto en marcha el generador
pseudoaleatorio con la clave de iniciación, en seleccionar uno tras
otro los símbolos que componen dicha información que hay que
encriptar y en encriptar cada uno de los símbolos así seleccionados
aplicándoles las operaciones siguientes:
si dicho símbolo seleccionado pertenece al
alfabeto de control, no se modifica,
si dicho símbolo seleccionado pertenece al
alfabeto de mensaje se le aplican las operaciones (a) a (g)
siguientes:
(a) se aplica al código ASCII (números
comprendidos entre 0 y 255) de dicho símbolo seleccionado la función
de numeración f definida anteriormente, lo que proporciona un
número x comprendido entre 0 y 252,
(b) se lee el siguiente número proporcionado por
dicho generador pseudoaleatorio,
(c) si el número leído en la etapa anterior es
superior a 252, se repite la operación anterior hasta que se
obtenga un número inferior o igual a 252, que se denominará en lo
sucesivo m,
(d) se efectúa la adición y = x+ m,
(e) si y es superior a 252, se le resta
253,
(f) el número y tendrá ahora un valor
comprendido entre 0 y 252 y se le aplica la función
f-1, función inversa de la función de numeración,
que proporciona el símbolo z del alfabeto de mensaje de forma que
f(z) sea igual a y,
(g) este símbolo z remplazará a dicho símbolo
seleccionado de dicha información que hay que encriptar.
Una vez que se hayan ejecutado estas
operaciones, se pasa al símbolo siguiente de la información que hay
que encriptar, y así sucesivamente hasta que todos los símbolos de
la información que haya que encriptar se hayan tratado.
La desencriptación se realiza de manera similar
tras una nueva puesta en marcha del generador pseudoaleatorio con
la clave de iniciación; las operaciones (d) y (e) se sustituyen por
las operaciones (d') y (e') a continuación:
(d') se efectúa la sustracción y =
x-m.
(e') si es negativo, se le añade 253.
Una de las ideas originales de la invención, en
este ejemplo particular, consiste en utilizar las máscaras no con
un operador XOR, sino con una adición en el conjunto de enteros
módulo 253. Pero antes se debería haber tenido la idea de separar
el juego de caracteres en dos partes para despejar los caracteres de
control, y después la idea de restablecer, por la biyección f, el
alfabeto de mensaje en el conjunto de enteros módulo N (donde
N=253). La innovación, en esta realización particular, deriva de la
yuxtaposición de estas tres ideas. Observemos que la idea de la
adición módulo N con los elementos de una máscara se encuentra
sustancialmente en los trabajos de Vigenère, leer por ejemplo
Traicté des chiffres, ou secretes manieres d'escrire de
Blaise Vigenère, publicado en 1586, a pesar de que en el siglo XVI
no se sabía nada de aritmética modular.
El uso de una adición modular o de una
sustracción modular, detallada en este ejemplo particular, es un
caso concreto simple de realización de la invención objeto de la
presente patente. Se ha presentado aquí en aritmética modulo N con
N = 253, pero puede realizarse de forma similar para cualquier valor
razonable de N, adaptando el algoritmo de cálculo de la función de
numeración f.
La adición o la sustracción pueden sustituirse
por otras permutaciones del alfabeto de mensaje.
Se puede utilizar, por ejemplo, la
multiplicación modular. Las operaciones (d) y (e) se sustituyen en
este caso por el cálculo del producto x.m (donde se indica mediante
un punto "." la operación de multiplicación), después del
resto por N del resultado de esta multiplicación. Pero para que la
operación así realizada sea una biyección, el número m tiene que
ser primo de N. Entonces, en la etapa (c), hay que rechazar no sólo
los números superiores a N, sino también los números que no son
primos de N.
La operación recíproca de la multiplicación por
m módulo N es la división por m módulo N, que también necesita que
el número m sea primo de N. Conociendo el número x, se tratará, en
la etapa (d) de encontrar un número y tal que el producto
y.m difiera de x en un múltiplo entero de N. En la práctica, hay que
encontrar dos enteros y y z de modo que y.m+N.z = x. El
teorema de Bezout permite probar que existe una solución, para
todos los valores posibles de x, cuando m es primo de N. En la etapa
(e), se calculará el resto por N de este número y.
También puede utilizarse la exponenciación
modular, las operaciones (d) y (e) se remplazan aquí por el cálculo
del resto por N de la elevación de x a la potencia m. Esta
exponenciación modular es una biyección y admite una recíproca,
cuando el número N no tiene factores cuadrados y el exponente m es
un número no nulo primo de Phi (N), donde Phi (N) representa el
número de enteros comprendido entre 1 y N-1 y primos
de N.
La operación recíproca es la extracción de raíz
número m en aritmética módulo N, es decir, el cálculo del resto por
N de un número y que, elevado a la potencia m, módulo N,
vuelve a dar un número que difiere de x en un múltiplo entero de N.
Se puede demostrar que esta operación es equivalente a elevar x a
una potencia p, módulo N, donde p es tal que la expresión m.p - 1
sea un múltiplo entero de Phi(N). Se puede encontrar un
número p, verificando esta condición, siempre que m sea no nulo y
primo de Phi(N).
En los ejemplos anteriores, es posible encontrar
el valor del elemento de máscara m, módulo N o módulo Phi(N)
según el caso, mediante el simple dato del símbolo en claro y el
símbolo encriptado. Más precisamente, el dato del mensaje en claro
y del mensaje encriptado permite determinar la máscara, con lo que
da indicaciones muy fuertes de la secuencia aleatoria proporcionada
por el generador pseudoaleatorio. El número de elementos del
alfabeto de máscara es próximo al número de elementos del alfabeto
de mensaje.
Puede aplicarse la invención eligiendo
permutaciones más sofisticadas concebidas de forma que el
conocimiento de un símbolo en claro y encriptado no permita
determinar con precisión el elemento de máscara utilizado. Las
funciones homográficas pueden dar un ejemplo. Nos ponemos en el caso
en que el número N de elementos del alfabeto de mensaje es un
número primo y elegimos un alfabeto de máscara significativamente
más grande que el alfabeto de mensaje. Lo ideal sería que el número
de elementos del alfabeto de máscara fuera tan grande como el cubo
del número N de elementos del alfabeto de mensaje, o incluso mayor.
Entonces se elige para cada elemento del alfabeto de máscara cuatro
números denominados p, q, r y s comprendidos entre 0 y
N-1 de modo que, por un lado, el número r y, por el
otro, el resultado de la expresión p.s - q.r sean no nulos y no
múltiplos de N. Estos cuatro números son los 4 parámetros de una
función homográfica en aritmética modular, función que remplazará
la empleada en la etapa (d) de los ejemplos anteriores. Esta función
es la transposición en aritmética modular de la función que, en
aritmética clásica en los números reales se escribe como y =
(p.x + q)/(r.x + s) y tiene por grafo una hipérbole de asíntotas
paralelas a los ejes de coordenadas. En aritmética clásica, todos
los valores de y se alcanzan una y sólo una vez salvo
y = p/r (que corresponde a la ordenada de la asíntota
horizontal) y la función no se define para x = -s/r, que corresponde
a la abscisa de la asíntota vertical. Para que la función se
convierta en una biyección, será conveniente dar a la función el
valor p/r cuando la variable x valga -s/r. Para transponer el
cálculo de esta función en aritmética módulo N, se calcula en un
primer momento el denominador, es decir, la expresión r.x + s. Si el
resultado de este cálculo es nulo o es un múltiplo de N, el valor
y tomado por la función es un valor comprendido entre 0 y
N-1 de manera que la expresión r.y - p sea un
múltiplo, eventualmente nulo, de N. En el caso contrario, el valor
y tomado por la función es un valor comprendido entre 0 y
N-1 de manera que la expresión (r.x + s).y - (p.x +
q) sea un múltiplo, eventualmente nulo, de N. La función recíproca
de esta función homográfica es en sí misma una función homográfica
cuyos parámetros son fáciles de calcular.
Se pueden desarrollar procedimientos y sistema
de encriptación según la presente invención utilizando familias de
permutaciones mucho más ricas que en los ejemplos ilustrativos
presentados anteriormente. Por ejemplo, se pueden asociar a algunos
elementos del alfabeto de máscara adiciones modulares, a otros,
multiplicaciones modulares, a otros incluso, permutaciones mucho
más complejas. Cuanto más complejas sean estas permutaciones, más
difícil será la tarea de un eventual pirata que desee atacar el
sistema, pero el aumento de seguridad aportado por una complejidad
mayor de permutaciones compensará el tiempo de cálculo necesario
para la encriptación y la desencriptación de información.
La técnica de encriptación presentada
anteriormente tiene el siguiente inconveniente: el conocimiento
simultáneo del texto en claro y del texto que hay que cifrar
permite obtener indicaciones sobre la máscara. En el caso en que se
utilice una adición, una sustracción, una multiplicación o una
división en aritmética modular, basta con conocer un símbolo en
claro y el mismo símbolo encriptado para determinar inmediatamente
el elemento de máscara que ha servido para encriptar este símbolo.
Apenas es más difícil en el caso de la exponenciación modular o de
la extracción de raíz. El uso de funciones más sofisticadas como la
función holográfica, no permiten determinar de forma precisa la
máscara, pero proporcionan, no obstante, indicaciones susceptibles
de ser útiles para un pirata que desee atacar el sistema. Puede ser
insalvable cuando se utiliza un generador pseudoaleatorio de baja
calidad, en el que el conocimiento de los riesgos anteriormente
extraídos es susceptible de proporcionar datos sobre los riesgos
futuros. Un ataque de este tipo se llama ataque por predicción en el
generador pseudoaleatorio. Algunos generadores pseudoaleatorios
evitan este inconveniente. Es lo que ocurre con generadores basados
en un algoritmo de cifrado por bloques utilizado en modo
retroacción de salida, denominado OFB para
(Output-feedback), tal y como se describe en la
página 216 y siguientes de la segunda edición de Criptografía
Aplicada de Bruce Schneier - Internacional Thomson Publishing
France, 1997. Lo mismo ocurre con el procedimiento descrito en la
solicitud de patente registrada en el INPI con fecha 12 de
septiembre de 2001 con el número FR0111776 y publicada el 14 de
marzo de 2003 con el número FR2829643.
Mientras que el generador pseudoaleatorio no
parece suficientemente protegido contra los ataques por predicción,
se puede introducir una etapa intermedia que consiste en efectuar
diversos tratamientos de los riesgos surgidos del generador
aleatorio con miras a obtener máscaras cuyo conocimiento no permita
obtener informaciones útiles sobre los riesgos que han permitido
generarlas. Una técnica posible es someter los riesgos surgidos del
generador aleatorio a un algoritmo de resumen de sentido único, ver
por ejemplo Criptografía Aplicada de Bruce Schneier, ya
citado, capítulos 2.3, 2.4 y 18, las huellas proporcionadas por este
resumen sirven después para generar las máscaras. Otra técnica
posible consiste en utilizar un algoritmo de encriptación que se
aplique a los riesgos surgidos del generador aleatorio y cuyos
resultados sirvan para generar las máscaras. La clave de
encriptación utilizada para esta generación de máscara podrá
calcularse a partir de la clave primaria de encriptación definida
anteriormente.
En la figura 1 se presenta el esquema general de
la invención.
En la figura 2 se ilustra el caso particular del
generador pseudoaleatorio GA compuesto por un primer generador
pseudoaleatorio y un sistema que emplea un algoritmo de resumen.
En la figura 3 se ilustra el caso particular en
que el generador pseudoaleatorio GA compuesto por un primer
generador pseudoaleatorio y un sistema que emplea un algoritmo de
encriptación.
En la figura 1 la clave primaria de encriptación
CP la utilizan los primeros medios de tratamiento TR1 para generar
la clave de iniciación CI. Esta clave de iniciación CI sirve para
iniciar el generador pseudoaleatorio GA que proporciona la
secuencia SA cuyos elementos se tendrán en cuenta a continuación
secuencialmente. Sólo los elementos de SA que pertenecen al
alfabeto de máscara se utilizarán para la encriptación y la
desencriptación. Los segundos medios de tratamiento TR2 permiten
comprobar si un elemento de SA pertenece al alfabeto de máscara, y
los terceros medios de tratamiento leen los valores sucesivos de la
secuencia aleatoria SA hasta obtener un elemento M reconocido por
TR2 como perteneciente al alfabeto de máscara. Este elemento M se
llamará máscara M y se transmitirá a los quintos medios de
tratamiento TR5.
Los símbolos S que componen la información I que
hay que encriptar o desencriptar se leen por medio de una unidad de
entrada salida UES, y se transmiten a los cuartos medios de
tratamiento TR4 que permiten decidir cuáles son los símbolos S que
hay que transmitir sin modificación y cuáles son los símbolos S que
hay que encriptar o desencriptar.
Dado un símbolo S, reconocido por TR4 para
encriptar o desencriptar, y las máscara M proporcionada por TR3,
los quintos medios de tratamiento TR5 calculan la permutación del
alfabeto de mensaje determinada por M o la inversa de esta
permutación, según se desee encriptar o desencriptar, y la aplican
al símbolo S para proporcionar como resultado un símbolo R que se
transmita por medio de una unidad de entrada salida UES y que esté
destinada a remplazar el símbolo S en la información I que haya que
encriptar o desencriptar.
En el caso en que la permutación utilizada sea
una función homográfica, se emplean sextos medios de tratamiento
TR6 para determinar los parámetros de la función homográfica
asociada a la máscara M.
En la figura 2, el generador pseudoaleatorio GA
está compuesto por un primer generador pseudoaleatorio GA1 puesto
en marcha mediante la clave de iniciación CI calculada ella misma
con medios de tratamiento TR1 a partir de la clave primaria de
encriptación CP. Los medios de cálculo H aplican un algoritmo de
resumen a los valores proporcionados por GA1, y son los resultados
de este algoritmo de resumen los que forman la secuencia aleatoria
SA. El generador pseudoaleatorio GA aparece como la reunión de Ga1 y
H.
En la figura 3, el generador pseudoaleatorio GA
está compuesto por un primer generador pseudoaleatorio GA1
inicializado con la clave de iniciación CI calculada ella misma con
medios de tratamiento TR1 a partir de la clave primaria de
encriptación CP. Los medios de cálculo K aplican un algoritmo de
encriptación a los valores proporcionados por GA1, y son los
resultados de este algoritmo de resumen los que forman la secuencia
aleatoria SA. El algoritmo de encriptación utiliza como clave de
encriptación la clave secundaria CS que se calcula a partir de la
clave primaria CP con ayuda de séptimos modos de tratamiento TR7. El
generador pseudoaleatorio GA aparece aquí como la reunión de GA1 y
K.
Claims (22)
1. Procedimiento para la encriptación y la
desencriptación de una información (I); estando representada dicha
información (I) por una serie de símbolos (S); dichos símbolos (S)
se toman en un conjunto de símbolos llamado en lo sucesivo el
alfabeto; dicho procedimiento se caracteriza porque emplea un
generador pseudoaleatorio (GA) que suministra una secuencia de
valores, denominada en lo sucesivo secuencia aleatoria (SA), los
valores que forman dicha secuencia aleatoria (SA) están incluidos
en un conjunto, llamado en lo sucesivo el espacio de valores
aleatorios;
dicho generador pseudoaleatorio (GA) puede
iniciarse, antes de usar y proporcionar dicha secuencia aleatoria
(SA), por medio de una serie de números, en lo sucesivo denominada
clave de iniciación (CI); dicha clave de iniciación (CI) determina
la secuencia aleatoria (SA) que proporcionará dicho generador
pseudoaleatorio (GA),
de manera que tras una posterior iniciación
utilizando la misma clave de iniciación, la secuencia de valores
provistos será la misma que después de la primera iniciación;
dicho generador pseudoaleatorio se
caracteriza además porque el conocimiento de dicha secuencia
de valores provistos no permite encontrar en un tiempo razonable
dicha clave de iniciación;
dicho procedimiento incluye cuatro etapas
previas:
- la etapa previa de separar en dos partes
distintas dicho alfabeto, una de dichas partes se denomina en lo
sucesivo el alfabeto de control y está compuesta por símbolos
destinados a no modificarse durante la encriptación, la otra parte
se denomina en lo sucesivo el alfabeto de mensaje y está compuesta
por símbolos destinados a modificarse eventualmente durante la
encriptación,
de manera que cada uno de los símbolos
utilizados para representar la información esté incluido, ya sea en
dicho alfabeto de control, ya sea en dicho alfabeto de mensaje, y
que ningún símbolo sea común a estos dos alfabetos,
- la etapa previa de definir un conjunto,
llamado alfabeto de máscara, formado total o parcialmente por
elementos del espacio de valores aleatorios, los valores de dicho
espacio de valores aleatorios son números, de manera que el
alfabeto de máscara está compuesto por números;
- la etapa previa de efectuar una numeración del
alfabeto de mensaje, dicha numeración consiste en atribuir a cada
símbolo del alfabeto de mensaje, sin omisión ni repetición, un
número comprendido entre 0 y N-1, en lo sucesivo
denominado número del símbolo, N representa el número de elementos
del alfabeto de mensaje, de manera que para todo número comprendido
entre 0 y N-1 haya uno y sólo un símbolo del
alfabeto de mensaje del que este número sea su número;
- la etapa previa de asignar a cada elemento de
dicho alfabeto de máscara una permutación de dicho alfabeto de
mensaje.
Las cuatro etapas previamente mencionadas se
realizan de una vez antes de la primera aplicación de dicho
procedimiento;
la aplicación de dicho procedimiento, para
realizar la operación de encriptación de una información (I) que
haya que encriptar, incluye las siguientes etapas preliminares:
- la etapa de considerar una serie de números,
denominada en lo sucesivo la clave primaria de encriptación
(CP),
- la etapa de crear dicha clave de iniciación
(CI) a partir de la totalidad o parte de dicha clave primaria de
encriptación (CP),
- la etapa de iniciar dicho generador
pseudoaleatorio (GA) con dicha clave de iniciación (CI);
dicho procedimiento consiste en seleccionar uno
tras otro los símbolos (S) que componen la información (I) que hay
que encriptar y en encriptar cada uno de los símbolos (S) así
seleccionados aplicándoles las operaciones siguientes:
si dicho símbolo (S) seleccionado pertenece al
alfabeto de control, no se modifica,
si dicho símbolo (S) seleccionado pertenece al
alfabeto de mensaje, se ejecutan las etapas siguientes:
- la etapa de leer el próximo valor de la
secuencia aleatoria (SA) proporcionada por dicho generador
pseudoaleatorio (GA),
- si el valor leído en la etapa anterior no es
un elemento de dicho alfabeto de máscara, deberá reiterarse la
etapa anterior hasta que se obtenga un elemento de dicho alfabeto de
máscara,
- el elemento de dicho alfabeto de máscara,
determinado en la etapa anterior, se denomina en lo sucesivo el
elemento de máscara (M),
- la etapa de seleccionar la permutación del
alfabeto de mensaje asignada a dicho elemento de máscara (M)
especificado en la etapa anterior,
- la etapa de aplicar a dicho símbolo (S)
seleccionado la permutación del alfabeto de mensaje seleccionado en
la etapa anterior,
- la etapa de sustituir dicho símbolo (S)
seleccionado por el resultado (R) de la permutación empleada en la
etapa anterior,
una vez que se hayan ejecutado estas
operaciones, se pasa al símbolo (S) siguiente de la información (I)
que haya que encriptar, y así sucesivamente hasta que se hayan
tratado todos los símbolos de la información (I) que haya que
encriptar.
2. Procedimiento según la reivindicación 1; la
aplicación de dicho procedimiento, para realizar la operación de
desencriptación de una información (I) que hay que desencriptar,
incluye las mismas etapas preliminares que durante la
encriptación,
de manera que el generador pseudoaleatorio se
inicie de la misma manera que durante la encriptación y proporcione
la misma secuencia de valores que durante la encriptación;
dicho procedimiento consiste en seleccionar uno
tras otro los símbolos (S) que componen la información (I) que hay
que desencriptar y en desencriptar cada uno de los símbolos (S) así
seleccionados aplicándoles las operaciones siguientes:
si dicho símbolo (S) seleccionado pertenece al
alfabeto de control, no se modifica,
si dicho símbolo (S) seleccionado pertenece al
alfabeto de mensaje, se ejecutan las etapas siguientes:
- la etapa de leer el próximo valor de la
secuencia aleatoria (SA) proporcionada por dicho generador
pseudoaleatorio (GA),
- si el valor leído en la etapa anterior no es
un elemento de dicho alfabeto de máscara, deberá reiterarse la
etapa anterior hasta que se obtenga un elemento de dicho alfabeto de
máscara,
el elemento de dicho alfabeto de máscara,
determinado en la etapa anterior, se denomina en lo sucesivo el
elemento de máscara (M),
- la etapa de seleccionar la permutación inversa
de la permutación del alfabeto de mensaje asignada a dicho elemento
de máscara (M) especificado en la etapa anterior,
- la etapa de aplicar al símbolo (S)
seleccionado la permutación inversa seleccionada en la etapa
anterior,
- la etapa de sustituir el símbolo (S)
seleccionado por el resultado (R) de la permutación empleada en la
etapa anterior,
una vez que se hayan ejecutado estas
operaciones, se pasa al símbolo (S) siguiente de la información (I)
que haya que desencriptar, y así sucesivamente hasta que se hayan
tratado todos los símbolos de la información (I) que haya que
desencriptar.
3. Procedimiento según la reivindicación 1 ó
2;
dicho procedimiento se caracteriza porque
el resultado de la permutación del alfabeto de mensaje asociada a
un elemento de máscara (M) dado, para un símbolo (S) dado que
pertenezca al alfabeto de mensaje, puede calcularse ejecutando
sucesivamente las etapas siguientes:
- la etapa de determinar el número de dicho
símbolo (S) dado,
- la etapa de añadir dicho elemento de máscara
(M) dado al número determinado en la etapa anterior,
- la etapa de calcular el resto de la división
por N del resultado de la adición efectuada en la etapa
anterior,
- la etapa de determinar el símbolo del alfabeto
de mensaje cuyo número es el número calculado en la etapa anterior,
este símbolo es así el resultado (R) que se quería calcular,
\newpage
de manera que la permutación así definida
corresponde a una adición módulo N en los números de símbolos y que
el símbolo determinado en la etapa anterior es el resultado de esta
permutación aplicada al símbolo dado.
4. Procedimiento según la reivindicación 1 ó
2;
dicho procedimiento se caracteriza porque
el resultado de la permutación del alfabeto de mensaje asociada a
un elemento de máscara (M) dado, para un símbolo (S) dado que
pertenece al alfabeto de mensaje, puede calcularse ejecutando
sucesivamente las etapas siguientes:
- la etapa de determinar el número de dicho
símbolo (S) dado,
- la etapa de sustraer dicho elemento de máscara
(M) dado al número determinado en la etapa anterior,
- cuando el resultado de la sustracción
efectuada en la etapa anterior sea negativo, deberá realizarse la
etapa de añadir a este resultado tantas veces como sea necesario el
número N hasta obtener un número positivo,
- la etapa de calcular el resto de la división
por N del resultado de la etapa anterior,
- la etapa de determinar el símbolo del alfabeto
de mensaje cuyo número es el número calculado en la etapa anterior,
este símbolo es así el resultado (R) que se quería calcular,
de manera que la permutación así definida
corresponde a una sustracción módulo N en los números de símbolos y
que el símbolo determinado en la etapa anterior es el resultado de
esta permutación aplicada al símbolo dado.
5. Procedimiento según la reivindicación 1 ó
2;
dicho alfabeto de máscara sólo incluye números
no nulos y primos de N; dicho procedimiento se caracteriza
porque el resultado de la permutación del alfabeto de mensaje
asociada a un elemento de máscara (M) dado, para un símbolo (S)
dado, que pertenece al alfabeto de mensaje, puede calcularse
\hbox{ejecutando sucesivamente las etapas
siguientes:} - la etapa de determinar el número de dicho
símbolo (S) dado,
- la etapa de multiplicar por el elemento de
máscara (M) dado el número determinado en la etapa anterior,
- la etapa de calcular el resto de la división
por N del resultado de la multiplicación efectuada en la etapa
anterior,
- la etapa de determinar el símbolo del alfabeto
de mensaje cuyo número es el número calculado en la etapa anterior,
este símbolo es así el resultado (R) que se quería calcular,
de manera que la permutación así definida
corresponde a una multiplicación módulo N en los números de símbolos
y que el símbolo determinado en la etapa anterior es el resultado de
esta permutación aplicada a dicho símbolo dado.
6. Procedimiento según la reivindicación 1 ó
2;
dicho alfabeto de máscara sólo incluye números
no nulos y primos de N; dicho procedimiento se caracteriza
porque el resultado de la permutación del alfabeto de mensaje
asociada a un elemento de máscara (M) dado, para un símbolo (S)
dado, que pertenece al alfabeto de mensaje, puede calcularse
ejecutando sucesivamente las etapas siguientes:
- la etapa de determinar el número de dicho
símbolo (S) dado,
- la etapa de determinar un número que,
multiplicado por el elemento de máscara (M) dado, difiera del número
determinado en la etapa anterior, en un múltiplo entero de N,
- la etapa de calcular el resto de la división
por N del número determinado en la etapa anterior,
- la etapa de determinar el símbolo del alfabeto
de mensaje cuyo número es el número calculado en la etapa anterior,
este símbolo es así el resultado (R) que se quería calcular,
de manera que la permutación así definida
corresponde a una división módulo N en los números de símbolos y
que el símbolo determinado en la etapa anterior es el resultado de
esta permutación aplicada a dicho símbolo dado.
7. Procedimiento según la reivindicación 1 ó
2;
dicho alfabeto de máscara sólo incluye números
no nulos y primos de Phi(N) donde Phi(N) designa el
número de enteros comprendido entre 1 y N-1 y
primos de N; dicho procedimiento se caracteriza porque el
resultado de la permutación del alfabeto de mensaje asociada a un
elemento de máscara (M) dado, para un símbolo (S) dado, que
pertenece al alfabeto de mensaje, puede calcularse ejecutando
sucesivamente las etapas siguientes:
- la etapa de determinar el número de dicho
símbolo (S) dado,
- la etapa de calcular el resto de la división
por N del resultado de la elevación del número determinado en la
etapa anterior a una potencia igual al elemento de máscara (M)
dado,
- la etapa de determinar el símbolo del alfabeto
de mensaje cuyo número es el número calculado en la etapa anterior,
este símbolo es así el resultado (R) que se quería calcular,
de manera que la permutación así definida
corresponde a una exponenciación modular en los números de símbolos
y que el símbolo determinado en la etapa anterior es el resultado
de esta permutación aplicada a dicho símbolo dado.
8. Procedimiento según la reivindicación 1 ó
2;
dicho alfabeto de máscara sólo incluye números
no nulos y primos de Phi(N) donde Phi(N) designa el
número de enteros comprendido entre 1 y N-1 y
primos de N; dicho procedimiento se caracteriza porque el
resultado de la permutación del alfabeto de mensaje asociada a un
elemento de máscara (M) dado, para un símbolo (S) dado, que
pertenece al alfabeto de mensaje, puede calcularse ejecutando
sucesivamente las etapas siguientes:
- la etapa de determinar el número de dicho
símbolo (S) dado,
- la etapa de determinar un número positivo, que
elevado a una potencia igual al elemento de máscara (M) dado,
difiera del número determinado en la etapa anterior, en un múltiplo
entero de N,
- la etapa de determinar el resto de la división
por N del número determinado en la etapa anterior.
- la etapa de determinar el símbolo del alfabeto
de mensaje cuyo número es el número calculado en la etapa anterior,
este símbolo es así el resultado (R) que se quería calcular,
de manera que la permutación así definida
corresponde a la extracción de una raíz en aritmética modular en los
números de símbolos y que el símbolo determinado en la etapa
anterior es el resultado de esta permutación aplicada a dicho
símbolo dado.
9. Procedimiento según la reivindicación 1 ó 2;
dicho procedimiento incluye una operación previa complementaria que
consiste en asociar a cada elemento del alfabeto de máscara un
cuádruplo de números denominados p, q, r y s de manera que el
número r y el resultado de la expresión p.s-q.r sea
números no nulos y no múltiplos de N,
dicho procedimiento se caracteriza porque
el resultado de la permutación del alfabeto de mensaje asociada a
un elemento de máscara (M) dado, para un símbolo (S) dado, que
pertenece al alfabeto de mensaje, puede calcularse ejecutando
sucesivamente las etapas siguientes:
- la etapa de determinar el cuádruplo de números
p, q, r y s asociado al elemento de máscara (M) dado,
- la etapa de determinar el número del símbolo
(S) que hay que encriptar o desencriptar, este número se denomina en
lo sucesivo m,
- la etapa de calcular la expresión m.r +s,
- la etapa, cuando el resultado del cálculo
efectuado en la etapa anterior sea nulo o un múltiplo de N, de
calcular un número k de modo que la expresión k.r - p sea un
múltiplo de N,
- la etapa, cuando el resultado del cálculo
efectuado en la etapa anterior no sea ni cero ni un múltiplo de N,
de calcular un número positivo k de modo que la expresión k.(m.r +
s) - (m.p + q) sea un múltiplo de N,
- la etapa de calcular el resto de la división
por N del número k calculado en la etapa anterior,
- la etapa de determinar el símbolo del alfabeto
de máscara cuyo número es el número calculado en la etapa anterior,
este símbolo es el resultado (R) que se quería calcular,
de manera que la permutación así definida
corresponda al cálculo de una función homográfica en aritmética
modular en los números de símbolos y que el símbolo determinado en
la etapa anterior sea el resultado de esta permutación aplicada a
dicho símbolo dado.
10. Procedimiento según cualquiera de las
reivindicaciones 1 a 9; dicho procedimiento emplea un primer
generador pseudoaleatorio (GA1) que puede inicializarse con dicha
clave de iniciación (CI);
los valores proporcionados por dicho primer
generador pseudoaleatorio se utilizan como datos de entrada de un
algoritmo de resumen cuyos resultados se utilizan para proporcionar
dicha secuencia aleatoria (SA);
dicho generador pseudoaleatorio (GA) está
compuesto por dicho primer generador pseudoaleatorio (GA1) y dicho
algoritmo de resumen.
11. Procedimiento según cualquiera de las
reivindicaciones 1 a 9; dicho procedimiento incluye además la etapa
preliminar de crear a partir de la totalidad o parte de dicha clave
primaria de encriptación (CP) una serie de números llamada en lo
sucesivo clave secundaria de encriptación (CS);
dicho procedimiento emplea un primer generador
pseudoaleatorio (GA1) que puede inicializarse con dicha clave de
iniciación (CI), los valores proporcionados por dicho primer
generador pseudoaleatorio (GA1) se encriptan con un primer
algoritmo de encriptación utilizando como clave de encriptación
dicha clave secundaria de encriptación (CS); los resultados de
dicho primer algoritmo de encriptación se utilizan para proporcionar
dicha secuencia aleatoria
(SA);
(SA);
dicho generador pseudoaleatorio (GA) está
compuesto por dicho primer algoritmo generador pseudoaleatorio (GA1)
y dicho primer algoritmo de encriptación.
12. Sistema para la encriptación y la
desencriptación de una información (I); dicha información (I) está
representada por una serie de símbolos (S); dichos símbolos (S) se
toman en un conjunto de símbolos llamado en lo sucesivo el
alfabeto; dicho alfabeto está separado en dos partes distintas, una
de las partes se denomina en lo sucesivo el alfabeto de control y
está compuesta por símbolos destinados a no modificarse durante la
encriptación, la otra parte se denomina en lo sucesivo el alfabeto
de mensaje y está compuesta por símbolos destinados a modificarse
eventualmente durante la encriptación;
dicho sistema es tal que a todo símbolo
perteneciente a dicho alfabeto de mensaje se le ha asociado
previamente un número comprendido entre 0 y N-1, N
designa el número de elementos de dicho alfabeto de mensaje, el
número previamente asociado a dicho símbolo se denomina en lo
sucesivo el número de dicho símbolo, de manera que para todo número
comprendido entre 0 y N-1 haya uno y sólo un símbolo
del alfabeto de mensaje cuyo número sea su número;
dicho sistema está más particularmente destinado
a proteger las comunicaciones entre un ordenador, en lo sucesivo
denominado el ordenador del cliente y una red formada por uno o
varios ordenadores. Dicho sistema se intercala entre dicho
ordenador del cliente y dicha red,
de manera que toda información que circule entre
dicho ordenador del cliente y dicha red y que deba encriptarse o
desencriptarse, pasa a través de dicho sistema;
dicho sistema incluye un generador
pseudoaleatorio (GA) que proporciona una secuencia de valores
denominada en lo sucesivo secuencia aleatoria (SA), los valores que
forman dicha secuencia aleatoria (SA) están incluidos en un
conjunto en lo sucesivo denominado el espacio de valores
aleatorios;
los valores de dicho espacio de valores
aleatorios son números, algunos de estos valores están incluidos en
un subconjunto de dicho espacio de valores aleatorios, subconjunto
denominado en lo sucesivo alfabeto de máscara;
dicho generador pseudoaleatorio (GA) puede
inicializarse, antes de usar y proporcionar dicha secuencia de
valores, por medio de una serie de números en lo sucesivo denominada
clave de iniciación (CI); dicha clave de iniciación (CI) determina
la secuencia aleatoria (SA) que proporcionará el generador;
dicho sistema incluye además:
- dos unidades de entrada salida (UES), una de
ellas está destinada a asegurar las comunicaciones entre dicho
sistema y dicho ordenador del cliente, la otra está destinada a
asegurar las comunicaciones entre dicho sistema y dicha red;
- primeros medios de tratamiento (TR1) que
permiten tener en cuenta una serie de números en lo sucesivo
denominada la clave primaria de encriptación (CP), y crear dicha
clave de iniciación (CI) a partir de la totalidad o parte de dicha
clave primaria de encriptación (CP),
- segundos medios de tratamiento (TR2) que
permiten decidir si un valor perteneciente a dicho espacio de
valores aleatorios pertenece a dicho alfabeto de máscara,
- terceros medios de tratamiento (TR3) que
permiten leer los valores sucesivos proporcionados por dicho
generador pseudoaleatorio hasta obtener un elemento (M)
perteneciente a dicho alfabeto de máscara,
- cuartos medios de tratamiento (TR4) que
permiten decidir, entre los símbolos (S) que circulan a través de
dicho sistema, cuáles son los símbolos que deben encriptarse o
desencriptarse y cuáles son los símbolos que deben transmitirse sin
modificación,
\newpage
- quintos medios de tratamiento (TR5) que
permiten asociar un número a un símbolo de dicho alfabeto de
mensaje y que permiten, por otro lado, a partir de un elemento dado
del alfabeto de máscara, en lo sucesivo llamado el elemento de
máscara (M), seleccionar una permutación del alfabeto de mensaje.
Esta permutación se llama en lo sucesivo permutación asignada al
elemento de máscara (M), y permite, por otro lado, que la
permutación asignada al elemento de máscara (M) así seleccionado y
un elemento dado del alfabeto de mensaje (S) proporcionado por una
de las dos unidades de entrada salida, determine el resultado (R) de
esta permutación aplicada a dicho elemento dado (S) proporcionado y
enviar a la otra, de las dos unidades de entrada salida
mencionadas, el resultado (R) así
determinado.
determinado.
13. Sistema según la reivindicación 12; dichos
quintos medios de tratamiento (TR5) permiten además seleccionar la
permutación inversa de dicha permutación asignada a un elemento (M)
del alfabeto de máscara.
14. Sistema según la reivindicación 12 ó 13;
dichos quintos medios de tratamiento (TR5) permiten además hacer
una adición en aritmética modular entre dicho número asociado a un
símbolo de dicho alfabeto de mensaje y un elemento (M) de dicho
alfabeto de máscara, y asociar al resultado de esta adición un
elemento (R) del alfabeto de mensaje.
15. Sistema según la reivindicación 12 ó 13;
dichos quintos medios de tratamiento (TR5) permiten además hacer
una sustracción en aritmética modular entre dicho número asociado a
un símbolo de dicho alfabeto de mensaje y un elemento (M) de dicho
alfabeto de máscara, y asociar al resultado de esta sustracción un
elemento (R) del alfabeto de mensaje.
16. Sistema según la reivindicación 12 ó 13;
dichos quintos medios de tratamiento (TR5) permiten además hacer
una multiplicación en aritmética modular entre dicho número asociado
a un símbolo de dicho alfabeto de mensaje y un elemento (M) de
dicho alfabeto de máscara, y asociar al resultado de esta
multiplicación un elemento (R) del alfabeto de mensaje.
17. Sistema según la reivindicación 12 ó 13;
dichos quintos medios de tratamiento (TR5) permiten además hacer
una división en aritmética modular entre dicho número asociado a un
símbolo de dicho alfabeto de mensaje y un elemento (M) de dicho
alfabeto de máscara, y asociar al resultado de esta división un
elemento (R) del alfabeto de mensaje.
18. Sistema según la reivindicación 12 ó 13;
dichos quintos medios de tratamiento (TR5) permiten además hacer
una exponenciación en aritmética modular de dicho número asociado a
un símbolo de dicho alfabeto de mensaje con un elemento (M) como
exponente de dicho alfabeto de máscara, y asociar al resultado de
esta exponenciación un elemento (R) del alfabeto de mensaje.
19. Sistema según la reivindicación 12 ó 13;
dichos quintos medios de tratamiento (TR5) permiten además hacer
una extracción de raíz en aritmética modular y asociar al resultado
de esta extracción de raíz un elemento (R) del alfabeto de
mensaje.
20. Sistema según la reivindicación 12 ó 13; el
número de símbolos que componen dicho alfabeto de mensaje se
denomina en lo sucesivo N, dicho sistema incluye además sextos
medios de tratamiento (TR6) que permiten asociar a un elemento (M)
de dicho alfabeto de máscara un cuádruplo de números denominados p,
q, r y s, dichos quintos medios de tratamiento (TR5) permiten
además:
- asociar a un símbolo de dicho alfabeto de
mensaje un número comprendido entre 0 y N-1, este
número se denomina en lo sucesivo m,
- calcular la expresión m.r + s,
- determinar si una expresión es nula o múltiplo
de N,
- calcular un número k comprendido entre 0 y
N-1 de modo que la expresión k.r - p sea un múltiplo
de N,
- calcular un número k comprendido entre 0 y
N-1 de modo que la expresión k.(m.r + s) - (m.p + q)
sea un múltiplo de N,
- asociar a un número k así calculado un
elemento (R) del alfabeto de mensaje.
21. Sistema según cualquiera de las
reivindicaciones 12 a 20; dicho sistema incluye un primer generador
pseudoaleatorio (GA1) que puede iniciarse con dicha clave de
iniciación (CI) y medios de cálculo (H) que permiten aplicar un
algoritmo de resumen a los valores proporcionados por dicho primer
generador pseudoaleatorio (GA1), los resultados de dicho algoritmo
de resumen se transmiten a dichos segundos y terceros medios de
tratamiento (TR2, TR3), dicho generador pseudoaleatorio (GA) está
compuesto por dicho primer generador pseudoaleatorio (GA1) y dichos
medios de cálculo (H) que permiten aplicar un algoritmo de resumen a
los valores proporcionados por dicho primer generador
pseudoaleatorio (GA1).
22. Sistema según cualquiera de las
reivindicaciones 12 a 20; dicho sistema incluye un primer generador
pseudoaleatorio (GA1) que puede iniciarse con dicha clave de
iniciación (CI); dicho sistema incluye además séptimos medios de
tratamiento (TR7) que permiten crear a partir de la totalidad o
parte de dicha clave primaria de encriptación (CP) una serie de
números llamada en lo sucesivo clave secundaria de encriptación
(CS); dicho procedimiento incluye además medios de cálculo (K) que
permiten aplicar un algoritmo de encriptación, utilizando como clave
de encriptación dicha clave secundaria de encriptación (CS), dicho
algoritmo de encriptación se aplica a los valores proporcionados
por dicho primer generador pseudoaleatorio (GA1), los resultados de
dicho algoritmo de encriptación se transmiten a dichos segundos y
terceros medios de tratamiento (TR2, TR3), dicho generador
pseudoaleatorio (GA) está compuesto por dicho primer generador
pseudoaleatorio (GA1) y dichos medios de cálculo (K) que permiten
aplicar un algoritmo de encriptación a los valores proporcionados
por dicho primer generador pseudoaleatorio (GA1).
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR0303844A FR2853175B1 (fr) | 2003-03-28 | 2003-03-28 | Procede et systeme de cryptage |
| FR0303844 | 2003-03-28 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2291864T3 true ES2291864T3 (es) | 2008-03-01 |
Family
ID=32947253
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES04723233T Expired - Lifetime ES2291864T3 (es) | 2003-03-28 | 2004-03-25 | Procedimiento y sistema de encriptacion. |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US20060193471A1 (es) |
| EP (1) | EP1611709B1 (es) |
| AT (1) | ATE368983T1 (es) |
| CA (1) | CA2520373A1 (es) |
| DE (1) | DE602004007904T2 (es) |
| ES (1) | ES2291864T3 (es) |
| FR (1) | FR2853175B1 (es) |
| WO (1) | WO2004088916A1 (es) |
Families Citing this family (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8352400B2 (en) | 1991-12-23 | 2013-01-08 | Hoffberg Steven M | Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore |
| US8574074B2 (en) | 2005-09-30 | 2013-11-05 | Sony Computer Entertainment America Llc | Advertising impression determination |
| US7966078B2 (en) | 1999-02-01 | 2011-06-21 | Steven Hoffberg | Network media appliance system and method |
| US8751310B2 (en) | 2005-09-30 | 2014-06-10 | Sony Computer Entertainment America Llc | Monitoring advertisement impressions |
| EP1596278A1 (fr) * | 2004-05-11 | 2005-11-16 | Axalto SA | Procédé de protection d'un ensemble cryptographique par masquage homographique |
| US8763157B2 (en) | 2004-08-23 | 2014-06-24 | Sony Computer Entertainment America Llc | Statutory license restricted digital media playback on portable devices |
| WO2006107777A2 (en) * | 2005-04-01 | 2006-10-12 | Mastercard International Incorporated | Dynamic encryption of payment card numbers in electronic payment transactions |
| US20080025497A1 (en) * | 2005-06-28 | 2008-01-31 | Ogram Mark E | Multiple key encryption with "Red Herrings" |
| US8626584B2 (en) | 2005-09-30 | 2014-01-07 | Sony Computer Entertainment America Llc | Population of an advertisement reference list |
| US10657538B2 (en) | 2005-10-25 | 2020-05-19 | Sony Interactive Entertainment LLC | Resolution of advertising rules |
| US20070118425A1 (en) | 2005-10-25 | 2007-05-24 | Podbridge, Inc. | User device agent for asynchronous advertising in time and space shifted media network |
| US8676900B2 (en) | 2005-10-25 | 2014-03-18 | Sony Computer Entertainment America Llc | Asynchronous advertising placement based on metadata |
| CN101438526B (zh) | 2006-05-05 | 2013-03-13 | 美国索尼电脑娱乐公司 | 广告旋转 |
| US8769279B2 (en) * | 2006-10-17 | 2014-07-01 | Verifone, Inc. | System and method for variable length encryption |
| US9361617B2 (en) * | 2008-06-17 | 2016-06-07 | Verifone, Inc. | Variable-length cipher system and method |
| US8769558B2 (en) | 2008-02-12 | 2014-07-01 | Sony Computer Entertainment America Llc | Discovery and analytics for episodic downloaded media |
| US8763090B2 (en) | 2009-08-11 | 2014-06-24 | Sony Computer Entertainment America Llc | Management of ancillary content delivery and presentation |
| KR101815715B1 (ko) | 2011-07-04 | 2018-01-30 | 삼성전자주식회사 | 휴대단말기의 외부기기 제어 장치 및 방법 |
| CN112202729B (zh) * | 2020-09-11 | 2023-04-14 | 微梦创科网络科技(中国)有限公司 | 动态混淆加密、解密方法及装置 |
| WO2023017292A1 (en) * | 2021-08-10 | 2023-02-16 | Petkov Svetlozar | Encryption system and method based on random numbers from 1 to 1 quintillion (10^18) with no key and no metadata |
| CN118353627B (zh) * | 2024-05-15 | 2024-11-05 | 海南即客科技有限公司 | 基于量子密钥的群组聊天加密方法、系统、设备及介质 |
| CN119740213B (zh) * | 2024-12-12 | 2025-09-05 | 深圳市山之水电子有限公司 | 一种存储设备的安全访问方法、电子设备及存储介质 |
Family Cites Families (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CH429253A (de) * | 1964-01-21 | 1967-01-31 | Europ Handelsges Anst | Mischgerät zum Verschlüsseln und Entschlüsseln von Informationen |
| DE2553897C1 (de) * | 1975-12-01 | 1979-01-04 | Siemens Ag | Verfahren und Schaltungsanordnung zur Verschluesselung und UEbertragung von Druckzeichen und Steuerzeichen |
| US5113444A (en) * | 1990-09-05 | 1992-05-12 | Arnold Vobach | Random choice cipher system and method |
| US5335280A (en) * | 1993-01-28 | 1994-08-02 | Vobach Arnold R | Random sum cipher system and method |
| US5533127A (en) * | 1994-03-18 | 1996-07-02 | Canon Information Systems, Inc. | Encryption system |
| WO1996002992A1 (en) * | 1994-07-15 | 1996-02-01 | Ntt Mobile Communications Network Inc. | Signal transmitting method and communication system |
| US6128386A (en) * | 1994-11-09 | 2000-10-03 | Channel One Communications, Inc. | Multiple number base encoder/decoder using a corresponding exclusive or function |
| US5479513A (en) * | 1994-11-18 | 1995-12-26 | Martin Marietta Energy Systems, Inc. | Fast and secure encryption-decryption method based on chaotic dynamics |
| US5533128A (en) * | 1995-01-18 | 1996-07-02 | Vobach; Arnold | Pseudo-random transposition cipher system and method |
| US5799090A (en) * | 1995-09-25 | 1998-08-25 | Angert; Joseph C. | pad encryption method and software |
| GB2319704B (en) * | 1996-11-15 | 2001-07-04 | Desktop Guardian Ltd | Data encryption technique |
| US6058189A (en) * | 1997-06-20 | 2000-05-02 | Secure Choice Llc | Method and system for performing secure electronic monetary transactions |
| ATE403992T1 (de) * | 1999-06-22 | 2008-08-15 | Hitachi Ltd | Kryptografisches gerät und verfahren |
| US20030021409A1 (en) * | 1999-10-29 | 2003-01-30 | Incarnato Joseph S. | Alphabet soup cryptography |
| US7277543B1 (en) * | 2000-11-14 | 2007-10-02 | Honeywell International Inc. | Cryptographic combiner using two sequential non-associative operations |
| US20020159588A1 (en) * | 2001-04-27 | 2002-10-31 | Kauffman Jason R. | Cryptography with unconditional security for the internet, commercial intranets, and data storage |
| FR2832231B3 (fr) * | 2001-11-15 | 2003-12-19 | Jean Luc Stehle | Procede pour generer des nombres aleatoires |
| CA2365481C (en) * | 2001-12-18 | 2006-01-03 | Ibm Canada Limited-Ibm Canada Limitee | Encryption method using synchronized continuously calculated pseudo-random key |
-
2003
- 2003-03-28 FR FR0303844A patent/FR2853175B1/fr not_active Expired - Fee Related
-
2004
- 2004-03-25 ES ES04723233T patent/ES2291864T3/es not_active Expired - Lifetime
- 2004-03-25 AT AT04723233T patent/ATE368983T1/de not_active IP Right Cessation
- 2004-03-25 EP EP04723233A patent/EP1611709B1/fr not_active Expired - Lifetime
- 2004-03-25 US US10/550,898 patent/US20060193471A1/en not_active Abandoned
- 2004-03-25 CA CA002520373A patent/CA2520373A1/fr not_active Abandoned
- 2004-03-25 WO PCT/FR2004/050127 patent/WO2004088916A1/fr not_active Ceased
- 2004-03-25 DE DE602004007904T patent/DE602004007904T2/de not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US20060193471A1 (en) | 2006-08-31 |
| DE602004007904D1 (de) | 2007-09-13 |
| FR2853175A1 (fr) | 2004-10-01 |
| CA2520373A1 (fr) | 2004-10-14 |
| FR2853175B1 (fr) | 2005-06-17 |
| EP1611709B1 (fr) | 2007-08-01 |
| EP1611709A1 (fr) | 2006-01-04 |
| DE602004007904T2 (de) | 2008-04-24 |
| WO2004088916A1 (fr) | 2004-10-14 |
| ATE368983T1 (de) | 2007-08-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Malik et al. | Color image encryption algorithm based on hyper-chaos and DNA computing | |
| US8139764B2 (en) | Closed galois field cryptographic system | |
| CN116032474B (zh) | 一种基于大数据计算机网络安全防护系统 | |
| KR101267109B1 (ko) | 준군을 이용한 암호화 프리미티브, 에러 코딩, 및 의사난수 향상 방법 | |
| ES2291675T3 (es) | Metodo de generar un cifrado de flujo utilizando claves multiples. | |
| US20140270165A1 (en) | Cryptographic system based on reproducible random sequences | |
| US20100202606A1 (en) | Two strings private key (symmetric) encryption and decryption method | |
| US20060193471A1 (en) | Encryption method and system | |
| von Zur Gathen | CryptoSchool | |
| Hazra et al. | File encryption using fisher-yates shuffle | |
| Sivakumar et al. | A novel image encryption using calligraphy based scan method and random number | |
| JP7136226B2 (ja) | 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム | |
| JP2020515093A (ja) | 符号化加算のための計算デバイス | |
| Mohammed et al. | Cryptosystems using an improving hiding technique based on latin square and magic square | |
| Agievich et al. | Mathematical problems of the Second International Students’ Olympiad in Cryptography | |
| US20150172045A1 (en) | Method of cryption | |
| Mohan et al. | An encryption technique using the adjacency matrices of certain graphs with a self-invertible key matrix | |
| Thileeban | Encryption of images using XOR Cipher | |
| Mokhtari et al. | Analysis and design of affine and hill cipher | |
| Bahaddad et al. | The security of text data based on cyclic codes over algebraic structure | |
| Amounas | Construction Efficiency of the Elliptic Curve Cryptosystem using Code Computing for Amazigh Alphabet | |
| Roy et al. | A novel approach towards development of hybrid image steganography using DNA sequences | |
| Ortiz et al. | Encryption through the Use of Fractals | |
| Chauhan | Conversion of stream cipher into block cipher | |
| Sharp | Cryptography |