ES2614946T3 - Procedimiento de obtención de claves de cifrado, terminal, servidor y productos de programas de ordenador correspondientes - Google Patents
Procedimiento de obtención de claves de cifrado, terminal, servidor y productos de programas de ordenador correspondientes Download PDFInfo
- Publication number
- ES2614946T3 ES2614946T3 ES11719826.7T ES11719826T ES2614946T3 ES 2614946 T3 ES2614946 T3 ES 2614946T3 ES 11719826 T ES11719826 T ES 11719826T ES 2614946 T3 ES2614946 T3 ES 2614946T3
- Authority
- ES
- Spain
- Prior art keywords
- key
- client
- server
- records
- data structure
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000004590 computer program Methods 0.000 title claims description 10
- 238000004364 calculation method Methods 0.000 claims abstract description 47
- 230000006870 function Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 102100023600 Fibroblast growth factor receptor 2 Human genes 0.000 description 2
- 101000827688 Homo sapiens Fibroblast growth factor receptor 2 Proteins 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
Procedimiento de obtención de al menos una clave de cifrado de al menos unos datos transmitidos desde un cliente hacia un servidor caracterizado porque comprende: - una etapa de determinación de un número R de registros disponibles dentro de dicho cliente para realizar una pluralidad de cálculos de claves de cifrado; - una etapa de determinación de un número N máximo de iteraciones necesarias en una obtención de al menos una clave de cifrado en dicho servidor; - una etapa de obtención de una estructura de datos representativos del estado de cálculo de la clave realizado dentro de dichos R registros disponibles; - una etapa de cálculo de dicha al menos una clave de cifrado en función: - de dicho número de registros disponibles R de dicho cliente, - efectuando como máximo N llamadas a una función F pseudoaleatoria y - de dicha estructura de datos; de manera que dicha al menos una clave de cifrado pueda obtenerse entre una combinación de como máximo claves de cifrado a partir de un secreto previamente compartido entre dicho servidor y dicho cliente.
Description
5
10
15
20
25
30
35
40
45
50
DESCRIPCION
Procedimiento de obtencion de claves de cifrado, terminal, servidor y productos de programas de ordenador correspondientes
1 Campo de la invencion
La presente invencion se refiere al campo de la proteccion de intercambio de datos entre dos dispositivos.
La presente invencion se refiere mas particularmente a la proteccion con la ayuda de claves criptograficas que permiten un cifrado de los datos intercambiados. Los datos intercambiados pueden ser por ejemplo unos datos de autenticacion de un usuario tal como un identificador, una contrasena o incluso un codigo confidencial.
2 Soluciones de la tecnica anterior
En un contexto de cifrado de codigos confidenciales o de cifrado de los datos que se refieren a un poseedor de tarjeta (numero acceso personal, fecha de caducidad, etc.), el “American National Standards Institute" (ANSI) requiere el uso de un esquema de gestion de claves criptograficas de acuerdo con la norma ANSI X9.24. Este documento propone tres procedimientos posibles para el cifrado, cuyo procedimiento “Derive Unique Key Per Transaction” (DUKPT, literalmente en espanol “Deduccion de clave unica por transaccion”). Este procedimiento es unanimemente reconocido como el mas desarrollado en terminos de seguridad.
Esta tecnica DUKPT de gestion de claves criptograficas esta cada vez mas implementada y se impone naturalmente como la norma para cifrar unos datos que se refieren a un poseedor de tarjeta (codigo confidencial, numero de acceso personal, fecha de caducidad, etc.).
Segun esta tecnica DUKPT, en cada transaccion, se deduce una nueva clave en un terminal para cifrar los datos sensibles, datos que se enviaran al mismo tiempo que un contador que permite a continuacion al servidor encontrar la clave utilizada por el terminal (por supuesto, se considera que se comparte un secreto entre el terminal y el servidor una vez inicializado el sistema).
Para mas precisiones a proposito de la tecnica DUKPT, se podra hacer referencia al documento ANSI X9.24.
Este procedimiento presenta dos ventajas en terminos de seguridad. En primer lugar, todas las claves criptograficas deducidas seran diferentes para cada transaccion. Esto permite limitar grandemente los ataques ffsicos sobre las claves de transaccion puesto que cada una de ellas no se utilizara mas que una sola y unica vez. Ademas, DUKPT es “forward secure”: en cualquier momento, si una parte o la integridad de la informacion secreta contenida en el terminal queda comprometida, el atacante no podra encontrar las claves criptograficas utilizadas por las transacciones anteriores. Esto permite limitar grandemente el impacto que tendna cualquier transgresion de un terminal (de pago por ejemplo).
La tecnica DUKPT padece sin embargo de algunos inconvenientes que ralentizan su generalizacion.
De manera practica, el esquema DUKPT descrito en el documento ANSI X9.24 permite generar algo mas de un millon de claves (y por tanto gestionar otras tantas transacciones). Estas ventajas en terminos de seguridad implican unos inconvenientes. Inicialmente, un terminal que implemente DUKPT debe reservarse en la memoria protegida veintiun registros de claves durante todo el ciclo de la vida del DUKPT. Estos registros se utilizan para calcular las claves deducidas. La memoria protegida esta basten limitada en la practica y esta limitacion se convierte muy rapidamente en problematica cuando se desean utilizar varios DUKPT en un mismo terminal (lo que es frecuentemente el caso). Un registro es un emplazamiento espedfico de la memoria dedicado a un uso particular, en el marco de la presente divulgacion.
Ademas, en el servidor, una vez recibido el contador de parte del terminal, son necesarios un cierto numero de calculos para permitir al servidor deducir la clave utilizada por el terminal. DUKPT garantiza que la clave se deduce como maximo al cabo de diez iteraciones. Es necesario tomar nota de que estos calculos son relativamente largos, y representan una parte predominen en la carga del procesador del servidor. En otros terminos, la tecnica DUKPT:
- requiere mucha memoria protegida en el terminal;
- requiere muchos calculos en el servidor de descifrado;
- es una solucion compleja de implantar y no es modulable.
De ese modo, para promover la solucion propuesta por DUKPT, existe por tanto una necesidad de proporcionar una tecnica de deduccion de claves que resuelva los inconvenientes previamente descritos.
3 Sumario de la invencion
La invencion no comprende estos inconvenientes de la tecnica anterior. En efecto, la invencion se refiere a un procedimiento de obtencion de al menos una clave de cifrado de al menos unos datos transmitidos desde un cliente hacia un servidor caracterizado porque comprende:
5
10
15
20
25
30
35
40
45
50
- una etapa de determinacion de un numero R de registros disponibles dentro de dicho cliente para realizar una pluralidad de calculos de claves de cifrado;
- una etapa de determinacion de un numero N maximo de iteraciones necesarias en una obtencion de al menos una clave de cifrado en dicho servidor;
- una etapa de obtencion de una estructura de datos representativos del estado de calculo de la clave realizado dentro de dichos R registros disponibles;
- una etapa de calculo de dicha al menos una clave de cifrado en funcion:
- de dicho numero de registros disponibles R de dicho cliente,
- efectuando al menos N llamadas a una funcion F pseudoaleatoria y
- de dicha estructura de datos;
de manera que dicha al menos una clave de cifrado pueda obtenerse entre una combinacion de como maximo T = CN+n -1 claves de cifrado a partir de un secreto previamente compartido entre dicho servidor y dicho cliente.
De ese modo, en funcion de las limitaciones, se determinan los parametros R, N y T con el fin de determinar unas claves de cifrado que corresponden a unas situaciones diferentes. En efecto, esta tecnica puede adaptarse completamente a una situacion precisa (mientras que la DUKPT es completamente fija en sus parametros a causa de su complejidad). De ese modo, es facil, gracias a la invencion, gestionar con la misma implantacion de software y hardware dos situaciones opuestas y adaptarse en consecuencia para maximizar los rendimientos.
Segun un modo de realizacion particular, el numero R de registros disponibles y el numero N maximo de iteraciones se definen en funcion de las limitaciones del servidor y de las limitaciones del cliente y de las limitaciones de seguridad.
De ese modo, es posible establecer, para un numero de claves que se va a poder generar constante T (denominado “nivel de seguridad T”), un compromiso entre la carga del servidor, de la que se deduce el parametro N y las capacidades del cliente, principalmente en terminos de capacidad de memoria protegida, representada por el parametro R, que define el numero de los registros disponibles dentro del cliente. Es igualmente posible hacer variar el nivel de seguridad T para determinar un compromiso entre el nivel de seguridad T y los parametros del cliente y/o del servidor.
Las etapas de determinaciones consisten en establecer (obtener) un consenso sobre la eleccion de los valores de los parametros N, R, T entre el servidor y el cliente.
La etapa de establecimiento de los parametros N, R, T puede ser dinamica: el servidor y el cliente intercambian unas informaciones para modificar al menos uno de los parametros N, R, T, es decir:
- una unica vez durante el establecimiento de la comunicacion entre el servidor y el cliente: antes de la primera transaccion (o la primera comunicacion entre el cliente y el servidor), el cliente y el servidor se ponen de acuerdo sobre la eleccion de los parametros N, R, T
- “en el transcurso de la vida” del cliente, se cambia de secreto compartido inicial y se inicializan los parametros N, R, T: en efecto, habiendose borrado la clave IK en el cliente, se determina una nueva clave IK entre el servidor y el cliente (en funcion de las claves presentes en los registros de los clientes o en funcion de una nueva clave intercambiada entre el cliente y el servidor).
La etapa de establecimiento de los parametros N, R, T puede ser estatica: se trata del caso en el que todo es fijo previamente como en la tecnica DUKPT usual.
Finalmente, las limitaciones de seguridad llevan al numero de claves que se pueden deducir.
Segun un modo de realizacion particular, dicho procedimiento comprende ademas, cuando se implementa dentro de dicho cliente, una etapa de emision de un dato que representa dicha estructura de datos representativos del estado de calculo de la clave realizado dentro de dichos R registros disponibles, registros denotados por Rr, ...Ri.
El dato correspondiente a dicha estructura de datos representativos de un estado de calculo de la clave realizado dentro de dichos R registros disponibles es o bien un contador que corresponde al numero de la transaccion en curso o bien a dicha estructura de datos en tanto que tal.
Segun una caractenstica particular, caracterizado porque esa estructura de datos representativos de un estado de calculo de la clave realizado dentro de dichos R registros disponibles es una concatenacion de R numeros enteros, st = D = Dr, ... Di representando cada entero Di una distancia entre dicho secreto previamente compartido entre dicho servidor y dicho cliente, y una clave almacenada en un registro Ri de dicho cliente, correspondiendo dicha distancia a un numero de iteraciones de dicha funcion F pseudoaleatoria.
Segun un modo de realizacion particular, dicho procedimiento comprende:
- una etapa de determinacion, partiendo del registro Ri hasta como maximo el registro Rr, de una posicion p del
5
10
15
20
25
30
35
40
45
50
55
registro mas pequeno Rp, para el que una distancia Dp asociada es estrictamente mas pequena que el numero N+1, comprendiendo dicho registro Rp una clave K de cifrado, utilizada para una transaccion dada;
- una etapa de actualizacion de dicha estructura de datos que comprende:
cuando Dp < N:
◦ una etapa de actualizacion de los p registros Rp, ...Ri calculando a partir de dicha clave Kde registro, de dicha funcion F pseudoaleatoria, de dicha estructura de datos D y de un numero entero i, tal que Ri = F(K, D, i) para 1<= i <= p;
◦ una etapa de actualizacion de dicha estructura de datos de manera que Di = Dp + 1 siendo 1 <= i <= p;
cuando Dp = N, una etapa de borrado del contenido de dicho registro Rp y una etapa de actualizacion del numero Dp = Dp + 1 = N + 1.
Segun un modo de realizacion particular, cuando se implementa dentro de dicho servidor, dicha etapa de obtencion comprende:
- una etapa de recepcion de un dato que representa dicha estructura de datos representativos de un estado de calculo de la clave realizado dentro de dichos R registros disponibles;
- una etapa de lectura de dicho dato recibido que suministra dicha estructura de datos representativos;
- una etapa de calculo de dicha estructura de datos representativos de un estado de calculo de la clave realizado dentro de dichos R registros disponibles cuando dicha estructura de datos representativos no se lee directamente en dicho dato recibido.
Segun un modo de realizacion particular, dicha estructura de datos se define como una concatenacion de R numeros enteros st = D = Dr, ... D1 en la que cada numero entero Di representa una distancia entre dicho secreto previamente compartido entre dicho servidor y dicho cliente, y una clave almacenada en un registro Ri de dicho cliente, y porque la etapa de calculo de dicha al menos una clave de cifrado comprende:
- una etapa de inicializacion de una instancia local d a 1 y una posicion de registro p tal que p = p’, siendo p’ un numero que corresponde a la posicion de mayor peso, partiendo del registro Rr hasta el registro R1, tal que Dp >
1;
- una primera etapa de calculo para obtener una clave K = F(secreto previamente compartido, 0R, p’) en la que 0R corresponde a R veces 0,
- y al menos una iteracion:
• de un calculo para obtener una clave K = F(K, gp.d(D), p) en la que gp,v(D) = DR, ...D’1 para la que D’i = N +1
si i esta comprendido entre 1 y p-1, D’i = d si i = p y D’i = Di si i esta comprendido entre p+1 y R y de una etapa para actualizar la variable d tal que d = d+1 en tanto que se verifique la condicion siguiente: d < Dp - 1;
• si el numero p =1, una etapa de calculo que consiste en obtener una clave K = F(K, gpj(D), p) que corresponde entonces a la clave compartida temporalmente con el cliente y detener la iteracion de las etapas;
• determinar una posicion p’ tal que Dp• > Dp;
• Si Dp’! = N+1, una etapa que consiste en calcular una clave K = F(K, gp,d(D), p’) y una etapa de actualizacion de las variables p =p’ y d = d+1.
• Si no, efectuar una etapa que consiste en calcular una clave K = F(K, gp,d(D), p’+1) que corresponde entonces a la clave compartida temporalmente con el cliente y detener la iteracion de las etapas.
Segun otro aspecto, la invencion se refiere a un dispositivo de obtencion de al menos una clave de cifrado de al menos unos datos transmitidos desde un cliente hacia un servidor. Segun la invencion, un dispositivo de ese tipo comprende:
- unos medios de determinacion de un numero R de registros disponibles dentro de dicho cliente para realizar una pluralidad de calculos de claves de cifrado;
- unos medios de determinacion de un numero N maximo de iteraciones necesarias en una obtencion de al menos una clave de cifrado en dicho servidor;
- unos medios de obtencion de una estructura de datos representativos del estado de calculo de la claves realizado dentro de dichos R registros disponibles;
- unos medios de calculo de dicha al menos una clave de cifrado en funcion:
- de dicho numero de registros disponibles R de dicho cliente,
- efectuando como maximo N llamadas a la funcion F pseudoaleatoria y
- de dicha estructura de datos;
de manera que dicha al menos una clave de cifrado pueda obtenerse entre una combinacion T = C^+N -1 de claves de cifrado a partir de un secreto previamente compartido entre dicho servidor y dicho cliente.
Segun otro aspecto, la invencion se refiere a un producto de programa de ordenador que puede telecargarse desde una red de comunicacion y/o almacenado en un soporte legible por ordenador y/o ejecutable por un
5
10
15
20
25
30
35
40
45
50
microprocesador. Segun la invencion, un programa de ese tipo comprende unas instrucciones de codigo de programa para la ejecucion del procedimiento de obtencion tal como se ha descrito anteriormente.
Segun otro aspecto, la invencion comprende igualmente una senal de obtencion de al menos una clave de cifrado de al menos unos datos transmitidos desde un cliente hacia un servidor. Segun la invencion, una senal de ese tipo comprende una estructura de datos representativos del estado de calculo de la claves de cifrado realizado dentro de dicho cliente, siendo un contenido de dicha estructura funcion de un numero R de registros disponibles dentro de dicho cliente para realizar una pluralidad de calculos de claves de cifrado y de un numero N maximo de iteraciones necesarias para una obtencion de al menos una clave de cifrado en dicho servidor, de manera que dicha al menos una clave de cifrado pueda obtenerse entre una combinacion de un maximo de T = C^+N -1 claves de cifrado a partir de un secreto previamente compartido entre dicho servidor y dicho cliente.
4 Lista de las figuras
Surgiran mas claramente otras caractensticas y ventajas de la invencion con la lectura de la descripcion que sigue de un modo de realizacion preferido, dado a tftulo de simple ejemplo ilustrativo y no limitativo, y de los dibujos adjuntos, entre los que:
- la figura 1 presenta un sinoptico de la tecnica de la invencion;
- la figura 2 ilustra la tecnica de la invencion en un cliente;
- la figura 3 ilustra la tecnica de la invencion en un servidor;
- la figura 4 ilustra la estructura de un cliente;
- la figura 5 ilustra la estructura de servidor.
5 Descripcion detallada de la invencion
5.1 Recordatorio del principio de la invencion
La invencion propone un nuevo procedimiento de implementacion del DUKPT, procedimiento en el que la informacion transmitida desde el terminal al servidor permite reducir por un lado la cantidad de memoria protegida utilizada en el terminal y por otro parte reducir, en el servidor, el numero de iteraciones necesarias para el descubrimiento de la clave generada por el terminal. El procedimiento de la invencion permite por tanto:
- disminuir la cantidad de memoria protegida utilizada en el terminal;
- reducir el numero de calculos en el servidor de descifrado.
De manera complementaria e inesperada, los presentes inventores han constatado igualmente que el procedimiento propuesto incrementa el nivel de seguridad del DUKPT. En efecto, cuando el procedimiento propuesto se implementa en un terminal que comprende una memoria protegida suficiente y un servidor dedicado que efectua los calculos de manera rapida, es posible calcular no un millon de claves (como es este el caso con DUKPT que utiliza veintiun registros y diez iteraciones), sino cuarenta millones, siempre utilizando veintiun registros y diez iteraciones.
De ese modo, se describe, en la presente solicitud una nueva tecnica que mejora del algoritmo DUKPT original. Las garantfas de seguridad son exactamente las mismas, a saber una clave unica por transaccion asf como el hecho de que una clave que sea comprometida no compromete las claves anteriores y siguientes (“forward security” en ingles). Por el contrario, se mejoran los rendimientos y la memoria requerida.
Por ejemplo, la utilizacion clasica consiste en poder generar al menos un millon de claves con una garantfa de que cada clave de transaccion se deducira en el servidor con un maximo de diez iteraciones. En esta situacion, el procedimiento de la invencion permite no utilizar mas que trece registros en el terminal en lugar de los veintiun registros requeridos para DUKPT. Este tipo de mejora facilita la implantacion de este tipo de gestion de claves criptograficas.
Ademas, es primordial hacer notar que la tecnica de la invencion es mas simple que DUKPT y sobre todo modulable. En efecto, la tecnica de la invencion puede adaptarse completamente a una situacion precisa (mientras que la DUKPT tal como esta propuesta actualmente es completamente fija en sus parametros a causa de su complejidad). De ese modo, es muy facil, con la tecnica de la invencion, poder gestionar con la misma configuracion dos situaciones diametralmente opuestas y adaptarse en consecuencia para maximizar los rendimientos. Esta modularidad se opera con la ayuda de tres parametros:
- el numero de registros R disponibles en el terminal;
- el numero maximo de iteraciones N en el servidor para encontrar la clave;
- el numero total de claves distintas T que pueden ser generadas.
De ese modo, para un nivel de seguridad dado (por ejemplo T es superior o igual a 1 millon), es posible con la tecnica de la invencion, hacer variar a la vez R y N en funcion de la situacion del terminal (el numero de registros R de los que dispone) y del servidor (el numero de iteraciones N que puede aceptar en funcion de su carga). De ese modo, para un primer terminal, R puede ser por ejemplo igual a 13 y N igual a 10 en el servidor, mientras que para
5
10
15
20
25
30
35
40
45
50
un segundo terminal, R puede ser por ejemplo igual a 14 y N igual a 9 en el servidor. El nivel de seguridad (por ejemplo el numero T es superior o igual a 1 millon) es el mismo.
Esta modularidad, tal como se presenta, no es posible con la tecnica anterior. Esta modularidad es posible, segun la invencion, implementando dos procedimientos: uno en el terminal (el cliente), el otro en el servidor. La ejecucion de estos procedimientos y la transmision de datos realizada por el terminal al servidor permiten resolver el problema de ausencia de modularidad de las tecnicas anteriores y como consecuencia los problemas de tamano de memoria y los problemas de carga de los servidores.
Se presenta, en relacion con la figura 1, el principio general de la invencion tal como se implementa a la vez en el lado cliente y en el lado servidor. Existen unas disparidades entre el cliente y el servidor. Se describiran a continuacion. El procedimiento de la invencion comprende, en su interpretacion mas amplia:
- una etapa (10) de determinacion de un numero R de registros disponibles dentro de dicho cliente (1) para realizar una pluralidad de calculos de claves de cifrado;
- una etapa (20) de determinacion de un numero N maximo de iteraciones necesarias en una obtencion de al menos una clave de cifrado en dicho servidor (2);
- una etapa (30) de obtencion de una estructura de datos (st) representativos de un estado de calculo de las claves realizado dentro de dichos R registros disponibles;
- una etapa (40) de calculo de dicha al menos una clave (K) de cifrado en funcion:
◦ de dicho numero de registros R disponibles de dicho cliente,
◦ efectuando como maximo N llamadas a una funcion F pseudoaleatoria y
◦ de dicha estructura de datos;
de manera que dicha al menos una clave de cifrado pueda obtenerse entre una combinacion de T = C^+N -1 claves de cifrado a partir de un secreto previamente compartido entre dicho servidor y dicho cliente.
La combinacion T = C^+N
1 se denota igualmente como T =
R + N N
1 en ciertos pasajes del documento.
En otros terminos:
Sea IK una clave originalmente compartida entre el terminal y el servidor. Se supone que esta clave esta compuesta de k bits y se desea que las claves de transaccion sean del mismo tamano. Es decir F: {0,1}* ^ {0,1}k una funcion pseudoaleatoria. Se indica por || la operacion de concatenacion.
Lado del terminal
El terminal se inicializa primero rellenando sus R registros como sigue: para el j-esimo registro Rj, el valor contenido en este registro es Rj = F(IK || j). Paralelamente, facilitar la comprension, se mantiene actualizada una tabla Tbl de R contadores locales, todos inicializados a uno. El contador situado en la casilla j de la tabla Tbl corresponde al numero de iteraciones necesarias a partir de la clave de origen IK para obtener la clave de transaccion almacenada en el registro Rj. Por supuesto, se asegura que ninguno de estos contadores sobrepasa el valor N, puesto que este numero representa el maximo de iteraciones en el lado del servidor. Finalmente, se inicializa a cero un contador de transaccion CT.
En cada transaccion (por ejemplo bancaria), el contador de transaccion CT se incrementa en 1. La clave de transaccion (utilizada para esta transaccion) es la clave situada en el registro de peso mas reducido y cuyo contador local j correspondiente es inferior o igual a N. Se denotan este registro de peso mas reducido por Rk y la clave de transaccion correspondiente por K. El valor almacenado en el contador local j correspondiente a Rk se denota por C. Una vez utilizada la clave K (para la transaccion), se actualizan los registros y los contadores locales:
- si C < N, todos los registros Ri de peso inferior o igual a k (es decir i < k) reciben el valor Ri = F(K || k || i) mientras que los contadores correspondientes se modifican a C + 1 (se incrementan en el valor de 1);
- si C = N, se borra K del registro Rk y se incrementa el contador local correspondiente (que pasa por tanto a N+1).
Los datos de transaccion se cifran entonces por el terminal con esta clave de transaccion K para ser transmitidos al servidor.
Lado del servidor
Cuando se obtiene la clave de transaccion K por el terminal (el procedimiento de obtencion previamente descrito permite obtener esta clave), los datos sensibles de la transaccion se cifran con esta clave de transaccion K y se transmiten al servidor con el contador de transaccion CT. El servidor recibe el contador CT y deduce de el el encaminamiento de la deduccion de clave a partir de IK. Una vez obtenida la clave de transaccion K, se pueden descifrar los datos cifrados por el terminal.
5
10
15
20
25
30
35
40
45
Se observa que todas las claves de transacciones seran diferentes. Ademas, el procedimiento es correctamente “forward secure” puesto que la transgresion de los R registros del terminal no permite encontrar informacion sobre las claves utilizadas durante las transacciones precedentes. Como para la tecnica DUKPT, esto se debe al hecho de que la funcion F no es reversible.
En terminos de rendimiento, el procedimiento de la invencion garantiza correctamente un maximo de N iteraciones en el servidor para R registros almacenados en el terminal. El numero de claves T que pueden ser generadas es una funcion de R y de N:
T = j)
i=1
siendo a(i, 1) = 1 para todo i, a(1, j) = 1 para todo j, y
a(n, r) = £>(„ - 1,i)
Se presenta, en relacion con la figura 2, un modo de realizacion de la invencion implementado dentro del cliente. El
procedimiento de la invencion, implementado dentro de un cliente, comprende:
- una etapa (10) de determinacion de un numero R de registros disponibles dentro de dicho cliente (1) para realizar una pluralidad de calculos de claves de cifrado;
- una etapa (20) de determinacion de un numero N maximo de iteraciones necesarias en una obtencion de al menos una clave de cifrado en dicho servidor (2);
- una etapa (30) de obtencion de una estructura de datos (st) representativos de un estado de calculo de las claves realizado dentro de dichos R registros disponibles;
- una etapa (40) de calculo de dicha al menos una clave (K) de cifrado en funcion:
◦ de dicho numero de registros R disponibles de dicho cliente,
◦ efectuando como maximo N llamadas a una funcion F pseudoaleatoria y
◦ de dicha estructura de datos;
de manera que dicha al menos una clave de cifrado pueda obtenerse entre una combinacion de T = C^+N -1 claves de cifrado a partir de un secreto previamente compartido entre dicho servidor y dicho cliente;
- una etapa (50) de emision de un dato que representa dicha estructura de datos representativos (st) de un estado de calculo de la clave realizado dentro de dichos R registros disponibles, registros denotados por Rr, ...R-i.
Se presenta, en relacion con la figura 3, un modo de realizacion de la invencion implementado dentro del servidor. El
procedimiento de la invencion, implementado dentro de un servidor, comprende:
- una etapa (10) de determinacion de un numero R de registros disponibles dentro de dicho cliente (1) para realizar una pluralidad de calculos de claves de cifrado;
- una etapa (20) de determinacion de un numero N maximo de iteraciones necesarias en una obtencion de al menos una clave de cifrado en dicho servidor (2);
- una etapa (30) de obtencion de una estructura de datos (st) representativos de un estado de calculo de las claves realizado dentro de dichos R registros disponibles;
- una etapa (40) de calculo de dicha al menos una clave (K) de cifrado en funcion:
◦ de dicho numero de registros R disponibles de dicho cliente,
◦ efectuando como maximo N llamadas a una funcion F pseudoaleatoria y
◦ de dicha estructura de datos;
de manera que dicha al menos una clave de cifrado pueda obtenerse entre una combinacion de T = C^+N -1 claves de cifrado a partir de un secreto previamente compartido entre dicho servidor y dicho cliente.
En un modo de realizacion de la invencion, la etapa (30) de obtencion comprende:
- una etapa (31) de recepcion de un dato que representa dicha estructura de datos representativos de un estado de calculo de la clave realizado dentro de dichos R registros disponibles;
- una etapa (32) de lectura de dicho dato recibido que suministra dicha estructura de datos representativos;
- una etapa (33) de calculo de dicha estructura de datos representativos del estado de calculo de la clave realizado dentro de dichos R registros disponibles cuando dicha estructura de datos representativos no se lee directamente en dicho dato recibido.
De ese modo, conviene remarcar que la etapa (33) de calculo no es siempre necesaria. En funcion del dato recibido
enviado por el cliente, el servidor ve su carga de calculo y/o almacenamiento mas o menos sobrecargada.
5
10
15
20
25
30
35
40
45
50
A continuacion, se presenta principalmente el caso de una implementacion particular de la tecnica de la invencion. Es claro sin embargo que la invencion no se limita a esta aplicacion particular, sino que puede ponerse en practica igualmente en otras configuraciones.
5.2 Descripcion de un modo de realizacion
Se presenta en este modo de realizacion, la implementacion del procedimiento de la invencion en un procedimiento denominado "Optimal-DUKPT en lo que tiene vocacion de sustituir a la tecnica DUKPT de la tecnica anterior.
La idea basica para mejorar la DUKPT puede ser introducida de la simple manera siguiente: para toda primera operacion tc = 1 de DUKPT, se utiliza la clave Ki situada en el primer registro y se borra directamente.
Se observa que esta clave no tiene hijo en la jerarqma de claves y que su madre es la clave IK (que esta a la distancia 1 de la clave IK). Dicho de otra manera, el servidor puede recuperar K1 de IK con una unica aplicacion de F. En lugar de borrar K1 directamente y puesto que se estana lejos de alcanzar diez iteraciones de F en el lado del servidor, es posible deducir otra clave de K1 y colocarla en este primer registro. Profundizando en esta idea, los presentes inventores han tenido la idea de generar nueve claves suplementarias con el primer registro solamente.
Y esto puede generalizarse sobre los otros registros igualmente. En tanto que el primer registro contiene una clave situada a una distancia de diez de IK, no puede ser deducida de nuevo.
Entonces, es necesario utilizar una clave situada en el segundo registro, pero antes de borrarla de la memoria del cliente, se pueden deducir dos nuevas claves que se pueden colocar en el primer registro y posteriormente en el segundo registro.
Estas dos nuevas claves estan a la distancia de dos de la clave IK. De nuevo, se pueden deducir varias claves utilizando solamente el primer registro, pero una menos que anteriormente puesto que se comienza con una clave a una distancia de dos (y no de uno) de la clave IK. Esta tecnica se reitera finalmente en todos los registros.
5.2.1. Descripcion
Con una preocupacion por la preservacion del escalonamiento del algoritmo, el DUKPT mejorado tal como se describe actualmente se define en tanto que familia de soluciones de gestion de claves. Cada miembro de la familia se identifica por la cantidad R de registros de claves disponibles por el lado del cliente y por el numero N de iteraciones maximas necesarias para deducir una clave del servidor. Es facil demostrar que cada miembro puede
gestionar un numero maximo de claves T =
R + N N
En cuanto al DUKPT de origen, se supone que la clave IK simetrica compartida se ha atribuido de manera protegida al cliente y al servidor. Para identificar la clave deducida, se transmite para cada operacion una cadena publica st, que hace las veces de estructura de datos segun la invencion, desde el cliente hacia el servidor. Esta cadena comprende R enteros st, siendo 1 < sti < N para 1 < i < R. Un entero sti representa la distancia de IK desde la clave almacenada en el registro i de la memoria del cliente antes de tratar la operacion. Por ejemplo, la cadena empleada para cualquier primera iteracion es 1, .. .1 1,1 ... 1 2 para la segunda, etc.
5.21.1. Del lado del cliente.
El cliente mantiene dos tablas. En primer lugar, los registros clasicos de clave R, denotados Ri para 1 < i < R. Se inicializan simplemente con Ri = F(IK; 0R; i) y cuando se finaliza la inicializacion, la clave de origen IK se borra de la memoria del cliente.
En segundo lugar, el cliente mantiene una tabla D de enteros R denominados Di, en la que Di representa la distancia entre la clave IK y la clave almacenada en el registro Ri. Esta distancia representa el numero de iteraciones necesarias para obtener la clave almacenada en el registro Ri a partir de la clave de origen IK. El contenido de D es exactamente lo que se envfa al servidor en la cadena st. Naturalmente, se inicializa con Ci = 1 para 1 < i < R.
Cuando recibe una solicitud de procesamiento de una nueva transaccion, el cliente establece st = D y busca el registro menos significativo que tenga una distancia correspondiente Di estrictamente inferior a N + 1.
Este registro, que se denomina Rp, contiene la clave de transaccion K que se utilizara para la transaccion. Posteriormente, una vez terminada la tasacion:
- si Dp < N, el cliente actualiza los p registros Rp , Rp-1, ,,, R1 con Ri = F(K; D; i) y actualiza la tabla de las distancias con Di = Dp + 1 con 1 < i < p;
- si Dp = N, el cliente borra simplemente el contenido del registro Rp y actualiza Dp = Dp + 1 = N + 1. Este registro ya no se utilizara.
Se observa que en el proceso de deduccion de clave, los datos utilizados en la entrada de F son siempre unicos. En efecto, D sera diferente para cada transaccion. Esto garantiza la seguridad del sistema. En efecto, la “forward secrecy” se mantiene siempre puesto de, despues de que se haya utilizado una clave de transaccion, se cuida que esta clave y sus predecesoras no esten ya presentes en la memoria del cliente.
5 Se da un ejemplo de la evolucion del estado interno de los clientes en la tabla 2 a continuacion.
5.2.I.2. Del lado del servidor.
El servidor recibe una cadena st que corresponde a la tabla D del cliente antes de procesar la transaccion. Se observa que los valores memorizados en esta tabla de distancia se incrementan siempre del registro mas significativo al registro menos significativo. Ademas, se recuerda que cuando el cliente extrae una clave de 10 transaccion a partir de un registro Rp, esto significa que la tabla de distancias es tal que Di = N + 1 para 1 < i < p-1.
Se denota por gp,v(D) la transformacion que mapea la tabla de distancia D a otra tabla de distancia D’ siendo:
'D'i= N +1, para 1 < i < p -1 • D'i = v, para i = p
D]= Di, para p +1 < i < R
El servidor inicializa en primer lugar un valor local de distancia d = 1 y un valor de posicion inscrito p = p’, siendo p’ la posicion mas significativa con Dp’ > 1. A continuacion, calcula K = F(IK; 0R; p’) y no cesa de repetir el proceso 15 siguiente:
- En tanto que d < Dp - 1, se calcula K = F(K, gp,d(D), p) y d = d + 1;
- Si p = 1, entonces K = F(K, gp,d(D), p) es la clave compartida con el cliente, y la serie de iteraciones se detiene;
- El servidor busca la posicion mas significativa p’ de manera que Dp’ > Dp. Si Dp’ es diferente de N + 1, entonces el servidor calcula K = F(K, gp,d(D), p0) y actualiza la variable local p = p’ y d = d + 1. Si no, K = F(K, gp,d(D), p’+1)
20 es la clave compartida con el cliente y las iteraciones pueden detenerse.
Este algoritmo sigue exactamente el proceso implfcito efectuado por el cliente para obtener la clave de transaccion K a partir de la primera clave IK. Los procedimientos implementados en el cliente y en el servidor son por tanto los mismos, en sus etapas principales.
- iteracion
- st clave de transaccion usada y evolucion registros tabla de distancia
- enviado
- actualizacion de registros clave
- R3 R2 R1 D3 D2 D1
- inicial
- Ra = F(IK, 000, 3) TK1t) TK4 TK1 entrada 0 0 0
- R2 = F(IK, 000, 2), R1 = F(IK, 000, 1) salida 1 1 1
- 1
- 111 TK1 = R1 TK2 entrada
- 1
- 1
- 1
- R1 = F(TK-i, 111, 1)
- salida 1 1 2
- 2
- 112 £ II 33 TK3 entrada 1 1
- 2
- R1 = F(TK2, 112, 1)
- salida 1 1 3
- 3
- 113 £ II 33 X entrada 1 1
- 3
- borrar R1
- salida 1 1 4
- 4
- 114 TK4 = R2 TK7 TK5 entrada 1 1
- 4
- R2 = F(TKa, 114, 2), R1 = F(TK4, 114, 1)
- salida 1 2 2
- 5
- 122 TK5 = R1 TK6 entrada 1 2 2
- R1 = F(TK5, 122, 1)
- salida 1 2 3
- 6
- 123 £ II 33 X entrada 1 2 3
- borrar R1
- salida 1 2 4
- 7
- 124 TK7 = R2 TK9 TKs entrada 1 2 4
- R2 = F(TK7, 124, 2), R1 = F(TK7, 124, 1)
- salida 1 3 3
- 8
- 133 £ II 33 X entrada 1 3 3
- borrar R1
- salida 1 3 4
- 9
- 134 TK9 = R2 X entrada 1 3 4
- borrar R2
- salida 1 4 4
- 10
- 144 TK10 = R3, R3 = F(TK10, 144, 3) TK16 TK13 TK11 entrada 1 4 4
- R2 =F(TK-i0, 144, 2), R1 =F(TK-i0, 144, 1)
- salida 2 2 2
(continuacion)
- iteracion
- st clave de transaccion usada y evolucion registros tabla de distancia
- enviado
- actualizacion de registros clave
- R3 R2 R1 D3 D2 D1
- 11
- 222 TK11 = R1 TK12 entrada 2 2 2
- R1 = F(TK-i1, 222, 1)
- salida 2 2 3
- 12
- 223 TK12 = R1 X entrada 2 2 3
- borrar R1
- salida 2 2 4
- 13
- 224 TK13 = R2 cn TK14 entrada 2 2 4
- R2 =F(TKi3, 224, 2), R1 =F(TKi3, 224, 1)
- salida 2 3 3
- 14
- 233 TK14 = R1 X entrada 2 3 3
- borrar R1
- salida 2 3 4
- 15
- 234 TK15 = R2 X entrada 2 3 4
- borrar R2
- salida 2 4 4
- 16
- 244 TK16 = R3, R3 = F(TK16, 244, 3) TK19 CO £ TK17 entrada 2 4 4
- R2 =F(TKi6, 244, 2), R1 =F(TKi6, 244, 1)
- salida 3 3 3
- 17
- 333 TK17 = R1 X entrada 3 3 3
- borrar R1
- salida 3 3 4
- 18
- 334 TK18 = R2 X entrada 3 3 4
- borrar R2
- salida 3 4 4
- 19
- 344 TK19 = R3 X entrada 3 4 4
- borrar R3
- salida 4 4 4
Tabla 2: Ejemplos de entradas principales y una distancia de evolucion de las tablas sobre el lado cliente, con parametros del sistema N =3 y R = 3. Se denota por TKi la clave utilizada para la iteracion i-esima. Una X\ en las 5 columnas de claves registros de evolucion significa que el cliente borra el contenido a partir de este registro.
En este ejemplo, supongamos que el servidor recibe st = 224. Posiciona d = 1, p = 3 y calcula K = F(IK; 000; 3). Posteriormente, no entra en el bucle de iteracion, ni en la primera condicional si calcula p’ = 1 y posteriormente Dp = 4 = N + 1, la clave K = F(K; 144; 2) es la clave compartida con el cliente. Se da en la tabla 3 un ejemplo mas complicado.
10 Tabla 3: Ejemplos de deduccion de clave sobre el lado servidor, con los parametros del sistema N = 8, R = 8 y st = 12466689. La clave se determina con ocho iteraciones en el servidor.
- iteracion
- Actualizacion Valores locales
- clave
- d P P’
- inicial
- K = F(IK, 00000000, 7) entrada salida 1 7 7
- 1
- K = F(K, 11999999, 6) entrada 1 7 6
- salida 2 6
- 2
- K = F(K, 12299999,6) entrada 2 6 5
- K = F(K, 12399999, 5)
- salida 4 5
- 3
- K = F(K, 12449999, 5) entrada 4 5 2
- K = F(K, 12459999, 2)
- salida 6 2
- 4
- K = F(K, 12466669, 2) entrada 6 2 1
- K = F(K, 12468679, 2)
- salida
5.2.1.3. Otra caractenstica
En al menos un modo de realizacion complementario de la invencion, el cliente no transmite una estructura de datos 15 st en tanto que tal al servidor, sino un dato espedfico que permite al servidor encontrar esta estructura de datos st para, a continuacion, obtener la clave de cifrado.
Un modo de realizacion de ese tipo permite reducir el volumen de datos transmitidos desde el cliente hacia un servidor.
5
10
15
20
25
30
35
40
5.3 Otras caracteristicas opcionales y ventajas
Se presenta, en relacion con la figura 4, un modo de realizacion de un cliente que comprende unos medios de calculo de las claves y unos medios de transmision de la estructura de datos st que permite al servidor calcular a su vez la clave utilizada por el cliente.
Un cliente de ese tipo comprende una memoria 41 (que comprende una memoria protegida que comprende unos registros R constituidos por una memoria tampon), una unidad 42 de procesamiento, equipada por ejemplo con un microprocesador P, y controlada por un programa de ordenador 43, que implementa el procedimiento de la invencion.
En la inicializacion, las instrucciones del codigo del programa de ordenador 43 se cargan por ejemplo en una memoria RAM antes de ser ejecutadas por el procesador de la unidad 42 de procesamiento. La unidad 42 de procesamiento recibe en la entrada al menos una informacion I, tal como el numero N de iteraciones del servidor. El microprocesador de la unidad 42 de procesamiento implementa las etapas del procedimiento descrito anteriormente, segun las instrucciones del programa de ordenador 43, para entregar una informacion procesada T, tal como la estructura de datos st y sus datos cifrados con la ayuda de la clave K calculada por el terminal. Para ello, el dispositivo comprende, ademas de la memoria tampon 41, unos medios de determinacion de un numero R de registros disponibles dentro de dicho cliente para realizar una pluralidad de calculos de claves de cifrado, unos medios de determinacion de un numero N maximo de iteraciones necesarias para una obtencion de al menos una clave de cifrado en dicho servidor, unos medios de obtencion de una estructura de datos representativos del estado de calculo de la clave realizado dentro de dichos R registros disponibles y unos medios de calculo de dicha al menos una clave de cifrado.
Estos medios estan controlados por el microprocesador de la unidad 42 de procesamiento.
Se presenta, en relacion con la figura 5, un modo de realizacion de un servidor que comprende unos medios de recepcion de la estructura de datos st y unos medios de calculo de la clave utilizada por el cliente.
Un servidor de ese tipo comprende una memoria 51 (que comprende una memoria protegida que comprende unos registros R constituidos por una memoria tampon), una unidad 52 de procesamiento, equipada por ejemplo con un microprocesador P, y controlada por un programa de ordenador 53, que implementa el procedimiento de la invencion.
En la inicializacion, las instrucciones del codigo del programa de ordenador 53 se cargan por ejemplo en una memoria RAM antes de ser ejecutadas por el procesador de la unidad 52 de procesamiento. La unidad 52 de procesamiento recibe en la entrada al menos una informacion I, tal como la estructura de datos st procedente del cliente, y los datos cifrados por el con la ayuda de la clave K. El microprocesador de la unidad 42 de procesamiento implementa las etapas del procedimiento descrito anteriormente, segun las instrucciones del programa de ordenador 43. Para entregar una informacion procesada T, tal como la clave de cifrado K, obtenida a partir de la estructura de datos st.
Para ello, el dispositivo comprende, ademas de la memoria tampon 51, unos medios de determinacion de un numero R de registros disponibles dentro de dicho cliente para realizar una pluralidad de calculos de claves de cifrado. Unos medios de determinacion de un numero N maximo de iteraciones necesarias para una obtencion de al menos una clave de cifrado, unos medios de obtencion de una estructura de datos representativos de un estado de calculo de la clave realizado dentro de dichos R registros disponibles y unos medios de calculo de dicha al menos una clave de cifrado K.
Estos medios se controlan por el microprocesador de la unidad 52 de procesamiento.
Claims (9)
- 5101520253035404550REIVINDICACIONES1. Procedimiento de obtencion de al menos una clave de cifrado de al menos unos datos transmitidos desde un cliente hacia un servidor caracterizado porque comprende:- una etapa de determinacion de un numero R de registros disponibles dentro de dicho cliente para realizar una pluralidad de calculos de claves de cifrado;- una etapa de determinacion de un numero N maximo de iteraciones necesarias en una obtencion de al menos una clave de cifrado en dicho servidor;- una etapa de obtencion de una estructura de datos representativos del estado de calculo de la clave realizado dentro de dichos R registros disponibles;- una etapa de calculo de dicha al menos una clave de cifrado en funcion:- de dicho numero de registros disponibles R de dicho cliente,- efectuando como maximo N llamadas a una funcion F pseudoaleatoria y- de dicha estructura de datos;de manera que dicha al menos una clave de cifrado pueda obtenerse entre una combinacion de como maximo T = C%+N -1 claves de cifrado a partir de un secreto previamente compartido entre dicho servidor y dicho cliente.
- 2. Procedimiento segun la reivindicacion 1, caracterizado porque el numero R de registros disponibles y el numero N maximo de iteraciones se definen en funcion de las limitaciones del servidor y de las limitaciones del cliente y de las limitaciones de seguridad.
- 3. Procedimiento segun una cualquiera de las reivindicaciones anteriores, caracterizado porque comprende ademas, cuando se implementa dentro de dicho cliente, una etapa de emision de un dato que representa dicha estructura de datos representativos del estado de calculo de la clave realizado dentro de dichos R registros disponibles, registros denotados por Rr, ...R1.
- 4. Procedimiento segun la reivindicacion 3, caracterizado porque dicha estructura de datos representativos de un estado de calculo de la clave realizado dentro de dichos R registros disponibles es una concatenacion de R numeros enteros, st = D = Dr, ... D1 representando cada entero Di una distancia entre dicho secreto previamente compartido entre dicho servidor y dicho cliente, y una clave almacenada en un registro Ri de dicho cliente, correspondiendo dicha distancia a un numero de iteraciones de dicha funcion F pseudoaleatoria.
- 5. Procedimiento segun la reivindicacion 4 caracterizado porque dicho procedimiento comprende:- una etapa de determinacion, partiendo del registro R1 hasta como maximo el registro Rr, de una posicion p del registro mas pequeno Rp, para el cual una distancia Dp asociada es estrictamente mas pequena que el numero N+1, comprendiendo dicho registro Rp una clave K de cifrado, utilizada para una transaccion dada;- una etapa de actualizacion de dicha estructura de datos que comprende:cuando Dp < N:◦ una etapa de actualizacion de los p-1 registros Rp, ...R1 calculando a partir de dicha clave K de registro, de dicha funcion F pseudoaleatoria, de dicha estructura de datos D y de un numero entero i, tal que Ri = F(K, D, i) para 1<= i <= p;◦ una etapa de actualizacion de dicha estructura de datos de manera que Di = Dp + 1 siendo 1 <= i <= p;cuando Dp = N, una etapa de borrado del contenido de dicho registro Rp y una etapa de actualizacion del numero Dp = Dp + 1 = N + 1.
- 6. Procedimiento segun una cualquiera de las reivindicaciones 1 o 2, caracterizado porque, cuando se implementa dentro de dicho servidor, dicha etapa de obtencion comprende:- una etapa de recepcion de un dato que representa dicha estructura de datos representativos de un estado de calculo de la clave realizado dentro de dichos R registros disponibles;- una etapa de lectura de dicho dato recibido que suministra dicha estructura de datos representativos;- una etapa de calculo de dicha estructura de datos representativos de un estado de calculo de la clave realizado dentro de dichos R registros disponibles cuando dicha estructura de datos representativos no se lee directamente en dicho dato recibido.
- 7. Procedimiento segun la reivindicacion 6, caracterizado porque, dicha estructura de datos se define como una concatenacion de R numeros enteros st = D = Dr, ... D1 en la que cada numero entero Di representa una distancia entre dicho secreto previamente compartido entre dicho servidor y dicho cliente, y una clave almacenada en un registro Ri de dicho cliente, y porque la etapa de calculo de dicha al menos una clave de cifrado comprende:- una etapa de inicializacion de una instancia local d a 1 y una posicion de registro p tal que p = p’, siendo p’ un51015202530numero que corresponde a la posicion de mayor peso, partiendo del registro Rr hasta el registro Ri, tal queDp > 1;- una primera etapa de calculo para obtener una clave K = F(secreto previamente compartido, 0R, p’) en la que 0R corresponde a R veces 0,- y al menos una iteracion:• de un calculo para obtener una clave K = F(K, gp,d(D), p) en la que gp,v(D) = DR, ...D’i para la que D’i = N +1 si i esta comprendido entre 1 y p-1, D’i = d si i = p y D’i = Di si i esta comprendido entre p+1 y R y de una etapa para actualizar la variable d tal que d = d+1 en tanto que se verifique la condicion siguiente: d < Dp - 1; •si el numero p =1, una etapa de calculo que consiste en obtener una clave K = F(K, gp,(D), p) que corresponde entonces a la clave compartida temporalmente con el cliente y detener la iteracion de las etapas;• determinar una posicion p’ tal que Dp• > Dp;• Si Dp’! = N+1, una etapa que consiste en calcular una clave K = F(K, gp,d(D), p’) y una etapa de actualizacion de las variables p =p’ y d = d+1.•Si no, efectuar una etapa que consiste en calcular una clave K = F(K, gp,d(D), p’+1) que corresponde entonces a la clave compartida temporalmente con el cliente y detener la iteracion de las etapas.
- 8. Dispositivo de obtencion de al menos una clave de cifrado de al menos unos datos transmitidos desde un cliente hacia un servidor caracterizado porque comprende:- unos medios de determinacion de un numero R de registros disponibles dentro de dicho cliente para realizar una pluralidad de calculos de claves de cifrado;- unos medios de determinacion de un numero N maximo de iteraciones necesarias menos una clave de cifrado en dicho servidor;- unos medios de obtencion de una estructura de datos representativos del estado realizado dentro de dichos R registros disponibles;- unos medios de calculo de dicha al menos una clave de cifrado en funcion:- de dicho numero de registros disponibles R de dicho cliente,- efectuando como maximo N llamadas a la funcion F pseudoaleatoria y- de dicha estructura de datos;de manera que dicha al menos una clave de cifrado pueda obtenerse entre una combinacion de como maximo T = Cr+n -1 claves de cifrado a partir de un secreto previamente compartido entre dicho servidor y dicho cliente.
- 9. Producto de programa de ordenador que puede telecargarse desde una red de comunicacion y/o almacenado en un soporte legible por ordenador y/o ejecutable por un microprocesador, caracterizado porque comprende unas instrucciones de codigo de programa para la ejecucion del procedimiento de obtencion segun una al menos de las reivindicaciones 1 a 7 cuando se ejecuta en un ordenador.en una obtencion de al de calculo de la claves
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1053945 | 2010-05-20 | ||
| FR1053945A FR2960366A1 (fr) | 2010-05-20 | 2010-05-20 | Procede d’obtention de cles de chiffrement, terminal, serveur, et produits programmes d’ordinateurs correspondants |
| FR1054217 | 2010-05-31 | ||
| FR1054217A FR2960367B1 (fr) | 2010-05-20 | 2010-05-31 | Procede d'obtention de cles de chiffrement, terminal, serveur, et produits programmes d'ordinateurs correspondants. |
| PCT/EP2011/057842 WO2011144554A1 (fr) | 2010-05-20 | 2011-05-16 | Procédé d'obtention de clés de chiffrement, terminal, serveur, et produits programmes d'ordinateurs corresupondants. |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2614946T3 true ES2614946T3 (es) | 2017-06-02 |
Family
ID=43743469
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES11719826.7T Active ES2614946T3 (es) | 2010-05-20 | 2011-05-16 | Procedimiento de obtención de claves de cifrado, terminal, servidor y productos de programas de ordenador correspondientes |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US8966266B2 (es) |
| EP (1) | EP2572470B1 (es) |
| CA (1) | CA2800004A1 (es) |
| ES (1) | ES2614946T3 (es) |
| FR (2) | FR2960366A1 (es) |
| WO (1) | WO2011144554A1 (es) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9160539B1 (en) * | 2011-09-30 | 2015-10-13 | Emc Corporation | Methods and apparatus for secure, stealthy and reliable transmission of alert messages from a security alerting system |
| US9935770B1 (en) | 2012-06-29 | 2018-04-03 | Emc Corporation | Security alerting system with dynamic buffer size adaptation |
| US10326803B1 (en) * | 2014-07-30 | 2019-06-18 | The University Of Tulsa | System, method and apparatus for network security monitoring, information sharing, and collective intelligence |
| CN107786326A (zh) * | 2016-08-25 | 2018-03-09 | 大连楼兰科技股份有限公司 | 应用在车联网动态密码校验中的共享方法 |
| CN107786338B (zh) * | 2016-08-25 | 2021-04-27 | 大连楼兰科技股份有限公司 | 动态密码校验中的共享平台 |
| US11444928B2 (en) * | 2018-12-04 | 2022-09-13 | Journey.ai | Controlling transmission of information through a zero-knowledge data management network |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5754563A (en) * | 1995-09-11 | 1998-05-19 | Ecc Technologies, Inc. | Byte-parallel system for implementing reed-solomon error-correcting codes |
| JP4216475B2 (ja) * | 1998-07-02 | 2009-01-28 | クリプターグラフィー リサーチ インコーポレイテッド | 漏洩抵抗力を有する暗号索引付き鍵の更新方法及びデバイス |
| JP4071870B2 (ja) * | 1998-08-20 | 2008-04-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 秘密鍵生成方法 |
| US6968493B1 (en) * | 1999-09-14 | 2005-11-22 | Maxtor Corporation | Randomizer systems for producing multiple-symbol randomizing sequences |
| US7043017B2 (en) * | 2001-09-13 | 2006-05-09 | Freescale Semiconductor, Inc. | Key stream cipher device |
| RU2003131278A (ru) * | 2002-10-29 | 2005-04-20 | Хай-О Информтех Эсдиэн Биэйчди (MY) | Способ шифрования данных |
| IL155671A (en) * | 2003-04-30 | 2004-12-15 | Elad Barkan | Method and system of encryption decryption |
| JP2004350007A (ja) * | 2003-05-22 | 2004-12-09 | Matsushita Electric Ind Co Ltd | 暗号方式 |
| EP1688888A1 (fr) * | 2005-02-04 | 2006-08-09 | Sokymat Automotive GmbH | Procédé de communication et de contrôle de données d'authentification entre un dispositif portable à transpondeur et une unité de lecture d'un véhicule |
| RU2367007C2 (ru) * | 2007-08-30 | 2009-09-10 | Станислав Антонович Осмоловский | Способ передачи и комплексной защиты информации |
| WO2010041464A1 (ja) * | 2008-10-10 | 2010-04-15 | パナソニック株式会社 | 情報処理装置、認証システム、認証装置、情報処理方法、情報処理プログラム、記録媒体及び集積回路 |
| US20100189263A1 (en) * | 2008-11-05 | 2010-07-29 | Mustang Microsystems, Inc. | Method and apparatus for generating and updating security codes |
| EP2504757B1 (en) * | 2010-01-28 | 2013-11-06 | NDS Limited | Exponentiation system |
-
2010
- 2010-05-20 FR FR1053945A patent/FR2960366A1/fr active Pending
- 2010-05-31 FR FR1054217A patent/FR2960367B1/fr active Active
-
2011
- 2011-05-16 CA CA2800004A patent/CA2800004A1/en not_active Abandoned
- 2011-05-16 EP EP11719826.7A patent/EP2572470B1/fr not_active Not-in-force
- 2011-05-16 ES ES11719826.7T patent/ES2614946T3/es active Active
- 2011-05-16 US US13/699,043 patent/US8966266B2/en not_active Expired - Fee Related
- 2011-05-16 WO PCT/EP2011/057842 patent/WO2011144554A1/fr not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| CA2800004A1 (en) | 2011-11-24 |
| US20140149744A1 (en) | 2014-05-29 |
| EP2572470B1 (fr) | 2016-11-09 |
| FR2960367A1 (fr) | 2011-11-25 |
| FR2960366A1 (fr) | 2011-11-25 |
| WO2011144554A1 (fr) | 2011-11-24 |
| FR2960367B1 (fr) | 2012-05-18 |
| EP2572470A1 (fr) | 2013-03-27 |
| US8966266B2 (en) | 2015-02-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2858435T3 (es) | Dispositivos y método de intercambio de claves | |
| ES2665987T3 (es) | Dispositivo y procedimiento para la decodificación de datos | |
| ES2361074T3 (es) | Comunicación segura con un teclado. | |
| ES2819200T3 (es) | Un método y sistema para proporcionar autenticación del acceso del usuario a un recurso informático a través de un dispositivo móvil utilizando múltiples factores de seguridad separados | |
| ES2279225T3 (es) | Comunicaciones seguras. | |
| US10650373B2 (en) | Method and apparatus for validating a transaction between a plurality of machines | |
| ES2881486T3 (es) | Sistema y método para ofuscar un identificador para proteger al identificador de una apropiación no permitida | |
| ES2730691T3 (es) | Procedimiento y sistema para la comunicación segura entre una etiqueta RFID y un dispositivo de lectura | |
| BR102018015221B1 (pt) | método para compartilhamento seguro de informações e sistema relacionado | |
| Strydis et al. | A system architecture, processor, and communication protocol for secure implants | |
| WO2012140291A1 (es) | Sistema y método para operaciones biométricas remotas | |
| EP0534419A2 (en) | Public key cryptosystem key management based on control vectors | |
| ES2619613T3 (es) | Método criptográfico para intercambiar mensajes de forma segura y dispositivo y sistema para implementar este método | |
| BR102014017104A2 (pt) | pré-geração de chaves de sessão para transações eletrônicas e dispositivos que pré-geram chaves de sessão para transações eletrônicas | |
| CN110046489A (zh) | 一种基于国产龙芯处理器的可信访问验证系统,计算机及可读存储介质 | |
| ES3038236T3 (en) | A method and system for securing data | |
| EP3506558A1 (en) | Whitebox computation of keyed message authentication codes | |
| US20200186328A1 (en) | Encryption device, decryption device, encryption method, decryption method, and computer readable medium | |
| CN104200177A (zh) | 一种移动医疗敏感数据加密方法 | |
| KR101347124B1 (ko) | 일회용 공개 정보 기반 전자 처방전 처리 방법 및 이를 이용한 장치 | |
| KR20250039765A (ko) | 동적으로 재구성 가능한 puf 기반 사물인터넷 디바이스, 인증 서버 및 방법 | |
| US8966266B2 (en) | Method for obtaining encryption keys corresponding terminals, server and computer program products | |
| ES2687396T3 (es) | Métodos y dispositivos para la transferencia segura de datos útiles | |
| ES2708805T3 (es) | Terminal de pago de uso compartido | |
| CN117744123A (zh) | 隐私数据的安全保护方法、系统、电子设备及存储介质 |