为什么没有符号位的Feige-Fiat-Shamir不会为零知识?


12

HAC(10.4.2)的第10章中,我们看到了众所周知的Feige-Fiat-Shamir识别协议,该协议基于零知识证明,使用(假定的)提取模因难以分解的复合物的平方根的难度。我会用自己的话说这个方案(并希望能正确解决)。

让我们从一个更简单的方案开始:让是一个足够大的大小的Blum整数(所以,和均为3 mod 4),使得分解难以处理。由于是Blum整数,因此的元素的一半具有雅可比符号+1,而另一半则具有-1。对于+1元素,其中一半具有平方根,每个具有平方根的元素具有四个,正好一个本身就是一个平方。n = p q p q n Z nnn=pqpqnZn

现在,Peggy 从选择一个随机元素,并设置。然后,她将发送给Victor。接下来是协议:Victor希望验证Peggy知道平方根,Peggy希望向他证明而不对透露任何事实,而她并不知道。Z * n v = s 2 v v s ssZnv=s2vvss

  1. 佩吉(Peggy)在选择一个随机,然后将发送给Victor。Z * n r 2rZnr2
  2. 维克托可能将或发送回Peggy。b = 1b=0b=1
  3. 佩吉将发送给维克多。rsb

Victor可以通过对收到的结果进行平方并与正确的结果进行比较来验证Peggy是否已发送正确的答案。当然,我们重复此交互操作以减少Peggy只是幸运的猜测者的机会。该协议被称为ZK;可以在各个地方找到证明(例如Boaz Barak的讲义)。

当我们扩展该协议以使其更有效时,它称为Feige-Fiat-Shamir;这与上面的非常相似。我们以随机值和随机符号开始Peggy,她将其正方形发布为。换句话说,我们随机否定一些。现在ks1skt1=±1,tk=±1v1=t1s12,,vk=tksk2vi

  1. 佩吉(Peggy)在选择一个随机,然后将发送给Victor。rZnr2
  2. 胜者等概率发送值从回佩吉。kbi{0,1}
  3. Peggy将发送给Victor。rΠi=1ksibi

我的问题:为什么需要符号位?在括号中,HAC指出,作为一项技术要求,必须证明它们没有泄漏任何秘密信息。Feige-Fiat-Shamir的维基百科页面(该协议错误)表明没有此泄漏。ti

如果佩吉忽略了迹象,我找不到能从佩吉身上提取任何东西的袭击。

Answers:


8

Feige-Fiat-Shamir(FFS)识别协议是知识证明(PoK),其中证明者(Peggy)证明她的知识是给验证者(Victor)的给定输入的平方根。

FFS希望将PoK与语言成员资格证明区分开来,其中Peggy证明输入具有某种属性(更正式地说,输入属于某种语言)。

如果不使用负号,则输入可能没有任何平方根。例如,数字20没有任何平方根mod21。由于区分正方形和非正方形是一个著名的难题,因此FFS通过允许输入为某个数字平方的正负来避免它。用他们自己的话(改变了一点):

+ 1 mod nvivi +1modnsivi

通过无限制的输入零知识证明,它们表示ZK PoK,其相应的语言成员资格证明是微不足道的。即V可以自己确定输入是某个平方的正负(只需检查Jacobi符号即可)。


感谢您的回答,但我仍然不明白:无符号的Jacobi符号为+1。带有这些符号的Jacobi符号为+1。您在上面说过:“如果我们不使用负号,则输入可能没有任何平方根。” 那怎么可能?验证者的输入是平方的列表(假设诚实的证明者)始终具有平方根。
Fixee 2011年

第二个问题:您是说标志只是为了通过证明而存在吗?如果省略它们,是否有实际的攻击?
Fixee 2011年

@Fixee:假设作弊证明者不按照协议选择其公钥();说一个Jaccobi符号为+1的随机值。(较差的)验证者无法说出是否具有平方根。唯一的方法是运行协议,并从证明者那里获得帮助。也就是说,证明者既证明了自己对的了解,又给出了语言隶属度的证明(即属于二次残差的条幅QR。)由于某种原因,FFS喜欢分离这种类型的证明来自“无限制输入”的证明。我认为这仅仅是技术性的。vivisivi
MS Dousti 2011年
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.