ES2373334T3 - Protección de un algoritmo criptográfico. - Google Patents

Protección de un algoritmo criptográfico. Download PDF

Info

Publication number
ES2373334T3
ES2373334T3 ES07730938T ES07730938T ES2373334T3 ES 2373334 T3 ES2373334 T3 ES 2373334T3 ES 07730938 T ES07730938 T ES 07730938T ES 07730938 T ES07730938 T ES 07730938T ES 2373334 T3 ES2373334 T3 ES 2373334T3
Authority
ES
Spain
Prior art keywords
operating system
data block
cryptographic
value
facilitates
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.)
Active
Application number
ES07730938T
Other languages
English (en)
Inventor
Hervé Chabanne
Julien Bringer
Emmanuelle Dottax
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.)
Safran Electronics and Defense SAS
Original Assignee
Sagem Defense Securite SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sagem Defense Securite SA filed Critical Sagem Defense Securite SA
Application granted granted Critical
Publication of ES2373334T3 publication Critical patent/ES2373334T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Amplifiers (AREA)
  • Train Traffic Observation, Control, And Security (AREA)
  • Peptides Or Proteins (AREA)

Abstract

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.

Description

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 Cryptography 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 « Cryptanalysis 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 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.
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.
Los primero y segundo sistemas operativos pueden ser aplicados en forma de tablas de valores respectivamente al bloque de datos inicial y al primer bloque de datos intermedio.
La primera operaci6n aleatoria que facilita un valor determinado con un valor de probabilidad definido puede ser efectuada en un espacio matematico finito en el cual esta facilita como mucho un conjunto determinado de valores; y
en el cual la operaci6n que facilita el valor nulo para un valor asociado al citado valor determinado facilita el valor nulo ademas para los otros valores del citado conjunto.
Asi, el numero N correspondiente al numero de iteraciones de las etapas para determinar el bloque de datos encriptados puede ser ventajosamente igual a 1.
El procedimiento puede comprender 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) dela 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).
En este caso, el valor asociado al valor determinado para el cual la funci6n se anula corresponde ventajosamente al valor resultante de la aplicaci6n de la operaci6n suplementaria al citado valor determinado, o tambien de las aplicaciones sucesivas de las operaciones suplementarias al valor determinado.
El sistema operativo suplementario 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 facilitado por el sistema operativo precedente, los primero, segundo y tercero resultados del sistema operativo precedente;
la operaci6n criptografica suplementaria que facilita un primer resultado del sistema operativo suplementario a partir del primer resultado del sistema operativo precedente;
la operaci6n suplementaria que facilita un segundo resultado del sistema operativo suplementario a partir del segundo resultado del sistema operativo precedente;
la operaci6n aleatoria que facilita un tercer resultado 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 que facilita el bloque de datos intermedio suplementario a partir de los pimero, segundo y tercero resultados del sistema operativo suplementario.
La operaci6n suplementaria puede corresponder ventajosamente a una operaci6n de identidad y asi facilitar los calculos. En tal caso, el valor asociado al valor determinado, para el cual la segunda operaci6n especifica facilita un valor nulo, es de modo mas preciso igual a este valor determinado.
Asimismo, las operaciones biyectivas pueden corresponder ventajosamente a operaciones biyectivas lineales y asi aligerar los calculos.
Un segundo aspecto de la presente invenci6n propone un componente electr6nico de ejecuci6n de un calculo criptografico de acuerdo con un algoritmo criptografico que incluye al menos una primera y una segunda operaci6n criptografica, estando adaptado este componente electr6nico para poner en practica un procedimiento de ejecuci6n de calculos de acuerdo con el primer aspecto de la presente invenci6n.
Al menos una entre la primera operaci6n aleatoria, la segunda operaci6n aleatoria y la operaci6n biyectiva pueden diferir en cada repetici6n de los primero y segundo sistemas operativos.
Otros aspectos, objetivos y ventajas de la invenci6n se pondran de manifiesto con la lectura de la descripci6n de uno de sus modos de realizaci6n.
La invenci6n sera igualmente comprendida mejor con la ayuda de los dibujos, en los cuales:
la figura 1 ilustra las diferentes etapas de un algoritmo criptografico que comprende una pluralidad de operaciones criptograficas; y
la figura 2 ilustra las principales etapas de un procedimiento de ejecuci6n de acuerdo con un modo de realizaci6n de la presente invenci6n.
Un objetivo de la presente invenci6n es mejorar la resistencia a los ataques contra los algoritmos criptograficos en el transcurso de pruebas denominadas de 'caja blanca', es decir cuando la implementaci6n del algoritmo criptografico que hay que proteger es accesible a potenciales atacantes. A tal efecto, se modifican las operaciones criptograficas que hay que aplicar a un bloque de datos de acuerdo con el algoritmo determinado que hay que proteger. Asi, en lugar de aplicar directa y sucesivamente las operaciones criptograficas del algoritmo que hay que proteger, se aplican sucesivamente respectivos sistemas operativos de modo que, por una parte, los datos obtenidos a la salida de las operaciones criptograficas del algoritmo que hay que proteger y, por otra, los datos a la salida de los diferentes sistemas operativos, no permitan violar la confidencialidad del algoritmo criptografico que hay que proteger.
De acuerdo con un modo de realizaci6n de la presente invenci6n, cada sistema operativo es generado respectivamente a partir de cada operaci6n criptografica del algoritmo. De modo mas preciso, en cada sistema operativo correspondiente a una operaci6n criptografica determinada, se introducen variables aleatorias. Despues, al menos dos sistemas operativos, entre los sistemas operativos asi generados a partir de las diferentes operaciones criptograficas del algoritmo que hay que proteger, comprenden respectivamente ademas una primera y una segunda operaci6n especifica.
Ademas del aleatorio introducido por las operaciones aleatorias introducidas en cada sistema operativo, estas dos operaciones especificas permiten mejorar eficazmente la protecci6n del algoritmo criptografico, especialmente con respecto a las operaciones criptograficas que son ejecutadas entre las dos operaciones criptograficas a la cuales corresponden los dos sistemas operativos que comprenden estas dos operaciones especificas.
En efecto, los datos de salida de cada sistema operativo puesto en practica entre estos dos sistemas operativos que comprenden las dos operaciones especificas, pueden ser captados por un potencial atacante sin que esto pueda amenazar la confidencialidad de la parte del algoritmo que hay que proteger que esta comprendida entre las dos operaciones criptograficas del algoritmo que son ejecutadas en el seno de estos dos sistemas operativos.
Con el objetivo de proteger el conjunto de las operaciones criptograficas del algoritmo, las dos operaciones especificas pueden ser introducidas ventajosamente en el primer sistema operativo generado a partir de la primera operaci6n criptografica del algoritmo y en el ultimo sistema operativo generado a partir de la ultima operaci6n criptografica del algoritmo.
La primera operaci6n especifica corresponde a una funci6n aleatoria que facilita de manera aleatoria un valor de salida, tomando este valor de salida un valor determinado con una probabilidad definida.
La segunda operaci6n especifica corresponde a una funci6n que facilita el valor nulo en valor de salida para un valor de entrada correspondiente a un valor asociado al valor determinado. De manera general, este valor asociado corresponde a la transformaci6n que experimenta el valor determinado, en su caso, despues de la aplicaci6n de las operaciones suplementarias de los sistemas operativos suplementarios puestos en practica entre el primero y el segundo sistemas operativos de acuerdo con un modo de realizaci6n de la presente invenci6n.
Por consiguiente, en un caso general, cuando se reitera, un numero de veces predeterminado en funci6n del valor de la probabilidad definida, una aplicaci6n del primero y segundo sistemas operativos asociados, tal como la descrita anteriormente, se esta incondiciones de anular el efecto de la primera operaci6n especifica por el de la segunda operaci6n especifica que le esta asociada. Se observa que cada conjunto del primero y segundo sistemas operativos asociados puede ventajosamente ser construido con primeras y segundas operaciones especificas asociadas diferentes, operaciones aleatorias y operaciones biyectivas diferentes tambien.
En tanto que el efecto de la primera operaci6n especifica no sea anulado, las informaciones accesibles a un atacante, durante la ejecuci6n del algoritmo de acuerdo con un modo de realizaci6n de la presente invenci6n, difieren ligeramente de los datos que son obtenidos en diferentes etapas de una ejecuci6n directa del algoritmo que hay que proteger.
Los datos susceptibles de ser captados por un atacante a la salida de cada uno de los sistemas operativos, no solamente corresponden a los datos que serian obtenidos por aplicaci6n directa de las operaciones criptograficas correspondientes, sino que, ademas, estos presentan un caracter aleatorio con respecto a los datos que deberian obtenerse. Asi, los potenciales ataques durante la ejecuci6n de un algoritmo de este tipo resultan vanos.
La presente invenci6n es descrita en su aplicaci6n a un algoritmo que comprende una pluralidad de rondas, pudiendo corresponder cada ronda a una pluralidad de operaciones criptograficas. Sin embargo, conviene observar que ninguna limitaci6n esta ligada al tipo de algoritmo criptografico. En efecto, la presente invenci6n puede ser aplicada facilmente a cualquier algoritmo criptografico que comprenda al menos una primera y una segunda operaciones criptograficas.
En un modo de realizaci6n de la presente invenci6n, las dos operaciones especificas son introducidas en la primera ronda y la ultima ronda. Sin embargo, se puede prever introducir estas dos operaciones especificas en cualquier etapa del algoritmo que hay que proteger.
La figura 1 ilustra las etapas de un algoritmo criptografico que comprende una pluralidad de rondas. En una etapa 10, se aplica a un bloque de datos X inicial 101 que hay que encriptar una ronda del algoritmo que comprende una o varias operaciones criptograficas. La aplicaci6n de las operaciones criptograficas de esta ronda es una ronda operativa R1. En la etapa 11, se obtiene entonces un bloque de datos Y1. Este verifica la ecuaci6n:
Y1 = R1(X)
Despues, en la etapa 12, se aplican a este bloque Y1 las operaciones de la segunda ronda R2 del algoritmo criptografico. Se obtiene entonces un bloque Y2 que verifica la ecuaci6n siguiente:
Y2 = R2(Y1)
Se aplican, asi, sucesivamente las diferentes rondas Ri, para i comprendido entre 1 y r. Una etapa 14 representa el bloque de datos Yr1 asi obtenido a la salida de la penultima ronda Rr1. Este bloque de datos verifica la ecuaci6n siguiente:
Yr1 = Rr1(Yr2)
Despues, en la etapa 15, se aplican a este bloque Yr1 las operaciones de la ultima ronda Rr del algoritmo considerado, y en la etapa 16, se obtiene el bloque de datos encriptado Yr que verifica la ecuaci6n siguiente:
Yr = Rr(Yr1)
La figura 2 describe las etapas de un procedimiento de ejecuci6n de calculos criptograficos de acuerdo con un modo de realizaci6n de la presente invenci6n aplicado a un algoritmo correspondiente al descrito anteriormente refiriendose a la figura 1.
En un modo de realizaci6n de la presente invenci6n, cuando un sistema operativo comprende una pluralidad de operaciones criptograficas que hay que aplicar a un bloque de datos inicial X=(x1,.,xn) con el fin de facilitar un bloque de datos Z=(z1, ., zn) resultante de la serie de las operaciones sucesivas, cada componente del bloque de datos resultante es expresado en forma polin6mica en funci6n de los diferentes componentes x1, ., xn del bloque de datos inicial X.
De modo mas preciso, cuando un sistema operativo S, que hay que aplicar a un bloque de datos X inicial para obtener un bloque de datos resultante Z, comprende una sucesi6n de operaciones, este bloque de datos X es descompuesto en una pluralidad de bloques de datos de tamano inferior x1, ,,,, xn. Despues, cada bloque de datos zi que componen el bloque de datos Z puede ser obtenido en forma polin6mica en funci6n de los diferentes componentes xi del bloque de datos inicial. Asi, cada componente del bloque de datos resultante de la aplicaci6n de las operaciones del sistema operativo considerado es facilitado entonces en una sola transformaci6n. En tales condiciones, la sucesi6n y la distinci6n de las operaciones que componen el sistema operativo aplicado es entonces de acceso dificil para un potencial atacante.
Asi pues, se puede escribir la ecuaci6n siguiente:
Z = S(X) [1]
y para i comprendido entre 1 y n, existe un polinomio tal que:
Zi = pi(x1,., xn) [2]
Las secciones siguientes utilizan la aplicaci6n de las diferentes operaciones criptograficas en la forma combinada expresada anteriormente.
En una variante, se puede prever tambien obtener los diferentes componentes del bloque de datos resultante de las operaciones criptograficas del sistema operativo en forma de tablas de valores.
Cualquiera que sea el metodo de aplicaci6n utilizado, sea en una forma polin6mica, o tambien en una forma de tablas de valor, las operaciones que hay que aplicar de acuerdo con un sistema operativo son aplicadas preferentemente de manera combinada, de modo que cada componente del bloque de datos resultante del sistema operativo es obtenido en una sola transformaci6n.
En un modo de realizaci6n de la presente invenci6n, el algoritmo que hay que proteger es puesto en practica modificando las rondas operativas Ri, para i comprendido entre 1 y r, tales como las descritas anteriormente. En un modo de realizaci6n de la presente invenci6n, al menos una ronda operativa Ri del algoritmo esta asociada a un sistema operativo Si que es una combinaci6n de al menos un modo operativo aleatorio Ri del algoritmo que hay que proteger, una operaci6n aleatoria Ai y una operaci6n aleatoria V que facilita un valor determinado v con una probabilidad definida. Una ejecuci6n combinada de las diferentes operaciones de tales sistemas operativos Si permite ventajosamente obtener un bloque de datos resultante en una sola transformaci6n a partir del bloque de datos inicial. Asi, un potencial atacante no puede distinguir las diferentes operaciones de manera separada.
Conviene observar que la presente invenci6n encuentra tambien una aplicaci6n facil al caso en que una ronda operativa del algoritmo Ri corresponda a una sola operaci6n criptografica.
En una etapa 102, se aplica un primer sistema operativo S1 al bloque de datos inicial 101. De modo mas preciso, en un modo de realizaci6n de la presenteinvenci6n, este primer sistema operativo corresponde a aplicar de manera combinada al bloque de datos inicial 101:
la primera ronda operativa R1 del algoritmo que hay que proteger;
la operaci6n aleatoria A1; y
la primera operaci6n aleatoria V; despues
en combinar los diferentes bloques de datos resultantes de estas tres operaciones aplicadas al bloque de datos inicial 101 de modo que se obtenga un primer bloque de datos intermedio 107. Esta combinaci6n es obtenida por aplicaci6n de una aplicaci6n biyectiva a los resultados de estas tres operaciones antes citadas.
Este sistema operativo es puesto en practica en forma de una sola transformaci6n, que permite obtener, componente a componente, a partir del bloque de datos inicial, el primer bloque de datos intermedio, como se describi6 anteriormente. Asi, este puede ser puesto en practica en forma polin6mica o tambien en forma de tablas de valores.
La secci6n siguiente detalla las operaciones a las cuales corresponde la aplicaci6n del primer sistema operativo S1 de acuerdo con un modo de realizaci6n de la presente invenci6n.
Se aplica al bloque de datos X inicial 101, que puede escribirse en forma de una sucesi6n de datos x1, ., xn, la ronda operativa R1 del algoritmo considerado. Se obtiene un primer resultado 103 del primer sistema operativo, indicado por Y1,1 correspondiente a un bloque de datos que verifica la ecuaci6n siguiente:
Y1,1 =R1(X)
Se observa que Y1,1 es igual a Y1 tal como se defini6 anteriormente refiriendose a la figura 1. Pero, tal resultado no es accesible a un potencial atacante puesto que en el transcurso de la ejecuci6n de las operaciones que componen el sistema operativo S1, esta etapa inicial es mezclada con las otras operaciones que hay que aplicar descritas a continuaci6n, en forma polin6mica o en forma de tablas de valores.
Despues, cuando se aplica la funci6n V al bloque de datos inicial, se obtiene un segundo resultado 104 de este primer sistema operativo en forma de un bloque de datos que verifica la ecuaci6n siguiente:
Y1,2 = V(X)
Aplicando la operaci6n aleatoria A1 a un bloque de datos inicial X, se obtiene un tercer resultado 105 del primer sistema operativo en forma de un bloque de datos Y1,3 que verifica la ecuaci6n siguiente:
Y1,3 =A1(X)
Con el fin de no permitir una distinci6n de los tres resultados descritos anteriormente a la salida del primer sistema operativo, se efectua una combinaci6n 106 de estos tres resultados para facilitar el primer bloque de datos intermedio 107 que corresponde a la ejecuci6n de la primera ronda del algoritmo de acuerdo con un modo de realizaci6n de la presente invenci6n.
Asi, a la salida del primer sistema operativo S1, se obtiene el bloque de datos intermedio Xl1 que verifica la ecuaci6n siguiente:
Xl1 = M1(Y1,1; Y1,2; Y1,3)
donde M1 es la combinaci6n biyectiva aplicada en el primer sistema operativo S1.
Ventajosamente, el bloque de datos intermedio Xl1 difiere del bloque de datos Y1 obtenido a la salida de la primera ronda de acuerdo con el algoritmo criptografico refiriendose a la figura 1. Tal diferencia no permite encontrar, a partir del bloque de datos Xl1, el bloque de datos Y1 que es igual al bloque de datos Y1,1.
Despues, se aplica al primer bloque de datos intermedio 107 un segundo sistema operativo 108, correspondiente a la ejecuci6n de la segunda ronda del algoritmo que hay que proteger de acuerdo con un modo de realizaci6n de la presente invenci6n. Este corresponde a la aplicaci6n combinada de una operaci6n inversa de la operaci6n biyectiva del sistema operativo precedente, de la segunda ronda operativa del algoritmo que hay que proteger R2, de una operaci6n aleatoria A2, de una operaci6n correspondiente a la identidad l2 y de una operaci6n biyectiva M2.
Este segundo sistema operativo corresponde a la aplicaci6n de las operaciones que se escriben de manera separada en detalle en las secciones siguientes pero que son aplicadas en una sola transformaci6n, componente por componente, como para todos los sistemas operativos descritos de acuerdo con un modo de realizaci6n de la presente invenci6n.
Este sistema operativo corresponde a la aplicaci6n en primer lugar de la operaci6n inversa M11 109 de la operaci6n M1 al bloque de datos Xl1 de modo que se obtienen de manera distinta los tres resultados descritos para el primer sistema operativo, Y1,1; Y1,2 e Y1,3.
Despues, se aplican al primer resultado Y1,1 110 las operaciones criptograficas de la ronda R2 del algoritmo criptografico y se obtiene entonces un primer resultado Y2,1 del segundo sistema operativo S2 que verifica la ecuaci6n siguiente:
Y2,1 =R2(Y1,1)
A continuaci6n, se aplica la operaci6n l2 al segundo resultado del sistema operativo precedente Y1,2 y se obtiene un segundo resultado 111 del segundo sistema operativo, que verifica la operaci6n siguiente:
Y2,2 =Y1,2
En el ejemplo descrito a continuaci6n, se considera la operaci6n identidad. Pero, esta operaci6n puede ser diferente de una operaci6n identidad. De manera mas general, esta operaci6n puede ser una operaci6n cualquiera.
Se aplica la operaci6n aleatoria A2 al tercer resultado del sistema operativo precedente Y1,3 para obtener un tercer resultado 112 del segundo sistema operativo, que verifica la ecuaci6n siguiente:
Y2,3 =A2(Y1,1; Y1,2; Y1,3)
En una variante, se puede prever que la operaci6n aleatoria tome en la entrada un subconjunto cualquiera de tres resultados Y1,1; Y1,2; Y1,3.
Despues, se aplica entonces una operaci6n biyectiva M2,indicada por 113, a los primero, segundo y tercero resultados del segundo sistema operativo para obtener un segundo bloque de datos intermedios 114 Xl2. Ese bloque de datos 114 verifica la ecuaci6n siguiente:
Xl2 =M2(Y2,1: Y2,2; Y2,3)
En un modo de realizaci6n de la presente invenci6n, los sistemas operativos Si, para i comprendido entre 2 y r1, corresponden a la aplicaci6n de operaciones similares a las descritas refiriendose al segundo sistema operativo.
De la descripci6n anterior es facil deducir variantes de la aplicaci6n de la presente invenci6n en las cuales las operaciones pueden diferir en funci6n de los sistemas operativos. Asi, por ejemplo, se puede prever en ciertos sistemas operativos que la funci6n l descrita anteriormente sea una funci6n identidad mientras que en otros sea una funci6n cualquiera diferente de la funci6n identidad.
Despues, el ultimo sistema operativo 116 Sr corresponde a la aplicaci6n combinada de una operaci6n correspondiente a la operaci6n inversa 117 de la operaci6n biyectiva Mr1 del sistema operativo precedente, de la roda operativa Rr del algoritmo que hay que proteger, y de una operaci6n Zv que facilita el valor nulo para un valor asociado al valor determinado v. Las secciones siguientes detallan la aplicaci6n separada de estas diferentes operaciones. Conviene observar que, como en cada sistema operativo Si, estas operaciones son aplicadas de manera combinada.
El sistema operativo precedente Sr1 facilita un bloque de datos intermedio Xlr1 de orden r1, indicado por 115. La operaci6n inversa 117 de la operaci6n biyectiva Mr11 facilita a partir del bloque de datos intermedio Xlr1, el primero y el segundo resultados del sistema operativo Sr1.
Se aplica la ronda operativa Rr del algoritmo que hay que proteger al primer resultado Yr1,1 y se obtiene un primer resultado 118 del sistema operativo Si que verifica la ecuaci6n siguiente:
Yr1 = Rr(Yr1,1)
Se aplica la operaci6n Zv al segundo resultado del sistema operativo precedente Yr1, 2, y se obtiene un segundo resultado 119 que verifica la ecuaci6n siguiente:
Yr,2 = Zv(Yr1,2)
Ahora bien, este segundo resultado Yr1,2 corresponde al segundo resultado del primer sistema operativo Y1,2. En efecto, este no ha sido transformado por los diferentes sistemas operativos que han sucedido al primer sistema operativo, en el caso en que se consideren las operaciones l2, ., lr1 como la operaci6n identidad.
Asi, se puede escribir:
Yr,2 = Zv(V(X))
En el caso en que las operaciones l2, ., lr1 sean diferentes de la identidad, esta ultima ecuaci6n no se verifica. Pero, en este caso, la funci6n V es elegida ventajosamente de modo que facilite el valor cero para el valor asociado al valor determinado V(X), es decir para el valor que resulte de las transformaciones de V(X) en los diferentes sistemas operativos suplementarios.
Despues, los primero y segundo resultados son finalmente combinados para facilitar un bloque de datos intermedio 120 Xlr de orden r. Este bloque de datos intermedio verifica la ecuaci6n siguiente:
Xlr =Yr,1 � Yr,2
En un caso general, se determina un numero de repeticiones minimo de versiones diferentes del algoritmo que hay que proteger de acuerdo con un modo de realizaci6n de la presente invenci6n en funci6n del valor de probabilidad definido con el cual la operaci6n V facilita el valor determinado v.
Asi, por ejemplo, si el valor de probabilidad definido es igual a 2/3, conviene repetir al menos 3 veces la aplicaci6n del conjunto de los sistemas operativos sucesivos respectivamente asociados a conjunto de las operaciones criptograficas del algoritmo, tales como las definidas anteriormente, con el fin de poder determinar despues una ejecuci6n de este, entre los ultimos bloques de datos intermedios obtenidos, que corresponde al bloque de datos encriptado de acuerdo con el algoritmo inicial que hay que proteger, es decir el que corresponde al bloque de datos Yr. El conjunto de los sistemas operativos sucesivos de cada una de las aplicaciones verifica las caracteristicas descritas de acuerdo con un modo de realizaci6n de la presente invenci6n, pero estos conjuntos de sistemas operativos pueden ser diferentes entre si en cada nueva aplicaci6n. Esos, especialmente, pueden estar basados en operaciones aleatorias diferentes y operaciones biyectivas diferentes.
Gracias a las disposiciones descritas en las secciones precedentes, cuando la funci6n V es introducida en el primer sistema operativo y la funci6n Zv es introducida en el ultimo sistema operativo, ningun dato accesible a un potencial atacante facilita informaciones sobre los datos de salida intermedia correspondiente a la ejecuci6n directa del algoritmo que hay que proteger.
Las secciones siguientes describen un caso particular de aplicaci6n de la presente invenci6n en el cual el bloque de datos encriptado de acuerdo con el algoritmo que hay que proteger es determinado ejecutando una sola vez el procedimiento de ejecuci6n de acuerdo con un modo de realizaci6n de la presente invenci6n.
Situandose en el cuerpo finito GF(2), cualquier polinomio P solamente puede tener dos valores, 0 o 1. Se puede elegir:
V(X) = (P(X) � v1, . P(X) � vm)
Asi, V(X) solamente puede tomar dos valores diferentes, o sea:
v = (v1, ., vn), o
v = (v1�1, ., vn�1)
En tal contexto, si la funci6n Zv toma el valor 0 en los valores v y v', entonces una sola iteraci6n de la ejecuci6n del algoritmo que hay que proteger de acuerdo con un modo de realizaci6n de la presente invenci6n es suficiente para obtener el bloque de datos encriptado de acuerdo con el citado algoritmo.

Claims (10)

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.
ES07730938T 2006-02-08 2007-02-07 Protección de un algoritmo criptográfico. Active ES2373334T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0601135 2006-02-08
FR0601135A FR2897216B1 (fr) 2006-02-08 2006-02-08 Protection d'un algorithme cryptographique
PCT/FR2007/000222 WO2007090961A1 (fr) 2006-02-08 2007-02-07 Protection d'un algorithme cryptographique

Publications (1)

Publication Number Publication Date
ES2373334T3 true ES2373334T3 (es) 2012-02-02

Family

ID=37620240

Family Applications (1)

Application Number Title Priority Date Filing Date
ES07730938T Active ES2373334T3 (es) 2006-02-08 2007-02-07 Protección de un algoritmo criptográfico.

Country Status (6)

Country Link
EP (1) EP1982461B1 (es)
AT (1) ATE525825T1 (es)
AU (1) AU2007213585B2 (es)
ES (1) ES2373334T3 (es)
FR (1) FR2897216B1 (es)
WO (1) WO2007090961A1 (es)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2966953B1 (fr) * 2010-11-02 2015-08-28 St Microelectronics Rousset Procede de contremesure cryptographique par derivation d'une donnee secrete
DE102014016548A1 (de) * 2014-11-10 2016-05-12 Giesecke & Devrient Gmbh Verfahren zum Testen und zum Härten von Softwareapplikationen

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2776445A1 (fr) * 1998-03-17 1999-09-24 Schlumberger Ind Sa Procede de securisation de donnees mettant en oeuvre un algorithme cryptographique
WO1999063696A1 (en) * 1998-06-03 1999-12-09 Cryptography Research, Inc. Using unpredictable information to minimize leakage from smartcards and other cryptosystems
GB2345229B (en) * 1998-12-23 2003-12-03 Motorola Ltd Method for encrypting data

Also Published As

Publication number Publication date
ATE525825T1 (de) 2011-10-15
FR2897216A1 (fr) 2007-08-10
AU2007213585B2 (en) 2011-02-03
EP1982461A1 (fr) 2008-10-22
AU2007213585A1 (en) 2007-08-16
EP1982461B1 (fr) 2011-09-21
WO2007090961A1 (fr) 2007-08-16
FR2897216B1 (fr) 2008-05-02

Similar Documents

Publication Publication Date Title
CN105359450B (zh) 防篡改密码算法实现
US9692592B2 (en) Using state reordering to protect against white box attacks
US8966279B2 (en) Securing the implementation of a cryptographic process using key expansion
ES2717999T3 (es) Método criptográfico por bloques para cifrar/descifrar mensajes y dispositivos criptográficos para implementar este método
CN109661792B (zh) 计算分组密码的设备和方法
US8504845B2 (en) Protecting states of a cryptographic process using group automorphisms
CN108352981B (zh) 被布置用于计算目标块加密的密码设备
CN104919750B (zh) 计算关于函数‑输入值的数据函数的计算设备和方法
EP2293487A1 (en) A method of diversification of a round function of an encryption algorithm
JPWO2017203992A1 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
US20140101458A1 (en) Code tampering protection for insecure environments
US8675866B2 (en) Multiplicative splits to protect cipher keys
CN104272319B (zh) 用于保护数据的方法
US8605894B2 (en) Cryptographic process execution protecting an input value against attacks
JP5401477B2 (ja) 誤りに基づく攻撃から電子回路を保護する方法
EP3407529A1 (en) Cryptographic device and method
US9565018B2 (en) Protecting cryptographic operations using conjugacy class functions
JP6877889B2 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
US20120179919A1 (en) Securing implementation of a cryptographic process having fixed or dynamic keys
ES2359603T3 (es) Método asimétrico de cifrado o de verificación de firma.
US20120179920A1 (en) Securing cryptographic process keys using internal structures
CN107534550B (zh) 密码设备、密码方法、计算设备和计算机可读存储介质
CN113273131B (zh) 使用共享的份额的计算设备
ES2373334T3 (es) Protección de un algoritmo criptográfico.
ES2435626T3 (es) Criptografía de una curva elíptica