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
Application number
ES00900632T
Other languages
English (en)
Inventor
Jean-Sebastien Coron
Nathalie Feyt
Olivier Benoit
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gemplus SA
Original Assignee
Gemplus Card International SA
Gemplus SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gemplus Card International SA, Gemplus SA filed Critical Gemplus Card International SA
Application granted granted Critical
Publication of ES2262502T3 publication Critical patent/ES2262502T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/75Protecting 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/755Protecting 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • 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).
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.
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.
ES00900632T 1999-02-17 2000-01-20 Procedimiento de contramedidas en un componente electronico que utiliza un algoritmo de criptografia con clave secreta. Expired - Lifetime ES2262502T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 株式会社日立製作所 情報処理装置、耐タンパ処理装置

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.