ES2295007T3 - Procedimiento de contramedida en un componente electronico que emplea un alritmo de criptografia con clave secreta. - Google Patents

Procedimiento de contramedida en un componente electronico que emplea un alritmo de criptografia con clave secreta. Download PDF

Info

Publication number
ES2295007T3
ES2295007T3 ES00903743T ES00903743T ES2295007T3 ES 2295007 T3 ES2295007 T3 ES 2295007T3 ES 00903743 T ES00903743 T ES 00903743T ES 00903743 T ES00903743 T ES 00903743T ES 2295007 T3 ES2295007 T3 ES 2295007T3
Authority
ES
Spain
Prior art keywords
data
random value
calculation
output
procedure
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
ES00903743T
Other languages
English (en)
Inventor
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 ES2295007T3 publication Critical patent/ES2295007T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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; CALCULATING OR 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)
  • Credit Cards Or The Like (AREA)
  • Supply And Installment Of Electrical Components (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Measurement Of Resistance Or Impedance (AREA)

Abstract

Procedimiento de contramedida contra los ataques por análisis diferencial en un componente electrónico que aplica un algoritmo criptográfico con clave privada (K), procedimiento cuya aplicación incluye la realización de varias operaciones de cálculo sucesivas (T1,... T16) para suministrar a partir de los primeros datos de entrada (L0, R0) aplicados en la primera operación (T1), datos finales (L16, R16) a la salida de la última operación (T16) que permiten elaborar un mensaje codificado (C), caracterizado porque comprende: - en cada operación de cálculo, la utilización de medios de cálculo (TCM) para suministrar un dato de salida combinado por un O EXCLUSIVO a un primer valor aleatorio (SThetau) a partir de un dato de entrada combinado a un segundo valor aleatorio (ETheta e(v)), - la utilización de medios de combinación por O EXCLUSIVO, del segundo valor aleatorio (v) a los dichos primeros datos de entrada (L0, R0).

Description

Procedimiento de contramedida en un componente electrónico que emplea un algoritmo de criptografía con clave secreta.
La presente invención se refiere a un procedimiento de contramedida en un componente electrónico que emplea un algoritmo de criptografía con clave secreta. Se utilizan en aplicaciones en las que está severamente controlado el acceso a servicios y datos.
Su arquitectura está formada en torno a un microprocesador y memorias, entre las cuales una memoria programa que contiene la clave privada.
Estos componentes se utilizan, principalmente, en las tarjetas inteligentes, para algunas de sus aplicaciones.
Estas aplicaciones abarcan, p.ej. el acceso a ciertos bancos de datos, aplicaciones bancarias, aplicaciones de telepeaje, por ejemplo, para la televisión, la distribución de carburante e incluso el paso de peajes de autopistas.
Estos componentes o estas tarjetas emplean, así pues, un algoritmo de criptografía con clave privada, entre los cuales el más conocido es el algoritmo DES (para Data Encryption Standard en la literatura anglosajona). Existen igualmente otros algoritmos con clave privada, 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 codificado partir de un mensaje aplicado en entrada (a la carta) por un sistema huésped (servidor, distribuidor bancario...) y la clave privada contenida en la tarjeta, para proporcionar a su vez al sistema huésped este mensaje codificado, lo que permite por ejemplo al sistema huésped autentificar el componente o la tarjeta, intercambiar datos...
Ahora bien, ha resultado que estos componentes o estas tarjetas son vulnerables a los ataques que consisten en un análisis diferencial de consumo en corriente y que permiten a terceras personas mal intencionadas descubrir la clave privada. Estos ataques se llaman ataques DPA, acrónimo anglosajón para 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.
En particular, una instrucción del microprocesador que manipula un bit de dato genera dos perfiles de corriente diferentes, según que este bit valga "1" o "0". Típicamente, si la instrucción manipula un "0", tenemos en ese 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, distinta de la primera.
Las características de los algoritmos de criptografía se conocen como cálculos efectuados, y parámetros usados.
La única desconocida es la clave privada que esta contenida en la memoria programa. Esta clave no puede deducirse solamente al conocerse el mensaje aplicado en entrada y el mensaje codificado como respuesta.
No obstante, en un algoritmo de criptografía, ciertos datos calculados dependen solamente del mensaje aplicado claramente a la entrada de la tarjeta y la clave privada contenida en la tarjeta. También pueden volverse a calcular otros datos calculados en el algoritmo solamente a partir del mensaje codificado (generalmente dado en claro a la salida de la tarjeta hacia el sistema huésped) y la clave privada contenida en la tarjeta. De manera más concisa, cada bit de estos datos particulares puede determinarse a partir del mensaje de entrada o de salida, y de un número limitado de bies particulares de la clave.
Así pues, a cada bit de un dato particular, corresponde una subclave formada por un grupo particular de bites de la clave.
Los bites de estos datos particulares que pueden predecirse se llaman a continuación, bites blanco.
De este modo, 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 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 agresor, una función booleana de selección, función de la hipótesis de subclave, y que se define para cada curva por el valor predicho para un bit blanco.
Si hacemos una hipótesis en la subclave en cuestión, somos capaces en efecto de predecir el valor "0" o "1" que adoptará este bit blanco para un mensaje de entrada o de salida dado.
Entonces podemos aplicar como función booleana de selección, el valor predicho "0" o "1" por el bit blanco para la hipótesis de subclave considerada, para clasificar estas curvas en dos paquetes: un primer paquete agrupa las curvas que vieron la manipulación del bit blanco en "0" y un segundo paquete agrupa las curvas que vieron la manipulación del bit blanco en "1" según la hipótesis de subclave. Si hacemos la media de 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 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 "0" (perfil_{0}). En otras palabras, para todas estas curvas todos los bites manipulados tuvieron tantas oportunidades de valer "0" como "1", excepto el bit blanco que siempre tuvo el valor "0". Lo que puede escribirse:
M0(t)=[(perfil_{0}+perfil_{1})/2]_{t\neq tci}+[perfil_{0}]_{tci},
siendo
\quad
M0 (t) = [Vm_{t}] _{t\neq tci}+ [perfil_{0}]_{tci}
dónde tci representa los momentos críticos, en los que fue ejecutada una instrucción crítica.
De igual 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" (perfiles). Podemos escribir:
M1 (t)=[ (perfil_{0}+perfil_{1}) /2]_{t\neq tci}+[perfil_{1}]_{tci},
siendo
\quad
M1 (t)=[Vm_{t}]_{t\neq tci}+[perfil_{0}]_{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)da entonces una señal DPA(t) cuya amplitud es igual a perfil_{0}-perfil_{1} a los instantes críticos tci de ejecución de las instrucciones críticas que manipulan ese bit, es decir, en el ejemplo representado en la figura 1, a los lugares tc0 a tc6 y cuya amplitud es más o menos igual a cero fuera de los instantes críticos.
Si la hipótesis de subclave es falsa, la clasificación no corresponde a la realidad. Estadísticamente, habrá entonces en cada paquete, tantas curvas que vieron realmente la manipulación del bit blanco en "0" como 5 curvas que vieron la manipulación del bit blanco en "1". La curva media resultante M0(t) se sitúa entonces en torno a un valor medio dado por (perfil_{0} + perfil_{1})/2 = Vm, ya que para cada una de las curvas, todos los bites manipulados, incluido el bit blanco tienen tantas posibilidades de valer "0" como "1".
El mismo razonamiento sobre el segundo paquete conduce a una curva media de consumo en corriente M1(t) cuya amplitud se sitúa en torno a un valor medio dado por (perfil_{0} + perfil_{1})/2 = Vm.
La señal DPA(t) proporcionada 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 está representada en la figura 2.
De este modo, el ataque DPA explota la diferencia de 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 booleana 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 obtiene una señal de información DPA(t).
El desarrollo de un ataque DPA consiste entonces globalmente:
a)
en extraer N mensajes aleatorios (p.ej. N igual a 1000);
b)
en mandar ejecutar el algoritmo por la tarjeta para cada uno de los N mensajes aleatorios, levantando la curva de consumo en corriente cada vez (medida en el Terminal de alimentación del componente);
c)
en hacer una hipótesis sobre una subclave;
d)
en predecir, para cada uno de los mensajes aleatorios, el valor tomado por uno de los bites blanco cuyo valor sólo depende de los bites del mensaje (de entrada o salida) y la subclave tomada en hipótesis, para obtener la función de selección booleana;
e)
en clasificar las curvas según esta función de selección booleana (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 estas curvas medias, para obtener la señal DPA(t).
Si la hipótesis de la subclave es justa, la función de selección booleana es justa y las curvas del primer paquete corresponden realmente 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 realmente 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 ejemplo 1: la señal DPA(t) no es entonces nula en los momentos tc0 a tc6 correspondientes a la ejecución de las instrucciones críticas (aquellas que manipulan el bit blanco).
Podemos observar que el atacante no necesita conocer con precisión los momentos críticos. Basta con que tenga al menos un momento crítico en el periodo de adquisición.
Si la hipótesis de subclave no es justa, la clasificación no corresponde a 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 (caso representado en la figura 2). Es preciso volver a la etapa c y hacer una nueva hipótesis sobre la subclave.
Si la hipótesis resulta justa, podemos pasar a la evaluación de otras subclaves, hasta haber reconstituido la clave al máximo. Por ejemplo, con un algoritmo DES, se utiliza una clave de 64 bits, entre los cuales solamente 56 bits útiles. Con un ataque DPA, somos capaces de reconstituir por lo menos 48 bits de los 56 bits útiles.
Citamos a continuación dos documentos que conciernen el segundo plano tecnológico. Se trata de los documentos NAKAO y AL: "THE SECURITY OF AN RDES CRYPTOSYSTEM AGAINST LINEAR CRYPTANALYSIS ", IEICE TRANSACTIONS ON FUNDAMENTALS OF ELECTRONICS, COMMUNICATIONS AND COMPUTER SCIENCES, JP, INSTITUTE OF ELECTRONICS INFORMATION AND COMM.ENG.TOKYO, vol. E79-A, NO. 1, Page 12-19 XP000558714 ISSN: 0916-8508, anotado Dl y WO 00 27068, anotado D2.
El documento D1 se refiere a un criptosistema que utiliza el DES para tener todas las seguridades.
El Documento D2 se refiere a un componente electrónico empleando un algoritmo con clave privada; la aplicación de este algoritmo incluye el uso de primeros medios a partir de un dato de entrada (E) para proporcionar uno de
salida.
La presente invención tiene como objetivo aplicar en un componente electrónico, un procedimiento de contramedida contra ataques por análisis diferencial que provoca una señal DPA(t) nula, incluso en el supuesto de que la hipótesis de subclave sea justa.
De esta forma, nada permite distinguir el caso de la hipótesis de subclave justa de los casos de hipótesis de subclave falsas. Por esta contramedida, el componente electrónico se precave contra los ataques DPA.
Se sabe por la demanda francesa FR 2 785 477 publicada el 5 de Mayo de 2000, por la sociedad GEMPLUS y cuyo contenido en entero forma parte íntegra de la presente demanda, que no basta con procurar que la señal DPA(t) sea nula relativamente a un bit blanco dado.
En efecto, si consideramos el valor que han adquirido varios bits blanco de un mismo dato manipulado por las instrucciones críticas, nos veremos obligados a clasificar las curvas, ya no en dos paquetes, sino en varios paquetes. Ya no tenemos una función de selección binaria. Podemos demostrar que al agrupar seguidamente estos paquetes de una u otra manera, podemos obtener una señal DPA(t) no nula en el caso de una hipótesis de subclave justa, cuando hubiera sido nula si se hubiera clasificado según una función de selección binaria en un solo bit blanco.
Tomemos por ejemplo dos bites blanco de un mismo dato. Estos dos bites blanco pueden adoptar los 2^{2} valores siguientes: "00", "01", "10" y "11".
Al aplicar la función de selección a las N=1000 curvas medidas de consumo en corriente, se obtienen cuatro paquetes de curvas. Si la clasificación es justa, un primer paquete de 250 curvas aprox. corresponde al valor "00", un segundo paquete de 250 curvas aprox. corresponde al valor "01", un tercer paquete de 250 curvas aprox. corresponde al valor "10" y un cuarto paquete de 250 curvas aprox. corresponde al valor "11".
Si agrupamos el primero y el cuarto paquete en un primer grupo y el segundo y tercer paquete en un segundo grupo, obtenemos dos grupos que no son equivalentes. En el primer grupo, los dos bites tienen tantas posibilidades de valer "00" como de valer "11". El valor medio en los momentos críticos de todas las curvas de consumo de este grupo puede escribirse:
M1 (t_{ci}) = [consumo ("00") + consumo ("11")] / 2
\newpage
En el segundo grupo, los dos bites tienen tantas oportunidades de valer "01" como de valer "10". El valor medio en los momentos críticos de todas las curvas de consumo de este grupo puede escribirse:
M2 (t_{ci}) = [consumo ("0l") + consumo ( "10")] / 2
Si hacemos la diferencia entre estas dos medias, obtenemos una señal DPA(t) no nula. En otros términos, los dos grupos de los que comparamos los consumos medios no tienen un contenido equivalente.
En la demanda francesa citada anteriormente, se intentó impedir la obtención de cualquier señal significativa en el sentido del ataque DPA. Cualquiera que sea el número de bites blanco tomados, cualquiera que sea la combinación efectuada de paquetes para comparar los consumos medios, la señal DPA(t) será siempre nula. Para ello es preciso obtener paquetes equivalentes, cualquiera que sea el número de bites blanco.
La demanda francesa citada anteriormente propone como solución a estos distintos problemas técnicos, la utilización de un valor aleatorio en una operación de O EXCLUSIVO que tiene por lo menos datos de salida de medios de cálculo utilizados en el algoritmo.
Con la utilización de este valor aleatorio, los datos manipulados por las instrucciones críticas resultan imposibles de predecir teniendo al mismo tiempo un resultado justo a la salida del algoritmo.
No obstante, en la invención, nos hemos dado cuenta de que aún podían realizarse ataques con éxito en lugares bien determinados durante la ejecución del algoritmo, en particular, a la entrada y salida del algoritmo.
La presente invención tiene como objeto un procedimiento de contramedida en el que estos ataques resultan igualmente imposibles.
Según la invención, se utiliza un segundo valor aleatorio, que se aplica sobre los O EXCLUSIVO. Este segundo valor aleatorio se propaga en todo el algoritmo, de modo que los datos que no estaban protegidos por el primer valor aleatorio lo estén por el segundo.
Así, según la invención, según el lugar donde se encuentren en el algoritmo, los datos están protegidos, ya sea por el primer valor-aleatorio, ya sea por el segundo, ya sea por una combinación de estos dos valores aleatorios.
Con estas características, la invención concierne un procedimiento de contramedida en un componente electrónico que emplea un algoritmo criptográfico con clave privada, cuya aplicación comprende varios cálculos sucesivos para proporcionar a partir de los primeros datos de entrada aplicados en el primer cálculo, datos finales a la salida del último cálculo que permiten elaborar un mensaje codificado, cada cálculo utiliza medios de cálculo para proporcionar un dato de salida a partir de un dato de entrada, dichos medios de cálculo comprenden la aplicación de un primer valor aleatorio (u) para obtener a la salida un dato que no puede predecirse, caracterizado porque el procedimiento comprende la utilización de medios de aplicación de un segundo valor aleatorio a los primeros datos de entrada, según una operación O EXCLUSIVO.
Otras características y ventajas de la invención se detallan en la siguiente descripción, la cual se da a título indicativo y en absoluto limitativo y refiriéndonos a los dibujos anexados, en los que:
- las figuras 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 privada K, según un ataque DPA;
- las figuras 3 y 4 son organigramas detallados de los primeros y últimos cálculos del algoritmo DES, según del estado de la técnica;
- la figura 5 es un esquema funcional de la operación SBOX utilizado en el algoritmo DES tal y como se presenta en las figuras 3 y 4;
- la figura 6 muestra un ejemplo de tabla de constantes elemental a una entrada y una salida utilizada en la operación SBOX representada en la figura 5;
- las figuras 7 y 8 representan respectivamente un organigrama de ejecución del DES y un organigrama detallado de los primeros cálculos, que corresponden a un ejemplo de aplicación del procedimiento de contra medida según el estado de la técnica;
- la figura 9 representa un organigrama de ejecución del DES según la invención; y
- la figura 10 representa un esquema-bloque funcional simplificado de una tarjeta inteligente que comprende un componente electrónico en el cual se aplica el procedimiento de contramedida según la invención.
\newpage
Para la buena comprensión de la invención, pasaremos a describir el algoritmo criptográfico con clave privada DES normal, sin procedimiento de contramedida. Este algoritmo DES incluye 16 cálculos, anotados T1 a T16, tal y como se representa en las figuras 3 y 4.
El DES comienza 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 bites. Después de la permutación, se obtiene una palabra e de 64 bites, que se corta en dos para formar los parámetros de entrada LO y RO del primer cálculo (T1). LO es una palabra d de 32 bites que contiene los 32 bites de pesos fuertes de la palabra e. R0 es una palabra h de 32 bits que contiene los 32 bites de peso bajo de la palabra e.
La clave secreta K, que es una palabra q de 64 bites experimenta ella misma una permutación y una compresión para proporcionar una palabra r de 56 bites.
El primer cálculo comprende una operación EXP PERM en el parámetro RO, que consiste en una expansión y una permutación, para proporcionar a la salida una palabra 1 de 48 bites.
Esta palabra 1 está combinada a un parámetro K1, en una operación de tipo O EXCLUSIVO anotada XOR, para proporcionar una palabra b de 48 bites. El parámetro Kl que es una palabra m de 48 bites se obtiene de la palabra r mediante un desfase de una posición (operación anotada SHIFT en las figuras 3 y 4) seguido 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 obtiene una palabra a de 32 bites. Esta operación particular se explicará más detalladamente en relación con las figuras 5 y 6.
La palabra a experimenta una permutación P PERM, que proporciona a la salida la palabra c de 32 bites.
Esta palabra c se combina al parámetro de entrada L0 del primer cálculo T1, en una operación lógica de tipo O EXCLUSIVO, anotada XOR, que proporciona a la salida la palabra g de 32 bites.
La palabra h(=R0) del primer cálculo proporciona el parámetro de entrada L1 del cálculo siguiente (T2) y la palabra g del primer cálculo proporciona el parámetro de entrada R1 del cálculo siguiente.
La palabra p del primer cálculo proporciona la entrada r del cálculo siguiente.
Las otras operaciones T2 a T16 se desarrollan de manera similar, excepto en lo que se refiere a la operación de desfase SHIFT que se hace en una o dos posiciones según los cálculos en cuestión.
Cada cálculo Ti recibe así en entrada los parámetros Li-1, Ri-1 y r y proporciona a la salida los parámetros Li y Ri y r para el cálculo siguiente Ti+l.
Al final del algoritmo DES (figura 4), el mensaje codificado se calcula a partir de los parámetros L16 y R16 proporcionados para el último cálculo T16.
Este cálculo del mensaje codificado C incluye en la práctica las siguientes operaciones:
- formación de una palabra e' de 64 bites invirtiendo la posición de las palabras L166 y R16, y seguidamente concatenándolas;
- aplicación de la permutación IP^{-1} inversa a la del principio de DES, para obtener la palabra f' de 64 bites que forma el mensaje codificado C.
La operación SBOX se detalla en las figuras 5 y 6. Incluye una tabla de constantes TC_{0} para proporcionar 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 recibiendo a la entrada solamente 6 bites de la palabra b, para proporcionar a la salida solamente 4 bites de la palabra a.
Así pues, la tabla de constante elemental TC_{0}1 representada en la figura 6 recibe como dato de entrada, los bites b1 a b6 de la palabra b y proporciona como dato de salida los bites 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 la memoria programa del componente electrónico.
En la operación SBOX del primer cálculo T1, un bit particular del dato a de salida de la tabla de constante TC_{0} depende solamente de 6 bites del dato b aplicado a la entrada, es decir, solamente 6 bites de la clave privada K y del mensaje de entrada (M).
En la operación SBOX del último cálculo T16, un bit particular del dato a de salida de la tabla de constante TC_{0} puede calcularse de nuevo a partir solamente de 6 bites de la clave privada K y del mensaje codificado (C).
Ahora bien si observamos el principio del ataque DPA, si se elige uno o varios bites del dato de salida a como bites blanco, basta con hacer una hipótesis sobre 6 bites de la clave K, para predecir el valor del o de los bites blanco para un mensaje de entrada (M) o de salida (C) dado. En otras palabras, para el DES, basta con hacer una hipótesis sobre una subclave de 6 bites.
En un ataque DPA en este tipo de algoritmo para un conjunto de bites blanco dado resultante de una tabla de constantes elemental dada, tenemos que discriminar una hipótesis de subclave justo entre 64 posibles.
Así pues, a partir de los bites de salida de las ocho tablas de constantes elementales TC_{0}1 a TC_{0}8, se puede descubrir hasta 8 x 6 = 48 bites de la clave privada, haciendo ataques DPA en los correspondientes bites blanco.
En el DES, encontramos instrucciones críticas en el sentido de los ataques DPA al principio y al final del algoritmo. Estas instrucciones se detallan en la demanda Francesa FR 98 13605, la cual podremos consultar útilmente.
Y de ello se deduce que todos los datos manipulados por instrucciones críticas son un dato de salida o datos derivados de un dato de salida de una operación SBOX del principio y final de DES.
El procedimiento de contramedida descrito en la demanda francesa citada anteriormente aplicado en este algoritmo DES consiste en hacer que no pueda predecirse cada uno de los datos manipulados por las instrucciones críticas. De este modo, cualquiera que sea el o los bits blanco utilizados, la señal DPA (t) siempre será nula. Este procedimiento de contramedida se aplica a las instrucciones críticas del principio de DES y a las instrucciones críticas de final de DES.
Si consideramos las operaciones SBOX como primeros medios de cálculo para suministrar un dato de salida S=a a partir de un dato de entrada E=b, el procedimiento de contramedida de la demanda francesa citado anteriormente aplicado al algoritmo DES consiste en utilizar otros medios de cálculo en vez de los primeros, para que no pueda predecirse el dato de salida, de modo que este dato de salida y/o los datos derivados manipulados por las instrucciones críticas resulten todos ellos imposible de predecir.
Estos otros medios pueden incluir distintos medios. Se calculan a partir de los primeros medios empleando un O Exclusivo con un valor aleatorio u (o un valor aleatorio derivado) en uno u otro de los datos de entrada y de salida de los primeros medios.
La utilización de este valor aleatorio u es tal que el resultado a la salida del algoritmo, es decir, el mensaje codificado C sigue siendo justo.
Las figuras 7 y 8 representan un ejemplo de aplicación de este procedimiento de contramedida, que corresponde a figura 10 de la demanda francesa anteriormente citada.
En una ejecución clásica del algoritmo DES, hemos visto que cada cálculo incluye la utilización de primeros medios TC_{0} en una operación SBOX.
En este ejemplo, y tal como se representa en la figura 7, se calculan otros medios haciendo un O EXCLUSIVO con un valor aleatorio u sobre los datos de salida de los primeros medios TC_{0} y haciendo un O EXCLUSIVO con un valor derivado e(p(u)) sobre los datos de entrada de los primeros medios TC^{0}. Luego se aplica una secuencia SEQA de ejecución idéntica en cada grupo, que consiste en utilizar estos otros medios calculados.
En este procedimiento, se utiliza un valor aleatorio u que es un dato de 32 bits.
Por ejemplo, se puede obtener un valor aleatorio de 32 bites, o un valor aleatorio de 4 bites y volverlos a copiar 8 veces para obtener el valor aleatorio de 32 bites.
Se calcula entonces la variable derivada igual a e(p(u)), ó p(u) que corresponde al resultado de la operación P PERM aplicada al valor u y dónde e(p(u)) es el resultado de la operación EXP PERM aplicada al valor p(u).
Entonces se pueden calcular los otros medios utilizados por este procedimiento de contramedida.
En el ejemplo representado en referencia a la figura 7, estos otros medios incluyen segundos medios TC_{2} y una operación o EXCLUSIVO suplementaria anotada CP.
Los segundos medios TC_{2} se utilizan en cada uno de los cálculos.
Se calculan aplicando un O EXCLUSIVO con la variable aleatoria derivada e(p(u)) en el dato de entrada E y aplicando un O EXCLUSIVO con el valor aleatorio u en el dato de salida S de los primeros medios TC_{o}, lo que puede escribirse. TC_{2}= (E\opluse(p(u)), S\oplusu).
La operación O EXCLUSIVO suplementaria CP con la variable aleatoria derivada e(p(u)), permite obtener a la entrada de los segundos medios TC_{2} el dato b\opluse(p(U)). Esta operación se anota CP(e(p(u))) en las figuras 7 y 8.
Este operación O EXCLUSIVO suplementaria CP con la variable e(p(u)) puede colocarse en distintos lugares de las primeras y últimas operaciones, ya sea entre la operación EXP PERM y la operación XOR o entre la operación XOR y la operación SBOX. Se la puede sustituir por una operación O EXCLUSIVO suplementaria CP con la variable aleatoria derivada p(u), colocando esta operación suplementaria CP(p(u)) antes de la operación EXP PERM. Se obtiene a la salida 1\opluse(p(u)), y por tanto se tendrá a continuación b\opluse(p(U)).
En todos estos casos hipotéticos, se obtiene el dato b\opluse(p(U)) a la entrada de la operación SBOX.
El programa de cálculo consiste entonces en el principio de la ejecución del algoritmo, en obtener un valor aleatorio u, en el ejemplo en 4 bites, en calcular la variable aleatoria derivada e(p(u)), y luego en calcular los distintos medios utilizados en la secuencia de ejecución SEQA, es decir, calcular los segundos medios TC_{2}.
Se obtiene, a la salida de cada grupo, el resultado exactamente para los parámetros de salida. Así pues, los parámetros de salida L4 y R4 del primer grupo G1, L8 y R8 del segundo grupo G2, L12 y R12 del tercer grupo G3, L16 y R16 del cuarto grupo G4 son justos cualquiera que sea la variable aleatoria obtenida.
Cuando se han efectuado todos los cálculos, se obtienen los parámetros justos L16 y R16 que permitirán calcular el mensaje justo codificado C.
En cambio, dentro de los grupos, algunos resultados intermedios no tienen los mismos valores según la secuencia utilizada, sino valores que corresponden a la operación O EXCLUSIVO con el valor aleatorio u o con el valor aleatorio derivado e(p(u)), lo que permite obtener la protección contra los ataques DPA.
La figura 8 muestra el organigrama detallado de los cuatro cálculos T1, T2, T3 y T4 del primer grupo G1 en la secuencia SEQA, que permite poner en evidencia el rol de los segundos medios TC_{2} utilizados en cada cálculo. Según su definición: TC_{2}=E\opluse(p(u)), S\oplusu, aplicando a la entrada el dato modificado aleatoriamente b\opluse(p(u) gracias a la operación suplementaria CP, se obtiene a la salida el dato modificado aleatoriamente a\oplusu. Sirviéndose de este razonamiento desde el cálculo T1 hasta el final del cálculo T4, y observando que p(u)\oplusp(u)=0, se obtiene a la salida del cálculo T4, los datos L4, R4 no modificados.
Con este tipo de procedimiento de contramedida, se debe prever al principio de DES la obtención del valor aleatorio u y el cálculo de los medios utilizados en la secuencia de ejecución SEQA. Estos medios calculados durante cada ejecución, se memorizan, el tiempo de la ejecución, en memoria de trabajo, los primeros medios TC_{0} que sirven para el cálculo están memorizados en memoria programa.
Este procedimiento de contramedida según el estado de técnica que consiste, así pues, generalmente en aplicar un valor aleatorio o al menos a la salida de los medios de cálculo utilizados en cada cálculo del algoritmo, proporciona algunos datos claramente. En las figuras 7 y 8 vemos que los datos de entrada, LO, RO, y a continuación los datos h, 1 y b de la primera operación se usan claramente.
Del mismo modo, los datos R3, L4, R4, R7, L8, R8, R11, L12, R12, R15, L16 y R16 se utilizan claramente.
De una manera general, cualquiera que sea el modo de aplicación del procedimiento de contramedida del estado de la técnica que acabamos de describir, al menos los datos de entrada L0 y R0, y de salida L16 y R16 se utilizan claramente en el algoritmo. Otros datos intermediarios pueden serlo, como en el caso anteriormente descrito, que dependen más especialmente del modo de aplicación en cuestión del procedimiento de contramedida del estado de la técnica, del que las figuras 7 y 8 sólo muestran uno de los ejemplos de aplicación.
En la práctica, aún pueden realizarse ataques en el algoritmo, basados en estos datos utilizados claramente.
La presente invención propone, así pues, el perfeccionamiento al procedimiento de contramedida citado anteriormente, que permite que no puedas predecirse todos los datos utilizados en el algoritmo, ya sea por el primer valor aleatorio u, ya sea por un segundo valore aleatorio anotado v, ya sea por una combinación de los dos.
Un ejemplo de aplicación de este procedimiento se representa en la figura 9.
Según la invención, se utiliza un segundo valor aleatorio anotado v, el cual se aplica a los datos de entrada L0 y R0, mediante una operación 0 EXCLUSIVO.
De este modo, los datos de entrada realmente utilizados en el cálculo del algoritmo, son datos que no pueden predecirse iguales a L0\oplusv y R\oplusv.
Este segundo valor aleatorio se propaga en cada una de las operaciones del algoritmo. A la salida de la decimosexta operación T16, se obtiene entonces como datos de salida, los datos que no pueden predecirse iguales a L16\oplusv y R16\oplusv.
Para descubrir los verdaderos datos de salida L16 y R16 que permitirán obtener el mensaje codificado C, se aplica en cada uno de estos datos L16\oplusv y R16\oplusv una operación O EXCLUSIVO con el segundo valor aleatorio v.
La utilización de los dos valores aleatorios u y v combinados perite obtener un procedimiento de contramedida perfeccionado, haciendo que no se pueda atacar el algoritmo DES que lo aplica.
En la figura 9, hemos detallado un ejemplo de aplicación práctico de un procedimiento de contramedida según la invención.
Si cogemos la primera operación T1, obtenemos en entrada los datos L0\oplusv y R0\oplusv a los cuales se aplican sucesivamente las operaciones EXP PERM, XOR (con la clave K1). Así pues nos encontramos a la entrada de la operación SBOX con el dato b\oplusv.
Los medios de cálculo TC_{M}, asociados a esta operación SBOX consisten al igual que en el procedimiento de contramedida del estado de la técnica en una tabla de constantes deducida de la tabla de constantes de origen TC_{0} del algoritmo DES.
Al anotar esta tabla de constantes de origen TC_{0}= (E, S) al igual que vimos en relación con la figura 6, calculamos los nuevos medios de cálculo TC_{M}, de la siguiente manera:
TC_{M} = (E\oplus e(v), S\oplus u).
De este modo, tenemos en cuenta el segundo valor aleatorio v aplicado a los datos a la entrada de cada operación, y continuamos beneficiándonos del primer valor aleatorio, u según el procedimiento del estado de la técnica, a la salida de la operación SBOX.
Así pues, a la salida de la operación SBOX que utiliza los medios de cálculo TC_{M}, obtenemos el dato a\oplusp(u), al que se aplica la operación P PERM, que proporciona el dato c\oplusp(u).
La siguiente operación XOR con el dato de entrada LO\oplusv proporciona a la salida del dato g\oplusp(u)\oplusv.
Recordamos que en el estado de la técnica descrita (Fig. 8), obteníamos en esta etapa el dato g\oplusp (u) utilizado a la entrada de la segunda operación T2.
Con el procedimiento según la invención, la otra entrada de la segunda operación es el dato L1\oplusv=R0\oplusv, al igual que se indica en la figura 9.
El segundo valor aleatorio v se propaga en todas las operaciones del algoritmo.
Si no logramos hacer desaparecer el valor aleatorio u del dato de salida de la primera operación (R1\oplus(v)\oplusp(u)), es necesario prever la utilización de otros medios de cálculo TC_{M}' en la segunda operación T2, definidos por TC_{M}' = E\opluse(v)\opluse(p(u)), S\oplusu.
Esta aplicación de la invención no es muy interesante, puesto que se requiere calcular las dos nuevas tablas de constantes TC_{M} y TC_{M}', el valor aleatorio u se aplica en la tabla TC_{M}', no solamente a la salida, sino igualmente a la entrada.
Por tanto, según la invención, y tal y como se representa en la figura 9, para facilitar la utilización de las dos variables aleatorias u y v reduciendo los cálculos necesarios para su aplicación y para reproducir las mismas operaciones en cada operación, se prevé una operación O EXCLUSIVO suplementaria anotada CP (p(u)) al final de cada operación, para hacer desaparecer el valor p(u) a la entrada de cada nueva operación. Así, a la entrada de la segunda operación T1, se obtiene el dato R1\oplusv = (g\oplusp(u)\oplusv)\oplusp(u), siendo
R1\oplus v = g\oplus v.
Cada operación se sucede entonces realizando la misma serie de operaciones de cálculo, de modo que a la salida de la decimosexta operación, se obtenga como datos de salida, L16\oplusv et R16\oplusv. Al aplicar una operación de O EXCLUSIVO con el segundo valor aleatorio v en cada una de estos dos datos, se obtienen los datos L16 y R16 que permiten la elaboración del mensaje codificado.
Al aplicar el procedimiento d contramedida según la invención que combina la utilización de un primer valor aleatorio u en medios de cálculo previstos en cada operación y la utilización de un segundo valor aleatorio aplicado a la entrada, antes de la ejecución de la primera operación, hacemos que no puedan predecirse todos los datos utilizados en el algoritmo, la protección pro contramedida según la invención está asegurada ya sea por el primer valor aleatorio u, ya sea por el segundo valor aleatorio v, ya sea por una combinación de estos dos valores.
\newpage
En la práctica, y en el ejemplo de aplicación representado en la figura 9, antes de ejecutar el algoritmo DES propiamente dicho, es preciso ejecutar las siguientes operaciones:
- obtención de los valores aleatorios u y v
- cálculo de p(u) para la operación CP(p(u))
- cálculo de e(v)
- cálculo de TC_{M}, = E\opluse(v), S\oplusu.
El valor aleatorio v es un dato que contiene el mismo número de bites que los datos L0 y R0, ya sea 32 bits en el ejemplo. En este procedimiento, se utiliza un valor aleatorio v que es un dato de 32 bites, Por ejemplo, podemos obtener un valor aleatorio de 32 bites, o bien obtener un valor aleatorio de 4 bits y copiarlos de nuevo 8 veces para obtener el valor aleatorio en 32 bites (al igual que para el valor aleatorio u).
Pueden preverse otros ejemplos de aplicación, en los que se pueden prever, en particular, que las operaciones no sean idénticas. Todas estas alternativas que utilizan los dos valores aleatorios según el principio general expuesto forman parte del ámbito de la invención.
Un componente electrónico 1 que aplica un procedimiento de contramedida según la invención en un algoritmo de criptografía con clave privada DES, incluye típicamente, tal y como se representa en la figura 10, un microprocesador mP, una memoria programa 2 y una memoria de trabajo 3. Los distintos medios de cálculo TC_{0} y TC_{M} son, en la práctica, tablas de constantes respectivamente en memoria programa 1 y en memoria de trabajo 3. Para poder administrar la utilización de estos medios de cálculo, se han previsto medios 4 de generación de un valor aleatorio que, si consultamos los organigramas de las figuras 7 y 11, proporcionarán los valores aleatorios u y v a cada ejecución de la DES. Este tipo de componente puede utilizarse particularmente en una tarjeta inteligente 5, para mejorar su inviolabilidad.

Claims (8)

1. Procedimiento de contramedida contra los ataques por análisis diferencial en un componente electrónico que aplica un algoritmo criptográfico con clave privada (K), procedimiento cuya aplicación incluye la realización de varias operaciones de cálculo sucesivas (T1,... T16) para suministrar a partir de los primeros datos de entrada (L0, R0) aplicados en la primera operación (T1), datos finales (L16, R16) a la salida de la última operación (T16) que permiten elaborar un mensaje codificado (C), caracterizado porque comprende:
- en cada operación de cálculo, la utilización de medios de cálculo (TC_{M}) para suministrar un dato de salida combinado por un O EXCLUSIVO a un primer valor aleatorio (S\oplusu) a partir de un dato de entrada combinado a un segundo valor aleatorio (E\oplus e(v)),
- la utilización de medios de combinación por O EXCLUSIVO, del segundo valor aleatorio (v) a los dichos primeros datos de entrada (L0, R0).
2. Procedimiento de contramedida según la reivindicación 1, caracterizado porque comprende además la utilización de medios de combinación por O EXCLUSIVO del segundo valor aleatorio (v) con los datos finales suministrados por la última operación (T16).
3. Procedimiento de contramedida según cualquiera de las reivindicaciones anteriores, caracterizado porque comprende igualmente, al final de cada operación, la ejecución de una operación suplementaria (CP(p(u)), para que desaparezca este primer valor aleatorio (u) a la salida de cada operación.
4. Procedimiento de contramedida según cualquiera de las reivindicaciones anteriores, caracterizado porque comprende la obtención del primer y segundo valor aleatorio (u, v) y el cálculo de los medios de cálculo (TC_{M}) utilizados en cada operación para cada nueva ejecución del algoritmo.
5. Procedimiento según una de las reivindicaciones 1 a 4, caracterizado porque dichos medios de cálculo (TC_{M}) se calculan a partir de primeros medios de cálculo (TC_{o}) que definen para datos de entrada (E), datos de salida (S) correspondientes, aplicando el segundo valor aleatorio (v) a dichos datos de entrada (E\opluse(v)) y aplicando el primer valor aleatorio (u) al menos a dichos datos de salida (s\oplusu) de los primeros medios de cálculo.
6. Procedimiento de contramedida según la reivindicación 5, caracterizado porque los medios de cálculo (TC_{0}, TC_{M}) son tablas de constantes.
7. Componente electrónico de seguridad adaptado para la aflicción de un procedimiento de contramedida contra ataques por análisis diferencial, dicho procedimiento comprende la aplicación de un algoritmo criptográfico con clave privada (K) que comprende la realización de varias operaciones de cálculo sucesivas (t1,...T16) para suministrar a partir de los primeros datos de entrada (L0, R09 aplicados a la primera operación (1), datos finales (L16, R16) a la salida de la última operación (T16) que permiten la elaboración de un mensaje codificado (C), el componente se caracteriza porque comprende:
\bullet una memoria programa (1), para memorizar los primeros medios de cálculo (TC0),
\bullet medios (4) para generar, en cada ejecución del procedimiento, un primer valor aleatorio (u), un segundo valor aleatorio (v) y medios de cálculo (TC_{M}) adaptados para suministrar un dato de salida combinado por un O EXCLUSIVO al primer valor aleatorio (S\oplusu) a partir de un dato de entrada combinado a un segundo valor aleatorio (E\oplusv),
\bullet una memoria de trabajo (3) para memorizar los medios de cálculo (TCM) calculados, y
\bullet medios para combinar por un O EXCLUSIVO el segundo valor aleatorio a dichos primeros datos de entrada.
8. Tarjeta inteligente que comprende un componente electrónico de seguridad según la reivindicación 7.
ES00903743T 1999-03-08 2000-02-07 Procedimiento de contramedida en un componente electronico que emplea un alritmo de criptografia con clave secreta. Expired - Lifetime ES2295007T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9902834 1999-03-08
FR9902834A FR2790890B1 (fr) 1999-03-08 1999-03-08 Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete

Publications (1)

Publication Number Publication Date
ES2295007T3 true ES2295007T3 (es) 2008-04-16

Family

ID=9542934

Family Applications (1)

Application Number Title Priority Date Filing Date
ES00903743T Expired - Lifetime ES2295007T3 (es) 1999-03-08 2000-02-07 Procedimiento de contramedida en un componente electronico que emplea un alritmo de criptografia con clave secreta.

Country Status (11)

Country Link
US (1) US6820814B1 (es)
EP (1) EP1159797B1 (es)
JP (1) JP3733027B2 (es)
CN (1) CN1302635C (es)
AT (1) ATE377307T1 (es)
AU (1) AU2553000A (es)
DE (1) DE60036928T2 (es)
ES (1) ES2295007T3 (es)
FR (1) FR2790890B1 (es)
MX (1) MXPA01009055A (es)
WO (1) WO2000054454A1 (es)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2820577B1 (fr) * 2001-02-08 2003-06-13 St Microelectronics Sa Procede securise de calcul cryptographique a cle secrete et composant mettant en oeuvre un tel procede
FR2820576B1 (fr) * 2001-02-08 2003-06-20 St Microelectronics Sa Procede de cryptage protege contre les analyses de consommation energetique, et composant utilisant un tel procede de cryptage
JP4596686B2 (ja) * 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
US7142670B2 (en) * 2001-08-14 2006-11-28 International Business Machines Corporation Space-efficient, side-channel attack resistant table lookups
US20050084097A1 (en) * 2003-10-16 2005-04-21 Tien-Shin Ho Apparatus and method for calculatingtkip sbox value
US20050235150A1 (en) * 2004-04-19 2005-10-20 Kaler Christopher G Bi-directionally verifying measurable aspects associated with modules, pre-computing solutions to configuration challenges, and using configuration challenges along with other authentication mechanisms
EP1764762B1 (en) * 2004-07-07 2019-05-15 Mitsubishi Electric Corporation Electronic element and data processing method
FR2875318A1 (fr) * 2004-09-15 2006-03-17 St Microelectronics Sa Protection d'un algorithme des
EP1646174A1 (en) * 2004-10-07 2006-04-12 Axalto SA Method and apparatus for generating cryptographic sets of instructions automatically and code generation
KR100861841B1 (ko) 2006-12-08 2008-10-07 미쓰비시덴키 가부시키가이샤 전자 소자 및 데이터 처리 방법
FR2949633B1 (fr) * 2009-08-27 2011-10-21 St Microelectronics Rousset Procede et dispositif de contremesure pour proteger des donnees circulant dans un composant electronique
US8334705B1 (en) 2011-10-27 2012-12-18 Certicom Corp. Analog circuitry to conceal activity of logic circuitry
US8635467B2 (en) 2011-10-27 2014-01-21 Certicom Corp. Integrated circuit with logic circuitry and multiple concealing circuits
CN104616054A (zh) * 2015-02-05 2015-05-13 成都市宏山科技有限公司 安全性能高的智能卡
US10771235B2 (en) * 2016-09-01 2020-09-08 Cryptography Research Inc. Protecting block cipher computation operations from external monitoring attacks

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511123A (en) * 1994-08-04 1996-04-23 Northern Telecom Limited Symmetric cryptographic system for data encryption
CA2164768C (en) * 1995-12-08 2001-01-23 Carlisle Michael Adams Constructing symmetric ciphers using the cast design procedure
CA2177622A1 (en) * 1996-05-29 1997-11-30 Thierry Moreau Cryptographic data integrity apparatus and method based on pseudo-random bit generators
US6446052B1 (en) * 1997-11-19 2002-09-03 Rsa Security Inc. Digital coin tracing using trustee tokens
ATE429748T1 (de) * 1998-01-02 2009-05-15 Cryptography Res Inc Leckresistentes kryptographisches verfahren und vorrichtung

Also Published As

Publication number Publication date
ATE377307T1 (de) 2007-11-15
EP1159797B1 (fr) 2007-10-31
FR2790890A1 (fr) 2000-09-15
FR2790890B1 (fr) 2001-04-27
JP2002539488A (ja) 2002-11-19
MXPA01009055A (es) 2002-04-24
US6820814B1 (en) 2004-11-23
DE60036928D1 (de) 2007-12-13
JP3733027B2 (ja) 2006-01-11
DE60036928T2 (de) 2008-08-07
WO2000054454A1 (fr) 2000-09-14
EP1159797A1 (fr) 2001-12-05
AU2553000A (en) 2000-09-28
CN1302635C (zh) 2007-02-28
CN1358376A (zh) 2002-07-10

Similar Documents

Publication Publication Date Title
ES2295007T3 (es) Procedimiento de contramedida en un componente electronico que emplea un alritmo de criptografia con clave secreta.
EP1308885B1 (en) Information processing and encryption unit
US7764786B2 (en) Protection of a DES algorithm
US10313128B2 (en) Address-dependent key generator by XOR tree
US8457306B2 (en) Cryptographic module and IC card
US10146701B2 (en) Address-dependent key generation with a substitution-permutation network
US8566609B2 (en) Integrity of ciphered data
US8321691B2 (en) EMA protection of a calculation by an electronic circuit
JP5184659B2 (ja) 秘密鍵を伴う電子暗号アセンブリを安全に守る方法
ES2251222T3 (es) Procedimiento de contramedida en un componente electronico que pone en aplicacion un algoritmo de cifrado con clave secreta.
ES2262502T3 (es) Procedimiento de contramedidas en un componente electronico que utiliza un algoritmo de criptografia con clave secreta.
ES2255296T3 (es) Procedimiento de contramedida en un componente electronico que utiliza un algoritmo de criptografia con clave secreta.
US7050581B1 (en) Method for making secure one or several computer installations using a common secret key algorithm, use of the method and a computer system utilizing the method
JP2004054128A (ja) 暗号化装置
ES2283134T3 (es) Procedimiento de contramedida en un componente electronico que aplica un algoritmo de criptografia de clave secreta.
ES2287013T3 (es) Procedimiento de contramedida en un componente electronico que pone en aplicacion un algoritmo de criptografia con llave secreta y dinamica.
WO2008061395A1 (fr) Circuit de cryptage aes d'un flot de données exécuté lors d'un déséquencement
Moldovyan On cipher design based on switchable controlled operations
US7747012B2 (en) Process of security of an electronic unit with cryptoprocessor
BRPI0210673B1 (pt) método criptográfico para proteger um chip eletrônico contra fraude
Zarrouk et al. Clone-Resistant Secured Booting Based on Unknown Hashing Created in Self-Reconfigurable Platform
Courtois Self-similarity attacks on block ciphers and application to KeeLoq
Elbaz-Vincent et al. SPAE a mode of operation for AES on low-cost hardware
Martínez-Rodríguez et al. A comparative analysis of VLSI trusted virtual sensors
Swayamprakash et al. Design of Advanced Encryption Standard using Verilog HDL