ES2344399T3 - Procedimiento de segurizacion de un conjunto electronico de criptografia con clave secreta contra los ataques por analisis fisico. - Google Patents

Procedimiento de segurizacion de un conjunto electronico de criptografia con clave secreta contra los ataques por analisis fisico. Download PDF

Info

Publication number
ES2344399T3
ES2344399T3 ES00902703T ES00902703T ES2344399T3 ES 2344399 T3 ES2344399 T3 ES 2344399T3 ES 00902703 T ES00902703 T ES 00902703T ES 00902703 T ES00902703 T ES 00902703T ES 2344399 T3 ES2344399 T3 ES 2344399T3
Authority
ES
Spain
Prior art keywords
bits
calculation process
partial
transformation
cryptographic calculation
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
ES00902703T
Other languages
English (en)
Inventor
Jacques Patarin
Louis Goubin
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.)
CP8 Technologies SA
Original Assignee
CP8 Technologies 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 CP8 Technologies SA filed Critical CP8 Technologies SA
Application granted granted Critical
Publication of ES2344399T3 publication Critical patent/ES2344399T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation
    • 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
    • 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/7233Masking, e.g. (A**e)+r mod n
    • G06F2207/7238Operand masking, i.e. message blinding, e.g. (A+r)**e mod n; k.(P+R)
    • 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/7266Hardware adaptation, e.g. dual rail logic; calculate add and double simultaneously
    • 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
    • H04L2209/127Trusted platform modules [TPM]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Signal Processing (AREA)
  • Mathematical Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Procedimiento de segurización de un conjunto electrónico mediante un proceso de cálculo criptográfico simétrico que utiliza una clave secreta, caracterizada porque: a)Se divide el proceso de cálculo criptográfico simétrico en varias partes de proceso de cálculo distintas efectuadas paralelamente e implementando resultados parciales intermedios distintos de los del cálculo criptográfico simétrico; b)Se reconstituye el valor final obtenido por el cálculo criptográfico simétrico sin división, a partir de dichos resultados parciales intermedios distintos.

Description

Procedimiento de segurización de un conjunto electrónico de criptografía con clave secreta contra los ataques por análisis físico.
El presente invento se refiere a un procedimiento de segurización de un conjunto electrónico mediante un algoritmo criptográfico que utiliza una clave secreta. Con mayor precisión, el procedimiento contempla realizar una versión del algoritmo que no sea vulnerable frente a ningún tipo de ataques físicos -denominados Differential Power Analysis o High-Order Differential Power Analysis- para intentar obtener datos sobre la clave secreta a partir del estudio del consumo eléctrico del conjunto electrónico en curso de ejecución del cálculo.
Los algoritmos criptográficos considerados aquí utilizan una clave secreta para calcular una información de salida en función de un dato de entrada; puede tratarse de una operación de cifrado, de descifrado o de firma o comprobación de firma, o incluso de una autentificación o de no repudiación. Están construidos de manera tal que un ataque, conociendo entradas y salidas, no pueda en la práctica deducir ninguna información sobre la clave secreta propiamente dicha.
WO 98/52319 describe un método que permite proteger el algoritmo RSA-CRT.
Los ataques de tipo Análisis de Potencia Eléctrica, Power Analysis en lenguaje anglosajón, desarrollados por Paul Kocher y Cryptographic Research (Confer document Introduction to Differential Power Analysis and related Attacks by Paul Kocher, Joshua Jaffe, and Benjamin Jun, Cryptography Research, 870 Market St., Suite 1008, S. Francisco, CA 94102, edición del documento HTML en la dirección URL: http://www.cryptography.com/dpa/technical/index.html), proceden de la constatación que, en realidad, el atacante puede adquirir datos, diferentes de los simples datos de entradas y salidas, en caso de ejecución del cálculo, como p. ej. el consumo eléctrico del microcontrolador o la irradiación electromagnética emitida por el circuito.
El análisis de energía eléctrica diferencial, Differential Power Analysis en lenguaje anglosajón, abrevi. DPA, es un ataque que permite obtener datos sobre la clave secreta contenida en el conjunto electrónico, efectuando un análisis estadístico de los registros de consumo eléctrico efectuados en gran número de cálculos con esta misma clave.
Se considera, como ejemplo no limitativo, el caso del algoritmo DES (Data Encryption Standard), del que se puede encontrar una descripción en uno de los documentos:
\bullet
FIPS PUB 46-2, Data Encryption Standard, 1994;
\bullet
FIPS PUB 74, Guidelines for Implementing and Using the NBS Data Encryption Standard, 1981;
\bullet
ANSI X3.92, American National Standard, Data Encryption Algorithm, 1981;
\bullet
ISO/IEC 8731:1987, Banking -Approved Algorithms for Message Authentication- Part 1: Data Encryption Algorithm (DEA).
o incluso en la obra siguiente:
\bullet Bruce Schneier, Applied Cryptography, Segunda edición, John Wiley & Sons, 1996, página 270.
\vskip1.000000\baselineskip
El algoritmo DES se desarrolla en 16 etapas denominadas vueltas, cf. figura 1a. En cada una de estas 16 vueltas, una transformación F se efectúa sobre 32 bits. Esta transformación F utiliza ocho transformaciones no lineales de seis bits sobre cuatro bits, que se codifican, cada una, en una tabla denominada caja-S, cf. figura 1b, en donde las cajas S llevan la anotación S1, S2, ..., S8.
El ataque DPA en el DES puede ser introducido de la manera siguiente:
\bullet1ª etapa: se efectúan medidas de consumo en la primera vuelta, para 1000 cálculos de DES. Se anotan E[1], ..., E[1000] los valores de entrada de estos 1000 cálculos. Se anotan C[1], ..., C[1000] las 1000 curvas correspondientes de consumo eléctrico medidas durante estos cálculos. Se calcula también la curva promedio CM de las 1000 curvas de consumo.
\bullet2ª etapa: nos interesamos, por ejemplo, por el primer bit de salida de la primera caja-S durante la primera vuelta. Apuntamos b el valor de dicho bit. Es fácil ver que b depende sólo de seis bits de la clave secreta. El atacante se basa en una hipótesis sobre los seis bits atañidos. Calcula -a partir de estos seis bits y de los E[i]- los valores teóricos esperados para b. Esto permite separar las 1000 entradas E[1], ..., E[1000] en dos categorías: las que dan b = 0 y las que dan b = 1.
\bullet3ª etapa: se calcula ahora el promedio CM' de las curvas correspondientes a entradas de la primera categoría, es decir para las cuales b=0. Si CM y CM' presentan una diferencia notable, se considera que los valores retenidos para los seis bits de clave eran buenos. Si CM y CM' no presentan diferencias sensibles, en el sentido estadístico, es decir que no hay diferencia clara superior al desvío típico del ruido medido, se mide la 2ª etapa con otra opción para los seis bits.
\bullet4ª etapa: se repiten las etapas 2 y 3 con un bit diana b procedente de la segunda caja-S, luego de la tercera caja-S, ..., hasta la octava caja-S. Se obtienen así por último 48 bits de la clave secreta.
\bullet5ª etapa: los ocho bits restantes pueden encontrarse mediante búsqueda exhaustiva.
Este ataque no necesita ningún conocimiento sobre el consumo eléctrico individual de cada instrucción, ni sobre la posición en el tiempo de cada una de estas instrucciones. Se aplica de la misma manera si se supone que el atacante conoce salidas del algoritmo y las curvas de consumo correspondientes. Se basa únicamente sobre la hipótesis fundamental según la cual:
Hipótesis fundamental: existe una variable intermedia, que aparece en el cálculo del algoritmo, como el conocimiento de algunos bits de clave, en la práctica menos de 32 bits, permitiendo decidir si dos entradas, respectivamente dos salidas, dan o no el mismo valor para dicha variable.
Todos los algoritmos que utilizan cajas-S, como el DES son potencialmente vulnerables a la DPA, ya que los modos de realización corrientes permanecen en general en el marco de la hipótesis mencionada anteriormente.
Los ataques denominados por análisis de energía eléctrica de alto nivel, High-Order Differential Power Analysis, en lenguaje anglosajón, en abreviado HO-DPA, son una generalización del ataque DPA descrito anteriormente, pudiendo utilizar varias fuentes de información diferentes, además del consumo, poniendo en juego las medidas de irradiación electromagnética, temperatura, etc. e implementando procesamientos estadísticos más sofisticados que la simple noción de promedio, variables intermedias (que generalizan el bit b definido anteriormente) menos elementales.
No obstante, se basan exactamente en la misma hipótesis fundamental que la DPA.
El procedimiento de la invención tiene como objeto suprimir los riesgos de ataque DPA o HO-DPA de conjuntos o sistemas electrónicos de criptografía de clave secreta.
Otro objeto del presente invento es, por consiguiente, una modificación del proceso de cálculo criptográfico implementado por los sistemas electrónicos de criptografía protegidos de manera que la hipótesis fundamental anterior no sea verificada, a saber que ninguna variable intermedia depende del consumo de un subconjunto fácilmente accesible de la clave secreta, resultando entonces los ataques de tipo DPA ó HO-DPA inoperantes.
El procedimiento de segurización de un conjunto electrónico que pone en juego un proceso de cálculo criptográfico clásico que utiliza una clave secreta, objeto del invento, es notable por cuanto se divide el proceso de cálculo criptográfico en varias partes de cálculo distintas efectuadas paralelamente e implementando resultados parciales intermedios distintos de los del cálculo criptográfico clásico, y que se reconstituye el valor final, obtenido por el cálculo clásico en ausencia de división, a partir de los resultados parciales intermedios distintos. Por procesos de cálculo criptográfico clásico, se entiende cualquier proceso de cálculo secuencial o sucesivo que permita obtener valores cifrados, descifrados, valores de firma, de comprobación de firma, de autentificación y de no repudiación. Tal proceso permite inhibir los ataques de tipo DPA ó HO-DPA contra los conjuntos o sistemas embarcados provistos de funciones de cálculo criptográfico tales como las tarjetas de microcalculadores dedicadas a funciones de monética electrónica, tarjeta bancaria, tarjeta de control de acceso o analógicas.
Se comprenderá mejor leyendo la descripción y la observación de los esquemas siguientes en los cuales, además de las figuras 1a y 1b relativas al arte anterior en referencia al proceso de cifrado/descifrado DES para "Data Encryption System" en lenguaje anglosajón:
- la figura 2 representa un organigrama general ilustrativo del procedimiento objeto del invento;
- la figura 3a representa, de manera ilustrativa, un modo de implementación no limitativo del procedimiento objeto del presente invento;
- la figura 3b representa, de manera ilustrativa, un organigrama de una implementación particular del procedimiento objeto del invento aplicado a una transformación no lineal utilizada en un proceso de cálculo criptográfico clásico tal como el DES;
- la figura 3c representa una variante de implementación del procedimiento objeto del invento tal y como se indica en la figura 2;
- la figura 3d representa, como ejemplo ilustrativo, un organigrama de otra implementación particular del procedimiento del invento, a partir de una transformación biyectiva secreta, aplicado a una transformación no lineal usada en un proceso de cálculo criptográfico clásico como el DES;
- la figura 3e representa, como de ejemplo ilustrativo, un organigrama de otra implementación particular del invento, a partir de funciones polinomiales, aplicado a una transformación no lineal utilizada en un proceso de cálculo criptográfico clásico tal como el DES.
Una descripción más detallada del procedimiento de segurización de un conjunto electrónico con la utilización de un proceso de cálculo criptográfico clásico que utiliza una clave secreta, objeto del presente invento, será proporcionado ahora en enlace con las figuras indicadas.
De una manera general, el procedimiento objeto del invento consiste, para un proceso de cálculo criptográfico clásico que utiliza una clave secreta Ks, en modificar el proceso de cálculo criptográfico de manera que la hipótesis fundamental mencionada no sea verificada, no dependiendo más entonces ninguna variable intermedia calculada, conforme al procedimiento objeto del invento, del conocimiento de un subconjunto fácilmente accesible de la clave secreta.
Con este objeto, y conforme al procedimiento objeto del invento, tal como se representa en la figura 2, a) se divide el proceso de cálculo criptográfico clásico en varias partes de proceso de cálculo del PPC1 al PPCk distintas efectuadas paralelamente y, luego b) se reconstituye el valor final V correspondiente al obtenido por el cálculo criptográfico clásico, sin división, a partir de los resultados parciales intermedios distintos de V1 a Vk obtenidos al implementar partes del proceso de cálculo distintas de PPC1 a PPCk anteriores.
Así, las partes de proceso de cálculo son independientes, aunque las variables o resultados intermedios parciales estén vinculados.
Se realiza esta división sustituyendo cada variable v intermedia, que interviene en el curso del cálculo y dependiendo de los datos de entrada (o de salida), por k variables v1, v2, ..., vk, tales como v1, v2, ..., y vk permitiendo, si es necesario, reconstituir v. Más claramente, esto significa que existe una función f tal como v = f (v1, v2, ..., vk). Se indica además que f responde preferentemente, a la condición siguiente:
Condición nº 1:
Sea i un índice comprendido, en el sentido más amplío entre 1 y k. El conocimiento de un valor v no permite nunca, en la práctica, deducir datos sobre el conjunto de los valores vi tales que exista un (k-1) -uplet (v1, ..., vi-1, vi+1, ..., vk) que responde a la ecuación f (v1, ..., vk) = v;
\vskip1.000000\baselineskip
Ejemplo nº 1:
Si se toma como función f (v1, ..., vk) = vi \oplus v2 \oplus ... \oplus vk, en donde \oplus designa la función "O-exclusivo" bit a bit, la condición nº 1 se observa de manera manifiesta, ya que para cualquier índice i comprendido entre 1 y k, el conjunto considerado de los valores vi contiene todos los valores posibles, no dependiendo de v.
\vskip1.000000\baselineskip
Ejemplo nº 2:
Si se considera una variable v de valores en el grupo multiplicativo de Z/nZ, es decir el conjunto de los enteros módulo n que poseen un inverso, también módulo n, se puede tomar como función f (v1, ..., vk) = v1 \cdot v2... vk mód n, en donde las nuevas variables v1, v2, ..., vk son también de valor en el grupo multiplicativo de Z/nZ. La condición nº 1 se logra también de manera manifiesta, ya que para cualquier índice i comprendido entre 1 y k, el conjunto considerado de valores vi contiene todos los valores posibles, no dependiendo de v.
Conforme a un aspecto notable del procedimiento objeto del invento, se efectúa entonces una "traducción" del algoritmo sustituyendo cada variable intermedia v dependiente de los valores de entrada (o de salida) por las k variables v1, v2, ..., vk. Para garantizar la seguridad máxima del algoritmo modificado bajo la nueva forma, se impone la condición adicional siguiente en la función f:
\vskip1.000000\baselineskip
Condición nº 2:
La función f es tal que las transformaciones a efectuar en v1, v2, ..., o vk durante el cálculo, en el puesto de las transformaciones efectuadas habitualmente en v, pueden ser ejecutadas sin tener que recalcular v.
\vskip1.000000\baselineskip
Primer ejemplo: el DES
El primer ejemplo relativo a la segurización del DES será descrito de acuerdo con la figura 3a.
En este ejemplo, se considera el caso particular del DES. Se elige aquí una división de cada variable v intermedia, que interviene durante el cálculo, dependiente de los datos de entrada o de salida, en dos variables v1 y v2, es decir que se toma k = 2. Se considera la función f (v1, v2) = v = v1 \oplus v2 del ejemplo nº 1 anterior, que responde por construcción a la condición nº 1. Por construcción del algoritmo, se observa fácilmente que las transformaciones que efectúa en v pueden entrar siempre en una de las cinco categorías siguientes:
\bullet Permutación de los bits de v;
\bullet Expansión de los bits de v;
\bullet O-exclusivo de v con otra variable v' del mismo tipo;
\bullet O-exclusivo de v con una variable c dependiente únicamente de la clave o de una subclave;
\bullet Transformación no lineal de v por una caja-S.
\vskip1.000000\baselineskip
Ambas primeras categorías corresponden a transformaciones lineales sobre los bits de la variable v. Para éstas, la condición nº 2 es, por tanto, muy fácil de verificar: basta, en lugar de la transformación efectuada habitualmente sobre v, con efectuar la permutación o la expansión sobre v1 y luego sobre v2, y la relación f (v1, v2) = v que era verdadera antes de la transformación sigue siendo verdadera también después.
Asimismo, en el tercer caso, basta con sustituir el cálculo de v'' = v \oplus v' por el de v''1 = v1 \oplus v'1 y de v''2 = v2 \oplus v'2. Las relaciones f (v1, v2) = v y f (v'1, v'2) = v' dan f (v''1, v''2) = v'', y la condición nº 2 se verifica una vez más.
En lo que se refiere al O-exclusivo de v con una variable dependiente únicamente de la clave o de una subclave, la condición nº 2 es también fácil de lograr: basta con sustituir el cálculo de v \oplus c por v1 \oplus c, o v2 \oplus c, lo que garantiza la condición nº 2.
Por último, en lugar de la transformación no lineal v' = S(v), proporcionada bajo la forma de una caja-S, que en ese ejemplo admite entradas de seis bits y de salidas de cuatro bits, se realiza la transformación (v'1, v'2) = S' (vi, v2) por medio de dos nuevas cajas S, siendo cada una de 12 bits sobre cuatro bits, esta vez. Para garantizar la igualdad f (v'1, v'2) = v', basta con elegir:
1
es decir v'1 = A(v1, v2) e v'2 = S (v1 \oplus v2) \oplus A(v1, v2) en donde A indica una transformación aleatoria y secreta de 12 bits hacia cuatro bits. La primera (nueva) caja-S corresponde a la tabla de transformación (v1, v2) \rightarrow A(v1, v2) que a (v1, v2) asocia A(v1, v2) y la segunda (nueva) caja-S corresponde a la tabla de transformación (v1, v2) \rightarrow S(v1 \oplus v2) \oplus A(v1, v2) que a (v1, v2) asocia S(v1 \oplus v2) \oplus A(v1, v2). La presencia de la función aleatoria A permite garantizar la condición nº 1. La utilización de tablas permite, además, evitar tener que calcular v1 \oplus v2 y, por ende, permite lograr la condición nº 2.
Las tablas de transformación o de conversión pueden ser memorizadas en una memoria ROM de la tarjeta del microcalculador cuando el conjunto electrónico esté constituido por una tarjeta de microcalculador.
Así, para una etapa de cálculo de tipo transformación no lineal implementada por un proceso de cálculo criptográfico clásico tal como el DES, la división, así como lo representa la figura 3b, puede efectuarse en k partes. Para un proceso de cálculo criptográfico clásico que utiliza transformaciones no lineales de m bits sobre n bits, descritas por tablas de conversión en las que los n bits de salida de la transformación se leen en una dirección que depende de los m bits de entrada, se sustituye cada transformación no lineal aplicada a una variable intermedia que desempeña el papel de variable de entrada E del proceso de cálculo criptográfico clásico, sin división, por una transformación no lineal parcial de km bits sobre kn bits aplicada al conjunto de las variables intermedias parciales v1 a vk. Según un aspecto especialmente notable del procedimiento objeto del invento, esta transformación no lineal parcial se describe y realiza por k tablas de conversión parcial en las que los n bits de salida v'1 ó v'2 ... ó v'k de la transformación se leen en una dirección que es función y depende de los km bits de entrada.
En el primer ejemplo mencionado y en relación con la figura 3b, se indica que k = 2, n = 4 y m = 6.
\vskip1.000000\baselineskip
Variante nº 1:
Por razones de espacio ocupado por la ROM, se puede utilizar sin problema la misma función aleatoria A para cada una de las ocho cajas S de la descripción clásica del DES, lo que permite tener sólo nueve nuevas cajas-S por almacenar en lugar de dieciséis.
Una variante, variante nº 2, será descrita en enlace con la figura 3c.
Variante nº 2:
Con objeto de reducir el tamaño de la ROM necesaria para almacenar las cajas S, se puede utilizar también el método siguiente: en lugar de cada transformación no lineal v' = S(v) de la implementación inicial, dada bajo la forma de una caja-S (que en el ejemplo del DES admite entradas de seis bits y proporciona salidas de cuatro bits), se efectúa la transformación (v'1, v'2) = S' (v1, v2) por medio de dos cajas S, cada una de seis bits sobre cuatro bits, esta vez. La implementación inicial del cálculo de v' = S(v) se sustituye por los dos cálculos sucesivos siguientes:
\bullet
v0 = \varphi(v1 \oplus v2)
\bullet
(v'1, v'2) = S' (v1, v2) = (A(v0), S (\varphi-1 (v0)) \oplus A(v0)) es decir v'1 = A(v0), v'2 = S(\varphi-1(v0)) \oplus A (v0) en donde \varphi es una función biyectiva y secreta de seis bits sobre seis bits y donde A designa una transformación aleatoria de seis bits hacia cuatro bits. La primera (nueva) caja-S corresponde a la tabla de la transformación v0 \rightarrow A(v0) que a v0 asocia A(v0) y la segunda (nueva) caja-S corresponde a la tabla de la transformación v0 \rightarrow S (\varphi-1(v0)) \oplus A(v0) que a v0 asocia S(\varphi-1(v0)) \oplus A(v0). Por construcción, hay siempre la igualdad f (v'1, v'2) = v'. La presencia de la función aleatoria A permite garantizar la condición nº 1. La utilización de tablas permite evitar tener que calcular \varphi-1 (v0) = v1 \oplus v2.
\vskip1.000000\baselineskip
En la figura 3d, se ha representado una etapa de cálculo correspondiente, de tipo transformación no lineal implementada en el marco del proceso de cálculo criptográfico clásico como el DES, tal y como se ha modificado conforme al procedimiento objeto del invento según la Variante nº 2. Además, la división en k partes aplicada a la variable de entrada E, para las transformaciones no lineales de m bits sobre n bits, descritas en tablas de conversión en las que los n bits de salida se leen en una dirección dependiente de los m bits de entrada, se sustituye cada transformación no lineal aplicada a una variante intermedia, que desempeña el papel de variante de entrada E, del proceso de cálculo clásico, por una transformación no lineal parcial de km bits sobre kn bits aplicada al conjunto de variables intermedias parciales v1 a vk. Esta transformación no lineal parcial se describe y ejecuta por k tablas de conversión, recibiendo cada una de las entradas de las tablas de conversión un valor obtenido por aplicación de una función biyectiva secreta \varphij de la función f (v1, ..., vk) de las variables intermedias parciales según la relación \varphi j o f (v1, ..., vk), con
j
\euro
[1,k].
Según un aspecto particularmente notable del procedimiento objeto del presente invento, la aplicación anterior \varphij o f (v1, ..., vk) se efectúa mediante evaluación directa de un valor resultante, el cual, aplicado a la entrada de la tabla de conversión correspondiente 1 a k, permite leer n bits de salida de la transformación v'1 ó v'2 ó ... v'k en una dirección que depende de estos m bits de entrada.
De la misma manera que en el primer ejemplo indicado, y en relación con la figura 3d, se indica que para la variante nº 2, k = 2, m = 6 y n = 4.
Además, y en una versión simplificada, las funciones biyectivas de \varphi1 a \varphik son idénticas.
Para que la condición nº 2 se vea satisfecha, hay que elegir la transformación biyectiva \varphi ó funciones biyectivas \varphi1 a \varphik de tal manera que el cálculo de v0 = \varphi (v1 \oplus v2) pueda efectuarse sin tener que recalcular v2 \oplus v2. Se proporcionan seguidamente dos ejemplos para la función \varphi:
\vskip1.000000\baselineskip
Ejemplo 1 Una biyección \varphi lineal
Se elige para \varphi una función lineal secreta y biyectiva de seis bits sobre seis bits. En el marco de esta opción, se considera el conjunto de los valores sobre seis bits como un espacio vectorial de dimensión seis sobre el cuerpo finito F2 de dos elementos. En la práctica, elegir \varphi consiste en elegir una matriz aleatoria e inversible de tamaño 6x6 cuyos coeficientes valen 0 ó 1. Con esta opción de \varphi, es fácil ver que la condición nº 2 está cumplida. En efecto -para calcular \varphi(v1 \oplus v2)- basta con calcular \varphi (v1)' y, luego, \varphi (v2) y, por último, calcular el "O-exclusivo" de los dos resultados obtenidos.
Por ejemplo, la matriz 2 es inversible, correspondiéndole la biyección lineal \varphi de seis bits sobre seis bits definida por:
3
Si se observa v1 = (v1,1, v1,2, v1,3, v1,4, v1,5, v1,6) y v2 = (v2,1, v2,2, v2,3, v2,4, v2,5, v2,6), para calcular \varphi (v1 \oplus v2), se calcula sucesivamente:
30
Calculando luego el "O-exclusivo" de ambos resultados obtenidos.
Ejemplo 2 Una biyección \varphi cuadrática
Se elige para \varphi una función cuadrática secreta y biyectiva de seis bits sobre seis bits. El término "cuadrático" significa aquí que cada bit de valor de salida de la función \varphi viene dado por una función polinomial de grado dos de los seis bits de entrada, que se identifican con los seis elementos del cuerpo finito F2. En la práctica, se puede optar por la función \varphi definida por la fórmula \varphi(x) = t(s (x)5), en donde s es una aplicación lineal secreta y biyectiva de (F2)^{6} sobre L, siendo t una aplicación lineal secreta y biyectiva de L sobre (F2)^{6}, en donde L designa una extensión algebraica de grado seis del cuerpo finito F2. El carácter biyectivo de esta función \varphi resulta del hecho que a \rightarrow a^{5} es una biyección sobre la extensión L (cuya inversa es b \rightarrow b^{38}). Para establecer que la condición nº 2 sigue satisfecha, basta con observar que se puede escribir:
4
en donde la función \Psi está definida por: \Psi (x, y) = t(s(x)^{4} s (y)).
Por ejemplo, si se identifica L a F2[X]/(X^{6}+X+1), y si se toma s y t como matrices respectivas
5
con relación a la base (1, X, X^{2}, X^{3}, X^{4}, X^{5}) de L sobre F2 y a la base canónica de (F2)^{6} sobre F2, se obtiene la biyección cuadrática \varphi de seis bits sobre seis bits siguiente:
6
60
Para calcular \varphi(v1 \varphi, v2), se utiliza la función \Psi(x,y) = t(s(x)^{4} s(y)) de doce bits sobre seis bits, que proporciona los seis bits de salida en función de los doce bits de entrada según las reglas siguientes:
7
Utilizando estas fórmulas, se calcula sucesivamente:
\bullet\Psi(v1, v1);
\bullet\Psi(v1, v2);
\bullet\Psi(v2, v1);
\bullet\Psi(v2, v2).
Luego se calcula el "O-exclusivo" de los cuatro resultados obtenidos.
Variante nº 3:
Siguiendo, para reducir el tamaño ROM necesario para almacenar las cajas S, se pueden por último aplicar simultáneamente las ideas de las dos variantes anteriores, Variante nº 1 y Variante nº 2: se utiliza la Variante nº 2 con la misma biyección secreta \Psi (de seis bits hacia seis bits) y la misma función aleatoria secreta A (de seis bits hacia seis bits) en la nueva implementación de cada transformación no lineal dada bajo la forma de una caja-S.
\vskip1.000000\baselineskip
Variante nº 4:
En esta última variante, en lugar de llevar a cabo la transformación (v'1, v'2) = S'(v1, v2), por medio de dos cajas S, que sustituye la transformación no lineal v' = S(v) de la implementación inicial, que venia dada bajo la forma de una caja-S, se efectúa el cálculo de v'1 respectivamente v'2 por medio de una función algebraica simple para la cual los bits de v'1 respectivamente v'2 se proporcionan mediante una función polinomial de grado total 1 ó 2 de los bits de v1 y v2, y luego el cálculo de v'2 respectivamente v'1 por medio de una tabla. Esto permite también reducir el tamaño de la memoria ROM necesaria para la ejecución material.
Tal y como se representa en la figura 3e, en caso de una etapa de cálculo de tipo transformación no lineal implementada por un proceso de cálculo criptográfico clásico, tal como el DES, además de la división en k partes v1 a vk de una variable intermedia que desempeña el papel de entrada E, las transformaciones no lineales consisten para el proceso clásico, como en el caso de las figuras 3b y 3d, en una transformación no lineal de m bits sobre n bits, descrita por tablas de conversión en las que n bits de salida de la transformación se leen en una dirección que depende de m bits de entrada, según el proceso objeto del invento, se sustituye cada transformación no lineal aplicada a una variable intermedia del proceso de cálculo criptográfico clásico, sin división, por una transformación no lineal parcial de km bits sobre kn bits aplicada al conjunto de las variables intermedias parciales v1 a vk. En este caso, y en referencia a la Variante nº 4 del ejemplo 2 anterior, (k-1)n bits de salida de esta transformación se calculan como una función polinomial de km bits de entrada de las variables v1, v2 ... vk según las relaciones:
8
relaciones en las que P_{1} - P_{k-1} designan funciones polinomioles de m bits sobre n bits.
Los n bits restantes v' k de la variable de salida se obtienen entonces, p. ej. mediante la lectura de una tabla de conversión no lineal en la que estos n bits se leen en una dirección que depende de los km bits de entrada.
En la Variante nº 4 del ejemplo anterior, se recuerda que k = 2, m = 6 y n = 4.
\vskip1.000000\baselineskip
Segundo ejemplo: el Triple-DES
El Triple-DES consiste en efectuar secuencialmente operaciones de cifrado/descifrado a partir de las dos claves secretas.
Para una descripción del algoritmo Triple-DES, se podrá ver uno de los documentos siguientes:
\bullet
ISO/IEC 8732:1987, Banking - Key Management (Wholesale);
\bullet
ANSI X9.17, American National Standard, Financial Institution Key Management (Wholesale), 1985.
o incluso la obra siguiente:
\bullet Bruce Schneier, Applied Cryptography, Segunda Edición, John Wiley & Sons, 1996, página 358,
que se introducen en la presente solicitud como referencia.
El principio consiste en utilizar el DES tres veces seguidas para cifrar un mensaje: se comienza efectuando un DES en modo cifrado con la clave nº 1, y luego un DES en modo descifrado con la clave nº 2, y, por último, un DES en modo cifrado de nuevo con la clave nº 1. El ataque de tipo DPA es posible de la misma manera que para el DES: gracias a las medidas de consumo efectuadas en la primera vuelta del primer DES, se encuentran 48 bits de la clave nº 1. Considerando luego la segunda vuelta, se encuentran los ocho bits restantes de la clave nº 1. Conociendo la clave nº 1, se conocen entonces las entradas del segundo DES, y se puede aplicar el mismo ataque para encontrar la clave nº 2.
La segurización del algoritmo puede operarse exactamente como en el caso del simple DES descrito en el primer ejemplo anterior: se utiliza la misma función f para efectuar la "división" de las variables intermedias y las mismas transformaciones del algoritmo.

Claims (20)

1.Procedimiento de segurización de un conjunto electrónico mediante un proceso de cálculo criptográfico simétrico que utiliza una clave secreta, caracterizada porque:
a)
Se divide el proceso de cálculo criptográfico simétrico en varias partes de proceso de cálculo distintas efectuadas paralelamente e implementando resultados parciales intermedios distintos de los del cálculo criptográfico simétrico;
b)
Se reconstituye el valor final obtenido por el cálculo criptográfico simétrico sin división, a partir de dichos resultados parciales intermedios distintos.
\vskip1.000000\baselineskip
2. Procedimiento según la reivindicación 1, caracterizado porque cada variable o resultado (v) intermedio dependiente de los datos de entrada o salida implementados por el proceso de cálculo criptográfico simétrico queda sustituido por un número determinado k de variables intermedias parciales (v1, ..., vk), estando vinculadas las variables intermedias (v) e intermedias parciales (v1 a vk) por una función f, v = f (v1, v2, ..., vk) que permite reconstituir dicha variable intermedia (v).
3. Procedimiento según la reivindicación 2, caracterizado porque dicha función f, que vincula las variables intermedias parciales y dicha variable intermedia (v), es tal que el conocimiento de un valor de esta variable intermedia no permite nunca deducir el conjunto de los valores particulares parciales vi tales que exista un (k-1)-uplet (v1, ..., vi-1, vi+1 ... vk) que responde a la ecuación (v1, ..., vi, ..., vk) = v.
4. Procedimiento según la reivindicación 3, caracterizado porque dicha función es la función "O-exclusivo" bit a bit, y en dichas variables intermedias (v) y variables intermedias parciales (v1, ..., vi, ..., vk) se verifica la relación:
9
5. Procedimiento según la reivindicación 3, caracterizado porque para una variable intermedia (v) de valores en el grupo multiplicativo Z/nZ definido por el conjunto de los enteros módulo n, dicha función es la función producto módulo n, f (v1, ..., vk) = v1, v2, ... vk módulo n, en la cual dichas variables intermedias parciales son variables de valores en dicho grupo multiplicativo de Z/nZ.
6. Procedimiento según la reivindicación 3, caracterizado porque, dicha función f que vincula las variables intermedias parciales y dicha variable intermedia (v), las partes de proceso de cálculo distintas conducidas paralelamente son independientes y dichas partes de proceso de cálculo distintas conducidas paralelamente se conducen sin reconstitución de dicha variable intermedia (v) dependiente de los datos de entrada o de salida implementada por dicho proceso de cálculo criptográfico simétrico.
7. Procedimiento según la reivindicación 1, caracterizado porque dicha división se efectúa en dos partes distintas conducidas paralelamente.
8. Procedimiento según la reivindicación 1, caracterizado porque dicha división se efectúa en k partes y por que para un proceso de cálculo criptográfico simétrico que utiliza transformaciones no lineales de m bits sobre n bits descritas en tablas de conversión, en las que los n bits de Salida de la transformación se leen en una dirección que depende de los m bits de entrada, se sustituye cada transformación no lineal aplicada a una variable intermedia del proceso de cálculo criptográfico simétrico sin división, por una transformación no lineal parcial de km bits sobre kn bits aplicada al conjunto de las variables intermedias parciales, transformación no lineal parcial que se describe mediante k tablas de conversión parcial en las que los n bits de salida de la transformación se leen en una dirección que depende de los km bits de entrada.
9. Procedimiento según la reivindicación 8, caracterizado porque entre las k tablas de conversión parcial k-1 tablas de conversión parcial contienen variables aleatorias secretas.
10. Procedimiento según la reivindicación 8, caracterizado porque entre k tablas de conversión parcial, utilizadas para sustituir cada tabla de conversión no lineal, se utilizan siempre las mismas k-1 tablas aleatorias secretas.
11. Procedimiento según la reivindicación 1, caracterizado porque dicha división se efectúa en k partes, y porque, para un proceso de cálculo criptográfico simétrico que utiliza transformaciones no lineales de m bits sobre n bits descritas por tablas de conversión en las que los n bits de salida de la transformación se leen en una dirección que depende de los m bits de entrada, se sustituye cada transformación no lineal aplicada a una variable intermedia del proceso de cálculo criptográfico simétrico, sin división, por una transformación no lineal parcial de km bits sobre kn bits aplicada al conjunto de las variables intermedias parciales, (k-1)n de dichos bits de salida de esta transformación se calculan como función polinomial de los km bits de entrada y los n bits restantes de dichos bits de salida, obtenidos por lectura de una tabla de conversión en la que los n bits restantes se leen en una dirección que depende de los km bits de entrada.
12. Procedimiento según la reivindicación 2, caracterizado porque dicha división se efectúa en k partes y porque para un proceso de cálculo criptográfico simétrico que utiliza transformaciones no lineales de m bits sobre n bits descritas en tablas de conversión en las que los n bits de salida de la transformación se leen en una dirección que depende de los m bits de entrada, se sustituye cada transformación no lineal aplicada a una variable intermedia del proceso de cálculo criptográfico simétrico, sin división, por una transformación no lineal parcial de km bits sobre kn bits aplicada al conjunto de las variables intermedias parciales, transformación no lineal parcial ésta que se describe mediante k tablas de conversión, cada una de estas tablas de conversión recibe como entrada un valor obtenido por aplicación de una función biyectiva secreta \varphi1 en dicha función f (v1, ..., vk) de las variables intermedias parciales según la relación \varphij o f (v1, ..., vk), j
\euro
[1, k], esta aplicación \varphij o f (v1, ..., vk) se efectúa mediante evaluación directa de un valor resultante, valor resultante aplicado en la entrada de la tabla de conversión que permite leer n bits de salida de la transformación en una dirección que depende de estos m bits de entrada.
13. Procedimiento según la reivindicación 12, caracterizado porque, entre las k tablas de conversión parcial, k-1 tablas de conversión parcial contienen valores aleatorios secretos.
14. Procedimiento según la reivindicación 12, caracterizado porque, entre las k tablas de conversión parcial utilizadas para sustituir cada tabla de transformación no lineal, se utilizan siempre las mimas k-1 tablas de conversión aleatorias secretas.
15. Procedimiento según la reivindicación 1, caracterizado porque las operaciones efectuadas en las diferentes partes procedentes de la división del proceso de cálculo criptográfico en varias partes de proceso de cálculo distintas se ejecutan secuencialmente.
16. Procedimiento según la reivindicación 1, caracterizado porque las operaciones efectuadas en las diferentes partes procedentes de la división del proceso de cálculo criptográfico en varias partes de proceso de cálculo distintas se ejecutan de manera imbricada.
17. Procedimiento según la reivindicación 1, caracterizado porque las operaciones efectuadas en las diferentes partes procedentes de la división del proceso de cálculo criptográfico en varias partes de proceso de cálculo distintas se ejecutan de manera simultánea en el caso de la multiprogramación.
18. Procedimiento según la reivindicación 1, caracterizado porque las operaciones efectuadas en las diferentes partes procedentes de la división del proceso de cálculo criptográfico en varias partes de proceso de cálculo distintas se ejecutan simultáneamente en procesos diferentes que trabajan en paralelo.
19. Utilización del procedimiento según la reivindicación 1 en una tarjeta de microcalculador.
20. Utilización del procedimiento según la reivindicación 1 para la segurización de proceso de cálculo criptográfico soportado por los algoritmos DES, Triple DES.
ES00902703T 1999-02-04 2000-02-03 Procedimiento de segurizacion de un conjunto electronico de criptografia con clave secreta contra los ataques por analisis fisico. Expired - Lifetime ES2344399T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9901289A FR2789535B1 (fr) 1999-02-04 1999-02-04 Procede de securisation d'un ensemble electronique de cryptographie a cle secrete contre les attaques par analyse physique
FR9901289 1999-02-04

Publications (1)

Publication Number Publication Date
ES2344399T3 true ES2344399T3 (es) 2010-08-26

Family

ID=35004509

Family Applications (1)

Application Number Title Priority Date Filing Date
ES00902703T Expired - Lifetime ES2344399T3 (es) 1999-02-04 2000-02-03 Procedimiento de segurizacion de un conjunto electronico de criptografia con clave secreta contra los ataques por analisis fisico.

Country Status (9)

Country Link
US (1) US6658569B1 (es)
EP (1) EP1068695B1 (es)
JP (2) JP2002536911A (es)
AT (1) ATE464714T1 (es)
DE (1) DE60044168D1 (es)
ES (1) ES2344399T3 (es)
FR (1) FR2789535B1 (es)
PT (1) PT1068695E (es)
WO (1) WO2000046953A1 (es)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2792141B1 (fr) * 1999-04-09 2001-06-15 Bull Cp8 Procede de securisation d'un ou plusieurs ensembles electroniques mettant en oeuvre un meme algorithme cryptographique avec cle secrete, une utilisation du procede et l'ensemble electronique
FR2799851B1 (fr) * 1999-10-14 2002-01-25 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type rsa
DE10000503A1 (de) * 2000-01-08 2001-07-12 Philips Corp Intellectual Pty Datenverarbeitungseinrichtung und Verfahren zu dessen Betrieb
EP1118924B1 (de) * 2000-01-19 2016-07-20 Infineon Technologies AG Verfahren zum betrieb einer mikroprozessoranordnung und mikroprozessoranordnung
FR2804524B1 (fr) * 2000-01-31 2002-04-19 Oberthur Card Systems Sas Procede d'execution d'un protocole cryptographique entre deux entites electroniques
JP3926532B2 (ja) * 2000-03-16 2007-06-06 株式会社日立製作所 情報処理装置、情報処理方法、及びカード部材
JP4640663B2 (ja) * 2000-06-30 2011-03-02 ネッツエスアイ東洋株式会社 秘密情報生成装置及び方法
DE10061997A1 (de) * 2000-12-13 2002-07-18 Infineon Technologies Ag Kryptographieprozessor
FR2818847A1 (fr) * 2000-12-26 2002-06-28 St Microelectronics Sa Circuit logique a polarite variable
JP4596686B2 (ja) 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
US7142670B2 (en) * 2001-08-14 2006-11-28 International Business Machines Corporation Space-efficient, side-channel attack resistant table lookups
WO2003075506A1 (en) * 2002-03-07 2003-09-12 Axalto Sa Method for making safe an electronic cryptography assembly with a secret key
EP1387519A3 (fr) * 2002-07-09 2004-02-18 Cp8 Procédé de sécurisation d'un ensemble électronique contre des attaques par introduction d'erreurs
US8191136B2 (en) * 2002-11-04 2012-05-29 Riverbed Technology, Inc. Connection based denial of service detection
JP2004212828A (ja) * 2003-01-08 2004-07-29 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2005056413A (ja) * 2003-08-01 2005-03-03 Stmicroelectronics Sa 複数の同じ計算の保護
US20050114658A1 (en) * 2003-11-20 2005-05-26 Dye Matthew J. Remote web site security system
US7899190B2 (en) 2004-04-16 2011-03-01 Research In Motion Limited Security countermeasures for power analysis attacks
JP2005333242A (ja) * 2004-05-18 2005-12-02 Pioneer Electronic Corp 鍵管理システム、及び再生装置
US7848514B2 (en) * 2004-05-24 2010-12-07 Research In Motion Limited Table masking for resistance to power analysis attacks
KR101226167B1 (ko) 2004-10-28 2013-01-24 이르데토 코포레이트 비.브이. 암호 함수 모호화 방법 및 시스템
EP1873676B1 (en) * 2005-03-25 2013-11-20 Panasonic Corporation Program converting device, secure processing device, computer program, and recording medium
EP1876577A1 (en) * 2005-04-28 2008-01-09 Matsushita Electric Industrial Co., Ltd. Program converter, encrypting device, and encrypting method
DE602005002349T2 (de) * 2005-05-10 2008-01-17 Research In Motion Ltd., Waterloo Schlüsselmaskierung für kryptographische Prozesse
KR101194837B1 (ko) * 2005-07-12 2012-10-25 삼성전자주식회사 멱지수를 숨기는 dpa 대책의 고속 계산을 위한 암호화장치 및 방법
WO2007052491A1 (ja) * 2005-10-31 2007-05-10 Matsushita Electric Industrial Co., Ltd. セキュア処理装置、セキュア処理方法、難読化秘密情報埋め込み方法、プログラム、記憶媒体および集積回路
JP2007189659A (ja) * 2005-12-15 2007-07-26 Toshiba Corp 暗号化装置、暗号化方法及び暗号化プログラム
US7720225B2 (en) * 2006-03-07 2010-05-18 Research In Motion Limited Table splitting for cryptographic processes
FR2941342B1 (fr) * 2009-01-20 2011-05-20 Groupe Des Ecoles De Telecommunications Get Ecole Nat Superieure Des Telecommunications Enst Circuit de cryptographie protege contre les attaques en observation, notamment d'ordre eleve.
US8615078B2 (en) * 2009-08-21 2013-12-24 Electronics And Telecommunications Research Institute Method and apparatus for processing F-function in seed encryption system
US8619985B2 (en) 2010-04-27 2013-12-31 Research In Motion Limited Table splitting for cryptographic processes
CN101848081A (zh) * 2010-06-11 2010-09-29 中国科学院软件研究所 一种s盒构造方法及s盒
JP5060606B2 (ja) 2010-09-17 2012-10-31 株式会社東芝 暗号化装置
US9342712B2 (en) * 2012-06-08 2016-05-17 Advanced Micro Devices, Inc. Method and system for accelerating cryptographic processing
JP6365076B2 (ja) * 2014-07-31 2018-08-01 大日本印刷株式会社 データ変換装置
JP6617375B2 (ja) * 2018-05-28 2019-12-11 大日本印刷株式会社 データ変換装置
US10892891B2 (en) * 2019-03-13 2021-01-12 Digital 14 Llc System, method, and computer program product for zero round trip secure communications based on two noisy secrets
US10951415B2 (en) * 2019-03-13 2021-03-16 Digital 14 Llc System, method, and computer program product for implementing zero round trip secure communications based on noisy secrets with a polynomial secret sharing scheme
FR3110311B1 (fr) * 2020-05-14 2022-07-01 Zama cryptographiques d’évaluation de fonctions à valeurs réelles sur des données chiffrées
FR3134909B1 (fr) 2022-04-25 2024-06-21 Commissariat Energie Atomique Protection contre les attaques par canal auxiliaire a l’aide d’un masquage carre

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02259689A (ja) * 1989-03-30 1990-10-22 Matsushita Electric Ind Co Ltd データ転置装置
US4993068A (en) * 1989-11-27 1991-02-12 Motorola, Inc. Unforgeable personal identification system
JPH0651698A (ja) * 1992-06-03 1994-02-25 Nippon Telegr & Teleph Corp <Ntt> データ攪拌装置およびデータ攪拌方法
US5588059A (en) * 1995-03-02 1996-12-24 Motorola, Inc. Computer system and method for secure remote communication sessions
WO1997044935A1 (en) * 1996-05-20 1997-11-27 Philips Electronics N.V. Cryptographic method and apparatus for non-linearly merging a data block and a key
US5850443A (en) * 1996-08-15 1998-12-15 Entrust Technologies, Ltd. Key management system for mixed-trust environments
JPH10153955A (ja) * 1996-11-25 1998-06-09 Nippon Signal Co Ltd:The 暗号装置
JP3035889B2 (ja) * 1997-04-23 2000-04-24 松下電器産業株式会社 暗号化処理装置、及び、復号化処理装置
US5991415A (en) * 1997-05-12 1999-11-23 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for protecting public key schemes from timing and fault attacks
JP3782210B2 (ja) * 1997-06-30 2006-06-07 日本電信電話株式会社 暗号装置
JP3017725B2 (ja) * 1998-01-27 2000-03-13 日本電信電話株式会社 データ変換装置

Also Published As

Publication number Publication date
JP2010072664A (ja) 2010-04-02
WO2000046953A1 (fr) 2000-08-10
FR2789535B1 (fr) 2001-09-28
US6658569B1 (en) 2003-12-02
ATE464714T1 (de) 2010-04-15
JP2002536911A (ja) 2002-10-29
FR2789535A1 (fr) 2000-08-11
PT1068695E (pt) 2010-07-13
DE60044168D1 (de) 2010-05-27
EP1068695B1 (fr) 2010-04-14
EP1068695A1 (fr) 2001-01-17

Similar Documents

Publication Publication Date Title
ES2344399T3 (es) Procedimiento de segurizacion de un conjunto electronico de criptografia con clave secreta contra los ataques por analisis fisico.
CN1989726B (zh) 用于执行加密计算的方法和装置
ES2366753T3 (es) Método de procesamiento criptográfico de datos, en particular con la ayuda de una caja s, dispositivo y programas asociados.
US8971526B2 (en) Method of counter-measuring against side-channel attacks
US8422668B1 (en) Table lookup operation on masked data
CN101371480B (zh) 加密保护方法
US8199909B2 (en) Method and device for carrying out a cryptographic calculation
KR100674550B1 (ko) 정보 처리 장치
US8094816B2 (en) System and method for stream/block cipher with internal random states
JP5050454B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
CN108964872A (zh) 一种基于aes的加密方法及装置
ES2295007T3 (es) Procedimiento de contramedida en un componente electronico que emplea un alritmo de criptografia con clave secreta.
US7050581B1 (en) Method for making secure one or several computer installations using a common secret key algorithm, use of the method and a computer system utilizing the method
ES2827873T3 (es) Método de determinación de una suma de integridad, programa informático y entidad electrónica asociados
CN113273131A (zh) 使用共享的份额的计算设备
ES2262502T3 (es) Procedimiento de contramedidas en un componente electronico que utiliza un algoritmo de criptografia con clave secreta.
CN109617667A (zh) 一种针对aes算法线性部分的高效掩码防护方法
EP1606685B1 (en) Security process for an electronic unit including a cryptoprocessor
US20220237304A1 (en) Data Processing Device and Method for Processing Secret Data
JP2019504343A (ja) 計算デバイス及び方法
KR101105384B1 (ko) 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법
CN107766725B (zh) 抗模板攻击的数据传输方法及系统
ES2293665T3 (es) Metodo para la conversion criptografica de bloques de entrada de l bits de informacion de datos digitales en bloques de salida de l bits.
JP3945497B2 (ja) 情報処理装置、icカード
KR101213209B1 (ko) 아리아(aria) 암호 장치 및 방법