问题(次价密封投标拍卖)
Alice and Bob decide to participate in an auction for a rare porcelain vase, along with other bidders.
works as follows: each participant submits a secret sealed bid for the vase. Once all the bids are in, the party who submitted the highest bid gets the vase, and the price paid is the second-highest bid.
problem:When all participants are in a same room and submit their bid in a sealed envelop, this is secure, but if this operation is doing online , it is not secure
Alice和Bob参加拍卖会,拍卖会的工作形式:每一个参加者都提供密封的竞争价格,提供最高价格的拍卖者赢得花瓶,并以第二高的价格提交。假设竞争拍卖者没有合谋,在拍卖结束前也不知道其他拍卖者提供的价格
问题:拍卖者都集中在一个屋子里面并且提交的价格使用信封密封好是安全的,如果拍卖者远程进行则如何保证安全性
解决方案(a commitment scheme)
过程:为了保证隐私性,Alice提交消息m通过函数C计算出(c,o)其中 m ∈ M,Alice将承诺c发送给Bob,自己保留解锁字符串o。当Alice需要打开承诺时,将o和m发送给Bob,Bob通过V (m, c, o)验证是否正确打开了承诺
1.绑定性:生成承诺c后,Alice只能将其打开为单个消息。对于每个输出5元组(c,m1,o1,m2,o2)的有效对手A而言,优势BINDadv[A, C] = Pr[m1 != m2 and V (m1, c, o1) = v(m2, c, o2) = accept] 可以忽略不计(每个m只能生成一对(c,o))
2.隐秘性:根据m生成的承诺字符串c不能泄露m的信息,使用语义安全证明。
定义
问题:这个方案看起来是安全的,其实只满足了Binding因为满足语义安全。有可能找到一个承诺字符串c和两个密钥k1和k2,使得D(k1,c)!= D(k2,c)并且两个解密都在M中。这不影响加密的安全性,但让攻击者打开对两个不同消息的承诺c,这会破坏绑定(binding)属性。这表明加密和承诺虽然相互关联,但却是完全不同。
我们说OTP是一种非绑定加密方案(non-binding encryption scheme ),因为派生的承诺方案是非绑定的。许多其他加密方案也可以是为非绑定性的(non-binding )。
实例(non-binding example)
A simple auction
如何使用安全的承诺方案C =(C,V)来实施简单的可验证的密封式竞价拍卖,而无需可信拍卖行。每个参与者在公开的公告板上张贴对他或她竞标的承诺(例如,在拍卖行网站上托管)。承诺隐藏性可确保不透露参与者的出价。承诺绑定性可确保参与者无法再更改出价。一旦所有投标都发布,拍卖行便要求所有参与者公开承诺,并确定中标者。所有的公开结果都张贴在公告板上,以便参与者可以审计。如果参与者在一定期限内未公开承诺,则其投标将被放弃。
当然,公告板需要进行身份验证,以便承诺来自参与者,而不是伪装成参与者的人。这可以使用数字签名来完成。还需要确保一旦在公告板上发布消息,就不能将其删除,从而不会恶意删除出价。
这种拍卖计划的缺点是,它迫使所有人,甚至是非优胜者,都公开披露其出价。这可以通过使用私有的密封式投标拍卖方案(private sealed bid auction scheme )来解决,该方案即使在拍卖结束后仍保密(安全多方计算)。
事实证明,即使我们使用安全承诺方案,上述简单拍卖方案也可能是不安全的。让我们首先使用抗碰撞性来构造两个安全的承诺方案,然后在本节末尾再次查看此次拍卖。
A commitment scheme from collision resistance
如果H抗碰撞,则CH是有绑定性的承诺。击败绑定性的有效对手A给H造成碰撞。事实上,假设A输出两对(m1,o1)和(m2,o2),其中m1!= m2,但是V (m1, c, o1) = v(m2, c, o2) = accept,for some commitment string c.那么 H(h1, o1) = c = H(m2, o2) 是H的碰撞。因为绑定属性取决于计算假设,所以我们说CH是计算绑定(Ccomputationally binding. )
对于隐藏性,我们希望H满足某个统计属性。如果对于所有m1,m2∈M,分布{H(m1,o)}与分布{H(m2,o)}在统计上是无法区分的,则H是输入隐藏的,其中o←R。如果输入H 没有隐藏,那么任何对手A(甚至是无界的对手)都不会破坏派生的承诺方案CH的语义安全性。我们说承诺方案是无条件隐藏的(unconditionally hiding)