ES2299857T3 - Transicion entre representaciones enmascaradas de un valor durante calculos criptograficos. - Google Patents

Transicion entre representaciones enmascaradas de un valor durante calculos criptograficos. Download PDF

Info

Publication number
ES2299857T3
ES2299857T3 ES04764804T ES04764804T ES2299857T3 ES 2299857 T3 ES2299857 T3 ES 2299857T3 ES 04764804 T ES04764804 T ES 04764804T ES 04764804 T ES04764804 T ES 04764804T ES 2299857 T3 ES2299857 T3 ES 2299857T3
Authority
ES
Spain
Prior art keywords
value
masking
masked representation
mask
masked
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
ES04764804T
Other languages
English (en)
Inventor
Olaf Neisse
Jurgen Pulkus
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.)
Giesecke and Devrient GmbH
Original Assignee
Giesecke and Devrient GmbH
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 Giesecke and Devrient GmbH filed Critical Giesecke and Devrient GmbH
Application granted granted Critical
Publication of ES2299857T3 publication Critical patent/ES2299857T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Radar Systems Or Details Thereof (AREA)

Abstract

Método implementado por ordenador para la transición desde una primera representación enmascarada (y) de un valor (d) que ha de mantenerse secreto a una segunda representación enmascarada (v) del valor (d), en el que se impide que se espíe el valor (d) que ha de mantenerse secreto, en el que la primera representación enmascarada (y) se basa en una primera regla de enmascaramiento que presenta una primera máscara (x) y la segunda representación enmascarada (v) se basa en una segunda regla de enmascaramiento que presenta una segunda máscara (u), y en el que, al calcular la segunda representación enmascarada (v), se utiliza al menos una tabla (T, C) previamente calculada que presenta una pluralidad de entradas y el cálculo se lleva a cabo dependiendo de al menos un parámetro de ocultación (z).

Description

Transición entre representaciones enmascaradas de un valor durante cálculos criptográficos.
La invención se refiere en general al campo de la criptografía, y más en particular al campo de proteger cálculos criptográficos de ser espiados. La invención se refiere especialmente a la transición entre representaciones enmascaradas de un valor, basándose las representaciones enmascaradas en diferentes reglas en diferentes reglas de enmascaramiento. La invención es especialmente adecuada para su utilización en un portador de datos portátil tal como una tarjeta inteligente, por ejemplo, en diferentes diseños, o un módulo de chip.
Los métodos de encriptación tales como IDEA (algoritmo internacional de encriptación de datos, International Data Encryption Algorithm), SAFER K-64 y RC5 así como algoritmos hash tales como MD5 o SHA-1 ejecutan cálculos criptográficos en los que los datos de carga útil y los datos de clave se combinan entre sí mediante una serie de diferentes operaciones de cálculo. En este caso, se utilizan frecuentemente las operaciones de cálculo Xor_{L}, Add_{M} y Mult_{M}. La operación Xor_{L} es la operación or exclusiva en cuanto a bits sobre L bits; ésta corresponde a la suma en (Z/2Z)^{L}. La operación Add_{M} es la suma módulo un módulo M \in Z, y la operación Mult_{M} es la multiplicación módulo un módulo M \in Z. Los casos L = 8, 16, 32 son de particular importancia para Xor_{L}, los casos M = 2^{8}, 2^{16}, 2^{32} son de particular importancia para Add_{M}, y los casos M = 2^{8}+1, 2^{16} +1 son de particular importancia para Mult_{M}.
Además, en el método IDEA se utiliza una multiplicación modificada, en el que esta multiplicación modificada se designa por el símbolo infijo \otimes . Esta multiplicación IDEA se define por d \otimes d' I^{-1} (Mult_{M}(I(d), I(d')) para d, d' \in {0, ..., 2^{16}-1}, el módulo M = 2^{16}+1 y la siguiente "transformación I":
200
La multiplicación IDEA tiene ventajas criptográficas, porque garantiza que el valor cero no está contenido en el intervalo de datos de la multiplicación Mult_{M} que se lleva a cabo, y además, porque se utiliza un número primo como el módulo M.
Si se llevan a cabo operaciones de cálculo tales como las que se acaban de mencionar utilizando datos no protegidos, puede hacerse una inferencia hacia atrás para los operandos y el resultado con la ayuda de SPA (análisis de potencia simple, Simple Power Analysis) o DPA (análisis de potencia diferencial, Differential Power Analysis). De esta manera, puede espiarse claves o información secreta. Los métodos SPA y DPA se basan en medir el consumo de potencia mientras que se ejecutan cálculos criptográficos utilizando un dispositivo controlado mediante programa. En el caso de un ataque SPA, se analiza una única ejecución de cálculo. Sin embargo, en un ataque DPA, sin embargo, se evalúan estadísticamente una pluralidad de ejecuciones de cálculo. En la elección de palabras del presente documento, los métodos de ataque relacionados en los que, además de o en lugar de consumo de potencia, se mide al menos otro parámetro físico, también se denominan como métodos SPA o DPA, respectivamente.
Como una medida contra tales ataques, la oportunidad presenta en sí, alterar los datos que han protegerse de ser espiados mediante un valor que, como regla, se selecciona aleatoriamente. Este valor se conoce como una "máscara", y el algoritmo de cálculo, según qué datos que han de protegerse se procesan junto con la máscara con el fin de obtener una representación enmascarada de los datos que han de protegerse, en el presente documento, se denomina como una "regla de enmascaramiento". Las etapas de cálculo criptográfico se llevan a cabo entonces utilizando los datos enmascarados. Si un atacante logra identificar los valores procesados en las etapas de cálculo criptográfico, entonces este espionaje se refiere sólo a representaciones enmascaradas y no a los datos que han de a protegerse de ser espiados.
La regla de enmascaramiento Xor_{L} y la regla de enmascaramiento Add_{M} se emplean frecuentemente para ocultar o camuflar datos. En la regla de enmascaramiento Xor_{L}, denominada también como "enmascaramiento booleano", el valor d que va a protegerse se representa mediante una representación enmascarada y con la máscara x, que normalmente se selecciona aleatoriamente, de tal manera que se cumple que y = Xor_{L} (x, d). En la regla de enmascaramiento Add_{M}, denominada también como "enmascaramiento aritmético", el valor d que va a protegerse se representa mediante una representación enmascarada y con la máscara x, que normalmente se selecciona aleatoriamente, de tal manera que 0\leq x \leq M-1 y se cumple que y = Add_{M} (x, d). Una ligera modificación de la regla de enmascaramiento Add_{M} es la regla de enmascaramiento Sub_{M}, en la que se elige y = Sub_{M} (d, x), donde Sub_{M} (d, x) es el número no negativo más pequeño y para el que se cumple que Add_{M} (x, y) = d.
Se entiende que la regla de enmascaramiento respectiva que se utiliza tiene que ser compatible con la etapa de cálculo o la serie de etapas de cálculo que van a realizarse. Este es el caso si, por ejemplo, la etapa de cálculo o la serie de etapas de cálculo, puede(n) aplicarse también, con ligeras modificaciones como mucho, a la representación enmascarada del valor que va a protegerse y entonces da como resultado esencialmente la representación enmascarada del resultado deseado. Por tanto, por ejemplo, la regla de enmascaramiento Xor_{L} es claramente compatible con las etapas de cálculo de or exclusiva y permutaciones de bits, aunque no con operaciones de suma o multiplicación.
Sin embargo, al ejecutar métodos criptográficos complejos, tal como se citó en la introducción, las series de etapas de cálculo se alternan frecuentemente las cuales son sólo compatibles con diferentes reglas de enmascaramiento. Por lo tanto, en la interfaz entre tales series de etapas, tiene que efectuarse una transición entre representaciones enmascaradas de un valor que va a protegerse que se basan en diferentes reglas de enmascaramiento. El problema en este caso es diseñar la transición de reglas de enmascaramiento, de tal manera que un atacante no pueda obtener ninguna información útil referente a los datos que han de protegerse.
A partir del documento WO 02/51064 A1 se conocen métodos para la transición de reglas de enmascaramiento desde una regla de enmascaramiento booleano a una regla de enmascaramiento aritmético y viceversa. En una primera disposición, se utiliza en la misma una tabla, tabla que, para una máscara dada fija, mapea una representación enmascarada según la primera regla de enmascaramiento sobre la representación enmascarada correspondiente según la segunda regla de enmascaramiento. En una segunda disposición, se aplica una tabla de este tipo a secciones de valores que presentan una longitud de bits mayor que la longitud de bits del índice de tabla. Además, en este caso, se emplea una tabla de acarreo.
El artículo "On Boolean and Arithmetic Masking against Differential Power Analysis" de J. S. Coron y L. Goubin, divulgado en el desarrollo de la conferencia del "Workshop on Cryptographic Hardware and Embedded Systems 2000 (CHES 2000)", volumen 1965 de "Lecture Notes in Computer Science", Springer-Verlag, 2000, páginas 231 a 237, describe un método para la transición desde una regla de enmascaramiento booleano a una regla de enmascaramiento aritmético en la que una máscara, que depende de un parámetro de ocultación, se introduce en el transcurso del cálculo o bien complementada o bien no complementada. En este artículo, se hace referencia a un posible ataque DPA contra este método.
A partir del artículo "A Sound Method for Switching between Boolean and Arithmetic Masking" de L. Goubin, divulgado en el desarrollo de la conferencia del "Workshop on Cryptographic Hardware and Embedded Systems 2001 (CHES 2001)", volumen 2162 de "Lecture Notes in Computer Science", Springer-Verlag, 2001, páginas 3 a 15, se conocen métodos de cálculo para la transmisión entre reglas de enmascaramiento booleano y aritmético, que, en dicho artículo, se las califica como seguras frente a ataques DPA.
El documento DE 198 22 217 A1 describe un método para proteger datos de ser espiados en el que se revierte el enmascaramiento antes de que se lleven a cabo operaciones que no son compatibles con la regla de enmascaramiento utilizada.
La pluralidad de diferentes fuentes de información de las que el atacante puede hacer uso potencialmente, es una dificultad particular al proteger la transición de reglas de enmascaramiento de ser espiada. Existe el problema de que, durante el transcurso del cálculo, tanto los estados de las variables como los cambios de estado de las variables así como los bits de estado de un procesador, y los cambios de los mismos, deberían mantenerse estadísticamente independientes de los datos que han de protegerse. A este respecto, los "bits de estado" se refieren a los bits de registro de procesador (indicadores) que indican por ejemplo, un acarreo, o la presencia de un número negativo, u otra propiedad que dependa de un resultado de cálculo. Si simplemente una de estas fuentes potenciales de información no se bloquea, entonces siendo habiendo riesgo de un análisis DPA satisfactorio.
La considerable restricción de recursos que está presente, en particular, en tarjetas inteligentes y otros portadores de datos portátiles, presenta una dificultad adicional. Sería deseable diseñar la transición de reglas de enmascaramiento con respecto a la potencia de cálculo necesaria así como con respecto al espacio de memoria necesario para el programa y para datos auxiliares tan eficazmente como sea posible y tan económicamente como sea posible en términos de almacenamiento, respectivamente.
Por consiguiente, la invención tiene el objetivo de resolver los problemas mencionados anteriormente, completamente o en parte, y de proporcionar una técnica para proteger la transición entre representaciones enmascaradas de un valor, basándose las representaciones enmascaradas en diferentes reglas de enmascaramiento, de ser espiada. En realizaciones preferidas, esta técnica ha de estar adaptada particularmente a las condiciones reales presentes en portadores de datos portátiles.
Según la invención, este objetivo se consigue, completamente o en parte, mediante un método que comprende las características de la reivindicación 1, un método que comprende las características de la reivindicación 4, un producto de programa informático según la reivindicación 15 y un dispositivo, en particular un portador de datos portátil, según la reivindicación 16. Las reivindicaciones dependientes se refieren a realizaciones preferidas de la invención.
La invención, según un primer aspecto, se basa en la idea fundamental de que al calcular la segunda representación enmascarada se utiliza al menos una tabla calculada previamente y de que el cálculo se lleva a cabo dependiendo de al menos un parámetro de ocultación. Sorprendentemente, mediante esta combinación, puede impedirse de manera segura que los datos que han de mantenerse secretos sean espiados.
La invención, según un segundo aspecto, se basa en la idea fundamental de utilizar al menos una tabla de comparación, que, para cada índice de tabla, proporciona el resultado de una comparación entre un valor que depende del índice de tabla y un valor que depende de al menos un valor de enmascaramiento. Utilizando una tabla de este tipo, también es posible proteger un cálculo de ser espiado con requisitos de memoria aceptables.
La transición según la invención se lleva a cabo desde una primera regla de enmascaramiento a una segunda regla de enmascaramiento y desde una primera máscara a una segunda máscara. Normalmente, la primera regla de enmascaramiento es diferente de la segunda regla de enmascaramiento, puesto que de otro modo, no sería necesaria ninguna transición de reglas de enmascaramiento. La primera máscara y la segunda máscara pueden ser la misma o diferentes. En realizaciones preferidas la segunda máscara puede seleccionarse libremente; puede, por ejemplo, ser un parámetro de entrada del método de transición. De esta manera, puede aumentarse adicionalmente la seguridad del cálculo criptográfico puesto que, además de la transición de reglas de enmascaramiento, se lleva a cabo una transición de máscaras para una segunda máscara seleccionada nuevamente, por ejemplo, una segunda máscara seleccionada aleatoriamente.
En algunas realizaciones, la tabla o tablas utilizadas pueden predefinirse y, por ejemplo, cargarse en el portador de datos en el transcurso de inicializar o personalizar el portador de datos. Preferiblemente, sin embargo, la tabla o tablas se calcula(n) y almacena(n) en una etapa preparatoria del método. Dicha etapa del método puede tener lugar inmediatamente antes de la transición de reglas de enmascaramiento, o puede tener lugar poco antes de la transición de reglas de enmascaramiento. Puede utilizarse una tabla o un conjunto de tablas para varias transiciones de reglas de enmascaramiento, donde puede ser aconsejable, sin embargo, por razones de seguridad, calcular nuevas tablas o conjuntos de tablas de vez en cuando o después de un número predeterminado de transiciones.
Se consigue un grado de seguridad particularmente alto si cada entrada en la tabla, o en al menos una de las tablas, respectivamente, depende de al menos un valor de enmascaramiento predeterminado. Este valor de enmascaramiento, o cada uno de los valores de enmascaramiento, respectivamente, se determina(n) preferiblemente de manera aleatoria. En algunas realizaciones, el valor de enmascaramiento puede considerarse como una máscara adicional a la que se adapta la tabla.
Para aumentar el grado de seguridad de ser espiado, también puede preverse el uso de, durante el transcurso del cálculo, al menos un resultado intermedio para una etapa de cálculo adicional, donde el resultado intermedio se utiliza, dependiendo del parámetro de ocultación, o bien de una manera complementada o bien de una manera no complementada.
Si se utiliza una tabla de comparación, entonces en realizaciones preferidas un valor que se introduce en el resultado de comparación almacenado en la tabla depende del valor de enmascaramiento o bien complementado o bien no complementado. De esta manera, el transcurso del cálculo y los datos procesador durante el cálculo se ocultan adicionalmente. La tabla de comparación puede diseñarse para ser particularmente económica en cuanto a requisitos de memoria si cada entrada proporciona un resultado de comparación en la forma de un valor binario, es decir, un único bit.
Con el fin de conseguir requisitos de memoria aceptables para almacenar la tabla, la tabla comprende preferiblemente bastante menos entradas que las que podrían direccionarse por la longitud de bits de las máscaras y/o representaciones enmascaradas. En realizaciones preferidas, tienen lugar entonces accesos repetidos a la tabla, en las que, para cada acceso, algunos bits de un resultado intermedio se evalúan y forman la base para el acceso a la tabla. En tales realizaciones, la longitud de bits de las máscaras y/o representaciones enmascaradas es un múltiplo, preferiblemente un múltiplo entero, de la longitud de bits del índice de tabla, es decir, el logaritmo con base 2 del número de entradas direccionables en la tabla.
También, en una tabla de comparación, la longitud de bits del índice de tabla es de manera preferible considerablemente menor que la longitud de bits de las variables utilizadas en el transcurso del cálculo. En realizaciones preferidas, entonces se aplica repetidamente la tabla de comparación a secciones de bits sucesivas de un resultado intermedio con el fin de determinar un valor de acarreo para cada sección de bits. Los valores de acarreo determinados de esta manera pueden evaluarse individualmente, o pueden combinarse en un valor de acarreo común para todo el cálculo.
En realizaciones ventajosas de la invención, mientras se mantiene la primera regla de enmascaramiento, tiene lugar inicialmente una transición desde la primera a una tercera máscara, en la que la tercera máscara se adapta a la disposición de la al menos una tabla. La al menos una tabla se utiliza entonces para llevar a cabo la transición a la segunda regla de enmascaramiento. Con esto, en algunas realizaciones, una transición lleva a una cuarta máscara, estando predeterminada la transición por la disposición de la tabla. Por lo tanto, en una etapa adicional, aunque manteniendo preferiblemente la segunda regla de enmascaramiento, se cambia la representación enmascarada, de tal manera que ya no se basa en la cuarta máscara, sino en la segunda máscara deseada. También se contemplan realizaciones de este método en las que la primera máscara y la tercera máscara son idénticas y/o la segunda máscara y la cuarta máscara son idénticas.
El producto de programa informático según la invención presenta instrucciones de programa con el fin de implementar el método según la invención. Tal producto de programa informático puede ser un medio material, por ejemplo, una memoria de semiconductores, un disquete o un CD-ROM. Sin embargo, el producto de programa informático también puede ser un medio no material, por ejemplo, una señal transportada a través de una red informática. El producto de programa informático puede, en particular, contener instrucciones de programa que, en el transcurso de la fabricación, inicialización o personalización de un portador de datos portátil, se introducen en el
mismo.
El dispositivo según la invención puede, en particular, ser un portador de datos portátil, por ejemplo, una tarjeta inteligente o un módulo de chip. Un portador de datos de este tipo comprende de una manera que es conocida como tal, al menos un procesador, varias memorias formadas mediante diferentes tecnologías y diversos conjuntos auxiliares tales como, por ejemplo, circuitos de interfaz, generadores de sincronismo y elementos de conexión.
En desarrollos adicionales preferidos, el producto de programa informático y/o el dispositivo comprende(n) características que corresponden a las características mencionadas en la presente descripción y/o las características enumeradas en las reivindicaciones dependientes del método.
Características, objetivos y ventajas adicionales de la invención son evidentes a partir de la siguiente descripción de varias realizaciones de muestra y realizaciones alternativas. Las siguientes secciones A a G se refieren a:
Sección A, un ejemplo de comparación de un método para la transición desde una regla de enmascaramiento Add_{2^{L}} a una regla de enmascaramiento Xor_{L},
Sección B, una primera realización de muestra de la invención para la transición desde la regla de enmascaramiento Add_{2^{L}} la regla de enmascaramiento Xor_{L},
Sección C, una segunda realización de muestra de la invención para la transición desde la regla de enmascaramiento Add_{2^{L}} la regla de enmascaramiento Xor_{L},
Sección D, una realización de muestra de la invención para la transición desde la regla de enmascaramiento Add_{2^{L}} una regla de enmascaramiento Add_{2^{L}+1},
Sección E, una realización de muestra de la invención para la transición desde la regla de enmascaramiento Add_{2^{L}+1} la regla de enmascaramiento Add_{2^{L}},
Sección F, una realización de muestra de la invención para la transición desde una regla de enmascaramiento Add_{2^{L}} una regla de enmascaramiento I(-), y
Sección G, una realización de muestra de la invención para la transición desde la regla de enmascaramiento I(-) a la regla de enmascaramiento Add_{2^{L}}.
En el presente documento se utilizan los siguientes nombres y notaciones:
N\hskip0,4cm conjunto de números naturales
Z\hskip0,4cm conjunto de enteros
V(L) el conjunto de secuencias de bits de longitud L para L en N. Una secuencia de bits x \in V(L) también se considera como un número en el intervalo 0, 1, ..., 2^{L-1} en virtud del mapeado (x_{L-1}, ..., x_{0}) |\rightarrow x_{L-1}2^{L-1}+...+x_{0}, de tal manera que V(L) se corresponde con el conjunto de números {0, 1, ..., 2^{L-1}}.
x[i] El bit i^{primero/segundo/tercero/cuarto}x_{i} de x = (x_{L-1}, ..., x_{0}) \in V(L) para i = 0, ..., L-1.
x\oplus_{L}y Notación infija para Xor_{L} (x,y).
x +_{L}y Notación infija para Add_{L} (x,y).
Sub_{L} (x,y) el menor número no negativo z para el que se cumple que y +_{L}z = x.
x -_{L}y Notación infija para Sub_{L} (x,y).
\overline{x} El complemento de uno x\oplus_{L} (1, ..., 1); a menudo, simplemente se utiliza el término "complemento" en el presente documento en lugar de "complemento de uno".
300 (x, y) Función indicador para x, y en Z, teniendo la función indicador el valor 1 si y sólo si se aplica x < y, teniendo de otro modo el valor 0.
(x|y) Concatenación de las secuencias de bits de x e y.
A. Transición desde Add_{2^{L}} a Xor_{L} (ejemplo de comparación)
Los métodos descritos en las secciones A a C se refieren en cada caso a la transición desde una regla de enmascaramiento Add_{2^{L}} a una regla de enmascaramiento Xor_{L}. Supóngase L en N y M = 2^{L}; en la práctica, el valor de L es 8 ó 16 ó 32 en la mayoría de los casos.
Los parámetros de entrada de los tres métodos descritos en las secciones A a C son en cada caso los valores x, y y u, donde y es una representación enmascarada de un valor secreto d \in V(L) con una regla de enmascaramiento Add_{M} y una máscara x; lo que quiere decir que se cumple que x +_{M} d = y. El valor u \in V(L) designa la máscara, con respecto a la cual la representación enmascarada que ha de calcularse nuevamente ha a expresarse después de la transición de reglas de enmascaramiento.
Como sus salidas respectivas, los métodos descritos en las secciones A a C en casa caso generan un valor v \in V(L), que representa la representación enmascarada del valor secreto d con la regla de enmascaramiento Xor_{L} y la máscara u; lo que quiere decir que se cumple que u \oplus_{L} v = d.
El método descrito como un ejemplo de comparación en la presente sección A, funciona utilizando una tabla "grande". Debido a la alta demanda de espacio de memoria así como la gran cantidad de tiempo implicado en calcular la tabla, este método, cuando se ejecuta mediante un portador de datos portátil, puede llevarse a la práctica como mucho para valores de L pequeños, por ejemplo, hasta L=8. La descripción dada aquí sirve principalmente para proporcionar una mejor comprensión de las realizaciones de muestra que se describirán en las secciones B a G.
En el método descrito aquí, se genera una tabla T en etapas preparatorias (A.a) y (A. b), cuyas entradas se refieren a la transición desde la regla de enmascaramiento Add_{2^{L}}, con una máscara r seleccionada aleatoriamente, a la regla de enmascaramiento Xor_{L}, con una máscara s seleccionada aleatoriamente. Los números aleatorios r, s también se denominan "valores de enmascaramiento":
(A.a)
Seleccionar números aleatorios r, s \in V(L).
(A.b)
Generar la tabla T[0, ..., 2^{L} -1] con:
T(i) = Xor_{L} (Sub_{M} (i, r), s) para i = 0, ..., (2^{L} -1).
La transición de reglas de enmascaramiento tiene lugar en las etapas siguientes (A.1) a (A.3). En la etapa (A.1), la representación enmascarada y se convierte a partir de la máscara x en la máscara r dada por la tabla T. En la etapa (A.2), la transición desde la regla de enmascaramiento Add_{2^{L}} a la regla de enmascaramiento Xor_{L} tiene lugar por medio de un acceso a la tabla. En la etapa (A.3), el resultado intermedio o recogido de la tabla T se convierte a partir de la máscara s, tal como viene dado por la tabla T, en una representación enmascarada con respecto a la máscara u deseada:
(A.1)
Calcular i = Sub_{M} (Add_{M} (y, r), x ).
(A.2)
Fijar o = T(i).
(A.3)
Calcular v = Xor_{L} (s, Xor_{L} (o, u) ).
El método impide ataques DPA. Al ejecutar el método, los estados y las transiciones de estados de los bits de estado de un procesador son, en particular, independientes del valor secreto d.
Los métodos descritos en las secciones siguientes B a G representan un desarrollo adicional significativo del método que se describe en este momento. En particular, en estos métodos se utilizan tablas "más pequeñas", y el cálculo de elementos i y o de transición de máscaras está formado por varias operaciones de acceso a tablas.
Los siguientes comentarios respecto a posibles modificaciones del método aquí descrito son aplicables análogamente a los métodos descritos en las secciones B a G.
En una realización alternativa, puede preverse que la tabla T se construya utilizando T(i) = Xor_{L} (Add_{M} (i, r), s)) en lugar de T(i) = Xor_{L} (Sub_{M} (i, r), s). En este caso, se entiende que los cálculos adicionales necesitan adaptarse correspondientemente.
En una realización alternativa adicional, el cálculo i = Add_{M} (Sub_{M} (r, x), y) también puede realizarse en la etapa (A.1) en lugar de i = Sub_{M} (Add_{M} (y, r), x). En cada caso, ambas operaciones no deberían ejecutarse inmediatamente una después de la otra. Además, es ventajoso borrar el registro de estado del procesador en una etapa intermedia, puesto que de otro modo el cambio del bit de acarreo dependería de los datos.
En lugar de v = Xor_{L} (s, Xor_{L} (o, u)) en la etapa (A.3), también puede realizarse el cálculo v = Xor _{L} (o, Xor _{L} (s, u)) con los mismos efectos en realizaciones alternativas.
Además, en realizaciones alternativas del método, pueden ahorrarse algunas etapas de cálculo si se utiliza(n) x = r y/o u = s.
B. Transición desde Add_{2^{L}} a Xor_{L} (1ª realización de muestra)
En la realización de muestra que va a describirse ahora, el método de la sección A se adapta al efecto de que, en lugar de una tabla "grande", se utilizan una tabla T "pequeña" de conversión y una tabla C de comparación adicional. La tabla C de comparación contiene información referente a un acarreo que se produce en ciertas etapas de cálculo. Cada entrada en la tabla C de comparación está formada por sólo un único bit. En una implementación concreta del método, por ejemplo, cada ocho entradas de tabla pueden resumirse en un byte de memoria, o la tabla C de comparación puede configurarse utilizando bits que no son necesarios en otras estructuras de
datos.
El tamaño de las tablas T y C se fija normalmente cuando se implementan los métodos descritos en el presente documento. Con este fin, el número l de bits procesados en cada ejecución de conversión se seleccionada como un factor "pequeño" de L. En la presente realización de muestra, l es el ancho de bits del índice i de tabla, y el número de entradas en cada tabla T, C asciende a 2^{l}. Además, las entradas de la tabla T de conversión tienen el mismo ancho l de bits. En implementaciones típicas, por ejemplo, pueden utilizarse los valores (L, l) = (32, 8), (16, 8) o (16, 4). Además, supóngase k = L/l y m = 2^{l}. En realizaciones variantes, puede preverse que el tamaño 2^{l} de la tabla no se fije completamente durante la implementación, sino que en su lugar se determine el valor l, que posiblemente depende de un parámetro adecuado, sólo en tiempo de ejecución.
Al seleccionar el valor l, debería considerarse que valores l pequeños provocan una gran cantidad de esfuerzo de cálculo en el método de transición de máscaras y poco esfuerzo de cálculo en la preparación; para valores grandes de l, sucede lo contrario. Además, el gasto en cuanto a requisitos de memoria para las tablas T y C es más pequeño cuando menor sea el valor l seleccionado. En total, el valor l debería, como regla, fijarse de tal manera que, con requisitos de memoria aceptables, el tiempo de cálculo total necesario sea tan pequeño como sea posible.
Si se utilizan la inclusión natural de {0, ..., M-1} en {0,..., 2^{L'}-1} y la proyección natural de {0, ..., 2^{L'}-1} a {0, ..., M-1} para un valor L' > L, respectivamente, entonces también puede utilizarse una factorización L' = kl en realizaciones alternativas. Por ejemplo, esto en ventajoso en casos en los que L no tiene un factor l adecuado. Se entiende que las puntualizaciones hechas en el párrafo actual y los dos párrafos anteriores también son aplicables de manera correspondiente a los métodos descritos en las secciones C a G.
Las etapas (B.a) a (B.c) se ejecutan en la preparación del método aquí descrito. En las etapas (B.a) y (B.b), los valores de enmascaramiento r, s y el parámetro de ocultación z se seleccionan aleatoriamente, y en la etapa (B.c), las tablas T, C se forman basándose en estos valores. Al calcular ambas tablas T, C, en la etapa (B.c), los valores de enmascaramiento r, s se utilizan de una manera complementada si el parámetro de ocultación z presenta el valor "1", y los valores de enmascaramiento r, s se utilizan de una manera no complementada si el parámetro de ocultación z presenta el valor "0":
(B.a)
Seleccionar dos números aleatorios r, s \in V(l) como valores de enmascaramiento.
(B.b)
Seleccionar un bit aleatorio z \in {0, 1} como un parámetro de ocultación.
(B.c)
Generar las tablas T[0, ..., m-1] y C[0, ..., m-1] con:
1
La transición de reglas de enmascaramiento se realiza mediante las siguientes etapas (B.1) a (B.10). A este respecto, en las etapas (B.1) y (B.3) se llevan a cabo diferentes cálculos dependiendo del valor del parámetro de ocultación z. Las etapas (B.5) a (B.9) forman un bucle en el que una sección de ancho de l bits de dos resultados intermedios de ancho de L bits g y y' se procesa en cada paso. Como resultado, los l bits de la representación enmascarada v que va a calcularse se determinan en cada paso del bucle:
2
2000
\vskip1.000000\baselineskip
El método descrito aquí impide los ataques DPA puesto que, durante el transcurso del cálculo, ambos bits c y \tilde{c} así como todos de los bits de estado del procesador que ejecuta el cálculo así como los resultados intermedios son independientes del valor secreto d, dado que los valores aleatorios x, u, r, s, z varían de manera independiente.
Como regla, si son necesarias varias transiciones de reglas de enmascaramiento en un método criptográfico, las etapas preparatorias (B.a) a (B.c) necesitan ejecutarse sólo una vez, al principio. Las tablas T y C pueden utilizarse entonces para cada transición de reglas de enmascaramiento, por lo que el gasto global se reduce considerablemente. Cuando se utilizan las mismas máscaras x y/o u para un número de transiciones de reglas de enmascaramiento, entonces las etapas (B.1) y/o (B.2) pueden realizarse para todas estas transiciones juntas como etapas preparatorias.
En realizaciones variantes, puede preverse que la tabla T se defina utilizando T(i) = Xor_{l} (Add_{m} (i, r ...), s ...) en lugar de utilizar T(i) = Xor_{l} (Sub_{m} (i, r ...), s ...). En este caso, la definición de c y las etapas de cálculo del método adicional tienen, por supuesto, que ajustarse de manera correspondiente.
Según una realización alternativa adicional, el valor g en la etapa (B.1) también puede escribirse como una expresión en r e y en lugar de una expresión en r y x, si se realizan los ajustes correspondientes para las etapas de cálculo adicionales.
El método puede además modificarse con el efecto de que, en la etapas (B.1) y (B.2), en lugar de trabajar utilizando (r|...|r) y (s|...|s), se utilicen k valores diferentes para cada uno de los valores de enmascaramiento, es decir, que se haga uso de (r_{k}| ... |r_{1} ) y ( s_{k}| ...|s_{1} ). Sin embargo, en este caso es necesario generar y almacenar un número correspondiente de tablas T_{i} y C_{i} (i = 1, ..., k).
Las etapas (B.1) a (B.3) son, en el método aquí descrito, cálculos sobre V(L). En realizaciones alternativas, cada una de estas etapas puede ejecutarse, respectivamente, mediante k operaciones sobre V(l).
Como una alternativa a la etapa (B.6), (i_{k}| ... | i_{1}) = Sub_{M} (y, g) también puede calcularse antes de ejecutar el bucle. En este caso, puede establecerse i = i_{j} en el cuerpo del bucle, en cada paso. Sin embargo, este proceso de cálculo ofrece menos protección contra ataques DPA.
Como una alternativa a la generación única del bit aleatorio z como el parámetro de ocultación en la etapa preparatoria (B.b), el parámetro de ocultación z también puede seleccionarse nuevamente de manera aleatoria en cada transformación de regla de enmascaramiento. Las modificaciones necesarias para esta alternativa se explican en la sección C siguiente.
\vskip1.000000\baselineskip
C. Transición desde Add_{2^{L}} a Xor_{L} (2ª realización de muestra)
En el método descrito en la sección B anterior, la tabla C de comparación de un bit de ancho se genera en adición a la tabla T, que comprende valores V(l). Si el valor l es el mismo que el ancho de palabra del procesador utilizado, o es un múltiplo entero o un factor entero del mismo, puede ser problemático encontrar una estructura de datos adecuada para la tabla C. Por lo tanto, el método descrito en la presente sección, a diferencia del método de la sección B, se adapta de tal manera que las entradas en la tabla T sólo tienen un ancho de bits de l-1. Esto tiene la ventaja de que ambas tablas T y C pueden configurarse en un único campo en la memoria, presentando el campo m entradas de l bits cada una.
\newpage
De nuevo, el método utiliza los valores l, k y m como puntos de partida que, como regla, se han fijado cuando se implementa el método como una decisión de diseño. Como en la sección B, supóngase el valor l un factor "pequeño" de L, por ejemplo, (L, l) = (32, 8), (16, 8), (16, 4), y supóngase k = L/l y m=2^{l}. En la preparación se ejecutan las siguientes etapas (C.a) y (C.b):
(C.a) Seleccionar números aleatorios r \in V(l) y s \in V(l-1) como valores de enmascaramiento.
(C.b) Generar las tablas T[0, ..., m-1] y C[0, ..., m-1] con:
3
La operación "Sub_{m}(i, r) >> 1" en la etapa (C.b) designa, en este caso, desplazar su operando Sub_{m}(i, r) una posición de bit, concretamente a la derecha o a la izquierda, respectivamente, de tal manera que se pierde el bit menos significativo.
La transición de reglas de enmascaramiento se ejecuta mediante las siguientes etapas (C.1) a (C.12). En el método descrito en la sección B, las etapas (C.1) y (C.2) ya se ejecutaban en asociación con las etapas preparatorias (B.b) y (B.c), mientras que las etapas (C.3) a (C.12) corresponden en líneas generales a las etapas (B.1) a (B.10):
4
\vskip1.000000\baselineskip
Como la tabla T en el presente método contiene valores de V(l-1), se deja espacio en cada entrada para un bit adicional en cada una, que puede utilizarse para almacenar el valor de la tabla C. La etapa (C.10) puede ejecutarse entonces con una única operación de acceso a memoria. En total, el método es, por lo tanto, particularmente eficaz en relación con la aritmética computacional y el acceso al almacenamiento.
Las notas realizadas en la sección B anterior referentes al método allí descrito se aplican análogamente al presente método.
En la etapa (C.1) del método descrito aquí, el parámetro de ocultación z se elige nuevamente para cada transformación de máscara como un bit aleatorio. Esta técnica puede utilizarse análogamente para el método según la sección B. Por otro lado, la técnica descrita en la sección B, concretamente la técnica de seleccionar aleatoriamente el parámetro de ocultación z ya en las etapas preparatorias y dejar que el parámetro de ocultación z influya en las tablas T y C, también puede utilizarse en una realización alternativa del método que se describe en este momento.
En lugar del valor r'[0], un bit aleatorio, en una realización alternativa, también puede emplearse en la etapa (C.4) en el cálculo de h. Dicho bit aleatorio debe también utilizarse entonces en lugar de i[0] en la etapa (C.11).
D. Transición desde Add_{2^{L}} a Add_{2^{L}+1}
Las secciones D y E se refieren a la transición entre la regla de enmascaramiento Add_{2^{L}} y la regla de enmascaramiento Add_{2^{L}+1}. Las siguientes dos observaciones se utilizarán para M en N, donde la observación (*) es relevante para la presente sección y la observación (**) es relevante para la sección E:
6
A partir de las observaciones (*) y (**) puede derivarse que el resultado de comparación c depende significativamente del valor d que ha de mantenerse secreto. Por lo tanto, existe el problema de calcular Sub_{M+1}(b, c) o Add_{M}(b, c), respectivamente, de tal manera que no exista correlación entre el valor secreto d y los resultados intermedios y/o los bits de estado de un procesador, lo que resulta de las etapas individuales del cálculo.
Si el cálculo de 300(b, a) se soporta mediante una instrucción de comparación del procesador que es segura frente a DPA, entonces la transición de reglas de enmascaramiento puede tener lugar en ambas direcciones según las observaciones (*) y (**). A este respecto, los valores se utilizan preferiblemente de una manera complementada o no complementada, dependiendo de un bit aleatorio.
Sin embargo, en vista del tema que se trata, debería suponerse que el consumo de energía del procesador cuando se ejecuta una instrucción de comparación depende del resultado de la comparación o de la diferencia b-a, respectivamente. Los métodos descritos en la presente sección y en la siguiente sección realizan la transición de reglas de enmascaramiento para valores de módulo que tienen la forma de M = 2^{L}, L en N, de una manera que es segura frente a DPA. Tales valores de módulo son útiles en la práctica; frecuentemente se cumple que L = 8 o L = 16 o L = 32. Los requisitos de espacio de memoria de los métodos son moderados.
El método descrito en la presente sección recibe tres valores x, y y u como parámetros de entrada, donde y es una representación enmascarada de un valor secreto d \in V(L) con la regla de enmascaramiento Add_{M} y una máscara x; lo que quiere decir que se cumple que x +_{M}d = y. El valor u \in {0, 1, ..., M} \subset V(L+1) proporciona la máscara, con respecto a la cual la representación enmascarada que va a calcularse nuevamente ha de expresarse después de la transición de reglas de enmascaramiento. Como una salida, el método genera un valor v \in V(L+1) que representa la representación enmascarada del valor secreto d utilizando la regla de enmascaramiento Add_{M+1} y la máscara u; lo que quiere decir que se cumple que u +_{M+1}d = v.
De nuevo, se genera una tabla C de comparación en las etapas preparatorias del método (D.a) a (D.c), cuyo cálculo se basa en un parámetro de ocultación z seleccionado aleatoriamente y un valor de enmascaramiento r seleccionado aleatoriamente. En este caso, se ha fijado un factor "pequeño" l de L, por ejemplo (L, l) = (32, 8), (16, 8), (16, 4) cuando se implementa el método. En lo sucesivo, se hace referencia al valor L/l como k. Se hace referencia al valor máximo del índice i de tabla como m con m = 2^{l}; la tabla C de comparación comprende m+1 entradas, presentando cada entrada un bit:
7
La transición de reglas de enmascaramiento se ejecuta mediante las siguientes etapas (D.1) a (D.9). En este caso, en la etapa (D.1) se calcula una representación enmascarada b del valor d utilizando la máscara a. Las etapas (D.4) y (D.5) forman un bucle, durante el cual se calcula el valor de comparación c, expresado en una forma oculta como c' con c'=c \oplus_{l} z. En las etapas (D.6) a (D.8) la transición a la regla de enmascaramiento Add_{M+1} se lleva a cabo según la observación (*) calculando el valor Sub_{M+1}(b, c) de una manera oculta. En la etapa (D.9), mientras se mantiene la regla de enmascaramiento Add_{M+1}, la máscara a se transforma en la máscara u deseada:
8
Similar a los métodos según las secciones B y C, también es aconsejable, en el presente método, ejecutar el cálculo de (b'_{k} | ... | b'_{1} ) en las etapas (D.1), (D.2) y/o el cálculo de v = ( v_{k} | ... | v_{1} ) en la etapa (D. 9) individualmente para cada b'_{j} y v_{k}, respectivamente. Esto también puede realizarse dentro del bucle formado por las etapas (D.4) y (D.5).
En el cálculo oculto de Sub_{M+1}(b, c), c se resta de u en las etapas (D.6) a (D.8), y entonces se suma a b. En este caso, se utiliza la relación c = c' \oplus_{l} z. Debería tenerse cuidado de que c no se procese desenmascarado y también, de que no surjan otras dependencias entre z y c'.
Todos los cálculos pueden implementarse sin problemas de tal manera que no haya distinciones de casos que dependan de los datos o números aleatorios. Si también es necesaria una transición de reglas de enmascaramiento desde Add_{M} a Xor_{L} en el transcurso del método criptográfico, y si uno de los métodos descritos en las secciones B o C se utiliza con este fin, entonces la tabla C ya existiría, hasta la primera entrada que ha de añadirse, dado que se elige el mismo parámetro l.
El método, cuando se implementa cuidadosamente, impide los ataques DPA puesto que todos los valores c' y los bits de estado del procesador que se establecen y se despejan durante el transcurso del cálculo, son independientes del valor d que ha de protegerse.
Como una alternativa a la generación única del bit aleatorio z como un parámetro de ocultación en la etapa preparatoria (D.a), el parámetro de ocultación z también puede seleccionarse aleatoriamente nuevamente para cada transformación de regla de enmascaramiento. Las modificaciones necesarias para esto se explican en la siguiente sección E; son aplicables de manera correspondiente también al método descrito en la presente sección.
E. Transición desde Add_{2^{L}+1} a Add_{2^{L}}
El método descrito en la presente sección ejecuta una transformación de regla de enmascaramiento en una dirección opuesta a la dirección del método de la sección D. El presente método utiliza la observación (**) de la sección D anterior.
Supóngase L en N, y supóngase M = 2^{L}. El método recibe los valores x, y y u como valores de entrada, donde y es una representación enmascarada de un valor secreto d \in {0, 1,..., M} \subset V(L+1) con la regla de enmascaramiento Add_{M+1} y la máscara x; lo que quiere decir que se cumple que x +_{M+1}d = y. El valor u \in V(L) proporciona la máscara de la representación enmascarada que va a calcularse. Como su salida, el método genera un valor v \in V(L) para el que se cumple que u+_{M}d = v. Dicho de otro modo, v es la representación enmascarada del valor secreto d utilizando la regla de enmascaramiento Add_{M} y la máscara u.
El método se describe aquí utilizando los parámetros l, k y m, cuyos valores ya se han fijado, como regla, cuando se implementa el método. El valor l es un factor "pequeño" de L, por ejemplo (L, l) = (32, 8), (16, 8) o (16, 4). Los valores k y m vienen dados por k = L/l y m = 2^{l}. En las etapas preparatorias (E.a) y (E.b) del método, se genera una tabla C de comparación para un valor de enmascaramiento r seleccionado aleatoriamente:
(E.a)
Seleccionar un número aleatorio r \in V(l) como un valor de enmascaramiento.
(E.b)
Generar la tabla C[0, ..., m] con:
9
La transición de reglas de enmascaramiento se ejecuta mediante las siguientes etapas (E.1) a (E.11). Se determina un parámetro de ocultación z en la etapa (E.1), influyendo también el parámetro de ocultación z en los siguientes cálculos. En la etapa (E.3) se calcula una representación enmascarada b del valor d utilizando una máscara a, formada a partir de r y z. Las etapas (E.6) y (E.7) forman un bucle, durante el cual se calcula el valor de comparación c, expresado en una forma oculta como c'. En las etapas (E.8) a (E.10), la transición a la regla de enmascaramiento Add_{M} se lleva a cabo según la observación (**) calculando el valor Add_{M}(b,c) de una manera oculta. En la etapa (E.11), mientras se mantiene la regla de enmascaramiento Add_{M}, la máscara a se transforma en la máscara u
deseada:
10
Similar a los métodos según las secciones B y C, también es aconsejable en el presente método ejecutar el cálculo de (b'_{k}|...| b'_{1} ) en las etapas (E.3), (E.4) y/o el cálculo de v = ( v_{k} | ... | v_{1}) en la etapa (E.11) individualmente para cada b'_{j} y v_{k}, respectivamente. Este cálculo también puede tener lugar dentro del bucle formado por las etapas (E.6) y (E.7).
En el cálculo oculto de Add_{M}(b, c), en las etapas (E.8) a (E.10), c se suma a u, que entonces se suma a b. En este caso, se utiliza la relación c = c' \oplus_{l} b_{k+1} \oplus_{l} z. Debería tenerse cuidado de que c no se procese desenmascarado y también de que no se produzcan otras dependencias entre z y c.
Todos los cálculos pueden implementarse sin problemas de tal manera que no haya distinciones de casos que dependan de los datos o números aleatorios. Si también es necesario un intercambio de regla de enmascaramiento desde Add_{M} a Xor_{L} en el transcurso del método criptográfico, y si uno de los métodos descritos en las secciones B o C se utiliza con este fin, entonces la tabla C ya existiría, hasta la primera entrada que ha de añadirse, siempre que se elija el mismo parámetro l.
En una realización alternativa, la etapa (E.8) puede implementarse como 100 también es posible una modificación correspondiente para el método descrito en la sección D.
En el método descrito aquí, el parámetro de ocultación z se selecciona nuevamente en la etapa (E.1) como un bit aleatorio para cada transformación de máscara. Esta técnica puede utilizarse análogamente en el método según la sección D. Por otro lado, la técnica descrita en la sección D, concretamente la técnica de seleccionar aleatoriamente el parámetro de ocultación z ya en las etapas preparatorias y dejar que el parámetro de ocultación z influya en la tabla C de comparación, también puede utilizarse en una realización alternativa del método que se describe en este momento.
F. Transición desde Add_{2^{L}} a I(-)
Las secciones F y G se refieren a la transición entre la regla de enmascaramiento Add_{2^{L}} y una regla de enmascaramiento a la que se hace referencia en el presente documento como la regla de enmascaramiento I(-): esta transición es necesaria, en particular, para el método IDEA y la multiplicación IDEA definidos en la introducción del presente documento.
Para M en N, supóngase que la transformación I_{M}: {0, 1, ..., M-1} \rightarrow {1, 2, 3, ..., M} se define por I_{M} (0) = M e I_{M} (d) = d para d \neq 0. Para M = 2^{16}, I_{M} corresponde a la transformación I del método IDEA definido en la introducción del presente documento. Por simplicidad, en lugar de I_{M}, simplemente se utilizará en lo sucesivo la designación I.
Según la regla de enmascaramiento I(-), el valor d que ha de protegerse se representa mediante una representación enmascarada y utilizando una máscara x, que normalmente se selecciona aleatoriamente, de tal manera que se cumple que y = Add_{M+1} (x, I(d)).
Los métodos de transición descritos en las secciones F y G se basan en las dos observaciones siguientes para M en N, que son similares a las dos observaciones (*) y (**) ya dadas anteriormente:
11
101
Similar a las secciones D y E anteriores, existe el problema de calcular Sub_{M+1} (b, c) o Add_{M} (b, c), respectivamente, de una manera que sea segura frente a DPA.
El método descrito en la presente sección está previsto para M = 2^{L}. El método recibe tres valores x, y y u como parámetros de entrada, donde y es una representación enmascarada de un valor secreto d \in V(L) con la regla de enmascaramiento Add_{M} y una máscara x; lo que quiere decir que se cumple que x +_{M}d = y. El valor u \in {0, 1, ..., M} \subset V(L+1) proporciona la máscara sobre la cual la representación enmascarada, que va a calcularse nuevamente, ha de expresarse después de la transición de reglas de enmascaramiento. Como una salida, el método genera un valor v \in V(L+1), que representa la representación enmascarada del valor secreto d utilizando la regla de enmascaramiento I(-) y la máscara u; lo que quiere decir que se cumple que u +_{M+1} I(d) = v.
El método comprende las etapas preparatorias (F.a) y (F.b) así como las etapas (F.1) a (F.11) para la transición de reglas de enmascaramiento. Debido a la similitud de las observaciones (*) y (***), el presente método es muy similar al descrito en la sección D. La diferencia ocasionada por la regla de enmascaramiento I(-) radica simplemente en la etapa (F.5), que se modifica comparada con la etapa (D.3).
Una diferencia adicional al método descrito en la sección D es que el parámetro de ocultación z no sólo se selecciona aleatoriamente una vez en una etapa preparatoria, sino que se selecciona nuevamente en cada transformación de regla de enmascaramiento. Esta posibilidad ya se citó en la sección D como una realización alternativa del método que se describe en dicha sección, y el presente método puede servir como un modelo para cambios necesarios. Por supuesto, el presente método, similar al de la sección D o también al descrito en la siguiente sección G, puede modificarse de tal manera que el parámetro de ocultación z se determine anteriormente, concretamente en las etapas
preparatorias.
El método se describe aquí utilizando los parámetros l, k y m, cuyos valores, como regla, ya se han fijado cuando se implementa el método. El valor l es un factor "pequeño" de L, por ejemplo, (L, l) = (16, 8) o (16, 4). Los valores k y m vienen dados por k = L/l y m = 2^{l}. Las etapas preparatorias (F.a) y (F.b) del método son:
(F.a)
Seleccionar un número aleatorio rV(l) como un valor de enmascaramiento.
(F.b)
Generar la tabla de comparación C [0, ..., m] con:
\vskip1.000000\baselineskip
12
\vskip1.000000\baselineskip
Para la transición de reglas de enmascaramiento, se ejecutan las siguientes etapas (F.1) a (F.11):
\vskip1.000000\baselineskip
13
14
\vskip1.000000\baselineskip
Las notas e indicaciones dadas en la sección D se aplican de manera correspondiente al método descrito aquí.
\vskip1.000000\baselineskip
G. Transición desde I(-) a Add_{2^{L}}
El método descrito en la presente sección ejecuta una transformación de regla de enmascaramiento en una dirección que es opuesta a la dirección del método en la sección F. El presente método utiliza la observación (****) de la sección F anterior.
Supóngase L en N, y supóngase M = 2^{L}. El método recibe los valores x, y y u como valores de entrada, donde y es una representación enmascarada de un valor secreto d \in V(L) con la regla de enmascaramiento I(-) y la máscara x; lo que quiere decir que se cumple que I(d)+_{M+1}x=y. El valor u \in V(L) proporciona la máscara de la representación enmascarada que va a calcularse. Como una salida, el método genera un valor v \in V(L) para el que se cumple
u +_{M}d = v. Dicho de otro modo, v es la representación enmascarada del valor secreto d con la regla de enmascaramiento Add_{M} y la máscara u.
El método comprende las etapas preparatorias (G.a) a (G.c) y las etapas (G.1) a (G.9) para la transición de reglas de enmascaramiento. Debido a la similitud de las observaciones (**) y (****), el presente método es muy similar al descrito en la sección E. La diferencia ocasionada por la regla de enmascaramiento I(-) radica simplemente en las etapas (G.1) y (G.3), que se modifican comparadas con las etapas (E.3) y (E.5) correspondientes.
Una diferencia adicional al método descrito en la sección E es que, en el presente método, el parámetro de ocultación z no se selecciona aleatoriamente en cada transformación de regla de enmascaramiento, sino sólo una vez en la etapa preparatoria (G.a). Esta posibilidad ya se citó en la sección E como una realización alternativa del método que se describe en dicha sección, y el presente método puede servir como un modelo para los cambios necesarios. Por supuesto, el presente método, similar al descrito en la sección E o también al descrito en la sección F anterior, puede modificarse de tal manera que la transformación de regla de enmascaramiento real comprenda la determinación del parámetro de ocultación z.
El método se describe aquí utilizando los parámetros l, k y m, cuyos valores ya se han fijado, como regla, cuando se implementa el método. El valor l es un factor "pequeño" de L, por ejemplo (L, l) = (16, 8) o (16, 4). Los valores k y m vienen dados por k = L/l y m = 2^{l}. Las etapas preparatorias (G.a) a (G.c) del método son:
15
\vskip1.000000\baselineskip
Para la transición de reglas de enmascaramiento, se ejecutan las siguientes etapas (G.1) a (G.9):
16
Las notas e indicaciones dadas en las sección E se aplican de manera correspondiente al método descrito aquí.
A partir del ejemplo dado en las siguientes tablas 1 a 4 está claro que en el método que se describe en este momento, todos los valores u' y todos los valores de bits de estado de un procesador que se producen durante el transcurso del cálculo sin independientes del valor secreto d. Por lo tanto, el método, cuando se implementa cuidadosamente, es seguro frente a un ataque DPA.
Los detalles citados en las secciones A a G anteriores no deberían tomarse como restricciones del alcance de protección de la invención, sino que en su lugar deberían servir como ejemplos de realizaciones preferidas. Muchas otras modificaciones son posibles y obvias para el experto. Por tanto, los métodos descritos pueden modificarse fácilmente, por ejemplo, de tal manera que puedan utilizarse para la regla de enmascaramiento Sub_{M} ya mencionada en la introducción del presente documento, en lugar de la regla de enmascaramiento Add_{M}. Además, las modificaciones y notas expuestas anteriormente en asociación con un método de transición también son, como regla, aplicables de manera correspondiente a los otros métodos. Por lo tanto, el alcance de la invención no debería determinarse por las realizaciones de muestra descritas, sino por las reivindicaciones adjuntas y sus equivalentes.
TABLA 1 Ejemplo de I(-) a Add_{2^{L}} con L = 4, l = 2 z = 0, a = (r|r)
\vskip1.000000\baselineskip
17
TABLA 2 Ejemplo de I(-) a Add_{2^{L}} con L = 4, l = 2 z = 0, a = (r|r)
\vskip1.000000\baselineskip
18
TABLA 3 Ejemplo de I(-) a Add_{2^{L}} con L = 4, l = 2 z = 1, a = (r'|r')
\vskip1.000000\baselineskip
20
TABLA 4 Ejemplo de I(-) a Add_{2^{L}} con L = 4, l = 2 z = 1, a = (r'|r')
\vskip1.000000\baselineskip
22

Claims (16)

1. Método implementado por ordenador para la transición desde una primera representación enmascarada (y) de un valor (d) que ha de mantenerse secreto a una segunda representación enmascarada (v) del valor (d), en el que se impide que se espíe el valor (d) que ha de mantenerse secreto, en el que la primera representación enmascarada (y) se basa en una primera regla de enmascaramiento que presenta una primera máscara (x) y la segunda representación enmascarada (v) se basa en una segunda regla de enmascaramiento que presenta una segunda máscara (u), y en el que, al calcular la segunda representación enmascarada (v), se utiliza al menos una tabla (T, C) previamente calculada que presenta una pluralidad de entradas y el cálculo se lleva a cabo dependiendo de al menos un parámetro de ocultación (z).
2. Método según la reivindicación 1, caracterizado porque cada entrada en la tabla o cada entrada en al menos una de las tablas (T, C), respectivamente, depende de al menos un valor de enmascaramiento (r, s) predeterminado.
3. Método según la reivindicación 2, caracterizado porque la tabla o al menos una de las tablas, respectivamente, es una tabla (C) de comparación que, para cada índice (i) de tabla, proporciona el resultado de una comparación entre un valor dependiente del índice (i) de tabla y un valor dependiente del valor de enmascaramiento o al menos uno de los valores de enmascaramiento (r, s), respectivamente.
4. Método implementado por ordenador para la transición desde una primera representación enmascarada (y) de un valor (d) que ha de mantenerse secreto a una segunda representación enmascarada (v) del valor (d), en el que se impide que se espíe el valor (d) que ha de mantenerse secreto, en el que la primera representación enmascarada (y) se basa en una primera regla de enmascaramiento que presenta una primera máscara (x) y la segunda representación enmascarada (v) se basa en una segunda regla de enmascaramiento que presenta una segunda máscara (u), comprendiendo el método la etapa de ejecutar un cálculo utilizando al menos una tabla (C) de comparación que proporciona, para cada índice (i) de tabla, el resultado de una comparación entre un valor dependiente del índice (i) de tabla y un valor dependiente de al menos un valor de enmascaramiento (r, s).
5. Método según la reivindicación 3 o la reivindicación 4, caracterizado porque el valor dependiente del valor de enmascaramiento o al menos uno de los valores de enmascaramiento (r, s), respectivamente, depende del valor de enmascaramiento (r, s) o bien complementado o bien no complementado, dependiendo del parámetro de ocultación (z) o de al menos uno de los parámetros de ocultación, respectivamente.
6. Método según una cualquiera de las reivindicaciones 3 a 5, caracterizado porque cada entrada en la tabla (C) de comparación proporciona un valor binario.
7. Método según una cualquiera de las reivindicaciones 3 a 6, caracterizado porque la tabla (C) de comparación se aplica repetidamente a secciones sucesivas de un resultado intermedio, con el fin de determinar valores de acarreo respectivos.
8. Método según una cualquiera de las reivindicaciones 1 a 7, caracterizado porque al determinar la segunda representación enmascarada (v), se utiliza al menos un resultado intermedio de una manera complementada o no complementada, dependiendo del parámetro de ocultación (z) o de al menos uno de los parámetros de ocultación, respectivamente.
9. Método según una cualquiera de las reivindicaciones 1 a 8, caracterizado porque un índice (i) de tabla de la tabla o de al menos una de las tablas (T, C), respectivamente, presenta una longitud de bits que asciende a una fracción de la longitud de bits de la primera y/o la segunda representación enmascarada (y, v), y porque al determinar la segunda representación enmascarada (v) tiene lugar un acceso repetido a la tabla o al menos una de las tablas (T, C), respectivamente.
10. Método según una cualquiera de las reivindicaciones 1 a 9, caracterizado porque el método comprende las etapas de:
- determinar una tercera representación enmascarada del valor (d) que ha de mantenerse secreto, donde la tercera representación enmascarada se basa en la primera regla de enmascaramiento que presenta una tercera máscara;
- transformar la tercera representación enmascarada en una cuarta representación enmascarada del valor (d) que ha de mantenerse secreto utilizando la tabla o al menos una de las tablas (T, C), respectivamente, donde la cuarta representación enmascarada se basa en la segunda regla de enmascaramiento que presenta una cuarta máscara; y
- determinar la segunda representación enmascarada (v) del valor (d) que ha de mantenerse secreto a partir de la cuarta representación enmascarada.
11. Método según una cualquiera de las reivindicaciones 1 a 10, caracterizado porque la segunda máscara (u) puede seleccionarse libremente.
12. Método según una cualquiera de las reivindicaciones 1 a 11, caracterizado porque la tabla o al menos una de las tablas (T, C), respectivamente, se predetermina o se calcula en una etapa preparatoria del método.
13. Método según una cualquiera de las reivindicaciones 1 a 12, caracterizado porque, mientras se ejecuta el método, los valores de bits de estado de un procesador son estadísticamente independientes del valor (d) que ha de mantenerse secreto.
14. Método según una cualquiera de las reivindicaciones 1 a 13, caracterizado porque el método sirve para la protección contra ataques SPA y/o DPA.
15. Producto de programa informático que presenta una pluralidad de instrucciones de programa que provocan que al menos un procesador ejecute un método según una cualquiera de las reivindicaciones 1 a 14.
16. Dispositivo, en particular un portador de datos portátil, que presenta al menos un procesador y al menos una memoria, donde el dispositivo está adaptado para ejecutar un método según una cualquiera de las reivindicaciones 1 a 14.
ES04764804T 2003-09-05 2004-09-03 Transicion entre representaciones enmascaradas de un valor durante calculos criptograficos. Expired - Lifetime ES2299857T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10341096A DE10341096A1 (de) 2003-09-05 2003-09-05 Übergang zwischen maskierten Repräsentationen eines Wertes bei kryptographischen Berechnungen
DE10341096 2003-09-05

Publications (1)

Publication Number Publication Date
ES2299857T3 true ES2299857T3 (es) 2008-06-01

Family

ID=34223401

Family Applications (1)

Application Number Title Priority Date Filing Date
ES04764804T Expired - Lifetime ES2299857T3 (es) 2003-09-05 2004-09-03 Transicion entre representaciones enmascaradas de un valor durante calculos criptograficos.

Country Status (6)

Country Link
US (1) US8290145B2 (es)
EP (1) EP1664979B1 (es)
AT (1) ATE384302T1 (es)
DE (2) DE10341096A1 (es)
ES (1) ES2299857T3 (es)
WO (1) WO2005024606A1 (es)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE521432C2 (sv) * 1999-06-03 2003-11-04 Alfa Laval Corp Ab Sätt att ställa in ett gränsskikts radiella nivå i en centrifugalseparator
EP1836554B1 (en) * 2004-12-01 2008-04-16 Telecom Italia S.p.A. Method and related device for hardware-oriented conversion between arithmetic and boolean random masking
DE102004061312B4 (de) * 2004-12-20 2007-10-25 Infineon Technologies Ag Vorrichtung und Verfahren zum Detektieren eines potentiellen Angriffs auf eine kryptographische Berechnung
CA2688592C (en) * 2007-10-01 2014-04-15 Research In Motion Limited Substitution table masking for cryptographic processes
US8473751B2 (en) * 2007-12-13 2013-06-25 Oberthur Technologies Method for cryptographic data processing, particularly using an S box, and related device and software
JP4837058B2 (ja) * 2009-03-10 2011-12-14 株式会社東芝 演算装置及びプログラム
EP2634953A1 (en) * 2012-03-02 2013-09-04 Gemalto SA Countermeasure method against side channel analysis for cryptographic algorithms using boolean operations and arithmetic operations
FR2994608B1 (fr) * 2012-08-16 2015-09-04 Oberthur Technologies Procede de traitement cryptographique comprenant un acces securise a une pluralite de tables de substitution, dispositifs et produit programme d'ordinateur correspondants.
US9886593B2 (en) * 2013-08-02 2018-02-06 Yevgeniya (Virginia) Mushkatblat Data masking systems and methods
US11126933B2 (en) * 2015-04-28 2021-09-21 Ncr Corporation Reservation processing
FR3048529B1 (fr) * 2016-03-01 2018-03-23 Ingenico Group Procede de modulation d'acces a une ressource, dispositif et programme correspondant
DE102017002153A1 (de) * 2017-03-06 2018-09-06 Giesecke+Devrient Mobile Security Gmbh Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
US11985225B2 (en) * 2018-05-14 2024-05-14 Nchain Licensing Ag Computer-implemented systems and methods for using veiled values in blockchain
DE102022115195A1 (de) 2022-06-17 2023-12-28 Infineon Technologies Ag Verarbeitung von kryptografischen Daten

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59200549A (ja) * 1983-04-26 1984-11-13 Fujitsu Ltd ブロツク化デ−タのスクランブル方式
FR2650458B1 (fr) * 1989-07-25 1991-10-11 Trt Telecom Radio Electr Procede de traitement d'une permutation irreguliere de donnees protegees par chiffrement
US5452358A (en) * 1994-02-08 1995-09-19 Apple Computer, Inc. Method and apparatus for improving the security of an electronic codebook encryption scheme utilizing a data dependent encryption function
DE19822217B4 (de) 1998-05-18 2018-01-25 Giesecke+Devrient Mobile Security Gmbh Zugriffsgeschützter Datenträger
IL139935A (en) * 1998-06-03 2005-06-19 Cryptography Res Inc Des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
JP2001013870A (ja) * 1999-06-29 2001-01-19 Nec Corp 共通鍵暗号化又は復号化方法と、共通鍵暗号化又は復号化プログラムを記録した記憶媒体
US6295606B1 (en) * 1999-07-26 2001-09-25 Motorola, Inc. Method and apparatus for preventing information leakage attacks on a microelectronic assembly
AU773982B2 (en) * 1999-10-25 2004-06-10 Cyphermanx Consultants Limited Method for making data processing resistant to extraction of data by analysis of unintended side-channel signals
FR2809893B1 (fr) * 2000-06-02 2002-11-15 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique sur courbe elliptique
US20020114451A1 (en) * 2000-07-06 2002-08-22 Richard Satterfield Variable width block cipher
US7000111B1 (en) * 2000-11-07 2006-02-14 Ericsson Inc. Method for masking secret multiplicands
FR2818472B1 (fr) * 2000-12-19 2003-02-14 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
JP4596686B2 (ja) * 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
FR2828608B1 (fr) * 2001-08-10 2004-03-05 Gemplus Card Int Procede securise de realisation d'une operation d'exponentiation modulaire
US7142670B2 (en) * 2001-08-14 2006-11-28 International Business Machines Corporation Space-efficient, side-channel attack resistant table lookups
US7257590B2 (en) * 2001-08-29 2007-08-14 Nokia Corporation Method and system for classifying binary strings
DE102004023902A1 (de) 2004-05-13 2005-12-01 Giesecke & Devrient Gmbh Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung

Also Published As

Publication number Publication date
EP1664979A1 (de) 2006-06-07
WO2005024606A1 (de) 2005-03-17
ATE384302T1 (de) 2008-02-15
DE502004005976D1 (de) 2008-03-06
EP1664979B1 (de) 2008-01-16
US20070058800A1 (en) 2007-03-15
DE10341096A1 (de) 2005-03-31
US8290145B2 (en) 2012-10-16

Similar Documents

Publication Publication Date Title
ES2299857T3 (es) Transicion entre representaciones enmascaradas de un valor durante calculos criptograficos.
Aranha et al. LadderLeak: Breaking ECDSA with less than one bit of nonce leakage
Longa et al. Four-dimensional gallant-lambert-vanstone scalar multiplication
Goundar et al. Scalar multiplication on Weierstraß elliptic curves from Co-Z arithmetic
US20100058477A1 (en) System and method for revising boolean and arithmetic operations
Kammler et al. Designing an ASIP for cryptographic pairings over Barreto-Naehrig curves
EP2884387B1 (en) Efficient modular addition resistant to side-channel attacks
US20090310775A1 (en) Using a single instruction multiple data (SIMD) instruction to speed up galois counter mode (GCM) computations
PT1068695E (pt) PROCESSO DE PROTECÆO DE UM CONJUNTO ELECTRËNICO DE CRIPTOGRAFIA COM CHAVE SECRETA CONTRA OS ATAQUES POR ANáLISE FSICA
KR100442218B1 (ko) 몽고메리의 알고리즘을 이용한 멱승 잉여 연산기
CN106656467A (zh) 加密装置及方法
Yang et al. Symmetric key cryptography on modern graphics hardware
Hutter et al. NaCl’s crypto_box in hardware
Guinet et al. Arybo: Manipulation, canonicalization and identification of mixed boolean-arithmetic symbolic expressions
Jalali et al. NEON SIKE: Supersingular isogeny key encapsulation on ARMv7
US20050232416A1 (en) Method and device for determining a result
US20080010332A1 (en) EFFICIENT COMPUTATION OF THE MODULO OPERATION BASED ON DIVISOR (2n-1)
Walter Some security aspects of the MIST randomized exponentiation algorithm
Milo et al. A fast, GPU based, dictionary attack to OpenPGP secret keyrings
Brumley Faster software for fast endomorphisms
Oliveira et al. Software implementation of Koblitz curves over quadratic fields
Regazzoni et al. Instruction set extensions for secure applications
Seo et al. SIKE in 32-bit ARM processors based on redundant number system for NIST level-II
Xu et al. High-throughput block cipher implementations with SIMD
Pereida García et al. Size, Speed, and Security: An Ed25519 Case Study