施诺尔关于证明离散对数知识的协议是真正的交互式证明,还是一个互动的论证?如果我们让P是无界的,在她生成承诺$t$并收到挑战$c$之后,她可以尝试所有的$r$,例如$h^r=t \cdot z^c$(其中$h$是循环组和$z=h^x$的生成器)。
此外,如果证明程序是无界的,我们如何提供安全保证?
我知道如何从两份笔录中提取证人。我的直觉,为什么这个提取论点足以证明正确是这样的(如果我错了,请纠正我):如果证明者能以某种方式欺骗并产生两个接受的记录,那么她就可以提取$x$。这意味着(通过采取相反的陈述),如果她不知道$x$,那么她就不能出示成绩单。因此,协议是合理的。
然而,在某种意义上,我们不得不忽略了无限的计算能力P,同时证明了这个说法。如果她有无限的计算能力,那么她将永远知道离散日志(因为她可以计算它)。我想我的问题是,那么不限制P的目的是什么呢?
发布于 2018-03-10 19:45:26
Schnorr的协议是知识的交互证明。您提供的“攻击”与此并不矛盾:如果您所描述的强大的验证程序确实可以尝试所有的$r$,例如$h^r = that ^c$,那么她也可以尝试所有$x$并检查$z=h^x$。换句话说,这个证明程序确实知道$z$的离散对数:事实上,任何‘无界’验证程序都知道$z$的离散日志。
提供接受证明的证明程序必须知道离散对数是通过回绕完成的,并且显示模拟器可以从交互中提取这个离散日志,这是非常简单的(重复最后两个流两次,写出方程,取消第一个流中引入的随机性,然后得到见证);此外,如果你写它,你会发现它不依赖于任何计算假设--如果验证成功的概率不可忽略,那么提取也会成功,并且具有可比较的概率。这与验证器的计算能力无关。
编辑:要回答你的后续问题,是的,你的直觉是正确的:如果证明者能产生两个接受的记录,她必须知道$x$,因为$x$可以从这些记录中提取出来。您的问题似乎是,计算上无界的验证程序总是可以计算$x$,因此他总是“知道”$x$ -那么,在安全性分析中考虑无界验证程序又有什么意思呢?
答案在于知识的证明所提供的形式保证。虽然直觉是它保证证明者‘知道’证人,实际的保证是如下:如果证明者产生一个接受记录,那么一个模拟器可以(使用回绕)提取证人。在许多密码协议中,这是至关重要的,因为知识证明是更大系统的一部分:模拟器通常需要从证据中提取证人,以便在模拟协议的其他部分时使用它。现在,在一个只对计算有界的证明器安全的论点中,一个无界的证明器很可能产生一个接受记录,模拟器无法从中提取一个证人--打破知识可靠性所依赖的计算假设。因此,即使这个无界的证明者确实认识一个证人(她是无限的,所以她可以通过暴力获得所有的证人),但她不一定允许模拟器从成功的记录中提取出来,因此对模拟器需要这个证人的更大系统的分析就会崩溃。
然而,在Schnorr的协议中,由于可靠性是无条件的,模拟器总是能够成功地从验证器中提取证人,即使她是无界的。
https://crypto.stackexchange.com/questions/56317
复制相似问题