《A Graduate Course in Applied Cryptography》Chapter 20 Proving properties in zero-knowledge (2)*

原文教材 与 参考资料:

        Boneh Dan , Shoup Victor . A Graduate Course in Applied Cryptography[J].

        该书项目地址(可以免费获取):http://toc.cryptobook.us/

        博客内容为对该书的学习笔记(包括但不限于翻译、额外绘图、注解、个人理解等),并非原创知识,仅帮助理解,整理思路.
 

20.3 Non-interactive proof systems

非交互式零知识证明,一个经典的例子就是使用Fiat-Shamir 转换将任意的Sigma协议转化为一个非交互式的证明系统。基本的思路非常简单,将验证者生成随机挑战C用哈希函数H进行替换,即为挑战C由哈希函数以声明statement,承诺commitment生成。如果我们将哈希函数作为随机谕言机,那么我们可以证明如下的两个事实:

    (1)如果sigma协议具备存在合理性(existentially sound) ,那么该NIPS(non-interactive proof system)也具备存在合理性。

    (2)如果sigma协议是sHVZK,那么运行该NIPS不能从中恢复出任何关于证明者持有的证据信息。

显然,第一个属性可以直接从SIgma协议中继承过来。但是,第二个属性需要一个新的定义“Zero Knowledge”来帮助给出合理证明与定义。

20.3.1 Example :a voting  protocol

一个典型的非交互系统为 电子投票系统:

该场景非常简单:参与者向投票中心提交自己的选票即可。

需要满足两个基本的属性:

        (1)选票有效,即为选票内容需要是合法的。

        (2)保证选票不能被泄露,投票过程要公平。

一般有一个可信的服务器用来计票,称之为vote tallying center (VTC)。

       选票的过程分为两个阶段:

                (1) Voting stage: 投票阶段,每个投票者将自己的选票提交给计票者。

             (2)Tallying stafe: 计票阶段,VTC开始统计选票。

一种有效的设计算法是:每个用户使用EIGama算法,使用VTC的公钥对自己投票的内容进行加密,然后提交。例如,如果需要选择则加密比特1. 但是,这存在一个问题,如果有一个不诚实的投票者加密N(N > 1), 则会使得投票不在公平。一种方法是只允许投票者加密0 或者1. 在上节中已经给出了一个每次加密一个bit 的sigma协议,只需要在使用Fiat-Shamir 转换将交互式的协议转换成为非交互的投票协议即可。

20.3.2 Non-interactive proofs:basic  syntax

下面给出非交互式系统的形式化定义,注意,这里仅仅定义的是非交互式系统,尚且不涉及零知识的内容。

 该非交互式证明系统包含两个算法:

        Gen: 一个有效的概率多项式算法,输入为 声明-证据对(statement-witness); 输出为 证明π,该证明属于一个证明空间。

        Check: 一个有效的确定算法,输入为 声明-证明,输出为accept 或者 reject 。

20.3.3  The  Fiat-Shamir transform

现在给出Fiat-Shamir 转换的形式化定义:将sigma 转化成为一个非交互证明系统。

该转换的核心就是 c = H( y, t ). 使用哈希函数生成挑战后,然后再生成证明。

 20.3.4 Non-interactive existential soundness

本质上就是说很难对一个错误的声明产生合法的证明;对于非交互式证明系统的存在合理性刻画,有如下的攻击游戏:

敌手输出一个声明和一个证明,如果该证明并非是合理的R关系语言,但是依然能够通过验证,既可以认定其赢得了游戏(证明过程必须是由一个诚实验证者来证明)。

定理20.2 描述了在一个合适的假设下,Fiat-Shamir 转换能够产生一个具备存在合理性的非交互证明系统,在随机谕言机模型下(将哈希函数处理为随机谕言机)。

 定理20.2 教材上没有给出详细的证明过程,我在后续会补上这个定理的证明详细过程。

20.3.5 Non-interactive zero knowledge

本小节给出非交互零知识的详细定义,值得注意的是之前的NIPF并没有体现零知识性,至少保证其能够获得存在合理性,但是并没有给出零知识性的保证。即为如何定义该属性,能够保证不能从证明中获得关于证据的任何有效信息。

我们可以使用类似HVZK的定义方法,如果存在以一个模拟器能够输出一个证明,该证明与Gen算法是不可区分的,那么显然,敌手与模拟器交互式不能获得任何的证据信息的。不幸的是,在这种情况下模拟者不知道任何一点的证据信息还要能够模拟成功,这是不现实的,模拟器总是要获得一点内部的知识。的确,如果模拟器在不掌握任何的“内部优势”的情况下,生成合法R语言的证明,那么也能够生成非法R语言的证明,这显然违背了存在合理性。所以如果能够给与模拟器一个合理的内部优势,将帮助给出一个合理的零知识证明。

所以这里讨论随机谕言机模型下的零知识证明模型,我们将内部优势转化为模拟器向随机谕言机发起的询问。

              假设H为随机谕言机,那么模拟器将可以回复如下的随机谕言机请求(可以直接或者间接的请求)。

          (1)未判定证明请求,对于一个声明y, 模拟器输出y的证明。

          (2)随机谕言机请求,对于某个点u, 模拟器回复挑战信息c.

在该NIZK中,一个敌手不能区分“真实协议” 与 “模拟协议”,即为敌手交互获得的是一个真实证明与声明,还是由模拟器生成的证明与声明。

       定义两个实验,敌手可以向挑战者发起一些的请求,该请求一共包含两类,一类是已判定证明请求,由挑战者输出(x,y)的证明内容。随机语言机请求,对于与任意的随机谕言机询问u, 挑战者回复挑战值c.

在Exp = 0 中,为真实协议,使用Gen(x,y)生成证明,使用RO回复随机谕言机请求(真随机)。

在Exp = 1中,为模拟协议,使用Sim的未判定证明询问来回答,以及Sim的随机谕言机回复。

注意,这里的模拟器是一个独立的组件,其自己负责运行证明模拟与随机谕言机回复,与real word 是完全不同的。【再次注意:这里真实协议中使用的随机谕言机是一个随机函数回复】

则定义敌手对该系统攻击的优势为:

 下面给出NIZK在随机谕言机模型下的定义与Fait-shamir 转换定理:

 

 对于模拟者如何进行谕言机回复,教材给出了一个例子如下图,【详细的证明过程这里依然没有,后续我会自己写一个补上*

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值