FR 2775400 A1 19990827 FR 9802197 A 19980224 PROCEDE DE SIGNATURE NUMERIQUE JUSTE DESCRIPTION Domaine technique La présente invention a pour objet un procédé de signature numérique. Ce procédé comprend, d'une part, une opération de retrait d'une signature et d'autre part, une opération de présentation de la signature. L'invention trouve une application notamment dans le paiement électronique. Etat de la technique antérieure Un concept particulier de signature numérique, dit signature aveugle, a été introduit par D. CHAUM dans un article intitulé "Blind Signatures for Untraceable Payments" publié dans "Proceedings of CRYPTO'82, Plenum Press, 1983, pp. 199-203. Un protocole de signature aveugle est un protocole cryptographique mettant en jeu deux entités, un "utilisateur" et un "émetteur", l'utilisateur faisant signer un message à l'émetteur de telle manière que ce dernier n'obtienne aucune information sur le contenu du message qu'il signe. De plus, après avoir signé plusieurs messages, l'émetteur est incapable, à la vue d'une signature qu'il a contribué à créer, de déterminer lors de quelle exécution du protocole cette signature a été obtenue. Les protocoles de signature aveugle sont utilisés dans des applications nécessitant l'anonymat, telles que les élections électroniques ou la monnaie électronique. Dans les systèmes de paiement électronique anonyme, l'expression "pièce électronique" désigne une donnée signée numériquement par la banque (l'émetteur de monnaie électronique). La fonction de signature utilisée par la banque détermine la valeur faciale de la pièce. Lors d'une phase dite de "retrait", l'utilisateur (le client) achète ces pièces électroniques. Pour garantir l'anonymat, les pièces retirées par l'utilisateur doivent être inconnues de la banque. A cette fin, cette dernière signe de manière aveugle des données que l'utilisateur crée de manière secrète. L'utilisateur se trouve ainsi en possession de pièces valides que la banque elle-même est incapable d'associer à l'utilisateur qui les a retirées. L'anonymat est parfait. Le paiement correspond ensuite à un transfert de pièces électroniques du client au commerçant. Ce dernier contacte alors la banque (cas du paiement en ligne), laquelle conserve, dans sa base de données, toutes les pièces non expirées qui ont déjà été dépensées, pour s'assurer que les pièces qui lui sont présentées n'ont pas déjà été dépensées lors d'une transaction antérieure. Les commerçants déposent ensuite à la banque, lors de la phase dite de remise, les pièces qu'ils ont reçues en paiement, pour compensation de leur valeur. Divers modes de mise en oeuvre d'une signature aveugle ont été développés et décrits. On peut en trouver des exemples notamment dans l'article de D. CHAUM et T.P. PEDERSEN, intitulé "Wallet Databases with Observers", publié dans Proceedings of Crypto '92, Lecture Notes in Computer Science, Vol. 740, Springer Verlag, pp 89-105 ainsi que dans l'article de T. OKAMOTO intitulé "Provable Secure and Practical Identification Schemes of Crypto '92, Lectures Notes in Computer Science, Vol. 740, Springer Verlag, pp 31-53. Le protcole d'authentification de SCHNORR, dont dérivent les protocoles de signature aveugle utilisés dans les articles ci-dessus, est lui-même décrit dans l'article de C. P. SCHNORR intitulé "Efficient Signature Generation by Smart Cards", publié dans Journal of Cryptology, 4(3) pp 161-174 (1991). Dans le protocole d'authentification de SCHNORR et dans les schémas de signature aveugles qui en découlent, l'émetteur E choisit au hasard une clef secrète SE, calcule une clef publique p=gs, o g est un élément générateur connu de tous. Puis l'entité E publie sa clef publique P de façon que chacun la connaisse comme étant associée à l'identité de E. La clef publique P ne permet pas de retrouver la clef secrète SE que seul E connaît. En effet, la fonction exponentielle, qui permet de passer de SE à P, est difficilement inversible (la taille des paramètres est choisie de façon que le temps nécessaire pour retrouver SE à partir de P soit trop long pour les ordinateurs disponibles à l'époque de la mise en oeuvre du protocole). Dans le schéma d'authentification de SCHNORR, l'entité E prouve à une entité utilisatrice U qu'elle connaît la clef secrète SE sans toutefois révéler celle- ci. Cette preuve constitue pour E un moyen de s'authentifier auprès de l'utilisateur U. Ce protocole d'authentification comprend une première opération o l'émetteur choisit au hasard un nombre x dans le groupe Zq, c'est-à-dire dans le corps des entiers modulo q o q est un nombre premier (autrement dit x est compris entre 1 et q-J) et élève son générateur g à la puissance x pour constituer un nombre tqui va lancer le protocole d'authentification. Ce nombre t est transmis à l'utilisateur qui poursuit le protocole en choisissant au hasard un nombre c, dit challenge, compris dans Zq et en le transmettant à l'émetteur, qui calcule alors une réponse appropriée en utilisant sa clef secrète SE que lui seul connaît. Cette clef n'est évidemment pas transmise en l'état mais clef n'est évidemment pas transmise en l'état mais masquée par le nombre x que l'émetteur seul connaît. La réponse est alors y=X-CSE. L'utilisateur traite cette réponse en calculant g, qui n'est autre que g(x-cSE) soit gX g-CSE. L'utilisateur peut calculer aussi P, soit gCSE de sorte que le produit gYP est égal à gx g-CSE gCSE, soit ggv]p, c'est-à-dire finalement t. La vérification de l'égalité entre t et gP7 prouve à l'utilisateur que l'émetteur connaît bien la clef secrète SE. Par ailleurs, cette preuve est apportée sans que la clef SE ait été révélée à l'utilisateur. Le protocole peut donc se répéter autant de fois que l'on veut, à condition de changer le nombre x à chaque fois. On peut illustrer un tel protocole par un tableau, (représentation qui sera utilisée constamment dans la suite de la description) dans lequel la notation Zq désigne le corps des entiers modulo q, les flèches horizontales symbolisent la transmission de nombre(s) d'une entité à l'autre, une équation avec un point d'interrogation au-dessus du signe égal (=) signifie que l'entité vérifie que les deux membres de l'égalité sont bien égaux. Avec ces conventions, le protocole d'authentification qui vient d'être décrit, peut être représenté par le Tableau I ci-après. E U clef secrète: SE clefpublique: P = gS choisit x dans Zq calcule t =gX t choisit c dans Zq c calcule y = x- cSE y Y>\ calcule gY pc ? t=gyPC Tableau I Ce protocole constitue une preuve de connaissance par l'émetteur de la clef secrète. On peut lier cette preuve à un message ni, de façon à ce que ce protocole constitue en même temps une signature a du message m. En toute rigueur, l'émetteur E ne mériterait pas vraiment le nom de "signataire", car il ne peut être tenu pour responsable du message signé puisqu'il l'ignore. C'est néanmoins la terminologie usuelle. Un schéma de signature aveugle de ce type peut être illustré par le Tableau II avec les mêmes conventions, o mni est le message à signer. Dans ce schéma l'utilisateur choisit en outre au hasard deux nombres ui et v dans Zq, et calcule un nombret à partir du nombre t qu'il a reçu de l'émetteur, du générateur g de l'émetteur qui est connu de tous et de la clef publique P de ce même émetteur et en utilisant les nombres u et v comme exposants, soit t=tgVPu. L'utilisateur choisit ensuite un nombre c, dit challenge, compris dans Zq et masque ce challenge en lui soustrayant le nombreu connu de lui seul pour obtenir un challenge masqué c=c-u. L'utilisateur transmet le challenge masqué c. E U clef secrète: SE message: m clefpublique: P = gS choisit x dans Zq calcule t = gX choisit u, v dans Zq calcule t = gVPu calcule c=H(t, m) calcule ê c - u calcule f =x - êSE Y > calcule y = + v t =gype obtient la signature o- (y, c, m) Tableau II Dans ce protocole, H est une fonction de hachage (ou de condensation) connue de tous. La signature a finalement obtenue est constituée par l'ensemble des nombres y, c et ni. Une telle signature ne peut être reconnue par l'émetteur qui ne peut calculer ni y, ni c, puisqu'il ignore les paramètres de masquage u et v et ne peut reconnaître le message m, qu'il n'a jamais vu. Les schémas de signature aveugle, par l'anonymat parfait qu'ils confèrent aux utilisateurs, sont malheureusement potentiellement dangereux. En effet, des malfaiteurs pourraient par exemple enlever des personnes et exiger que la rançon à payer pour la libération de celles-ci soit versée en argent électronique de ce type, réalisant ainsi une sorte de crime parfait, comme cela a été imaginé par S. Von SOLMS et D. NACCACHE dans un article intitulé "On Blind Signatures and Perfect Crimes", publié dans "Computer and Security", vol. 11, 1992, pp. 581-583. Pour cette raison, des recherches s'orientent vers des systèmes de monnaie électronique garantissant aux clients un anonymat conditionnel ou révocable. Dans un article de M. STADLER et al. intitulé "Fair Blind Signatures", publié dans "Proceedings of EUROCRYPT'95", Lecture Notes in Computer Science, vol. 921, Springer Verlag, pp. 209-219, les auteurs ont proposé un concept nouveau de signature aveugle dite "juste" (en anglais "fair"). Un protocole de signature aveugle juste est un protocole de signature aveugle dans lequel une autorité de confiance possède une information lui permettant de relier les signatures obtenues par un utilisateur aux interactions avec l'émetteur. L'utilisation d'un tel protocole dans des systèmes de paiement électronique (à la place d'un protocole classique de signature aveugle) permet de lever, pour des raisons légales par exemple, l'anonymat de n'importe quelle transaction. Ainsi, serait-il possible par exemple de tracer l'argent retiré par un utilisateur, surveillé pour une raison quelconque étrangère au système de paiement (cas d'une demande de rançon). De même, serait-il possible de lever l'anonymat d'une transaction faisant l'objet d'un litige ou d'un délit (blanchiment d'argent). Dans l'article cité, trois protocoles de signature aveugle juste sont décrits. Malheureusement, ils sont coûteux en termes de nombre de calculs à effectuer. D'autres procédés ont été proposés pour constituer une signature juste, notamment dans l'article de Y. FRANKEL et al., intitulé "Indirect Discourse Proofs- Achieving Efficient Fair Off-Line E-Cash", publié dans Proceedings of ASIACRYPT '96, Lecture Notes in Computer Sciences, vol 1163, Springer Verlag, pp 286-300. La présente invention a pour but de proposer un procédé de signature juste moins coûteux en termes de calcul que les procédés connus. Le gain en calculs (notamment en exponentiations) est d'environ 10. Exposé de l'invention Selon l'invention, avant de mettre en oeuvre le protocole de signature aveugle, l'utilisateur U constitue une trace de retrait trm égale à une clef publique PAE d'une autorité de confiance élevée à une puissance r o r est un nombre choisi au hasard par l'utilisateur, cette trace trm étant transmise à l'émetteur E avec une preuve prm que l'utilisateur connaît cette trace trm permet à cette autorité de retrouver la signature retirée en cas de nécessité; l'émetteur E vérifie alors la validité de la preuve pr,, conserve la trace Ir. et met ensuite en oeuvre les opérations de signature aveugle avec l'utilisateur U. Ces opérations peuvent être précisées de la manière suivante. Le procédé met en oeuvre trois entités: - un émetteur E, lequel est muni d'une clef secrète SE, d'une première clef publique P associée à un premier générateur g, avec P =gs_, d'une deuxième clef publique PE associée à un deuxième générateur gA avec PE = gS, d'une troisième clef publique P associée à un troisième générateur g3 avec =gS, et d'une quatrième clef publique 14 associée à un quatrième générateur g4 avec p4 = g4, - un utilisateur U, lequel est muni d'une clef secrète Su, d'un générateur gu égal à g9Ug4 d'une clef publique P. égale à p3suP, - une autorité de confiance A, laquelle n'intervient pas directement dans les opérations entre utilisateur et émetteur, cette autorité étant munie d'une première clef secrète SAE avec une première clef publique PAE associée à un générateur gA, avec PAE =gs, et d'une deuxième clef secrète SAT avec une deuxième clé publique PAT associée au même générateur gA, avec Pr = gA r. Pour calculer la trace du retrait et établir la preuve correspondante, l'utilisateur peut s'y prendre comme suit: l'utilisateur choisit au hasard un nombre r compris entre 1 et q-1 o q est un nombre premier, calcule un nombre gm égal à go.go, calcule une trace de retrait tr,,, égale à PAE, et calcule une preuve notée pr,,, qu'il connaît une représentation des nombres gm/gu =gW gr et trm=PAE en fonction de g, gA, t PAE et que l'exposant de PAE dans la représentation de trm est égal à l'exposant de gA dans celle de gm/gu, c'est-à-dire au nombre r. L'utilisateur U transmet alors les nombres g, trm et la preuve pr,,, à l'émetteur E. L'émetteur vérifie alors la preuve pri et garde en mémoire la trace du retrait tr,. En cas de validité de la preuve prm, l'émetteur E et l'utilisateur U mettent en oeuvre un protocole de signature aveugle o le nombre g,, est considéré comme un message à signer, protocole dans lequel l'émetteur prouve qu'il connaît sa clef secrète SE, sans la révéler, l'utilisateur U constituant finalement une signature a en regroupant des nombres connus de lui seul et intervenant dans le protocole d'authentification de l'émetteur ainsi que le nombre g,,, connu de lui seul. La présente invention a également pour objet un procédé de présentation d'une signature obtenue par le procédé qui vient d'être défini. Dans cette présentation: - un tiers T, à qui la signature v est présentée par l'utilisateur U, transmet d'abord à cet utilisateur un message mnT comprenant des paramètres d'identification du tiers, l1 - l'utilisateur U calcule une trace de présentation notée tru à partir de la seconde clef publique PAT de l'autorité et du nombre r qu'il a choisi lors du retrait de la signature, par tru =PAT, calcule gm /g4 soit gA.gU et constitue une preuve pri qu'il connaît une représentation du nombre gm/g4 et de la trace tru par rapport à gA, g3 et PAT et ajoute à cette preuve le message mr reçu du tiers T, et transmet cette preuve pru au tiers T, - le tiers T vérifie la preuve pru puis vérifie la signature a. La présente invention a également pour objet un procédé de traitement de la trace de retrait et un procédé de traitement de la trace de présentation par l'autorité de confiance. Description de modes particuliers de mise en oeuvre Le procédé de retrait d'une signature juste selon l'invention suppose la constitution, par l'utilisateur, et dans un premier temps, d'une trace de retrait et d'une preuve que cette trace a été constituée de façon que l'autorité de confiance soit en mesure de retrouver la signature retirée, c'est-à-dire une preuve que cette trace contient un lien avec la signature retirée, sans toutefois révéler ce lien. L'établissement d'une telle preuve peut s'établir comme suit. On suppose, de manière générale, qu'une entité A veut donner à une entité B une preuve: - qu'elle connaît une représentation d'un nombre ri par rapport à deux éléments générateurs g, g2 connus, c'est-à-dire qu'elle connaît deux nombres x et y tels que r.= gyg, - qu'elle connaît la représentation r2 par rapport à un troisième élément générateur g3 connu, c'est-à-dire qu'elle connaît le nombre z tel que r2 = g, - et que z=x. Pour apporter cette preuve, l'entité A choisit au hasard deux nombres a et b compris dans Zq, calcule tl,=g g2 et t2=g3, calcule une fonction c=H(t,,tj, o Hest une fonction de hachage (ou de condensation), calcule deux nombres y, et y2 par y, =a-cx y2=b-cy et transmet les nombres ri, r2, y, et y2 à l'entité B. Celle-ci peut reconstituer tl en calculant gygy2rc et 2 en calculant gylr,C. L'entité B peut alors calculer la fonction H(l, 1t2) et vérifier qu'il s'agit bien de la fonction c reçue. Un message ne peut être lié à cette preuve en ce sens qu'elle ne pourra être vérifiée qu'avec l'aide de ce message, en insérant ce message dans le challenge calculé par A puis par B, qui devient alors c = H (,, t2, rn) au lieu de H(tl,t2) C'est ce protocole de preuve qui est mis en oeuvre dans la présente invention entre l'utilisateur U et l'émetteur E dans la première phase du procédé. Pour simplifier les notations, le groupe de nombres tranmis r,r2,y,yl2,c sera noté pr(r,r2,g,,g2,g3), ce qui signifie qu'il s'agit d'une preuve de la connaissance d'une représentation de r, et r2 par rapport à gl, g2, g3. On notera également pr'(ri, r2, gl, g2, g3)=(yl, y2, c). Adapté à la signature juste et avec les notations déjà utilisées, la preuve est notée Prni=Pr'(gm/gU, tm, g A, g, PAE) avec gm/ gU =r ggW trm = pE AE o r et w sont choisis au hasard dans Zq, c'est-à-dire entre 1 et q-J et o gm= gugA et gm=gmgw' On peut donc représenter cette phase initiale par le tableau III suivant, o l'autorité de confiance n'a pas été représentée puisqu'elle n'intervient pas (si ce n'est, indirectement, par sa clef publique PAE)- E U p =S gS g s Pg3g PU =P s" P PE gA choisit r dans Zq choisit w dans Zq calcule g, = gugA calcule g. = g.g établit prm = pr' (m / gu, trm, gA, g, PAE) [m/gu =ggW avec trm = PAE gm tr%, Pr vérifie la preuve prm garde trm Tableau III Les opérations mentionnées dans ce tableau signifient que l'utilisateur chosit au hasard deux nombres a, b, calcule t,=g gb et t2= PE, calcule la fonction c=H(ti, tj2) et transmet à l'émetteur r=gm/guj et r2=trm ainsi que les nombres y,, Y2 calculés à partir des nombres y, =a-cx et y2=b-cy calculés à partir de a et b et de x=r et y=Tv; l'utilisateur calcule aussi la fonction de condensation c=H(t,, t2). Ainsi, la preuve pr,,, signifie-t-elle qu'il s'agit d'une preuve apportée par l'utilisateur qu'il connaît une représentation de g.,/gu, et trm en fonction de g, gA, PAEet que l'exposant de PAEdans la représentation de trm est égal à l'exposant de gA dans celle de gmwgu. L'utilisateur peut, en effet, calculer cette preuve puisque ( ./gu)=gAgw et trm=PAE et qu'il connaît r et w; par ailleurs l'exposant dans PAE est bien le même que l'exposant dans gA, à savoir r. La vérification de la preuve par l'émetteur passe par la reconstitution de t, et t2 à travers le calcul de gAig gy'.rc et qui redonne à l'évidence agb soit tl, et par le calcul de PA,1t qui redonne PAE soit t2. L'émetteur peut alors reconstituer H(t,, t2) et vérifier qu'il s'agit de c. Ces différentes opérations ne sont pas détaillées sur le tableau III. La preuve prm ayant été ainsi vérifiée par l'émetteur, le protocole de signature se poursuit de la manière suivante: - l'utilisateur U choisit au hasard un nombre w, calcule un message masqué gm à partir du message gm par la relation g =ggw et transmet 9m a l'émetteur E, en plus de la trace du retrait trm et de la preuve prm, - l'émetteur E choisit un entier x compris entre 1 et q-J, calcule ô= g et t,=gx, et transmet les nombres t et m à l'utilisateur U, - l'utilisateur U calcule, à l'aide des nombres w et r qu'il a choisi au hasard et des clefs publiques P, et PE, deux nombres Pm =P.Pp et Pm=PPw, puis choisit au hasard deux nombres u et v compris entre 1 et q-J, calcule deux nombres t et tm par t = tgVP" et tm=(t gPu)/tw, calcule un challenge c=H(t, t,, go, P) o H est une fonction de hachage connue, calcule un challenge masqué c=c-t1 et transmet ce challenge masqué c à l'émetteur E, - l'émetteur E calcule une réponse appropriée en utilisant sa clef secrète SE et le nombre x qu'il a choisi au hasard, par Y=x-êS, et transmet cette réponse y à l'utilisateur, l'utilisateur calcule y = y + v, puis calcule un premier produit gPC et vérifie que ce premier produit est égal à t, calcule un second produit g1P et vérifie que ce second produit est égal à tm, et, si les vérifications sont faites, l'utilisateur forme la signature a du message en regroupant les nombres y, c, Pm intervenus dans le protocole d'authentification et le nombre gm de départ (- -(y, gm, P)). Ces étapes du procédé peuvent être représentées par le tableau IV: E U choisit x dans Zq calcule t = gX calcule.tm = t, tm> calcule Pm = PUPr, P. = PmP choisit u, v dans Zq calcule t = îgvPu calcule tm = (tmgmV m) / tw calcule c=H(t, tm, gi, P,) calcule c = c- u ê calcule = x - êSE calcule y = + v ? t=gYPC {m=g gm obtient la signature =(y, c, gm, P.) Tableau IV La présentation de la signature ainsi obtenue peut s'effectuer à l'aide des opérations suivantes: - un tiers T, à qui la signature a est présentée par l'utilisateur U, transmet d'abord à cet utilisateur un message mT comprenant divers paramètres (identifiant du tiers, identifiant de la transaction, date, prix, etc...), - l'utilisateur U calcule une trace de présentation tru à partir de la seconde clef publique PAr de l'autorité et du nombre r qu'il a choisi, soit tru =PAT; il calcule ensuite g/g4 soit gA.g3 et constitue une preuve pru, qu'il connaît une représentation des nombres (g/g4> = g.g.u et tru = Pr en fonction de g gA. PAE et que l'exposant dePardans la représentation de truest égal à l'exposant de gA dans celle de m/gU; c'est-à-dire au nombre r choisi lors du retrait, et lie cette preuve au message mTreçu du tiers T en insérant mT dans le challenge du protocole de traçage, noté CT (CT =H (tl, t2, mT)); il transmet cette preuve pru au tiers T, - le tiers T vérifie la preuve pru puis vérifie la signature v. Le tableau V rassemble ces opérations: U T gu = gg,, Pu = P3" P calcule mr mr calcule pru=pr'(g./g4, tru, gA, g3, PA, mrT) g/ gV = gr gu avec trU = PATr g.,P.,y,c, tru,pru vérifie la preuve pru calcule t=gYPc calcule tm = gmP,, c=H(t, t"," gm' Pro) Tableau V Le procédé qui vient d'être décrit peut être perfectionné pour retrouver un utilisateur U qui aurait présenté plusieurs fois sa preuve, et cela sans recourir à l'autorité A. Pour cela, l'utilisateur U choisit en outre, au hasard, deux nombres a et b compris entre 1 et q-l, calcule deux nombres tl=gAg3 et t2 = PAT et insère ces deux nombres tl et 12 dans les données condensées du challenge (c=H(t, t,, gm, Pm,, tl, t)) calculé lors du retrait. Cette disposition contraint l'utilisateur à choisir les valeurs a, b une fois pour toutes lors du retrait et donc à révéler sa clef secrète en cas de double présentation et donc de double trace avec les mêmes a et b. Le calcul de la preuve pru lors de la présentation est modifié quelque peu. Le challenge cr calculé par l'utilisateur pour le protocole de tracage, qui contient donc mn, contient également les nombres t1 et t2 calculés et insérés lors du retrait dans le challenge du protocole de retrait (c= H(t, tm, g., Pm, ti, t)) l'utilisateur doit ensuite calculer normalement y3=a-crr et y2=b-cTSu et doit présenter au tiers T, les nombres gin, Pm, y,C et la trace tru ainsi que les nombres CTYr, et Y2, le tiers retrouve les nombres t] et t2 en calculant le nombre tr.g32(g,/g4)tC, qui est égal à t,, puis Py".tr[' qui est égal à t2, vérifie alors que H(t/, t2, mT) est bien égal à CT. Le tableau VI rassemble ces opérations: U T mT mr calcule la trace, avec a, b, t, et t2 déterminés lors du retrait: trU = PAr cr=H(ti, t2, mT) y,=a-cr r y2=b-cr Su 1 0 gms PmgY'c'trucr'yt'TY2 vérifie la preuve: t, = gAgY" (g, / g4)f t = P;ytró' CT =H(tl, t2, mT) et la signature: t = gY pC t. =tm gmYc ? c=H(t, tlm,gm, Pm, il, t2) Tableau VI Si la signature a été présentée deux fois, l'émetteur à qui ces signatures sont présentées pour remboursement extrait des deux signatures les valeurs y2 ! et Y2 pour les deux présentations, ainsi que les deux valeurs CT et CT et calcule (Y2-Y22)/(cT-CT) qui est +égal à Su. Il peut alors immédiatement calculer +égal à Su. Il peut alors immédiatement calculer gu =g3Ug4 et retrouve ainsi l'identité de l'utilisateur. Si l'autorité de confiance A n'intervient pas directement dans ces opérations d'échange entre l'émetteur et l'utilisateur, elle peut intervenir, le cas échéant, en fin de procédé en utilisant les traces de retrait et de présentation insérées dans le protocole à cet effet. La trace du retrait trm permet à l'autorité de retrouver la signature juste si elle a été présentée, à partir des données accessibles à l'émetteur (et conservées par lui) lors du retrait. En effet, l'autorité calcule gu(tr) s c'est-à-dire gm, donc est en mesure de reconnaître la signature juste (gm, Pm, y, c) si elle a été (ou dès qu'elle est) présentée à un tiers vérificateur. La trace de la présentation tru permet à l'autorité de retrouver l'identifiant de l'utilisateur qui a retiré la signature juste présentée. En effet, $-; l'autorité calcule gm/(tru) Ar c'est-à-dire gu, et donc retrouve U. Le procédé de signature juste qui vient d'être décrit peut se combiner avec un protocole de signature qui n'est pas complètement aveugle mais "borgne", en ce sens que l'émetteur peut connaître une partie d'un message. En particulier, la présente invention peut se combiner avec un procédé de signature borgne tel que décrit est revendiqué dans une demande de brevet français déposée le jour même du dépôt de la présente demande par le présent Demandeur et intitulée "Procédé de signature numérique borgne". REVENDICATIONS 1. Procédé de retrait d'une signature par un utilisateur (U) auprès d'un émetteur (E), dans lequel l'utilisateur (U) et l'émetteur (E) échangent des informations selon un protocole de signature aveugle, caractérisé par le fait qu'avant de mettre en oeuvre ce protocole, l'utilisateur (U) constitue une trace de retrait (trm) égale à une clef publique (PAE) d'une autorité de confiance (A) élevée à une puissance r o r est un nombre choisi au hasard par l'utilisateur, cette trace (trm) étant transmise à l'émetteur (E) avec une preuve (pr,,,) que cette trace (trm) permet à l'autorité (A) de retrouver la signature retirée en cas de nécessité, l'émetteur (E) vérifiant la validité de la preuve (pr,,,), conservant la trace (trm) et mettant ensuite en oeuvre les opérations de signature aveugle avec l'utilisateur (U). 2. Procédé selon la revendication 1, dans lequel trois entités sont mises en jeu: - un émetteur (E), lequel est muni d'une clef secrète (SE), d'une première clef publique (P) associée à un premier générateur (g), avec p = gSz, d'une deuxième clef publique (PE) associée à un deuxième générateur (gA) avec PE =gs, d'une troisième clef publique (P3) associée à un troisième générateur (g3) avec p =gSz et d'une quatrième clef publique (P4) associée à un quatrième générateur (g4) avec 4 = g4 S - un utilisateur (U), lequel est muni d'une clef secrète (Su), d'un générateur (gu) égal à g3Ug4 d'une clef publique (Pu) égale à Pup, une autorité de confiance (A), laquelle n'intervient pas directement dans les opérations entre utilisateur et émetteur, cette autorité étant munie d'une première clef secrète (SAE) avec une première clef publique (PAE) associée à un générateur (gA), avec PAE =gA, et d'une deuxième clef secrète (SAr) avec une deuxième clé publique (PAr) associée au même générateur (gA), avec PAT=g At. 3. Procédé selon la revendication 2, dans lequel l'utilisateur (U) prouve: - qu'il connaît une représentation d'un nombre ri par rapport à deux générateurs g., g2 connus, c'est-à-dire qu'il connaît deux nombres x et y tels que = gx2 - qu'il connaît la représentation d'un nombre r2 par rapport à un troisième élément générateur connu g3, c'est-à-dire qu'il connaît le nombre z tel que r2= g3 - et que z=x. 4. Procédé selon la revendication 3, dans lequel: - l'utilisateur choisit au hasard un nombre r et un nombre w compris entre 1 et q-1 o q est un nombre premier, calcule un nombre gm égal à g.*gA, et un nombre gm égal à gm gW, calcule une trace de retrait trm = PAE, calcule selon le procédé de traçage de la revendication 3, une preuve (pr,) qu'il connaît une représentation des nombres (gm/gU) =gwgr et trm = PE en fonction de g, gA, PAE et que l'exposant de PAE dans la représentation de tm est égal à l'exposant de gA dans celle de gm/gU, c'est-à-dire au nombre r, l'utilisateur transmet les nombres gm, trm et la preuve pr à 1 'émetteur (E), - l'émetteur vérifie la preuve prT et garde en mémoire la trace du retrait trm, - en cas de validité de la preuve (pr.), l'émetteur (E) et l'utilisateur (U) mettent en oeuvre un protocole de signature aveugle o le nombre gm est considéré comme un message à signer, protocole dans lequel l'émetteur prouve qu'il connaît sa clef secrète (SE), sans la révéler, l'utilisateur (U) constituant finalement une signature (G) en regroupant des nombres (y, c, Pm) connus de lui seul et intervenant dans le protocole de signature aveugle ainsi que le nombre gm connu de lui seul (oe=(y, C, g, P)) 5. Procédé selon la revendication 4, dans lequel: l'utilisateur (U) choisit au hasard un nombre w, calcule un message masqué gm à partir du message g,,, par la relation gm=ggw et transmet gm à l'émetteur (E) en plus de la trace du retrait (trm) et de la preuve (prm), - l'émetteur (E) choisit un entier x compris entre 1 et q-i o q est un nombre premier, calcule t=g et tm=gm et transmet les nombres t et t^ à l'utilisateur (U), - l'utilisateur (U) calcule, à l'aide des nombres w et r qu'il a choisis au hasard et des clefs publiques Pu et PE, deux nombres Pm=Pu.Ppr et P= PW, puis choisit au hasard deux nombres i et v compris entre 1 et q-l, calcule deux nombres t et tm par t=tgvPu et tm=(ngM) , calcule un challenge c=H(t, tm, gm, P,) o H est une fonction de hachage connue, calcule un challenge masqué c=c-u et transmet ce challenge masqué È à l'émetteur (E), - l'émetteur (E) calcule une réponse appropriée en utilisant sa clef secrète (SE) et le nombre x qu'il a choisi au hasard, par y=x-êSs et transmet cette réponse y à l'utilisateur, - l'utilisateur calcule y=y+v, puis calcule un premier produit gpc et vérifie que ce premier produit est égal à t, calcule un second produit gP1 et vérifie que ce second produit est égal à tm, et, si les vérifications sont faites, l'utilisateur forme la signature (a) du message en regroupant les nombres yc, Pm intervenus dans le protocole de signature aveugle et le nombre gm de départ (=(y, c, gm, Pv)). 6. Procédé selon la revendication 5, dans lequel l'utilisateur (U) choisit en outre au hasard deux nombres a et b compris entre 1 et q-J, calcule deux nombres t1,=gAg3 et t2 =PAT et insère ces deux nombres tl et t2 dans les données condensées du challenge c (c=H(t, m, gm. Pm ti, t2). 7. Procédé de présentation d'une signature obtenue par le procédé selon l'une quelconque des revendications 5 et 6, dans lequel: - un tiers (T), à qui la signature (a) est présentée par l'utilisateur (U), transmet d'abord à cet utilisateur un message (mT) comprenant des données relatives au contexte de la présentation, - l'utilisateur (U) calcule une trace de présentation (tru) à partir de la seconde clef publique (PAT) de l'autorité et du nombre r qu'il a choisi, par tru= PE, calcule gn/g4 et constitue, selon le protocole de traçage de la revendication 3, une preuve pru qu'il connaît une représentation des nombres (g"/g4= g.g3U) et tru = PAT en fonction de g, gA, et PAE et que l'exposant de PAr dans la représentation de tru est égal à l'xposant degA dans celle de gm/gu c'est-à-dire au nombre r choisi lors du retrait, et lie cette preuve au message mr reçu du tiers T en insérant mrdans le challenge du protocole de traçage cr (cr=H (tl, t2, mT)) et transmet cette preuve (pru) au tiers (T) et ajoute à cette preuve le message mT reçu du tiers (T), et transmet cette preuve (pru) au tiers (T), - le tiers (T) vérifie la preuve (pru) puis vérifie la signature (a). 8. Procédé selon les revendications 6 et 7, dans lequel, pendant l'opération de présentation, le challenge CT calculé par l'utilisateur dans le protocole de traçage contient donc n;T contient également les nombres t, et t2 calculés et insérés lors du retrait dans le challenge du protocole de retrait (c= H (t, ts gm, Pm, til, t2)) puis calcule yl=a-crr et y2=b-cTSu et présente au tiers (T) les nombres gm, Pm, y, c et la trace tru ainsi que les nombres CTr, y, et y2, le tiers retrouvant les nombres tl et 12 en calculant le nombre tlAl.g32(gm/g4)Cr qui est égal à tl, puis en calculant le nombre PT. tr3cr qui est égal à 12, vérifie alors que H(Il, 12, mT) est bien égal à CT, retrouve t en calculant gp>c retrouve tm en calculant g Y P et vérifie ensuite que H(t, m,gm, Pm, t,, 1t2) est bien égal à c. 9. Procédé selon la revendication 8, dans lequel le tiers identifie un utilisateur ayant présenté deux fois une même signature avec deux nombres cr etc' différents (y2=b-cT Su et y2=b-crSu) en calculant le rapport (Y2-Y2)/(Cr-CT) ce qui lui donne la clef secrète (Su) de l'utilisateur et lui permet de calculer gu.g4 c'est-à-dire le générateur gu de l'utilisateur. 10. Procédé selon la revendication 7, comprenant, en outre, un traitement de la trace de retrait (trm) par l'autorité de confiance (A), celle-ci calculant, à partir de la trace de retrait (trm) conservée par l'émetteur (E) et de sa première clef secrète (SAE), la quantité (tr,) S, puis le produit de ladite quantité par le générateur (gu) de l'utilisateur, ce qui lui donne le nombre (gm) et lui permet de retrouver la signature (y,c,gm, Pm), donc l'opération de retrait. 11. Procédé selon la revendication 10, comprenant, en outre, un traitement de la trace de présentation (tru) par l'autorité (A), celle- ci calculant, à partir de ladite trace (tru) formée lors de la présentation de la signature au tiers (T) et de sa seconde clef secrète (SAT), la quantité (tru) S , puis le produit de cette quantité par le nombre (gm) précédemment calculé, ce qui lui donne le générateur (gu) de l'utilisateur et permet d'identifier celui-ci (U).