Coût de communication minimum pour zéro preuve de connaissance de trois colorabilité


11

La preuve de Goldreich et al. Que la trois colorabilité n'a aucune preuve de connaissance utilise l'engagement de bits pour une coloration entière du graphique à chaque tour [1]. Si un graphe a sommets et e arêtes, un hachage sécurisé a b bits et que nous recherchons la probabilité d'erreur p , le coût total de la communication estnebp

O(benlog(1/p))

sur tours. En utilisant un arbre Merkle progressivement révélé, la communication totale peut être réduite à O ( b e log n log ( 1 / p ) ) au prix d'augmenter le nombre de tours à O ( log n ) .O(1)O(belognlog(1/p))O(logn)

Est-il possible de faire mieux que cela, que ce soit en termes de communication totale ou de nombre de tours?

  1. http://www.wisdom.weizmann.ac.il/~oded/X/gmw1j.pdf

Edit : Merci à Ricky Demer pour avoir souligné le facteur manquant de .e

Réponses:


3

Voici donc le bon document pour mes besoins:

Joe Kilian, "Une note sur les preuves et arguments efficaces à connaissance zéro". http://people.csail.mit.edu/vinodv/6892-Fall2013/efficientargs.pdf

Pour obtenir le résultat le plus fort, nous devons accepter zéro argument de connaissance plutôt que des preuves (prouveur borné par calcul); c'est ce qui m'intéresse mais je ne connaissais pas la terminologie.

En supposant des hypothèses cryptographiques suffisantes, l'article ne donne aucun argument de connaissance avec une communication totale pour c = OO(blogcnlog(1/p)) .c=O(1)

Ce résultat est limité aux séries par Ishai et al., "On Efficient Zero-Knowledge PCP", http://www.cs.virginia.edu/~mohammad/files/papers/13%20ZKPCPs.pdf .O(1)


Je pense qu'il vaut mieux supprimer cette réponse et mettre à jour votre réponse d'origine pour être la bonne réponse.
Kaveh

2

Mise à jour : Cette réponse est obsolète par mon autre réponse, avec des limites entièrement polylogarithmiques à partir de références appropriées.

À la réflexion, il n'est pas nécessaire de révéler l'arbre Merkle progressivement, donc la version de communication inférieure n'a pas besoin de tours supplémentaires. Les étapes de communication sont

  1. Le prouveur P randomise sa coloration, le transforme en arbre Merkle (salé) et envoie la racine au vérificateur V.
  2. V choisit un bord aléatoire e et l'envoie à P.
  3. P envoie les chemins de l'arbre Merkle de la racine à chaque point d'extrémité de à V.e

Cela donne communication sur O ( 1 ) tours.O(belognlog(1/p))O(1)

Mise à jour: Voici les détails de la construction de l'arbre Merkle. Pour plus de simplicité, développez le graphique pour avoir exactement 2a sommets en ajoutant quelques noeuds déconnectés (ceux - ci n'affectent pas trois ou zéro colorabilité connaissances). Supposons une fonction de hachage sécurisée prenant n'importe quelle entrée de taille et produisant des sorties bit. Pour chaque arbre Merkle, le prouveur choisit 2 a + 1 - 1 au hasard b nonces de -bit, un pour chaque feuille et non - feuille de l'arbre binaire. Aux feuilles, nous hachons la couleur concaténée avec le nonce pour produire la valeur de la feuille. À chaque non-feuille, nous hachons les deux valeurs enfant avec le nonce du non-feuille pour produire la valeur du non-feuille.b2a+11b

Au premier tour, le prouveur envoie uniquement la valeur racine, qui ne fournit aucune information car elle est hachée avec le nonce de la racine. Au troisième tour, aucune information n'est transmise sur un nœud non développé dans l'arbre binaire, car un tel nœud a été haché avec un nonce sur ce nœud. Ici, je suppose que le prouveur et le vérificateur sont tous deux limités par le calcul et ne peuvent pas casser le hachage.

Edit : Merci à Ricky Demer pour avoir souligné le facteur manquant de .e


L'étape 1 donnerait au vérificateur un moyen de haute précision de tester toute supposition sur la coloration du prouveur, en utilisant seulement 6 fois le travail de l'étape 1 du prouveur par supposition. De plus, je ne vois aucun moyen d'utiliser un arbre Merkle calculé par le prouveur sans passer d'une preuve à un argument .

Comment un arbre Merkle salé peut-il être utilisé pour deviner une coloration?
Geoffrey Irving

1
J'ai posté une réponse disant pourquoi je pense que l'idée du Merkle salé ne fonctionne pas. Vous devriez plutôt transformer les engagements de randomisation des couleurs en un arbre Merkle. Je remarque également que vous semblez manquer un facteur number_of_edges dans la complexité de la communication.

1
Eh bien, on peut considérer la promesse que l'affectation est soit une 3-coloration valide ou [au moinsδe les bords ont des sommets de même couleur]. Cela réduit la complexité de la communication à O(((bn)/δ)log(n)). (suite ...)

1
(... a continué) Ensuite, on peut appliquer la machinerie PCP pour réduire la relation standard de 3 couleurs à cette relation de promesse.Ensuite, pousser cette idée à son extrême donne des arguments universels sans connaissance .

1

Il y a eu une poussée récente d'activité dans les arguments succincts non interactifs de connaissance zéro. On sait par exemple construire un argument NIZK pour Circuit-SAT où la longueur d'argument est un très petit nombre constant d'éléments de groupe (voir Groth 2010, Lipmaa 2012, Gennaro, Gentry, etc., Eurocrypt 2013, etc.). Sur la base d'une réduction NP, vous pouvez alors clairement construire un argument pour la colorabilité 3 avec la même communication.

Bien sûr, c'est un modèle différent de votre question d'origine - par exemple, dans ces arguments, la longueur du CRS est linéaire en taille de circuit, et dans un certain sens, elle peut être considérée comme faisant partie de la communication (bien qu'elle puisse être réutilisée dans de nombreux arguments différents).


0

(Cela ne rentre pas dans un commentaire.)

Je pense que je vois maintenant comment montrer que votre salage ne fournit pas nécessairement une
connaissance zéro du vérificateur honnête.Soit le hachage sécurisé.H0Si nous savons
que peut déjà gérer des entrées de longueur arbitraire, alors soit H 1 égal à H 0 , soit H 1 soit le résultat de l'application de la construction de Merkle-Damgard à H 0 . (Notez que | | représente la concaténation.)H0H1H0
H1H0
||Soit tel que pour toutes les chaînes de 3 bits x et z , pour toutesH2


xz -bit((3b)+6)chaînes , pour la chaîne m telle quey
mm=x||111...[b of them]...111||y||z,
on aH2(m)=x||111...[b of them]...111||H1(m)||z.

et

pour toutes les chaînes de 3 bits , pour tous les sels rxr, pour la chaîne qui résulte du salage de x avec rmxr, si n'est pas de la forme indiquée ci-dessus,m
H2(m)=x||111...[b of them]...111||H1(m)||x.

et

pour toutes les chaînes qui ne sont d'aucune de ces deux formes, H 2 ( m )m
[H2(m)=
[b+3 bits whose values don't matter]||H1(m)||[3 bits whose values don't matter].


.



Puisque est impliqué au même endroit dans chaque cas, toute collision dans H 2 est également une collision dans H 1 .H1H2H1Par la sécurité de Merkle-Damgard, toute collision dans peut être efficacement transformée en collision dans H 0 .H1
H0H0H2


1/(2(b1))


Je ne suis pas sûr de suivre votre notation, mais il semble que vous souteniez que vous pouvez prendre mon croquis et remplir les détails d'une manière évidemment idiote, produisant ainsi un système peu sûr. J'ajouterai la version sécurisée plus propre des détails à ma réponse.
Geoffrey Irving

H2 Tout le reste était ce que je pensais honnêtement que tu voulais dire.

Veuillez me faire savoir si les détails ajoutés à ma réponse le montrent clairement. Il est fort possible que je manque quelque chose et ma construction est en effet cassée.
Geoffrey Irving
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.