零知识证明与身份识别技术.ppt

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
安全协议概述 安全协议概述 安全协议概述 零知识证明 Alice: “我知道联邦储备系统计算机的口令” Bob: “不,你不知道” Alice:我知道 Bob:你不知道 Alice:我确实知道 Bob:请你的证实这一点 Alice:好吧,我告诉你。(她悄悄说出了口令) Bob:太有趣了!现在我也知道了。我要告诉《华盛顿邮报》 Alice:啊呀! 零知识证明的概念 设P(Prover)表示掌握某些信息,并希望证实这一事实的实体,设V(Verifier)是验证这一事实的实体。 某个协议向V证明P的确掌握某些信息,但V无法推断出这些信息是什么,我们称P实现了最小泄露证明(Minimum Disclosure proof) 。 如果V除了知道P能够证明某一事实外,不能够得到其他任何知识,我们称P实现了零知识证明(Zero Knowledge proof) ,相应的协议称作零知识协议。 零知识证明的概念 在最小泄露协议中满足下述两个性质: (1)完备性(Completeness):如果P的声明是真的,则V以绝对优势的概率接受P的结论; (2)有效性(Soundness):如果P的声明是假的,则V以绝对优势的概率拒绝P的结论;(正确性) 在零知识协议中,除满足上述两个条件以外,还满足下述性质: (3)零知识性(Zero-knowledge):无论V采取任何手段,当P的声明是真的,P不违背协议时,V除了接受P的结论以外,得不到其他额外的信息。 设P知道咒语, 可打开C和D之间的秘密门,不知道者都将走向死胡同中 (1) V站在A点; (2) P进入洞中任一点C或D; (3) 当P进洞之后,V走到B点; (4) V叫P:(a)从左边出来,或(b)从右边出来; (5) P按要求实现(以咒语,即解数学难题帮助); (6) P和V重复执行(1)~(5)共n次。 若A不知咒语,则在B点,只有50%的机会猜中B的要求,协议执行n次,则只有2-n的机会完全猜中,若n=16,则若每次均通过B的检验,B受骗机会仅为1/65536,到n=100左右就基本可以排除被猜中的可能性了 平方根问题的零知识 Fiat-Shamir识别方案(Fiat,Shamir, 1986) 1.参数选取 选定一个随机模n=pq, p,q是不同的大素数.产生随机数s,使得gcd(s,n)=1且s2=v mod n. n和v是公开的,p, q, s作为示证者P的秘密。 (注意找到mod n的平方根与分解n等价) 2.一次证明过程 (1) P取随机数r ( n),计算x=r2 mod n ,将x发送给验证者V; (2) V将一随机比特b发送给P; (3) 若b=0, 则P将r发送给V;若b=1,则P将y=rs发送给V; (4) 若b=0,则V证实x=r2 mod n ,但不能证明P知道s;若b=1,则V证实xv=y2 mod n,从而证明P知道s。 3.P和V重复执行t次过程2,直到V相信P知道s为止。 平方根问题的零知识 假定:P的秘密是xq,p、q和x对应的值b=px mod q都是公开的 重复以下步骤m次: P选取某一个kq,计算commit= pk mod q,发送commit给V V通过抛硬币的方式选择challenge是0或1发送给P 如果challenge=0,P计算Response=k;如果challenge=1,P计算Response=(k+x)mod q,发送Response给V 如果challenge=0,V验证presponse mod q是否是commit;如果challenge=1, V验证presponse mod q是否是commit · b 如果m次检验都成功,则V接受证明 完备性 如果P和V遵守协议,且P知道x,很容易证明V可以接收P的证明,所以协议是完备的。 正确性 P不知道x,他可以猜测Challenge,如果为0,则一开始就发送commit=pk mod q给V;如果为1,则一开始就发送commit=(pk mod q)/b给V。之后总是在第三步发送k给V 。每次受骗概率为1/2,但连续m次受骗的概率将仅为2-m V无法知道P的秘密,因为V没有机会产生(0,1)以外的信息,根据离散对数的单向性质可以推断V无法获知新的信息。 假定:P的秘密是xq,存在一个单向函数f,满足条件:f(x*y)=f(x)f(y),V可以知道X=f(x) 重复以下步骤m次: P选取某一个k,计算commit=f(k),发送commit给V V通过抛硬币的方式选择challenge是0或1发送给P 如果challenge=0,P计算Response=k;如果challenge=1,P计算Response=k*x,发送Response给V 如果challen

文档评论(0)

zhuliyan1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档