热词 | de un est nombres aléatoire la le nombre et premiers | ||
专利类型 | 发明公开 | 法律事件 | |
专利有效性 | 无效专利 | 当前状态 | |
申请号 | EP05825311.3 | 申请日 | 2005-12-20 |
公开(公告)号 | EP1832034A2 | 公开(公告)日 | 2007-09-12 |
申请人 | GEMPLUS; | 申请人类型 | 其他 |
发明人 | JOYE, Marc; PAILLIER, Pascal; | 第一发明人 | JOYE, Marc |
权利人 | GEMPLUS | 权利人类型 | 其他 |
当前权利人 | GEMPLUS | 当前权利人类型 | 其他 |
省份 | 当前专利权人所在省份: | 城市 | 当前专利权人所在城市: |
具体地址 | 当前专利权人所在详细地址:Avenue du Pic de Bertagne, Parc d'Activités de Gémenos 13420 Gémenos FR | 邮编 | 当前专利权人邮编: |
主IPC国际分类 | H04L9/00 | 所有IPC国际分类 | H04L9/00 ; G06F7/58 |
专利引用数量 | 0 | 专利被引用数量 | 0 |
专利权利要求数量 | 0 | 专利文献类型 | A2 |
专利代理机构 | 专利代理人 | ||
权利要求 | Revendications 1. Procédé cryptographique au cours duquel on génère un nombre final (q L ) 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 à : Ep 1 : calculer λi = Λ (7li) , Λ étant une fonction de Carmichael, Eqi : initialiser q im à 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 = qi m 1 UiOd 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 = q im + z (1- Ui) mod 7Ii, et affecter à qi m 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 El 1 , pour tout i compris 1 à L, pour déterminer les paramètres (7Ii, ... , 7I L ) de rang 1 à L tels que leur produit (7Ii* ... *7I 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 Ep 1 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, .», 7E L ) 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 . |
||
说明书全文 | 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 qn' est divisible par aucun petit premier (pi, p 2 , ... , 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 q f = q + z (1-u) mod π, et affecter à q la valeur q f 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 (q L ) 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 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-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*...*p L 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 q im à 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 = qi m 'mod 7Ii Es : si Ui est égal à 1 , alors qi m 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 = q im + z (1-Ui) mod π ± , et affecter à qi m 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 EP 1 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 q im ° = q im = q ^ i mod I 1 ; b . Calculer U 1 = q im 1 mod π lf ' c . Si U 1 =I aller à l' étape 4. g; d. Tirer un nombre aléatoire z ; e . Calculer q 1 ± = q im + (1-U 1 ) *z mod 7I 1 et affecter q f ! à q im f . Aller à l' étape 4. b; g . Calculer q = q + π* (q im -q im ° mod I 1 ) ; h . Calculer π = π * TC 1 ; 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 x A y 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) , ..., Λ (p s δ s) ) dans laquelle PPCM désigne le plus petit commun multiple et x= pi δl *...* p s δ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, p 2 , ... , 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*p 2 * ... *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 qi 0 à 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-qi 0 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 * Ri 1 mod π ± où Ri 1 est une puissance de 2 modulo π ± ; b) l' étape 50 effectue u ± = qi λi (Ri 2 ) λi = qi λi mod π ± sans modification aucune pour la raison mathématique que (Ri 2 ) 1 = 1 mod 7Ii du fait que Ri 2 (une puissance de 2 ) et TIi sont premiers entre eux ; c) l' étape 80 effectue qi = qi + ( l-Ui) *z*Ri 3 mod TIi où Ri 3 est là encore une puissance connue de 2 modulo JCi . La présence des facteurs de Montgomery R 1 1 , R 1 2 et Ri 3 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 . |