ES2287013T3 - Procedimiento de contramedida en un componente electronico que pone en aplicacion un algoritmo de criptografia con llave secreta y dinamica. - Google Patents

Procedimiento de contramedida en un componente electronico que pone en aplicacion un algoritmo de criptografia con llave secreta y dinamica. Download PDF

Info

Publication number
ES2287013T3
ES2287013T3 ES00925433T ES00925433T ES2287013T3 ES 2287013 T3 ES2287013 T3 ES 2287013T3 ES 00925433 T ES00925433 T ES 00925433T ES 00925433 T ES00925433 T ES 00925433T ES 2287013 T3 ES2287013 T3 ES 2287013T3
Authority
ES
Spain
Prior art keywords
key
value
electronic component
algorithm
data
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
ES00925433T
Other languages
English (en)
Inventor
David Naccache
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.)
Gemplus SA
Original Assignee
Gemplus Card International SA
Gemplus 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 Gemplus Card International SA, Gemplus SA filed Critical Gemplus Card International SA
Application granted granted Critical
Publication of ES2287013T3 publication Critical patent/ES2287013T3/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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • G06Q20/40975Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Accounting & Taxation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Strategic Management (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Finance (AREA)
  • Storage Device Security (AREA)

Abstract

Procedimiento de contra medida para un primer componente electrónico (C) que comunica con un segundo componente electrónico (T) y que pone en aplicación un algoritmo criptográfico A con clave secreta K de tamaño k bits, la aplicación del procedimiento de contra medida comprende una evolución del valor K[i] de dicha clave durante las utilizaciones sucesivas del algoritmo A, i es el número de ejecuciones del algoritmo A, caracterizado en que - el primer componente electrónico (C) - calcula el valor K[i] de la clave a partir del valor anterior K[i-1] de dicha clave mediante una función f tal como K[i] = f(K[i-1] - transmite el número i al segundo componente electrónico (T), y en que - el segundo componente electrónico (T) posee un acelerador de cálculo para calcular el valor K[i] de la clave secreta a partir de K[0] sin tener que generar los i-1 valor de claves que separan K[0] y K[i].

Description

Procedimiento de contra medida en un componente electrónico que pone en aplicación un algoritmo de criptografía con llave secreta y dinámica.
El presente invento concierne un procedimiento de contra medida en un componente electrónico que pone en aplicación un algoritmo de criptografía con llave secreta. Este tipo de componentes se utilizan en aplicaciones en las que el acceso a los servicios o a los datos está controlado severamente. Su arquitectura está formada entorno a un microprocesador y memorias, entre las cuales una memoria programa que contiene la clave secreta.
Estos componentes se utilizan en las tarjetas inteligentes, para algunas de sus aplicaciones. Estas aplicaciones son por ejemplo el acceso a ciertos bancos de datos, aplicaciones bancarias, aplicaciones de telepeaje, p. ej. para la televisión, la distribución de gasolina e incluso el paso de peajes de autopistas.
Estos componentes o estas tarjetas aplican por tanto un algoritmo de criptografía con clave secreta, entre los clases el más conocido es el algoritmo DES (por Data Encryption Standard en la literatura anglosajona). Existen igualmente otros algoritmos de clave secreta, como el algoritmo RC5 e incluso el algoritmo COMP128. Evidentemente esta lista, no es exhaustiva.
De manera general y sucinta, estos algoritmos tienen como función calcular un mensaje cifrado a partir de un mensaje aplicado en entrada (a la carta) por un sistema huésped (servidor, distribuidor bancario...) y de la clave secreta contenida en la tarjeta, y suministrar a cambio al sistema huésped este mensaje cifrado, lo que permite por ejemplo al sistema huésped autentificar el componente o la tarjeta, intercambiar datos...
Ahora bien, se ha puesto de manifiesto que esos componentes o esas tarjetas son vulnerables a ciertos ataques que consisten en un análisis diferencial de consumo en corriente y que permiten a terceras personas con malas intenciones descubrir la clave secreta. A esos ataques se les llama ataques DPA, acrónimo anglosajón por Differential Power Análisis.
El principio de esos ataques DPA se basa en el hecho de que el consumo en corriente del microprocesador que ejecuta las instrucciones varía según el dato manipulado.
Principalmente, una instrucción del microprocesador que manipula un bit de dato genera dos perfiles de corriente diferentes según si ese bit vale "1" o "0". Típicamente, si la instrucción manipula un "0", tenemos en este instante de ejecución una primera amplitud de la corriente consumida y si la instrucción manipula un "1", tenemos una segunda amplitud de la corriente consumida, diferente a la primera.
Ya se conocen las características de los algoritmos de criptografía: cálculos efectuados, parámetros utilizados. La única desconocida es la clave secreta contenida en la memoria del programa. Esta clave no puede deducirse si se conoce únicamente el mensaje aplicado en entrada y el mensaje cifrado suministrado como respuesta.
Sin embargo, en un algoritmo criptográfico, ciertos datos calculados dependen solamente del mensaje aplicado en claro a la entrada de la tarjeta y de la clave secreta contenida en la tarjeta. También pueden recalcularse otros datos calculados en el algoritmo solamente a partir del mensaje cifrado (generalmente suministrado en claro a la Salida de la tarjeta hacia el sistema huésped) y de la clave secreta contenida en la tarjeta. De manera más precisa, cada bit de esos datos particulares puede determinarse a partir del mensaje de entrada o de salida, y de un número limitado de bits particulares de la clave.
De este modo, a cada bit de un dato particular, corresponde una subclave formada por un grupo particular de bits de la clave.
A los bits de esos datos particulares que pueden predecirse se les llama a continuación, bits blancos.
De esta manera, la idea de base del ataque DPA consiste en utilizar la diferencia del perfil de consumo en corriente de una instrucción según si manipula un "1" o un "0" y la posibilidad de calcular un bit blanco por las instrucciones del algoritmo a partir de un mensaje conocido de entrada o de salida y de una hipótesis sobre la subclave correspondiente.
El principio del ataque DPA consiste así pues en testar una hipótesis de subclave dada, aplicando en un gran número de curvas de medida en corriente, cada una de ellas relativa a un mensaje de entrada conocido por el atacante, una función de Boole de selección, función de la hipótesis de subclave, y definida para cada curva por el valor predicho para un hit blanco.
Al hacer una hipótesis sobre la subclave concernida, uno es capaz de hecho de predecir el valor "0" o "1" que adoptará dicho bit blanco para un mensaje de entrada o de salida dado.
Entonces se puede aplicar como función de Boole de selección, el valor predicho "0" o "1" por el bit blanco para la hipótesis de subclave considerada, para clasificar esas curvas en dos paquetes: un primer paquete agrupa las curvas que vieron la manipulación del bit blanco a "0" y un segundo paquete agrupa las curvas que vieron la manipulación del bit blanco a "1" según la hipótesis de subclave. Al hacer la media del consumo en corriente en cada paquete, se obtiene una curva de consumo media M0(t) para el primer paquete y una curva de consumo media M1(t) para el segundo paquete.
Si la hipótesis de subclave es justa, el primer paquete agrupa realmente todas las curvas entre las N curvas que vieron la manipulación del bit blanco en "0" y el segundo paquete agrupa realmente todas las curvas entre las N curvas que vieron la manipulación del bit blanco en "1". La curva media de consumo M0(t) del primer paquete tendrá entonces un consumo medio por todas partes, excepto en los momentos de ejecución de las instrucciones críticas, con un perfil de consumo en corriente característico de la manipulación del bit blanco en "0" (perfil_{0}). En otros términos, para todas esas curvas todos los bits manipulados han tenido tantas oportunidades de valer "0" como de valer "1", excepto el bit blanco que siempre ha tenido el valor "0".
Lo que puede escribirse:
M0(t) = [(perfil_{0} \ + \ perfil_{1})/2]_{t}{}^{1}{}_{tci} \ + \ [perfil_{0}]_{tci}
ya sea
M0(t)= [Vm_{t}]_{t}{}^{1}{}_{tci} \ + \ [perfil_{0}]_{tci}
en donde tci representa los instantes críticos, en los que se ha ejecutado una instrucción crítica.
Del mismo modo, la curva media de consumo M1(t) del segundo paquete corresponde a un consumo medio por todas partes excepto en los momentos de la ejecución de las instrucciones críticas, con un perfil de consumo en corriente característico de la manipulación del bit blanco en "1" (perfil_{1}). Podemos escribir:
M1(t) = [(perfil_{0} \ + \ perfil_{1})/2]_{t}{}^{1}{}_{tci} \ + \ [perfil_{1}]_{tci}
ya sea
M1(t) = [Vm_{t}]_{t}{}^{1}{}_{tci} \ + \ [perfil_{1}]_{tci}
Hemos visto que los dos perfiles perfil_{0} y perfil_{1} no son iguales. La diferencia de las curvas M0(t) y M1(t) proporciona entonces una señal DPA(t) cuya amplitud es igual al perfil_{0}-perfil_{1} en los instantes críticos tci de ejecución de las instrucciones críticas que manipulan este bit, es decir, en el ejemplo representado en la figura 1, en los lugares tc0 a tc6 y cuya amplitud es casi igual a cero aparte los instantes críticos.
Si la hipótesis de subclave es falsa, la clasificación no corresponde a la realidad. Estadísticamente, hay entonces en cada paquete, tantas curvas que vieron verdaderamente la manipulación del bit blanco en "0" que curvas habiendo visto la manipulación del bit blanco en "1". La curva media resultante M0(t) se sitúa entonces entorno a un valor medio dado por (perfil_{0}-perfil_{1})/2 = Vm, puesto que para cada una de las curvas, todos los bits manipulados, incluido el bit blanco tienen tantas posibilidades de valer "0" como de valer "1".
El mismo razonamiento en el segundo paquete conduce a una curva media de consumo en corriente M1(t) cuya amplitud se sitúa entorno a un valor medio dado por (perfil_{0}-perfil_{1})/2 = Vm.
La señal DPA(t) suministrada por la diferencia M0(t)-M1(t) es en este caso prácticamente igual a cero. La señal DPA(t) en el caso de una hipótesis de subclave falsa se representa en la figura 2.
De este modo, el ataque DPA explota la diferencia del perfil de consumo en corriente durante la ejecución de una instrucción según el valor del bit manipulado, para efectuar una clasificación de curvas de consumo en corriente según una función de selección de Boole para una hipótesis de subclave dada. Al efectuar un análisis diferencial del consumo medio en corriente entre los dos paquetes de curvas obtenidos, se consigue una señal de información DPA(t).
El desarrollo de un ataque DPA consiste entonces globalmente:
a - en extraer N mensajes aleatorios (por ejemplo N igual a 1000);
b - en mandar ejecutar el algoritmo por la tarjeta para cada uno de los N mensajes aleatorios, tomando nota de la curva de consumo en corriente cada vez (medida en el Terminal de alimentación del componente);
c - en hacer una hipótesis en una subclave;
\newpage
d - en predecir, para cada uno de los mensajes aleatorios, el valor que adquiere uno de los bits blancos cuyo valor sólo depende de los bits del mensaje (de entrada o de Salida) y de la subclave tomada como hipótesis, para obtener la función de selección de Boole;
e - en clasificar las curvas según esta función de selección de Boole (es decir, según el valor "0" o "1" predicho para este bit blanco para cada curva bajo la hipótesis de subclave);
f - en calcular en cada paquete la curva resultante de consumo medio en corriente;
g- en efectuar la diferencia de esas curvas medias, para obtener la señal DPA (t).
Si la hipótesis en la subclave es justa, la función de selección de Boole es justa y las curvas del primer paquete corresponden verdaderamente a las curvas para las cuales el mensaje aplicado en entrada o en salida dio un bit blanco en "0" en la tarjeta y las curvas del segundo paquete corresponden verdaderamente a las curvas para las cuales el mensaje aplicado en entrada o en salida dio un bit blanco en "1" en la tarjeta.
Nos encontramos en el caso de la figura 1: la señal DPA (t) no es por tanto nula en los instantes tc0 a tc6 correspondiente a la ejecución de las instrucciones críticas (aquellas que manipulan el bit blanco). Basta con que haya al menos un instante crítico en el periodo de adquisición.
Cabe mencionar que el atacante no necesita conocer con precisión los instantes críticos.
Si la hipótesis de subclave no es justa, la clasificación no corresponde con la realidad y entonces tenemos en cada paquete tantas curvas que corresponden en realidad a un bit blanco en "0" como curvas que corresponden a un bit blanco en "1". La señal DPA(t) es prácticamente nula por todas partes (representado en la fig. 2). Debemos volver a la vuelta c- y hacer una nueva hipótesis en la subclave.
Si la hipótesis resulta justa, podemos pasar a evaluar otras subclaves, hasta haber reconstituido la clave al máximo. Por ejemplo, con un algoritmo DES, se utiliza una clave de 64 bits, de los cuales solamente 56 bits útiles. Con un ataque DPA, somos capaces de reconstituir al menos 48 bits de los 56 bits útiles.
El presente invento tiene como finalidad aplicar en un componente electrónico, un procedimiento de contra medida que impida al atacante generar la señal DPA(t). Esto se obtiene haciendo variar la clave de manera dinámica.
El presente invento supone el reparto de un secreto común entre dos componentes electrónicos que comunican entre sí. A continuación, estos componentes se designarán en las figuras 7 y 8 por las referencias C (una tarjeta) y T (un terminal) pero pueden adoptar diversas otras formas evidentes para el profesional. Entre estos dos componentes, se supone que C está expuesto potencialmente a la DPA. Por la contra medida inventiva, el componente electrónico C se encuentra protegido contra los ataque DPA.
Ya se conoce, principalmente, por el documento WO-A-97 32 264, un procedimiento en el que el valor corriente de la clave varía de manera dinámica en un componente electrónico. Este tipo de procedimiento impone que los dos componentes electrónicos que comparten la clave secreta realicen de manera sincrónica operaciones de cálculos idénticos. Esta solución no está adaptada a las arquitecturas descentralizadas en las que una pluralidad de tarjetas inteligentes, por ejemplo, cooperan con una pluralidad de terminales. Los terminales y tarjetas no pueden permanecer sincronizados por definición en estos sistemas. Además, la seguridad de la clave utilizada con estos procedimientos no es óptima. Los terminales memorizan en una memoria reprogramable el valor del número de solicitudes de autentificación, así como el valor precedente de la clave. La utilización de memoria reprogramable es onerosa y permite por malevolencia modificar su contenido. De este modo, la utilización de tarjetas fraudulentas podría ser admitida por un Terminal cuya memoria estuviese alterada. El invento permite resolver los inconvenientes citados ante-
riormente.
Según el invento, el procedimiento de contra medida permite a T y a C calcular de manera sincronizada una clave de sesión desconocida del mundo exterior y utilizar esta clave en un protocolo criptográfico de cifrado, autentificación, MAC o cualquier otra función criptográfica que necesita un algoritmo con clave secreta.
Con el fin de minimizar la exposición del dato secreto compartido entre C y T, este dato secreto sólo se expondrá indirectamente y evolucionará con el paso del tiempo, la clave utilizada en la sesión i depende de la clave de la sesión anterior (utilizada en la sesión i-1).
Cada clave de sesión, anotada K[i] se manipulará como máximo dos veces:
-
durante su creación a partir de la clave k_{i-1};
-
durante su utilización en la aplicación.
En el invento, nos interesaremos por un algoritmo del tipo DES. Este algoritmo DES comprende dieciséis vueltas de cálculo idénticas; en este algoritmo se ha puesto de manifiesto que los datos predicables por un atacante se sitúan en la primera vuelta y en la última vuelta y que las instrucciones críticas en el sentido del ataque DPA se sitúan en las tres primeras vueltas y las tres últimas vueltas.
Un objetivo del invento consiste en hacer invisible los datos manipulados por las instrucciones críticas velando por que esos datos se cambien de una a otra aplicación del algoritmo.
Tal como se caracteriza el invento, se refiere pues a un procedimiento de contra medida que pone en aplicación un algoritmo criptográfico A con clave secreta K[0] de talla k para calcular un mensaje cifrado a partir de un mensaje de entrada. Según el invento, se forma una clave de sesión K[i] a partir de la clave de sesión anterior K[i-1] mientras se sigue suministrando al Terminal T el índice i de manera no confidencial. Al poseer K[0] e i, el Terminal T podrá calcular K[i] sin necesidad de tener que calcular todas las claves intermedias K[1], K[2],... K[i-1].
La puesta en aplicación del procedimiento de contra medida se caracteriza por una evolución de K[i] entre las sucesivas utilizaciones de A, i es el número de ejecuciones del algoritmo A, a partir de la regla: K[i] = f(K[i-1]), siendo f una función que toma en entrada una clave y envía en salida una clave.
En un modo de realización, se forma la clave K[i], quitando la clave K[i-1] al cuadrado módulo un número primo que tiene la talla de la clave.
La función f(x), x es una variable, es tal que: f(x) = x^2 mod z, en la que z es una constante, tal como el acelerador de cálculo utilizado por T es formulado por K[i] = K[0]^(2^i) mod z, en el que la cantidad 2^i se calcula módulo phi(z). Podemos observar que puede utilizarse otra potencia entera (número e) que dos en el procedimiento inventivo, por ejemplo cabe la posibilidad asimismo de definir: f(x) = x^3 mod z.
El acelerador de cálculo correspondiente es entonces K[i] = K[0]^(3^i)mod z. En el que la cantidad 3^i se calcula módulo phi(z).
En otro modo de realización, se forma la clave K[i] multiplicando la clave K[i-1] por una constante c módulo un número primo que tiene la talla de la clave.
La función f(x), siendo x una variable, es tal que: f(x) = x*c mód z, en la que z y c son constantes, tal como el acelerador de cálculo usado por T es K[i] = K[0]*c^i mód z.
Preferentemente, z es el mayor número primo inferior a 2^k.
Según otro modo operativo del invento, esta última concierne también un procedimiento de contra medida en un primer componente electrónico (C) que comunica con un segundo componente electrónico (T) y que pone en aplicación un algoritmo criptográfico B que utiliza el procedimiento descrito anteriormente en el que la clave secreta consiste en una serie de octetos en los que se aplica el procedimiento inventivo módulo un pequeño número primo, la clave K[i-1] está constituida por una serie de L octetos, la puesta en aplicación del procedimiento de contra medida de K[i-1] entre las utilizaciones sucesivas de B[i-1] es el número de ejecuciones del algoritmo B a partir de la regla: K[i-1] = {B[1, i-1], ..., B[L, i-1]}.
Dicha regla se transforma en K[i] al sufrir la transformación para t que va de 1 a L:
B[t,i] = B[t,i-1]^2 mód U en el que U es un número primo de un octeto, por ejemplo 251,
la clave K[i] se calcula utilizando el acelerador de cálculo para t que va de 1 a L:
B[t,i] = B[t,i-1]^(2^1) mód U en dicha formulación la cantidad 2^1 se calcula módulo phi(U).
Preferentemente, este último modo operativo concierne un procedimiento de contra medida en el que la clave K[i-1] consiste en una serie de octetos a los que se aplica en el procedimiento inventivo módulo un pequeño número primo caracterizado en que la clave K[i-1] está constituida por una serie de L octetos: K[i-1] = {B[1,i-1],..., B[L,i-1]}.
Y se transforma en K[i] al sufrir la transformación para t que va de 1 a L:
B[t,i] = B[t,i-1]*c[t] mód U en el que U es un número primo de un octeto, por ejemplo 251,
la clave K[i] se calcula utilizando el acelerador de cálculo para t que va de 1 a L: B[t,i] = B[t,i-1]*c[t]^i mód U.
Preferentemente, para este último modo operativo en particular en el que el terminal y la tarjeta efectúan el cálculo de la clave de sesión K[i] en más que el número de octetos necesarios al algoritmo de cifrado de clave secreta en el que esta clave debería servir y seguidamente cortan la clave resultante para obtener el número de octetos necesarios al algoritmo de cifrado con clave secreta. Esto con el fin de compensar la pérdida de entropía resultante del uso de módulos U más pequeños que el número 256.
Preferentemente, el número U es de uno, dos, tres, cuatro, cinco o seis octetos.
Evidentemente, el invento concierne también una tarjeta inteligente y un Terminal electrónico para éste último modo operativo particular.
Otras características y ventajas del invento se detallan en la descripción siguiente que se hace a título indicativo y en absoluto limitativo y en referencia a los dibujos anexos, en los que:
- las figs. 1 y 2 ya descritas representan la señal DPA(t) que se puede obtener en función de una hipótesis sobre una subclave de la clave secreta K según un ataque DPA;
- las figs. 3 y 4 son organigramas que representan los primeros cálculos y los últimos cálculos del algoritmo DES;
- la fig. 5 es un esquema bloque de la operación SBOX usada en el algoritmo DES;
- la fig. 6 muestra un ejemplo de tabla de constate elemental de una entrada y una salida usada en la operación SBOX;
- la fig. 7 representa un primer ejemplo de organigrama de ejecución del DES con un procedimiento de contra medida según el invento.
- la fig. 8 representa un segundo ejemplo de organigrama de ejecución del DES con un procedimiento de contra medida según el invento.
La contra medida del presente invento no es específica al DES, aunque se haya elegido la siguiente descripción, y puede aplicarse igualmente a otros algoritmos con clave secreta (tales como DES, IDEA, AES, FEAL, triple DES, Blow-Fish, SAFER, SHA-MAC; RIPMEDI, DFC, RC5, RC6 o SEAL) en el resto de nuestra exposición, se considerará el caso de general de un algoritmo A (M, K) (inicialmente vulnerable a la DPA) en el que K es una clave de talla k, M el mensaje.
El algoritmo criptográfico con clave secreta DES (en el resto del documento se le designa más sencillamente DES para al algoritmo DES) comprende 16 series de cálculo, anotadas T1 a T16, como se representa en las figuras 3 y 4.
El DES se inicia por una permutación inicial IP en el mensaje de entrada M (figura 3). El mensaje de entrada M es una palabra f de 64 bits: Tras la permutación, se obtiene una palabra e de 64 bits, que se corta en dos para formar los parámetros de entrada L0 y R0 del primer cálculo (T1). L0 es una palabra de 32 bits que contiene los 32 bits de peso fuerte de la palabra e. R0 es una palabra h de 32 bits que contiene los 32 bits de peso bajo de la palabra e.
La clave secreta K, que es una palabra q de 64 bits sufre ella misma una permutación y una compresión para suministrar una palabra r de 56 bits.
El primer cálculo comprende una operación EXP PERM en el parámetro R0, consistente en una expansión y permutación, para suministrar en salida una palabra 1 de 48 bits.
Esta palabra 1 está combinada a un parámetro K1, en una operación de tipo O EXCLUSIVO anotada XOR, para suministrar una palabra b de 48 bits. El parámetro K1 que es una palabra m de 48 bits se obtiene de la palabra r por un desfase de una posición (operación anotada SHIFT en las figuras 3 y 4), seguida de una permutación y de una compresión (operación anotada COMP PERM).
La palabra b se aplica a una operación anotada SBOX, a la salida de la cual se obtiene4 una palabra a de 32 bits. Esta operación particular se explicará más detalladamente en relación con las figuras 5 y 6.
La palabra ha sufrido una permutación P PERM, dando a la salida la palabra c de 32 bits.
Esta palabra c está combinada al parámetro de entrada L0 de la primera vuelta V1, en una operación lógica de tipo O EXCLUSIVO, anotada XOR, que suministra a la salida la palabra g de 32 bits.
La palabra h(=R0) de la primera vuelta suministra el parámetro de entrada L1 de la vuelta siguiente (V2) y la palabra g de la primera vuelta suministra el parámetro de entrada R1 de la vuelta siguiente. La palabra p de la primera vuelta suministra la entrada r de la vuelta siguiente.
Las demás vueltas V2 a V16 se desarrollan de forma similar, excepto en lo que se refiere a la operación de desfase SHIFT que se hace en una o dos posiciones según las vueltas consideradas.
Cada vuelta Vi recibe así en entrada los parámetros Li-1, Ri-1 y r y suministra a la salida los parámetros Li y Ri y r para la vuelta siguiente Vi + 1.
Al final del algoritmo DES (figura 4), el mensaje cifrado se calcula a partir de los parámetros L16 y R16 suministrados por la última vuelta V16.
Este cálculo del mensaje cifrado C comprende en práctica las siguientes operaciones:
- formación de una palabra e' de 64 bits invirtiendo la posición de las palabras L16 y R16, y luego concatenándolas;
- aplicación de la permutación IP^{-1} inversa de aquella del principio de DES, para obtener la palabra f' de 64 bits que forma el mensaje cifrado C.
La operación SBOX se detalla en las figuras 5 y 6. Esta operación comprende una tabla de constantes TC_{0}, para suministrar un dato de salida a en función de un dato de entrada b.
En la práctica, esta tabla de constantes TC_{0} se presenta en forma de ocho tablas de constantes elementales TC_{0}1 a TC_{0}8, cada una de ellas recibe en entrada solamente 6 bits de la palabra b, para suministrar a la salida solamente 4 bits de la palabra a.
De este modo, la tabla de constantes elementales TC_{0}1 representada en la figura 6 recibe como dato de entrada, los bits b1 a b6 de la palabra b y suministra como dato de salida los bits al a a4 de la palabra a.
En la práctica estas ocho tablas de constantes elementales TC_{0}1 a TC_{0}8 se memorizan en memoria programa del componente electrónico.
En la operación SBOX de la primera vuelta V1, un bit particular del dato a de salida de la tabla de constantes TC_{0} depende de solamente 6 bits del dato b aplicado en entrada, es decir de solamente 6 bits de la clave secreta K y del mensaje de entrada (M).
En la operación SBOX de la última vuelta V16, un bit particular del dato a de salida de la tabla de constantes TC_{0} puede recalcularse a partir de solamente 6 bits de la clave secreta K y del mensaje cifrado (C).
Ahora bien, si tomamos el principio del ataque DPA, si se elige como bit blanco un bit del dato de salida a, basta con hacer una hipótesis en 6 bits de la clave K, para predecir el valor de un bit blanco para un mensaje de entrada (M) o de salida (C)dado. En otros términos, para el DES, basta con hacer una hipótesis sobre una subclave de 6 bits.
En un ataque DPA sobre dicho algoritmo para un bit blanco dado, podremos entonces discriminar una hipótesis de subclave justa entre 64 posibles.
De este modo, tomando solamente ocho bits de la palabra a como bits blancos, (un bit de salida por tabla de constantes elementales TC_{0}1 a TC_{0}8), se puede descubrir hasta 6 x 8 = 48 bits de la clave secreta, haciendo ataques DPA en cada uno de esos bits blancos.
En el DES, se encuentran entonces instrucciones críticas en el sentido de los ataques DPA al principio del algoritmo y al final.
Al principio del algoritmo DES, los datos que pueden predecirse a partir de un mensaje de entrada M y de una hipótesis de subclave, son los datos a y g calculados en la primera vuelta (V1).
El dato a de la primera vuelta V1 (figura 3) es el dato de salida de la operación SBOX de la vuelta considerada.
El dato g se calcula a partir del dato a, por permutación (P PERM) y operación O EXCLUSIVO con el parámetro de entrada L0.
De hecho, el dato c de la primera vuelta, es un dato derivado del dato a de la primera vuelta. El dato derivado c corresponde a una simple permutación de bits del dato a.
El dato 1 de la segunda vuelta es un dato derivado del dato g de la primera vuelta, puesto que corresponde a una permutación de los bits de la palabra g, por otra parte ciertos bits de la palabra g están duplicados.
Al conocer a y g, también se pueden conocer esos datos derivados.
Las instrucciones críticas del principio del algoritmo son las instrucciones críticas que manipulan ya sea el dato que se puede predecir, como el dato a de la primera vuelta, ya sea un dato derivado.
Las instrucciones críticas que manipulan el dato a de la primera vuelta V1 o el dato derivado c son de este modo las instrucciones del final de la operación SBOX, de la operación P PERM y del principio de la operación XOR de la primera vuelta V1.
Las instrucciones críticas que manipulan el dato g o datos derivados son todas las instrucciones del final de operación XOR del final de la primera vuelta V1 hasta las instrucciones del principio de operación SBOX de la segunda vuelta V2, y el principio de la operación XOR al final de la tercera vuelta V3 (L2 = h(T2) = g(T1)).
Al final del algoritmo DES, los datos que pueden predecirse a partir de un mensaje cifrado C y de una hipótesis de subclave, son el dato a de la decimosexta vuelta V16 y el L15 igual a la palabra h de la decimocuarta vuelta V14.
Las instrucciones críticas que manipulan el dato a de la decimosexta vuelta o de los datos derivados son las instrucciones de la decimosexta vuelta del final de la operación SBOX, de la operación de permutación P PERM y del principio de operación XOR.
Para el dato L15, las instrucciones críticas que manipulan este dato o los datos derivados son todas las instrucciones, desde las instrucciones de final de operación XOR de la decimocuarta vuelta V14, hasta las instrucciones del principio de operación SBOX de la decimoquinta vuelta V15, más las instrucciones del principio de operación XOR de la decimosexta vuelta V16.
El procedimiento de contra medida según el invento aplicado a este algoritmo DES consiste en tener, para cada instrucción crítica, tantas posibilidades como la instrucción crítica manipula como su complemento. Así, cualquiera que sea el bit blanco en el que puede hacerse el ataque DPA, se tienen tantas posibilidades que las instrucciones críticas que manipulan este bit, manipulen un "1" o un "0".
En la práctica, esto debe ser cierto para cada uno de los bits blancos potenciales: en otros términos, el atacante que ha elegido entre varios ataques posibles, es decir entre varias funciones de selección de Boole posibles para efectuar su clasificación de curvas, para una hipótesis de subclave dada, la puesta en aplicación del procedimiento de contra medida según el invento debe intentar que los datos manipulados por cada una de las instrucciones críticas, adquieran de manera aleatoria, una vez entre dos, un valor o su complemento. En lo que se refiere a la aplicación del procedimiento de contra medida según el invento del algoritmo DES, es preciso aplicar la contra medida a las instrucciones críticas del principio de DES y a las instrucciones críticas del final de DES, para estar completamente protegido.
En el DES, todos los datos manipulados por instrucciones críticas son un dato de salida o de datos derivados de un dato de salida de una operación SBOX.
En efecto, en el principio de DES, los datos que pueden predecirse son los datos a y g de la primera vuelta V1. El dato a es el dato de salida de la operación SBOX de la primera vuelta. El dato g se calcula a partir del dato a, puesto que g = P PERM(a) XOR L0. g es por tanto un dato derivado del dato de salida a de la operación SBOX de la primera vuelta. De este modo, todos los datos manipulados por las instrucciones críticas del principio de DES se derivan directa o indirectamente del datos de salida a de la operación SBOX de la primera vuelta.
En lo que se refiere al final de DES, los datos que pueden predecirse son el dato a de la decimosexta vuelta V16 y el g de la decimocuarta vuelta V14, g es igual a L15.
El dato a es el dato de salida de la operación SBOX de la decimosexta vuelta V16.
En cuanto el dato L15, éste se calcula, en la ejecución normal del algoritmo DES, a partir del dato de salida a de la operación SBOX del decimocuarto vuelta V14: L15 = P PERM(a) XOR L14.
Si se hacen impredecibles los datos de salida a de estas operaciones SBOX particulares, así se hacen impredecibles todos los datos manipulados por las instrucciones críticas del algoritmo DES. Si se considera que estas operaciones SBOX constituyen de los primeros medios para suministrar un dato de salida S = a a partir de un dato de entrada E = b, el procedimiento de contramedida aplicado al algoritmo DES consiste en utilizar otros medios para hacer impredecible el dato de salida, de tal modo que este dato de salida y/o de los datos derivados manipulados por las instrucciones críticas sean todas ellas impredecibles.
Según el invento, se forma un grupo formado por las tres primeras vueltas al menos y otro grupo formado por las tres últimas vueltas como mínimo. Estos grupos contienen así pues todas las vueltas que comprenden instrucciones críticas.
Se asocian a esos dos grupos una primera secuencia que utiliza los primeros medios para todas las vueltas y una segunda secuencia que utiliza los demás medios para ciertas vueltas como mínimo.
En las otras vueltas que no están en estos grupos, se puede continuar utilizando los primeros medios.
La utilización de esos otros medios es tal que el resultado en salida, es decir, el mensaje cifrado permanece justo.
Esos otros medios pueden comprender varios medios diferentes. Son tales que en una y/u otro dato entre los datos de entrada y de salida de primeros medios, hacen corresponder el dato complementado.
De este modo, considerando un gran número de ejecución, los grupos utilizaran por término medio una vez entre dos la primera secuencia, que es la secuencia normal del algoritmo, y una vez entre dos la otra secuencia. Los datos manipulados por las instrucciones críticas en esos grupos, correspondientes a ciertos resultados intermedios, serán por término medio complementados una vez entre dos. En un gran número de curvas tendremos estadísticamente tantas oportunidades como un bit blanco dado, ya sea a 1 o a 0.
Según la figura 7, que representa un primer ejemplo de organigrama de ejecución del DES con un procedimiento de contra medida según el invento, la comunicación entre los componentes T (Terminal) y T (Tarjeta) está gobernada por el intercambio de las señales según las vueltas 1 a 6 descritas a continuación:
1.
C incrementado i en su memoria no volátil (por ejemplo EEPROM);
2.
C genera la clave de sesión K[i] = K[i-1]^2 mod z;
3.
C borra la clave K[i-1] de su memoria no volátil (por ejemplo EEPROM) e inscribe en su lugar K[i];
4.
C comunica i a T;
5.
T calcula K[i] = K[0]^(2^i) mód Z en el que la cantidad 2^i se calcula módulo phi(z).
6.
C y T inician un cálculo criptográfico que pone en aplicación K[i];
Alternativamente, según la figura 8, que representa un segundo ejemplo de organigrama de ejecución del DES con un procedimiento de contra medida según el invento, la comunicación entre C y T está gobernada por el intercambio de señales según las vueltas 1 a 6 descritas a continuación:
1.
C incrementa i en su memoria no volátil (por ejemplo EEPROM).
2.
C genera la clave de sesión K[i] = K[i-1]*c mód z.
3.
C borra la clave K[i-1] de su memoria no volátil (por ejemplo EEPROM) e inscribe en su lugar K[i];
4.
C comunica i a T.
5.
T calcula K[i] = K[0]*(c^i) mód Z
6.
C y T inician un cálculo criptográfico que pone en aplicación K[i].
La elección óptima para el número z es el más pequeño número de tamaño k. En particular:
1

Claims (6)

1. Procedimiento de contra medida para un primer componente electrónico (C) que comunica con un segundo componente electrónico (T) y que pone en aplicación un algoritmo criptográfico A con clave secreta K de tamaño k bits, la aplicación del procedimiento de contra medida comprende una evolución del valor K[i] de dicha clave durante las utilizaciones sucesivas del algoritmo A, i es el número de ejecuciones del algoritmo A, caracterizado en que
- el primer componente electrónico (C)
-
calcula el valor K[i] de la clave a partir del valor anterior K[i-1] de dicha clave mediante una función f tal como K[i] = f(K[i-1]
-
transmite el número i al segundo componente electrónico (T), y en que
- el segundo componente electrónico (T) posee un acelerador de cálculo para calcular el valor K[i] de la clave secreta a partir de K[0] sin tener que generar los i-1 valor de claves que separan K[0] y K[i].
2. Procedimiento según la reivindicación 1 caracterizado en que la función f aplicada por el primer componente (C) consiste en elevar a una potencia entera P el valor K[i-1] de la clave módulo un número primo z de un tamaño igual al de la clave, dicho número z es una constante tal como el acelerador de cálculo utilizado por el segundo componente electrónico (T) consiste en K[i] = K[0]^(P^i) mód z, el valor P^i se calcula módulo phi(z).
3. Procedimiento según la reivindicación 1 caracterizado en que la función f aplicada por el primer componente (C) consiste en elevar al cuadrado el valor K[i-1] de la clave módulo un número primo z de un tamaño igual al de la clave, dicho número z es una constante tal como el acelerador de cálculo utilizado por el segundo componente electrónico (T) consiste en K[i] = K[0]^(2^i) mód z, el valor 2^i se calcula módulo phi(z).
4. Procedimiento según la reivindicación 1 caracterizado en que la función f aplicada por el primer componente (C) consiste en multiplicar el valor K[i-1] de la clave por una constante c módulo un número primo z de un tamaño igual al de la clave, dichos números c y z son constantes tales como el acelerador de cálculo utilizado por el segundo componente electrónico (T) consiste en K[i] = K[0]*c^i mód z.
5. Procedimiento según cualquiera de las reivindicaciones 2 a 4 caracterizado en que z es el mayor número primo inferior a 2^k.
6. Componente electrónico (T) en condiciones de comunicar con un segundo componente electrónico (C) mediante un algoritmo criptográfico A con clave secreta K, el valor K[i] de dicha clave K evoluciona durante las utilizaciones sucesivas del algoritmo A a partir del valor anterior K[i-1] de dicha clave mediante una función f tal como K[i] = f(K[i-1], i es el número de ejecuciones del algoritmo A, caracterizado en que el componente electrónico (T) comprende un medio para realizar un acelerador de cálculo para calcular el valor K[i] de la clave secreta a partir de K[0] sin tener que generar los i-1 valor de claves que separan K[0] y K[i], el valor de i se transmite a través de dicho segundo componente electrónico (C).
ES00925433T 1999-05-11 2000-05-11 Procedimiento de contramedida en un componente electronico que pone en aplicacion un algoritmo de criptografia con llave secreta y dinamica. Expired - Lifetime ES2287013T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9906264 1999-05-11
FR9906264A FR2793571B1 (fr) 1999-05-11 1999-05-11 Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete et dynamique

Publications (1)

Publication Number Publication Date
ES2287013T3 true ES2287013T3 (es) 2007-12-16

Family

ID=9545691

Family Applications (1)

Application Number Title Priority Date Filing Date
ES00925433T Expired - Lifetime ES2287013T3 (es) 1999-05-11 2000-05-11 Procedimiento de contramedida en un componente electronico que pone en aplicacion un algoritmo de criptografia con llave secreta y dinamica.

Country Status (8)

Country Link
US (1) US7206408B1 (es)
EP (1) EP1180260B1 (es)
CN (1) CN1231871C (es)
AU (1) AU4415900A (es)
DE (1) DE60034944T2 (es)
ES (1) ES2287013T3 (es)
FR (1) FR2793571B1 (es)
WO (1) WO2000068901A1 (es)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4810098B2 (ja) * 2005-01-19 2011-11-09 株式会社東芝 紙葉類処理装置における処理データ転送方法および紙葉類処理装置
EP1798888B1 (fr) * 2005-12-19 2011-02-09 St Microelectronics S.A. Protection de l'exécution d'un algorithme DES
EP2677327A1 (en) * 2012-06-21 2013-12-25 Gemalto SA Method for producing an electronic device with a disabled sensitive mode, and method for transforming such an electronic device to re-activate its sensitive mode
CN102999077B (zh) * 2012-12-03 2014-08-13 哈尔滨工业大学(威海) 一种高线性补偿的电流平整电路
EP3208788B1 (en) * 2016-02-22 2020-06-03 Eshard Method of protecting a circuit against a side-channel analysis
CN110414276B (zh) * 2018-04-27 2021-05-18 联华电子股份有限公司 电子元件的加密方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2638869B1 (fr) * 1988-11-10 1990-12-21 Sgs Thomson Microelectronics Dispositif de securite contre la detection non autorisee de donnees protegees
DE4223258C3 (de) * 1992-07-15 2001-03-15 Telefunken Microelectron Verfahren zur verifizierbaren Übertragung von Daten
DE69327644T2 (de) * 1993-01-07 2000-09-07 Ford France S.A., Rueil-Malmaison Ferngesteuertes Sicherheitssystem
US5347581A (en) * 1993-09-15 1994-09-13 Gemplus Developpement Verification process for a communication system
BE1008699A3 (fr) * 1994-09-09 1996-07-02 Banksys Procede et agencement pour donner selectivement un acces dans un systeme de securite.
FR2733379B1 (fr) * 1995-04-20 1997-06-20 Gemplus Card Int Procede de generation de signatures electroniques, notamment pour cartes a puces
FR2739469B1 (fr) * 1995-10-03 1997-12-26 Gemplus Card Int Procede de cryptographie a cle publique base sur le logarithme discret
FR2745135B1 (fr) * 1996-02-15 1998-09-18 Cedric Colnot Procede pour faire autoriser par un serveur l'acces a un service a partir de dispositifs portatifs a microcircuits electroniques du type carte a memoire par exemple
FR2745924B1 (fr) * 1996-03-07 1998-12-11 Bull Cp8 Circuit integre perfectionne et procede d'utilisation d'un tel circuit integre
WO1997036264A1 (fr) * 1996-03-22 1997-10-02 Activcard Systeme de controle d'acces a une fonction, dans lequel le chiffrement implique plusieurs variables dynamiques

Also Published As

Publication number Publication date
US7206408B1 (en) 2007-04-17
FR2793571A1 (fr) 2000-11-17
CN1360715A (zh) 2002-07-24
EP1180260A1 (fr) 2002-02-20
AU4415900A (en) 2000-11-21
EP1180260B1 (fr) 2007-05-23
DE60034944D1 (de) 2007-07-05
FR2793571B1 (fr) 2003-10-31
DE60034944T2 (de) 2008-01-24
WO2000068901A1 (fr) 2000-11-16
CN1231871C (zh) 2005-12-14

Similar Documents

Publication Publication Date Title
JP3140482B2 (ja) 情報を暗号化/復号化する方法と装置
US10313128B2 (en) Address-dependent key generator by XOR tree
ES2717999T3 (es) Método criptográfico por bloques para cifrar/descifrar mensajes y dispositivos criptográficos para implementar este método
CN104160674B (zh) 内容中心网络
US5452358A (en) Method and apparatus for improving the security of an electronic codebook encryption scheme utilizing a data dependent encryption function
EP1308885B1 (en) Information processing and encryption unit
US7764786B2 (en) Protection of a DES algorithm
CN108206735A (zh) 通过比特混合器生成密码轮密钥的方法和系统
US20110085663A1 (en) Method for the access-related or communication-related random encryption and decryption of data
US10146701B2 (en) Address-dependent key generation with a substitution-permutation network
ES2295007T3 (es) Procedimiento de contramedida en un componente electronico que emplea un alritmo de criptografia con clave secreta.
AU2301401A (en) Method for making data processing resistant to extraction of data by analysis of unintended side-channel signals
US9602281B2 (en) Parallelizable cipher construction
Tezcan Key lengths revisited: GPU-based brute force cryptanalysis of DES, 3DES, and PRESENT
ES2262502T3 (es) Procedimiento de contramedidas en un componente electronico que utiliza un algoritmo de criptografia con clave secreta.
ES2287013T3 (es) Procedimiento de contramedida en un componente electronico que pone en aplicacion un algoritmo de criptografia con llave secreta y dinamica.
Saarinen Related-key attacks against full Hummingbird-2
EP1351430B1 (en) Expansion key generating device, encryption device and encryption system
ES2255296T3 (es) Procedimiento de contramedida en un componente electronico que utiliza un algoritmo de criptografia con clave secreta.
US9946662B2 (en) Double-mix Feistel network for key generation or encryption
Fyrbiak et al. Combined HW-SW adaptive clone-resistant functions as physical security anchors
ES2283134T3 (es) Procedimiento de contramedida en un componente electronico que aplica un algoritmo de criptografia de clave secreta.
KR102287962B1 (ko) 부채널 공격 대응이 용이한 128비트 경량 블록 암호화 방법 및 이를 이용한 장치
Pramod et al. An advanced AES algorithm using swap and 400 bit data block with flexible S-Box in Cloud Computing
Abdullah et al. Extended spins framework for security wireless sensor network