阅读论文(Foundation of Garbled Circuits)
一、往期回顾
混淆电路论文学习笔记——part1
混淆电路论文学习笔记——part2
混淆电路论文学习笔记——part3
前面几部分我们主要介绍了混淆方案的一些基本的概念以及几个安全性概念之间的关系,以及给出了混淆方案的具体实现,接下来我们就说一下混淆方案的部分具体应用
二、两方协议SFE和PFE介绍
1、two-part SFE定义
SFE(Secure Function Evaluation),即安全函数计算。通常来说,在两方协议SFE中,一般包含两个团体。团体一和团体二都具有各自的输入 x 1 , x 2 x_1,x_2 x1,x2。并且有一个公开的函数f,最终通过这个协议,我们需要让团体一获得结果 f ( x 1 ∣ ∣ x 2 ) f(x_1||x_2) f(x1∣∣x2)。团体二什么也没获得。
2、two-part PFE定义
PFE(Private Function Evaluation),即隐私函数计算。通常在两方协议PFE中,一般包括两个团体。团体一具有输入 x x x,团体二具有函数 f f f。最终通过这个协议,我们需要让团体一获得 f ( x ) f(x) f(x),而团体二什么也没获得。
3、OT协议(PFE特例)
OT(obliviousness transfer),即不经意传输。就是因为不经意传输用的是oblivious,因此我才把obliviousness翻译为不经意性。
两输入一输出不经意传输协议指的是团体一具有1个秘密比特s,团体二具有输入
X
0
,
X
1
X^0,X^1
X0,X1。通过这个协议,团体一可以获得
X
s
X^s
Xs,而团体二并不知道团体一获得的究竟是哪一个信息。
从上面二输入一输出不经意传输协议我们可以很容易的进行扩展,就是团体一具有n个秘密比特
x
1
,
⋯
,
x
n
x_1,\cdots,x_n
x1,⋯,xn,团体二具有输入
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。协议最终结果是团体一获得
X
1
x
1
,
⋯
,
X
n
x
n
X_1^{x_1},\cdots,X_n^{x_n}
X1x1,⋯,Xnxn,而团体二并不知道团体一获得的是哪些数据。(上面协议是不是很像我们混淆方案程序Gb中的一部分代码。是的,这就是为什么说混淆电路依赖OT协议)
4、通过混淆方案和OT协议,如何构造PFE。
团体二通过Gb函数获得
F
,
e
,
d
F,e,d
F,e,d,然后把F和d发送给团体一。之后团体二把e赋值为
(
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),之后通过OT协议发送给团体一,这样团体一就可以从中选择
(
X
1
x
1
⋯
X
n
x
n
)
(X_1^{x_1}\cdots X_n^{x_n})
(X1x1⋯Xnxn)。并计算
d
(
F
(
X
)
)
d(F(X))
d(F(X)),即可获得最终f(x)。
论文中说使用通用电路,PFE与SFE是等价的(这点其实并不是很理解,有哪位大佬懂的话可以讲一下)