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 PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
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.
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.
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)
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)
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 |
-
1999
- 1999-03-08 FR FR9902834A patent/FR2790890B1/fr not_active Expired - Fee Related
-
2000
- 2000-02-07 AU AU25530/00A patent/AU2553000A/en not_active Abandoned
- 2000-02-07 ES ES00903743T patent/ES2295007T3/es not_active Expired - Lifetime
- 2000-02-07 EP EP00903743A patent/EP1159797B1/fr not_active Expired - Lifetime
- 2000-02-07 US US09/936,208 patent/US6820814B1/en not_active Expired - Fee Related
- 2000-02-07 JP JP2000604567A patent/JP3733027B2/ja not_active Expired - Fee Related
- 2000-02-07 CN CNB008072302A patent/CN1302635C/zh not_active Expired - Fee Related
- 2000-02-07 MX MXPA01009055A patent/MXPA01009055A/es unknown
- 2000-02-07 WO PCT/FR2000/000283 patent/WO2000054454A1/fr active IP Right Grant
- 2000-02-07 DE DE60036928T patent/DE60036928T2/de not_active Expired - Lifetime
- 2000-02-07 AT AT00903743T patent/ATE377307T1/de not_active IP Right Cessation
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 |