Lec 13安全多方计算(MPC)
Lec 13 安全多方计算(MPC)
MIT 6.5610 · Lecture 13 · 关键词:MPC、理想/现实范式、Yao 混淆电路、不经意传输、BGW、半诚实/恶意敌手 说明:以标准处理撰写(Yao 1986 / BGW 1988),要点与本课"Secure Multiparty Computation"一致。
TL;DR
- 安全多方计算(MPC)让互不信任的参与者只获知约定函数的输出,而不暴露各自输入。
- Yao 混淆电路与不经意传输适合两方计算,BGW 用秘密共享支持多方计算。
- 半诚实与恶意安全是不同威胁模型;实现成本随对手能力、参与方数量和网络条件变化。
0. 问题
方各持私有输入 ,想共同计算 ,除输出外不泄露各自输入的任何信息。经典例:百万富翁问题(比谁更富而不报具体数额)。
1. 安全定义:理想/现实范式
定义
理想世界:存在可信第三方 ,各方把输入交给 , 算 并只返回输出。 现实世界:无 ,各方按协议交互。 安全:现实世界中敌手能造成的危害,都能被理想世界中的模拟器复现 → 协议"如同存在可信第三方"。
敌手模型:**半诚实(honest-but-curious)**遵守协议但想窥探;**恶意(malicious)**可任意偏离。
2. 两方:Yao 混淆电路(Garbled Circuits)
定理
Yao 协议(两方,半诚实)
- 混淆方 把 表示为布尔电路;为每条线的 0/1 各取一个随机标签(label)。对每个门,用输入线标签加密输出线标签,做成乱序的"混淆真值表"。
- 混淆方把电路 + 自己输入对应的标签发给对方。
- 求值方 通过**不经意传输(OT)**获取自己输入对应的标签(拿到标签却不暴露选择,混淆方也不知对方输入)。
- 求值方逐门解密,只能解开对应实际输入的那一行,最终得到输出标签 → 翻译成明文输出。 :::
🔎 不经意传输(Oblivious Transfer, OT):发送方有 ,接收方选 得 ,发送方不知 、接收方不知 。OT 是 MPC 的"完备原语"(有 OT 即可做任意 MPC)。 标签的随机性保证:求值方每条线只持有一个标签、不知其代表 0 还是 1,故除最终输出外学不到中间值。
3. 多方:BGW(基于秘密共享)
BGW 思路(基于 Shamir 共享)
- 各方用 Shamir 把自己的输入秘密共享给所有方。
- 加法门:各方本地把份额相加(Shamir 线性性,免通信)。
- 乘法门:份额相乘会让多项式次数翻倍 → 需一轮重分享/降次交互来恢复 次。
- 电路算完后各方公开输出线的份额,重构得 。 :::
🔎 BGW 在信息论意义下安全(半诚实下容忍 ,恶意下 )。加法免费、乘法要通信 —— 故 MPC 的成本主要看电路中乘法门的数量与深度。
4. 工程视角
- MPC 应用:联合风控/反欺诈(多银行不共享原始数据)、隐私集合求交(PSI,如隐私通讯录匹配)、门限签名钱包、隐私拍卖、隐私统计。
- 路线取舍:Yao 常数轮、适合两方布尔电路;BGW/SPDZ 适合多方算术电路。
- 与 FHE 对比:FHE 单方外包计算但慢;MPC 多方在线交互、通信开销大但常更快。恶意安全需额外的 MAC/承诺/ZK(如 SPDZ)。
5. 安全多方计算小结
- MPC:多方算 而不泄露各自输入;安全 = 现实可被理想模拟器复现。
- 两方 Yao:混淆电路 + OT;OT 是 MPC 完备原语。
- 多方 BGW:Shamir 共享,加法本地、乘法需降次交互。
- 成本看乘法门;恶意安全需额外机制。
MPC 的安全定义同时规定允许泄露的输出;选错函数,即使协议完美安全也可能暴露个人输入。