Simulateur épuisant de protocoles sans connaissances dans le modèle Oracle aléatoire


13

Dans un article intitulé «Sur le déni dans la chaîne de référence commune et le modèle Oracle aléatoire», Rafael Pass écrit:

Nous notons que lors de la démonstration de la sécurité selon la définition standard de la connaissance zéro dans le modèle RO [Oracle aléatoire], le simulateur a deux avantages par rapport à un simulateur de modèle simple, à savoir:

  1. Le simulateur peut voir sur quelles valeurs les parties interrogent l'oracle.
  2. Le simulateur peut répondre à ces requêtes de la manière qu'il souhaite tant que les réponses "semblent" OK.

La première technique, à savoir la capacité de «surveiller» les requêtes au RO, est très courante dans tous les articles faisant référence au concept de connaissance zéro dans le modèle RO.

Maintenant, considérons la définition de la connaissance zéro de la boîte noire ( PPT signifie machine de Turing probabiliste à temps polynomial ):

un simulateur PPT S , tel que (éventuellement tricher) vérificateur PPT V , entrée commune x L et caractère aléatoire r , les éléments suivants ne peuvent pas être distingués:SVxLr

  • la vue de en interagissant avec le prouveur P sur l'entrée x et en utilisant l'aléatoire r ; VPxr
  • la sortie de sur les entrées x et r , lorsque S a accès à la boîte noire à V . SxrSV

Ici, je veux montrer un vérificateur de triche , dont le travail consiste à épuiser tout simulateur qui essaie de surveiller les requêtes RO:V

Soit le simulateur garanti par le quantificateur existentiel dans la définition de la connaissance zéro de la boîte noire, et q ( | x | ) un polynôme qui limite le temps de fonctionnement de S sur l'entrée x . Supposons que S essaie de surveiller les requêtes de V au RO.Sq(|x|)SxSV

Maintenant, considérons un triche , qui interroge d'abord le RO pendant q ( | x | ) + 1 fois (sur des entrées arbitraires de son choix), puis agit arbitrairement avec malveillance.Vq(|x|)+1

De toute évidence, épuise le simulateur S . Un moyen simple pour S est de rejeter un tel comportement malveillant, mais de cette façon, un différenciateur peut facilement distinguer l'interaction réelle de l'interaction simulée. (Étant donné que dans l'interaction réelle, le prouveur P ne peut pas surveiller les requêtes de V , et ne rejettera donc pas en raison du simple fait que V ' interroge trop.)VSSPVV

Quelle est la solution de contournement pour le problème ci-dessus?

Éditer:

Une bonne source pour étudier ZK dans le modèle RO est:

Martin Gagné, Une étude du modèle Oracle aléatoire, Ph.D. Thèse, Université de Californie, Davis , 2008, 109 pages. Disponible sur ProQuest: http://gradworks.umi.com/33/36/3336254.html

En particulier, il donne des définitions de la boîte noire ZK dans le modèle RO dans la section 3.3 (page 20), attribuée à Yung et Zhao:

Moti Yung et Yunlei Zhao. Zero-Knowledge interactif avec des oracles aléatoires restreints. Dans Theory of Cryptography - TCC 2006 , LNCS 3876, pp. 21-40, 2006.


Je pense que vous pourriez vouloir dire "exhaustif" au lieu de "épuisant".
Dave Clarke

Je ne suis pas d'accord. Je voulais dire que j'avais trouvé un moyen "d'épuiser" le simulateur des protocoles ZK ... Il n'y a pas de simulateur "exhaustif".
MS Dousti

Ma faute. Je lis épuisant comme un adjectif, pas un verbe.
Dave Clarke

Réponses:


10

La question se pose de savoir pourquoi on voudrait définir la boîte noire ZK dans le modèle d'oracle aléatoire. Il y a au moins deux raisons pour lesquelles les gens ont suggéré la définition de la connaissance zéro de la boîte noire:

1) Pour un résultat positif, lorsque vous dites qu'un simulateur est une "connaissance zéro de la boîte noire", il vous donne automatiquement une belle limite sur son temps de fonctionnement (c'est-à-dire, par opposition à p o l y ( t i m e ( V ) ) ) et il peut également être utile de savoir que le simulateur ne "regarde pas les tripes" de V et ne se soucie pas si V poly(|x|)time(V)poly(time(V))VVest implémenté en utilisant de la RAM, un circuit, etc ... Alors qu'un simulateur de modèle à oracle aléatoire peut être efficace, ce n'est évidemment pas une boîte noire, car il est censé en quelque sorte regarder l'exécution de et comprendre à partir de cela lorsque V évalue une fonction de hachage. Pour cette raison, il y a un sens dans lequel il n'est pas logique de dire qu'un simulateur de modèle d'oracle aléatoire est une "boîte noire".VV

2) Pour un résultat négatif, les gens utilisent un "simulateur de boîte noire" pour capturer une grande classe de techniques de preuve. Dans ce cas, vous pouvez également définir le simulateur de boîte noire dans le modèle d'oracle aléatoire et la définition qui a du sens est ce que David a dit. En fait, pour un résultat négatif même pas dans le modèle de l' oracle aléatoire, il est préférable si le résultat reste valable même si vous permettez le simulateur durée. En effet, bien que cela ne soit pas toujours énoncé, les résultats négatifs que je connais ont tous cette propriété, puisque le vérificateur de triche V poly(time(V))V est généralement un algorithme polynomial fixe qui exécute certaines fonctions pseudo-aléatoires, tandis que le simulateur peut avoir n'importe quel temps d'exécution polynomial.


1
En est-il de même pour la "simulation universelle" ZK? Après tout, la boîte noire ZK est un type de simulation universelle ZK, dont le temps de fonctionnement est fixé avant que soit déterminé. (Cependant, le ZK sans boîte noire est un type de ZK de simulation universelle, dans lequel S peut regarder les "tripes" de V *)V
MS Dousti

Veuillez consulter la question modifiée pour quelques références.
MS Dousti

1
VV

1
J'ai tardé à répondre à votre commentaire car je voulais en savoir plus. En particulier, j'ai lu le document de Yung et Zhao (cité ci-dessus) et j'ai noté qu'ils utilisaient la boîte noire ZK dans le modèle RO pour un résultat positif, tandis que vous disiez "cela n'a pas de sens de dire qu'un modèle à oracle aléatoire le simulateur est une «boîte noire». " Leur résultat est-il philosophiquement problématique, ou devrions-nous assouplir la définition de boîte noire?
MS Dousti

4

Voici mon point de vue sur le problème. Je n'ai récemment lu aucun article traitant de la connaissance zéro de la boîte noire dans le modèle de l'oracle aléatoire (RO), donc je ne fais que deviner ce qu'ils signifient et non ce qui y est écrit. La réponse courte (supposition) est que BB-ZK dans le modèle RO devrait laisser le simulateur fonctionner en polynôme temporel dans | x | et le nombre de requêtes RO émises par V *, le vérificateur de triche.

Essayons de justifier cette supposition. Une première observation est que le terme "preuves de connaissances nulles de boîte noire dans le modèle d'oracle aléatoire" doit être examiné de plus près pour être correctement défini. Les simulateurs de boîte noire sont définis pour fonctionner avec n'importe quel oracle (c'est-à-dire, le vérificateur de triche en tant que boîte noire), et leur seule interface est via l'entrée / sortie oracle. Si nous augmentons simplement ce modèle pour donner un RO à toutes les parties (peut-être en permettant à leurs circuits d'avoir des portes RO), alors nous obtenons un modèle où le simulateur ne peut pas programmer le RO - sur une requête Oracle, tout (y compris les requêtes RO) juste se produit "à l'intérieur" de l'oracle V *, puis il renvoie son message suivant. Si nous voulons autoriser la programmation RO, alors nous devons modifier les interfaces: Le simulateur obtient maintenant un oracle d'entrée / sortie pour V * et pas d'oracle aléatoire. À chaque appel vers l'oracle V *, au lieu de produire le message suivant, l'oracle peut à la place produire la requête suivante au RO, et le simulateur peut lui donner la réponse du RO en appelant à nouveau l'oracle. Maintenant, cela permet la programmation du RO, et nous pouvons également permettre au temps de fonctionnement du simulateur de dépendre du nombre de requêtes au RO.

Toute autre exploration de la signification de ces définitions est laissée au lecteur. Je pense syntaxiquement.


1
Merci pour la réponse David. Quelle que soit la capacité du simulateur à programmer l'OR, il doit pouvoir les «surveiller». Ainsi, chaque requête oracle de V * fait perdre du temps à M au moins. Votre grande idée est de changer le modèle pour "laisser le simulateur s'exécuter dans le polynôme temporel dans | x | et le nombre de requêtes RO émises par V *." Ce n'est pas le modèle standard, mais je le vois comme une solution raisonnable. Pourtant, je pense que les "géants" de la communauté doivent d'abord reconnaître l'authenticité d'un tel modèle ...
MS Dousti

1
Pouvez-vous citer une source qui définit précisément "le modèle standard"? (Ce terme est souvent utilisé comme synonyme de «aucun oracle aléatoire ou autre modification de ce type n'est présent dans le modèle de calcul», mais je ne pense pas que c'est ce que vous vouliez dire.) Je m'attends à ce que j'aie esquissé la définition de ce qui serait considéré comme standard, et sinon, nous pouvons le comprendre sans qu'aucun "géant" ne certifie activement notre raisonnement.
David Cash

1
Bien sûr, par «modèle standard», je voulais dire la «définition standard» de ZK sous le modèle RO. Vous pouvez vous référer à l'article de Rafael Pass (cité dans la question), ou à sa thèse de maîtrise (intitulée "Alternative Variants of Zero-Knowledge Proofs"), ou à l'article de Wee dans AsiaCrypt 2009 ("Zero Knowledge in the Random Oracle Model, Revisited") . Aucun d'entre eux n'a défini la «boîte noire» ZK dans le modèle RO (ils ont tous mentionné l'entrée auxiliaire ZK), bien qu'aucun n'ait fait référence au «polynôme exécuté dans le temps dans | x | et au nombre de requêtes RO effectuées par V *». Par conséquent, je pense que vous proposez une nouvelle définition (Google it!)
MS Dousti

Veuillez consulter la question modifiée pour quelques références.
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.