目录
MPC基础概念及基础组件
1.安全多方计算定义与应用
-
安全多方计算(MPC)是80年代提出的一个概念
-
MPC已成为大数据时代实现隐私计算的核心技术之一
(y1,...,y5)=f(x1,...,x5) #隐私性:除了函数输出外,不泄漏任何输入数据的信息 #正确性:保证协议输出为指定函数的计算结果
安全多方计算(MPC)能打破数据孤岛,实现数据流通,保护数据隐私,已在诸多领域实现实际应用。
2.安全多方计算分类
(1) 敌人行为分类:
1. 半诚实敌手:按照协议描述执行,但试图从协议记录中获取信息 2. 恶意敌手:可以执行任何攻击,发送任意的消息
(2)腐化门限t:
1. 诚实大多数:t<n/2(n是总人数,t是腐化人数) 2. 不诚实大多数:n/2<=t<n
(3)输出可达性
1. 中止安全(Security with abort):腐化实体获得输出后,可以阻止诚实实体获得输出 2. 公平性(Fairness):要么腐化实体和诚实实体均获得输出,要么他们均没有输出 3. 保证输出传递(Guaranteed output delivery):所有诚实实体总是获得输出
Tips:
-
不诚实大多数情况仅能达到中止安全
-
诚实大多数情况能达到公平性和保证输出传送
(4)计算模型:
1. 布尔电路:由AND,XOR,NOT等逻辑门组成 2. 算数电路:由ADD,MULT等运算组成,通常定义在域F上或环Z2k(即mod 2^k)上 3. RAM程序:由read,write等指令组成的程序
Tips:
-
大部分MPC协议考虑布尔电路模型和算数电路模型
-
目前,只有少数MPC协议针对RAM计算模型设计,适合于输入为数据库的应用场景
(5)敌手计算能力:
-
概率多项式时间(PPT):任意PPT敌手不能打破协议安全性
-
无限计算能力(信息论安全或无条件安全):即使无限计算能力的敌手也不能打破协议安全性(抵抗量子计算机攻击)
-
信息论安全MPC协议需要在诚实大多数模型下设计
-
(6)腐化策略:
-
静态腐化(Static Corruption):在协议运行前,敌手决定腐化(Corrupt)哪些实体
-
自适应腐化(Adaptive Corruption):在协议运行过程中,敌手能自适应决定腐化哪些实体
-
已知实际高效的MPC协议均考虑静态腐化
-
(7)网络模型:
-
同步(Synchronous)网络模型:同一个交互轮的消息在固定演出时\Delta内一定达到
-
异步(Asynchronous)网络模型:没有要求同步时钟,也没有要求预先固定的网络延迟时,更加现实的网络假设(通常要求t<n/3)
-
已知实际高效的MPC协议均考虑同步网络模型
-
MPC基本设计方法:
-
秘密分享:
-
通信量低,吞吐率高
-
轮数与电路深度成线性关系
-
一般适合低延迟网络
-
-
混淆电路:
-
通信带宽高
-
常数轮
-
一般适合高延迟网络
-
-
两者混合方法:
-
利用两者各自的优点
-
3.安全多方计算基础组件
a、(n,t)门限线性秘密分享
LSSS定义:
-
分享算法[x]<-Share(x):Pi获得份额xi,其中共有n个参与方P1,...Pn.
-
重构算法x<-Rec([x],i):Pi获得秘密值x(要求至少t+1个份额)
-
打开算法x<-Open([x]):所有参与方获得x
线性性质:
-
[z]=[x]+[y],[z]=[x]+c,[z]=c·[x]均能够本地计算,无需通信,其中c为公开的常数
-
应用于MPC协议设计中,加法等线性门时free的(即无需通信)
1⃣️加法秘密分享:
-
主要用在不诚实大多数MPC协议中(t=n-1)
-
x=x1+x2+x3+···+xn,其中x为秘密(secret),xi为份额(share)
2⃣️重复秘密分享:
-
主要用在诚实大多数MPC协议中(t<n/2,n较小);以n=3,t=1为例
-
x=x1+x2+x3:P1持有(x2,x3),p2持有(x1,x3),P3持有(x1,x2)
3⃣️Shamir秘密分享及其推广:
-
主要用在诚实大多数MPC协议中(t+1<=(n+1)/2)
-
x=f(0),xi=f(a1),其中f为次数t的随机多项式,a1,...,an为不同的非零域元素。
-
推广形式(打包秘密分享,packed secret sharing):xi=f(bi),xi =f(ai),一个多项式分享k个秘密x1,...,xk,其中b1,...,bk,a1,...,an为不同域元素(更小的腐化门限t+k<=(n+1)/2)
三种秘密分享的共性:
-
均满足线性性质(加法同态性),均可用于设计高效的MPC协议
三种秘密分享的区别:
-
针对恶意敌手,加法秘密分享需要结合信息论消息认证码(IT-MAC)实现秘密的认证,Shamir及重复秘密分享直接保证了秘密的认证性(由于大部分实体是诚实的,重构需要t+1/n个分享)
-
重复秘密分享适合于少量参与方(分享尺寸与参与方数量成指数关系,例如:3-9个参与方),Shamir秘密分享适合于大量参与方。
秘密重构Rec([x],i):
-
Pi从安全通道收到x的分享[x](记[x]为秘密x的分享)
-
加法秘密分享:x=x1 +x2 +...+xn(认证性:用IT-MAC验证)
-
Shamir秘密分享:拉格朗日插值法计算x=f(0)(认证性:验证所有分享落在多项式f上)
-
重复秘密分享:x=x1 +x2 +x3(认证性:验证分享的一致性)
-
b、信息论消息认证码(IT-MAC)
-
BDOZ:
M=K+x · \Delta \inF
-
\Delta:全局密钥
-
K:本地密钥,仅用一次
-
x:消息
-
M:消息认证码(MAC)
Pi的份额xi被Pj的密钥认证:Mj[xi]=KJ[Xi] · \Deltaj(相互认证)
-
适用于设计恶意敌手模型下常数轮的MPC协议
-
通常用Hash函数实现批量认证(认证通信开销常数小)
-
-
SPDZ:
M=x · \Delta \in F
-
\Delta:全局密钥
-
x:消息
-
M:消息认证码(MAC)
-
更紧致
认证码、秘密和全局密钥均被加分分享:\sumi Mi= \sumi xi · \sumi \Deltai,i\in[1,n]
-
适用于设计SPDZ类MPC协议,用IT-MAC转化半诚实GMW协议到恶意安全
-
通常用随机线性组合方法实现批量认证(认证通信开销常数小)
-
c、零知识证明
证明者与验证者发生交互,证明者有(x,w),x是结论,w是证明,验证者需要验证x是否正确,证明者在与验证者交互过程中,让验证者确认结果是否正确但是不向其泄漏证明w,也就是说验证者知识没有增长。
-
完备性(Completeness):如果证明者诚实运行协议,验证者一定会接收x结论
-
可靠性(Soundness):恶意证明者不能让验证者接受x结论
-
零知识性(Zero Knowledge):存在一个模拟器,可以模拟出交互过程,也可以产生结果,这结果是计算不可区分的
d、混淆电路
-
C为电路,GC为混淆电路
-
e编码信息,d解码信息
-
x电路输入,y电路输出
-
X输入编码,Y输出编码
-
Garble混淆算法
-
Encode编码算法
-
Decode解码算法
-
Eval计算算法
e、投币(coin-tossing)协议
-
多个参与方共同生成一个随机数r
-
不诚实参与方(即合谋方)不能控制随机数,使其偏离既定分布
-
例如:产生均匀随机串r \in {0,1}n
f、同态加密(HE)
用户将信息m进行加密c=Enc(m)发给服务器,服务器进行同态加密,进行f运算,得到c'=Enc(f(m))发送给用户,用户进行解密得到f(m)=Dec(c')
用户不用进行f运算,服务器进行f运算而不知道具体的m是多少。
-
全同态加密(FHE):f为任意电路(包括乘法、加法等运算)
-
层级同态加密(Leveled FHE):f为指定深度的任意电路
-
类同态加密(SHE):f为深度浅的任意电路
-
加法同态加密(AHE):f为只包括加法等线性操作的电路
Tips:
-
实际高效MPC协议主要采用后两者。
4.不经意传输及其算数变形
推广:
-
OT完备性:OT能用于建立关于任何函数的MPC协议
-
1-out-of-2 OT -> 1-out-of-N OT -> k-out-of N OT
-
OT依赖于公钥密码组件
-
OT能基于不同困难假设构造
a、基础OT协议举例:Naor-Pinkas协议
-
接收者从里面选一个想要知道的信息b\in{0,1},然后对其进行加密处理PKb=gk,PK1-b=C/PKb,这里为了防止发送者知道你想要哪个信息进行混淆。
-
发送者收到PKb和PK1-b后,先进行预计算,gr,然后分别对PKb和PK1-b进行处理(PKb)r,和(PK1-b)r,在分别生成Eb=H((PKb)r,0)\bigoplusmb和E1-b=H((PK1-b)r,0)\bigoplusm1-b发送给接收者
-
接受者需要知道的信息mb=H((gr)k,b)\bigoplusEb得到信息,另一个无法解密出来。
-
半诚实敌手模型下可证明安全
-
CDH困难假设,随机预言机模型
不经意传输: - 需要公要密码操作——计算效率低(与对称密码操作比较) - MPC协议需要大量的OTs(如亿级数量),使得基于公钥操作的OT协议效率过低
b、不经意传输扩展(OT Extension)
不经意传输扩展可以解决需要大量的OTs的问题:
-
我们可以根据少量的Base OT(依赖于公钥操作的OT)进行快速交互运算后产生大量的OT
目前常见的扩展OT: IKNP类——PRG:利用伪随机生成器实现扩展 PCG类——LPN:基于LPN问题中噪音的稀疏性实现扩展 PFC类——LPN/DCR/DDH:目前实际效率低
OT类型 | 通信效率 | 计算效率 | 通信轮数 | 困难假设 |
---|---|---|---|---|
IKNP类 | 线性,低 | 线性,高 | O(1) | OWF |
PCG类 | 亚线性,高 | 线性,低 | O(1) | LPN |
PCF类 | 亚线性,高 | 线性,更低 | O(1) | LPN/DCR/DDH的变形 |
大部分OT扩展协议:COT(相关的不经意传输协议)->ROT(随机的不经意传输协议)->OT(不经意传输协议)
c、随机不经意传输(ROT)
下图内部是ROT,总体是ROT转OT过程:
推倒:
-
如果e=0,则b=c,u0用R0加密,u1用R1加密,最后mb=ub\bigoplusRc=ub\bigoplusRb,可以求解;
-
如果e=1,则b与c互补,u0用R1加密,u1用R0加密,最后mb=ub\bigoplusRc,因为b与c互补,所以要么b=0,c=1。要么b=1,c=0能求解。
d、相关不经意传输(COT)
下图内部是COT,总体是COT转ROT过程:
上面的哈希函数式相关强健Hash函数:Correlation Robust Hash Function(CRHF):
-
杂凑函数(RO):SHA256,SM3,SHA3,...
-
密钥固定分组密码(RPM):AES,SM$,...
e、向量不经意线性函数计算(VOLE)
-
向量不经意线性函数计算(VOLE),COT算数变形,常定义在大域F上。
-
可用于生成IT-MACs
f、不经意线性函数计算(OLE)
-
不经意线性函数计算(OLE),OT算数变形,常定义在大域F上
-
可用于生成Beaver三元组
资料课程来源:Lecture 1 安全多方计算(MPC)的基本概念及基础组件 —— 冯登国院士_哔哩哔哩_bilibili