ES2435721T3 - Circuito criptográfico protegido contra los ataques de observación, en particular de orden elevado - Google Patents

Circuito criptográfico protegido contra los ataques de observación, en particular de orden elevado Download PDF

Info

Publication number
ES2435721T3
ES2435721T3 ES10701001T ES10701001T ES2435721T3 ES 2435721 T3 ES2435721 T3 ES 2435721T3 ES 10701001 T ES10701001 T ES 10701001T ES 10701001 T ES10701001 T ES 10701001T ES 2435721 T3 ES2435721 T3 ES 2435721T3
Authority
ES
Spain
Prior art keywords
mask
register
circuit according
variable
box
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
ES10701001T
Other languages
English (en)
Inventor
Jean-Luc Danger
Sylvain Guilley
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.)
Telecom ParisTech
Original Assignee
Telecom ParisTech
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 Telecom ParisTech filed Critical Telecom ParisTech
Application granted granted Critical
Publication of ES2435721T3 publication Critical patent/ES2435721T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Circuito criptográfico que comprende al menos un registro (R, 22) que suministra una variable x enmascarada (x Åm) por una variable de máscara (m), caracterizado porque dicha variable enmascarada se cifra mediante unaprimera caja de sustitución S(1) de forma cíclica, comprendiendo dicho circuito un registro de máscara (M, 23) queemite en cada ciclo una máscara transformada (mt) a su vez transformada por una función de modificación (41, 61)en la variable de máscara m, siendo dicha función de modificación una biyección o una función de descomposición,transformándose dicha variable enmascarada (x Å m) al final de un ciclo en una nueva máscara (S(x) Å m') de dichavariable (x), cifrada por la primera caja de sustitución S, mediante una nueva máscara (m'), calculándose dichanueva máscara (m') en función de dicha variable de máscara (m) y de dicha variable enmascarada (x Å m) pormedio de una segunda caja de sustitución S' (21).

Description

Circuito criptográfico protegido contra los ataques de observación, en particular de orden elevado
La presente invención se refiere a un circuito criptográfico protegido contra los ataques de observación. Esta se aplica en particular para la protección de circuitos criptográficos contra los ataques de observación de orden elevado 5 sobre implantaciones basadas en el enmascaramiento.
La criptografía tiene, en particular, como objetivos proteger:
-
o bien la confidencialidad de una información, por medio del cifrado y de la operación dual: el descifrado; -o bien solo la autenticidad de una información, mediante las operaciones de firma y de verificación, mediante las operaciones de firma y de verificación de las firmas.
10 La criptografía utiliza métodos matemáticos, los cuales se ha demostrado que conducen a sistemas seguros. Por ejemplo, un cifrado se considera seguro cuando se ha probado que no existen, en el estado actual de los conocimientos publicados, métodos de ataque significativamente más rápidos que el ataque exhaustivo, que corresponde a la prueba de todas las claves posibles.
En general, los métodos de cifrado implican unos cálculos complejos, necesarios para la seguridad de los sistemas.
15 Esta complejidad no plantea problemas particulares a los ordenadores, pero es un grave inconveniente en el caso de dispositivos que no tienen una gran potencia de cálculo, por lo general animados por microprocesadores de « 8 bits », de bajo coste. Las consecuencias pueden ser de varios tipos, como:
-
un obstáculo para un buen uso, un ejemplo típico sería una tarjeta bancaria que necesita varios minutos para firmar una factura; 20 -una denegación de servicio, un ejemplo típico sería un decodificador de televisión de pago que no puede seguir el flujo de información emitido.
Para resolver esta dificultad sin aumentar el precio de los sistemas, es habitual añadir un sistema de ayuda a la unidad central del dispositivo utilizado, en forma de un coprocesador dedicado a la criptografía.
Sin embargo, lo aplique la unidad central o un coprocesador especializado, el algoritmo criptográfico se aplica
25 mediante un dispositivo físico, en la actualidad de tipo electrónico. Estos dispositivos físicos presentan imperfecciones inevitables, ligadas a las propiedades inherentes a las leyes básicas de la electricidad.
Es por ello por lo que sistemas de criptografía seguros desde el punto de vista matemático pueden ser atacados aprovechando las imperfecciones inherentes de los sistemas físicos que aplican el algoritmo, así pues:
-
la duración de los cálculos puede depender de los valores de los datos, en particular en los sistemas
30 informáticos optimizados en velocidad, lo que ha dado lugar a los ataques de tipo « Timing Attack » que se describen en particular en el documento de P. Kocher y otros: Timing Attack on Implementation of Diffie-Hellman, RSA, DSS and other systems, en Proceedings of CRYPTO’96, volumen 1.109 de LNCS, páginas 104113, Springer-Verlag, 1996, permitiendo estos ataques en algunos casos encontrar todas las claves secretas a partir de simples mediciones de los tiempos de ejecución;
35 -el consumo instantáneo también puede depender de los datos, lo que ha dado lugar a una serie de ataques como:
-
el ataque SPA (Simple Power Analysis) que se describe en particular en el documento de Thomas S. Messerges y otros: Investigations of Power Analysis Attacks on Smartcards, en USENIX - Smartcard’99, páginas 151-162, mayo 10-11, 1999, Chicago USA, intentando este ataque distinguir las operaciones
40 ejecutadas por una unidad central a partir de una medición de su consumo eléctrico durante una operación criptográfica; -el ataque DPA (Differential Power Analysis) que se describe en particular en el documento de S. Guilley y otros: Differential Power Analysis Model and some Results, en Proceedings of WCC/CARDIS, páginas 127142, agosto de 2004, Toulouse, Francia, utilizando este ataque operaciones estadísticas sobre numerosas
45 mediciones de consumo eléctrico, realizadas durante operaciones criptográficas sobre mensajes aleatorios y con una clave constante, para validar o invalidar una hipótesis hecha sobre una parte limitada de la clave;
-
toda corriente eléctrica que circula por un conductor genera un campo electromagnético cuya medición puede dar lugar a ataques de tipo EMA (Electro Magnetic Attack) idénticos en su principio a los ataques que se basan en el consumo eléctrico;
50 -algunos ataques alteran de forma intencionada el funcionamiento de los sistemas con el fin de aprovechar los resultados erróneos para encontrar los secretos del sistema, se conoce a estos ataques bajo la denominación de ataques por inyección de errores.
Se llama canal oculto a cualquier imperfección de un dispositivo físico que aplica un algoritmo criptográfico y es susceptible de sufrir fugas de información vinculada a los secretos conservados en la memoria del dispositivo.
Se han propuesto algunas protecciones contra estos ataques en los canales ocultos, basadas en particular en:
-
el ocultamiento, donde se trata de que la fuga sea constante, en este caso independiente del secreto; -el enmascaramiento, donde se trata de que la fuga sea aleatoria, imprevisible y por lo tanto inservible.
Estas dos técnicas hacen que sean más difíciles los ataques que buscan encontrar información, pero siguen siendo no obstante vulnerables a los ataques que se beneficiarían de los fallos de implementación. Existen numerosos ejemplos de vulnerabilidades potenciales o demostradas, por ejemplo:
-
el ocultamiento basado en lógica diferencial (como WDDL) puede ser vulnerable a un ataque sobre las
diferencias de plazos combinatorios acumulativos entre una y otra de las fases de cálculo, fase de evaluación y
fase de precarga; -el enmascaramiento, que puede ser sensible a los ataques de orden elevado, denominados HO-DPA.
El documento WO 01/61916 A describe un método de contramedida con un enmascaramiento de los datos.
El documento XP 2 455 442: "Third order differential Analysis and split mask countermeasure for low Energy Embedded processor" describe una contramedida sobre los ataques de tercer orden por medio de varias máscaras intermedias generadas de forma iterativa.
Un objetivo de la invención es, en particular, permitir una protección eficaz contra los ataques de observación de orden elevado. Para ello, la invención tiene por objeto un circuito criptográfico que comprende al menos un registro que suministra una variable x enmascarada (x ⊕ m) por una variable de máscara (m), caracterizado porque dicha variable enmascarada se cifra mediante una primera caja de sustitución S de forma cíclica, comprendiendo dicho circuito un registro de máscara que emite en cada ciclo una máscara transformada (mt) a su vez transformada por una función de modificación (41, 61) en la variable de máscara m, siendo dicha función de modificación una biyección o una función de descomposición, transformándose dicha variable enmascarada (x ⊕ m) al final de un ciclo en una nueva máscara (S(x) ⊕ m’) de dicha variable (x), cifrada por la primera caja de sustitución S, mediante una nueva máscara (m’), calculándose dicha nueva máscara (m’) en función de dicha variable de máscara (m) y de dicha variable enmascarada (x ⊕ m) por medio de una segunda caja de sustitución S’.
La nueva máscara transformada m’t se introduce, por ejemplo, en el registro de máscara M tras haberse sometido a la modificación inversa en la salida de la segunda caja de sustitución S’.
En un primer modo posible de aplicación, la modificación puede ser una biyección B de tal modo que la máscara transformada mt se almacena en el registro M, valiendo B(mt) la máscara m aplicada a la caja de sustitución y siendo B-1(m’) el nuevo valor que hay que almacenar en el registro, siendo m’ la salida de la segunda caja de sustitución S’ (21).
La biyección B es, por ejemplo, tal que el peso de Hamming de la máscara m no siempre es idéntica al peso de Hamming de su imagen por la biyección B(m).
En un segundo modo posible de aplicación, la modificación de la máscara m se puede realizar mediante la descomposición en dos submáscaras m1 y m2 de tal modo que m = m1 8 m2 donde 8 es una ley de composición de grupo, almacenándose la primera submáscara m1 en un primer registro de máscara M1 y almacenándose la segunda submáscara m2 en un segundo registro de máscara M2, siendo m’1 = m’ 8-1 m’2 el nuevo valor que hay que almacenar en el registro M1 y siendo m’2 el nuevo valor que hay que almacenar, siendo m’ el valor de la máscara en la salida de la segunda caja de sustitución S’.
La ley de composición es, por ejemplo, la operación « o exclusiva » XOR, la operación de suma, la operación de multiplicación o incluso la operación de tipo s=a*b + (a+b)/2, siendo * la multiplicación y + la suma.
La ley de composición tiene, por ejemplo, una distancia de Hamming entre dos submáscaras consecutivas m2 de un ciclo a otro, lm2, no nula.
Al tener las submáscaras m1, m2 un número par de bits, la ley de composición de grupo (a) que permite obtener la máscara m a partir de las submáscaras m’1, m2 verifica, por ejemplo:
-
lm2 = 1 por grupos de 2 bits ;
-
m = m1 ⊕ m2 si m2 MSB = 1 o m = m1 si m2 MSB = 0
siendo respectivamente m2 MSB, m2 LSB los bits de alto peso y de bajo peso de la submáscara m2.
El circuito comprende, por ejemplo, un generador de valores aleatorios, emitiendo dicho generador el valor de la segunda submáscara m’2.
Esta submáscara m1 procedente del primer registro de máscara M1 se puede guardar en el segundo registro de máscara M2 al final de ciclo, recibiendo el primer registro M1, por su parte, la nueva máscara m’1 de tal modo que se reconstruye la nueva máscara completa m’ = m’1 8 m’2.
El algoritmo de cifrado es de tipo DES, estando el camino de los datos x, m dividido en dos partes, izquierda y derecha, dicho circuito comprende, por ejemplo, además del registro de máscara izquierda ML y del registro de máscara derecha MR, un tercer registro de máscara M, conteniendo el registro MR la submáscara derecha mr1 y conteniendo el registro ML la submáscara izquierda ml2’, conteniendo el registro M la submáscara mr2 igual a la submáscara ml1, siendo los valores efectivos de la máscara derecha mr y de la máscara izquierda ml tales que:
-
mr = mr1 8 mr2 -ml = ml1 8 ml2
La segunda caja de sustitución S’ comprende, por ejemplo, dos cajas idénticas a la primera caja de sustitución S y dos puertas XOR, estando las salidas de las dos cajas conectadas a una puerta XOR cuya salida emite la nueva máscara m’, entrando la variable enmascarada (x ⊕ m) en una caja y en la otra puerta XOR cuya otra entrada recibe la máscara m, entrando la salida de esta puerta entrado en la otra caja.
Una memoria ROM ejecuta, por ejemplo, la lógica de las puertas XOR y la sustitución de las cajas.
Se mostrarán otras características y ventajas de la invención mediante la descripción que sigue, hecha en referencia a los dibujos adjuntos, que representan:
-
las figuras 1a y 1b, una ilustración del principio de enmascaramiento de una caja de sustitución;
-
la figura 2, una ilustración del enmascaramiento al nivel de una caja de sustitución;
-
la figura 3, una presentación de un ejemplo de distribución de actividad en la salida de un registro para
diferentes valores de la distancia de Hamming entre dos palabras consecutivas de una variable x del registro;
-
la figura 4, una ilustración de un primer modo posible de modificación del camino de una máscara en un circuito
de acuerdo con la invención;
-
la figura 5, una presentación de la distribución de actividad correspondiente al modo anterior;
-
la figura 6, una ilustración de un segundo modo posible de realización del camino de una máscara en un
circuito de acuerdo con la invención;
-
la figura 7, una presentación de la distribución de actividad correspondiente al modo anterior;
-
la figura 8, un ejemplo de modificación con descomposición de las máscaras sin utilizar un generador aleatorio;
-
la figura 9, un ejemplo de realización de enmascaramiento de acuerdo con la invención utilizando un algoritmo
DES;
-
la figura 10, un ejemplo de realización de una ley de composición de grupo utilizada en un circuito de acuerdo
con la invención;
-
las figuras 11a, 11b y 11c, unos ejemplos de realización de una segunda caja de sustitución utilizada en un
circuito de acuerdo con la invención.
Las figuras 1a y 1b ilustran el principio del enmascaramiento de una caja de sustitución 1, llamada normalmente « Sbox », con una máscara constante m. Una S-box aplica a un mensaje una función no lineal que tiene en particular como objetivo volver al mensaje entrópico en la salida de la S-box.
En la figura 1a, un dato x se combina en la entrada de la S-box 1 con la clave criptográfica k. En este ejemplo el dato y la clave se combinan mediante una operación lógica « o exclusiva » también llamada xor y que se designará de aquí en adelante ⊕. En el caso de la figura 1a, el mensaje x ⊕ k codificado en n bits por ejemplo, se presenta por lo tanto en la entrada de la S-box. El mensaje de salida correspondiente es S(x ⊕ k).
La figura 1b muestra el enmascaramiento de la S-box con una máscara constante m. La técnica del enmascaramiento se basa en el cifrado de las variables internas sensibles que dependen de un secreto mediante una máscara m. En el ejemplo de las figuras 1a y 1b, x es dicha variable. Dado que m es imprevisible para un atacante, las fugas no se pueden utilizar en el marco de un ataque directo sobre x. La variable x ya no existe como tal pero se puede reconstruir mediante el par de señales (m, xm) donde xm = x θ m es la variable que hay que enmascarar y θ es un operador de grupo que puede ser en particular lógico o aritmético. En el ejemplo de la figura 1b, el enmascaramiento utiliza la función xor, esto es xm = x ⊕ m.
Este tipo de enmascaramiento está especialmente adaptado para la protección de los algoritmos DES (Data Encryption Standard) y AES (Advanced Encryption Standard), en el que las operaciones lineales se realizan en un cuerpo binario. La máscara se puede aplicar a las variables internas que son, por lo general, vectores de bits, palabras, funciones criptográficas. El enmascaramiento al nivel de una palabra lo hace aplicable tanto a las implementaciones en programas informáticos como a las materiales. La realización del enmascaramiento es simple cuando la función f en la que se aplica la variable enmascarada es lineal en función de la ley de grupo, esto es f(x θ m) = f(x) θ f(m).
El valor de f(x) se puede reconstruir a partir de f(x 8 m) y m. De este modo f (x) se extrae justo al final del algoritmo de tal modo que se evita una fuga de información procedente de la variable x. Al no estar correlacionados los cálculos sobre x θ m con x, no hay fugas directas de secreto.
Si la función f es no lineal, el mecanismo de enmascaramiento se vuelve más complejo ya que f(x) no se puede
recrear matemáticamente a partir de f(x 8 m) y f (m). En los algoritmos de cifrado simétrico, la parte no lineal corresponde a las cajas de sustitución o S-box, así por ejemplo la S-box 1 de las figuras 1a y 1b. Una técnica actual en programas informáticos utiliza una memoria ROM que genera la función no lineal de la S-box, designándose esta función Sm, tal que:
Sm(x m) = S(x) m
siendo S la función de la S-box antes del enmascaramiento.
En consecuencia, el tamaño de la memoria pasa de 2n para S a 22n para Sm, siendo n el número de bits de la máscara. Las figuras 1a y 1b ilustran este cambio.
Esta realización no está protegida con una implantación material en la que se realiza una iteración del algoritmo de cifrado en un ciclo de reloj. En este caso, las transferencias al nivel de un registro descubren de forma automática los datos. En efecto, considerando a título de ejemplo el operador ⊕, una transferencia se puede describir por la siguiente relación:
x m S(x) m = x S(x)
El término x ⊕ m de esta relación es el valor inicial en la entrada de la S-box Sm, y el término S(x) ⊕ m es el valor final en la salida de la S-box, indicando el operador ⊕ entre estos dos términos la transición. La relación anterior muestra que el resultado de la transición x ⊕ S(x) es independiente de la máscara m.
La eficacia que ofrece el enmascaramiento se puede probar contra los ataques de primer orden que únicamente consideran la variable interna x, como se demuestra en particular en el documento de J. Blomer y otros: Provably Secure Masking of AES, en LNCS, editor, Proceedings of SAC’04, volumen 3.357, páginas 69-83, Springer, agosto de 2004, Waterloo, Canadá. Las fugas de información que proceden del circuito de enmascaramiento pueden sin embargo verse sometidas a un ataque de segundo orden, e incluso de un orden superior mucho más elevado.
Un ataque de segundo orden considera dos variables x1 y x2. Por ejemplo, si x1 y x2 están enmascaradas por la misma máscara, el ataque de segundo orden se beneficia del hecho de que x1 ⊕ x2 = x1 ⊕ m ⊕ x2 ⊕ m.
Se han estudiado algunas implementaciones para superar los ataques de orden elevado, como se demuestra en particular en el documento de M. Akkar y otros: A generic protection against High-oder differential Power Analysis, en LNCS, editor, Proceedings of FSE’03, volumen 2.887 de LNCS, Springer, 2003, Berlín, utilizando este documento unas máscaras constantes. Sin embargo, para obtener una gran eficacia es necesario un fuerte incremento de la complejidad. A título de ejemplo, se ha demostrado que el algoritmo DES precia al menos tres máscaras diferentes y seis S-box adicionales para cada S-box con el fin de poder resistir los ataques de orden elevado mediante este método, como se demuestra en el documento de J. Lv. y otros, Enhanced DES implementation secure against differential power analysis in smart-cards, en Information Security and Privacy, 10th Australasian Conference, volumen 3.574 de LNCS, páginas 195-206, Brisbane, julio de 2005, Springer Verlag.
En otro método conocido, se calcula una nueva máscara m en cada iteración. Este método se describe en particular en el documento de F-X. Standaert y otros, FPGA Implementations of the DES and Triple-DES Masked Against Power Analysis Attack, en Proceedings of FPL 2006, agosto de 2006, Madrid. La variable enmascarada x ⊕ m de un registro R se asocia cada vez a una nueva máscara m procedente de un registro M. De este modo al final de un ciclo, la variable x ⊕ m se transforma en S(x) ⊕ m’ en la que la nueva máscara m’ se calcula en función de m y de x ⊕ m por medio de una nueva S-box de función S’. Este método ofrece un buen compromiso de complejidad ya que solo asocia una nueva S-box S’ a cada S-box S existente.
Sin embargo, esta implementación sigue estando sujeta a los ataques de segundo orden como se demuestra en particular en el documento de E. Peeters y otros, Improved Higher-Order Side-Channel Attacks with FPGA Experiments, en CHES, volumen 3.659 de LNCS, páginas 309-323, Springer-Verlag, 2005.
La figura 2 ilustra la implementación de las S-box S y S’. Un registro 22, designado R, suministra la variable enmascarada x ⊕ m con la que se combina la clave k, por ejemplo mediante una puerta XOR 24, en la entrada de la S-box 1, de función S , la cual emite en la salida la variable S(x ⊕ k) ⊕ m’ que se vuelve a introducir en la entrada del registro 22, R. En paralelo, un registro 23, designado M, suministra la máscara m que entra en la S-box 21, de función S’, siendo la otra entrada de esta última común a la entrada de la S-box 1. La salida de la S-box 21, S’, emite una nueva máscara m’ y se vuelve a introducir en la entrada del registro M. Esta nueva máscara se utiliza para enmascarar la variable x que emite el registro R. De aquí en adelante en la descripción, las máscaras producidas por el bucle de máscara 20 que comprende el registro de máscara 23 y la S-box 21, S’ se utilizarán para enmascarar la variable x.
Las reintroducciones en los registros R y M se hacen cada uno en un ciclo de reloj. En aras de la simplicidad, la representación de la figura 2 hace abstracción de las funciones de expansión y de permutación propias del algoritmo DES.
El ataque HO-DPA que describe Peeters y otros trata sobre las variables x ⊕ m y m que proceden de los registros. El principio consiste en estudiar las distribuciones de la actividad en la salida de los registros para diferentes valores de la variable x. En lógica CMOS, un modelo de actividad designado A puede ser la distancia de Hamming designada DH entre dos palabras consecutivas. En particular:
esto es,
PH corresponde al peso de Hamming y lx a la distancia de Hamming entre dos palabras consecutivas xi, xi-1 de la variable x.
Si x y m tienen un único bit, la actividad corresponde a 2. PH(fm) si lx = 0.
Si lx = 1, la actividad corresponde a PH(lm) + PH(lm) y vale de forma constante 1. Así pues, el conocimiento de las distribuciones de consumo para cada lx permite construir el ataque HO-DPA al observar las distribuciones de consumo y al compararlas con la actividad prevista para una hipótesis de clave k incluida en la variable x.
Si x y m se codifican en 4 bits, el peso de Hamming PH puede tomar cinco valores: 0, 1, 2, 3, 4. Por lo tanto, la actividad A(x ⊕ m, m) = PH (lx ⊕ lm) + PH (fm) puede tomar nueve valores: 0, 1, 2, 3, 4, 5, 6, 7, 8.
La figura 3 ilustra las distribuciones de la actividad A para una máscara de 4 bits para los diferentes valores posibles de lx, tomando lx en este caso los 24 valores 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15. La figura 3 presenta, por lo tanto, cinco distribuciones diferentes 31, 32, 33, 34, 35 para el conjunto de los valores de lx. En cada distribución 31, el valor de lx se distribuye, o reparte, en función de la actividad la cual puede tomar los nueve valores 0, 1, 2, 3, 4, 5, 6, 7 y 8. Aparecen claras diferencias entre estas distribuciones, por lo que estas diferencias las puede utilizar un ataque HO-DPA.
Para comparar la eficacia de las diferentes soluciones de enmascaramiento, se puede utilizar una dimensión métrica de comparación de las distribuciones 31, 32, 33, 34, 35 inspirada en una prueba conocida, la prueba de χ2, definida por la siguiente relación:
en la que :
-
C representa el número de clases de la distribución, por ejemplo C = 9 para las distribuciones de actividad con
una máscara codificada en 4 bits, representando C - 1 el grado de libertad de la prueba de χ2;
-
N es el número total de muestras;
-Pi es la probabilidad observada de tener un elemento en la clase i, Pi también es igual a , siendo Ni el número de elementos observados en la clase i ;
-
Piref es la probabilidad de referencia de tener un elemento en la clase i, siendo Piref también igual a
siendo Ni ref el número de elementos esperados en la clase i.
Se considera la distribución de referencia como la media de las 16 distribuciones que se obtienen para todos los valores de lx cuando la máscara se codifica en 4 bits. El valor de χ2 en este caso permite juzgar la homogeneidad de todas las distribuciones. A título de referencia, χ2 vale 21,89 para la distribución con una máscara de 4 bits. Es preciso que este valor sea lo más bajo posible para evitar discriminaciones entre las distribuciones 31, 32, 33, 34, 35 que pueden ser utilizadas por ataques HO-DPA. En otras palabras, es preciso que este valor de χ2 sea lo más pequeño posible para protegerse de los ataques HO-DPA.
La invención permite protegerse frente a dichos ataques de observación, incluidos de orden elevado, al reducir las discriminaciones, o las diferencias, entre las diferentes distribuciones de actividad para una misma máscara. Se considerará, de aquí en adelante, a título de ejemplo, una máscara codificada en 4 bits.
En particular, haciendo referencia por ejemplo a la figura 2, la invención hace que la actividad del registro M que contiene la máscara m sea independiente de la actividad del registro R que contiene la variable enmascarada x ⊕ m.
Si la variable x no influye en las distribuciones de consumo propias de estos dos registros 22, 23, ya no es posible llevar a cabo con éxito un ataque HO-DPA como se describe en el documento de Peeters y otros. El equilibrio se puede conseguir modificando la estructura del camino de la máscara sin tocar el camino de la variable enmascarada. Las modificaciones propuestas se pueden hacer o bien en el espacio, transformando la máscara, o bien en el tiempo, cambiando la evolución de la máscara. De manera ventajosa, la invención se refiere a la transformación de la máscara. De acuerdo con la invención, se pueden hacer varias modificaciones de máscara.
La figura 4 ilustra una primera modificación posible de la máscara, una modificación mediante biyección. En este caso, una transformación biyectiva 41, designada B, se intercala entre el registro de máscara 23, registro M, y la Sbox 21, de función S’. La transformación bijectiva inversa 42, designada B-1, se aplica en la salida de la S-box. De este modo, la máscara m’ que emite la S-box S’ experimenta la transformación bijectiva B-1antes de almacenarse en el registro M. La biyección es tal que la distancia de Hamming entre m y su imagen B(m) no sea siempre nula de tal modo que se modifique la correlación de la actividad entre la variable x ⊕ m y B(m). La implementación de la biyección B se puede hacer mediante una tabla predefinida.
La máscara m’ en la salida de S-box S’ es la que utiliza realmente la variable enmascarada. La figura 4 ilustra el camino de la máscara.
La figura 5 muestra las 16 distribuciones 51 que se obtienen tras la transformación de la máscara mediante una biyección tal y como se ilustra en la figura 4, para los 16 valores de lx para una máscara codificada en 4 bits como en el caso de la figura 3, por lo tanto con los mismos valores de actividad que pueden ir de 0 a 8. Estas distribuciones 51 presentan ligeras diferencias entre sí, al contrario que las distribuciones de la figura 3. Las distribuciones de la actividad son mucho más homogéneas, lo que se confirma mediante la prueba de χ2 que da un valor medio de 1,85 con esta transformación bijectiva, en comparación con valor de 21,89 que corresponde a la distribución de la figura 3.
La figura 6 ilustra otra modificación posible de acuerdo con la invención. Se trata de una modificación de la máscara mediante descomposición. En este caso, la máscara m se descompone en dos submáscaras m1 y m2 tales que:
realizando θ una ley de composición interna de grupo, como el operador θ mencionado con anterioridad. Al ser θ un operador de grupo, admite un operador inverso θ-1.
El registro M de las figuras anteriores se sustituye, por lo tanto, por dos registros 231, 232. Un registro M1 contiene el valor m1 y un registro M2 contiene el valor m2. La salida de estos registros está unida a un circuito 61 que ejecuta la ley de composición θ. En la salida de este operador 61, la máscara m se recompone mediante la operación m = m1 θ m2 antes de transformarse en una nueva máscara m’ mediante la S-box S’, 21 como en los caminos anteriores que se ilustran en particular en las figuras 2 y 4.
La operación inversa θ-1 la lleva a cabo un operador 62 situado en la salida de la S-box S’ 21. Este operador permite separar la máscara m’ en m’1 y m’2 de tal modo que m’1 = m’ θ-1 m’2. La máscara m’ se puede generar mediante un generador aleatorio RNG como se ilustra en la figura 6. En cada iteración del algoritmo de cifrado el registro M2 que contiene m2 toma un nuevo valor m’2 que proviene del generador aleatorio 71. El registro M1 que contiene m1 toma un nuevo valor m’1 = m’ θ -1 m’2, este valor lo emite el operador 62 que realiza la operación de grupo θ-1 a partir del dato de entrada m’ suministrado por la S-box 21 y el dato de entrada m’2 suministrado por el generador aleatorio 71.
La actividad A en el registro R que contiene la variable enmascarada x ⊕ m y de los dos registros M1 y M2 se convierte, por lo tanto, en:
Si se considera este modelo de actividad, la prueba de χ2 se aplica para diferentes leyes θ y los resultados se ilustran, a título de ejemplo, en la siguiente tabla:
θ
Sin modificaciones B(a) A XOR b a+b a*b a*b + (a+b)/2 aab
χ2
21,89 1,85 16,69 0,31 0,36 0,18 0
Esta tabla muestra que se pueden utilizar los operadores simples, como la suma + y la multiplicación *, para obtener unas distribuciones equilibradas, siendo los resultados obtenidos respectivamente 0,31 y 0,36, lo que rechaza el ataque en un número extremadamente alto de huellas de consumo que hay que adquirir para discriminar las distribuciones entre sí. La transformación mediante biyección B permite obtener un resultado de 1,85.
De manera ventajosa, la ley a, que se describe a continuación, permite tener un χ2 nulo, es decir unas distribuciones perfectamente idénticas en el sentido del modelo de actividad considerado y, por lo tanto, resistente a los ataques de orden elevado.
La figura 7 ilustra las 16 distribuciones posibles 70 con 4 bits por variable y, teniendo en cuenta la ley a, las distribuciones que se obtienen con el operador lógico XOR no permiten reducir de manera suficiente el valor de χ2 ya que estas hacen que aparezcan dos grandes clases de distribución en función de la paridad del peso de Hamming de lx, PH (lx ⊕ m). Si lx es par, la actividad tiene siempre unos valores pares mientras que si lx es impar la actividad tiene siempre unos valores pares.
La figura 8 ilustra un ejemplo de aplicación que da un resultado similar a la solución anterior, pero sin utilizar un generador aleatorio, excepto para iniciar el cálculo. Para evitar el sobrecoste ligado a la utilización de un generador aleatorio en cada ciclo, una de las dos submáscaras puede sustituir la variable aleatoria generada en el ejemplo anterior. Se puede utilizar, por ejemplo, la submáscara procedente del registro M1, 231. Esta submáscara procedente del registro M1 se guarda en el registro M2, 232, al final del ciclo, recibiendo por su parte el registro M1 la nueva máscara m’1 de tal modo que se reconstruye la máscara completa. De este modo, la nueva máscara que se genera en cada ciclo es m’ = m’1 θ m1, en el ciclo siguiente la nueva máscara generada es m" = m"1 θ m’1y así sucesivamente.
La figura 9 ilustra un ejemplo de enmascaramiento para el algoritmo DES. En esta figura las funciones de expansión y de permutación se han ignorado en aras de la claridad.
En lo que se refiere al algoritmo DES, el camino de los datos se divide en dos partes, izquierda y derecha, como en cualquier esquema de Feistel. En particular, el registro de variables enmascaradas 22 de los ejemplos anteriores está dividido en dos registros, un registro izquierdo 221 y un registro derecho 222. En lo que se refiere a la parte de enmascaramiento, además de los dos registros de máscara 91, 92, un registro derecho MR y un registro izquierdo ML, se añade un tercer registro 93, designado M, de tal modo que se descomponen las dos máscaras izquierda y derecha. La implementación del algoritmo DES saca provecho de la solución expuesta con anterioridad, en relación a las figuras 7 y 8, sin utilizar un generador aleatorio en cada ciclo, sino utilizando tres registros encadenados. El registro MR contiene la submáscara mr1 y el registro ML contiene la submáscara ml2. El registro M contiene la submáscara mr2 igual a la submáscara ml1. Los valores efectivos de las máscaras derecha mr e izquierda ml respectivamente contenidos en los registros MR y ML vienen dados por las siguientes relaciones:
-
mr = mr1 θ mr2 -ml = ml1 1θ ml2
Los operadores 611, 612 que realizan la relación de grupo θ están situados en la salida de los registros MR, M, ML para realizar las dos operaciones anteriores. La máscara derecha mr se transforma mediante la S-box S’, 21 en una nueva máscara derecha m’ r, siendo la otra entrada de la S-box 21 la variable enmascarada xr ⊕ mr y a continuación cifrada que viene del registro R derecho 222. La nueva máscara derecha m’r se combina con la máscara ml para dar m’ r ⊕ ml en la entrada del operador 62 que realiza la operación θ-1. Este último combina m’r ⊕ ml con m’ r2. De forma similar al ejemplo de la figura 8, la submáscara m’ r2 en la entrada del operador 62 no la suministra un generador aleatorio, sino que es igual a la submáscara mr1 emitida por el registro MR. Cada registro 221, 222, 91, 92, 93 recibe un valor inicial 94, 95, 96, 97. La siguiente tabla presenta las máscaras utilizadas tanto en los registros de máscaras 91, 92, 93, en las tres últimas columnas, como en los registros de variables enmascaradas 221, 222, en las dos columnas anteriores, para tres ciclos consecutivos:
Ciclo
Máscara derecha Máscara izquierda MR M ML
0
ML0 MR0 M0 MR0 θ -1 M0 ML0 θ-1 M0
1
MR0 m’r MR0 θ -1 M0 m’r1 M0
2
m’r m’’r m’r1 m’’r1 MR0 θ -1 M0
Esta tabla muestra que las máscaras utilizadas en los registros de máscaras así como las utilizadas en los registros de variables enmascaradas son diferentes y permiten, en consecuencia, evitar en particular un ataque de tipo HO-DPA.
Una implementación de la función a permite tener unas distribuciones equilibradas, por lo tanto χ2 nulo, como se ilustra en la figura 10.
Esta ley se basa en el hecho de que lm2 nunca es nulo. En efecto, si la variación de m, lm = lm2= 0, la ley de grupo θ hace que lm1 también es igual a 0. En este caso, la actividad que viene dada por la anterior ecuación (4) solo puede ser nula si lx es nulo. Como no existen otros valores de lx para obtener una actividad nula, esto
muestra que la actividad no estará nunca perfectamente equilibrada para todos los lx. Por el contrario, si el valor de lm2 es no nulo, pueden existir leyes que permitan verificar el equilibrio perfecto de las distribuciones de actividad y de este modo obtener χ2 = 0. Con respecto a la prueba de imposibilidad de enmascaramiento, tal y como se considera en particular en el documento de G. Piret y otros: Security Analysis of Higher-Order Boolean Masking Schemes for Block Ciphers, IET Information Security, 2(1): 1-11, 2008, la invención prevé una relación de enlace entre las dos máscaras m1 y m2, lo que no se tiene en cuenta en el documento de G. Piret y otros.
Si se consideran a título de ejemplo las submáscaras por paquetes sucesivos de 2 bits, teniendo entonces la máscara un número par de bits, lo que es a menudo el caso, la ley siguiente denominada a permite obtener una distribución equilibrada sea cuales sean los lx. El grupo de 2 bits formado por el bit de alto peso de la submáscara m2, designado m2MSB, y del bit de bajo peso, designado m2LSB, condiciona de la siguiente forma la generación de la máscara mediante la ley a:
-fm2 = 1 por grupos de 2 bits; -m = m1 ⊕ m2 si m2 MSB = 1 o m = m1 si m2 MSB = 0
Esta ley a es involutiva y la aplica el operador 61 en la entrada de la S-box 21.
Por otra parte, la figura 10 presenta un ejemplo posible de implementación 100 del operador 62, situado en la salida de la S-box 21, que aplica la función m’1 = m’ a-1 m’2 para un grupo de 2 bits de máscara.
El circuito 100 utiliza un generador aleatorio 101 para producir la submáscara m2. La variable aleatoria emitida por este generador 101 selecciona, en un codificador 102 que recibe en la entrada m’2 MSB y m’2 LSB, bien un aumento
o bien una disminución en el registro M2 que se codifica en Gray (o código binario reflejado) de tal modo que se garantiza la condición lm’2 = 1. Partiendo de la máscara m’ producida por la S-box 21, el operador 62 emite una submáscara m’1 cuyo bit de alto peso m’1 MSB es igual a m’MSB ⊕ m’2 MSB, siendo m’MSB el bit de alto peso de m’ y m’2 MSB que toma el valor 0 o 1 según la variable aleatoria generada en la entrada del codificador 102. El bit de bajo peso m’1 LSB es igual a m’MSB o a m’LSB ⊕ m’2 LSB si el valor de m’2 MSB es respectivamente igual a 0 o a 1.
Las figuras 11a, 11b y 11c presentan unas mejoras posibles para realizar la caja de sustitución S’, 21 que realiza la nueva máscara m’. La caja S’ se puede realizar con una mezcla de puertas XOR y de memorias ROM, de acuerdo con varios niveles de robustez y de complejidad.
La figura 11a presenta una primera solución que utiliza dos cajas S, 1 y dos puertas XOR 110, 111 para reconstruir la información no enmascarada x y la nueva máscara m’. De este modo, por la primera puerta 111, se obtiene x = m ⊕ x ⊕ m y la segunda puerta 112 emite la nueva máscara m’ en la salida de la caja S’ con m’ = S(x ⊕ m) ⊕ S(x).
Una segunda solución, que se ilustra en la figura 11b utiliza una memoria ROM 113 para realizar la lógica de las puertas XOR y la sustitución de las cajas S del montaje de la figura 11a. La memoria recibe entonces dos palabras, m y x ⊕ m.
La figura 11c presenta una tercera solución que se puede aplicar para una descomposición espacial sin registro aleatorio 71. Esta solución utiliza una memoria ROM 114 que recibe tres palabras x ⊕ m, m1 y m2. Esta memoria integra la lógica y la función 115 llevadas a cabo por la memoria 113 de la solución de la figura 11b y la ley de grupo θ para la reconstrucción de la máscara m en la entrada de la función 115 así como, por ejemplo, la ley inversa de grupo θ-1 en la salida de esta función 115.

Claims (16)

  1. REIVINDICACIONES
    1.
    Circuito criptográfico que comprende al menos un registro (R, 22) que suministra una variable x enmascarada (x ⊕ m) por una variable de máscara (m), caracterizado porque dicha variable enmascarada se cifra mediante una primera caja de sustitución S(1) de forma cíclica, comprendiendo dicho circuito un registro de máscara (M, 23) que emite en cada ciclo una máscara transformada (mt) a su vez transformada por una función de modificación (41, 61) en la variable de máscara m, siendo dicha función de modificación una biyección o una función de descomposición, transformándose dicha variable enmascarada (x ⊕ m) al final de un ciclo en una nueva máscara (S(x) ⊕ m’) de dicha variable (x), cifrada por la primera caja de sustitución S, mediante una nueva máscara (m’), calculándose dicha nueva máscara (m’) en función de dicha variable de máscara (m) y de dicha variable enmascarada (x ⊕ m) por medio de una segunda caja de sustitución S’ (21).
  2. 2.
    Circuito de acuerdo con la reivindicación 1, caracterizado porque la nueva máscara transformada m’ se introduce en el registro de máscara M tras haberse sometido a la función inversa de modificación (42, 62) de dicha función de modificación (41, 61) en la salida de la segunda caja de sustitución S’ (21).
  3. 3.
    Circuito de acuerdo con una cualquiera de las reivindicaciones anteriores, caracterizado porque la función de modificación es una biyección (41) B tal que la máscara transformada mt se almacena en el registro M, valiendo B(mt) la máscara m aplicada a la caja de sustitución y siendo B-1(m ’) el nuevo valor que hay que almacenar en el registro, siendo m’ la salida de la segunda caja de sustitución S’ (21).
  4. 4.
    Circuito de acuerdo con una cualquiera de las reivindicaciones anteriores, caracterizado porque la biyección B es tal que el peso de Hamming de la máscara m no siempre es idéntico al peso de Hamming de su imagen por la biyección B(m).
  5. 5.
    Circuito de acuerdo con una cualquiera de las reivindicaciones 1 a 2, caracterizado porque la modificación de la máscara m se realiza mediante la descomposición en dos submáscaras m1 y m2 de tal modo que m = m1 θ m2 ,en la que θ es una ley de composición de grupo, almacenándose la primera submáscara m1 en un primer registro de máscara M1 (231) y almacenándose la segunda submáscara m2 en un segundo registro de máscara M2 (232), siendo m’1= m’θ-1 m’2 el nuevo valor que hay que almacenar en el registro M1 y siendo m’2 el nuevo valor que hay almacenar, siendo m’ el valor de la máscara en la salida de la segunda caja de sustitución S’ (21).
  6. 6.
    Circuito de acuerdo con una cualquiera de las reivindicaciones 1 a 2 y 5, caracterizado porque la ley de composición es la operación « o exclusiva » XOR.
  7. 7.
    Circuito de acuerdo con una cualquiera de las reivindicaciones 1, 2 y 5, caracterizado porque la ley de composición es la operación de suma.
  8. 8.
    Circuito de acuerdo con una cualquiera de las reivindicaciones 1, 2 y 5, caracterizado porque la ley de composición es la operación de multiplicación.
  9. 9.
    Circuito de acuerdo con una cualquiera de las reivindicaciones 1, 2 y 5, caracterizado porque la ley de composición es la operación de tipo s = a*b + (a+b)/2 , siendo * la multiplicación y + la suma.
  10. 10.
    Circuito de acuerdo con una cualquiera de las reivindicaciones 1, 2 y 5, caracterizado porque la ley de composición tiene una distancia de Hamming entre dos submáscaras consecutivas m2 de un ciclo al otro, lm2, no nula.
  11. 11.
    Circuito de acuerdo con la reivindicación 10, caracterizado porque al tener las submáscaras m1, m2 un número par de bits, la ley de composición de grupo (a) que permite obtener la máscara m a partir de las submáscaras m1, m2 verifica:
    -
    lm2 = 1 por grupos de 2 bits ;
    -
    m = m1 ⊕ m2 si m2 MSB = 1 o m = m1 si m2 MSB = 0
    siendo respectivamente m2 MSB, m2 LSB los bits de alto peso y de bajo peso de la submáscara m2.
  12. 12.
    Circuito de acuerdo con una cualquiera de las reivindicaciones anteriores salvo 3 y 4, caracterizado porque comprende un generador de valores aleatorios (71), emitiendo dicho generador el valor de la segunda submáscara m’2.
  13. 13.
    Circuito de acuerdo con una cualquiera de las reivindicaciones anteriores salvo 3 y 4, caracterizado porque esta submáscara m1 procedente del primer registro de máscara M1 se guarda en el segundo registro de máscara M2 al final del ciclo, recibiendo por su parte el primer registro M1 la nueva máscara m’1 de tal modo que reconstruya la nueva máscara completa m’= m’1 8 m’2.
  14. 14.
    Circuito de acuerdo con una cualquiera de las reivindicaciones anteriores salvo 3 y 4, caracterizado porque el algoritmo de cifrado es de tipo DES, estando el camino de los datos x, m dividido en dos partes, izquierda (91, 221) y
    derecha (92, 222), dicho circuito comprende además del registro de máscara izquierda ML (91) y del registro de máscara derecha MR (92) un tercer registro de máscara M (93), conteniendo el registro MR la submáscara derecha mr1 y conteniendo el registro ML la submáscara izquierda ml2, conteniendo el registro M la submáscara mr2 igual a la submáscara ml1, siendo los valores efectivos de la máscara derecha mr y de la máscara izquierda ml tales que:
    5 -mr = mr1 8 mr2 -ml = ml1 8 ml2
  15. 15. Circuito de acuerdo con una cualquiera de las reivindicaciones anteriores, caracterizado porque la segunda caja de sustitución S’ (21) comprende dos cajas idénticas a la primera caja de sustitución S (1) y dos puertas XOR (111, 112), estando las salidas de las dos cajas (1) conectadas a una puerta XOR (112) cuya salida emite la nueva
    10 máscara m’, entrando la variable enmascarada (x ⊕ m) en una caja (1) y en la otra puerta XOR (111) cuya otra entrada recibe la máscara m, entrando la salida de esta puerta (111) en la otra caja (1)
  16. 16. Circuito de acuerdo con la reivindicación 15, caracterizado porque una memoria ROM (113) realiza la lógica de las puertas XOR (111, 112) y la sustitución de las cajas (1).
ES10701001T 2009-01-20 2010-01-18 Circuito criptográfico protegido contra los ataques de observación, en particular de orden elevado Active ES2435721T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0950341 2009-01-20
FR0950341A FR2941342B1 (fr) 2009-01-20 2009-01-20 Circuit de cryptographie protege contre les attaques en observation, notamment d'ordre eleve.
PCT/EP2010/050546 WO2010084106A1 (fr) 2009-01-20 2010-01-18 Circuit de cryptographie protege contre les attaques en observation, notamment d'ordre eleve

Publications (1)

Publication Number Publication Date
ES2435721T3 true ES2435721T3 (es) 2013-12-23

Family

ID=41119870

Family Applications (1)

Application Number Title Priority Date Filing Date
ES10701001T Active ES2435721T3 (es) 2009-01-20 2010-01-18 Circuito criptográfico protegido contra los ataques de observación, en particular de orden elevado

Country Status (10)

Country Link
US (1) US8615079B2 (es)
EP (1) EP2380306B1 (es)
JP (1) JP5776113B2 (es)
KR (1) KR101680918B1 (es)
CN (1) CN102405615B (es)
CA (1) CA2749961C (es)
ES (1) ES2435721T3 (es)
FR (1) FR2941342B1 (es)
SG (1) SG173111A1 (es)
WO (1) WO2010084106A1 (es)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2941343B1 (fr) * 2009-01-20 2011-04-08 Groupe Des Ecoles De Telecommunications Get Ecole Nat Superieure Des Telecommunications Enst Circuit de cryptographie, protege notamment contre les attaques par observation de fuites d'information par leur chiffrement.
FR2967322B1 (fr) * 2010-11-08 2012-12-28 Morpho Protection contre les ecoutes passives
DE102012209404A1 (de) * 2012-06-04 2013-12-05 Robert Bosch Gmbh Vorrichtung zur Ausführung eines kryptographischen Verfahrens und Betriebsverfahren hierfür
US10142099B2 (en) 2013-01-11 2018-11-27 Qualcomm Incorporated Method and apparatus for a computable, large, variable and secure substitution box
US9736181B2 (en) * 2013-07-26 2017-08-15 Intel Corporation Hardening data transmissions against power side channel analysis
CN103901342B (zh) * 2014-03-18 2017-09-29 北京时代民芯科技有限公司 一种基于掩码文件的fpga精确故障注入***
TWI712915B (zh) 2014-06-12 2020-12-11 美商密碼研究公司 執行一密碼編譯操作之方法,以及電腦可讀非暫時性儲存媒體
KR102446866B1 (ko) 2014-08-28 2022-09-23 삼성전자주식회사 부채널 공격을 방지하는 암복호화기 및 이의 구동 방법 그리고 이를 포함하는 제어 장치
US9531384B1 (en) * 2014-12-01 2016-12-27 University Of South Florida Adiabatic dynamic differential logic for differential power analysis resistant secure integrated circuits
FR3040514B1 (fr) 2015-09-02 2017-09-15 Stmicroelectronics Rousset Protection dpa d'un algorithme de rijndael
FR3040513B1 (fr) * 2015-09-02 2018-11-16 Stmicroelectronics (Rousset) Sas Protection d'un algorithme de rijndael
FR3040515B1 (fr) 2015-09-02 2018-07-27 St Microelectronics Rousset Verification de la resistance d'un circuit electronique a des attaques par canaux caches
CN105376058B (zh) * 2015-10-08 2018-08-10 深圳先进技术研究院 一种基于rsa算法的硬件的安全性评估方法及装置
CN105721150B (zh) * 2016-01-26 2018-11-20 广东技术师范学院 一种多变量二次方程的掩码加密方法
CN105743644B (zh) * 2016-01-26 2019-02-05 广东技术师范学院 一种多变量二次方程的掩码加密装置
EP3475825B1 (en) * 2016-06-23 2023-01-25 Cryptography Research, Inc. Cryptographic operations employing non-linear share encoding for protecting from external monitoring attacks
CN107547194A (zh) 2016-06-28 2018-01-05 埃沙尔公司 免受侧信道分析的保护方法和设备
EP3264311B1 (en) 2016-06-28 2021-01-13 Eshard A protection method and device against a side-channel analysis
EP3264668B1 (en) * 2016-06-28 2022-07-27 Eshard A protection method and device against a side-channel analysis
US10771235B2 (en) * 2016-09-01 2020-09-08 Cryptography Research Inc. Protecting block cipher computation operations from external monitoring attacks
DE102017002153A1 (de) * 2017-03-06 2018-09-06 Giesecke+Devrient Mobile Security Gmbh Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
EP3422176A1 (en) * 2017-06-28 2019-01-02 Gemalto Sa Method for securing a cryptographic process with sbox against high-order side-channel attacks
US10778407B2 (en) * 2018-03-25 2020-09-15 Nuvoton Technology Corporation Multiplier protected against power analysis attacks
DE102018107114A1 (de) * 2018-03-26 2019-09-26 Infineon Technologies Ag Seitenkanalgehärtete Operation
US11507699B2 (en) * 2019-09-27 2022-11-22 Intel Corporation Processor with private pipeline
FR3124670A1 (fr) * 2021-06-29 2022-12-30 Stmicroelectronics (Rousset) Sas Protection de données traitées par un algorithme de chiffrement

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2789535B1 (fr) * 1999-02-04 2001-09-28 Bull Cp8 Procede de securisation d'un ensemble electronique de cryptographie a cle secrete contre les attaques par analyse physique
CA2298990A1 (en) * 2000-02-18 2001-08-18 Cloakware Corporation Method and system for resistance to power analysis
CN1193537C (zh) * 2000-07-04 2005-03-16 皇家菲利浦电子有限公司 将输入数据块加密转换成输出数据块的方法和***
CN1640051B (zh) * 2002-03-07 2011-05-18 艾斯奥托公司 使具有秘密密钥的电子密码装置安全的方法
US7403620B2 (en) * 2002-07-02 2008-07-22 Stmicroelectronics S.A. Cyphering/decyphering performed by an integrated circuit
JP4357815B2 (ja) * 2002-09-11 2009-11-04 株式会社東芝 暗号演算回路
US7970129B2 (en) * 2007-04-19 2011-06-28 Spansion Llc Selection of a lookup table with data masked with a combination of an additive and multiplicative mask
JP4936996B2 (ja) * 2007-05-24 2012-05-23 株式会社東芝 非線形データ変換器、暗号化装置、および復号装置

Also Published As

Publication number Publication date
CN102405615A (zh) 2012-04-04
FR2941342B1 (fr) 2011-05-20
WO2010084106A1 (fr) 2010-07-29
EP2380306B1 (fr) 2013-07-24
CA2749961A1 (en) 2010-07-29
FR2941342A1 (fr) 2010-07-23
KR101680918B1 (ko) 2016-11-29
SG173111A1 (en) 2011-08-29
CA2749961C (en) 2017-03-14
CN102405615B (zh) 2016-09-07
KR20120026022A (ko) 2012-03-16
US20120250854A1 (en) 2012-10-04
EP2380306A1 (fr) 2011-10-26
JP2012516068A (ja) 2012-07-12
JP5776113B2 (ja) 2015-09-09
US8615079B2 (en) 2013-12-24
WO2010084106A9 (fr) 2011-09-15

Similar Documents

Publication Publication Date Title
ES2435721T3 (es) Circuito criptográfico protegido contra los ataques de observación, en particular de orden elevado
KR102628466B1 (ko) 메시지 부호화 및 복호화를 위한 블록 암호화 방법 및 이 방법을 구현하기 위한 암호화 장치
ES2665987T3 (es) Dispositivo y procedimiento para la decodificación de datos
Saha et al. A framework to counter statistical ineffective fault analysis of block ciphers using domain transformation and error correction
ES2386061T3 (es) Procedimiento de detección de anomalias en un circuito criptográfico protegido por lógica diferencial y circuito para implementar a dicho procedimiento
CN109661792B (zh) 计算分组密码的设备和方法
CN109726565B (zh) 在抗泄漏原语中使用白盒
Backlund et al. Secret key recovery attack on masked and shuffled implementations of CRYSTALS-Kyber and Saber
BR112013012216B1 (pt) proteção contra as escutas passivas
JP4386766B2 (ja) データ処理装置における誤り検出
Kulikowski et al. Robust codes and robust, fault-tolerant architectures of the advanced encryption standard
EP3891925B1 (en) A computation device using shared shares
Ravi et al. On threat of hardware trojan to post-quantum lattice-based schemes: a key recovery attack on saber and beyond
Lac et al. Thwarting fault attacks using the internal redundancy countermeasure (IRC)
US11244078B2 (en) Side channel attack protection
Brier et al. Fast primitives for internal data scrambling in tamper resistant hardware
Adomnicai et al. On the importance of considering physical attacks when implementing lightweight cryptography
Karri et al. Parity-based concurrent error detection in symmetric block ciphers
Keren et al. IPM-RED: combining higher-order masking with robust error detection
Levi et al. Consolidated Linear Masking (CLM): Generalized Randomized Isomorphic Representations, Powerful Degrees of Freedom and Low (er)-cost
US12052348B2 (en) Computation device using shared shares
Kermani et al. Lightweight Error Detection Architectures through Swapping the Shares for a Subset of S-boxes
Lac et al. A First DFA on PRIDE: from Theory to Practice (extended version)
ES2385070T3 (es) Procedimiento de preservación de la seguridad de una ramificación condicional, soporte de informaciones, programa y sistema asegurado para ese procedimiento
Bousselam et al. Fault detection in crypto-devices