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