Coin flipping and bit commitment

原文教材:

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

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

        系列博客为对该教材的学习笔记(只包括我认为重要的东西)


Coin flipping 

掷硬币协议

       掷硬币协议描述的是这样一种协议,如下图所示,当A与B企图对某一事件达成一种共识,例如A和B去电影院观看电影,但是A与B想要看不同的电影,直观上,A和B可以当场抛投一枚硬币来决定到底去看哪一部电影。但是,如果A和B并不在当面,而是作为通信的双方,如何实现抛硬币协议将采用更为复杂的方法。

                  

       一个简单的两方抛硬币协议如下:

       

         第一步:Bob 选择一个随机比特b0,生成承诺信息c = com(b0) 并发送给Alice. 生成解承诺信息s并保存在本地。

         第二步:Alice 随机选择一个比特b1, 此时要求承诺信息保证不能被学习到任何关于b0的信息,不然Alice会根据b0的信息适应性产生b1,达到利于自己的目的。

         第三步:Bob给Alice传送解承诺信息,然后根据协议生成最终结果,这里要求Bob不能根据获取的Alice输入,修改解承诺信息导致Alice解承诺的值与最初承诺值不同。

bit commitment

      为了实现上述的掷硬币协议,可以使用一种基本的密码学原语“比特承诺协议”。比特承诺协议描述如下图所示,参与方A选择一个自己要承诺的比特b,然后对b进行承诺得到承诺信息c,并将承诺信息c发送给参与方B。参与方A可以将解承诺信息s发送给参与方B。参与方B可以根据收到的解承诺信息对A的承诺比特进行验证。

      这要求该协议必须满足两个基本属性:

     (1)隐藏性(Hiding):承诺信息c 必须能完全隐藏b的信息,其他实体不能从承诺信息c中获取任何关于承诺比特b的信息。

     (2)捆绑性(Binding):参与方A的不能将承诺信息解为其他值。

      一个比特承诺协议的实例:

      

    Tips: 由于伪随机数生成器PRG是安全的,所以Alice无法通过G(s)学习到s。所以不论Bob承诺b0为多少,Alice 不能从c获取任何有益破解s的内容。又由于,PRG是安全的,所以Bob不能找出G(s`) = G(s) 或者 G(s`) = G(s) XOR r。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值