Procédé et système de génération de clés pour un schéma de signatures anonymes Technique antérieure
L'invention se situe dans le contexte de la cryptographie et plus précisément dans celui de la signature de groupe.
On rappelle qu'un schéma de signature de groupe permet à un utilisateur de prouver son appartenance à un groupe (par exemple d'enchérisseurs, de personnes ayant souscrit à un service, etc.) sans révéler son identité exacte. Les signatures de groupe ont la particularité d'être anonymes car il n'est pas possible d'identifier le signataire. Les signatures de groupe sont dites non traçables car on ne peut pas déterminer si deux signatures ont été émises par la même personne ou par deux personnes distinctes.
La validité d'une signature de groupe peut être vérifiée par quiconque grâce à une clé publique caractérisant le groupe appelée "clé publique de groupe". Pour faire partie du groupe, un membre doit au préalable s'enregistrer auprès d'une entité d'administration du groupe. Lors de cette phase d'enregistrement, le futur membre obtient, de manière aveugle, une clé privée de groupe qui lui permet de signer des messages au nom du groupe. Seule une autorité de confiance de révocation, ou entité de révocation, a le pouvoir de révoquer l'anonymat d'une signature de groupe, grâce à une clé privée appelée « trappe » qu'elle seule possède. En pratique, cette trappe peut en fait être partagée entre plusieurs autorités de révocation ; il est alors nécessaire qu'elles coopèrent toutes pour lever l'anonymat d'une signature. Le membre du groupe se voit ainsi protéger contre des levées d'anonymat abusives.
Le concept de signature de groupe est décrit par exemple dans l'article de Dan Boneh, Xavier Boyen et Hovav Shacham : « Short Group Signatures. CRYPTO 2004: 41-55 ».
Pour certaines applications nécessitant de préserver l'anonymat des utilisateurs, comme le vote ou la pétition électronique, il est préférable de mettre en oeuvre une variante des signatures de groupe, appelée attestation anonyme directe (pour DM, Direct Anonymous
Attestation en anglais). Le concept de DM est décrit par exemple dans l'article d'Ernie Brickell, Liqun Chen, et Jiangtao Li: « A New Direct Anonymous Attestation Scheme from Bilinear Maps. TRUST 2008: 166-178 ».
Les attestations anonymes directes anonymes DM, à la différence des signatures de groupe, sont, bien qu'anonymes, traçables : il est donc possible de déterminer si deux signatures DM ont été émises par la même personne ou par deux personnes distinctes. Dans le contexte du vote ou d'une pétition électronique, cette traçabilité permettrait de s'assurer qu'un électeur n'a voté qu'une seule fois ou que la pétition électronique a bien été signée par des pétitionnaires différents.
Malheureusement on ne connaît pas de solution pour lever l'anonymat d'une signature DM et donc identifier un signataire. Cela pose des problèmes pour certaines applications, comme
le vote électronique, notamment dans les pays dans lesquels une liste d'émargement permettant d'identifier les électeurs ayant voté doit être accessible à tous les électeurs.
L'invention propose une solution de signature électronique qui ne présente pas les inconvénients des solutions mentionnées ci-dessus.
Obiet et résumé de l'invention
Ainsi, et selon un premier aspect, l'invention vise un procédé de signature anonyme d'un message, ce procédé étant mis en oeuvre par une entité membre d'un groupe et comportant :
- une étape d'enregistrement de ce membre auprès d'une entité d'administration du groupe ;
- une étape de génération d'une trace à partir d'un générateur de trace calculé par au moins une entité de révocation et compris dans une clé publique du groupe, cette trace étant invariante par rapport aux signatures anonymes générées par cette entité membre conformément au schéma ;
- une étape d'obtention, de manière aveugle d'une clé privée de groupe ;
- une étape de génération d'au moins une signature conformément à un schéma de signatures anonymes en utilisant la clé privée de groupe, la signature comportant la trace.
Corrélativement, l'invention vise un dispositif de signature anonyme d'un message mis en oeuvre par une entité membre d'un groupe et comportant :
- un module d'enregistrement de cette entité membre auprès d'une entité d'administration du groupe ;
- un module de génération d'une trace à partir d'un générateur de trace calculé par au moins une entité de révocation et compris dans une clé publique du groupe, cette trace étant invariante par rapport aux signatures anonymes générées par cette entité membre conformément au schéma ;
- un module d'obtention, de manière aveugle, d'une clé privée de groupe ;
- une étape de génération d'au moins une signature en utilisant cette clé privée de groupe, cette signature comportant la trace.
L'invention propose un procédé cryptographique de signatures anonymes dans lequel les signatures de groupe sont traçables.
De façon avantageuse, et contrairement aux attestations anonymes directes, l'anonymat d'une signature anonyme générée par les membres du groupe conformément au schéma peut être levé par les entités de révocation.
Ce procédé cryptographique s'avère par ailleurs plus efficace, en particulier en termes de temps de calcul, que les schémas d'attestations anonymes directes DAA ou de signatures de groupe de l'état de la technique. La sécurité de ce schéma de signatures anonymes s'appuie par ailleurs sur une hypothèse de sécurité dite « non-interactive » considérée comme plus
« standard » par la communauté cryptographique qu'une hypothèse de sécurité dite « interactive » (par exemple faisant appel à un oracle) sur lesquelles s'appuient les schémas d'attestations
anonymes directes les plus efficaces de l'état de la technique. Un tel schéma de signatures anonymes offre ainsi une meilleure sécurité.
Selon un deuxième aspect, l'invention concerne un procédé de génération de clés pour un schéma de signatures anonymes, ce procédé comportant :
- une étape de calcul, par au moins une entité de révocation, d'une paire de clés de révocation comportant une clé publique et une clé privée, cette, clé privée pouvant être utilisée par cette entité de révocation pour révoquer l'anonymat d'une signature anonyme conforme audit schéma ;
- une étape d'enregistrement, par une entité d'administration d'un groupe, d'au moins une entité membre auprès du groupe ;
- une étape de calcul, à partir de la clé publique de la paire de clé de révocation, d'un générateur de trace, ledit générateur de trace étant destiné à être utilisé par chaque entité membre enregistrée dans le groupe pour générer une trace représentative de cette entité membre et invariante par rapport aux signatures anonymes générées par cette entité membre conformément au schéma ;
- chaque entité membre étant configurée pour obtenir de façon aveugle une clé privée de groupe, cette clé privée étant utilisée par cette entité membre pour générer des signatures anonymes conformes au schéma, ces signatures anonymes comportant la trace. « Obtenir de façon aveugle » fait référence au fait que l'entité d'administration du groupe ne connaît pas la clé privée de groupe utilisée par l'entité membre pour signer ses messages.
Corrélativement, l'invention concerne un système de génération de clés pour un schéma de signatures anonymes, ce système comportant :
- au moins une entité de révocation configurée pour calculer une paire de clés de révocation comprenant une clé publique et une clé privée, cette clé privée pouvant être utilisée par l'entité de révocation pour révoquer l'anonymat d'une signature anonyme conforme audit schéma ;
- une entité d'administration de groupe configurée pour enregistrer au moins une entité membre auprès dudit groupe ;
- l'entité de révocation étant configurée pour calculer, à partir d'une clé publique de la paire de clés de révocation, un générateur de trace, ce générateur de trace étant destiné à être utilisé par chaque entité membre pour générer une trace représentative de cette entité membre, cette trace étant invariante par rapport aux signatures anonymes générées par cette entité membre conformément audit schéma ;
- chaque entité membre étant configurée pour obtenir de façon aveugle une clé privée de groupe, cette clé privée étant utilisée par l'entité membre pour générer des signatures anonymes conformes au schéma, ces signatures anonymes comportant la trace.
Dans un mode particulier de réalisation, le procédé de génération de clés proposé comporte :
- une étape de génération d'une paire de clés du schéma pour l'entité d'administration du groupe ;
- la clé publique de la paire de clé de révocation étant calculée à partir d'une clé publique de cette paire de clés.
Dans un mode particulier de réalisation, le générateur de trace est renouvelé périodiquement.
Dans un mode particulier de réalisation, le générateur de trace est spécifique à un service donné. Le service correspond par exemple à un scrutin spécifique.
En effet, de par ces fonctionnalités, le procédé de génération de clés proposé peut s'appliquer au vote électronique. Il offre en effet un schéma de signature :
- anonyme ce qui permet d'assurer le secret du vote ;
- traçable ce qui permet de s'assurer qu'un électeur ne vote pas deux fois ;
- dans lequel les anonymats des signatures sont révocables, permettant ainsi à des entités de révocation, en cas de recours par exemple, d'établir une liste d'émargement du scrutin.
Dans un mode particulier de réalisation, les différentes étapes du procédé de génération de clés et du procédé de vote selon l'invention sont déterminées par des instructions de programmes d'ordinateurs.
En conséquence, l'invention vise aussi un programme d'ordinateur, sur un support d'informations, ce programme comportant des instructions adaptées à la mise en oeuvre d'au moins un procédé tel que mentionné ci-dessus.
Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable.
L'invention vise aussi un support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus.
Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple un disque dur.
D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet.
Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question.
Brève description des dessins
D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent un exemple de réalisation dépourvu de tout caractère limitatif. Sur les figures :
- la figure 1 représente un système de génération de clés et un dispositif de signature anonyme conformes à un mode de réalisation de l'invention ;
- la figure 2 représente sous forme d'organigramme les principales étapes d'un procédé de génération de clés conforme à l'invention ;
- la figure 3 représente sous forme d'organigramme les principales étapes d'un procédé de signature conforme à l'invention ;
- la figure 4 représente sous forme d'organigramme les principales étapes d'un procédé de vérification d'une signature pouvant être utilisé dans l'invention ;
- la figure 5 représente, sous forme d'organigramme, les principales étapes d'un procédé de levée d'anonymat pouvant être utilisé dans l'invention ;
- la figure 6 représente un système de vote électronique conforme à un mode de réalisation de l'invention ;
- la figure 7 représente sous forme d'organigramme les principales étapes d'un procédé de génération de clés dans le système de vote de la figure 6 ;
- la figure 8 représente sous forme d'organigramme les principales étapes d'un procédé de vote conforme à l'invention ;
- la figure 9 représente sous forme d'organigramme les principales étapes d'un procédé de vérification d'une signature pouvant être utilisé dans le système de vote de la figure 6 ;
- la figure 10 représente, sous forme d'organigramme, les principales étapes d'un procédé de levée d'anonymat pouvant être utilisé dans le système de vote de la figure 6 ;
- la figure 11 représente l'architecture matérielle des dispositifs utilisés dans l'invention, dans un mode particulier de réalisation.
Description détaillée des modes de réalisation
Dans la suite de ce document, nous utiliserons la notation RoK^, a2,..., ah : Jl(alr a2,..., ah)) pour désigner une preuve de connaissance à divulgation nulle de connaissance d'éléments al f a2,..., an satisfaisant la relation R. Ainsi une preuve de connaissance des deux facteurs premiers d'un module RSA (du nom des inventeurs, « Rivest-Shamir-Adleman ») public N serait notée :
Dans la description à venir,
p est un nombre premier ;
les groupes G1 G2 et GT sont des groupes cycliques d'ordre p ;
g, h désignent deux générateurs, choisis aléatoirement, de G^
h est un générateur, choisi aléatoirement, de G2;
e est un couplage bilinéaire de type 2 ou 3, défini sur l'ensemble Gi x G2 vers l'ensemble
Gj.
On rappelle qu'un couplage bilinéaire, noté e, est une application définie sur un ensemble Gi x G2 vers un ensemble GT où Glf G2 et GT désignent des groupes cycliques d'ordre p. Cette application e vérifie les propriétés suivantes :
- Bilinéarité :
- Non dégénérée : Pour g± ¹ lGl et g2 ¹ lG2, e(g1; g2) ¹ 1Gt ., dans lequel lGl et lG2 désignent respectivement l'élément neutre des groupes Glf G2.
- Calculable : V gi e Glf V g2 e G2, il existe un algorithme efficace pour calculer e gi, g2) ·
En pratique, les groupes Glf G2 et GT seront choisis de telle sorte qu'il n'existe pas d'isomorphisme calculable efficacement entre Gi et G2. De tels couplages sont connus sous le nom de couplages de « Type 3 » dans la littérature. En pratique, et pour un niveau de sécurité de 128 bits, les tailles recommandées des paramètres d'un couplage de « Type 3 » sont les suivantes : 256 bits pour le nombre premier p ainsi que pour les éléments de G1 512 pour ceux de G2 et 3072 pour ceux de
Gy.
La sécurité du schéma repose en partie sur l'hypothèse que les problèmes ci-dessous sont difficiles. En d'autres termes, si un attaquant est en mesure de mettre en défaut la sécurité du schéma cryptographique, alors il est également à même de résoudre ces problèmes pourtant réputés « difficiles ».
Problème DDH. Soit G un groupe cyclique d'ordre premier p. Étant donné un générateur g e G, deux éléments quelconques ga, gb e G et un candidat X e G, le problème Diffie-Hellman décisionnel (DDH) consiste à déterminer si X = gab ou non.
Dans le cas des schémas fondés sur des couplages bilinéaires, des problèmes difficiles spécifiques existent. Pour les couplages utilisés dans l'invention, les inventeurs font l'hypothèse que le problème DDH est difficile dans les groupes Gx et G2. Cette hypothèse est connue sous le nom d'hypothèse de Diffie-Hellman symétrique externe (SXDH).
Pour le procédé selon l'invention, il peut être démontré que si un tiers (ne disposant pas des clés des autorités de révocation) arrive à identifier le signataire de n'importe quelle signature anonyme alors c'est qu'il est également en mesure de résoudre le problème SXDH.
Problème a-MSDH. Soit (p. G^ G2, GT, e) un environnement bilinéaire de « Type 3 » et g
(respectivement g) un générateur de Gx (respectivement de G2). Étant donné {(gx‘ , gx‘)q ainsi que
l ) i=0
(ga, ga, gax) où a et x sont deux éléments quelconques de Z* , le problème q-MSDH consiste à
i a
trouver un quadruplet (w, R, hx+«, hp(x)) où h e G^, P est un polynôme de degré au maximum q et w un élément de Zp tel que les polynômes P(X) et (X + w) sont premiers entre eux.
Il peut être démontré que si un tiers réussit à « forger » des signatures du schéma de signatures anonymes selon l'invention, alors c'est qu'il est également en mesure de résoudre le problème q-MSDH.
Dans le mode de réalisation décrit ici, l'invention met en oeuvre, au moins dans certains de ces aspects :
- une ou plusieurs entités EL d'administration d'un groupe ;
- des autorités de révocation {Æj}-=1 avec (t > 1) ;
- des entités membres du groupe. Q désigne le groupe des n entités membres.
La figure 1 représente un système SGC de génération de clés pour un schéma de signatures anonymes SigA2 et une entité V, membre d'un groupe g conformes à l'invention. Elle représente en outre un dispositif de vérification DV.
L'entité membre Vt comporte un module de communication COM et un dispositif DSA de signature anonyme conforme à l'invention.
Le système SGC de génération de clés comporte une entité EL d'administration du groupe, et des autorités de révocation {Æj}-=1 avec (t > 1) .
L'entité d'administration £L du groupe comporte un module de communication COM, un module cryptographique MCR et un module d'enregistrement ERG configuré pour enregistrer au moins une entité membre V dans le groupe.
A cet effet, le dispositif DSA de l'entité membre ¼ comporte un module
d'enregistrement ERG configuré pour enregistrer l'entité membre V auprès de l'entité EL d'administration du groupe.
Dans le mode de réalisation décrit ici, chaque entité de révocation lj comporte un module cryptographique MCR configuré pour calculer une paire de clés de révocation
, cette paire comprenant une clé publique Pj et une clé privée
pouvant être utilisée par l'entité de révocation pour révoquer l'anonymat d'une signature anonyme conforme audit schéma SigA2.
Dans le mode de réalisation décrit ici, le module cryptographique MCR d'une entité de révocation lj est configuré pour calculer, à partir des clés privées
de la paire de clés de
c i
révocation, un générateur de trace Pt = X1 1=1 x , où X1 désigne un paramètre public produit par le système de génération de clés SGC.
Dans le mode de réalisation décrit ici, le dispositif DSA de chaque entité membre
comporte un module cryptographique MCR configuré pour générer une trace Tt = Pt Si représentant l'entité membre Vt en utilisant ce générateur de trace à partir de la clé privée de l'entité membre Vj. Cette trace Tt est invariante par rapport aux signatures anonymes aL générées par l'entité membre conformément au schéma SigA2.
Dans le mode de réalisation décrit ici, le module cryptographique MCR de chaque entité membre Vt est configuré pour obtenir, de manière aveugle, une clé privée SKG l de groupe.
Dans le mode de réalisation décrit ici, le module cryptographique MCR de chaque entité membre V, est configuré pour générer des signatures de messages, en utilisant la clé privée de groupe, ces signatures comportant la trace G, .
Le dispositif de vérification DV est configuré pour vérifier si une signature anonyme
est conforme au schéma de signatures anonymes SigA2. Il met en oeuvre un algorithme de vérification qui prend en entrée un message msg, une signature et la clé publique du groupe PKG . Il détermine si la signature est valide ou non.
Dans le mode de réalisation décrit ici, le dispositif de vérification DV comporte des moyens de communication COM et un module cryptographique MCR.
Le module de communication COM du dispositif de vérification DV est configuré pour obtenir une signature anonyme s; telle que s; = (w, w', c1 T, RP'; ).
Le module cryptographique MCR du dispositif de vérification DV est configuré pour déterminer que la signature anonyme sί d'un message msg est valide si :
w ¹ lGl
- T ¹ lGl;
RP'ί est valide ; et
e(w, 0) e(c1,Â: 1) = e(w', S).
Dans le mode de réalisation décrit ici, le module cryptographique MCR d'une entité de révocation lj est configuré pour mettre en oeuvre le procédé de levée d'anonymat d'une signature décrit ultérieurement en référence à la figure 5.
La figure 2 représente sous forme d'organigramme les principales étapes d'un procédé de génération de clés du groupe conforme à l'invention.
Au cours d'une étape E2, le module cryptographique MCR de l'entité d'administration RL tire aléatoirement trois valeurs, co,co,c! de Zp.
Au cours d'une étape E4, le module cryptographique MCR de l'entité d'administration £L calcule
Au cours d'une étape E6, le module cryptographique MCR de l'entité d'administration £L constitue une paire de clés dans laquelle :
la clé privée SK£M est constituée des trois valeurs (x0 , 3ë0 , ¾ ) qui ont été tirées aléatoirement ; et
la clé publique RK£L est constituée des éléments calculés à l'étape E4: RKL =
Au cours d'une étape E8, le module cryptographique MCR de l'entité d'administration RL génère une preuve RP2 à divulgation nulle de connaissance pour prouver qu'il connaît la clé
privée associée à sa clé publique. RP2 = PoKfoq, a2, a3 = C
= gaih A X, = h A X0 = h A Xi = h ).
Au cours d'une étape F2, le module cryptographique MCR de chacune des entités de révocation {Æ7}J=1 tire aléatoirement une valeur xJ li de Zp. Cette valeur aléatoire
constitue une clé privée de l'entité de révocation Kj pour lever l'anonymat d'une signature.
Au cours d'une étape F4, les modules cryptographiques MCR des entités de révocation Kj calculent tour à tour une clé publique Pj associée à cette clé privée xK ] . Plus précisément, dans le mode de réalisation décrit ici :
l'entité de révocation Jir calcule P1 =
et prouve qu'elle connaît la clé privée associée à sa clé publique, autrement dit le logarithme discret de P dans la base X .
l'entité de révocation H2 calcule P2 =
et prouve qu'elle connaît la clé privée associée à sa clé publique, autrement dit le logarithme discret de P2 dans la base P .
l'entité de révocation lj, pour t ³ j ³ 2, calcule Pj = Pj-^ et prouve qu'elle connaît la clé privée associée à sa clé publique, autrement dit le logarithme discret de Pj dans la base 3-1 ·
Au cours d'une étape F6, lorsque toutes les entités de révocation ont calculé leur clé publique Ps, le module cryptographique MCR de l'entité de révocation Kt constitue la clé publique du groupe PKG = (CXo, X X0 , X Pt). Elle comporte le générateur de trace Pt = X1 1=1 x obtenu à partir des clés privées de chacune des entités de révocation Kj . La clé privée associée à la clé publique de groupe est
Dans le mode de réalisation décrit ici, chaque entité membre V possède un identifiant unique IDV. ainsi qu'une paire de clés privée, publique (SK^ PK,), d'un algorithme de signature numérique, la clé publique PK, ayant été certifiée par une entité de certification reconnue, par exemple par l'entité d'administration RL . Des exemples d'algorithmes de signature numérique pouvant être utilisés à cet effet sont : RSA, DSA, ECDSA,...
Pour obtenir sa clé privée de groupe, l'entité membre V, interagit avec l'entité d'administration £L. Au cours d'une étape G2, le module cryptographique MCR de l'entité membre P, tire aléatoirement une valeur x, e Zp et calcule = X^‘. Il est à noter que la clé privée de groupe SK^ est obtenue par l'entité membre à partir de sa clé privée cίi connue d'elle seule.
Il génère ensuite une preuve RP, à divulgation nulle de connaissance qu'il connaît x, le logarithme discret de C, en base X1 : RP, = PoKfo^ : = X"1). L'exemple d'une telle preuve est fourni dans le document Claus-Peter Schnorr, « Efficient Identification and Signature for Smart Cards », Theory and Application of Cryptology, Springer, 1989.
Au cours d'une étape G4, le module cryptographique de l'entité membre Vj génère une signature sn sur Ci : sn = SignSK.{Ci) où SK; désigne la clé privée de Vj. L'entité membre Vi.transmet ensuite ces trois valeurs Ci ,RPί, sn., à l'entité d'administration £L .
Au cours d'une étape E10, le module cryptographique MCR de l'entité d'administration £L vérifie que Ci ¹ 1 et que la signature sn. et que la preuve RPί sont toutes les deux valides.
Si c'est le cas, au cours d'une étape E12, le module cryptographique MCR de l'entité d'administration EL génère deux valeurs aléatoires b et x! de Zp et calcule E = X ' ainsi qu'une paire (u, u’) où u = hb et u' = ux°(Cj · X4 )b = u*o+(*;+*’)*i . n prouve que la paire (u, u’) a été calculée de manière conforme et notamment à partir des clés privées x0 et x1 :
Au cours d'une étape E14, le module cryptographique MCR de l'entité d'administration EL transmet £ , 11, 11’ et la preuve RP3 à l'entité membre Vj.
Au cours d'une étape G6, le module cryptographique de l'entité membre Vj vérifie que u ¹ 1 et que la preuve RP3 est valide. Si ces deux vérifications sont concluantes, le module cryptographique de l'entité membre Vj génère, au cours d'une étape G7 une signature Sigv. sur Ct et E : Sigv. = SignSK.(Ci, E ), où SKi désigne la clé privée de l'entité membre Vj.
Au cours d'une étape G75, l'entité membre
transmet la signature Sigv. à l'entité d'administration EL.
Au cours d'une étape E13, l'entité d'administration £L vérifie que la signature Sigv. est valide, et si c'est le cas, transmet x' à l'entité membre Vt .
L'entité d'administration EL maintient un registre REG contenant pour chaque entité membre ¼ du groupe les valeurs suivantes :
désigne le nombre de membres dûment enregistrés.
Au cours d'une étape G8, l'entité membre Vj vérifie que E = X et constitue, si cette vérification est concluante sa clé privée de groupe SK^. Celle-ci est constituée par le triplet SK^ =
(sj,u, u’) OÙ s, = x, + x'mod p.
Dans un mode de réalisation particulier, le générateur de trace Pt est renouvelé périodiquement (toutes les heures, tous les jours, en début de mois, etc.). Il suffit pour cela que les entités de révocation renouvellent leur clé privée
et recalculent selon le procédé de génération décrit précédemment le générateur de trace correspondant Pt.
Dans un mode de réalisation particulier, le générateur de trace Pt est spécifique à un service donné. Typiquement un générateur de trace Pt peut être généré pour une élection spécifique. Pour un nouveau scrutin, les entités de révocation doivent calculer de nouvelles clés privées x'K ] pour en déduire un nouveau générateur de trace P't.
La figure 3 représente sous forme d'organigramme, les principales étapes d'un procédé de signature conforme à l'invention. Ce procédé de signature utilise le schéma de signatures anonymes SigA2. Ce schéma utilise un algorithme qui à partir d'un message msg, de la clé publique de groupe PKG et de la clé privée de groupe SK^ d'une entité membre, produit une signature q du message msg.
Conformément au schéma de signatures anonymes SigA2, pour signer anonymement un message quelconque msg e {0,1}* avec sa clé privée de groupe SKQ, le module cryptographique MCR de l'entité membre Vt tire aléatoirement, au cours d'une étape H2 une valeur l e Zv . Il calcule, à l'étape H4 la valeur w = ul et à l'étape H6 la valeur W = ( u ')*.
Au cours d'une étape H8, le module cryptographique MCR de l'entité membre V} calcule la valeur q = wSi et la trace 7} = Pt s‘. Cette trace 7} calculée à partir du générateur de trace Pt et de l'élément s, de la clé privée de groupe de l'entité membre Vt ne dépend pas du message msg. Autrement dit, la trace 7} constitue un invariant des signatures émises par l'entité membre .
L'entité membre V} prouve que le logarithme discret de q dans la base w est le même que le logarithme discret de 7} dans la base Pt : PIT, = PoKfoq: q = w"1 A ^ = Pt ai).
Dans le mode de réalisation de l'invention décrit ici, la preuve PIT, est la paire (c, r) dans laquelle :
z est une valeur aléatoire de Zp tirée par l'entité membre V} ;
- 7\ = wz ;
- T2 = Pt z ;
- c = yfC TY. T^ Pt. msg) ;
r = z— es, mod p
La preuve est valide
Au cours d'une étape H10, le module cryptographique MCR de l'entité membre Vt génère la signature anonyme q du message msg, celle-ci étant constituée des cinq éléments suivants : (w, w', q, 7}, Pn'j ). Elle comporte la trace 7} qui permet de tracer toutes les signatures émises par l'entité membre V,.
La figure 4 représente sous forme d'organigramme les principales étapes d'un procédé de vérification d'une signature anonyme pouvant être utilisé dans l'invention. Ce procédé est mis en oeuvre par le dispositif de vérification DV de la figure 1. Il met en oeuvre un algorithme de vérification qui prend en entrée un message msg, une signature q et la clé publique du groupe PKG . Il détermine si la signature q est valide ou non.
Au cours d'une étape K2, le dispositif de vérification d'une signature anonyme obtient une signature anonyme q = (w, w', ^ Pll'i ).
Au cours d'une étape K4, le dispositif de vérification considère que la signature anonyme q d'un message msg est valide si :
- w ¹ lGl ;
- ¹ lGl;
RP'ί est valide ; et
e(w, 0) e(c1, 1) = e(w', S).
La figure 5 représente sous forme d'organigramme les principales étapes d'un procédé de levée d'anonymat d'une signature valide sί = (w.w'. , ^, n'j ) d'un message msg. Ce procédé ne peut être mis en oeuvre que par les entités de révocation Jlj . Il utilise un algorithme qui prend en entrée un message msg, une signature a la clé publique du groupe PKG et les clés privées x h des autorités de révocation et retourne IDV. l'identité d'un entité membre V ainsi qu'une preuve que V est bien l'auteur de cette signature s,.
Au cours d'une étape Z2, chacune des entités de révocation Jlj obtient la signature anonyme s, d'un message msg.
Au cours d'une étape Z4, les autorités de révocation {J j}j t = l calculent successivement,
et prouve (PI¾) que le logarithme discret de
dans la base Tt est égal au logarithme discret de X dans la base P .
Jl2 calcule T2 =
et prouve (RP|) que le logarithme discret de T2 dans la base
est égal au logarithme discret de P1 dans la base P2.
Jlj, pour t ³ j ³ 2, calcule Tj
et prouve (PI¾) que le logarithme discret de Tj dans la base Tj-t est égal au logarithme discret de Pj-1 dans la base Pj.
Il est rappelé ici qu'il peut n'y avoir qu'une seule entité de révocation.
Si toutes les preuves produites par les autorités de révocation sont valides,
Au cours d'une étape Z6, les autorités de révocation transmettent Tt et l'ensemble des preuves {PI¾}-=1 à l'entité d'administration £L.
Au cours d'une étape Z8, l'entité d'administration £L retrouve dans son registre REG l'entrée correspondant
Au cours d'une étape Z10, l'entité d'administration £L fournit en retour à l'entité de révocation lj demanderesse de la levée d'anonymat, l'identifiant IDV., les preuves (Pn!¾}i=1 ainsi que Ci. C'j.x', PK, et SigVj . Si toutes les preuves {R¾}[=1 sont valides, que C', = C, · xf et que la signature Sigv. est valide alors l'entité d'administration RL considère que l'entité membre V, dont l'identifiant est IDV. est bien l'auteur de la signature s, du message msg.
Lorsque le service est un vote électronique, il est alors possible de constituer une liste d'émargement à partir des identifiants obtenus par la mise en oeuvre du procédé.
Description d'un deuxième mode de réalisation de l'invention
Le schéma de signatures anonymes SigA2 peut en particulier être utilisé pour mettre en oeuvre une solution de vote électronique.
La figure 6 représente un système de vote électronique SVE2 conforme à l'invention. Ce système comporte un système SGC de génération de clés pour un schéma de signatures anonymes SigA2 et une entité Vt membre d'un groupe g conformes à l'invention. Il comporte en outre un dispositif de vérification DV.
Dans ce mode de réalisation, les entités membres de groupe
sont des entités électeurs.
Dans ce mode de réalisation, le système SGC de génération de clés comporte une entité d'enregistrement L et une entité organisateur O. Chacune fait à la fois office d'entité d'administration du groupe et d'entité de révocation du groupe. Il est bien entendu qu'il s'agit ici d'un exemple illustratif et que dans d'autres exemples la distribution des rôles attribuée aux différentes entités peut être différente. L'entité d'enregistrement L et l'entité organisateur O comportent chacune un module de communication COM et un module cryptographique MCR. L'entité d'enregistrement L et l'entité organisateur O comportent en outre chacune un module d'enregistrement ERG configuré pour enregistrer au moins une entité électeur dans le groupe.
Ainsi, dans ce mode de réalisation de l'invention, une entité électeur s'enregistre à la fois auprès de l'entité d'enregistrement L et auprès de l'entité organisateur O. Ce mode de réalisation permet de répartir le rôle d'administrateur de groupe entre deux entités de sorte à éviter qu'une seule entité ne soit en mesure de créer de fausses entités électeurs.
L'entité électeur Vt comporte un module de communication COM et un dispositif DSA de signature anonyme conforme à l'invention.
Le dispositif DSA de l'entité électeur comporte un module d'enregistrement ERG configuré pour enregistrer l'entité électeur V auprès de l'entité d'enregistrement L.
Dans le mode de réalisation décrit ici, le module cryptographique MCR de chaque entité de révocation L, O est configuré pour calculer une paire de clés de révocation dont la clé privée peut être utilisée pour révoquer l'anonymat d'une signature anonyme conforme audit schéma SigA2 et pour calculer, à partir d'une clé publique de la paire de clés de révocation, un générateur de trace.
Le dispositif DSA de chaque entité électeur comporte un module cryptographique MCR configuré pour générer une trace
utilisant ce générateur de trace, cette trace G, étant invariante par rapport aux signatures anonymes sί générées par l'entité électeur conformément au schéma SigA2.
Dans le mode de réalisation décrit ici, le module cryptographique MCR de chaque entité électeur Vt est configuré pour obtenir, de manière aveugle, une clé privée SKG l de groupe, notée s, par la suite.
Dans le mode de réalisation décrit ici, le module cryptographique MCR de chaque entité électeur v* est configuré pour générer des signatures s, de messages, en utilisant la clé privée de groupe, ces signatures comportant la trace G, .
Le dispositif de vérification DV est configuré pour vérifier si une signature anonyme s, est conforme au schéma de signatures anonymes SigA2. Il met en oeuvre un algorithme de vérification qui prend en entrée un message msg, une signature et la clé publique du groupe PKG . Il détermine si la signature sί est valide ou non.
Dans le mode de réalisation décrit ici, le dispositif de vérification DV comporte des moyens de communication COM et un module cryptographique MCR.
Le module de communication COM est apte à obtenir une signature anonyme sί telle que CTj = (w, w', c^ T^ PITj ).
Le module cryptographique MCR est configuré pour déterminer que la signature anonyme s, d'un message msg est valide si :
- w ¹ lGl ;
- ¹ lGl;
RP'ί est valide ; et
Dans le mode de réalisation décrit ici, le module cryptographique MCR d'une entité de révocation L , O est configuré pour mettre en oeuvre le procédé de levée d'anonymat d'une signature décrit ultérieurement en référence à la figure 10.
La figure 7 représente sous forme d'organigramme un procédé de génération des clés des entités électeurs conforme à ce mode de réalisation de l'invention.
Au cours d'une étape VE2, le module cryptographique MCR de l'entité organisateur O tire aléatoirement quatre valeurs x ,x%,x%,x de Zp . Dans ce mode de réalisation, x est une clé privée utilisée par l'entité organisateur O pour lever l'anonymat d'une entité électeur.
Au cours d'une étape VE4, le module cryptographique MCR de l'entité organisateur O calcule
Au cours d'une étape VE6, le module cryptographique MCR de l'entité organisateur O constitue une paire de clés dans laquelle :
la clé privée SKQ est constituée des quatre valeurs (c^,co ,co ,c?) qui ont été tirées aléatoirement ; et
la clé publique PKQ est constituée des éléments calculés à l'étape VE4: PKQ =
(Cxg,X?,¾,X?, P0).
Au cours d'une étape VE8, le module cryptographique MCR de l'entité organisateur O génère une preuve VOPn2 qu'il connaît la clé privée associée à sa clé publique en générant une
preuve à divulgation nulle de connaissance définie comme suit : nop2 = PoKfo^, a2, a3, a4: Cxo = g« h“ A Xf = h“3 A Xo = h“ A X? = h“3 A P0 = X“4).
L'entité d'enregistrement A procède de la même façon.
Au cours d'une étape VE2, le module cryptographique MCR de l'entité d'enregistrement A tire aléatoirement quatre valeurs c^, c^, co , c^ de Zp . Dans ce mode de réalisation,
est une clé privée utilisée par l'entité d'enregistrement A pour lever l'anonymat d'une entité électeur.
Au cours d'une étape VE4, le module cryptographique MCR de l'entité d'enregistrement
A calcule
Au cours d'une étape VE6, le module cryptographique MCR de l'entité d'enregistrement A
constitue une paire de clés dans laquelle :
la clé privée SK ^ est constituée des quatre valeurs
qui ont été tirées aléatoirement ; et
la clé publique SK^, PK^ est constituée des éléments calculés à l'étape VE4: PK0 =
Au cours d'une étape VE8, le module cryptographique MCR de l'entité d'enregistrement A génère une preuve VAPn2 qu'il connaît la clé privée associée à sa clé publique. Cette preuve est définie comme suit :
ha 3 L RL = A“4)
Au cours d'une étape VF4, les modules cryptographiques MCR de l'entité organisateur O et de l'entité d'enregistrement A, après avoir rendu publiques leurs clés publiques P0 et RL, calculent chacun de leur côté un générateur de trace Pt = X4 x ¾
Au cours d'une étape VF6, lorsque toutes les entités de révocation, à savoir l'entité d'enregistrement A et l'entité organisateur O dans ce mode de réalisation, ont calculé leur clé publique, elles calculent la clé publique du groupe PKG . Elle comporte le générateur de trace Pt cA cO
= X x obtenu à partir des clés privées de ces entités de révocation A et O.
xf, x0 = xf xf et x4 = xf xf .
La clé privée associée à la clé publique de groupe est
Dans ce mode de réalisation, chaque entité électeur possède un identifiant unique IDV. ainsi qu'une paire de clés, privée et publique (SK^ PK,), d'un algorithme de signature numérique , la clé publique PK, ayant été certifiée au préalable par une autorité de certification reconnue, par exemple par l'entité d'enregistrement A et par l'entité organisateur O.
Dans le mode de réalisation décrit ici, pour obtenir sa clé privée de groupe, l'entité électeur V, doit interagir avec l'entité d'administration A et avec l'entité organisateur O. Au cours
d'une étape VG2, le module cryptographique MCR de l'entité membre Vj tire aléatoirement une valeur x, e Zp et calcule Ci = X‘. Il génère ensuite une preuve VEPlli à divulgation nulle de connaissance qu'il connaît Xi le logarithme discret de Ci en base Xx : VEPlli = RoK^ : Ci = x“4).
Au cours d'une étape VG4, le module cryptographique MCR de l'entité électeur , génère une signature sn. sur Ci : sn. = SignSK.{Ci ') où SIC désigne la clé privée de . L'entité électeur Vj transmet ensuite ces trois valeurs C, , VEPlli, s \ ?t r à l'entité d'administration L et à l'entité organisateur O.
Au cours d'une étape VE10, le module cryptographique MCR de l'entité
d'administration L et le module cryptographique MCR de l'entité organisateur O vérifient ¹ 1 et que la signature sn et que la preuve RP, sont toutes les deux valides.
Si c'est le cas, au cours d'une étape VE12, le module cryptographique MCR de l'entité d'administration L et le module cryptographique MCR de l'entité organisateur O génèrent conjointement deux valeurs aléatoires b et x! de Zp et calculent E = X ' ainsi qu'une paire (u, u’) où u = hb
Us prouvent que la paire (u, u’) a été calculée de manière conforme et notamment à partir des clés privées x0 et x1 :
On rappelle, que pour générer conjointement une valeur, par exemple la valeur x', l'entité d'administration L et l'entité organisateur O peuvent utiliser des techniques connues de cryptographie distribuée. Par exemple, l'entité d'administration L (respectivement l'entité organisateur O) génère aléatoirement une valeur x'A de Zp (respectivement x'° de Zp ) et calcule
E'L = C L (respectivement X °). On obtient ainsi E = E'L. E'° = X où x' = x'M + x'° (mod p).
Dans ce mode de réalisation, au cours d'une étape VE14, le module cryptographique MCR de l'entité d'administration L ou de l'entité organisateur O transmet E , u, u’ et la preuve VEVW3 à l'entité électeur V En variante ces valeurs sont envoyées par l'entité d'administration cA et par l'entité organisateur O et l'entité électeur Vj vérifie que les valeurs reçues des deux entités L et O sont identiques.
Au cours d'une étape VG6, le module cryptographique de l'entité électeur v; vérifie que u ¹ 1 et que la preuve VOAPn3 est valide. Si ces deux vérifications sont concluantes, le module cryptographique de l'entité électeur génère, au cours d'une étape VG7 une signature Sigv. sur ç et E : Sigv. = SignSK.{Ci, E'), où SKt désigne la clé privée de l'entité électeur V Au cours d'une étape VG75, l'entité électeur transmet la signature Sigv. à l'entité d'administration L et à l'entité organisateur O.
Au cours d'une étape VE13, l'entité d'administration L et l'entité organisateur O vérifient que la signature Sigv. est valide, et si c'est le cas, l'entité d'administration L transmet x' à l'entité électeur Vj.
L'entité d'administration L maintient un registre REG non représenté contenant pour chaque entité membre Vj du groupe les valeurs suivantes :
désigne le nombre d'entités électeurs dûment enregistrées.
Au cours d'une étape VG8, l'entité électeur Vj vérifie que E = X™ et constitue, si cette vérification est concluante sa clé privée de groupe SK^. Celle-ci est constituée par le triplet SK^ = (SÎ,U, u’) où s, = Xi + x'mod p. Il est à noter que ladite clé privée de groupe SK^ est obtenue par l'entité membre à partir de sa clé privée xit connue d'elle seule.
La figure 8 représente sous forme d'organigramme les principales étapes d'un procédé de vote conforme à ce mode de réalisation de l'invention.
Conformément au schéma de signatures anonymes SigA2, pour signer anonymement un message quelconque msg e {0,1}* avec sa clé privée de groupe SK^, le module cryptographique MCR de l'entité électeur Vj tire aléatoirement, au cours d'une étape VH2 une valeur 1 e Zp et calcule (étape VH4) la valeur w = u1 ainsi (étape VH6) que la valeur w' = (u')1.
Dans le cas d'un scrutin uninominal majoritaire, le message peut être constitué par le vote de l'entité électeur, éventuellement sous forme chiffrée, le chiffrement pouvant être calculé en utilisant une clé publique dont la clé privée serait partagée entre plusieurs entités assesseurs configurées pour procéder au dépouillement du vote.
Au cours d'une étape VH8, le module cryptographique MCR de l'entité électeur V} calcule la valeur = wSi et la trace 7} = Pt s‘. Cette trace 7} calculée à partir du générateur de trace Pt et de l'élément s, de la clé privée de groupe de l'entité électeur Vt ne dépend pas du message msg. Autrement dit, la trace 7} constitue donc un invariant des signatures émises par l'entité électeur .
L'entité électeur V} prouve que le logarithme discret de dans la base w est le même que le logarithme discret de 7} dans la base Pt : VEPn', = PoKfoq: q = w"1 A 7} = Pt ai).
Dans le mode de réalisation de l'invention décrit ici, la preuve VEPn', est la paire (c, r) dans laquelle :
z est une valeur aléatoire de Zp tirée par l'entité électeur V} ;
- 7\ = wz ;
- T2 = Pt z;
- c = TfC TY. T^ Pt. msg);
r = z— es, mod p
La preuve est valide si c = K( wr c{, Pt r 7}c, Pt, m) .
Au cours d'une étape VH 10, le module cryptographique MCR de l'entité électeur Vt génère la signature anonyme q du message msg, celle-ci étant constituée des cinq éléments suivants : (w, w', q, 7}, VEPn'j ). Elle comporte la trace 7} qui permet de tracer toutes les signatures émises par l'entité électeur VL.
La figure 9 représente sous forme d'organigramme les principales étapes d'un procédé de vérification d'une signature anonyme conformément à l'invention.
Au cours d'une étape VK2, le dispositif de vérification d'une signature anonyme obtient une signature anonyme s, = (w, w', ^, Gi,nERP'ί ).
Au cours d'une étape VK4, elle considère que la signature anonyme s* d'un message msg est valide si :
w ¹ lGl
- Ti ¹ lGl;
VEPn'j est valide ; et
e(w, X0) e (c1, Â: 1) = e(w', ¾).
La figure 10 représente sous forme d'organigramme les principales étapes d'un procédé de levée d'anonymat de la signature valide s, = (in, in', ^, Gί, P'ί ) d'un message msg conformément à ce deuxième mode de réalisation de l'invention. Ce procédé est mis en oeuvre par l'entité d'enregistrement A et l'entité organisateur O.
Au cours d'une étape VZ2, chacune de ces entités A et O obtient la signature a,.
Au cours d'une étape VZ4, les entités A et O calculent successivement, 7} = Tj- l (::ί’ 1 avec T() = TL.
O calcule 7 =
et prouve (VOP¾) que le logarithme discret de 7 dans la base G, est égal au logarithme discret de X dans la base P .
A calcule T2
et prouve (VAPn|) que le logarithme discret de T2 dans la base T est égal au logarithme discret de P1 dans la base P2.
Si toutes les preuves produites par les autorités de révocation sont valides,
Dans ce mode de réalisation, au cours d'une étape VZ6, l'entité organisateur O transmet la preuve VOP¾ à l'entité d'enregistrement A.
Au cours d'une étape VZ8, l'entité d'enregistrement A retrouve dans son registre REG l'entrée correspondant
Au cours d'une étape VZ10, l'entité d'enregistrement A retourne l'identifiant IDV., les preuves VOPr¾ ainsi et VAPn| que Ci. CL.x', PK, et SigVi . Si toutes les preuves sont valides, que C', = C, · xf et que la signature Sigv. est valide alors l'entité d'enregistrement A considère que l'entité électeur dont l'identifiant est IDV. est bien l'auteur de la signature s, du message msg.
Dans le mode de réalisation décrit ici, l'entité d'administration SA, les entités de révocation Æj, l'entité organisateur O, l'entité d'enregistrement A, le dispositif de vérification DV les entités membres ou électeurs Vx ont l'architecture matérielle d'un ordinateur ORD tel que représenté schématiquement à la figure 11.
L'ordinateur ORD comprend notamment un processeur 7, une mémoire morte 8, une mémoire vive 9, une mémoire non volatile 10 et des moyens de communication COM. Ces moyens de communication COM permettent aux différentes entités de communiquer entre eux notamment. Ils peuvent comprendre une ou plusieurs interfaces de communication sur un ou plusieurs réseaux de télécommunication (fixes ou mobiles, avec ou sans fil, etc.).
La mémoire morte 8 de l'ordinateur ORD constitue un support d'enregistrement conforme à l'invention, lisible par le processeur et sur lequel est enregistré un programme d'ordinateur conforme à l'invention, désigné de façon générale ici par PROG, comportant des instructions pour l'exécution de l'un des procédés objets de l'invention. Ainsi :
— pour l'entité d'administration £L, le programme PROG est un programme PROG1 comportant des instructions pour l'exécution des étapes E2 à E12 d'un procédé de génération de clé conforme à l'invention, et des étapes Z8 à Z10 d'un procédé de levée d'anonymat conforme à l'invention,
— pour les entités de révocation Æj, le programme PROG est un programme PROG1 comportant des instructions pour l'exécution des étapes F2 à F6 d'un procédé de génération de clé conforme à l'invention, et des étapes Z2 à Z6 d'un procédé de levée d'anonymat conforme à l'invention,
— pour l'entité organisateur O, le programme PROG est un programme PROG2 comportant des instructions pour l'exécution des étapes VE2 à VE12 d'un procédé de génération de clé conforme à l'invention et des étapes VZ2 à VZ6 d'un procédé de levée d'anonymat conforme à l'invention,
— pour l'entité d'enregistrement L, le programme PROG est un programme PROG3, comportant des instructions pour l'exécution des étapes VE2 à VE12 d'un procédé de génération de clé conforme à l'invention et des étapes VZ2 à VZ10 d'un procédé de levée d'anonymat conforme à l'invention,
— pour le dispositif de vérification DV, le programme PROG est un programme PROG4
comportant des instructions pour l'exécution des étapes K2 à K4 ou VK2 à VK4 d'un procédé de vérification de signature conforme à l'invention,
— pour les entités membres V le programme PROG est un programme PROG5, comportant des instructions pour l'exécution des étapes G2 à G8 ou VG2 à VG8 du procédé de génération de clé conforme à l'invention, des étapes H2 à H 10 ou VH2 à VH 10 d'un procédé de signature conforme à l'invention.
Chacun de ces programmes définit, de façon équivalente, des modules fonctionnels du dispositif ou du module sur lequel il est installé, aptes à mettre en oeuvre les étapes du procédé concerné et s'appuyant sur les éléments matériels 7-10 de l'ordinateur ORD.