WO2004002058A2 - Procede de generation de cles electroniques pour procede de cryptographie a cle publique et objet portatif securise mettant en oeuvre le procede - Google Patents

Procede de generation de cles electroniques pour procede de cryptographie a cle publique et objet portatif securise mettant en oeuvre le procede Download PDF

Info

Publication number
WO2004002058A2
WO2004002058A2 PCT/FR2003/001871 FR0301871W WO2004002058A2 WO 2004002058 A2 WO2004002058 A2 WO 2004002058A2 FR 0301871 W FR0301871 W FR 0301871W WO 2004002058 A2 WO2004002058 A2 WO 2004002058A2
Authority
WO
WIPO (PCT)
Prior art keywords
key
prime
length
calculation
couple
Prior art date
Application number
PCT/FR2003/001871
Other languages
English (en)
Other versions
WO2004002058A3 (fr
Inventor
Nathalie Feyt
Marc Joye
Original Assignee
Gemplus
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 filed Critical Gemplus
Priority to US10/518,639 priority Critical patent/US20050226411A1/en
Priority to JP2004514946A priority patent/JP4765108B2/ja
Priority to AU2003258815A priority patent/AU2003258815A1/en
Priority to EP03760742A priority patent/EP1523823A2/fr
Publication of WO2004002058A2 publication Critical patent/WO2004002058A2/fr
Publication of WO2004002058A3 publication Critical patent/WO2004002058A3/fr

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/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/30Compression, e.g. Merkle-Damgard construction
    • 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

Definitions

  • the invention relates to a method for generating electronic keys for a public key cryptography method. It also relates to a secure portable object implementing the method.
  • the invention relates more particularly to the generation of keys of an RSA type cryptographic system and their storage on a secure object with a view to their use in an application requiring security.
  • the invention is particularly applicable to secure objects having no significant memory resource such as electrically programmable memory, or powerful computing resources as is the case for smart cards.
  • An application of the invention is electronic commerce via a mobile phone.
  • the keys can be found on the SIM card of the phone.
  • this RSA cryptography protocol allows the encryption of information and / or authentication between two entities and / or the electronic signature of messages.
  • the RSA cryptography protocol is the most used because it has properties that allow it to be used both in encryption and in signature generation.
  • the RSA cryptography system includes a "public" algorithm performing the encryption or signature verification function and a "private” algorithm performing the decryption or signature generation function. Its security is based on the difficulty of factoring a large public integer N which is the product of two large prime numbers p and q, the couple (p, q) entering into the calculation of the secret key d used by the decryption function or by the function for calculating a signature.
  • Parameters p and q They are generated at the end of a time-consuming calculation. They are generally the same length (even
  • This length is conventionally 512 bits.
  • this length can range from 512 bits to 2048, 2048 bits being envisaged for the future.
  • N is the public module and is calculated from the following relation:
  • the key of the algorithm is said to be of length i, when the public module N is of length i. This length is set by the application (or service provider).
  • each service provider When several applications are planned, each service provider provides its public exponent e and the length of the public module N, so that the corresponding private key d can be generated.
  • N p * q an integer of length 2.
  • the portable object stores sets of keys and certificates corresponding to each application likely to be used, without knowing whether these keys will be really useful later.
  • a large memory location is used unnecessarily. For example 0.3 Kbytes are required for an RSA key of 1024bits module, while the current cards have at most 32 Kbytes of programmable memory.
  • a large number of certificates are purchased from the trusted entity which is expensive. The ultimate but equally important disadvantage is that it is not possible to add new keys as new applications could be considered.
  • the calculation can be carried out within the secure object. This solves the first drawback of the previous solution but creates a heavy processing at the level of the secure object which has a low computing capacity.
  • this solution still has the second drawback of the previous solution, namely the need for memory resource.
  • the present invention aims to solve these problems.
  • an object of the present invention relates to a method for generating electronic keys for a public key cryptography method by means of an electronic device, mainly characterized in that it comprises two dissociated calculation steps:
  • step A1) consists in calculating pairs of prime numbers (p, q) without knowledge of the public exponent e or of the length 1 of the key, by using a parameter ⁇ which is the product of small prime numbers.
  • the couple (P q) obtained in step A has a maximum probability of being able to correspond to a future couple
  • step B (e, l) and will calculate a key d during the implementation of step B.
  • the calculation A1) also takes into account the fact that a high probability of being part of the set ⁇ 3, 17, ..., 2 16 + 1 ⁇ , we use for that in the calculation of step A, a seed ⁇ which makes it possible to calculate not couples (P / q) but a representative value called image of couples (p, q).
  • Storage A-2) then consists in memorizing this image. This saves memory space since an image is smaller than a prime number p or q, for example 32 bytes compared to 128 bytes.
  • couples (p, q) are calculated for different probable couples (e, l).
  • the parameter ⁇ will contain the usual values of e, for example 3, 17.
  • step A-1 comprises an operation of compressing the calculated pairs (p, q) and step A-2) then consists in storing the compressed values thus obtained.
  • Step B includes verifying the following conditions for a given couple (e,):
  • step B comprises, for a couple (p, q) obtained in step A, and a given couple (e, l):
  • the subject of the invention is also a portable secure object capable of generating electronic keys d of an RSA-type cryptography algorithm, characterized in that it comprises at least:
  • Communication means to receive at least one couple (e, l), - A memory for storing the results of a step A consisting of:
  • the portable secure object also comprises a program for the implementation of step A, steps A and B being dissociated over time.
  • the portable secure object may be constituted by a smart card.
  • the generation of keys is done in two separate steps.
  • the first Step A includes a calculation of pairs of prime numbers (p, q) or of values representative of pairs of prime numbers called an image.
  • the couples (p, q) obtained are stored. This calculation is cumbersome and it is all the more cumbersome if a conventional prime number generation algorithm is used.
  • a preferred embodiment for implementing this step makes it possible to lighten the calculations and to limit the memory space necessary for the storage of the couples (p, q) obtained by storing an image of these couples. .
  • the second Step B comprises the calculation proper of the key d from the results of step A and the knowledge of the couple (e, l).
  • This calculation includes, for a couple (p, q) obtained in step A, and a given couple (e, l):
  • the first step which corresponds to a relatively cumbersome calculation compared to the second step, can be executed by a body other than the card to puce for example by a server.
  • the results of the calculation of this first step may be loaded onto a smart card at the time of personalization.
  • the calculation of step A can also be done by the card itself at any time which does not bother the user of this card. For example, this calculation can be done when personalizing the card or later: In practical terms, when using the card,. To obtain a service, if a private key is required, then the public key is provided by the service provider (possibly remotely if it is not already stored in the card) in order to generate the private key.
  • This generation step (step B of calculation) is carried out quickly by the card.
  • the generation of a private key can be done on board, ie by the card itself with a gain of a factor of 10 in execution time compared to the key generation methods known to date. .
  • step A we will describe in the following a preferred embodiment for the implementation of step A.
  • This embodiment is particularly advantageous for boarding a smart card because it allows to optimize both the memory space but also the calculation time.
  • min (p) min (q) is between 2, * 0 u -l and N, and max (p) max (q) is between N and 2 l as requested.
  • This parameter ⁇ is the product of small prime numbers in which we can find in particular 3, 17, 2 16 + 1 'prime numbers generally used as public exponents.
  • the first phase of the method consists in generating and recording a prime number k of short length with respect to the length of an RSA key in the interval of whole numbers ⁇ , ...., ⁇ -l ⁇ , (k , ⁇ ) being co-first, ie having no common factor.
  • the second phase then consists in starting from this number k to construct the first candidate q which satisfies the condition of being co-first with ⁇ .
  • this first candidate does not satisfy this condition, then it is updated, that is to say that another candidate is chosen until a value of q satisfying the condition is found.
  • One way to test the primacy of a number is for example to use the Rabin-Miller test.
  • a simple way to implement this algorithm can consist, for each envisaged RSA key length, of storing the values of k and j so as to re-construct q.
  • step 2 Rather than choosing a random number j as indicated in step 2) another embodiment can consist in constructing j from a short random number.
  • This execution mode makes it possible to considerably reduce the memory space requirements because there is only to store the values of ⁇ and k in memory EEPROM.
  • the value of ⁇ is in ROM (in the calculation program).
  • k ( D ) [PRNG 2 ( ⁇ ) + b PRNG3 ( ⁇ ) (PRNG 2 ( ⁇ ) ⁇ ( ⁇ , -l)] (mod ⁇ ) b being an element of order ⁇ (II) belonging to Z * ff-
  • f is equal to 2 8 . This means that f can be coded on 1 byte or 8 bytes.
  • a last mode of execution making it possible to reduce the memory space consists in storing in the calculation program, that is to say in program memory, several values of ⁇ and the corresponding values of ⁇ ( ⁇ ) for different lengths of keys considered. We can notice that a large value of ⁇ leads to the smallest values for f.
  • the program implementing the card process does not need to know a priori the public exhibitor e. This exhibitor can therefore be supplied at any time by an application loaded into the card. However, we know that for most applications (more than 95%), the values of e used are the values ⁇ 3, 17, 2 16 + l ⁇ .
  • the condition required for k ( 0 ) can be obtained by the Chinese remainder theorem.
  • step A1 another alternative may consist for step A1) in calculating pairs of prime numbers (p, q) for different probable pairs (e, l).
  • the invention proposes a method in two dissociated steps, the second step very fast compared to known solutions, can be executed in real time. This process is also inexpensive in memory space.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)
  • Calculators And Similar Devices (AREA)

Abstract

L'invention concerne un procédé de génération de clés électroniques d pour procédé de cryptographie à clé publique au moyen d'un dispositif électronique. Selon l'invention, le procédé comprend deux étapes de calcul dissociées. Une étape A consiste à - calculer des couples de nombres premiers (p, q), ce calcul est indépendant de la connaissance du couple (e, l) e l'exposant public et l la longueur de la clé du procédé de cryptographie et à - stocker les couples ainsi obtenus. Une étape B très rapide qui peut être exécutée en temps réel par le dispositif, consiste à calculer une clé d à partir des résultats de l'étape A et de la connaissance du couple (e, l).

Description

PROCEDE DE GENERATION DE CLES ELECTRONIQUES POUR
PROCEDE DE CRYPTOGRAPHIE A CLE PUBLIQUE ET OBJET
PORTATIF SECURISE METTANT EN ŒUVRE LE PROCEDE
L'invention concerne un procédé de génération de clés électroniques pour procédé de cryptographie à clé publique. Elle concerne également un objet portatif sécurisé mettant en œuvre le procédé.
L'invention concerne plus particulièrement la génération de clés d'un système cryptographique de type RSA et leur stockage sur un objet sécurisé en vue de leur utilisation dans une application nécessitant de la sécurité.
L'invention s'applique tout particulièrement à dés objets sécurisés ne possédant pas d'importante ressource mémoire telle que de la mémoire électriquement programmable, ni de ressources de calcul puissantes comme c'est le cas pour les cartes à puce.
Une application de l'invention est le commerce électronique par l'intermédiaire d'un téléphone portable. Dans ce contexte les clés peuvent se trouver sur la carte SIM du téléphone.
Il est en effet prévu que certains programmes d'applications utilisent de telles clés pour mettre en œuvre un transfert de données confidentielles, dans un contexte de commerce électronique par exemple. Par la suite, on considérera que ces applications sont fournies par une entité fournisseur de service.
En outre, il est connu que pour garantir l'intégrité de la clé, on lui associe généralement un certificat fourni par une entité de confiance. Parmi les procédés de cryptographie à clé publique, on s'intéresse dans ce qui suit au protocole de cryptographie RSA (Rivest Shamir et Adleman) . Ce protocole met en œuvre une étape de génération de nombres premiers de grande taille, coûteuse en temps de calcul et en place mémoire.
On rappelle que ce protocole de cryptographie RSA permet le chiffrement d'informations et/ou 1 ' authentification entre deux entités et/ou la signature électronique de messages .
Le protocole de cryptographie RSA est le plus utilisé car -il possède des propriétés qui lui permettent d'être employé aussi bien en chiffrement qu'en génération de signature. Pour ce faire, le système de cryptographie RSA comprend un algorithme « public » réalisant la fonction de chiffrement ou de vérification de signature et un algorithme « privé » réalisant la fonction de déchiffrement ou de génération de signature. Sa sécurité repose sur la difficulté de factorisation d'un nombre entier public N de grande taille qui est le produit de deux nombres premiers secrets p et q de grande taille, le couple (p,q) entrant dans le calcul de la clé secrète d utilisée par la fonction de déchiffrement ou par la fonction de calcul d'une signature.
Afin de mieux comprendre le problème qui va être exposé dans la suite, on va rappeler dans ce qui suit les paramètres entrant dans un schéma de cryptographie RSA : .
1) L'exposant public e : Il est propre à une application et est fourni par cette application. De ce fait, il est commun à tous les utilisateurs de cette même application.
2) Les paramètres p et q: Ils sont générés à l'issu d'un calcul coûteux en temps. Ils ont en général la même longueur (même
• taille) . Cette longueur est classiquement de 512 bits.
Pour augmenter la sécurité, cette longueur peut aller de 512 bits à 2048, 2048 bits étant envisagés pour le futur.
3) N est le module public et est calculé à partir de la relation suivante :
N = p*q
La clé de l'algorithme est dite de longueur i , lorsque le module public N est de longueur i . Cette longueur est fixée par l'application (ou fournisseur de service) .
4) les paramètres e et N forment la clé publique.
5) la clé privée d est calculée à partir de la relation suivante : d = l/e[mod(p-l) (q-1)] ; (l/e≈ e'1 ) soit encore ed = 1 [ (mod ppcm(p-l, q-1)] ; ppcm signifie le plus petit commun multiple, les paramètres secrets sont formés par le triplet (d, p, q) .
6) la forme « normale » de la clé privée est: (d,N) .
6) la forme CRT (Chinese Remainder Theorem) de la clé privée est: dans ce cas la clé privée comporte 5 paramètres :
P, q dp avec dp = d mod (p- l ) dq avec dq = d mod (q- 1 )
Iq avec Ig = q""1 modp . Le principe de la génération d'une clé selon le, schéma RSA consiste donc comme on peut le voir, à générer une clé privée d à partir d'un exposant public e (ou clé publique) fixé par l'application, les paramètres p, q étant générés de sorte que p*q = N, la longueur de N étant fixée.
Lorsque plusieurs applications sont prévues, chaque fournisseur de service fournit son exposant public e et la longueur du module public N, de manière à ce que puisse être générée la clé privée d correspondante .
Ainsi, la mise en œuvre d'un calcul de clé RSA nécessite la connaissance de l'exposant public e et celle de la longueur 2 de la clé de l'algorithme c'est à dire la longueur du modulo N. Avec les données d'entrée e et 2 , il reste à générer le couple de nombre premier p et q de manière à ce que ces derniers répondent aux conditions suivantes : (i) p-1 et q-1 premiers avec e et,
(ii) N= p*q un nombre entier de longueur 2.
Ces contraintes sont coûteuses en temps de calcul .
On rappelle à ce propos que la génération et le stockage des clés pour des objets portables tels que les cartes à puce s'effectuent à ce jour des deux manières suivantes :
Selon une première manière, le calcul d'une clé RSA est effectué sur un serveur pour profiter d'une puissance de calcul importante. On requiert alors pour plus de sécurité, un certificat que l'on télécharge avec la clé au sein de l'objet sécurisé lors de sa phase de personnalisation.
Cette solution présente deux inconvénients. : - d'une part malgré le cadre relativement sécurisé de la personnalisation, il peut y avoir vol ou duplication de la clé du fait de son transfert du serveur vers l'objet sécurisé, et - d'autre part, chaque clé est chargée dans l'objet dans une phase initiale de personnalisation, ce qui nécessite de prévoir un maximum de clés dans chaque objet pour pouvoir anticiper les futurs besoins.
Dans la pratique, on stocke dans l'objet portable des ensembles de clés et de certificats correspondant à chaque application susceptible d'être utilisée, sans savoir si ces clés seront réellement utiles ultérieurement . Un emplacement mémoire important est utilisé inutilement. Par exemple 0,3 Koctets sont nécessaires pour une clé de RSA de module de 1024bits, alors que les cartes actuelles ont au plus 32Koctets de mémoire programmable. En outre, un nombre important de certificats est acheté à l'entité de confiance ce qui est coûteux. L'inconvénient ultime mais tout aussi important est qu'il n'est pas possible d'ajouter de nouvelles clés au fur et à mesure que de nouvelles applications pourraient être envisagées.
Selon une deuxième solution, le calcul peut être effectué au sein de l'objet sécurisé. Cela résout le premier inconvénient de la solution précédente mais crée une lourdeur de traitement au niveau de l'objet sécurisé qui possède une faible capacité de calcul.
En effet, lorsque la génération d'une clé RSA est réalisée par un objet portatif tel qu'une carte à puce, si la longueur imposée de clé RSA est de 2048 bits, le calcul prend alors 30 secondes avec un algorithme performant . Même si ce temps de calcul est acceptable pour certaines applications car on génère les clés RSA une seule fois pour une application donnée, ceci n'est pas satisfaisant pour les services de téléphonie mobile (GSM par exemple) car cette opération se renouvelle à chaque changement de carte SIM et qu'un plus grand nombre de clés doit être prévu pour répondre aux besoins de différentes applications.
Du fait d'un besoin en ressources de calcul important, les clés sont toujours crées durant la phase de personnalisation à partir des exposants publics e fournis par les différentes entités fournisseur de service. Cette étape de calcul ne peut pas être mise en œuvre ultérieurement car elle paralyserait le fonctionnement de l'objet.
De façon pratique ce calcul n'est pas mis en œuvre par la carte. En effet, ce calcul est long et il pourrait ralentir la phase de personnalisation, de plus sa durée est variable et elle pourrait se révéler incompatible avec les procédés de personnalisation des cartes à puce.
D'autre part, cette solution présente toujours le second inconvénient de la solution précédente à savoir la nécessité de ressource mémoire.
La présente invention a pour but de résoudre ces problèmes .
Plus précisément l'invention a pour objectif de résoudre le problème de lourdeur du calcul lié à la gestion de génération de clés ainsi que le problème de manque de flexibilité dû au stockage initial et définitif d'un nombre important de clés et de certificats en phase de personnalisation. A cette fin, un objet de la présente invention concerne un procédé de génération de clés électroniques d pour procédé de cryptographie à clé publique au moyen d'un dispositif électronique, principalement caractérisé en ce qu'il comprend deux étapes de calcul dissociées :
Etape A
1) Calcul de couples de nombres premiers (p,q) ou de valeurs représentatives de couples de nombres premiers, ce calcul étant indépendant de la connaissance du couple (e,l) dans lequel e est l'exposant public et 1 la longueur de la clé du procédé de cryptographie, 1 étant également la longueur du module N dudit procédé,
2) Stockage des couples ou des valeurs ainsi obtenus ;
Etape B
Calcul de la clé d à partir des résultats de l'étape A et de la connaissance du couple (e,l) .
Selon une première variante, l'étape A-l) consiste à calculer des couples de nombres premiers (p,q) sans connaissance de l'exposant public e ni de la longueur 1 de la clé, en utilisant un paramètre π qui est le produit de petits nombres premiers. De cette manière couple (P q) obtenu à l'étape A, a une probabilité maximale de pouvoir correspondre à un futur couple
(e,l) et permettra de calculer une clé d lors de la mise en œuvre de l'étape B.
Selon une autre variante dépendante de la variante précédente, le calcul A-l) tient compte en plus du fait que e a une forte probabilité de faire partie de l'ensemble {3, 17,..., 216+1}, on utilise pour cela dans le calcul de l'étape A, une graine σ qui permet de calculer non pas des couples (P/q) mais une valeur représentative appelée image des couples (p,q).
Le stockage A-2) consiste alors à mémoriser cette image. Ceci permet de gagner de la place mémoire puisqu'une image est plus petite qu'un nombre premier p ou q par exemple 32 octets comparés à 128 octets.
Selon une troisième variante on effectue un calcul de couples (p,q) pour différents couples (e,l) probables. De façon pratique le paramètre π va contenir les valeurs usuelles de e par exemple 3, 17.
Selon une quatrième variante l'étape A-l) comprend une opération de compression des couples (p, q) calculés et l'étape A-2) consiste alors à stocker les valeurs compressées ainsi obtenues.
L'étape B comprend la vérification des conditions suivantes pour un couple (e , ) donné:
(i) p-1 et q-1 premiers avec "e et, (ii) N= p*q un nombre entier de longueur 2 .
Selon un mode de réalisation préféré, l'étape A-l) comprend la génération d'un nombre premier q, le choix d'une limite inférieure Bo pour la longueur , de ce nombre premier à générer telle que 20 ≥ B0 par exemple B0= 256 bits, et elle comprend en outre les sous-étapes suivantes :
1) -calculer des paramètres v et w à partir des relations suivantes et les mémoriser:
= 2 °"7 π w=2to / π dans lesquelles LT est mémorisé et correspond au produit des f plus petits nombres premiers, f étant choisi de manière telle que LT < 2B°, 2) -choisir un nombre j dans l'intervalle des nombres entiers {v,....,w-l} et calculer 2 =j LT ;
3) -choisir et enregistrer un nombre premier k de longueur courte par rapport à la longueur d'une clé RSA dans l'intervalle des nombres entiers {θ,...., LT-l} , (k, LT) étant co-premiers, ;
4) -calculer q= k+ 2 ,
5) -vérifier que q est un nombre premier, si q n'est pas un nombre premier alors : a) prendre une nouvelle valeur pour k au moyen de la relation suivante : k = ak (modLT); a appartenant au groupe multiplicatif Z*rj des nombres entiers modulo LT; b) réitérer à partir de la sous-étape 4) .
Avantageusement l'étape B comprend, pour un couple (p,q) obtenu à l'étape A, et un couple (e,l) donné :
- La vérification des conditions suivantes :
(i) p-1 et q-1 premiers avec e et, (ii) N= p*q un nombre entier de longueur 2 ,
Si le couple (P/q) ne répond pas à ces conditions :
- Choix d'un autre couple et réitération de la vérification jusqu'à ce qu'un couple convienne, - Calcul de la clé d à partir du couple (p,q) obtenu à l'issue de cette vérification.
L'invention a également pour objet, un objet sécurisé portatif apte à générer des clés électroniques d d'un algorithme de cryptographie de type RSA, caractérisé en ce qu'il comprend au moins :
Des moyens de communication pour recevoir au moins un couple (e,l), - Une mémoire pour stoker les résultats d'une étape A consistant à :
Calculer des couples de nombres premiers (p,q) ou de valeurs représentatives de couples de nombres premiers, ce calcul étant indépendant de la connaissance du couple (e,l) dans lequel e est l'exposant public et 1 la longueur de la clé du procédé de cryptographie, 1 étant également la longueur du module N dudit procédé, - Un programme pour mettre en œuvre une étape B consistant à :
Calculer d'une clé d à partir des résultats de l'étape A et de la connaissance d'un couple (e,l),
L'objet sécurisé portatif comprend en outre un programme pour la mise en œuvre de l'étape A, les étapes A et B étant dissociées dans le temps.
L'objet sécurisé portatif pourra être constitué par une carte à puce.
D'autres particularités et avantages de l'invention apparaîtront clairement à la lecture de la description qui est donnée ci-après à titre d'exemple non limitatif et en regard de la figure unique représentant un schéma d'un système de mise en œuvre du procédé.
La suite de la description est faite dans le cadre de l'application de l'invention à un objet portatif de type carte à puce et pour simplifier l'expression on parlera de carte à puce.
Selon le procédé proposé la génération de clés se fait en deux étapes dissociées. La première Etape A comporte un calcul de couples de nombres premiers (p,q) ou de valeurs représentatives de couples de nombres premiers appelée image.
Les couples (p,q) obtenus sont stockés. Ce calcul est lourd et il est d'autant plus lourd si on utilise un algorithme de génération de nombres premiers classique.
Il est proposé ici que ce calcul soit effectué de manière indépendante de la connaissance du couple (e,l).
Comme cela va être détaillé dans la suite un mode de réalisation préféré pour mettre en œuvre cette étape permet d'alléger les calculs et de limiter la place mémoire nécessaire pour le stockage des couples (p,q) obtenus en stockant une image de ces couples .
La deuxième Etape B comporte le calcul à proprement parler de la clé d à partir des résultats de l'étape A et de la connaissance du couple (e,l).
Ce calcul comprend, pour un couple (p,q) obtenu à l'étape A, et un couple (e,l) donné :
- La vérification des conditions suivantes :
(i) p-1 et q-1 premiers avec e et, (ii) N= p*q , ce nombre doit être un nombre entier et de longueur 2 , - Si un couple (p,q) ne répond pas à ces conditions, on choisit un autre couple et on réitère de la vérification jusqu'à ce qu'un couple convienne parmi les couples obtenus lors de l'étape A.
- On peut procéder alors au calcul de la clé d à partir du couple (pfq) obtenu à l'issue de cette vérification.
La première étape qui correspond à un calcul relativement lourd par rapport à la deuxième étape, peut être exécutée par un autre organe que la carte à puce par exemple par un serveur. Dans ce cas, les résultats du calcul de cette première étape pourront être chargés sur une carte à puce au moment de la personnalisation. Le calcul de l'étape A peut également être fait par la carte elle-même à un instant quelconque qui ne gêne pas l'utilisateur de cette carte. Par exemple, ce calcul peut être fait lors de la personnalisation de la carte ou plus tard: De façon pratique, lors de l'utilisation de la carte, .pour obtenir un service, si une clé privée est nécessaire, alors la clé publique est fournie par le fournisseur de service (éventuellement à distance si elle n'est pas déjà stockée dans la carte) afin de générer la clé privée. Cette étape de génération (étape B de calcul) est effectuée de manière rapide par la carte .
On voit donc que de nouvelles applications qui nécessitent le calcul d'une clé privée d peuvent être prévues pour une carte.
On voit également qu'il n'y a pas besoin d'associer un certificat aux couples (p,q) car ils ne sont pas associés à une clé privée.
Ainsi, la génération d'une clé privée peut être faite à bord c'est à dire par la carte elle-même avec un gain d'un facteur 10 en temps d'exécution par rapport aux procédés de génération de clés connus à ce jour.
On va décrire dans ce qui suit un mode préféré de réalisation pour la mise en œuvre de l'étape A. Ce mode de réalisation est particulièrement avantageux pour la mise à bord d'une carte à puce car il permet d'optimiser à la fois la place mémoire mais aussi le temps de calcul.
Tout d'abord, afin de s'assurer que N=p*q est un entier de -έ'-bit, on choisit p appartenant à l'intervalle :
Figure imgf000015_0001
Et q appartenant à l'intervalle
Figure imgf000015_0002
Pour 0 compris entre 1 et 2 .
Ainsi min (p) min (q) est compris entre 2 ,*0u-l et N, et max(p)max(q) est compris entre N et 2 l comme cela est demandé .
De cette façon, la condition ii) ci-dessus mentionnée se réduit à rechercher des nombres premiers dans l'intervalle :
Figure imgf000015_0003
La solution proposée exploite le paramètre π. Ce paramètre π est le produit de petits nombres premiers dans lequel on peut trouver notamment 3, 17, 216+1 ' nombres premiers généralement utilisés comme exposants publics. Ainsi, la probabilité pour qu'un couple (p,q) corresponde à un futur couple (e,l) donné, déjà très élevée, augmente encore lorsque II comporte de telles valeurs .
On choisit les f plus petits nombres premiers, f étant choisi de manière telle que ϋiPi < 2B0, B0 est la borne inférieure choisie pour 20 - pa exemple on peut choisir B0 égal à 256 bits. π est égal au produit : 2.3 191 et est inférieur à 2256. On peut alors mémoriser cette valeur II dans la carte par exemple comme une constante dans la mémoire morte de programme .
La première phase du procédé consiste à générer et à enregistrer un nombre premier k de longueur courte par rapport à la longueur d'une clé RSA dans l'intervalle des nombre entiers {θ,...., π-l} , (k, π) étant copremiers, c'est à dire n'ayant pas de facteur commun .
La deuxième phase consiste ensuite à partir de ce nombre k à construire le premier candidat q qui satisfait la condition d'être copremier avec π .
Si ce premier candidat ne satisfait pas cette condition, alors il est mis à jour c'est à dire qu'un autre candidat est choisi jusqu'à ce qu'une valeur de q satisfaisant à la condition soit trouvée.
On va présenter dans la suite les différentes étapes de l'algorithme de génération d'un nombre premier entrant dans le calcul d'une clé RSA selon l'invention. L'algorithme proposé fonctionne quelle que soit la longueur lo donnée pour le nombre premier q qui doit être généré .
La génération du nombre premier p est identique, il suffit de remplacer q par p dans les étapes qui vont être développées et de remplacer lo par l-lo.
Après avoir fixé la limite Bo, on calcule les nombres premiers uniques v et w satisfaisant les conditions suivantes:
Figure imgf000017_0001
Ceci, se traduit par le calcul de v et w par les relations suivantes :
Figure imgf000017_0002
w= =2fo / n
Puis après avoir pris k appartenant au groupe multiplicatif Z*TT des . nombres entiers modulo n, on construit le premier candidat q tel que, q=k+j II pour tout j appartenant à l'intervalle [v, w-1] . Comme justement k apparient à Z*JT/ la probabilité pour avoir un premier candidat q premier, est élevée.
Si ce n'est pas le cas, on met à jour k en prenant k égal à ak(mod n) , a appartenant au groupe Z*TT et on réitère jusqu'à trouver une valeur de q correspondant à un nombre premier.
Une manière de tester la primauté d'un nombre est par exemple d'utiliser le test de Rabin-Miller.
Les différentes étapes de l'algorithme proposé sont précisément les suivantes : 1) -calculer des paramètres v et w à partir des relations suivantes et les mémoriser:
v= ^° -1/ n w=2to / n dans lesquelles LT est mémorisé et correspond au produit des f plus petits nombres premiers, f étant choisi de manière telle que LT ≤ 2B°,
2) -choisir un nombre j dans l'intervalle des nombres entiers {v,...., -l} et calculer 2 ≈j LT ; 3) -choisir et enregistrer un nombre premier k de longueur courte par rapport à la longueur d'une clé RSA dans l'intervalle des nombres entiers {θ,...., H— 1 } , (k, LT) étant co-premiers, ; 4) -calculer q= k.+ 2 ,
5) -vérifier que q est un nombre premier, si q n'est pas un nombre premier alors : a) prendre une nouvelle valeur pour k au moyen de la relation suivante : k = ak (modLT); a appartenant au groupe multiplicatif Z*rj des nombres entiers modulo LT; b) réitérer à partir de l'étape 4) ;
6) enregistrer a, k' j pour les utiliser afin de retrouver q et ensuite exploiter q pour l'utiliser lors d'un calcul ultérieur de génération d'une clé RSA.
Au lieu de stocker la valeur de q on va procéder avantageusement comme décrit dans la suite.
Une manière simple de mettre en œuvre cet algorithme peut consister pour chaque longueur de clé RSA envisagée, de stocker les valeurs de k et j de manière à re construire q.
Plutôt que de choisir un nombre aléatoire j comme indiqué à l'étape 2) un autre mode de réalisation peut consister à construire j à partir d'un nombre aléatoire court .
On prend par exemple un nombre de longueur 64 -bit, que l'on désigne par graine et que l'on dénote σ. Cette graine est alors prise comme valeur d'entrée d'un générateur de nombres pseudo-aléatoires PRNG, lequel va permettre de générer j . j est alors défini comme PRNGx (σ) (mod (w-v) +v) .
Ce mode d'exécution permet de réduire considérablement les besoins en place mémoire car il n'y a à stocker que les valeurs de σ et de k en mémoire EEPROM. La valeur de π est en mémoire morte (dans le programme de calcul) .
On peut encore réduire les besoins en place mémoire en constatant que : si k(0) est la première valeur de k appartenant au groupe Z*J], alors, les nombres premiers générés ont la forme : q= at~1 k(0) mod π +j π f étant le nombre d'échec du test de l'étape 4) .
Cette valeur k(0) qui appartient au groupe Z*[ peut être facilement calculée à partir d'une graine aléatoire courte comme σ par exemple et en utilisant la fonction de Carmichael de π2 dénotée λ (π) .
En utilisant cette fonction on peut exprimer k(D) par la relation suivante : k)=[PRNG2(σ)+bPRNG3(σ) (PRNG2(σ)λ(π,-l)] (modπ) b étant un élément d'ordre λ (II) appartenant à Z*ff-
Ces deux modes d'exécution permettent de réduire les besoins en place mémoire puisqu'on ne va devoir stoker dans ce cas, que la valeur de la graine σ et différentes valeurs de f pour les longueurs désirées de clés .
Pour des clés RSA de modulo supérieur à 2048 bits, les expériences numériques qui ont été faites par les inventeurs montrent que f est égal à 28. Ceci signifie que f peut être codé sur 1 byte soit 8 octets.
A titre d'exemple, pour générer des clés RSA de longueur allant de 512 à 2048 bits avec une granulité de 32 bits, il y a 49 longueurs de clé possibles. Il est donc nécessaire de stocker sur la carte un byte soit 8 octets correspondant à la valeur de σ. Il est également nécessaire de stocker les valeurs de f pour les nombres premiers p et q soit 2*49=98 octets. Ceci fait au total 106 bytes soit 848 bits en mémoire EEPROM.
Un dernier mode d'exécution permettant de réduire la place mémoire, consiste à stoker dans le programme de calcul, c'est à dire en mémoire de programme, plusieurs valeurs de π et les valeurs de λ (π) correspondantes pour différentes longueurs de clés envisagées. On peut remarquer qu'une grande valeur de π conduit aux plus petites valeurs pour f . Le nombre premier q généré selon l'étape 4) par l'algorithme qui vient d'être décrit satisfait comme on l'a vu précédemment à la condition : q= af_1 k(0) mod π +j *π
Si e divise II on peut exprimer q par la relation suivante : q= af_1 k(0) mod(e)
Afin que la condition i) énoncée au début de la description soit remplie, il faut choisir a tel que a=l (mod e) et forcer k(0) de manière à ce qu'il soit différent de 1 (mod e) .
Ainsi le nombre premier q obtenu satisfait la relation q= k(0) différent de 1 (mod e) .
La génération du nombre premier p est identique, q est remplacé par p dans les étapes qui ont été développées et lo par l-lo.
Comme cela a été dit, le programme mettant en œuvre le procédé de la carte n'a pas besoin de connaître à priori l'exposant public e. Cet exposant peut donc être fourni à tout moment par une application chargée dans la carte. Toutefois, on sait que pour la plupart des applications (plus de 95%) , les valeurs de e utilisées sont les valeurs {3, 17, 216+l} .
Afin de couvrir le plus grand nombre d'applications, on va de façon préférentielle choisir a tel que a= 1 mod ({3, 17, 216+l}) et forcer k) différent de cette valeur : 1 mod({3, 17, 216+l}).
On choisit par exemple comme candidat possible pour a, le nombre premier R= 264-232+l à condition que le plus grand commun diviseur de π et de R soit égal à 1.
La condition requise pour k(0) peut être obtenue par le théorème du reste chinois.
' Comme cela a été dit une autre alternative peut consister pour l'étape A-l) à calculer des couples de nombres premiers (p,q) pour différents couples (e,l) probables .
En conclusion, l'invention propose un procédé en deux étapes dissociées, la deuxième étape très rapide par rapport aux solutions connues, peut être exécutée en temps réel . Ce procédé est également peu coûteux en place mémoire.
En outre, il n'y a pas de limite pour de nouvelles applications non prévues à la personnalisation de la carte.

Claims

REVENDICATIONS
1. Procédé de génération de clés électroniques d pour procédé de cryptographie à clé publique au moyen d'un dispositif électronique, principalement caractérisé en ce qu'il comprend deux étapes de calcul dissociées :
Etape A
1) Calcul de couples de nombres premiers (p;q) ou de valeurs représentatives de couples de nombres premiers, ce calcul étant indépendant de la connaissance du couple (e,l) dans lequel e est l'exposant public et 1 la. longueur de la clé du procédé de cryptographie, 1 étant également la longueur du module N dudit procédé,
2) Stockage des couples ou des valeurs ainsi obtenus ;
Etape B
Calcul d'une clé d à partir des résultats de l'étape A et de la connaissance du couple (e,l) .
2. Procédé de génération de clés électroniques selon la revendication 1, caractérisé en ce que l'étape A-l) consiste à calculer des couples de nombres premiers (p,q) sans connaissance de l'exposant public e ni de la longueur 1 de la clé, en utilisant un paramètre π qui est le produit de petits nombres premiers, de manière à ce que chaque couple (p,q) ait une probabilité maximale de pouvoir correspondre à un futur couple (e,l) et puisse permettre de calculer une clé d.
3. Procédé de génération de clés électroniques selon la revendication 2, caractérisé en ce que le calcul de l'étape A-l) tient compte en plus du fait que e a une forte probabilité de faire partie de l'ensemble {3, 17,..., 21S+1}, on utilise pour cela dans ce calcul une graine σ qui permet de calculer non pas des couples (P q) mais une valeur représentative appelée image des couples (p,q) .
4. Procédé de génération' de clés électroniques selon la revendication 1 et 3, caractérisé en ce le stockage A-2) consiste à mémoriser l'image des couples.
5. Procédé de génération de clés électroniques selon la revendication 1, caractérisé en ce que l'étape A-l) consiste à calculer des couples de nombres premiers (p,q) pour différents couples (e,l) probables.
6. Procédé de génération de clés électroniques selon les revendications 2 et 5, caractérisé en ce que le paramètre II contient les valeurs usuelles de l'exposant public e par exemple 3, 17.
7. Procédé de génération de clés électroniques selon la revendications 1, caractérisé en ce que l'étape A-l) comprend une opération de compression des couples (p,q) calculés et l'étape A-2) consiste alors à stocker les valeurs compressées ainsi obtenues.
8. Procédé de génération de clés électroniques selon la revendication 1, caractérisé en ce que l'étape A-l) comprend la génération d'un nombre premier q, pour lequel on fixe une limite inférieure B0 pour la longueur 20 de ce nombre premier à générer, telle que 20 ≥ B0 par exemple B0= 256 bits, et en ce qu'elle comprend les sous étapes suivantes : 1) -calculer des paramètres v et w à partir des relations suivantes et les mémoriser:
v= - 22 l/ π =2{° / π dans lesquelles LT est mémorisé et correspond au produit des f plus petits nombres premiers, f étant choisi de manière telle que LT ≤ 2B°,
2) -choisir un nombre j dans l'intervalle des nombres entiers {v,.... , w-l} et calculer 2 =j LT ;
3) -choisir et enregistrer un nombre premier k de longueur courte par rapport à la longueur d'une clé RSA dans l'intervalle des nombres entiers {0,...., LT-l} , (k, LT) étant co-premiers, ; 4) -calculer q= k+ 2 ,
5) -vérifier que q est un nombre premier, si q n'est pas un nombre premier alors : a) prendre une nouvelle valeur pour k au moyen de la relation suivante : k = ak (modLT); a appartenant au groupe multiplicatif Z*τj des nombres entiers modulo LT; b) réitérer à partir de l'étape 4) ;
9. Procédé de génération de clés ' électroniques selon les revendications 3 et 8 , caractérisé en ce que les nombres j et k peuvent être générés à partir de la graine σ stockée en mémoire .
10. Procédé de génération de clés électroniques selon la revendication 8, caractérisé en ce que le nombre premier p est généré ' en réitérant toutes les sous étapes précédentes en remplaçant q par p et en remplaçant 20 par i - 20.
11. Procédé de génération de clés électroniques selon l'une quelconque des revendications précédentes, caractérisé en ce que :
L'étape B comprend, pour un couple (p,q) obtenu à l'étape A, :
- La vérification des conditions suivantes :
(i) p-1 et q-1 premiers avec e donné et, (ii) N= p*q un nombre entier de longueur 2 donnée, - Si le couple (p'q) ne répond pas à ces conditions :
Choix d'un autre couple et réitération de la vérification jusqu'à ce qu'un couple convienne,
- Calcul de la clé d à partir du couple (p,q) obtenu.
12. Objet sécurisé portatif apte à générer des clés électroniques d d'un algorithme de cryptographie de type RSA, caractérisé en ce qu' il ' comprend au moins : - Des moyens de communication pour recevoir au moins un couple (e,l),
- Une mémoire pour stoker les résultats d'une étape A consistant à :
Calculer des couples de nombres premiers (p,q) ou de valeurs représentatives de couples de nombres premiers, ce calcul étant indépendant de la connaissance du couple (e,l) dans lequel e est l'exposant public et 1 la longueur de la clé du procédé de cryptographie, 1 étant également la longueur du module N de ce p,
- Un programme pour mettre en œuvre une étape B consistant à :
Calculer une clé d à partir des résultats de l'étape A et de la connaissance d'un couple (e,l),
13. Objet sécurisé portatif selon la revendication
12, caractérisé en ce qu'il comprend en outre un programme pour la mise en œuvre de l'étape A, les étapes A et B étant dissociées dans le temps.
14. Objet sécurisé portatif selon la revendication
13 , caractérisé en ce que le programme de mise en œuvre de l'étape A met en œuvre les sous-étapes : 1) -calculer des paramètres v et w à partir des relations suivantes et les mémoriser:
v= ^° -1/ π - w=2{° / π dans lesquelles LT est mémorisé et correspond au produit des f plus petits nombres premiers, f étant choisi de manière telle que LT ≤ 2B°, B0 est une limite inférieure fixée pour la longueur 20 du nombre premier à générer telle que 20 ≥ B0 par exemple B0= 256 bits, 2) -choisir un nombre j dans l'intervalle des nombres entiers {v,....,w-l} et calculer 2 =j LT ;
3) -choisir et enregistrer un nombre premier k de longueur courte par rapport à la longueur d'une clé RSA dans l'intervalle des nombres entiers {θ;...., LT-l} , (k, LT) étant co-premiers, ; 4) -calculer q= ~k+ 2 ,
5) -vérifier que q est un nombre premier, si q n'est pas un nombre premier alors : a) prendre une nouvelle valeur pour k au moyen de la relation suivante : k = ak (modLT); a appartenant au groupe multiplicatif Z*rj des nombres entiers modulo LT; b) réitérer à partir de l'étape 4) .
15. Objet sécurisé portatif selon la revendication 12 ou 13 ou 14, caractérisé en ce qu'il est constitué par une carte à puce.
PCT/FR2003/001871 2002-06-19 2003-06-18 Procede de generation de cles electroniques pour procede de cryptographie a cle publique et objet portatif securise mettant en oeuvre le procede WO2004002058A2 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US10/518,639 US20050226411A1 (en) 2002-06-19 2003-06-18 Method of generating electronic keys for a public-key cryptography method and a secure portable object using said method
JP2004514946A JP4765108B2 (ja) 2002-06-19 2003-06-18 公開鍵暗号化方法のための電子鍵を生成するための方法およびこの方法を使用するセキュア・ポータブル・オブジェクト
AU2003258815A AU2003258815A1 (en) 2002-06-19 2003-06-18 Method of generating electronic keys for a public-key cryptography method and a secure portable object using said method
EP03760742A EP1523823A2 (fr) 2002-06-19 2003-06-18 Procede de generation de cles electroniques pour procede de cryptographie a cle publique et objet portatif securise mettant en oeuvre le procede

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR02/07688 2002-06-19
FR0207688A FR2841411B1 (fr) 2002-06-19 2002-06-19 Procede de generation de cles electroniques pour procede de crytographie a cle publique et objet portatif securise mettant en oeuvre le procede

Publications (2)

Publication Number Publication Date
WO2004002058A2 true WO2004002058A2 (fr) 2003-12-31
WO2004002058A3 WO2004002058A3 (fr) 2004-04-15

Family

ID=29719931

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2003/001871 WO2004002058A2 (fr) 2002-06-19 2003-06-18 Procede de generation de cles electroniques pour procede de cryptographie a cle publique et objet portatif securise mettant en oeuvre le procede

Country Status (6)

Country Link
US (1) US20050226411A1 (fr)
EP (1) EP1523823A2 (fr)
JP (1) JP4765108B2 (fr)
AU (1) AU2003258815A1 (fr)
FR (1) FR2841411B1 (fr)
WO (1) WO2004002058A2 (fr)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7213766B2 (en) 2003-11-17 2007-05-08 Dpd Patent Trust Ltd Multi-interface compact personal token apparatus and methods of use
US7597250B2 (en) 2003-11-17 2009-10-06 Dpd Patent Trust Ltd. RFID reader with multiple interfaces
US7762470B2 (en) 2003-11-17 2010-07-27 Dpd Patent Trust Ltd. RFID token with multiple interface controller
US11323256B2 (en) 2018-04-26 2022-05-03 Thales Dis Design Services Sas Method for generating on-board a cryptographic key using a physically unclonable function

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008030184A1 (fr) * 2006-07-04 2008-03-13 Khee Seng Chua Systeme d'authentification perfectionne
US8472620B2 (en) * 2007-06-15 2013-06-25 Sony Corporation Generation of device dependent RSA key
US8170216B2 (en) * 2008-06-18 2012-05-01 Apple Inc. Techniques for validating and sharing secrets
KR20130097985A (ko) * 2012-02-27 2013-09-04 삼성전자주식회사 양방향 커뮤니케이션을 위한 방법 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4736423A (en) * 1985-04-30 1988-04-05 International Business Machines Corporation Technique for reducing RSA Crypto variable storage
FR2811442A1 (fr) * 2000-07-10 2002-01-11 Gemplus Card Int 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

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9410337D0 (en) * 1994-05-24 1994-07-13 Cryptech Systems Inc Key transmission system
JPH09261217A (ja) * 1996-03-27 1997-10-03 Nippon Telegr & Teleph Corp <Ntt> 通信装置及びその方法
US5884270A (en) * 1996-09-06 1999-03-16 Walker Asset Management Limited Partnership Method and system for facilitating an employment search incorporating user-controlled anonymous communications
US5848159A (en) * 1996-12-09 1998-12-08 Tandem Computers, Incorporated Public key cryptographic apparatus and method
US6192474B1 (en) * 1998-07-31 2001-02-20 Lucent Technologies Inc. Method for establishing a key using over-the-air communication and password protocol and password protocol
JP3518672B2 (ja) * 1998-11-27 2004-04-12 村田機械株式会社 素数生成装置及び暗号システム
AU769446C (en) * 1999-01-27 2007-09-20 France Telecom Method for proving the authenticity or integrity of a message by means of a public exponent equal to the power of two
US6868160B1 (en) * 1999-11-08 2005-03-15 Bellsouth Intellectual Property Corporation System and method for providing secure sharing of electronic data
FR2807246B1 (fr) * 2000-03-28 2002-12-27 Gemplus Card Int Procede de generation de cles electroniques a partir de nombres entiers premiers entre eux et dispositif de mise en oeuvre du procede
US6959091B1 (en) * 2000-07-28 2005-10-25 Atmel Corporation Cryptography private key storage and recovery method and apparatus
US7016494B2 (en) * 2001-03-26 2006-03-21 Hewlett-Packard Development Company, L.P. Multiple cryptographic key precompute and store
US7120248B2 (en) * 2001-03-26 2006-10-10 Hewlett-Packard Development Company, L.P. Multiple prime number generation using a parallel prime number search algorithm
TWI244610B (en) * 2001-04-17 2005-12-01 Matsushita Electric Ind Co Ltd Information security device, prime number generation device, and prime number generation method
JP4457651B2 (ja) * 2003-11-27 2010-04-28 日本電気株式会社 証明装置及び証明方法並びにプログラム
FR2879866B1 (fr) * 2004-12-22 2007-07-20 Sagem Procede et dispositif d'execution d'un calcul cryptographique
US20080123842A1 (en) * 2006-11-03 2008-05-29 Nokia Corporation Association of a cryptographic public key with data and verification thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4736423A (en) * 1985-04-30 1988-04-05 International Business Machines Corporation Technique for reducing RSA Crypto variable storage
FR2811442A1 (fr) * 2000-07-10 2002-01-11 Gemplus Card Int 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

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
B. SCHNEIER: "APPLIED CRYPTOGRAPHY" 1996 , WILEY , NEW YORK XP002234403 page 466, alinéa 19.3 -page 469, dernière ligne *
GANESAN R: "Yaksha: augmenting Kerberos with public key cryptography" NETWORK AND DISTRIBUTED SYSTEM SECURITY, 1995., PROCEEDINGS OF THE SYMPOSIUM ON SAN DIEGO, CA, USA 16-17 FEB. 1995, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, 16 février 1995 (1995-02-16), pages 132-143, XP010134533 ISBN: 0-8186-7027-4 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7213766B2 (en) 2003-11-17 2007-05-08 Dpd Patent Trust Ltd Multi-interface compact personal token apparatus and methods of use
US7597250B2 (en) 2003-11-17 2009-10-06 Dpd Patent Trust Ltd. RFID reader with multiple interfaces
US7762470B2 (en) 2003-11-17 2010-07-27 Dpd Patent Trust Ltd. RFID token with multiple interface controller
US11323256B2 (en) 2018-04-26 2022-05-03 Thales Dis Design Services Sas Method for generating on-board a cryptographic key using a physically unclonable function

Also Published As

Publication number Publication date
WO2004002058A3 (fr) 2004-04-15
FR2841411B1 (fr) 2004-10-29
US20050226411A1 (en) 2005-10-13
JP2005530212A (ja) 2005-10-06
EP1523823A2 (fr) 2005-04-20
AU2003258815A1 (en) 2004-01-06
JP4765108B2 (ja) 2011-09-07
FR2841411A1 (fr) 2003-12-26

Similar Documents

Publication Publication Date Title
EP1151576B1 (fr) Procede cryptographique a cles publique et privee
FR2948793A1 (fr) Procede securise de reconstruction d&#39;une mesure de reference d&#39;une donnee confidentielle a partir d&#39;une mesure bruitee de cette donne, notamment pour la generation de cles cryptographiques
EP2296086B1 (fr) Protection d&#39;une génération de nombres premiers contre des attaques par canaux cachés
WO2003056750A2 (fr) Systeme cryptographique de signature de groupe
EP2415199B1 (fr) Procede pour effectuer une tache cryptographique dans un composant electronique
EP1166496B1 (fr) Procede d&#39;authentification et de signature de message utilisant des engagements de taille reduite et systemes correspondants
WO2006048524A1 (fr) Procede de delegation securisee de calcul d&#39;une application bilineaire
EP0795241B1 (fr) Procede de cryptographie a cle publique base sur le logarithme discret
EP1523823A2 (fr) Procede de generation de cles electroniques pour procede de cryptographie a cle publique et objet portatif securise mettant en oeuvre le procede
EP0909495B1 (fr) Procede de cryptographie a cle publique
WO2011144554A1 (fr) Procédé d&#39;obtention de clés de chiffrement, terminal, serveur, et produits programmes d&#39;ordinateurs corresupondants.
EP1456998A1 (fr) Procede cryptographique permettant de repartir la charge entre plusieurs entites et dispositifs pour mettre en oeuvre ce procede
EP3857810B1 (fr) Procédé cryptographique de comparaison sécurisée de deux données secrètes x et y
EP1520370B1 (fr) Procédé et dispositifs cryptographiques permettant d&#39;alleger les calculs au cours de transactions
WO2019122679A1 (fr) Procédé cryptographique de signature de groupe
EP3008851B1 (fr) Procédé et système de délégation d&#39;un calcul d&#39;une valeur de couplage bilinéaire à un serveur de calcul
WO2023242429A1 (fr) Procédé de détermination homomorphe du signe d&#39;un message par dilatation, procédés et dispositifs associés
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
FR2892875A1 (fr) Procede de securisation des paiements par decoupage des montants
Robert L'ORGANISATION DE LA CRYPTOLOGIE MODERNE
WO2003023606A1 (fr) Procede pour le calcul d&#39;une exponentiation dans un groupe et son application a l&#39;authentification d&#39;un utilisateur
FR2903258A1 (fr) Systeme et procede cryptographique a cle publique pour l&#39;authentification d&#39;une premiere entite par une seconde entite
EP1297504A1 (fr) Procede et systeme pour limiter la possibilite de transformation de donnees destinees a constituer, notamment, des jetons de pre-paiement

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PH PL PT RO RU SC SD SE SG SK SL TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2003760742

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2004514946

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 10518639

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 2003760742

Country of ref document: EP