零知识证明技术
零知识证明 金融应用场景

零知识证明金融应用场景随着金融科技的快速发展,金融领域出现了越来越多的新技术和新应用。
其中,零知识证明技术是一种非常有前景的技术,它可以在保护用户隐私的同时,提高金融交易的效率和安全性。
本文将从零知识证明的基本原理、金融应用场景以及未来发展趋势等方面进行详细介绍。
一、零知识证明的基本原理零知识证明(Zero-Knowledge Proof,简称ZKP)是一种密码学技术,它可以证明某个命题为真,同时不泄露任何有关这个命题的信息。
具体来说,零知识证明的基本原理是通过构造一种难以被攻破的数学问题,来证明某个命题的正确性。
在这个过程中,证明者不需要向验证者透露任何有关这个问题的信息,而验证者也可以通过验证这个问题的正确性来确认命题的真实性。
因此,零知识证明技术可以在不暴露任何隐私信息的情况下,完成安全的交易验证。
二、零知识证明在金融领域的应用场景1. 匿名交易在传统的金融交易中,为了确认交易的真实性,通常需要对交易双方的身份信息进行验证。
然而,在某些情况下,交易双方可能不希望透露自己的身份信息,例如进行慈善捐款、购买敏感商品等。
这时,零知识证明技术可以帮助交易双方在不暴露身份信息的情况下完成交易。
具体来说,交易双方可以使用零知识证明技术来证明自己拥有足够的资金或者达成某个交易条件,而无需透露自己的身份信息。
2. 银行信用评估在银行信用评估中,通常需要对客户的个人信息、财务状况等进行评估,以确定客户是否有资格获得贷款或信用卡等金融产品。
然而,客户的个人信息涉及隐私问题,如果这些信息被泄露,将会对客户造成严重的影响。
因此,零知识证明技术可以帮助银行在不暴露客户隐私的情况下,对客户的个人信息进行评估。
具体来说,客户可以使用零知识证明技术来证明自己的收入、负债等信息,而无需透露自己的身份信息和具体的财务状况。
3. 区块链交易在区块链交易中,为了保证交易的真实性和可追溯性,通常需要对交易信息进行验证和记录。
然而,区块链交易的公开性和透明度也会导致交易信息的泄露和隐私问题。
互联网安全密码学中的零知识证明技术

互联网安全密码学中的零知识证明技术互联网的快速发展已经成为现代社会不可或缺的一部分。
然而,随着网络的普及,个人隐私和数据安全问题也越来越受到关注。
为了保护用户的隐私与数据安全,互联网安全密码学逐渐崭露头角。
在密码学的研究中,零知识证明技术是一种重要的安全保障手段。
一、什么是零知识证明技术?零知识证明技术,简称ZKP(Zero-Knowledge Proof),是一种密码学中的技术,旨在通过进行证明来验证某个主张的正确性,同时不泄露任何与该主张有关的信息。
换句话说,零知识证明技术可以让证明者向验证者证明某个陈述的正确性,而验证者只会得到“是”或“否”的答案,而不会知道具体的过程和信息。
零知识证明技术的重要性在于,它确保了数据的安全性和用户的隐私,同时在网络中的各方之间建立了信任和合作。
例如,在电子交易中,购买方可以向卖方证明自己具备付款能力,同时不泄露任何与其财务状况相关的信息。
二、零知识证明技术的应用领域1. 隐私保护隐私保护是零知识证明技术被广泛应用的领域之一。
例如,在医疗健康领域,患者可以使用零知识证明技术向医生或医疗机构证明自己的身份和疾病情况,而不必泄露自己的个人信息。
这种方式既保护了患者的隐私,又实现了有效的医疗协作。
2. 身份认证零知识证明技术也可以应用于身份认证领域。
传统的身份认证方法往往需要用户提供个人信息来验证身份,但这会引发用户隐私泄露的风险。
零知识证明技术可以通过证明你拥有某个特定属性,如成年身份或大学学位,而不必泄露任何关于自己的其他信息。
这种方式可以有效保护用户的隐私,减少身份盗窃等问题的发生。
3. 数字货币和区块链在数字货币和区块链领域,零知识证明技术被广泛运用于实现交易的匿名性。
通过使用零知识证明技术,用户可以证明自己拥有足够的资金进行交易,而无需透露自己的真实身份和资产信息。
这可以有效地保护用户的交易隐私,并增强数字货币的使用安全性。
三、零知识证明技术的算法现代密码学中,零知识证明技术具体使用了一些算法来实现。
零知识证明

在最小泄露协议中零知识证明需要满足下述两个性质。 (1)正确性。P无法欺骗V。换言之,若P不知道一个定理的证明方法,则P使V相信他会证明定理的概率很低。 (2)完备性。V无法欺骗P。若P知道一个定理的证明方法,则P使V以绝对优势的概率相信他能证明。 在零知识协议中,除满足上述两个条件以外,还满足下述的第三个性质。 (3)零知识性。V无法获取任何额外的知识。 我们把性质(1)和(2)称为零知识证明的正确性和完备性,而性质(3)称为零知识性。
设P表示掌握某些信息,并希望证实这一事实的实体,设V是证明这一事实的实体。假如某个协议向V证明P的 确掌握某些信息,但V无法推断出这些信息是什么,我们称P实现了最小泄露证明。不仅如此,如果V除了知道P能 够证明某一事实外,不能够得到其他任何知识,我们称P实现了零知识证明,相应的协议称作零知识协议。
性质
引入
顾名思义,零知识证明就是既能充分证明自己是某种权益的合法拥有者,又不把有关的信息泄露出去——即 给外界的“知识”为“零”。其实,零知识证明并不是什么新东西,早在16世纪的文艺复兴时期,意大利有两位 数学家为竞争一元三次方程求根公式发现者的桂冠,就采用了零知识证明的方法。当时,数学家塔尔塔里雅和菲 奥都宣称自己掌握了这个求根公式,为了证明自己没有说谎,又不把公式的具体内容公布出来(可能在当时数学公 式也是一种技术秘密),他们摆开了擂台:双方各出30个一元三次方程给对方解,谁能全部解出,就说明谁掌握 了这个公式。比赛结果显示,塔尔塔里雅解出了菲奥出的全部30个方程,而菲奥一个也解不出。于是人们相信塔 尔塔里雅是一元三次方程求根公式的真正发现者,虽然当时除了塔尔塔里雅外,谁也不知道这个公式到底是个什 么样子。从这个故事,我们可以初步了解零知识证明的概念。
属性
零知识证明需要满足三个属性。 1、如果语句为真,诚实的验证者(即:正确遵循协议的验证者)将由诚实的证明者确信这一事实。 2、如果语句为假,不排除有概率欺骗者可以说服诚实的验证者它是真的。 3、如果语句为真,证明者的目的就是向验证者证明并使验证者相信自己知道或拥有某一消息,而在证明过程 中不可向验证者泄漏任何有关被证明消息的内容。 零知识证明并不是数学意义上的证明,因为它存在小概率的误差,欺骗者有可能通过虚假陈述骗过证明者。 换句话来说,零知识证明是概率证明而不是确定性证明。但是也存在有技术能将误差降低到可以忽略的值。 零知识的形式定义必须使用一些计算模型,最常见的是图灵机的计算模型。
利用zokrate求hash的零知识证明

一、研究背景在当今的信息时代,数据安全和隐私保护已经成为了全球范围内的热门议题。
尤其是在金融、医疗、电子商务等领域,对于数据的安全性和隐私性要求越来越高。
随着区块链技术的快速发展,人们对于数据隐私的保护提出了更高的要求。
在这种背景下,零知识证明技术应运而生,成为了解决数据隐私和安全性问题的重要手段之一。
二、零知识证明概述零知识证明(Zero-Knowledge Proof)是指一种可以证明某个断言是真实的,而不需要透露任何与该断言有关的信息的证明。
简单来说,就是证明者可以证明自己掌握了某种信息,却不会泄漏任何关于这种信息的细节。
这种技术在实际应用中具有广泛的价值,特别是在密码学、计算机安全和区块链技术等领域。
三、 Zokrates介绍Zokrates是一种基于区块链的零知识证明工具,它可以用于构建、编译和部署可验证的智能合约。
Zokrates支持的语言是一种称为Zokrates DSL的专门语言,它允许用户编写和部署零知识证明智能合约,从而实现对数据隐私和安全性的保护。
四、利用Zokrates求Hash的零知识证明1. 编写Zokrates DSL代码我们需要编写Zokrates DSL代码来描述我们需要证明的断言,通常包括输入的数据、证明的信息和断言的真实性。
在求Hash的零知识证明中,我们需要描述输入的数据(即需要进行Hash运算的原始数据)和Hash的结果。
下面是一个简单的Zokrates DSL代码示例:```def m本人n(private field a):field resultHash = sha256(a)return resultHash```在这段代码中,我们定义了一个名为m本人n的函数,输入参数为私有域a,表示原始数据。
然后使用sha256函数计算a的Hash值,并返回结果。
2. 编译Zokrates DSL代码接下来,我们需要使用Zokrates工具对编写好的Zokrates DSL代码进行编译,生成对应的验证智能合约。
zkr 标准

ZKR标准ZKR(Zero Knowledge Recognition)标准是一种密码学标准,旨在提供一种安全、高效、可验证的身份识别方法,同时保护用户的隐私。
以下是关于ZKR标准的详细介绍:1. 概述ZKR标准是一种基于零知识证明(Zero-Knowledge Proof,简称ZKP)的身份识别标准。
零知识证明是一种密码学技术,它允许一个证明者向验证者证明某个陈述的真实性,而无需向验证者透露任何其他信息。
ZKR标准就是利用零知识证明的原理,实现用户身份的自我证明和验证,同时保证用户的身份信息和密码等敏感信息不会被泄露。
2. ZKR标准的特点(1)安全性:ZKR标准采用先进的密码学技术和算法,保证了身份识别的安全性和可信度。
在ZKR系统中,用户的密码和身份信息不会被存储或传输,大大降低了被攻击和泄露的风险。
(2)高效性:ZKR标准采用了高效的零知识证明算法和协议,能够在短时间内完成身份验证过程,提高了系统的性能和用户体验。
(3)可扩展性:ZKR标准支持多种应用场景和平台,可以方便地与其他系统进行集成和交互。
同时,ZKR标准也支持大规模用户和并发请求的处理。
(4)隐私保护:ZKR标准充分考虑了用户的隐私保护需求,采用零知识证明等密码学技术,确保用户的身份信息和密码等敏感信息不会被泄露给其他实体或系统。
3. ZKR标准的实现(1)技术架构:ZKR标准采用分层架构设计,包括应用层、协议层、算法层和数据层。
各层之间相互独立,方便进行升级和维护。
(2)协议流程:ZKR标准定义了一系列的协议流程,包括用户注册、登录、找回密码等操作。
这些协议流程基于零知识证明技术实现,确保了用户身份的合法性和安全性。
(3)算法实现:ZKR标准采用了先进的密码学算法和协议,包括零知识证明算法、加密算法、数字签名算法等。
这些算法的实现保证了系统的安全性和性能。
(4)数据存储:ZKR标准采用了分布式数据存储方案,将用户数据分散存储在多个节点上,确保了数据的安全性和可用性。
零知识证明技术的实际应用与安全性分析

零知识证明技术的实际应用与安全性分析零知识证明技术是一种用于验证某个声明的正确性,同时不泄露任何有关该声明的其他信息的密码学工具。
该技术可被广泛应用于许多领域,例如密码学、网络安全、隐私保护和区块链等。
本文将探讨零知识证明技术的实际应用,并分析其安全性。
一、实际应用1.密码学领域:零知识证明技术可用于验证公钥加密方案的安全性。
例如,可以证明一种加密算法的秘钥长度满足安全要求,而不泄露该算法的具体细节。
2.网络安全:在网络通信中,确保通信的安全性非常重要。
零知识证明技术可以用于验证用户的身份,从而防止恶意用户的欺骗行为。
通过使用零知识证明技术,服务器可以证明其拥有某个秘密,而不需要直接揭示该秘密。
3.隐私保护:在很多情况下,用户不希望将其个人信息披露给他人,同时又需要验证某些声明的真实性。
零知识证明技术可以满足这一需求。
例如,在数字身份验证中,用户可以使用零知识证明技术证明自己的年龄在某个范围内,而不需要透露具体的年龄。
4.区块链:区块链是一种去中心化的分布式账本技术,而零知识证明技术可以用于增强其隐私性和安全性。
通过使用零知识证明技术,参与方可以证明自己满足某个条件,而不需要公开其具体数据。
这在一些隐私敏感的应用中尤为重要,例如匿名交易和身份验证。
二、安全性分析1.完备性:零知识证明技术必须保证如果声明是正确的,那么验证者相信该声明的概率非常高。
这意味着证明者必须能够生成一个有效的证明,并将其传递给验证者。
从理论上来说,完备性要求能够通过一个无限容量的计算设备进行检查。
2.可靠性:零知识证明技术应该确保如果甲方是一个诚实的证明者,那么乙方不会被欺骗相信一个错误的声明。
也就是说,诚实的证明者不会能够通过生成错误的证明来欺骗验证者。
3.零知识性:零知识证明技术应该确保验证者不能从证明者提供的信息中获得任何与声明相关的附加信息。
也就是说,验证者在验证声明的真实性时只能得知声明的真实性,而不能获得与其相关的其他信息。
零知识证明

零知识证明零知识证明是一种密码学中的重要概念,指的是在一个交互式的协议中,证明者可以向验证者证明某个命题的正确性,同时不泄露任何额外的信息,除了证明该命题的正确性。
零知识证明的作用在于提高信息安全性和保护个人隐私。
它可以应用于各种场景,如电子商务中的身份认证、密码协议中的密钥交换等。
零知识证明的基本协议是三个步骤的互动过程:证明者向验证者发送一系列的消息,验证者根据收到的消息进行验证,最后得出结论。
具体步骤如下:第一步,证明者选择一些随机值,并计算出基于这些随机值的证明。
然后,证明者将这些随机值和证明发送给验证者。
第二步,验证者选择一个随机比特值,并发送给证明者。
证明者根据验证者发送的随机比特值来回答验证者的挑战。
第三步,验证者根据证明者的回答验证证明是否正确。
如果验证成功,则可以得出结论。
零知识证明具有如下特点:1. 完备性:如果命题为真,那么验证者能够接受证明者的证明,并得出正确结论。
2. 零知识性:证明者在证明过程中,不泄露任何关于证明技巧的信息。
除了命题正确与否以外,验证者无法获取到任何其他额外的信息。
3. 亮针度:证明者和验证者之间的交互是多轮的,每一轮都是以随机方式选择的,防止攻击者对信息进行分析和破译。
零知识证明的实现基于零知识证明系统,该系统由一个证明者和一个验证者组成。
通常,证明者拥有一些证据,他希望验证者相信这些证据是正确的,而验证者则希望证明者确实拥有这些证据。
在实际应用中,零知识证明可以用于匿名认证、电子投票等场景。
比如在匿名认证中,用户可以向第三方机构证明自己拥有某种身份或资格,同时不需要泄露任何个人信息。
在电子投票中,零知识证明可以用于证明某个投票者投票的正确性,而无需泄露该投票者的具体选择。
总之,零知识证明作为一种强大的密码学工具,可以在保护用户个人隐私的同时实现信息的安全验证。
它在各种场景中具有广泛的应用前景,并将在未来进一步推动信息安全和隐私保护的发展。
零知识证明的定义和作用

零知识证明的定义和作用小伙伴们!今天咱来聊聊零知识证明这个挺有意思的玩意儿哈。
一、零知识证明的定义。
零知识证明呀,简单来说,就是一种特殊的证明方法。
想象一下哈,你想向别人证明你知道某个秘密,但是呢,你又不想把这个秘密具体内容透露出去,这时候零知识证明就派上用场啦。
打个比方吧,就好比你有一把神奇的钥匙,能打开一个特别的宝箱。
你想让别人知道你有这把钥匙,也就是你知道怎么打开宝箱,但你又不想把钥匙给别人看或者告诉别人钥匙长啥样。
那怎么办呢?通过零知识证明的方法,你可以在不展示钥匙的情况下,让别人相信你确实有打开宝箱的能力。
从专业一点的角度来讲呢,零知识证明是一种密码学技术。
它允许证明者在不向验证者透露任何有用信息的情况下,证明某个陈述是真实的。
就好像你在跟别人玩一个猜谜游戏,你能让对方相信你知道答案,但又不把答案直接告诉对方。
这种技术在很多领域都有很重要的应用哦。
二、零知识证明的作用。
1. 保护隐私。
这可是零知识证明一个超级重要的作用哈。
在当今这个信息爆炸的时代,隐私保护变得越来越重要啦。
比如说,你在网上进行一些交易或者登录某些平台的时候,平台可能需要验证你的身份或者确认你有没有某种权限。
传统的方法可能就需要你提供很多个人信息,像身份证号、密码啥的。
但是有了零知识证明,你就可以在不透露这些敏感信息的情况下,让平台相信你是合法的用户。
就好比你去住酒店,不用把家里的钥匙给前台看,就能证明你是这个房间的主人,是不是很酷呀?2. 增强安全性。
在网络安全方面,零知识证明也发挥着巨大的作用哦。
比如说,在区块链技术中,很多交易需要验证身份和交易的合法性。
如果使用传统的验证方法,可能会存在信息泄露的风险,黑客就有可能利用这些漏洞进行攻击。
但是零知识证明可以在不泄露交易细节的情况下,确保交易的合法性和安全性。
这就像是给你的交易上了一把隐形的锁,只有合法的人才能打开,其他人就算知道有这把锁,也不知道怎么开。
3. 提高效率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.2 交互证明系统和零知识证明协议(续) 由于任何有能力冒充A的一方都等同于知道 A的秘密知识(M可以在多项式时间内来计算 它),正确属性保证了协议确实提供了对知 识的证明–知识等价于询问的正确应答。正 确属性因此阻止了不诚实的证明者使诚实 的验证者相信知识的可能。
1.2 交互证明系统和零知识证明协议(续) 定义3 (零知识属性) 一个知识证明的协议 有零知识属性,如果协议可模拟如下功能: 存在一个平均多项式算法(模拟器),它可 以不和真实的证明者交互就可以产生一些 证明必要的交互消息。这些消息副本与同 真实的证明者交互产生的结果不可区分。
许多年前,有报道称小偷在一个超市中放 置假的ATM机。当人们将银行卡插入机器 并输入鉴别身份的秘密时,机器将这些信 息记录下来并反馈消息说机器不能接受这 种类型的银行卡。小偷接下来就可以制造 假的银行卡,并使用得到的身份鉴别秘密 信息到真的ATM机上提取现金。
如何避免这一情况发生?在很多情况下需 要出示鉴别身份的秘密或口令来完成交易。 任何人在得到这个秘密再附加一些(几乎公 开的)身份信息之后,就可以冒充这个人。 我们需要解决的问题就是使用秘密但在使 用的过程中不留给攻击者任何可以重复使 用的信息。这就产生了零知识证明技术。
1.3 零知识证明协议的一般结构(续) 根据协议设计,只有知 道秘密知识的合法 A才
有能力回答所有根据公 开证据提出的问题,而 回答一个问题,并不能 帮助分析A的秘密知识。 B接着选择一个问题提交 给A,A做出回答,而 B检查是否正确。协议是 一个循环执行过程,如 果需要,就可以通过控 制循环次数降低欺骗成 功 的概率。
1.2 交互证明系统和零知识证明协议(续) 定义1 (完备属性) 一个交互证明(协议)是完备 的,如果给定一个诚实的证明者和认证者, 协议就能以压倒的概率获得成功(也就是,验 证者接受证明者的宣称)。 评论. 完备性可以看作是协议在诚实的参与者 执行的情况下的一般要求。对压倒的概率的 定义依赖具体应用,但通常隐含失败的概率 无实际意义。
2 Fiat-Shamir鉴别协议(续)
评述. (续) (2) 答案y r是独立于A的秘密s,然而答案y r s (mod n)也没有提供任何关于 s的信息,因为 B并不知道随机数 r。由A产生的信息对 ( x, y )恰 好可以为验证者 B自己很好的模拟:随机 选择y, 定义x y 2或y 2 /v (mod n)。虽然这并不是 A建立 信息对的方法,但对 ( x, y )的概率分布实际上与 A产生的对不可区分,这 就是零知识属性。尽 管可以模拟证明过程, B并不能冒充A,因为B并 不能预测实时问题。
本讲提要
零知识证明概念总揽 Fiat-Shamir鉴别协议 Feige-Fiat-Shamir鉴别协议 GQ鉴别协议 Schnorr鉴别协议
1 零知识证明概念总揽
1.1 思想
1.1 思想(续) Peggy知道这个洞穴的秘密。她想对Victor 证明这一点,但她不想泄露咒语。下面是 她如何使Victor相信的过程: (1) Victor站在A点。 (2) Peggy一直走进洞穴,到达点C或点D。 (3) 在Peggy消失在洞穴中之后,Victor 走 到点B。
2 Fiat-Shamir鉴别协议
协 议 1Fiat - Shamir鉴别协议 摘 要:证明者A通过执行一个 3轮协议t次向验证者B证明 其掌握知识s 。 (1) 一次性建立过程 . (1.1)信任中心T选择并公布一个 RSA 型的模n p q,但将 素数p和q保密。 (1.2)每一个声称者 A选择一个与n互素的秘密s, 1 s n 1, 计算v s 2 (mod n),并向T登记v作为公开密钥。 (2) 协议执行. 如下的步骤循环执行 t次(连续且独立)。如果t 次都成功完成, B接受证明认为 A掌握秘密s。
1.4 零知识协议VS. 非对称协议(续) (4) 没有证明的假设:许多零知识协议 (“证 明知识”)本身依赖于和非对称技术一样的 未经证明的假设(例如,分解的困难)。 (5) 零知识基与零知识:虽然有着严谨的理 论支持,许多基于零知识概念的技术在实 践中缺少形式化的零知识和/或正确属性的 支撑,导致这一切的是出于效率或其它原 因的参数选择问题。事实上,许多这类概 念是渐进的,并不能直接应用到实用协议 中来。
1.2 交互证明系统和零知识证明协议(续) (3) 零知识属性(定义3)不能保证协议是安 全的 (也就是,获得秘密知识的可能性可 以忽略)。同样,正确属性(定义2)也不能 保证协议安全。这两个属性只有在攻击 者面临计算困难问题的时候才有意义。
1.3 零知识证明协议的一般结构
A B:证据 A B :提问 A B:回答 以上描述了一大类三次 交互零知识协议的一般 结构:证明者随机的选 择一个在事先定义的集 合上的元素做一个秘密 承诺,并从中计算相关 的公开证据。这提供了 一个每一次协议执行的 随机性,并限定了 A在本次协议执行中所能 回答 问题的集合,因此,也 就限定了将来的可能答 案。
3 Feige-Fiat-Shamir鉴别协议(续)
协 议 2Feige - Fiat - Shamir鉴别协议(续) (2.3) A向T通过非密码手段 (例如, 照片) 认证自己的身份, 这样T就 将(v1, . . . ,vk;n)登记为A的公开密钥,当然只有 A知道自己的秘 密密钥( s1, . . . ,sk )。这是一次性的建立过 程。 (3) 协议执行. 下面的步骤执行 t 次;B将接受A的身份,如果全部 t轮都能成功。假定 B知道A的真实公开密钥 (v1, . . . ,vk;n)。 (3.1) A选择一个随机整数 r, 1 r n 1, 并计算x r 2 (mod n),并 发送x (证据) 给B。 (3.2)B发送给A(提问)一个k比特向量(e1, . . . ,ek )。 (3.3) A计算并发送给B (答案):y r j 1 s j j (modn) (r和定义在提
1.4 零知识协议VS. 非对称协议 (1) 使用不退化:协议具有零知识属性因此不 会因为重复使用而降低安全性并可阻止选择 消息攻击。这可能是零知识技术在实践中最 吸引人之处。 (2) 无需加密:许多零知识技术都不需要使用 加密算法。 (3) 效率:虽然一些零知识基技术非常有效, 但是具有零知识属性的协议通常比没有零知 识属性的非对称协议需要更多通信和计算开 销。更为有效的实用零知识基方案通常源于 交互证明的特性,而不是它的零知识特性。
2 Fiat-Shamir 鉴别协议(续)
协 议 1Fiat - Shamir鉴别协议(续) (2.1) A选择一个随机数 (承诺) r, 1 r n 1,并且 发送(证据) x r 2 (modn) 给B。 (2.2)B随机的选择一个 (问题)比特e 0 或者e 1, 并 发送e给A。 (2.3) A计算并发送给B (回答) y,y r (如果e 0)或 者y r s (modn) (如果e 1)。 (2.4)如果 y 0,B 拒绝证明,否则,验证 了 y2 x v e (modn)就可以接受证明。 (根据e,得y 2 x 或者 y 2 x v (modn),由于v s 2 (modn)。注意验证y 0 是为了排除r 0的情况。 )
1.2 交互证明系统和零知识证明协议 零知识证明协议是交互证明系统的一个实 例,这里一个证明者和一个验证者交互多 轮。证明者的目标是让认证者相信声称的 正确性,例如,声称掌握一个秘密。验证 者要么接受证明要么拒绝证明。这与传统 的数学概念的证明有所不同,交互游戏的 证明是随机而不是绝对的。由于这个原因, 一个交互证明常常被称为协议证明。
1.2 交互证明系统和零知识证明协议(续) 评述. (1) 零知识属性表明一个证明者执行协议 (即使与恶意验证者交互)不会透露任何信 息 (即除了特定的声称正确以外的关于他 的秘密知识),这无异于在多项式时间从 公开信息中计算。因此,参与者不会增加 后续冒充成功的机会。
1.2 交互证明系统和零知识证明协议(续) (2) 考虑一个观查者C观测证明者A与验证者 B (B C)一个零知识证明协议交互过程,且 B确定了A掌握某个知识。向B证明的过程并 不能给C任何担保。(事实上,A和B可能事 先串通应答内容来欺骗 C。) 相似情况,记 录零知识证明协议的交互也不能进行回放。 这就是零知识属性的基本思想,即证明过 程可以由验证者单独模拟完成。
1.1 思想(续) (4) Victor向Peggy喊,要她: (4.1) 从左通道出来,或者; (4.2) 从右通道出来. (5) Peggy答应了,如果有必要她就用咒语打 开密门。 (6) Peggy和Victor重复第(1)到第(5)步n次。
1.1思想(续) 评述. 协议使用的技术叫做分割选择技术(cut and choose),因为它类似如下将任何东西等分的 经典协议: (1) Peggy将东西切成两半。 (2) Victor给自己选择一半。 (3) Peggy拿走剩下的一半。 Peggy最关心的是第(1)步中的等分,因为 Victor可以在第(2)步选择他想要的那一半。
1.2 交互证明系统和零知识证明协议(续) 用于鉴别的交互证明可以被形式化为知识证 明。 证明者A掌握某个秘密s,并通过正确 的回答验证者B所提出的问题(涉及的是公开 已知的输入和协商一致的函数)使其相信确 实掌握秘密s,当然,回答这些问题需要秘 密s。注意证明掌握秘密s不同于证明s存在。 一个交互证明是知识证明如果证明满足完备 性和正确性属性。
第十六讲 零知识证明技术
Peggy:“我知道联邦储备系统计算机的口令, McDonald的秘密调味汁的成分,以及Knuth第5卷 的内容。” Victor:“不,你不知道。” Peggy:“我知道。” Victor:“你不知道!” Peggy:“我确实知道!” Victor:“请你证明这一点!” Peggy:“好吧,我告诉你!”她悄悄地说出了口 令。 Victor: “太有趣了!现在我也知道了。我要告诉 《华盛顿邮报》。”