据我理解,在Fiat-Shamir启发式中使用随机预言(哈希函数)来生成非交互式ZKP。我想我很清楚互动ZKP在这个计划中是如何运作的,但从高层次的角度来看,我仍然很难理解证据是如何变得非互动性的。
在阿里巴巴洞( Alibaba Cave )的例子中,我理解如何利用交互性来证明一方有一个秘密。我看到了一些例子,证明者对具有统计意义的预定挑战产生了一个散列的解决方案,但验证者如何重现这个挑战的哈希?
发布于 2018-08-20 16:27:28
即使不是所有的交互式零知识证明都依赖于验证者的随机性.以阿里巴巴洞为例,由于艾丽斯无法预测鲍勃希望她走出的道路,从统计学上看,她不太可能伪造证据,尤其是当这个“实验”多次进行时。
如果你不知道,散列函数就是伪随机函数.这意味着,给定相同的输入,它将始终生成相同的输出。密码散列函数是一个单向函数,在该函数中,仅给定Y,在H(X)=Y中创建预图像攻击或简单地说是找X是不可行的。
Fiat-Shamir启发式简单地将验证器的随机性(因此是交互)替换为一个随机预言,或者具体地说,是一个密码散列函数。由于验证程序无法预测加密散列函数的输出,因此提供了该方案工作所必需的随机性。
在这种情况下,Alice想要证明她可以打开洞穴中的门。她进入洞穴,生成一个散列H( C ),并根据输出结果,进入A或B路径,然后从另一条路径出来。Bob没有告诉Alice任何事情,只需检查Alice是否通过了正确的路径(如果H(C)=A或H(C)=B),并且她是通过另一条路径退出的。
你可以通过计算H(C~(C))而不是H(C)来使它更难伪造,其中n是一个从0开始的数字,每次实验进行时增加1,并多次运行实验。
这篇维基百科文章是一个非常好的例子,并给出了一个更具体的例子。
https://crypto.stackexchange.com/questions/61634
复制相似问题