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 est
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 ) .
Est-il possible de faire mieux que cela, que ce soit en termes de communication totale ou de nombre de tours?
Edit : Merci à Ricky Demer pour avoir souligné le facteur manquant de .
la source
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
Cela donne communication sur O ( 1 ) tours.O ( b e logn journal( 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 exactement2une 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.b 2a + 1- 1 b
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
la source
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).
la source
(Cela ne rentre pas dans un commentaire.)
Je pense que je vois maintenant comment montrer que votre salage ne fournit pas nécessairement une Soit le hachage sécurisé.H0 Si nous savons
H0 H1 H0
H1 H0
| | Soit tel que
pour toutes les chaînes de 3 bits x et z , pour toutesH2
X z -bit( ( 3⋅b )+6 ) chaînes ,
pour la chaîne m telle quey
m m=X| |111 ... [ b d'entre eux ] ...111| |y| |z ,
H2( m )=X| |111 ... [ b d'entre eux ] ...111| |H1( m )| |z .
X r , pour la chaîne qui résulte du salage de x avec rm X r , si n'est
pas de la forme indiquée ci-dessus,m
H2( m )=X| |111 ... [ b d'entre eux ] ...111| |H1( m )| |X .
m H2( m )=
[ b+3 bits dont les valeurs n'ont pas d'importance ]| |H1( m )| |[ 3 bits dont les valeurs n'ont pas d'importance ] .
connaissance zéro du vérificateur honnête.
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.)
on a
et
pour toutes les chaînes de 3 bits , pour tous les sels r
et
pour toutes les chaînes qui ne sont d'aucune de ces deux formes, H 2 ( m )
[
.
Puisque est impliqué au même endroit dans chaque cas, toute collision dans H 2 est également une collision dans H 1 .H1 H2 H1 Par la sécurité de Merkle-Damgard, toute collision dans peut être efficacement transformée
en collision dans H 0 .H1
H0 H0 H2
1 / ( 2( b - 1 ))
la source