Pourquoi Feige-Fiat-Shamir n'est-il pas Zero Knowledge sans signe?


12

Dans le chapitre 10 de HAC (10.4.2) , nous voyons le célèbre protocole d'identification Feige-Fiat-Shamir basé sur une preuve de connaissance nulle utilisant la difficulté (présumée) d'extraire des racines carrées modulo un composite difficile à factoriser. Je vais donner le schéma dans mes propres mots (et j'espère bien le faire).

Commençons par un schéma plus simple: soit un entier de Blum (donc et chacun de et est 3 mod 4) de taille suffisamment grande pour que l'affacturage soit intraitable. Puisque est un entier de Blum, la moitié des éléments de ont le symbole Jacobi +1 et l'autre moitié a -1. Pour les éléments +1, la moitié de ceux-ci ont des racines carrées, et chaque élément ayant une racine carrée en a quatre, exactement un étant lui-même un carré.nn=pqpqnZn

Maintenant, Peggy sélectionne un élément aléatoire dans et définit . Elle envoie ensuite à Victor. Suivant le protocole: Victor souhaite vérifier que Peggy connaît une racine carrée de et Peggy veut le lui prouver sans divulguer quoi que ce soit au sujet au - delà du fait qu'elle connaît un tel .sZnv=s2vvss

  1. Peggy choisit un aléatoire dans et envoie à Victor.rZnr2
  2. Victor renvoie équitablement ou à Peggy.b=0b=1
  3. Peggy envoie à Victor.rsb

Victor peut vérifier que Peggy a envoyé la bonne réponse en mettant au carré ce qu'il reçoit et en le comparant au bon résultat. Bien sûr, nous répétons cette interaction pour réduire les chances que Peggy ne soit qu'un chanceux. Ce protocole serait ZK; une preuve peut être trouvée à divers endroits (par exemple, les notes de cours de Boaz Barak ).

Lorsque nous étendons ce protocole pour le rendre plus efficace, il s'appelle Feige-Fiat-Shamir; c'est très similaire à ce qui précède. Nous commençons Peggy avec valeurs aléatoires et signes aléatoires elle publie leurs carrés comme . En d'autres termes, nous nions au hasard une partie du . Maintenantks1skt1=±1,tk=±1v1=t1s12,,vk=tksk2vi

  1. Peggy choisit un aléatoire dans et envoie à Victor.rZnr2
  2. Victor renvoie valeurs de à Peggy.kbi{0,1}
  3. Peggy envoie à Victor.rΠi=1ksibi

Ma question: pourquoi les bits de signe sont-ils nécessaires? Entre parenthèses, HAC note qu'ils sont là en tant qu'exigence technique requise pour prouver qu'aucune information secrète n'est divulguée. La page wikipedia de Feige-Fiat-Shamir (qui se trompe de protocole) implique que sans cela un peu de fuite.ti

Je ne peux pas trouver une attaque qui extrait quoi que ce soit de Peggy si elle omet les signes.

Réponses:


8

Le protocole d'identification Feige-Fiat-Shamir (FFS) est une preuve de connaissance (PoK), dans laquelle le prouveur (Peggy) prouve sa connaissance des racines carrées de l'entrée donnée au vérificateur (Victor).

Les FFS veulent distinguer PoK des preuves d'appartenance à une langue , dans lesquelles Peggy prouve que l'entrée a une propriété (plus formellement, l'entrée appartient à une certaine langue).

Si nous n'utilisons pas les signes négatifs, il est possible que les entrées ne possèdent pas de racine carrée. Par exemple, le nombre 20 n'a pas de racine carrée mod 21. Étant donné que la distinction des carrés et des non-carrés est un problème difficile connu , FFS l'évite en permettant à l'entrée d'être le plus ou le moins d'un certain nombre au carré. Dans leurs propres mots (un peu changé):

En permettant à d'être soit plus ou moins un carré modulo un entier de Blum , nous nous assurons que peut s'étendre sur tous les nombres avec le symbole Jacobi et ainsi le existe (du point de vue de V) indépendamment de tel que requis dans les preuves de connaissance à connaissance nulle et sans restriction.vivi +1modnsivi

Par preuves de connaissance à connaissance nulle et sans restriction , on entend un ZK PoK dont la preuve correspondante d'appartenance à une langue est triviale; c'est-à-dire que V peut décider par lui-même que l'entrée est le plus ou le moins d'un carré (en vérifiant simplement le symbole Jacobi).


Merci pour la réponse, mais je ne suis toujours pas: sans signes, le symbole Jacobi est +1. Avec les signes, le symbole Jacobi est +1. Vous dites ci-dessus "si nous n'utilisons pas les signes négatifs, il est possible que les entrées ne possèdent pas de racine carrée". Comment est-ce possible? L'entrée pour le vérificateur est une liste de carrés qui (en supposant un prouveur honnête) ont toujours des racines carrées.
Fixee

Deuxième question: dites-vous que les signes ne sont présents que pour que la preuve passe? Ou existe-t-il une attaque réelle si elles sont omises?
Fixee

@Fixee: Supposons un prouveur de triche qui choisit ses clés publiques ( ) non selon le protocole; dites une valeur aléatoire dont le symbole Jaccobi est +1. Le (pauvre) vérificateur n'a aucun moyen de dire si les ont des racines carrées ou non. La seule façon est d'exécuter le protocole et d'obtenir l'aide du prouveur. Autrement dit, le prouveur prouve à la fois sa connaissance des , ET donne une preuve d'appartenance à la langue (c'est-à-dire que les appartiennent au QR de langue des résidus quadratiques.) Pour une raison quelconque, FFS aimait séparer ce type de preuve à partir de preuves "entrée sans restriction". Je vois cela comme une simple technicité. vivisivi
MS Dousti
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.