混淆电路的应用(构建多方安全计算协议,进而构造一个银行拍卖系统)

(阅读论文Privacy Perserving Auction and Mechanism Designed)

一、摘要

前面已经写了混淆电路混淆方案的一个构造了。然而,混淆电路有什么实际作用呢?这篇博客给出了一个应用(应用来自于阅读的论文)

二、提出问题

在一个网上拍卖会上,为了是拍卖会利益最大化,采用第二高价的规则(概念后面有介绍)进行拍卖。但是如果拍卖会作弊的话,就会对竞标者很不公平。(比如:最高出价竞标者出价为10000元,拍卖会不管第二高价格是多少,都说第二高的价格为9999元),为了避免这种问题,我们能采取什么办法呢?

三、涉及到的一些基本概念

1、不经意传输协议(OT协议)

OT协议中包括两个团体,我们把它们分别称为Alice和Bob。现在Bob有两个数据,分别为 X 0 X_0 X0 X 1 X_1 X1,Alice具有1bit信息 t t t。通过OT协议,则Alice只能获得 X t ( t ∈ { 0 , 1 } ) X_t(t\in\{0,1\}) Xt(t{0,1}),但是Bob并不知道Alice选择了哪个数据。
扩展:
现在Bob有2n个数据,分别为 X 1 0 , X 1 1 , ⋯   , X n 0 , X n 1 X_1^0,X_1^1,\cdots,X_n^0,X_n^1 X10,X11,,Xn0,Xn1,Alice有 n n n b i t bit bit 信息 x 1 , ⋯   , x n x_1,\cdots,x_n x1,,xn。通过OT协议,Alice能获得 X 1 x 1 , ⋯   , X n x n X_1^{x_1},\cdots,X_n^{x_n} X1x1,,Xnxn,但是Bob并不知道Alice选择了哪些数据。

2、代理人不经意传输协议(Proxy OT协议)

代理人不经意传输协议包括三个团体,我们把他们分别称为Alice,Bob,和Proxy。Bob仍然具有两个数据 X 0 X_0 X0, X 1 X_1 X1,Alice具有1bit信息t。通过这个协议代理人Proxy能够获得 X t X_t Xt,但是它并不知道这是Bob的第几个数据。换句话说:中间人并不知道Alice手中的比特t,也不了解Bob手中的另一个数据。而Alice和Bob通过这个协议都没有获得任何信息。

3、第二高价拍卖

在一个拍卖场中,所有竞标者都秘密的出一次价格。最终拍卖品由最高价竞标者获得,但是需要付的钱是为第二高的价格。这个第二高价拍卖蕴含了一些经济学以及博弈原理(百度百科有介绍)我们这里就不细讲了,主要说一个概念方便理解文章。

4、两方安全计算

两方安全计算:Alice具有x,Bob具有函数f,通过两方安全计算协议,Alice能获得f(x)的值。然而,Bob并不获得任何关于x的信息。

5、用混淆电路构造两方安全计算

Bob: ( F , e , d ) ← G b ( f ) (F,e,d)\leftarrow Gb(f) (F,e,d)Gb(f) ( X 1 0 , X 1 1 , ⋯   , X n 0 , X n 1 ) ← e (X_1^0,X_1^1,\cdots,X_n^0,X_n^1)\leftarrow e X10,X11,,Xn0,Xn1e
然后Bob把 F , d F,d F,d发送给Alice
Alice: ( x 0 , ⋯   , x n ) ← x (x_0,\cdots,x_n)\leftarrow x (x0,,xn)x
然后通过OT协议,Alice获得 ( X 0 , ⋯   , X n ) (X_0,\cdots,X_n) (X0,,Xn)
然后Alice可以计算 y = d ( F ( X ) ) y = d(F(X)) y=d(F(X))

6、用两方安全计算扩展为多方安全计算

如果我们可以引进一个中间人。中间人与每个输入者和混淆电路运用Proxy OT协议,这样就能获得所有的混淆值X,之后就可以计算 y = d ( F ( X ) ) y = d(F(X)) y=d(F(X))
当我们有了安全多放计算方法之后,是不是上面问题就有了解决的思路呢?

四、方案

我们就是利用安全多方计算协议来完成这个方案。
所有投标者就是安全多方计算的输入者,拍卖会就是上面的中间人,混淆电路提供者就是上面的混淆电路部分,这样我们解决问题的方案就大体ok了,

五、OT协议和Proxy OT协议的实现问题

1、离散对数问题

在一个生成元为 g g g的循环群 G G G中,假设 b = g a b = g^a b=ga,当我们已知 b , g b,g b,g的时候,求 a a a是困难的。这就是离散对数问题。

2、离散对数加密

T. ElGamal算法:
Alice在群G中选择一个随机数 r r r,之后计算 g r g^r gr。群生成元 g , g k g,g^k g,gk作为公钥,k作为私钥。
假设Bob要给Alice发送信息m
Bob选择随机数 r r r,计算 g r g^r gr m g k r mg^{kr} mgkr。并把他们发送给Alice
然后Alice可以通过 ( g r ) k (g^r)^k (gr)k,之后计算 ( g r ) k (g^r)^k (gr)k的逆,然后用 m g k r mg^{kr} mgkr乘以 ( g r ) k (g^r)^k (gr)k的逆即可得到信息m。
更加详细的离散对数问题和加密可以看下面这篇博客
离散对数问题
我们的OT协议就是通过T. ElGamal算法扩展得到的(因此我们只介绍了T. ElGamal算法)。

3、OT协议的构造

首先Alice和Bob一起商量一个群G,生成元为 g g g,然后选择一个随机数c。
假设Alice想要获得第 i ( i ∈ { 0 , 1 } ) i(i\in\{0,1\}) ii{0,1} 个的信息,Alice可以在群G中选择一个随机数 k k k,然后计算第 i i i个信息的公钥 K i K_i Ki g k g^k gk,之后我们计算获得第1-i个信息的公钥 K 1 − i K_{1-i} K1i c × ( g k ) − 1 c\times (g^k)^{-1} c×(gk)1.然后发送公钥 K 0 K_0 K0给Bob。
Bob收到 K 0 之 后 K_0之后 K0,计算 K 1 K_1 K1 c × ( K 0 ) − 1 c \times (K_0)^{-1} c×(K0)1,然后利用这两个公钥加密相应的信息 E K 0 ( m 0 ) EK_0(m_0) EK0(m0), E K 1 ( m 1 ) EK_1(m_1) EK1(m1)。把这两个密文发送给Alice。
Alice由于只有第 i i i个信息的私钥。因此只能获得第 i i i个信息。
Bob并不知道Alice解密的是哪一个信息。
OT协议的扩展:只需要多次执行上面协议即可。

4、关于OT协议的讨论

OT协议的安全性问题
我们要求Alice只能获得一个信息,那么也就要求Alice只能知道一个私钥。那么,上述协议怎么确定Alice只能知道一个私钥呢?
如果Alice能够计算出来 c × ( g k ) − 1 c\times (g^k)^{-1} c×(gk)1对应的私钥,即找到一个p,使得 g p = c × ( g k ) − 1 g^p = c\times (g^k)^{-1} gp=c×(gk)1
我们把两边都乘以 g k g^k gk
那么Alice就能解决离散对数问题了(求出c的离散对数)。
因此就保证了Alice只能了解一个私钥,也就是只能求出一个信息。

5、Proxy OT协议的构造

这个协议是OT协议的变体。我们需要加入一个Proxy。
我们把上述OT协议进行稍微的改变即可:
群G公开,生成元为g,然后他们选择一个随机数c
假设Alice想要获得第 i ( i ∈ { 0 , 1 } ) i(i\in\{0,1\}) ii{0,1} 个的信息,Alice可以在群G中选择一个随机数 k k k,然后计算第i个信息的公钥 K i K_i Ki g k g^k gk,之后我们计算获得第1-i个信息的公钥 K 1 − i K_{1-i} K1i c × ( g k ) − 1 c\times (g^k)^{-1} c×(gk)1,然后发送第0个信息的公钥 K 0 K_0 K0给Bob。把生成的私钥发送给Proxy。
Bob收到 K 0 之 后 K_0之后 K0,计算 K 1 K_1 K1 c × K 0 c \times K_0 c×K0,然后利用这两个公钥加密相应的信息 E K 0 ( C ( m 0 ) ) EK_0(\mathcal{C}(m_0)) EK0(C(m0)), E K 1 ( C ( m 1 ) ) EK_1(\mathcal{C}(m_1)) EK1(C(m1))。之后把这两个加密发送给Proxy。其中 C \mathcal{C} C表示错误检测码。
Proxy然后利用私钥分别解密两个密文,得到两个明文。其中错误检测码显示正确的就是需要的信息。

四、一些细节问题

但是还有部分细节问题需要解释一下。
首先,就是我们投标者输入价格的是正整数,但是我们混淆电路的输入是二进制bit数。我们解决这个问题的基本思路就是我们限定投标者的输入价格在0~ 2 l 2^l 2l之间,然后我们就利用 l l l b i t bit bit长的二进制数来表示,把一个输入变成 l l l个混淆电路的输出即可。
其次,我们要求中设定的是投标者只能和拍卖会进行交流,但是在Proxy OT协议中,投标者需要跟混淆电路进行沟通。我们解决办法就是让拍卖会作为一个中间桥梁。但是为了不泄露信息,混淆电路设置一个公钥加密,用混淆电路的公钥加密这个信息,防止泄露信息。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值