零知识证明及其应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《网络安全》课程论文
题目零知识证明理论及其应用
学院计算机与信息科学学
软件学院
专业
年级
学号
姓名
指导教师
成绩_____________________
2014年11月16 日
零知识证明理论及其应用
摘要:“零知识证明”-zero-knowledge proof,是由Goldwasser等人在20世纪80年代初提出的。它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。本文介绍了零知识证明的概念,并对零知识证明的一般过程进行分析.同时,阐述零知识证明的性质和优点.最后,综述了零知识证明的应用。
关键字:零知识证明身份认证交互式非交互式
一、引言
21世纪是信息时代,信息已经成为社会发展的重要战略资源,社会的信息化已成为当今世界发展的潮流和核心,而信息安全在信息社会中将扮演极为重要的角色,它直接关系到国家安全、企业经营和人们的日常生活。
密码学的出现给这些安全带来了保证,而大量事实证明,零知识证明在密码学中非常有用。Goldwasser等人提出的零知识证明中,证明者和验证者之间必须进行交互,这样的零知识证明被称为“交互零知识证明”。
80年代末,Blum等人进一步提出了“非交互零知识证明”的概念,用一个短随机串代替交互过程并实现了零知识证明。非交互零知识证明的一个重要应用场合是需要执行大量密码协议的大型网络。在零知识证明中,一个人(或器件)可以在不泄漏任何秘密的情况下,证明他知道这个秘密..如果能够将零知识证明用于验证,将可以有效解决许多问题。
二、概念
“零知识证明”-zero-knowledge proof,是由Goldwasser等人在20世纪80年代初提出的。它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。
零知识证明分为交互式零知识证明和非交互式零知识证明两种类型。
三、零知识证明的一般过程
证明方和验证方拥有相同的某一个函数或一系列的数值.零知识证明的一般过程如下:
1.证明方向验证方发送满足一定条件的随机值,这个随机值称为"承
诺".[1]
2.验证方向证明方发送满足一定条件的随机值,这个随机值称为"挑
战".[1]
3.证明方执行一个秘密的计算,并将结果发送给验证方,这个结果称
为"响应"。
4)验证方对响应进行验证,如果验证失败,则表明证明方不具有他所
谓的"知识",退出此过程。否则,继续从1)开始,重复执行此过程t次。
如果每一次验证方均验证成功,则验证方便相信证明方拥有某种知识。而且此过程中,验证方没有得到关于这个知识的一点信息。
四、零知识证明的性质
根据零知识证明的定义和有关例子,可以得出零知识证明具有以下三条性质:
1.完备性[2].如果证明方和验证方都是诚实的,并遵循证明过程的每
一步,进行正确的计算,那么这个证明一定是成功的,验证方一定能够接受
证明方。
2.合理性[2].没有人能够假冒证明方,使这个证明成功。
3.零知识性[2].证明过程执行完之后,验证方只获得了"证明方拥有
这个知识"这条信息,而没有获得关于这个知识本身的任何一点信息。
五、零知识证明的优点
根据零知识证明及其有关的协议主要有以下优点[3]:
1.随着零知识证明的使用,安全性不会降级,因为该证明具有零知识
性质。
2.高效性.该过程计算量小,双方交换的信息量少。
3.安全性依赖于未解决的数学难题,如离散对数,大整数因子分解,平
方根等。
4.许多零知识证明相关的技术避免了直接使用有政府限制的加密算
法,这就给相关产品的出口带来了优势。
六、零知识证明身份认证
如果我们把合法用户的个人信息看作是证明方的知识,证明方通过零知识证明向验证方证实自己的身份就是零知识身份认证.零知识身份认证
是零知识证明在身份认证方面的应用.目前的零知识身份认证方案主要有
四种:Fiat—Shamir身份认证,Feige-Piat-Shamir身份认证,Guillo—
Ouisquater身份认证和Schnorr身份认证.其中Fiat—Shamir身份认证
是最早提出的,也是最基础的零知识身份认证方案,其他三种方案是对
Fiat—Shamir的改进.下面仅就Fiat—Shamir方案做一个介绍,并证明其
完备性,合理性和零知识性.
(一)Fiat—Shamir身份认证协议过程
协议概要:A在t次迭代过程中向B证明他的身份。
1.一次建立[3]
该阶段主要完成以下两项任务,且在t次迭代过程之前一次完成。
(1)一个可信中心T选择并发布一个类似于RSA的随机模数n,n=pXq.
P,q为两个大素数,可信中心对P和q保密。
(2)申请者A选择一个和12互素的秘密值S,1≤s≤n一1.计算=mod.
并向可信中心T注册v做为他的公钥。
2.协议消息[3]
t轮中的每一轮会产生如下三条信息:
(1)AB:x=,mod.
(2)BA:e∈{0,1}.
(3)AB:y=r?'rood.
3.协议执行[3][4]
以下步骤迭代t轮,轮与轮之间是连续进行的而且是相互独立的.如果这t轮都成功了,则B就接受A的身份.
(1)A选择一个承诺随机数r,1≤r≤n一1.计算x=rmodn,发送给 B.
(2)B随机选择一个挑战比特位e,e∈{0,1},发送给A。
(3)A如果收到e=O,则计算y=r.如果收~lJe=l,则计算Y=modn。
然后向B发送响应Y。
(4)B验证y2=?v.modn.如果验证成功,则接受A的响应,否则拒绝。
(二)Fiat—Shamir身份认证协议的完备性,合理性和零知识性证明
1.完备性证明
(1)当e=O时,y=r,.~lJy2=r2.又=rmod,所以?vx=rmod. 故
Y=?vroodn.此时B验证成功。
(2)当e=1时,Y=rsmodny2=rSmodn.?ye=XoP=rs..所以y2=? vmodn.
此时B也能验证成功。
因此,只要A和B都是真实的.并遵循协议计算正确,则B对A的身份认证将是正
确的.~PFiat—Shamir身份认证协议满足完备性。
2.合理性证明
假设第三方要假冒A.首先该第三方能够顺利通过Fiat—Shamir协议的第一步.然后在第三步中,因为e是随机产生的,~Ue=0或e=l的概率都是1/2.
(1)当e=0时,y=r.此时该第三方只要把他第一步中产生的随机数r发送给B即可通过验证,此次过程假冒成功.
(2)但当e=l时,Y=rsmod.此时该第三方要想计算出正确的Y发送给 B,则其首先要正确的计算出s的值.但s2=vmodn.要想由v求出s,其困难性和分解大整数n.因此第三方得到正确的s值的概率几乎为0.即当e=l时,第三方冒充A会失败
由(1)和(2)可知,协议执行一次,第三方假冒A成功的概率是1/2.
则执行t次,第三方假冒A成功的概率为.当t很大时,第三方假冒A成功的概率可以认为是0.因此Fiat—Shamir身份认证协议满足合理性.
3.零知识性证明
s是秘密值,只有A知道,因此S就是A的身份信息.在此协议执行过程中,验证方B没有得到关于S本身的任何一点信息.B虽然知道v,y和X 的值,但都不能求出正确的S值.原因是求解模n的平方根问题是数学难