ES2843098T3 - Carga segura de datos secretos de registros de hardware no protegidos - Google Patents

Carga segura de datos secretos de registros de hardware no protegidos Download PDF

Info

Publication number
ES2843098T3
ES2843098T3 ES17729871T ES17729871T ES2843098T3 ES 2843098 T3 ES2843098 T3 ES 2843098T3 ES 17729871 T ES17729871 T ES 17729871T ES 17729871 T ES17729871 T ES 17729871T ES 2843098 T3 ES2843098 T3 ES 2843098T3
Authority
ES
Spain
Prior art keywords
hardware
register
data
registers
write
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.)
Active
Application number
ES17729871T
Other languages
English (en)
Inventor
Nicholas Xing Long Eu
Annus Bin Khalid Syed
Juan Manolo Alcasabas
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.)
Thales DIS France SA
Original Assignee
Thales DIS France 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 Thales DIS France SA filed Critical Thales DIS France SA
Application granted granted Critical
Publication of ES2843098T3 publication Critical patent/ES2843098T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/72Protecting 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 in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • 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
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7257Random modification not requiring correction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Abstract

Método para cargar de forma segura un conjunto de registros de hardware de datos confidenciales (KR) con datos confidenciales (K) para la ejecución de un programa que tiene una funcionalidad dada en un chip (CH) que soporta operaciones de criptografía de hardware, comprendiendo dicho método las siguientes etapas monitoreadas por instrucciones de software, en cada ejecución de un software: seleccionar (P1) un conjunto (ARs) de registros de hardware disponibles (AR) enumerados en una lista predefinida que enumera, en la arquitectura del chip, los registros de hardware que permanecen sin usar o no son confidenciales para la implementación de la funcionalidad del programa cuando se cargan, establecer (P2) una lista de registros (RL) que se pueden indexar de direcciones de los registros de hardware de datos confidenciales (KR) y de los registros de hardware en el conjunto (ARs) de registros de hardware disponibles, en un bucle, escribir (P3) cada registro de hardware en esta lista de registros (RL) con datos aleatorios, un número aleatorio de veces, en orden aleatorio, excepto la última escritura en cada uno de los registros de hardware de datos confidenciales (KR) donde se escribe una parte de los datos confidenciales (K).

Description

DESCRIPCIÓN
Carga segura de datos secretos de registros de hardware no protegidos
Campo de la invención
La presente invención se refiere a un método para cargar de forma segura un conjunto de registros de hardware de datos confidenciales en un chip que soporta operaciones de criptografía de hardware.
La invención también se refiere a un chip que implementa dicho método y a un producto de programa informático que tiene instrucciones para implementar el método de la invención.
Antecedentes de la invención
Un chip que admite operaciones de criptografía de hardware requiere que se carguen datos críticos para la seguridad en los registros de hardware. Por ejemplo, el cifrado AES requerirá la carga de claves y datos en los registros de hardware.
La carga de claves en los registros de hardware es crítica, ya que el hardware en sí protege el cálculo, pero la carga de las claves es susceptible de sufrir ataques de canal lateral. Los ataques de canal lateral son cualesquiera ataques montados en función de la información lateral dejada escapar por el chip. El ataque de canal lateral es cualquier ataque basado en información obtenida de la implementación física de un criptosistema, en lugar de fuerza bruta o debilidad teórica en los algoritmos. Por ejemplo, la información de tiempo, el consumo de energía, las fugas electromagnéticas o incluso el sonido pueden proporcionar una fuente adicional de información, que se puede aprovechar para romper el sistema.
Se pueden montar ataques similares teniendo acceso a un dispositivo experimental idéntico que se puede programar libremente. Estos ataques se denominan ataques de plantilla. Para tal ataque, el atacante solo necesita una curva de canal lateral de la tarjeta atacada.
Hay ciertas contramedidas de hardware que proporcionan una carga segura. Por ejemplo, la variabilidad del tiempo es una de las posibles contramedidas de hardware. La variabilidad del tiempo se refiere a una señal de reloj variable en la que la amplitud sigue siendo la misma pero el período cambia ligeramente con respecto al original, lo que dificulta el análisis del canal lateral al implicar una desviación del reloj de la periodicidad de la señal periódica supuesta por el atacante.
Otra posible solución de hardware es tener la carga de claves enmascaradas. Esto significa que los datos críticos para la seguridad se enmascaran antes de que se carguen en el hardware y el hardware elimina la máscara durante el cálculo.
Pero estas contramedidas solo pueden ser implementadas por el fabricante del chip y solo habilitadas/deshabilitadas por el software.
Por lo tanto, en ciertos chips, la carga de las claves no es segura, ya que el hardware no admite la carga de claves enmascaradas, es decir, la clave enmascarada antes de la carga en los registros de hardware y la máscara eliminada en el propio hardware, o la aplicación de variabilidad del tiempo , es decir, desviación del reloj de señal periódica o de otras contramedidas de hardware. Esto plantea un problema de seguridad en el que la clave se puede recuperar mediante ataques de canal lateral.
En consecuencia, serían deseables en la técnica otras soluciones alternativas y ventajosas.
Compendio de la invención
La presente invención tiene como objetivo asegurar la carga de datos sensibles sin implicar requisitos de hardware específicos, como sucede en caso contrario en la solución de la técnica anterior.
La presente invención se define, en su sentido más amplio, como un método para cargar de forma segura un conjunto de registros de hardware de datos confidenciales con datos confidenciales en un chip que soporta operaciones de criptografía de hardware, comprendiendo dicho método las siguientes etapas monitoreadas por instrucciones de software, en cada ejecución de un software:
seleccionar un conjunto de registros de hardware disponibles enumerados en una lista predefinida, que enumera, en la arquitectura del chip, los registros de hardware no utilizados y otros registros de hardware relevantes que no manejan datos confidenciales y no interrumpen la funcionalidad del chip cuando se cargan,
establecer una lista de registros que se puede indexar de la dirección de los registros de hardware de datos confidenciales y de los registros de hardware en el conjunto de registros de hardware disponibles,
en un bucle, escribir cada registro de hardware en esta lista de registros con datos aleatorios, un número aleatorio de veces, en orden aleatorio, excepto la última escritura en cada uno de los registros de hardware de datos confidenciales donde se escribe una parte de los datos confidenciales . La invención también se aplica a un chip de hardware en el que la escritura en un registro confidencial requiere dos o más acciones, realizándose al menos una acción de acuerdo con el principio de la invención.
La solución propuesta en la invención es puramente de software y se puede utilizar con o sin contramedidas de hardware. Si se usa con contramedidas de hardware, reforzará la seguridad.
Con la invención, la carga de registros en orden aleatorio con datos aleatorios codifica la escritura de clave real. Además, la escritura de los datos aleatorios en los registros de claves/datos confidenciales hace que la información de cada canal lateral adquirida sea diferente, tanto en el orden debido a la secuencia aleatoria como en la duración debido al número aleatorio de escrituras por registro.
El atacante no puede identificar cuándo las claves reales/datos confidenciales están escritos en los registros de claves reales y esto protegerá contra ataques de canal lateral como SPA (análisis de energía simple) y plantilla. La aleatorización del software de la carga de claves proporciona protección contra estos ataques.
Dado que la invención es una solución basada en software, se puede utilizar de forma independiente y, si se utiliza además de las contramedidas de hardware, aumentará aún más la seguridad.
A través de un análisis de canal lateral de un chip que implementa la invención, las curvas de energía del canal lateral mostrarán muchas escrituras de registro cuando se cargue la clave en comparación con la carga normal de clave.
En la invención, los datos clave aleatorios y reales son procedentes de RAM. Mientras el atacante no conoce la dirección RAM exacta de los datos reales, no puede saber cuándo accede a los datos reales. También los chips modernos tienen buses de direcciones encriptados que forman una protección adicional.
Según una realización ventajosa, el método comprende además una etapa de selección adicional de registros de claves de otro hardware criptográfico.
La implicación de esos otros registros aumenta la permutación. Por lo tanto, los registros de claves DES se pueden seleccionar y agregar al bucle donde se escriben los registros de claves AES. Se observa aquí que la lista puede ser diferente dependiendo de la funcionalidad considerada. En particular, tales registros se pueden agregar a la lista de registros disponibles solo para la escritura de registros de claves AES entre los que se selecciona el conjunto de registros disponibles.
Según una realización ventajosa, la etapa de escritura del método de la invención comprende incluir las siguientes etapas:
- asociar un número de tiempos de carga a cada registro de hardware en la lista que se puede indexar ,
- establecer una secuencia de escritura de registro que enumere la dirección de registro tantas veces como los tiempos de carga asociados,
- mezclar la secuencia de escritura de registro para determinar un orden de procesamiento en una secuencia de escritura de registro mezclada ,
- identificar la última ocurrencia de los registros de datos confidenciales en la secuencia de escritura de registros mezclados,
- para todo el conjunto de direcciones en la secuencia de escritura de registros mezclados, escribir cada registro de hardware con datos aleatorios.
Esta realización es sencilla de implementar y proporciona la escritura necesaria de cada registro de hardware con datos aleatorios, un número aleatorio de veces, en orden aleatorio excepto la última escritura en cada uno de los registros de hardware de datos confidenciales donde se escribe una parte de los datos confidenciales .
La secuencia de escritura del registro corresponde a una lista ampliada de registros que se puede indexar .
Por tanto, el método según la presente invención permite reducir los riesgos de ataques maliciosos. Al menos, los ataques son más complejos de realizar para un atacante malintencionado.
La presente invención también se refiere a un chip que implementa el método de la invención y a un producto de programa informático que tiene instrucciones para implementar el método de la invención.
En la invención, el comportamiento del hardware y el procesamiento de los datos que se van a cargar en el registro del hardware son distintos de los de la técnica anterior y se pueden rastrear y observar como un manejo original y específico de los datos.
Para la consecución de los fines anteriores y relacionados, una o más realizaciones comprenden las características descritas a continuación en su totalidad y señaladas particularmente en las reivindicaciones. El documento WO 03/081398 A2 describe un dispositivo para la carga segura de datos operativos en un soporte de datos, tal como un registro o bus, que comprende un dispositivo para el suministro de datos operativos en forma de unidades de datos operativos, un dispositivo para el suministro de datos numéricos ciegos o aleatorios y una unidad de control para cargar datos ciegos y luego operar datos en el soporte de datos o una combinación de los mismos. El dispositivo comprende el suministro alterno de datos ficticios y datos operativos. Preferiblemente, la unidad de datos ficticios es un número aleatorio suministrado por un generador de números aleatorios presente en los sistemas de procesador criptográfico. La carga alternativa de datos ficticios y datos operativos hace que la información sobre el peso Hamming de un número cargado en un soporte de datos sea inútil para un atacante, incluso si el atacante puede detectarlo, por ejemplo, mediante análisis de rendimiento.
Breve descripción de los dibujos
La siguiente descripción y los dibujos adjuntos exponen en detalle ciertos aspectos ilustrativos y son indicativos de algunas de las diversas formas en las que pueden emplearse los principios de las realizaciones. Otras ventajas y características novedosas resultarán evidentes a partir de la siguiente descripción detallada cuando se considere junto con los dibujos y se pretende que las realizaciones descritas incluyan todos estos aspectos y sus equivalentes.
• La Figura 1 muestra esquemáticamente un diagrama de flujo de un método para obtener un programa informático que implementa la invención;
• La Figura 2 muestra esquemáticamente un diagrama de flujo del método de la invención;
• La Figura 3 ilustra esquemáticamente una realización de la tercera etapa del método de la invención;
• La Figura 4 ilustra esquemáticamente una implementación del método de la invención;
• La Figura 5 ilustra esquemáticamente la etapa de mezcla de la secuencia de escritura de registros del método de la invención.
Descripción detallada de realizaciones de la invención
Para una comprensión más completa de la invención, la invención se describirá ahora en detalle con referencia al dibujo adjunto. La descripción detallada ilustrará y describirá lo que se considera una realización preferida de la invención. Por supuesto, debe entenderse que se podrían realizar fácilmente diversas modificaciones y cambios de forma o detalle sin apartarse del alcance de la invención definida por las reivindicaciones adjuntas. Por lo tanto, se pretende que la invención no se limite a la forma exacta y a los detalles mostrados y descritos aquí, ni a nada menos que la totalidad de la invención descrita en este documento y como se reivindica a continuación. Los mismos elementos se han designado con las mismas referencias en los diferentes dibujos. En aras de la claridad, en los dibujos se muestran y describirán únicamente aquellos elementos y etapas que son útiles para la comprensión de la presente invención.
Aquí se describe en primer lugar la elaboración de un programa informático que tiene una funcionalidad dada y que implementa el método de la invención. Esto se ilustra en la Figura 1. En una primera etapa S1, los registros que almacenarán datos confidenciales K se identifican en un chip CH. Estos se denominarán registros de claves KR. Esta etapa se realiza una vez en la escritura del programa informático según la invención.
Además, en una etapa S2 se establece una lista de registros de hardware disponibles AR en el chip CH, que no afectan a la funcionalidad deseada si están escritos. Estos se denominarán registros no utilizados. Incluye los registros que quedan, según la arquitectura del chip, sin usar o no confidenciales para la implementación de la funcionalidad del programa.
Se hace una lista de tales registros de hardware disponibles AR una vez al escribir el programa que implementa la invención.
Luego, el programa informático CP se escribe en una etapa S3 para ejecutar las siguientes etapas .
La Figura 2 muestra las etapas del programa según la propia invención.
En una primera etapa P1, se selecciona un conjunto de registro de hardware disponibles AR. Por ejemplo, se seleccionan seis registros de hardware disponibles AR como se muestra en la Figura 3. En una segunda etapa P2, los registros de claves y los registros de hardware seleccionados se organizan en una agrupación RL, direccionable a través de un índice. En el ejemplo de la Figura 3, los índices 0 y 1 se atribuyen a los registros de claves KR mientras que los registros disponibles se indexan del 2 al 7 en una lista de registros RL que enumera los registros que se utilizarán durante esta ejecución del programa informático. En este ejemplo, hemos identificado dos registros clave y seis registros disponibles. Por tanto, el número total de registros es así de ocho.
Para obtener la dirección de un registro, se accede a la lista de registros de agrupación RL por el índice i. Aquí, RL[0] dará 0x40010880 (KR). RL[1] dará 0x40010884 (KR). RL[2] dará 0x40010888 (AR). RL[3] dará 0x4001088C (AR). RL[4] dará 0x40010890 (AR). RL[5] dará 0x40010894 (AR). RL[6] dará 0x40010898 (AR). RL[7] dará 0x4001089C (AR).
La selección del conjunto de registros de hardware disponibles se realiza ventajosamente en cada ejecución del software.
La etapa P3 es un bucle que escribe cada registro de hardware con datos aleatorios, un número aleatorio de veces, en orden aleatorio, excepto la última escritura en cada uno de los registros de hardware clave donde está escrita una parte de la clave válida. Después de todas las iteraciones en el bucle, las partes secundarias de claves cargadas LD se cargan en los registros de claves.
La Figura 3 ilustra una realización de la tercera etapa de la invención. En una etapa T1, se crea una agrupación de contadores de escrituras falsas FWC para almacenar el número de escrituras falsas para cada registro enumerado en la lista de registros RL.
El contador de escrituras falsas comprende un elemento por registro e inicializa cada elemento con un número aleatorio limitado por el máximo de escrituras falsas. En el ejemplo que se muestra, el máximo de escrituras falsas es dos. Por tanto, cada elemento en FWC puede tomar el valor 1 o 2. Se observa aquí que el contador de escrituras falsas FWC está asociado al mismo índice que la lista de registros RL.
Dado que se asegura que cada elemento del contador de escrituras falsas FWC tenga los mismos índices que RL, inicializar FWC[0] a 2 significa que los datos aleatorios se escribirán dos veces en 0x40010880 (KR) porque al acceder a RL[0] se obtiene 0x40010880. A continuación, se muestra una explicación de la matriz FWC[i] cuando está indexada por i:
FWC[0] = 2, significa escribir datos aleatorios 2 veces en 0x40010880 (KR). FWC[1] = 1, significa escribir datos aleatorios 1 vez en 0x40010884 (KR). FWC[2] = 1, significa escribir datos aleatorios 1 vez en 0x40010888 (AR). FWC[3] = 2, significa escribir datos aleatorios 2 veces en 0x4001088C (AR). FWC[4] = 1, significa escribir datos aleatorios 1 vez en 0x40010890 (AR). FWC [5]= 2, significa escribir datos aleatorios 2 veces en 0x40010894 (AR). FWC[6] = 2, significa escribir datos aleatorios 2 veces en 0x40010898 (AR). FWC[7] = 2, significa escribir datos aleatorios 2 veces en 0x4001089C (AR).
Luego, en una etapa T2, ilustrada adicionalmente en la Figura 4, se crea una agrupación de secuencias de escritura de registros RWS inicializando cada elemento de RWS con el índice de búsqueda de los registros en la lista de registros RL usando el contador de escrituras falsas FWC.
El tamaño máximo de la matriz es el número total de registros multiplicado por el número máximo de escrituras falsas más uno.
En el ejemplo que se muestra en la Figura 4, FWC[0] es 2, por lo que los primeros 3 elementos de la secuencia de escritura del registro RWS son ceros. Los siguientes 2 elementos son 1 porque FWC[1 ] es 1. Se requiere una escritura adicional para garantizar que la última escritura en el registro de claves reales KR sea parte de la clave real K. En general, una clave completa no puede caber en un registro . Por lo tanto, cada registro contiene una parte de la clave completa.
Los primeros tres elementos de todos los 0 significan que el RL[0] (0x40010880 - registro de clave) se escribirá tres veces, dos veces con clave falsa y una vez con clave real ya que RL[0] es la dirección de registro de clave real. Si RL[i] no es una dirección de registro de claves reales, todas las escrituras serán datos aleatorios.
En una etapa T3, se realiza una mezcla de los elementos en la secuencia de escritura de registro RWS y se obtiene una secuencia de escritura de registros RWS aleatoria.
Luego, en una etapa T4, los elementos de la secuencia de escritura de registros RWSs se utilizan para acceder a todos los registros de la lista de registros RL y escribir claves falsas y reales en ellos. El pseudocódigo para acceder a los registros es el siguiente: ejecutar un bucle a través de los RWSs[], desde i = 0 hasta la suma de todos los elementos del contador de escritura falsa FWC []. Para cada elemento RWSs[], se recupera j = RWSs[i]. Los datos aleatorios se escriben en el registro RL[j]. Para la última escritura en el registro de claves reales KR, se escribe la clave real; de lo contrario, todas las escrituras son escrituras de datos aleatorios incluso en el registro de clave real. Al final de los bucles de la etapa T4, se obtiene una clave LD cargada.
En la descripción detallada anterior, se hace referencia a los dibujos adjuntos que muestran, a modo de ilustración, realizaciones específicas en las que se puede poner en práctica la invención. Estas realizaciones se describen con suficiente detalle para permitir a los expertos en la técnica poner en práctica la invención. La descripción detallada anterior, por lo tanto, no debe tomarse en un sentido limitativo, y el alcance de la presente invención se define solo por las reivindicaciones adjuntas, interpretadas apropiadamente, junto con la gama completa de equivalentes a los que tienen derecho las reivindicaciones.

Claims (5)

REIVINDICACIONES
1. Método para cargar de forma segura un conjunto de registros de hardware de datos confidenciales (KR) con datos confidenciales (K) para la ejecución de un programa que tiene una funcionalidad dada en un chip (CH) que soporta operaciones de criptografía de hardware, comprendiendo dicho método las siguientes etapas monitoreadas por instrucciones de software, en cada ejecución de un software:
seleccionar (P1) un conjunto (ARs) de registros de hardware disponibles (AR) enumerados en una lista predefinida que enumera, en la arquitectura del chip, los registros de hardware que permanecen sin usar o no son confidenciales para la implementación de la funcionalidad del programa cuando se cargan,
establecer (P2) una lista de registros (RL) que se pueden indexar de direcciones de los registros de hardware de datos confidenciales (KR) y de los registros de hardware en el conjunto (ARs) de registros de hardware disponibles, en un bucle, escribir (P3) cada registro de hardware en esta lista de registros (RL) con datos aleatorios, un número aleatorio de veces, en orden aleatorio, excepto la última escritura en cada uno de los registros de hardware de datos confidenciales (KR) donde se escribe una parte de los datos confidenciales (K).
2. Método según la reivindicación 1, que comprende una etapa de selección adicional de registros de claves de otro hardware criptográfico.
3. Método según la reivindicación 1, en el que la etapa (P3) de escritura comprende las siguientes etapas :
- asociar (T1) un número de tiempos de carga (FWC) a cada registro de hardware en la lista de registros (RL) que se pueden indexar ,
- establecer (T2) una secuencia de escritura de registro (RWS) que enumere la dirección de registro tantas veces como los tiempos de carga asociados (FWC),
- mezclar (T3) la secuencia de escritura de registro (RWS) para determinar un orden de procesamiento en una secuencia de escritura de registro mezclada (RWSs),
- identificar la última aparición de los registros de datos confidenciales (KR) en la secuencia de escritura de registro mezclada (RWSs),
- para todo el conjunto de direcciones en la secuencia de escritura de registros mezclados, escribir cada registro de hardware con datos aleatorios.
4. Un chip (CH) que implementa el método de una de las reivindicaciones 1 a 3.
5. Producto de programa informático (CP) que tiene instrucciones para hacer que el chip de la reivindicación 4 implemente el método de una de las reivindicaciones 1 a 3.
ES17729871T 2016-07-04 2017-06-14 Carga segura de datos secretos de registros de hardware no protegidos Active ES2843098T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP16305841.5A EP3267354A1 (en) 2016-07-04 2016-07-04 Secure loading of secret data to non-protected hardware registers
PCT/EP2017/064494 WO2018007113A1 (en) 2016-07-04 2017-06-14 Secure loading of secret data to non-protected hardware registers

Publications (1)

Publication Number Publication Date
ES2843098T3 true ES2843098T3 (es) 2021-07-15

Family

ID=56896484

Family Applications (1)

Application Number Title Priority Date Filing Date
ES17729871T Active ES2843098T3 (es) 2016-07-04 2017-06-14 Carga segura de datos secretos de registros de hardware no protegidos

Country Status (6)

Country Link
US (1) US11157658B2 (es)
EP (2) EP3267354A1 (es)
JP (1) JP6704071B2 (es)
KR (1) KR102219029B1 (es)
ES (1) ES2843098T3 (es)
WO (1) WO2018007113A1 (es)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112906015B (zh) * 2021-01-26 2023-11-28 浙江大学 一种基于硬件标签的内存敏感数据加密保护系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11191149A (ja) * 1997-12-26 1999-07-13 Oki Electric Ind Co Ltd Icカード用lsiおよびその使用方法
JP2000165375A (ja) * 1998-11-30 2000-06-16 Hitachi Ltd 情報処理装置、icカード
DE10213268A1 (de) * 2002-03-25 2003-10-23 Infineon Technologies Ag Vorrichtung und Verfahren zum sicheren Laden von Nutzdaten
US7949883B2 (en) * 2004-06-08 2011-05-24 Hrl Laboratories, Llc Cryptographic CPU architecture with random instruction masking to thwart differential power analysis
EP2180631A1 (en) * 2008-10-24 2010-04-28 Gemalto SA Cryptographic algorithm fault protections
GB2489405B (en) * 2011-03-22 2018-03-07 Advanced Risc Mach Ltd Encrypting and storing confidential data
US9201656B2 (en) * 2011-12-02 2015-12-01 Arm Limited Data processing apparatus and method for performing register renaming for certain data processing operations without additional registers

Also Published As

Publication number Publication date
EP3267354A1 (en) 2018-01-10
EP3479287A1 (en) 2019-05-08
WO2018007113A1 (en) 2018-01-11
JP2019519866A (ja) 2019-07-11
KR20190024985A (ko) 2019-03-08
US20190311154A1 (en) 2019-10-10
KR102219029B1 (ko) 2021-02-22
JP6704071B2 (ja) 2020-06-03
US11157658B2 (en) 2021-10-26
EP3479287B1 (en) 2020-11-25

Similar Documents

Publication Publication Date Title
Qiu et al. Voltjockey: Breaching trustzone by software-controlled voltage manipulation over multi-core frequencies
US9842212B2 (en) System and method for a renewable secure boot
Yitbarek et al. Cold boot attacks are still hot: Security analysis of memory scramblers in modern processors
US10491401B2 (en) Verification of code signature with flexible constraints
US8966264B2 (en) Signature generation apparatus, signature method, non-transitory computer readable medium storing signature generation program
CN104734845B (zh) 基于全加密算法伪操作的旁路攻击防护方法
EP3839788B1 (en) Bit-length parameterizable cipher
US9760737B2 (en) Techniques for integrated circuit data path confidentiality and extensions thereof
TWI570590B (zh) 與使用縮減回合編密的xts加密系統一起使用之動態加密金鑰
CN106687938A (zh) 跨电源周期维护安全处理环境
CN112149146A (zh) 确定性加密密钥轮换
US10536264B2 (en) Efficient cryptographically secure control flow integrity protection
US20160283405A1 (en) Cache-less split tracker architecture for replay protection trees
WO2016109558A1 (en) System and method for secure code entry point control
TWI631462B (zh) 確保機板上匯流排交易安全的計算系統和計算設備實現的方法以及非暫時性的電腦可讀取媒體
CN105678173A (zh) 基于硬件事务内存的vTPM安全保护方法
Mahmoud et al. Electrical-level attacks on CPUs, FPGAs, and GPUs: Survey and implications in the heterogeneous era
CN109643344A (zh) 用于共享安全性元数据存储器空间的方法和装置
ES2843098T3 (es) Carga segura de datos secretos de registros de hardware no protegidos
CN112149190A (zh) 用于非易失性存储器模块的热启动攻击缓解
US9483663B2 (en) Countermeasure method for protecting stored data
Hossain et al. Hexon: Protecting firmware using hardware-assisted execution-level obfuscation
US20220237304A1 (en) Data Processing Device and Method for Processing Secret Data
WO2019147288A1 (en) Data protection in a pre-operating system environment
ES2966195T3 (es) Dispositivo protegido frente a ataques de canal lateral