首页 » InfoTech »

零知识证明

2018年9月9日 / 27次阅读
比特币

打开支付宝首页,搜索“529018372”,即可领取红包!可重复领。

零知识证明(Zero—Knowledge Proof),是由S.Goldwasser、S.Micali及C.Rackoff在20世纪80年代初提出的。它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。大量事实证明,零知识证明在密码学中非常有用。如果能够将零知识证明用于验证,将可以有效解决许多问题。

 

万圣节的糖果

故事是这样的,万圣节到来,Alice和Bob分别领取到了一定数量的糖果。但是他们很想他们是否收到了相同数量的糖果,但是又不想让对方知道自己收到了几个糖果,因为如果对方发现自己的糖果数量多了的话就要跟对方分享,所以不能泄露自己糖果数量。

现在我们假设,他们袋子里可能装有10、20、30个或40个糖果。

这时Bob想了个办法,为了比较他们拥有的糖果数量,Bob拿到4条钥匙和盒子,盒子上分别写上10、20、30、40分别对应糖果的数量。Bob最后只保留了自己糖果数量跟盒子数字一样的钥匙,其他3把钥匙就丢了(假设Bob只保留了写着20的盒子的钥匙)。

然后,这个时候,Alice在4张纸上,其中一张写上“+”,另外三张写上“-”。然后,把写有“+”的纸张放到跟自己糖果数量是相同数字的盒子里,其余纸张放到其他盒子(假设Alice把“+”放到写着30的盒子)。这时候,Bob回来后用手上的钥匙打开写着20的盒子,看里面放的纸张写着是“+”还是“-”。

如果纸张上写着“+”,说明两个人的糖果数量一致。

如果纸张上写着“-”,说明两个人糖果数量不一致,但是不知道对方的具体糖果数量。
这里Bob看到纸张上写着“-”,这意味着两人的糖果数量不一样,但是Bob无法知道Alice的糖果数量。这时候,Alice看到Bob手上拿着一张写“-”的值,那她也知道两人的糖果数量不一样,但是也无法知道对方拥有糖果的数量。

这个过程就是一个零知识证明。

Alice不知道Bob打开的是哪个数量的箱子,Bob也不知道Alice在哪个数量的箱子里放的+号,但是都看到了Bob手中的那个-号。

这个例子预先设定了几个可能的数字。

 

洞穴

接下来,我们看另一个更经典的洞穴例子,如下图所示。

R和S之间存在一道密门,并且只有知道咒语的人才能打开。

Peggy知道咒语并想对Victor证明,但证明过程中不想泄露咒语。他该怎么办呢?

1)首先Victor走到P,Peggy走到R或者S。

2)Victor走到Q,然后让Peggy从洞穴的一边或者另一边出来。

3)如果Peggy知道咒语,就能正确地从Victor要求的那一边出来。

Victor重复上述过程很多次,直到他相信Peggy确实知道打开密门的咒语为止。

在这里,Peggy是证明方,Victory是验证方。Peggy通过上述方法证明了自己确实知道咒语,但是没有向Victory透露任何咒语的相关信息,这一过程也就是零知识证明。

零知识证明(洞穴)

零知识证明(洞穴)

 

零知识证明的特点

根据零知识证明的定义和有关例子,可以得出零知识证明具有以下三个特点:

1)完备性。如果证明方和验证方都是诚实的,并遵循证明过程的每一步,进行正确的计算,那么这个证明一定是成功的,验证方一定能够接受证明方。

2)合理性。没有人能够假冒证明方,使这个证明成功。

3)零知识性。证明过程执行完之后,验证方只获得了“证明方拥有这个知识”这条信息,而没有获得关于这个知识本身的任何一点信息。

本文链接:http://www.maixj.net/ict/lingzhishi-18856
云上小悟 麦新杰(QQ:1093023102)

相关文章

评论是美德

《零知识证明》有1条评论

无力满足评论实名制,评论对非实名注册用户关闭,有事QQ:1093023102.

  • 麦新杰

    数字签名就是一种零知识证明:使用私钥来证明,但是并不暴露私钥。 [ ]


前一篇:
后一篇:

栏目精选

云上小悟,麦新杰的独立博客

Ctrl+D 收藏本页

栏目

AD

ppdai

©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

网站二维码
go to top