Brevet FR2756122A1 — publié le 19980522

PROCÉDÉ DE SIGNATURE ET/OU D'AUTHENTIFICATION DE MESSAGES ÉLECTRONIQUES. La présente invention concerne un procédé de signature et/ou d'authentification de messages électroniques. Elle est particulièrement destinée à être mise en oeuvre à l'aide d'un appareil portable à microprocesseur du type carte à puce électronique11. Afin de préserver l'exclusivité de certains services, une carte à puce comporte généralement des clefs numériques, une clef numérique étant constituée par une chaîne de caractères numériques qui sera utilisée par un algorithme de calcul pour signer ou pour authentifier des messages échangés entre la carte et un organe vérifieur comme un terminal de lecture ou une autorité centrale, ou encore pour authentifier la carte utilisée. On peut également utiliser de telles clefs pour crypter les messages transmis. Les messages peuvent ensuite être décryptés uniquement par un organe possesseur soit d'une clef égale à la clef de cryptage (on parle alors de cryptographie symétrique), soit d'une clef correspondante (cryptographie asymétrique) à la clef de cryptage secrète. Par exemple, il s'agit de signer des messages envoyés par une carte à un terminal de lecture ou à une autorité centrale ; ou encore, il s'agit de faire une transaction (chèque électronique) et de signer cette transaction pour qu'elle puisse être vérifiée d'abord par le terminal de lecture dans lequel est faite la transaction, ensuite par une autorité centrale qui gère les transactions. Par la suite, on utilisera indifféremment les expressions "signature électronique't et "signature numérique" ou bien les expressions "clef numérique" et "clef électronique". En effet, la signature à l'aide de clefs constituées de chaînes numériques se prête tout particulièrement à la signature de messages transmis par voie électronique. Une signature électronique est calculée à l'aide d'une série de règles de calcul définies par un algorithme et un ensemble de paramètres utilisés dans ces calculs. La signature permet à la fois de s'assurer de l'identité du signataire (car elle fait intervenir un exposant secret propre au signataire) et l'intégrité du message signé (car elle fait intervenir le message lui-même). L'algorithme permet d'une part, de générer des signatures et d'autre part, de vérifier des signatures; opération appellée vérification. L'authentification est une opération de vérification particulière au cours de laquelle le terminal ou l'autorité centrale vérifie seulement une signature de la carte, avant tout échange de messages significatifs. Au cours de cette procédure, l'organe vérifieur envoie un message quelconque à la carte qui le retourne signé. L'organe vérifieur peut alors authentifier la signature de ce message. L'authentification fait de préférence intervenir une clef numérique différente de celle réservée aux opérations de signature/vérification de messages. Le procédé de signature et d'authentification qui va être décrit est destiné en particulier à être utilisé avec un algorithme normalisé appelé RSA du nom des ses inventeurs (Rivest, Shamir et Adleman) dont on peut trouver une description dans le brevet US 4,405,829. La génération de signature RSA fait intervenir un exposant secret. La vérification fait intervenir un exposant public qui correspond à l'exposant secret mais ne lui est pas identique. Chaque utilisateur possède une paire d'exposants (secret, public). Les exposants publics peuvent être connus de tous, alors que les exposants secrets ne sont jamais dévoilés. Toute personne a la capacité de vérifier la signature d'un utilisateur en se servant de l'exposant public de celui-ci, mais seul le possesseur de l'exposant secret peut générer une signature correspondant à la paire d'exposants. Plus précisément, les clefs électroniques RSA comportent trois paramètres (N,e,d) appelés respectivement module N, exposant public e, et exposant secret d. Les deux premiers nombres (N,e) peuvent être lus sur la carte à puce, où ils sont mémorisés, et sont dénommés paramètres publics. En revanche, l'exposant secret d est mémorisé dans une zone mémoire protégée de la carte qui ne peut être lue de l'extérieur. Seuls les circuits de calcul protégés de la carte peuvent accéder en lecture à l'exposant secret d. Les clefs électroniques sont implantées dans une carte en programmant une mémoire morte EEPROM. Les paramètres publics (N,e) sont implantés dans une zone de la mémoire EEPROM accessible en lecture par un terminal. Au contraire, l'exposant secret d est implanté dans une zone protégée de la mémoire EEPROM, l'exposant d n'étant fourni qu'au processeur de la carte pour ses calculs. Chaque paramètre est constitué par un nombre entier numérique. La longueur du module N est généralement supérieure ou égale à 512 bits. En pratique, chaque paramètre d'un triplet (N,e,d) a en moyenne une longueur de 512 bits. Toutefois, l'exposant public e est souvent plus court afin d'accélérer la vérification de la signature. Nous allons rappeler dans ce qui suit le déroulement d'une opération de signature électronique, de vérification, d'authentification, de cryptage et de décryptage de messages dans le cas de l'utilisation de l'algorithme de calcul RSA. Pour obtenir la signature S d'un message M, au moyen d'une clef dont les paramètres publics sont (N,e,d), la carte à puce met en oeuvre le calcul suivant Md modulo N = S. La carte émet alors le couple (M,S), c'est-à-dire le message accompagné de sa signature S. La carte émet ou le terminal va lire les paramètres (N,e) qui ont servi au calcul de la signature S du message M. Le terminal peut alors vérifier la signature S en mettant en oeuvre le calcul suivant Se mod N = M'. Le terminal vérifie alors que M' est égal à M. L'opération d'authentification entre une carte et un organe vérifieur consiste pour la carte à prouver son identité à l'organe vérifieur. Pour cela, l'organe vérifieur envoie un message X aléatoire à la carte ; la carte calcule la signature A de ce message à partir des paramètres (N',e',d') d'une autre clef RSA en mettant en oeuvre la relation suivante xd mod N = A. L'organe vérifieur lit ou reçoit le module N' et l'exposant public e' et peut alors décoder un tel message aléatoire signé A pour obtenir le message X' en mettant en oeuvre la relation suivante Aer mod N' = X'. L'authentification est alors effectuée par cet organe vérifieur en comparant X et X'. Si le message aléatoire X et le message décodé X' correspondent, la signature est authentifiée. L'usurpation d'une signature est rendue impossible par l'inaccessibilité de l'exposant secret d et par le fait que les trois paramètres (N,e,d) sont de grands nombres binaires. La quantité de calcul et le temps nécessaires pour trouver un exposant secret d solution des équations précédentes est considérable et elle rend tout à fait improbable sa découverte. Par exemple, sur les cartes à puces utilisées couramment, une clef RSA comporte trois nombres binaires de 512 bits chacun. On notera qu'une seule clef occupe alors une place mémoire de 192 Octets. Une autre fonction des clefs numériques et de l'algorithme RSA est de préserver la confidentialité d'un échange de messages entre la carte et le terminal ou l'autorité centrale. La confidentialité est obtenue par le cryptage et le décryptage des messages échangés. Le cryptage d'un message M est obtenu par l'algorithme RSA, en réalisant l'opération binaire suivante Me mod N = C. Le cryptage est donc obtenu par une opération similaire à la signature, mais en utilisant alors l'exposant public e au lieu de l'exposant secret d. Réciproquement, le décryptage peut être représenté par l'opération binaire suivante cd mod N = M. La carte peut ainsi décrypter le message crypté C l'aide du module N et de l'exposant secret d de sa clef numérique. On notera que la confidentialité est préservée puisque le décryptage nécessite la connaissance de l'exposant secret d, dont la découverte est quasiimpossible comme on l'a vu. De façon générale, tout triplet (N,e,d) de nombres entiers doit respecter la condition mathématique e d = 1 mod E(N) où E(N), appelée "indicatrice d'Euler", désigne le nombre d'entiers premiers avec N et inférieurs à N. Dans la pratique, plusieurs clefs peuvent être implantées sur une carte à puce, chaque clef donnant l'accès à un service différent. La mémoire EEPROM doit alors contenir autant de triplets (Nl,el,dl) (N2,e2,d2)...,(Ni,ei,di) qu'il y a de clefs. Un inconvénient de l'utilisation de tels algorithmes pour des cartes à puce, dans le cas où plusieurs clefs sont prévues, est l'occupation d'une mémoire morte EEPROM de grande capacité. Selon l'exemple précédent, une carte disposant de dix clefs RSA de 192 Octets, nécessite une mémoire morte EEPROM d'environ 2 kO. Un autre inconvénient vient du grand nombre de clefs à générer du fait de la grande quantité de cartes à programmer sachant que chaque carte comporte plusieurs clefs. En effet, le temps de calcul est élevé lors de la conception des clefs numériques. Le choix de chaque module N et de chaque paire d'exposant (e,d) de chaque clef nécessite une série d'opérations complexes pour vérifier des conditions mathématiques garantissant la sûreté et l'inviolabilité. Un objet de la présente invention est d'optimiser l'espace mémoire d'une carte à puce et de simplifier les opérations de signature et d'authentification. Un autre objet de l'invention est de garantir la sûreté et l'inviolabilité du codage numérique. De façon surprenante, ces objets sont atteints selon l'invention en utilisant des clefs numériques (N,el,dl),(N,e2,d2),...,(N,ei,di) comportant un module N identique, deux clefs se distinguant en ce que la paire d'exposants (el, dl) d'une clef est différent de la paire d'exposant (ei, di) d'une autre clef, et en réservant de telles clefs à des procédures de signature, de vérification et/ou d'authentification. En particulier, seule une clef numérique (N,el,dl) parmi les clefs numériques (N,el,dl),...,(N,ei,di) comportant un module N identique pourra servir à des procédure de cryptage et/ou de décryptage. Selon l'invention, il est prévu d'utiliser un procédé de signature et/ou d'authentification de messages électroniques dans lequel un algorithme de calcul utilise des clefs électroniques afin de signer les messages et/ou afin d'authentifier les messages, les clefs étant constituées de chaînes de caractères numériques et implantées sur des cartes à puce, une clef comportant notamment un triplet (N,e,d) de nombres entiers - un module (N), - un exposant public (e) et - un exposant secret (d) deux clefs se distinguant en ce que le triplet (N,e,d) d'une clef est différent du triplet (N',e',d') de l'autre clef, le procédé étant caractérisé en ce que plusieurs clefs (N,e,d), (N,e',d') comportent un module (N) identique notamment afin de reconnaître un utilisateur ou une utilisation identique de la carte, et en ce que ces clefs sont consacrées à la signature, à la vérification et/ou à l'authentification de messages. Selon une variante, l'invention est réalisée en utilisant un procédé dans lequel, parmi les clefs (N,e,d) , (N,e',d') , (N,e",d") ayant un module (N) identique, au plus une clef (N,e,d) sert à un cryptage et/ou à un décryptage de messages. L'invention est réalisée de préférence avec un procédé dans lequel la signature d'un message (M) est précédée d'une opération de hachage. Enfin l'invention prévoit de réaliser une carte (C1) à puce électronique comportant une mémoire contenant des clefs électroniques (N,e,d) utilisées pour signer et/ou authentifier des messages électroniques, les clefs (N,e,d) étant constituées de chaînes de caractères numériques stockées dans la mémoire, une clef (N,e,d) comportant notamment un triplet de nombres entiers - un module (N) - un exposant public (e) et - un exposant secret (d) deux clefs (NO,eO,dO),(Nl,e3,d3) se distinguant en ce que le triplet (NO,eO,dO) d'une clef est différent du triplet (Nl,e7,d7) de l'autre clef, caractérisée en ce que une clef (NO,eO,dO) de la carte comporte un module (NO) identique au module (NO) d'une autre clef (NO,el,dl),(NO,e5,d5) de cette carte (C1) ou d'une autre carte (C2). La réalisation de l'invention sera mieux comprise à la lecture de la description et des dessins qui vont suivre ; sur les dessins annexés - la figure 1 représente un schéma de cartes à puce utilisant un procédé de signature, de vérification et/ou d'authentification de messages électroniques selon l'invention. La figure 1 illustre schématiquement l'implantation de plusieurs clefs numériques (NO,eO,dO)...(Nl,e3',d3') sur deux cartes différentes avec le procédé selon l'invention. Une première carte à puce C1 est représentée en deux parties, une partie publique P1 et une partie secrète S1, représentant respectivement la zone accessible et la zone protégée de la mémoire morte EEPROM de la carte C1. Une seconde carte à puce C2 est représentée de façon analogue avec une partie publique P2 et une partie secrète S2 représentant les zones accessibles et protégées de sa mémoire morte. Une première série de paramètres NO,Nl,eO,eO',el,el',e2,e2',e3,e3' est représentée dans la partie publique P1 de la carte C1. La première série correspond à des modules et à des exposants publics stockés dans la zone accessible de la mémoire morte de la première carte Cl. Une deuxième série de paramètres dO,dO' ,dl,dl' ,d2,d2' ,d3,d3' est représentée dans la partie secrète S1 de la carte C1. La deuxième série correspond à des exposants secrets stockés dans la zone protégée de la mémoire morte de la première carte C1. De même, sur la seconde carte C2, dans la partie publique P2, on voit une troisième série de paramètres NO,N1,N2, e4,e4',e5,e5',e6,e6',e7,e7' et, dans la partie secrète S2, une quatrième série de paramètres d4,d4',d5,d5',d6,d6',d7,d7'. La troisième série de paramètres correspond à des modules et à des exposants publics stockés dans la zone accessible de la mémoire morte EEPROM, la quatrième série correspondant à des exposants secrets stockés dans la zone protégée de la mémoire morte EEPROM de la seconde carte C2. Ces paramètres groupés en triplets (N,e,d) forment alors des clefs numériques permettant des opérations de signature/vérification, ou d'authentification ou de cryptage/décryptage précédemment décrites. Le tableau ci-après indique deux groupes de clefs numériques formées par exemple en reprenant les séries de paramètres des cartes C1 et C2 de la figure 1 et l'utilisation de ces clefs pour des opérations de signature/vérification, d'authentification et de cryptage/décryptage selon l'invention. CARTE CLEF AUTO INTI SIGNATURE/ CRYPTAGE NUMÉRIQUE FICATION VERIFI -CATION DÉCRYP -TAGE Cl (NO, eO , dO) oui oui (NO, eO', dO') oui non (NO, el, dl) oui non (NO, el', dl') oui non (NO, e2 , d2) oui non (NO, e2', d2') oui non (N1, e3 , d3 ) oui non (N1, e3', d3') oui non C2 (NO, e4 , d4 ) oui non (NO, e4', d4') oui non (No, e5 , dus ) oui non (NO, e5', d5') oui non (Nl,e6,d6) oui oui (N1, e6', d6') oui non (N2, e7 , d7) oui oui (N2, e7', d7') oui non Dans la deuxième colonne intitulée clef numérique, on voit que la carte C1 comporte six clefs (NO,eO,dO), (NO,eO',dO'), (NO,el,dl), (NO,el',dl'), (NO,e2,d2) et (NO,e2',d2'), ayant le même module NO. Les opérations d'authentification utilisent de préférence des clefs distinctes des clefs de signature/vérification, même si ces opérations concernent un même service de la carte. Ces clefs de signature/vérification et d'authentification peuvent cependant avoir le même module. Ainsi, dans l'exemple du tableau, on a indiqué que parmi les six clefs de la carte C1 ayant le module NO, trois clefs (paires d'exposants (eO,dO), (el,dl) et (e2,d2)) sont consacrées aux opérations de signature/vérification, tandis que trois autres clefs (paires d'exposant (eO',dO') (el',dl') et (e2',d2')) sont consacrées à des authentifications. De manière générale, chaque clef ayant le module commun NO peut être associée à l'utilisation d'un service distinct. Par exemple, les trois clefs (NO,eO,dO), (NO,el,dl) et (NO,e2,d2) peuvent correspondre à trois comptes bancaires de l'utilisateur de la carte C1. Chaque paire d'exposants (eO,dO), (el,dl) et (e2,d2) est alors associée à une signature électronique distincte correspondant à chacun des comptes. Toutefois, comme l'indique la dernière colonne du tableau, il est prévu que seule une des six clefs comportant un module NO identique, la clef (NO,eO,dO) soit utilisée pour des opérations de cryptagedécryptage. Ainsi, le module NO n'est pas utilisé dans deux clefs de cryptage-décryptage distinctes. Les conditions de sûreté et d'inviolabilité des opérations de cryptage sont alors respectées. La seconde partie du tableau indique que la carte C2 possède quatre clefs (NO,e4,d4), (NO,e4',d4'), (NO,e5,d5) et (NO,e5',d5') comportant le même module NO. On voit ainsi qu'un module commun NO peut être prévu sur des cartes C1, C2 différentes. Cependant, comme le module NO est dans cet exemple utilisé par la clef (NO,eO,dO) de la carte C1 pour des opérations de cryptage-décryptage, aucune opération de cryptage-décryptage ne doit être effectuée par la clef (NO,e4,d4) ou la clef (NO,e4',d4') ou la clef (NO,e5,d5) ou la clef (NO, e5', d5') de la seconde carte C2. Ce cas illustre une application de l'invention dans lequel un module identique NO est commun à plusieurs cartes. Par exemple, les clefs (NO,eO,dO) et (NO,e4,d4) correspondent à un même service ou une même application prévus pour ces cartes. Le tableau précédent montre une autre série de clefs (Nl,e3,d3), (Nl,e3',d3'), (Nl,e6,d6) et (N1, e6', d6') ayant un module N1 identique. Dans cette autre série, seule la clef (Nl,e6,d6) attachée à la carte C2 permet des opérations de cryptage-décryptage. En somme selon une caractéristique du procédé selon l'invention, plusieurs clefs comportent un module identique et ces clefs sont consacrées à la signature et/ou à l'authentification de messages. Et selon une variante du procédé selon l'invention, parmi de telles clefs ayant un module identique , au plus une clef sert à un cryptage et/ou à un décryptage de messages. Cependant, afin d'assurer le maximum de sécurité on prévoit des précautions dans le choix des exposants publics comme cela est détaillé dans la suite. Première précaution, une propriété mathématique va limiter le choix des exposants publics eO,...,ei relatifs à un module N identique. Chacun de ces exposants publics, noté ek, ne doit pas être un diviseur du plus petit commun multiple (en abrégé ppcm) des autres exposants publics e0,... ,ekl, ek+l ei relatifs au même module. La réalisation de cette première précaution est en particulier obtenue en choisissant les exposants publics eO,...,ei parmi les nombres premiers. En effet, il est mathématiquement impossible qu'un nombre premier soit diviseur d'un multiple d'autres nombres premiers. Cependant, comme le calcul des nombres premiers de grande taille représente un nombre considérable de calculs, une autre méthode peut être suivie. Elle consiste à choisir les exposants publics eO,...,ei de façon aléatoire parmi de très grands nombres. On peut alors montrer que la probabilité de découverte des clefs est extrêmement faible. Cette démonstration ne rentre pas dans le cadre de la présente demande. A titre d'exemple cependant, considérons le choix de seize exposants eO,...,e16 de façon aléatoire parmi les nombres binaires de 180 bits ; Dans ce cas, la probabilité qu'un des exposants ek soit diviseur du ppcm des autres est d'une chance sur 270 chances. Selon un autre exemple, le choix de 256 exposants eO,...,256 parmi les nombres binaires de 512 bits correspond à une probabilité inférieure à 2-166. Cette méthode, bien que moins rigoureuse, permet d'obtenir une sûreté élevée tout en économisant du temps de calcul. Deuxième précaution, on prévoit de hacher les messages avant de les signer. Pour cela, on peut utiliser un algorithme de hachage de type connu. Cette complication multiplie le nombre d'opérations nécessaires pour découvrir les clefs numériques et rend cette éventualité tout à fait improbable. Typiquement les algorithmes de hachage sont des fonctions aléatoires faisant correspondre à des chaînes binaires, comme un message M, des nombres inférieurs à un entier P, de manière pseudo-aléatoire. Le résultat du hachage du message M est ainsi un condensé de taille binaire fixe, la taille de l'entier P. De façon avantageuse on utilisera un algorithme de hachage SHA, c'est-à-dire conforme à la norme "Secure Hash Standard" publiée par le National Institute of Standards and Technology. Notons que si l'on applique un algorithme de hachage dont la taille des résultats, c'est-à-dire la taille de l'entier P, est nettement inférieure à la taille des modules NO,N1,..., il est préférable d'appliquer un hachage répété. Lors d'un hachage répété le message M est tronqué en sous-messages m,m',... et chaque sous-message est traité isolément par l'algorithme de hachage. Par exemple, si les clefs numériques comportent des paramètres N,e,d d'environ 512 bits et que le résultat de l'algorithme de hachage utilisé donne des résultats ayant une dimension de 128 ou 160 bits, il sera préférable d'appliquer un tel hachage répété. Un mode de réalisation préféré de l'invention prévoit d'utiliser une fonction h de hachage faisant appel à l'exposant public e et au message M, notée sous la forme suivante H = h(e,M), H étant le résultat du hachage, c'est à dire le message haché. Ainsi l'opération de signature précédée du hachage suit la relative suivante S=Hd mod N = (h (e, M))d mod N. Réciproquement, l'opération de vérification sera effectuée en vérifiant la relation suivante se mod N = h(e, M). Cette procédure de hachage a l'avantage de donner une sûreté importante au procédé de signature et d'authentification. Un mode de réalisation préféré de l'invention prévoit en outre d'utiliser une fonction complexe de chiffrement f avant le cryptage. On obtient ainsi un codage d'ordre 2 avec deux méthodes de codage distinctes, ce qui renforce la sûreté du cryptage. Des algorithmes répondant à des normes d'encryptage de données tel des algorithmes DES (Data Enscryption Standard) peuvent ainsi être utilisés pour réaliser une fonction f de chiffrement symétrique. Par exemple, on peut choisir une fonction f de chiffrement, faisant appel au message M à chiffrer et à un paramètre k, et notée sous la forme suivante F = f(k,M) F étant le message chiffre. Etant symétrique, la fonction f admet une fonction inverse, notée f1, vérifiant la relation suivante M = f1(k,M) Pour rendre l'opération de chiffrement plus complexe, donc plus sûre, le paramètre k est de préférence obtenu par hachage de l'exposant public e, selon la relation suivante k = h(e) Le message chiffré F est donc obtenu, selon ce mode de réalisation, après le calcul suivant F = f(h(e),M) Finalement, l'opération de chiffrement-cryptage correspond à la relation suivante C= Fe mod N = [f(h(e),M)]e mod N où C est le message chiffré puis crypté comme établi précédemment. Réciproquement, l'opération de décryptagedéchiffrement est effectuée selon le calcul suivant M = fl(h(e),Cd mod N) La démonstration de la sûreté du procédé et le calcul particulièrement complexe des probabilités infinitésimale de découverte des clefs ne sera pas détaillé dans la présente demande. Une dernière précaution consistera à limiter le nombre de cartes à puce et plus précisément le nombre i des clefs (N,ei,di) comportant un module N identique Une des applications particulièrement intéressante du procédé selon l'invention est justement l'émission de cartes en série limitée comportant un module N identique. Ce module servant à reconnaître par exemple un groupe d'utilisateurs ou un service utilisé en commun. L'utilisation de clefs comportant un même module permet d'envisager de pouvoir signer au nom d'un groupe tout en distinguant l'identité de chaque signataire avec l'exposant utilisé. Une autre application du procédé selon l'invention est l'implantation sur une même carte de plusieurs clefs (N,ei,di) ayant le même module N pour reconnaître l'utilisateur ou permettre la reconnaissance d'un groupe de services offert par un même prestataire. Enfin, une application particulière est l'identification des cartes avant leur personnalisation c'est-à-dire avant leur remise à l'utilisateur avec des clefs propres à l'utilisateur. Dans la pratique, les mémoire des cartes à puce sont initialement chargées avec des clefs de transport pour les tester et les distinguer au milieu d'un lot. Les cartes connues comportent un numéro d'identification de la carte, noté Id. Ce numéro d'identification Id est par sécurité transmis sous la forme signée suivante S(Id) = Idd modulo N (N,e,d) étant les paramètres de la clef appelée clef de transport. Lors de la personnalisation, cette clef est remplacée par une nouvelle clef propre à l'utilisateur. On pourra avec le procédé selon l'invention réutiliser le module N déjà stocké dans la clef de transport en modifiant seulement le couple d'exposants (e,d). Un avantage de l'invention est la limitation de la taille mémoire utilisée par les clefs numériques dans la mémoire morte EEPROM ou ROM. On peut ainsi utiliser des composants de dimensions réduites ou utiliser la zone mémoire inoccupée pour stocker d'autres données. Un autre avantage du procédé selon l'invention et de réduire les échanges entre une carte et le terminal ou l'autorité centrale. En effet, le terminal peut stocker le module N commun à plusieurs clefs en évitant de le recharger lors d'un changement de la clef utilisée. Enfin, le procédé selon l'invention procure un gain de temps de calcul important lors de la génération des clefs numériques puisque les modules N, ayant fait l'objet de calculs complexes, peuvent être utilisés plusieurs fois. REVENDICATIONS 1. Procédé de signature, de vérification et/ou d'authentification de messages électroniques dans lequel un algorithme de calcul utilise des clefs électroniques afin de signer les messages et/ou afin d'authentifier les messages, les clefs étant constituées de chaînes de caractères numériques et implantées sur des cartes à puce, une clef comportant notamment un triplet (N,e,d) de nombres entiers - un module (N), - un exposant public (e) et - un exposant secret (d), deux clefs se distinguant en ce que le triplet (N,e,d) d'une clef est différent du triplet (N',e',d') de l'autre clef, le procédé étant caractérisé en ce que plusieurs clefs (N,e,d), (N,e',d') comportent un module (N) identique notamment afin de reconnaître un utilisateur ou une utilisation identique de la carte, et en ce que ces clefs sont consacrées à la signature, à la vérification et/ou à l'authentification de messages. 2. Procédé selon la revendication 1 dans lequel une opération de signature d'un message (M) avec une clef (N,e,d) consiste à calculer un message signé (S) en fonction (g(M,N,d)) du message (M), du module (N) et de l'exposant secret (d) de la clef (N,e,d) et/ou dans lequel une opération de vérification consiste à calculer un message vérifié (M') en fonction (g(S,N,e)) d'un message signé (S), du module (N) et de l'exposant public (e) de la clef (N,e,d). 3. Procédé selon la revendication 1 ou 2 dans lequel une opération d'authentification d'un message (A) avec une clef (N', e', d') consiste à transmettre un message aléatoire (X), à recevoir un message aléatoire signé (A), à calculer un message authentifié (X') en fonction (g(A,N',e')) du message aléatoire signé (A), du module (N') et de l'exposant public (e') de la clef (N',e',d') et à comparer le message authentifié (X') au message aléatoire (X). 4. Procédé selon l'une des revendications précédentes, dans lequel, parmi les clefs (N,e,d),(N,e',d'),(N,e",d") ayant un module (N) identique, au plus une clef (N,e,d) sert à un cryptage et/ou à un décryptage de messages. 5. Procédé selon la revendication 4 dans lequel une opération de cryptage d'un message (M), avec la clef (g(M,N,e)) consiste à calculer un message crypté (C) en fonction (g(C,N,d)) du message (M), du module (N) et de l'exposant public (e) de la clef (N,e,d) et/ou dans lequel une opération de décryptage avec la clef (N,e,d) consiste à calculer un message décrypté (M) en fonction (g(C,N,d)) d'un message crypté (C), du module (N) et de l'exposant secret (d) de la clef (N,e,d). 6. Procédé selon la revendication 4 ou 5, dans lequel une opération de cryptage est précédée d'un chiffrement et/ou dans lequel une opération de décryptage est suivie d'une déchiffrement, une opération de chiffrement ou de déchiffrement mettant en oeuvre une fonction inversible (f, et et exposant public (e). 7. Procédé selon l'une des revendications précédentes dans lequel la signature du message (M) est précédée d'une opération de hachage. 8. Procédé selon l'une des revendications précédentes dans lequel, parmi les exposants publics (el,e2,...,ei) des clefs (N,el,dl), (N,e2,d2),...,(N,ei,di) comportant un module (N) identique, chacun (ek) de ces exposants publics n'est pas un diviseur du plus petit commun multiple des autres exposants publics (el,e2,...,ek-l,ek+l,...,ei) relatifs au module (N) identique. 9. Carte à puce mettant en oeuvre un procédé selon l'une des revendications précédentes. 10. Carte (C1) à puce électronique comportant une mémoire contenant des clefs électroniques (N,e,d) utilisées pour signer et/ou authentifier des messages électroniques, les clefs (N,e,d) étant constituées de chaînes de caractères numériques stockées dans la mémoire, une clef (N,e,d) comportant notamment un triplet de nombres entiers - un module (N) - un exposant public (e) et - un exposant secret (d) deux clefs (NO,eO,dO),(Nl,e3,d3) se distinguant en ce que le triplet (NO,eO,dO) d'une clef est différent du triplet (Nl,e3,d3) de l'autre clef, caractérisée en ce que une clef (NO,eO,dO) de la carte comporte un module (NO) identique au module (NO) d'une autre clef (NO,el,dl),(NO,eS, d5) de cette carte (C1) ou d'une autre carte (C2).