ES2291864T3 - Procedimiento y sistema de encriptacion. - Google Patents

Procedimiento y sistema de encriptacion. Download PDF

Info

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
Application number
ES04723233T
Other languages
English (en)
Inventor
Jean-Luc Stehle
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Everbee Networks SA
Original Assignee
Everbee Networks SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Everbee Networks SA filed Critical Everbee Networks SA
Application granted granted Critical
Publication of ES2291864T3 publication Critical patent/ES2291864T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/36Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with means for detecting characters not meant for transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/34Bits, or blocks of bits, of the telegraphic message being interchanged in time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking 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.
La solución según la invención Procedimiento según la invención
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.
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.
Sistema según la invenció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:
- 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.
Descripción detallada de la invención
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.
Descripción de figuras
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);
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.
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).
ES04723233T 2003-03-28 2004-03-25 Procedimiento y sistema de encriptacion. Expired - Lifetime ES2291864T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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