在HAC(10.4.2)的第10章中,我们看到了众所周知的Feige-Fiat-Shamir识别协议,该协议基于零知识证明,使用(假定的)提取模因难以分解的复合物的平方根的难度。我会用自己的话说这个方案(并希望能正确解决)。
让我们从一个更简单的方案开始:让是一个足够大的大小的Blum整数(所以,和均为3 mod 4),使得分解难以处理。由于是Blum整数,因此的元素的一半具有雅可比符号+1,而另一半则具有-1。对于+1元素,其中一半具有平方根,每个具有平方根的元素具有四个,正好一个本身就是一个平方。n = p q p q n Z ∗ n
现在,Peggy 从选择一个随机元素,并设置。然后,她将发送给Victor。接下来是协议:Victor希望验证Peggy知道平方根,Peggy希望向他证明而不对透露任何事实,而她并不知道。Z * n v = s 2 v v s s
- 佩吉(Peggy)在选择一个随机,然后将发送给Victor。Z * n r 2
- 维克托可能将或发送回Peggy。b = 1
- 佩吉将发送给维克多。
Victor可以通过对收到的结果进行平方并与正确的结果进行比较来验证Peggy是否已发送正确的答案。当然,我们重复此交互操作以减少Peggy只是幸运的猜测者的机会。该协议被称为ZK;可以在各个地方找到证明(例如Boaz Barak的讲义)。
当我们扩展该协议以使其更有效时,它称为Feige-Fiat-Shamir;这与上面的非常相似。我们以随机值和随机符号开始Peggy,她将其正方形发布为。换句话说,我们随机否定一些。现在
- 佩吉(Peggy)在选择一个随机,然后将发送给Victor。
- 胜者等概率发送值从回佩吉。
- Peggy将发送给Victor。
我的问题:为什么需要符号位?在括号中,HAC指出,作为一项技术要求,必须证明它们没有泄漏任何秘密信息。Feige-Fiat-Shamir的维基百科页面(该协议错误)表明没有此泄漏。
如果佩吉忽略了迹象,我找不到能从佩吉身上提取任何东西的袭击。