Procedimiento y dispositivo de ejecución de un cálculo criptográfico.

Procedimiento de ejecución de un cálculo criptográfico en un componente electrónico, según un algoritmo criptográfico determinado que incluye al menos una operación con clave secreta

(102) a realizar sobre un bloque de datos (101) con una clave criptográfica secreta (103) que comprende m bloques de clave criptográfica secreta de n bits, y una operación no lineal (107), comprendiendo dicho procedimiento, para un bloque de clave criptográfica secreta dado, las etapas siguientes consistentes en:

- determinar 2n-1 claves secretas secundarias diferentes (105) sobre n bits, siendo cada una diferente de dicho bloque de clave criptográfica secreta;

- realizar dicha operación con clave secreta (102) con dicho bloque de clave criptográfica secreta (103) y con dichas claves secretas secundarias sobre un bloque de datos (101) y obtener respectivamente un bloque de datos en curso de cifrado (104) y 2n-1 bloques de datos secundarios (106);

- realizar dicha operación no lineal (107) sobre dicho bloque de datos en curso de cifrado (104) y sobre dichos bloques de datos secundarios (106);

- proporcionar un bloque de datos cifrado (108) a partir del bloque de datos en curso de cifrado

Tipo: Patente Internacional (Tratado de Cooperación de Patentes). Resumen de patente/invención. Número de Solicitud: PCT/FR2005/001773.

Solicitante: MORPHO.

Nacionalidad solicitante: Francia.

Dirección: 11 Boulevard Galliéni 92130 Issy Les Moulineaux FRANCIA.

Inventor/es: PELLETIER,Hervé.

Fecha de Publicación: .

Clasificación Internacional de Patentes:

  • SECCION H — ELECTRICIDAD > TECNICA DE LAS COMUNICACIONES ELECTRICAS > TRANSMISION DE INFORMACION DIGITAL, p. ej. COMUNICACION... > Disposiciones para las comunicaciones secretas o... > H04L9/06 (utilizando el aparato de cifrado registros de desplazamiento o memorias para la codificación por bloques, p. ej. sistema DES)

PDF original: ES-2511615_T3.pdf

 

google+ twitter facebook

Fragmento de la descripción:

Procedimiento y dispositivo de ejecución de un cálculo criptográfico El presente invento se refiere al dominio de la criptografía y más particularmente a la protección de la confidencialidad de las claves utilizadas por algoritmos criptográficos.

Los algoritmos criptográficos tienen por objeto cifrar datos. Tales algoritmos comprenden generalmente un encadenamiento de varias operaciones, o cálculos, que se aplican sucesivamente sobre un dato a cifrar con el fin de obtener un dato cifrado. Estos algoritmos utilizan claves secretas.

Tales algoritmos criptográficos pueden sufrir "ataques" que pretenden violar la confidencialidad de claves utilizadas. Hoy en día se conocen numerosos tipos de ataques.

Así, ciertos ataques están fundados sobre fugas de información detectadas durante la ejecución del algoritmo de cifrado. Están generalmente basados en una correlación entre las fugas de informaciones detectadas durante el tratamiento por el algoritmo de cifrado del dato y de la clave o de las claves secretas utilizadas. Se conocen así ataques de DPA, acrónimo de "Análisis de Potencia Diferencial" ("Differential Power Analysis" en ingles) . Estos últimos requieren en general un conocimiento de los datos de salida cifrados. Se conocen igualmente ataques de SPA, acrónimo de "Análisis Simple de Potencia" ("Simple Power Analysis" en ingles) basados en un análisis de un simple gráfico de consumo de potencia como se ha descrito en el documento "Analizar de manera inteligente la simplicidad y la potencia de análisis simple de potencia en Tarjetas Inteligentes", Rita Mayer-Sommer división de ingeniería eléctrica ETH Zürich, 2000.

Un algoritmo criptográfico comprende de manera general varias operaciones lineales y/o no lineales. Para un dato inicial a cifrar, se obtiene un dato intermedio en curso de cifrado después de cada una de las operaciones del algoritmo.

Así, un algoritmo de tipo DES, acrónimo de "Norma de Cifrado de Datos" ("Data Encr y ption Standard" en ingles) o aún el algoritmo AES, acrónimo de "Norma de Cifrado Avanzada" ("Advanced Encr y ption Standard" en ingles) comprende operaciones no lineales. Los ataques de DPA y SPA se revelan como particularmente pertinentes contra el algoritmo de AES durante la ejecución de las operaciones no lineales.

Se han propuesto ya varios procedimientos de protección de algoritmos criptográficos de este tipo, en particular por enmascaramiento de los datos en curso de cifrado manipulados en el algoritmo de AES. Las operaciones no lineales son generalmente implementadas en forma de tablas de sustitución. Así, una operación no lineal correspondiente a una tabla de sustitución tab[i], aplicada a un dato x puede escribirse en la forma siguiente:

y = tab[x].

A veces es complejo enmascarar un dato en el curso de una operación no lineal con una máscara de valor aleatorio.

El documento FR 2 831 739 A describe un procedimiento de protección de un cálculo de cifrado según el algoritmo DES contra ataques de DPA o SPA. Este documento propone añadir a la operación realizada con la clave secreta una o varias operaciones realizadas con claves ficticias. Las claves pueden ser diferentes o idénticas entre sí.

El documento DE 102 23 175 A describe un procedimiento similar proponiendo una sola clave ficticia.

El presente invento pretende proponer un método fácil de implementar para proteger eficazmente ejecuciones de cálculos de los algoritmos criptográficos basados en al menos una clave secreta contra ataques de DPA o aún de SPA.

Un primer aspecto del invento propone un procedimiento de ejecución de un cálculo criptográfico en un componente electrónico, según un algoritmo criptográfico determinado que incluye al menos una operación con clave secreta a realizar con una clave criptográfica secreta que comprende m bloques de clave criptográfica secreta de n bits sobre un bloque de datos, donde m y n son números enteros positivos. El procedimiento comprende, para un bloque de clave criptográfica secreta dado, las etapas siguientes consistentes en:

- determinar 2n-1 claves secretas secundarias diferentes sobre n bits, siendo cada una diferente de dicho bloque de clave criptográfica secreta;

- realizar dicha operación con clave secreta con dicho bloque de clave criptográfica secreta y con dichas claves secretas secundarias sobre un bloque de datos y obtener respectivamente un bloque de datos en curso de

2

cifrado y 2n-1 bloques de datos secundarios;

- realizar dicha operación no lineal sobre dicho bloque de datos en curso de cifrado y sobre dichos bloques de datos secundarios;

- proporcionar un bloque de datos cifrado a partir del bloque de datos en curso de cifrado.

Se señala que las clave secretas secundarias son claves ficticias.

Gracias a estas disposiciones, se generan, además de las fugas de información unidas a los cálculos criptográficos ejecutados sobre un bloque de datos en curso de cifrado, fugas de información unidas a los cálculos criptográficos ejecutados sobre un bloque de datos secundarios. Un análisis de tales fugas de información es por este hecho más complejo y requiere por tanto más tiempo que el análisis de fugas de información durante la ejecución de cálculos criptográficos sobre el bloque de datos en curso de cifrado únicamente. Se protege así la confidencialidad de las claves criptográficas secretas. La complejidad de un ataque de tal algoritmo aumenta con el número de veces en que se realiza la operación 102 con clave secreta con una clave secreta secundaria ficticia.

Tal procedimiento pretende hacer aparecer los sesgos de correlación para hacer los ataques de SPA o DPA más largos o sea imposibles.

Así, en un modo de realización del presente invento, a fin de garantizar una mejor confidencialidad del algoritmo, para un bloque de clave criptográfica secreta, se determinan todos los valores posibles de claves en n bits, es decir 2n valores, o aún 2n -1 claves secretas secundarias ficticias en n bits diferentes del bloque de clave criptográfica secreta. Luego, se realizan la operación con clave secreta con la clave criptográfica secreta e igualmente todas estas claves secretas secundarias determinadas. Se obtiene entonces un bloque de datos en curso de cifrado y 2n -1 bloques de datos secundarios sobre los que se realiza la operación no lineal. En este caso, las claves criptográficas secretas no son detectables.

En un modo de realización del invento, el procedimiento comprende, para un bloque de clave criptográfica secreta, las etapas que consisten en:

- determinar y disponer aleatoriamente las claves secretas secundarias en una tabla inicial que comprende dicho bloque de clave criptográfica secreta;

- almacenar en memoria la dirección correspondiente a dicho bloque de clave criptográfica secreta en la tabla inicial;

- aplicar la operación con clave secreta al bloque de datos con las claves de la tabla inicial y obtener una primera tabla transformada de 2n primeros elementos, correspondiendo cada primer elemento al resultado de la operación con clave secreta aplicada al bloque de datos con la clave situada en la tabla inicial en la misma dirección que dicho primer elemento;

- aplicar dicha operación no lineal a los elementos de dicha primera tabla transformada y obtener una segunda tabla transformada de 2n segundos elementos, correspondiendo cada segundo elemento al resultado de la operación no lineal aplicada al primer elemento situado en la misma dirección en la primera tabla transformada que dicho segundo elemento;

- recuperar, en la segunda tabla transformada, el elemento correspondiente al bloque de datos en curso de cifrado situado en la dirección de dicho bloque... [Seguir leyendo]

 


Reivindicaciones:

1. Procedimiento de ejecución de un cálculo criptográfico en un componente electrónico, según un algoritmo criptográfico determinado que incluye al menos una operación con clave secreta (102) a realizar sobre un bloque de datos (101) con una clave criptográfica secreta (103) que comprende m bloques de clave criptográfica secreta de n bits, y una operación no lineal (107) , comprendiendo dicho procedimiento, para un bloque de clave criptográfica secreta dado, las etapas siguientes consistentes en:

- determina.

2. 1 claves secretas secundarias diferentes (105) sobre n bits, siendo cada una diferente de dicho bloque de clave criptográfica secreta;

- realizar dicha operación con clave secreta (102) con dicho bloque de clave criptográfica secreta (103) y con dichas claves secretas secundarias sobre un bloque de datos (101) y obtener respectivamente un bloque de datos en curso de cifrado (104) .

2. 1 bloques de datos secundarios (106) ;

- realizar dicha operación no lineal (107) sobre dicho bloque de datos en curso de cifrado (104) y sobre dichos bloques de datos secundarios (106) ;

- proporcionar un bloque de datos cifrado (108) a partir del bloque de datos en curso de cifrado.

2. Procedimiento según la reivindicación 1, que comprende, para un bloque de clave criptográfica secreta, las etapas que consisten en:

/a/ determinar y disponer aleatoriamente las claves secretas secundarias en una tabla inicial que comprende dicho bloque de clave criptográfica secreta;

/b/ almacenar en memoria la dirección correspondiente a dicho bloque de clave criptográficas secreta en la tabla inicial;

/c/ aplicar la operación con clave secreta al bloque de datos (101) con las claves de la tabla inicial (301) y obtener una primera tabla transformada (303) de 2n primeros elementos, correspondiendo cada primer elemento al resultado de la operación con clave secreta (102) aplicada al bloque datos (101) con la clave situada en la tabla inicial en la misma dirección que dicho primer elemento;

/d/ aplicar dicha operación no lineal (107) a los elementos de dicha primera tabla transformada (303) y obtener una segunda tabla transformada (402) de 2n segundos elementos, correspondiendo cada segundo elemento al resultado de la operación no lineal (107) aplicada al primer elemento situado en la misma dirección en la primera tabla transformada (303) que dicho segundo elemento;

/e/ recuperar, en la segunda tabla transformada (402) , el elemento correspondiente al bloque de datos en curso de cifrado (403) situado en la dirección de dicho bloque de clave criptográfica secreta.

3. Procedimiento según la reivindicación 2, según el cual se recupera el elemento correspondiente al bloque de datos en curso de cifrado (403) , en la segunda tabla transformada, mediante una función resistente contra un ataque de tipo SPA acrónimo de 'Simple Power Analysis' tomando como parámetro la dirección de la clave criptográfica secreta.

4. Procedimiento según la reivindicación 2 ó 3, según el cual el algoritmo criptográfico comprende un número determinado de vueltas, cada una de las cuales incluye al menos una operación de clave criptográfica secreta que precede a una operación no lineal;

y según el cual se realizan las etapas /a/ a /e/ para al menos la primera vuelta y al menos la última vuelta del algoritmo criptográfico.

5. Procedimiento según una cualquiera de las reivindicaciones 2 a 4, según el cual se realiza la etapa de disposición aleatoria al comienzo del algoritmo criptográfico.

6. Procedimiento según una cualquiera de las reivindicaciones precedentes, según el cual se realiza simultáneamente la operación con clave secreta (102) con uno de los bloques de clave criptográfica secreta y con las claves secretas secundarias y/o se realiza simultáneamente la operación no lineal sobre el bloque de datos y los bloques de datos secundarios.

7. Procedimiento según una cualquiera de las reivindicaciones precedentes, según el cual el algoritmo criptográfico es el AES.

8. Procedimiento según una cualquiera de las reivindicaciones precedentes, según el cual una al menos de las operaciones del algoritmo criptográfico es realizada sobre el bloque de datos en curso de cifrado enmascarado con un valor aleatorio.

9. Componente electrónico adaptado para ejecutar un cálculo criptográfico según un algoritmo criptográfico determinado que incluye al menos una operación con clave secreta (102) a realizar con una clave criptográfica secreta (103) que comprende m bloques de clave secreta de n bits sobre un bloque de datos (101) y una operación no lineal (107) , comprendiendo medios dispuestos para poner en práctica un procedimiento según una cualquiera de las reivindicaciones precedentes.