EP1832034A2 - Method for rapidly generating a random number that cannot be divided by a pre-determined set of prime numbers - Google Patents

Method for rapidly generating a random number that cannot be divided by a pre-determined set of prime numbers

Info

Publication number
EP1832034A2
EP1832034A2 EP05825311A EP05825311A EP1832034A2 EP 1832034 A2 EP1832034 A2 EP 1832034A2 EP 05825311 A EP05825311 A EP 05825311A EP 05825311 A EP05825311 A EP 05825311A EP 1832034 A2 EP1832034 A2 EP 1832034A2
Authority
EP
European Patent Office
Prior art keywords
rank
random number
parameters
mod
prime
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
EP05825311A
Other languages
German (de)
French (fr)
Inventor
Marc Joye
Pascal Paillier
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.)
Thales DIS France 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 EP1832034A2 publication Critical patent/EP1832034A2/en
Withdrawn 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/58Random or pseudo-random number generators

Definitions

  • a method of rapidly generating a non - divisible random number by a predetermined set of prime numbers is a method of rapidly generating a non - divisible random number by a predetermined set of prime numbers.
  • the invention relates to a method for the rapid generation of a relatively prime random integer to a set of predetermined prime numbers and to a device for implementing the method.
  • a decisive advantage of the invention lies in its very rapidity compared with similar prior techniques.
  • the invention is particularly but not exclusively applicable to the generation of large random prime numbers.
  • the generation of large random prime numbers has many practical applications, in particular in public key cryptography.
  • asymmetric cryptography schemes for performing cryptographic functions such as information encryption, digital document signing, or remote identification of people.
  • Popular examples of such schemes are RSA (Rivest, Shamir and Adelman), DSA, El Gamal, Schnorr, Cramer-Shoup, and so on.
  • a common feature of asymmetric cryptography schemes is that they use one or more prime numbers whose size can vary between 160 and 2048 bits.
  • the prime number (s) used by a scheme generally form one or more keys.
  • some schemas like RSA require the generation of two large random numbers of neighboring size to constitute the private key. The generation of large random prime numbers is therefore a fundamental tool in public key cryptography.
  • a simple and common way to generate a random prime number is to randomly draw a number q using a random number generator and then test its primacy using a test or a random number. a pseudo-test of primacy. If the test is unsuccessful, the value of q is incremented by 1 and the test is re-applied, and so on. Since all prime numbers are odd (except 2), a trivial improvement of this technique consists in choosing as an initial value of q an odd random number and then incrementing q by 2 until q is prime. Unfortunately, this simple technique is very inefficient in terms of speed and is therefore dissuasive when large prime numbers are to be generated. However, there are techniques for generating large prime numbers that are noticeably faster.
  • the central unit of the device must for this purpose calculate the greatest common divisor (GCD) between the two numbers q and ⁇ and verify that the result is equal to 1. Indeed it is recalled that two numbers are prime between them if and only if their largest common divisor is 1.
  • GCD common divisor
  • the method of the invention also makes it possible to generate a relatively prime random number q ⁇ with the predetermined parameter ⁇ .
  • An essential advantage of the invention lies in its extreme speed in comparison with the known methods described above.
  • the method of the invention consists in using the particular form of the parameter ⁇ to accelerate the technique of the Pallier / Joye process.
  • the invention relates to a cryptographic method in which a random and undividable final number (q L ) is generated by a predetermined set of prime numbers (pi, p2, • • -, Pk) from a random number initial (qo).
  • E2i modulo reduce the parameter of rank i (7Ii) a random number of rank i-1 (qi-i) obtained during a previous iteration
  • E3i execute the Pallier / Joye method to modify the random number of rank i-1 reduced (qi-i mod 7Ii) and produce a relatively modified number (qim) with said parameter of rank i ( ⁇ ⁇ ),
  • E4i subtract to the modified number (qim) obtained in step E3i the random number of rank i - 1 reduced obtained in step E2i (result qi m - qi - i mod 7Ii),
  • E5i multiply the result of the subtraction of step E4i by the product (7Ii * ... * 7Ii-i) of the parameters of rank 1 to i-1
  • E6i add the result of the multiplication of step E5i to the random number of rank i-1 (qi-i) to obtain a random number of rank i (qi), the final random number being the random number of rank L .
  • the succession of steps Eli to E6i is such that the random number of rank i produced at the end of step E6i is prime with the number ⁇ ⁇ . Since the random number of rank i-1 is prime with the parameters of rank 1 to i-1 (it was built for that by repeating the steps E1 to E6), then the random number of rank i is prime with all the parameters from rank 1 to i (and therefore also with the product of these parameters.
  • the parameters 7Ii are chosen multiple of (or divisible by) some of the prime numbers of the predetermined set, the number random of rank i is necessarily prime with prime numbers of the predetermined set.
  • step E3i the Pallier / Joye method as described above and comprising the following substeps consisting of:
  • the method also comprises an initialization step E0 consisting of: - choosing a random number L,
  • the above method is particularly useful as a step of a method of generating a cryptographic key.
  • the invention also relates to a portable electronic device comprising a central processing unit and an associated program memory, mainly characterized in that it comprises a program for implementing a method for generating random numbers which are not divisible by a set predetermined number of prime numbers as described above.
  • the portable electronic device is constituted by a microprocessor chip card that can include an arithmetic co-processor.
  • FIG. 1 represents the block diagram of a portable electronic device such as a smart card implementing the method according to the invention
  • FIG. 2 represents the diagram of an exemplary embodiment of the implementation of the method according to
  • FIG. 3 shows the diagram of a second embodiment of implementation of the method according to the invention using arithmetic operations known as Montgomery.
  • prime numbers In the implementation of a public key cryptography scheme such as RSA, it is necessary to generate two prime numbers of large numbers. size known in advance, for example 512 or 1024 bits. These then allow the creation of a private key and a corresponding public key.
  • the known techniques of generating prime numbers having the best characteristics in terms of simplicity and speed of computation require, during an initialization phase, the generation of a random number having the property of being non - divisible by a set (pi, p2, ..., Pk) of prime numbers.
  • the choice of the first (pi, p2, ..., Pk) is predetermined and may depend, for example, on the desired size of the generated first number.
  • the randomness of this generation is fundamental, and the microprocessor card has for this purpose a random number generator capable of providing an integer of the desired bit size.
  • FIG. 1 therefore shows the block diagram of a microprocessor card capable of implementing the method according to the invention.
  • the card 7 comprises a main processing unit 1, program memories 3 and 6 and a working memory 4, associated with the main unit 1.
  • the card also comprises an arithmetic coprocessor 2 capable of carrying out modular exponentiations. , that is, calculations of the type x A y mod z where x, y and z are large integers. It may be for example circuits such as the ST16CF54 circuit marketed by the company STMicroelectronics or 83C852 / 5 from Philips.
  • the card also has a random integer generator 5.
  • ⁇ (p ⁇ ) p ⁇ ⁇ 1 (p-1) for any odd prime number p and for any non-zero positive integer ⁇ .
  • the method according to the invention generates a random number not divisible by a predetermined set of prime numbers (pi, p 2 ,..., Pk).
  • the integer q is then randomly generated by the microprocessor card by a series of operations shown in the diagram of FIG. 2.
  • step 10 an integer q is drawn at random using the random number generator 5.
  • step 20 the variable ⁇ is initialized to the value 1.
  • step 30 repeats the steps L times. 40 to 100.
  • a particular advantage of the method according to the invention is that it is easily implemented with the aid of an arithmetic co-processor allowing the addition, subtraction and modular multiplication of large numbers.
  • the modular calculation steps can be replaced by Montgomery arithmetic operations (modular multiplication or reduction).
  • the Montgomery multiplication of two integers a and b modulo c returns a * b * R mod c rather than a * b mod c, where R is a known power of 2 modulo c.
  • a Montgomery reduction of an integer modulo an integer c returns to * R 'mod c instead of a mod c, where R' is a known power of 2 modulo c.
  • the advantage of such operations lies in their speed of execution in general greater than that of equivalent ordinary operations. Montgomery operations can be used to carry out the generation process according to the invention without the need for modification.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

Procédé de génération rapide d' un nombre aléatoire non divisible par un ensemble prédétermine de nombres premiers . A method of rapidly generating a non - divisible random number by a predetermined set of prime numbers.
Portée de l' invention . L' invention concerne un procédé de génération rapide d' un nombre entier aléatoire relativement premier à un ensemble de nombres premiers prédéterminés ainsi qu' un dispositif de mise en œuvre du procédé .Scope of the invention. The invention relates to a method for the rapid generation of a relatively prime random integer to a set of predetermined prime numbers and to a device for implementing the method.
Un avantage décisif de l' invention réside dans sa très grande rapidité par comparaison avec les techniques similaires précédentes .A decisive advantage of the invention lies in its very rapidity compared with similar prior techniques.
L' invention s ' applique tout particulièrement mais non exclusivement à la génération de grands nombres premiers aléatoires . La génération de grands nombres premiers aléatoires présente de nombreuses applications pratiques , en particulier en cryptographie à clé publique .The invention is particularly but not exclusively applicable to the generation of large random prime numbers. The generation of large random prime numbers has many practical applications, in particular in public key cryptography.
Etat de l' art avant l' invention . Il existe un grand nombre de schémas asymétriques (dits aussi à clé publique) permettant de réaliser des fonctions cryptographiques telles que le chiffrement d' informations , la signature numérique de documents ou l' identification de personnes à distance . Des exemples populaires de tels schémas sont RSA (Rivest, Shamir et Adelman) , DSA, El Gamal, Schnorr, Cramer-Shoup, et caetera . Un point commun entre les schémas de cryptographie asymétrique réside dans le fait qu' ils utilisent un ou plusieurs grands nombres premiers dont la taille peut varier entre 160 et 2048 bits . Le ou les nombres premiers utilisés par un schéma forment en général une ou plusieurs clés . Typiquement, certains schémas comme RSA requièrent la génération de deux grands nombres premiers aléatoires de taille voisine pour constituer la clé privée . La génération de grands nombres premiers aléatoires est donc un outil fondamental en cryptographie à clé publique . Un moyen simple et courant pour générer un nombre premier aléatoire consiste à tirer un nombre q au hasard à l' aide d' un générateur de nombres aléatoires puis à tester la primauté de celui-ci à l' aide d' un test ou d' un pseudo-test de primauté . Si le test est infructueux, la valeur de q est incrémentée de 1 et le test est ré-appliqué, et ainsi de suite . Puisque tous les nombres premiers sont impairs (sauf 2 ) une amélioration triviale de cette technique consiste à choisir comme valeur initiale de q un nombre aléatoire impair puis à incrémenter q de 2 jusqu' à ce que q soit premier . Malheureusement, cette technique simple est très inefficace en terme de rapidité et est donc dissuasive lorsque de grands nombres premiers doivent être générés . II existe cependant des techniques de génération de grands nombres premiers notablement plus rapides . Dans la plupart de ces techniques rapides , on choisit une valeur initiale aléatoire pour q telle que q n' est divisible par aucun petit premier (pi, p2, ... , Pk) (avec typiquement pi=2 , p2=3, etc . ) et q < π = pi*p2 ...*Pk - Les premiers (pi, p2, ... , Pk) sont ici des paramètres de la génération . Par la suite, q est testé et transformé itérativement, jusqu' à ce qu' il soit premier avec π . Plusieurs procédés connus permettent d' obtenir q premier avec π .State of the art before the invention. There are a large number of asymmetric (also called public key) schemas for performing cryptographic functions such as information encryption, digital document signing, or remote identification of people. Popular examples of such schemes are RSA (Rivest, Shamir and Adelman), DSA, El Gamal, Schnorr, Cramer-Shoup, and so on. A common feature of asymmetric cryptography schemes is that they use one or more prime numbers whose size can vary between 160 and 2048 bits. The prime number (s) used by a scheme generally form one or more keys. Typically, some schemas like RSA require the generation of two large random numbers of neighboring size to constitute the private key. The generation of large random prime numbers is therefore a fundamental tool in public key cryptography. A simple and common way to generate a random prime number is to randomly draw a number q using a random number generator and then test its primacy using a test or a random number. a pseudo-test of primacy. If the test is unsuccessful, the value of q is incremented by 1 and the test is re-applied, and so on. Since all prime numbers are odd (except 2), a trivial improvement of this technique consists in choosing as an initial value of q an odd random number and then incrementing q by 2 until q is prime. Unfortunately, this simple technique is very inefficient in terms of speed and is therefore dissuasive when large prime numbers are to be generated. However, there are techniques for generating large prime numbers that are noticeably faster. In most of these fast techniques, we choose a random initial value for q such that qn 'is divisible by no small first (pi, p 2 , ..., Pk) (with typically pi = 2, p2 = 3, etc. .) and q <π = pi * p2 ... * Pk - The first ones (pi, p2, ..., Pk) are here parameters of the generation. Subsequently, q is tested and transformed iteratively, until it is prime with π. Several known methods make it possible to obtain q prime with π.
Dans un premier procédé, on choisit q < π au hasard à l' aide d' un générateur de nombres aléatoires , puis on teste si q et π sont premiers entre eux en s ' assurant que PGCD (q, π) = 1. En cas d' échec, on incrémente q ou bien on tire une nouvelle valeur aléatoire pour q, puis l' on teste à nouveau q et ainsi de suite .In a first method, q <π is chosen randomly using a random number generator, then we test if q and π are prime between them, making sure that PGCD (q, π) = 1. case of failure, increment q or draw a new random value for q, then test q again, and so on.
L' unité centrale du dispositif doit pour cela calculer le plus grand commun diviseur (PGCD) entre les deux nombres q et π et vérifier que le résultat est égal à 1. En effet on rappelle que deux nombres sont premiers entre eux si et seulement si leur plus grand commun diviseur est égal à 1. Il existe plusieurs techniques bien connues d' implémentation du calcul du PGCD de deux nombres à l' aide d' un microprocesseur . On peut citer à titre d' exemple les techniques telles que celle du « Binary GCD », du « Extended GCD » ou la technique de Lehmer . Malgré une complexité asymptotique excellente (c' est-à-dire pour des nombres de taille extrêmement grande) , ces techniques s ' avèrent à la fois difficiles à programmer sur des dispositifs portables de type carte à microprocesseur (car complexes ) et de performances médiocres pour des nombres de grandes de tailles usuelles comme 512 , 1024 ou 2048 bits .The central unit of the device must for this purpose calculate the greatest common divisor (GCD) between the two numbers q and π and verify that the result is equal to 1. Indeed it is recalled that two numbers are prime between them if and only if their largest common divisor is 1. There are several well-known techniques for implementing the computation of the two-number PGCD with the aid of a microprocessor. Examples include techniques such as "Binary GCD", "Extended GCD" or Lehmer technique. Despite excellent asymptotic complexity (i.e. for extremely large numbers), these techniques are both difficult to program on portable microprocessor-based (complex) and poor performance devices. for large numbers of usual sizes such as 512, 1024 or 2048 bits.
Dans un deuxième procédé connu du document FR 2 807 426, on pré-calcule le paramètre λ = Λ (π) où Λ dénote la fonction de Carmichael . On tire une valeur aléatoire q < π puis on teste si le nombre q mod π est égal à 1 ou non . Tant que ce n' est pas le cas , q est incrémente d' une quantité constante telle que 1 ou bien une nouvelle valeur aléatoire est attribuée à q et le test est répété .In a second known method of document FR 2 807 426, the parameter λ = Λ (π) where Λ denotes the function of Carmichael is pre-calculated. We draw a random value q <π and we test if the number q mod π is equal to 1 or not. As long as this is not the case, q is incremented by a constant amount such that 1 or a new random value is assigned to q and the test is repeated.
Dans un troisième procédé, connu du document US 2004-0028223 et que nous appellerons par la suite procédé Pallier/Joye, est en fait une amélioration du deuxième procédé décrit ci-dessus . Dans le procédé Pallier/Joye, pour calculer un nombre q aléatoire et premier avec p à partir d' un nombre initial qO aléatoire et inférieur à π (qO < π) , on réalise les étapes suivantes consistant à : Ep : calculer λ = Λ (π) , L étant la fonction de Carmichael,In a third method, known from US 2004-0028223 and which will be called later Pallier / Joye process, is in fact an improvement of the second method described above. In the Pallier / Joye process, to compute a random and prime number q with p from an initial number qO random and less than π (qO <π), the following steps are performed: Ep: calculate λ = Λ (π), where L is the function of Carmichael,
Eq : initialiser q à qO Er : calculer u = q mod πEq: initialize q to qO Er: calculate u = q mod π
Es : si u est égal à 1 , alors q est premier avec p et le procédé se termine,Es: if u is equal to 1, then q is prime with p and the process ends,
Et : si u est différent de 1 , tirer un nombre aléatoire z , calculer qf = q + z (1-u) mod π, et affecter à q la valeur qf And: if u is different from 1, draw a random number z, calculate q f = q + z (1-u) mod π, and assign to q the value q f
Eu : répéter les étapes Er à Et, tant que u est différent de 1.Eu: repeat steps Er to Et, as long as u is different from 1.
Le procédé de l' invention permet lui aussi de générer un nombre aléatoire q<π relativement premier avec le paramètre prédéterminé π . Un avantage essentiel de l' invention réside dans son extrême rapidité en comparaison avec les procédés connus décrits ci-dessus .The method of the invention also makes it possible to generate a relatively prime random number q <π with the predetermined parameter π. An essential advantage of the invention lies in its extreme speed in comparison with the known methods described above.
Résumé de l' invention . Le procédé de l' invention consiste à utiliser la forme particulière du paramètre π pour accélérer la technique du procédé Pallier/Joye .Summary of the invention. The method of the invention consists in using the particular form of the parameter π to accelerate the technique of the Pallier / Joye process.
Ainsi, l ' invention concerne un procédé cryptographique au cours duquel on génère un nombre final (qL) aléatoire et non divisible par un ensemble prédéterminé de nombres premiers (pi, p2, • • - , Pk) à partir d' un nombre aléatoire initial (qo) . Le procédé est notamment intéressant pour la génération de clés cryptographiques . Selon l ' invention, on répète les étapes suivantes , de façon itérative pour i = 1 à L, L étant un nombre entier :Thus, the invention relates to a cryptographic method in which a random and undividable final number (q L ) is generated by a predetermined set of prime numbers (pi, p2, • • -, Pk) from a random number initial (qo). The method is particularly interesting for the generation of cryptographic keys. According to the invention, the following steps are repeated, iteratively for i = 1 to L, where L is an integer:
Eli : générer un paramètre de rang i (7Ii) divisible par certains nombres premiers dudit ensemble prédéterminé et premier avec des paramètres de rangs inférieurs à i (TIi, ..., Tli-i) ,Eli: generate a parameter of rank i (7Ii) divisible by certain prime numbers of said set predetermined and first with parameters of ranks lower than i (TIi, ..., Tli-i),
E2i : réduire modulo le paramètre de rang i (7Ii) un nombre aléatoire de rang i-1 (qi-i) obtenu lors d' une itération précédenteE2i: modulo reduce the parameter of rank i (7Ii) a random number of rank i-1 (qi-i) obtained during a previous iteration
E3i : exécuter le procédé Pallier/Joye pour modifier le nombre aléatoire de rang i-1 réduit (qi-i mod 7Ii) et produire un nombre modifié (qim) relativement premier avec ledit paramètre de rang i (π±) , E4i : soustraire au nombre modifié (qim) obtenu lors de l ' étape E3i le nombre aléatoire de rang i-1 réduit obtenu lors de l ' étape E2i (résultat qim - qi-i mod 7Ii) ,E3i: execute the Pallier / Joye method to modify the random number of rank i-1 reduced (qi-i mod 7Ii) and produce a relatively modified number (qim) with said parameter of rank i (π ± ), E4i: subtract to the modified number (qim) obtained in step E3i the random number of rank i - 1 reduced obtained in step E2i (result qi m - qi - i mod 7Ii),
E5i : multiplier le résultat de la soustraction de l ' étape E4i par le produit (7Ii*...*7Ii-i) des paramètres de rang 1 à i-1E5i: multiply the result of the subtraction of step E4i by the product (7Ii * ... * 7Ii-i) of the parameters of rank 1 to i-1
E6i : aj outer le résultat de la multiplication de l ' étape E5i au nombre aléatoire de rang i-1 (qi-i) pour obtenir un nombre aléatoire de rang i (qi) , le nombre aléatoire final étant le nombre aléatoire de rang L .E6i: add the result of the multiplication of step E5i to the random number of rank i-1 (qi-i) to obtain a random number of rank i (qi), the final random number being the random number of rank L .
La succession des étapes Eli à E6i est telle que le nombre aléatoire de rang i produit à la fin de l ' étape E6i est premier avec le nombre π± . Comme le nombre aléatoire de rang i-1 est premier avec les paramètres de rang 1 à i-1 (il a été construit pour cela en répétant les étapes El à E6) , alors le nombre aléatoire de rang i est premier avec tous les paramètres de rang 1 à i (et donc également avec le produit de ces paramètres .The succession of steps Eli to E6i is such that the random number of rank i produced at the end of step E6i is prime with the number π ± . Since the random number of rank i-1 is prime with the parameters of rank 1 to i-1 (it was built for that by repeating the steps E1 to E6), then the random number of rank i is prime with all the parameters from rank 1 to i (and therefore also with the product of these parameters.
De plus , comme les paramètres 7Ii sont choisis multiples de (ou divisible par) certains des nombres premiers de l ' ensemble prédéterminés , le nombre aléatoire de rang i est nécessairement premier avec les nombres premiers de l ' ensemble prédéterminé .Moreover, since the parameters 7Ii are chosen multiple of (or divisible by) some of the prime numbers of the predetermined set, the number random of rank i is necessarily prime with prime numbers of the predetermined set.
Enfin, du fait de l' utilisation de paramètres de calcul (les paramètres de rang 1 à L TIi, ..., πL) plus petits que le paramètre π (qui est le produit pi*...*pL des dits paramètres ) , on observe une accélération spectaculaire de la vitesse d' exécution en comparaison avec la technique du procédé Pallier/Joye tel que décrit dans la demande de brevet américaine n° 2004- 0028223. Dans l ' invention, on exécute en effet L fois le procédé Pallier/Joye, mais avec des paramètres π± beaucoup plus petit que π, ce qui accélère considérablement les calculs . A titre d' exemple pratique, une réalisation particulière du procédé de l' invention s ' est avérée environ 100 fois plus rapide lorsque les paramètres 7Ii sont choisis de taille voisine et lorsque L est de l' ordre de 20. Il peut être montré que les caractéristiques statistiques de l' invention en termes de distribution de sortie sont en tout point identiques à celles du procédé de la demande de brevet américaine n° 2004-0028223.Finally, because of the use of calculation parameters (the parameters of rank 1 to L TIi, ..., π L ) smaller than the parameter π (which is the product pi * ... * p L of the said parameters), there is a spectacular acceleration of the speed of execution in comparison with the technique of the Pallier / Joye process as described in US Patent Application No. 2004-0028223. In the invention, L the Pallier / Joye process, but with parameters π ± much smaller than π, which considerably speeds up the calculations. As a practical example, a particular embodiment of the method of the invention has been found to be about 100 times faster when the parameters 7I 1 are chosen to be close in size and when L is of the order of 20. It can be shown that the statistical characteristics of the invention in terms of output distribution are identical in all respects to those of the process of US Patent Application No. 2004-0028223.
Dans l ' étape E3i, on exécute en pratique le procédé Pallier/Joye tel que décrit précédemment et comprenant les sous-étapes suivantes , consistant à :In step E3i, the Pallier / Joye method as described above and comprising the following substeps consisting of:
Epi : calculer λi = Λ (7Ii) , Λ étant la fonction de Carmichael,Epi: calculate λi = Λ (7Ii), where Λ is the function of Carmichael,
Eqi : initialiser qim à la valeur du nombre aléatoire de rang i-1 réduit (qi-i mod 7Ii) obtenu lors de l ' étape E2iEqi: initialize q im to the value of the random number of reduced rank i-1 (qi-i mod 7Ii) obtained during step E2i
Er : calculer Ui = qim 'mod 7IiEr: calculate Ui = qi m 'mod 7Ii
Es : si Ui est égal à 1 , alors qim est premier avec 7li et l ' étape E3i se termine, Et : si Ui est différent de 1 , tirer un nombre aléatoire z , calculer q' i = qim + z (1-Ui) mod π±, et affecter à qim la valeur q' iEs: if Ui is equal to 1, then qi m is prime with 7li and step E3i ends, And: if Ui is different from 1, draw a random number z, calculate q 'i = q im + z (1-Ui) mod π ± , and assign to qi m the value q' i
Eui : répéter les étapes Er à Et, tant que Ui est différent de 1.Eui: repeat steps Er to Et, as long as Ui is different from 1.
Dans un mode préféré de mise en œuvre de l ' invention, le procédé comprend également une étape d' initialisation EO consistant à : - choisir un nombre L aléatoire,In a preferred embodiment of the invention, the method also comprises an initialization step E0 consisting of: - choosing a random number L,
- réaliser par avance l ' ensemble des étapes Eli, pour tout i variant de 1 à L, pour déterminer les paramètres (7Ii, ... , πL) de rang 1 à L tels que leur produit (TIi* ... *πL) soit un multiple du produit de tous les nombres premiers de l ' ensemble prédéterminé (pi*p2 ...*Pk) et- Perform in advance the set of steps Eli, for any i varying from 1 to L, to determine the parameters (7Ii, ..., π L ) of rank 1 to L such that their product (TIi * ... * π L ) is a multiple of the product of all prime numbers in the predetermined set (pi * p2 ... * Pk) and
- réaliser par avance l ' ensemble des étapes EP1 pour i variant de 1 à L, pour déterminer des paramètres de Carmichael associés (λi = Λ (πi) , ..., λL = Λ (πL) ) à tous les paramètres de rang i compris entre 1 et L,performing in advance all the steps EP 1 for i varying from 1 to L, to determine associated Carmichael parameters (λi = Λ (πi), ..., λ L = Λ (π L )) at all parameters of rank i between 1 and L,
- mémoriser le nombre L, les paramètres de rang i (TIi, ..., πL) compris entre 1 et L et les paramètres de Carmichael λi, ..., λL) associés , en vue d' une utilisation ultérieure . Cette étape d' initialisation permet de réaliser par avance des calculs de constantes , et de faire en sorte plus facilement que le produit des paramètres de rang 1 à L soit un multiple du produit de tous les nombres entiers de l ' ensemble prédéterminé (c ' est-à- dire que le produit des paramètres de rang 1 à L est divisible par chaque nombre entier de l ' ensemble prédéterminé) .- Store the number L, the parameters of rank i (TIi, ..., π L ) between 1 and L and associated Carmichael parameters λi, ..., λ L ), for later use. This initialization step makes it possible to carry out calculations of constants in advance, and to make it easier for the product of the parameters of rank 1 to L to be a multiple of the product of all the integers of the predetermined set (c '). that is, the product of the parameters of rank 1 to L is divisible by each integer of the predetermined set).
Dans un langage plus familier des spécialistes du domaine technique, on peut résumer le mode préféré de réalisation du procédé de l' invention par les étapes suivantes , pour i compris entre 1 et L, exécutées après avoir choisi un nombre aléatoire initial qo :In a language more familiar to specialists in the technical field, one can summarize the preferred mode of performing the method of the invention by the following steps, for i ranging from 1 to L, executed after having chosen an initial random number qo:
1. Détermination d' une suite de L paramètres TIi, ... , πL où L est un nombre entier, tels que p-, divise πi*...*πL pour tout j=l , ..., k, p-, étant un nombre entier premier d' un ensemble prédéterminé (pi, p2, ... , Pk) de k nombres premiers , et λi = Λ (πi) , ..., λL = Λ (πL) où Λ est la fonction de Carmichael ; 2. Tirer un nombre aléatoire q;1. Determination of a sequence of L parameters TIi, ..., π L where L is an integer, such that p-, divides πi * ... * π L for all j = l, ..., k , p -, being a prime integer of a predetermined set (p1, p2, ..., Pk) of k prime numbers, and λi = Λ (πi), ..., λ L = Λ (π L ) where Λ is the function of Carmichael; 2. Draw a random number q;
3. Initialiser π = 1 ;3. Initialize π = 1;
4. Pour i de 1 à L faire : a . Calculer qim° = qim = q^i mod I1; b . Calculer U1 = qim 1 mod πl f' c . Si U1=I aller à l' étape 4. g; d. Tirer un nombre aléatoire z ; e . Calculer q1 ± = qim+ (1-U1) *z mod 7I1 et affecter qf ! à qim f . Aller à l' étape 4. b; g . Calculer q = q + π* (qim-qim° mod I1) ; h . Calculer π = π * TC1;4. For i from 1 to L do: a. Calculate q = q ° im im = i mod q ^ I 1; b. Calculate U 1 = q im 1 mod π lf 'c. If U 1 = I go to step 4. g; d. Draw a random number z; e. Calculate q 1 ± = q im + (1-U 1 ) * z mod 7I 1 and assign q f ! to im f. Go to step 4. b; boy Wut . Calculate q = q + π * (q im -q im ° mod I 1 ); h. Calculate π = π * TC 1 ;
5. Calculer q = q mod π;5. Calculate q = q mod π;
6. Retourner q.6. Return q.
Dans le domaine de la cryptographie, le procédé ci-dessus est notamment intéressant comme étape d' un procédé de génération d' une clé cryptographique .In the field of cryptography, the above method is particularly useful as a step of a method of generating a cryptographic key.
L' invention a également pour obj et un dispositif électronique portable comprenant une unité centrale de traitement et une mémoire de programme associée, principalement caractérisé en ce qu' il comprend un programme de mise en œuvre d' un procédé génération de nombres aléatoires non divisibles par un ensemble prédéterminé de nombres premiers tels que décrits ci- dessus .The invention also relates to a portable electronic device comprising a central processing unit and an associated program memory, mainly characterized in that it comprises a program for implementing a method for generating random numbers which are not divisible by a set predetermined number of prime numbers as described above.
Avantageusement, le dispositif électronique portable est constitué par une carte à puce à microprocesseur pouvant inclure un co-processeur arithmétique .Advantageously, the portable electronic device is constituted by a microprocessor chip card that can include an arithmetic co-processor.
D' autres particularités et avantages de l' invention apparaîtront clairement à la lecture de la description détaillée qui est faite ci-après d' un exemple de mise en œuvre d' un procédé selon l ' invention et d' un exemple de dispositif associé . La description est donnée à titre d' exemple non limitatif et en regard des dessins annexés sur lesquels :Other features and advantages of the invention will become clear from reading the detailed description which is given below of an exemplary implementation of a method according to the invention and an example of associated device. The description is given by way of nonlimiting example and with reference to the appended drawings in which:
- la figure 1 représente le schéma de principe d' un dispositif électronique portable tel qu' une carte à puce mettant en œuvre le procédé selon l' invention,FIG. 1 represents the block diagram of a portable electronic device such as a smart card implementing the method according to the invention,
- la figure 2 représente le schéma d' un exemple de réalisation de la mise en œuvre du procédé selonFIG. 2 represents the diagram of an exemplary embodiment of the implementation of the method according to
1' invention,The invention,
- la figure 3 représente le schéma d' un second exemple de réalisation de mise en œuvre du procédé selon l' invention utilisant des opérations arithmétiques dites de Montgomery .- Figure 3 shows the diagram of a second embodiment of implementation of the method according to the invention using arithmetic operations known as Montgomery.
Description détaillée de l' invention . Dans la description qui va suivre, on a pris comme exemple de dispositif électronique portable celui des cartes à puces à microprocesseur et on parlera pour simplifier de cartes à microprocesseur .Detailed description of the invention. In the following description, an example of a portable electronic device is that of microprocessor chip cards and will be discussed to simplify microprocessor cards.
Dans l' implémentation d' un schéma de cryptographie à clé publique tel que RSA, il est nécessaire de générer deux nombres premiers de grande taille connue à l' avance, par exemple 512 ou 1024 bits . Ces derniers permettent ensuite la création d' une clé privée et d' une clé publique correspondante . Les techniques connues de génération de nombres premiers présentant les meilleures caractéristiques en terme de simplicité et de rapidité de calcul, requièrent, lors d' une phase d' initialisation, la génération d' un nombre aléatoire présentant la propriété d' être non-divisible par un ensemble (pi, p2, ... , Pk) de nombres premiers . Le choix des premiers (pi, p2, ... , Pk) est prédéterminé et peut dépendre par exemple de la taille désirée du nombre premier généré . Le caractère aléatoire de cette génération est fondamental, et la carte à microprocesseur possède à cette fin un générateur de nombres aléatoires capable de fournir un nombre entier de la taille binaire désirée .In the implementation of a public key cryptography scheme such as RSA, it is necessary to generate two prime numbers of large numbers. size known in advance, for example 512 or 1024 bits. These then allow the creation of a private key and a corresponding public key. The known techniques of generating prime numbers having the best characteristics in terms of simplicity and speed of computation, require, during an initialization phase, the generation of a random number having the property of being non - divisible by a set (pi, p2, ..., Pk) of prime numbers. The choice of the first (pi, p2, ..., Pk) is predetermined and may depend, for example, on the desired size of the generated first number. The randomness of this generation is fundamental, and the microprocessor card has for this purpose a random number generator capable of providing an integer of the desired bit size.
On a donc représenté sur la figure 1 le schéma fonctionnel d' une carte à microprocesseur susceptible de mettre en œuvre le procédé selon l' invention . La carte 7 comporte une unité principale de traitement 1 , des mémoires de programmes 3 et 6 et une mémoire de travail 4 , associées à l' unité principale 1. La carte comporte également un co-processeur arithmétique 2 capable d' effectuer des exponentiations modulaires , c' est-à-dire des calculs du type xAy mod z où x, y et z sont des grands entiers . Il pourra s ' agir par exemple de circuits tels que le circuit ST16CF54 commercialisé par la société STMicroelectronics ou 83C852/5 de la société Philips . La carte possède également un générateur de nombres entiers aléatoires 5.FIG. 1 therefore shows the block diagram of a microprocessor card capable of implementing the method according to the invention. The card 7 comprises a main processing unit 1, program memories 3 and 6 and a working memory 4, associated with the main unit 1. The card also comprises an arithmetic coprocessor 2 capable of carrying out modular exponentiations. , that is, calculations of the type x A y mod z where x, y and z are large integers. It may be for example circuits such as the ST16CF54 circuit marketed by the company STMicroelectronics or 83C852 / 5 from Philips. The card also has a random integer generator 5.
Avant de décrire l' exemple d' implémentation du procédé selon l' invention, on rappelle que la fonction Λ est la fonction de Carmichael et que cette fonction est définie par la relation suivanteBefore describing the example of implementation of the method according to the invention, it is recalled that the function Λ is Carmichael's function and that function is defined by the following relation
Λ (x) = PPCM (Λ (Pl δi) , ..., Λ (ps δs) ) dans laquelle PPCM désigne le plus petit commun multiple et x= piδl *...* ps δs où chaque pi est un nombre premier et chaque δi un entier positif non nul pour l≤i≤s . On rappelle en outre que Λ (pδ) =pδ~1 (p-1 ) pour tout nombre premier p impair et pour tout entier positif non nul δ . Finalement, Λ (2 ) =l , Λ (4 ) =2 et Λ (2δ) =2δ"2 pour tout entier positif δ>2.Λ (x) = PPCM (Λ ( Pl δ i), ..., Λ (p s δ s)) in which PPCM denotes the smallest common multiple and x = pi δl * ... * p s δs where each pi is a prime number and each δi is a nonzero positive integer for l≤i≤s. We also recall that Λ (p δ ) = p δ ~ 1 (p-1) for any odd prime number p and for any non-zero positive integer δ. Finally, Λ (2) = l, Λ (4) = 2 and Λ (2 δ ) = 2 δ "2 for any positive integer δ> 2.
Le procédé selon l' invention génère un nombre aléatoire non divisible par un ensemble prédéterminé de nombres premiers (pi, p2, ... , Pk) • Dans le mode préféré de mise en œuvre de l ' invention, au cours d' une étape d' initialisation, une suite de paramètres πi, ... , πL tels que πi* ... *πL soit un multiple de pi*p2* ... *Pk est préalablement constituée et les entiers λi = Λ (πi) calculés en conséquence . Il est donc entendu que les nombres entiers TIi, ... , πL, λi, ... , λL ainsi que le nombre L et la taille binaire t de pi*p2* ... *Pk, sont déterminés à l' avance et stockés dans l' une des mémoires de la carte à microprocesseur .The method according to the invention generates a random number not divisible by a predetermined set of prime numbers (pi, p 2 ,..., Pk). In the preferred mode of implementation of the invention, during a initialization step, a sequence of parameters πi, ..., π L such that πi * ... * π L is a multiple of pi * p2 * ... * Pk is previously constituted and the integers λi = Λ ( πi) calculated accordingly. It is therefore understood that the integers TIi, ..., π L , λi, ..., λ L as well as the number L and the binary size t of pi * p 2 * ... * Pk, are determined by in advance and stored in one of the memories of the microprocessor card.
Selon l' invention, le nombre entier q est ensuite généré de manière aléatoire par la carte à microprocesseur par une suite d' opérations indiquées sur le schéma de la figure 2.According to the invention, the integer q is then randomly generated by the microprocessor card by a series of operations shown in the diagram of FIG. 2.
A l' étape 10 , un nombre entier q est tiré au hasard à l' aide du générateur de nombres aléatoires 5. A l' étape 20 , la variable π est initialisée à la valeur 1. L' étape 30 répète L fois les étapes 40 à 100.In step 10, an integer q is drawn at random using the random number generator 5. In step 20, the variable π is initialized to the value 1. Step 30 repeats the steps L times. 40 to 100.
A l' étape 40 , le nombre qi = q mod K± est calculé et l' on initialise qi0 à qi . A l' étape 50 est calculé Ui= qi 1 mod πi . A l' étape 60 , Ui est comparé à l' entier 1. Si Ui=I , on passe directement à l' étape 90.In step 40, the number qi = q mod K ± is calculated and qi 0 is initialized to qi. At step 50 is calculated Ui = qi 1 mod πi. In step 60, U i is compared to the integer 1. If U i = I, go directly to step 90.
Dans le cas inverse, on procède aux étapes suivantes : à l' étape 70 , on tire un nombre aléatoire z ; à l' étape 80 , on modifie la valeur de q± en effectuant le calcul q± = q± + (1-Uj.) z mod π±; l' exécution est alors redirigée vers l' étape 50.In the opposite case, the following steps are carried out: in step 70, a random number z is drawn; in step 80, the value of q ± is modified by performing the calculation q ± = q ± + (1-Uj.) z mod π ± ; the execution is then redirected to step 50.
A l' étape 90 , on effectue une modification de l' entier q en calculant q = q + π * (qi-qi0 mod 7Ii) • A l' étape 100 , on modifie l' entier π en effectuant π = π *In step 90, the integer q is modified by calculating q = q + π * (qi-qi 0 mod 7Ii) • At step 100, the integer π is modified by performing π = π *
A l' étape 110 , l' entier q est réduit modulo π selon q = q mod π puis est retourné à l' étape 120.In step 110, the integer q is reduced modulo π according to q = q mod π and is then returned to step 120.
Un avantage particulier du procédé selon l' invention est qu' il est facilement mis en œuvre à l' aide d' un co-processeur arithmétique permettant l' addition, la soustraction et la multiplication modulaire de grands nombres .A particular advantage of the method according to the invention is that it is easily implemented with the aid of an arithmetic co-processor allowing the addition, subtraction and modular multiplication of large numbers.
Selon une variante possible de l' invention représentée sur la figure 3, les étapes de calculs modulaires peuvent être remplacées par des opérations arithmétiques (multiplication ou réduction modulaires ) dites de Montgomery . La multiplication de Montgomery de deux entiers a et b modulo c retourne a*b*R mod c plutôt que a*b mod c, où R est une puissance connue de 2 modulo c . De même, une réduction de Montgomery d' un entier a modulo un entier c retourne a*R' mod c au lieu de a mod c, où R' est une puissance connue de 2 modulo c . L' avantage de telles opérations réside dans leur vitesse d' exécution en général supérieure à celle des opérations ordinaires équivalentes . Les opérations de Montgomery peuvent être utilisées pour réaliser le procédé de génération selon l' invention sans que celui-ci ne nécessite de modification . Un pré-requis est demandé afin que tous les paramètres TIi, ..., πL soient choisis impairs . Dans ce cas , les étapes de calculs qui comprennent des opérations de Montgomery retournent des valeurs différentes , ainsi : a) l' étape 40 effectue qi = q * Ri1 mod π± où Ri1 est une puissance de 2 modulo π± ; b) l' étape 50 effectue u± = qiλi (Ri2) λi = qiλi mod π± sans modification aucune pour la raison mathématique que (Ri2) 1 = 1 mod 7Ii du fait que Ri2 (une puissance de 2 ) et TIi sont premiers entre eux ; c) l' étape 80 effectue qi = qi + ( l-Ui) *z*Ri3 mod TIi où Ri3 est là encore une puissance connue de 2 moduloAccording to a possible variant of the invention shown in FIG. 3, the modular calculation steps can be replaced by Montgomery arithmetic operations (modular multiplication or reduction). The Montgomery multiplication of two integers a and b modulo c returns a * b * R mod c rather than a * b mod c, where R is a known power of 2 modulo c. Similarly, a Montgomery reduction of an integer modulo an integer c returns to * R 'mod c instead of a mod c, where R' is a known power of 2 modulo c. The advantage of such operations lies in their speed of execution in general greater than that of equivalent ordinary operations. Montgomery operations can be used to carry out the generation process according to the invention without the need for modification. A prerequisite is required so that all TIi, ..., π L parameters are chosen oddly. In this case, the calculation steps that comprise Montgomery operations return different values, thus: a) step 40 performs qi = q * Ri 1 mod π ± where Ri 1 is a power of 2 modulo π ± ; b) the step 50 performs u ± = qi λi (Ri 2 ) λi = qi λi mod π ± without any modification for the mathematical reason that (Ri 2 ) 1 = 1 mod 7Ii because Ri 2 (a power of 2 ) and TIi are prime between them; c) step 80 performs qi = qi + (l-Ui) * z * Ri 3 mod TIi where Ri 3 is again a known power of 2 modulo
JCi .JCi.
La présence des facteurs de Montgomery R1 1, R1 2 et Ri3 est mathématiquement sans importance vis-à-vis de l' issue du calcul, qui aboutit touj ours à une valeur de q relativement première aux premiers (pi, p2, ... , Pk) •The presence of the Montgomery factors R 1 1 , R 1 2 and Ri 3 is mathematically irrelevant to the outcome of the computation, which always results in a value of q relatively prime to the first (pi, p2, ..., Pk) •
II apparaîtra à l' homme de métier que la présente invention peut être mise en œuvre sous d' autres formes tout en adhérant à son esprit et à ses caractéristiques essentielles . Les exemples de mise en œuvre décrits précédemment sont donc considérés comme étant illustratifs et non limitatifs . La portée de l' invention est décrite plus précisément dans le cadre des revendications données ci-après . It will be apparent to those skilled in the art that the present invention may be embodied in other forms while adhering to its spirit and essential characteristics. The implementation examples described above are therefore considered to be illustrative and not limiting. The scope of the invention is described more specifically within the scope of the claims given below.

Claims

Revendications claims
1. Procédé cryptographique au cours duquel on génère un nombre final (qL) aléatoire et non divisible par un ensemble prédéterminé de nombres premiers (pi, P2, • • - , Pk) à partir d' un nombre aléatoire initial (qo) i caractérisé en ce qu ' on répète les étapes suivantes , de façon itérative pour i variant de 1 à L, L étant un nombre entier :A cryptographic method in which a random and non-divisible final number (q L ) is generated by a predetermined set of prime numbers (pi, P2, • • -, Pk) from an initial random number (qo) i characterized in that the following steps are repeated, iteratively for i ranging from 1 to L, where L is an integer:
Eli : générer un paramètre de rang i (7Ii) divisible par certains nombres premiers dudit ensemble prédéterminé et premier avec des paramètres de rangs inférieurs à i (TIi, ..., Tli-i) ,Eli: generating a parameter of rank i (7Ii) divisible by certain prime numbers of said predetermined set and first with parameters of ranks lower than i (TIi, ..., Tli-i),
E2i : réduire modulo le paramètre de rang i (7Ii) un nombre aléatoire de rang i-1 (qi-i) obtenu lors d' une itération précédente E3i : exécuter le procédé Pallier/Joye pour modifier le nombre aléatoire de rang i-1 réduit (qi-i mod 7Ii) et produire un nombre modifié (qim) relativement premier avec ledit paramètre de rang i (π±) ,E2i: modulo reduce the parameter of rank i (7Ii) a random number of rank i-1 (qi-i) obtained during a previous iteration E3i: execute the Pallier / Joye process to modify the random number of rank i-1 reduce (qi-i mod 7Ii) and produce a relatively modified number (qim) relatively prime with said parameter of rank i (π ± ),
E4i : soustraire au nombre modifié (qim) le nombre aléatoire de rang i-1 réduit (qj.m - qi-i mod 7Ii) ,E4i: subtracting the modified number (qim) the random number of rank i-1 reduced (qj m - qi-i mod 7II.)
E5i : multiplier le résultat de la soustraction par le produit (πi*...*7ti-i) des paramètres de rang 1 à i-1 E6i : aj outer le résultat de la multiplication au nombre aléatoire de rang i-1 (qi-i) pour obtenir un nombre aléatoire de rang i (qi) , le nombre aléatoire final étant le nombre aléatoire de rang L .E5i: multiply the result of the subtraction by the product (πi * ... * 7ti-i) of the parameters of rank 1 to i-1 E6i: add the result of the multiplication to the random number of rank i-1 (qi -i) to obtain a random number of rank i (qi), the final random number being the random number of rank L.
2. Procédé selon la revendication 1 dans lequel, au cours de l ' étape E3i, on réalise les sous-étapes suivantes , consistant à :2. Method according to claim 1 wherein, during step E3i, the following sub-steps are carried out, consisting of:
Ep1 : calculer λi = Λ (7li) , Λ étant une fonction de Carmichael, Eqi : initialiser qim à la valeur du nombre aléatoire de rang i-1 réduit (qi-i mod 7Ii) obtenu lors de l ' étape E2iEp 1 : calculate λi = Λ (7li), Λ being a function of Carmichael, Eqi: initialize q im to the value of the random number of reduced rank i-1 (qi-i mod 7Ii) obtained during step E2i
Er : calculer Ui = qim 1UiOd 7Ii Es : si Ui est égal à 1 , alors l ' étape E3i se termine,Er: calculate Ui = qi m 1 UiOd 7Ii Es: if Ui is equal to 1, then step E3i ends,
Et : si Ui est différent de 1 , tirer un nombre aléatoire z , calculer q' i = qim + z (1- Ui) mod 7Ii, et affecter à qim la valeur q' i Eu : répéter les étapes Er à Et, tant que Ui est différent de 1.And: if Ui is different from 1, draw a random number z, calculate q 'i = q im + z (1- Ui) mod 7Ii, and assign to qi m the value q' i Eu: repeat the steps Er to Et , as long as Ui is different from 1.
3. Procédé selon l ' une des revendications 1 à 2 , caractérisé en ce qu ' il comprend également une étape d' initialisation EO consistant à :3. Method according to one of claims 1 to 2, characterized in that it also comprises an initialization step EO consisting of:
- choisir un nombre L aléatoire,- choose a random L number,
- réaliser par avance l ' ensemble des étapes El1, pour tout i compris 1 à L, pour déterminer les paramètres (7Ii, ... , 7IL) de rang 1 à L tels que leur produit (7Ii* ... *7IL) soit un multiple du produit de tous les nombres premiers de l ' ensemble prédéterminé (pi*p2 ...*Pk) etperforming in advance all the steps El 1 , for all inclusive 1 to L, to determine the parameters (7Ii, ..., 7I L ) of rank 1 to L such that their product (7Ii * ... * 7I L ) is a multiple of the product of all prime numbers of the predetermined set (pi * p2 ... * Pk) and
- réaliser par avance l ' ensemble des étapes Ep1 pour i variant de 1 à L, pour calculer des paramètres de Carmichael associés (λi = Λ (7Ii) , ..., λL = Λ (πL) ) à tous les paramètres de rang i compris entre 1 et L,performing in advance the set of steps Ep 1 for i varying from 1 to L, to calculate associated Carmichael parameters (λi = Λ (7Ii), ..., λ L = Λ (π L )) at all parameters of rank i between 1 and L,
- mémoriser le nombre L, les paramètres de rang i (7Ei, .», 7EL) compris entre 1 et L et les paramètres de Carmichael λi, ..., λL) associés .- Store the number L, the parameters of rank i (7Ei,. ", 7E L ) between 1 and L and associated Carmichael parameters λi, ..., λ L ).
4. Procédé selon l ' une des revendications 1 à 3, caractérisé en ce que le nombre aléatoire initial (qo) est de taille binaire voisine de la taille du produit des paramètres de rang 1 à L (7Ei* ... *πL) • 4. Method according to one of claims 1 to 3, characterized in that the initial random number (qo) is of binary size close to the size of the product of the parameters of rank 1 to L (7Ei * ... * π L ) •
5. Procédé selon l' une des revendications 2 à 4 , caractérisé en ce que le nombre aléatoire z tiré à l' étape Et est de taille binaire voisine de la taille du produit des paramètres de rang 1 à L (πi* ... *πL) .5. Method according to one of claims 2 to 4, characterized in that the random number z drawn in step Et is of binary size close to the size of the product of the parameters of rank 1 to L (πi * ... * π L ).
6. Procédé selon l' une des revendications précédentes , caractérisé en ce que les opérations de multiplication ou de réduction modulaires sont remplacées par les opérations équivalentes dites de Montgomery .6. Method according to one of the preceding claims, characterized in that the modular multiplication or reduction operations are replaced by the so-called Montgomery equivalent operations.
7. Procédé selon l' une quelconque des revendications précédentes , dans lequel le nombre aléatoire final est de grande taille .7. A method according to any one of the preceding claims, wherein the final random number is large.
8. Procédé de génération de clés cryptographiques mettant en œuvre un procédé selon l ' une des revendications précédentes .8. A method of generating cryptographic keys implementing a method according to one of the preceding claims.
9. Dispositif électronique portable comprenant une unité principale de traitement (1 ) , au moins une mémoire de programme (3, 6) et une mémoire de travailPortable electronic device comprising a main processing unit (1), at least one program memory (3, 6) and a working memory
(4 ) associées à l' unité principale (1 ) , dans lequel la mémoire de programme mémorise un programme approprié pour la mise en œuvre d' un procédé selon l ' une des revendications 1 à 8.(4) associated with the main unit (1), wherein the program memory stores an appropriate program for carrying out a method according to one of claims 1 to 8.
10. Dispositif électronique portable selon la revendication 9, caractérisé en ce qu' il est constitué par une carte à puce à microprocesseur .10. Portable electronic device according to claim 9, characterized in that it is constituted by a microprocessor chip card.
11. Dispositif électronique portable selon la revendication 9 ou 10 , caractérisé en ce qu' il comporte un co-processeur arithmétique effectuant une partie ou la totalité des opérations de calcul afférentes . Portable electronic device according to claim 9 or 10, characterized in that it comprises an arithmetic co-processor performing some or all of the related calculation operations.
EP05825311A 2004-12-20 2005-12-20 Method for rapidly generating a random number that cannot be divided by a pre-determined set of prime numbers Withdrawn EP1832034A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0453101 2004-12-20
PCT/EP2005/056990 WO2006067157A2 (en) 2004-12-20 2005-12-20 Method for rapidly generating a random number that cannot be divided by a pre-determined set of prime numbers

Publications (1)

Publication Number Publication Date
EP1832034A2 true EP1832034A2 (en) 2007-09-12

Family

ID=34954154

Family Applications (1)

Application Number Title Priority Date Filing Date
EP05825311A Withdrawn EP1832034A2 (en) 2004-12-20 2005-12-20 Method for rapidly generating a random number that cannot be divided by a pre-determined set of prime numbers

Country Status (2)

Country Link
EP (1) EP1832034A2 (en)
WO (1) WO2006067157A2 (en)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
W. RANKL ET AL.: "Smart Card Handbook, third edition", 2003, JOHN WILEY & SONS, LTD, Chichester, UK, ISBN: 0470856688, pages: 20 - 21, 348760 *

Also Published As

Publication number Publication date
WO2006067157A2 (en) 2006-06-29

Similar Documents

Publication Publication Date Title
EP2791783B1 (en) Method for generating prime numbers proven suitable for chip cards
WO2009092903A2 (en) Method and devices for protecting a microcircuit from attacks for obtaining secret data
WO2007074149A1 (en) Cryptographic method comprising a modular exponentiation secured against hidden-channel attacks, cryptoprocessor for implementing the method and associated chip card
EP2248008A2 (en) Countermeasure method and devices for asymmetrical cryptography with signature diagram
WO2009112686A2 (en) Countermeasure method and devices for asymmetric cryptography
EP2296086A1 (en) Protection of prime number generation against side-channel attacks
EP1368747A1 (en) Method and device for reducing the time required to perform a product, multiplication and modular exponentiation calculation using the montgomery method
WO2007116171A2 (en) Method and device for generating a pseudorandom string
EP1419610B1 (en) Method of producing a cryptographic unit for an asymmetric cryptographic system using a discrete logarithm function
FR2888690A1 (en) CRYPTOGRAPHIC PROCESS FOR THE SECURE IMPLEMENTATION OF AN EXPONENTIATION AND ASSOCIATED COMPONENT
EP1493078B8 (en) Cryptographic method protected against side channel attacks
CA2257907A1 (en) Public key cryptography method
EP3457626B1 (en) Cryptographic method on binary edwards elliptic curves
EP1832034A2 (en) Method for rapidly generating a random number that cannot be divided by a pre-determined set of prime numbers
EP1302021A1 (en) Method for generating an electronic key from a prime number contained in a specific interval and device therefor
FR2984549A1 (en) Cryptographic key generating method for e.g. integrated circuit of chip card, involves keeping generated candidate prime number as candidate prime number only if quotient calculated from integer division of integer by prime number is odd
FR2984550A1 (en) Cryptographic key generating method for e.g. integrated circuit of chip card, involves keeping generated candidate prime number as candidate prime number only if quotient calculated from integer division of integer by prime number is odd
FR2984548A1 (en) Cryptographic key generating method for e.g. integrated circuit of chip card, involves keeping generated candidate prime number as candidate prime number only if quotient calculated from integer division of integer by prime number is odd
WO2005069122A2 (en) Method for modular exponentiation, protected against dpa-type attacks
FR2984547A1 (en) Cryptographic key generating method for e.g. integrated circuit of chip card, involves keeping generated candidate prime number as candidate prime number only if quotient calculated from integer division of integer by prime number is odd
FR2986884A1 (en) SECURE NUMBER FIRST GENERATION METHOD, COMPUTER PROGRAM PRODUCT AND CORRESPONDING ELECTRONIC COMPONENT
FR2821945A1 (en) Method for protecting cryptographic procedures against attacks through current and electromagnetic radiation measurements, comprises random selection of second group isomorphic to first group
FR3045253A1 (en) METHOD AND DEVICE FOR CRYPTOGRAPHIC PROCESSING
WO2003010921A1 (en) Method for generating electronic keys for implementing a cryptographic algorithm, smart card therefor
WO2003041337A1 (en) Method of producing a cryptography parameter

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

AK Designated contracting states

Kind code of ref document: A2

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

AX Request for extension of the european patent

Extension state: AL BA HR MK YU

DAX Request for extension of the european patent (deleted)
RIN1 Information on inventor provided before grant (corrected)

Inventor name: PAILLIER, PASCAL

Inventor name: JOYE, MARC

R17D Deferred search report published (corrected)

Effective date: 20060629

17P Request for examination filed

Effective date: 20070720

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: GEMALTO SA

RBV Designated contracting states (corrected)

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

17Q First examination report despatched

Effective date: 20100218

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: 20100831