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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 94
- 238000004364 calculation method Methods 0.000 claims abstract description 76
- 230000008569 process Effects 0.000 claims abstract description 58
- 230000036961 partial effect Effects 0.000 claims abstract description 41
- 230000009466 transformation Effects 0.000 claims description 68
- 238000006243 chemical reaction Methods 0.000 claims description 25
- 238000004422 calculation algorithm Methods 0.000 claims description 19
- 238000000844 transformation Methods 0.000 claims description 12
- 230000001419 dependent effect Effects 0.000 claims description 6
- 238000011156 evaluation Methods 0.000 claims description 2
- 239000000543 intermediate Substances 0.000 claims 24
- 241001044053 Mimas Species 0.000 claims 1
- 238000013478 data encryption standard Methods 0.000 description 31
- 230000006870 function Effects 0.000 description 30
- 238000010276 construction Methods 0.000 description 3
- PBLQSFOIWOTFNY-UHFFFAOYSA-N 3-methylbut-2-enyl 4-methoxy-8-(3-methylbut-2-enoxy)quinoline-2-carboxylate Chemical compound C1=CC=C2C(OC)=CC(C(=O)OCC=C(C)C)=NC2=C1OCC=C(C)C PBLQSFOIWOTFNY-UHFFFAOYSA-N 0.000 description 2
- 101100112138 Mesembryanthemum crystallinum PPCA gene Proteins 0.000 description 2
- 101150012928 PPC1 gene Proteins 0.000 description 2
- 101100028851 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) PCK1 gene Proteins 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000012884 algebraic function Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012887 quadratic function Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/723—Modular exponentiation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7223—Randomisation as countermeasure against side channel attacks
- G06F2207/7233—Masking, e.g. (A**e)+r mod n
- G06F2207/7238—Operand masking, i.e. message blinding, e.g. (A+r)**e mod n; k.(P+R)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7266—Hardware adaptation, e.g. dual rail logic; calculate add and double simultaneously
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/127—Trusted platform modules [TPM]
-
- Y—GENERAL 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
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS 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/00—Systems 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/20—Information 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:
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
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
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
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:
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
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
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:
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:
Calculando luego el
"O-exclusivo" de ambos resultados
obtenidos.
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:
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
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:
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:
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:
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:
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.
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)
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)
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 | 日本電信電話株式会社 | データ変換装置 |
-
1999
- 1999-02-04 FR FR9901289A patent/FR2789535B1/fr not_active Expired - Fee Related
- 1999-06-17 US US09/334,687 patent/US6658569B1/en not_active Expired - Lifetime
-
2000
- 2000-02-03 AT AT00902703T patent/ATE464714T1/de not_active IP Right Cessation
- 2000-02-03 DE DE60044168T patent/DE60044168D1/de not_active Expired - Lifetime
- 2000-02-03 PT PT00902703T patent/PT1068695E/pt unknown
- 2000-02-03 ES ES00902703T patent/ES2344399T3/es not_active Expired - Lifetime
- 2000-02-03 EP EP00902703A patent/EP1068695B1/fr not_active Expired - Lifetime
- 2000-02-03 JP JP2000597921A patent/JP2002536911A/ja active Pending
- 2000-02-03 WO PCT/FR2000/000258 patent/WO2000046953A1/fr active Application Filing
-
2009
- 2009-12-28 JP JP2009297838A patent/JP2010072664A/ja active Pending
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) 암호 장치 및 방법 |