admin管理员组文章数量:1565817
原文教材:
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。
本文标签: flippingCoincommitmentbit
版权声明:本文标题:Coin flipping and bit commitment 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1726703286a1081373.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论