【隐私计算】多方安全计算技术基础 | MPC

学习:隐私计算基础理论:多方安全计算技术基础

安全多方计算

  • 多方安全计算(MPC)背景
    • MPC应用举例
    • MPC发展进程
    • 多方安全计算分类
      • 1. 不诚实参与方数量占比
      • 2. 敌手行为
      • 3. 敌手计算能力
      • 4. 输出可达性
      • 5. 计算模型
      • 6. 腐化策略
      • 7.通信网络
    • MPC的两大类设计方法
    • MPC安全模型
  • 混肴电路方法
    • 混淆电路基本概念
    • 混淆电路的已知构造
    • 不经意传输 OT, Oblivious Transfer
    • 不经意传输扩展OT Extension
    • 不经意线性函数计算
    • Yao两方安全计算协议基本框架
    • 恶意敌手模型下2PC协议
    • 常数轮多方安全计算协议
  • 秘密分享方法
    • 常用秘密分享方案
      • 加法秘密分享
      • Shamir秘密分享
      • 复制秘密分享
      • 打包秘密分享
    • 基于秘密分享的MPC协议框架
    • 基于OT的GMW协议
  • 总结及展望

多方安全计算(MPC)背景

Secure Multi-party Computation, MPC

MPC应用举例

百万富翁问题:两方资产比较,不泄露数据,只得到比较结果
基因诊断:通过分析基因数据得到更精准诊断结果。example:Critical Analysis of Genome-Wide Association Studies: Triple Negative Breast Cancer Quae Exempli Causa
模型训练问题:多方数据联合模型、高精度机器学习模型
联合风控问题:金融数据的隐私保护联合分析,大幅度降低金融风险。

MPC发展进程

初始阶段:预想MPC及应用1982-1986:[Yao82]百万富翁问题
第一阶段:可行性结果与基本框架1986-1988:[Yao86,GMW87]混淆电路、加法秘密分享
    1988-1990:[BGW88,CCD88,RB89]诚实大多数MPC协议
第二阶段:理论问题研究1990-2003:[BMR90]多方混淆电路
第三阶段:高效MPC协议设计应用2003-2022:[MNPS04](首个MPC实现、1.5s解决百万富翁问题LAN)多种MPC实现和开源库

多方安全计算分类

  1. 不诚实参与方数量
  2. 敌手(即攻击者)行为
  3. 敌手计算能力
  4. 输出可达性
  5. 计算模型
  6. 通信模型
  7. 腐化策略

1. 不诚实参与方数量占比

所有参与方n,敌手t
· 诚实大多数 t < n/2
· 不诚实大多数 t >= n/2 (通常 t = n-1 )

2. 敌手行为

· 半诚实敌手:被动攻击、按照协议规定执行、可根据协议记录攻击隐私性
· 恶意敌手:主动攻击、执行任意攻击、发送任意消息

3. 敌手计算能力

· 概率多项式时间:计算安全协议(包括 不诚实大多数、诚实大多数)
· 无限计算能力:信息论安全协议(仅诚实大多数)

4. 输出可达性

· t >= n/2 中止安全 (Security with abort):恶意实体获得输出后,可终止协议,使得诚实实体不能获得输出
· t < n/2 公平性 (Fairness) :如果一个实体获得输出,那么所有实体获得输出
  保证输出传送 (Guaranteed output delivery) :所有实体一定获得输出

大部分高效的MPC协议考虑中止安全性

5. 计算模型

大部分MPC协议考虑电路模型:
    · 布尔电路:由逻辑门 (XOR、AND) 组成的电路
    · 算术电路:域/环上操作 (ADD、MULT) 组成的电路
RAM-MPC研究相对较少,适合数据库输入:
    RAM程序:由读、写操作 (Read、Write) 组成的程序
【隐私计算】多方安全计算技术基础 | MPC_第1张图片

6. 腐化策略

(攻击者确定攻破并控制参与方策略)
· 静态腐化 (Static corruption) :被腐化实体在协议运行前确定
· 自适应腐化 (Adaptive corruption) :敌手在协议运行过程中自适应决定腐化哪些实体

7.通信网络

· 同步网络 (Synchronous) :同一个交互轮的消息在固定延时▲内一定到达
· 异步网络 (Asynchronous) :没有要求同步时钟,也没有要求预先固定的网络延时,更加现实的网络假设( 异步要求t

实际高效的MPC协议主要考虑静态腐化和同步网络

MPC的两大类设计方法

  1. 混淆电路方法
      通信带宽高
      常数轮复杂度
  2. 秘密分享方法
      通信带宽低、吞吐率高
      轮数与电路深度成线性关系

部分MPC协议融合了两种设计方法

MPC安全模型

密码学的算法和协议一般都有安全证明,假设有一些困难问题,基于困难问题设计出的协议,证明困难问题是困难的,则协议是安全的。如果协议的安全性被打破,那么底层困难问题的困难性也就被打破。

MPC如何实现安全协议的证明?
引入真实世界和理想世界,真实世界就是我们所设计的MPC协议,各个参与方之间互相通信,最后执行获得协议的输出。理想世界中我们想象有一个可信的第三方,大家把输入发给他,他在把最终输出发送给大家。从理想世界模拟出的view和真实世界是不可区分的,即除了协议输出之外不泄露其他秘密信息。
【隐私计算】多方安全计算技术基础 | MPC_第2张图片

进阶研读:UC模型
([Can01] Ran Canetti. Universally composable security: a new paradigm for cryptographic protocols. In FOCS 2001.)
通用可组合模型,用到了模块化的思想来设计更为复杂的安全协议,把协议拆分成若干子部分,如果每个子部分都具有UC安全的性质,那组合起来也是安全的

进阶研读:MPC分类与国内外研究进展参考一下综述论文:
[Lin21] Yehuda Lindell. Secure multiparty computation. In Communications of the ACM 2021
[Ors20] Emmanuela Orsini. Efficient, actively secure MPC with a dishonest majority: A survey. In WAIFI 2020
[FY21] Dengguo Feng and Kang Yang. Concretely Efficient Secure Multi-Party Computation Protocols: Survey and More. In Security and Safety 2021

混肴电路方法

混淆电路基本概念

【隐私计算】多方安全计算技术基础 | MPC_第3张图片
混淆电路是设计常数轮MPC协议的基础组件。混淆电路的混淆方案可以理解为有四个算法:

  1. Garble算法
      Input:计算的函数对应的电路C
      Output:被混淆的电路GC,编码信息e,解码信息d
  2. Garble算法
      Input:加密x+编码信息e
      Output:加密后输入X
  3. Eval算法
      Input:混淆电路GC+编码后加密后输入X
      Output:加密后结果Y
  4. Decode算法
      Input:加密输出Y+解码信息d
      Output:最终计算结果明文y=C(x)

混淆电路的已知构造

【隐私计算】多方安全计算技术基础 | MPC_第4张图片可以理解混淆电路是电路加密的方法,每一个逻辑门的密文的大小对应了协议通信的效率,安全参数k(kappa密钥长度)

进阶研读:
· Free-XOR: Vladimir Kolesnikov,Thomas Schneider.Improved garbled circuit: Free XOR gates and applications.In ICALP 2008.
· Half-Gates: Samee ZahurMike RosulekDavid Evans.Two halves make a whole. In EUROCRYPT 2015.
· Three-Halves: Mike Rosulek, Lawrence Roy.Three halves make a whole? beating the half-gates lower bound for garbled circuits. In CRYPTO 2021

不经意传输 OT, Oblivious Transfer

Garbler需要将编码信息“不经意”传送给Evaluator
【隐私计算】多方安全计算技术基础 | MPC_第5张图片发送方两个消息m_0,m_1
接收方输入选择b(0或1),从发送方的两个消息中选一个得到m_b
安全要求:发送方不能知道接收方的选择,接收方只能选择一个

OT变形:
ROT(Random OT):在OT基础上,将OT的消息和选择作随机化(选择不是接收方选择而是随机选择)
COT(Correlated OT):在ROT基础上,r_0和r_1是相关的,接收方最终得到r_b

不经意传输扩展OT Extension

在这里插入图片描述IKNP类(最早OT扩展):
 优点:计算量小,通过PRG实现OT扩展
 缺点:通信量大,与输出长度呈线性关系

PCG类
 优点:通信量小,达到亚线性通信复杂度
 缺点:计算量较大,需要一次性计算所有输出

PCF类
 优点:亚线性通信复杂度,可以分批次按需计算输出
  缺点:计算量相当大

目前:计算几百/几千个OTs,IKNP类协议效率更高;计算上万OTs,PCG类型协议效率高
进阶研读:
[BCG+22] Elette Boyle,Geoffroy Couteau,Niv Gilboa,Yuval IshaiLisa KohlNicolas Resch, Peter Scholl. Correlated Pseudorandomness from Expand-Accumulate Codes. in CRYPTO 2022.
[BCG+19] Elette Boyle,Geoffroy Couteau,Niv Gilboa,Yuval lshai,Lisa Kohl,Peter Scholl. Efficient pseudorandom correlation generators:Silent OT extension and more. In CRYPTO 2019.

不经意线性函数计算

【隐私计算】多方安全计算技术基础 | MPC_第6张图片协议比较:
【隐私计算】多方安全计算技术基础 | MPC_第7张图片
比特分解比同态加密通信更大,但计算更快

Yao两方安全计算协议基本框架

【隐私计算】多方安全计算技术基础 | MPC_第8张图片思考题:给定混淆方案的安全性质,如何证明Yao 2PC协议在半诚实敌手模型下的安全性

恶意敌手模型下2PC协议

· Yao 2PC协议在半诚实敌手模型下安全
· 如何检测Garbler的恶意行为
· Cut-and-Choose(C&C)方法
【隐私计算】多方安全计算技术基础 | MPC_第9张图片
电路级C&C
· 计算n个GCs
· 随机选择一半打开检查正确性(如果GC是错误的,没有正确进行Garble,则执行结束)
· 若打开的都是正确的,则剩下一半用于计算
【隐私计算】多方安全计算技术基础 | MPC_第10张图片
门级C&C
· 计算n个混淆AND门
· 随机选择一半打开检擦正确性
· 将剩下一半混淆AND门粘合成一个GC
【隐私计算】多方安全计算技术基础 | MPC_第11张图片

当前技术:认证混淆电路方法,效率优于C&C方法
· 通过信息论消息认证码(IT-MAC)实现电路认证,保证计算结果正确性
· 通过混淆电路的分布式生成,抵抗选择失败攻击(敌手猜测部分比特,观察协议是否中止)

协议三个阶段:
【隐私计算】多方安全计算技术基础 | MPC_第12张图片
进阶研读:
[KRRW18]Jonathan Katz,Samuel Ranellucci,Mike Rosulek,iao Wang. Optimizing authenticated garbling for faster secure two-party computation. In CRYPTO 2018.
[DILO22] Samuel Dittmer,Yuval Ishai, Steve Lu,Rafail Ostrovsky. Authenticated garbling from simple correlations. In CRYPTO 2022.

常数轮多方安全计算协议

· 核心问题:存在多个Garble,如何抵抗合谋攻击?
· 解决思路:所有参与方共同计算混淆电路

BMR
· 对称形:所有参与方都能计算GC
· 通信带宽: 4 n 2 ∣ C ∣ k 4n^2|C|k 4n2Ck比特
· 在线轮数:2轮
WRK
· 非对称形:只有1方能计算GC
· 通信带宽: 4 n ( n − 1 ) ∣ C ∣ k 4n(n-1)|C|k 4n(n1)Ck比特
· 在线轮数:2-4轮

进阶研读:
[HSS17] Carmit Hazay, Peter Scholl,Eduardo Soria-Vazquez. Low Cost Constant Round MPC Combining BMR and Oblivious Transfer. In ASIACRYPT 2017.
[WRK17] Xiao Wang,Samuel Ranellucci,Jonathan Katz.Global-scale secure multiparty computation. In ACM CCS 2017.
[YWZ20] Kang Yang,Xiao Wangjiang Zhang. More efficient MPC from improved triple generation and authenticated garbling. In ACM CCS 2020.

秘密分享方法

线性秘密分享(LSSS)方案
· Share(x)→[x]= ( x 1 , . . . , x n ) (x_1,...,x_n) (x1,...,xn) 通过分享算法把需要分享的秘密x拆分并给到各个参与方
· Reconstruct([x],i)→x 一定数量的参与方可以通过重构算法恢复出秘密
· Open([x])→x

特点:t门限数
隐私性:任意少于t+1个实体无法获得秘密任何信息
正确性:任意t+1个实体可恢复秘密
加法同态性:[y]= Σ c h ⋅ [ x h ] + c 0 Σc_h · [x_h]+c_0 Σch[xh]+c0
【隐私计算】多方安全计算技术基础 | MPC_第13张图片

常用秘密分享方案

加法秘密分享

x = x 1 + . . . + x n x=x_1+...+x_n x=x1+...+xn
P i P_i Pi获得 x i x_i xi
常用于不诚实大多数MPC

Shamir秘密分享

f ( X ) = x + c 1 ⋅ X + . . . + c t ⋅ X t f(X)=x+c_1 · X+...+c_t · X^t f(X)=x+c1X+...+ctXt
P i P_i Pi获得 x i = f ( i ) x_i=f(i) xi=f(i),拉格朗日插值重构
多用于诚实大多数MPC

复制秘密分享

· Mitsuru Ito, Akira Saito and Takao Nishizeki.Secret sharing scheme realizing general access structure. Electron Communjpn /// 1989
· Ronald Cramer,Ivan Damgảrd,Yuval Ishai.Share Conversion,Pseudorandom Secret-Sharing and Applications to Secure Computation. TCC 2005

打包秘密分享

· Matthew Franklin and Moti Yung. Communication complexity of secure computation. STOC 1992
· Vipul Goyal,Antigoni Polychroniadou and Yifan Song.Unconditional Communication-Efficient MPC via Hall’s Marriage Theorem. CRYPTO 2021

基于秘密分享的MPC协议框架

半诚实MPC协议的设计基本思路:所有电路线值均被线性秘密分享,保证隐私性
· 输入处理:对于 P i P_i Pi的每个输入x, P i P_i Pi运行[x]⬅Share(x)
· 电路计算:
【隐私计算】多方安全计算技术基础 | MPC_第14张图片电路中可分为线性的加法门和非线性的乘法门,加法同态性各参与方自行对应的share进行加法,乘法需要调用乘法子协议进行通信交互多方计算

· 输入处理:对于 P i P_i Pi的每个输出y,所有参与方运行y=Reconstruct([y],i)

基于OT的GMW协议

【隐私计算】多方安全计算技术基础 | MPC_第15张图片

总结及展望

【隐私计算】多方安全计算技术基础 | MPC_第16张图片

  1. 通信是安全多方计算的主要效率瓶颈
  2. 安全多方计算协议的实际性能将被不断提高(与明文计算的性能差距不断缩小)
  3. 部分MPC协议在恶意敌手模型下的通信效率已经达到或接近半诚实敌手模型下协议的效率

×
4. 两方混淆电路通信开销已达到≈1.5k,如何突破该通信下界?
5. 不少恶意敌手模型下安全多方计算协议的性能比半诚实敌手模型下MPC协议慢数倍(尤其是不诚实大多数),如何突破?
6. 不同类型MPC协议具有不同的效率和安全优势,同时MPC协议设计在不断更新中,给标准化带来巨大困扰

你可能感兴趣的:(Cryptology,安全,网络安全)