ES2236903T3 - Metodo y dispositivo mejorados para la proteccion de programas de codigos publicos contra ataques producidos por la secuencia de operaciones por fallos. - Google Patents

Metodo y dispositivo mejorados para la proteccion de programas de codigos publicos contra ataques producidos por la secuencia de operaciones por fallos.

Info

Publication number
ES2236903T3
ES2236903T3 ES98923379T ES98923379T ES2236903T3 ES 2236903 T3 ES2236903 T3 ES 2236903T3 ES 98923379 T ES98923379 T ES 98923379T ES 98923379 T ES98923379 T ES 98923379T ES 2236903 T3 ES2236903 T3 ES 2236903T3
Authority
ES
Spain
Prior art keywords
mod
phi
sequence
module
operations
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
ES98923379T
Other languages
English (en)
Inventor
Adi Shamir
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.)
Yeda Research and Development Co Ltd
Original Assignee
Yeda Research and Development Co Ltd
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 Yeda Research and Development Co Ltd filed Critical Yeda Research and Development Co Ltd
Application granted granted Critical
Publication of ES2236903T3 publication Critical patent/ES2236903T3/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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation
    • 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/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • 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/005Countermeasures against attacks on cryptographic mechanisms for timing attacks
    • 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
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7233Masking, e.g. (A**e)+r mod n
    • G06F2207/7247Modulo masking, e.g. A**e mod (n*r)
    • 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
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7257Random modification not requiring correction
    • 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
    • G06F2207/7271Fault verification, e.g. comparing two values which should be the same, unless a computational fault occurred
    • 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/08Randomization, e.g. dummy operations or using noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Credit Cards Or The Like (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

Procedimiento y dispositivo mejorados para proteger las lógicas de claves públicas, sobre la base de la exponenciación modular (RSA y Diffie-Hellman en particular), contra las técnicas criptoanalíticas indirectas, como los ataques basados en la secuencia de las operaciones y las faltas. Normalmente, los procedimientos conocidos permiten realizar lógicas teóricas de números que resisten a estos ataques, duplican el tiempo de ejecución, mientras que los nuevos procedimientos y dispositivos descritos en esta patente no añaden más que una sobrecarga de sistema despreciable. Esta mejora es particularmente significativa para las tarjetas inteligentes y las implementaciones basadas en un software, en las que la operación de exponenciación modular es bastante lenta y donde la duplicación de su duración puede ser una solución inaceptable.

Description

Método y dispositivo mejorados para la protección de programas de códigos públicos contra ataques producidos por la secuencia de operaciones y por fallos.
Campo de la invención
La presente invención se refiere a técnicas, métodos e instrumentos para la elaboración de programas de códigos públicos basados en números teóricos (que incluyen programas de encriptación, programas de firmas, programas de identificación, programas de códigos de gestión, etc.) resistentes a ataques producidos por la secuencia de operación y por fallos.
Antecedentes de la invención 1. Introducción
El ataque más simple en contra de cualquier sistema encriptado estará invariablemente dirigido a una búsqueda exhaustiva del código. Existen numerosas variantes de este tipo de ataques (conocidos como ciphertext, cleartext, cleartext elegido, etc.), y todos ellos se basan en un procedimiento que prueba todos los códigos individualmente, es decir uno por uno hasta encontrar el código correcto. Si el código consiste de un número aleatorio de bits, el tiempo de funcionamiento del procedimiento será 2^ (n-1). El ataque podrá fácilmente ser contrarrestado mediante un n suficientemente grande (por ejemplo, n>100).
Para atacar sistemas criptográficos con grandes códigos, los analistas generalmente intentan encontrar debilidades desde el punto de vista matemático o estadístico que reducen el tamaño del espacio de la búsqueda (preferentemente a 1). Aunque numerosas técnicas y resultados con clasificadas como confidenciales por razones de seguridad nacional, es muy fácil asumir que será cada día más difícil encontrar dichas debilidades en los sistemas modernos diseñados por criptógrafos con mucha experiencia e implementados en micro-procesadores de alta velocidad.
Los analistas, para poder atacar con éxito sistemas encriptados importantes deberán por lo tanto utilizar técnicas indirectas. Esto será posible cuando dicho analista se encuentre físicamente próximo al mecanismo criptográfico o cuando lo tiene bajo su total control. Se entiende que el mecanismo criptográfico es una caja negra que contiene un algoritmo conocido y un código desconocido. El analista no podrá abrir la caja y leer el código, pero sí podrá observar su conducta bajo diferentes circunstancias.
Uno de los mejores ejemplos de dichos ataques indirectos es el programa TEMPEST, que intenta deducir el código mediante un análisis electromagnético de la radiación que emana de la caja negra durante el cómputo o cálculo del texto encriptado. Las técnicas para la aplicación y prevención de tales ataques han sido ampliamente estudiadas durante más de 50 años, llegando a ser en el día de hoy un problema bastante bien conocido.
Dos ataques indirectos bastante poderosos han sido descubiertos y publicados recientemente: en Diciembre 1995, P.Kocher, "Criptoanalisis de Diffie-Hellman, RSA, DSS y Otros Sistemas que usan ataques contra la secuencia de operación" informe técnico 12/7/95, que describió un ataque de estas características, y en Septiembre 1996, D. Boneh, R.A. Demillo y R. J. Lipton "La importancia de revisar los cálculos", informe técnico 9/25/96 (cuya versión ampliada aparece en los Procedimientos de Eurocriptología 97, de Mayo de 1997) que describe un ataque por fallo. Ambos ataques fueron originalmente considerados y continúan siendo considerados como exitosos contra programas de código basados en principios de números teoréticos, tales como el RSA, siendo mas tarde ampliados para cubrir sistemas criptográficos clásicos (e.g. por E. Biham y A. Shamir, "Un Nuevo ataque Critptoanalítico contra DES", informe técnico, 10/18/96, cuya versión ampliada se ha incluido asimismo en los procedimientos de Encriptación 97, de Agosto de 1997).
Dichos ataques son especialmente utilizados cuando el programa ha sido implementado en una tarjeta inteligente, como aquellas distribuidas a sus clientes por bancos, redes de informática, operadores de telefonía móvil, o emisores de televisión de pago. Los piratas o hackers generalmente no poseen los recursos técnicos y financieros que se necesitarían para leer los contenidos de los códigos registrados en dichas tarjetas, pero sí tienen un total control sobre los mecanismo de salida, de entrada, el reloj, el reinicio y las conexiones a la red de energía de la tarjeta inteligente. Podrán por lo tanto cuidadosamente medir la duración de cada una de estas operaciones, la cantidad de energía que consumen, que sucede cuando se interrumpe el cómputo o cuando éste se lleva a cabo bajo condiciones de operación que no son consideradas normales. Debido a que las pruebas se efectúan generalmente dentro de la privacidad del hogar de cada uno, el fabricante de la tarjeta no puede evitar dichas prácticas ni tampoco saber siquiera acerca de su existencia.
2. Ataques a la secuencia de operación
Los ataques a la secuencia de operación se basan en la suposición de que algunas de las operaciones básicas efectuadas durante el cálculo criptográfico necesitan un margen de tiempo, que no es constante, y que dependerá de los valores reales en los que se está operando. Lo anterior significa que alguna información acerca de estos valores intermedios desconocidos se puede fácilmente filtrar al efectuar una medición del largo de la lectura criptográfica. Si dichos valores intermedios son computados a partir de bits de textos conocidos y de bits de códigos desconocidos mediante un algoritmo criptográfico conocido, el atacante podrá intentar utilizar los valores intermedios que se han filtrado para deducir cual es el código.
La mayor dificultad que entraña este tipo de ataque es que el atacante solamente sabe la cantidad total de tiempo que se necesita para llevar acabo la lectura criptográfica, pero no el tiempo que transcurre en el desarrollo de cada una de las etapas individualmente. La mayor contribución de Kocher reside en el desarrollo de una técnica eficiente para manejar esta dificultad que en muchos casos resulta ser de interés práctico.
En aras de una mayor concreción, procederemos a describir en ataque de Kocher en el sistema encriptado RSA. Se supone que la caja negra contiene un módulo n que es conocido públicamente y un exponente secreto d. Al usar un determinado numero de entrada x, la caja ejecuta el exponencial modular x^d (mod n) mediante la utilización de la técnica standard de cuadrar y multiplicar. En esta descripción el símbolo "^" será exponencial y el símbolo "_" un subscripto. El resultado (que podrá ser el descifrado del ciber- texto x, la firma del mensaje x, o la respuesta a un desafío de identificación aleatoria x, dependiendo de la aplicación) es enviado fuera tan pronto como se produce, y en ese momento el atacante podrá medir el número total de ciclos de reloj utilizado por cada una de las multiplicaciones modulares.
La implementación standard de multiplicaciones modulares requiere una cantidad de tiempo que no es constante, debido a que se saltan pasos de las multiplicaciones que involucran ceros principales, y se producen reducciones de pasos cuando el resultado es menor que el módulo. El atacante elige aleatoriamente un número mayor de entrada x, y mide el tiempo real de distribución T_O de la operación modular exponencial llevada a cabo por la caja negra. Posteriormente, mide respecto de cada porción x (por simulación utilizando el conocimiento acerca de cómo se ha implementado el programa) el tiempo exacto solamente de la operación inicial de encuadre, y de forma separada, el tiempo exacto de la operación inicial de encuadre-y-multiplicación. El resultado será un par de cifras de distribución de secuencias T_1 y T_2 que no son idénticas. Todos los cálculos criptográficos llevados a cabo en la caja negra utilizan el mismo exponente d, y su primer bit determina cual de las dos distribuciones T_1 y T_2 es la parte inicial del T_O computado de forma experimental. Las secuencias de los pasos restantes del cómputo podrán ser establecidos mediante una variable R aleatoria, que generalmente se distribuye, no de forma correlativa, ya sea en T_1 o en T_2. Ya que T_O es bien T_1+R o T_2+R, el atacante podrá decidir cual de las dos vertientes es la mas probable intentando encontrar cual de las dos distribuciones T_O-T_1 y T_O-T_2 tiene una variación más
baja.
Una vez encontrado el primer bit del exponente secreto d, el atacante sabrá cual es la salida real hacia el segundo paso, pudiendo aplicar entonces la misma técnica (probablemente utilizando distribuciones de secuencia T'_O, T'_1 y T'_2 simuladas y experimentales) para encontrar el segundo bit de d. Repitiendo este procedimiento unas mil veces, podrá calcular todos los bits de d, y por consiguiente irrumpir en el programa RSA.
Un ataque similar puede ser aplicado a cualquier programa criptográfico cuya caja negra eleve todas sus salidas x_1, x_2,... al mismo modulo secreto d el mismo n conocido (que podrá ser un número primo o un número compuesto). Por ejemplo, en uno de los programas de distribución de códigos de Diffie-Hellman, la totalidad de los usuarios acuerdan un módulo primo n en un generador g del grupo multiplicativo Z^*_n.
Cada usuario elige de forma aleatoria un exponente secreto d, y computa y=g^d (mod n) como su código público. Para establecer un código secreto común con otro usuario, el primero de ellos envía su código público y=g^d (mod n) y recibe un código similarmente computado x=g^e (mod n) de parte del otro usuario. El código criptográfico secreto de ambos será z=g^(d*e) (mod n) que el primer usuario computa mediante una evaluación de x^d (mod n). Cuando el primer usuario se comunica con terceras partes, eleva algunos valores conocidos x_1, x_2,... al mismo modulo secreto d el mismo módulo conocido n. Al medir las secuencias de estos cómputos, el atacante podrá determinar el elemento d y posteriormente descubrir todos los códigos criptográficos z_1, z_2,... utilizados por el usuario.
La secuencia del ataque debe se modificada si el cómputo de x^d (mod n) para un módulo compuesto n=p*q es ejecutado mediante el cómputo de x^d (mod p), x^d (mod q), y combinados los resultados de acuerdo con el Teorema del Resto Chino (Chinese Remainder Theorem (CRT, en lo sucesivo Teorema Chino). Este es un modo bastante común de efectuar el cómputo que aproximadamente es cuatro veces más rápido cuando el factor de n es conocida. El problema para el atacante es que no conoce los factores secretos p y q del módulo público n, y por lo tanto, no puede simular la distribución de secuencias T_1 y T_2. La solución ofrecida por Koche sugiere concentrarse en el primer paso del cómputo del Teorema Chino, cuya entrada x es el modulo p reducido. Si x es inferior a p, no se necesitará una reducción modular, y por lo tanto el cómputo es considerablemente más rápido que cuando x es mayor o igual a p. El atacante entonces aplicará a la caja negra un número mayor de entradas x, muy cercanas las unas a las otras, y utilizará el promedio de tiempo de tales cómputos para decidir si estas x están sobre o bajo p. Un proceso de decisión para esta pregunta podrá ser utilizado repetidamente hasta descubrir el valor exacto de p mediante una búsqueda
binaria.
Al poco tiempo del descubrimiento de este ataque, los investigadores intentaron desarrollar aplicaciones que fueran inmunes. Básicamente, la idea es asegurarse de que todas las operaciones criptográficas tomen exactamente la misma cantidad de tiempo, independientemente de lo valores de los textos y los códigos. No obstante, lograr esto es extraordinariamente difícil debido a las siguientes razones:
(a)
En muchos casos la persona que efectúa la implementación quiere aplicar el mismo algoritmo del software en diferentes aparatos (posiblemente desconocidos). Una aplicación cuyo tiempo es constante en un microprocesador podrá ser variable en otro, incluso en una versión mejorada del mismo microprocesa- dor.
(b)
En un sistema para tareas múltiples el tiempo de ejecución dependerá de la cantidad de memoria libre que exista en el mismo, el índice del caché, las interrupciones externas, etc. Todo lo anterior podrá variar la aplicación de una constante de tiempo bajo una serie de circunstancias en comparación con otra serie de circunstancias.
(c)
Si la persona que lo implementa intenta usar un reloj de tiempo real para forzar así que todos los cómputos empleen el mismo margen de tiempo, deberá en primer lugar ralentizarlos todos hasta alcanzar sus peores casos. Debido a que no podrá utilizar ninguna técnica de optimización dependiendo de la salida, la aplicación muy probablemente resultará ser tan lenta que al final resultará ser inaceptable.
Hasta el momento, la mejor técnica de protección en contra de los ataques a las secuencia Kocher en exponenciales modulares ha resultado ser la sustitución de cada entrada x por una versión modificada y=r*R (mod n), donde r es un número secreto aleatorio entre 1 y n-1. Para computar x^d (mod n), el programa computa y^d (mod n) y r^d (mod n) para posteriormente utilizar la propiedad mutiplicativa del exponente modular para computar x^d (mod n) como y^d/r^d (mod n). Debido a que ambos, tanto y como r no son conocidos, el atacante no podrá simular estos cómputos para poder establecer con éxito los bits sucesivos de d en un computo que no sea el del Teorema Chino, no pudiendo efectuar una búsqueda binaria en la versión de dicho teorema. Desgraciadamente, esta técnica de naturaleza aleatoria dobla el tiempo de ejecución del cómputo.
3. Ataques por fallos
Los ataques por fallos intentan introducir errores en la computación criptográfica y asimismo identificar el código mediante un análisis de las propiedades matemáticas y estadísticas de los resultados erróneamente computados. Entre las numerosas técnicas recomendadas hasta el momento respecto de la introducción de dichos errores está el uso de radiación de iones, la aplicación de temperaturas inusuales durante la operación y la utilización de chips de microcirugía láser. Algunos de estos ataques son diferenciales (es decir efectúan un computo correcto y al mismo tiempo un computo erróneo con la misma salida, analizando las diferencias) mientras que otros ataques solo utilizan los resultados erróneos.
El primer ataque por fallo a sistemas de códigos públicos fue descrito en Boneh, Demillo y Lipton, y requirió de varios cómputos criptográficos. Describimos a continuación una versión mejorada de este ataque, perpetrado por Arjen Lensra, que requiere solamente de un cómputo erróneo. Asumimos que la caja negra utiliza el programa RSA para proceder a firmar un mensaje determinado x. El cómputo de x^d (mod n) se efectúa mediante el formato del Teorema Chino reduciendo primero x, módulos p y q hasta obtener x_1 y x_2, para a continuación computar y_1=x_1^d (mod p) e y_2=x_2^d (mod d), para finalmente combinar y_1 e y_2 para obtener la firma y (mod n) con el anteriormente indicado método del Teorema Chino. Suponemos que se introduce un solo error en un tiempo aleatorio durante este cómputo mediante la aplicación de una fuerza física leve a la caja negra. Sin perder de vista la generalidad de los casos, podemos asumir que el error fue introducido durante el computo de x_1^d (mod p) por lo tanto, en vez de obtener y_1 de forma correcta, la caja negra erróneamente computa y'_1. Cuando y'_1 así como y_2 se combinan mediante el sistema del Teorema Chino, la caja computa una firma incorrecta y' que le es proporcionada al
atacante.
La primera observación es que el atacante conoce el exponente de verificación de la firma e, por medio del cual y^e=x (mod n). Debido al error, y'^e-x no es cero mod p, sino cero mod q, y por lo tanto es un múltiple de q, que no es múltiple de n. El atacante podrá llegar a n por medio de un cómputo del mayor divisor común de y'^e-x (mod n) y n, lo que resulta ser un cálculo bastante fácil.
Para proteger programas criptográficos en contra de ataques por fallos, Boneh, Demillo y Lipton han recomendado que cada cómputo sea efectuado dos veces (preferentemente a través de diferentes algoritmos). En caso de encontrar cualquier tipo de discrepancia entre los dos resultados, la caja no debería originar ninguna salida, lo que proporciona una mayor protección respecto de fallos aleatorios (los que con toda probabilidad no afectarán a los dos cómputos de manera idéntica), pero que sí ralentiza el cómputo por un factor de dos. Dicha ralentización es notable especialmente en aplicaciones en tarjetas inteligentes con programas de códigos públicos, que para empezar son más bien lentos.
Partiendo de la publicación de Kocher P.C. "Ataques en la secuencia de operación en la aplicación de programas Diffie-Hellmann, RSA, DSS, y otros programas" avances en criptología - cripto' 96. 16ª conferencia internacional de Santa Barbara, agosto 18-22, procedimientos no. conferencia. 16-18 agosto 1996, Páginas 104-119 XP000626590 Koblitz (ed) Berlin (Alemania), existe un método conocido de activación de programas de códigos públicos que no contienen el formato del Teorema Chino del exponencial modular x^d (mod n) que incluye agregar una secuencia phi(n), donde phi será la función Euler del módulo n. En caso de requerir una adhesión adicional se podrá añadir aleatoriamente un múltiple de phi al exponencial antes de cada exponencialización modular.
Resumen de la invención
La presente invención se refiere a métodos y dispositivos destinados a ofrecer técnicas de protección para programas de códigos públicos, que proporcionan in importante nivel de protección contra las secuencias de operación descritas y contra ataques por fallos, sin incurrir en las dobles ralentizaciones que se hacen necesarias en las técnicas de protección previamente conocidas.
La primera técnica ha sido diseñada para proteger aplicaciones -que no incluyen el Teorema Chino- diseñadas para programas públicos en contra de ataques a la secuencia de operaciones. Esta técnica es de aplicación a los sistemas encriptados RSA, a programas de firma digital RSA, a programas de distribución de códigos Diffie-Hellman, así como a otros programas de números teóricos en lo cuales la caja negra eleva la salida conocida x a un módulo de exponencial secreto fijo d, cuya factorización es conocida por la caja negra.
La segunda técnica ha sido diseñada para proteger activaciones basadas en el formato del Teorema Chino para programas de códigos públicos en contra de ataques a la secuencias de operación y ataques por fallos. El principal problema es comprobar la corrección de los cómputos x_1^d (mod p) y x_2^d (mod q) sin tener que repetirlos por segunda vez (o comprobar cada paso de forma separada, lo que nuevamente dobla el tiempo de ejecución). La invención ofrece una novedad en lo que se refiere a la técnica de detección de errores para dichos cómputos de número teóricos, que resulta ser mucho más efectiva.
Breve descripción de los números
La figura 1 muestra de forma esquemática el método y el dispositivo de la invención que se refiere a una primera técnica para proteger aplicaciones que no incluyan el Teorema Chino de programas de códigos públicos contra ataques a la secuencia de operación.
La figura 2 muestra de forma esquemática el método y el dispositivo de la invención en lo que se refiere a una segunda técnica diseñada para proteger activaciones basadas en el Teorema Chino de programas de códigos públicos contra ataques a las secuencias de operación y a fallos.
Descripción detallada de las representaciones preferidas
Refiriéndonos ahora a los gráficos, describiremos en detalle a continuación las representaciones preferidas. Debido a que los programas de códigos públicos así como la implementación de software y hardware para ordenadores es ampliamente conocida por aquellas personas que poseen conocimiento del estado del arte correspondiente, en este caso no hemos considerado necesario ofrecer una descripción detallada, concisa y exacta en relación con dichos aspectos de la presente invención.
Describimos a continuación dos técnicas novedosas de protección para programas de códigos públicos, los que proporcionan una fuerte e importante protección en contra de los ataques a las secuencia de operación y a posibles fallos, sin incurrir en la ralentización que era necesaria en las técnicas de protección hasta ahora conocidas.
La primera técnica que se muestra en la Figura 1 ha sido diseñada para proteger la aplicación de programas no correspondientes al Teorema Chino en contra de fallos en la secuencia de operaciones. Esta técnica es de aplicación a los sistemas RSA, a los programas RSA de firma digital, a los programas de distribución Diffle-Helman así como a otros programas de números teóricos en los que la caja negra 10 eleva una entrada conocida x a un exponencial fijo secreto d modulo n pública cuya factorización es conocida por la caja negra.
La principal observación al respecto es que por cada n existe un número t=phi(n), caja 12, de modo que por cada x entre 1 y n, que es relativamente primaria a n, x^t=1 (mod n). Este phi se denomina función "totient" Euler: cuando n es primo, phi(n)=n-1, y cuando n=p*q, phi(n)=(p-1)* (q-1). La implementación por lo tanto puede sustituir el cómputo de x^d (mod n) por la cómputo de x^(d+i*t) (mod n) para cualquier numero entero i sin cambiar el resultado computado, ya que x^(d+it)=(x^d)*(x^t)^i=(x^d)*1^i=x^d (mod n) caja 4.
Se puede demostrar que esta igualdad es verdadera aún en el caso de que x no fuera primo en relación con n, sin embargo no es muy probable que este caso se de en la practica. Destacar igualmente que cualquier numero integral múltiple de GCD((p-i), (q-1)) puede reemplazar a phi(n) en nuestra elección de t.
La técnica propuesta para protección de programas de códigos públicos basada en una operación de exponenciación modular debe elegir un nuevo j secreto y aleatorio en cada cómputo, y sustituir el cómputo de x^d (mod n) por el cómputo de x^(d+i*t) (mod n) donde t sea el valor pre-computado de phi (n). Debido a que los bits de estos (d+i*t) para los varios i son diferentes, cada exponencialización usa un secuencia diferente de etapas de encuadre-y-multiplicación, y por lo tanto el atacante no podrá usar el sistema Koche para poder analizar la distribución de tiempo de las diferentes exponencializaciones, ni siquiera en el caso de que todas ellas computaran la misma potencia d-th en sus
salidas.
La eficacia de esta técnica se basa en el hecho de que t es siempre menor que n, y el elemento aleatorio i puede ser elegido como un número relativamente pequeño. Si n y d son números de 1024 bits, y si 1 es un número aleatorio de 32 bits (que en realidad son los tamaños recomendados), d+i*t es un número de 1056 bits. El proceso de elevar la salida x a la potencia 1056 d+i*t requiere solamente un tres por ciento mas de operaciones de encuadre-multiplicación en comparación con el proceso consistente en elevar x a la potencia original d 1024 bits. Esto resulta mucho mejor en comparación con la técnica alternativa descrita anteriormente, que dobla el tiempo de ejecución.
La segunda técnica, que se muestra en la Figura 2, ha sido diseñada para proteger las aplicaciones de programas de códigos públicos basadas en el Teorema Chino en contra de ataques a la secuencia de operación como asimismo ataques por fallos. El principal problema radica en cómo verificar la corrección de los cómputos de x_1^d (mod p) y x_2^d (mod q) sin repetirlos por segunda vez (o verificar cada paso de forma separada, lo que nuevamente, dobla el espacio de tiempo). Describimos a continuación una técnica novedosa para la detección de errores que ha resultado ser mucho más efectiva.
En cada cómputo, la caja negra 20 elige de forma aleatoria un nuevo número entero (el tamaño recomendado de j es también 32 bits), caja 22. En lugar de computar x_1=x (mod p) y x_2=x (mod q) seguido de y_1=x_1^d (mod p) e y_2=x_2^d (mod q), la caja computa v_1=x (mod j*p), v_2=x (mod j*q), d_1=d (mod phi(j*p)) y d_2=d (mod phi(j*q)), caja 24, seguido de w_1=v_1^d_1 (mod j*p) y w_2=v_2^d_2 (mod j*q), caja 26.
La principal observación es que de w_1 y w_2 es muy fácil derivar y_1 e y_2 mediante reducciones adicionales (a saber, y_1=w_1 (mod p) e y_2=w_2 (mod q)), caja 28, y por lo tanto resulta fácil computar el resultado final mediante el método del Teorema Chino, caja 30. Sin embargo, podríamos obtener asimismo el valor de x^d (mod j) de dos maneras diferentes: como w_1 (mod j) y como w_2 (mod j), caja 32. Podemos ahora utilizar la igualdad de estos dos valores (que fueron obtenidos de las dos mitades del cómputo y combinados con la derivación de y_1, y_2) caja 34, como prueba de corrección: en un cómputo libre de fallo las dos mitades serán siempre las mismas, mientras que en un cómputo con error (con errores aleatorios) la posibilidad de que las dos mitades sean las mismas es de aproximadamente 1/(2^32) Ver decisión de la caja 36 en la cual se ha producido un aborto debido a un cómputo incorrecto. Esta técnica de detección de errores es por lo tanto suficiente para cualquier tipo de aplicación en la que el número de exponenciales modulares sea notoriamente menor que 2^32 (aproximadamente 4 billones).
La complejidad respecto del tiempo de esta aplicación es de un porcentaje mayor en comparación con la complejidad de las aplicaciones standard, ya que los exponenciales son llevados a cabo por módulo 512+32=544 bits, móduli j*p y j*q en lugar de 512 bits moduli p y q. Sin embargo, resulta mucho más rápido que repetir cada una de las exponenciales por segunda vez para comprobar su grado de corrección.
Un beneficio adicional de esta técnica de carácter aleatorio es que proporciona asimismo protección contra ataques al tiempo o la secuencia de operaciones sin ningún costo adicional. Los ataques originales Kocher en aplicaciones basadas en el formato del Teorema Chino se centraron en la reducción modular inicial (mod p) utilizando una búsqueda binaria para encontrar aproximaciones de p cada vez más exactas partiendo de cómputos múltiples.
Mediante el uso de la técnica que proponemos, cada cómputo utiliza un módulo j*p diferente en esta etapa inicial de reducción, y por lo tanto el atacante puede perfeccionar su conocimiento del módulo mediante un análisis de un mayor número de exponenciales.
Existen numerosas optimaciones y variaciones respecto de esta técnica, que sin duda son bastante obvios para aquellas personas con conocimiento del tema. Por ejemplo, es posible imponer restricciones adicionales en la elección de un multiplicador j menor que hace menos probable que los cómputos erróneos permanezcan sin detectar. Otra modificación de la técnica consiste en probar cada mitad del cómputo mediante un módulo separado de re-cómputo, un pequeño módulo diferente, en lugar de efectuar una comparación de los dos resultados de los módulos mediante un pequeño módulo común. Para ser más exactos, la implementación puede escoger dos números j_1 y j_2, y posteriormente computar las siguientes cifras:
v_1=x (mod j_1*p), v_2=x (mod j_2*q), v_3=x (mod j_1), v_4=x (mod j_2);
d_1=d (mod phi(j_1*p)), d_2=d (mod phi(j_2*q)), d_3=d (mod phi(j_1)), d_4=d (mod phi(j_2);
w_1=v_1^d_1 (mod j_1*p), w_2=v_2^d_2 (mod j_2*P), w_3=v_3^d_3 (mod j_1), w_4=v_4^d_4 (mod j_2).
Para verificar la corrección del cómputo, la caja negra se asegura que w_1=w_3 (mod j_1) y que w_2=w_4 (mod j_2). Las únicas operaciones caras son el cómputo de w_1 y w_2 ya que los menores exponenciales en el cómputo de w_3 y w_4 son muy eficaces. La técnica de re-computación es más lenta en comparación con la técnica original de comparación, sin embargo puede ser ligeramente más resistente a cierto tipo de fallo de naturaleza no aleatoria.
Mientras la invención ha sido descrita con respecto de ciertas presentaciones, cualquier persona con suficiente conocimiento de la materia podrá apreciar que las variaciones y modificaciones pueden ser efectuadas sin necesidad de partir del alcance o ámbito de la invención.
Bibliografía
1. E. Biham y A. Shamir "Un Nuevo Ataque Criptoanalítico en contra de DES", informe técnico, 10/18/96. Versión ampliada que aparece en los Procedimientos de Criptografía 97; Agosto 1997.
2. D. Boneh, R.A. Demillo y R.J. Lipton "Acerca de la Importancia de Verificar los Cómputos", informe técnico, 9/25/96. Versión ampliada publicada en los Procedimientos de Criptografía 97, Mayo 1997.
3. P. Kocher, "Criptoanálisis de Diffle-Hellman, RSA, DSS y otros sistemas que utilizan ataques a las secuencias de operación", reportaje técnico 12/7/95.

Claims (16)

1. Método en un mecanismo encriptado de aplicación a programas de códigos públicos que contienen el formato del Teorema Chino en operaciones exponenciales modulares x^d (mod n), donde n=p*q, para hacerlas más resistentes a ataques en contra de la secuencia de operaciones y fallos, que se caracteriza por contener los siguientes pasos:
a)
selección de algún número entero secreto j;
b)
computando
v_1=x (mod j*p)
v_2=x (mod j*q)
d_1=d (mod phi(j*p)),
d_2=d (mod phi(j*q)),
w_1=v_1^d_1 (mod j*p) y
w_2=v_2^_2 (mod j*q)
c)
abortando el cómputo si w_1 y w_2 no son iguales a módulo j;
d)
de otra manera computando
y_1=w_1 (mod p),
y_2=w_2 (mod q), y
combinándolos mediante el sistema del Teorema Chino para obtener el resultado de x^d (mod n)
2. El método de la reivindicación 1, con la característica de que j es elegido como número primo.
3. El método de la reivindicación 1 con la característica de que j es elegido como un número aleatorio en el rango [0,(2^k)-1] para alguna k.
4. El método de la reivindicación 3 que se caracteriza porque k=32.
5. Método en un mecanismo encriptado de aplicación a programas de códigos públicos que contienen el formato del Teorema Chino en operaciones exponenciales modulares x^d (mod n), donde n=p*q, para hacerlas más resistentes a ataques en contra de la secuencia de operaciones y fallos, que se caracteriza por contener los siguientes pasos:
a)
selección de dos números enteros secretos j_1 y j_2;
b)
computando
v_1=x (mod j_1*p),
v_2=x (mod j_2*q),
d_1=d (mod phi(j_1*p)),
d_2=d (mod phi(j_2*q)),
w_1=v_1^d_1 (mod j_1*p), y
w_2=v_2^d_2 (mod j_2*q);
c)
computando
v_3=x (mod j_1),
v_4=x (mod j_2),
d_3=d (mod j_1),
d_4=d (mod j_2),
w_3=v_3^d_3 (mod j_1), y
w_4=v_4^d_4 (mod j_2);
d)
abortando el cómputo
si w_3 no es igual a w_1 modulo j_1, o
si w_4 no es igual a w_2 módulo j_2;
e)
o de otra manera computando
y_1=w_1 (mod p),
y_2=w_2 (mod q), y
combinándolos mediante el Teorema Chino para obtener el resultado de x^d (mod n).
6. El método de la reivindicación 5, que se caracteriza porque j_1 y j_2 son números primos.
7. El método de la reivindicación 5 que se caracteriza porque j_1 y j_2 son números elegidos aleatoriamente en el rango [0,(2^k)-1] para alguna k
8. El método de la reivindicación 7, que se caracteriza porque k=32.
9. Mecanismo para aplicación a programas de códigos públicos que contienen el formato del Teorema Chino en operaciones exponenciales modulares x^d (mod n), donde n=p*q, con el propósito de hacerlas más resistentes a ataques en contra de la secuencia de operaciones y fallos, que se caracteriza por contener:
a)
medios para seleccionar algunos números enteros secretos j;
b)
medios para computar
v_1=x (mod j*p),
v_2=x (mod j*q),
d_1=d (mod phi(j*p)),
d_2=d (mod phi(j*q)),
w_1=v_1^d_1 (mod j*p), y
w_2=v_2^d_2 (mod j*q);
c)
medios para abortar el cómputo si w_1 y w_2 no son iguales módulo j;
d)
medios para computar de otro mod
y_1=w_1 (mod p),
y_2=w_2 (mod q) y
combinando ambos mediante el Teorema Chino para obtener el resultado de x^d (mod n)
10. El aparato de la reivindicación 9 que se caracteriza porque j es elegido como un número primo.
11. El aparato de la reivindicación 9, que se caracteriza porque j es elegido como un número aleatorio en el rango [0,(2^k)-1] para alguna k.
12. El aparato de la reivindicación 11, que se caracteriza porque k=32.
13. Un aparato para aplicación a programas de códigos públicos que contienen el formato del Teorema Chino de operaciones exponenciales modulares x^d (mod n) donde n=p*q con el propósito de hacerlas más resistentes a ataques contra la secuencia de operación y fallos, que se caracteriza por incluir:
a.
medios para seleccionar dos números enteros secretos j_1 y _2;
b.
medios para computar
v_1=x (mod j_1 *p),
v_2=x (mod j_2 *q),
d_1=d (mod phi(j_1*p)),
d_2=d (mod phi(j_2*q)),
w_1=v_1^d_1 (mod j_1 *p), y
w_2=v_2^d_2 (mod j_2 *q); y
c.
medios para computar
v_3=x (mod j_1),
v_4=x (mod j_2),
d_3=d (mod j_1),
d_4=d (mod j_2),
w_3=v_3^d_3 (mod j_1), y
w_4=v_4^d_4 (mod j_2);
d.
medios para abortar el cómputo
si w_3 no es igual a w_1 modulo j_1, ó
si w_4 no es igual a w_2 módulo j_2;
e.
medios para computar de otro mod
y_1=w_1 (mod p),
y_2=w_2 (mod d),
y combinando ambos mediante el Teorema Chino para obtener el resultado de x^d (mod n)
14. El aparato de la reivindicación 13, que se caracteriza porque j_1 y j_2 son números primos.
15. El aparato de la reivindicación 13, que se caracteriza porque j_1 y j_2 son elegidos como números aleatorios en el rango [0,(2^k)-1] para alguna k.
16. El aparato de la reivindicación 15 que se caracteriza porque k=32.
ES98923379T 1997-05-12 1998-05-12 Metodo y dispositivo mejorados para la proteccion de programas de codigos publicos contra ataques producidos por la secuencia de operaciones por fallos. Expired - Lifetime ES2236903T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/854,464 US5991415A (en) 1997-05-12 1997-05-12 Method and apparatus for protecting public key schemes from timing and fault attacks
US854464 1997-05-12

Publications (1)

Publication Number Publication Date
ES2236903T3 true ES2236903T3 (es) 2005-07-16

Family

ID=25318766

Family Applications (1)

Application Number Title Priority Date Filing Date
ES98923379T Expired - Lifetime ES2236903T3 (es) 1997-05-12 1998-05-12 Metodo y dispositivo mejorados para la proteccion de programas de codigos publicos contra ataques producidos por la secuencia de operaciones por fallos.

Country Status (8)

Country Link
US (1) US5991415A (es)
EP (1) EP0986873B1 (es)
AU (1) AU7568598A (es)
CA (1) CA2288837C (es)
DE (1) DE69828787T2 (es)
ES (1) ES2236903T3 (es)
IL (1) IL132816A (es)
WO (1) WO1998052319A1 (es)

Families Citing this family (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6965673B1 (en) * 1997-09-19 2005-11-15 Telcordia Technologies, Inc. Method of using transient faults to verify the security of a cryptosystem
DE69840959D1 (de) * 1997-12-17 2009-08-20 Nippon Telegraph & Telephone Verschlüsselungs- und Entschlüsselungsvorrichtungen für Kryptosysteme mit öffentlichem Schlüssel und Aufzeichnungsmedium mit darauf gespeicherten zugehörigen Verarbeitungsprogrammen.
CA2316227C (en) 1998-01-02 2009-08-11 Cryptography Research, Inc. Leak-resistant cryptographic method and apparatus
US7587044B2 (en) 1998-01-02 2009-09-08 Cryptography Research, Inc. Differential power analysis method and apparatus
DE19811175A1 (de) * 1998-03-14 1999-09-16 Philips Patentverwaltung Verfahren und Anordnung zur Abwehr kryptoanalytischer Untersuchungen
FR2776445A1 (fr) * 1998-03-17 1999-09-24 Schlumberger Ind Sa Procede de securisation de donnees mettant en oeuvre un algorithme cryptographique
US6214372B1 (en) 1998-05-04 2001-04-10 Con Lin Co., Inc. Method of using isomer enriched conjugated linoleic acid compositions
WO1999060534A1 (de) * 1998-05-18 1999-11-25 Giesecke & Devrient Gmbh Zugriffsgeschützter datenträger
US6144740A (en) * 1998-05-20 2000-11-07 Network Security Technology Co. Method for designing public key cryptosystems against fault-based attacks with an implementation
US20030118190A1 (en) * 1998-05-29 2003-06-26 Siemens Aktiengesellschaft Method and apparatus for processing data where a part of the current supplied is supplied to an auxiliary circuit
EP1090480B1 (en) 1998-06-03 2019-01-09 Cryptography Research, Inc. Improved des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
JP4216475B2 (ja) 1998-07-02 2009-01-28 クリプターグラフィー リサーチ インコーポレイテッド 漏洩抵抗力を有する暗号索引付き鍵の更新方法及びデバイス
CA2243761C (en) * 1998-07-21 2009-10-06 Certicom Corp. Timing attack resistant cryptographic system
CA2258338C (en) * 1999-01-11 2009-02-24 Certicom Corp. Method and apparatus for minimizing differential power attacks on processors
US7599491B2 (en) 1999-01-11 2009-10-06 Certicom Corp. Method for strengthening the implementation of ECDSA against power analysis
CA2259089C (en) * 1999-01-15 2013-03-12 Robert J. Lambert Method and apparatus for masking cryptographic operations
US7092523B2 (en) 1999-01-11 2006-08-15 Certicom Corp. Method and apparatus for minimizing differential power attacks on processors
FR2789535B1 (fr) 1999-02-04 2001-09-28 Bull Cp8 Procede de securisation d'un ensemble electronique de cryptographie a cle secrete contre les attaques par analyse physique
FR2792141B1 (fr) 1999-04-09 2001-06-15 Bull Cp8 Procede de securisation d'un ou plusieurs ensembles electroniques mettant en oeuvre un meme algorithme cryptographique avec cle secrete, une utilisation du procede et l'ensemble electronique
US6298135B1 (en) * 1999-04-29 2001-10-02 Motorola, Inc. Method of preventing power analysis attacks on microelectronic assemblies
DE19921633A1 (de) * 1999-05-10 2000-11-16 Deutsche Telekom Ag Verfahren zur Implementierung kryptographischer Algorithmen
US6804782B1 (en) * 1999-06-11 2004-10-12 General Instrument Corporation Countermeasure to power attack and timing attack on cryptographic operations
NL1012581C2 (nl) * 1999-07-13 2001-01-16 Koninkl Kpn Nv Werkwijze voor het beschermen van een draagbare kaart.
FR2799851B1 (fr) * 1999-10-14 2002-01-25 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type rsa
FR2800478B1 (fr) * 1999-10-28 2001-11-30 Bull Cp8 Procede de securisation d'un ensemble electronique de cryptographie a base d'exponentiation modulaire contre les attaques par analyse physique
US6724894B1 (en) * 1999-11-05 2004-04-20 Pitney Bowes Inc. Cryptographic device having reduced vulnerability to side-channel attack and method of operating same
DE19963407A1 (de) * 1999-12-28 2001-07-12 Giesecke & Devrient Gmbh Tragbarer Datenträger mit Zugriffsschutz durch Nachrichtenverfremdung
DE19963408A1 (de) * 1999-12-28 2001-08-30 Giesecke & Devrient Gmbh Tragbarer Datenträger mit Zugriffsschutz durch Schlüsselteilung
DE10024325B4 (de) * 2000-05-17 2005-12-15 Giesecke & Devrient Gmbh Kryptographisches Verfahren und kryptographische Vorrichtung
FR2810178B1 (fr) * 2000-06-13 2004-10-29 Gemplus Card Int Procede de calcul cryptographique comportant une routine d'exponentiation modulaire
DE10042234C2 (de) * 2000-08-28 2002-06-20 Infineon Technologies Ag Verfahren und Vorrichtung zum Durchführen einer modularen Exponentiation in einem kryptographischen Prozessor
KR100396740B1 (ko) * 2000-10-17 2003-09-02 학교법인 한국정보통신학원 계산적 디피-헬만 가정에 기반하는 안전성 증명 가능한공개키 암호화 방법
FR2818772A1 (fr) * 2000-12-21 2002-06-28 Bull Cp8 Procede de securisation d'un operateur logique ou mathematique implante dans un module electronique a microprocesseur, ainsi que le module electronique et le systeme embarque associes
FR2819663B1 (fr) * 2001-01-18 2003-04-11 Gemplus Card Int Dispositif et procede d'execution d'un algorithme cryptographique
FR2824209B1 (fr) * 2001-04-30 2003-08-29 St Microelectronics Sa Brouillage d'un calcul mettant en oeuvre une fonction modulaire
FR2828608B1 (fr) * 2001-08-10 2004-03-05 Gemplus Card Int Procede securise de realisation d'une operation d'exponentiation modulaire
FR2829335A1 (fr) * 2001-09-06 2003-03-07 St Microelectronics Sa Procede de brouillage d'un calcul a quantite secrete
DE10143728B4 (de) * 2001-09-06 2004-09-02 Infineon Technologies Ag Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Exponentiation
US7436953B2 (en) * 2001-09-13 2008-10-14 Nds Limited Hacking prevention system
FR2830146B1 (fr) * 2001-09-24 2003-10-31 Gemplus Card Int Procede de mise en oeuvre, dans un composant electronique, d'un algorithme de cryptographie et composant correspondant
WO2003034268A2 (de) * 2001-10-17 2003-04-24 Infineon Technologies Ag Verfahren und vorrichtung zum absichern einer exponentiations-berechnung mittels dem chinesischen restsatz (crt)
AU2002340566A1 (en) * 2001-10-17 2003-04-28 Infineon Technologies Ag Method and device for guaranteeing a calculation in a cryptographic algorithm
DE10162584A1 (de) * 2001-10-17 2003-05-08 Infineon Technologies Ag Verfahren und Vorrichtung zum Absichern einer Exponentiations-Berechnung mittels dem chinesischen Restsatz (CRT)
GB0126317D0 (en) * 2001-11-02 2002-01-02 Comodo Res Lab Ltd Improvements in and relating to cryptographic methods and apparatus in which an exponentiation is used
AU2002226515A1 (en) * 2001-12-28 2003-09-04 Gemplus Method for detection of attacks on cryptographic algorithms by trial and error
KR100431286B1 (ko) * 2002-01-14 2004-05-12 한국정보보호진흥원 중국인 나머지 정리(crt) 기반의 오류 공격에 대응하는 방법 및 그 장치
JP2003241659A (ja) * 2002-02-22 2003-08-29 Hitachi Ltd 情報処理方法
KR100431047B1 (ko) * 2002-02-26 2004-05-12 주홍정보통신주식회사 Crt에 기초한 rsa 공개키 암호화 방식을 이용한디지털 서명방법 및 그 장치
FR2838262B1 (fr) 2002-04-08 2004-07-30 Oberthur Card Syst Sa Procede de securisation d'une electronique a acces crypte
FR2840083A1 (fr) * 2002-05-24 2003-11-28 St Microelectronics Sa Test d'un algorithme execute par un circuit integre
AU2003271594A1 (en) * 2002-09-11 2004-04-23 Giesecke And Devrient Gmbh Protected cryptographic calculation
DE10250810A1 (de) * 2002-09-11 2004-03-25 Giesecke & Devrient Gmbh Geschützte kryptographische Berechnung
FR2844891A1 (fr) * 2002-09-20 2004-03-26 St Microelectronics Sa Masquage de donnees decomposees dans un systeme de residus
DE10304451B3 (de) * 2003-02-04 2004-09-02 Infineon Technologies Ag Modulare Exponentiation mit randomisiertem Exponenten
GB2399904B (en) * 2003-03-28 2005-08-17 Sharp Kk Side channel attack prevention in data processing apparatus
US6880752B2 (en) * 2003-04-16 2005-04-19 George V. Tarnovsky System for testing, verifying legitimacy of smart card in-situ and for storing data therein
DE10328860B4 (de) * 2003-06-26 2008-08-07 Infineon Technologies Ag Vorrichtung und Verfahren zum Verschlüsseln von Daten
FR2858496B1 (fr) * 2003-07-31 2005-09-30 Gemplus Card Int Procede pour la mise en oeuvre securisee d'un algorithme de cryptographie de type rsa et composant correspondant
EP1692800B1 (en) 2003-11-16 2010-06-30 SanDisk IL Ltd Enhanced natural montgomery exponent masking
US7590880B1 (en) * 2004-09-13 2009-09-15 National Semiconductor Corporation Circuitry and method for detecting and protecting against over-clocking attacks
US7477741B1 (en) 2004-10-01 2009-01-13 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Analysis resistant cipher method and apparatus
ATE533103T1 (de) 2005-01-18 2011-11-15 Certicom Corp Beschleunigte verifikation digitaler signaturen und öffentlicher schlüssel
US8467535B2 (en) 2005-01-18 2013-06-18 Certicom Corp. Accelerated verification of digital signatures and public keys
US7620187B1 (en) 2005-03-30 2009-11-17 Rockwell Collins, Inc. Method and apparatus for ad hoc cryptographic key transfer
FR2884004B1 (fr) * 2005-03-30 2007-06-29 Oberthur Card Syst Sa Procede de traitement de donnees impliquant une exponentiation modulaire et un dispositif associe
US7729459B1 (en) 2005-03-31 2010-06-01 National Semiconductor Corporation System and method for providing a robust ultra low power serial interface with digital clock and data recovery circuit for power management systems
FR2884088B1 (fr) * 2005-03-31 2007-06-22 Gemplus Sa Procede et dispositif cryptographique permettant de proteger les logiques de cles publiques contre les attaques par faute
FR2887351A1 (fr) * 2005-06-16 2006-12-22 St Microelectronics Sa Protection d'un calcul d'exponentiation modulaire effectue par un circuit integre
CN101243389A (zh) * 2005-08-19 2008-08-13 Nxp股份有限公司 用于rsa密钥产生的电路装置和方法
EP1920324A1 (en) * 2005-08-19 2008-05-14 Nxp B.V. Circuit arrangement for and method of performing an inversion operation in a cryptographic calculation
US7822207B2 (en) * 2006-12-22 2010-10-26 Atmel Rousset S.A.S. Key protection mechanism
US8280041B2 (en) * 2007-03-12 2012-10-02 Inside Secure Chinese remainder theorem-based computation method for cryptosystems
WO2008114310A1 (ja) * 2007-03-16 2008-09-25 Fujitsu Limited Fault攻撃対策機能を備えた組み込み装置
US7974409B2 (en) * 2007-06-28 2011-07-05 Samsung Electronics Co., Ltd. Changing the order of public key cryptographic computations
US7936871B2 (en) * 2007-06-28 2011-05-03 Samsung Electronics Co., Ltd. Altering the size of windows in public key cryptographic computations
FR2919739B1 (fr) 2007-08-03 2009-12-04 Oberthur Card Syst Sa Procede de traitement de donnees protege contre les attaques par generation de fautes et dispositif associe
US8670557B2 (en) 2007-09-10 2014-03-11 Spansion Llc Cryptographic system with modular randomization of exponentiation
US8139763B2 (en) 2007-10-10 2012-03-20 Spansion Llc Randomized RSA-based cryptographic exponentiation resistant to side channel and fault attacks
US7907724B2 (en) * 2007-10-25 2011-03-15 Infineon Technologies Ag Method and apparatus for protecting an RSA calculation on an output by means of the chinese remainder theorem
US8774400B2 (en) 2008-01-03 2014-07-08 Spansion Llc Method for protecting data against differntial fault analysis involved in rivest, shamir, and adleman cryptography using the chinese remainder theorem
KR100953715B1 (ko) 2008-01-22 2010-04-19 고려대학교 산학협력단 Crt-rsa 모듈라 지수승 알고리즘을 이용한 디지털서명 방법, 그 장치 및 이를 기록한 컴퓨터 판독가능 저장매체
FR2926652B1 (fr) * 2008-01-23 2010-06-18 Inside Contactless Procede et dispositifs de contre-mesure pour cryptographie asymetrique a schema de signature
US7958354B1 (en) 2008-02-14 2011-06-07 Rockwell Collins, Inc. High-order knowledge sharing system to distribute secret data
US8600047B2 (en) * 2008-05-07 2013-12-03 Irdeto Corporate B.V. Exponent obfuscation
US7522723B1 (en) 2008-05-29 2009-04-21 Cheman Shaik Password self encryption method and system and encryption by keys generated from personal secret information
EP2154604A1 (en) 2008-08-06 2010-02-17 Gemalto SA Countermeasure securing exponentiation based cryptography
EP2222013A1 (en) 2009-02-19 2010-08-25 Thomson Licensing Method and device for countering fault attacks
EP2228715A1 (en) * 2009-03-13 2010-09-15 Thomson Licensing Fault-resistant calculcations on elliptic curves
WO2011068996A1 (en) * 2009-12-04 2011-06-09 Cryptography Research, Inc. Verifiable, leak-resistant encryption and decryption
JP5328993B2 (ja) * 2010-12-24 2013-10-30 三菱電機株式会社 署名生成装置及び署名生成方法及び記録媒体
US8817974B2 (en) * 2011-05-11 2014-08-26 Nxp B.V. Finite field cryptographic arithmetic resistant to fault attacks
EP2535804A1 (en) 2011-06-17 2012-12-19 Thomson Licensing Fault-resistant exponentiation algorithm
FR2977953A1 (fr) * 2011-07-13 2013-01-18 St Microelectronics Rousset Protection d'un calcul d'exponentiation modulaire par addition d'une quantite aleatoire
DE102011115082A1 (de) 2011-09-19 2013-03-21 Giesecke & Devrient Gmbh Gegen Ausspähung schützbarer geheimer RSA Verschlüsselungsexponent
US8745376B2 (en) 2011-10-14 2014-06-03 Certicom Corp. Verifying implicit certificates and digital signatures
US8635467B2 (en) 2011-10-27 2014-01-21 Certicom Corp. Integrated circuit with logic circuitry and multiple concealing circuits
US8334705B1 (en) 2011-10-27 2012-12-18 Certicom Corp. Analog circuitry to conceal activity of logic circuitry
US8861718B2 (en) * 2012-02-10 2014-10-14 Electronics And Telecommunications Research Institute Method of preventing fault-injection attacks on Chinese Remainder Theorem-Rivest Shamir Adleman cryptographic operations and recording medium for storing program implementing the same
EP2667539A1 (en) * 2012-05-21 2013-11-27 Koninklijke Philips N.V. Key sharing methods, device and system for configuration thereof.
CN103051454A (zh) * 2012-12-19 2013-04-17 天地融科技股份有限公司 电子设备及其密码验证方法
US9087192B2 (en) 2013-09-10 2015-07-21 Infineon Technologies Ag Electronic circuit and method for monitoring a data processing
KR102180029B1 (ko) 2014-02-03 2020-11-17 삼성전자 주식회사 Crt-rsa 암호화 방법 및 장치와 이를 기록한 컴퓨터 판독가능 저장매체
EP3188401B1 (en) 2015-12-29 2019-12-18 Secure-IC SAS Method and system for protecting a cryptographic operation
EP3242202A1 (en) 2016-05-04 2017-11-08 Gemalto Sa Countermeasure to safe-error fault injection attacks on cryptographic exponentiation algorithms
TW201810989A (zh) * 2016-05-18 2018-03-16 納格維遜股份有限公司 用以保護密碼指數的方法及系統
EP3503459B1 (en) 2017-12-22 2021-04-21 Secure-IC SAS Device and method for protecting execution of a cryptographic operation

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5504817A (en) * 1994-05-09 1996-04-02 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for memory efficient variants of public key encryption and identification schemes for smart card applications
US5764766A (en) * 1996-06-11 1998-06-09 Digital Equipment Corporation System and method for generation of one-time encryption keys for data communications and a computer program product for implementing the same

Also Published As

Publication number Publication date
EP0986873A1 (en) 2000-03-22
CA2288837A1 (en) 1998-11-19
US5991415A (en) 1999-11-23
IL132816A0 (en) 2001-03-19
DE69828787D1 (de) 2005-03-03
IL132816A (en) 2003-05-29
AU7568598A (en) 1998-12-08
DE69828787T2 (de) 2006-04-06
WO1998052319A1 (en) 1998-11-19
EP0986873B1 (en) 2005-01-26
CA2288837C (en) 2008-11-18

Similar Documents

Publication Publication Date Title
ES2236903T3 (es) Metodo y dispositivo mejorados para la proteccion de programas de codigos publicos contra ataques producidos por la secuencia de operaciones por fallos.
Boneh et al. On the importance of eliminating errors in cryptographic computations
Acıiçmez et al. New branch prediction vulnerabilities in OpenSSL and necessary software countermeasures
Boneh et al. On the importance of checking cryptographic protocols for faults
Blömer et al. A new CRT-RSA algorithm secure against bellcore attacks
Biham et al. Bug attacks
US10367637B2 (en) Modular exponentiation with transparent side channel attack countermeasures
US7961873B2 (en) Password protocols using XZ-elliptic curve cryptography
US7010692B2 (en) Cryptographic methods for remote authentication
Vigilant RSA with CRT: A new cost-effective solution to thwart fault attacks
Koblitz et al. Another look at security definitions
US8639944B2 (en) Zero divisors protecting exponentiation
ES2729874T3 (es) Sistema y método de exponenciación del teorema chino del resto de uso único para algoritmos criptográficos
KR100652377B1 (ko) 모듈라 지수승 알고리즘, 기록매체 및 시스템
JP2004304800A (ja) データ処理装置におけるサイドチャネル攻撃防止
CN109818752A (zh) 信用评分生成方法、装置、计算机设备和存储介质
Fouque et al. Defeating countermeasures based on randomized BSD representations
Wong Timing and Lattice Attacks on a Remote ECDSA OpenSSL Server: How Practical Are They Really?
JP3952304B2 (ja) 電子コンポネントにおいて公開指数を求める暗号アルゴリズムを実行する方法
Smart Physical side‐channel attacks on cryptographic systems
US20220200802A1 (en) Randomization methods in isogeny-based cryptosystems
Arjunan et al. Securing RSA algorithm against timing attack.
Jain et al. Parallel repetition for leakage resilience amplification revisited
Chapman Using Graphic Based Systems to Improve Cryptographic Algorithms
Young Mitigating insider threats to RSA key generation