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