ES2287013T3 - Procedimiento de contramedida en un componente electronico que pone en aplicacion un algoritmo de criptografia con llave secreta y dinamica. - Google Patents
Procedimiento de contramedida en un componente electronico que pone en aplicacion un algoritmo de criptografia con llave secreta y dinamica. Download PDFInfo
- Publication number
- ES2287013T3 ES2287013T3 ES00925433T ES00925433T ES2287013T3 ES 2287013 T3 ES2287013 T3 ES 2287013T3 ES 00925433 T ES00925433 T ES 00925433T ES 00925433 T ES00925433 T ES 00925433T ES 2287013 T3 ES2287013 T3 ES 2287013T3
- Authority
- ES
- Spain
- Prior art keywords
- key
- value
- electronic component
- algorithm
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
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/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/75—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
- G06F21/755—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/77—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
- G06Q20/341—Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/409—Device specific authentication in transaction processing
- G06Q20/4097—Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
- G06Q20/40975—Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
- G07F7/10—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
- G07F7/1008—Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/007—Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- Accounting & Taxation (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Business, Economics & Management (AREA)
- Mathematical Physics (AREA)
- Strategic Management (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Finance (AREA)
- Storage Device Security (AREA)
Abstract
Procedimiento de contra medida para un primer componente electrónico (C) que comunica con un segundo componente electrónico (T) y que pone en aplicación un algoritmo criptográfico A con clave secreta K de tamaño k bits, la aplicación del procedimiento de contra medida comprende una evolución del valor K[i] de dicha clave durante las utilizaciones sucesivas del algoritmo A, i es el número de ejecuciones del algoritmo A, caracterizado en que - el primer componente electrónico (C) - calcula el valor K[i] de la clave a partir del valor anterior K[i-1] de dicha clave mediante una función f tal como K[i] = f(K[i-1] - transmite el número i al segundo componente electrónico (T), y en que - el segundo componente electrónico (T) posee un acelerador de cálculo para calcular el valor K[i] de la clave secreta a partir de K[0] sin tener que generar los i-1 valor de claves que separan K[0] y K[i].
Description
Procedimiento de contra medida en un componente
electrónico que pone en aplicación un algoritmo de criptografía con
llave secreta y dinámica.
El presente invento concierne un procedimiento
de contra medida en un componente electrónico que pone en
aplicación un algoritmo de criptografía con llave secreta. Este
tipo de componentes se utilizan en aplicaciones en las que el
acceso a los servicios o a los datos está controlado severamente.
Su arquitectura está formada entorno a un microprocesador y
memorias, entre las cuales una memoria programa que contiene la
clave secreta.
Estos componentes se utilizan en las tarjetas
inteligentes, para algunas de sus aplicaciones. Estas aplicaciones
son por ejemplo el acceso a ciertos bancos de datos, aplicaciones
bancarias, aplicaciones de telepeaje, p. ej. para la televisión, la
distribución de gasolina e incluso el paso de peajes de
autopistas.
Estos componentes o estas tarjetas aplican por
tanto un algoritmo de criptografía con clave secreta, entre los
clases el más conocido es el algoritmo DES (por Data Encryption
Standard en la literatura anglosajona). Existen igualmente
otros algoritmos de clave secreta, como el algoritmo RC5 e incluso
el algoritmo COMP128. Evidentemente esta lista, no es
exhaustiva.
De manera general y sucinta, estos algoritmos
tienen como función calcular un mensaje cifrado a partir de un
mensaje aplicado en entrada (a la carta) por un sistema huésped
(servidor, distribuidor bancario...) y de la clave secreta
contenida en la tarjeta, y suministrar a cambio al sistema huésped
este mensaje cifrado, lo que permite por ejemplo al sistema huésped
autentificar el componente o la tarjeta, intercambiar datos...
Ahora bien, se ha puesto de manifiesto que esos
componentes o esas tarjetas son vulnerables a ciertos ataques que
consisten en un análisis diferencial de consumo en corriente y que
permiten a terceras personas con malas intenciones descubrir la
clave secreta. A esos ataques se les llama ataques DPA, acrónimo
anglosajón por Differential Power Análisis.
El principio de esos ataques DPA se basa en el
hecho de que el consumo en corriente del microprocesador que
ejecuta las instrucciones varía según el dato manipulado.
Principalmente, una instrucción del
microprocesador que manipula un bit de dato genera dos perfiles de
corriente diferentes según si ese bit vale "1" o "0".
Típicamente, si la instrucción manipula un "0", tenemos en
este instante de ejecución una primera amplitud de la corriente
consumida y si la instrucción manipula un "1", tenemos una
segunda amplitud de la corriente consumida, diferente a la
primera.
Ya se conocen las características de los
algoritmos de criptografía: cálculos efectuados, parámetros
utilizados. La única desconocida es la clave secreta contenida en
la memoria del programa. Esta clave no puede deducirse si se
conoce únicamente el mensaje aplicado en entrada y el mensaje
cifrado suministrado como respuesta.
Sin embargo, en un algoritmo criptográfico,
ciertos datos calculados dependen solamente del mensaje aplicado en
claro a la entrada de la tarjeta y de la clave secreta contenida
en la tarjeta. También pueden recalcularse otros datos calculados
en el algoritmo solamente a partir del mensaje cifrado
(generalmente suministrado en claro a la Salida de la tarjeta hacia
el sistema huésped) y de la clave secreta contenida en la tarjeta.
De manera más precisa, cada bit de esos datos particulares puede
determinarse a partir del mensaje de entrada o de salida, y de un
número limitado de bits particulares de la clave.
De este modo, a cada bit de un dato particular,
corresponde una subclave formada por un grupo particular de bits
de la clave.
A los bits de esos datos particulares que pueden
predecirse se les llama a continuación, bits blancos.
De esta manera, la idea de base del ataque DPA
consiste en utilizar la diferencia del perfil de consumo en
corriente de una instrucción según si manipula un "1" o un
"0" y la posibilidad de calcular un bit blanco por las
instrucciones del algoritmo a partir de un mensaje conocido de
entrada o de salida y de una hipótesis sobre la subclave
correspondiente.
El principio del ataque DPA consiste así pues en
testar una hipótesis de subclave dada, aplicando en un gran número
de curvas de medida en corriente, cada una de ellas relativa a un
mensaje de entrada conocido por el atacante, una función de Boole
de selección, función de la hipótesis de subclave, y definida para
cada curva por el valor predicho para un hit blanco.
Al hacer una hipótesis sobre la subclave
concernida, uno es capaz de hecho de predecir el valor "0" o
"1" que adoptará dicho bit blanco para un mensaje de entrada o
de salida dado.
Entonces se puede aplicar como función de Boole
de selección, el valor predicho "0" o "1" por el bit
blanco para la hipótesis de subclave considerada, para clasificar
esas curvas en dos paquetes: un primer paquete agrupa las curvas
que vieron la manipulación del bit blanco a "0" y un segundo
paquete agrupa las curvas que vieron la manipulación del bit blanco
a "1" según la hipótesis de subclave. Al hacer la media del
consumo en corriente en cada paquete, se obtiene una curva de
consumo media M0(t) para el primer paquete y una curva de
consumo media M1(t) para el segundo paquete.
Si la hipótesis de subclave es justa, el primer
paquete agrupa realmente todas las curvas entre las N curvas que
vieron la manipulación del bit blanco en "0" y el segundo
paquete agrupa realmente todas las curvas entre las N curvas que
vieron la manipulación del bit blanco en "1". La curva media
de consumo M0(t) del primer paquete tendrá entonces un
consumo medio por todas partes, excepto en los momentos de
ejecución de las instrucciones críticas, con un perfil de consumo
en corriente característico de la manipulación del bit blanco en
"0" (perfil_{0}). En otros términos, para todas esas curvas
todos los bits manipulados han tenido tantas oportunidades de valer
"0" como de valer "1", excepto el bit blanco que siempre
ha tenido el valor "0".
Lo que puede escribirse:
M0(t) =
[(perfil_{0} \ + \ perfil_{1})/2]_{t}{}^{1}{}_{tci} \ + \
[perfil_{0}]_{tci}
ya
sea
M0(t)=
[Vm_{t}]_{t}{}^{1}{}_{tci} \ + \
[perfil_{0}]_{tci}
en donde tci representa los
instantes críticos, en los que se ha ejecutado una instrucción
crítica.
Del mismo modo, la curva media de consumo
M1(t) del segundo paquete corresponde a un consumo medio por
todas partes excepto en los momentos de la ejecución de las
instrucciones críticas, con un perfil de consumo en corriente
característico de la manipulación del bit blanco en "1"
(perfil_{1}). Podemos escribir:
M1(t) =
[(perfil_{0} \ + \ perfil_{1})/2]_{t}{}^{1}{}_{tci} \ + \
[perfil_{1}]_{tci}
ya
sea
M1(t) =
[Vm_{t}]_{t}{}^{1}{}_{tci} \ + \
[perfil_{1}]_{tci}
Hemos visto que los dos perfiles perfil_{0} y
perfil_{1} no son iguales. La diferencia de las curvas
M0(t) y M1(t) proporciona entonces una señal
DPA(t) cuya amplitud es igual al
perfil_{0}-perfil_{1} en los instantes críticos
tci de ejecución de las instrucciones críticas que manipulan este
bit, es decir, en el ejemplo representado en la figura 1, en los
lugares tc0 a tc6 y cuya amplitud es casi igual a cero aparte los
instantes críticos.
Si la hipótesis de subclave es falsa, la
clasificación no corresponde a la realidad. Estadísticamente, hay
entonces en cada paquete, tantas curvas que vieron verdaderamente
la manipulación del bit blanco en "0" que curvas habiendo
visto la manipulación del bit blanco en "1". La curva media
resultante M0(t) se sitúa entonces entorno a un valor medio
dado por (perfil_{0}-perfil_{1})/2 = Vm, puesto
que para cada una de las curvas, todos los bits manipulados,
incluido el bit blanco tienen tantas posibilidades de valer
"0" como de valer "1".
El mismo razonamiento en el segundo paquete
conduce a una curva media de consumo en corriente M1(t) cuya
amplitud se sitúa entorno a un valor medio dado por
(perfil_{0}-perfil_{1})/2 = Vm.
La señal DPA(t) suministrada por la
diferencia M0(t)-M1(t) es en este
caso prácticamente igual a cero. La señal DPA(t) en el caso
de una hipótesis de subclave falsa se representa en la figura
2.
De este modo, el ataque DPA explota la
diferencia del perfil de consumo en corriente durante la ejecución
de una instrucción según el valor del bit manipulado, para efectuar
una clasificación de curvas de consumo en corriente según una
función de selección de Boole para una hipótesis de subclave dada.
Al efectuar un análisis diferencial del consumo medio en corriente
entre los dos paquetes de curvas obtenidos, se consigue una señal
de información DPA(t).
El desarrollo de un ataque DPA consiste entonces
globalmente:
a - en extraer N mensajes aleatorios (por
ejemplo N igual a 1000);
b - en mandar ejecutar el algoritmo por la
tarjeta para cada uno de los N mensajes aleatorios, tomando nota de
la curva de consumo en corriente cada vez (medida en el Terminal
de alimentación del componente);
c - en hacer una hipótesis en una subclave;
\newpage
d - en predecir, para cada uno de los mensajes
aleatorios, el valor que adquiere uno de los bits blancos cuyo
valor sólo depende de los bits del mensaje (de entrada o de Salida)
y de la subclave tomada como hipótesis, para obtener la función de
selección de Boole;
e - en clasificar las curvas según esta función
de selección de Boole (es decir, según el valor "0" o "1"
predicho para este bit blanco para cada curva bajo la hipótesis de
subclave);
f - en calcular en cada paquete la curva
resultante de consumo medio en corriente;
g- en efectuar la diferencia de esas curvas
medias, para obtener la señal DPA (t).
Si la hipótesis en la subclave es justa, la
función de selección de Boole es justa y las curvas del primer
paquete corresponden verdaderamente a las curvas para las cuales el
mensaje aplicado en entrada o en salida dio un bit blanco en
"0" en la tarjeta y las curvas del segundo paquete corresponden
verdaderamente a las curvas para las cuales el mensaje aplicado en
entrada o en salida dio un bit blanco en "1" en la
tarjeta.
Nos encontramos en el caso de la figura 1: la
señal DPA (t) no es por tanto nula en los instantes tc0 a tc6
correspondiente a la ejecución de las instrucciones críticas
(aquellas que manipulan el bit blanco). Basta con que haya al menos
un instante crítico en el periodo de adquisición.
Cabe mencionar que el atacante no necesita
conocer con precisión los instantes críticos.
Si la hipótesis de subclave no es justa, la
clasificación no corresponde con la realidad y entonces tenemos en
cada paquete tantas curvas que corresponden en realidad a un bit
blanco en "0" como curvas que corresponden a un bit blanco en
"1". La señal DPA(t) es prácticamente nula por todas
partes (representado en la fig. 2). Debemos volver a la vuelta c- y
hacer una nueva hipótesis en la subclave.
Si la hipótesis resulta justa, podemos pasar a
evaluar otras subclaves, hasta haber reconstituido la clave al
máximo. Por ejemplo, con un algoritmo DES, se utiliza una clave de
64 bits, de los cuales solamente 56 bits útiles. Con un ataque DPA,
somos capaces de reconstituir al menos 48 bits de los 56 bits
útiles.
El presente invento tiene como finalidad aplicar
en un componente electrónico, un procedimiento de contra medida
que impida al atacante generar la señal DPA(t). Esto se
obtiene haciendo variar la clave de manera dinámica.
El presente invento supone el reparto de un
secreto común entre dos componentes electrónicos que comunican
entre sí. A continuación, estos componentes se designarán en las
figuras 7 y 8 por las referencias C (una tarjeta) y T (un terminal)
pero pueden adoptar diversas otras formas evidentes para el
profesional. Entre estos dos componentes, se supone que C está
expuesto potencialmente a la DPA. Por la contra medida inventiva,
el componente electrónico C se encuentra protegido contra los
ataque DPA.
Ya se conoce, principalmente, por el documento
WO-A-97 32 264, un procedimiento en
el que el valor corriente de la clave varía de manera dinámica en
un componente electrónico. Este tipo de procedimiento impone que
los dos componentes electrónicos que comparten la clave secreta
realicen de manera sincrónica operaciones de cálculos idénticos.
Esta solución no está adaptada a las arquitecturas descentralizadas
en las que una pluralidad de tarjetas inteligentes, por ejemplo,
cooperan con una pluralidad de terminales. Los terminales y
tarjetas no pueden permanecer sincronizados por definición en estos
sistemas. Además, la seguridad de la clave utilizada con estos
procedimientos no es óptima. Los terminales memorizan en una
memoria reprogramable el valor del número de solicitudes de
autentificación, así como el valor precedente de la clave. La
utilización de memoria reprogramable es onerosa y permite por
malevolencia modificar su contenido. De este modo, la utilización
de tarjetas fraudulentas podría ser admitida por un Terminal cuya
memoria estuviese alterada. El invento permite resolver los
inconvenientes citados ante-
riormente.
riormente.
Según el invento, el procedimiento de contra
medida permite a T y a C calcular de manera sincronizada una clave
de sesión desconocida del mundo exterior y utilizar esta clave en
un protocolo criptográfico de cifrado, autentificación, MAC o
cualquier otra función criptográfica que necesita un algoritmo con
clave secreta.
Con el fin de minimizar la exposición del dato
secreto compartido entre C y T, este dato secreto sólo se expondrá
indirectamente y evolucionará con el paso del tiempo, la clave
utilizada en la sesión i depende de la clave de la sesión anterior
(utilizada en la sesión i-1).
Cada clave de sesión, anotada K[i] se
manipulará como máximo dos veces:
- -
- durante su creación a partir de la clave k_{i-1};
- -
- durante su utilización en la aplicación.
En el invento, nos interesaremos por un
algoritmo del tipo DES. Este algoritmo DES comprende dieciséis
vueltas de cálculo idénticas; en este algoritmo se ha puesto de
manifiesto que los datos predicables por un atacante se sitúan en
la primera vuelta y en la última vuelta y que las instrucciones
críticas en el sentido del ataque DPA se sitúan en las tres primeras
vueltas y las tres últimas vueltas.
Un objetivo del invento consiste en hacer
invisible los datos manipulados por las instrucciones críticas
velando por que esos datos se cambien de una a otra aplicación del
algoritmo.
Tal como se caracteriza el invento, se refiere
pues a un procedimiento de contra medida que pone en aplicación un
algoritmo criptográfico A con clave secreta K[0] de talla k
para calcular un mensaje cifrado a partir de un mensaje de entrada.
Según el invento, se forma una clave de sesión K[i] a partir
de la clave de sesión anterior K[i-1]
mientras se sigue suministrando al Terminal T el índice i de manera
no confidencial. Al poseer K[0] e i, el Terminal T podrá
calcular K[i] sin necesidad de tener que calcular todas las
claves intermedias K[1], K[2],...
K[i-1].
La puesta en aplicación del procedimiento de
contra medida se caracteriza por una evolución de K[i] entre
las sucesivas utilizaciones de A, i es el número de ejecuciones
del algoritmo A, a partir de la regla: K[i] =
f(K[i-1]), siendo f una función que
toma en entrada una clave y envía en salida una clave.
En un modo de realización, se forma la clave
K[i], quitando la clave K[i-1] al
cuadrado módulo un número primo que tiene la talla de la clave.
La función f(x), x es una variable, es
tal que: f(x) = x^2 mod z, en la que z es una constante, tal
como el acelerador de cálculo utilizado por T es formulado por
K[i] = K[0]^(2^i) mod z, en el que la cantidad 2^i se
calcula módulo phi(z). Podemos observar que puede utilizarse
otra potencia entera (número e) que dos en el procedimiento
inventivo, por ejemplo cabe la posibilidad asimismo de definir:
f(x) = x^3 mod z.
El acelerador de cálculo correspondiente es
entonces K[i] = K[0]^(3^i)mod z. En el que la
cantidad 3^i se calcula módulo phi(z).
En otro modo de realización, se forma la clave
K[i] multiplicando la clave K[i-1] por
una constante c módulo un número primo que tiene la talla de la
clave.
La función f(x), siendo x una variable,
es tal que: f(x) = x*c mód z, en la que z y c son
constantes, tal como el acelerador de cálculo usado por T es
K[i] = K[0]*c^i mód z.
Preferentemente, z es el mayor número primo
inferior a 2^k.
Según otro modo operativo del invento, esta
última concierne también un procedimiento de contra medida en un
primer componente electrónico (C) que comunica con un segundo
componente electrónico (T) y que pone en aplicación un algoritmo
criptográfico B que utiliza el procedimiento descrito anteriormente
en el que la clave secreta consiste en una serie de octetos en los
que se aplica el procedimiento inventivo módulo un pequeño número
primo, la clave K[i-1] está constituida por
una serie de L octetos, la puesta en aplicación del procedimiento
de contra medida de K[i-1] entre las
utilizaciones sucesivas de B[i-1] es el
número de ejecuciones del algoritmo B a partir de la regla:
K[i-1] = {B[1, i-1],
..., B[L, i-1]}.
Dicha regla se transforma en K[i] al
sufrir la transformación para t que va de 1 a L:
B[t,i] =
B[t,i-1]^2 mód U en el que U es un número
primo de un octeto, por ejemplo 251,
la clave K[i] se calcula utilizando el
acelerador de cálculo para t que va de 1 a L:
B[t,i] =
B[t,i-1]^(2^1) mód U en dicha formulación la
cantidad 2^1 se calcula módulo phi(U).
Preferentemente, este último modo operativo
concierne un procedimiento de contra medida en el que la clave
K[i-1] consiste en una serie de octetos a los
que se aplica en el procedimiento inventivo módulo un pequeño
número primo caracterizado en que la clave
K[i-1] está constituida por una serie de L
octetos: K[i-1] =
{B[1,i-1],...,
B[L,i-1]}.
Y se transforma en K[i] al sufrir la
transformación para t que va de 1 a L:
B[t,i] =
B[t,i-1]*c[t] mód U en el que U es un
número primo de un octeto, por ejemplo 251,
la clave K[i] se calcula utilizando el
acelerador de cálculo para t que va de 1 a L: B[t,i] =
B[t,i-1]*c[t]^i mód U.
Preferentemente, para este último modo operativo
en particular en el que el terminal y la tarjeta efectúan el
cálculo de la clave de sesión K[i] en más que el número de
octetos necesarios al algoritmo de cifrado de clave secreta en el
que esta clave debería servir y seguidamente cortan la clave
resultante para obtener el número de octetos necesarios al
algoritmo de cifrado con clave secreta. Esto con el fin de
compensar la pérdida de entropía resultante del uso de módulos U
más pequeños que el número 256.
Preferentemente, el número U es de uno, dos,
tres, cuatro, cinco o seis octetos.
Evidentemente, el invento concierne también una
tarjeta inteligente y un Terminal electrónico para éste último
modo operativo particular.
Otras características y ventajas del invento se
detallan en la descripción siguiente que se hace a título
indicativo y en absoluto limitativo y en referencia a los dibujos
anexos, en los que:
- las figs. 1 y 2 ya descritas representan la
señal DPA(t) que se puede obtener en función de una
hipótesis sobre una subclave de la clave secreta K según un ataque
DPA;
- las figs. 3 y 4 son organigramas que
representan los primeros cálculos y los últimos cálculos del
algoritmo DES;
- la fig. 5 es un esquema bloque de la operación
SBOX usada en el algoritmo DES;
- la fig. 6 muestra un ejemplo de tabla de
constate elemental de una entrada y una salida usada en la
operación SBOX;
- la fig. 7 representa un primer ejemplo de
organigrama de ejecución del DES con un procedimiento de contra
medida según el invento.
- la fig. 8 representa un segundo ejemplo de
organigrama de ejecución del DES con un procedimiento de contra
medida según el invento.
La contra medida del presente invento no es
específica al DES, aunque se haya elegido la siguiente descripción,
y puede aplicarse igualmente a otros algoritmos con clave secreta
(tales como DES, IDEA, AES, FEAL, triple DES,
Blow-Fish, SAFER, SHA-MAC; RIPMEDI,
DFC, RC5, RC6 o SEAL) en el resto de nuestra exposición, se
considerará el caso de general de un algoritmo A (M, K)
(inicialmente vulnerable a la DPA) en el que K es una clave de
talla k, M el mensaje.
El algoritmo criptográfico con clave secreta DES
(en el resto del documento se le designa más sencillamente DES
para al algoritmo DES) comprende 16 series de cálculo, anotadas T1
a T16, como se representa en las figuras 3 y 4.
El DES se inicia por una permutación inicial IP
en el mensaje de entrada M (figura 3). El mensaje de entrada M es
una palabra f de 64 bits: Tras la permutación, se obtiene una
palabra e de 64 bits, que se corta en dos para formar los
parámetros de entrada L0 y R0 del primer cálculo (T1). L0 es una
palabra de 32 bits que contiene los 32 bits de peso fuerte de la
palabra e. R0 es una palabra h de 32 bits que contiene los 32 bits
de peso bajo de la palabra e.
La clave secreta K, que es una palabra q de 64
bits sufre ella misma una permutación y una compresión para
suministrar una palabra r de 56 bits.
El primer cálculo comprende una operación EXP
PERM en el parámetro R0, consistente en una expansión y
permutación, para suministrar en salida una palabra 1 de 48
bits.
Esta palabra 1 está combinada a un parámetro K1,
en una operación de tipo O EXCLUSIVO anotada XOR, para suministrar
una palabra b de 48 bits. El parámetro K1 que es una palabra m de
48 bits se obtiene de la palabra r por un desfase de una posición
(operación anotada SHIFT en las figuras 3 y 4), seguida de una
permutación y de una compresión (operación anotada COMP PERM).
La palabra b se aplica a una operación anotada
SBOX, a la salida de la cual se obtiene4 una palabra a de 32 bits.
Esta operación particular se explicará más detalladamente en
relación con las figuras 5 y 6.
La palabra ha sufrido una permutación P PERM,
dando a la salida la palabra c de 32 bits.
Esta palabra c está combinada al parámetro de
entrada L0 de la primera vuelta V1, en una operación lógica de tipo
O EXCLUSIVO, anotada XOR, que suministra a la salida la palabra g
de 32 bits.
La palabra h(=R0) de la primera vuelta
suministra el parámetro de entrada L1 de la vuelta siguiente (V2) y
la palabra g de la primera vuelta suministra el parámetro de entrada
R1 de la vuelta siguiente. La palabra p de la primera vuelta
suministra la entrada r de la vuelta siguiente.
Las demás vueltas V2 a V16 se desarrollan de
forma similar, excepto en lo que se refiere a la operación de
desfase SHIFT que se hace en una o dos posiciones según las
vueltas consideradas.
Cada vuelta Vi recibe así en entrada los
parámetros Li-1, Ri-1 y r y
suministra a la salida los parámetros Li y Ri y r para la vuelta
siguiente Vi + 1.
Al final del algoritmo DES (figura 4), el
mensaje cifrado se calcula a partir de los parámetros L16 y R16
suministrados por la última vuelta V16.
Este cálculo del mensaje cifrado C comprende en
práctica las siguientes operaciones:
- formación de una palabra e' de 64 bits
invirtiendo la posición de las palabras L16 y R16, y luego
concatenándolas;
- aplicación de la permutación IP^{-1} inversa
de aquella del principio de DES, para obtener la palabra f' de 64
bits que forma el mensaje cifrado C.
La operación SBOX se detalla en las figuras 5 y
6. Esta operación comprende una tabla de constantes TC_{0}, para
suministrar un dato de salida a en función de un dato de entrada
b.
En la práctica, esta tabla de constantes
TC_{0} se presenta en forma de ocho tablas de constantes
elementales TC_{0}1 a TC_{0}8, cada una de ellas recibe en
entrada solamente 6 bits de la palabra b, para suministrar a la
salida solamente 4 bits de la palabra a.
De este modo, la tabla de constantes elementales
TC_{0}1 representada en la figura 6 recibe como dato de entrada,
los bits b1 a b6 de la palabra b y suministra como dato de salida
los bits al a a4 de la palabra a.
En la práctica estas ocho tablas de constantes
elementales TC_{0}1 a TC_{0}8 se memorizan en memoria programa
del componente electrónico.
En la operación SBOX de la primera vuelta V1, un
bit particular del dato a de salida de la tabla de constantes
TC_{0} depende de solamente 6 bits del dato b aplicado en entrada,
es decir de solamente 6 bits de la clave secreta K y del mensaje
de entrada (M).
En la operación SBOX de la última vuelta V16, un
bit particular del dato a de salida de la tabla de constantes
TC_{0} puede recalcularse a partir de solamente 6 bits de la
clave secreta K y del mensaje cifrado (C).
Ahora bien, si tomamos el principio del ataque
DPA, si se elige como bit blanco un bit del dato de salida a, basta
con hacer una hipótesis en 6 bits de la clave K, para predecir el
valor de un bit blanco para un mensaje de entrada (M) o de salida
(C)dado. En otros términos, para el DES, basta con hacer una
hipótesis sobre una subclave de 6 bits.
En un ataque DPA sobre dicho algoritmo para un
bit blanco dado, podremos entonces discriminar una hipótesis de
subclave justa entre 64 posibles.
De este modo, tomando solamente ocho bits de la
palabra a como bits blancos, (un bit de salida por tabla de
constantes elementales TC_{0}1 a TC_{0}8), se puede descubrir
hasta 6 x 8 = 48 bits de la clave secreta, haciendo ataques DPA en
cada uno de esos bits blancos.
En el DES, se encuentran entonces instrucciones
críticas en el sentido de los ataques DPA al principio del
algoritmo y al final.
Al principio del algoritmo DES, los datos que
pueden predecirse a partir de un mensaje de entrada M y de una
hipótesis de subclave, son los datos a y g calculados en la
primera vuelta (V1).
El dato a de la primera vuelta V1 (figura 3) es
el dato de salida de la operación SBOX de la vuelta
considerada.
El dato g se calcula a partir del dato a, por
permutación (P PERM) y operación O EXCLUSIVO con el parámetro de
entrada L0.
De hecho, el dato c de la primera vuelta, es un
dato derivado del dato a de la primera vuelta. El dato derivado c
corresponde a una simple permutación de bits del dato a.
El dato 1 de la segunda vuelta es un dato
derivado del dato g de la primera vuelta, puesto que corresponde a
una permutación de los bits de la palabra g, por otra parte
ciertos bits de la palabra g están duplicados.
Al conocer a y g, también se pueden conocer esos
datos derivados.
Las instrucciones críticas del principio del
algoritmo son las instrucciones críticas que manipulan ya sea el
dato que se puede predecir, como el dato a de la primera vuelta,
ya sea un dato derivado.
Las instrucciones críticas que manipulan el dato
a de la primera vuelta V1 o el dato derivado c son de este modo
las instrucciones del final de la operación SBOX, de la operación P
PERM y del principio de la operación XOR de la primera vuelta
V1.
Las instrucciones críticas que manipulan el dato
g o datos derivados son todas las instrucciones del final de
operación XOR del final de la primera vuelta V1 hasta las
instrucciones del principio de operación SBOX de la segunda vuelta
V2, y el principio de la operación XOR al final de la tercera
vuelta V3 (L2 = h(T2) = g(T1)).
Al final del algoritmo DES, los datos que pueden
predecirse a partir de un mensaje cifrado C y de una hipótesis de
subclave, son el dato a de la decimosexta vuelta V16 y el L15 igual
a la palabra h de la decimocuarta vuelta V14.
Las instrucciones críticas que manipulan el dato
a de la decimosexta vuelta o de los datos derivados son las
instrucciones de la decimosexta vuelta del final de la operación
SBOX, de la operación de permutación P PERM y del principio de
operación XOR.
Para el dato L15, las instrucciones críticas que
manipulan este dato o los datos derivados son todas las
instrucciones, desde las instrucciones de final de operación XOR
de la decimocuarta vuelta V14, hasta las instrucciones del
principio de operación SBOX de la decimoquinta vuelta V15, más las
instrucciones del principio de operación XOR de la decimosexta
vuelta V16.
El procedimiento de contra medida según el
invento aplicado a este algoritmo DES consiste en tener, para cada
instrucción crítica, tantas posibilidades como la instrucción
crítica manipula como su complemento. Así, cualquiera que sea el
bit blanco en el que puede hacerse el ataque DPA, se tienen tantas
posibilidades que las instrucciones críticas que manipulan este
bit, manipulen un "1" o un "0".
En la práctica, esto debe ser cierto para cada
uno de los bits blancos potenciales: en otros términos, el atacante
que ha elegido entre varios ataques posibles, es decir entre
varias funciones de selección de Boole posibles para efectuar su
clasificación de curvas, para una hipótesis de subclave dada, la
puesta en aplicación del procedimiento de contra medida según el
invento debe intentar que los datos manipulados por cada una de las
instrucciones críticas, adquieran de manera aleatoria, una vez
entre dos, un valor o su complemento. En lo que se refiere a la
aplicación del procedimiento de contra medida según el invento del
algoritmo DES, es preciso aplicar la contra medida a las
instrucciones críticas del principio de DES y a las instrucciones
críticas del final de DES, para estar completamente protegido.
En el DES, todos los datos manipulados por
instrucciones críticas son un dato de salida o de datos derivados
de un dato de salida de una operación SBOX.
En efecto, en el principio de DES, los datos que
pueden predecirse son los datos a y g de la primera vuelta V1. El
dato a es el dato de salida de la operación SBOX de la primera
vuelta. El dato g se calcula a partir del dato a, puesto que g = P
PERM(a) XOR L0. g es por tanto un dato derivado del dato de
salida a de la operación SBOX de la primera vuelta. De este modo,
todos los datos manipulados por las instrucciones críticas del
principio de DES se derivan directa o indirectamente del datos de
salida a de la operación SBOX de la primera vuelta.
En lo que se refiere al final de DES, los datos
que pueden predecirse son el dato a de la decimosexta vuelta V16 y
el g de la decimocuarta vuelta V14, g es igual a L15.
El dato a es el dato de salida de la operación
SBOX de la decimosexta vuelta V16.
En cuanto el dato L15, éste se calcula, en la
ejecución normal del algoritmo DES, a partir del dato de salida a
de la operación SBOX del decimocuarto vuelta V14: L15 = P
PERM(a) XOR L14.
Si se hacen impredecibles los datos de salida a
de estas operaciones SBOX particulares, así se hacen impredecibles
todos los datos manipulados por las instrucciones críticas del
algoritmo DES. Si se considera que estas operaciones SBOX
constituyen de los primeros medios para suministrar un dato de
salida S = a a partir de un dato de entrada E = b, el procedimiento
de contramedida aplicado al algoritmo DES consiste en utilizar
otros medios para hacer impredecible el dato de salida, de tal modo
que este dato de salida y/o de los datos derivados manipulados por
las instrucciones críticas sean todas ellas impredecibles.
Según el invento, se forma un grupo formado por
las tres primeras vueltas al menos y otro grupo formado por las
tres últimas vueltas como mínimo. Estos grupos contienen así pues
todas las vueltas que comprenden instrucciones críticas.
Se asocian a esos dos grupos una primera
secuencia que utiliza los primeros medios para todas las vueltas y
una segunda secuencia que utiliza los demás medios para ciertas
vueltas como mínimo.
En las otras vueltas que no están en estos
grupos, se puede continuar utilizando los primeros medios.
La utilización de esos otros medios es tal que
el resultado en salida, es decir, el mensaje cifrado permanece
justo.
Esos otros medios pueden comprender varios
medios diferentes. Son tales que en una y/u otro dato entre los
datos de entrada y de salida de primeros medios, hacen corresponder
el dato complementado.
De este modo, considerando un gran número de
ejecución, los grupos utilizaran por término medio una vez entre
dos la primera secuencia, que es la secuencia normal del algoritmo,
y una vez entre dos la otra secuencia. Los datos manipulados por
las instrucciones críticas en esos grupos, correspondientes a
ciertos resultados intermedios, serán por término medio
complementados una vez entre dos. En un gran número de curvas
tendremos estadísticamente tantas oportunidades como un bit blanco
dado, ya sea a 1 o a 0.
Según la figura 7, que representa un primer
ejemplo de organigrama de ejecución del DES con un procedimiento de
contra medida según el invento, la comunicación entre los
componentes T (Terminal) y T (Tarjeta) está gobernada por el
intercambio de las señales según las vueltas 1 a 6 descritas a
continuación:
- 1.
- C incrementado i en su memoria no volátil (por ejemplo EEPROM);
- 2.
- C genera la clave de sesión K[i] = K[i-1]^2 mod z;
- 3.
- C borra la clave K[i-1] de su memoria no volátil (por ejemplo EEPROM) e inscribe en su lugar K[i];
- 4.
- C comunica i a T;
- 5.
- T calcula K[i] = K[0]^(2^i) mód Z en el que la cantidad 2^i se calcula módulo phi(z).
- 6.
- C y T inician un cálculo criptográfico que pone en aplicación K[i];
Alternativamente, según la figura 8, que
representa un segundo ejemplo de organigrama de ejecución del DES
con un procedimiento de contra medida según el invento, la
comunicación entre C y T está gobernada por el intercambio de
señales según las vueltas 1 a 6 descritas a continuación:
- 1.
- C incrementa i en su memoria no volátil (por ejemplo EEPROM).
- 2.
- C genera la clave de sesión K[i] = K[i-1]*c mód z.
- 3.
- C borra la clave K[i-1] de su memoria no volátil (por ejemplo EEPROM) e inscribe en su lugar K[i];
- 4.
- C comunica i a T.
- 5.
- T calcula K[i] = K[0]*(c^i) mód Z
- 6.
- C y T inician un cálculo criptográfico que pone en aplicación K[i].
La elección óptima para el número z es el más
pequeño número de tamaño k. En particular:
Claims (6)
1. Procedimiento de contra medida para un
primer componente electrónico (C) que comunica con un segundo
componente electrónico (T) y que pone en aplicación un algoritmo
criptográfico A con clave secreta K de tamaño k bits, la aplicación
del procedimiento de contra medida comprende una evolución del valor
K[i] de dicha clave durante las utilizaciones sucesivas del
algoritmo A, i es el número de ejecuciones del algoritmo A,
caracterizado en que
- el primer componente electrónico (C)
- -
- calcula el valor K[i] de la clave a partir del valor anterior K[i-1] de dicha clave mediante una función f tal como K[i] = f(K[i-1]
- -
- transmite el número i al segundo componente electrónico (T), y en que
- el segundo componente electrónico (T) posee un
acelerador de cálculo para calcular el valor K[i] de la clave
secreta a partir de K[0] sin tener que generar los
i-1 valor de claves que separan K[0] y
K[i].
2. Procedimiento según la reivindicación 1
caracterizado en que la función f aplicada por el primer
componente (C) consiste en elevar a una potencia entera P el valor
K[i-1] de la clave módulo un número primo z
de un tamaño igual al de la clave, dicho número z es una constante
tal como el acelerador de cálculo utilizado por el segundo
componente electrónico (T) consiste en K[i] =
K[0]^(P^i) mód z, el valor P^i se calcula módulo
phi(z).
3. Procedimiento según la reivindicación 1
caracterizado en que la función f aplicada por el primer
componente (C) consiste en elevar al cuadrado el valor
K[i-1] de la clave módulo un número primo z
de un tamaño igual al de la clave, dicho número z es una constante
tal como el acelerador de cálculo utilizado por el segundo
componente electrónico (T) consiste en K[i] =
K[0]^(2^i) mód z, el valor 2^i se calcula módulo
phi(z).
4. Procedimiento según la reivindicación 1
caracterizado en que la función f aplicada por el primer
componente (C) consiste en multiplicar el valor
K[i-1] de la clave por una constante c
módulo un número primo z de un tamaño igual al de la clave, dichos
números c y z son constantes tales como el acelerador de cálculo
utilizado por el segundo componente electrónico (T) consiste en
K[i] = K[0]*c^i mód z.
5. Procedimiento según cualquiera de las
reivindicaciones 2 a 4 caracterizado en que z es el mayor
número primo inferior a 2^k.
6. Componente electrónico (T) en condiciones de
comunicar con un segundo componente electrónico (C) mediante un
algoritmo criptográfico A con clave secreta K, el valor K[i]
de dicha clave K evoluciona durante las utilizaciones sucesivas
del algoritmo A a partir del valor anterior
K[i-1] de dicha clave mediante una función f
tal como K[i] = f(K[i-1], i es
el número de ejecuciones del algoritmo A, caracterizado en
que el componente electrónico (T) comprende un medio para realizar
un acelerador de cálculo para calcular el valor K[i] de la
clave secreta a partir de K[0] sin tener que generar los
i-1 valor de claves que separan K[0] y
K[i], el valor de i se transmite a través de dicho segundo
componente electrónico (C).
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9906264 | 1999-05-11 | ||
FR9906264A FR2793571B1 (fr) | 1999-05-11 | 1999-05-11 | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete et dynamique |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2287013T3 true ES2287013T3 (es) | 2007-12-16 |
Family
ID=9545691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES00925433T Expired - Lifetime ES2287013T3 (es) | 1999-05-11 | 2000-05-11 | Procedimiento de contramedida en un componente electronico que pone en aplicacion un algoritmo de criptografia con llave secreta y dinamica. |
Country Status (8)
Country | Link |
---|---|
US (1) | US7206408B1 (es) |
EP (1) | EP1180260B1 (es) |
CN (1) | CN1231871C (es) |
AU (1) | AU4415900A (es) |
DE (1) | DE60034944T2 (es) |
ES (1) | ES2287013T3 (es) |
FR (1) | FR2793571B1 (es) |
WO (1) | WO2000068901A1 (es) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4810098B2 (ja) * | 2005-01-19 | 2011-11-09 | 株式会社東芝 | 紙葉類処理装置における処理データ転送方法および紙葉類処理装置 |
EP1798888B1 (fr) * | 2005-12-19 | 2011-02-09 | St Microelectronics S.A. | Protection de l'exécution d'un algorithme DES |
EP2677327A1 (en) * | 2012-06-21 | 2013-12-25 | Gemalto SA | Method for producing an electronic device with a disabled sensitive mode, and method for transforming such an electronic device to re-activate its sensitive mode |
CN102999077B (zh) * | 2012-12-03 | 2014-08-13 | 哈尔滨工业大学(威海) | 一种高线性补偿的电流平整电路 |
EP3208788B1 (en) * | 2016-02-22 | 2020-06-03 | Eshard | Method of protecting a circuit against a side-channel analysis |
CN110414276B (zh) * | 2018-04-27 | 2021-05-18 | 联华电子股份有限公司 | 电子元件的加密方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2638869B1 (fr) * | 1988-11-10 | 1990-12-21 | Sgs Thomson Microelectronics | Dispositif de securite contre la detection non autorisee de donnees protegees |
DE4223258C3 (de) * | 1992-07-15 | 2001-03-15 | Telefunken Microelectron | Verfahren zur verifizierbaren Übertragung von Daten |
DE69327644T2 (de) * | 1993-01-07 | 2000-09-07 | Ford France S.A., Rueil-Malmaison | Ferngesteuertes Sicherheitssystem |
US5347581A (en) * | 1993-09-15 | 1994-09-13 | Gemplus Developpement | Verification process for a communication system |
BE1008699A3 (fr) * | 1994-09-09 | 1996-07-02 | Banksys | Procede et agencement pour donner selectivement un acces dans un systeme de securite. |
FR2733379B1 (fr) * | 1995-04-20 | 1997-06-20 | Gemplus Card Int | Procede de generation de signatures electroniques, notamment pour cartes a puces |
FR2739469B1 (fr) * | 1995-10-03 | 1997-12-26 | Gemplus Card Int | Procede de cryptographie a cle publique base sur le logarithme discret |
FR2745135B1 (fr) * | 1996-02-15 | 1998-09-18 | Cedric Colnot | Procede pour faire autoriser par un serveur l'acces a un service a partir de dispositifs portatifs a microcircuits electroniques du type carte a memoire par exemple |
FR2745924B1 (fr) * | 1996-03-07 | 1998-12-11 | Bull Cp8 | Circuit integre perfectionne et procede d'utilisation d'un tel circuit integre |
WO1997036264A1 (fr) * | 1996-03-22 | 1997-10-02 | Activcard | Systeme de controle d'acces a une fonction, dans lequel le chiffrement implique plusieurs variables dynamiques |
-
1999
- 1999-05-11 FR FR9906264A patent/FR2793571B1/fr not_active Expired - Fee Related
-
2000
- 2000-05-11 US US09/959,944 patent/US7206408B1/en not_active Expired - Fee Related
- 2000-05-11 CN CNB008102589A patent/CN1231871C/zh not_active Expired - Fee Related
- 2000-05-11 DE DE60034944T patent/DE60034944T2/de not_active Expired - Lifetime
- 2000-05-11 EP EP00925433A patent/EP1180260B1/fr not_active Expired - Lifetime
- 2000-05-11 ES ES00925433T patent/ES2287013T3/es not_active Expired - Lifetime
- 2000-05-11 AU AU44159/00A patent/AU4415900A/en not_active Abandoned
- 2000-05-11 WO PCT/FR2000/001269 patent/WO2000068901A1/fr active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
US7206408B1 (en) | 2007-04-17 |
FR2793571A1 (fr) | 2000-11-17 |
CN1360715A (zh) | 2002-07-24 |
EP1180260A1 (fr) | 2002-02-20 |
AU4415900A (en) | 2000-11-21 |
EP1180260B1 (fr) | 2007-05-23 |
DE60034944D1 (de) | 2007-07-05 |
FR2793571B1 (fr) | 2003-10-31 |
DE60034944T2 (de) | 2008-01-24 |
WO2000068901A1 (fr) | 2000-11-16 |
CN1231871C (zh) | 2005-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3140482B2 (ja) | 情報を暗号化/復号化する方法と装置 | |
US10313128B2 (en) | Address-dependent key generator by XOR tree | |
ES2717999T3 (es) | Método criptográfico por bloques para cifrar/descifrar mensajes y dispositivos criptográficos para implementar este método | |
CN104160674B (zh) | 内容中心网络 | |
US5452358A (en) | Method and apparatus for improving the security of an electronic codebook encryption scheme utilizing a data dependent encryption function | |
EP1308885B1 (en) | Information processing and encryption unit | |
US7764786B2 (en) | Protection of a DES algorithm | |
CN108206735A (zh) | 通过比特混合器生成密码轮密钥的方法和系统 | |
US20110085663A1 (en) | Method for the access-related or communication-related random encryption and decryption of data | |
US10146701B2 (en) | Address-dependent key generation with a substitution-permutation network | |
ES2295007T3 (es) | Procedimiento de contramedida en un componente electronico que emplea un alritmo de criptografia con clave secreta. | |
AU2301401A (en) | Method for making data processing resistant to extraction of data by analysis of unintended side-channel signals | |
US9602281B2 (en) | Parallelizable cipher construction | |
Tezcan | Key lengths revisited: GPU-based brute force cryptanalysis of DES, 3DES, and PRESENT | |
ES2262502T3 (es) | Procedimiento de contramedidas en un componente electronico que utiliza un algoritmo de criptografia con clave secreta. | |
ES2287013T3 (es) | Procedimiento de contramedida en un componente electronico que pone en aplicacion un algoritmo de criptografia con llave secreta y dinamica. | |
Saarinen | Related-key attacks against full Hummingbird-2 | |
EP1351430B1 (en) | Expansion key generating device, encryption device and encryption system | |
ES2255296T3 (es) | Procedimiento de contramedida en un componente electronico que utiliza un algoritmo de criptografia con clave secreta. | |
US9946662B2 (en) | Double-mix Feistel network for key generation or encryption | |
Fyrbiak et al. | Combined HW-SW adaptive clone-resistant functions as physical security anchors | |
ES2283134T3 (es) | Procedimiento de contramedida en un componente electronico que aplica un algoritmo de criptografia de clave secreta. | |
KR102287962B1 (ko) | 부채널 공격 대응이 용이한 128비트 경량 블록 암호화 방법 및 이를 이용한 장치 | |
Pramod et al. | An advanced AES algorithm using swap and 400 bit data block with flexible S-Box in Cloud Computing | |
Abdullah et al. | Extended spins framework for security wireless sensor network |