EP1302021A1 - Method for generating an electronic key from a prime number contained in a specific interval and device therefor - Google Patents

Method for generating an electronic key from a prime number contained in a specific interval and device therefor

Info

Publication number
EP1302021A1
EP1302021A1 EP01947562A EP01947562A EP1302021A1 EP 1302021 A1 EP1302021 A1 EP 1302021A1 EP 01947562 A EP01947562 A EP 01947562A EP 01947562 A EP01947562 A EP 01947562A EP 1302021 A1 EP1302021 A1 EP 1302021A1
Authority
EP
European Patent Office
Prior art keywords
prime
primality
integers
positive integers
calculation
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
EP01947562A
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.)
Gemplus SA
Original Assignee
Gemplus Card International SA
Gemplus SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gemplus Card International SA, Gemplus SA filed Critical Gemplus Card International SA
Publication of EP1302021A1 publication Critical patent/EP1302021A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3033Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Definitions

  • the invention relates to a method for generating an electronic key from a prime number q comprised in a determined interval of positive integers [w m , w M ].
  • the invention also relates to a
  • the invention applies very particularly to. key, public cryptography protocols used for information encryption and / or authentication between two entities and / or electronic signature of messages.
  • a first so-called “naive" method of generating a prime number consists in: choosing a candidate from among the odd numbers, testing its primality, • if the primality is' verified, this number is stored, otherwise ,. we update the candidate in
  • the object of the invention is, given the interval [w ra , w M ], to determine El once and for all and to propose an update of the candidate guaranteeing that the new candidate will be first with El in the interval initially determined while keeping the calculation time of these new candidates within reasonable limits, that is to say by limiting the number of primality tests.
  • FIG. 1 The choice of El is illustrated by FIG. 1 where the set I of the integers included in an interval [ m , w M ] is represented, in which is included the set IEI of the integers of this prime interval with El, in which is includes the IP set of prime numbers in this range.
  • the goal is to determine ET so that ' the intermediate set IEI of prime integers with E, i.e. the set of candidates, is as close as possible to the subset IP of prime numbers of the interval.
  • a 2 16 + 1.
  • the invention applies to methods of generating cryptographic keys RSA, El Gamal, Schnorr, or. Fiat Shamir.
  • the arithmetic processor stores q,
  • the portable electronic device consists of a microprocessor smart card.
  • FIG. 1 represents the set I of the integers included in an interval [ w m , w M ], the set IEI of the integers of this prime interval between them and finally the set IP of the prime numbers of this interval
  • FIG. 2 represents the flow diagram of the method according to the invention
  • FIG. 3 represents the block diagram of a portable electronic device such as a smart card implementing the method according to the invention.
  • the object of the invention therefore consists first of all in determining El so that the set IEI of the prime integers with- El shown in FIG. 1 is as close as possible to the subset IP of the prime numbers of the interval.
  • step I to generate a prime number q such that q € [ m , w M ], a number ⁇ of the same form as II is chosen ( ⁇ is the product of the k 'first prime numbers) where k' is maximum and such that there are two whole numbers positive ⁇ m and ⁇ M such that ⁇ m is the upper rounding of W m / ⁇ , which we denote by G w m / ⁇ D and ⁇ M is the lower rounding of (w M -w m ) / ⁇ which we denote by D (w M -w m ) / ⁇ D.
  • the new candidate belongs to the IEI set: in fact, due to the properties of the multiplicative groups, a and c belonging to Z * ⁇ , the product ac also belongs to this group Z * ⁇ as well as ac mod El.
  • Public key cryptography protocols are often implemented on microprocessor smart cards.
  • the keys are generated from numbers chosen randomly by the microprocessor card to
  • FIG. 3 therefore represents the functional diagram of a microprocessor card capable of implementing the method according to the invention.
  • Card C includes a main processing unit 1, program memories 3 and 4 and a working memory (not shown), associated with unit 1.
  • the card also includes an arithmetic processor 2 capable of performing modular calculations and a secure memory 6 (not accessible from the outside) in which the candidate will be stored . q whose primality has been verified.
  • the card has also a generator of random integers 5.
  • the method according to the invention has been implemented on a SLE66CX160S smart card platform. from Infineon including an 8-bit central unit and an 1100-bit arithmetic cryptoprocessor.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)

Abstract

The invention concerns a method for generating an electronic key from a prime number q contained in a specific interval of positive integers (Wm, WM). Said method comprises the following operations: a) selecting a positive integer θ, θ being the product of the k first prime numbers, with k as maximum so that there exist two positive integers εm and εM such that εm is the higher roundoff of Wm/θ, and εM is the lower roundoff of (WM-Wm)/θ, calculating Π = εM. θ and ς = εm.θ, generating two positive integers a and c belonging to the multiplicative group Z*Π of integers modulo Π, with prime c with Π, calculating q = c + ς; b) testing primality nature of q; c) if primality is verified, q is stored; d) otherwise: updating c by calculating a.c mod Π, repeating the preceding operations as from b) with the new value q = c+ς. The invention is applicable to cryptography.

Description

PROCEDE DE GENERATION D'UNE CLE ELECTRONIQUE A PARTIR D'UN NOMBRE PREMIER COMPRIS DANS UN INTERVALLE DETERMINE ET DISPOSITIF DE MISE EN OEUVRE DU PROCEDE METHOD FOR GENERATING AN ELECTRONIC KEY FROM A FIRST NUMBER INCLUDED IN A DETERMINED INTERVAL AND DEVICE FOR IMPLEMENTING THE METHOD
L'invention concerne un procédé de génération d'une clé électronique à partir d'un nombre premier q compris dans un intervalle de nombres entiers positifs déterminé [wm,wM]. L'invention concerne également unThe invention relates to a method for generating an electronic key from a prime number q comprised in a determined interval of positive integers [w m , w M ]. The invention also relates to a
5 dispositif de mise en œuvre du procédé.5 device for implementing the process.
L'invention s'applique tout particulièrement à des. protocoles de cryptographie à clé, publique utilisés pour le cryptage d'informations et/ou , l'authentification entre deux entités et/ou la 10 signature électronique de messages.The invention applies very particularly to. key, public cryptography protocols used for information encryption and / or authentication between two entities and / or electronic signature of messages.
Elle s'applique en particulier à des protocoles de cryptographie à clé publique tels que le protocole RSA' (Rivest Shamir et Adelman) , El Gamal, Schnorr, ou Fiat Shamir. 15 Dans le cas de telles applications, on fait appel à la génération de grands nombres premiers (pouvant être par exemple supérieurs ou égaux à 512 bits) pour former une ou plusieurs clés du protocole.It applies in particular to public key cryptography protocols such as the RSA ' protocol (Rivest Shamir and Adelman), El Gamal, Schnorr, or Fiat Shamir. In the case of such applications, the generation of large prime numbers (which may for example be greater than or equal to 512 bits) is used to form one or more keys of the protocol.
Une première méthode dite "naïve" de génération de 20 nombre premier consiste à : choisir un candidat parmi les nombres impairs, tester sa primalité, si la primalité est ' vérifiée, on mémorise ce nombre, sinon,. on met à jour le candidat enA first so-called "naive" method of generating a prime number consists in: choosing a candidate from among the odd numbers, testing its primality, if the primality is' verified, this number is stored, otherwise ,. we update the candidate in
25 1 ' incrémentant de 2, on réitère le test avec ce nouveau candidat et ainsi de suite jusqu'à ce que la primalité d'un candidat soit vérifiée. Cette méthode est très lente. Une autre méthode consiste à choisirj les candidats au test de primalité parmi les nombres premiers avec un nombre premier EL On rappelle que deux nombres sont premiers entre eux ou co-premiers si et seulement si leur plus grand commun diviseur (pgcd) est égal à 1. Cette autre méthode consiste à :25 incrementing by 2, the test is repeated with this new candidate and so on until the primality of a candidate is verified. This method is very slow. Another method is to choose j candidates for primality testing among prime numbers with a prime number EL is recalled that two numbers are prime to each other or co-first if and only if the greatest common divisor (gcd) is equal to 1. This other method consists in:
- considérer le nombre El = 2.3.5.7.... qui est- le produit des k premiers nombres premiers (souvent k = 4) et à choisir un nombre p tel que p- soit premier avec Et,- consider the number El = 2.3.5.7 .... which is- the product of the first k prime numbers (often k = 4) and choose a number p such that p- is prime with Et,
- tester la primalité de p,- test the primality of p,
- si la primalité de p est vérifiée, on mémorise ce nombre, sinon on met à jour p en 1 ' incré entant de EL Ce nouveau candidat p est également premier avec Et ; en effet, on rappelle que pgcd(p+π, ri) = pgcd(p, El) = 1- if the primality of p is verified, this number is memorized, otherwise we update p in 1 'increment of EL This new candidate p is also prime with Et; indeed, we recall that pgcd (p + π, ri) = pgcd (p, El) = 1
- on réitère le test avec ce nouveau candidat et ainsi de suite jusqu'à ce que l'on ait trouvé un candidat qui soit un nombre premier. Cette méthode est plus efficace.- we repeat the test with this new candidate and so on until we have found a candidate that is a prime number. This method is more effective.
Mais on' souhaite en' général générer un nombre premier dans un intervalle déterminé. En effet, dans le cas par exemple du protocole de cryptographie à clé publique RSA, on considère le produit de 1024 bits de deux nombres premiers p et q, c'est-à-dire 2511.V2<p, q<2512. Selon un' autre protocole basé sur le logarithme discret, on cherche directement à obtenir un nombre premier de 1024 bits, c'est-à-dire 21023<p<=2102. Ces protocoles s'avèrent difficiles à, programmer sur des dispositifs portables de type carte à microprocesseur (car complexes) et de performances médiocres pour des "nombres de grandes tailles usuelles, 512 bits, 1024 bits voire plus.But 'wishes in general generate a first number in a certain range. Indeed, in the case for example of the RSA public key cryptography protocol, we consider the product of 1024 bits of two prime numbers p and q, that is to say 2,511 .V2 <p, q < 2,512 . According to another protocol based on the discrete logarithm, one seeks directly to obtain a prime number of 1024 bits, that is to say 2 1023 <p <= 2 102 . These protocols prove to be difficult to program on portable devices such as microprocessor (because complex) and poor performance for "usual large numbers, 512 bits, 1024 bits or more.
L'invention a pour but, étant donné l'intervalle [wra,wM], de déterminer El une fois pour toutes et -de proposer une mise à jour du candidat garantissant que le nouveau candidat sera premier avec El dans l'intervalle déterminé initialement tout en maintenant le temps de calcul de ces nouveaux candidats dans des limites raisonnables, c'est-à-dire en limitant le nombre de tests de primalité.The object of the invention is, given the interval [w ra , w M ], to determine El once and for all and to propose an update of the candidate guaranteeing that the new candidate will be first with El in the interval initially determined while keeping the calculation time of these new candidates within reasonable limits, that is to say by limiting the number of primality tests.
Le choix de El est illustré par la figure 1 où sont représentés l'ensemble I des entiers compris dans un intervalle [ m,wM], dans lequel est inclus l'ensemble IEI des entiers de cet intervalle premiers avec El, dans lequel est inclus l'ensemble IP des nombres premiers de cet intervalle. Le but consiste- à déterminer ET de façon à ce que ' l'ensemble intermédiaire IEI des entiers premiers avec E, c'est-à-dire l'ensemble des candidats, soit le plus proche possible du sous-ensemble IP des nombres premiers de l'intervalle.The choice of El is illustrated by FIG. 1 where the set I of the integers included in an interval [ m , w M ] is represented, in which is included the set IEI of the integers of this prime interval with El, in which is includes the IP set of prime numbers in this range. The goal is to determine ET so that ' the intermediate set IEI of prime integers with E, i.e. the set of candidates, is as close as possible to the subset IP of prime numbers of the interval.
L'invention a plus • particulièrement pour objet un procédé de génération d'une clé électronique à partir d'un nombre premier q compris dans un intervalle de nombres entiers positifs déterminé [wm,wM], principalement caractérisé en ce que le nombre premier q est obtenu en réalisant les opérations suivantes : a) choix d'un nombre entier positif η, η étant le produit des k premiers nombres premiers, avec k maximum pour qu'il existe deux nombres entiers positifs εm et εM tels que εm est l'arrondi supérieur de wm/η, et εM est l'arrondi inférieur de (wM-wm)/η, calcul de El = εM.η et p = εm.η, génération de deux nombres entiers positifs a et c appartenant au groupe multiplicatif Z* π des nombres entiers modulo El, avec c premier avec El calcul de q = c + pThe invention more particularly relates to a method of generating an electronic key from a prime number q included in a range of positive integers determined [w m , w M ], mainly characterized in that the number first q is obtained by performing the following operations: a) choice of a positive integer η, η being the product of the first k prime numbers, with k maximum so that there are two positive integers ε m and ε M such that ε m is the upper rounding of w m / η, and ε M is the lower rounding of (w M -w m ) / η, calculation of El = ε M .η and p = ε m .η, generation of two positive integers a and c belonging to the group multiplicative Z * π of integers modulo El, with c prime with El calculation of q = c + p
b) test de la primalité de q,b) test of the primality of q,
c) dans le cas où la primalité est vérifiée, on mémorise q,c) in the case where the primality is verified, q is stored,
d) dans le cas contraire : on met à jour c en calculant a.c mod ET, on réitère les opérations précédentes à partir de b) avec la nouvelle valeur q = c+p.d) in the opposite case: we update c by calculating a.c mod ET, we repeat the previous operations from b) with the new value q = c + p.
Selon une caractéristique de l'invention, a = 2 et El = (εM-1 ) . η .According to a characteristic of the invention, a = 2 and El = (ε M -1). η.
Selon une autre caractéristique, a = 216 + 1. L'invention s'applique aux procédés de génération de clés cryptographiques RSA, El Gamal, Schnorr, ou . Fiat Shamir.According to another characteristic, a = 2 16 + 1. The invention applies to methods of generating cryptographic keys RSA, El Gamal, Schnorr, or. Fiat Shamir.
L'invention a également pour objet un dispositif électronique portable ' comprenant un processeur arithmétique et une mémoire de programme associée, apte à effectuer des "calculs modulaires, principalement caractérisé en ce qu' il comprend un programme de vérification de primalité d'un nombre entier positif q compris dans un intervalle de nombres entiers positifs déterminé [wm,wM] qui effectue les -opérations suivantes : a) choix d'un nombre entier positif η, η étant le produit des k premiers nombres premiers, avec k maximum -pour qu'il existe- deux nombres entiers positifs εm et εM tels que εm est l'arrondi supérieur de wm/η, et εM est l'arrondi inférieur de (wM-wm)/η, calcul de El = εM.η et p - εm.η, génération de deux nombres entiers positifs a et c appartenant au groupe multiplicatif Z*π des nombres entiers modulo ET, avec c premier avec El calcul de q = c + pThe invention also relates to a portable electronic device ' comprising a processor arithmetic and an associated program memory, capable of performing "modular calculations, mainly characterized in that it comprises a program for checking the primality of a positive integer q included in a determined interval of positive integers [w m , w M ] which performs the following operations: a) choice of a positive integer η, η being the product of the first k prime numbers, with k maximum -for there to exist- two positive integers ε m and ε M such that ε m is the upper rounding of w m / η, and ε M is the lower rounding of (w M -w m ) / η, calculation of El = ε M .η and p - ε m .η, generation of two positive integers a and c belonging to the multiplicative group Z * π of integers modulo ET, with c prime with El calculation of q = c + p
b) test de la primalité de q,b) test of the primality of q,
c) dans le cas où la primalité est vérifiée, le processeur arithmétique stocke q,c) in the case where the primality is verified, the arithmetic processor stores q,
d) dans le cas contraire : mise à jour de c par le calcul de a.c mod El, le processeur arithmétique réitère les opérations précédentes à partir de b) avec q = c+p. Avantageusement, le dispositif électronique portable est constitué par une carte à puce à microprocesseur .d) in the opposite case: update of c by the calculation of ac mod El, the arithmetic processor repeats the preceding operations from b) with q = c + p. Advantageously, the portable electronic device consists of a microprocessor smart card.
D'autres particularités et avantages de l'invention apparaîtront clairement à la lecture de la description faite à titre d'exemple non limitatif et en regard des dessins annexés sur lesquels : la figure 1 représente l'ensemble I des entiers compris dans un intervalle [wm,wM], l'ensemble IEI des entiers de cet intervalle premiers entre eux et enfin l'ensemble IP des nombres premiers de cet intervalle, la figure 2 représente l'organigramme du procédé selon l'invention, la figure 3 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.Other particularities and advantages of the invention will appear clearly on reading the description given by way of nonlimiting example and with reference to the appended drawings in which: FIG. 1 represents the set I of the integers included in an interval [ w m , w M ], the set IEI of the integers of this prime interval between them and finally the set IP of the prime numbers of this interval, FIG. 2 represents the flow diagram of the method according to the invention, FIG. 3 represents the block diagram of a portable electronic device such as a smart card implementing the method according to the invention.
Le but- de l'invention consiste donc dans un premier temps à déterminer El de façon à ce que l'ensemble IEI des entiers premiers avec- El représenté figure 1 soit le plus proche possible du sous-ensemble IP des nombres premiers de l'intervalle.The object of the invention therefore consists first of all in determining El so that the set IEI of the prime integers with- El shown in FIG. 1 is as close as possible to the subset IP of the prime numbers of the interval.
Selon l'invention, le procédé représenté figure 2 est initialisé de la manière suivante, (étape I) : pour générer un nombre premier q tel que q € [ m, wM] , on choisit un nombre η de la même forme que II (η est le produit des k' premiers nombres premiers) où k' est maximum et tel qu'il existe deux nombres entiers positifs εm et εM tels que εm est l'arrondi supérieur de Wm/η, que l'on note G wm/η D et εM est l'arrondi -inférieur de (wM-wm) /η que l'on note D (wM-wm) /η D .According to the invention, the method represented in FIG. 2 is initialized in the following manner, (step I): to generate a prime number q such that q € [ m , w M ], a number η of the same form as II is chosen (η is the product of the k 'first prime numbers) where k' is maximum and such that there are two whole numbers positive ε m and ε M such that ε m is the upper rounding of W m / η, which we denote by G w m / η D and ε M is the lower rounding of (w M -w m ) / η which we denote by D (w M -w m ) / η D.
El est alors obtenu en posant II = εM.η ; on pose également p = εmEl is then obtained by setting II = ε M .η; we also set p = ε m
On remarque que L est proche de wM-wm mais inférieur et que p est proche de m mais supérieur.We notice that L is close to w M -w m but lower and that p is close to m but higher.
Il faut à présent déterminer la mise à jour des candidats de- façon à ce que les nouveaux candidats appartiennent toujours à IEI.It is now necessary to determine the update of the candidates so that the new candidates always belong to IEI.
On considère l'anneau Zπ des entiers odulo El etWe consider the ring Zπ of the odulo integers El and
Z*π le groupe multiplicatif de Zπ ; on remarque que l'ensemble (p + Z*π) est inclus dans et quasiment "identique à IEI, c'est-à-dire à l'ensemble des candidats.Z * π the multiplicative group of Zπ; we notice that the set (p + Z * π) is included in and almost " identical to IEI, that is to say to the set of candidates.
On génère alors deux nombres entiers positifs a et c appartenant à ce groupe multiplicatif Z*π avec c premier avec El (c'est-à-dire pgcd(c, " EI)=1) et on considère le candidat q = c + p (étape I) . Pour générer c, on utilise un algorithme de génération de nombres co-premiers tel qu'il en existe dans la littérature.We then generate two positive integers a and c belonging to this multiplicative group Z * π with c prime with El (that is to say pgcd (c, " EI) = 1) and we consider the candidate q = c + p (step I) To generate c, we use a co-prime number generation algorithm such as exists in the literature.
Comme p est proche de wm et que c<EI , on vérifie automatiquement que wm<q<wM . Par ailleurs, pgcd(q,II)= pgcd (c+p, El) = pgcd(c, El) =1Since p is close to w m and c <EI, we automatically check that w m <q <w M. Furthermore, pgcd (q, II) = pgcd (c + p, El) = pgcd (c, El) = 1
On vérifie ainsi que q appartient effectivement à IEI. Cette phase d'initialisation terminée, on teste la primalité du candidat q (étape II) . Si elle est vérifiée, on mémorise q, sinon : on met à jour c en calculant a.c mod El et on calcule le nouveau candidat q = c + p (étape III).We thus verify that q actually belongs to IEI. This initialization phase completed, the primality of the candidate q is tested (step II). If it is verified, q is stored, otherwise: c is updated by calculating ac mod El and the new candidate q = c + p is calculated (step III).
Le nouveau candidat appartient à l'ensemble IEI : en effet, en raison des propriétés des groupes multiplicatifs, a et c appartenant à Z*π, le produit a.c appartient aussi à ce groupe Z*π ainsi que a.c mod El.The new candidate belongs to the IEI set: in fact, due to the properties of the multiplicative groups, a and c belonging to Z * π, the product ac also belongs to this group Z * π as well as ac mod El.
Les protocoles de cryptographie à clé publique sont souvent mis -en œuvre sur des cartes à puce à microprocesseur. Par exemple, dans le protocole RSA, les clés sont générées à partir de nombres choisis de manière aléatoire par la carte à microprocesseur àPublic key cryptography protocols are often implemented on microprocessor smart cards. For example, in the RSA protocol, the keys are generated from numbers chosen randomly by the microprocessor card to
- l'exécution du protocole. A cette fin, la carte à microprocesseur possède un générateur- de nombres aléatoires, capable de fournir un nombre entier de la taille désirée. On a donc représenté sur la figure 3 le schéma fonctionnel d'une carte à microprocesseur susceptible de mettre en œuvre le procédé selon l'invention.- the execution of the protocol. To this end, the microprocessor card has a random number generator capable of providing an integer of the desired size. FIG. 3 therefore represents the functional diagram of a microprocessor card capable of implementing the method according to the invention.
La carte C comporte une unité principale de traitement 1, des mémoires de programmes 3 et 4 et une mémoire de travail (non représentée) , associées à l'unité 1. La carte comporte également un processeur arithmétique 2 capable d'effectuer des calculs modulaires et une mémoire sécurisée 6 (non accessible de l'extérieur) dans laquelle sera stockée le candidat .q dont la primalité aura été vérifiée. La carte possède également un générateur de nombres entiers aléatoires 5.Card C includes a main processing unit 1, program memories 3 and 4 and a working memory (not shown), associated with unit 1. The card also includes an arithmetic processor 2 capable of performing modular calculations and a secure memory 6 (not accessible from the outside) in which the candidate will be stored . q whose primality has been verified. The card has also a generator of random integers 5.
En vue de la mise en œuvre du procédé en particulier sur une carte à microprocesseur telle que décrite, il est souhaitable d'augmenter la vitesse du traitement mis en œuvre par le procédé (opérations effectuées par le processeur arithmétique 2) et de libérer de l'emplacement dans la mémoire de travail.In view of the implementation of the method in particular on a microprocessor card as described, it is desirable to increase the speed of the processing implemented by the method (operations performed by the arithmetic processor 2) and to free up 'location in working memory.
Dans ce but, en choisissant a = 2 et en excluant 2 du nombre El (El = 3.5.7. ...) , on évite les calculs modulaires. En effet, la mise à jour de c devient 2c mod El. Or comme c est un élément de Z*π, 2c mod Et = 2c ou 2c - El.To this end, by choosing a = 2 and excluding 2 from the number El (El = 3.5.7. ...), we avoid modular calculations. Indeed, the update of c becomes 2c mod El. However as c is an element of Z * π, 2c mod Et = 2c or 2c - El.
Mais, les nouveaux candidats q peuvent alors être pairs. Si c'est le cas, on ajoute alors au nouveau' - candidat un nombre tel que le nouveau candidat devienne impair tout en appartenant toujours à l'ensemble IEL On pose ainsi : π = (εM - 1) -η q = c + p si q est pair alors q devient q + η.However, the new candidates q can then be even. If this is the case, then we add to the new ' - candidate a number such that the new candidate becomes odd while still belonging to the set IEL We pose as: π = (ε M - 1) -η q = c + p if q is even then q becomes q + η.
Selon une autre alternative, on peut garder El .tel que défini initialement et choisir une valeur particulière de a telle que a' soit premier avec Et. On peut choisir par exemple a = 216 + 1.According to another alternative, we can keep El. As defined initially and choose a particular value of a such that a ' is prime with Et. We can choose for example a = 2 16 + 1.
Le procédé selon l'invention a été mis en œuvre sur une plate-forme de carte à puce SLE66CX160S. d' Infineon comprenant une unité centrale 8-bit et un cryptoprocesseur arithmétique 1100-bit. En choisissant pour η, El et p les valeurs suivantes : η=blβbdle084afβ28fe5089eβdabdlβb5b80f60681dβa092fcb Ie86d8287βed71921000bcfdd063fb90f81dfd07a021af23c735d52 e63bdlcb59c93cbb398afdι6, π = 1729. η p = 4180. η , on obtient avec a = 2, un nombre premier de 512 bits en moins de 4 secondes. On obtient par conséquent un nombre premier de 1024 bits en moyenne en moins de 8 secondes . The method according to the invention has been implemented on a SLE66CX160S smart card platform. from Infineon including an 8-bit central unit and an 1100-bit arithmetic cryptoprocessor. By choosing for η, El and p the following values: η = blβbdle084afβ28fe5089eβdabdlβb5b80f60681dβa092fcb Ie86d8287βed71921000bcfdd063fb90f81dfd07a021af23c735d52 e63bdlcb59c93cbb398afdι 6 π η = 1729 P = 4180. η is obtained with a = 2, a prime number of 512 bits in less than 4 seconds. We therefore obtain a prime number of 1024 bits on average in less than 8 seconds.

Claims

REVENDICATIONS
1. Procédé de génération d'une clé électronique à partir d'un nombre premier q compris dans un intervalle de nombres entiers positifs déterminé [wm,wM], caractérisé en ce que le nombre premier q est obtenu en réalisant les opérations suivantes : a) choix d'un nombre entier positif η, η étant le produit des k premiers nombres premiers, avec k maximum pour qu'il existe deux nombres entiers positifs εm et εM tels que εm est l'arrondi supérieur ' de m/η, et εM est l'arrondi inférieur de (wM-wm) /η, calcul de El = εM.η et p = εm.η, génération de deux nombres entiers positifs' a et c appartenant au groupe multiplicatif Z*π des nombres entiers modulo El, avec c premier avec Et calcul de q = c + p1. Method for generating an electronic key from a prime number q included in a determined interval of positive integers [w m , w M ], characterized in that the prime number q is obtained by carrying out the following operations a) selecting a positive integer η, η being the product of the first k prime numbers with maximum k for that there are two positive integers ε m and ε m ε m is such that the rounded top 'of m / η, and ε M is the lower rounding of (w M -w m ) / η, calculation of El = ε M .η and p = ε m .η, generation of two positive integers ' a and c belonging to the multiplicative group Z * π of integers modulo El, with c prime with And calculation of q = c + p
b) test de la primauté de q,b) test of the primacy of q,
c) dans le cas où la primalité est vérifiée, on mémorise q, .c) in the case where the primality is verified, q,.
d) dans le cas contraire : on' met à jour c en calculant a.c mod El, on réitère les opérations précédentes à partir de b) avec la nouvelle valeur q = c+p. d) otherwise: on 'updates c by calculating ac mod El, one reiterates the preceding operations from b) with the new value q = c + p.
2. Procédé selon la revendication précédente, caractérisé en ce que a = 2 et II = (εM-l) .η.2. Method according to the preceding claim, characterized in that a = 2 and II = (ε M -l) .η.
3. Procédé selon la revendication 1, caractérisé en ce que a = 216 + 1.3. Method according to claim 1, characterized in that a = 2 16 + 1.
4. Procédé de génération de clés cryptographiques RSA, El Gamal, .Schnorr, ou Fiat Shamir, caractérisé en ce qu'il met en œuvre le procédé selon l'une quelconque • des revendications précédentes.4. Method for generating RSA, El Gamal, .Schnorr, or Fiat Shamir cryptographic keys, characterized in that it implements the method according to any one of the preceding claims.
5. Dispositif électronique portable comprenant un processeur arithmétique et une mémoire de programme associée, apte à effectuer des calculs modulaires, caractérisé en ce qu'il comprend un programme de5. Portable electronic device comprising an arithmetic processor and an associated program memory, capable of performing modular calculations, characterized in that it comprises a program of
_ vérification de primalité d'un nombre entier positif q compris dans un intervalle de nombres entiers positifs déterminé [wm, M] et qui effectue les opérations suivantes : a) choix d'un nombre entier positif η, η' étant le produit des k premiers nombres premiers, avec k maximum pour qu' il existe deux nombres entiers positifs εm et ε^ tels que εm est l'arrondi supérieur de wm/η, et εM est l'arrondi inférieur de (wM-wm) /η, calcul de Et = εM.η et p = εm.η, génération de deux nombres entiers positifs a et c appartenant au . groupe multiplicatif Z*π des nombres entiers modulo Et, avec c premier avec El calcul de q = c + p b) test de la primalité de q,_ verification of the primality of a positive integer q included in a determined interval of positive integers [w m , M ] and which performs the following operations: a) choice of a positive integer η, η ' being the product of k first prime numbers, with k maximum so that there are two positive integers ε m and ε ^ such that ε m is the upper rounding of w m / η, and ε M is the lower rounding of (w M - w m ) / η, calculation of Et = ε M .η and p = ε m .η, generation of two positive integers a and c belonging to. multiplicative group Z * π of integers modulo Et, with c prime with El calculation of q = c + p b) test of the primality of q,
c) dans le cas où la primalité est vérifiée, le processeur arithmétique stocke q,c) in the case where the primality is verified, the arithmetic processor stores q,
d) dans le cas contraire : mise à jour de c par le calcul de a.c mod Et, le processeur arithmétique réitère les opérations précédentes à partir de b) avec q = c+p.d) in the contrary case: update of c by the calculation of a.c mod Et, the arithmetic processor repeats the preceding operations starting from b) with q = c + p.
6. Dispositif électronique portable selon la revendication 5, caractérisé en ce qu'il est constitué par une carte à puce à microprocesseur. 6. Portable electronic device according to claim 5, characterized in that it is constituted by a chip card with microprocessor.
EP01947562A 2000-07-10 2001-06-21 Method for generating an electronic key from a prime number contained in a specific interval and device therefor Withdrawn EP1302021A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0008994 2000-07-10
FR0008994A FR2811442B1 (en) 2000-07-10 2000-07-10 METHOD FOR GENERATING AN ELECTRONIC KEY FROM A FIRST NUMBER INCLUDED IN A DETERMINED INTERVAL AND DEVICE FOR IMPLEMENTING THE METHOD
PCT/FR2001/001948 WO2002005483A1 (en) 2000-07-10 2001-06-21 Method for generating an electronic key from a prime number contained in a specific interval and device therefor

Publications (1)

Publication Number Publication Date
EP1302021A1 true EP1302021A1 (en) 2003-04-16

Family

ID=8852313

Family Applications (1)

Application Number Title Priority Date Filing Date
EP01947562A Withdrawn EP1302021A1 (en) 2000-07-10 2001-06-21 Method for generating an electronic key from a prime number contained in a specific interval and device therefor

Country Status (7)

Country Link
US (1) US20040114757A1 (en)
EP (1) EP1302021A1 (en)
JP (1) JP3833175B2 (en)
CN (1) CN1449609A (en)
AU (1) AU2001269221A1 (en)
FR (1) FR2811442B1 (en)
WO (1) WO2002005483A1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2841411B1 (en) * 2002-06-19 2004-10-29 Gemplus Card Int ELECTRONIC KEY GENERATION METHOD FOR PUBLIC KEY CRYTOGRAPHY AND SECURE PORTABLE OBJECT IMPLEMENTING THE METHOD
US7113595B2 (en) 2002-08-09 2006-09-26 Gemplus Generation of a random number that is non-divisible by a set of prime numbers
US7149763B2 (en) 2002-09-09 2006-12-12 Gemplus Method for generating a random prime number within a predetermined interval
JP2004297578A (en) * 2003-03-27 2004-10-21 Matsushita Electric Ind Co Ltd Public key generator, shared key generator, key exchange device, and key exchange method
US8218760B2 (en) * 2007-02-27 2012-07-10 Thomson Licensing Method and a device for generating compressed RSA moduli
US8472620B2 (en) * 2007-06-15 2013-06-25 Sony Corporation Generation of device dependent RSA key

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO0205483A1 *

Also Published As

Publication number Publication date
CN1449609A (en) 2003-10-15
JP3833175B2 (en) 2006-10-11
AU2001269221A1 (en) 2002-01-21
FR2811442A1 (en) 2002-01-11
JP2004502984A (en) 2004-01-29
WO2002005483A1 (en) 2002-01-17
US20040114757A1 (en) 2004-06-17
FR2811442B1 (en) 2002-09-13

Similar Documents

Publication Publication Date Title
EP0656710B1 (en) Method for generating DSA dignatures with low cost portable devices
EP2296086B1 (en) Protection of prime number generation against side-channel attacks
EP1738517A1 (en) Zero-knowledge proof cryptography methods and devices
FR2807898A1 (en) Cryptographic method based on elliptic curves, use simultaneous generation of random variable and scalar multiplication process to speed encryption and decryption
FR2926651A1 (en) COUNTERMEASURE METHOD AND DEVICES FOR ASYMMETRIC CRYPTOGRAPHY
EP1159797B1 (en) Countermeasure method in an electronic component using a secret key cryptographic algorithm
CA2712180A1 (en) Countermeasure method and devices for asymmetrical cryptography with signature diagram
EP1302021A1 (en) Method for generating an electronic key from a prime number contained in a specific interval and device therefor
WO2003017569A1 (en) Method of producing a cryptographic unit for an asymmetric cryptographic system using a discrete logarithm function
EP1104607A1 (en) Method and device for authenticating with symmetrical algorithm
EP1829279B1 (en) Method and device for generating a key for a cryptographic algorithm
WO2001074006A1 (en) Device and method for generating electronic keys from mutual prime numbers
EP1200889B1 (en) Method for improving a random number generator to make it more resistant against attacks by current measuring
EP1225530A1 (en) Method, apparatus and program for quantitative competition and recording medium having recorded thereon the program
FR2818846A1 (en) Method for protecting electronic component executing cryptographic algorithm against current measurement attack, comprises factorization of exponential in algorithm and permutation of the factors
FR2810178A1 (en) Method for cryptographic calculation, comprises stage of exponentiation of public module by a private exponent which introduces random numbers into loops which use squares and multiplications.
CA2359198C (en) Arithmetic unit for carrying out a cryptographic protocol
WO2001010078A1 (en) Signature schemes based on discrete logarithm with partial or total message recovery
WO2003069841A1 (en) Method for detection of attacks on cryptographic algorithms by trial and error
EP1832034A2 (en) Method for rapidly generating a random number that cannot be divided by a pre-determined set of prime numbers
FR2713420A1 (en) Digital Signal Algorithm generation for portable computers
FR2837335A1 (en) Cryptographic procedure for portable electronic devices uses iterative Arazi inversion to create RSA algorithm keys from arbitrary inputs
FR3038473A1 (en) METHOD FOR CRYPTOGRAPHIC DATA PROCESSING AND ASSOCIATED COMPUTER PROGRAM
JP2003029632A (en) Method, device and program for generating prime number
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

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

17P Request for examination filed

Effective date: 20030210

AK Designated contracting states

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR

AX Request for extension of the european patent

Extension state: AL LT LV MK RO SI

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

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