理论教育 使用单向函数实现比特承诺

使用单向函数实现比特承诺

时间:2023-10-28 理论教育 版权反馈
【摘要】:本协议利用单向函数。Alice产生消息,该消息由她的随机串和她希望承诺的比特组成。Alice在第步使用单向函数阻止Bob对函数求逆并确定这个比特。Bob计算消息的单向函数值,并将该值及R1与第步收到的值及随机串比较。如匹配,则比特有效。Alice发送给Bob一个对比特承诺的消息以及另一揭示该比特的消息。如果Alice不保持R2是秘密的,那么Bob能够计算H和H,并比较哪一个等于他从Alice那里接收的。

使用单向函数实现比特承诺

本协议利用单向函数。

(1)Alice产生两个随机比特串:R1和R2

(2)Alice产生消息(R1,R2,b),该消息由她的随机串和她希望承诺的比特(实际上可能是几比特)组成。

(3)Alice计算消息的单向函数值H(R1,R2,b),将结果以及其中一个随机串(比如R1)发送给Bob。

这个来自Alice的传送就是承诺证据。Alice在第(3)步使用单向函数阻止Bob对函数求逆并确定这个比特。

当Alice要出示她的比特的时候,协议继续。(www.daowen.com)

(4)Alice将原消息(R1,R2,b)发给Bob。

(5)Bob计算消息的单向函数值,并将该值及R1与第(3)步收到的值及随机串比较。如匹配,则比特有效。

这个协议较前面一个的优点在于Bob不必发送任何消息。Alice发送给Bob一个对比特承诺的消息以及另一揭示该比特的消息。

这里不需要Bob的随机串,因为Alice承诺的结果是对消息进行单向函数变换得到的。Alice不可能欺骗,并找到另一个消息(R1,R′1,b′),满足

通过把R1发给Bob,Alice对b的值作了承诺。如果Alice不保持R2是秘密的,那么Bob能够计算H(R1,R2,b′)和H(R1,R2,b),并比较哪一个等于他从Alice那里接收的。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈