FR2837335A1 - Cryptographic procedure for portable electronic devices uses iterative Arazi inversion to create RSA algorithm keys from arbitrary inputs - Google Patents
Cryptographic procedure for portable electronic devices uses iterative Arazi inversion to create RSA algorithm keys from arbitrary inputs Download PDFInfo
- Publication number
- FR2837335A1 FR2837335A1 FR0203069A FR0203069A FR2837335A1 FR 2837335 A1 FR2837335 A1 FR 2837335A1 FR 0203069 A FR0203069 A FR 0203069A FR 0203069 A FR0203069 A FR 0203069A FR 2837335 A1 FR2837335 A1 FR 2837335A1
- Authority
- FR
- France
- Prior art keywords
- prime
- private
- exponent
- product
- memory
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/721—Modular inversion, reciprocal or quotient calculation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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/302—Public 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
Description
<Desc/Clms Page number 1> <Desc / Clms Page number 1>
L'invention se rapporte au domaine de la cryptographie et en particulier aux systèmes cryptographiques à clé publique. The invention relates to the field of cryptography and in particular to public key cryptographic systems.
Lorsqu'il s'agit de communiquer des données que l'on souhaite conserver confidentielles ou bien que l'on souhaite authentifier par une signature, on utilise des systèmes cryptographiques à clé publique. When it comes to communicating data that we want to keep confidential or that we want to authenticate with a signature, we use public key cryptographic systems.
On procède, selon le cas, à une opération publique ou une opération privée. Either a public transaction or a private transaction takes place.
Selon un exemple de chiffrement, quelqu'un souhaitant émettre un message, prend connaissance au préalable d'une clé publique attachée au destinataire à qui il va l'adresser. Il chiffre le message au moyen de cette clé publique et le transmet. Le destinataire, après réception, peut déchiffrer le message et retrouver le document initial en utilisant sa clé privée. According to an example of encryption, someone wishing to send a message, first reads a public key attached to the recipient to whom he will address it. It encrypts the message using this public key and transmits it. The recipient, after reception, can decrypt the message and find the original document using their private key.
Selon un autre exemple de signature, on signe un document en le codant au moyen de sa clé privée et on présente la signature avec le document initial. According to another example of signature, a document is signed by coding it using his private key and the signature is presented with the initial document.
Le destinataire vérifie la signature en utilisant la clé publique associée à la clé privée de l'émetteur. The recipient verifies the signature using the public key associated with the issuer's private key.
Des systèmes permettant ces opérations sont maintenant bien connus. Par exemple, on connaît le crypto-système RSA développé par R. Rivest, A. Systems allowing these operations are now well known. For example, we know the RSA crypto-system developed by R. Rivest, A.
Shamir et L. Adleman. On en trouve une présentation complète dans le brevet US 4 405 829 déposé à leurs noms. Shamir and L. Adleman. A complete presentation is found in US Patent 4,405,829 filed in their names.
Pour procéder à ces opérations, on utilise notamment un dispositif électronique portable, tel qu'une carte à microprocesseur, constituant une carte cryptographique. Le code du programme cryptographique est enregistré dans la mémoire morte ROM, et les autres données, notamment la clé privée constituée du couple de l' exposant privé d et du "module" n, sont stockées dans une mémoire non volatile EEPROM. La carte peut comprendre également un crypto-processeur qui est une unité de calcul spécialisée, pouvant traiter des grands nombres, par exemple de 1024 bits. To carry out these operations, a portable electronic device, such as a microprocessor card, constituting a cryptographic card is used in particular. The code of the cryptographic program is recorded in the ROM read-only memory, and the other data, in particular the private key made up of the couple of the private exponent d and the "module" n, are stored in a non-volatile memory EEPROM. The card can also include a crypto-processor which is a specialized calculation unit, which can process large numbers, for example 1024 bits.
Incidemment, la clé publique est constituée du couple de l'exposant public e et du module n. Incidentally, the public key is made up of the pair of the public exponent e and the module n.
La méthode RSA comprend comme étape préalable, avant que l'on puisse procéder aux opérations publiques et privées, la détermination de l'exposant privé d à partir d'un exposant public e donné. Dans ce but, on génère d'abord, au moyen d'un générateur de nombres aléatoires, deux The RSA method includes as a preliminary step, before public and private operations can be carried out, the determination of the private exponent d from a given public exponent. For this purpose, we first generate, by means of a random number generator, two
<Desc/Clms Page number 2><Desc / Clms Page number 2>
nombres premiers p et q. Puis, à partir d'une fonction déterminée #(n) du produit n = p*q, on détermine l'exposant privé d associé à l'exposant e,
avec e. d = 1 (modulo À(n)) ou d e-I (modulo ,(n . Dans le cas du procédé RSA, la fonction ,(n) est le PPCM (plus petit commun multiple) du couple (p-1, q-1). L'exposant privé d est calculé comme étant la valeur
inverse e'1 de l'exposant public e, modulo ,(n), c'est-à-dire qu'il existe un nombre entier k tel que e. d = 1 + k #(n). prime numbers p and q. Then, starting from a determined function # (n) of the product n = p * q, we determine the private exponent d associated with the exponent e,
with e. d = 1 (modulo À (n)) or d eI (modulo, (n. In the case of the RSA process, the function, (n) is the PPCM (least common multiple) of the couple (p-1, q- 1). The private exponent d is calculated as the value
inverse e'1 of the public exponent e, modulo, (n), i.e. there exists an integer k such that e. d = 1 + k # (n).
Lorsque ces valeurs sont établies, on peut procéder au chiffrement et au déchiffrement de messages ou bien à la signature d'un message m par exponentiation modulaire comme cela est connu par la méthode RSA. When these values are established, one can proceed to the encryption and decryption of messages or else to the signature of a message m by modular exponentiation as is known by the RSA method.
Plus précisément, n et e étant les paramètre publics et p, q, d, les paramètres privés se trouvant dans la carte pour le chiffrement, un message constitué du nombre m, compris dans l'intervalle [1, n-1], devient, après chiffrement, c = me, modulo n. A la réception, on retrouve le message m, suivant
c'est-à-dire le reste de la division de cd par n. More precisely, n and e being the public parameters and p, q, d, the private parameters being in the card for encryption, a message consisting of the number m, included in the interval [1, n-1], becomes , after encryption, c = me, modulo n. At the reception, we find the message m, following
that is, the remainder of the division of cd by n.
Dans le cas de la signature, un message m, en entrée de la carte, devient, en sortie de la carte, la signature s = md modulo n. Le destinataire, disposant des paramètres publics n et e, peut vérifier que, étant donné s et m, la relation se = m modulo n est satisfaite. In the case of the signature, a message m, at the input of the card, becomes, at the output of the card, the signature s = md modulo n. The recipient, having the public parameters n and e, can verify that, given s and m, the relation se = m modulo n is satisfied.
Afin de pouvoir calculer l'exposant privé d, de manière simple, notamment par la formule d' inversion d'Arazi, connue dans le domaine, on impose au nombre e, exposant public, d'être premier, étant entendu que e et ,(n) sont copremiers, c'est-à-dire que leur PGCD (plus grand commun diviseur) est égal à 1. In order to be able to calculate the private exponent d, in a simple manner, in particular by the Arazi inversion formula, known in the field, the number e, public exponent, is required to be prime, it being understood that e and, (n) are co-prime, that is to say that their PGCD (greatest common divisor) is equal to 1.
Si on pose L = ,(n), la formule d'Arazi permet d'exprimer e-1 modulo L en fonction de L-' modulo e. De plus, si e est premier, alors L-1 modulo e = Le-2 modulo e. If we set L =, (n), Arazi's formula makes it possible to express e-1 modulo L as a function of L- 'modulo e. In addition, if e is prime, then L-1 modulo e = Le-2 modulo e.
<Desc/Clms Page number 3><Desc / Clms Page number 3>
compte-tenu du théorème de Fermat, selon lequel, pour tout nombre premier p, la relation suivante est vérifiée ap-1 # 1 (modulo p). taking into account Fermat's theorem, according to which, for any prime number p, the following relation is verified ap-1 # 1 (modulo p).
On connaît certes l'algorithme d'Euclide étendu qui permet la détermination de la valeur inverse de l'exposant e modulo #(n) indépendamment de la primalité de celui-ci, algorithme selon lequel, e et L étant copremiers (PGCD (e, L) = 1), il existe deux nombres entiers u et v tels que ue + vL = 1. Cependant, la mise en #uvre de cet algorithme par un programme d'ordinateur, nécessite la mobilisation de mémoires supplémentaires par rapport à celles nécessaires à la mise en place du cryptosystème. Son application aux cartes à microprocesseur notamment est donc exclue en raison de la faible capacité mémoire de ces dernières. We certainly know the extended Euclidean algorithm which allows the determination of the inverse value of the exponent e modulo # (n) independently of the primality of the latter, algorithm according to which, e and L being co-prime (PGCD (e , L) = 1), there are two integers u and v such that ue + vL = 1. However, the implementation of this algorithm by a computer program requires the mobilization of additional memories compared to those necessary for the implementation of the cryptosystem. Its application to microprocessor cards in particular is therefore excluded due to the low memory capacity of the latter.
Il serait donc souhaitable de disposer d'un moyen permettant la mise en #uvre du cryptosystème RSA dans une carte à microprocesseur, ou tout autre support équivalent, autorisant le choix comme exposant public d'un nombre quelconque. En particulier, on pourrait ainsi choisir des valeurs relativement faibles non nécessairement premières et améliorer la vitesse de traitement des opérations publiques. It would therefore be desirable to have a means allowing the implementation of the RSA cryptosystem in a microprocessor card, or any other equivalent medium, authorizing the choice as public exponent of any number. In particular, one could thus choose relatively low values which are not necessarily primary and improve the processing speed of public operations.
L'invention a donc pour objet un procédé de cryptographie à clé publique de type RSA qui est mis en #uvre dans un dispositif électronique portable tel qu'une carte à microprocesseur et qui n'impose pas de contrainte de primalité quant au choix préalable du nombre représentant l'exposant public e. The subject of the invention is therefore a method of public key cryptography of the RSA type which is implemented in a portable electronic device such as a microprocessor card and which does not impose any primacy constraint as to the prior choice of the number representing the public exhibitor e.
Ce problème est résolu par l'invention par un procédé de cryptographie de type RSA, mis en #uvre dans un dispositif électronique portable avec un processeur et une mémoire, comprenant la saisie d'un nombre arbitraire, exposant public e, et le calcul par le processeur d'un exposant privé d, tel que le produit de e et d est congruent à 1 modulo #(n), avec #(n)=ppcm ((p-1), (q-1)), p et q étant des nombres premiers dont le produit est égal à n, et son stockage dans la mémoire, caractérisé par le fait que, si e n'est pas premier, on choisit un paramètre C tel que e+C*(n)=ê soit premier et on calcule l'exposant privé d à partir de ê. This problem is solved by the invention by an RSA type cryptography method, implemented in a portable electronic device with a processor and a memory, comprising the entry of an arbitrary number, public exponent e, and the calculation by the processor of a private exponent d, such that the product of e and d is congruent to 1 modulo # (n), with # (n) = ppcm ((p-1), (q-1)), p and q being prime numbers whose product is equal to n, and its storage in the memory, characterized by the fact that, if e is not prime, we choose a parameter C such that e + C * (n) = ê Let be prime and we calculate the private exponent d from ê.
L'invention devant être relative aussi bien à la mise en #uvre RSA mode standard qu'à d'autres mises en #uvre comme par exemple la mise en oeuvre CRT dont il sera question dans la description qui suit, la demanderesse entend élargir la portée de ses droits à un procédé de The invention having to relate to both the implementation of RSA standard mode and other implementations such as for example the CRT implementation which will be discussed in the description below, the applicant intends to extend the scope of his rights to a process of
<Desc/Clms Page number 4><Desc / Clms Page number 4>
cryptographie, mis en #uvre dans un dispositif électronique portable avec un processeur et une mémoire, comprenant la saisie de nombres arbitraires e et # et le calcul par le processeur d'un nombre d, tel que le produit de e et d est congruent à 1 modulo #, et son stockage dans la mémoire, caractérisé par le fait que, si e n'est pas premier, on choisit un paramètre C tel que e+C*#=ê soit premier, et on calcule le nombre d à partir de ê. cryptography, implemented in a portable electronic device with a processor and a memory, comprising the entry of arbitrary numbers e and # and the calculation by the processor of a number d, such that the product of e and d is congruent to 1 modulo #, and its storage in the memory, characterized by the fact that, if e is not prime, we choose a parameter C such that e + C * # = ê is prime, and we calculate the number d from of ê.
Conformément à une autre caractéristique, on détermine la valeur C par un calcul itératif depuis une valeur initiale c comme un élément inversible modulo le produit de nombres premiers. According to another characteristic, the value C is determined by an iterative calculation from an initial value c as an invertible element modulo the product of prime numbers.
L'invention a également pour objet un système cryptographique comprenant un processeur central et, reliés au processeur, des moyens de stockage d'un programme cryptographique de type RSA, des moyens de stockage de paramètres cryptographiques privés et des moyens mémoires de travail, le processeur comprenant des moyens de génération de nombres premiers privés (p et q) et des moyens de détermination d'un exposant privé (d) à partir d'un exposant public (e) selon la relation d #e-1 [modulo ppcm (p-1), (q-1)]. The invention also relates to a cryptographic system comprising a central processor and, connected to the processor, means for storing an RSA type cryptographic program, means for storing private cryptographic parameters and working memory means, the processor comprising means for generating private prime numbers (p and q) and means for determining a private exponent (d) from a public exponent according to the relation d # e-1 [modulo ppcm (p -1), (q-1)].
Conformément à une caractéristique de l'invention, il est prévu des moyens pour, si e n'est pas un nombre premier, calculer un nombre premier ê selon la relation ê = e + C [ppcm (p-1), (q-1)] et des moyens pour vérifier que le nombre ê est premier. According to a characteristic of the invention, means are provided for, if e is not a prime number, calculating a prime number ê according to the relation ê = e + C [ppcm (p-1), (q- 1)] and means to verify that the number ê is prime.
On décrit ci-après l'invention plus en détail, en référence au dessin annexé, sur lequel - la figure 1 représente un schéma-blocs du système cryptographique de l'invention et - la figure 2 représente l'organigramme de détermination du nombre premier ê à partir du nombre e. The invention is described below in more detail, with reference to the accompanying drawing, in which - FIG. 1 represents a block diagram of the cryptographic system of the invention and - FIG. 2 represents the flowchart for determining the prime number ê from the number e.
La mise en #uvre du crypto-système RSA consiste donc à définir, dans un premier temps, les clés publique et privée, c'est à dire l'exposant public e, le module n et l'exposant privé d. Ces valeurs sont liées entre elles. Ainsi The implementation of the RSA crypto-system therefore consists in first defining the public and private keys, i.e. the public exponent e, the module n and the private exponent d. These values are interrelated. So
<Desc/Clms Page number 5><Desc / Clms Page number 5>
l'exposant privé d est l'inverse modulo #(n) du nombre représentant l'exposant public e. On choisit n comme le produit de deux nombres premiers p et q ; #(n) est la fonction de Carmichael de ces nombres. Dans le système RSA, il s'agit du PPCM du couple de nombres p-1 et q-1. the private exponent d is the inverse modulo # (n) of the number representing the public exponent e. We choose n as the product of two prime numbers p and q; # (n) is the Carmichael function of these numbers. In the RSA system, this is the PPCM of the pair of numbers p-1 and q-1.
Ces valeurs étant établies, et comme on l'a déjà vu plus haut, on peut procéder aux opérations de chiffrement-déchiffrement ou de signature de messages Considérant un message numérique m à coder, d'une valeur inférieure à n. These values being established, and as we have already seen above, we can proceed to the operations of encryption-decryption or signature of messages Considering a digital message m to be coded, of a value less than n.
On observe que, si la valeur est supérieure à n, on découpe le message en autant de sous messages qu'il est nécessaire pour remplir cette condition. We observe that, if the value is greater than n, we split the message into as many sub-messages as necessary to fulfill this condition.
On traite séparément les différents sous messages. We treat the different sub messages separately.
Si on souhaite transmettre le message sous forme codée à un tiers, on se procure la clé publique de ce dernier et on introduit la valeur m dans le système cryptographique qui restitue une valeur codée c telle que c=me modulo n. Le destinataire du message codé peut retrouver le message initial en procédant à la même opération avec sa clé privée : m=cdmodulo n. If one wishes to transmit the message in coded form to a third party, one obtains the public key of the latter and one introduces the value m in the cryptographic system which restores a coded value c such that c = me modulo n. The recipient of the coded message can find the initial message by performing the same operation with their private key: m = cdmodulo n.
Le système permet aussi de signer un document. L'émetteur du document m code celui-ci avec sa clé privée d ; obtient une signature s telle que s=mdmodulo n. Pour qu'un tiers authentifie cette signature, il lui suffit d'appliquer la clé publique correspondante à la signature et de comparer le message transformé avec le message d'origine. Il faut que les messages en résultant soient les mêmes. The system also allows you to sign a document. The issuer of the document m codes it with its private key d; obtains a signature s such that s = mdmodulo n. For a third party to authenticate this signature, it suffices to apply the public key corresponding to the signature and to compare the transformed message with the original message. The resulting messages must be the same.
Lorsque le système cryptographique est chargé sur une carte à microprocesseur ou tout autre support équivalent, on est limité en espace mémoire disponible si bien qu'il ne paraît pas possible d'appliquer les moyens de l'art antérieur pour résoudre le problème de l'invention, à savoir le libre choix de l'exposant public quant à sa primalité. When the cryptographic system is loaded on a microprocessor card or any other equivalent medium, one is limited in available memory space so that it does not seem possible to apply the means of the prior art to solve the problem of invention, namely the free choice of the public exhibitor as to its primality.
Pour mémoire, la formule connue sous le nom de formule d'inversion d'Arazi permet le calcul de l'inverse modulo L d'un nombre e, si ce nombre est premier. Elle est reproduite ci dessous, après avoir été exprimée un peu différemment ci-dessus : e-1mod L = (1 + L(-L-1 mod e))/e avec pgcd (e, L)=l. For the record, the formula known as the Arazi inversion formula allows the calculation of the inverse modulo L of a number e, if this number is prime. It is reproduced below, after having been expressed a little differently above: e-1mod L = (1 + L (-L-1 mod e)) / e with pgcd (e, L) = l.
<Desc/Clms Page number 6><Desc / Clms Page number 6>
Dans la mesure où l'on souhaite ne pas être limité dans la sélection du nombre e, on applique une étape de transformation du nombre e en un nombre ê qui est premier. Insofar as one wishes not to be limited in the selection of the number e, one applies a step of transformation of the number e into a number ê which is prime.
Ce nombre ê est défini à partir de la formule ê = e+C*#(n). This number ê is defined from the formula ê = e + C * # (n).
Il permet le calcul de l'exposant privé d de la même façon que le nombre e,
car si d e-lmod 1(n), alors d+C*À(n)r1mod ,(n). On choisit C pour que ê soit premier. It allows the calculation of the private exponent d in the same way as the number e,
because if d e-lmod 1 (n), then d + C * To (n) r1mod, (n). We choose C so that ê is prime.
Dans ce but, et en référence à la figure 2, on choisit un nombre # égal à un produit de nombres premiers ; de préférence, ils sont petits. On définit (20) un nombre c co-premier avec #. For this purpose, and with reference to Figure 2, we choose a number # equal to a product of prime numbers; preferably they are small. We define (20) a number c co-prime with #.
On en déduit (21) le nombre C par la formule suivante
C = [(c-e)*7(n)n -'] mod II Le nombre C ayant été calculé, on en déduit (22) une valeur pour ê. ê est alors premier avec #. We deduce (21) the number C by the following formula
C = [(ce) * 7 (n) n - '] mod II The number C having been calculated, we deduce (22) a value for ê. ê is then prime with #.
Si le nombre ê est premier avec tous les petits premiers à savoir : 2,3, 5,7, 11, 13,17, 19,23, etc., alors la probabilité est grande qu'il soit premier dans l'absolu. If the number ê is prime with all the small prime numbers, namely: 2.3, 5.7, 11, 13.17, 19.23, etc., then the probability is high that it is prime in absolute terms.
On vérifie (23) la primalité T de ê, c'est-à-dire si le nombre ê est premier, selon une méthode connue en soi. Par exemple, il peut s'agir du test de Fermat ou bien du test de Miller et Rabin tel que décrit dans le chapitre 4 du livre "Handbook of Applied Cryptography" (A.J. Menezes, P. C. van Oorschot et S.A. Vanstone, CRC Press, 1997). We check (23) the primality T of ê, that is to say if the number ê is prime, according to a method known per se. For example, it may be the Fermat test or the Miller and Rabin test as described in Chapter 4 of the book "Handbook of Applied Cryptography" (AJ Menezes, PC van Oorschot and SA Vanstone, CRC Press, 1997 ).
S'il apparaît que ê n'est pas premier, alors on définit (20) un nouveau nombre c à partir duquel on calcule un nouveau nombre ê et, ainsi de suite, de façon itérative. If it appears that ê is not prime, then we define (20) a new number c from which we calculate a new number ê and, so on, iteratively.
Le nouveau nombre c est, de préférence, le produit de l'ancienne valeur c avec un nombre a qui est inversible modulo n. Le nouveau nombre e ainsi obtenu est alors également inversible modulo n. The new number c is preferably the product of the old value c with a number a which is invertible modulo n. The new number e thus obtained is then also invertible modulo n.
<Desc/Clms Page number 7> <Desc / Clms Page number 7>
On détermine un nouveau nombre ê à partir de la nouvelle valeur de c. S'il n'est pas premier, on recommence jusqu'à ce que le test de primalité soit positif. A new number ê is determined from the new value of c. If it is not prime, it is repeated until the primality test is positive.
Enfin, le nombre ê étant premier, on lui applique (24) l'opération d'inversion modulaire selon Arazi, et on en déduit l'exposant privé d associé à l'exposant public e.
d = [1 + 1(n)(- À(n)ê-2 mod ê)]/ê. Finally, the number ê being prime, we apply to it (24) the modular inversion operation according to Arazi, and we deduce the private exponent d associated with the public exponent e.
d = [1 + 1 (n) (- To (n) ê-2 mod ê)] / ê.
Ce nombre ayant été déterminé, on le stocke dans une mémoire de la carte à microprocesseur. Il s'agit de préférence d'une mémoire non volatile EEPROM. This number having been determined, it is stored in a memory of the microprocessor card. It is preferably a non-volatile EEPROM memory.
On peut alors utiliser la carte à microprocesseur pour le chiffrement ou la signature de documents. We can then use the microprocessor card for encryption or signing documents.
On vient d'exposer la mise en #uvre RSA en mode standard. We just exposed the RSA implementation in standard mode.
Conformément à une autre mise en #uvre, on applique l' invention à la détermination de l'exposant privé d dans le cas d'une mise en #uvre du crypto-système RSA selon le mode connu sous le nom de CRT (du théorème des restes chinois). In accordance with another implementation, the invention is applied to the determination of the private exponent d in the case of an implementation of the RSA crypto-system according to the mode known as CRT (from the theorem Chinese remains).
Selon cette mise en #uvre, on profite de la propriété du module n d'être le produit de deux nombres premiers p et q et de #(n) d'être le ppcm de (p-1), (q-1). According to this implementation, we take advantage of the property of the module n to be the product of two prime numbers p and q and of # (n) to be the ppcm of (p-1), (q-1) .
L'exposant privé d ayant été déterminé, on établit des exposants privés partiels-dp et dq , à partir de d de la façon suivante : dp = d mod (p-1) et dq = d mod (q-1). The private exponent d having been determined, partial private exponents-dp and dq are established from d as follows: dp = d mod (p-1) and dq = d mod (q-1).
Dans le cas d'une opération privée telle que la détermination de la signature d'un message m par calcul de la valeur s = mdmod n, il apparaît que si on connaît à la fois Sp = mdmod p et donc, selon le théorème de Fermat, Sp = mdp mod p et Sq = md mod q et donc Sq = mdq mod q, alors on peut déterminer aisément mdmod n. In the case of a private operation such as determining the signature of a message m by calculating the value s = mdmod n, it appears that if we know both Sp = mdmod p and therefore, according to the theorem of Fermat, Sp = mdp mod p and Sq = md mod q and therefore Sq = mdq mod q, then we can easily determine mdmod n.
<Desc/Clms Page number 8><Desc / Clms Page number 8>
Dans un dispositif portable où la capacité mémoire est limitée, il est préférable de procéder aux calculs sur les exposants privés partiels dp et dq ainsi définis, car ceux-ci sont deux fois plus courts que l'exposant d. Il en est de même pour p et q qui sont deux fois plus courts que n = p. q. Il s'ensuit que le calcul de s à partir des valeurs sp et sq est sensiblement quatre fois plus rapide que le calcul de la signature s, directement à partir de l'exposant privé d. In a portable device where the memory capacity is limited, it is preferable to carry out the calculations on the partial private exponents dp and dq thus defined, since these are twice as short as the exponent d. It is the same for p and q which are twice shorter than n = p. q. It follows that the calculation of s from the values sp and sq is substantially four times faster than the calculation of the signature s, directly from the private exponent d.
Ainsi, pour calculer la signature d'un message s=mdmod n, on calcule séparément les signatures partielles. sp = mdp mod p et
Sq = mdq mod q. Thus, to calculate the signature of a message s = mdmod n, the partial signatures are calculated separately. sp = mdp mod p and
Sq = mdq mod q.
On détermine ensuite la signature s par la méthode connue de calcul des restes chinois. s = CRT (sp, sa ) = sq +q*(iq*(sp~Sq) mod p) avec iq = 1/q mod p. The signature s is then determined by the known method of calculating the Chinese remains. s = CRT (sp, sa) = sq + q * (iq * (sp ~ Sq) mod p) with iq = 1 / q mod p.
On peut aussi calculer s à partir du nombre sp selon l'expression s =sp + p*( ip*(sq-sp) mod q) avec ip== 1/p mod q. We can also calculate s from the number sp according to the expression s = sp + p * (ip * (sq-sp) mod q) with ip == 1 / p mod q.
Donc en mode CRT, on peut ne stocker en mémoire dans la carte que les valeurs nécessaires p, q, dp, dq, et iq. L'exposant partiel dp (respectivement dq) peut également s'obtenir directement à partir de e et de ,(p) = p-1 (respectivement #(q) = q-1). La méthodologie utilisée pour le calcul de d s'applique au calcul de dp en remplaçant n par p et #(n) par ,(p) = p-1. On pose êp = ep + Cp * ,(p) avec ep = emod(p-l) et Cp = (cp - e)(p-1)#(#) modII, où cp est un élément inversible modulo #. Si êp est premier, alors obtient
dp = (1 + (p-l)(-(p-ir2 modêp /êp. La valeur de dq s'obtient de façon similaire en remplaçant les indices p par des indices q. So in CRT mode, you can store in memory in the card only the necessary values p, q, dp, dq, and iq. The partial exponent dp (respectively dq) can also be obtained directly from e and from, (p) = p-1 (respectively # (q) = q-1). The methodology used for the calculation of d applies to the calculation of dp by replacing n by p and # (n) by, (p) = p-1. We set êp = ep + Cp *, (p) with ep = emod (pl) and Cp = (cp - e) (p-1) # (#) modII, where cp is an invertible element modulo #. If êp is prime, then get
dp = (1 + (pl) (- (p-ir2 modêp / êp. The value of dq is obtained in a similar way by replacing the indices p by indices q.
L'avantage du calcul direct en mode CRT est, selon le dispositif portable, une vitesse de traitement accrue et/ou un gain en mémoire. The advantage of direct calculation in CRT mode is, depending on the portable device, increased processing speed and / or memory gain.
<Desc/Clms Page number 9> <Desc / Clms Page number 9>
Finalement, et en référence à la figure 1, l'invention concerne aussi, implanté sur une carte à microprocesseur 1, appelée couramment carte à puce, un système cryptographique 2, ou cryptosystème, comprenant un processeur central 3 et, reliées au processeur central 3, une mémoire (ROM) 8 de stockage d'un programme cryptographique RSA, une mémoire (EEPROM) 9 de stockage de paramètres cryptographiques privés et une mémoire (RAM) 10 de travail. Un cryptoprocesseur 11 est ici également relié au processeur central 3. Sous forme de logiciel, le processeur central 3 comprend un générateur 4 de nombres premiers privés (p et q), des moyens 5 de détermination d'un exposant privé (d) à partir d'un exposant public (e), selon la relation d e-1 [modulo ppcm (p-1, q-1)], des moyens 6 pour, si e n'est pas un nombre premier, calculer un nombre premier ê selon la relation ê = e + c* [ppcm (p-1), (q-1)] et des moyens 7 pour vérifier que le nombre ê est premier. Finally, and with reference to FIG. 1, the invention also relates, implanted on a microprocessor card 1, commonly called smart card, a cryptographic system 2, or cryptosystem, comprising a central processor 3 and, connected to the central processor 3 , a memory (ROM) 8 for storing an RSA cryptographic program, a memory (EEPROM) 9 for storing private cryptographic parameters and a memory (RAM) 10 for work. A cryptoprocessor 11 is here also connected to the central processor 3. In the form of software, the central processor 3 comprises a generator 4 of private prime numbers (p and q), means 5 for determining a private exponent (d) from of a public exponent, according to the relation of e-1 [modulo ppcm (p-1, q-1)], means 6 for, if e is not a prime number, calculate a prime number ê according to the relation ê = e + c * [ppcm (p-1), (q-1)] and means 7 to verify that the number ê is prime.
L'invention concerne également le même programme cryptographique RSA utilisé en mode CRT.The invention also relates to the same RSA cryptographic program used in CRT mode.
Claims (11)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0203069A FR2837335B1 (en) | 2002-03-12 | 2002-03-12 | CRYPTOGRAPHIC METHOD AND SYSTEM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0203069A FR2837335B1 (en) | 2002-03-12 | 2002-03-12 | CRYPTOGRAPHIC METHOD AND SYSTEM |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2837335A1 true FR2837335A1 (en) | 2003-09-19 |
FR2837335B1 FR2837335B1 (en) | 2005-03-18 |
Family
ID=27772058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0203069A Expired - Fee Related FR2837335B1 (en) | 2002-03-12 | 2002-03-12 | CRYPTOGRAPHIC METHOD AND SYSTEM |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2837335B1 (en) |
-
2002
- 2002-03-12 FR FR0203069A patent/FR2837335B1/en not_active Expired - Fee Related
Non-Patent Citations (2)
Title |
---|
DEROME M F A: "GENERATING RSA KEYS WITHOUT THE EUCLID ALGORITHM", ELECTRONICS LETTERS, IEE STEVENAGE, GB, vol. 29, no. 1, 7 January 1993 (1993-01-07), pages 19 - 21, XP000403895, ISSN: 0013-5194 * |
LENSTRA A K: "Computational Methods in Public Key Cryptology", CITIBANK, N.A. AND TECHNISCHE UNIVERSITEIT EINDHOVEN, 13 August 2001 (2001-08-13), Mendham, NJ, USA, XP002220915, Retrieved from the Internet <URL:http://citeseer.nj.nec.com/cs> [retrieved on 20021114] * |
Also Published As
Publication number | Publication date |
---|---|
FR2837335B1 (en) | 2005-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1151576B1 (en) | Public and private key cryptographic method | |
EP2256987B1 (en) | Protection of a generation of prime numbers for the RSA algorithm | |
EP2296086B1 (en) | Protection of prime number generation against side-channel attacks | |
FR2759226A1 (en) | PROTOCOL FOR VERIFYING A DIGITAL SIGNATURE | |
WO2007074149A1 (en) | Cryptographic method comprising a modular exponentiation secured against hidden-channel attacks, cryptoprocessor for implementing the method and associated chip card | |
WO2006070092A1 (en) | Data processing method and related device | |
EP0963638B1 (en) | Digital signature method | |
EP0666664B1 (en) | Method for digital signature and authentication of messages using a discrete logarithm with a reduced number of modular multiplications | |
EP0909495A1 (en) | Public key cryptography method | |
EP1829279A2 (en) | Method and device for executing a cryptographic calculation | |
EP3809627B1 (en) | Public key generation method and apparatus | |
EP1523823A2 (en) | Method of generating electronic keys for a public-key cryptography method and a secure portable object using said method | |
EP1456998A1 (en) | Cryptographic method for distributing load among several entities and devices therefor | |
EP1820297A1 (en) | Method of generating a signature with proof of tight security, associated verification method and associated signature scheme that are based on the diffie-hellman model | |
FR2837335A1 (en) | Cryptographic procedure for portable electronic devices uses iterative Arazi inversion to create RSA algorithm keys from arbitrary inputs | |
WO1998051038A1 (en) | Pseudo-random generator based on a hash coding function for cryptographic systems requiring random drawing | |
EP1520370A1 (en) | Cryptographic method and devices for facilitating calculations during transactions | |
EP4239944B1 (en) | Method for cryptographic signing of a data item, associated electronic device and computer program | |
EP3929726A1 (en) | Cryptographic processing method, associated electronic device and computer program | |
FR3143243A1 (en) | MESSAGE SIGNATURE AND DECRYPTION SECURED BY DOUBLE RSA-CRT | |
FR2827722A1 (en) | Low cost calculation/memory space electronic key generation process having key ensuring security with part value defined from number values generated and random generator part fixed value. | |
WO2003041337A1 (en) | Method of producing a cryptography parameter | |
WO2003013053A1 (en) | Method for determining the size of a random variable for an electronic signature schema |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RN | Application for restoration | ||
FC | Decision of inpi director general to approve request for restoration | ||
ST | Notification of lapse |
Effective date: 20091130 |