为什么没有符号位的Feige-Fiat-Shamir不会为零知识?
在HAC(10.4.2)的第10章中,我们看到了众所周知的Feige-Fiat-Shamir识别协议,该协议基于零知识证明,使用(假定的)提取模因难以分解的复合物的平方根的难度。我会用自己的话说这个方案(并希望能正确解决)。 让我们从一个更简单的方案开始:让是一个足够大的大小的Blum整数(所以,和均为3 mod 4),使得分解难以处理。由于是Blum整数,因此的元素的一半具有雅可比符号+1,而另一半则具有-1。对于+1元素,其中一半具有平方根,每个具有平方根的元素具有四个,正好一个本身就是一个平方。n = p q p q n Z ∗ nnnnn=pqn=pqn=pqpppqqqnnnZ∗nZn∗Z_n^* 现在,Peggy 从选择一个随机元素,并设置。然后,她将发送给Victor。接下来是协议:Victor希望验证Peggy知道平方根,Peggy希望向他证明而不对透露任何事实,而她并不知道。Z * n v = s 2 v v s ssssZ∗nZn∗Z_n^*v=s2v=s2v=s^2vvvvvvssssss 佩吉(Peggy)在选择一个随机,然后将发送给Victor。Z * n r 2rrrZ∗nZn∗Z_n^*r2r2r^2 维克托可能将或发送回Peggy。b = 1b=0b=0b=0b=1b=1b=1 佩吉将发送给维克多。rsbrsbrs^b Victor可以通过对收到的结果进行平方并与正确的结果进行比较来验证Peggy是否已发送正确的答案。当然,我们重复此交互操作以减少Peggy只是幸运的猜测者的机会。该协议被称为ZK;可以在各个地方找到证明(例如Boaz Barak的讲义)。 当我们扩展该协议以使其更有效时,它称为Feige-Fiat-Shamir;这与上面的非常相似。我们以随机值和随机符号开始Peggy,她将其正方形发布为。换句话说,我们随机否定一些。现在kkks1⋯sks1⋯sks_1\cdots s_kt1=±1,⋯tk=±1t1=±1,⋯tk=±1t_1 = \pm 1, \cdots t_k = \pm 1v1=t1s21,⋯,vk=tks2kv1=t1s12,⋯,vk=tksk2v_1=t_1s_1^2, \cdots, v_k = t_ks_k^2viviv_i …