Signature de groupe
La signature de groupe est une primitive cryptographique analogue Ă la signature numĂ©rique, en ce sens oĂč elle vise Ă permettre Ă un utilisateur de signer un message au nom dâun groupe, en restant anonyme au sein de ce groupe. Câest-Ă -dire quâune personne voyant la signature peut vĂ©rifier avec la clef publique que le message ait bien Ă©tĂ© Ă©mis par un membre du groupe, mais ne peut pas savoir lequel. En parallĂšle, les utilisateurs ne peuvent pas abuser de cet anonymat puisqu'une autoritĂ© est capable de lever l'anonymat des utilisateurs (malveillants) en utilisant une information secrĂšte.
Pour illustrer le concept, on peut considĂ©rer un espace de commentaires anonyme, oĂč les utilisateurs (disposant d'une clef privĂ©e) pourraient poster des messages. La prĂ©sence dâune signature vĂ©rifiable sur les messages permet de contrĂŽler si les messages ont bien Ă©tĂ© postĂ©s par une personne autorisĂ©e Ă le faire. Lâanonymat permet de son cĂŽtĂ© dâassurer la protection de la vie privĂ©e des utilisateurs.
En revanche, en cas dâabus, si quelquâun poste un message hors-charte par exemple, alors un administrateur possĂ©dant une information secrĂšte est capable de lever lâanonymat de lâutilisateur ayant postĂ© le message frauduleux, et pourra prendre les mesures qui sâimposent (comme rĂ©voquer l'utilisateur).
Un avantage des signatures de groupes par rapport à l'utilisation des signatures numériques classiques est le fait qu'il n'y a qu'une seule clef publique à stocker pour l'ensemble du groupe au lieu de devoir avoir connaissance de toutes les clefs publiques différentes qui pourraient mener à une attaque de l'homme du milieu.
Historique
La signature de groupe a Ă©tĂ© introduite en 1991 par Chaum et van Heyst[1] oĂč les notions dâanonymat et de traçabilitĂ© ont Ă©tĂ© dĂ©finies pour dĂ©crire la sĂ©curitĂ© du protocole. Ă partir de cet instant, de nombreux protocoles ont Ă©tĂ© introduits, rajoutant sur ce modĂšle des notions comme la non-falsifiabilitĂ© analogue Ă celle des signatures numĂ©rique, mais aussi des notions plus spĂ©cifiques comme la dĂ©nonciation[2].
Il a fallu attendre Bellare, Micciancio et Warinschi[3] pour proposer un modĂšle formel plus Ă©purĂ© qui est utilisĂ© aujourd'hui comme le modĂšle formel dans lequel travailler pour la signature de groupe. Les notions de sĂ©curitĂ© ont Ă©tĂ© rĂ©sumĂ©es en deux notions en plus de la correctionâŻ: la traçabilitĂ© totale, et l'anonymat total.
DĂ©finition
Une signature de groupe est un ensemble de quatre algorithmes efficacesâŻ: lâinitialisation, la signature, la vĂ©rification et l'ouverture, dĂ©crits comme suit.
- Lâinitialisation prend en entrĂ©e un paramĂštre de sĂ©curitĂ© λ et la taille du groupe N et renvoie une clef publique pour le groupe gpk, un vecteur de clefs secrĂštes gsk oĂč correspond Ă la clef privĂ©e de l'utilisateur d et une clef d'ouverture ok.
- La signature, qui prend en entrĂ©e une clef secrĂšte , un message m et renvoie une signature Ï.
- La vĂ©rification, qui prend en entrĂ©e la clef publique du groupe gpk, un message m et une signature Ï et qui renvoie un boolĂ©en.
- Lâouverture, qui prend en entrĂ©e la clef privĂ©e dâouverture ok, un message m et une signature Ï et qui renvoie une identitĂ© d ou un message d'erreur «âŻâ„âŻÂ».
La correction d'une signature de groupe traduit le fait que la vĂ©rification dâun message signĂ© par des parties faisant tourner honnĂȘtement les diffĂ©rents algorithmes renverra vraiâŻ:
Sécurité
Comme précisé dans l'historique, la sécurité d'un schéma de signature de groupe se résume au travers de deux notions: l'anonymat total, et la traçabilité totale.
Anonymat
L'anonymat traduit le fait que si on ne possĂšde pas la clef d'ouverture ok, alors il devient trĂšs difficile de lever l'anonymat des utilisateurs.
Autrement dit, étant donné deux identités et un message m. En ayant accÚs aux clefs privées des utilisateurs, à la clef publique du groupe, et en ayant accÚs à un oracle de déchiffrement, il est impossible de distinguer en temps polynomial avec probabilité non négligeable de .
Traçabilité
La traçabilitĂ© quant Ă elle traduit la sĂ©curitĂ© du systĂšme vis-Ă -vis des utilisateurs malhonnĂȘtes. En d'autres termes, elle traduit le fait quâun utilisateur ne pourra pas «âŻfalsifier (en)âŻÂ» une signature valide Ï qui ouvrira sur un utilisateur honnĂȘte, ou dĂ©coulera sur un Ă©chec.
Extensions
La signature de groupe possĂšde diffĂ©rentes variantes et extensions. On peut noter par exemple l'ajout de fonctionnalitĂ©s comme la rĂ©vocation[4], ou encore lâouverture dĂ©pendante des messageset_al.''_2012_5-0">[5], qui vise Ă limiter la puissance de l'autoritĂ© d'ouverture en rajoutant une autre autoritĂ© capable de dĂ©livrer un jeton, qui couplĂ© Ă la clef d'ouverture ok permet de lever lâanonymat des signatures sur les messages ciblĂ©es par le jeton.
Construction générique
Pour appuyer leur modĂšle, Bellare, Micciancio et Warinschi[3] ont proposĂ© une construction gĂ©nĂ©rique reposant sur des primitives plus bas niveau. Ils ont ainsi prouvĂ© quâavec un schĂ©ma de chiffrement IND-CCA, une signature numĂ©rique non-falsifiable sous des attaques Ă message choisis et une preuve Ă divulgation nulle de connaissance permettant la preuve de possession dâun couple message-signature, il est possible de construire un schĂ©ma de signature de groupe. Cette construction est la suivante:
- Initialisation(1λ, N):
- GĂ©nĂšre les paires de clefs (skE, pkE), (skS, vkS) pour le chiffrement et la signature respectivement, choisis pour ĂȘtre sĂ»rs pour le paramĂštre de sĂ©curitĂ© λ.
- Pour chaque utilisateur , calculer une signature pour cette identitĂ© et en faire la clef secrĂšte de lâutilisateur dâŻ:
- Finalement renvoyer , et .
- Signature(gpk, gsk[d], d, M):
- Lâutilisateur commence par chiffrer son identitĂ© d: .
- Lâutilisateur prouve ensuite la possession dâun couple message-signature, pour le message sous le chiffrĂ© C, ce qui donne la preuve Ï. Le message est inclus dans la preuve.
- La signature est ainsi .
- VĂ©rification(gpk, M, Ï):
- Pour vĂ©rifier la signature, lâutilisateur commence par lire Ï comme Ă©tant (C, Ï).
- La signature est acceptée si et seulement si la preuve est vérifiée.
- Ouverture(gpk, ok, M, Ï):
- Si la vĂ©rification ne passe pas, alors lâalgorithme retourne le symbole d'erreur â„.
- Sinon lâalgorithme dĂ©chiffre C pour obtenir dâ, et vĂ©rifie que dâ est bien dans . Si ce nâest pas le cas, l'algorithme renvoie un symbole dâerreur. Sinon il renvoie dâ.
Sécurité
Lâanonymat est garanti par le fait que le chiffrement de lâidentitĂ© C est chiffrĂ© par un schĂ©ma indistinguable sous des attaques Ă chiffrĂ©s choisis.
La traçabilité quant à elle vient de la robustesse (soundness) de la preuve à connaissances nulles.
Notes et références
Références
- Chaum et van Heyst 1991.
- Ateniese et Tsudik 1999.
- Bellare, Micciancio et Warinschi 2003.
- Boneh et Shacham 2004.
- et_al.''_2012-5" class="mw-reference-text">Sakai et al. 2012.
Annexes
Bibliographie
- [Ateniese et al. 2000] (en) Guiseppe Ateniese et Gene Tsudik, « Some open issues and new directions in group signatures », LNCS, vol. 1648,â , p. 196â211 (lire en ligne [ps]).
- [Bellare, Micciancio et Warinschi 2003] (en) Mihir Bellare, Daniele Micciancio et Bogdan Warinschi, « Foundations of Group Signatures : Formal Definition, Simplified Requirements and a Construction Based on General Assumptions », Eurocrypt 2003, Lecture Notes in Computer Science, vol. 2656,â , p. 614â629 (lire en ligne [PDF]) ;
- [Boneh et Shacham 2004] (en) Dan Boneh et Hovay Shacham, « Group signatures with verifier-local revocation », CCS, ACM,â , p. 168â177 (DOI 10.1145/1030083.1030106, lire en ligne)
- [Chaum et van Heyst 1991] (en) David Chaum et EugĂšne van Heyst, « Group Signatures », Eurocrypt, vol. 547,â , p. 257â265 (lire en ligne) ;
- [Sakai et al. 2012] (en) Yusuke Sakai, Keita Emura, Goichiro Hanaoka, Yutaka Kawai, Takahiro Matsuda et Kazumasa Omote, « Group Signatures with Message-Dependent Opening », Pairing, lNCS,â , p. 270â294 (DOI 10.1007/978-3-642-36334-4_18, lire en ligne)