ES2262502T3 - Procedimiento de contramedidas en un componente electronico que utiliza un algoritmo de criptografia con clave secreta. - Google Patents
Procedimiento de contramedidas en un componente electronico que utiliza un algoritmo de criptografia con clave secreta.Info
- Publication number
- ES2262502T3 ES2262502T3 ES00900632T ES00900632T ES2262502T3 ES 2262502 T3 ES2262502 T3 ES 2262502T3 ES 00900632 T ES00900632 T ES 00900632T ES 00900632 T ES00900632 T ES 00900632T ES 2262502 T3 ES2262502 T3 ES 2262502T3
- Authority
- ES
- Spain
- Prior art keywords
- data
- random
- opn
- result
- input
- 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/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
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- 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 OR CALCULATING; 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
Procedimiento de contramedida contra los ataques por análisis diferencial de consumo de corriente en un componente electrónico que pone en aplicación un algoritmo criptográfico con clave secreta (K) en un mensaje de entrada (M), caracterizado porque la ejecución de una operación (OPN) o una secuencia de operaciones que comprenden una manipulación bit por bit de un dato de entrada (D), para suministrar un dato de salida (OPN (D)) comprende las siguientes etapas: - obtención de un valor aleatorio, de un primer dato aleatorio (U), del mismo tamaño que el dato de entrada (D), - cálculo de un segundo dato aleatorio (V), efectuando un 0 exclusivo entre el dato de entrada y el primer dato aleatorio (U); - ejecución de la operación (OPN) o de la secuencia de operación sucesivamente al primer dato aleatorio (U) y al segundo dato aleatorio (V), que suministran respectivamente un primer resultado aleatorio (OPN (U)) y un segundo resultado aleatorio (OPN (V)); - cálculo del dato de salida (OPN (D)) efectuando un O exclusivo entre dichos primero y segundo resultados aleatorios.
Description
Procedimiento de contramedidas en un componente
electrónico que utiliza un algoritmo de criptografía con clave
secreta.
El presente invento concierne un procedimiento
de contramedida en un componente electrónico que utiliza un
algoritmo de criptografía con clave secreta. Se utilizan en
aplicaciones en las que el acceso a servicios o datos está
controlado severamente. Su arquitectura está formada en torno a un
microprocesador y memorias, entre las cuales una memoria programa
que contiene la clave secreta.
Estos componentes se utilizan, principalmente,
en las tarjetas con chip, para ciertas de sus aplicaciones. Por
ejemplo, para aplicaciones de acceso a ciertos bancos de datos,
aplicaciones bancarias, aplicaciones de telepeaje, así como para la
televisión, la distribución de gasolina e incluso el paso de peajes
de autopistas.
Estos componentes o tarjetas ponen en aplicación
un algoritmo de criptografía con clave secreta, entre los cuales el
más conocido es el algoritmo DES (por DATA
Encryp-tion Standard en la literatura
anglosajona). Existen asimismo otros algoritmos con clave secreta,
como el algoritmo RC5 y también el algoritmo COMP128. Evidentemente
esta lista no es exhaustiva.
De manera general y sucinta, la función de estos
algoritmos consiste en calcular un mensaje cifrado a partir de un
mensaje aplicado en entrada (en la tarjeta) por un sistema huésped
(servidor, distribuidor bancario...) y la clave secreta contenida
en la tarjeta, y suministrar seguidamente al sistema huésped este
mensaje cifrado, lo que permite p. ej. al sistema huésped
autentificar el componente o la tarjeta, intercambiar datos....
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 programa. Toda la seguridad de estos algoritmos de
criptografía se encuentra en la clave secreta contenida en la
tarjeta y desconocida para el mundo exterior a esta tarjeta. Esta
clave no puede deducirse cuando se conoce únicamente el mensaje
aplicado en entrada y el mensaje cifrado suministrado que se
obtiene a cambio.
Ahora bien, se ha puesto de manifiesto que estos
ataques externos, basados en los consumos de corriente o un análisis
diferencial de consumo en corriente cuando el microprocesador de una
tarjeta está desarrollando el algoritmo de criptografía para
calcular un mensaje cifrado, permiten a terceras personas mal
intencionadas descubrir la clave secreta contenida en esta tarjeta.
Estos ataques se denominan ataques DPA, acrónimo anglosajón por
Differential Power Analysis.
El principio de estos 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, cuando una instrucción ejecutada
por el microprocesador necesita una manipulación de un dato bit
por bit, tenemos dos perfiles de corriente diferentes según que
dicho bit valga "1" ó "0". Típicamente, si el
microprocesador manipula un "0", tenemos en este instante de
ejecución una primera amplitud de la corriente consumida, y si el
microprocesador manipula un "1", tenemos una segunda amplitud
de la corriente consumida, diferente a la primera.
De este modo, el ataque DPA consiste en explotar
la diferencia del perfil de consumo en corriente en la tarjeta
durante la ejecución de una instrucción según el valor del bit
manipulado. Si simplificamos, el comportamiento de un ataque DPA
consiste en identificar uno o dos periodos particulares del
desarrollo del algoritmo que comprende la ejecución de al menos una
instrucción que manipula datos bit por bit; a tomar nota de un gran
número N de curvas de consumo en corriente durante este o estos
periodos, una curva por mensaje diferente en el que se aplica el
algoritmo; se predecirá, para cada curva, el valor tomado por un
bit del dato para una hipótesis sobre una subclave, es decir sobre
una parte al menos de la clave secreta, que permite hacer la
predicción; y efectuar una clasificación de las curvas según la
función de selección booleana correspondiente: se obtiene un primer
paquete de curvas para las cuales la predicción vale "1" y un
segundo paquete de curvas para las cuales la predicción vale
"0". Al efectuar un análisis diferencial del consumo medio en
corriente entre los dos paquetes de curvas obtenidas, se obtiene una
señal de información DPA (t). Si la hipótesis de subclave no es
justa, cada paquete comprende en realidad tantas curvas
correspondientes a la manipulación de un "1" como curvas que
manipulan un "0". Los dos paquetes son pues equivalentes en
términos de consumo en corriente y la señal de información es
prácticamente nula. Si la hipótesis de subclave es justa, un
paquete comprende realmente las curvas correspondientes a la
manipulación de un "0" y el otro paquete comprende realmente
las curvas correspondientes a la manipulación de un "0": la
señal de información DPA (t) obtenida no es unla: comprende picos de
consumo correspondientes a la manipulación por el microprocesador
del bit en el que se ha basado la clasificación. Estos picos tienen
una amplitud correspondiente a la diferencia de consumo por el
microprocesador según si manipula un "1" o un "0". De este
modo, poco a poco, es posible descubrir toda o parte de la clave
secreta contenida en un componente electrónico.
Existen numerosos algoritmos con clave secreta
para la ejecución de los cuales el microprocesador debe efectuar en
ciertos momentos manipulaciones de datos bit por bit.
\newpage
Principalmente, los algoritmos comprenden
generalmente permutaciones que necesitan dichas manipulaciones por
el microprocesador. Al analizar el consumo de corriente durante la
ejecución de estas manipulaciones bit por bit, es posible descubrir
el valor de ciertos bits, al menos del dato manipulado. El
conocimiento de este dato puede facilitar informaciones sobre
resultados intermedios obtenidos durante la ejecución del algoritmo
de cifrado, que a su vez pueden permitir descubrir una parte por lo
menos de los bits de la clave secreta utilizada.
Citamos a continuación tres documentos que se
asemejan al invento al mismo tiempo que se diferencian.
El primer documento "NTT REVIEW, Vol. 6, n° 4,
del 1 de julio de 1997, páginas 85-90, MIYAGUCHI S:
"SECRET KEY CIPHERS THAT CHANGE THE ENCIPHERMENT ALGORITHM UNDER
THE CONTROL OF THE KEY", XP00046032", anotado D1, concierne
una resolución a un problema matemático que evita los ataques de
mensaje y cifras conocidas. El método descrito modifica el "key
Schedule", traducido por "subparte de la clave en el
algoritmo", de cualquier algoritmo con clave secreta. Sin
embargo, este método ya no se dirige al algoritmo estándar DES,
algoritmo con clave secreta bien conocido. La tecnología descrita
en este documento consiste en efectuar rotaciones de datos e
igualmente substitución de datos.
El segundo documento "INSTITUTE OF ELECTRICAL
AND ELECTRONICS ENGINEERS, IEEE GLOBAL TELECOMUNICATIONS CONFERENCE,
PHOENIX, ARIZONA", NOV. 3-8, 1997, vol. 2, 3 de
nov. de 1997, págs. 689-693, YI X ET AL:
"A METHOD FOR OBTAINING CRYPTOGRAPHICALLY STRONG 8X8
S-BOXES", XP0007376262, anotado D2, concierne una
propuesta de mejora de los S BOX en el algoritmo DES estándar
destinado a mejorar la seguridad en un plan de criptoanálisis, es
decir en matemáticas, pero no en criptografía física.
El tercer documento
"FR-A-2 672 402", anotado D3,
concierne un procedimiento y dispositivo que utiliza el algoritmo
estándar DES para construir un generador de números aleatorios. El
algoritmo DES es un algoritmo con clave secreta que tiene datos como
p. ej. un contador destinado a generar en la salida un resultado
que puede asimilarse a un número aleatorio, resultado situado al
exterior del DES.
El presente invento tiene por objeto proteger
los datos en los que se efectúan manipulaciones bit por bit,
aplicándoles una contramedida, es decir una interferencia, de tal
modo que el análisis del consumo de corriente durante la
manipulación de este dato no revele ninguna información sobre este
dato: la señal de información DPA (t) será siempre nula
cualesquiera que sean las hipótesis de subclave o de clave
efectuadas en los ataques DPA.
Tal como se reivindica, el invento concierne un
procedimiento de contramedida en un componente electrónico que pone
en aplicación un algoritmo criptográfico con clave secreta K.
Según el invento, el procedimiento de
contramedida consiste, mediante una operación o una serie de
operaciones aplicadas en un dato de entrada y que comprenden al
menos una manipulación bit por bit, en extraer previamente un
primer dato aleatorio de mismo tamaño que el primer dato, en
calcular un segundo dato aleatorio efectuando un O exclusivo entre
el primer dato aleatorio y el dato de entrada, y en aplicar
sucesivamente la operación o la serie de operaciones en el primer
dato aleatorio y en el segundo dato aleatorio.
De este modo, la operación o la serie de
operaciones solamente manipulan datos aleatorios a la salida siendo
imposible poner en aplicación un ataque DPA.
Para descubrir el dato de salida correspondiente
a la aplicación de la serie de etapas en el dato de entrada, basta
con calcular el O exclusivo entre el primero y el segundo resultado
aleatorio.
En un primer modo de aplicación de este
procedimiento de contramedida, la operación o serie de operaciones
tratan sobre un dato calculado a partir del mensaje a cifrar.
En un segundo modo de aplicación del
procedimiento de contramedida según el invento, se aplica este
procedimiento a operaciones que tratan directamente sobre la clave
secreta y que suministran para cada vuelta del algoritmo la subclave
a utilizar.
En este modo de aplicación del procedimiento de
contramedida según el invento, se prevé efectuar una primera serie
de etapas según el procedimiento indicado más arriba, de tal modo
que se obtenga una primera subclave aleatoria y una segunda
subclave aleatoria.
En esta variante, en vez de calcular la
verdadera subclave para la vuelta considerada, se utilizan estas
subclaves aleatorias, de tal modo que la subclave verdadera de cada
vuelta ya no aparezca en claro: sólo se manipulan subclaves
aleatorias.
Así pues, el presente invento se distingue en
primer lugar del documento D1 por que concierne únicamente el DES
sin modificar su estructura, ni sus entradas, ni sus Salidas de
datos. La operación XOR utilizada descrita más abajo permite
enmascarar los datos con un parámetro aleatorio.
Se distingue igualmente del documento D2 por que
trata los problemas de criptografía física, es decir que propone
resolver problemas de puesta en aplicación mediante aparición de
efectos secundarios; por otro lado sólo concierne los S BOX pero
trata los problemas de seguridad durante las compresiones,
permutaciones, expansiones de datos
(Fig. 1).
(Fig. 1).
Por último, se distingue del documento D3 por
que usar un número aleatorio en el interior del algoritmo DES para
asegurar la ejecución del DES contra todo tipo de ataques.
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 figuras 1 y 2 son organigramas detallados
de las primeras y últimas vueltas del algoritmo DES;
- la figura 3 representa esquemáticamente el
procedimiento de contramedida según el invento aplicado a una
operación que efectúa una manipulación de datos bit por bit:
- la figura 4 representa un primer modo de
aplicación del procedimiento de contramedida según el invento en la
ejecución del algoritmo DES;
- la figura 5 representa esquemáticamente el
final de la ejecución del algoritmo DES;
- la figura 6 representa esquemáticamente un
segundo modo de aplicación del procedimiento según el invento sobre
las operaciones del algoritmo DES que manipula la clave secreta;
y
- la figura 7 representa un organigrama
detallado del algoritmo DES en una aplicación del procedimiento de
contramedida correspondiente al esquema de la figura 5; y
- la figura 8 representa un esquema bloque de
una tarjeta con chip en la que se puede poner en aplicación un
procedimiento de contramedida según el invento.
El algoritmo criptográfico con clave secreta DES
(en el resto del documento hablaremos más sencillamente del DES o
del algoritmo DES) comprende 16 vueltas de cálculo, anotadas V1 a
V16, como se representa en las figuras 1 y 2.
El DES comienza por una permutación inicial IP
en el mensaje de entrada M (figura 1). El mensaje de entrada M es
una palabra f de 64 bits. Una vez permutado se obtiene una palabra
e de 64 bits, que se corta en dos para formar los parámetros de
entrada LO y RO de la primera vuelta (V1). LO es una palabra d de 32
bits que contiene los 32 bits de peso fuerte de la palabra e, RO 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 está ella misma sometida a una permutación y una compresión
para suministrar una palabra r de 56 bits.
La primera vuelta incluye una operación EXP PEKM
en el parámetro RO, que consiste en una expansión y una permutación
para suministrar a la 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 mediante un desfase de una
posición (operación anotada SHIFT en las figuras 1 y 2)
suministrando una palabra p de 48 bits; en la que se aplica una
operación que comprende una permutación y 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 obtiene una palabra de 32 bits.
Esta operación particular consiste en suministrar un dato de salida
a tomado en una tabla de constantes TC_{0} en función de un dato
de entrada b.
La palabra a ha sido sometida a 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 LO 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 (=RO) 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
modo 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 V1 recibe así en entrada los
parámetros Li-1, Ri-1 y r y
suministra a la salida los parámetros Li, Ri y r para la vuelta
siguiente Ti+1.
Al final del algoritmo DES (figura 5), 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
la práctica las siguientes operaciones:
- formación de una palabra e' de 64 bits al
invertir la posición de las palabras L16 y R16 y después
concatenándolas:
- aplicación de la permutación IP^{-1} inversa
a la del principio de DES, para obtener la palabra f' de 64 bits que
forma el mensaje cifrado C.
Podemos comprobar que este algoritmo comprende
numerosas operaciones que manipulan los datos bit por bit, al igual
que las operaciones de permutación.
Según el procedimiento de contramedida según el
invento, se aplica una contramedida de software cuando el
microprocesador que calcula el mensaje cifrado efectúa una
manipulación bit por bit. De esta manera, el tratamiento estadístico
y la función de selección booleana del ataque DPA aplicado a las
curvas de consumo de corriente no facilita ninguna información: la
señal DPA (t) permanece nula cualesquiera que fueran las hipótesis
efectuadas.
La contramedida software según el invento
consiste así a hacer impredecible cada uno de los bits manipulados
por el microprocesador.
El principio de esta contramedida está
representado en la figura 3.
Ya sea un dato de entrada D.
Ya sea una operación OPN a calcular en este dato
de entrada D, cuyo resultado está anotado OPN(D). Esta
operación OPN necesita una manipulación bit por bit del dato de
entrada D por el microprocesador; se trata p. ej. de una
permutación.
Según el invento, en vez de aplicar la operación
OPN en el dato de entrada D para calcular el resultado OPN (D) de
la operación, se efectúan las etapas siguientes:
- emisión de un valor aleatorio para un primer
dato aleatorio U, de igual tamaño que el dato de entrada D (p. ej.
32 bits);
- cálculo de un segundo dato aleatorio V
efectuando un O exclusivo entre el dato de entrada y el primer dato
aleatorio: V = D XOR U;
- cálculo de la operación OPN en el primer dato
aleatorio U; que da un primer resultado aleatorio OPN (U);
- cálculo de la operación OPN en el segundo dato
aleatorio V, que da un segundo resultado aleatorio OPN (V);
- cálculo del resultado OPN (D) efectuando un O
exclusivo entre el primero y el segundo resultado aleatorio: OPN
(D) = OPN (U) XOR OPN (V).
También se puede aplicar este procedimiento a
una sola operación como a una serie de operaciones.
Un primer modo de aplicación del procedimiento
de contramedida según el invento concierne operaciones en datos
calculados a partir del mensaje (M) en el que se aplica el
algoritmo. El dato de entrada D es en este caso un dato calculado a
partir del mensaje M.
En un ejemplo práctico de este primer modo de
aplicación del algoritmo DES representado en la figura 4, se aplica
este procedimiento, por una parte a la operación EXP PERM y por
otra parte a la operación P PERM, las dos comprenden una permutación
que necesita una manipulación bit por bit del dato de entrada.
En la figura observamos CM (EXP PERM) y CM (P
PERM) la aplicación de esta contramedida en estas
operaciones.
operaciones.
La contramedida software según el invento
consiste entonces en efectuar en vez de cada operación P PERM y EXP
PERM las operaciones CM (EXP PERM) y CM (P PERM) según la secuencia
de cálculo descrita en la fig., usando una variable aleatoria U.
Como cada vuelta del algoritmo comprende una operación EXP PERM y
una operación P PERM, se puede aplicar la contramedida en cada una
de las vueltas del DES.
La experiencia demuestra que son las tres
primeras vueltas y las tres últimas vueltas las que permiten los
ataques DPA: Después, resulta muy difícil, incluso imposible
predecir los bits.
Asimismo, una puesta en aplicación menos costosa
en tiempo de cálculo de un procedimiento de contramedida según el
invento consiste en aplicarla únicamente que a esas tres primeras y
tres últimas vueltas del DES.
Diferentes variantes de aplicación del
procedimiento de contramedida según el invento conciernen la
emisión de un valor aleatorio para el primer dato aleatorio U.
Según si se dispone de mucho tiempo de cálculo o no, se puede
obtener un valor aleatorio cada vez, para cada una de las
operaciones o serie de operaciones para las que el procedimiento de
contramedida según el invento se ha puesto en aplicación.
En la figura 4, es así como, para la operación
CM (EXP PERM), se obtiene un valor u1 para el dato aleatorio U, y
para la operación CM (P PERM), se obtiene otro valor u2 para el
dato aleatorio U.
O bien, se puede obtener un nuevo valor
aleatorio para cada vuelta del algoritmo, e incluso un solo valor
aleatorio al principio del algoritmo.
La puesta en aplicación del procedimiento de
contramedida según el invento depende principalmente de las
aplicaciones concernidas, según si se puede dedicar mucho tiempo
suplementario a la contramedida o no.
Un segundo modo de aplicación del procedimiento
de contramedida según el invento está representado en la fig. 6.
Éste concierne más especialmente las operaciones de cálculo
aplicadas a la clave secreta K para suministrar cada una de ellas
subclaves Ki utilizadas en las vueltas del algoritmo. En el ejemplo
del DES, estas operaciones son las siguientes KEY PER, ejecutadas
al principio de DES y SHIFT y COMP PERM ejecutadas en cada vuelta.
Durante estas operaciones, en ciertos momentos, el microprocesador
manipula por separado un bit de la clave secreta, dejando así la
posibilidad de un ataque DPA en este bit.
Entonces se aplica el procedimiento de
contramedida según el invento protegiendo los datos, la clave
secreta en este caso, antes de efectuar dichas operaciones, de modo
que no sea posible obtener una información por ataque DPA.
De esta manera, y como se representa
esquemáticamente en la figura 5, se obtiene un valor aleatorio de
un primer dato aleatorio Y, del mismo tamaño que la clave secreta
K.
Se calcula un segundo dato aleatorio Z del mismo
tamaño, haciendo un O exclusivo entre la clave secreta K y el
primer dato aleatorio Y: Z= K XOR Y.
En el ejemplo, la secuencia de operaciones
comprende las operaciones siguientes KEY PERM, SHIFT, COMP PER. Se
aplica entonces esta secuencia de operaciones en cada uno de los
datos aleatorio Y y Z, sucesivamente. De este modo, a partir de
estos datos Y y Z aplicados sucesivamente en entrada, se obtienen a
medida los datos Y', P,_{iY}', K_{iy}', respectivamente Z',
P_{iz}', K_{iz}, a la salida de las operaciones KEY PERM, SHIFT,
COMP PERM.
Un ejemplo práctico de aplicación al DES está
representado en la figura 7.
En el DES, la operación KEY PERM sólo se ejecuta
una vez, al principio, mientras que la secuencia de operaciones
SHIFT y COMP PERM se ejecuta en cada vuelta.
Además, la salida de la operación SHIFT de una
vuelta Ti es aplicada como entrada de la operación SHIFT de la
vuelta siguiente Ti+1 (ver figuras 1 y 2).
Para aplicar el procedimiento de contramedida
según el segundo modo de aplicación de este algoritmo DES, se
aplica entonces la primera operación KEY PERM en los datos
aleatorios Y y Z, lo que da dos datos aleatorios intermedios,
anotados Y' y Z'. Estos dos datos aleatorios intermedios se aplican
sucesivamente en la operación SHIFT de la primera vuelta T1,
suministrando dos datos aleatorios intermedios anotados P_{1y}' y
P_{1z}'. Éstos se memorizan por una parte en memoria de trabajo
para la operación SHIFT de la vuelta siguiente (la segunda vuelta);
y por otra parte se aplican sucesivamente a la operación EXP PERM
de la primera vuelta, para suministrar un primer resultado
intermedio K_{1Y}', K_{1z}'.
Se procede así en cada vuelta. En cada vuelta
Ti, se obtiene un primer resultado aleatorio:
K_{iy}' = EXP
PERM (SHIFT
(Y'));
y en un segundo resultado
aleatorio:
K_{iy}'= EXP
PERM (SHIFT
(Z'));
y los datos aleatorios intermedios
SHIFT (Y')=P_{iy}', y SHIFT (Z')=P_{iz}', se memorizan en
memoria de trabajo para la vuelta siguiente
Ti+1.
Para cada vuelta Ti, se podría calcular de nuevo
la subclave correspondiente Ki a la correspondiente secuencia de
operaciones KEY PERM, SHIFT y COMP PERM de esta vuelta aplicada a
la clave secreta K, haciendo un O exclusivo entre los dos
resultados aleatorios K_{iy}' y K_{iz}'; Ki= K_{iy}' XOR
K_{iz}'.
Pero preferiblemente y como se representa en la
figura 7, solamente se calcula de nuevo la subclave K_{i} de la
vuelta Ti. Se aplica el primer resultado aleatorio K_{iy}' en vez
de la subclave Ki en una operación de O exclusivo XOR con el dato 1
suministrado por la operación de expansión permutación EXP PERM. Se
obtiene un resultado intermedio b'.
Al efectuar seguidamente un O exclusivo XOR de
este resultado intermedio b', con el segundo resultado aleatorio
K_{iz}' encontramos el dato de salida b= XOR (1, Ki). Entonces
reefectúan las operaciones siguientes en cada vuelta Ti, para
calcular el parámetro b a partir de 1:
b'= 1 XOR K_{iy}' y
b= b' XOR K_{iz}', como se representa en las
primera y segunda vueltas en la figura 7.
De este modo, ya no se utiliza la propia
subclave secreta en el cálculo del mensaje cifrado, sino
"subclaves aleatorias": la clase se encuentra así pues
protegida antes y durante la ejecución del algoritmo criptográfico,
ya que K_{iy}' y K_{iz}' son aleatorios y no conocidos por el
mundo exterior del componente (o de la tarjeta), son susceptibles de
cambiar en cada nueva ejecución del algoritmo de criptografía.
Observaremos que en la aplicación del procedimiento de contramedida
según el invento al cálculo y a la utilización de las subclaves, se
obtiene solamente una vez un valor aleatorio, al principio de
ejecución del algoritmo, antes de las operaciones en la clave
secreta.
Este segundo modo de aplicación del
procedimiento de contramedida según el invento con la clave secreta
puede combinarse de manera ventajosa con el primer modo de
aplicación del procedimiento de contramedida al cálculo del mensaje
cifrado propiamente dicho, esta combinación hace verdaderamente
eficaz la contramedida.
El presente invento se aplica al algoritmo de
criptografía con clave secreta DES, para el que se han descrito
ejemplos de puesta en aplicación. Se aplica más generalmente a todo
algoritmo de criptografía con clave secreta cuya ejecución por el
microprocesador de ciertas operaciones necesita una manipulación bit
por bit de datos.
Un componente electrónico 1 poniendo en
aplicación un procedimiento de contramedida según el invento en un
algoritmo de criptografía con clave secreta DES, comprende
típicamente, como se representa en la figura 8, un microprocesador
oP, una memoria programa 2 y una memoria de trabajo 3. Se han
previsto medios 4 de generación de un valor aleatorio, si
consultamos las figuras 3 y 5, estos suministrarán los valores
aleatorios U y/o Y del tamaño deseado (32 bits para U, 64 bits para
Y) en cada ejecución del algoritmo de criptografía. Este componente
puede ser utilizado particularmente en una tarjeta con chip 5, para
mejorar su inviolabilidad.
Claims (10)
1. Procedimiento de contramedida contra los
ataques por análisis diferencial de consumo de corriente en un
componente electrónico que pone en aplicación un algoritmo
criptográfico con clave secreta (K) en un mensaje de entrada (M),
caracterizado porque la ejecución de una operación (OPN) o
una secuencia de operaciones que comprenden una manipulación bit
por bit de un dato de entrada (D), para suministrar un dato de
salida (OPN (D)) comprende las siguientes etapas:
- obtención de un valor aleatorio, de un primer
dato aleatorio (U), del mismo tamaño que el dato de entrada (D),
- cálculo de un segundo dato aleatorio (V),
efectuando un 0 exclusivo entre el dato de entrada y el primer dato
aleatorio (U);
- ejecución de la operación (OPN) o de la
secuencia de operación sucesivamente al primer dato aleatorio (U) y
al segundo dato aleatorio (V), que suministran respectivamente un
primer resultado aleatorio (OPN (U)) y un segundo resultado
aleatorio (OPN (V));
- cálculo del dato de salida (OPN (D))
efectuando un O exclusivo entre dichos primero y segundo resultados
aleatorios.
2. Procedimiento de contramedida según la
reivindicación 1, caracterizado porque se aplica a
operaciones (EXP PERM, P PERM) que tratan de los datos calculados a
partir del mensaje de entrada (M).
3. Procedimiento de contramedida según
cualquiera de las reivindicaciones anteriores, caracterizado
porque se obtiene un valor aleatorio (U) en cada nueva ejecución de
dicha operación o secuencia de operaciones.
4. Procedimiento de contramedida según la
reivindicación 1, aplicado a una operación o a una secuencia de
operaciones (KEY PERM. SHIFT, COMP PERM) efectuadas en dicha clave
secreta K.
5. Procedimiento de contramedida según la
reivindicación 4, caracterizado porque se aplica a dicha
secuencia de operaciones con el fin de obtener, en cada vuelta (Ti)
del algoritmo, un primer resultado aleatorio (K_{iy}') y un
segundo resultado aleatorio K_{iz}'), en vez de una subclave
(Ki).
6. Procedimiento de contramedida según la
reivindicación 5, caracterizado porque, en cada vuelta (Ti)
una operación de O exclusivo entre la subclave (K_{i}) y un dato
de entrada (1), dicha operación se utiliza para suministrar un dato
de salida (b) se reemplaza por las siguientes operaciones:
- cálculo del O exclusivo entre dicho dato de
entrada (1) y el primer resultado aleatorio (K_{iy}') para
suministrar un resultado intermedio (b');
- cálculo del O exclusivo entre dicho resultado
intermedio (b') y el segundo resultado aleatorio (K_{iz}') para
suministrar dicho dato de salida (b).
7. Procedimiento de contramedida según
cualquiera de las reivindicaciones 1, 2, 3, 5 y 6,
caracterizado porque se obtiene un nuevo valor aleatorio (U
o Z) en cada nueva ejecución del algoritmo de criptografía.
8. Procedimiento de contramedida según
cualquiera de las reivindicaciones anteriores, caracterizado
porque se aplica al algoritmo DES.
9. Componente electrónico de seguridad (1) que
pone en aplicación un algoritmo criptográfico con clave secreta K en
un mensaje de entrada (M) caracterizado porque
comprende:
- medios (2) para almacenar dicha clave K;
- medios (4) para obtener un valor aleatorio, de
un primer dato aleatorio (U), del mismo tamaño que un dato de
entrada (D);
- medios (\mup) para calcular un segundo dato
aleatorio (V), efectuando un O exclusivo entre el dato de entrada y
el primer dato aleatorio (U);
- medios (3) para almacenar dichos datos
aleatorios;
- medios (\mup) para ejecutar una operación
(OPN) o una secuencia de operación sucesiva al primer dato aleatorio
(U) y al segundo dato aleatorio (V); suministrando respectivamente
un primer resultado aleatorio (OPN (U)) y un segundo resultado
aleatorio (OPN (V));
\newpage
- medios (\mup) para calcular un dato de
salida (OPN (D)) efectuando un O exclusivo entre dichos primero y
segundo resultados aleatorios.
10. Tarjeta con chip (CAP) que comprende un
componente electrónico de seguridad (1) según la reivindicación
9.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR9901937A FR2789776B1 (fr) | 1999-02-17 | 1999-02-17 | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete |
| FR9901937 | 1999-02-17 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2262502T3 true ES2262502T3 (es) | 2006-12-01 |
Family
ID=9542146
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES00900632T Expired - Lifetime ES2262502T3 (es) | 1999-02-17 | 2000-01-20 | Procedimiento de contramedidas en un componente electronico que utiliza un algoritmo de criptografia con clave secreta. |
Country Status (10)
| Country | Link |
|---|---|
| US (1) | US7471791B1 (es) |
| EP (1) | EP1198921B1 (es) |
| JP (1) | JP2002540654A (es) |
| CN (1) | CN100393029C (es) |
| AU (1) | AU3057500A (es) |
| DE (1) | DE60027163T2 (es) |
| ES (1) | ES2262502T3 (es) |
| FR (1) | FR2789776B1 (es) |
| MX (1) | MXPA01008201A (es) |
| WO (1) | WO2000049765A2 (es) |
Families Citing this family (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000305453A (ja) * | 1999-04-21 | 2000-11-02 | Nec Corp | 暗号化装置,復号装置,および暗号化・復号装置 |
| JP2002247025A (ja) * | 2001-02-22 | 2002-08-30 | Hitachi Ltd | 情報処理装置 |
| JP4596686B2 (ja) | 2001-06-13 | 2010-12-08 | 富士通株式会社 | Dpaに対して安全な暗号化 |
| EP1764762B1 (en) * | 2004-07-07 | 2019-05-15 | Mitsubishi Electric Corporation | Electronic element and data processing method |
| FR2916317B1 (fr) * | 2007-05-15 | 2009-08-07 | Sagem Defense Securite | Protection d'execution d'un calcul cryptographique |
| FR2925968B1 (fr) * | 2007-12-26 | 2011-06-03 | Ingenico Sa | Procede de securisation d'un microprocesseur, programme d'ordinateur et dispositif correspondants |
| US9208333B2 (en) | 2010-03-31 | 2015-12-08 | British Telecommunications Public Limited Company | Secure data recorder |
| DE102010028375A1 (de) * | 2010-04-29 | 2011-11-03 | Robert Bosch Gmbh | Schutz vor kryptoanalytischen Seitenkanalattacken |
| CN102110206B (zh) * | 2010-12-27 | 2013-01-16 | 北京握奇数据系统有限公司 | 防御攻击的方法和具有攻击防御功能的装置 |
| CN103546281B (zh) * | 2013-10-31 | 2016-08-17 | 厦门市美亚柏科信息股份有限公司 | 动态的密钥生成方法和装置 |
| US20150222421A1 (en) * | 2014-02-03 | 2015-08-06 | Qualcomm Incorporated | Countermeasures against side-channel attacks on cryptographic algorithms |
| FR3056789B1 (fr) * | 2016-09-27 | 2018-09-21 | Safran Identity & Security | Procede de chiffrement ou de dechiffrement symetrique par bloc |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2650458B1 (fr) * | 1989-07-25 | 1991-10-11 | Trt Telecom Radio Electr | Procede de traitement d'une permutation irreguliere de donnees protegees par chiffrement |
| FR2650457A1 (fr) * | 1989-07-25 | 1991-02-01 | Trt Telecom Radio Electr | Procede de traitement de donnees par compression et permutation pour carte a microcircuit |
| FR2672402B1 (fr) * | 1991-02-05 | 1995-01-27 | Gemplus Card Int | Procede et dispositif pour la generation de nombres pseudo-aleatoires uniques. |
| US5550809A (en) * | 1992-04-10 | 1996-08-27 | Ericsson Ge Mobile Communications, Inc. | Multiple access coding using bent sequences for mobile radio communications |
| US5625690A (en) * | 1993-11-15 | 1997-04-29 | Lucent Technologies Inc. | Software pay per use system |
| US5870470A (en) * | 1996-02-20 | 1999-02-09 | International Business Machines Corporation | Method and apparatus for encrypting long blocks using a short-block encryption procedure |
| US5764766A (en) * | 1996-06-11 | 1998-06-09 | Digital Equipment Corporation | System and method for generation of one-time encryption keys for data communications and a computer program product for implementing the same |
| FR2776445A1 (fr) * | 1998-03-17 | 1999-09-24 | Schlumberger Ind Sa | Procede de securisation de donnees mettant en oeuvre un algorithme cryptographique |
| AU6381699A (en) * | 1998-06-03 | 2000-01-10 | Cryptography Research, Inc. | Improved des and other cryptographic processes with leak minimization for smartcards and other cryptosystems |
| EP2280502B1 (en) * | 1998-06-03 | 2018-05-02 | Cryptography Research, Inc. | Using unpredictable information to Resist Discovery of Secrets by External Monitoring |
| JP3600454B2 (ja) * | 1998-08-20 | 2004-12-15 | 株式会社東芝 | 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体 |
| JP4317607B2 (ja) * | 1998-12-14 | 2009-08-19 | 株式会社日立製作所 | 情報処理装置、耐タンパ処理装置 |
-
1999
- 1999-02-17 FR FR9901937A patent/FR2789776B1/fr not_active Expired - Fee Related
-
2000
- 2000-01-20 AU AU30575/00A patent/AU3057500A/en not_active Abandoned
- 2000-01-20 JP JP2000600393A patent/JP2002540654A/ja not_active Abandoned
- 2000-01-20 DE DE60027163T patent/DE60027163T2/de not_active Expired - Lifetime
- 2000-01-20 WO PCT/FR2000/000130 patent/WO2000049765A2/fr not_active Ceased
- 2000-01-20 EP EP00900632A patent/EP1198921B1/fr not_active Expired - Lifetime
- 2000-01-20 US US09/913,884 patent/US7471791B1/en not_active Expired - Fee Related
- 2000-01-20 MX MXPA01008201A patent/MXPA01008201A/es active IP Right Grant
- 2000-01-20 ES ES00900632T patent/ES2262502T3/es not_active Expired - Lifetime
- 2000-01-20 CN CNB008063486A patent/CN100393029C/zh not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| DE60027163T2 (de) | 2007-03-29 |
| FR2789776A1 (fr) | 2000-08-18 |
| AU3057500A (en) | 2000-09-04 |
| CN1630999A (zh) | 2005-06-22 |
| DE60027163D1 (de) | 2006-05-18 |
| EP1198921B1 (fr) | 2006-04-05 |
| US7471791B1 (en) | 2008-12-30 |
| CN100393029C (zh) | 2008-06-04 |
| WO2000049765A2 (fr) | 2000-08-24 |
| WO2000049765A3 (fr) | 2002-02-28 |
| FR2789776B1 (fr) | 2001-04-06 |
| EP1198921A2 (fr) | 2002-04-24 |
| MXPA01008201A (es) | 2003-07-21 |
| JP2002540654A (ja) | 2002-11-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Groß et al. | Suit up!--made-to-measure hardware implementations of Ascon | |
| Gross et al. | Ascon hardware implementations and side-channel evaluation | |
| ES2435721T3 (es) | Circuito criptográfico protegido contra los ataques de observación, en particular de orden elevado | |
| ES2262502T3 (es) | Procedimiento de contramedidas en un componente electronico que utiliza un algoritmo de criptografia con clave secreta. | |
| CN101371480B (zh) | 加密保护方法 | |
| US6691921B2 (en) | Information processing device | |
| ES2665987T3 (es) | Dispositivo y procedimiento para la decodificación de datos | |
| ES2717999T3 (es) | Método criptográfico por bloques para cifrar/descifrar mensajes y dispositivos criptográficos para implementar este método | |
| Bilgin et al. | Efficient and first-order DPA resistant implementations of Keccak | |
| ES2344399T3 (es) | Procedimiento de segurizacion de un conjunto electronico de criptografia con clave secreta contra los ataques por analisis fisico. | |
| ES2366753T3 (es) | Método de procesamiento criptográfico de datos, en particular con la ayuda de una caja s, dispositivo y programas asociados. | |
| US8094816B2 (en) | System and method for stream/block cipher with internal random states | |
| US20110085663A1 (en) | Method for the access-related or communication-related random encryption and decryption of data | |
| US20160065368A1 (en) | Address-dependent key generator by xor tree | |
| US8515059B2 (en) | Cryptographic processor with dynamic update of encryption state | |
| CN106487497B (zh) | 对rijndael算法的dpa保护 | |
| JP2008233683A (ja) | 暗号処理装置及びプログラム | |
| ES2295007T3 (es) | Procedimiento de contramedida en un componente electronico que emplea un alritmo de criptografia con clave secreta. | |
| US7764786B2 (en) | Protection of a DES algorithm | |
| JP5184659B2 (ja) | 秘密鍵を伴う電子暗号アセンブリを安全に守る方法 | |
| US20170063524A1 (en) | Protection of a rijndael algorithm | |
| US9252943B1 (en) | Parallelizable cipher construction | |
| GB2532835A (en) | Double-mix feistel network for key generation or encryption | |
| ES2251222T3 (es) | Procedimiento de contramedida en un componente electronico que pone en aplicacion un algoritmo de cifrado con clave secreta. | |
| ES2250088T3 (es) | Dispositivo que utiliza un algoritmo de cifrado por bloque con repeticion de rondas. |