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

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

Info

Publication number
FR2841411A1
FR2841411A1 FR0207688A FR0207688A FR2841411A1 FR 2841411 A1 FR2841411 A1 FR 2841411A1 FR 0207688 A FR0207688 A FR 0207688A FR 0207688 A FR0207688 A FR 0207688A FR 2841411 A1 FR2841411 A1 FR 2841411A1
Authority
FR
France
Prior art keywords
key
prime
length
calculation
generating electronic
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.)
Granted
Application number
FR0207688A
Other languages
English (en)
Other versions
FR2841411B1 (fr
Inventor
Nathalie Feyt
Marc Joye
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
Priority to FR0207688A priority Critical patent/FR2841411B1/fr
Priority to PCT/FR2003/001871 priority patent/WO2004002058A2/fr
Priority to US10/518,639 priority 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 FR2841411A1 publication Critical patent/FR2841411A1/fr
Application granted granted Critical
Publication of FR2841411B1 publication Critical patent/FR2841411B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related 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/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

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, 1) e l'exposant public et 1 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 la clé d à partir des résultats de l'étape A et de la connaissance du couple (e, 1).

Description

sera definitivement bloquee.
PROCEDE DE GENERATION DE CLES ELECTRONIQUES POUR
PROCEDE DE CRYPTOGRAPHIE A CLE PUBLIQUE ET OBJET
PORTATIF SECURISE METTANT EN UVRE LE PROCEDE
L'inventlon concerne un procede de generation de cles electroniques pour procede de cryptographic a cle publique. Wile concerne egalement un objet portatif
securise mettant en uvre le procede.
L' invention concerne plus particulierement la generation de cles d'un systeme cryptographique de type RSA et leur stockage sur un objet securise en vue de leur utilisation dans une application necessitant de la securite. L' invention s'applique tout particulierement a des objets securises ne possedant pas d'importante ressource memoire telle que de la memoire electriquement programmable, ni de ressources de calcul
puissantes comme ctest le cas pour les cartes a puce.
Une application de ['invention est le commerce electronique par l'intermediaire d'un telephone portable. Dans ce contexte les cles peuvent se trouver
sur la carte SIM du telephone.
Il est en effet prevu que certains programmes d' applications utilisent de telles cles pour mettre en uvre un transfert de donnees confidentielles, dans un contexte de commerce electronique par exemple. Par la suite, on considerera que ces applications vent
fournies par une entite fournisseur de service.
En outre, il est connu que pour garantir l'integrite de la cle, on lui associe generalement un
certificat fourni par une entite de confiance.
Parmi les procedes de cryptographic a cle publique, on stinteresse dans ce qui suit au protocole de cryptographic RSA (Rivest Shamir et Adleman). Ce protocole met en muvre une etape de generation de nombres premiers de grande taille, couteuse en temps de
calcul et en place memoire.
On rappelle que ce protocole de cryptographic RSA permet le chiffrement d'informations et/ou l'authentification entre deux entites et/ou la
signature electronique de messages.
Le protocole de cryptographic RSA est le plus utilise car il possede des proprietes qui lui permettent d'etre employe aussi bien en chiffrement
qu'en generation de signature.
Pour ce faire, le systeme de cryptographic RSA comprend un algorithme << public >> realisant la fonction de chiffrement ou de verification de signature et un algorithme << prive >> realisant la fonction de
dechiffrement ou de generation de signature.
Sa securite repose sur la difficulte 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 cle privee (secrete) d utilisee par la fonction de dechiffrement ou par la
fonction de calcul d'une signature.
Afin de mieux comprendre le probleme qui va etre expose dans la suite, on va rappeler dans ce qui suit les parametres entrant dans un schema de cryptographic
RSA:.
1) L'exposant public e: Il est propre a une application et est fourni par cette application. De ce fait, il est commun a tous les
utilisateurs de cette meme application.
2) Les parametres p et q: Ils vent generes a l'issu d'un calcul couteux en temps. Ils ont en general la meme longueur (meme
taille). Cette longueur est classiquement de 512 bits.
Pour augmenter la securite, cette longueur peut aller de 512 bits a 2048, 2048 bits etant envisages pour le futur. 3) N est le module public et est calcule a partir de la relation suivante: N = P*q La cle de l'algorithme est cite de longueur e lorsque le module public N est de longueur e. Cette longueur est fixee par l' application (ou fournisseur de service).
4) les parametres e et N forment la cle publique.
) la cle privee d est calculee a partir de la relation suivante: d = 1/e[mod(p-l)(q-1)]; (1/e= e 1) soit encore ed - 1 [(mod ppcm(p-1, q-1)]; ppcm signifie le plus petit commun multiple, les parametres secrets vent formes par le triplet
(d, p, q).
6) la forme << normale >> de la cle privee est: (d,N). 6) la forme CRT (Chinese Remainder Theorem) de la cle privee est: dans ce cas la cle privee comporte 5 parametres: P. q dp avec dp = d mod(p-1) dq avec dq = d mod(q-1)
Iq avec Iq = q modp.
Le principe de la generation d'une cle selon le schema RSA consiste done comme on peut le voir, a generer une cle privee d a partir d'un exposant public e (ou cle publique) fixe par ['application, les parametres p, q etant generes de sorte que p*q = N. la
longueur e de N etant fixee.
Lorsque plusieurs applications vent prevues, chaque fournisseur de service fournit son exposant public e et la longueur du module public N. de maniere a ce que puisse etre generee la cle privee d correspondante. Ainsi, la mise en muvre d'un calcul de cle RSA necessite la connaissance de l'exposant public e et celle de la longueur e de la cle de l'algorithme c'est a dire la longueur du modulo N. Avec les donnees d' entree e et e r il reste a generer le couple de nombre premier p et q de maniere a ce que ces derniers repondent aux conditions suivantes: (i) p-1 et q-1 premiers avec e et,
(ii) N= p*q un nombre entier de longueur e.
Ces contraintes vent couteuses en temps de calcul.
On rappelle a ce propos que la generation et le stockage des cles pour des objets portables tels que les cartes a puce s'effectuent a ce j our des deux manieres suivantes: Selon une premiere maniere, le calcul d'une cle RSA est effectue sur un serveur pour profiler d'une puissance de calcul importante. On requiert alors pour plus de securite, un certificat que l'on telecharge avec la cle au sein de ['objet securise lors de sa
phase de personnalisation.
s Cette solution presente les inconvenients suivants: - d'une part malgre le cadre relativement securise de la personnalisation, il peut y avoir vol ou duplication de la cle du fait de son transfert du serveur vers ['objet securise, et - d'autre part, chaque cle est chargee dans ['objet dans une phase initiale de personnalisation, ce qui necessite de prevoir un maximum de cles dans chaque
objet pour pouvoir anticiper les future besoins.
Dans la pratique, on stocke dans ['objet portable des ensembles de cles et de certificate correspondent a chaque application susceptible d'etre utilisee, sans savoir si ces cles seront reellement utiles ulterieurement. Un emplacement memoire important est utilise inutilement. Par exemple 0, 3 Koctets vent necessaires pour une cle de RSA de module de 1024bits, alors que les cartes actuelles ont au plus 32Koctets de memoire programmable. En outre, un nombre important de certificate est achete a l'entite de confiance ce qui
est couteux.
- en outre l' inconvenient tout aussi important qui est qu'il n'est pas possible d'aj outer de nouvelles cles au fur et a mesure que de nouvelles applications
pourraient etre envisagees.
Selon une deuxieme solution, le calcul peut etre effectue au sein de ['objet securise. Cela resout le premier inconvenient de la solution precedente mais cree une lourdeur de traitement au niveau de ['objet
securise qui possede une faible capacite de calcul.
En effet, lorsque la generation d'une cle RSA est realisee par un objet portatif tel qu'une carte a puce, si la longueur imposee de cle RSA est de 2048 bits, le calcul prend alors 30 secondes avec un algorithme performant. Meme si ce temps de calcul est acceptable pour certaines applications car on genere les cles RSA une senle fois pour une application donnee, ceci n'est pas satisfaisant pour les services de telephonic mobile (GSM par exemple) car cette operation se renouvelle a chaque changement de carte SIM et qutun plus grand nombre de cles doit etre prevu pour repondre aux
besoins de differentes applications.
D'autre part, cette solution presente touj ours le second inconvenient de la solution precedente a savoir
la necessite de ressource memoire.
Du fait d'un besoin en ressources de calcul important, les cles vent tonj ours crees durant la phase de personnalisation a partir des exposants publics e fournis par les differentes entites fournisseur de service. Cette etape de calcul ne peut pas etre mise en muvre ulterieurement car elle paralyserait le
fonctionnement de ['objet.
De facon pratique ce calcul n'est presque jamais mis en muvre par la carte. En effet, ce calcul est long et il pourrait ralentir la phase de personnalisation, de plus sa duree est variable et elle pourrait se reveler incompatible avec les procedes de
personnalisation des cartes a puce.
La presente invention a pour but de resoudre ces problemes. Plus precisement l' invention a pour objectif de resoudre le probleme de lourdeur du calcul lie a la gestion de generation de cles ainsi que le probleme de manque de flexibilite du au stockage initial et definitif d'un nombre important de cles et de
certificate en phase de personnalisation.
A cette fin, un objet de la presente invention concerne un procede de generation de cl es elect ronique s d pour procede de cryptographic a cle publique au moyen d'un dispositif electronique, principalement caracterise en ce qu'il comprend deux etapes de calcul dissociees: Etape A 1) Calcul de couples de nombres premiers (p,q) ou de valeurs representatives de couples de nombres premiers, ce calcul etant independent de la connaissance du couple (e, l) dans lequel e est ltexposant public et l la longueur de la cle du procede de cryptographic, l etant egalement la longueur du module N audit procede, 2) Stockage des couples ou des valeurs ainsi obtenus; Etape B Calcul de la cle d a partir des resultats de
l'etape A et de la connaissance du couple (e,l).
Selon une premiere variante, l'etape A-1) consiste a calculer des couples de nombres premiers (p,q) sans connaissance de l'exposant public e ni de la longueur l de la cle, en utilisant un parametre qui est le produit de petite nombres premiers. De cette maniere couple (p,q) obtenu a ltetape A, a une probabilite maximale de pouvoir correspondre a un futur couple (e, l) et permettra de calculer une cle d lors de la mise en uvre de l'etape B. Selon une autre variante dependante de la variante precedente, le calcul A-1) tient compte en plus du fait que e a une forte probabilite de faire partie de ['ensemble {3, 17,..., 2l6l}, on utilise pour cela dans le calcul de l'etape A, une graine 6 qui permet de calculer non pas des couples (p,q) mais une valeur representative appelee image des couples (p, q). Le stockage A-2) consiste alors a memoriser cette image. Ceci permet de gagner de la place memoire puisqu'une image est plus petite qu'un nombre premier p
ou q par exemple 32 octets compares a 128 octets.
Selon une troisieme variante on effectue un calcul de couples (p,q) pour differents couples (e,l) probables. De facon pratique le parametre va contenir
les valeurs usuelles de e par exemple 3, 17.
Selon une quatrieme variante l'etape A-1) comprend une operation de compression des couples (p,q) calcules et ltetape A-2) consiste alors a stocker les valeurs
compressees ainsi obtenues.
L'etape B comprend la verification des conditions suivantes pour un couple (e, e) donne: (i) p-1 et q-1 premiers avec e et,
(ii) N= p*q un nombre entier de longueur e.
Selon un mode de realisation prefere, l'etape A-1) comprend la generation d'un nombre premier q, le choix d'une limite inferieure Bo pour la longueur e O de ce nombre premier a generer telle que e 0 2 Bo par exemple Bo= 256 bits, et elle comprend en outre les sous-etapes suivantes: 1) -calculer des parametres v et w a partir des relations suivantes et les memoriser: = <22to-1l w 2 / dans lesquelles est memorise et correspond au produit des f plus petite nombres premiers, f etant choisi de maniere telle que < 2Bo, 2)-choisir un nombre j dans l'intervalle des nombres entiers 1v,....,w-1} et calculer e =j; 3)- choisir et enregistrer un nombre premier k de longueur course par rapport a la longueur d'une cle RSA dans l'intervalle des nombres entiers {0,...., -1}, (k,) etant co-premiers,; 4)-calculer q= k+t, )-verifier 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= a k (m o d); a appartenant au groupe multiplicatif Z*n des nombres entiers modulo;
b) reiterer a partir de la sous-etape 4).
Avantageusement l'etape B comprend, pour un couple (p,q) obtenu a ltetape A,et un couple (e,l) donne: - La verification des conditions suivantes: (i) p-1 et q-1 premiers avec e et, (ii) N= p*q un nombre entier de longueur e, - Si le couple (p,q) ne repond pas a ces conditions: - Choix d'un autre couple et reiteration de la verification jusqu'a ce qu'un couple convienne, - Calcul de la cle d a partir du couple (p,q)
obtenu a ['issue de cette verification.
L' invention a egalement pour objet, un objet securise portatif apte a generer des cles electroniques d d'un algorithme de cryptographic de type RSA, caracterise en ce qu'il comprend au moins: - Des moyens de communication pour recevoir au moins un couple (e,l), - Une memoire pour stoker les resultats d'une etape A consistent a: Calculer des couples de nombres premiers (p,q) ou de valeurs representatives de couples de nombres premiers, ce calcul etant independent de la connaissance du couple (e, 1) dans lequel e est l'exposant public et l la longueur de la cle du lO procede de cryptographic, l etant egalement la longueur du module N audit procede, - Un programme pour mettre en muvre une etape B consistent a: Calculer d'une cle d a partir des resultats de ltetape A et de la connaissance d'un couple (e,l), L'objet securise portatif comprend en outre un programme pour la mise en muvre de l'etape A, les
etapes A et B etant dissociees dans le temps.
L'objet securise portatif pourra etre constitue
par une carte a puce.
D'autres particularites et avantages de l' invention
apparaltront clairement a la lecture de la description
qui est donnee ci-apres a titre d'exemple non limitatif et en regard de la figure unique representant un schema
d'un systeme de mise en muvre du procede.
La suite de la description est faite dans le cadre
de ['application de l' invention a un objet portatif de type carte a puce et pour simplifier ['expression on
parlera de carte a puce.
Selon le procede propose la generation de cles se
fait en deux etapes dissociees.
La premiere Etape A comporte un calcul de couples de nombres premiers (p, q) ou de valeurs representatives
de couples de nombres premiers appelees images.
Les couples (p,q) obtenus vent stockes.
Ce calcul est lourd et il est d'autant plus lourd si on utilise un algorithme de generation de nombres
premiers classique.
Il est propose ici que ce calcul soit effectue de maniere independante de la connaissance du couple (e,l). Comme cela va etre detaille dans la suite un mode de realisation prefere pour mettre en uvre cette etape permet d' alleger les calculs et de limiter la place memoire necessaire pour le stockage des couples (p,q)
obtenus en stockant une image de ces couples.
La deuxieme Etape B comporte le calcul a proprement parler de la cle d a partir des resultats de
l'etape A et de la connaissance du couple (e,l).
Ce calcul comprend, pour un couple (p,q) obtenu a ltetape A, et un couple (e,l) donne: - La verification des conditions suivantes: (i) p-l et q-l premiers avec e et, (ii) N= p*q, ce nombre doit etre un nombre entier et de longueur e, - Si un couple (p,q) ne repond pas a ces conditions, on choisit un autre couple et on reitere de la verification jusqu'a ce qu'un couple convienne parmi les couples obtenus lors de l'etape A. - On peut proceder alors au calcul de la cle d a partir du couple (p,q) obtenu a ['issue de cette verification. La premiere etape qui correspond a un calcul relativement lourd par rapport a la deuxieme etape, peut etre executee par un autre organe que la carte a puce par exemple par un serveur. Dans ce cas, les resultats du calcul de cette premiere etape pourront etre charges sur une carte a puce au moment de la personnalisation. Le calcul de l'etape A peut egalement etre fait par la carte elle-meme a un instant quelconque qui ne gene pas l'utilisateur de cette carte. Par exemple, ce calcul peut etre fait lors de la personnalisation de la
carte ou plus tard.
De facon pratique, lors de l'utilisation de la carte, pour obtenir un service, si une cle privee est necessaire, alors la cle publique est fournie par le fournisseur de service (eventuellement a distance si elle n'est pas deja stockee dans la carte) afin de generer la cle privee. Cette etape de generation (etape B de calcul) est effectuee de maniere rapide par la carte. On volt done que de nouvelles applications qui necessitent le calcul d'une cle privee d peuvent etre
prevues pour une carte.
On volt egalement qu'il n'y a pas besoin d'associer un certificat aux couples (p,q) car ils ne vent pas
associes a une cle privee.
Ainsi, la generation d'une cle privee peut etre faite a bord c'est a dire par la carte elle-meme avec un gain d'un facteur 10 en temps d' execution par rapport aux procedes de generation de cles connus a ce jour. On va decrire dans ce qui suit un mode prefere de realisation pour la mise en uvre de l'etape A. Ce mode de realisation est particulierement avantageux pour la mise a bord d'une carte a puce car il permet d'optimiser a la fois la place memoire mais aussi le
temps de calcul.
Tout d'abord, afin de s' assurer que N=p*q est un entier de t-bit, on choisit p appartenant a l'intervalle: Lg22(l-lo)-l,2l-lo Et q appartenant a l'intervalle:
L20-14
Pour io compris entre 1 et t.
Ainsi min(p)min(q) est compris entre 2 -1 et N. et max(p)max(q) est compris entre N et 2' comme cela est demande. De cette facon, la condition ii) ci-dessus mentionnee se reduit a rechercher des nombres premiers dans l'intervalle: L:22' l2' -1] La solution proposee exploite le parametre P. Ce parametre n est le produit de petite nombres premiers dans lequel on peut trouver notamment 3, 17, 216+1 ' nombres premiers generalement utilises comme exposants publics. Ainsi, la probabilite pour qu'un couple (p,q) corresponde a un futur couple (e,l) donne, dea tres elevee, augmente encore loraque comporte de telles valeurs. On choisit les f plus petite nombres premiers, f etant choisi de maniere telle que Mipi < 2Bo, Bo est la borne inferieure choisie pour e 0. par exemple on peut
choisir Bo egal a 256 bits.
est egal au produit: 2.3 191 et est inferieur a 2256 On peut alors memoriser cette valeur dans la carte par exemple comme une constante dans la memoire
morte de programme.
La premiere phase du procede consiste a generer et a enregistrer un nombre premier k de longueur course par rapport a la longueur d'une cle RSA dans l'intervalle des nombre entiers {0,...., P-1}, (k, H) etant copremiers, c' est a dire n' ayant pas de facteur commun. La deuxieme phase consiste ensuite a partir de ce nombre k a construire le premier candidat q qui
satisfait la condition d'etre copremier avec.
Si ce premier candidat ne satisfait pas cette condition, alors il est mis a j our c'est a dire qu'un autre candidat est choisi jusquta ce qu'une valeur de
q satisfaisant a la condition soit trouvee.
On va presenter dans la suite les differentes etapes de l'algorithme de generation d'un nombre premier entrant dans le calcul d'une cle RSA selon ['invention. L,algorithme propose fonctionne queue que soit la longueur lo donnee pour le nombre premier q qui doit
etre genere.
La generation du nombre premier p est identique, il suffit de remplacer q par p dans les etapes qui vont
etre developpees et de remplacer lo par 1-lo.
Apres avoir fixe la limite Bo, on calcule les nombres premiers uniques v et w satisfaisant les conditions suivantes: 422e0-1 < vn < <22eo-1 + n 2to -n < wn < 2to Ceci, se traduit par le calcul de v et w par les relations suivantes: W=2eO / n Puis apres avoir pris k appartenant au groupe multiplicatif Z*n des nombres entiers modulo, on construit le premier candidat q tel que, q=k+j pour tout j appartenant a l'intervalle [v, w-l] Comme justement k apparient a Z*], la probabilite
pour avoir un premier candidat q premier, est elevee.
Si ce n'est pas le cas, on met a j our k en prenant k egal a ak(mod P), a appartenant au groupe Z*n et on reitere jusqu'a trouver une valeur de q correspondent a
un nombre premier.
Une maniere de tester la primalite d'un nombre est
par exemple d'utiliser le test de Rabin-Miller.
Les differentes etapes de l'algorithme propose vent precisement les suivantes: 1) -calculer des parametres v et w a partir des relations suivantes et les memoriser: V= 42o-1l W=2eO /:[ dans lesquelles est memorise et correspond au produit des f plus petite nombres premiers, f etant choisi de maniere telle que < 2Bo, 2)-choisir un nombre j dans l'intervalle des nombres entiers {v,....,w-1} et calculer t=j; 3)-choisir et enregistrer un nombre premier k de longueur course par rapport a la longueur d'une cle RSA dans l'intervalle des nombres entiers {0,..., -1}, (k,) etant co-premiers,; 4)-calculer q= k+f, )-verifier 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= a k (m o d); a appartenant au groupe multiplicatif Z*n des nombres entiers modulo; b) reiterer a partir de l'etape 4); 6) enregistrer a, k' j pour les utiliser afin de retrouver q et ensuite exploiter q pour l'utiliser lors
d'un calcul ulterieur de generation d'une cle RSA.
Au lieu de stocker la valeur de q on va proceder
avantageusement comme decrit dans la suite.
Une maniere simple de mettre en uvre cet algorithme peut consister pour chaque longueur de cle RSA envisagee, de stocker les valeurs de k et j de
maniere a re construire q.
Plutot que de choisir un nombre aleatoire j comme indique a l'etape 2) un autre mode de realisation peut consister a construire j a partir d'un nombre aleatoire 2s court. On prend par exemple un nombre de longueur 64bit, que l'on designe par graine et que l'on denote 6. Cette graine est alors prise comme valeur d' entree d'un generateur de nombres pseudoaleatoires PRNG, lequel va
permettre de generer j.
j est alors defini comme PRNG1()(mod(w-v)+v).
Ce mode d' execution permet de reduire considerablement les besoins en place memoire car il n'y a a stocker que les valeurs de et de k en memoire EEPROM. La valeur de est en memoire morte (dans le
programme de calcul).
On peut encore reduire les besoins en place memoire en constatant que: si kto' est la premiere valeur de k appartenant au groupe Z*], alors, les nombres premiers generes ont la forme: q= afl ko' mod +j
f etant le nombre d'echec du test de l'etape 4).
Cette valeur ko' qui appartient au groupe Z*, peut l0 etre facilement calculee a partir d'une graine aleatoire course comme par exemple et en utilisant la
fonction de Carmichael de 2 denotee \().
En utilisant cette fonction on peut exprimer ko' par la relation suivante: koy= [PRNG2()+b G3( (PRNG2() <-l)](mod:)
b etant un element d'ordre \() appartenant a Z*n.
Ces deux modes d' execution permettent de reduire les besoins en place memoire puisqu'on ne va devoir stoker dans ce cas, que la valeur de la graine 6 et differentes valeurs de f pour les longueurs desirees de cles. Pour des cles RSA de modulo superieur a 2048 bits, les experiences numeriques qui ont ete faites par les inventeurs montrent que f est egal a 23. Ceci signifie
que f peut etre code sur 1 byte soit 8 octets.
A titre d'exemple, pour generer des cles RSA de longueur allant de 512 a 2048 bits avec une granulite de 32 bits, il y a 49 longueurs de cle possibles. Il est done necessaire de stocker sur la carte un byte soit 8 octets correspondent a la valeur de o. Il est egalement necessaire 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 memoire
EEPROM.
Un dernier mode d' execution permettant de reduire la place memoire, consiste a stoker dans le programme de calcul, c'est a dire en memoire de programme, plusieurs valeurs de et les valeurs de \() correspondantes pour differentes longueurs de cles envisagees. On peut remarquer qu'une grande valeur de
conduit aux plus petites valeurs pour f.
Le nombre premier q genere selon l'etape 4) par l'algorithme qui vient d'etre decrit satisfait comme on l'a vu precedemment a la condition: q= afl k(o mod +j* Si e divise on peut exprimer q par la relation suivante: q= af1 ko' mod(e) Afin que la condition i) enoncee au debut de la
description soit remplie, il faut choisir a tel que
a=l(mod e) et forcer kro' de maniere a ce qu'il soit
different de l(mod e).
Ainsi le nombre premier q obtenu satisfait la
relation q= ko' different de l(mod e).
La generation du nombre premier p est identique, q est remplace par p dans les etapes qui ont ete
developpees et lo par l-lo.
Comme cela a ete dit, le programme mettant en uvre le procede de la carte n'a pas besoin de connaitre a priori l'exposant public e. Cet exposant peut done etre fourni a tout moment par une application chargee dans
la carte.
Toutefois, on salt que pour la plupart des applications (plus de 95%), les valeurs de e utilisees
vent les valeurs {3, 17, 216+1}.
Afin de couvrir le plus grand nombre d' applications, on va de facon preferentielle choisir a tel que a= 1 mod({3, 17, 2l6+1}) et forcer ko' different
de cette valeur: 1 mod({3, 17, 216+1}).
On choisit par exemple comme candidat possible pour a, le nombre premier R= 264-232+1 a condition que le plus
grand commun diviseur de et de R soit egal a 1.
La condition requise pour kto' peut etre obtenue par
le theoreme du reste chinois.
Comme cela a ete dit une autre alternative peut consister pour ltetape A1) a calculer des couples de nombres premiers (p,q) pour differents couples (e,l) probables. En conclusion, l' invention propose un procede en deux etapes dissociees, la deuxieme etape tres rapide par rapport aux solutions connues, peut etre executee en temps reel. Ce procede est egalement peu couteux en
place memoire.
En outre, il n'y a pas de limite pour de nouvelles applications non prevues a la personnalisation de la
carte.

Claims (15)

REVENDICATIONS
1. Procede de generation de cles electroniques d pour procede de cryptographic a cle publique au moyen d'un dispositif electronique, principalement caracterise en ce qu'il comprend deux etapes de calcul dissociees: Etape A l) Calcul de couples de nombres premiers (p,q) ou de valeurs representatives de couples de nombres premiers, ce calcul etant independent de la connaissance du couple (e, l) dans lequel e est ltexposant public et l la longueur de la cle du procede de cryptographic, l etant egalement la longueur du module N audit procede, 2) Stockage des couples ou des valeurs ainsi obtenus; Etape B Calcul d'une cle d a partir des resultats de
ltetape A et de la connaissance du couple (e,l).
2. Procede de generation de cles electroniques selon la revendication l, caracterise en ce que l'etape A-l) consiste a calculer des couples de nombres premiers (p,q) sans connaissance de l'exposant public e ni de la longueur l de la cle, en utilisant un parametre qui est le produit de petite nombres premiers, de maniere a ce que chaque couple (p,q) ait une probabilite maximale de pouvoir correspondre a un futur couple (e,l) et puisse permettre de calculer une
cle d.
3. Procede de generation de cles electroniques selon la revendication 2, caracterise en ce que le calcul de ltetape A-1) tient compte en plus du fait que e a une forte probabilite de faire partie de ['ensemble {3, 17/.. ., 216+ll, on utilise pour cela dans ce calcul une graine qui permet de calculer non pas des couples (p,q) mais une valeur representative appelee image des
couples (p,q).
4. Procede de generation de cles electroniques selon la revendication 1 et 3, caracterise en ce le
lO stockage A-2) consiste a memoriser l' image des couples.
5. Procede de generation de cles electroniques selon la revendication 1, caracterise en ce que l'etape A-1) consiste a calculer des couples de nombres
premiers (p,q) pour differents couples (e,l) probables.
6. Procede de generation de cles electroniques
selon les revendications 2 et 5, caracterise en ce que
le parametre contient les valeurs usuelles de
l'exposant public e par exemple 3, 17.
7. Procede de generation de cles electroniques
selon la revendications 1, caracterise en ce que
ltetape A-1) comprend une operation de compression des couples (p,q) calcules et l'etape A-2) consiste alors a
stocker les valeurs compressees ainsi obtenues.
8. Procede de generation de cles electroniques selon la revendication 1, caracterise en ce que l'etape A-1) comprend la generation d'un nombre premier q, pour lequel on fixe une limite inferieure Bo pour la longueur e Ode ce nombre premier a generer, telle que e 0 2 Bo par exemple Bo= 256 bits, et en ce qu'elle comprend les sous etapes suivantes: 1) -calculer des parametres v et w a partir des relations suivantes et les memoriser: = <'2 2to i/ w=2 / dans lesquelles est memorise et correspond au produit des f plus petite nombres premiers, f etant choisi de maniere telle que < 2Bo, 2)-choisir un nombre j dans l'intervalle des nombres entiers {v,...., w-1} et calculer t=j; 3)-choisir et enregistrer un nombre premier k de longueur course par rapport a la longueur d'une cle RSA dans l'intervalle des nombres entiers {0,...., -1}, (k,) etant co-premiers,; 4)-calculer q= k+t, )-verifier 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 = a k (m o d); a appartenant au groupe multiplicatif z*n des nombres entiers modulo; b) reiterer a partir de l'etape 4);
9. Procede de generation de cles electroniques
selon les revendications 3 et 8, caracterise en ce que
les nombres j et k peuvent etre generes a partir de la
graine 6 stockee en memoire.
10. Procede de generation de cles electroniques selon la revendication 8, caracterise en ce que le nombre premier p est genere en reiterant toutes les sous etapes precedentes en remplacant q par p et en
remplacant e O par e - e 0.
11. Procede de generation de cles electroniques
selon l'une quelconque des revendications precedentes,
caracterise en ce que: L'etape B comprend, pour un couple (p,q) obtenu a l'etape A,: - La verification des conditions suivantes: (i) p-1 et q-1 premiers avec e donne et, (ii) N= p*q un nombre entier de longueur donnee, - Si le couple (p'q) ne repond pas a ces conditions: - Choix d'un autre couple et reiteration de la verification jusqu'a ce qu'un couple convienne, - Calcul de la cle d a partir du couple (p,q) obtenu.
12. Objet securise portatif apte a generer des cles electroniques d d'un algorithme de cryptographic de type RSA, caracterise en ce qu'il comprend au moins: - Des moyens de communication pour recevoir au moins un couple (e,l), - Une memoire pour stoker les resultats d'une etape A consistent a: Calculer des couples de nombres premiers (p,q) ou de valeurs representatives de couples de nombres premiers, ce calcul etant independent de la connaissance du couple (e, l) dans lequel e est l'exposant public et l la longueur de la cle du procede de cryptographic, l etant egalement la longueur du module N de ce p, - Un programme pour mettre en muvre une etape B consistent a: Calculer une cle d a partir des resultats de l'etape A et de la connaissance d'un couple (e,l),
13. Objet securise portatif selon la revendication 12, caracterise en ce qu'il comprend en outre un programme pour la mise en uvre de ltetape A, les
etapes A et B etant dissociees dans le temps.
14. Objet securise portatif selon la revendication 13, caracterise en ce que le programme de mise en oeuvre de ltetape A met en uvre les sousetapes: 1) -calculer des parametres v et w a partir des relations suivantes et les memoriser: v=42--l w=2/ dans lesquelles est memorise et correspond au produit des f plus petite nombres premiers, f etant choisi de maniere telle que < 2 , Bo est une limite inferieure fixee pour la longueur e odu nombre premier a generer telle que e > Bo par exemple Bo= 256 bits, 2)-choisir un nombre j dans l'intervalle des nombres entiers lv, ....,w-1} et calculer t=j; 3)-choisir et enregistrer un nombre premier k de longueur course par rapport a la longueur d'une cle RSA dans l'intervalle des nombres entiers {0,...., -1}, (k, P) etant co-premiers, 4)-calculer q= k+t, )-verifier 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 = a k (m 0 d); a appartenant au groupe multiplicatif Z*q des nombres entiers modulo i
b) reiterer a partir de l'etape 4).
i
15. Objet securlse portatif salon la revendlcatlon 12 ou 13 ou 14, caracterise en ce qu'll est constltue
FR0207688A 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 Expired - Fee Related FR2841411B1 (fr)

Priority Applications (6)

Application Number Priority Date Filing Date Title
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
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
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 (1)

Application Number Priority Date Filing Date Title
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
FR2841411A1 true FR2841411A1 (fr) 2003-12-26
FR2841411B1 FR2841411B1 (fr) 2004-10-29

Family

ID=29719931

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0207688A Expired - Fee Related 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

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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008152440A1 (fr) * 2007-06-15 2008-12-18 Sony Ericsson Mobile Communications Ab Génération d'une clé rsa dépendante d'un dispositif

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7762470B2 (en) 2003-11-17 2010-07-27 Dpd Patent Trust Ltd. RFID token with multiple interface controller
US7597250B2 (en) 2003-11-17 2009-10-06 Dpd Patent Trust Ltd. RFID reader with multiple interfaces
US7213766B2 (en) 2003-11-17 2007-05-08 Dpd Patent Trust Ltd Multi-interface compact personal token apparatus and methods of use
WO2008030184A1 (fr) * 2006-07-04 2008-03-13 Khee Seng Chua Systeme d'authentification perfectionne
US8170216B2 (en) * 2008-06-18 2012-05-01 Apple Inc. Techniques for validating and sharing secrets
KR20130097985A (ko) * 2012-02-27 2013-09-04 삼성전자주식회사 양방향 커뮤니케이션을 위한 방법 및 장치
EP3562092A1 (fr) * 2018-04-26 2019-10-30 Thales Dis Design Services Sas Procédé pour générer une clé cryptographique embarquée à l'aide d'une fonction physiquement non clonable

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 *
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 February 1995 (1995-02-16), pages 132 - 143, XP010134533, ISBN: 0-8186-7027-4 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008152440A1 (fr) * 2007-06-15 2008-12-18 Sony Ericsson Mobile Communications Ab Génération d'une clé rsa dépendante d'un dispositif
US8472620B2 (en) 2007-06-15 2013-06-25 Sony Corporation Generation of device dependent RSA key

Also Published As

Publication number Publication date
WO2004002058A2 (fr) 2003-12-31
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

Similar Documents

Publication Publication Date Title
EP2256987B1 (fr) Protection d&#39;une génération de nombres premiers pour algorithme RSA
EP1151576B1 (fr) Procede cryptographique a cles publique et privee
EP2296086B1 (fr) Protection d&#39;une génération de nombres premiers contre des attaques par canaux cachés
EP1110140A1 (fr) Procede de calcul pour la cryptographie a courbe elliptique
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
EP2127197A2 (fr) Chiffrement broadcast base sur identite
WO2013088065A1 (fr) Procede de generation de nombres premiers prouves adapte aux cartes a puce
EP0763913B1 (fr) Procédé de mise en gage de données pour un protocole d&#39;échange de données sécurisé
EP0878934B1 (fr) Procédé d&#39;identification à clé publique utilisant deux fonctions de hachage
EP1807967A1 (fr) Procede de delegation securisee de calcul d&#39;une application bilineaire
FR2841411A1 (fr) Procede de generation de cles electroniques pour procede de crytographie a cle publique et objet portatif securise mettant en oeuvre le procede
WO2005022820A1 (fr) Procede pour la mise en oeuvre securisee d&#39;un algorithme de cryptographie de type rsa et composant correspondant
EP3724799A1 (fr) Technique de protection d&#39;une clé cryptographique au moyen d&#39;un mot de passe utilisateur
FR2739469A1 (fr) Procede de cryptographie a cle publique base sur le logarithme discret
FR2888690A1 (fr) Procede cryptographique pour la mise en oeuvre securisee d&#39;une exponentiation et composant associe
CA2257907A1 (fr) Procede de cryptographie a cle publique
EP1145482B1 (fr) Procédé destiné à prouver l&#39;authenticité d&#39;une entité ou l&#39;intégrité d&#39;un message au moyen d&#39;un exposant public égal à une puissance de deux
EP1520370B1 (fr) Procédé et dispositifs cryptographiques permettant d&#39;alleger les calculs au cours de transactions
EP3857810B1 (fr) Procédé cryptographique de comparaison sécurisée de deux données secrètes x et y
EP3882895A1 (fr) Détection de fautes par un circuit électronique
WO2003055134A9 (fr) Procede cryptographique permettant de repartir la charge entre plusieurs entites et dispositifs pour mettre en oeuvre ce procede
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
FR3133684A1 (fr) Procédé d’authentification d’un dispositif esclave par un dispositif hôte
FR3143243A1 (fr) Signature et dechiffrement de message securises par double rsa-crt
FR3038473A1 (fr) Procede de traitement cryptographique de donnees et programme d&#39;ordinateur associe

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20100226