FR 2855343 A1 20041126 FR 0306035 A 20030520 PROCEDE DE SIGNATURE ELECTRONIQUE DE GROUPE AVEC ANONYMAT REVOCABLE, EQUIPEMENTS ET PROGRAMMES POUR LA MISE EN EUVRE DU PROCEDE La présente invention concerne les techniques de signature électronique et plus particulièrement les techniques de signature de groupe. L'objet fondamental permettant d'avoir confiance en la partie publique d'une clé cryptographique (clé publique) est le certificat. Le standard de certificat utilisé dans de nombreux réseaux dont l'lnternet est X.509, version 3. Une spécification en est fournie par le groupe de travail PKIX de l'IETF 10 ("Internet Engineering Task Force") dans la Request For Comments (RFC) 3280, "Internet X.509 Public Key Infrastructure; Certificate and Certificate Revocation List (CRL) Profile" publiée en avril 2002. Le certificat est un objet comprenant notamment: * la clé publique à certifier; * I'identité de son possesseur; * une période de validité; * une signature cryptographique de ces données par la clé privée d'une Autorité de Certification (AC) émettrice du certificat. Avoir confiance en la clé publique associée à une identité revient à 20 s'assurer de la validité du certificat. Pour PKIX, un certificat est valide à un instant T donné (en termes de confiance): * soit s'il est explicitement déclaré comme "certificat de confiance". En pratique, les certificats des utilisateurs ne sont jamais déclarés de confiance. On déclare plutôt un nombre réduit de certificats de confiance, 25 consistant en les certificats de certaines AC; * soit s'il vérifie les conditions suivantes: - la signature cryptographique du certificat est mathématiquement valide; - I'instant T fait partie de la période de validité du certificat; 30 - le certificat n'est pas révoqué à l'instant T; - 2 - la clé publique de l'AC émettrice est disponible par un certificat de l'AC, et ce certificat de l'AC est lui-même valide à l'instant T. La fonction de signature électronique permet de garantir l'authenticité d'un document, c'est-à-dire d'authentifier de façon sûre son ou ses signataires 5 et de garantir que le document n'a pas été modifié (intégrité). La signature électronique est souvent utilisée pour garantir la non-répudiation. La non-répudiation d'un document consiste à se prémunir contre un déni ultérieur de son auteur. Cette signature électronique traditionnelle transpose dans le monde l0 électronique le mécanisme de signature manuelle. Une autre forme de signature électronique, reposant sur des techniques de cryptographie multiacteurs, offre des caractéristiques à la fois proches de la signature simple (une certaine garantie de la provenance d'un message) et radicalement différentes (anonymat du signataire parmi un groupe de personnes). La signature de 15 groupe (ou "group-signature") permet à un individu membre d'un groupe administré par une autorité d'effectuer une signature au nom du groupe. La signature de groupe fait intervenir au moins un signataire, un groupe d'individus auquel le signataire appartient, et une autorité. Il permet à un individu de signer au nom d'un groupe d'individus, mais de manière 20 anonyme. Quand une entité vérifie une signature de groupe, elle est certaine que la signature a bien été effectuée par un membre du groupe, sans pouvoir déterminer lequel. Une seule entité peut déterminer l'identité du signataire: l'autorité. Dans ce cas, on dit qu'elle "ouvre" la signature. La signature de groupe est alors dite à "anonymat limité". Cette possibilité de lever l'anonymat 25 peut s'avérer utile, notamment en cas de fraude ou pour assurer le bon fonctionnement d'un service comme par exemple un service d'enchères. En général, la signature de groupe nécessite une phase d'initialisation et met en jeu des clés cryptographiques spécifiques. Les mécanismes de signature de groupe ne sont pas standardisés. 30 Des exemples en sont décrits dans les articles: * D. Chaum, et al., "Group signatures", Eurocrypt '91. 1991; G. Atienese, et al., "A Practical and Provably Secure Coalition-Resistant Group Signature Scheme", Crypto 2000, http://www.zurich.ibm. com/security/publications/2000/ACJT2000.pdf. Ces techniques connues de signature de groupe permettent 5 généralement de lever l'anonymat. Mais elles ont des inconvénients: lourdeur de mise en place, nécessité d'une autorité d'administration, clés incompatibles avec les standards du marché. La gestion des groupes complique beaucoup ces mécanismes de signature de groupe. En général, c'est l'autorité qui en est chargée. Mais cela n'ôte pas la complexité des opérations d'adhésion d'un l0 nouveau membre à un groupe déjà existant et de retrait d'un membre d'un groupe. Comme les opérations de signature font appel à des clés non standard, un utilisateur muni d'une clé RSA et d'un certificat X.509 ne pourra utiliser cette clé pour effectuer sa signature de groupe. La "ring-signature", ou signature en anneau, est un algorithme de 15 signature à cryptographie multi-acteurs qui n'est pas à proprement parler une signature de groupe. Elle diffère de la signature de groupe en ce que: * les personnes aux noms desquelles le signataire produit sa ringsignature ne font pas partie d'un groupe formalisé et n'ont donc pas donné de consentement explicite; * il n'y a pas d'autorité; * à moins que le signataire ne soit explicitement mentionné, I'anonymat ne peut pas être levé. Il faut tout de même que tous les éventuels signataires aient une clé publique accessible au signataire. On n'a pas besoin de phase préalable de 25 configuration. Comme il n'y a pas d'autorité, la ring-signature offre un anonymat complet, c'est-à-dire que personne ne peut déterminer qui est le signataire effectif, à moins d'introduire des mécanismes complémentaires. Ce mécanisme de ring-signature a été introduit pour la première fois par R.L. Rivest, et al.: "How to Leak a Secret", Asiacrypt'01, décembre 2001, 30 http://theory.lcs.mit.edu/-rivest/RivestShamirTauman-HowToLeakASecret. pdf). Des variantes en ont ensuite été proposées, par exemple par E. Bresson, et al., "Threshold Ring Signatures and Applications to Ad-hoc Groups" Crypto'02, août 2002. La ring-signature fait intervenir un signataire Es parmi un ensemble E de r entités ou individus Ei susceptibles de signer (i allant de 1 à r), munis de 5 clés publiques respectives PUBi accessibles au signataire. Chacune des clés publiques PUBi est associée, dans un schéma de cryptographie asymétrique tel que par exemple le RSA, à une clé privée PRi connue du seul membre Ei. Le signataire Es appartient à l'ensemble E (1 On note M l'ensemble des messages ou documents susceptibles d'être signés. Le nombre b désignant une "largeur d'anneau" exprimée en bits, on note B l'ensemble des messages de b bits. Une "combinaison" C détermine 15 une fonction de combinaison Cmv comme une fonction d'un nombre quelconque de variables d'entrée dans B, prenant ses valeurs dans B, dépendant d'au moins deux paramètres m E M et v E B et telle que, toutes les variables d'entrée sauf une quelconque étant fixées, Cmv soit une bijection de B dans B. Pour minimiser la complexité algorithmique, il convient que (i) pour 20 toutes valeurs des variables d'entrée, Cmv soit facile à calculer, et (ii) I'inverse de chacune des bijections précitées soit aussi facile à calculer. Cette opération inverse est appelée "résolution de l'équation de l'anneau". Pour certaines variables Y1, Y2, Yr, "l'équation de l'anneau" s'exprime de la façon suivante: Cm,v(yl, Y2, Yr) = v (1) On définit d'autre part une fonction A qui, à des clés de cryptographie asymétrique (PUB, PR), o PUB est une clé publique et PR une clé privée correspondante, associe un couple (g, h) tel que: - g est une fonction à valeurs dans B qui peut dépendre de PUB mais pas PR; - h est une fonction d'une variable de B qui peut dépendre de PUB et PR; - g et h sont inverses l'une de l'autre, c'est-à-dire: * g(h(y)) = y pour tout y dans B; et * h(g(x)) = x pour tout x acceptable en entrée de g. La définition du triplet (b, C, A) caractérise un schéma de ringsignature. Un "système de production de ring-signature" est défini par un tel triplet (b, C, A), un ensemble d'entités E = {Ei / 1 Un algorithme de production de ring-signature par S s'exécute alors comme suit: /a/ choisir aléatoirement v dans B; /b/ choisir des éléments xi aléatoires pour tous les i ós; Ic/ résoudre l'équation de l'anneau en ys en fixant les variables d'entrée yi = gi(xi) pour les i És à l'aide des clés publiques PUBi, c'est-à-dire déterminer ys tel que Cm,v(gl(Xl), '" gs-1(Xs-1), Ys, g9s+1(Xs+1), ..., gr(Xr)) = v /d/ calculer xs = hs(ys) à l'aide de la clé privée PRs; et le/ délivrer la ring-signature: (PUB1, PUB2, ..., PUBr; v; x1, x2, ..., xr). Cette ring-signature est alors vérifiable par l'algorithme de vérification suivant: If/ calculer les yi = gi(xi) pour 1 La ring-signature permet de remédier aux inconvénients des méthodes 5 classiques de signature de groupe. Mais, dans ses versions connues, elle impose de renoncer à pouvoir lever l'anonymat. Or la capacité de lever l'anonymat est une propriété essentielle pour un certain nombre d'applications comme par exemple des boîtes à idées électroniques, des applications de loterie électronique, des services d'enchères électroniques, etc. La présente invention a pour but d'adapter la technique de ringsignature pour permettre la levée de l'anonymat. L'invention propose ainsi un procédé de signature électronique d'un message par un signataire anonyme appartenant d'un groupe de r signataires possibles ayant chacun une clé publique et une clé privée associées dans un 15 schéma de cryptographie asymétrique, r étant un entier plus grand que 1. Ce procédé comprend les étapes suivantes exécutées dans un dispositif de signature électronique du signataire anonyme: - obtenir au moins r valeurs de paramètres de variabilité incluant les valeurs de r-1 paramètres de variabilité respectivement associés aux 20 autres signataires possibles du groupe et au moins une valeur de paramètre supplémentaire; - chiffrer les valeurs des r-1 paramètres de variabilité associés aux autres signataires possibles du groupe, à l'aide des clés publiques respectives desdits autres signataires possibles, ce qui produit r-1 valeurs chiffrées 25 respectivement associées aux autres signataires possibles du groupe; - déterminer une valeur complémentaire qui vérifie une équation d'anneau dont les variables sont le message à signer, chacune des r-1 valeurs chiffrées associées aux autres signataires possibles du groupe, chaque valeur de paramètre supplémentaire et ladite valeur complémentaire; - déchiffrer la valeur complémentaire déterminée, à l'aide de la clé privée du signataire anonyme, ce qui produit la valeur d'un paramètre de variabilité associé au signataire anonyme; et - délivrer une signature électronique du message comprenant les clés 5 publiques respectives des r signataires possibles du groupe, les valeurs des paramètres de variabilité respectivement associés aux r signataires possibles du groupe et chaque valeur de paramètre supplémentaire. Selon l'invention, au moins une des r valeurs de paramètres de variabilité est une trace d'identité du signataire anonyme, déterminée en 10 fonction de données de levée d'anonymat mémorisées et tenues secrètes par au moins une entité de levée d'anonymat en relation avec une identification du signataire anonyme. Le procédé permet la levée de l'anonymat sur des signatures ayant les mêmes propriétés que la ring-signature. Cela permet avantageusement de 15 disposer d'un algorithme de signature ayant la plupart des propriétés des signatures de groupe, mais avec des clés standard, sans la gestion lourde des groupes, et sans requérir obligatoirement un administrateur. Un autre aspect de la présente invention se rapporte à un dispositif informatique de signature électronique de messages par un signataire 20 anonyme, comprenant des moyens adaptés à la mise en oeuvre des étapes du procédé défini ci-dessus, qui incombent à un tel dispositif de signature électronique. Un autre aspect de la présente invention se rapporte à un serveur de confiance pour intervenir dans la production de données de levée d'anonymat 25 relativement à au moins un signataire anonyme, comprenant des moyens de mise en oeuvre des étapes de certains modes d'exécution du procédé défini cidessus, qui incombent à un tel serveur. L'invention propose encore des programmes d'ordinateur à installer dans un dispositif informatique de signature électronique ou dans un serveur 30 de confiance. Ces programmes comprennent des instructions pour mettre en oeuvre les étapes d'un procédé tel que défini ci-dessus, qui incombent à un tel dispositif ou serveur, lors de leur exécution par des moyens de traitement dudit dispositif ou serveur. Un autre aspect encore de la présente invention se rapporte à un procédé de levée de l'anonymat d'au moins un signataire anonyme d'un 5 message signé électroniquement conformément à un procédé tel que défini cidessus. Ce procédé de levée d'anonymat comprend les étapes suivantes: - vérifier la signature électronique du message, en extrayant de la signature électronique du message les clés publiques respectives des r signataires possibles du groupe, les valeurs des paramètres de variabilité 10 respectivement associés aux r signataires possibles du groupe et chaque valeur de paramètre supplémentaire, en obtenant r valeurs chiffrées par chiffrage des valeurs des paramètres de variabilité associés aux r signataires possibles du groupe à l'aide de leurs clés publiques respectives, et en s'assurant que le message, les r valeurs chiffrées et 15 chaque valeur supplémentaire vérifient ensemble l'équation d'anneau; récupérer les données de levée d'anonymat mémorisées par l'entité de levée d'anonymat en relation avec l'identification du signataire anonyme; recalculer la trace d'identité du signataire anonyme en fonction des données de levée d'anonymat récupérées; et - vérifier que la trace d'identité recalculée correspond à la trace d'identité incluse dans les r valeurs de paramètres de variabilité faisant partie de la signature électronique du message. L'invention propose aussi un dispositif informatique pour lever l'anonymat d'au moins un signataire anonyme d'un message signé 25 électroniquement, comprenant des moyens adaptés à la mise en oeuvre des étapes du procédé de levée d'anonymat ci-dessus, ainsi qu'un programme d'ordinateur à installer dans un tel dispositif informatique pour lever l'anonymat d'au moins un signataire anonyme d'un message signé électroniquement, comprenant des instructions pour mettre en oeuvre les étapes du procédé de 30 levée d'anonymat ci-dessus lors d'une exécution du programme par des moyens de traitement dudit dispositif. D'autres particularités et avantages de la présente invention apparaîtront dans la description ci-après d'exemples de réalisation non limitatifs, en référence aux dessins annexés, dans lesquels: - les figures 1 à 8 sont des organigrammes illustrant différents modes de réalisation de procédés selon l'invention. L'invention est illustrée ici, à titre non limitatif, dans le cadre d'une technique de ring-signature telle que décrite dans la publication précitée de R. Rivest, et al. Chaque entité Ei (1 10og2(ni) pour tout i et l'ensemble B = {0, 1, 2, ..., 2b-1}. Typiquement, b = 1024 ou 2048 selon les 15 clés RSA des utilisateurs. Cet élargissement permet d'avoir des tailles de clés différentes selon les membres du groupe. Les fonctions gi sont définies de B dans B. En notant qi(x) et ri(x) le quotient et le reste par la division euclidienne de x par ni (x = qi(x). ni + ri(x) avec 0 2b, alors gi(x) = x. Cette fonction gi dépendant de la clé publique PUBi est inversible et son inverse hi dépend de la clé privée PRi associée à PUBi: si (qi(y)+1).ni 2b, alors hi(y) = y, fi-1 étant la fonction de déchiffrement RSA, inverse de fi, évaluée à l'aide de la clé privée PRi. - La combinaison C est définie à l'aide d'une part d'une fonction de chiffrement symétrique CSk, construite par exemple à partir d'un algorithme classique tel que DES ("Digital Encryption System"), AES ("Advanced Encryption System"), etc., et définissant une permutation sur B à partir d'une 5 clé k, et d'autre part une fonction de hachage H, construite par exemple à partir de la fonction classique SHA-1 et apte à produire toutes les clés k valides. La clé k est générée en hachant le message M à signer: k = H(m). La fonction de combinaison Cmv est alors donnée par: Cm,v(Yl, Y2.... Yr) = CSk(Yr e CSk(Yr-1 e CSk(Yr_2 e CSk(Y1 v) .))) o e désigne l'opération OU EXCLUSIF...DTD: Cette fonction de combinaison est inversible pour toute position s, la résolution de l'équation d'anneau (1) consistant simplement à calculer: u = CSk(Ys-1 E CSk(Ys_2 e... e CSk(y1 e v)...)); ò u'= DSk(Ys+1 e DSk(Ys+2... e DSk(Yr e DSk(v))...)) à l'aide de la 15 fonction de déchiffrement symétrique associée à CSk; puis * Ys= u u'. L'invention modifie ce mécanisme de ring-signature connu en remplaçant l'une au moins des valeurs de paramètres de variabilité tirées aléatoirement, c'est-à-dire v et/ou x; pour i s, par une trace d'identité du 20 signataire Es. Des données de levée d'anonymat (DLA) sont produites pour être mémorisées et tenues secrètes par au moins une entité de levée d'anonymat (ELA) en relation avec une identification IDs du signataire Es. La trace d'identité, déterminée en fonction de ces DLA, permet ultérieurement, si le besoin s'en fait sentir, de révoquer l'anonymat procurée au signataire par le 25 mécanisme de ring-signature. L'ELA peut être constituée par le signataire lui-même ou par un serveur de confiance supervisé par un tiers indépendant. Elle peut aussi inclure à la fois le signataire et un tels serveur de confiance. - 11 En référence aux figures, on voit les dispositifs informatiques détenus par les signataires possibles Ei du groupe E, qui consistent par exemple en des ordinateurs ou terminaux capables de communiquer entre eux par l'intermédiaire d'un ou plusieurs réseaux de télécommunication non 5 représentés (par exemple un réseau de type IP tel que l'lnternet ou un Intranet). Ces dispositifs sont équipés de programmes adaptés à la mise en oeuvre des étapes décrites ci-après. On suppose que chaque membre du groupe E connaît les clés publiques PUBi de tous les autres. L'identification de chaque membre Ei est effectuée au moyen d'une identité IDi, qui peut consister 10 en l'indice i, la clé publique PUBi, un certificat de type X.509 ou autre, etc) Les figures 2 à 4, 6 et 8 montrent aussi un serveur de confiance S utilisable dans certains modes de réalisation du procédé. Ce serveur est raccordé au réseau de télécommunication et est également équipé de programmes adaptés à la mise en oeuvre des étapes décrites ci-après. Il peut 15 par exemple être réalisé par un serveur web sécurisé de type SSLv3 (voir "The SSL Protocol - Version 3.0", Internet Draft, IETF, novembre 1996). Les requêtes lui sont alors envoyées selon le protocole HTTPS avec authentification du client. Les signatures qui interviennent (jeton, preuve du signataire) peuvent 20 toutes être stockées dans des structures connues de type PKCS#7signedData ou XML-DSig. Les vérifications de signature impliquent le cas échéant la vérification des chaînes de confiance des certificats. Dans les modes de réalisation de l'invention illustrés par les figures 1 à 6, la valeur de paramètre de variabilité prise égale à la trace d'identité est la 25 valeur du paramètre supplémentaire v servant à fermer l'anneau de signature. Dans la réalisation de la figure 1, I'ELA est constituée par le signataire Es Le dispositif informatique de celui-ci tire un aléa jt (étape 1), qu'il mémorise en tant que DLA à l'étape 2, en le gardant secret. A l'étape 3, la trace d'identité v est calculée par hachage cryptographique de la concaténation de l'aléa p et 30 du message m à signer: - 12 v h(p II m) Dans la présente description, la notation w Il z désigne la concaténation de deux messages quelconques w et z, h désigne une fonction de hachage cryptographique prenant ses valeurs dans B, et h', h" désignent des fonctions 5 de hachage pouvant être les mêmes ou autres que h. Ces fonctions de hachage h, h', h" peuvent être choisies parmi celles classiquement employées dans les applications cryptographiques (SHA-1, MD-5, etc.). Après avoir obtenu la trace d'identité v, le dispositif du signataire tire au hasard les valeurs xi dans B pour 1 La ring-signature (PUB1, PUB2, ..., PUBr; v; x1, x2, ..., Xr) peut être 15 adjointe au message m pour former le message signé M communiqué par le signataire Es. La ring-signature est vérifiable par quiconque suivant l'algorithme de vérification /f/-/hl précédemment décrit. La levée de l'anonymat peut être sollicitée par un vérificateur V muni d'un dispositif informatique apte à communiquer avec ceux des membres du 20 groupe E par l'intermédiaire du réseau de télécommunication et programmé de façon à pouvoir procéder aux opérations ci-après. Dans une première étape 100, le vérificateur V s'assure de la validité de la ring-signature. Si l'équation d'anneau (1) n'est pas vérifiée pour le message signé M, la signature est déclarée invalide. Si elle est valide, le 25 vérificateur adresse au moins une requête de DLA à une ELA, par exemple par e-mail. Dans le cas de la figure 1 (ELA= Es), cette requête de DLA est envoyée aux membres du groupe E, seul Es étant en mesure d'y répondre convenablement. Si V se doute de l'identité du signataire, il peut n'envoyer la requête qu'à celui-ci. Sinon, il s'adresse à tous les membres du groupe, soit successivement jusqu'à obtenir une réponse satisfaisante, soit simultanément. La requête de DLA peut inclure le message m ou une partie de celui-ci afin de permettre au destinataire de savoir pour quel message une levée 5 d'anonymat est demandée. Elle peut notamment inclure un hash h"(m) du message m, que le signataire Es a également conservé en mémoire à l'étape 2 en relation avec les DLA. Dans le traitement de la requête, Es pourra ainsi accéder aux DLA demandées. Le signataire Es détermine s'il accepte de lever son anonymat envers 10 V, ce qui peut requérir une authentification préalable de V par Es. Puis, s'il accepte, les DLA mémorisées sont lues à l'étape 6 et adressées à V dans un message qui peut éventuellement être signé avec la clé privée de Es pour garantir à V son origine. Recevant une valeur p* (=DLA) dans un tel message provenant d'un membre identifié Ei, V vérifie à l'étape 101 si c'est une réponse 15 satisfaisante, c'est-à-dire si h(p.* Il m) correspond à la valeur v incluse dans la ring-signature. Dans l'affirmative, I'anonymat de Es est levé par V. Sinon, l'anonymat est maintenu et un autre membre du groupe est éventuellement interrogé à son tour. Le signataire Es peut aussi lever spontanément son anonymat, en 20 communiquant pl à V (avec m) ou en le publiant sur un site web. La variante illustrée par la figure 2 permet la levée de l'anonymat grâce à un tiers de levée d'anonymat supervisant un serveur de confiance S. Le signataire Es génère une requête d'un aléa y' (étape 10), qu'il adresse au serveur S. Cette requête peut contenir un hash h"(m) du message m à des fins 25 de référence. Le serveur S authentifie Es (étape 200), par exemple dans le cadre de l'établissement d'une session SSLv3 ou d'après le contenu du message transportant la requête. Si Es est bien authentifié, le traitement de la requête par S comprend le tirage d'un premier aléa p (étape 201) qui est mémorisé et tenu secret en relation avec l'identité IDs du signataire (étape 202) et avec h"(m). La valeur t' est alors calculée par hachage de pt à l'étape 203 ('= h'(pi)) puis retournée à Es. La trace d'identité v est obtenue à l'étape 11 par le signataire Es par hachage cryptographique de la concaténation de y' et du message à signer m 5 (ou d'une partie seulement de celui-ci): v = h(p' Il m). Les étapes 4 et 5 précitées sont ensuite exécutées pour produire la ring-signature. Après vérification 100 de cette ring-signature, V envoie sa requête de DLA au serveur de confiance S. Cette requête peut être accompagnée par le hash h"(m) à des fins d'identification du message. Le serveur S peut alors lire 10 les DLA requises (étape 204) et les retourner à V. La vérification 101 permettant à V de lever l'anonymat consiste alors à tester si h(h'(pt* Il m)) = v, o p* est la valeur d'aléa reçue de S. Si le test est positif, V identifie Es d'après l'identité obtenue dans les DLA. On note que, dans cette réalisation, le serveur S n'a pas de 15 connaissance du message m avant d'enregistrer les DLA et qu'il ne peut donc pas a priori censurer Es (un hash cryptographique tel que h"(m) ne donne pas accès au contenu de m). Les figures 3 à 6 illustrent des modes de réalisation de l'invention permettant, une fois l'anonymat levé, de disposer d'une preuve (levées 20 authentifiées de l'anonymat). Dans ces modes de réalisation, il y a une phase de collecte de preuve pour la levée d'anonymat, pendant laquelle une entité produit une preuve p pouvant notamment inclure l'identité IDs du signataire et le message m. Cette preuve est conservée en tant que DLA par une ou plusieurs ELA (tiers de confiance et/ou Es elle-même). Si Es n'est pas une 25 ELA, une ELA transmet à Es un hash q = h(p) qui servira de trace d'identité. Après vérification des DLA, V peut appliquer un algorithme de vérification de la preuve de levée d'anonymat qui retourne IDs si la preuve est valide et qui refuse la levée d'anonymat si la preuve est invalide. La preuve peut notamment être générée par signature électronique - 15 d'unjeton J composé en concaténant un aléa jp, le message m (ou une partie de celui-ci, notamment un hash) et d'éventuelles extensions. La signature du jeton J peut être effectuée par Es ou par un serveur de confiance S. Dans ce dernier cas, il est judicieux que le jeton J contienne aussi une identité IDs du 5 signataire. Les extensions du jeton peuvent comprendre un numéro de série ou d'autres données utiles. Dans une réalisation avantageuse, ces extensions incluent un jeton d'horodatage généré au moment de la composition du jeton à signer. Ce jeton d'horodatage peut notamment être généré selon le protocole TSP ("Time Stamp Protocol", voir RFC 3161, "Internet X.509 Public Key 10 Infrastructure Time-Stamp Protocol (TSP), août 2001, IETF); il contient alors la date et l'heure du jeton J et il signé par un tiers d'horodatage. Dans la réalisation selon la figure 3, I'ELA consiste en un serveur de confiance S. Le signataire Es génère une requête de jeton (étape 20), qu'il adresse 15 au serveur S avec le message m ou une partie de celui-ci (cette partie peut notamment consister en un hash h"(m) du message m, ce qui permet que S génère la preuve p sans connaître le contenu du message m). Le serveur S authentifie Es (200) et tire un aléa pi (201) comme précédemment. Puis il compose le jeton J à l'étape 210: J = F Il m Il IDs II ext ou 20 J = Il h"(m) Il IDs Il ext, o ext désigne les extensions optionnelles. Le serveur S signe alors le jeton J à l'aide de sa clé privée à l'étape 211, ce qui produit la preuve p mémorisée à l'étape 212. A l'étape 213, il calcule ensuite la valeur q = h(p), retournée à Es comme réponse à sa requête. La trace d'identité v est prise égale à cette valeur q à l'étape 21 par le 25 signataire Es. Les étapes 4 et 5 précitées sont ensuite exécutées pour produire la ring-signature. Après vérification 100 de cette ring-signature, V envoie sa requête de DLA au serveur de confiance S. Cette requête peut être accompagnée du message m ou du hash h"(m) à des fins d'identification du message. Le 30 serveur S peut alors lire les DLA requises (étape 214) et les retourner à V. La - 16 vérification 101 permettant à V de lever l'anonymat consiste alors à tester si h(p*) = v, o p* est la preuve reçue de S. Si le test est positif, V procède à des vérifications 110 d'après la preuve p. La levée de l'anonymat de Es n'est effective que si ces vérifications sont toutes positives. A cette étape 110, V vérifie: * la concordance entre le m trouvé dans p (ou son hash h"(m)) et le message de la ring-signature M; * la validité de IDs et de sa concordance avec PUBs; * la validité des extensions éventuelles; et * la validité de la signature du jeton J par S, à l'aide de la clé publique de S. La réalisation illustrée par la figure 4 est similaire à celle de la figure 3, sauf que Es signe le message m à l'aide de sa clé privée PRs (étape 30), et envoie à S le message signé m* dans la requête de jeton générée à l'étape 31. 15 Le serveur S vérifie cette signature à l'aide de la clé publique PUBs (étape 220), tire l'aléa p. puis composer le jeton à l'étape 221 avec le message signé m*: J = p Il m* Il IDs Il ext. Les autres opérations sont les mêmes que celles de la figure 3. A l'étape 110, V pourra effectuer une vérification supplémentaire sur la preuve p, quant à la validité de la signature du message m par Es, à l'aide de 20 la clé publique PUBs de Es Cette vérification supplémentaire permet de rendre non-répudiable la levée de l'anonymat de Es. Une telle non-répudiation peut aussi être obtenue en faisant signer le jeton J par le signataire anonyme Es, dans une réalisation selon la figure 5 qui ne fait pas intervenir de tiers de confiance. Un aléa p est d'abord tiré (étape 1) 25 dans le dispositif informatique du signataire Es, qui compose le jeton J à l'étape 40: J = F Il m Il ext ou J = p Il h"(m) Il ext. Ce jeton J est alors signé à l'aide de la clé privée PRs (étape 41), et le résultat (preuve p) est mémorisé en tant que DLA à l'étape 42 (si nécessaire en relation avec un hash h"(m) du message). A l'étape 43, Es détermine la trace d'identité v = h(p), qu'il utilise pour établir la ring-signature comme précédemment (étapes 4 et 5). Les DLA lues à l'étape 44 en réponse à la requête du vérificateur V comprennent la preuve p vérifiée comme précédemment à l'étape 110 (sauf en ce que la signature de p est vérifiée à l'aide de la clé publique PUBS). Dans la variante de la figure 6, I'ELA est constituée conjointement par le serveur de confiance S et par le signataire anonyme Es, et les DLA sont subdivisées en une première partie DLA1 = (jt, IDs) conservée par S et une seconde partie DLA2 = p conservée par Es. Celui-ci commence par demander un aléa y' à S comme dans le cas de la figure 2 (étapes 10 et 200-203), cet 10 aléa >i' étant produit par hachage d'un premier aléa p conservé et tenu secret avec IDs (et éventuellement h"(m)) par S en tant que DLA1. Le signataire Es compose le jeton J à l'étape 40 avec la valeur y' retournée par S (J = jt' Il m Il ext), puis il le signe à l'étape 41 pour obtenir la preuve p stockée à l'étape 42 en tant que DLA2. La suite des opérations est semblable à celle de 15 la figure 5, sauf que lors de la levée de l'anonymat, V s'adresse d'abord à S pour obtenir DLA1 = (i, IDs), ce qui lui permet d'identifier Es, puis à Es pour obtenir la preuve p. La vérification 110 peut aussi porter sur le fait que la valeur y' trouvée dans le jeton signé résulte bien du hachage de l'aléa p. retourné par S dans les DLA1. Dans le mode de réalisation de l'invention illustré par la figure 7, la valeur de paramètre de variabilité prise égale à la trace d'identité n'est pas v mais la valeur de l'un des paramètres xj associés aux autres membres Ei du groupe E (j É s). L'indice j est alors choisi arbitrairement par le signataire Es et adjoint aux DLA. La variable v redevient alors un aléa. A l'étape 60, Es tire deux aléas pi et v. Les DLA enregistrés à l'étape 61 comprennent les valeurs de l'aléa p et de l'indice j (et éventuellement un hash h"(m) du message m). La valeur du paramètre xj associé à Ej est calculée à l'étape 62 selon: xj = h(û Il m), et à l'étape 63, Es tire des valeurs aléatoires des autres xi, c'est-à-dire pour i X s et i j. La ring-signature est ensuite exécutée comme précédemment à l'étape 5. Lors de la levée de l'anonymat, Es lit les DLA mémorisé à l'étape 64, et les adresse à V. A partir de ces données i*, j*, la vérification 120 permettant de lever l'anonymat consiste à tester si h(p* Il m) = xj*. Si plusieurs signataires se mettent d'accord pour signer un message au nom d'un groupe E auquel ils appartiennent, il est possible d'utiliser le procédé décrit ci-dessus, et toutes ses variantes, afin d'élaborer un protocole de multi-signature mettant en jeu un ou plusieurs cosignataires en plus de Es. Le protocole de multi-signature peut se dérouler comme suit: * un des signataires Es sollicite le ou les autres pour obtenir leur accord; * chaque co-signataire Et renvoie ou fait envoyer à Es sa propre trace d'identité déterminée par l'une des variantes ci-dessus * Es détermine sa propre trace d'identité; * Es utilise la trace d'identité de chaque co-signataire Et à la place de la 15 valeur du paramètre xj qui lui est respectivement associé (comme dans le cas de la figure 7), et sa propre trace d'identité comme variable v pour exécuter la ring-signature. La levée d'anonymat peut alors être partielle: certains co-signataires peuvent choisir de se révéler, d'autres non nécessairement. Si tous sont 20 passés par un tiers, celui-ci peut lever l'anonymat de tous simultanément. La figure 8 illustre une réalisation de la multi-signature, o il y a un cosignataire Et en plus du signataire principal Es qui exécute la ringsignature. Les signataires Es, Et se concertent pour convenir de signer en commun le message m, avec Es comme signataire principal, puis ils émettent 25 chacun une requête de jeton vers le serveur de confiance S (étapes 300). Cette requête contient le message m à signer (ou h"(m) ou encore le message m signé avec la clé privée de l'expéditeur), ainsi que la désignation s du signataire principal. Avant de retourner ces requêtes, S peut vérifier leur - 19 compatibilité, c'est-à-dire que les messages m transmis avec les requêtes respectives des différents signataires sont bien les mêmes et qu'ils désignent tous le même signataire principal.Pour chaque signataire, S exécute alors séparément les étapes 200, 201, et 210213 semblables à celles de la figure 3 5 pour produire deux preuves distinctes Ps, Pt dont des versions hachées qs = h(Ps) et qt = h(Pt) sont retournées à Es en tant que traces d'identité de Es et Et, respectivement. Le signataire principal Es affecte alors les traces d'identité q5 et qt aux variables v et xt (étape 301), puis il tire au hasard les valeurs des autres paramètres xi (i X s et i É t) à l'étape 302 avant d'exécuter la 10 ring-signature à l'étape 5. Les preuves Ps et Pt sont alors vérifiables séparément ou simultanément par V auprès du serveur S Deux cas de multi-signature notamment sont intéressants: * les signataires utilisent des traces d'identité non authentifiées; on a alors 15 un concept de "boîte à idées en commun", les signataires voulant revendiquer leur collaboration; * les signataires utilisent des traces d'identité authentifiées (par exemple selon la figure 8): on garde alors une trace cryptographique d'une sorte de délibération de groupe. La ring-signature se comporte comme un 20 engagement des signataires qui préserve leur anonymat. L'anonymat peut cependant être levé en cas de besoin. REVENDICATIONS 1. Procédé de signature électronique d'un message (m) par un signataire anonyme (Es) appartenant d'un groupe de r signataires possibles (E) ayant chacun une clé publique (PUBj) et une clé privée (PRi) associées dans 5 un schéma de cryptographie asymétrique, r étant un entier plus grand que 1, le procédé comprenant les étapes suivantes exécutées dans un dispositif de signature électronique du signataire anonyme: - obtenir au moins r valeurs de paramètres de variabilité incluant les valeurs de r-1 paramètres de variabilité (xi, i Cs) respectivement 10 associés aux autres signataires possibles du groupe et au moins une valeur de paramètre supplémentaire (v); - chiffrer les valeurs des r-1 paramètres de variabilité associés aux autres signataires possibles du groupe, à l'aide des clés publiques respectives desdits autres signataires possibles, ce qui produit r-1 valeurs chiffrées (yi, i És) respectivement associées aux autres signataires possibles du groupe; - déterminer une valeur complémentaire (y5) qui vérifie une équation d'anneau dont les variables sont le message à signer, chacune des r-1 valeurs chiffrées associées aux autres signataires possibles du groupe, 20 chaque valeur de paramètre supplémentaire et ladite valeur complémentaire; - déchiffrer la valeur complémentaire déterminée, à l'aide de la clé privée du signataire anonyme, ce qui produit la valeur d'un paramètre de variabilité (xs) associé au signataire anonyme; et - délivrer une signature électronique du message comprenant les clés publiques respectives des r signataires possibles du groupe, les valeurs des paramètres de variabilité (xi) respectivement associés aux r signataires possibles du groupe et chaque valeur de paramètre supplémentaire, caractérisé en ce qu'au moins une des r valeurs de paramètres de variabilité est une trace d'identité du signataire anonyme, déterminée en fonction de 5 données de levée d'anonymat (DLA) mémorisées et tenues secrètes par au moins une entité de levée d'anonymat (Es; S) en relation avec une identification du signataire anonyme. 2. Procédé selon la revendication 1, dans lequel le signataire anonyme (Es) constitue l'entité de levée d'anonymat. 3. Procédé selon la revendication 2, comprenant en outre les étapes suivantes exécutées dans le dispositif de signature électronique du signataire anonyme (Es): - tirer une valeur aléatoire (p); et - mémoriser et tenir secrète au moins ladite valeur aléatoire en tant que 15 données de levée d'anonymat (DLA). 4. Procédé selon la revendication 1, comprenant en outre les étapes suivantes: - authentifier le signataire anonyme (Es) auprès de l'entité de levée d'anonymat (S); - tirer une valeur aléatoire (p.) au niveau de l'entité de levée d'anonymat; - mémoriser et tenir secrètes au moins ladite valeur aléatoire et une identification (IDs) du signataire anonyme en tant que données de levée d'anonymat (DLA) au niveau de l'entité de levée d'anonymat; - transmettre de l'entité de levée d'anonymat au dispositif de signature 25 électronique du signataire anonyme une valeur intermédiaire (p') obtenue par hachage cryptographique de ladite valeur aléatoire; et - générer la trace d'identité (v) du signataire anonyme au niveau du dispositif du signataire anonyme en fonction de la valeur intermédiaire reçue de l'entité de levée d'anonymat. 5. Procédé selon la revendication 4, dans lequel la trace d'identité du signataire anonyme (Es) est générée par hachage d'une concaténation d'éléments comprenant au moins la valeur intermédiaire (i') reçue de l'entité de levée d'anonymat (S) et une partie au moins du message à signer (m). 6. Procédé selon la revendication 1 ou 2, comprenant en outre les étapes suivantes: - générer une preuve (p) signée à l'aide d'une clé privée et dépendant d'une identification (IDs) du signataire anonyme et du message à signer (m); - mémoriser et tenir secrète au moins ladite preuve en tant que données de levée d'anonymat (DLA) au niveau de l'entité de levée d'anonymat 15 (Es; S); et - générer la trace d'identité (v) du signataire anonyme par hachage cryptographique de données incluant ladite preuve. 7. Procédé selon la revendication 6, comprenant en outre les étapes suivantes exécutées dans un serveur (S) supervisé par un tiers: 20 authentifier le signataire anonyme (Es); - tirer une valeur aléatoire (p); et - composer un jeton à signer (J) par concaténation d'éléments comprenant au moins ladite valeur aléatoire, une partie au moins du message à signer (m), reçue du signataire anonyme, et l'identification (IDs) du 25 signataire anonyme, et dans lequel ladite preuve (p) est produite par signature du jeton à signer. 8. Procédé selon la revendication 6, comprenant en outre les étapes suivantes: - signer le message (m) à l'aide de la clé privée (PRs) du signataire anonyme (Es) et transmettre le message ainsi signé (m*) à un serveur (S) supervisé par un tiers; - authentifier le signataire anonyme au niveau du serveur et vérifier la signature du message à l'aide de la clé publique (PUBS) du signataire anonyme; - tirer une valeur aléatoire (ja) au niveau du serveur; et - composer un jeton à signer (J) au niveau du serveur par concaténation d'éléments comprenant au moins ladite valeur aléatoire, une partie au moins du message signé à l'aide de la clé privée du signataire anonyme et l'identification (IDs) du signataire anonyme, et dans lequel ladite preuve (p) est produite par signature du jeton à signer. 9. Procédé selon la revendication 7 ou 8, dans lequel l'entité de levée d'anonymat inclut le serveur (S) supervisé par le tiers, et dans lequel la preuve (p) est signée à l'aide d'une clé privée du tiers. 10. Procédé selon la revendication 6, dans lequel l'entité de levée d'anonymat inclut le signataire anonyme (Es), et dans lequel la preuve (p) est 20 signée à l'aide de la clé privée (PRs) du signataire anonyme. 11. Procédé selon la revendication 10, comprenant en outre les étapes suivantes exécutées dans le dispositif de signature électronique du signataire anonyme (Es): - tirer une valeur aléatoire (a); - composer un jeton à signer (J) par concaténation d'éléments comprenant au moins ladite valeur aléatoire et une partie au moins du message à signer (m); et signer le jeton pour produire ladite preuve (p). - 24 12. Procédé selon la revendication 10, dans lequel l'entité de levée d'anonymat inclut en outre un serveur (S) supervisé par un tiers. 13. Procédé selon la revendication 12, comprenant en outre les étapes suivantes: - authentifier le signataire anonyme (Es) auprès du serveur (S); - tirer une valeur aléatoire (ff) au niveau du serveur; - mémoriser et tenir secrètes au moins ladite valeur aléatoire et une identification (IDs) du signataire anonyme en tant que premières données de levée d'anonymat (DLA1) au niveau du serveur; - transmettre du serveur au dispositif de signature électronique du signataire anonyme une valeur intermédiaire (y') obtenue par hachage cryptographique de ladite valeur aléatoire; - composer un jeton à signer (J) par concaténation d'éléments comprenant au moins ladite valeur intermédiaire et une partie au moins du message à 15 signer (m); - signer le jeton au niveau du dispositif du signataire anonyme pour produire ladite preuve (p); et - mémoriser et tenir secrètes au moins ladite preuve en tant que secondes données de levée d'anonymat (DLA2) au niveau du dispositif du 20 signataire anonyme. 14. Procédé selon l'une quelconque des revendications 5, 7, 8, 11 et 13, dans lequel les éléments concaténés comprennent en outre un jeton d'horodatage. 15. Procédé selon l'une quelconque des revendications 5, 7, 11 et 13, dans lequel ladite partie du message à signer (m) est obtenue par le dispositif de signature électronique du signataire anonyme (Es) par hachage cryptographique de ce message à signer, et transmise au serveur (S) pour la composition du jeton à signer (J). - 16. Procédé selon l'une quelconque des revendications précédentes, dans lequel les données de levée d'anonymat (DLA) sont mémorisées en relation avec une référence obtenue par hachage cryptographique d'au moins le message à signer (m). 17. Procédé selon l'une quelconque des revendications précédentes, dans lequel la trace d'identité du signataire anonyme (Es) est obtenue par hachage cryptographique d'une concaténation des données de levée d'anonymat (DLA)et d'une partie au moins du message à signer (m). 18. Procédé selon l'une quelconque des revendications précédentes, dans lequel la trace d'identité du signataire anonyme (Es) est distincte des valeurs des r-1 paramètres de variabilité (xi, i És) associés aux autres signataires possibles du groupe (E). 19. Procédé selon l'une quelconque des revendications précédentes, dans lequel la trace d'identité du signataire anonyme (Es) comprend au moins 15 une valeur (xj) sélectionnée parmi les r-1 paramètres de variabilité (xi, i És) associés aux autres signataires possibles du groupe (E), et dans lequel les données de levée d'anonymat (DLA) incluent un repérage (j) de la valeur sélectionnée. 20. Procédé selon l'une quelconque des revendications précédentes, dans lequel le dispositif de signature électronique du signataire anonyme reçoit une trace d'identité (qt) d'au moins un co-signataire (Et) distinct du signataire anonyme (Es) et appartenant au groupe de signataires possibles (E), ladite trace d'identité étant générée à l'aide de données complémentaires de levée d'anonymat (DLAt) respectivement mémorisées et tenues secrètes pour ledit 25 co-signataire, et dans lequel le dispositif de signature électronique du signataire anonyme utilise ladite trace d'identité du co-signataire en tant que valeur du paramètre de variabilité (xt) associé à ce co-signataire. - 26 21. Procédé selon la revendication 20, dans lequel chaque co-signataire (Et) sollicite un serveur (S) supervisé par un tiers pour la production des données complémentaires de levée d'anonymat (DLAt), la trace d'identité (qt) de chaque co-signataire étant reçue par le dispositif de signature électronique du signataire anonyme (Es) depuis ledit serveur. 22. Dispositif informatique de signature électronique de messages (m) par un signataire anonyme (Es), comprenant des moyens adaptés à la mise en oeuvre des étapes d'un procédé selon l'une quelconque des revendications précédentes, qui incombent à un tel dispositif de signature électronique. 23. Programme d'ordinateur à installer dans un dispositif informatique de signature électronique de messages (m) par un signataire anonyme (Es), comprenant des instructions pour mettre en oeuvre les étapes d'un procédé selon l'une quelconque des revendications 1 à 21, qui incombent à un tel dispositif de signature électronique, lors d'une exécution du programme par 15 des moyens de traitement dudit dispositif de signature. 24. Serveur de confiance (S) pour intervenir dans la production de données de levée d'anonymat (DLA) relativement à au moins un signataire anonyme (Es), comprenant des moyens de mise en oeuvre des étapes d'un procédé selon l'une quelconque des revendications 7 à 10, 13 à 15 et 21, qui 20 incombent à un tel serveur. 25. Programme d'ordinateur à installer dans un serveur de confiance (S) intervenant dans la production de données de levée d'anonymat (DLA) relativement à au moins un signataire anonyme (Es), comprenant des instructions pour mettre en oeuvre les étapes d'un procédé selon l'une 25 quelconque des revendications 7 à 10, 13 à 15 et 21, qui incombent à un tel serveur, lors d'une exécution du programme par des moyens de traitement dudit serveur. - 27 26. Procédé de levée de l'anonymat du signataire anonyme (Es) d'un message (m) signé électroniquement conformément à un procédé selon l'une quelconque des revendications 1 à 21, comprenant les étapes suivantes: vérifier la signature électronique du message, en extrayant de la 5 signature électronique du message les clés publiques respectives (PUBi) des r signataires possibles du groupe, les valeurs des paramètres de variabilité (xi) respectivement associés aux r signataires possibles du groupe et chaque valeur de paramètre supplémentaire (v), en obtenant r valeurs chiffrées (yi) par chiffrage des valeurs des paramètres de 10 variabilité associés aux r signataires possibles du groupe à l'aide de leurs clés publiques respectives, et en s'assurant que le message, les r valeurs chiffrées et chaque valeur supplémentaire vérifient ensemble l'équation d'anneau; - récupérer les données de levée d'anonymat (DLA) mémorisées par 15 lI'entité de levée d'anonymat (Es; S) en relation avec l'identification (IDs) du signataire anonyme; - recalculer la trace d'identité du signataire anonyme en fonction des données de levée d'anonymat récupérées; et - vérifier que la trace d'identité recalculée correspond à la trace d'identité 20 incluse dans les r valeurs de paramètres de variabilité faisant partie de la signature électronique du message. 27. Dispositif informatique (V) pour lever l'anonymat d'au moins un signataire anonyme (Es) d'un message (m) signé électroniquement, comprenant des moyens adaptés à la mise en oeuvre des étapes d'un procédé 25 de levée d'anonymat selon la revendication 26. 28. Programme d'ordinateur à installer dans un dispositif informatique (V) pour lever l'anonymat d'au moins un signataire anonyme (Es) d'un message (m) signé électroniquement, comprenant des instructions pour mettre en oeuvre les étapes d'un procédé de levée d'anonymat selon la revendication 26 lors d'une exécution du programme par des moyens de traitement dudit dispositif.