EP1832034A2 - Procede de generation rapide d'un nombre aleatoire non divisible par un ensemble predetermine de nombres premiers - Google Patents

Procede de generation rapide d'un nombre aleatoire non divisible par un ensemble predetermine de nombres premiers

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)
English (en)
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/fr
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 .
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é .
Un avantage décisif de l' invention réside dans sa très grande rapidité par comparaison avec les techniques similaires précédentes .
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 .
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 π .
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 .
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 .
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é .
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,
Eq : initialiser q à qO Er : calculer u = q mod π
Es : si u est égal à 1 , alors q est premier avec p et le procédé se termine,
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
Eu : répéter les étapes Er à Et, tant que u est différent de 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 .
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 .
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 :
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) ,
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 (π±) , 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) ,
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-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 .
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 .
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é .
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.
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 à :
Epi : calculer λi = Λ (7Ii) , Λ étant la 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 E2i
Er : calculer Ui = qim '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' i
Eui : répéter les étapes Er à Et, tant que Ui est différent de 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,
- 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
- 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,
- 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é) .
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 :
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;
3. Initialiser π = 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;
5. Calculer q = q mod π;
6. Retourner 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 .
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 .
Avantageusement, le dispositif électronique portable est constitué par une carte à puce à microprocesseur pouvant inclure un co-processeur arithmétique .
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 :
- 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,
- la figure 2 représente le schéma d' un exemple de réalisation de la mise en œuvre du procédé selon
1' 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 .
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 .
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 .
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.
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 suivante
Λ (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.
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 .
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.
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.
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.
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.
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 π = π *
A l' étape 110 , l' entier q est réduit modulo π selon q = q mod π puis est retourné à l' étape 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 .
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 modulo
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) •
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 .

Claims

Revendications
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 :
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) ,
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 (π±) ,
E4i : soustraire au nombre modifié (qim) le nombre aléatoire de rang i-1 réduit (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 .
2. Procédé selon la revendication 1 dans lequel, au cours de l ' étape E3i, on réalise les sous-étapes suivantes , consistant à :
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 E2i
Er : calculer Ui = qim 1UiOd 7Ii Es : si Ui est égal à 1 , alors 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 7Ii, et affecter à qim la valeur q' i Eu : répéter les étapes Er à Et, tant que Ui est différent de 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 à :
- choisir un nombre L aléatoire,
- 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) et
- 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,
- 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 .
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) •
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) .
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 .
7. Procédé selon l' une quelconque des revendications précédentes , dans lequel le nombre aléatoire final est de grande taille .
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 .
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 travail
(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.
10. Dispositif électronique portable selon la revendication 9, caractérisé en ce qu' il est constitué par une carte à puce à microprocesseur .
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 .
EP05825311A 2004-12-20 2005-12-20 Procede de generation rapide d'un nombre aleatoire non divisible par un ensemble predetermine de nombres premiers Withdrawn EP1832034A2 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0453101 2004-12-20
PCT/EP2005/056990 WO2006067157A2 (fr) 2004-12-20 2005-12-20 Procede de generation rapide d'un nombre aleatoire non divisible par un ensemble predetermine de nombres premiers

Publications (1)

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

Family

ID=34954154

Family Applications (1)

Application Number Title Priority Date Filing Date
EP05825311A Withdrawn EP1832034A2 (fr) 2004-12-20 2005-12-20 Procede de generation rapide d'un nombre aleatoire non divisible par un ensemble predetermine de nombres premiers

Country Status (2)

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

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 (fr) 2006-06-29

Similar Documents

Publication Publication Date Title
EP2791783B1 (fr) Procédé de génération de nombres premiers prouvés adapté aux cartes a puce
FR2923305A1 (fr) Procede et dispositifs de protection d&#39;un microcircuit contre des attaques visant a decouvrir une donnee secrete
EP2296086B1 (fr) Protection d&#39;une génération de nombres premiers contre des attaques par canaux cachés
WO2007074149A1 (fr) Procédé cryptographique comprenant une exponentiation modulaire sécurisée contre les attaques à canaux cachés, cryptoprocesseur pour la mise en oeuvre du procédé et carte à puce associée
EP2248008A2 (fr) Procede et dispositifs de contre-mesure pour cryptographie asymetrique a schema de signature
WO2009112686A2 (fr) Procede et dispositifs de contre-mesure pour cryptographie asymetrique
EP1368747A1 (fr) Procede et dispositif pour reduire le temps de calcul d&#39;un produit, d&#39;une multiplication et d&#39;une exponentiation modulaire selon la methode de montgomery
WO2007116171A2 (fr) Procede et dispositif pour engendrer une suite pseudo-aleatoire
EP1419610B1 (fr) Procede de realisation d&#39;une unite cryptographique pour un systeme de cryptographie asymetrique utilisant une fonction logarithme discret
FR2888690A1 (fr) Procede cryptographique pour la mise en oeuvre securisee d&#39;une exponentiation et composant associe
EP1895404A1 (fr) Brouillage d&#39;un calcul effectué selon un algorithme RSA-CRT
WO2006067157A2 (fr) Procede de generation rapide d&#39;un nombre aleatoire non divisible par un ensemble predetermine de nombres premiers
EP1302021A1 (fr) Procede de generation d&#39;une cle electronique a partir d&#39;un nombre premier compris dans un intervalle determine et dispositif de mise en oeuvre du procede
WO2004006497A1 (fr) Procede et dispositifs cryptographiques permettant d&#39;alleger les calculs au cours de transactions
FR2984549A1 (fr) Procede de generation de nombres premiers prouves adapte aux cartes a puce
FR2984550A1 (fr) Procede de generation de nombres premiers prouves adapte aux cartes a puce
FR2984548A1 (fr) Procede de generation de nombres premiers prouves adapte aux cartes a puce
WO2005069122A2 (fr) Procede cryptographique d&#39;exponentiation modulaire protege contre les attaques de type dpa
FR2984547A1 (fr) Procede de generation de nombres premiers prouves adapte aux cartes a puce
FR2986884A1 (fr) Procede de generation securise d&#39;un nombre premier, produit programme d&#39;ordinateur et composant electronique correspondants
FR2821945A1 (fr) Procede de protection contre les attaques par mesure de courant ou de rayonnement electromagnetique
FR3045253A1 (fr) Procede et dispositif de traitement cryptographique
FR2837335A1 (fr) Procede et systeme cryptographiques
WO2003010921A1 (fr) Procede de generation de cles electroniques pour la mise en oeuvre d&#39;un algorithme cryptographique, carte a puce mettant en oeuvre le procede
WO2003041337A1 (fr) Procede d&#39;elaboration d&#39;un parametre de cryptographie

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