ES2266248T3 - Procedimiento y dispositivo para la produccion de una secuencia sendo-aleatoria mediante un logaritmo discreto. - Google Patents

Procedimiento y dispositivo para la produccion de una secuencia sendo-aleatoria mediante un logaritmo discreto. Download PDF

Info

Publication number
ES2266248T3
ES2266248T3 ES01967345T ES01967345T ES2266248T3 ES 2266248 T3 ES2266248 T3 ES 2266248T3 ES 01967345 T ES01967345 T ES 01967345T ES 01967345 T ES01967345 T ES 01967345T ES 2266248 T3 ES2266248 T3 ES 2266248T3
Authority
ES
Spain
Prior art keywords
link
pseudo
output
discrete
logarithm
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
ES01967345T
Other languages
English (en)
Inventor
Klaus Huber
Ulrich Heister
Frank Schaefer-Lorinser
Tobias Martin
Thomas Breitbach
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.)
Deutsche Telekom AG
Telekom Deutschland GmbH
Original Assignee
Deutsche Telekom AG
T Mobile Deutschland GmbH
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 Deutsche Telekom AG, T Mobile Deutschland GmbH filed Critical Deutsche Telekom AG
Application granted granted Critical
Publication of ES2266248T3 publication Critical patent/ES2266248T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Mathematical Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Peptides Or Proteins (AREA)
  • Emergency Protection Circuit Devices (AREA)
  • Vehicle Body Suspensions (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Procedimiento para la generación de una secuencia seudo-aleatoria en el que se desplazan elementos (ã) de la secuencia seudo-aleatoria con intermedio de un registro de desplazamiento (1) que tiene múltiples celdas de memoria (2) conectadas en serie, los valores de salida de cómo mínimo dos celdas de memoria (2) se enlazan entre sí, y el resultado del enlace es realimentado a una entrada (6) de una de las celdas de memoria (2) del registro de desplazamiento (1), caracterizado porque es tomado el logaritmo discreto de los elementos (ã) de la secuencia seudo-aleatoria y porque el logaritmo discreto ya es calculado cuando son enlazados los valores de salida del registro de desplazamiento (1).

Description

Procedimiento y dispositivo para la producción de una secuencia seudo-aleatoria mediante un logaritmo discreto.
La presente invención describe un procedimiento para la generación de una secuencia seudo-aleatoria, según el preámbulo de la reivindicación 1, y un dispositivo para generar una secuencia seudo-aleatoria, según el preámbulo de la reivindicación 12.
En la generación de secuencias aleatorias se diferencian básicamente dos variantes. Las secuencias aleatorias verdaderas son generadas sobre la base de efectos físicos, por ejemplo, la desintegración radiactiva. Estas secuencias aleatorias verdaderas pueden tener aplicación particularmente en la criptografía. En la otra variante, las secuencias seudo-aleatorias son generadas mediante un dispositivo designado también como generador (seudo)aleatorio. Este dispositivo puede formarse, por ejemplo, mediante un ordenador, en el que se procesa un algoritmo. Además de esta realización como software, las secuencias seudo-aleatorias se pueden generar con registros de desplazamiento, que se encuentran en el hardware, que la mayoría de las veces están realimentados linealmente. En consecuencia, la diferencia fundamental entre las secuencias seudo-aleatorias y las secuencias aleatorias verdaderas puede consistir en que, conociendo la disposición del circuito o bien el algoritmo, es posible una repetición o bien la reconstrucción de la misma secuencia seudo-aleatoria.
Un procedimiento de esta clase y una disposición de circuito para la generación de una secuencia seudo-aleatoria son conocidos por el documento EP 0 616 429 A1. Esta disposición de circuito está realizada mediante un registro de desplazamiento realimentado, en el que están dispuestas varias celdas de memoria conectadas en serie (flip-flops). Como mínimo, son procesados dos valores de salida de diferentes celdas de memoria y conectados entre sí en un dispositivo de enlace. El resultado del enlace es retornado a la entrada del registro de desplazamiento. Naturalmente, pueden utilizarse una serie de ramas de realimentación. El enlace de ambos valores de salida de las dos celdas de memoria tiene lugar en el procedimiento conocido o en la disposición de circuito conocida como una adición de módulo 2, que es realizada mediante una puerta (O) exclusiva. El procedimiento conocido o bien la disposición de circuito conocida encuentra aplicación, por ejemplo, en el llamado cifrado de corriente. Además, por el documento WO 99/22484 se conoce un procedimiento y un dispositivo para la generación de secuencias cifradas numéricas. En este caso, una relación iterativa y una ecuación inicial son elegidas de tal manera que ni para la relación iterativa ni para la ecuación inicial se utilice dos veces el mismo par de elementos de un registro de desplazamiento. Además, en el documento USA 6.098.192 se muestra un dispositivo y un procedimiento para determinar el logaritmo de un elemento con menos complicaciones que lo que exigiría la utilización de tablas de consulta predeterminadas fijas. Finalmente, por el documento Long D. L. y otros, "The discrete Logarithm Hides 0 (Log N) Bits", Siam Journal On Computing, Society for Industrial and Applied Mathematics, EEUU, tomo 17, Nr. 2, abril 1988 (1988-04), páginas 363-372, XP002901485, ISSN: 0097-5397, se publica como pueden ser evaluadas las llamadas funciones unidireccionales y como pueden reconstruirse a partir de una información encriptada al menos partes de la información sin encriptar.
El objetivo de la presente invención es dar a conocer otra posibilidad para generar una secuencia seudo-aleatoria, que dificulte sacar conclusiones sobre la información encriptada a partir de la información sin encriptar y que, además, es sencilla de implementar.
Se consigue este objetivo mediante un procedimiento para la generación de una secuencia seudo-aleatoria que presenta las características mencionadas en la reivindicación 1. En un registro de desplazamiento realizable por hardware o por software con múltiples celdas de memoria dispuestas en serie, los elementos de la secuencia seudo-aleatoria son desplazados a través del registro de desplazamiento. A partir de como mínimo dos niveles de registros de desplazamiento se enlazan entre sí los valores de salida. El resultado del enlace puede ser acoplado con la entrada de uno de los niveles de registro de desplazamiento de la cadena de registros de desplazamiento. De acuerdo con la invención, el procedimiento se distingue porque los elementos de la secuencia pseudo-aleatoria son calculados logarítmicamente de forma discreta. De este modo resulta, respecto del procedimiento conocido, una nueva secuencia seudo-aleatoria. La logaritmación discreta significa que no se logaritmiza toda la secuencia seudo-aleatoria, sino el de los elementos individuales de la secuencia seudo-aleatoria. En este caso, puede estar previsto enlazar entre sí mediante logaritmación dos elementos de la secuencia seudo-aleatoria.
En un ejemplo de realización especialmente preferente se logaritmiza de forma discreta modificada. Debido a que el logaritmo en el lugar cero no está definido, mientras se suponga el valor cero de un elemento no se logaritmiza, sino que se fija entonces un valor predeterminable.
En un ejemplo de realización, la logaritmización discreta ya se realiza al enlazar los valores de salida de los niveles de registro de desplazamiento. Básicamente, también sería imaginable generar primero la secuencia seudo-aleatoria y a continuación la logaritmización discreta a la salida de la cadena de registros de desplazamiento, tal como se ha descrito anteriormente. Naturalmente es posible la logaritmización discreta de forma múltiple. De este modo, pueden generarse a la vez otras secuencias seudo-aleatorias.
En un ejemplo de realización preferente se ha previsto que se logaritmiza de forma discreta en base a una tabla logarítmica que contiene valores de salida y valores de resultado. Es decir, que el valor de salida de una celda de memoria se compara con los valores de la tabla logarítmica, se elige el resultado compatible con el valor de salida y se reenvía el mismo como resultado del enlace a la entrada de una celda de memoria.
En un ejemplo de realización se ha previsto que uno de los valores de salida a enlazar es preenlazado con un valor prefijado antes de este enlace, es decir, antes de la logaritmización discreta. Particularmente, se ha previsto para este preenlace un enlace lógico, preferentemente una adición. En consecuencia, cuando en una adición el valor de salida del registro de desplazamiento es enlazado con un valor cero, el ramal de realimentación es conectado o bien activado de esta manera porque siempre es reenviado el valor de salida del registro de desplazamiento. Cuando el valor de salida del registro de desplazamiento es enlazado con un uno, podría desconectarse de este modo el ramal de realimentación. Naturalmente, para el preenlace también pueden utilizarse valores predefinidos distintos de cero o uno.
En un ejemplo de realización puede preverse que se realice el preenlace sobre la base de una tabla de preenlaces, comprendiendo los valores de salida y de resultado o mediante circuitos lógicos.
Un ejemplo de realización preferente se destaca porque los logaritmos discretos son tomados con la ayuda del llamado logaritmo de Zech o bien logaritmo de Jacobi. Cuando los logaritmos discretos son tomados utilizando la tabla mencionada anteriormente, los valores resultantes en esta tabla son determinados mediante el logaritmo de Zech o bien de Jacobi. Por consiguiente, la tabla logarítmica se basa en los logaritmos de Zech o bien de Jacobi en sí conocidos.
Un ejemplo de realización, especialmente preferente, se destaca porque la realimentación se realiza de manera tal que es generada una secuencia seudo-aleatoria con una longitud de período máxima. Es decir, que al menos una de las ramas de realimentación está dispuesta en salidas específicas de los niveles de registro de desplazamiento. Para la determinación de las conexiones de realimentación o bien de la rama de realimentación que entrega la máxima longitud de período de la secuencia seudo-aleatoria, en la literatura especializada se conocen tablas (por ejemplo W. Peterson, E. Weldon, Error-Correcting Codes, segunda edición, MIT Press, Cambridge, séptima impresión 1984 o R. Lidl, H. Niederreiter, Finite Fields, Cambridge University Press 1984).
El objetivo mencionado anteriormente también se consigue mediante un dispositivo para la generación de una secuencia seudo-aleatoria que presenta las características de la reivindicación 12. Este dispositivo comprende varias celdas de memoria conectadas en serie, formando un registro de desplazamiento. Además, está dispuesta una rama de realimentación que conecta dos salidas de registro diferentes con una entrada de registro. Además, se encuentra previsto un elemento de enlace para los valores de entrada de los niveles de registro que, por el lado de la entrada, está conectado con las salidas de registro y, por el lado de salida, con la entrada de registro. Según la invención, el dispositivo se caracteriza por un elemento para la logaritmización discreta de los elementos de la secuencia seudo-aleatoria. De esta manera, con el dispositivo según la invención, se realiza otra fuente para la generación de secuencias seudo-aleatorias que entrega secuencias seudo-aleatorias que difieren de las secuencias aleatorias conocidas por el actual estado de la técnica.
Es preferente un ejemplo de realización en el que el elemento usado para la logaritmización discreta se encuentre en la rama de la realimentación y forme el elemento de enlace que toma discretamente los logaritmos de los valores de salida de los registros. Sin embargo, también puede estar previsto alternativamente que el elemento para la logaritmización discreta esté dispuesto al final de la cadena del registro de desplazamiento, tal como se ha descrito anteriormente en relación con el procedimiento según la invención.
Es preferente un ejemplo de realización en el que el elemento es un elemento de memoria en el que está almacenada la tabla logarítmica que contiene valores de salida y de resultado. Alternativamente, el elemento también puede estar implementado mediante módulos lógicos, o sea como hardware.
En un ejemplo de realización está previsto que entre una de las salidas de registro y el elemento de enlace se encuentre dispuesto un elemento de preenlace del que una de las entradas está conectada con dicha salida de registro, cuya otra entrada es capaz de recibir un valor predefinido y cuya salida está conectada con la entrada del elemento de enlace. De esta manera es concebible conectar y desconectar la rama de realimentación o bien una pluralidad de ramas de realimentación, es decir, activarlas o desactivarlas.
El elemento de preenlace puede ser un circuito lógico, particularmente una puerta (O) exclusiva. Sin embargo, el elemento de preenlace en una realización alternativa también puede implementarse mediante un elemento de memoria en el que se encuentran almacenados los resultados del preenlace en función de los valores de entrada.
Otras configuraciones resultan de las reivindicaciones.
La invención se explica a continuación sobre la base de ejemplos de realización con referencia al dibujo, en el que muestran:
la figura 1, un registro de desplazamiento lineal realimentado binario, con un elemento para la formación del logaritmo discreto,
la figura 2, un registro de desplazamiento lineal realimentado terciario, con un elemento para la formación del logaritmo discreto,
\newpage
la figura 3, un registro de desplazamiento lineal general realimentado, con un elemento para la formación de un logaritmo discreto,
la figura 4, un registro de desplazamiento lineal realimentado a través del cuerpo GF (2^{2}) = GF (4),
la figura 5, un registro de desplazamiento lineal realimentado a través del cuerpo GF (2^{2}) = GF (4), estando el elemento para la formación del logaritmo discreto dispuesto en la rama de realimentación, y
la figura 6, un registro de desplazamiento lineal general realimentado, que presenta en las ramas de realimentación un elemento para la formación del logaritmo discreto.
La figura 1 muestra sólo de forma ilustrativa un ejemplo de una cadena de registros de desplazamiento (1) que presenta una cantidad (m) de celdas de memoria (2) conectadas en serie. Por consiguiente, la entrada de un nivel de registro de desplazamiento está conectada con la salida del nivel de registro precedente. El último nivel de registro de desplazamiento forma la salida (3) de la cadena (1) de la que puede tomarse la secuencia seudo-aleatoria a generar. Para la generación de secuencias seudo-aleatorias se utilizan en la mayoría de los casos las llamadas cadenas de registro (1) realimentadas linealmente, que pueden ser fabricadas de forma integral en hardware, o sea usando elementos lógicos rápidos, con lo que puede conseguirse una velocidad de procesamiento muy rápida. Como ya se ha citado, la figura 1 muestra una cadena de desplazamiento binaria de este tipo. Cada nivel de registro de desplazamiento (2) es alimentado con una sincronización (T), de manera que con cada señal de sincronización es cargado, en la celda de memoria (4) del nivel de registro de desplazamiento (2), el valor activo en la entrada de un nivel de registro de desplazamiento (2), y el elemento de la secuencia seudo-aleatoria almacenada previamente en la celda de memoria (4) está disponible a la salida del registro (5). Para la sincronización se dispone preferentemente de un reloj central. La entrada de cada celda de memoria se muestra en la figura 1 con el numeral (6).
En la rama de realimentación (7) de la cadena de registro de desplazamiento binaria (1) se encuentra dispuesto un elemento de enlace (8), cuyas entradas (9) y (10) están conectadas a salidas de registro (5). La salida (11) del elemento de enlace (8) está conectada con la entrada (6) de un nivel de registro de desplazamiento, preferentemente con el primero. En el ejemplo de realización mostrado el elemento de enlace es un dispositivo de adición que suma los valores de salida contiguos a las entradas (9) y (10) del registro, siendo 0 + 0 = 0, 0 + 1 = 1 + 0 = 1 y 1 + 1 = 0 mod 2. Esta adición de módulo 2 puede realizarse de forma especialmente sencilla mediante un elemento lógico, implementado como puerta (O) exclusiva. De esta manera queda claro que dada la ocupación inicial de las celdas de memoria (4) de la cadena de registros de desplazamiento (1), mostrada en la figura 1, puede generarse una secuencia seudo-aleatoria usando elementos 0100111010.... Esta secuencia seudo-aleatoria se encuentra en la salida (3) de la cadena de registros de desplazamiento o bien puede ser tomada en esta salida (3).
Se ha previsto que la secuencia seudo-aleatoria dispuesta en la salida (3) se calcula logarítmicamente de forma discreta. Para este fin, un elemento de cálculo logarítmico (12) que realiza la logaritmización discreta de los elementos de la secuencia seudo-aleatoria es conectado detrás de la salida (3). Para la logaritmización discreta puede disponerse que un elemento de la secuencia seudo-aleatoria sea enlazado con otro elemento de la secuencia seudo-aleatoria. Sin embargo, también puede disponerse que un elemento de la secuencia seudo-aleatoria sea enlazado con un valor (W) predefinido contiguo al elemento (12).
A la salida de elementos (13) se presenta entonces la secuencia seudo-aleatoria calculada logarítmicamente de forma discreta. Preferentemente se realiza una logaritmación discreta, es decir, mientras un elemento de la secuencia seudo-aleatoria presente el valor 0, el elemento es fijado a un valor resultante predefinible, debido a que, como es sabido, la formación de un logaritmo de 0 no es posible.
Una ventaja del registro de desplazamiento (1) realimentado linealmente es que es relativamente sencillo determinar los parámetros para conseguir la longitud de período máxima posible de la secuencia seudo-aleatoria. Como parámetro han de ser indicadas las salidas de registro (5), cuyos valores de salida deben ser enlazados con el elemento de enlace (8). Consecuentemente, debe estar indicada la posición de las conexiones de realimentación, con lo que también debe indicarse a que entrada de registro (6) debe conectarse la salida (11) del elemento de enlace. Una cadena de registros de desplazamiento (1) lineal binaria realimentada de una longitud (m), o sea la cantidad de niveles de registros de desplazamiento (2), puede generar una secuencia binaria seudo-aleatoria, que se repite sólo después de 2^{m} - 1 bits. Tablas con conexiones de realimentación que indican la longitud máxima de períodos se encuentran en la literatura (por ejemplo, W. Peterson, E. Weldon, Error-Correcting Codes, segunda edición, MIT Press, Cambridge, séptima impresión 1984 o R. Lidl, H. Niederreiter, Finite Fields, Cambridge University Press, 1984).
Naturalmente, también es posible utilizar secuencias no binarias en lugar de secuencias de registros de desplazamiento binarias. Una cadena de registros de desplazamiento (1) no binaria se muestra en la figura 2. A diferencia de la cadena de registros de desplazamiento (1), según la figura 1, entre la entrada (10) del elemento de enlace (8) y la salida de registro (5) está intercalado un elemento de preenlace (14). Dicho elemento posee dos entradas de preenlace (15) y (16), así como una salida de preenlace (17), conectadas a la entrada (10) del elemento de preenlace (8). El elemento de preenlace (14) en una forma de realización preferente ejecuta una multiplicación. En consecuencia, en la cadena de registros de desplazamiento (1), el elemento de enlace (8) y el elemento de preenlace (14) representan la suma y la multiplicación módulo 3, es decir, se realiza la suma o bien la multiplicación de las cifras del conjunto {0, 1, 2} y se resta el valor 3 del resultado cuando el mismo es mayor de 2. De allí, a la salida (3) de la cadena de registros de desplazamiento (1) resulta una secuencia seudo-aleatoria con los elementos 00111021121010022201221202 001.... Esta secuencia seudo-aleatoria es, como en la cadena de registros de desplazamiento (1), según la figura 1, alimentada al elemento de logaritmización (12). Otra diferencia consiste en que en la rama de realimentación (7) se encuentra dispuesto otro elemento de multiplicación (18), idéntico al elemento de preenlace (14). La entrada (19) del elemento de multiplicación está conectada con la salida (11) del elemento de enlace (8). La segunda entrada (20) del elemento de multiplicación recibe para la función módulo 2 el parámetro de entrada apropiado. La salida (21) del elemento de multiplicación (18) está conectada a la entrada (6) del primer nivel de registros de desplazamiento (2). Por lo demás, componentes iguales o de efecto igual en la figura 1 son designados en la figura 2 con el mismo
numeral.
La figura 3 muestra una cadena de registros de desplazamiento (1), que utiliza como alfabeto GF(q) un llamado cuerpo de ampliación binario con q = 2^{m}. Son convenientes con cuerpos de ampliación binarios porque los mismos son muy indicados para el formato binario usado habitualmente en el procesamiento de datos. La cadena de registros de desplazamiento (1) realimentada linealmente tiene entonces la forma mostrada en la figura 3. Consecuentemente, tal como se indica en la figura 2, están dispuestos elementos de preenlace (14) situados cada uno entre la salida de un nivel de registros de desplazamiento y la entrada del elemento de enlace (8). Como puede verse en la figura 3, cada salida de registro de desplazamiento (5) puede estar realimentada a través de un elemento de preenlace (14) y un elemento de enlace (8), o sea dirigido a una entrada (6) de otro nivel de registro de desplazamiento, siendo naturalmente las operaciones de enlace realizadas en relación con las figuras 1 y 2 implementadas en los elementos de preenlace (14) y en los elementos de enlace (8). Partes iguales o de efectos iguales se designan en la figura 3 con los mismos numerales de las figuras 1 y 2.
A continuación se observa, en base a la figura 3, una cadena de registros de desplazamiento (1) sobre el alfabeto GF (q), caracterizando GF (q) un cuerpo con q = p^{m} elementos, donde q es una potencia de números primos. Está demostrado que esencialmente se mantiene la estructura de los niveles de registros de desplazamiento realimentados lineales en comparación con el actual estado de la técnica. Sin embargo, como muestran las figuras 1 a 4, la secuencia seudo-aleatoria es manipulada por la media de la formación del logaritmo discreto mínimamente modificada, en la que las operaciones de cálculo necesarias para la formación del logaritmo son traspuestas en un conjunto de números en el que las operaciones necesarias pueden ser realizadas fácilmente por la mayoría de las calculadoras/procesadores. En lugar de la multiplicación en el elemento de preenlace (14) se realiza ahora la adición módulo p^{m}-1 y en lugar de la adición en el elemento de enlace (8) una operación sustitutiva correspondiente, pudiendo realizarse esta operación sustitutiva, por ejemplo, mediante una tabla. En consecuencia, en el elemento de enlace (8) puede estar contenida una memoria para una tabla de este tipo, en la que en función de los valores de entrada se elige un valor resultante respectivo.
Las secuencias seudo-aleatorias obtenidas son diferentes a las secuencias que, según el estado actual de la técnica, son generadas por registros de desplazamiento realimentados. Sin embargo, debido a la estructura de la cadena de registros de desplazamiento alimentada en forma lineal puede determinarse exactamente la longitud de período de la secuencia seudo-aleatoria. La longitud de período está dada por la longitud de período del registro de desplazamiento subordinado.
Si se toma, por ejemplo, la cadena de registros de desplazamiento (1) mostrada en la figura 4 con la cantidad m = 3 niveles de registros de desplazamiento sobre el cuerpo GF (2^{2}) = (00,01,10,11), se consigue una secuencia seudo-aleatoria con la longitud de período 4^{3}-1 = 63. En la figura 4 se muestran en la celda de memoria (4) de cada registro de desplazamiento (2) los distintos elementos del cuerpo GF.
Para que se pueda calcular con los elementos del cuerpo GF, pueden utilizarse, por ejemplo, las dos tablas mostradas a continuación para la adición y multiplicación en este cuerpo. Consecuentemente, estas tablas contienen valores de salida que tienen asignados de forma unívoca valores de resultado correspondientes. O sea, estas tablas pueden ser llamadas y procesadas en elementos de enlace (8) y (14).
\vskip1.000000\baselineskip
TABLA DE ADICIONES
+ 00 01 10 11
00 00 01 10 11
01 01 00 11 10
10 10 11 00 01
11 11 10 01 00
TABLA DE MULTIPLICACIONES
+ 00 01 10 11
00 00 00 00 00
01 00 01 10 11
10 00 10 11 01
11 00 11 01 10
\vskip1.000000\baselineskip
La adición de extensiones algebraicas binarias GF es bastante sencilla, concretamente un elemento de enlace (O) exclusivo en forma de componente, mientras que contrariamente, la multiplicación en extensiones algebraicas es más complicada. Puede realizarse mediante circuitos especiales o mediante tablas.
Con la asignación inicial de las celdas de memoria (4) mostrada en la figura 4 con 00, 00 y 01 se consigue para la cadena de registros de desplazamiento, según la figura 4, la secuencia 00 00 01 11 10 00 11 00 00 11 10 01 00 10 00 00 10 01 11 01.... De la secuencia seudo-aleatoria así obtenida se logaritmiza de forma discreta, como en los ejemplos según las figuras 1 a 3, mediante el elemento (12). De esta manera se remite a las descripciones de las figuras precedentes.
En lugar de los elementos (12), mostrados en las figuras 1 a 4, para la formación modificada del logaritmo discreto en la salida (3) de la cadena de registros de desplazamiento (1), se describe a continuación, sobre la base de las figuras 5 y 6, una forma de realización preferente de cadenas de registros de desplazamiento (1) para la generación de secuencias seudo-aleatorias. La imagen discreta es, como ya se ha mencionado, la formación modificada del logaritmo discreto que se explica en detalle más adelante. La diferencia esencial respecto de los ejemplos de realización descritos anteriormente consiste ahora en utilizar aquellas estructuras de la cadena de registros de desplazamiento (1) de los registros de desplazamiento realimentadas (2) que realizan enlaces en los elementos de enlace (8) y (14), pero no como se ha descrito anteriormente como una adición o multiplicación, sino sustituyendo con la formación del logaritmo discreto. Esto quiere decir que el elemento (12), hasta ahora conectado a la salida (3), es en adelante trasladado a la rama de realimentación (7). De esta manera, el elemento de enlace (8) se encarga de la toma modificada del logaritmo discreto.
Las operaciones matemáticas requeridas son relocalizadas a un conjunto numérico en el que las operaciones necesarias para el enlace pueden realizarse fácilmente por las calculadoras/procesadores. En lugar de la multiplicación del campo Galois en el elemento de preenlace (14) se realiza esencialmente la adición módulo p^{m}-1 y en lugar de la adición en el elemento de enlace (8) una operación sustitutiva correspondiente que puede realizarse, por ejemplo, con módulos lógicos o también con una tabla. Esta operación sustitutiva está designada en las figuras 5 y 6 con la indicación de la referencia -. El elemento de enlace (8') en la rama de realimentación (7) (figura 5) o bien los elementos lógicos (8') en la rama de realimentación (7) (figura 6) realizan, consecuentemente, la formación modificada del logaritmo discreto. Contrariamente, en los elementos de preenlace (14) o bien en el elemento de preenlace (14') se realiza la adición módulo p^{m}-1.
A continuación se describe la función de las cadenas de registros de desplazamiento (1), según las figuras 5 y 6. Es sabido que en un cuerpo finito GF (p^{m}) cada elemento de cuerpo \gamma diferente de 0 puede representarse como potencia de un llamado elemento primitivo \alpha, es decir, como \alpha^{i} para i = 0....p^{m}-2. Para el campo Galois GF (2^{2}) se obtiene, por ejemplo,
\dotable{\tabskip\tabcolsep\hfil#\hfil\+#\hfil\+\hfil#\hfil\tabskip0ptplus1fil\dddarstrut\cr}{
 i \+  \hskip3cm  \+  \gamma = \alpha  ^{i} \cr \+\+\cr  0
\+ \+ 01\cr  1 \+ \+ 10\cr  2 \+ \+
11\cr}
El logaritmo discreto para los elementos de cuerpo \gamma es definido como sigue:
log \ (\gamma) = i \hskip0.5cm para \hskip0.5cm \gamma = \alpha^{i}, \ i = 0...p^{m}-2.
Si además se agrega la modificación log (\gamma)= p^{m}-1 para \gamma = 0, se obtiene la definición mínimamente modificada del logaritmo discreto, apropiada para la sustancia de la invención.
Para el caso GF (2^{2}) se obtiene para los elementos \gamma la siguiente tabla:
TABLA LOGARÍTMICA
\gamma log (\gamma)
00 11 (corresponde a 3)
01 00 (corresponde a 0)
10 01 (corresponde a 1)
11 10 (corresponde a 2)
En esta tabla los valores integrales de log (\gamma) son suministrados como notación binaria. Por la corrección matemática debe mencionarse que la formación del logaritmo conduce a valores integrales y no a elementos del cuerpo finito. Sin embargo, no es relevante para el uso de los elementos de la secuencia seudo-aleatoria, es decir de los bits. La definición introducida para el logaritmo de 0 lleva a que la función logarítmica se convierta en una función biyectiva (biunívoca) de GF (p^{m}) sobre (0,1,...p^{m}-1). Mediante la logaritmización con ayuda del logaritmo discreto de base \alpha = 10, la secuencia seudo-aleatoria descrita en relación a la figura 4 se convierte en la secuencia 11 11 00 10 01 11 10 11 11 10 01 00 11 01 11 11 01 11 11 01 00 10 00... Esta secuencia puede generarse mediante la cadena de registro de desplazamiento (1), según la figura 5.
En lugar de la multiplicación en el cuerpo del campo Galois GF (q) = GF (2^{2}) se ha realizado en lo esencial una adición módulo 2^{2}-1 = 3 y en lugar de la adición en el cuerpo finito la operación -, que se explica a continuación. La asignación inicial de las celdas de memoria (4), según la figura 4, es trasladada mediante el logaritmo discreto a la asignación inicial de las celdas de memoria (4) de la figura 5. El procedimiento es apropiado particularmente para la extensión binaria. Contrariamente, para registros de desplazamiento binarios puros (figura 1) conduce sólo a un intercambio de ceros y unos. En la siguiente tabla se muestran los enlaces en el elemento de enlace (8'), adición módulo 3 y la operación - para el registro de desplazamiento (1), según la figura 5, es decir para el cuerpo GF (2^{2}).
\vskip1.000000\baselineskip
+ 00 01 10 11
00 00 01 10 11
01 01 10 00 11
10 10 00 01 11
11 11 11 11 11
(+) elemento de enlace de la cadena de registros de desplazamiento (1), según la figura 5
\vskip1.000000\baselineskip
\sim 00 01 10 11
00 11 10 01 00
01 10 11 00 01
10 01 00 11 10
11 00 01 10 11
\sim elemento de enlace de la cadena de registros de desplazamiento (1), según la figura 5
La cadena de registros de desplazamiento (1) general para cuerpos de ampliación binaria GF (2^{m}) se muestra en la figura 6. Para la cadena de registros de desplazamiento (1), según la figura 6, han de repetirse de modo global los pasos individuales. En primer lugar, se elige una cadena de registros de desplazamiento (1) correspondiente, según la figura 3, con operaciones sobre el cuerpo GF(2^{m}). A continuación se reemplazan las multiplicaciones de cuerpo Galois esencialmente por una adición módulo 2^{m}-1. La diferencia respecto de la adición módulo 2^{m}-1 es que para la asignación de todos los unos, la salida (3) tiene asimismo la asignación todos los unos. La adición GF (2^{m}) es reemplazada por la operación \sim, que puede realizarse mediante circuito lógico o las tablas descritas anteriormente. En el caso de la implementación por tablas puede usarse el llamado logaritmo Zech y/o logaritmo Jacobi. Para obtener el resultado de la operación \sim puede colocarse:
i\sim j = j\sim i = log \ (\alpha^{i}+\alpha^{j}) = i + log \ \alpha^{(i-z(i-j))} \hskip0.5cm para \ i > j
i\sim j = 2^{m}-1 \hskip0.5cm para \ i = j
\newpage
estando el logaritmo Zech definido por la ecuación \alpha^{z(k)} = 1+\alpha^{k}. Para el cuerpo GF (2^{2}) se obtiene entonces la siguiente tabla logarítmica:
\dotable{\tabskip\tabcolsep\hfil#\hfil\+#\hfil\+\hfil#\hfil\tabskip0ptplus1fil\dddarstrut\cr}{
 i \+  \hskip3cm  \+ Z  (i)\cr \+\+\cr  00 \+ \+ 11\cr
 01 \+ \+ 10\cr  10 \+ \+ 10\cr  11 \+ \+
00\cr}
resumiendo, para todas las cadenas de registros de desplazamiento (1), según las figuras 1 a 5, puede indicarse un procedimiento para la generación de secuencias seudo-aleatorias. Este procedimiento se basa esencialmente en la formación de logaritmos discretos modificados de secuencias de registros de desplazamiento. La generación de secuencias seudo-aleatorias no se hace, en una forma de realización preferente, mediante la posterior formación de logaritmos (figuras 1 a 4), sino de modo preferente directamente en la generación de la secuencia seudo-aleatoria, tal como se muestra en las figuras 5 y 6. El procedimiento es ventajoso particularmente cuando el tamaño del alfabeto observado, o sea el cuerpo, es una segunda potencia, por ejemplo 256, pudiendo representarse este alfabeto con la ayuda de un byte.

Claims (14)

1. Procedimiento para la generación de una secuencia seudo-aleatoria en el que se desplazan elementos (\gamma) de la secuencia seudo-aleatoria con intermedio de un registro de desplazamiento (1) que tiene múltiples celdas de memoria (2) conectadas en serie, los valores de salida de cómo mínimo dos celdas de memoria (2) se enlazan entre sí, y el resultado del enlace es realimentado a una entrada (6) de una de las celdas de memoria (2) del registro de desplazamiento (1), caracterizado porque es tomado el logaritmo discreto de los elementos (\gamma) de la secuencia seudo-aleatoria y porque el logaritmo discreto ya es calculado cuando son enlazados los valores de salida del registro de desplazamiento (1).
2. Procedimiento, según la reivindicación 1, caracterizado porque la logaritmación discreta se toma de una manera modificada tal, que en lugar de la logaritmización de un elemento (\gamma) con el valor cero se inserta un valor predeterminable.
3. Procedimiento, según una de las reivindicaciones anteriores, caracterizado porque la logaritmización discreta es realizada múltiples veces.
4. Procedimiento, según una de las reivindicaciones anteriores, caracterizado porque la logaritmación discreta se toma con la ayuda de una tabla que contiene los valores de salida y de resultado.
5. Procedimiento, según una de las reivindicaciones anteriores, caracterizado porque como mínimo uno de los valores de salida a enlazar entre sí es preenlazado con un valor predeterminable antes de dicho enlace.
6. Procedimiento, según una de las reivindicaciones anteriores, caracterizado porque dicho preenlace es un enlace, preferentemente una adición.
7. Procedimiento, según una de las reivindicaciones anteriores, caracterizado porque el preenlace se realiza sobre la base de una tabla de preenlace que contiene valores de salida y de resultado o mediante circuitos lógicos.
8. Procedimiento, según una de las reivindicaciones anteriores, caracterizado porque la logaritmización discreta es realizada con ayuda del logaritmo de Zech o bien el logaritmo de Jacobi.
9. Procedimiento, según una de las reivindicaciones anteriores, caracterizado porque la tabla logarítmica está basada en el logaritmo de Zech o bien el logaritmo de Jacobi.
10. Procedimiento, según una de las reivindicaciones anteriores, caracterizado porque la realimentación es realizada de manera tal, que se genera una secuencia seudo-aleatoria con longitud de período máxima.
11. Dispositivo para la generación de una secuencia seudo-aleatoria, con un registro de desplazamiento (1) teniendo múltiples celdas de memoria (2) conectadas en serie, una rama de realimentación (7) que conecta dos salidas de registro (5) diferentes a una entrada de registro (6), y un elemento de enlace (8) para los valores de salida de los registros (2), estando dicho elemento de enlace (8) conectado por el lado de la entrada con las salidas de registro (5) y por el lado de la salida a la entrada de registro (6), caracterizado porque un elemento (8') está dispuesto para la logaritmización discreta de los elementos (\gamma) de la secuencia seudo-aleatoria, y el elemento (8') se encuentra dispuesto en la rama de realimentación (7) constituyendo el elemento de enlace (8) que logaritmiza de forma discreta los valores de salida de los niveles de registro (2).
12. Dispositivo, según la reivindicación 11, caracterizado porque el elemento (8') es un elemento de memoria en el que se encuentra almacenada una tabla logarítmica conteniendo los valores de salida y de resultado.
13. Dispositivo, según la reivindicación 11 ó 12, caracterizado porque entre una de las salidas de registro (5) y el elemento de enlace (8, 8') se encuentra un elemento de preenlace (14), en el que una entrada (15) es conectada con dicha salida (5) del nivel de registro (2), en el que otra entrada (16) puede recibir un valor predeterminado, y en el que la salida (17) está conectada a la entrada (10) del elemento de enlace (8, 8').
14. Dispositivo, según una de las reivindicaciones 11 a 13, caracterizado porque el elemento de preenlace (14) es un circuito lógico.
ES01967345T 2000-12-08 2001-09-14 Procedimiento y dispositivo para la produccion de una secuencia sendo-aleatoria mediante un logaritmo discreto. Expired - Lifetime ES2266248T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10061315 2000-12-08
DE10061315A DE10061315A1 (de) 2000-12-08 2000-12-08 Verfahren und Vorrichtung zum Erzeugen einer Pseudozufallsfolge

Publications (1)

Publication Number Publication Date
ES2266248T3 true ES2266248T3 (es) 2007-03-01

Family

ID=7666435

Family Applications (1)

Application Number Title Priority Date Filing Date
ES01967345T Expired - Lifetime ES2266248T3 (es) 2000-12-08 2001-09-14 Procedimiento y dispositivo para la produccion de una secuencia sendo-aleatoria mediante un logaritmo discreto.

Country Status (9)

Country Link
US (1) US20040054703A1 (es)
EP (1) EP1342153B1 (es)
JP (1) JP4566513B2 (es)
AT (1) ATE329306T1 (es)
CZ (1) CZ304974B6 (es)
DE (2) DE10061315A1 (es)
ES (1) ES2266248T3 (es)
PL (1) PL362501A1 (es)
WO (1) WO2002046912A1 (es)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140055290A1 (en) 2003-09-09 2014-02-27 Peter Lablans Methods and Apparatus in Alternate Finite Field Based Coders and Decoders
US7865806B2 (en) * 2006-03-03 2011-01-04 Peter Lablans Methods and apparatus in finite field polynomial implementations
US7580472B2 (en) * 2004-02-25 2009-08-25 Ternarylogic Llc Generation and detection of non-binary digital sequences
US7696785B2 (en) * 2004-02-25 2010-04-13 Ternarylogic Llc Implementing logic functions with non-magnitude based physical phenomena
US8374289B2 (en) 2004-02-25 2013-02-12 Ternarylogic Llc Generation and detection of non-binary digital sequences
US7218144B2 (en) * 2004-02-25 2007-05-15 Ternarylogic Llc Single and composite binary and multi-valued logic functions from gates and inverters
US7548092B2 (en) 2004-02-25 2009-06-16 Ternarylogic Llc Implementing logic functions with non-magnitude based physical phenomena
US20060021003A1 (en) * 2004-06-23 2006-01-26 Janus Software, Inc Biometric authentication system
US7562106B2 (en) * 2004-08-07 2009-07-14 Ternarylogic Llc Multi-value digital calculating circuits, including multipliers
US20100164548A1 (en) * 2004-09-08 2010-07-01 Ternarylogic Llc Implementing Logic Functions With Non-Magnitude Based Physical Phenomena
US7933354B2 (en) * 2006-11-22 2011-04-26 Semtech Corporation Encoding and decoding architecture and method for pipelining encoded data or pipelining with a look-ahead strategy

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4410989A (en) * 1980-12-11 1983-10-18 Cyclotomics, Inc. Bit serial encoder
JPH07101840B2 (ja) * 1989-08-01 1995-11-01 三菱電機株式会社 ディジタル雑音信号発生回路
EP0460352B1 (en) * 1990-06-07 1995-11-02 International Business Machines Corporation System for test data storage reduction
JPH04182828A (ja) * 1990-11-19 1992-06-30 Fujitsu Ltd 擬似乱数によるテーブル内エントリー選択方式
US5422895A (en) * 1992-01-09 1995-06-06 Quantum Corporation Cross-checking for on-the-fly Reed Solomon error correction code
TW256969B (es) * 1993-01-19 1995-09-11 Siemens Ag
JPH10117128A (ja) * 1996-10-08 1998-05-06 Kokusai Electric Co Ltd 疑似雑音系列符号位相制御装置
US6098192A (en) * 1997-09-17 2000-08-01 Cirrus Logic, Inc. Cost reduced finite field processor for error correction in computer storage devices
US6510228B2 (en) * 1997-09-22 2003-01-21 Qualcomm, Incorporated Method and apparatus for generating encryption stream ciphers
US6252958B1 (en) * 1997-09-22 2001-06-26 Qualcomm Incorporated Method and apparatus for generating encryption stream ciphers
EP0929040A3 (en) * 1997-12-25 2007-06-27 Nippon Telegraph and Telephone Corporation Microprocessor with data randomizing
US6326808B1 (en) * 1998-12-03 2001-12-04 Vantis Corporation Inversion of product term line before or logic in a programmable logic device (PLD)
US6208618B1 (en) * 1998-12-04 2001-03-27 Tellabs Operations, Inc. Method and apparatus for replacing lost PSTN data in a packet network

Also Published As

Publication number Publication date
CZ304974B6 (cs) 2015-02-25
ATE329306T1 (de) 2006-06-15
EP1342153B1 (de) 2006-06-07
WO2002046912A1 (de) 2002-06-13
JP4566513B2 (ja) 2010-10-20
DE50110078D1 (de) 2006-07-20
DE10061315A1 (de) 2002-06-13
JP2004515855A (ja) 2004-05-27
US20040054703A1 (en) 2004-03-18
PL362501A1 (en) 2004-11-02
CZ20031598A3 (cs) 2003-08-13
EP1342153A1 (de) 2003-09-10

Similar Documents

Publication Publication Date Title
EP2000901B1 (en) Galois field number generator
ES2266248T3 (es) Procedimiento y dispositivo para la produccion de una secuencia sendo-aleatoria mediante un logaritmo discreto.
EP2291735B1 (en) Cryptographic system including a random number generator using finite field arithmetics
JP4954941B2 (ja) 引き起こされた非位取り誤りによる暗号化
US8139764B2 (en) Closed galois field cryptographic system
JP2008299330A (ja) 閉ガロア体組合せ
CN110413257A (zh) 随机数产生电路
Cardell et al. Discrete linear models for the generalized self-shrunken sequences
Deepthi et al. Design, implementation and analysis of hardware efficient stream ciphers using LFSR based hash functions
US9696965B2 (en) Input-dependent random number generation using memory arrays
Fúster-Sabater Generation of cryptographic sequences by means of difference equations
ES2357290T3 (es) Procedimiento y dispositivo de reducción de un polinomio en un campo finito binario, en particular para una aplicación criptográfica.
Bishoi et al. Shrinking generators based on σ-LFSRs
Buchmann et al. Discrete logarithms: Recent progress
JPH10308720A (ja) M系列を任意にシフトする回路
Fúster-Sabater et al. Strategic attack on the shrinking generator
ES2293665T3 (es) Metodo para la conversion criptografica de bloques de entrada de l bits de informacion de datos digitales en bloques de salida de l bits.
Mitchell A nonlinear random number generator with known, long cycle length
JP4374504B2 (ja) 有限体上の2次多項式の求根回路
RU2743412C1 (ru) Устройство для реализации алгоритма шифрования «кузнечик» стандарта гост р 34.12-2015 и алгоритма хэш-функции «стрибог» стандарта гост р 34.11-2012
JP3936476B2 (ja) 符号生成器
JP2980588B1 (ja) 乱数発生方法及び暗号通信方法並びに乱数発生プログラムを記憶した記憶媒体
Karpinskyy et al. Masked encryption algorithm mcrypton for resource-constrained devices
KR20030059500A (ko) 에스.피.엔(spn) 구조를 가지는 블록 암호를 이용한유사난수 발생기 및 방법
Tian et al. On FCSR memory sequences