ES2222353T3 - Procedimiento de contramedida para un microcontrolador basado en una arquitectura con "pipeline". - Google Patents

Procedimiento de contramedida para un microcontrolador basado en una arquitectura con "pipeline".

Info

Publication number
ES2222353T3
ES2222353T3 ES01917164T ES01917164T ES2222353T3 ES 2222353 T3 ES2222353 T3 ES 2222353T3 ES 01917164 T ES01917164 T ES 01917164T ES 01917164 T ES01917164 T ES 01917164T ES 2222353 T3 ES2222353 T3 ES 2222353T3
Authority
ES
Spain
Prior art keywords
instructions
instruction
insn
countermeasure method
microcontroller
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
ES01917164T
Other languages
English (en)
Inventor
Nathalie Feyt
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 ES2222353T3 publication Critical patent/ES2222353T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/073Special arrangements for circuits, e.g. for protecting identification code in memory
    • G06K19/07309Means for preventing undesired reading or writing from or onto record carriers
    • G06K19/07363Means for preventing undesired reading or writing from or onto record carriers by preventing analysis of the circuit, e.g. dynamic or static power analysis or current analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Storage Device Security (AREA)

Abstract

Procedimiento de contramedida para microcontrolador susceptible de ejecutar secuencias de instrucciones (INSn), dichas instrucciones se ejecutan según un procedimiento denominado de ¿pipeline¿, caracterizado porque el procedimiento consiste en introducir aleatoriamente por lo menos un tiempo de espera (B) entre dos instrucciones consecutivas (INSn, INSn+1) y/o en el seno de por lo menos una instrucción (INSn).

Description

Procedimiento de contramedida para un microcontrolador basado en una arquitectura con "pipeline".
El presente invento concierne un procedimiento de contramedida para un microcontrolador, en el que se ejecutan secuencias de instrucción de programas.
El presente invento se aplica, en particular, a componentes electrónicos protegidos, tales como, por ejemplo, microcontroladores para tarjeta inteligente.
Los microcontroladores son circuitos integrados monolíticos que incorporan por lo menos un microprocesador de nominado CPU para Central Processing Unit en terminología inglesa. Estos microcontroladores son verdaderos ordenado res que se mantienen en un solo substrato de silicio, o chip de circuito integrado.
De este modo, las tarjetas inteligentes con microcontrolador constituyen soportes de información protegidos que poseen la misma estructura que un ordenador, es decir, que permiten almacenar datos, pero asimismo, tratar informaciones. En este marco, el papel del microcontrolador consiste en autentificar la tarjeta y su portador, cifrar y descifrar mensajes y calcular firmas electrónicas aportando la prueba de que se ha realizado debidamente una operación lícita.
La figura 1 ilustra esquemáticamente la estructura de un microcontrolador para tarjeta inteligente. Este tipo de microcontrolador, integrado en un chip, comprende un microprocesador, o CPU, en condiciones de tratar los datos y programas registrados en el chip. El microprocesador está asociado a diferentes tipos de memoria mediante bus de datos. Los programas de funcionamiento y los algoritmos están almacenados generalmente en una memoria ROM, mientras que los datos, bien sean o no secretos, se almacenan en una memoria programable de tipo EEPROM por ejemplo. Una memoria RAM contiene los registros de trabajo necesarios para los diversos tratamientos internos. Un órgano de entrada/salida compuesto de un conector, para una tarjeta inteligente con contacto, se ocupa de los diálogos con el mundo exterior.
Las operaciones del microordenador están secuenciadas por un reloj (CLK). Por otra parte, el microordenador tiene una alimentación Vcc y una tierra GND.
Existen esencialmente dos familias de microcontrolado res. La mayoría de los microcontroladores que existen hoy en día (aproximadamente un 90%) se basan en una arquitectura CISC (del inglés Complex Instructions Set Computer), en el que las instrucciones se leen y ejecutan por secuencias mediante un gran motor de decodificación. No obstante, la tendencia actual consiste en utilizar cada vez más microcontroladores de arquitectura RISC (del inglés Reduced Instruction Set Computer), en el que las instrucciones se leen y ejecutan en paralelo. Este tipo de arquitectura necesita varios motores de decodificación costosos en sitio en el chip de circuito integrado, pero también es mucho más rápida en la ejecución de las secuencias de instrucciones. En particular, las arquitecturas RISC que utilizan un procedimiento denominado de "pipeline" permiten imbricar varias instrucciones en subetapas, y ejecutar etapas de varias instrucciones en un mismo ciclo de reloj. Más adelante describiremos las particularidades del "pipeline" en arquitectura RISC.
Así pues, la ejecución de programa por el microcontrolador debe protegerse, puesto que todos o parte de los datos manipulados son secretos. La protección puede protegerse mediante algoritmos matemáticos integrados en los programas ejecutados, y/o mediante procedimientos denominados de contramedida.
Un procedimiento de contramedida es un procedimiento de protección, que consiste en evitar que los datos manipulados durante la ejecución de las instrucciones de un programa puedan interpretarse en el exterior del componente protegido. Esta fuga de información es posible debido a la estructura propia del microcontrolador, el cual puede estar sometido a lo que se llaman ataques de corriente, o DPA para Differential Power Attack en terminología inglesa.
La figura 2 ilustra el principio del ataque en corriente por un grafo del consumo de corriente I del chip, en función del número de impactos de reloj t.
Cuando el microprocesador ejecuta un programa compuesto de una secuencia de instrucciones (Ins1, Ins2, Ins3, ...), con un algoritmo, bien sea o no secreto, buscará los datos necesarios en memoria, los tratará y escribirá los resultados en memoria.
Clásicamente, la ejecución de una secuencia de instrucciones se desarrolla siempre del mismo modo, idéntica y precisa, cualquiera que sea la arquitectura (CISC o RISC) del microcontrolador utilizado.
Entonces resulta posible realizar un ataque en corriente mediante la simple lectura del consumo de corriente del microcontrolador (a partir de su alimentación Vcc), la cual puede dejar entrever informaciones sobre los datos secretos manipulados. Para obtener estas informaciones, es necesario realizar varias veces la misma secuencia de instrucciones. Entonces resulta posible correlacionar el consumo de corriente con los datos tratados durante la ejecución de la misma instrucción. El consumo de corriente del microcontrolador puede así resultar un verdadero testigo de los datos manipulados.
Por ejemplo, un agresor puede proceder de la siguiente manera. Si se considera un dato secreto de ocho octetos k[i] con i de 1 a 8. Se utiliza un acumulador y se realiza un bucle para i de 1 a 8, Acc= k[i]xor k[i+1]. Al final del bucle, se obtiene Acc= xor (\Sigma(i=1a8)k[i]. Cuando se observa el consumo de corriente I en función del tiempo durante esta secuencia (bucle), se obtiene una curva con aspecto cíclico que es el reflejo de lo que se ha ejecutado en el microcontrolador, es decir, que en el ejemplo citado se obtienen ocho señales idénticas para las ocho operaciones del bucle. No obstante, si se compara cada elemento de las señales, se logran extraer diferencias, y de este modo, informaciones sobre los k[i] secretos. Además, la observación resulta facilitada por la posibilidad de mandar ejecutar el mismo bucle varias veces. Puesto que el consumo de corriente de la tarjeta es el mismo para una misma secuencia de operaciones, se logra extraer la información buscada.
Por consiguiente, resulta indispensable eliminar esta repetición en el consumo de corriente para una misma secuencia de instrucciones. En ello radica el objetivo de los procedimientos de contramedida.
Dichos procedimientos de contramedida ya existen, en particular, en el ámbito del soporte lógico, en el que pueden utilizarse programas que comprendan variantes aleatorias. Estos programas pueden recurrir a subprogramas de manera aleatoria. De este modo, para una misma tarea repetida varias veces, la cual clásicamente recurriría a la misma secuencia de instrucciones, se utilizan programas diferentes, los cuales ocasionan la ejecución de diferentes secuencias de instrucción. La correlación entre el consumo de corriente y los datos manipulados resulta imposible.
No obstante, esta solución software no es evidente de aplicar. En efecto, es necesario escribir los diferentes subprogramas, lo que es costoso en tiempo de desarrollo y en tamaño de código. También se conoce gracias al documento FR 2 745 924, un medio de decorrelación del desarrollo de un programa con las señales de un circuito.
El presente invento tiene por objeto un procedimiento de contramedida que resuelve los inconvenientes del arte anterior. El invento propone este tipo de procedimiento de contramedida que está basado en la ejecución de las secuencias de instrucciones, según un procedimiento denominado de "pipeline" en un componente electrónico con arquitectura RISC, por ejemplo.
El invento introduce el principio de la ejecución aleatoria y no reproducible en cada secuencia de instrucciones, a nivel de la misma instrucción.
El invento concierne más particularmente un procedimiento de contramedida para microcontrolador, susceptible de ejecutar secuencias de instrucciones, dichas instrucciones se ejecutan según un procedimiento denominado de "pipeline", caracterizado por que el procedimiento consiste en introducir aleatoriamente, por lo menos un tiempo de espera, entre dos instrucciones consecutivas, y/o en el seno de, por lo menos, una instrucción.
Según una característica, las instrucciones se dividen en una pluralidad de subetapas.
Según una particularidad, las subetapas pueden consistir en:
-
una etapa de adquisición de la instrucción,
-
una etapa de decodificación de la instrucción,
-
una etapa de ejecución de la instrucción, y
-
una etapa de escritura del resultado de la instrucción.
Según una característica, el tiempo de espera se introduce aleatoriamente entre dos subetapas cualesquiera de una instrucción.
Según otra característica, las instrucciones pueden ser macroinstrucciones correspondientes a módulos lógicos complejos, como subbloques de algoritmos criptográficos.
Según otra característica, el tiempo de espera se introduce varias veces aleatoriamente en el transcurso de la ejecución de la secuencia de instrucciones.
Según una característica, el tiempo de espera se introduce a raíz de un mando software que precede la secuencia de instrucciones por proteger.
Según una característica, el procedimiento se realiza a través de una implantación no software directamente tomada a cargo por la electrónica de decodificación de instrucciones.
Según otra característica, la introducción del tiempo de espera puede ajustarse de manera estática o dinámica, mediante un parámetro estático o dinámico, o mediante un parámetro electrónico o software, de manera a regular la variabilidad de la ejecución de una misma secuencia de instrucciones.
Según una aplicación del invento, el procedimiento está implementado en un chip de circuito integrado que comprende un microcontrolador de arquitectura RISC con "pipeline".
El invento se aplica ventajosamente a todo dispositivo protegido de tipo tarjeta inteligente.
El invento presenta la ventaja de proponer un mecanismo implementado directamente a nivel del microcontrolador, en el chip de circuito integrado. Así se evita la molesta tarea de las soluciones software.
Además, el procedimiento de contramedida según el invento permite garantizar la ejecución de cualquier programa, ya esté o no protegido, en un componente electrónico equipado de dicho mecanismo de contramedida.
En efecto, es el mismo componente, y no la secuencia de instrucciones del programa, el que se ocupa de la ejecución aleatoria y por lo tanto de la protección de los datos manipulados. Esto permite ventajosamente tener programas descorrelados del componente, lo que puede resultar muy útil en el marco de algunas aplicaciones. De este modo, puede utilizarse un mismo componente con diferentes programas sin perder su nivel de protección.
Se pondrán de manifiesto otras ventajas y particularidades del invento en el transcurso de la siguiente descripción, la cual se da a título de ejemplo ilustrativo y no limitativo en referencia a las figuras, en las que:
- La figura 1, ya descrita, ilustra esquemáticamente un chip de circuito integrado equipado de un microcontrolador,
- La figura 2, ya descrita, es un grafo que ilustra el procedimiento del ataque en corriente de un componente electrónico protegido,
- La figura 3, es un esquema que ilustra el funcionamiento de un microcontrolador clásico de arquitectura CISC para una decodificación de instrucciones,
- La figura 4 es un esquema que ilustra el funcionamiento de un microcontrolador clásico de arquitectura RISC para una decodificación de instrucciones,
- La figura 5, es un esquema que ilustra el funcionamiento de un microcontrolador de arquitectura RISC según el presente invento, para una decodificación de instrucciones.
El procedimiento de contramedida según el invento se basa en el principio del tratamiento de las instrucciones en pipeline utilizado generalmente en un microcontrolador de arquitectura RISC.
Varios puntos distinguen la arquitectura RISC de la arquitectura CISC.
Por una parte, a cada instrucción corresponde un solo bloque lógico implementado en forma de un submódulo electrópico específico y único, de tal modo que la decodificación y la ejecución de una instrucción pueda hacerse en un sólo ciclo de reloj, mientras que la arquitectura CISC utiliza un solo bloque electrónico que trata secuencialmente todas las instrucciones.
Por otra parte, el bus de datos se diferencia del bus de instrucciones para permitir la decodificación de una instrucción en cada ciclo de reloj, independientemente de los datos almacenados en memoria y utilizados por las demás instrucciones. Esto permite ir a buscar datos en memoria simultáneamente a la decodificación de las instrucciones que deben tratarlas. Por otra parte, todas las instrucciones deben tener un tamaño equivalente como mínimo al del bus externo de datos, de tal modo que la decodificación de las instrucciones sea directa y no implique ningún plazo.
Por lo general se distinguen dos modelos de microcontroladores de arquitectura R.I.S.C.,
-
el modelo de "Stanford" que utiliza encadenamientos de instrucciones optimizadas, más comúnmente conocidas bajo el término técnico de "pipeline", que permiten utilizar un juego de instrucciones muy potente;
-
el modelo de "Berkeley" que utiliza encadenamientos de instrucciones que permiten recurrir rápidamente a subrutinas, y particularmente adaptado a aplicaciones en tiempo real.
El presente invento se aplica más específicamente a la técnica de "pipeline" propuesta en el modelo de "Stanford". En efecto, el invento propone un procedimiento de contramedida que se basa en esta arquitectura de pipeline.
Los "pipelines" permiten imbricar la ejecución de varias instrucciones, al dividir cada instrucción en varias subetapas, y al ejecutar estas subetapas en paralelo. Así pues, se puede definir una fase de pipeline como el conjunto de subetapas ejecutadas simultáneamente. De esta manera, el número de ciclo de reloj por instrucción se dividirá proporcionalmente por el número de fases del pipeline.
Cabe mencionar que durante la ejecución de un programa, más sencillamente de una serie de instrucciones, el funcionamiento del pipeline puede romperse cuando sobrevienen instrucciones de tipo conexión, salto, interrupción y otras excepciones a la ejecución lineal de instrucciones.
Las figuras 3 y 4 ilustran respectivamente el funcionamiento clásico de un microcontrolador de arquitectura CISC y de arquitectura RISC con pipeline.
Las instrucciones INSn pueden ser instrucciones simples o macroinstrucciones que corresponden a módulos lógicos complejos, tales como subbloques de algoritmos criptográficos, como por ejemplo instrucciones de permutación, compresión, expansión, funciones matemáticas no básicas, tablas de correspondencia, u otro.
Las instrucciones INSn se dividen ventajosamente en varias subetapas. Se da como ejemplo un caso de división en cuatro subetapas, el cual no deberá considerarse como restrictivo.
La primera etapa "F", del acrónimo anglosajón "FETCH", permite ir a buscar en memoria la instrucción que debe decodificarse. Seguidamente posiciona esta instrucción en el bus, la cual se transmite a continuación a la siguiente etapa.
La segunda etapa "D", del acrónimo anglosajón "DECODE", permite decodificar la instrucción, es decir activar el submódulo del microcontrolador que sabe tratar esta instrucción.
La tercera etapa "E", del acrónimo anglosajón "EXECUTE", permite mandar ejecutar la instrucción en el submódulo del microcontrolador.
La última etapa "W", del acrónimo anglosajón "WRITE", permite escribir el resultado de la instrucción ejecutada por el submódulo del microcontrolador en el bus. Este resultado se utiliza seguidamente en el resto de la ejecución, o sino regresa de nuevo a la memoria.
Podemos constatar, a partir de la figura 3, que solamente se han podido terminar dos instrucciones en ocho ciclos de reloj por un microcontrolador de arquitectura CISC.
Al contrario, como se ilustra en la figura 4, para un "pipeline" de cuatro subetapas, se han podido terminar seis instrucciones en solamente nueve ciclos de reloj. El tiempo de ejecución global es menor porque han podido ejecutarse simultáneamente subetapas de varias instrucciones.
No obstante, este tipo de arquitectura no está protegida contra un ataque de corriente. En efecto, si se repite varias veces la misma secuencia de instrucciones, siempre tendremos el mismo encadenamiento de fases del pipeline con el mismo consumo de corriente.
Con el fin de resolver el problema ocasionado por los ataques de corriente y evitar la reproductibilidad del consumo de corriente para una misma secuencia de instrucciones ejecutada varias veces, se introduce aleatoriamente un tiempo de espera, Break B, en el tratamiento de las instrucciones. Este tiempo de espera B puede introducirse aleatoriamente al principio de una instrucción, y/o entre dos subetapas cualesquiera de una misma instrucción.
El tiempo de espera aleatorio B puede introducirse igualmente varias veces si fuera necesario en el transcurso de la ejecución de una secuencia de instrucciones.
La figura 5 ilustra el mecanismo del procedimiento de contramedida según el invento.
Los tiempos de espera aleatorios B impiden todo tipo de reproductibilidad del consumo en corriente, modificando en cada secuencia de instrucciones, las etapas del pipeline sin perturbar la ejecución de las instrucciones.
El procedimiento según el invento se realiza a través de una implementación no software, directamente aplicada por el módulo electrónico (hardware) de decodificación de las instrucciones del microcontrolador.
El procedimiento puede regularse en su funcionamiento, de manera estática o dinámica, por medios electrónicos o softwares, para obtener más o menos variabilidad en la ejecución repetida de una misma secuencia de instrucciones.
Según una posibilidad de aplicación del procedimiento según el invento, la introducción del tiempo de espera B puede acondicionarse a una puesta en marcha dirigida de manera software, por ejemplo, justo antes de la ejecución de la secuencia de instrucciones que se desea proteger. De este modo, no se compromete la rapidez de ejecución de una secuencia de instrucciones que no necesita ninguna protección particular.
El procedimiento según el invento permite, así pues, proteger la ejecución aleatoria contra una secuencia de instrucciones, es decir, la no reproducibilidad de esta secuencia de una a otra ejecución, y esto para obtener un mismo resultado funcional.
Simplemente debe definirse un compromiso con el fin de no alargar el tiempo de ejecución de la secuencia de instrucciones, y perder, por consiguiente, la principal ventaja del pipeline.

Claims (11)

1. Procedimiento de contramedida para microcontrolador susceptible de ejecutar secuencias de instrucciones (INSn), dichas instrucciones se ejecutan según un procedimiento denominado de "pipeline", caracterizado porque el procedimiento consiste en introducir aleatoriamente por lo menos un tiempo de espera (B) entre dos instrucciones consecutivas (INSn, INSn+1) y/o en el seno de por lo menos una instrucción (INSn).
2. Procedimiento de contramedida según la reivindicación 1, caracterizado porque las instrucciones (INSn) se dividen en una pluralidad de sub-
etapas.
3. Procedimiento de contramedida según la reivindicación 2, caracterizado porque las subetapas pueden consistir en:
-
una etapa de adquisición de la instrucción (F),
-
una etapa de decodificación de la instrucción (D),
-
una etapa de ejecución de la instrucción (E), y
-
una etapa de escritura del resultado de la instrucción(W).
4. Procedimiento de contramedida según una de las reivindicaciones 2 a 3, caracterizado porque el tiempo de espera (B) se introduce aleatoriamente entre dos subetapas cualesquiera de una instrucción (INSn).
5. Procedimiento de contramedida según la reivindicación 1, caracterizado porque las instrucciones (INSn) son macroinstrucciones que corresponden a módulos lógicos complejos, tales como subbloques de algoritmos criptográficos.
6. Procedimiento de contramedida según cualquiera de las reivindicaciones anteriores, caracterizado porque el tiempo de espera (B) se introduce varias veces en el transcurso de la ejecución de la secuencia de instrucciones.
7. Procedimiento de contramedida según cualquiera de las reivindicaciones anteriores, caracterizado porque el tiempo de espera (B) se introduce a raíz de un mando software que precede la secuencia de instrucciones por proteger.
8. Procedimiento de contramedida según cualquiera de las reivindicaciones anteriores, caracterizado porque se realiza a través de una implementación no software directamente tomada a cargo por la electrónica de decodificación de instrucciones del microcontrolador.
9. Procedimiento de contramedida según cualquiera de las reivindicaciones anteriores, caracterizado porque el tiempo de espera (B) se ajusta de manera estática o dinámica, mediante un parámetro electrónico o software, de manera a ajustar la variabilidad de la ejecución de una misma secuencia de instrucciones.
10. Procedimiento según cualquiera de las reivindicaciones anteriores, caracterizado porque se aplica en un chip de circuito integrado que comprende un microcontrolador de arquitectura RISC con "pipeline".
11. Dispositivo protegido, de tipo tarjeta inteligente, caracterizado porque comprende un componente electrónico en condiciones para aplicar el procedimiento de contramedida según cualquiera de las reivindicaciones de 1 a 10.
ES01917164T 2000-04-06 2001-03-16 Procedimiento de contramedida para un microcontrolador basado en una arquitectura con "pipeline". Expired - Lifetime ES2222353T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0004426A FR2807591B1 (fr) 2000-04-06 2000-04-06 Procede de contre-mesure pour un micro-controleur base sur une architecture avec "pipeline"
FR0004426 2000-04-06

Publications (1)

Publication Number Publication Date
ES2222353T3 true ES2222353T3 (es) 2005-02-01

Family

ID=8848959

Family Applications (1)

Application Number Title Priority Date Filing Date
ES01917164T Expired - Lifetime ES2222353T3 (es) 2000-04-06 2001-03-16 Procedimiento de contramedida para un microcontrolador basado en una arquitectura con "pipeline".

Country Status (10)

Country Link
US (1) US7376844B2 (es)
EP (1) EP1269290B1 (es)
JP (1) JP2004510213A (es)
CN (1) CN1426547A (es)
AU (1) AU2001244258A1 (es)
DE (1) DE60103520T2 (es)
ES (1) ES2222353T3 (es)
FR (1) FR2807591B1 (es)
MX (1) MXPA02009748A (es)
WO (1) WO2001077791A1 (es)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2835935B1 (fr) * 2002-02-14 2004-04-16 Geneticware Co Ltd Structure pour une logique en pipeline controlee
US7653906B2 (en) * 2002-10-23 2010-01-26 Intel Corporation Apparatus and method for reducing power consumption on simultaneous multi-threading systems
DE10307797B4 (de) * 2003-02-24 2010-11-11 Infineon Technologies Ag Vorrichtung und Verfahren zum Ermitteln einer Unregelmäßigkeit in einem Ablauf eines Nutzprogramms
US7647486B2 (en) * 2006-05-02 2010-01-12 Atmel Corporation Method and system having instructions with different execution times in different modes, including a selected execution time different from default execution times in a first mode and a random execution time in a second mode
DE102006038877B4 (de) * 2006-08-18 2018-01-25 Giesecke+Devrient Mobile Security Gmbh Manipulationsgesicherte Einheit, Verfahren für eine manipulationsgesicherte Einheit sowie Speichermedium
DE102006038879A1 (de) 2006-08-18 2008-02-21 Giesecke & Devrient Gmbh Verfahren und Vorrichtung zur nebenläufigen Ausführung von Prozessen
JP4861423B2 (ja) * 2006-09-20 2012-01-25 富士通株式会社 情報処理装置および情報管理方法
JP4680876B2 (ja) * 2006-12-11 2011-05-11 ルネサスエレクトロニクス株式会社 情報処理装置及び命令フェッチ制御方法
EP1936527A1 (fr) * 2006-12-18 2008-06-25 Gemplus Procédé permettant de faire varier le nombre d'exécution de contre-mesures dans un code exécuté
EP2000936A1 (en) * 2007-05-29 2008-12-10 Gemplus Electronic token comprising several microprocessors and method of managing command execution on several microprocessors
JP2011090592A (ja) * 2009-10-26 2011-05-06 Sony Corp 情報処理装置とその命令デコーダ
CN102970131A (zh) * 2011-08-31 2013-03-13 北京中电华大电子设计有限责任公司 一种防止对分组算法进行功耗攻击的电路结构
CN104090740A (zh) * 2014-05-27 2014-10-08 安徽师范大学 微控制器指令集的执行方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4077061A (en) * 1977-03-25 1978-02-28 Westinghouse Electric Corporation Digital processing and calculating AC electric energy metering system
JPH0623954B2 (ja) * 1985-03-29 1994-03-30 富士通株式会社 情報処理装置の性能調整方式
US5761466A (en) * 1994-05-09 1998-06-02 Lsi Logic Corporation Soft programmable single-cycle/pipelined micro-programmed control system
FR2745924B1 (fr) * 1996-03-07 1998-12-11 Bull Cp8 Circuit integre perfectionne et procede d'utilisation d'un tel circuit integre
DE19834076A1 (de) * 1998-07-29 2000-02-10 Philips Corp Intellectual Pty Anordnung zur elektronischen Verarbeitung von Datensignalen
US6470291B1 (en) * 1998-09-25 2002-10-22 Seagate Removable Storage Solutions Llc Velocity feedback measurement method
JP2001094550A (ja) * 1999-09-17 2001-04-06 Toshiba Corp 信号処理装置

Also Published As

Publication number Publication date
US20030115478A1 (en) 2003-06-19
EP1269290A1 (fr) 2003-01-02
CN1426547A (zh) 2003-06-25
AU2001244258A1 (en) 2001-10-23
DE60103520D1 (de) 2004-07-01
WO2001077791A1 (fr) 2001-10-18
FR2807591A1 (fr) 2001-10-12
EP1269290B1 (fr) 2004-05-26
MXPA02009748A (es) 2003-03-27
DE60103520T2 (de) 2005-06-16
FR2807591B1 (fr) 2003-08-08
JP2004510213A (ja) 2004-04-02
US7376844B2 (en) 2008-05-20

Similar Documents

Publication Publication Date Title
ES2222353T3 (es) Procedimiento de contramedida para un microcontrolador basado en una arquitectura con "pipeline".
Alrimeih et al. Fast and flexible hardware support for ECC over multiple standard prime fields
US10430565B2 (en) Securing microprocessors against information leakage and physical tampering
Suh et al. Aegis: A single-chip secure processor
ES2205784T3 (es) Procedimiento de proteccion de datos mediante la ejecucion de un algoritmo criptografiado.
US8429379B2 (en) Reconfigurable microprocessor configured with multiple caches and configured with persistent finite state machines from pre-compiled machine code instruction sequences
US7036017B2 (en) Microprocessor configuration with encryption
Li et al. SBAP: Software-based attestation for peripherals
US20070075732A1 (en) System and method for using dummy cycles to mask operations in a secure microcontroller
WO2003058409A3 (en) Protecting a device against unintended use in a secure environment
KR20130120985A (ko) 소프트웨어 무결성을 보장하기위한 프로세서 실행 방법
Höller et al. Hardware/software co-design of elliptic-curve cryptography for resource-constrained applications
Antognazza et al. Metis: An integrated morphing engine CPU to protect against side channel attacks
JP4168305B2 (ja) Icカードとマイクロコンピュータ
Gautschi et al. SIR10US: A tightly coupled elliptic-curve cryptography co-processor for the OpenRISC
JP2001266103A (ja) Icカードとマイクロコンピュータ
EP3291478A1 (en) Software protection against differential fault analysis
ES2312427T3 (es) Procedimiento de contramedida en un microcircuito y tarjeta inteligente que incorpora dicho microcircuito.
EP3214566B1 (en) Preventing side channel attacks on a cpu
Liu et al. Reconfigurable Cryptographic Processor
Bertoni et al. ECC hardware coprocessors for 8-bit systems and power consumption considerations
ES2822298T3 (es) Procedimiento de puesta en práctica segura de un módulo funcional en un componente electrónico, y componente electrónico correspondiente
WO2005088442A2 (en) Pipeline circuit
JP2008542894A (ja) 電気回路装置及びその動作方法
US20240232342A9 (en) Protection of masked data