随机Oracle模型中零知识协议的穷举模拟器


13

在一篇名为“关于公共参考字符串和随机Oracle模型中的可否认性”的论文中,Rafael Pass写道:

我们注意到,根据RO [Random Oracle]模型中的标准零知识定义证明安全性时,该模拟器比普通模型模拟器具有两个优势,即:

  1. 模拟器可以查看各方查询oracle的值。
  2. 只要答案“看起来”确定,模拟器就可以用它选择的任何方式回答这些查询。

第一种技术,即“监视” RO的查询的能力,在所有涉及RO模型中的零知识概念的论文中都非常普遍。

现在,考虑黑盒零知识的定义(PPT代表概率的多项式时间图灵机):

小号V *X 大号ř一个PPT模拟器,使得(可能作弊)PPT验证程序,公用输入和随机性,以下内容是无法区分的:SVxLr

  • 在输入上与证明者交互并使用随机性的视图 P x rVPxr
  • 当给黑盒访问时,输入和上的输出。 x r S V *SxrSV

在这里,我想展示一个作弊验证者,其工作是用尽所有试图监视RO查询的模拟器:V

令为黑盒子零知识定义中由存在量词保证的模拟器,令为多项式,其使在输入上的运行时间上限为上限。假设尝试监视对RO 的查询。q | x |S x S V *Sq(|x|)SxSV

现在,考虑作弊,它首先向RO查询Vq(|x|)+1次(在其选择的任意输入上),然后任意恶意地行动。

显然,排出模拟器。一种简单方法是拒绝这种恶意行为,但是通过这种方式,区分者可以轻松地将真实交互与模拟交互区分开。(由于在实际交互中,证明方无法监视的查询,因此不会基于查询过多的事实而拒绝。)小号小号P V ' V 'VSSPVV

以上问题的解决方法是什么?

编辑:

在RO模型中研究ZK的一个很好的资料是:

MartinGagné,《随机Oracle模型研究》,博士学位。论文,加州大学戴维斯分校,2008年,109页。在ProQuest上可用:http//gradworks.umi.com/33/36/3336254.html

特别是,它在第​​3.3节(第20页)中给出了RO模型中黑盒ZK的定义,这些定义归功于Yung和Zhao:

容慕缇和赵云蕾。具有受限随机Oracle的交互式零知识。在密码学理论-TCC 2006中,LNCS 3876,第21-40页,2006年。


我认为您的意思可能是“穷举”而不是“穷举”。
戴夫·克拉克2010年

我不敢苟同。我的意思是我找到了一种“用尽” ZK协议模拟器的方法...没有“用尽”模拟器之类的东西。
MS Dousti

我的错。我读穷举是一个形容词,而不是动词。
戴夫·克拉克

Answers:


10

有一个问题为什么为什么要在随机预言模型中定义黑盒ZK。人们提出黑盒零知识定义的原因至少有两个:

1)对于一个积极的结果,当你说一个模拟器是“黑箱零知识”,它会自动给你束缚在其运行时间一个漂亮的(即,而不是到),知道模拟器不会“看的胆量”,也不在乎是否使用RAM,电路等来实现,这可能也是有用的。 ..虽然随机Oracle模型模拟器可能是有效的,但显然不是黑盒,因为它应该以某种方式查看的执行情况,并在时从中了解它,p Ô ý 中号È V * V * V * V * V *poly(|x|)time(V)poly(time(V))VVVV正在评估哈希函数。因此,从某种意义上说随机预言模型模拟器是“黑匣子”是没有意义的。

2)对于负面结果,人们使用“黑匣子模拟器”捕获了大量的证明技术。在这种情况下,您也可以在随机oracle模型中定义黑盒模拟器,而有意义的定义就是David所说的。实际上,即使对于否定结果,即使在随机oracle模型中也不是,即使您允许模拟器运行时间,结果也保持最佳。的确,尽管并非总是如此,但我知道的所有负面结果都具有此属性,因为作弊验证者通常是运行多项伪随机函数的固定多项式算法,而模拟器可以具有多项式运行时间。V *poly(time(V))V


1
V

请参阅已编辑的问题以获取一些参考。
MS Dousti

1
VV

1
由于我想阅读更多内容,因此我延迟回复您的评论。特别是,我阅读了Yung和Zhao的论文(如上所述),并指出他们在RO模型中使用黑盒ZK以获得肯定的结果,而您说“说随机Oracle模型没有意义。模拟器是“黑匣子”。” 他们的结果在哲学上是有问题的,还是我们应该放宽对黑匣子的定义?
MS Dousti

4

这是我对这个问题的看法。我最近尚未阅读任何有关随机Oracle(RO)模型中黑匣子零知识的文章,所以我只是在猜测它们的含义,而不是那里写的内容。简短的答案(猜测)是RO模型中的BB-ZK应该让模拟器以| x |的时间多项式运行 以及作弊验证者V *发出的RO查询数量。

让我们尝试证明这个猜测。初步观察发现,术语“随机预言模型中的黑匣子零知识证明”需要仔细研究才能正确定义。黑盒模拟器被定义为可与任何oracle配合使用(即作弊验证程序为黑盒),它们的唯一接口是通过oracle输入/输出。如果我们只是扩展此模型以向所有各方提供RO(也许通过允许其电路具有RO门),那么我们将得到一个模型,其中仿真器无法对RO进行编程-在oracle查询上,所有内容(包括RO查询)发生在V * oracle的“内部”,然后返回其下一条消息。如果要允许进行RO编程,则需要修改接口:模拟器现在获得V *的输入/输出预言,没有随机预言。在每次致电V *甲骨文时,代替产生下一条消息,Oracle可以替代地产生对RO的下一个查询,并且模拟器可以通过再次调用oracle为其提供RO响应。现在,这允许进行RO编程,并且我们还可以允许模拟器的运行时间取决于对RO的查询数量。

这些定义的含义的任何进一步探索都留给读者。我在语法上思考。


1
感谢大卫的回答。不管模拟器对RO进行编程的能力如何,它都应该能够“监视”它们。因此,来自V *的每个Oracle查询至少浪费M的时间。您的主意是将模型更改为“让模拟器在| x |中按时间多项式运行,并让V *发出RO查询数”。那不是标准模型,但我认为它是一个合理的解决方案。但是我认为社区中的“巨人”必须首先承认这种模式的真实性……
MS Dousti

1
您能否引用精确定义“标准模型”的资源?(该术语通常用作“计算模型中不存在随机预言或其他类似修改的同义词”,但我认为这不是您的意思。)我的期望是我已勾勒出定义如果没有标准,那么我们可以在没有任何“巨人”积极证明我们的推理的情况下弄清楚这一点。
David Cash

1
当然,“标准模型”是指RO模型下ZK的“标准定义”。您可以参考拉斐尔·帕斯(Rafael Pass)的论文(在问题中引用)或他的硕士学位论文(标题为“零知识证明的替代变体”),或在Wee的AsiaCrypt 2009中的论文(“随机Oracle模型中的零知识,已复习”)。 。他们都没有在RO模型中定义“黑匣子” ZK(都提到了辅助输入ZK),尽管没有一个提到“在x中运行时间多项式以及由V *进行的RO查询的数量”。因此,我认为您正在提出一个新定义(使用Google)!
MS Dousti

请参阅已编辑的问题以获取一些参考。
MS Dousti
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.