ES2312922T3 - Procedimiento de cifrado de una palabra que comprende n digitos. - Google Patents

Procedimiento de cifrado de una palabra que comprende n digitos. Download PDF

Info

Publication number
ES2312922T3
ES2312922T3 ES04100189T ES04100189T ES2312922T3 ES 2312922 T3 ES2312922 T3 ES 2312922T3 ES 04100189 T ES04100189 T ES 04100189T ES 04100189 T ES04100189 T ES 04100189T ES 2312922 T3 ES2312922 T3 ES 2312922T3
Authority
ES
Spain
Prior art keywords
digits
word
function
rounds
words
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
ES04100189T
Other languages
English (en)
Inventor
Jean-Philippe Wary
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.)
Societe Francaise du Radiotelephone SFR SA
Original Assignee
Societe Francaise du Radiotelephone SFR 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 Societe Francaise du Radiotelephone SFR SA filed Critical Societe Francaise du Radiotelephone SFR SA
Application granted granted Critical
Publication of ES2312922T3 publication Critical patent/ES2312922T3/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/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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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/08Randomization, e.g. dummy operations or using noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Reverberation, Karaoke And Other Acoustics (AREA)
  • Stereo-Broadcasting Methods (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Procedimiento de generación de una permutación seudo-aleatoria de una palabra que comprenda N dígitos, por el que: - se pone en práctica un esquema de Feistel generalizado (202-205), - las funciones de ronda del esquema de Feistel generalizado utilizadas son funciones (F i) tales que: - las palabras de entrada de las funciones de ronda son generadas por la conversión de palabras de dígitos en palabras binarias, - después, se aplica a estas palabras binarias una función de sentido único, - por último, la salida de dígitos es una función de estas palabras binarias, - se lee en una memoria (104) una palabra de dígitos a cifrar, caracterizado porque: - la función de sentido único consiste en la función de picado SHA-1 - el esquema de Feistel generalizado utilizado comprende, al menos, T = 5 rondas, y, como máximo, T = 30 rondas.

Description

Procedimiento de cifrado de una palabra que comprende N dígitos.
La invención tiene por objeto un procedimiento de cálculo seudo-aleatorio de una permutación de una palabra que comprenda N dígitos. El campo de la invención es el de la criptografía. Más concretamente, el campo de la invención es el de la criptografía aplicada al cifrado de palabras compuestas por dígitos.
Un objeto de la invención consiste en conseguir el cifrado robusto de una palabra compuesta por N dígitos, estando comprendido N en el intervalo [7, 30].
Otro objeto de la invención consiste en conseguir un cifrado rápido de una palabra compuesta por N dígitos, estando comprendido N en el intervalo [7, 30].
Otro objeto de la invención consiste en determinar una permutación seudo-aleatoria robusta en un conjunto con un número de elementos igual a 10^{N}, no siendo este número, por tanto, una potencia de 2.
Otro objeto de la invención consiste en realizar el cifrado de identificadores basados en el empleo de dígitos, como, por ejemplo, números de teléfono.
Otro objeto de la invención consiste en generar una cadena de N dígitos seudo-aleatoria, es decir, que una persona que no conozca la clave secreta utilizada para generar esta cadena no pueda distinguirla de una cadena realmente aleatoria.
Otro objeto de la invención consiste en generar cadenas de N dígitos tales que el proceso de generación garantice que la misma cadena no sea generada dos veces.
De acuerdo con el estado de la técnica, se entiende por bit una magnitud que puede presentar el valor 0 o el valor 1. Estos dos valores se representan físicamente, en un ordenador o una memoria, mediante una señal eléctrica que puede presentar 2 valores, uno asociado a 0, el otro asociado a 1. Una palabra binaria es una sucesión ordenada de
bits.
Un dígito es una magnitud que puede presentar uno de los valores siguientes: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Un dígito puede ser codificado mediante bits. En este caso, a cada dígito corresponde una palabra binaria. En general esta palabra binaria tiene una longitud de 4 bits, pero puede ser una palabra binaria de 8 bits de longitud (código ASCII) o más. Una palabra de dígitos es una sucesión ordenada de dígitos.
Una permutación es una aplicación biyectiva en un conjunto finito.
Se denomina "permutación seudo-aleatoria" una permutación generada mediante un programa informático, muy sencilla de calcular a partir de una clave secreta K, que presenta la propiedad siguiente: una persona que no conozca la clave K, en la práctica, sería incapaz de distinguir entre una permutación de este tipo y una permutación realmente aleatoria (con las mismas longitudes de entrada y salida), pues el número de cálculos a realizar para distinguirlas mediante los métodos conocidos es superior a lo que resulta factible de manera realista.
Actualmente, se considera que si se tienen que hacer 2^{80} cálculos elementales (o más) para resolver un problema, este número de cálculos resulta demasiado grande para posibles atacantes.
De acuerdo con el estado de la técnica, se conocen permutaciones en conjuntos cuyo número de elementos sea una potencia de 2. Se conocen, también, intentos para adaptar estas permutaciones a conjuntos cuyo número de elementos no sea una potencia de 2. Una técnica de este tipo, para cifrar los elementos de un conjunto E que comprenda n elementos, consiste en utilizar una permutación P que trabaje con un superconjunto SE de E que comprenda un número de elementos que sea potencia de 2. Para determinar C_{k}(x), es decir, el cifrado de un elemento x de E mediante la clave k, se empieza por calcular el conjunto V de n elementos determinado por la expresión
V = \{P_{k}(i)\},
donde i describe E
Como todos los elementos de V son diferentes, se genera un conjunto W de n elementos reemplazando cada elemento de V por el orden de este elemento en oV, siendo oV el conjunto V ordenado. Entonces, se obtiene que C_{k}(x) es el elemento de orden x de W.
Un inconveniente de este método consiste en que para cifrar/descifrar una palabra, es necesario cifrar/descifrar todas las palabras del conjunto de partida. Ello da lugar a tiempos de cálculo importantes y prohibitivos. En efecto, tales cálculos llevan mucho tiempo, lo que reduce los tiempos de respuesta de un servidor en el caso de una aplicación cliente-servidor. Si el cliente es un aparato portátil autónomo, tal como un teléfono móvil, que tenga que poner en práctica un procedimiento de este tipo, resulta todavía más desventajoso, al disponer de menos potencia de cálculo que un servidor.
Otro método conocido para conseguir una permutación de un conjunto E que comprenda un número de elementos que no sea potencia de 2 consiste en considerar un superconjunto SE de E, que comprenda un número de elementos que sea potencia de 2, y una permutación P del conjunto SE. Entonces, C_{k}(x), es decir el cifrado de x mediante una clave k, se obtiene mediante el algoritmo recurrente siguiente:
Algoritmo\ C_{k}(x)
y = P_{k}(x)
si y pertenece a E, entonces, devolver, y,
si no, devolver C_{k}(y)
fin
La debilidad de este método radica en el tiempo de convergencia del algoritmo utilizado. En efecto, puede suceder que sea necesario efectuar muchos cálculos, y, en ese caso, el tiempo de cálculo se vuelve prohibitivo.
De acuerdo con el estado de la técnica, se conocen otras soluciones de cifrado no basadas en permutaciones, es decir, no basadas en aplicaciones biyectivas. Pero en la medida en que se busque efectuar un cifrado reversible es necesario asegurarse que el resultado de un cifrado sea único. Así, actualmente, con ciertas aplicaciones, algunos empresarios u operadores, para garantizar la unicidad del cifrado almacenan desde hace años todas las cadenas de dígitos generadas. De ese modo pueden asegurarse de que cada cadena sea nueva, ya que, si generan una cadena ya utilizada, la detectan y no la vuelven a poner en circulación, sino que generan otra. Pero un procedimiento de este tipo es costoso y se muestra a la larga poco práctico, pues requiere disponer, rápidamente, de mucha memoria, y disponer de medios de salvaguarda importantes y accesibles rápidamente en locales muy protegidos. Además, el número de cálculos a realizar aumenta con el número de valores ya generados, y, por tanto, aumenta con el
tiempo.
En particular, estas tres soluciones no presentan buenos resultados cuando se trata de generar permutaciones de números del tipo de tarjeta de crédito o de teléfono. En efecto, el número de cálculos a efectuar puede ser prohibitivo y la seguridad criptográfica puede no estar garantizada. En lugar de estas tres soluciones, puede utilizarse un generador de permutaciones seudo-aleatorias de dígitos, como se describirá en lo que sigue. El hecho de que el mismo valor no sea generado dos veces se garantizará merced al carácter biyectivo del generador (genera permutaciones).
Actualmente todas las funciones de cifrado estándar, en criptografía de clave secreta, utilizan como entrada cierto número de bits, y entregan como salida cierto número de bits. Es el caso, por ejemplo, de las funciones SHA-1, DES, AES, etc. Pero en ciertas aplicaciones industriales, por ejemplo en telefonía, no se desea tener como entrada y como salida cierto número de bits, sino cierto número de dígitos. Para ello, una solución sería modificar funciones específicas, pero su estudio puede consumir mucho tiempo, y, evidentemente, habrán sido mucho menos analizadas por la comunidad criptográfica internacional. O bien, de acuerdo con la invención, se pueden construir esquemas que tengan entradas y salidas de dígitos, pero que utilicen internamente funciones criptográficas clásicas de bits con el fin de garantizar la seguridad. Un método de este tipo, para un problema particular, se pone en práctica en este
caso.
El documento de Black y Rogaway "Ciphers with Arbitrary Finite Domains/Cifradores con dominios finitos arbitrarios" (Topics in Cryptology/Tópicos de criptología, CT-RSA 2002; The Cryptographer's Track/La pista del criptógrafo, RSA Conference/Conferencia RSA, 2002, actas; Springer-Verlag, Lecture Notes in Computer Science/Apuntes de Informática, Vol. 2271; 18/22.02.2002; San José, California, EE.UU.; ISBN 3-540-43224-8; páginas 114-130), describe un procedimiento de generación de una permutación seudo-aleatoria de una palabra que comprenda cierto número de dígitos, y que pone en práctica un esquema de Feistel generalizado.
Para una mejor comprensión del sujeto y del objeto de la presente invención, se hace alusión en este caso, sucintamente, a algunas nociones relativas a los esquemas de Feistel. En primer lugar, definimos lo que se denomina esquema de Feistel.
Sea un número entero natural. Designaremos por I_{n} = {0, 1}^{n} el conjunto de las cadenas de n bits.
Sea f_{1} una función cualquiera de I_{n} en I_{n}.
Sean G y D dos elementos de I_{n}.
Se denomina [G, D] el elemento de I_{2n} cuyos n primeros bits valgan G, y, los siguientes, valgan D.
Se denomina \psi(f_{1}) la aplicación biyectiva de I_{2n} en I_{2n}, tal que: para todo [G, D] de I_{2n}, y para todo [U, V] de I_{2n}, \psi(f_{1})[G, D] = [U, V] si y sólo si:
S = D,\ y\ T = G\oplus f_{1}(D),
representando el símbolo \oplus la operación "O exclusiva" (o adición bit a bit, módulo 2).
\psi(f_{1}) es, efectivamente, una aplicación biyectiva, pues la función inversa es la función g, tal que:
g[U,\ V] = [T\oplus f_{1}(S),\ S] = [G,\ D].
Por último, siendo T un número entero que represente el número de rondas del esquema de Feistel, y siendo f_{1}, f_{2},...,f_{T} T funciones de I_{n} en I_{n} que representen las T funciones de rondas, se denomina \psi(f_{1}, f_{2},...,f_{T}) la aplicación biyectiva de I_{2n} en I_{2n} siguiente:
\psi (f_{1},\ f_{2},\ ..., f_{T}) = \psi (f_{T})... \circ \psi (f_{2})\circ \psi (f_{1}),
que representa la ley de composición de las funciones.
La aplicación biyectiva \psi(f_{1}, f_{2},...,f_{T}) se denomina "esquema de Feistel de T rondas".
Definamos ahora lo que se denomina un esquema de Feistel generalizado. La idea subyacente a esta forma diferente del esquema de Feistel se describe a continuación. En lugar de cortar en dos partes iguales de n bits, con el fin de obtener 2n bits, se puede, de manera más general, en cada ronda, cortar de manera que se obtenga una parte con a bits y otra con b bits, siendo a + b = N (N, en este caso, es el número total de bits de la entrada y la salida). Es posible, también, hacer variar a y b en función del número i de ronda, denominándose a_{i} y b_{i} los valores de a y b hechos variar con las rondas. Se obtiene, entonces, lo que se denomina un esquema de Feistel generalizado. Esta definición puede precisarse del modo siguiente:
siendo n un número natural cualquiera, se denomina siempre I_{n} = {0, 1}^{n} el conjunto de las cadenas de n bits.
Sean a, b y n tres números naturales, tales que: a + b = n.
Sea f_{1} una función cualquiera de I_{b} en I_{a}.
Sea G un elemento de I_{a}, y D un elemento de I_{b}.
Se denomina [G, D] el elemento de I_{n} cuyos a primeros bits valgan G, y los b siguientes valgan D.
Se denomina \psi'(f_{1}) la aplicación biyectiva de I_{n} en I_{n}, tal que: para todo [G, D] de I_{n}, y para todo [U, V] de I_{n}, \psi'(f_{1})[G, D] = [U, V], si y solamente si:
U = G \oplus f_{1}(D),\ y\ V=D
representando el símbolo \oplus la operación "O exclusiva" (o adición bit a bit, modulo 2).
Y siendo \lambda la función que haga rotar los a bits (el nuevo primer bit será el antiguo bit de orden (a+1), el nuevo segundo bit será el antiguo bit de orden (a+2), etc.), se tiene:
\psi(f_{1}) = \lambda \circ \psi\ '(f_{1})
Por último, siendo T un número entero que represente el número de rondas del esquema de Feistel generalizado, y siendo f_{i}, 1\leqi\leqT, funciones de I_{bi} en I_{ai} que representen las funciones de ronda, se denomina \psi(f_{1}, f_{2},...f_{T}) la aplicación biyectiva de I_{2n} en I_{2n} siguiente:
\psi (f_{1},\ f_{2},\ ...f_{T}) = \psi (f_{T})... \circ \psi (f_{2})\circ \psi (f_{1}),
que designa la ley de composición de las funciones.
La aplicación biyectiva \psi(f_{1}, f_{2},...f_{T}) se denomina "esquema de Feistel generalizado de T rondas".
\newpage
Pueden preverse, igualmente, casos particulares de esquemas de Feistel generalizados, por ejemplo, que alternen a bits y b bits. De ese modo resulta posible, también, hacer alternar funciones que cambien a bits y funciones que cambien b bits, como se describirá en lo que sigue.
Así, por ejemplo, todas las rondas impares podrán presentar una transformación del tipo:
\psi(f_{i})[G,\ D] = [U,\ V]
si, y solamente si:
U = G \oplus f_{i}(D),\ y\ V=D,
siendo f_{i} una función de I_{b} en I_{a},
y todas las rondas pares podrán presentar una transformación del tipo:
\psi(f_{j})[G,\ D] = [U,\ V]
si, y solamente si:
U = G,\ y\ V = D \oplus f_{j}(G),
siendo f_{j} una función de I_{a} en I_{b}.
Estos problemas se resuelven mediante la invención utilizando un esquema de Feistel generalizado. El esquema de Feistel generalizado utilizado consiste en un esquema que comprenda, como mínimo, 5 rondas, y, en un ejemplo preferido, 6 rondas. Pero algunas veces se consigue mejorar la resistencia al análisis criptográfico mediante un número mayor de rondas. Se puede llegar, también, hasta un número de 30 rondas sin superar tiempos de cálculo compatibles con tiempos de respuesta de un sistema que ponga en práctica la invención. Las funciones de ronda del esquema de Feistel generalizado utilizan como entrada a dígitos y entregan como salida b dígitos. Dichas funciones, que tienen que trabajar con palabras binarias, se ponen en práctica como sigue:
1.
Se calcula una palabra binaria A a partir de estos b dígitos, de una clave K y del número i de ronda; se trata, en este caso, por ejemplo, de una simple conversión en código binario de la concatenación de estos valores,
2.
Se calcula B=f(A), siendo f una función de sentido único aplicable a bits; esta etapa es, en general, la más importante para la seguridad, por el carácter de sentido único de la función f,
3.
Se calcula C = g(B), siendo g una función que utiliza como entrada una palabra binaria y entrega como salida una palabra que comprenda a dígitos; se trata, en este caso, por ejemplo, de una simple conversión de una palabra binaria en dígitos; con frecuencia, se utilizará durante la etapa 2 una función f tal que B presente exactamente el formato apropiado para una conversión directa de este tipo.
Así, las palabras binarias de salida de las funciones de ronda son transformadas de dígitos. Una función de ronda de este tipo se basa, por ejemplo, en el algoritmo de picado SHA-1 (Secure Hash Algorithm/algoritmo de picado seguro). Mediante esta construcción se obtiene una permutación seudo-aleatoria a partir de un conjunto de elementos compuestos por dígitos. La permutación, es decir, el carácter biyectivo, se garantiza por construcción, merced a la utilización de un esquema de Feistel. El aspecto seudo-aleatorio, a su vez, está garantizado, ya que ningún ataque criptográfico conocido puede tener éxito contra este modo de cifrado, debido a que, en este caso, se utilizan, al menos, 5 rondas.
Por tanto, la invención tiene por objeto un procedimiento de generación de una permutación seudo-aleatoria de una palabra que comprenda N dígitos, por el que:
-
se pone en práctica un esquema de Feistel generalizado (202-205),
-
las funciones de ronda del esquema de Feistel generalizado utilizado son funciones (F_{i}) tales que:
-
las palabras de entrada de las funciones de ronda son generadas por la conversión de palabras de dígitos en palabras binarias,
-
a continuación, se aplica a estas palabras binarias una función de sentido único,
-
por último, la salida, de dígitos, es una función de estas palabras binarias.
-
se lee en una memoria (104) una palabra de dígitos a cifrar,
caracterizado porque:
-
la función de sentido único consiste en la función de picado SHA-1,
-
el esquema de Feistel generalizado utilizado comprende, al menos, T = 5 rondas, y, como máximo, T = 30 rondas.
La invención se comprenderá mejor a partir de la lectura de la descripción que sigue y del examen de las figuras que la acompañan. Estas figuras se presentan a título indicativo de la invención, sin carácter limitativo alguno. Las figuras muestran:
- la figura 1: una ilustración de medios útiles para la puesta en práctica del procedimiento de la invención;
- la figura 2: una ilustración de las etapas del procedimiento de la invención.
De manera general, las acciones descritas se ejecutan mediante un dispositivo que comprende un microprocesador y una memoria que comprende códigos de instrucciones destinados a controlar este microprocesador. Estos códigos de instrucciones corresponden a la puesta en práctica de las etapas del procedimiento de la invención. Una palabra, ya sea binaria o de dígitos, consiste en una representación eléctrica, o, también, una señal eléctrica, de una magnitud en una memoria o un registro. Cuando se asigna una acción a un aparato, dicha acción es realizada por un microprocesador de este aparato controlado mediante códigos de instrucciones registrados en una memoria del mismo.
La figura 1 muestra un aparato 101 que pone en práctica el procedimiento, por etapas, de la invención. Un aparato de este tipo, en la práctica, consiste en un servidor de un operador de una red de telecomunicaciones. Pero el procedimiento de la invención puede ser puesto en práctica mediante cualquier dispositivo o sistema conforme a la figura 1. Por ejemplo, de manera no exhaustiva, se consideran aparatos que puedan poner en práctica el procedimiento de la invención: un teléfono móvil, un asistente personal, un ordenador portátil, fijo o en bastidor, etc.
La figura 1 muestra que el aparato 101 comprende un microprocesador 102, una memoria 103 de programa, una memoria 104 de palabras de dígitos de entrada, una memoria 105 de palabras de dígitos de salida, una memoria 106 de clave, una memoria 107 de número de rondas y circuitos 108 de interfaz. Los elementos 102 a 108 están interconectados mediante un bus 109.
En la figura 1 las memorias 103 a 107 se representan como memorias separadas. En la práctica estas memorias pueden ser, perfectamente, un único componente de memoria o un componente de memoria y registros de un circuito especializado ASIC (circuito integrado de aplicación específica).
La memoria 104 permite registrar una palabra de dígitos que tenga que ser cifrada mediante el procedimiento de la invención. La memoria 105 permite registrar el resultado del cifrado, mediante el procedimiento de la invención, de la palabra registrada en la memoria 104. La memoria 106 permite registrar una clave utilizada por el procedimiento de cifrado de la invención. La memoria 107 permite registrar el número de rondas del esquema/red de Feistel del procedimiento de la invención.
La memoria 103 está dividida en varias zonas que corresponden a diferentes funciones realizadas por el microprocesador 102. Una zona 103a comprende códigos de instrucciones que corresponden a la puesta en práctica de un esquema de Feistel. Una zona 103b comprende códigos de instrucciones que corresponden a la puesta en práctica de una función de picado, en nuestro ejemplo, SHA-1. Una zona 103c corresponde a la puesta en práctica de funciones de comunicación, más concretamente, los códigos de instrucciones de la zona 103c que permiten controlar los circuitos 108. Una zona 103d comprende códigos de instrucciones para la puesta en práctica de una función de ronda.
La memoria 103 comprende otras zonas, de trabajo y almacenamiento, no representadas en la figura 1.
Los circuitos 108 permiten conectar el aparato 101 con dispositivos exteriores, como una red, un teclado, una pantalla. Merced a estos circuitos 108 y los códigos de instrucciones de la zona 103c, es posible leer y/o escribir en las memorias 104 a 107, que son, también, memorias de definición de parámetros y de configuración del procedimiento de la invención.
La figura 2 ilustra el funcionamiento de un esquema de Feistel generalizado de acuerdo con la invención. La figura 2 muestra una etapa 201 preliminar en la que un usuario registra la palabra de dígitos que se desee cifrar. Este registro consiste en escribir en la memoria 104 la palabra M de dígitos a cifrar. Durante la etapa 201 el usuario indica, también, el contenido de la memoria 106 de clave, así como el contenido de la memoria 107 de número de rondas. La actualización de estas memorias se realiza mediante los circuitos 108.
A continuación se pasa a la primera etapa del procedimiento de cifrado propiamente dicho, que consiste en una etapa 202 de corte de la palabra M de dígitos para convertirla en dos palabras G_{0} y D_{0} binarias. Este corte es tal que M = [G_{0}, D_{0}]. Por construcción y definición, G_{0} es la parte izquierda de M y D_{0} es la parte derecha de M. Considérese, por ejemplo, que M comprende 10 dígitos, es decir, que N vale 10. En el caso de un esquema de Feistel estándar la palabra a cifrar se corta en dos partes de igual longitud. El esquema de Feistel generalizado será tratado en lo que sigue. En nuestro ejemplo G_{0} y D_{0} son palabras binarias que corresponden, cada una, a 5 dígitos. Por tanto, en este ejemplo, se tiene A = B = 5, siendo A la longitud en dígitos de la
\hbox{palabra G _{0} ,
y B la longitud en dígitos de la palabra D _{0} .}
Una palabra de dígitos tiene una representación binaria en memoria. Esta representación es, casi siempre, una serie de cuartetos (4 bits), o, respectivamente, una serie de octetos (8 bits, en el caso del código ASCII). Entonces, cada cuarteto, o, en su caso, octeto, corresponderá a un dígito. Si consideramos el caso del empleo de cuarteto, de manera conocida, la conversión de una palabra de dígitos en una palabra en código binario se realiza, simplemente, por yuxtaposición de las palabras binarias que correspondan a cada dígito. Así, 0 corresponde al cuarteto 0000, 1 al cuarteto 0001, 2 al cuarteto 0010, etc., y, así sucesivamente, hasta 9, que corresponde al cuarteto 1001. Mediante este modo de codificación, la conversión binaria, por ejemplo, de la palabra de dígitos 12345, es la palabra binaria 00010010001101000101, compuesta por 5 cuartetos.
Otra manera de convertir una palabra de dígitos en una palabra binaria es la del modo de realización preferido de la invención. Esta otra manera de conversión consiste en convertir una palabra de dígitos utilizando la palabra binaria con el mismo valor decimal que la palabra de dígitos leída. Así la palabra de dígitos 12345 es convertida en una palabra binaria que corresponda a su valor decimal, a saber, la palabra binaria 11000000111001.
Por tanto, al final de la etapa 202 se ha cortado la palabra M de dígitos para dar lugar a dos palabras G_{0} y D_{0} binarias. Por ejemplo, si la palabra de dígitos es 1234567890, entonces, G_{0} es la conversión en código binario de 12345, y D_{0} es la conversión en código binario de 67890. Después, se pasa a una etapa 202, o primera ronda del esquema de Feistel de acuerdo con la invención.
Durante la etapa 202 se calcula una palabra binaria G_{1} que, en realidad, es igual a D_{0}. Se calcula, también, una palabra binaria D_{1}, de manera que D_{1} = G_{0} \oplus F_{1}(D_{0}). En esta expresión el símbolo \oplus corresponde a una "O exclusiva" conocida, también, con el nombre de función XOR. La función F_{1} es la primera función de ronda del esquema de Feistel de acuerdo con la invención. De manera general, se denomina F_{i} la función de ronda de orden i del esquema de Feistel de acuerdo con la invención. La función F_{i} se expresa, por ejemplo, como sigue:
F_{i}(x) =\ < SHA\_1(i\ ||\ K\ ||\ x\ ||\ j)>\ (1)
En esta expresión SHA_1 () es la función de picado del mismo nombre. En la práctica se puede emplear otro algoritmo de picado como, por ejemplo, MD5. Se puede emplear, también, otra función, como AES (Advanced Encryption Standard/Estándar de cifrado avanzado) o TDES (Triple Data Encryption Standard/Estándar de cifrado de datos triple). Se trata de funciones seudo-aleatorias estándar de criptografía aplicables a palabras binarias. De manera más general, se puede emplear cualquier función o función seudo-aleatoria aplicables a bits.
El operador || es un operador de concatenación, K es la clave leída en la memoria 106, e i es el índice de la ronda de la función de Feistel. La notación < || j > significa que se inicializa el índice j, dándole el valor 0, y, después, se separan los 17 bits más significativos de la salida de la función SHA_1. Si estos 17 bits corresponden exactamente a 5 dígitos, se guarda esta salida, en otro caso, se aumenta j en una unidad y se reevalúa la expresión (1) hasta que presente esta propiedad. Esta iteración de j corresponde, de hecho, a una conversión de un número binario en número de dígitos. Así, las palabras de entrada de las funciones de ronda son generadas por la conversión de palabras de dígitos en palabras binarias. Las palabras binarias de salida de las funciones de ronda son convertidas en palabras de dígitos. Para que 17 bits correspondan exactamente a 5 dígitos, es necesario que la conversión en decimal de esta palabra de 17 bits se exprese mediante 5 cifras.
El hecho de que se separen 17 bits está relacionado con el hecho de que se trabaje con palabras de 5 dígitos de longitud. Más concretamente, está relacionado con el hecho de que la función de ronda considerada genere una palabra de 5 dígitos. En la práctica, el número de bits separados está relacionado con la longitud de la palabra de dígitos generada merced a la consideración siguiente: el número de bits separados corresponde a la longitud de una palabra binaria que permita codificar el mayor valor decimal representable mediante el número de dígitos de la palabra generada. Así, con 5 dígitos, el mayor valor decimal representable es 99 999. Se necesitan 17 bits para codificar este valor en binario. Si se considera, por ejemplo, una palabra de 7 dígitos, el mayor valor decimal representable será 9 999 999. En este caso, es necesario separar 24 bits. Este razonamiento se aplica a cualquier número de dígitos.
De acuerdo con una variante, se pone fin a la iteración de j una vez que los bits separados correspondan a un valor decimal representable mediante el número de dígitos a generar por la función de ronda.
Se recuerda que las palabras tratadas presentan una longitud de 5 dígitos porque la palabra M tiene una longitud de 10 dígitos y ha sido convertida en 2 palabras de 5 dígitos cada una.
La función descrita mediante la expresión (1) no es reversible, es decir, es una función de un solo sentido, ya que pone en práctica una función de picado no reversible. No reversible significa que no se puede determinar la entrada de una función conociendo su salida. De manera general, la irreversibilidad de la función de ronda está relacionada con el hecho de que se separen cierto número de bits de su salida, por lo que no puede ser una aplicación biyectiva.
Al final de la etapa 203 se tiene una palabra M_{1} = [G_{1}, D_{1}]. Se continúa con una etapa 204 de cálculo de una palabra M_{2} = [G_{2}, D_{2}], siendo G_{2} = D_{1}, y D_{2} = G_{1} \oplus F_{2}(D_{1}). La etapa 204 es la segunda ronda del esquema de Feistel de acuerdo con la invención. La etapa 204 es idéntica a la etapa 203, excepto porque durante etapa 204 se trabaja con la palabra M_{1} mientras que durante la etapa 203 se trabaja con la palabra M.
En el caso general de un esquema de Feistel, la ronda de orden i genera una palabra M_{i} = [G_{i}, D_{i}], siendo G_{i} = D_{i-1}, y D_{j} = G_{i-1} \oplus F_{i}(D_{i-1}).
En nuestro ejemplo, se considera un esquema de Feistel de 5 rondas, por lo que T vale 5. Así, después de la etapa 204 se efectúan la tercera y la cuarta rondas, como se ha descrito para el caso general.
Durante la ronda de orden T, en este caso, la quinta ronda y la etapa 205, se genera una palabra M_{T} = [G_{T}, D_{T}], siendo G_{T} = G_{T-1} \oplus F_{T}(D_{T-1}), y D_{T} = G_{T-1}. Así, la palabra M_{T} puede ser utilizada como entrada del esquema de Feistel, con la clave K, y se obtendrá como salida la palabra M de partida. La palabra M_{T} es el resultado del cifrado de la palabra M mediante el procedimiento de la invención. Al final de la etapa 205, la palabra M_{T} se registra en la memoria 105. Una expresión resumida del procedimiento de la invención puede escribirse:
M_{T} = Cif(M,\ K,\ T),
que indica que M_{T} es el resultado del cifrado (Cif) de M por el procedimiento de la invención mediante la clave K y un número T de rondas. Entonces, la función de descifrado es la misma, y se tiene:
M = Cif(M_{T},\ K,\ T)
La memoria 105 es leída por medio de los circuitos 108, lo que permite utilizar el resultado del cifrado.
En nuestro ejemplo, el esquema de Feistel comprende T = 5 rondas. De acuerdo con una realización preferida, el esquema de Feistel comprende 6 rondas. En la práctica se puede llegar hasta 30 rondas. Pero es necesario establecer un compromiso con la rapidez de ejecución. En efecto, cuanto mayor sea el número de rondas, mayor será el tiempo de cálculo. En la práctica, 6 rondas son suficientes para protegerse contra todos los ataques conocidos no basados en la fuerza bruta. Mediante la potencia de cálculo disponible actualmente se puede llegar hasta 30 rondas sin deteriorar sensiblemente el tiempo de respuesta de un sistema que ponga en práctica el procedimiento de la invención. Por tanto, en la práctica, el número T de rondas es inferior a 30.
En el ejemplo de la descripción se ha considerado que la palabra M comprende 10 dígitos. En la práctica, la palabra M puede comprender un número impar de dígitos. Asimismo, en la práctica, se puede efectuar un corte no simétrico de la palabra M. En estos dos casos se utiliza un esquema de Feistel generalizado, es decir, de manera que A sea diferente de B. Se hace notar que el caso A = B es un caso particular del esquema generalizado.
Considérese, por ejemplo, que M comprende N = 11 dígitos, y que A vale 5 y B vale 6. Se tiene, efectivamente, N = A + B. Se tiene, también, G_{0} con una longitud de 5 dígitos y D_{0} con una longitud de 6 dígitos. Al final de la primera ronda de la función de Feistel generalizada, se tiene G_{1} = D_{0}, con 6 dígitos, y D_{1} = G_{0} \oplus F_{1}(D_{0}), con 5 dígitos. En este caso la función F_{1} trabaja con una palabra de 6 dígitos de longitud para generar una palabra de 5 dígitos de longitud, y, por tanto, se separan 17 bits de la salida de la función SHA_1, tal como se ha descrito en lo que antecede.
Al final de la segunda ronda del esquema de Feistel, se tiene G_{2} = D_{1}, con 5 dígitos. Se tiene también D_{2} = G_{1} \oplus F_{2}(D_{1}), con 6 dígitos. En este caso la función F_{2} trabaja con una palabra de 5 dígitos de longitud para generar una palabra de 6 dígitos de longitud, y, por tanto, se separan 20 bits de la salida de la función SHA_1, de acuerdo con las consideraciones ya vistas.
En el caso de un esquema de Feistel generalizado, el corte de la palabra a cifrar no es simétrico, y, por tanto, las funciones de ronda no trabajan con el mismo número de dígitos, en función de que el índice de la ronda sea par o impar. Así, durante rondas de índice impar la función de ronda del esquema de Feistel trabaja con una palabra con B dígitos de longitud para generar una palabra con A dígitos de longitud. En el caso de rondas de índice par, la función de ronda del esquema de Feistel trabaja con una palabra con A dígitos de longitud para generar una palabra con B dígitos de longitud.
De manera general, A y B pueden presentar valores cualesquiera, en tanto que A + B = N. En la práctica, se prefiere cortar una palabra de dígitos de manera simétrica. En el caso de que N sea par, ello no supone problema alguno, se tiene A = B = N/2. En el caso de que N sea impar, se hace que A sea igual a la parte entera de N/2, y B sea igual a N - A. Se tiene así, efectivamente, A + B = N. Merced a este modo de corte, B nunca supera a A en más de una unidad, y, por tanto, se consigue el corte entero más aproximado posible a un corte simétrico.
Este procedimiento de cifrado se utiliza para cifrar palabras de dígitos utilizadas habitualmente. Tales palabras pueden ser, de manera no exhaustiva, números de teléfono (8 a 10 dígitos), números de tarjetas de crédito (16 dígitos), números de seguridad social (13 dígitos), números de cuentas bancarias, bonos electrónicos, etc. Además, estos números pueden concatenarse para formar un número mayor, con el fin de conseguir una palabra con una longitud de 30 dígitos.
De manera general, mediante el procedimiento de la invención, cuanto más larga sea la palabra a cifrar, es decir, cuanto mayor sea N, mejor será la resistencia al análisis criptográfico.
Con una palabra de entrada, una clave de cifrado determinada y cierto número de rondas del esquema de Feistel, se obtiene, siempre, la misma palabra cifrada. Con el fin de reforzar el cifrado y, especialmente, evitar los estudios de comportamiento basados en un identificador electrónico, pueden concatenarse cierto número de dígitos a cifrar con una variable aleatoria de dígitos. Por ejemplo, para cifrar un número de teléfono, en primer lugar, puede concatenarse con el número de segundos transcurridos desde el inicio de la hora en curso. A continuación se cifra el resultado de esta concatenación. De ese modo, raramente se obtiene la misma palabra cifrada para un número de teléfono determinado. El tipo de variable aleatoria utilizada puede ser cualquiera, de manera no exhaustiva, puede tratarse, por ejemplo, de un simple contador que aumente con cada utilización, de un número obtenido a partir de una serie seudo-aleatoria precalculada, etc.
Así, entre las utilizaciones posibles del procedimiento de la invención puede mencionarse la posibilidad de cifrar informaciones entre su emisor y su destinatario. Se menciona, también, la posibilidad de aislar una red de otra. Este aislamiento puede realizarse, por ejemplo, mediante un servidor del operador de una primera red. Este servidor, merced al procedimiento de la invención, transcodifica un identificador de la primera red para generar un identificador en la segunda red. De ese modo las entidades que operen en la segunda red, a excepción del operador de la primera red, no podrán identificar al usuario de la primera red.
Por tanto, la invención se aplica, particularmente, y, de modo muy ventajoso, a la telefonía. Así, en el ámbito de la protección de la vida privada de los abonados a un operador de telefonía, y de la lucha contra el correo no solicitado (conocido, también, con el nombre de "spamming"), todos los protocolos utilizan el número MSISDN (número de teléfono internacional de un abonado), codificado con 15 dígitos, como identificador del abonado, y, entonces, esta información puede ser desviada por el proveedor de servicios con el fin de establecer un perfil del usuario o enviar mensajes no solicitados. Se puede tratar de ocultar este valor mediante cifrado, pero, en tal caso, es necesario que el resultado sea compatible con el formato de los protocolos de telecomunicaciones y, especialmente, que el operador pueda descifrarlo fácilmente. Estos dos objetivos se consiguen mediante el procedimiento de la invención.
El caso del bono electrónico es, igualmente, un buen ejemplo de aplicación de la invención. La interfaz de un teléfono móvil se limita al teclado numérico, y, por tanto, el usuario está limitado, en su registro, al uso de dígitos. En el contexto de la generación de un bono electrónico (un número de bono es equivalente a un valor financiero, por ejemplo, 30 euros) y cada registro de bono permite abonar una cuenta. La gestión de los bonos en las oficinas del proveedor de servicios se simplifica si el generador de estos valores utiliza algoritmos simétricos que trabajen con dígitos. Un contador presenta valores sucesivos, de 1 a M, y el cifrado del contador ofrece datos seudo-aleatorios, todos diferentes. De ese modo resulta posible generar códigos seudo-aleatorios a partir de N dígitos, gestionables fácilmente por el proveedor de servicios, porque sólo se almacena el último valor de contador utilizado y no todos los valores de bonos ya generados para asegurarse de la unicidad de los mismos.
De manera general, en las "grandes" bases de datos, el almacenamiento se hace sin cifrar, la estructura puede ser compuesta (formatos no homogéneos, numéricos y alfanuméricos), pero las necesidades de seguridad obligan a un cifrado. En este caso, igualmente, un cifrado mediante dígitos permite proteger eficazmente los datos, y ello, sin modificar su estructura, y con un coste muy reducido.
Estos ejemplos de puesta en práctica de la invención no limitan sus ámbitos de aplicación.

Claims (7)

1. Procedimiento de generación de una permutación seudo-aleatoria de una palabra que comprenda N dígitos, por el que:
- se pone en práctica un esquema de Feistel generalizado (202-205),
- las funciones de ronda del esquema de Feistel generalizado utilizadas son funciones (F_{i}) tales que:
-
las palabras de entrada de las funciones de ronda son generadas por la conversión de palabras de dígitos en palabras binarias,
-
después, se aplica a estas palabras binarias una función de sentido único,
-
por último, la salida de dígitos es una función de estas palabras binarias,
-
se lee en una memoria (104) una palabra de dígitos a cifrar,
caracterizado porque:
- la función de sentido único consiste en la función de picado SHA-1
- el esquema de Feistel generalizado utilizado comprende, al menos, T = 5 rondas, y, como máximo, T = 30 rondas.
2. Procedimiento según la reivindicación 1, caracterizado porque el número de rondas T del esquema de Feistel es igual a 6.
3. Procedimiento según cualquiera de las reivindicaciones 1 o 2, caracterizado porque, durante las rondas impares del esquema de Feistel la función de ronda trabaja con una palabra de longitud B, y, durante las rondas pares del esquema de Feistel, la función de ronda trabaja con palabras de A dígitos de longitud, siendo A + B = N.
4. Procedimiento según la reivindicación 3, caracterizado porque A es igual a la parte entera de N/2 y B es igual a N - A.
5. Procedimiento según cualquiera de las reivindicaciones 1 a 4, caracterizado porque N es un número entero comprendido en el intervalo [7, 30].
6. Procedimiento según cualquiera de las reivindicaciones 1 a 5, caracterizado porque N es un número entero comprendido en el intervalo [10, 30].
7. Procedimiento según cualquiera de las reivindicaciones 1 a 6, caracterizado porque N es un número entero comprendido en el intervalo [13, 30].
ES04100189T 2003-02-27 2004-01-21 Procedimiento de cifrado de una palabra que comprende n digitos. Expired - Lifetime ES2312922T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0350038A FR2851862B1 (fr) 2003-02-27 2003-02-27 Procede de generation d'une permutation pseudo-aleatoire d'un mot comportant n digits
FR0350038 2003-02-27

Publications (1)

Publication Number Publication Date
ES2312922T3 true ES2312922T3 (es) 2009-03-01

Family

ID=32799793

Family Applications (1)

Application Number Title Priority Date Filing Date
ES04100189T Expired - Lifetime ES2312922T3 (es) 2003-02-27 2004-01-21 Procedimiento de cifrado de una palabra que comprende n digitos.

Country Status (10)

Country Link
US (1) US20040208321A1 (es)
EP (1) EP1455478B1 (es)
JP (1) JP2004258667A (es)
CN (1) CN1536810A (es)
AT (1) ATE407492T1 (es)
DE (1) DE602004016236D1 (es)
DK (1) DK1455478T3 (es)
ES (1) ES2312922T3 (es)
FR (1) FR2851862B1 (es)
PT (1) PT1455478E (es)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050182946A1 (en) * 2004-02-13 2005-08-18 Will Shatford Fast hashing function for pseudo-random generator
US7760874B2 (en) 2004-07-14 2010-07-20 Broadcom Corporation Method and system for implementing FI function in KASUMI algorithm for accelerating cryptography in GSM/GPRS/EDGE compliant handsets
US20060013387A1 (en) * 2004-07-14 2006-01-19 Ruei-Shiang Suen Method and system for implementing KASUMI algorithm for accelerating cryptography in GSM/GPRS/EDGE compliant handsets
US7688972B2 (en) 2004-07-14 2010-03-30 Broadcom Corporation Method and system for implementing FO function in KASUMI algorithm for accelerating cryptography in GSM (global system for mobile communication)GPRS (general packet radio service)edge(enhanced data rate for GSM evolution) compliant handsets
US20060037995A1 (en) * 2004-08-20 2006-02-23 Texas Instruments Incorporated Heatslug to leadframe attachment
US7627115B2 (en) 2004-08-23 2009-12-01 Broadcom Corporation Method and system for implementing the GEA3 encryption algorithm for GPRS compliant handsets
JP2007199156A (ja) * 2006-01-24 2007-08-09 Sony Corp 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム
US8295250B2 (en) * 2006-07-24 2012-10-23 Qualcomm Incorporated Code interleaving for a structured code
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
JP5023624B2 (ja) * 2006-09-01 2012-09-12 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4967544B2 (ja) * 2006-09-01 2012-07-04 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
WO2008053650A1 (en) * 2006-10-30 2008-05-08 Nec Corporation Common key block encrypting device, its method, its program, and recording medium
FR2927497B1 (fr) * 2008-02-07 2010-02-12 Alcatel Lucent Dispositif de conversion bidirectionnelle d'identifiants de communication en adresses de communication pour l'interfonctionnement entre reseaux de types differents.
CN103595539B (zh) * 2013-11-26 2016-08-24 南开大学 保留格式的数值型个人识别信息的加密方法
WO2017068468A1 (en) * 2015-10-21 2017-04-27 Atul JINDAL System and method for customer engagement and reward computation
GB2570015B (en) * 2018-06-29 2020-03-11 Txtnation Holdings Ltd Improved gateway system and method
GB2581266B (en) * 2018-06-29 2021-08-25 Txtnation Holdings Ltd Improved gateway system and method
FR3084760A1 (fr) 2018-08-03 2020-02-07 Commissariat A L'energie Atomique Et Aux Energies Alternatives Generateur d'une permutation pseudo-aleatoire

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB762284A (en) * 1954-01-07 1956-11-28 Nat Res Dev Digital encoders and decoders
FR1205568A (fr) * 1957-05-14 1960-02-03 Ibm Dispositifs à superconduction traitant des informations et utilisant des écrans magnétiques
US3071739A (en) * 1961-04-21 1963-01-01 Bell Telephone Labor Inc Digital phase equalizer, automatically operative, in accordance with time-inverted impulse response of the transmission circuit
US3358083A (en) * 1964-07-28 1967-12-12 Bell Telephone Labor Inc Time-division multiplex digital transmission arrangement employing a linear digital filter
BE771162A (fr) * 1970-08-17 1972-02-11 Automatisme Cie Gle Systeme de localisation de mobiles sur une trajectoire donnee
US3740725A (en) * 1971-06-16 1973-06-19 Nasa Automated attendance accounting system
US3956615A (en) * 1974-06-25 1976-05-11 Ibm Corporation Transaction execution system with secure data storage and communications
US4183096A (en) * 1978-05-25 1980-01-08 Bell Telephone Laboratories, Incorporated Self checking dynamic memory system
US4195350A (en) * 1978-06-19 1980-03-25 Cbs Inc. Method and apparatus for eliminating deadband in digital recursive filters
US4785290A (en) * 1980-06-23 1988-11-15 Light Signatures, Inc. Non-counterfeitable document system
DE3400665A1 (de) * 1984-01-11 1985-07-18 Robert Bosch Gmbh, 7000 Stuttgart Differentielles pulscodemodulationssystem
US6614914B1 (en) * 1995-05-08 2003-09-02 Digimarc Corporation Watermark embedder and reader
KR0156152B1 (ko) * 1995-05-12 1998-11-16 구본준 최대값 선택회로
CA2164768C (en) * 1995-12-08 2001-01-23 Carlisle Michael Adams Constructing symmetric ciphers using the cast design procedure
CA2173688C (en) * 1996-04-09 2000-01-18 Hideo Shimizu Encryption apparatus and method capable of controlling encryption process in accordance with an internal state
US6031911A (en) * 1996-07-18 2000-02-29 Entrust Technologies, Ltd. Practical S box design
US5802054A (en) * 1996-08-15 1998-09-01 3Com Corporation Atomic network switch with integrated circuit switch nodes
US5913203A (en) * 1996-10-03 1999-06-15 Jaesent Inc. System and method for pseudo cash transactions
US5949884A (en) * 1996-11-07 1999-09-07 Entrust Technologies, Ltd. Design principles of the shade cipher
US6182216B1 (en) * 1997-09-17 2001-01-30 Frank C. Luyster Block cipher method
US6189095B1 (en) * 1998-06-05 2001-02-13 International Business Machines Corporation Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks
JP2000066587A (ja) * 1998-08-24 2000-03-03 Toshiba Corp データ処理装置及び通信システム並びに記録媒体
IL132898A (en) * 1999-11-11 2009-09-01 Nds Ltd System for bitstream generation
AU2086301A (en) * 1999-12-10 2001-06-18 Auripay, Inc. Method and apparatus for improved financial instrument processing
WO2001050428A1 (en) * 2000-01-05 2001-07-12 Colin Mitchell Method and apparatus for authenticating financial transactions
AU2002214613A1 (en) * 2000-11-08 2002-05-21 Digimarc Corporation Content authentication and recovery using digital watermarks
WO2002084879A2 (en) * 2001-04-13 2002-10-24 The Code Coproration System and method for encoding and decoding data and references to data in machine-readable graphical codes
CA2449171C (en) * 2001-06-06 2009-08-11 Spectra Systems Corporation Marking and authenticating articles
JP2003122726A (ja) * 2001-06-07 2003-04-25 Hitachi Ltd コンテンツ制御方法及びその実施装置並びにその処理プログラム
US6889349B2 (en) * 2001-08-22 2005-05-03 Hewlett-Packard Development Company, L.P. Digital event sampling circuit and method
US7236592B2 (en) * 2002-02-01 2007-06-26 International Business Machines Corporation Efficient stream cipher system and method
US7221756B2 (en) * 2002-03-28 2007-05-22 Lucent Technologies Inc. Constructions of variable input length cryptographic primitives for high efficiency and high security
US20030200489A1 (en) * 2002-04-18 2003-10-23 Laszlo Hars Secure method of and system for rewarding customers
US7082449B2 (en) * 2002-05-03 2006-07-25 Sun Microsystems, Inc. Method and apparatus for generating pseudo-random numbers
US7248696B2 (en) * 2002-09-12 2007-07-24 International Business Machines Corporation Dynamic system bus encryption using improved differential transitional encoding
JP4141775B2 (ja) * 2002-09-20 2008-08-27 株式会社ルネサステクノロジ 半導体集積回路装置

Also Published As

Publication number Publication date
FR2851862A1 (fr) 2004-09-03
PT1455478E (pt) 2009-01-02
EP1455478A1 (fr) 2004-09-08
US20040208321A1 (en) 2004-10-21
DE602004016236D1 (de) 2008-10-16
EP1455478B1 (fr) 2008-09-03
DK1455478T3 (da) 2008-12-15
CN1536810A (zh) 2004-10-13
JP2004258667A (ja) 2004-09-16
FR2851862B1 (fr) 2006-12-29
ATE407492T1 (de) 2008-09-15

Similar Documents

Publication Publication Date Title
ES2312922T3 (es) Procedimiento de cifrado de una palabra que comprende n digitos.
JP3339688B2 (ja) 非決定論的ミクスチャー発生器ストリーム暗号化システム
Al-Ghamdi et al. Security enhancement of shares generation process for multimedia counting-based secret-sharing technique
KR101246490B1 (ko) 갈루아 폐체 암호 시스템
KR101267109B1 (ko) 준군을 이용한 암호화 프리미티브, 에러 코딩, 및 의사난수 향상 방법
US20040101142A1 (en) Method and system for an integrated protection system of data distributed processing in computer networks and system for carrying out said method
JP2008513811A (ja) 計算変換の方法及びシステム
Sarkar et al. Role of cryptography in network security
EP3970399B1 (en) A computer-implemented method of performing feistel-network-based block-cipher encryption of plaintext
Stallings NIST block cipher modes of operation for authentication and combined confidentiality and authentication
JP7136226B2 (ja) 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム
Tarawneh Cryptography: Recent Advances and Research Perspectives
Geetha et al. Survey on security mechanisms for public cloud data
KR100308893B1 (ko) 엘.에프.에스.알을 이용한 확장 알.씨.4 암호화 방법
Dworkin Block cipher modes of operation: The CCM mode for authentication and confidentiality
Upadhyay et al. Secure migration of mobile agent using AES & secret sharing approach
Chase et al. Extending the Hill Cipher
RU2140709C1 (ru) Способ криптографического преобразования блоков цифровых данных
Tarawneh Perspective Chapter: Cryptography–Recent Advances and Research Perspectives
AU750408B2 (en) A method of combining a serial keystream output with binary information
JP2001509608A (ja) デジタル・データのlビットの入力ブロックをlビットの出力ブロックに暗号変換するための方法
Biswas Triple layered Security on Android based SMS transaction
Arshad et al. The design and implementation of database encryption
AU750323B2 (en) A method of generating a key for a public key encryption system
CN118101241A (zh) 基于密钥封装机制的电子医疗数据隐私保护方法及系统