Hash函数和承诺方案

哈希函数能不能直接用于构造承诺方案? 答案是不能.

承诺方案具有两个性质, binding和hiding, 用通俗的语言来说.

  • binding: P P P 不能把同一个承诺值 c c c 打开成 2 2 2 个消息.
  • hiding: V V V 不能区分两个消息的承诺值.

我们看下面一个方案, 对于消息 m m m 和随机数 r r r,

  • Commit: c = C ( m , r ) c = C(m, r) c=C(m,r).
  • Reveal: Reveal r , m r, m r,m, and verify that c = C ( m , r ) c = C(m, r) c=C(m,r) or not.

这个方案有什么样的性质取决于我们对hash函数做什么样的要求.

  1. 抗碰撞. 这是哈希函数最基本的性质, 在这个要求下, 承诺方案是Computational binding的, 但是hiding的性质无法保证. 因为只要求抗碰撞, hash函数是很有可能泄露消息的一些比特的, 区分是可能的. 从另一个角度来说, 对于 c = C ( m , r ) , m ′ ≠ m c = C(m, r), m '\neq m c=C(m,r),m=m
  2. Random oracle. 这是一个比较强的假设, 首先 Computational binding肯定是有的. 另外在这个假设下, 貌似可以达到Computational Hiding(我不确定)参考1.
    但是不保证Perfect Hiding, 这是因为Perfect Hiding要求对于 c = C ( m , r ) c = C(m, r) c=C(m,r), 一定存在 m ′ ≠ m m' \neq m m=m, 使得 C ( m ′ , r ′ ) = C ( m , r ) C(m', r') = C(m, r) C(m,r)=C(m,r). Random Oracle不保证这个.

参考:

  1. https://crypto.stackexchange.com/questions/78378/
  2. https://crypto.stackexchange.com/questions/6790/
  • 21
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值