Brevet FR2759226A1 — publié le 19980807

La présente invention concerne une transmission de données et, plus particulièrement, des systèmes de transmission de données pour vérifier l'identité des parties qui transmettent des données. Il est bien connu de communiquer électroniquement des données entre une paire de correspondants, typiquement une paire de terminaux d'ordinateurs ou une carte personnelle et un terminal d'ordinateur. Ces communications sont utilisées de façon très répandue dans l'environnement bancaire pour effectuer des transactions. Afin de maintenir l'intégrité de telles transactions, il faut mettre en oeuvre un système dans lequel l'identité des parties peut être vérifiée et un certain nombre de protocoles de signatures a été développé à cet effet. De tels protocoles sont basés sur des protocoles de signatures de El Gamal qui utilisent la méthode de chiffrage par clés publiques de Diffie Hellman. Une méthode de cryptographie utilisée communément est désignée par le terme de RSA, mais il faut, pour obtenir une transmission sécurisée, utiliser un module relativement grand qui augmente la largeur de bande et qui est généralement indésirable lorsque la puissance de calcul disponible est limitée. Une méthode de cryptographie plus robuste est la méthode appelée le système de chiffrage à courbe elliptique, ou ECC selon les initiales du terme anglo- saxon Elliptic curve cryptosystem, qui permet d'obtenir une sécurité comparable aux systèmes de chiffrage RSA, mais avec un module réduit. Fondamentalement, chaque partie possède une clé privée et une clé publique dérivée de la clé privee. Normalement, pour un transfert de données, un message est chiffré au moyen de la clé publique du destinataire prévu et peut ensuite être déchiffré par son destinataire en utilisant la cle privée qui n'est connue que du destinataire. Pour des buts de signature et de vérification, le message est signé au moyen de la clé privée de l'émetteur afin qu'il puisse être vérifié par traitement au moyen de la clé publique de l'émetteur indiqué. Puisque la clé privée de l'émetteur ne doit être connue que de l'émetteur, un déchiffrage réussi au moyen de la clé publique de l'émetteur confirme l'identité de l'émetteur. La sécurité du protocole de signature de El Gamal résulte de la difficulté de calculer des logarithmes discrets dans un champ fini. Des signatures du type El Gamal fonctionnent dans un groupe quelconque, y compris les groupes à courbes elliptiques. Par exemple, étant donné le groupe E(Fq) à courbe elliptique, alors pour P e E(Fq) et Q = aP, le problème des logarithmes discrets se réduit à trouver l'entier a. Au moyen d'une courbe sous-jacente sélectionnée de façon appropriée, ce problème est infaisable par calcul et ces systèmes de chiffrage sont donc considérés comme sûrs. Il existe divers protocoles pour mettre en oeuvre une telle méthode. Par exemple, un algorithme de signature numérique, ou DSA selon les initiales du terme anglo-saxon Digital signature algorithm, est une variante de la méthode de El Gamal. Selon cette méthode, une paire d'entités correspondantes A et B créent chacune une clé publique et une clé privée correspondante. L'entité A signe un message m d'une longueur arbitraire au moyen de sa clé privee. L'entité B peut vérifier cette signature en utilisant la clé publique de A. Dans chaque cas, cependant, tant l'émetteur, l'entité A, que le destinataire, l'entité B, doivent exécuter certaines opérations intensives en calcul, typiquement une élévation a une puissance, pour engendrer et vérifier respectivement la signature. Lorsque chacune des parties dispose d'une puissance de calcul appropriée, ceci ne présente pas de problème particulier mais, lorsque l'une ou l'autre des parties ne dispose que d'une puissance de calcul limitée, par exemple dans une application à carte intelligente, ou "Smart card", les calculs peuvent introduire des retards dans le processus de signature et de vérification. Il existe aussi des circonstances o le signataire doit vérifier sa propre signature. Par exemple, dans un système de cryptographie à clé publique, la distribution de clés est plus facile que dans un système à clés symétriques. Cependant, l'intégrité des clés publiques est critique. Par conséquent, les entités d'un tel système peuvent utiliser une tierce partie sécurisée pour certifier la clé publique de chaque entité. Cette tierce partie peut être une autorité de certification, ou CA selon les initiales du terme anglo-saxon certifying Authority, qui possède un algorithme privé de signature Sr et un algorithme de vérification Vr que l'on suppose connu de toutes les entités. Selon sa forme la plus simple, l'autorité de certification fournit un certificat qui relie l'identité d'une entité à sa clé publique. Ceci peut consister en une signature d'un message consistant en un identifiant et la clé publique authentifiée de l'entité. De temps à autres, cependant, l'autorité de certification peut souhaiter authentifier ou vérifier ses propres certificats. Comme noté ci-dessus, une vérification de signature peut être intensive en calculs et exige une puissance de calcul significative pour être achevée en un temps pratique. Lorsque l'un des correspondants dispose d'une capacité limitée de calculs, comme dans le cas o une "carte intelligente" est utilisée comme carte d'obtention d'espèces monétaires, il est préférable d'adopter un protocole dans lequel les calculs sur la carte sont minimisés. De même, lorsqu'il faut vérifier un grand nombre de signatures, une installation de vérification rapide est souhaitable. C'est donc un but de la présente invention que de fournir un protocole de génération et de vérification de signature qui facilite l'utilisation d'une puissance limitée de calcul pour l'un des correspondants. En termes généraux, la présente invention fournit un procédé de génération et de vérification de signature entre une paire de correspondants qui partagent entre eux un entier secret commun, le procédé comprenant les étapes consistant à engendrer à partir d'un entier sélectionné une clé de session à un premier des correspondants, sélectionner une composante de ladite clé de session et chiffrer un message au moyen de ladite composante sélectionnée, engendrer un hachage de ladite composante sélectionnée, et calculer une composante de signature qui inclut ledit entier secret commun, ledit hachage et ledit entier sélectionné et envoyer à l'autre correspondant la composante de signature, le message filtré et le hachage. L'entier sélectionné peut être récupéré pour la composante de signature en utilisant l'entier secret commun et la clé de session chiffrée. Le solde de la clé de session récupérée peut ensuite être utilisé pour envoyer facultativement une interrogation au destinataire. De façon plus particulière, selon un premier aspect, l'invention fournit un procédé de vérification d'une signature numérique engendrée par un signataire dans un système de communication de données, ladite signature incluant des composantes de signature qui incorporent une paire de clés privées, caractérisé en ce qu'il comprend les étapes consistant à: appliquer à ladite signature l'une desdites clés privées afin de récupérer une valeur équivalente à une fonction associée à une deuxième desdites clés privées et comparer ladite valeur récupérée à ladite fonction afin de déterminer l'authenticité de ladite signature. Ladite valeur récupérée peut être utilisée pour calculer une valeur de l'une des composantes de signature, ladite valeur calculée et ladite composante de signature étant comparées pour vérifier ladite signature. La structure de ladite valeur récupérée peut être comparée à des paramètres prédéterminés pour vérifier ladite signature. L'une desdites clés peut être une clé à long terme, l'autre desdites clés étant une clé à court terme engendrée pour chaque signature, et, ladite valeur récupérée correspondant alors de préférence à ladite clé à court terme. Dans le cas de cette modalité préférée, ladite valeur récupérée peut être utilisée pour calculer une clé publique à court terme dérivée de ladite clé privée et incluse dans lesdites composantes de signature, et/ou une partie au moins de ladite valeur récupérée peut être hachée par une fonction de hachage cryptographique, une valeur de hachage résultante étant comparée à l'une desdites composantes de signature pour vérification. Selon un deuxième aspect, l'invention fournit un procédé de vérification d'une signature numérique engendrée par un signataire dans un système d'ordinateur, ledit signataire possédant une clé privée (d) et une clé publique (y), dérivée d'un élément g et de ladite clé privée (d), caractérisé en ce qu'il comprend les étapes suivantes: ledit signataire signe un message (m) dans ledit système d'ordinateur en: a) engendrant une première composante de signature en combinant au moins ledit élément (d) et un parametre g de signature selon une première fonction mathématique; b) engendrant une deuxième composante de signature en combinant mathématiquement ladite première composante de signature avec ladite clé privée (d), ledit message (m) et ledit paramètre g de signature, et ledit signataire vérifie ladite signature en: c) récupérant de ladite signature une valeur (k') sans utiliser ladite clé publique (y) et; d) utilisant dans ladite première fonction mathématique ladite valeur récupérée (k') pour dériver une valeur (r') afin de vérifier que ledit paramètre g de signature et (k') sont équivalents. Ledit élément g peut être un élément d'ordre q dans un champ Fp De façon avantageuse, ledit élément g peut être un point d'ordre premier n dans E(fq), tel que E est une courbe elliptique définie dans le champ Fqn. Ledit élément g peut être un point sur une courbe elliptique sur un champ fini Fqn Ledit paramètre k de signature peut être un entier sélectionné de facon aléatoire dans l'intervalle [1, q - 1], ladite première composante de signature étant d'une forme définie par r = gk mod p mod q, o p et q sont des nombres premiers tels que q divise p - 1, et le procédé peut alors inclure un calcul d'une valeur e = h(m) o h est une fonction de hachage, et ou ladite deuxième composante de signature s = k-1 (e + dr) mod q. Dans ce cas, l'étape de récupération de ladite valeur (k') peut inclure les étapes consistant à: (a) calculer une valeur z = (h(m) + dr) mod q; (b) calculer z-1 en inversant z mod q; (c) calculer k'-1 = s(z-1) mod q; et (d) calculer k' en inversant k'-1 mod q. On peut alors prévoir que ladite étape de vérification de g inclut les étapes consistant à: calculer r' = gk' mod p mod q et comparer r' à r afin de vérifier k = k', le procédé pouvant alors, en particulier, inclure l'utilisation de tables calculées au préalable pour lesdits calculs. Dans le cas de la modalité avantageuse décrite ci-dessus ledit paramètre k de signature peut être un entier statistiquement unique et impossible à prédire, sélectionné dans un intervalle [2, n - 2], ladite première composante de signature étant d'une forme definie par r = x, mod n o n est une coordonnée n d'une clé privée. Le procédé peut alors inclure un calcul d'une valeur e = h(m) o h est une fonction de hachage, ladite deuxième composante de signature étant donnée par s = k-1 (e + dr) mod n. Dans ce cas, la récupération de ladite valeur (k') peut inclure les étapes consistant à: (a) calculer une valeur z = (h(m) + dr) mod n; (b) calculer z-l en inversant z mod n; (c) calculer k'-1 = s(z-1) mod n; et (d) calculer k' en inversant k'-1 mod n. On peut alors prévoir que ladite étape de vérification de g inclut les étapes consistant à: calculer r' = gk' mod n et comparer r' à r afin de vérifier k = k'. Lorsque g et un élément d'ordre q d'un champ Fp*, comme envisage précédemment, ledit paramètre g de signature peut être un entier sélectionné de façon aleatoire dans un intervalle [1, p - 1], ladite première composante de signature étant d'une forme définie par e = h(m I| r) o r = gk mod p, h étant une fonction de hachage et désignant un chaînage. Dans ce cas, ladite deuxième composante de signature peut être définie par s = (de + k) mod p. Ladite étape de récupération de ladite valeur (k') peut alors inclure les étapes consistant à: (a) calculer une valeur k' = (s - de) mod p; (b) calculer une valeur r' = gk mod p; (c) calculer une valeur e' = h(m I r'); et (d) comparer ladite valeur e' à e afin de vérifier k' = k. Selon un troisième aspect, l'invention fournit un procédé de vérification de l'authenticité d'un certificat émis par une autorité de certification dans un système de communications de données électroniques caractérisé en ce qu'il inclut les étapes suivantes, mises en oeuvre par l'autorité de certification: inclure dans ledit certificat une paire de composantes de signature dérivées d'une paire de clés privées, retenir l'une desdites clés privées, recevoir ledit certificat et appliquer ladite clé privée auxdites composantes de signatures pour en dériver une valeur correspondant à une fonction de l'autre desdites clés privées, et comparer ladite valeur dérivée à ladite fonction afin de déterminer l'authenticité dudit certificat. Ladite valeur dérivée peut être comparée à des paramètres prédéterminés pour déterminer l'authenticité dudit certificat. Ladite valeur dérivée peut correspondre à ladite autre clé et, dans ce cas, ladite première clé peut être une clé privée à long terme utilisée dans une série de signatures, ladite autre clé étant une clé à court terme dérivée pour chaque signature, et/ou lesdites composantes de signature peuvent inclure une clé publique dérivée de ladite autre clé, ledit procédé incluant l'étape consistant à dériver de ladite valeur dérivée une clé publique correspondante et comparer ladite clé publique contenue dans lesdites composantes de signature à ladite clé publique correspondante. Selon un quatrième aspect, l'invention réalise un système de communication de données incluant une paire de correspondants connectés par une ligne de communication de données, chacun desdits correspondants exerçant une fonction cryptographique pour mettre en oeuvre une méthode cryptographique à clés publiques qui utilise une paire de clés privées, caractérisé en ce que une première desdites clés privées est utilisée pour des communications multiples entre lesdits correspondants et l'autre desdites clés privées est engendrée par un premier correspondant à chaque communication, et ladite première clé privée est partagée par lesdits correspondants pour permettre à l'autre desdites clés privées d'être récupérée par ledit autre correspondant à partir d'une signature numérique engendrée par ledit premier correspondant et comparée à une composante de signature de ladite signature numérique pour vérifier l'authenticité du premier correspondant. Dans ce système, on peut prévoir que lesdites fonctions cryptographiques mettent en oeuvre un système de chiffrage à courbe elliptique. Les buts, particularités et avantages de la présente invention exposés ci-dessus, ainsi que d'autres, ressortiront mieux de la description détaillée qui suit d'un mode de réalisation, donné à titre d'exemple seulement, en se référant aux dessins annexés dans lesquels: la Figure 1 est une représentation schématique d'un système de transmission de données; la Figure 2 est un schéma logique d'un protocole de vérification de signature; la Figure 3 est un schéma logique d'une variante de protocole; et la Figure 4 est un schéma logique d'un autre protocole. En se référant à la Figure 1, un système 10 de transmission de données inclut une série de correspondants 12a, 12b,... 12t, désignés de façon générique par la référence numérique 12 et interconnectés par une liaison 16 de transmission de données. Les correspondants 12 sont typiquement des terminaux électroniques à capacité limitée de calcul et, dans le présent exemple, le correspondant 12 peut être considéré comme étant de la forme d'une "carte intelligente" à capacité limitée de mémoire et de calcul. Le système 10 de transmission de données inclut également un correspondant 14 qui peut être, dans ce mode de réalisation, un terminal d'une institution bancaire, connecté par la ligne 16 de transmission à des terminaux respectifs 12. Une telle connexion est typiquement établie sur une base transitoire, lorsque des correspondants 12 accèdent périodiquement au système 10, mais ces connexions peuvent aussi être des connexions permanentes. Les correspondants 12, 14 disposent chacun d'unités de chiffrage désignées par 18, 20 qui établissent un système commun de chiffrage. Dans l'exemple fourni, on suppose que les unités de chiffrage 18, 20 mettent en oeuvre un système de chiffrage à courbe elliptique au moyen de paramètres établis de courbe sous-jacente et d'un point P de valeur de départ sur cette courbe. Chacun des correspondants 12 inclut une mémoire 22 dans laquelle est intégre un entier secret respectif d utilisé comme clé privée à long terme par le correspondant 12 pour des transactions multiples. Le correspondant 14 possède une clé publique QB et un certain nombre de valeurs calculées au préalable de dQB est mémorisé dans une mémoire adressable 24 sur le correspondant 12 pour faciliter la signature. Un générateur 26 de nombres est inclus sur chaque carte pour engendrer au début de chaque session un entier statistiquement unique mais impossible à prédire, destiné à être utilisé comme clé privée à court terme qui varie à chaque transaction. Le correspondant 14 inclut de même une mémoire 28 comprenant une banque de données qui mémorise la clé privée respective d à long terme de chacun des correspondants 12 et la corrèle à l'identité du correspondant respectif 12. Pour lancer un protocole de vérification, l'un des correspondants 12 formule un message m et engendre au moyen du générateur 26 un entier aléatoire k qui intervient comme clé privée à court terme pendant la session de transmission. En utilisant le point P de valeur de départ, il calcule une clé de session r qui correspond à kP. Cette valeur kP est en fait un point de la courbe sous-jacente à coordonnées (x, y). Une première composante de signature e est engendrée en chiffrant un message m en utilisant la représentation binaire de la coordonnée x de façon que e = Ex(m). Une deuxième composante de signature e' est engendrée par hachage de la coordonnée x par la clé de session r de façon que e' = h(x). Une fonction de hachage cryptographique appropriée est utilisée, par exemple l'algorithme sécurisé de hachage Hash Algorithm (SHA-1) proposé par le National Institute for Standards and Technology (NIST) des Etats Unis. Une troisième composante de signature s est engendrée, de la forme générale s = a e + k (mod n) o a est la clé privée à long terme, e est une valeur dérivée par hachage d'un train de message et k est la clé privée à court terme. Dans ce mode de réalisation, la composante s de signature est de la forme spécifique s = d. h (dQB // e') + k (mod n) o n est l'ordre de la courbe sous-jacente. La composante s de signature est obtenue en récupérant de la mémoire 24 du correspondant 12 la valeur calculée au préalable de dQB et en la chaînant avec la valeur de hachage de x et en hachant ensuite le résultat. Une signature qui inclut les composantes s, e et e' de signature est ensuite envoyée au correspondant 14. A réception, le correspondant 14 récupère la clé privée d à long terme dans la base de données 28 sur la base de l'identité indiquée du correspondant 12 et calcule, avec sa propre clé publique, QB et la composante e' reçue, le hachage h = dQB//e'. A partir de ceci et de la composante s de signature, une valeur k' qui devrait correspondre à k peut être obtenue. En utilisant la valeur calculée de k et du point P de départ, une fonction associée à la valeur calculée de la clé à court terme, qui est la valeur de la coordonnée x de kP, c'est-à-dire x', peut être obtenue. La valeur calculée de x' est ensuite hachée et une comparaison est effectuée pour vérifier que la valeur résultante du hachage correspond à la valeur reçue de e'. A cette étape, une vérification des correspondants a été obtenue, et la seule élévation requise à une puissance est le calcul initial de kP. Le calcul de la clé r de session et l'utilisation ultérieure d'une partie de cette clé de session permet au correspondant 14 de renvoyer une autorisation sécurisée. Après calcul d'une valeur de la coordonnée x, le correspondant 14 peut ensuite calculer la coordonné y et l'utiliser pour chiffrer un message m' comme autorisation. Ainsi le correspondant 14 répond au correspondant 12 en envoyant un message qui inclut Ey(m'). A réception, le correspondant 12 connaît la coordonnée y de la clé r de session et peut récupérer le message m' qui inclut de façon appropriée une interrogation. Le correspondant 12 déchiffre le message et renvoie l'interrogation au correspondant 14, de façon que les correspondants soient ensuite vérifiés et synchronisés. D'autres messages peuvent ensuite être transférés entre les correspondants 12, 14 en utilisant la clé de session r comme clé de chiffrage. On voit donc que, dans le protocole précédent, une paire de clés est utilisée et le correspondant 14 garde commande de l'une des clés qui constitue une clé privée à long terme et utilise celle-ci pour récupérer la clé de session à court terme calculée par le correspondant 12. La clé de session a court terme récupérée peut ensuite être utilisée pour vérification avec d'autres composantes transmises de signature, par exemple en contrôlant e'. En variante, la structure de la valeur récupérée de la clé pourrait être indicative d'une vérification, par exemple, par la configuration, le nombre ou la répartition de chiffres de façon que la valeur récupérée puisse être comparée à des paramètres prédéterminés pour vérification. En raison de la relation entre la composante récupérée et l'information transmise, l'autre partie de la clé de session peut être utilisée pour répondre et établir une synchronisation. Dans ce mode de réalisation, on note que la vérification de signature est facilement effectuée en ce qui concerne les calculs, sans élévation à une puissance, et peut donc être effectuée relativement rapidement. On note aussi que le système 10 peut fonctionner comme système de chiffrage de clé privée entre les correspondants 12 ou entre des correspondants 12, 14, mais qu'il peut utiliser les attributs d'un protocole à clés symétriques lorsqu'une vérification rapide est nécessaire. Selon un exemple exposé ci-dessous, des variantes de signature peuvent être utilisées et, généralement, une équation quelconque de signature de El Gamal peut être utilisée. Une variante de mode de réalisation de vérification de signature peut être mise en oeuvre en utilisant le protocole de signatures DSS, comme représenté à la Figure 3. Dans ce protocole, une clé publique à court terme r est dérivee en élevant le groupe générateur a à une puissance égale à un entier aléatoire k, c'est-à-dire r = k. Si un système cryptographique à courbe elliptique est utilisé, l'élévation à la puissance est effectuée par une addition k fois du point P de sorte que r = kP. Dans le cas du protocole DSS, la composante de signature s est de la forme s = k-1 (h(m) + dr) (mod n) o d est une clé privée à long terme et m est le message. Les valeurs des composantes s, r de signature et le message m sont transmis par le correspondant 12 au correspondant 14. Le correspondant 14 partage la clé privée d à long terme et peut donc restituer, à partir de l'identité k = s (h(m) + dr), la clé privée k à court terme. Puisque les valeurs de r, m et s sont émises et que d est connue par le correspondant 14, k peut être calculée. Comme noté ci-dessus, k peut être agencé pour posséder une structure spécifique, par exemple une configuration spécifique d'un certain nombre de 1 et peut donc être utilisé comme vérification. En variante, la vérification peut être contrôlée en calculant une valeur de r à partir de la valeur récupérée k, c'est-à-dire r = ak et en la comparant à la valeur r transmise. Cette étape exige une élévation à une puissance et elle est donc plus exigeante en calcul, mais elle peut être utilisée lorsque ceci est souhaitable. Ici aussi, en partageant la clé privée k à long terme, une vérification peut être effectuée d'une manière simple mais pourtant efficace en extrayant la clé privée à court terme, k. Dans chacun des exemples ci-dessus, la vérification de signature est effectuée entre une paire de correspondants. Les caractéristiques du protocole peuvent être utilisées pour vérifier une signature émise par une autorité de certification CA, par exemple une banque, constituée par un correspondant 14. Dans ce mode de réalisation, le correspondant 14 recoit un certificat dont le sens est qu'il a été émis par elle. Le correspondant 14 vérifie l'authenticité du certificat en utilisant la clé privée à long terme d pour extraire la clé privée à court terme k. La structure de la clé privée k peut ensuite être contrôlée ou la clé k peut être utilisée pour dériver une information concernant la clé privée publique à court terme r, incluse dans le message. Ici aussi, une vérification peut être obtenue sans calcul extensif, d'une manière commode, et ceci permet la vérification du certificat reçu par le correspondant 14, c'est-à- dire une banque ou une institution financière. Un exemple de ce mode de réalisation peut être donné en utilisant l'algorithme de signature numérique DSA, qui est un cas spécial de la méthode de signature de El Gamal. Pour une génération de clé dans la méthode de signature de El Gamal, chaque correspondant A et B crée une clé publique et une clé privée correspondante. Afin d'établir le système de chiffrage sous-jacent dans un groupe Fp, les entités A et B sélectionnent des nombres premiers p et q de façon que q divise p - 1. Un générateur g est sélectionné d'une manière telle qu'il est un élément d'ordre q dans Fp et le groupe utilisé est {gO, gl, g2,... gq-1}. Dans l'algorithme de signature numérique, ou DSA, une génération de clé est effectuée en sélectionnant un nombre entier d dans l'intervalle [1, q - 1] et en calculant une clé publique y = gd mod p. L'information de clé publique est (p, q, g, y) et la clé privée à long terme est d, tandis que dans la méthode générale de El Gamal, la formation de clé publique est (p, g, y) et la clé privée est d. Dans la méthode de signature DSA, les composantes r et s de signature sont données par r = (gk mod q) mod q; et s = k-1 (h(m) + dr) mod q ou typiquement: d est un entier aléatoire, la clé privée à long terme du signataire et est typiquement de 160 bits; p est typiquement un nombre premier à 1024 bits; q est un nombre premier à 160 bits o q divise p - 1; g est le générateur tel que y = gd mod p; h(m) est typiquement un hachage SHA-1 du message m; k est une valeur à 160 bits choisie de façon aléatoire pour chaque signature; et la signature pour m est la paire (r, s). Normalement, pour vérifier la signature (r, s) de A sur le message m, le destinataire B devrait obtenir l'information de clé publique authentique (p, q, g, y) de A et vérifier que 0 d'élévations à une puissance. Une vérification rapide de signature par l'autorité de certification CA peut être mise en oeuvre de la manière représentée à la Figure 4 en utilisant comme vérificateur la clé privée d à long terme de l'autorité de certification. Dans ce cas, le signataire d'origine connaît p, q, g, y, h(m), r et s. Par conséquent le vérificateur doit simplement récupérer la clé privée k à court terme utilisée dans la signature et vérifier la valeur de k ainsi obtenue afin de vérifier la signature. Le vérificateur calcule donc z = (h(m) + dr) mod q. La valeur z-1 est calculée en inversant z mod q et elle est utilisée pour calculer k'-1 = s(z-1) mod q. La valeur de k' peut être calculée en inversant k'-1 mod q. Le vérificateur évalue ensuite r = gk' mod p mod q et vérifie que k = k'. On peut donc voir que cette étape de vérification utilise la clé privée d à long terme plutôt que la clé publique y à long terme pour éviter une élévation à une puissance. Naturellement, un grand nombre des calculs ci-dessus peuvent être accélérés en utilisant des tables calculées au préalable. Une variante de procédé de signature de E1 Gamal est représentée à la figure 5 et possède comme composantes de signature (s, e) o r = gk mod p; e = h(m Il r) o Il indique un chaînage; et s = (de + k) mod p o p est un grand nombre premier public, g est un générateur public, m est un message, h est une fonction de hachage, d est une clé privée à long terme, y = gd mod p est la clé publique à long terme correspondante et k est un entier aléatoire secret utilisé comme clé privée à court terme. Pour engendrer un certificat, le correspondant 14 signe un message m qui contient l'identité de l'un premier des correspondants 12 et la clé publique de ce correspondant. Le message est signé en utilisant la clé publique à long terme et une clé de session k à court terme du correspondant 14 et un certificat émis au correspondant 12 incluant les composantes s, e de signature. L'information publique est retenue par le correspondant 14. Le certificat peut être utilisé par le correspondant 12 et être vérifié par les destinataires en utilisant la clé publique du correspondant 14. Lorsqu'un certificat est présenté au correspondant 14, une rapide vérification peut être obtenue en utilisant la clé privée d à long terme. Dans une vérification rapide de signature qui utilise la clé privée d, l'information publique de p, g, y, h, m, r, e et la clé privée d sont connues par le vérificateur. Pour vérifier la signature, le vérificateur doit donc simplement récupérer la clé privée k à court terme et vérifier k. Le vérificateur calcule k' = (s - de) mod p, r' = gk mod p et e' = h(m Il r'). Si e = e', ceci vérifie que k = k'. Seule une élévation à une puissance est nécessaire dans cette vérification pour faciliter le processus. En variante, les caractéristiques de la valeur récupérée de k peuvent être suffisantes pour satisfaire à une vérification comme décrit précédemment. On peut donc voir qu'un avantage particulier de la présente invention est offert lorsqu'un signataire signe des données qui peuvent par exemple résider sur l'ordinateur du signataire. Ceci peut être vérifié ultérieurement sans utiliser aucune clé publique de correspondance, le signataire pouvant en substitution utiliser sa clé privée pour vérifier les données. Ceci est également très utile pour certaines applications à puissance limitée de calcul, comme des cartes intelligentes. Dans un système de communication de données qui inclut une autorité de certification, l'autorité de certification CA ou centre de distribution de clés signerait des données fréquemment avant qu'elles ne soient installées dans les systèmes de communication et pourrait ensuite vérifier les signatures ultérieurement. L'autorité de certification n'a donc pas besoin de l'information de clés publiques pour vérifier les signatures mais utilise simplement pour la vérification la clé privée à long terme, puisque tous les autres paramètres sont mémorisés à l'intérieur de la frontière sécurisée du signataire. Puisque la clé privée d à long terme est utilisée, on note aussi qu'il n'est pas nécessaire de retenir la clé privée k à court terme de sorte que les servitudes associées au système sont minimisées. Une application additionnelle concerne la vérification d'un logiciel comme dans des applications de logiciel de paiement à l'utilisation. Une demande d'accès à un serveur peut être commandée par un certificat émis par le serveur et présenté par l'utilisateur du logiciel. L'authenticité du certificat peut ensuite être vérifiée par l'utilisateur du logiciel. L'authenticité du certificat peut ensuite être vérifiée, d'une manière rapide et commode en utilisant la clé privée du serveur comme décrit ci-dessus. Alors que l'invention a été décrite en connexion avec le mode de réalisation spécifique de celle-ci et dans des utilisations spécifiques, diverses modifications de celle-ci apparaîtront à l'homme de l'art sans s'écarter de l'esprit de l'invention exposé dans les revendications annexées. Par exemple, dans la description ci-dessus de modes de réalisation préférés, on utilise une notation multiplicative, mais le procédé de la présente invention peut également être décrit en utilisant une notation additive. Il est bien connu par exemple que l'algorithme de courbe elliptique équivalent du DSA, c'est-à-dire le ECDSA, est l'analogue en courbe elliptique d'un algorithme à logarithme discret qui est décrit habituellement dans un ensemble de Fp* le groupe multiplicatif des p entiers modulo un nombre premier. Il existe une correspondance entre les éléments et les opérations du groupe Fp* et le groupe de courbes elliptiques E(Fq). En outre, cette technique de signature est tout aussi applicable à des fonctions exécutées dans un champ défini sur F2n. La présente invention concerne de façon générale un procédé et un système de chiffrage et particulièrement un procédé et un système de cryptographie à courbe elliptique dans lequel des5 éléments de champ fini sont multipliés de façon efficace dans un processeur. Le système de cryptographie peut comprendre un processeur approprié quelconque, par exemple un ordinateur polyvalent programmé de façon appropriée. REVENDICATIONS 1. Procédé de vérification d'une signature numérique engendrée par un signataire dans un système de communication de données, ladite signature incluant des composantes de signature qui incorporent une paire de clés privées, caractérisé en ce qu'il comprend les étapes consistant à: appliquer à ladite signature l'une fdesdites clés privées afin de récupérer une valeur équivalente à une fonction associée à une deuxième desdites clés privées et comparer ladite valeur récupérée à ladite fonction afin de déterminer l'authenticité de ladite signature. 2. Procédé selon la revendication 1, caractérisé en ce que ladite valeur récupérée est utilisée pour calculer une valeur de l'une des composantes de signature, et ladite valeur calculée et ladite composante de signature sont comparées pour vérifier ladite signature. 3. Procédé selon la revendication 1 caractérisé en ce que la structure de ladite valeur récupérée est comparée à des paramètres prédéterminés pour vérifier ladite signature. 4. Procédé selon la revendication 1 caractérisé en ce que l'une desdites clés est une clé à long terme et l'autre desdites clés est une clé à court terme engendrée pour chaque signature. 5. Procédé selon la revendication 4, caractérisé en ce que ladite valeur récupérée correspond à ladite clé à court terme. 6. Procédé selon la revendication 5, caractérisé en ce que ladite valeur récupérée est utilisée pour calculer une clé publique à court terme dérivée de ladite clé privée et incluse dans lesdites composantes de signature. 7. Procédé selon la revendication 5 caractérisé en ce que une partie au moins de ladite valeur récupérée est hachée par une fonction de hachage cryptographique, et une valeur de hachage résultante est comparée à l'une desdites composantes de signature pour vérification. 8. Procédé de vérification d'une signature numérique engendrée par un signataire dans un système d'ordinateur, ledit signataire possédant une clé privée (d) et une clé publique (y), dérivée d'un élément g et de ladite clé privée (d), caractérisé en ce qu'il comprend les étapes suivantes: ledit signataire signe un message (m) dans ledit système d'ordinateur en: a) engendrant une première composante de signature en combinant au moins ledit élément (d) et un paramètre g de signature selon une première fonction mathématique; b) engendrant une deuxième composante de signature en combinant mathématiquement ladite première composante de signature avec ladite clé privée (d), ledit message (m) et ledit paramètre g de signature, et ledit signataire vérifie ladite signature en: c) récupérant de ladite signature une valeur (k') sans utiliser ladite clé publique (y) et; d) utilisant dans ladite première fonction mathématique ladite valeur récupérée (k') pour dériver une valeur (r') afin de vérifier que ledit paramètre g de signature et (k') sont équivalents. 9. Procédé selon la revendication 8, caractérisé en ce que ledit élément g est un élément d'ordre q dans un champ Fp 10. Procédé selon la revendication 8, caractérisé en ce que ledit élément g est un point d'ordre premier n dans E(fq), tel que E est une courbe elliptique définie dans le champ Fqn. 11. Procédé selon la revendication 8, caractérisé en ce que ledit élément g est un point sur une courbe elliptique sur un champ fini Fqn 12. Procédé selon la revendication 8, caractérisé en ce que ledit paramètre k de signature est un entier sélectionné de façon aléatoire dans l'intervalle [1, q - 1] et ladite première composante de signature est d'une forme définie par r = gk mod p mod q, o p et q sont des nombres premiers tels que q divise p - 1. 13. Procédé selon la revendication 12 caractérisé en ce que il inclut un calcul d'une valeur e = h(m) o h est une fonction de hachage, et ou ladite deuxième composante de signature s = k-1 (e + dr) mod q. 14. Procédé selon la revendication 13, caractérisé en ce que l'étape de récupération de ladite valeur (k') inclut les étapes consistant à: (a) calculer une valeur z = (h(m) + dr) mod q; (b) calculer z-1 en inversant z mod q; (c) calculer k'-1 = s(z-1) mod q; et (d) calculer k' en inversant k'-l mod q. 15. Procédé selon la revendication 14, caractérisé en ce que ladite étape de vérification de g inclut les étapes consistant à: calculer r' = gk' mod p mod q et comparer r' à r afin de vérifier k = k'. 16. Procédé selon la revendication 15, caractérisé en ce que il inclut l'utilisation de tables calculées au préalable pour lesdits calculs. 17. Procédé selon la revendication 10, caractérisé en ce que ledit paramètre g de signature est un entier statistiquement unique et impossible à prédire, sélectionné dans un intervalle [2, n - 2] et en ce que ladite première composante de signature est d'une forme définie par r = x, mod n o n est une coordonnée n d'une clé privée. 18. Procédé selon la revendication 17, caractérisé en ce que il inclut un calcul d'une valeur e = h(m) o h est une fonction de hachage et ladite deuxième composante de signature est donnée par s = k-1 (e + dr) mod n. 19. Procédé selon la revendication 18, caractérisé en ce que la récupération de ladite valeur (k') inclut les étapes consistant à: (a) calculer une valeur z = (h(m) + dr) mod n; (b) calculer z-1 en inversant z mod n; (c) calculer k'-1 = s(z-1) mod n; et (d) calculer k' en inversant k'-1 mod n. 20. Procédé selon la revendication 19, caractérisé en ce que ladite étape de véerification de g inclut les étapes consistant à: calculer r' = gk' mod n et comparer r' à r afin de vérifier k = k'. 21. Procédé selon la revendication 9, caractérisé en ce que ledit paramètre g de signature est un entier sélectionné de façon aléatoire dans un intervalle [1, p - 1] et ladite première composante de signature est d'une forme définie par e = h(m Il r) o r = gk mod p, h est une fonction de hachage et I désigne un chaînage. 22. Procédé selon la revendication 21, caractérisé en ce que ladite deuxième composante de signature est définie par s = (de + k) mod p. 23. Procédé selon la revendication 22, caractérisé en ce que ladite étape de récupération de ladite valeur (k') inclut les étapes consistant à: (a) calculer une valeur k' = (s - de) mod p; (b) calculer une valeur r' = gk mod p; (c) calculer une valeur e' = h(m Il r'); et (d) comparer ladite valeur e' à e afin de vérifier k' = k. 24. Procédé de vérification de l'authenticité d'un certificat émis par une autorité de certification dans un système de communications de données électroniques caractérisé en ce qu'il inclut les étapes suivantes, mises en oeuvre par l'autorité de certification: inclure dans ledit certificat une paire de composantes de signature dérivées d'une paire de clés privées, retenir l'une desdites clés privées, recevoir ledit certificat et appliquer ladite clé privée auxdites composantes de signatures pour en dériver une valeur correspondant à une fonction de l'autre desdites clés privées, et comparer ladite valeur dérivée à ladite fonction afin de déterminer l'authenticité dudit certificat. 25. Procédé selon la revendication 24, caractérisé en ce que ladite valeur dérivée est comparée à des paramètres prédéterminés pour déterminer l'authenticité dudit certificat. 26. Procédé selon la revendication 24, caractérisé en ce que ladite valeur dérivée correspond à ladite autre clé. 27. Procédé selon la revendication 26 caractérisé en ce que ladite première clé est une clé privée à long terme utilisée dans une série de signatures, et ladite autre clé est une clé à court terme dérivée pour chaque signature. 28. Procédé selon la revendication 26, caractérisé en ce que lesdites composantes de signature incluent une clé publique dérivée de ladite autre clé et en ce que ledit procédé inclut l'étape consistant à dériver de ladite valeur dérivée une clé publique correspondante et comparer ladite clé publique contenue dans lesdites composantes de signature à ladite clé publique correspondante. 29. Système (10) de communication de données incluant une paire de correspondants (12a, 12b,... 12t; 14) connectés par une ligne de communication (16) de données, chacun desdits correspondants exerçant une fonction cryptographique (18, 20) pour mettre en oeuvre une méthode cryptographique a clés publiques qui utilise une paire de clés privées, caractérisé en ce que une première desdites clés privées est utilisée pour des communications multiples (16) entre lesdits correspondants (12a, 12b,... 12t; 14) et l'autre desdites clés privées est engendrée par un premier correspondant à chaque communication, et ladite première clé privée est partagée par lesdits correspondants (12a, 12b,... 12t; 14) pour permettre à l'autre desdites clés privées d'être récupérée par ledit autre correspondant à partir d'une signature numérique engendrée par ledit premier correspondant et comparée à une composante de signature de ladite signature numérique pour vérifier l'authenticité du premier correspondant. 30. Système (10) de communication de données selon la revendication 29, caractérisé en ce que lesdites fonctions cryptographiques (18, 20) mettent en oeuvre un système de chiffrage à courbe elliptique.