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 PDF

Info

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
Application number
FR0203069A
Other languages
French (fr)
Other versions
FR2837335B1 (en
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
Priority to FR0203069A priority Critical patent/FR2837335B1/en
Publication of FR2837335A1 publication Critical patent/FR2837335A1/en
Application granted granted Critical
Publication of FR2837335B1 publication Critical patent/FR2837335B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/721Modular inversion, reciprocal or quotient calculation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random 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

A cryptographic procedure uses arbitrary inputs e and l in Arazi inversion to calculate (24) and store a private exponent d so that the product with e the public exponent is congruent to 1 modulo l with selection of a new parameter C (21) based on the product of the previous value c (20) and a number inversible modulo P so that e+Casteriskl is prime if e is tested (23) and found not to be prime. Includes an Independent claim for implementation of the procedure using a computer processor.

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,

Figure img00020001

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
Figure img00020002

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,
Figure img00020001

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
Figure img00020002

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

Figure img00020003

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
Figure img00020003

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,

Figure img00060001

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,
Figure img00060001

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

Figure img00060002

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
Figure img00060002

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.

Figure img00070001

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.
Figure img00070001

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

Figure img00080001

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
Figure img00080001

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)

REVENDICATIONS 1.- Procédé de 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 ê.  CLAIMS 1.- Method of 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 as 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 ê. 2. - Procédé selon la revendication 1, de type RSA, dans lequel e est un exposant public, d est un exposant privé, le produit de e et d est congruent à 1 modulo #(n), avec ,(n) = ppcm((p-l)(q-l)), p et q étant des nombres premiers dont le produit est égal à n et C est tel que e + C*#(n) = ê. 2. - Method according to claim 1, of RSA type, in which e is a public exponent, d is a private exponent, the product of e and d is congruent to 1 modulo # (n), with, (n) = ppcm ((pl) (ql)), p and q being prime numbers whose product is equal to n and C is such that e + C * # (n) = ê. 3. - Procédé selon la revendication 1, de type RSA en mode CRT, dans lequel e est un exposant public, dp est un exposant privé, le produit de e et de dp est congruent à 1 mod #(p), avec #(p) = p - 1, p étant un nombre premier et C est tel que ep + C * #(p) = ê, avec ep = e mod (p - 1). 3. - Method according to claim 1, of type RSA in CRT mode, in which e is a public exponent, dp is a private exponent, the product of e and dp is congruent to 1 mod # (p), with # ( p) = p - 1, p being a prime number and C is such that ep + C * # (p) = ê, with ep = e mod (p - 1). 4. - Procédé selon l'une des revendications 1 à 3, dans lequel on stocke le nombre d dans une mémoire non volatile. 4. - Method according to one of claims 1 to 3, wherein the number d is stored in a non-volatile memory. 5. - Procédé selon l'une des revendications 1 à 4, dans lequel on détermine (21) le paramètre C par un calcul itératif depuis une valeur initiale c choisie (20) comme le produit # de nombres premiers. 5. - Method according to one of claims 1 to 4, in which the parameter C is determined (21) by an iterative calculation from an initial value c chosen (20) as the product # of prime numbers. 6. - Procédé selon la revendication 5, dans lequel on prend des nombres premiers petits. 6. - Method according to claim 5, wherein one takes small prime numbers. 7. - Procédé selon l'une des revendications 5 et 6, dans lequel on détermine 7. - Method according to one of claims 5 and 6, wherein one determines
Figure img00100001
Figure img00100001
(21) la valeur C par application de la formule C = [( c-e )*À À(f1 )-1] mod II. (21) the value C by application of the formula C = [(c-e) * À À (f1) -1] mod II.
8. - Procédé selon la revendication 7 dans lequel tant que ê n'est pas premier (23), on calcule C à partir d'une nouvelle valeur de c. 8. - Method according to claim 7 in which as long as ê is not prime (23), C is calculated from a new value of c. 9. - Procédé selon l'une des revendications 2 à 8, dans lequel on stocke en mémoire les valeurs de deux exposants privés partiels dp et dq calculés à partir des deux valeurs p et q, selon les formules 9. - Method according to one of claims 2 to 8, in which the values of two partial private exponents dp and dq calculated from the two values p and q are stored in memory, according to the formulas <Desc/Clms Page number 11> <Desc / Clms Page number 11>
Figure img00110001
Figure img00110001
10. - 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 de cryptage 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  10. - Cryptographic system comprising a central processor and, connected to the processor, means for storing an RSA-type cryptographic program, means for storing private cryptographic encryption 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
Figure img00110002
Figure img00110002
caractérisé par le fait qu'il est prévu des moyens pour, si e n'est pas un nombre premier, calculer un nombre premier ê selon la relation  characterized in that means are provided for, if e is not a prime number, calculating a prime number ê according to the relation
Figure img00110003
Figure img00110003
et des moyens pour vérifier que le nombre ê est premier.  and means for verifying that the number ê is prime.
11.- Système selon la revendication 8, dans lequel les moyens de calcul de ê et de vérification de la primalité de ê sont agencés pour procéder de façon itérative.11.- The system of claim 8, wherein the means of calculating ê and checking the primality of ê are arranged to proceed iteratively.
FR0203069A 2002-03-12 2002-03-12 CRYPTOGRAPHIC METHOD AND SYSTEM Expired - Fee Related FR2837335B1 (en)

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)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
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