零知识证明及其应用

合集下载

零知识证明 金融应用场景

零知识证明 金融应用场景

零知识证明金融应用场景随着金融科技的快速发展,金融领域出现了越来越多的新技术和新应用。

其中,零知识证明技术是一种非常有前景的技术,它可以在保护用户隐私的同时,提高金融交易的效率和安全性。

本文将从零知识证明的基本原理、金融应用场景以及未来发展趋势等方面进行详细介绍。

一、零知识证明的基本原理零知识证明(Zero-Knowledge Proof,简称ZKP)是一种密码学技术,它可以证明某个命题为真,同时不泄露任何有关这个命题的信息。

具体来说,零知识证明的基本原理是通过构造一种难以被攻破的数学问题,来证明某个命题的正确性。

在这个过程中,证明者不需要向验证者透露任何有关这个问题的信息,而验证者也可以通过验证这个问题的正确性来确认命题的真实性。

因此,零知识证明技术可以在不暴露任何隐私信息的情况下,完成安全的交易验证。

二、零知识证明在金融领域的应用场景1. 匿名交易在传统的金融交易中,为了确认交易的真实性,通常需要对交易双方的身份信息进行验证。

然而,在某些情况下,交易双方可能不希望透露自己的身份信息,例如进行慈善捐款、购买敏感商品等。

这时,零知识证明技术可以帮助交易双方在不暴露身份信息的情况下完成交易。

具体来说,交易双方可以使用零知识证明技术来证明自己拥有足够的资金或者达成某个交易条件,而无需透露自己的身份信息。

2. 银行信用评估在银行信用评估中,通常需要对客户的个人信息、财务状况等进行评估,以确定客户是否有资格获得贷款或信用卡等金融产品。

然而,客户的个人信息涉及隐私问题,如果这些信息被泄露,将会对客户造成严重的影响。

因此,零知识证明技术可以帮助银行在不暴露客户隐私的情况下,对客户的个人信息进行评估。

具体来说,客户可以使用零知识证明技术来证明自己的收入、负债等信息,而无需透露自己的身份信息和具体的财务状况。

3. 区块链交易在区块链交易中,为了保证交易的真实性和可追溯性,通常需要对交易信息进行验证和记录。

然而,区块链交易的公开性和透明度也会导致交易信息的泄露和隐私问题。

互联网安全密码学中的零知识证明技术

互联网安全密码学中的零知识证明技术

互联网安全密码学中的零知识证明技术互联网的快速发展已经成为现代社会不可或缺的一部分。

然而,随着网络的普及,个人隐私和数据安全问题也越来越受到关注。

为了保护用户的隐私与数据安全,互联网安全密码学逐渐崭露头角。

在密码学的研究中,零知识证明技术是一种重要的安全保障手段。

一、什么是零知识证明技术?零知识证明技术,简称ZKP(Zero-Knowledge Proof),是一种密码学中的技术,旨在通过进行证明来验证某个主张的正确性,同时不泄露任何与该主张有关的信息。

换句话说,零知识证明技术可以让证明者向验证者证明某个陈述的正确性,而验证者只会得到“是”或“否”的答案,而不会知道具体的过程和信息。

零知识证明技术的重要性在于,它确保了数据的安全性和用户的隐私,同时在网络中的各方之间建立了信任和合作。

例如,在电子交易中,购买方可以向卖方证明自己具备付款能力,同时不泄露任何与其财务状况相关的信息。

二、零知识证明技术的应用领域1. 隐私保护隐私保护是零知识证明技术被广泛应用的领域之一。

例如,在医疗健康领域,患者可以使用零知识证明技术向医生或医疗机构证明自己的身份和疾病情况,而不必泄露自己的个人信息。

这种方式既保护了患者的隐私,又实现了有效的医疗协作。

2. 身份认证零知识证明技术也可以应用于身份认证领域。

传统的身份认证方法往往需要用户提供个人信息来验证身份,但这会引发用户隐私泄露的风险。

零知识证明技术可以通过证明你拥有某个特定属性,如成年身份或大学学位,而不必泄露任何关于自己的其他信息。

这种方式可以有效保护用户的隐私,减少身份盗窃等问题的发生。

3. 数字货币和区块链在数字货币和区块链领域,零知识证明技术被广泛运用于实现交易的匿名性。

通过使用零知识证明技术,用户可以证明自己拥有足够的资金进行交易,而无需透露自己的真实身份和资产信息。

这可以有效地保护用户的交易隐私,并增强数字货币的使用安全性。

三、零知识证明技术的算法现代密码学中,零知识证明技术具体使用了一些算法来实现。

基于格的零知识证明

基于格的零知识证明

基于格的零知识证明(原创版)目录1.零知识证明的概述2.基于格的零知识证明的概念3.基于格的零知识证明的应用4.基于格的零知识证明的优缺点5.总结正文1.零知识证明的概述零知识证明(Zero-knowledge proof,简称 ZKP)是密码学中的一种证明方法,指的是一个证明者能够在不向验证者泄露任何有关证明对象的实际信息的情况下,使验证者相信某个论断是正确的。

零知识证明具有以下三个特性:完整性(Completeness)、零知识性(Zero-knowledge)和音效性(Soundness)。

2.基于格的零知识证明的概念基于格的零知识证明是零知识证明的一种实现方式,其中的“格”指的是一种数学结构,具有向量空间和环的性质。

基于格的零知识证明利用了格的数学性质,通过在格中进行计算和证明,实现对证明对象的零知识证明。

3.基于格的零知识证明的应用基于格的零知识证明在密码学和信息安全领域具有广泛的应用,例如:匿名认证、数字签名、密钥交换等。

通过使用基于格的零知识证明,可以在保证安全性的同时,提高系统的效率和性能。

4.基于格的零知识证明的优缺点优点:a.基于格的零知识证明具有较高的安全性,因为格的数学性质使得攻击者难以破解证明;b.基于格的零知识证明具有较高的效率,因为在格中进行计算和证明可以降低计算复杂度;c.基于格的零知识证明可以灵活地应用于各种证明场景。

缺点:a.基于格的零知识证明的理论基础较为复杂,需要深入理解格的数学性质;b.在实际应用中,基于格的零知识证明可能需要针对特定问题进行定制化设计。

5.总结基于格的零知识证明是一种具有高效性和安全性的证明方法,已经在密码学和信息安全领域得到广泛应用。

零知识证明

零知识证明

在最小泄露协议中零知识证明需要满足下述两个性质。 (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、如果语句为真,证明者的目的就是向验证者证明并使验证者相信自己知道或拥有某一消息,而在证明过程 中不可向验证者泄漏任何有关被证明消息的内容。 零知识证明并不是数学意义上的证明,因为它存在小概率的误差,欺骗者有可能通过虚假陈述骗过证明者。 换句话来说,零知识证明是概率证明而不是确定性证明。但是也存在有技术能将误差降低到可以忽略的值。 零知识的形式定义必须使用一些计算模型,最常见的是图灵机的计算模型。

零知识证明及其在签名中应用的研究的开题报告

零知识证明及其在签名中应用的研究的开题报告

零知识证明及其在签名中应用的研究的开题报告标题:零知识证明及其在签名中的应用研究1. 研究背景随着信息技术的发展,网上交易的安全性问题变得越来越重要。

签名作为安全交易的基本技术之一,其安全性对交易的保障起着重要的作用。

然而,传统的签名方法存在一些缺点,如需大量的计算,签名后链上数据变得庞大,无法保护用户隐私等。

随着密码学的不断发展,零知识证明逐渐成为了一种解决上述问题的新技术。

2. 研究意义本研究旨在探究零知识证明技术及其在签名中的应用。

通过研究和实验,探讨如何基于零知识证明技术来改进现有的签名方法,提高签名的安全性和效率,并同时保护用户的隐私。

这将有助于推动信息技术的发展,提高网上交易的安全性,保护用户的隐私,符合当前信息时代对安全性和隐私保护的要求。

3. 研究内容(1) 零知识证明的原理和技术。

(2) 零知识证明在签名中的应用及其优势。

(3) 探讨如何利用零知识证明来优化现有的签名方案,提高签名效率和安全性。

(4) 通过实验验证所提出的零知识证明在签名中的应用方案。

(5) 分析和总结研究成果,展望未来发展方向。

4. 研究方法本研究采用文献分析、理论探讨和实验验证相结合的方法。

首先,通过收集和分析相关文献,了解零知识证明技术及其在签名中的应用现状。

其次,对零知识证明的原理和技术进行深入的理论探讨。

进一步,通过对现有签名方法的分析和优化,提出利用零知识证明来改进现有签名方案的方案,并通过实验验证其效果。

最后,对研究成果进行总结和分析,展望未来的研究方向。

5. 研究预期结果本研究的预期结果包括:1) 深入了解和掌握零知识证明技术及其在签名中的应用;2) 提出利用零知识证明来改进现有签名方案的理论和方法,提高签名效率和安全性;3) 通过实验验证所提出的方案的效果,证明其在实际应用中的可行性;4) 对研究结果进行总结和分析,为未来研究提供借鉴和参考。

6. 参考文献[1] Goldwasser S, Micali S, Rackoff C. The Knowledge Complexity of Interactive Proof Systems[C]// STOC'85: Proceedings of the Seventeenth Annual ACM Symposium on Theory of Computing. NewYork, NY, USA: ACM, 1985: 291-304.[2] Kilian J. Founding cryptography on oblivious transfer[C]// 14th Annual ACM Symposium on Theory of Computing. Chicago: ACM Press, 1982: 20-31.[3] Groth J. Short pairing-based non-interactive zero-knowledge arguments[C]// Cryptographic Hardware and Embedded Systems-CHES 2010. Springer, Berlin, Heidelberg, 2010: 321-336.[4] Boneh D, Boyen X. Efficient selective-id secure identity-based encryption without random oracles[C]// Annual A[5] Papadopoulos G J, Stamoulis G D, Zagouras A B. Digital Signature Protocol Based on the Fiat-Shamir Transformation of Interactive Zero Knowledge Proofs[J]. IACR Cryptology ePrint Archive, 2007, 2007: 296.。

zcash零知识证明详解 -回复

zcash零知识证明详解 -回复

zcash零知识证明详解-回复介绍什么是零知识证明,以及它在zcash中的应用。

零知识证明(Zero-knowledge Proof)是一种密码学概念,用于在不透露具体信息的情况下,证明一个陈述是正确的。

零知识证明的特点在于,它提供了一个方法,可以证明一个陈述是正确的,但不泄露陈述的实际内容。

在数字货币领域,隐私一直是一个重要的问题。

传统的比特币交易是完全透明的,所有交易的发起者、接收者和金额都是公开的。

这使得用户的交易历史以及整个资金流动都可以被追溯,损害了用户的隐私。

而在zcash中,采用了零知识证明技术来解决这个问题。

zcash是一种基于比特币协议的加密货币,旨在提供更强的隐私保护。

它使用了零知识证明来确保交易的隐私性。

在zcash中,每笔交易都被封装在一个称为“zk-SNARKs”的技术中。

zk-SNARKs是零知识证明技术的一种形式,它可以证明一个声明是正确的,而不泄露任何关于这个声明的信息。

具体来说,零知识证明在zcash中的应用如下:首先,假设有一个名为Alice的用户想要向名为Bob的用户发送一笔币。

在比特币中,这个过程将被公开记录在区块链上,包括发送者、接收者和交易金额的信息。

但在zcash中,Alice可以使用zk-SNARKs来证明她有足够的资金,并且她正在进行一笔合法的交易,而不泄露具体的交易细节。

然后,Alice将创建一个证明,证明她的交易是有效的。

这个证明由一个算法生成,并且可以被其他人验证。

此时,其他人不知道具体的交易细节,只知道这笔交易是合法的。

接下来,Alice将这个证明与其他相关的交易信息一起发送给网络中的节点。

节点接收到交易信息后,会验证证明的有效性。

如果证明是有效的,那么这笔交易就会被添加到区块链上。

最后,这笔交易将被记录在区块链上,但只有参与者知道具体的交易细节。

其他人只知道发生了一笔合法的交易,但无法得知具体的发送者、接收者和金额。

通过使用零知识证明,zcash提供了更强的隐私保护,使得用户的交易历史和资金流动难以被追溯。

零知识证明技术的实际应用与安全性分析

零知识证明技术的实际应用与安全性分析

零知识证明技术的实际应用与安全性分析零知识证明技术是一种用于验证某个声明的正确性,同时不泄露任何有关该声明的其他信息的密码学工具。

该技术可被广泛应用于许多领域,例如密码学、网络安全、隐私保护和区块链等。

本文将探讨零知识证明技术的实际应用,并分析其安全性。

一、实际应用1.密码学领域:零知识证明技术可用于验证公钥加密方案的安全性。

例如,可以证明一种加密算法的秘钥长度满足安全要求,而不泄露该算法的具体细节。

2.网络安全:在网络通信中,确保通信的安全性非常重要。

零知识证明技术可以用于验证用户的身份,从而防止恶意用户的欺骗行为。

通过使用零知识证明技术,服务器可以证明其拥有某个秘密,而不需要直接揭示该秘密。

3.隐私保护:在很多情况下,用户不希望将其个人信息披露给他人,同时又需要验证某些声明的真实性。

零知识证明技术可以满足这一需求。

例如,在数字身份验证中,用户可以使用零知识证明技术证明自己的年龄在某个范围内,而不需要透露具体的年龄。

4.区块链:区块链是一种去中心化的分布式账本技术,而零知识证明技术可以用于增强其隐私性和安全性。

通过使用零知识证明技术,参与方可以证明自己满足某个条件,而不需要公开其具体数据。

这在一些隐私敏感的应用中尤为重要,例如匿名交易和身份验证。

二、安全性分析1.完备性:零知识证明技术必须保证如果声明是正确的,那么验证者相信该声明的概率非常高。

这意味着证明者必须能够生成一个有效的证明,并将其传递给验证者。

从理论上来说,完备性要求能够通过一个无限容量的计算设备进行检查。

2.可靠性:零知识证明技术应该确保如果甲方是一个诚实的证明者,那么乙方不会被欺骗相信一个错误的声明。

也就是说,诚实的证明者不会能够通过生成错误的证明来欺骗验证者。

3.零知识性:零知识证明技术应该确保验证者不能从证明者提供的信息中获得任何与声明相关的附加信息。

也就是说,验证者在验证声明的真实性时只能得知声明的真实性,而不能获得与其相关的其他信息。

零知识证明

零知识证明

零知识证明零知识证明是一种密码学中的重要概念,指的是在一个交互式的协议中,证明者可以向验证者证明某个命题的正确性,同时不泄露任何额外的信息,除了证明该命题的正确性。

零知识证明的作用在于提高信息安全性和保护个人隐私。

它可以应用于各种场景,如电子商务中的身份认证、密码协议中的密钥交换等。

零知识证明的基本协议是三个步骤的互动过程:证明者向验证者发送一系列的消息,验证者根据收到的消息进行验证,最后得出结论。

具体步骤如下:第一步,证明者选择一些随机值,并计算出基于这些随机值的证明。

然后,证明者将这些随机值和证明发送给验证者。

第二步,验证者选择一个随机比特值,并发送给证明者。

证明者根据验证者发送的随机比特值来回答验证者的挑战。

第三步,验证者根据证明者的回答验证证明是否正确。

如果验证成功,则可以得出结论。

零知识证明具有如下特点:1. 完备性:如果命题为真,那么验证者能够接受证明者的证明,并得出正确结论。

2. 零知识性:证明者在证明过程中,不泄露任何关于证明技巧的信息。

除了命题正确与否以外,验证者无法获取到任何其他额外的信息。

3. 亮针度:证明者和验证者之间的交互是多轮的,每一轮都是以随机方式选择的,防止攻击者对信息进行分析和破译。

零知识证明的实现基于零知识证明系统,该系统由一个证明者和一个验证者组成。

通常,证明者拥有一些证据,他希望验证者相信这些证据是正确的,而验证者则希望证明者确实拥有这些证据。

在实际应用中,零知识证明可以用于匿名认证、电子投票等场景。

比如在匿名认证中,用户可以向第三方机构证明自己拥有某种身份或资格,同时不需要泄露任何个人信息。

在电子投票中,零知识证明可以用于证明某个投票者投票的正确性,而无需泄露该投票者的具体选择。

总之,零知识证明作为一种强大的密码学工具,可以在保护用户个人隐私的同时实现信息的安全验证。

它在各种场景中具有广泛的应用前景,并将在未来进一步推动信息安全和隐私保护的发展。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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的平方根问题是数学难题。

因此Fiat-Shamir身份认证协议满足零知识性。

七、零知识证明协议(一)基本的零知识证明协议假设P知道一部分信息而且这个信息是一个难题的解法,基本的零知识协议由下面几轮组成。

Step1:P用他的信息和一个随机数将这个难题转变成另一个难题,新的难题和原来的难题同构。

然后他用他的信息和随机数解这个新的难题。

Step2:P利用位承诺方案递交这个新难题的解法。

Step3:P向V透露这个新难题。

V不能用这个新难题得到原难题或其解法的任何信息。

Step4:V要求P:1.2.公开他在第2步中提交的解法并证明是新难题的解法。

Step5:P同意V的要求。

Step6:P和V重复第1步至第5步n次。

(二)并行的零知识证明协议基本的零知识证明协议包括P和V之间的n次交换,可以把它们全部并行完成:Step1:P使用他的信息和n个随机数把这个难题变成n个不同的同构难题,然后用他的信息和随机数解决这n个新难题。

Step2:P提交这n个新难题的解法。

Step3:P向V透露这n个新难题。

V无法利用这些新难题得到原问题或其解法的任何信息。

Step4:对这n个问题中的每一个,V要求P:1.2.公开他在第2步中提交的解法,并证明是新难题的解法。

Step5:P对这n个新难题中的每一个都表示同意。

在实际应用中这个协议似乎是安全的,但是没有人知道怎么证明它。

在某些环境下,针对某些问题的某些协议可以并行运行,并同时保留它(三)非交互式的零知识证明协议早在1988年,人们就已经发明了非交互式零知识的证明。

非交互式的零知识证明[6]协议不需要任何交互,证明者P可以公布协议,从而向任何花时间对此进行验证的人证明协议是有效的。

这个基本协议类似于并行零知识证明,不过只是用单向散列函数代替了V:Step1:P使用他的信息和n个随机数把这个难题变换成n个不同的同构难题,然后用他的信息和随机数解决这n个新难题。

Step2:P提交这n个新难题的解法。

Step3:P把所有这些提交的解法作为一个单向散列函数的输入,然后保存这个单向散列函数输出的头n个位。

Step4:P取出在第3步中产生的n个位,针对第i个新难题依次取出这n个位中的第i个位,并且:1.如果它是0,则证明新旧问题是同构的,或者:2.如果它是1,则公布他在第2步中提交的解法,并证明它是这个新问题的解法。

Step5:P将第2步中的所有约定及第4步中的解法都公之于众。

Step6:V或者其他感兴趣的人,可以验证第1步至第5步是否能被正确执行。

这个协议起作用的原因在于单向散列函数扮演一个无偏随机位发生器的角色。

如果P要进行欺骗,他必须能预测这个单向散列函数的输出。

但是,他没有办法强迫这个单向散列函数产生哪些位或猜中它将产生哪些位。

这个单向散列函数在协议中实际上是V的代替物——在第4步中随机的选择两个证明中的一个。

八、结语零知识证明提供了一种能向别人证明拥有某知识但不透漏该知识的一种方法。

零知识证明过程不但在身份认证中有重要应用,而且在NP问题[4]中也有广泛的应用。

同时微软提出的新一代安全计算平台NGSCB也应用到了与零知识证明相关的技术。

零知识证明理论是一个非常重要的理论,另外,数字签名,水印检测,密钥交换和电子现金也为零知识证明的应用提供了新的方向。

参考文献:[1]《安全协议》曹天杰,张永平,汪楚娇.北京:北京邮电大学出版社,2009,113—122.[2]《A.Menezes,P.vanOorschot,S.Vanstone.Handbook of Applied Crypt Ography》. BocaRaton:CRCPress,1996.405—409.[3]《浅析零知识证明》赵晓柯[4]《零知识与国防部-通信保密》苏珊?兰道,1991,1:27—34.[5]《What are in teractire proof sand zero— Knowledge proofs?》 RSA Laboratories[6]《基于零知识证明的图论问题和网络安全的研究》朱洪武,8-9。

相关文档
最新文档