SMPC

综述《Secure Multi-Party Computation:Theory, practice and application》

TOC

  • SMPC
  • OT
  • GC
  • HE

SMPC

f(x_1, x_2, x_3, \cdots) = (y_1, y_2, y_3, \cdots)

SMPC

f(x_1, x_2, x_3, \cdots) = (y_1, y_2, y_3, \cdots)

SMPC

SMPC Security

  • 隐私性
  • 正确性
  • 输入独立性
  • 输出保证性
  • 公平性

理想/现实模拟范式

攻击模型

  • 半诚实对手模型
  • 恶意攻击模型
  • 隐蔽的攻击模型

OT 不经意传输

Oblivious Transfer

OT

OT

OT

OT

\begin{aligned} & Alice: v_0, v_1, s, r_0, r_1 \\ & Bob: i \in \{0,1\}, k \\ & Bob \text{ want to get } v_i \\ & \text{Generate } g \in Z_p, g \text{ is large integer}, p \text{ is large prime number}\\\\ 1. & Alice \to Bob : g_s \\ 2. & Bob \text{ calculate } L_i = \begin{cases} g^k & \text{if }i=0 \\ g^{s-k} & \text{if } i = 1 \end{cases} \\ 3. & Bob \to Alice :L_i \\ 4. & Alice \text{ calculate } C_0 = (g^{r_0},(L_i)^{r_0}\oplus v_0), C_1=(g^{r_1},(g^s/L_i)^{r_1}\oplus v_1) \\ 5. & Alice \to Bob C_0, C_1 \\ 6. & Bob \text{ get } v_i = \begin{cases} C_0[0]^k \oplus C_0[1] = (g^{r_0})^k \oplus (L_i)^{r_0} \oplus v_0 = (g^{r_0})^k \oplus (g^k)^{r_0} \oplus v0 & \text{if }i=0 \\ C_1[0]^k \oplus C_1[1] = (g^{r1})^k \oplus (g^s/L_i)^{r_1} \oplus v_1 = (g^{r_1})^k \oplus (g^k)^{r_1} \oplus v_1 & \text{if } i = 1 \end{cases} \end{aligned}

GC 混淆电路

Garbled Circuit

GC

GC

GC

HE 同态加密

Homomorphic Encryption

We skip it

通用安全多方计算

Yao's

LEGO

不同于Lindell和Pinkas在整个电路中采用cut-and-choose技术的方法,Nielsen和Orlandi提出的LEGO方法依赖于为了获得更好的渐近效率而在门级进行的cut-and-choose测试。这个方法要求电路发生器Gen向接收器发送多个与非门。接收者Eval打开这些门的随机子集以进行检查。如果检查成功,Eval将未打开的门随机排列到桶中,表示冗余的与非门。Eval在Gen的帮助下,将每个桶内的门焊接在一起,然后再将桶焊接在一起,形成一个即使每个桶中有少数门故障,也能正确计算出函数的电路。

应用

云辅助的安全多方计算

通过SMPC确保机器学习的安全

隐私集合计算

安全基因组序列比较

Thanks

SMPC

By yoshino-s