EP1904921A1 - Procede cryptographique pour la mise en oeuvre securisee d'une exponentiation et composant associe - Google Patents

Procede cryptographique pour la mise en oeuvre securisee d'une exponentiation et composant associe

Info

Publication number
EP1904921A1
EP1904921A1 EP06764162A EP06764162A EP1904921A1 EP 1904921 A1 EP1904921 A1 EP 1904921A1 EP 06764162 A EP06764162 A EP 06764162A EP 06764162 A EP06764162 A EP 06764162A EP 1904921 A1 EP1904921 A1 EP 1904921A1
Authority
EP
European Patent Office
Prior art keywords
calculate
message
mod
calculating
exponent
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.)
Withdrawn
Application number
EP06764162A
Other languages
German (de)
English (en)
Inventor
Mathieu Ciet
Karine Villegas
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
Publication of EP1904921A1 publication Critical patent/EP1904921A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • 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
    • 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
    • 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]
    • 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
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme

Definitions

  • the present invention relates to a cryptographic method enabling the secure implementation of an exponentiation in an electronic component, this implementation being more particularly used in the context of an asymmetric cryptographic algorithm, for example of the RSA type.
  • the invention also relates to the electronic component comprising the means for implementing this method.
  • Electronic components implementing cryptographic algorithms are generally used in applications where access to services or data is severely controlled. They have an architecture that allows them to execute any type of algorithm.
  • such electronic components implement a cryptographic algorithm that makes it possible to ensure the encryption of transmitted data and / or the decryption of received data, the digital signature of a message and / or the verification of this signature. Indeed, from a message applied by a host system to the input of the electronic component, and from secret numbers contained in the electronic component, the electronic component provides back to the host system the signed message, which allows for example, the host system to authenticate the electronic component.
  • the electronic component decrypts the message.
  • the characteristics of cryptographic algorithms may be known, such as the calculations performed or the parameters used.
  • the security of these cryptographic algorithms relies essentially on the secret number (s) used in the algorithm. This or these secret numbers are contained in the electronic component and are totally unknown to the external environment.
  • the RSA-type cryptographic algorithms are based on a mathematical problem that is considered computationally complex for sufficiently large numbers, namely factorization.
  • a number of protection techniques to prevent these external attacks are known. For example, it is possible to use a power supply device comprising capacitors able to mask the fluctuations in the power consumption. Computing devices can also be enclosed in shielded protective housings confining electromagnetic radiation.
  • An object of the present invention is therefore to provide an RSA type cryptographic method and an associated electronic component which make it possible to counter hidden channel type attacks (whether simple or differential) more quickly and more efficiently.
  • an asymmetric cryptographic method applied to a message M comprises a private operation of signing or decrypting the message M to obtain a signed or decrypted message, private operation being defined from at least one modular exponentiation EM of the form
  • EM M mod B, A and B respectively being the exponent and the modular exponentiation module EM, mod denoting the modulo operation, and the private operation comprising the steps of:
  • the step of calculating the signed or decrypted message s is performed by reducing EM *, the result of the intermediate modular exponentiation.
  • a cryptographic method characterized in that it uses a public key and a private key, the public key being composed of a module ⁇ / RSA type and an exponent public e, and the private key being composed of the module N of type
  • RSA a private exponent d
  • ed lmod ⁇ ( ⁇ 0, ⁇ being the indicator function of Euler
  • N * x N. N with x N a public value dependent on N and M; b) Calculate an intermediate message M * randomly, such as
  • step a i) of calculating the value ⁇ comprises the steps of:
  • a cryptographic method characterized in that it uses a public key and a private key, the public key being composed of a module ⁇ / RSA type product of two large prime numbers p and q, and a public exponent e, and the private key being composed of the "quintuplet" (p, q, d p , d q , i q ) with
  • M p * [(M mod p *) + x Mp .p] mo ⁇ p *, with x Mp a value
  • an asymmetric cryptographic method applied to a message M to be signed or deciphered in a signed or decrypted message characterized in that the cryptographic method uses a public key and a private key, the public key being composed of a module N of type RSA, produced by two large prime numbers p and q, and a public exponent e, and the private key being composed of the "quintuplet" (p, q, d p , d q , i q ) with
  • the signed or decrypted message is calculated according to the steps of:
  • an electronic component comprising means for implementing the cryptographic method according to the various embodiments of the invention.
  • the electronic component comprises for example a programmed processing means, such as a microprocessor, for implementing the cryptographic method according to the invention.
  • FIG. 1 is a schematic diagram of the standard mode RSA cryptographic method according to a preferred aspect of the invention
  • FIG. 2 is a schematic diagram of the CRT mode RSA cryptographic method according to another preferred aspect of the invention.
  • FIG. 3 is a schematic diagram of the RSA cryptographic method in CRT mode according to yet another aspect of the invention.
  • the first embodiment of the public key signature and encryption scheme was developed by Rivest, Shamir and Adleman, who invented the RSA type cryptographic system. This system is the most used public key cryptosystem.
  • It can be used as an encryption method or as a signature method.
  • the RSA type cryptographic system uses modular exponentiation calculations. It consists firstly in generating the RSA key pair that will be used for these modular exponentiations. Thus, each user creates an RSA public key and a corresponding private key, according to the following 5-step process:
  • the public key is the pair (N, e) and the private key is the pair (N, d).
  • the integers e and d are called respectively public exponent and private exponent.
  • the integer N is called the RSA module.
  • the public operation on x which is called the message x encryption, consists of calculating the modular exponentiation: y - x e mod N
  • the corresponding private operation is the decryption operation of the encrypted message y, and consists in calculating the modular exponentiation: / mod / V
  • signature verification y uses the public key (N, e) and the x and y values and consists of checking whether
  • the mode shown above is called standard mode.
  • CRT mode Another mode of operation of the RSA cryptography algorithm
  • CRT Chinese Reminder Theorem
  • This mode of operation says CRT is much faster than the standard mode.
  • the modular exponentiation is not directly calculated modulo N, but one carries out first two calculations of modular exponentiation, respectively modulo p and modulo q.
  • the operation that must necessarily be protected is the so-called private operation.
  • the private operation is the only operation of the cryptography algorithm that uses private numbers unknown to the outside environment, namely the private exponent d in the case of a standard mode RSA cryptography algorithm, and the numbers p, q, d p , d q and i q forming the private elements in the case of an RSA cryptography algorithm in CRT mode.
  • Hidden channel type attacks are based on an analysis of the calculations performed during the cryptography algorithm.
  • the countermeasure proposed in this document is therefore a method for the secure implementation of an exponentiation that prevents the external detection of the private number or numbers used in the RSA type cryptography algorithm, especially during the private operation.
  • M, A and B are respectively called the base, the exponent and the module.
  • the progress of the private operation is based on the use of intermediate parameters, derived from the calculation parameters A, B, or M and can therefore be done according to the steps of:
  • the intermediate exponent A * is calculated randomly or deterministically.
  • the embodiment of the invention presented below relates to the standard mode RSA cryptography algorithm in the case of a signature operation.
  • the invention is not limited to such a signature method and may also be used in the context of a method of encrypting a message.
  • One way to secure this private operation is to perform a transformation of the calculation parameters used to compute s. This transformation of the parameters must be such that all or part of the parameters used for the calculation of s are wholly or partly modified at each execution of the cryptography algorithm.
  • the first step of the secure implementation method according to the invention consists in transforming the RSA type module N into an intermediate module N *.
  • N * x N .N with x N a public value dependent on both N and M and which allows the possible normalization of N module of type RSA.
  • An exemplary embodiment of this function f is presented later in this document. It should be noted that, since the function f is deterministic and public, and M and N are also public, the value ⁇ is also public.
  • the value T it corresponds to the normalization coefficient that can sometimes be used in certain types of multiplication algorithms modular, such as the multiplication of Quisquater. In the case where the normalization of the module is not necessary, then the coefficient T is taken equal to 1.
  • the second step is to transform M into an intermediate message M *.
  • the parameters ⁇ and T are identical to the parameters ⁇ and T taken to calculate the intermediate module ⁇ / *.
  • r-i is an integer taken randomly according to any random draw process.
  • e and d are respectively the public and private exponents of the RSA cryptography algorithm and r 2 is an integer randomly drawn according to any random draw method.
  • the final step is to reduce the intermediate modular exponentiation s * to obtain the signed value s.
  • the step of reducing s * to get the signed value s remains the same.
  • the private operation of generating a signature s from a message M is much more secure because of the change of the intermediate values used during the RSA type cryptography algorithm.
  • the intermediate parameter M * changes with each run of the RSA cryptography algorithm in standard mode.
  • the parameter d * is not taken equal to d, it also changes value each time the algorithm is executed.
  • the intermediate parameter N * changes each time the message M to sign varies.
  • this method uses only one random number (even a second if the intermediate parameter of * is not equal to d), which allows, among other things, a saving in power consumption but also in computing time.
  • the value ⁇ is obtained from a function / that one chooses determinist and public.
  • the value ⁇ is thus obtained deterministically and publicly as a function of the message to sign M and N module RSA type.
  • the method for obtaining the value ⁇ can for example be the following.
  • the parameter M and the parameter N are decomposed as follows:
  • I I w depends on the architecture of the microprocessor with which the calculations of the algorithm are made. We can take for example w among the values 8, 16, 32, or 64.
  • ⁇ ⁇ is for example a rotation, or more generally a function belonging to the group of the set of permutations S of length a.
  • Z 0 can be set to any value.
  • the method of secure implementation of an RSA type cryptographic algorithm in CRT can be used both in a signature method and in a method of encrypting a message.
  • the calculation of the intermediate modular exponentiation s p * includes the following steps.
  • the first step of the secure implementation method according to the invention consists in transforming the module p into an intermediate module p *.
  • f p a deterministic and public function, f p being a function comparable to the function / used in the case of the standard mode, k is a non-zero positive integer. Nevertheless, ⁇ p does not depend on ⁇ / but depends on Af mod 2.
  • JVmod2 * (/?mod2*).(#mod2*).mod2*
  • ⁇ p is determined from the k least significant bits of the N module.
  • ⁇ p is therefore a deterministic and public value.
  • the coefficient T corresponds to the normalization coefficient sometimes used in certain types of modular multiplication algorithms. If normalization is not necessary then Test taken equal to 1.
  • M p * [(M mod p *) + x Mp .p] mod p *
  • s p * M p * dp mo ⁇ p *
  • the signed message s should be calculated from the intermediate exponentiations s p * and s q * which have just been calculated.
  • the first way of calculating s from s p * and s q * is to reduce them in order to obtain s p and s q respectively .
  • Another way of calculating the signed message s is to directly recombine the intermediate exponentiations s p * and s q *.
  • This particular recombination notably allows a saving of memory time and calculation time.
  • the computation of the signed message s of directly recombining the intermediate modular exponentiations s p * and s q * as above can be used in any other RSA cryptographic method, in CRT mode, which uses intermediate modular exponentiation s p * and s q * calculated respectively from the intermediate modules p * and q * (which themselves are respectively derived from the modules p and q).
  • s * s q * + q. ((I q (s p * -s q *)) mod p *)

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention concerne un procédé cryptographique asymétrique appliqué à un message M, caractérisé en ce qu'il comprend une opération privée consistant à signer ou déchiffrer le message M pour obtenir un message signé ou déchiffré s, l'opération privée étant définie à partir d'au moins une exponentiation modulaire EM de la forme EM = M

Description

Procédé cryptographique pour la mise en œuvre sécurisée d'une exponentiation et composant associé
DOMAINE DE L'INVENTION
La présente invention concerne un procédé cryptographique permettant la mise en œuvre sécurisée d'une exponentiation dans un composant électronique, cette mise en œuvre étant plus particulièrement utilisée dans le cadre d'un algorithme cryptographique asymétrique, par exemple de type RSA.
L'invention concerne également le composant électronique comprenant les moyens pour la mise en œuvre de ce procédé.
ETAT DE LA TECHNIQUE
Les composants électroniques mettant en œuvre des algorithmes de cryptographie sont en général utilisés dans des applications où l'accès à des services ou à des données est sévèrement contrôlé. Ils ont une architecture telle qu'elle leur permet d'exécuter n'importe quel type d'algorithme.
Ces composants peuvent notamment être utilisés dans les cartes à puce, pour certaines applications de celles-ci.
Ainsi, de tels composants électroniques mettent en œuvre un algorithme de cryptographie qui permet d'assurer le chiffrement de données émises et/ou le déchiffrement de données reçues, la signature numérique d'un message et/ou la vérification de cette signature. En effet, à partir d'un message appliqué par un système hôte à l'entrée du composant électronique, et à partir de nombres secrets contenus dans le composant électronique, le composant électronique fournit en retour au système hôte le message signé, ce qui permet par exemple au système hôte d'authentifier le composant électronique.
De manière analogue, à partir d'un message chiffré appliqué par un système hôte à l'entrée du composant électronique, et à partir de nombres secrets contenus dans le composant électronique, le composant électronique déchiffre le message.
Les caractéristiques des algorithmes de cryptographie peuvent être connues, comme les calculs effectués ou les paramètres utilisés. La sécurité de ces algorithmes de cryptographie repose en effet essentiellement dans le ou les nombres secrets utilisés dans l'algorithme. Ce ou ces nombres secrets sont contenus dans le composant électronique et sont totalement inconnus du milieu extérieur.
Ils ne peuvent être déduits de la seule connaissance du message appliqué en entrée et du message chiffré fourni en retour. En effet, les algorithmes cryptographiques de type RSA reposent sur un problème mathématique jugé complexe d'un point de vue calculatoire pour des nombres suffisamment grands, à savoir la factorisation.
Pour trouver ce ou ces nombres secrets, des attaques consistant à agir physiquement sur le composant électronique ou la carte à puce ont été développées et ainsi, un certain nombre de techniques de protection appropriées ont vu le jour de façon à contrer ces attaques physiques.
Toutefois, il est apparu que le ou les nombres secrets contenus dans la carte pouvaient être percés par le biais d'attaques non invasives. Ces attaques, dites à canaux cachés, permettent à une personne extérieure de déterminer le ou les nombres secrets contenus dans le composant électronique à partir de grandeurs physiques mesurables à l'extérieur du composant lorsque celui-ci est en train d'exécuter l'algorithme de cryptographie.
Le principe de ces attaques à canaux cachés repose sur le fait que certains paramètres caractérisant le microprocesseur varient selon l'instruction exécutée ou la donnée manipulée. L'analyse de la consommation en courant, des temps de calcul ou encore des rayonnements électromagnétiques permettent par exemple de découvrir le ou les nombres secrets.
Ces attaques dites à canaux cachés sont notamment envisageables avec les algorithmes de cryptographie du type RSA (du nom de ses inventeurs Rivest, Shamir et Adelman), qui est celui le plus utilisé en cryptographie, en particulier dans le domaine des cartes à puce.
Un certain nombre de techniques de protection pour empêcher ces attaques externes sont connues. On peut par exemple utiliser un dispositif d'alimentation comprenant des condensateurs aptes à masquer les fluctuations dans la consommation de courant. Les dispositifs de calcul peuvent aussi être enfermés dans des boîtiers de protection blindés confinant les rayonnements électromagnétiques.
Néanmoins, de telles techniques ne sont pas totalement infaillibles et une personne extérieure expérimentée pourra éventuellement déterminer le ou les nombres secrets en utilisant par exemple des techniques de signaux amplifiés, ou encore en filtrant le bruit en faisant une moyenne des données collectées sur plusieurs mesures. En outre, dans des dispositifs tels que les cartes à puce, ces contre- mesures sont souvent inapplicables ou insuffisantes du fait des différentes contraintes physiques de ces dispositifs, comme notamment la dépendance vis-à-vis des sources de puissance externes, l'impossibilité d'utilisation de blindage, etc.
D'autres méthodes mathématiques sont connues pour empêcher les attaques basées sur la mesure des temps de calcul des différentes opérations. Néanmoins, elles ne permettent pas de se protéger contre les attaques plus complexes comme celles basées sur l'analyse de la consommation de courant.
Une autre méthode de protection contre les attaques dites à canaux cachés a été présentée dans la demande de brevet WO 99/35782. Ce document présente en effet une méthode de protection utilisable dans un algorithme de cryptographie de type RSA, que ce soit en mode standard ou en mode CRT, cette méthode de protection étant principalement basée sur la génération de nombres aléatoires permettant une redéfinition des paramètres de calcul. Ainsi, les calculs de l'opération privée de l'algorithme de cryptographie de type RSA sont rendus entièrement aléatoires. Cette méthode de contre-mesure a toutefois l'inconvénient d'augmenter sensiblement les temps de calculs.
Un but de la présente invention est donc de fournir un procédé cryptographique de type RSA et un composant électronique associé qui permettent de contrer les attaques de type à canaux cachés (qu'elles soient simples ou différentielles) de façon plus rapide et plus efficace.
EXPOSE DE L'INVENTION A cet effet on prévoit, selon l'invention, un procédé cryptographique asymétrique appliqué à un message M, caractérisé en ce qu'il comprend une opération privée consistant à signer ou déchiffrer le message M pour obtenir un message signé ou déchiffré s, l'opération privée étant définie à partir d'au moins une exponentiation modulaire EM de la forme
EM = M mod B , A et B étant respectivement l'exposant et le module de l'exponentiation modulaire EM, mod dénotant l'opération modulo, et l'opération privée comprenant les étapes consistant à :
- Calculer un module intermédiaire B*, un message intermédiaire M* et un exposant intermédiaire A*, en fonction de B, M et/ou A ; le module intermédiaire β* étant calculé de façon déterministe et le message intermédiaire M* étant calculé de façon aléatoire ;
- Calculer une exponentiation modulaire intermédiaire
EM* = M *A* moά B * ; - Calculer le message signé ou déchiffré s à partir de l'exponentiation modulaire intermédiaire EM*.
Selon un aspect préféré mais non limitatif du procédé cryptographique asymétrique selon l'invention, l'étape consistant à calculer le message signé ou déchiffré s est réalisée par réduction de EM*, résultat de l'exponentiation modulaire intermédiaire.
Selon un premier mode de réalisation de l'invention, on prévoit un procédé cryptographique caractérisé en ce qu'il utilise une clé publique et une clé privée, la clé publique étant composée d'un module Λ/ de type RSA et d'un exposant public e, et la clé privée étant composée du module N de type
RSA et d'un exposant privé d, tel que e.d = lmodφ(Λ0 , φ étant la fonction indicatrice d'Euler, et en ce que l'opération privée est définie à partir de l'exponentiation modulaire s = M d mod N , d et N correspondant respectivement à l'exposant A et au module B de l'exponentiation modulaire EM, et comprend les étapes consistant à : a) Calculer un module intermédiaire N* de façon déterministe, tel que
N* = xN. N avec xN une valeur publique dépendant de N et M ; b) Calculer un message intermédiaire M* de façon aléatoire, tel que
M* = M + xM.N avec xM une valeur aléatoire telle que xN et xM soient premiers entres eux ; c) Calculer une exponentiation modulaire intermédiaire s* = M *d* mod N * , of* correspondant à l'exposant intermédiaire A* ; d) Réduire l'exponentiation modulaire intermédiaire s* afin d'obtenir le message signé ou déchiffré s.
Des aspects préférés mais non limitatifs de l'invention selon ce premier mode de réalisation sont les suivants :
- l'étape a) consistant à calculer un module intermédiaire N* de façon déterministe comprend les étapes consistant à : ai ) Calculer une valeur λ telle que λ = f(M, N) , avec / une fonction déterministe et publique ; a2) Calculer la valeur publique xN telle que xN = λ2.T , avec T un coefficient de normalisation de la multiplication modulaire ; a3) Calculer le module intermédiaire N* tel que N* = xN.N .
- l'étape b) consistant à calculer un message intermédiaire M* de façon aléatoire comprend les étapes consistant à : b1 ) Tirer un nombre aléatoire r? ; b2) Calculer xM = 1 + λ.rvT ; b3) Calculer le message intermédiaire M* = M + xM.N .
- l'étape ai ) consistant à calculer la valeur λ comprend les étapes consistant à :
ai 1 ) Décomposer M et N tels que M = ∑ M12 e\ N = ^ N12 i i avec w un entier non nul ;
ai 2) Construire la valeur λ telle que (M.) +σz (7V/) avec σα une fonction appartenant au groupe de l'ensemble des permutations S de longueur a, et avec Zj = MJ + j + Zj_x + Nj mod2w , z0 pouvant être fixé à une valeur quelconque.
- l'exposant intermédiaire d* est tel que d* = d + r2.(l — e.d) , avec r2 un nombre tiré aléatoirement ; l'exposant intermédiaire d* peut aussi être tel que d* = d .
Selon un deuxième mode de réalisation de l'invention, on prévoit un procédé cryptographique caractérisé en ce qu'il utilise une clé publique et une clé privée, la clé publique étant composée d'un module Λ/ de type RSA, produit de deux grands nombres premiers p et q, et d'un exposant public e, et la clé privée étant composée du « quintuplet » (p,q,dp,dq,iq) avec
dp = d modO - 1) , dq = dmoά(q - 1) , et iq = q'1 moάp , d étant tel
que e.d = ImOd(J)(TV) , φ étant la fonction indicatrice d'Euler, et en ce que l'opération privée est définie à partir de l'exponentiation modulaire s — M p mod p , dp ei p correspondant respectivement à l'exposant A et au module B de l'exponentiation modulaire EM, et comprend les étapes consistant à : ai ) Calculer un module intermédiaire p* de façon déterministe, tel que p* = xp.p , avec xp une valeur publique dépendant de N et M ; a2) Calculer un message intermédiaire Mp* de façon aléatoire, tel que
Mp* = [(M mod p*) + xMp.p]moά p * , avec xMp une valeur
aléatoire telle que xp et xMp soient premiers entres eux ; a3) Calculer une exponentiation modulaire intermédiaire sp* telle que
S P* = M P *Φ* mod P * . dp* correspondant à l'exposant intermédiaire Λ*.
Des aspects préférés mais non limitatifs de l'invention selon ce deuxième mode de réalisation sont les suivants :
- l'étape a2) est remplacée par l'étape a2') consistant à calculer un message intermédiaire Mp* tel que M p* = [M + x^.pj mod p * , avec xMp une valeur aléatoire telle que xp et xMp soient premiers entres eux.
- l'étape ai ) consistant à calculer un module intermédiaire p* de façon déterministe comprend les étapes consistant à : a11) Calculer une valeur λp telle que λp = fp(M,Nmoά2 ) , avec
fp une fonction déterministe et publique, et k un nombre entier positif non nul ; ai 2) Calculer la valeur publique xp telle que xp = λp.T , avec T un coefficient de normalisation de la multiplication modulaire ; a13) Calculer le module intermédiaire p*. - l'étape a2) consistant à calculer un message intermédiaire Mp* de façon aléatoire comprend les étapes consistant à : a21 ) Tirer un nombre aléatoire ; a22) Calculer la valeur aléatoire xMp telle que xMp = l + λp.rι.T ; a23) Calculer le message intermédiaire Mp*.
- l'exposant intermédiaire dp* est tel que dp * = dp + λdp .(p - V) , avec
λφ tel que λdp = fdp(M, N moά2 ) , fdp étant une fonction
déterministe et publique, distincte de fp , et k étant un entier positif non nul ; l'exposant intermédiaire dp* pourra aussi être tel que dp* = dp .
- l'opération privée est en outre définie à partir de l'exponentiation modulaire sq = M q mod q , et comprend les étapes supplémentaires consistant à : b1 ) Calculer un module intermédiaire q* de façon déterministe, tel que q* = xq.q , avec xq une valeur publique dépendant de N et M ; b2) Calculer un message intermédiaire Mq* de façon aléatoire, tel que Mq* = [(M moά q*) + xMq.q]moά q * , avec xMq une valeur
aléatoire telle que xq et xMq soient premiers entres eux ; b3) Calculer une exponentiation modulaire intermédiaire sq* telle que sq * = Mq *dq* mod q * , avec dq* un exposant intermédiaire.
- l'étape b2) est remplacé par l'étape b2') consistant à calculer un message intermédiaire Mq* tel que Mq* = [M + xMq.q] moά q * , avec xMq une valeur aléatoire telle que xq et xMq soient premiers entres eux.
- l'étape b1 ) consistant à calculer un module intermédiaire q* de façon déterministe, comprend les étapes consistant à : b11 ) Calculer une valeur \ telle que \ = fq (M, N moά 2 ) , avec
fq une fonction déterministe et publique, et k un nombre entier positif non nul ; b12) Calculer la valeur publique xq telle que xq = λq.T , avec T un coefficient de normalisation de la multiplication modulaire ; b13) Calculer le module intermédiaire q*.
- l'étape b2) consistant à calculer un message intermédiaire Mq* de façon aléatoire comprend les étapes consistant à : b21 ) Tirer un nombre aléatoire r2 ; b22) Calculer la valeur aléatoire xMq telle que xMq = l + λq.r2.T ; b23) Calculer le message intermédiaire Mq*.
- l'exposant intermédiaire dq* est tel que dq* = dq + λdq .(q - 1) , avec
λdq tel que λdq = fdq(M, N moά2k) , fdq étant une fonction
déterministe et publique, distincte de fq , et k étant un nombre entier positif non nul ; l'exposant intermédiaire dq* pourra aussi être tel que dq* = dq .
- le nombre k est inférieur à 128. - l'opération privée comprend en outre l'étape consistant à calculer l'exponentiation modulaire s = M mod N à partir de sp* et sq*.
- l'étape consistant à calculer l'exponentiation modulaire s = M mod N à partir de sp* et sq* comprend les étapes consistant à :
• Recombiner sp* et sq* tels que : s* = sq * +q.((iq (sp * -sq *)) mod /?*)
• Réduire s* en s.
- l'étape consistant à réduire s* en s est effectuée selon la réduction modulaire s = s * mod N .
- l'étape consistant à calculer l'exponentiation modulaire s = M mod N à partir de sp* et sq* comprend les étapes consistant à :
• Recombiner sp* et sq* tels que : s* = [xq .sq * +q * .((iq .(sp * -sq *)) mod p*)] s *mod(xq.N)
' Calculer s = x q
- l'exponentiation modulaire s = M mod N à partir de sp* et sq* comprend les étapes consistant à :
• Réduire l'exponentiation modulaire sp* afin de déterminer l'exponentiation modulaire sp ; • Réduire l'exponentiation modulaire sq* afin de déterminer l'exponentiation modulaire sq ;
• Recombiner sp et sq tels que : s = sq + q.((iq .(sp - sq ))moάp)
Selon un autre mode de réalisation de l'invention, on prévoit un procédé cryptographique asymétrique appliqué à un message M à signer ou déchiffrer en un message signé ou déchiffré s, caractérisé en ce que le procédé cryptographique utilise une clé publique et une clé privée, la clé publique étant composée d'un module N de type RSA, produit de deux grands nombres premiers p et q, et d'un exposant public e, et la clé privée étant composée du « quintuplet » (p,q,dp,dq,iq) avec
dp = d modO - 1) , dq = d moà(q - 1) , et iq = q'1 mod p , d étant tel que e.d = 1 mod (J)(TV) , φ étant la fonction indicatrice d'Euler, et comprend une opération privée définie à partir des exponentiations modulaires sp et sq telles que sp = Mdp mod p et sq = Mdq mod q , l'opération privée comprenant les étapes consistant à : - Calculer un module intermédiaire p* à partir de p et un module intermédiaire q* à partir de q ;
- Calculer les exponentiations modulaires intermédiaires sp* et sq*, sp * et sq* étant calculés respectivement à partir des modules p* et q* ;
- Calculer le message signé ou déchiffré s en combinant sp* et sq*.
Des aspects préférés mais non limitatifs de l'invention selon cet autre mode de réalisation, sont les suivants :
- le message signé ou déchiffré s est calculé suivant les étapes consistant à :
• Recombiner sp* et sq* tels que :
5* = sq * +q.((iq (sp * -sq *)) mod /?*)
• Réduire s* en s. l'étape consistant à réduire s* en s est effectuée selon la réduction modulaire s = s * mod N .
le module intermédiaire q* est calculé de telle sorte que q* = K.q , avec K une valeur déterministe ou aléatoire, et le message signé ou déchiffré s est calculé suivant les étapes consistant à : • Recombiner sp* et sq* tels que : s* = [K. s q * +q * .((iq .(sp * -Sq *)) mod p*)] s * moά(K.N) - Calculer s =
K
On prévoit en outre selon l'invention un composant électronique comprenant des moyens pour la mise en œuvre du procédé cryptographique selon les différents modes de réalisation de l'invention. Le composant électronique comprend par exemple un moyen de traitement programmé, tel qu'un microprocesseur, pour mettre en œuvre le procédé cryptographique selon l'invention.
On prévoit enfin une carte à puce comprenant un tel composant électronique.
DESCRIPTION DES FIGURES
D'autres caractéristiques et avantages de l'invention ressortiront encore de la description qui suit, laquelle est purement illustrative et non limitative et doit être lue en regard des dessins annexés, sur lesquels : - la figure 1 est un diagramme schématique du procédé cryptographique de type RSA en mode standard selon un aspect préféré de l'invention ;
- la figure 2 est un diagramme schématique du procédé cryptographique de type RSA en mode CRT selon un autre aspect préféré de l'invention ;
- la figure 3 est un diagramme schématique du procédé cryptographique de type RSA en mode CRT selon encore un autre aspect de l'invention.
DESCRIPTION D'UN MODE DE REALISATION DE L'INVENTION
Fonctionnement des algorithmes de cryptographie de type RSA
On rappelle ci-après brièvement les principales caractéristiques du système cryptographique de type RSA.
La première réalisation de schéma de chiffrement et de signature à clé publique fut mise au point par Rivest, Shamir et Adleman, qui ont inventé le système cryptographique de type RSA. Ce système est le système cryptographique à clé publique le plus utilisé.
II peut être utilisé comme procédé de chiffrement ou comme procédé de signature.
Le système cryptographique de type RSA utilise des calculs d'exponentiation modulaire. Il consiste d'abord à générer la paire de clés RSA qui seront utilisées pour ces exponentiations modulaires. Ainsi, chaque utilisateur crée une clé publique RSA et une clé privée correspondante, selon le procédé suivant en 5 étapes :
1 ) Générer deux nombres premiers distincts p et q ; 2) Calculer N = p.q et φ (N) = (p - \).(q - 1) , (φ étant la fonction indicatrice d'Euler) ;
3) Sélectionner un entier e tel que l < e < φ(W) et tel que e et φ (N) soient premiers entre eux, e étant choisi aléatoirement ou non ;
4) Calculer un entier d tel que \ < d < φ(/V) et tel que e.d = l modφ(/V) [on notera que dans l'ensemble du texte on désigne l'opération « modulo k » par « mod k »] ;
5) La clé publique est le couple (N, e) et la clé privée est le couple (N, d) .
Les entiers e et d sont appelés respectivement exposant public et exposant privé. L'entier N est appelé module RSA.
Ainsi, une fois les paramètres publics et privés définis, étant donné x, avec 0 < ;t < N, il est possible d'appliquer le procédé de chiffrement ou de signature à x.
Dans le procédé de chiffrement, l'opération publique sur x, qui est appelée chiffrement du message x, consiste à calculer l'exponentiation modulaire : y - xe mod N
Dans ce cas, l'opération privée correspondante est l'opération de déchiffrement du message chiffré y, et consiste à calculer l'exponentiation modulaire : / mod/V
Dans le cas d'un procédé de signature, la première opération effectuée est l'opération privée, ou signature du message x, et consiste à calculer : y = xd mod N
L'opération publique correspondante, appelée vérification de la signature y, utilise la clé publique (N, e) et les valeurs x et y et consiste à vérifier si
l'égalité x = ye moάN est vraie.
Le mode présenté ci-dessus est appelé mode standard.
Nous allons présenter maintenant un autre mode de fonctionnement de l'algorithme de cryptographie RSA dit mode CRT car basé sur le théorème des restes Chinois (« Chinese Reminder Theorem » ou CRT en anglais). Ce mode de fonctionnement dit CRT est beaucoup plus rapide que le mode standard. Selon ce mode CRT, l'exponentiation modulaire n'est pas directement calculée modulo N, mais on effectue d'abord deux calculs d'exponentiation modulaire, respectivement modulo p et modulo q.
Les paramètres publics sont toujours représentés par le couple (N, e) mais les paramètres privés sont dans ce mode représentés par le triplet (p, q, d) ou le « quintuplet » (p, q, dp , dq , iq ) avec : dp = d moά(p - 1)
dq = dmoà(q -V)
i = q ι moάp Par la relation e.d = lmodφ(TV) , on obtient : e.dp = 1 modO - 1) , et e.dq = 1 moà(q - 1)
L'opération publique s'effectue de la même façon que pour le mode de fonctionnement standard. En revanche, pour l'opération privée on calcule d'abord les exponentiations modulaires :
yq = xdq moàq
Ensuite, par application du théorème des restes chinois, on obtient y = x moάN , en utilisant par exemple la formule de Garner : y = yq + q-{{iq-{yP - yq))™àp)
Comme il a déjà été rappelé plus haut, les caractéristiques des algorithmes de cryptographie sont généralement connues, et la sécurité de ces algorithmes repose donc essentiellement sur le ou les nombres secrets qui sont utilisés.
II apparaît donc de ce qui précède que dans un algorithme de cryptographie de type RSA, l'opération qui doit nécessairement être protégée est l'opération dite privée. En effet, l'opération privée est la seule opération de l'algorithme de cryptographie qui utilise des nombres privés non connus du milieu extérieur, à savoir l'exposant privé d dans le cas d'un algorithme de cryptographie RSA en mode standard, et les nombres p, q, dp, dq et iq formant les éléments privés dans le cas d'un algorithme de cryptographie RSA en mode CRT. Les attaques de type à canaux cachés, qu'elles soient simples ou différentielles, se basent sur une analyse des calculs effectués pendant l'algorithme de cryptographie.
La contre-mesure proposée dans ce document est donc un procédé pour la mise en œuvre sécurisée d'une exponentiation qui empêche la détection externe du ou des nombres privés utilisé dans l'algorithme de cryptographie de type RSA, notamment pendant l'opération privée.
Dans tout algorithme de cryptographie de type RSA, que ce soit en mode standard ou en mode CRT, l'opération privée appliquée sur un message M, est toujours définie à partir d'au moins une exponentiation modulaire EM de type EM = MΛ mod i? . Dans cette exponentiation modulaire, M, A et B sont respectivement appelés la base, l'exposant et le module.
Dans le cas du mode standard, l'opération privée sera définie à partir d'une exponentiation modulaire unique : s = Md moά N
Dans le mode CRT, l'opération privée sera définie à partir de deux exponentiations modulaires, à savoir : sp = M dp mod p , et
sq = Mdq mod #
Selon l'invention, le déroulement de l'opération privée se base sur l'utilisation de paramètres intermédiaires, issus des paramètres de calculs A, B, ou M et peut donc se faire selon les étapes consistant à :
- Calculer un module intermédiaire B* un message intermédiaire M*, et un exposant intermédiaire A*, le module intermédiaire β* et le message intermédiaire M* étant respectivement calculés de façon déterministe et aléatoire ; - Calculer une exponentiation modulaire intermédiaire
EM* = M *A* moάB * ; - Calculer le message signé ou déchiffré s à partir de l'exponentiation modulaire intermédiaire EM*.
L'exposant intermédiaire A* est calculé de façon aléatoire ou déterministe. L'exposant intermédiaire A* pourra par exemple être tel que A* = A.
Les calculs des paramètres intermédiaires B*, M*, et A*, peuvent être fait dans un ordre différent, la seule contrainte étant qu'ils doivent être calculés avant le calcul de l'exponentiation modulaire EM*.
Procédé cryptographique de type RSA en mode standard.
Le procédé de mise en œuvre sécurisée de l'algorithme de cryptographie de type RSA en mode standard est décrit ci-dessous en référence à la figure 1.
Le mode de réalisation de l'invention présenté ci-dessous est relatif à l'algorithme de cryptographie de type RSA en mode standard dans le cas d'une opération de signature.
Néanmoins, l'invention n'est pas limitée à un tel procédé de signature et pourra être utilisée également dans le cadre d'un procédé de chiffrement d'un message.
Considérons dès lors un message M à signer, un module N de type RSA, un exposant public e et un exposant privé cf. Le procédé décrit ci-dessous permet de réaliser une opération privée totalement sécurisée, c'est-à-dire une génération sécurisée d'une signature s, telle que s = Md mod N .
Une façon de sécuriser cette opération privée est d'effectuer une transformation des paramètres de calcul utilisés pour calculer s. Cette transformation des paramètres doit être telle que tout ou partie des paramètres utilisés pour le calcul de s soient en tout ou en partie modifiés à chaque exécution de l'algorithme de cryptographie.
La première étape du procédé de mise en œuvre sécurisé selon l'invention consiste à transformer le module N de type RSA en un module intermédiaire N*.
Λ/*est tel que N* = xN.N avec xN une valeur publique dépendant à la fois de N et de M et qui permet la normalisation éventuelle de module N de type RSA.
On pourra prendre par exemple xN telle que xN = λ2.T .
Dans ce cas λ est telle que λ = /(M, ΛT) avec / une fonction qui est déterministe et publique. Un exemple de réalisation de cette fonction f est présenté plus loin dans ce document. Il est à noter que, la fonction f étant déterministe et publique, et M et N étant également publiques, la valeur λ est elle aussi publique.
Quant à la valeur T, elle correspond au coefficient de normalisation que l'on peut utiliser parfois dans certains types d'algorithmes de multiplication modulaire, comme par exemple la multiplication de Quisquater. Dans le cas où la normalisation du module n'est pas nécessaire, alors le coefficient T est pris égal à 1.
Ainsi dans cet exemple, on a un paramètre intermédiaire Λ/* tel que N* = X2T. N.
La deuxième étape consiste à transformer M en un message intermédiaire M*.
On prendra Af* tel que M* = M + xM.N , avec xM une valeur aléatoire telle que xN et xM soient des nombres premiers entre eux.
On pourra prendre par exemple xM telle que xM = 1 + X.rλ.T .
Les paramètres λ et T sont identiques aux paramètres λ et T pris pour calculer le module intermédiaire Λ/*.
r-i est quant à lui un nombre entier pris de façon aléatoire selon un procédé de tirage d'aléa quelconque.
Ainsi la valeur xM telle que xM = 1 + est bien une valeur aléatoire
qui n'a aucun facteur commun avec la valeur xN = λ2.T .
Une fois ces paramètres intermédiaires N* et M* calculés, il reste à calculer un exposant intermédiaire d*.
On peut calculer un exposant intermédiaire d*de façon aléatoire tel que : d* = d + r2.(l - e.d)
Dans cette formule, e et d sont respectivement les exposants public et privé de l'algorithme de cryptographie RSA et r2 est un nombre entier tiré de façon aléatoire selon une méthode de tirage d'aléa quelconque.
Une fois tous les paramètres intermédiaires calculés, il reste à calculer l'exponentiation modulaire intermédiaire s* = M * mod N * .
L'étape finale consiste à réduire l'exponentiation modulaire intermédiaire s* afin d'obtenir la valeur signée s.
On pourra par exemple procéder à une réduction modulaire pour calculer s à partir de s* selon la formule s = s * mod N
Selon un autre mode de réalisation de l'invention, l'exposant intermédiaire d* peut être tel que d* = d.
Selon ce mode de réalisation, l'étape consistant à calculer l'exponentiation modulaire intermédiaire s* diffère légèrement puisque s* sera définie par l'exponentiation modulaire suivante : s* = M *d moà N * .
L'étape consistant à réduire s* afin d'obtenir la valeur signée s reste la même.
Il est important de noter que les étapes consistant à calculer les valeurs intermédiaires N*, M* et d*, peuvent être réalisées dans un ordre différent. La seule contrainte est que chacune de ces deux ou trois valeurs intermédiaires soient déterminées pour le calcul final de l'exponentiation modulaire menant à s*.
Selon ce procédé de calcul, l'opération privée consistant à générer une signature s à partir d'un message M est beaucoup plus sécurisée du fait du changement des valeurs intermédiaires utilisées au cours de l'algorithme de cryptographie de type RSA.
En effet, le paramètre intermédiaire M* change à chaque exécution de l'algorithme de cryptographie RSA en mode standard. En outre, quand le paramètre d* n'est pas pris égal à d, il change également de valeur à chaque exécution de l'algorithme.
Le paramètre intermédiaire N* change quant à lui à chaque fois que le message M à signer varie.
Ainsi, les analyses successives des paramètres de calcul ne permettront pas de déterminer le ou les indices secrets, ceci s'expliquant par le fait que les paramètres de calcul ne sont pas constants d'une exécution de l'algorithme à une autre.
En outre, cette méthode n'utilise qu'un seul nombre aléatoire (voire un deuxième si le paramètre intermédiaire of* n'est pas égal à d), ce qui permet, entre autres, une économie dans la consommation de courant mais aussi dans les temps de calcul.
Comme il a été écrit plus haut, la valeur λ est obtenue à partir d'une fonction / que l'on choisit déterministe et publique. La valeur λ est donc obtenue de manière déterministe et publique comme une fonction du message à signer M et du module N de type RSA. La méthode pour obtenir la valeur λ peut par exemple être la suivante.
On décompose le paramètre M et le paramètre N de la façon suivante :
M — Ni2 Dans cette décomposition, la valeur de
I I w dépend de l'architecture du microprocesseur avec lequel les calculs de l'algorithme sont réalisés. On pourra prendre par exemple w parmi les valeurs 8, 16, 32, ou 64.
L'étape suivante consiste à construire la valeur λ = + σz (N1) .
Dans cette formule, <^α est par exemple une rotation, ou plus généralement une fonction appartenant au groupe de l'ensemble des permutations S de longueur a.
On prendra par exemple z, tel que :
Zj = Mj + j + Zj__χ + Nj UlO(I 2^
Z0 peut être fixé à n'importe quelle valeur.
Procédé cryptographique de type RSA en mode CRT.
Le procédé cryptographique de type RSA en mode CRT est décrit ci- dessous en référence à la figure 2.
De la même façon que dans le mode standard, le procédé de mise en œuvre sécurisé d'un algorithme de cryptographie de type RSA en mode CRT peut être utilisé aussi bien dans un procédé de signature que dans un procédé de chiffrement d'un message.
Nous nous limitons à la description du mode de réalisation consistant à signer un message M, le mode de réalisation consistant à déchiffrer un message M étant identique.
Soit un module de type RSA N tel que N = p.q , avec p et q deux grands nombres premiers qui doivent rester secrets. On considère également une clé privée d sous la forme d'un « quintuplet » (p,q,dp,dq,iq) avec
dp = d mod(> - 1) , dq = dmoà(q - \) et iq étant l'inverse de q
modulo p c'est-à-dire iq = q~ mod;? .
On rappelle que calculer s = M mod N revient à calculer : sp = Mdp mod p , et
sq = Af * mod gr , puis s = sq + q.((iq .(sp - sq ))mod/0.
Il est à noter que d'autres recombinaisons sont possibles pour calculer s à partir de Sp et s,.
Une fois encore, l'opération privée en mode CRT sera sécurisée, le procédé de calcul selon l'invention se basant uniquement sur des paramètres intermédiaires et pas sur les paramètres classiquement utilisés.
En effet, le fait que, à chaque exécution, tout ou partie des paramètres utilisés dans l'algorithme de cryptographie aient des valeurs ayant été modifiées empêche la détermination du ou des nombres secrets par le biais d'analyses externes.
En outre, un nombre de tirages d'aléas limité permettra de réduire la consommation en courant et le temps d'exécution.
De la même manière que nous avions calculé l'exponentiation modulaire intermédiaire s* dans le cas du mode standard, il s'agit, dans le mode CRT, de calculer l'exponentiation modulaire intermédiaire sp* et l'exponentiation modulaire intermédiaire sq*.
Le calcul de l'exponentiation modulaire intermédiaire sp * comprend les étapes suivantes.
La première étape du procédé de mise en œuvre sécurisé selon l'invention consiste à transformer le module p en un module intermédiaire p*.
p* est tel que p* = xp.p avec xp une valeur publique dépendant à la fois de N et de M et qui permet la normalisation éventuelle du module p de type RSA.
On pourra prendre par exemple xp telle que xp = λp.T .
Dans ce cas, λp est une valeur telle que λp = fp (M,Nmoά2 ) avec
fp une fonction déterministe et publique, fp étant une fonction comparable à la fonction / utilisée dans le cas du mode standard, k est quant à lui un entier positif non nul. Néanmoins, λp ne dépend pas de Λ/ mais dépend de Af mod 2 . En
effet, le calcul de λp à partir de Af mod 2 permet de ne pas reconstruire tout le module N qui n'est pas à notre disposition, seules les valeurs p et q étant connues.
II est à noter que /V mod 2 peut être recalculé de manière très simple par la formule suivante :
JVmod2* = (/?mod2*).(#mod2*).mod2*
En définitive, λp est déterminée à partir des k bits de poids faible du module N. Dans un mode préféré, k est inférieur à 128, on prendra par exemple /c=64.
Par construction, λp est donc une valeur déterministe et publique.
De la même façon que dans le cas du mode standard, le coefficient T correspond au coefficient de normalisation parfois utilisé dans certains types d'algorithmes de multiplication modulaire. Si la normalisation n'est pas nécessaire alors Test pris égal à 1.
II convient ensuite de calculer un paramètre intermédiaire Mp*ie\ que :
Mp* = [M + xMp.p]moά p *
Une variante de calcul de Mp* serait de calculer : Mp * = [(M mod p*) + xMp .p] mod p *
En effet, la réduction de M par p* permet de travailler avec des éléments de taille similaire, et d'optimiser ainsi la gestion de la mémoire de calcul. xMp une valeur aléatoire prise de telle sorte que xp et xMp sont des nombres premiers entre eux.
On pourra prendre par exemple xMp telle que :
Dans cette formule est un nombre entier tiré de façon aléatoire selon un procédé de tirage d'aléa quelconque et λ;? est telle que définie ci-dessus.
Une fois ces paramètres intermédiaires p*et Mp* calculés, il reste à calculer un exposant intermédiaire dp*.
On peut par exemple calculer un exposant intermédiaire dp* de façon déterministe tel que : dp* = dp + λdp.(p - l)
Le calcul de cette valeur intermédiaire λφ est réalisé de manière analogue
au calcul de λ^ tel que décrit ci-dessus. Néanmoins, fdp est une fonction
distincte de fp , de sorte que λφ est une valeur distincte de λ^ .
Il convient enfin de calculer l'exponentiation modulaire intermédiaire sp* à partir des différentes valeurs intermédiaires calculées, sp* étant telle que : sp* = Mp *dp* moά p *
Selon un autre aspect de l'invention, on prendra l'exposant intermédiaire dp * tel que dp* = dp. Pour calculer sp*, il conviendra donc de calculer : Sp* = Mp *dp moά p *
II est important de noter que les étapes consistant à calculer les valeurs intermédiaires Mp*, p* et ofp*, peuvent être réalisées dans un ordre différent. La seule contrainte est que chacune de ces deux ou trois valeurs intermédiaires soient déterminées pour le calcul final de l'exponentiation modulaire menant à sp*.
Le calcul de sq* s'effectue de façon analogue au calcul de sp*.
Enfin, il convient de calculer le message signé s à partir des exponentiations intermédiaires sp* et sq* qui viennent d'être calculées.
La première façon de calculer s à partir de sp* et sq* est de les réduire afin d'obtenir respectivement sp et sq.
Après avoir déterminé sp et sq, il conviendra de les recombiner à l'aide du théorème des restes Chinois, ou une version légèrement modifiée, pour obtenir le message signé s, en utilisant par exemple la formule de Garner : s = sq + q.((iq .(sp - sq ))moάp)
Une autre façon de calculer le message signé s est de recombiner directement les exponentiations intermédiaires sp* et sq*.
On pourra par exemple dans un premier temps calculer s* selon la formule suivante : s* = sq * +q.((iq (sp * -sq *)) mod p*)
II suffit ensuite de réduire s* pour obtenir le message signé ou déchiffré s. Cette réduction peut être une réduction modulaire, comme par exemple : s = s *moάN
Cette recombinaison particulière permet notamment une économie de temps de mémoire et de temps de calcul.
Un autre calcul de s directement à partir de sp* et sq* consiste dans un premier temps à calculer s* selon la formule : s* = [xq.sq * +q * .((iq .(sp * -sq *)) mod p*)]
II reste ensuite à réduire s* en s. Cette réduction pourra s'écrire par exemple : s *mod(xq.N)
S = x q
Cette dernière variante de calcul sera préférée car elle ne nécessite pas de conserver p et q en mémoire. En outre, p et q n'auront ni besoin d'être manipulés ni calculés, ce qui permet d'accroître la sécurité du procédé de mise en œuvre de l'algorithme de cryptographie.
En outre, le calcul du message signé s consistant à recombiner directement les exponentiations modulaires intermédiaires sp* et sq* comme ci-dessus peut être utilisé dans tout autre procédé cryptographique de type RSA, en mode CRT, qui utilise des exponentiations modulaires intermédiaires sp* et sq* calculés respectivement à partir des modules intermédiaires p* et q* (qui sont eux-mêmes respectivement issus des modules p et q).
On pourra par exemple calculer s* selon la formule : s* = sq * +q.((iq (sp * -sq *)) mod p*)
Puis réduire s* en s, en utilisant par exemple la réduction modulaire : s = s *moάN
En effet, l'utilisation de cette recombinaison particulière permettra un gain de mémoire et de temps de calcul.
En outre, comme illustré à la figure 3, si le module intermédiaire q* est calculé de telle sorte que q* = K.q , avec K une valeur quelconque (déterministe ou aléatoire), alors on pourra calculer le message signé ou déchiffré s à partir de sp* et sq* en calculant dans un premier temps s* selon la formule : s* = [K. s q * +q * .((iq .(sp * -sq *)) mod p*)]
La réduction de s* permet d'obtenir le message signé ou déchiffré s. On pourra par exemple utiliser la réduction modulaire suivante : s *moâ(K.N)
S =
K
Dans ce cas, l'économie de mémoire et de temps de calcul sera augmentée puisque p et q ne seront pas manipulés, ce qui renforce la sécurité.
Le lecteur aura compris que de nombreuses modifications peuvent être apportées sans sortir matériellement des nouveaux enseignements et des avantages décrits ici. Par conséquent, toutes les modifications de ce type sont destinées à être incorporées à l'intérieur de la portée du procédé cryptographique selon l'invention et des composants électroniques permettant de mettre en œuvre ce procédé.

Claims

REVENDICATIONS
1. Procédé cryptographique asymétrique appliqué à un message M, caractérisé en ce qu'il comprend une opération privée consistant à signer ou déchiffrer le message M pour obtenir un message signé ou déchiffré s, l'opération privée étant définie à partir d'au moins une exponentiation modulaire EM de la forme EM = MA moά B , Λ et B étant respectivement l'exposant et le module de l'exponentiation modulaire EM, et l'opération privée comprenant les étapes consistant à :
- Calculer un module intermédiaire B*, un message intermédiaire M* et un exposant intermédiaire A*, en fonction de B, M et/ou A; le module intermédiaire β* étant calculé de façon déterministe et le message intermédiaire M* étant calculé de façon aléatoire ;
- Calculer une exponentiation modulaire intermédiaire
EM* = M *A* moάB * ; - Calculer le message signé ou déchiffré s à partir de l'exponentiation modulaire intermédiaire EM*.
2. Procédé selon la revendication 1 , caractérisé en ce que l'étape consistant à calculer le message signé ou déchiffré s est réalisée par réduction de l'exponentiation modulaire intermédiaire EM*.
3. Procédé selon la revendication 2, caractérisé en ce qu'il utilise une clé publique et une clé privée, la clé publique étant composée d'un module N de type RSA et d'un exposant public e, et la clé privée étant composée du module Λ/ de type RSA et d'un exposant privé d, tel que e.d = l modφ(ΛT) , φ étant la fonction indicatrice d'Euler, et en ce que l'opération privée est définie à partir de l'exponentiation modulaire s = Md mod N , d et N correspondant respectivement à l'exposant A et au module 8 de l'exponentiation modulaire EM, et comprend les étapes consistant à : a) Calculer un module intermédiaire N* de façon déterministe, tel que N* = xN. N avec xN une valeur publique dépendant de Λ/ et M ; b) Calculer un message intermédiaire M* de façon aléatoire, tel que M* = M + xM.N avec xM une valeur aléatoire telle que xN et xM soient premiers entres eux ; c) Calculer une exponentiation modulaire intermédiaire s* = M *d* mod N * , of* correspondant à l'exposant intermédiaire A* ; d) Réduire l'exponentiation modulaire intermédiaire s* afin d'obtenir le message signé ou déchiffré s.
4. Procédé selon la revendication 3, caractérisé en ce que l'étape a) consistant à calculer un module intermédiaire N* de façon déterministe comprend les étapes consistant à : ai ) Calculer une valeur λ telle que λ = f(M, N) , avec f une fonction déterministe et publique ; a2) Calculer la valeur publique xN telle que xN = λ2.T , avec T un coefficient de normalisation de la multiplication modulaire ; a3) Calculer le module intermédiaire N* tel que N* = xN.N .
5. Procédé selon la revendication 4, caractérisé en ce que l'étape b) consistant à calculer un message intermédiaire M* de façon aléatoire comprend les étapes consistant à : b1 ) Tirer un nombre aléatoire r-i ; b2) Calculer xM = l + λ.rvT ; b3) Calculer le message intermédiaire M* = M + xM.N .
6. Procédé selon l'une quelconque des revendications 4 ou 5, caractérisé en ce que l'étape ai) consistant à calculer la valeur λ comprend les étapes consistant à :
a11) Décomposer M et N tels que M = ^M.2W ! et N = ∑Np.™ i i avec w un entier non nul ;
ai 2) Construire la valeur λ telle que ^ =σz( W) +σz( W) i avec σα une fonction appartenant au groupe de l'ensemble des permutations S de longueur a, et avec Zj = Mj + j + Zj_x + Nj mod2w , z0 pouvant être fixé à une valeur quelconque.
7. Procédé selon l'une quelconque des revendications 3 à 6, caractérisé en ce que l'exposant intermédiaire d* est tel que d* = d + r2.(l — e.d) , avec r2 un nombre tiré aléatoirement.
8. Procédé selon l'une quelconque des revendications 3 à 6, caractérisé en ce que l'exposant intermédiaire d* est tel que d* = d .
9. Procédé selon la revendication 1 , caractérisé en ce qu'il utilise une clé publique et une clé privée, la clé publique étant composée d'un module Λ/ de type RSA, produit de deux grands nombres premiers p et q, et d'un exposant public e, et la clé privée étant composée du « quintuplet »
(p,q,dp,dq,iq) avec dp = d mod(> - 1) , dq = d moά(q - 1) , et
iq = q moάp , d étant tel que e.d = l modφ(TV) , φ étant la fonction indicatrice d'Euler, et en ce que l'opération privée est définie à partir de l'exponentiation modulaire s = M p mod p , dp et p correspondant respectivement à l'exposant A et au module B de l'exponentiation modulaire
EM, et comprend les étapes consistant à : ai) Calculer un module intermédiaire p* de façon déterministe, tel que p* = xp.p , avec xp une valeur publique dépendant de Λ/ et M ; a2) Calculer un message intermédiaire Mp* de façon aléatoire, tel que
Mp* = [(M moά p*) + xMp.p]mod p * , avec xMp une valeur aléatoire telle que xp et xMp soient premiers entres eux ; a3) Calculer une exponentiation modulaire intermédiaire sp* telle que
S P* = M P *Φ* mod Z7 * . ^P* correspondant à l'exposant intermédiaire s*.
10. Procédé selon la revendication 9, caractérisé en ce que l'étape a2) est remplacée par l'étape a2') consistant à calculer un message intermédiaire
Mp* tel que M p * = [M + xMp .p] mod p * , avec xMp une valeur aléatoire telle que xp et xMp soient premiers entres eux.
11. Procédé selon l'une quelconque des revendications 9 ou 10, caractérisé en ce que l'étape ai ) consistant à calculer un module intermédiaire p* de façon déterministe comprend les étapes consistant à : a11 ) Calculer une valeur λp telle que λp = fp (M, N moά2k) , avec
fp une fonction déterministe et publique, et k un nombre entier positif non nul ; ai 2) Calculer la valeur publique xp telle que xp , avec T un coefficient de normalisation de la multiplication modulaire ; ai 3) Calculer le module intermédiaire p*.
12. Procédé selon la revendication 11 , caractérisé en ce que l'étape a2) consistant à calculer un message intermédiaire Mp* de façon aléatoire comprend les étapes consistant à : a21 ) Tirer un nombre aléatoire r-i ; a22) Calculer la valeur aléatoire xMp telle que xMp = 1 + λ^.ηX ; a23) Calculer le message intermédiaire Mp*.
13. Procédé selon l'une quelconque des revendications 9 à 12, caractérisé en ce que l'exposant intermédiaire dp* est tel que dp* = dp + λdp.(p -V) ,
avec λφ tel que λdp = fdp(M, N moά2k) , fdp étant une fonction déterministe et publique, distincte de fp , et k étant un entier positif non nul.
14. Procédé selon l'une quelconque des revendications 9 à 12, caractérisé en ce que l'exposant intermédiaire dp* est tel que dp* = dp .
15. Procédé selon l'une quelconque des revendications 9 à 14, caractérisé en ce que l'opération privée est en outre définie à partir de l'exponentiation modulaire sq = M q mod q , et comprend les étapes supplémentaires consistant à : b1) Calculer un module intermédiaire q* de façon déterministe, tel que q* = xq.q , avec xq une valeur publique dépendant de Λ/ et M ; b2) Calculer un message intermédiaire Mq* de façon aléatoire, tel que Mq* = [(M moά q*) + xMq.q]moά q * , avec xMq une valeur aléatoire telle que xq et xMq soient premiers entres eux ; b3) Calculer une exponentiation modulaire intermédiaire sq* telle que s * = M *dq* mod q * , avec dq* un exposant intermédiaire.
16. Procédé selon la revendication 15, caractérisé en ce que l'étape b2) est remplacé par l'étape b2') consistant à calculer un message intermédiaire
Mq* tel que M q* = [M + xMq.q] mod q * , avec xMq une valeur aléatoire telle que xq et xMq soient premiers entres eux.
17. Procédé selon l'une quelconque des revendications 15 ou 16, caractérisé en ce que l'étape b1 ) consistant à calculer un module intermédiaire q* de façon déterministe, comprend les étapes consistant à : b11 ) Calculer une valeur λq telle que λq = fq (M, N mod 2k ) , avec
fq une fonction déterministe et publique, et k un nombre entier positif non nul ; b12) Calculer la valeur publique xq telle que xq = λq.T , avec T un coefficient de normalisation de la multiplication modulaire ; b13) Calculer le module intermédiaire q*.
18. Procédé selon la revendication 17, caractérisé en ce que l'étape b2) consistant à calculer un message intermédiaire Mq* de façon aléatoire comprend les étapes consistant à : b21 ) Tirer un nombre aléatoire r2 ; b22) Calculer la valeur aléatoire xMq telle que xMq = \ + λq.r2.T ; b23) Calculer le message intermédiaire Mq*.
19. Procédé selon l'une quelconque des revendications 15 à 18, caractérisé en ce que l'exposant intermédiaire dq* est tel que dq* = dq + λdq. (q -ï) , avec λdq tel que λdq = fdq(M, N moά2k) , fdq étant une fonction déterministe et publique, distincte de fq , el k étant un nombre entier positif non nul.
20. Procédé selon l'une quelconque des revendications 15 à 18, caractérisé en ce que l'exposant intermédiaire dq* est tel que dq* = dq .
21. Procédé selon l'une quelconque des revendications 11 à 20, caractérisé en ce que le nombre k est inférieur à 128.
22. Procédé selon l'une quelconque des revendications 9 à 21 , caractérisé en ce que l'opération privée comprend en outre l'étape consistant à calculer l'exponentiation modulaire s = Md mod N à partir de sp* et sq*.
23. Procédé selon la revendication 22, caractérisé en ce que l'étape consistant à calculer l'exponentiation modulaire s = M mod N à partir de Sp* et sq* comprend les étapes consistant à : - Recombiner sp* et sq* tels que : s* = sq * +q.((iq (sp * -sq *)) mod /?*)
- Réduire s* en s.
24. Procédé selon la revendication 23, caractérisé en ce que l'étape consistant à réduire s* en s est effectuée selon la réduction modulaire s = s *moάN .
25. Procédé selon la revendication 22, caractérisé en ce que l'étape consistant à calculer l'exponentiation modulaire s = M mod N à partir de Sp* et sq* comprend les étapes consistant à :
- Recombiner sp* et sq* tels que : s* = [xq .sq * +q * .((iq .(sp * -sq *)) mod p*)] s *mod(xq.N)
Calculer s = x q
26. Procédé selon la revendication 22, caractérisé en ce que l'étape consistant à calculer l'exponentiation modulaire s = M mod N à partir de Sp* et sq* comprend les étapes consistant à : - Réduire l'exponentiation modulaire sp* afin de déterminer l'exponentiation modulaire sp ;
- Réduire l'exponentiation modulaire sq* afin de déterminer l'exponentiation modulaire sq ;
- Recombiner sp et sq tels que : s = sq + q.((iq.(sp -sq))moάp)
27. Procédé cryptographique asymétrique appliqué à un message M à signer ou déchiffrer en un message signé ou déchiffré s, caractérisé en ce que le procédé cryptographique utilise une clé publique et une clé privée, la clé publique étant composée d'un module N de type RSA, produit de deux grands nombres premiers p et q, et d'un exposant public e, et la clé privée étant composée du « quintuplet » (p,q,dp,dq,iq) avec
dp = d modO - 1) , dq = dmoά{q -1) , et iq = q'1 moάp , d étant tel que e.d = l modφ(/V) , φ étant la fonction indicatrice d'Euler, et comprend une opération privée définie à partir des exponentiations modulaires sp et sq telles que sp = Mdp moά p et sq = Mdq mod q , l'opération privée comprenant les étapes consistant à :
- Calculer un module intermédiaire p* à partir de p et un module intermédiaire q* à partir de q ; - Calculer les exponentiations modulaires intermédiaires sp* et sq*, sp * et Sq* étant calculés respectivement à partir des modules p* et q* ;
- Calculer le message signé ou déchiffré s en combinant sp* et sq*.
28. Procédé selon la revendication 27, caractérisé en ce que le message signé ou déchiffré s est calculé suivant les étapes consistant à :
- Recombiner sp* et sq* tels que : s* = sq * +q.((iq (sp * -sq *)) mod p*) - Réduire s* en s.
29. Procédé selon la revendication 28, caractérisé en ce que l'étape consistant à réduire s* en s est effectuée selon la réduction modulaire s = s * moάN .
30. Procédé selon la revendication 27, caractérisé en ce que le module intermédiaire q* est calculé de telle sorte que q* = K.q , avec K une valeur déterministe ou aléatoire, et en ce que le message signé ou déchiffré s est calculé suivant les étapes consistant à : - Recombiner sp* et sq* tels que : s* = [K. s q * +q * .((iq .(sp * -sq *)) mod p*)] s * mod(K.N)
Calculer s =
K
31. Composant électronique caractérisé en ce qu'il comprend des moyens pour la mise en œuvre du procédé cryptographique selon l'une quelconque des revendications précédentes.
32. Carte à puce comprenant un composant électronique selon la revendication précédente.
EP06764162A 2005-07-13 2006-07-13 Procede cryptographique pour la mise en oeuvre securisee d'une exponentiation et composant associe Withdrawn EP1904921A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0507519A FR2888690A1 (fr) 2005-07-13 2005-07-13 Procede cryptographique pour la mise en oeuvre securisee d'une exponentiation et composant associe
PCT/EP2006/064228 WO2007006810A1 (fr) 2005-07-13 2006-07-13 Procede cryptographique pour la mise en oeuvre securisee d'une exponentiation et composant associe

Publications (1)

Publication Number Publication Date
EP1904921A1 true EP1904921A1 (fr) 2008-04-02

Family

ID=36103656

Family Applications (1)

Application Number Title Priority Date Filing Date
EP06764162A Withdrawn EP1904921A1 (fr) 2005-07-13 2006-07-13 Procede cryptographique pour la mise en oeuvre securisee d'une exponentiation et composant associe

Country Status (4)

Country Link
US (1) US20090122980A1 (fr)
EP (1) EP1904921A1 (fr)
FR (1) FR2888690A1 (fr)
WO (1) WO2007006810A1 (fr)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8280041B2 (en) * 2007-03-12 2012-10-02 Inside Secure Chinese remainder theorem-based computation method for cryptosystems
EP2154604A1 (fr) * 2008-08-06 2010-02-17 Gemalto SA Contre-mesure pour sécuriser la cryptographie à base d'exponentiation
CA2752750A1 (fr) 2009-02-27 2010-09-02 Certicom Corp. Systeme et procede de realisation d'exponentiation dans un systeme cryptographique
US8572406B2 (en) * 2010-03-31 2013-10-29 Inside Contactless Integrated circuit protected against horizontal side channel analysis
JP5848106B2 (ja) * 2011-11-28 2016-01-27 ルネサスエレクトロニクス株式会社 半導体装置及びicカード
EP2605444A1 (fr) * 2011-12-16 2013-06-19 Gemalto SA Procédé pour la signature ou le déchiffrement d'un message à l'aide d'un algorithme de type CRT RSA résistant aux attaques par canaux cachés différentielles
CN110730072B (zh) * 2019-10-22 2023-02-03 天津津航计算技术研究所 针对rsa密码应用的抗侧信道攻击方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10143728B4 (de) * 2001-09-06 2004-09-02 Infineon Technologies Ag Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Exponentiation
JP2004226674A (ja) * 2003-01-23 2004-08-12 Renesas Technology Corp 情報処理方法
GB2399904B (en) * 2003-03-28 2005-08-17 Sharp Kk Side channel attack prevention in data processing apparatus
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
FR2864390B1 (fr) * 2003-12-19 2006-03-31 Gemplus Card Int Procede cryptographique d'exponentiation modulaire protege contre les attaques de type dpa.

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2007006810A1 *

Also Published As

Publication number Publication date
FR2888690A1 (fr) 2007-01-19
WO2007006810A1 (fr) 2007-01-18
US20090122980A1 (en) 2009-05-14

Similar Documents

Publication Publication Date Title
EP2946284B1 (fr) Procédé de cryptographie comprenant une opération de multiplication par un scalaire ou une exponentiation
EP1166494B1 (fr) Procedes de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type courbe elliptique
EP3117555B1 (fr) Procédé de contremesure pour un composant électronique mettant en oeuvre un algorithme de cryptographie sur une courbe elliptique
EP1904921A1 (fr) Procede cryptographique pour la mise en oeuvre securisee d&#39;une exponentiation et composant associe
EP2162820A1 (fr) Mise a la puissance modulaire selon montgomery securisee contre les attaques a canaux caches
CA2712178A1 (fr) Procede et dispositifs de contre-mesure pour cryptographie asymetrique
EP2302552A1 (fr) Procédé d&#39;éxecution d&#39;un algorithme de protection d&#39;un dispositif électronique par masquage affiné et dispositif associé
WO2009109715A2 (fr) Procede et dispositifs de contre-mesure pour cryptographie asymetrique a schema de signature
EP1895404B1 (fr) Brouillage d&#39;un calcul effectué selon un algorithme RSA-CRT
EP2983083B1 (fr) Procede de cryptographie sur courbe elliptique comprenant une detection d&#39;erreur
EP1224765B1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type rsa
CA2257907A1 (fr) Procede de cryptographie a cle publique
FR2818846A1 (fr) Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie
FR3047327A1 (fr) Procede d&#39;execution de calcul cryptographique et application a la classification par machines a vecteurs de support
FR3004042A1 (fr) Procedes de generation et d&#39;utilisation de cles cryptographiques privees pour le rsa-crt ou les variantes du rsa-crt
WO1998051038A1 (fr) Generateur pseudo-aleatoire base sur une fonction de hachage pour systemes cryptographiques necessitant le tirage d&#39;aleas
EP3100403B1 (fr) Échelle de montgomery déséquilibrée résistante aux attaques par canaux auxiliaires
EP1520370A1 (fr) Procede et dispositifs cryptographiques permettant d alleger les calculs au cours de transactions
FR3027752A1 (fr) Protection de signatures numeriques basees sur le probleme du logarithme discret
FR3018372A1 (fr) Generation de message pour test de generation de cles cryptographiques
EP4270855A1 (fr) Protection contre les attaques par canal auxiliaire a l aide d&#39;un masquage carre
FR3143243A1 (fr) Signature et dechiffrement de message securises par double rsa-crt
EP1695204A2 (fr) Procede d&#39;exponentiation modulaire protege contre les attaques du type dpa
WO2002050658A1 (fr) Procedes de contre-mesure dans un composant electronique mettant en ouvre un algorithme de cryptographie a cle publique de type rsa
FR3013476A1 (fr) Securisation de procede de cryptographie sur courbes elliptiques

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20080213

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20081223

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20090505