PROTECCIÓN DE UN ALGORITMO CRIPTOGRÁFICO.
Procedimiento de ejecución de un cálculo criptográfico en un componente electrónico,
de acuerdo con un algoritmo criptográfico determinado que incluye al menos una primera y una segunda operación criptográfica, estando adaptado el citado algoritmo para facilitar un bloque de datos encriptado a partir de un bloque de datos inicial. comprendiendo el citado procedimiento las etapas siguientes: IaI aplicación de un primer sistema operativo (102) al bloque de datos inicial y obtención de un primer bloque de datos intermedio, correspondiendo el citado primer sistema operativo a una combinación de al menos la primera operación criptográfica (103), una primera operación aleatoria (104) que facilita un valor determinado con una valor de probabilidad definido, una segunda operación aleatoria (105), y una operación biyectiva (106); IbI aplicación de un segundo sistema operativo (116) al bloque de datos intermedio facilitado en la etapa precedente y obtención de un segundo bloque de datos intermedio, correspondiendo el citado segundo sistema operativo a una combinación de al menos la operación inversa (117) de la operación biyectiva del sistema operativo precedente, la segunda operación criptográfica (118), y una operación que facilita el valor nulo para un valor asociado al citado valor determinado (119); IcI repetición de las etapas IaI y IbI N veces, siendo N un número entero determinado en función del citado valor de probabilidad definido; y IdI determinación del bloque de datos encriptado a partir del segundo o de los segundos bloques de datos intermedios, en función del valor de probabilidad definido
Tipo: Patente Internacional (Tratado de Cooperación de Patentes). Resumen de patente/invención. Número de Solicitud: PCT/FR2007/000222.
Solicitante: SAGEM DEFENSE SECURITE.
Nacionalidad solicitante: Francia.
Dirección: LE PONANT DE PARIS 27 RUE LEBLANC 75015 PARIS FRANCIA.
Inventor/es: CHABANNE, HERVE, DOTTAX,EMMANUELLE, BRINGER,JULIEN.
Fecha de Publicación: .
Fecha Solicitud PCT: 7 de Febrero de 2007.
Clasificación Internacional de Patentes:
- H04L9/06C
Clasificación PCT:
- H04L9/06 ELECTRICIDAD. › H04 TECNICA DE LAS COMUNICACIONES ELECTRICAS. › H04L TRANSMISION DE INFORMACION DIGITAL, p. ej. COMUNICACION TELEGRAFICA (disposiciones comunes a las comunicaciones telegráficas y telefónicas H04M). › H04L 9/00 Disposiciones para las comunicaciones secretas o protegidas. › utilizando el aparato de cifrado registros de desplazamiento o memorias para la codificación por bloques, p. ej. sistema DES.
Países PCT: Austria, Bélgica, Suiza, Alemania, Dinamarca, España, Francia, Reino Unido, Grecia, Italia, Liechtensein, Luxemburgo, Países Bajos, Suecia, Mónaco, Portugal, Irlanda, Eslovenia, Finlandia, Rumania, Chipre, Lituania, Letonia, Ex República Yugoslava de Macedonia, Albania.
PDF original: ES-2373334_T3.pdf
Fragmento de la descripción:
Protecci6n de un algoritmo criptografico La presente invenci6n concierne al ambito criptografico y de modo mas particular a la protecci6n de las informaciones relativas a los calculos ejecutados de acuerdo con un algoritmo criptografico.
Los algoritmos criptograficos permiten especialmente encriptar datos y/o desencriptar datos. Tales algoritmos pueden emplearse igualmente para otras numerosas aplicaciones. En efecto, pueden servir igualmente para firmar, o todavia autenticar ciertas informaciones. Estos pueden ser utiles tambien en el ambito del marcado de la fecha y la hora.
Tales algoritmos comprenden generalmente un encadenamiento de varias operaciones, o calculos, que se aplican sucesivamente a un dato que hay que encriptar con el fin de obtener un dato encriptado, o tambien a un dato encriptado con el fin de obtener un dato desencriptado.
Entre estos algoritmos, algunos estan fundados en una utilizaci6n de claves secretas mientras que otros se basan en una utilizaci6n mixta de claves publicas y de claves secretas.
Cualquiera que sea el tipo de algoritmo criptografico, con el fin de conservar el caracter confidencial del algoritmo, de las claves y de otros datos secretos, es importante que los calculos ejecutados se mantengan secretos.
En efecto, cuando un atacante esta en condiciones de determinar los calculos ejecutados de acuerdo con un algoritmo criptografico, este a continuaci6n puede acceder a informaciones secretas y violar el caracter confidencial de los datos de acuerdo con este algoritmo.
En ciertos algoritmos, la protecci6n del caracter confidencial se basa en el hecho de que los calculos son ejecutados en un entorno protegido, que no es accesible a potenciales atacantes.
En otros ciertos algoritmos, los calculos pueden ejecutarse en un entorno accesible a potenciales atacantes. Se requiere entonces para tales algoritmos que estos presenten una resistencia a pruebas denominadas pruebas de 'Caja Blanca", o en ingles 'White Box'. Estas pruebas son con miras a intentar violar el caracter confidencial del algoritmo a partir de los calculos ejecutados en el transcurso de la puesta en practica del algoritmo.
El documento 'A whitebox DES implementation for DRM applications' de S. Chow, P.Elsen, H. Johnson, y P.C. van Oorschot, propone un metodo que permite una protecci6n contra las pruebas de 'caja blanca', es decir cuando la implementaci6n completa del algoritmo esta disponible para el atacante. La tecnica empleada se basa en la utilizaci6n de tablas que permiten implementar las operaciones del algoritmo, despues de que hayan sido introducidas codificaciones con la ayuda de biyecciones entre diferentes rondas del algoritmo.
Sin embargo, el documento « Attacking an obfuscated cipher by injecting faults » de Matthias Jacob, Dan Boneh, y Edward W. Felten en 2003 expone un metodo que permite encontrar las informaciones secretas utilizadas en la ejecuci6n del algoritmo de acuerdo con el metodo descrito en el documento anteriormente citado.
El documento « WhiteBox Cr y ptography and an AES implementation » de S. Chow, P. Elsen, H. Johnson, y P.C. van Oorschot propone otra implementaci6n basada en principios similares a los que enuncia el documento 'A whitebox DES implementation for DRM applications'. Pero, se anaden codificaciones al exterior de las rondas.
El documento « Cr y ptanalysis of a WhiteBox AES implementation » de Olivier Billet, Henri Gilbert, y Charaf EchChatbi expone un ataque de esta otra implementaci6n.
Asi, los metodos de protecci6n de este tipo presentan fallos que permiten violar el caracter confidencial del algoritmo.
De modo suplementario, el documento FRA2776445 expone un procedimiento y un componente electr6nico de ejecuci6n de un calculo criptografico para facilitar un bloque de datos encriptado a partir de un bloque de datos inicial y que comprende tambien la introducci6n de una operaci6n aleatoria para proteger el resultado del cifrado contra el criptoanalisis.
La presente invenci6n pretende aumentar el nivel de una protecci6n de la confidencialidad de un algoritmo contra las pruebas de tipo 'caja blanca'.
Un primer aspecto de la presente invenci6n propone un procedimiento de ejecuci6n de un calculo criptografico en un componente electr6nico, de acuerdo con un algoritmo criptografico determinado que incluya al menos una primera y una segunda operaci6n criptografica. El algoritmo esta adaptado para facilitar un bloque de datos encriptado a partir de un bloque de datos inicial.
El procedimiento comprende las etapas siguientes:
lal aplicaci6n de un primer sistema operativo al bloque de datos inicial y obtenci6n de un primer bloque de datos intermedio, correspondiendo el citado primer sistema operativo a una combinaci6n de al menos la primera operaci6n criptografica, una primera operaci6n aleatoria que facilita un valor determinado con una valor de probabilidad definido, una segunda operaci6n aleatoria, y una operaci6n biyectiva;
lbl aplicaci6n de un segundo sistema operativo al bloque de datos intermedio facilitado en la etapa precedente y obtenci6n de un segundo bloque de datos intermedio, correspondiendo el segundo sistema operativo a una combinaci6n de al menos la operaci6n inversa de la operaci6n biyectiva del sistema operativo precedente, la segunda operaci6n criptografica, y una operaci6n que facilita el valor nulo para un valor asociado al citado valor determinado;
lcl repetici6n de las etapas lal y lbl N veces, siendo N un numero entero determinado en funci6n del citado valor de probabilidad definido; y ldl determinaci6n del bloque de datos encriptado a partir del segundo o de los segundos bloques de datos intermedios, en funci6n del valor de probabilidad definido.
Gracias a estas disposiciones, las operaciones criptograficas que hay que aplicar de acuerdo con el algoritmo que debe protegerse siguen siendo secretas para cualquier atacante. En efecto, estas son aplicadas a los datos que hay que encriptar de manera combinada con al menos dos operaciones aleatorias, facilitando una de estas dos operaciones con una probabilidad definida un valor determinado. El efecto de esta primera operaci6n aleatoria solamente es anulado ventajosamente con la aplicaci6n de la operaci6n que facilita el valor cero para un valor asociado al citado valor determinado. Asi, desde la aplicaci6n de la primera operaci6n aleatoria y hasta la aplicaci6n de la operaci6n que facilita cero para un valor asociado al valor determinado, los datos que son manipulados en el transcurso de la puesta en practica de dicha ejecuci6n de calculos quedan protegidos contra los ataques.
Cuando el procedimiento corresponde a la aplicaci6n unicamente de un primero y de un segundo sistemas operativos, el valor asociado es igual al valor determinado.
Conviene observar que los terminos 'operaci6n criptografica' corresponden a una operaci6n criptografica en el sentido amplio, es decir que estos terminos designan tambien una sucesi6n de operaciones criptograficas.
La aplicaci6n del primer sistema operativo puede corresponder a la aplicaci6n de manera combinada de:
la primera operaci6n criptografica que facilita un primer resultado del primer sistema operativo a partir del bloque de datos inicial;
la primera operaci6n aleatoria que facilita un segundo resultado del primer sistema operativo a partir del bloque de datos inicial;
la segunda operaci6n aleatoria que facilita un tercer resultado del primer sistema operativo a partir del bloque de datos inicial; y la operaci6n biyectiva que facilita el primer bloque de datos intermedio a partir de los primero, segundo y tercero resultados del primer sistema operativo.
La aplicaci6n del segundo sistema operativo puede corresponder a la aplicaci6n, de manera combinada, de:
la operaci6n inversa de la operaci6n biyectiva del sistema operativo precedente que facilita, a partir del bloque de datos intermedio obtenido por el sistema operativo precedente, los citados primero y segundo resultados del sistema operativo precedente;
la segunda operaci6n criptografica que facilita un primer resultado del segundo sistema operativo a partir del primer resultado del sistema operativo precedente;
la operaci6n que facilita el valor nulo para un valor asociado al valor determinado a partir del segundo resultado del sistema operativo precedente, que facilita asi un... [Seguir leyendo]
Reivindicaciones:
1. Procedimiento de ejecuci6n de un calculo criptografico en un componente electr6nico, de acuerdo con un algoritmo criptografico determinado que incluye al menos una primera y una segunda operaci6n criptografica, estando adaptado el citado algoritmo para facilitar un bloque de datos encriptado a partir de un bloque de datos inicial.
comprendiendo el citado procedimiento las etapas siguientes:
lal aplicaci6n de un primer sistema operativo (102) al bloque de datos inicial y obtenci6n de un primer bloque de datos intermedio, correspondiendo el citado primer sistema operativo a una combinaci6n de al menos la primera operaci6n criptografica (103) , una primera operaci6n aleatoria (104) que facilita un valor determinado con una valor de probabilidad definido, una segunda operaci6n aleatoria (105) , y una operaci6n biyectiva (106) ;
lbl aplicaci6n de un segundo sistema operativo (116) al bloque de datos intermedio facilitado en la etapa precedente y obtenci6n de un segundo bloque de datos intermedio, correspondiendo el citado segundo sistema operativo a una combinaci6n de al menos la operaci6n inversa (117) de la operaci6n biyectiva del sistema operativo precedente, la segunda operaci6n criptografica (118) , y una operaci6n que facilita el valor nulo para un valor asociado al citado valor determinado (119) ;
lcl repetici6n de las etapas lal y lbl N veces, siendo N un numero entero determinado en funci6n del citado valor de probabilidad definido; y ldl determinaci6n del bloque de datos encriptado a partir del segundo o de los segundos bloques de datos intermedios, en funci6n del valor de probabilidad definido.
2. Procedimiento de ejecuci6n de un calculo criptografico de acuerdo con la reivindicaci6n 1, en el cual la aplicaci6n del primer sistema operativo corresponde a la aplicaci6n de manera combinada de:
la primera operaci6n criptografica que facilita un primer resultado (103) del primer sistema operativo a partir del bloque de datos inicial;
la primera operaci6n aleatoria que facilita un segundo resultado (104) del primer sistema operativo a partir del bloque de datos inicial;
la segunda operaci6n aleatoria que facilita un tercer resultado (105) del primer sistema operativo a partir del bloque de datos inicial; y la operaci6n biyectiva (106) que facilita el primer bloque de datos intermedio (107) a partir de los primero, segundo y tercero resultados del primer sistema operativo, y en el cual la aplicaci6n del segundo sistema operativo puede corresponder a la aplicaci6n, de manera combinada, de:
la operaci6n inversa (117) de la operaci6n biyectiva del sistema operativo precedente que facilita, a partir del bloque de datos intermedio obtenido por el sistema operativo precedente, los citados primero y segundo resultados del sistema operativo precedente;
la segunda operaci6n criptografica (118) que facilita un primer resultado del segundo sistema operativo a partir del primer resultado del segundo sistema operativo precedente;
la operaci6n que facilita el valor nulo para un valor asociado al valor determinado (119) a partir del segundo resultado del sistema operativo precedente, que facilita asi un segundo resultado del segundo sistema operativo; y una adici6n del primero y del segundo resultados del segundo sistema operativo que facilita el segundo bloque de datos intermedio (120) .
3. Procedimiento de ejecuci6n de un calculo criptografico de acuerdo con las reivindicaciones 1 o 2, en el cual cada dato del primero y del segundo bloques de datos intermedios puede ser obtenido en forma polin6mica a partir respectivamente de los datos del bloque de datos inicial y de los datos del primer bloque de datos intermedio.
4. Procedimiento de ejecuci6n de un calculo criptografico de acuerdo con las reivindicaciones 1 o 2, en el cual los primero y segundo sistemas operativos son aplicados en forma de tablas de valores respectivamente al bloque de datos inicial y al primer bloque de datos intermedio.
5. Procedimiento de ejecuci6n de un calculo criptografico de acuerdo con una cualquiera de las reivindicaciones precedentes, en el cual la primera operaci6n aleatoria que facilita un valor determinado con un valor de probabilidad definido es efectuada en un espacio matematico finito en el cual esta facilita como mucho un conjunto determinado de valores; y
en el cual la segunda operaci6n que facilita un valor nulo para un valor asociado al citado valor determinado facilita el valor nulo ademas para los valores del citado conjunto que son diferentes del citado valor determinado.
6. Procedimiento de ejecuci6n de un calculo criptografico de acuerdo con una cualquiera de las reivindicaciones precedentes, que comprende ademas entre la etapa lal y la etapa lbl, cuando el algoritmo incluye un conjunto de K operaciones criptograficas suplementarias entre las primera y segunda operaciones criptograficas, siendo K un entero positivo, la etapa siguiente:
aplicaci6n de un numero K de sistemas operativos suplementarios (108) sucesivos respectivamente asociados al citado conjunto de operaciones criptograficas suplementarias, facilitando cada sistema operativo suplementario un bloque de datos intermedio suplementario (114) , a partir del bloque de datos intermedio (107) facilitado por el sistema operativo precedente;
en el cual cada sistema operativo suplementario corresponde a una combinaci6n de al menos la operaci6n inversa (109) de la operaci6n biyectiva del sistema operativo precedente, la operaci6n criptografica suplementaria (110) asociada al citado sistema operativo suplementario, una operaci6n suplementaria (111) , una operaci6n aleatoria (112) y una operaci6n biyectiva (113) .
7. Procedimiento de ejecuci6n de un calculo criptografico de acuerdo con la reivindicaci6n 6, en el cual cada sistema operativo suplementario corresponde a la aplicaci6n, de manera combinada, de:
la operaci6n inversa (109) de la operaci6n biyectiva del sistema operativo precedente, que facilita, a partir del bloque de datos intermedio facilitado por el sistema operativo precedente, los primero (131) , segundo (132) y tercero (133) resultados del sistema operativo precedente;
la operaci6n criptografica suplementaria (110) que facilita un primer resultado (134) del sistema operativo suplementario a partir del primer resultado del sistema operativo precedente;
la operaci6n suplementaria (111) que facilita un segundo resultado del sistema operativo suplementario a partir del segundo resultado (132) del sistema operativo precedente;
la operaci6n aleatoria (112) que facilita un tercer resultado (136) del sistema operativo suplementario a partir de al menos uno entre los primero, segundo y tercero resultados del sistema operativo precedente; y una operaci6n biyectiva (113) que facilita el bloque de datos intermedio suplementario a partir de los primero, segundo y tercero resultados del sistema operativo suplementario.
8. Procedimiento de ejecuci6n de un calculo criptografico de acuerdo con una de las reivindicaciones 6 y 7, en el cual la operaci6n suplementaria (111) es una operaci6n de identidad y en el cual el valor asociado al valor determinado es igual al valor determinado.
9. Componente electr6nico de ejecuci6n de un calculo criptografico de acuerdo con un algoritmo criptografico que incluye al menos una primera y una segunda operaciones criptograficas, estando adaptado el citado algoritmo para facilitar un bloque de datos encriptado a partir de un bloque de datos inicial;
comprendiendo el citado componente:
primeros medios para aplicar un primer sistema operativo (102) al bloque de datos inicial y facilitar un primer bloque de datos intermedio, correspondiendo el citado primer sistema operativo a una combinaci6n de al menos la primera operaci6n criptografica, una primera operaci6n aleatoria que facilita un valor determinado con un valor de probabilidad definido, una segunda operaci6n aleatoria, y una operaci6n biyectiva;
segundos medios para aplicar un segundo sistema operativo (116) al bloque de datos intermedio facilitado por los medios precedentes y facilitar un segundo bloque de datos intermedio, correspondiendo el citado segundo sistema operativo a una combinaci6n de al menos una operaci6n inversa de la operaci6n biyectiva de los medios precedentes, la segunda operaci6n criptografica y una operaci6n que facilita el valor nulo para un valor asociado al citado valor determinado;
medios para repetir N veces la aplicaci6n de los primero y segundo sistemas operativos, siendo N un numero entero determinado en funci6n del citado valor de probabilidad definido; y medios para determinar el bloque de datos encriptado a partir del segundo o de los segundos bloques de datos intermedios, en funci6n del valor de probabilidad definido.
10. Componente electr6nico de ejecuci6n de un calculo criptografico de acuerdo con la reivindicaci6n 9, en el cual al menos una entre la primera operaci6n aleatoria, la segunda operaci6n aleatoria, y la operaci6n biyectiva difieren en cada repetici6n de los primero y segundo sistemas operativos.
Patentes similares o relacionadas:
PROCEDIMIENTO DE SEGURIZACION DE UN CONJUNTO ELECTRONICO DE CRIPTOGRAFIA CON CLAVE SECRETA CONTRA LOS ATAQUES POR ANALISIS FISICO, del 26 de Agosto de 2010, de BULL CP8: Procedimiento de segurización de un conjunto electrónico mediante un proceso de cálculo criptográfico simétrico que utiliza una clave secreta, […]
PROCEDIMIENTO DE CONTRAMEDIDA EN UN COMPONENTE ELECTRONICO PARA UN ALGORITMO DE CODIFICACION CON CLAVE SECRETA, del 22 de Marzo de 2010, de GEMALTO SA: Procedimiento de contramedida que utiliza contra los ataques de tipo DPA una representación aritmética y una representación booleana que consiste en […]
Procedimiento de puesta en práctica segura de un módulo funcional en un componente electrónico, y componente electrónico correspondiente, del 29 de Julio de 2020, de Thales Dis France SA: Procedimiento de puesta en práctica segura de un módulo funcional, que tiene por función un algoritmo de criptografía, en un componente electrónico, utilizando el […]
Arquitectura e instrucciones flexibles para el estándar de cifrado avanzado (AES), del 27 de Mayo de 2020, de INTEL CORPORATION: Un procesador que comprende: una pluralidad de núcleos; una caché de instrucciones de nivel 1, L1, para almacenar una pluralidad de instrucciones […]
Método y sistema para asegurar un acceso de un cliente a servicios de agente DRM para un reproductor de video, del 29 de Abril de 2020, de Orca Interactive Ltd: Un método para asegurar el acceso del módulo informático de un cliente a los servicios de un agente DRM, comprendiendo dicho método los pasos de: […]
Procedimiento y dispositivo electrónico de gestión de datos, del 1 de Abril de 2020, de SAMSUNG ELECTRONICS CO., LTD.: Un dispositivo electrónico que comprende: una memoria configurada para almacenar al menos una aplicación; un módulo de comunicación configurado […]
Algoritmo criptográfico con etapa de cálculo enmascarada dependiente de clave (llamada de SBOX), del 12 de Febrero de 2020, de Giesecke+Devrient Mobile Security GmbH: Unidad de procesador con una implementación ejecutable implementada en la misma de un algoritmo criptográfico (AES, DES), que está configurado para, […]
Componente lógico programable, circuito de formación de claves y procedimiento para proporcionar una información de seguridad, del 11 de Diciembre de 2019, de Siemens Mobility GmbH: Componente lógico programable, que se configura por un flujo de bits , donde mediante el flujo de bits se configura un circuito de formación de […]