5零知识证明
区块链技术如何实现匿名交易

区块链技术如何实现匿名交易随着数字货币和加密资产的兴起,个人隐私保护和交易匿名性变得越来越重要。
传统的金融系统往往需要揭示个人身份和交易细节,这引发了对隐私保护的担忧。
然而,区块链技术通过去中心化、公开透明和密码学等手段,为实现匿名交易提供了可能。
在区块链上实现匿名交易的方法主要有以下几种:1. 零知识证明(Zero-knowledge Proofs)零知识证明是一种密码学协议,允许一方向另一方证明他们拥有某个信息,而无需揭示该信息的内容。
在区块链中,零知识证明可以用来证明交易的有效性,而不需要透露涉及的具体细节。
这样,交易的参与者可以保持匿名性,而只需展示他们有足够的资格进行交易。
2. 混币服务(Coin Mixing Services)混币服务通过混合用户资金来打破区块链上的交易链路。
用户将自己的数字货币发送到混币服务提供者,混币服务提供者再将该金额与其他用户的金额混合,并重新发送给用户。
这样,交易链路变得复杂,很难追踪资金的流动,保护了用户的交易隐私。
3. 环签名(Ring Signatures)环签名是一种密钥签名技术,允许一个成员群体中的任何一个人用群体的密钥对某个信息进行签名。
区块链中的环签名可以实现交易的匿名性,因为无法确定实际签名的是哪一个成员。
只要有足够数量的成员参与签名,就无法追踪到交易的发起者。
4. 隐身地址(Stealth Addresses)隐身地址是通过为每个交易生成一个临时的一次性地址来实现交易的匿名性。
发送者可以通过接收者的公钥和一次性地址生成一个唯一的地址,只有接收者能够解密该地址,并将资金移动到自己的真实地址。
这样,除了接收者之外,其他人无法追踪交易的接收方和资金的流动。
5. 公私钥交换(Public Key Exchange)公私钥交换是一种特殊的密码学算法,用于在不直接交换公钥的情况下创建一个临时密钥对。
利用公私钥交换算法,交易的参与者可以在不暴露自己的公钥的情况下,确保只有掌握正确私钥的人才能解密交易信息。
交互式零知识证明和非交互式零知识证明

交互式零知识证明和非交互式零知识证明交互式零知识证明和非交互式零知识证明是现代密码学领域中
非常重要的两个概念。
交互式零知识证明是指证明者和验证者之间需要进行多轮的交互,以达到证明某个命题的目的。
而非交互式零知识证明则是指证明者只需要进行一次证明就能够达到同样的目的,而验证者不需要进行任何交互就能够验证证明的正确性。
在实际应用中,交互式零知识证明和非交互式零知识证明都有各自的优缺点。
交互式零知识证明通常需要更多的计算资源和通信开销,但是具有更高的安全性。
而非交互式零知识证明则更加高效,但是在某些情况下可能存在潜在的安全隐患。
无论是交互式零知识证明还是非交互式零知识证明,它们都在现代密码学中扮演着重要的角色,被广泛应用于数字身份认证、电子投票、加密货币等领域。
随着技术的不断发展,这些技术也在不断地得到改进和优化,为实现更加安全、高效、可靠的数字世界提供了坚实的保障。
- 1 -。
零知识证明在版权保护中的应用

版权 又称著作 权 , 指版 权法所 确认 的文 学 、 是 艺术 和科 学技术 等作 品的作者 或其 他 著作 权人 在 法定期 限 内对 其 作 品所 享 有 的 专有 权 利 , 品版 作 权代表 的是著作权人 的利 益 。随着 网络信 息传 播 时代 的到 来 , 数字 化作 品 的易 复制 性 、 修 改性 , 易
() 3 通过公钥 算 法 和标 准 描述 来 实 现数 字 版 权 的描述 与验证 。 () 4 通过 个人 身份 标 识 的绑 定 来 达 到数 字 版
据进行加密保护 , 信息被接收解密后 , 就和普通文
档 一样很容 易被 非法 复制 、 播 , 传 数字水 印技术 很
权的合法使用 即数字版权的不可复制。 () 5 通过 国际 间 的标 准安 全 传输 协 议 来 实现 数字作品传输的安全 , 即运行过程 的数字安全传
目前数 字 图书馆 常用 的版权 保 护方 法有 以下
几 种 川:
( ) 网络传 播过 程 中对 数 字 内容 进 行加 密 1在 和采用数字签 名技术 防止数据 被窃 取 。 () 2 用数字摘 要和数 字水 印技术 , 实现数 字 内 容 的完 整性 , 明作者 对 作品 的著作 权 , 免 信息 证 避
被非法 复制和 盗用 。
合播放数字内容的条件。使用规则一般可以防止 内容被 复制或者 限制 内容 的播 放次数 。 J
数 字水 印技术 是 目前常用 且有 效 的数字 版权 管理技术 之一 , 码 认证 技 术 不 能很 好 解 决版 权 密 保 护 问题 , 为密 码 只 能在 数 据传 输 过 程 中对 数 因
产 权 。另 一方 面 , 买者 在购 买产 品的 时候 , 可 购 也 能对 产 品 的合 法 性 有 所 怀 疑 , 望 能 够 揭示 足 够 希 的信 息证 明产 品来 自于合 法 的作 者或 者 合法 的软
schnoor非交互式零知识证明协议

schnoor非交互式零知识证明协议Schnoor非交互式零知识证明协议在密码学领域,非交互式零知识证明协议是一种重要的工具,用于证明某个陈述是正确的,而无需透露任何关于该陈述的具体信息。
Schnoor非交互式零知识证明协议是其中一种常用的协议。
Schnoor协议的核心思想是通过将证明过程转化为离散对数问题的求解,实现零知识证明的目的。
该协议的设计非常巧妙,能够有效地保护隐私和安全。
在Schnoor协议中,存在一个证明者和一个验证者。
证明者希望向验证者证明某个陈述的真实性,而验证者则希望确认该陈述是否确实成立。
通过使用Schnoor协议,证明者能够在不泄露陈述的具体信息的情况下,向验证者提供一个可验证的证明。
Schnoor协议的过程大致如下:1. 证明者选择一个随机数作为证明的秘密值,并计算出对应的公开值。
2. 证明者向验证者发送公开值。
3. 验证者随机生成一个挑战,并向证明者发送。
4. 证明者根据挑战计算出响应值,并将其发送给验证者。
5. 验证者根据接收到的响应值和已知的公开值,进行验证。
通过这个过程,验证者能够在不知道证明者的秘密值的情况下,确认陈述的真实性。
由于Schnoor协议是非交互式的,证明者只需发送一次消息,这大大提高了效率。
Schnoor协议的安全性建立在离散对数问题的困难性上。
离散对数问题是一种在数学领域内广泛研究的问题,目前还没有找到有效的解决方法。
因此,即使攻击者拥有大量计算资源,也无法破解Schnoor协议。
总结来说,Schnoor非交互式零知识证明协议是一种能够实现零知识证明的密码学协议。
通过将证明过程转化为离散对数问题的求解,Schnoor协议能够保护隐私和安全,确保陈述的真实性得到验证。
该协议的设计巧妙,效率高,并且基于困难的数学问题,使得它在实际应用中具有重要的价值。
基于零知识证明的自组织的Ad hoc网络密钥管理

应用 。但 由于 A o 网络 固有 的弱点 , 采用无 线信 号作 为 d c h 如
传输介质 、 线信 号的无 向性等 , 无 使其更 容易受 到攻击 。如何 保证 A o dhc网络 的安全通信 , 已成为 当前研究 的热 点 , 而安 全 通信服务 的基 础是 提供安 全 、 效 的密钥 管理 。由于 A o 高 dh c 网络 的移 动性 、 自组织性等特 点 , 使得传 统 网络 中的密钥 管理 方案不再 适用。针 对 A o dhc网络 的特点 , 种密钥 管理 方案 各 被提出 , 主要可 以分为 :
2 3 公 钥 验 证 协 议 .
确的 , 但不 向 V提供任何有 用信息 ¨ 。基 于零 知识证 明的思 想 ,e e等人 提 出了 F i .i .hmi身份 识别协 议 , Fi g e eFa S a r g t 此协 议 中 , 明者 P没有泄露 自己的秘密身 份 , 没有 向 V证 明它 证 也 的公开身份 的合法性 , 而是通过显示它拥有 自己秘密身份 的知 识, 从而证 明它知道 自己的秘密身份和其公 开身 份的合法性 。 有一可信任 中心秘密 地选取 形式 为 4 +3的两个 大素 数 r p、, 得 I= q是计算上难分解 的, q使 t p 然后公 布 I作 为所有用户 t
钥对及证书 , 赖于可信 的第 三方 , 不依 但节点需 要在本 地保存 大量 的证书 , 量大 , 存储 且不能保证每次认证的成功 。
本文提 出一种完全 自组织密钥管理方案 , 该方 案的 自组 织 性、 无中心性 、 无须服务节点等特性完全符合 A o dhc网络 的特 点。方案 中节点公私钥对 的生成 、 证书的生成以及认证工作完 全不依赖 于第 三方 , 而是节 点 自己生成公私 钥对 以及 证书 , 但
阿里巴巴的零知识证明

阿里巴巴的零知识证明作者:奥卡姆剃刀来源:《数学金刊·高考版》2014年第11期战争中你被俘了,敌人拷问你情报. 你是这么想的:如果我把情报都告诉他们,他们就会认为我没有价值了,就会杀了我省粮食;但如果我死活不说,他们也会认为我没有价值而杀了我. 怎样才能做到既让他们确信我知道情报,但又一丁点儿情报也不泄露给他们呢?这的确是一个令人纠结的问题,但阿里巴巴想到了一个好办法,当强盗向他拷问打开山洞石门的咒语时,他对强盗说:“你们离我一箭之地,用弓箭指着我,你们举起右手我就念咒语打开石门,举起左手我就念咒语关上石门,如果我做不到或逃跑,你们就用弓箭射死我. ”强盗们当然会同意,因为这个方案不仅对他们没有任何损失,而且还能帮助他们搞清楚阿里巴巴到底是否知道咒语这个问题. 阿里巴巴也没有损失,因为处于一箭之地的强盗们听不到他念的咒语,不必担心泄露了秘密,而且他确信自己的咒语有效,也不会发生被射死的悲剧.强盗举起了右手,只见阿里巴巴的嘴动了几下,石门果真打开了;强盗举起了左手,阿里巴巴的嘴动了几下后石门又关上了. 强盗还是有点不信,说不准这是巧合呢,他们不断地变换着节奏举右手、举左手,石门跟着他们的节奏开开关关,最后强盗们想,如果还认为这只是巧合,自己未免是一个傻瓜,那还是相信阿里巴巴吧!“零知识证明”说的是示证者向验证者表明他知道某种秘密,不仅能使验证者完全确信他的确知道这个秘密,同时还保证一丁点儿秘密也不泄露给验证者. 阿里巴巴的这个方案,就是认证理论“零知识证明”的一个重要协议.除了被俘后如何靠情报保命这个问题,零知识证明在社会领域中还有着很多应用场合. 例如你证明了一个世界级的数学难题,但在发表出来之前,总得找个泰斗级的数学家审稿吧?于是你将证明过程发给了他. 他看懂后却动了歪心思,他把你的稿子压住,把你的证明用自己的名义发表,他名利双收,你郁闷至死. 你去告他也没用,因为学术界更相信的是这位泰斗,而不是你这个无名之辈.这并不是天方夜谭,而是学术界常见的难题,前些年有个博士生状告他的泰斗级导师剽窃他的成果,但除了令师生关系恶化外没有任何效果,最后他使出了撒手锏,称他在给导师审阅的论文的关键公式中,故意标错了一个下标,而这会导致整个推导失败. 学术委员会一查果真如此,但还是有倾向于泰斗的声音,有人说那是泰斗的笔误,只不过让你发现了而已,并不能证明那公式就是你推导出来的.这个博士生故意标错下标,不能说他没有心眼,但他没有把“零知识证明”理论用好,以至于落到这种地步. “零知识证明”早在1986年就被A. Fiat和A. Shamir用数学的方法给出了解决方案,并在同年申请了美国专利,但由于该理论可能被用于军事领域,专利局被军方密令搁置,6个月后,军方命令“该申请发表后会有害于国家安全……所有美国人的研究未经许可而泄露将会被判刑罚款”. 看来军方认为作者肯定是美国人了,但作者实际上是在美国申请专利的以色列人,研究也是在以色列的大学里做的,军方这个命令摆了个大乌龙,虽然两天后撤销了,但已经成为了学术界的笑柄.这个笑柄也说明了一个问题,即“零知识证明”非常重要. 基于数学的推理虽然非常复杂,但思路却很简单,上述的阿里巴巴方案就是其中之一. 其他的一些方案,也都是像这样遵循着“分割和选择协议“的.例如数学中有个“哈密尔顿回路问题”,其大意是在任意给定的一个图中,能不能找到这样的路径,即从一点出发,不重复地走过所有的结点(不必通过图中每一条边),最后又回到原出发点. 如果“科学松鼠会”(一个科学传播公益团体,试图通过自己的努力使科学传播并流行开来)贴了一张全连通图(命名为A图)悬赏哈密尔顿回路,而且任命我作为评审官,你幸运地找到了一条这样的回路,那该怎么办呢?将结果直接发给我吗?千万不要!因为说不准我会将你的成果让给我的亲信. 那你该怎么办呢?应该这么做:1. 你将A图的顶点弄乱,并生成一张新图,只是顶点的位置变了,而新图顶点之间的连线关系与A图是完全一致的. 这时,你清楚新图中每个顶点与A图中每个顶点的对应关系,而且你也知道新图中的哈密尔顿回路.2. 你将这张新图发给我(没错,就是仅仅一张新图),上面并没有画着你发现的精彩回路.3. 我收到后,对你提出两个问题中的一个:一是证明新图就是从A图变形过来的,所有顶点和连线的关系完全一致;二是画出新图中的哈密尔顿回路.4. 如果你真的找到了A图的哈密尔顿回路,这两个问题当然都能轻松回答. 需要注意的是,你只需要回答第3步的其中一个问题,千万不要两个问题一并回答,否则我就知道你关于A图的哈密尔顿回路了.5. 我还是不相信你,因为有可能你只是将A图变了形,却根本不知道A图的哈密尔顿回路,而我在第3步时恰好要求你证明新图就是从A图变形过来的,你当然能证明. 或者有可能你找了个你知道哈密尔顿回路的图,但这张图跟A图一点关系都没有,而我在第3步恰好要求你画出这张图的哈密尔顿回路.6. 我要求你从第1步开始重复这个验证过程,随着次数的增加,第5步那种巧合的可能性就越来越低,如果你多次能回答对第3步中的问题,那我还不相信你已经找到了A图的哈密尔顿回路,那我就是一个傻瓜.7. 为了表明我不是傻瓜,我会在“科学松鼠会”群博里宣布你找到了A图的哈密尔顿回路,而这时我并没有看到你所画的A图的哈密尔顿回路.现在,我们回到你证明了世界级的数学难题这个问题上来,你可以用这种分割和选择协议来进行零知识证明,从而保护你的权利. 你公开声称你解决了这个数学难题后,验证者会给你出一个其他的题,而能做出这道题的前提条件是已经解决了那个数学难题,否则的话无解,而且这个条件是学术界所公认的,这个题就是所谓的平行问题. 不出所料,你靠着已经解开数学难题的基础把这个平行问题做出来了,但验证者还是不相信,他又出了一道平行问题,你又做出来了,多次较量后,验证者就确信了你已经解决了那个数学难题,虽然他并没有看到具体的解法.大家已经看出来了,零知识证明需要示证者和验证者的密切配合,但如果你只是一个数学界的无名之辈,即使你宣称解决了数学难题,也不会有人跟你配合着玩零知识证明,那你该怎么办呢?我告诉你一个可以在法庭上都能当作有效证据的招数. 你将证明打印好,选择一个最可靠、最权威的邮政公司,把它寄给自己,当你收到这个盖着邮戳的包裹后,不要打开,把它放好,然后就可以把证明寄给数学泰斗了. 如果他用自己的名义发表了,不必着急,等他依靠其影响力把这个证明炒热后再出手. 你上法庭控告他,他当然不承认,在法庭上你就将那个没开封的包裹拿出来,上面清清楚楚地盖着时间戳,这就证明了包裹里的证明是发生在那个时间戳之前的,加上之后的你邮给泰斗论文的邮件存根,和泰斗以自己名义发表论文的时间,三者就构成了一个完整的证据链,泰斗灰头土脸名声扫地,而你则会大获全胜名利双收.。
一种基于生物特征和零知识证明的身份认证协议

基础上 , 用生物特征作为用户的私钥进行认证 , 实 现用 户和服 务 器之 间的 双 向认 证 。整 个认 证 系统
收稿 日期 : 2 0 1 6— 0 9—1 5 基金项 目: 福建省教育厅科技项 目( J B 1 4 1 3 2 ) ; 福建师范大学福清分校科研创新基金项 目( K Y 2 0 1 4 0 2 2 ) 。 作者简介 : 陈泗盛( 1 9 8 1 一) , 男, 福建泉州人 , 讲师 , 硕士, 主要从事 网络与信息安全方 向研究。
识 别技术暴露 出 的生物 特征 模板 的安 全性 问题 , 使 人们 需往更深层 次方 面考虑 。国内外 的一些研 究 为 了解决生物特 征模 板 的安全 问题 , 提 出 了基 于生 物
将0 与k e y的哈希函数值 H ( k e y ) 一起存储智能 卡中, 并 丢弃 k e y 。 用户 用重新 采 集 的生 物数 据 0 …
且用 户也 无需记 任 何 秘钥 的情 况下 实 现 双 方之 间 的双 向身 份认证 。方案 将应 用 H a o等 人 提 出 的 基 于生物 特征 的秘 钥 保护 机 制 将 生物 特 征 和基 于 零 知识证 明 的 G P S协 议 ’ 进 行 融合 设 计 用 户 和
服 务器之 间 的双 向认 证协议 。
否 则拒 绝 。
根据系统安全需求 , 服务器 . s 要求用户 重复 z 次上述认证过程。 一般在选取合适的参数 情况 下, 可 以认证 过程 只需 要一 次 的认证 确认 。
9 2 2
佳 木 斯 大 学 学 报 (自然 科 学 版 )
2 0 1 6年
3 协议 分 析
然后进行如下操作 : 从[ 0 , A ) 中随机选一个数 r , 并
第5章身份认证

控制器的认证,容易导致瓶颈。
NTLM-Protocol Domain: Wonderland Username: Alice Password: 2Uh7& Alice f68ba0537 User Alice 51ff1d83 Server Challenge: f68ba0537 Alice, f68ba0537, 51ff1d83 OK Domain Controller (DC) E(f68ba0537, KeyA)=51ff1d83 Comparison with 51ff1d83-ok? User Alice: KeyA
作生物特征测定。生物特征测定方法的优点是不需要
像口令和密码那样有记忆负担,而且相同的特征可以 在任何地方使用,缺点是生物特征认证系统价格较为
昂贵。图5-3给出了一些“所是”型身份认证的例子。
Fingerprint
Iris/Retina Scanning
Voice
Face
图5-3 “所是”型身份认证
H(2Uh7&)=KeyA E(f68ba0537, KeyA)=51ff1d83 H: Hash function E(x, k): Encryption of x with key k
• Windows NT LAN Manager is a proprietary Microsoft scheme. • Typical example of a Challenge-Response protocol.
(1) 示证者所知道的秘密(What you know,所知)。
如口令、密码、身份证号码、个人识别码(PIN)、出生 日期等,如图5-1所示。 (2) 示证者所拥有的信物(What you have,所有), 如证章、信用卡、ID卡、证书、密钥盘等,如图5-2所 示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)A将(CA, x)送给B; (个3介)于B0以到T2的t –公1钥之解间S的T (随IA机, v)数,e实给现A;对A的身份IA和公钥v认证,并传送一
此协议可执行t次,直到V相信P知道s1, s2, …, sk, P欺骗V的机会为2 –k t。
Feige-Fiat-Shamir身份鉴别方案
A
B
x r 2 (mod n)
(e1, ... , ek ), ei {0, 1}
y r ej 1 s j (mod n)
If
z
y2
vej
e j 1 j
零知识证明的概念
在最小泄露协议中满足下述两个性质:
(1) P无法欺骗V。换言之,若P不知道一个定理的证 明方法,则P使V相信他会证明定理的概率很低。 (正确性)
(2) V无法欺骗P。换言之,若P知道一个定理的证明 方法,则P使V以绝对优势的概率相信他能证明。 (完备性)
在零知识协议中,除满足上述两个条件以外, 还满足下述性质:
简化的Feige-Fiat-Shamir身份 鉴别方案
实施身份证明的协议如下: (1) 用户P取随机数r(r < m),计算x = (x2) mod n,送给 验证方V: (2) V将随机比特b送给P; (3) 若b = 0,则P将r送给V;若b = 1,则将y = r s mod n送 给V;
根。
重复上面的过程直至Vector相信。 这的里一,个P平eg方gy根不,知但道不Y是的全平部方。根,虽然他可能知道X1、X2
离散对数问题的零知识证明
Peggy试图向Vector证明他知道离散对数x,x = loggY mod p,Y = gx mod p
x logg Y mod p, (Y gx mod p)
0(modn) and z
x,
then B acceptsthe proof;
otherwise,B rejects the proof.
Guillo-Quisquater身份鉴别方案
Guillo和Quisquater给出一种身份认证方案,这个 协议需要三方参与、三次传送,利用公钥体制实 现。
Schnorr身份鉴别方案
以上方案有一定的缺陷:实时计算量、消息交换量和 所需存储量较大,Schnorr提出的一种安全性基于计算 离散对数的困难性的鉴别方案,可以做预计算来降低 实时计算量,所需传送的数据量亦减少许多,特别适 用于计算能力有限的情况。
Claus Schnorr的认证方案的安全性建立在计算离散对数 的难度上。
V 验证者
Repeats t rounds
• 证明者和验证者共享输入 (函数或者是值) • 如果验证者检查,对于每一个挑战的响应都是正确的,这个协议才输
出Accept,否则,输出 Reject
平方根问题的零知识
令N = P Q,P、Q为两个大素数,Y是mod N的一个平方, 且gcd(Y, N) = 1,注意找到mod N的平方根与分解N等价。
可信赖仲裁方T先选定RSA的秘密参数p和q,生成 大整数模n = p q。公钥指数有e ≥ 3,其中gcd (φ, e ) =1,φ = (p – 1)(q – 1)。计算出秘密指数d = e–1 mod φ ,公开(e, n),各用户选定自己的参数。
用相T向户 应AA散分的列配唯值密一J钥A性=函身H数(份IAS)IA,A,=I(通<JAJ过)A–d散<mn列o,d函gnc数。d H(J变A, 换φ)得= 1出,
V伪装P的可能性。V和其他验证者W开始一个协议。第 一步他可用P用过的随机数r,若W所选的b值恰与以前 发给P的一样,则V可将在第(3)步所发的r或y重发给W, 从而可成功的伪装P。但W可能随机地选b为0或1,故这 种工具成功的概率为1/2,执行t次,则可使其将为2–t。
Feige-Fiat-Shamir身份鉴别方案
(3) V无法获取任何额外的知识。(零知识性)
零知识洞穴
设P知道咒语,可打开C和D之间的秘密门,不知道 者则走向死胡同。现在来看P如何向V出示证明使其 相信他知道这个秘密,但又不告诉V有关咒语。
协议1:洞穴协议
V站在A点; P进入任一点C或D; 当P进洞之后,V走向B点; V叫P:(a)从左边出来,或(b)从右边出来 P按照要求实现(有咒语);
Schnorr身份鉴别方案
对每个用户给定惟一身份I,用户A选定秘密密钥s,0 ≤ s ≤ q – 1,并
计算v = v, ST (IA,
g–s mod v))。
p;A将IA和v可靠地送给T,并从T获得证书,CA
=
(IA,
协议如下:
(1)选定随机数r,1 ≤ r ≤ q – 1,计算x = g r mod p,这是预处理步骤, 可在B出现之前完成;
为了产生密钥对,首先选定系统的参数:素数p及素数 q,q是p – 1的素数因子。p 21024,q > 2160,元素g为 q阶元素,l ≤ g ≤ p – 1。令a为GF(p)的生成元,则得到 g = a(p – 1) / q mod q。由可信赖的第三方T向各用户分 发系统参数(p, q, g)和验证函数(即T的公钥),用此 验证T对消息的签字。
零知识证明
刘昆
中国矿业大学徐海学院
零知识证明的概念
设P表示掌握某些信息,并希望证实这一事实的实 体,设V是证明这一事实的实体。
某个协议向V证明P的确掌握某些信息,但V无法推断出 这些信息是什么,我们称P实现了最小泄露证明。
如果V除了知道P能够证明某一事实外,不能够得到其他 任何知识,我们称P实现了零知识证明,相应的协议称作 零知识协议。
简化的Feige-Fiat-Shamir身份 鉴别方案
可信赖仲裁方选定一个随机模数n = p1 × p2, p1、p2为两个大素数。实际中n至少为512比特, 尽量长达1024比特。仲裁方可实施公钥和私钥 的分配。他产生随机数v(v为对模n的二次剩 余)。
换言之,选择v使得x2 = v mod n有一个解并且 v–1 mod n 存在。以v作为被验证方的公钥,而 后计算最小的整数s:s ≡ sqrt (v –1) mod n,将 它作为被验方P的私人密钥而分发给他。
(1) A选择随机数r,1 ≤ r ≤ n – 1,计算x = r e mod n,A将(IA, x)送 给B;
(2) B选择随机数u,1≤ u ≤ e,将u送给A; (3) A计算y = r ·SA u mod n,送给B; (4) B收到y后,从IA计算JA = H(IA),并计算JA u ·Y e mod n。
若结果不为0且等于x,则可确认A的身份;否则拒绝A。
Guillo-Quisquater身份鉴别方案
A
B
I A, x rv (mod n)
e, where1 e v
y
r
s
e A
(mod
n)
If
z
J
e A
yv
0(mod n)
and
z
x,
then B acceptsthe proof;
otherwise,B rejects the proof.
Guillo-Quisquater身份鉴别方案
单轮(t = 1)GQ协议三次传输的消息为:
(1) A → B: IA,x = r e mod n,其中r是A选择的秘密随机数; (2) B → A:B选随机数u,u ≥ 1; (3) A → B:y = r ·SA u mod n。
具体协议描述如下:
(4) 若b = 0,则V验证x = r2 mod n,从而证明P知道sqrt(x); 若b = 1,则V验证x = y2 v mod n,从而证明P知道s。
这是一轮认证,P和V可将此协议重复t次,直到V确信P 知道s为止。
简化的Feige-Fiat-Shamir身份 鉴别方案
A
B
x r 2 (mod n)
证明ElGamal解密的正确性
比如,Peggy试图证明他的ElGamal解密是正确的。 明文是m而不泄露他的私钥x。
Peggy的私钥为Y = gx mod p; ElGamal加密为m (U, V),
ElGamal解密为V / Ux m
U g r mod p V mY r mod p
Prover
t R
Z
* q
R gt mod p
w t ux modq
Verifier
R Commitment u Challenge u R Zq*
w Response ? R g wY u mod p
离散对数问题的零知识证明
Peggy试图向Vector证明两个离散对数相等而不泄露x, Y = gx,Z = cx,loggY = logc Z
Feige-Fiat-Shamir身份鉴别方案
协议如下:
(1) P选随机数r(r < m),计算x = r2 mod n并发送 给验证方V;
(2) V选k比特随机二进制串b1, b2, …, bk传送给P;
(3) P计算y = r 并送给V;
×
(s1b1
×
s2b2
×
…
×
skbk
)
mod
n,
(4) V验证x = y2 × (v1b1 × v2b2 × … × vkbk ) mod n。
可信赖仲裁方选n = p1 × p2,p1、p2为两个大 素数,并选k个不同的随机数v1, v2, …, vk,各 vi是mod n的平方剩余,且有逆。以v1, v2, …, vk为被验证方P的公钥,计算最小正整数si, 使si = 1/ vi mod n,将s1, s2, …, sk作为P的私人 密钥。
Peggy声称他知道Y的一个平方根S,但他不愿意泄露S, Vector想证明Peggy是否真的知道。下面给出了这个问题 的一个解决方案。