Brevet FR2841411A1 — publié le 20031226

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 > realisant la fonction de chiffrement ou de verification de signature et un algorithme > 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 > 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: = 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 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 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 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() 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. 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: = 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 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