MPC安全多方运算-Lecture 1

目录

MPC基础概念及基础组件

1.安全多方计算定义与应用

2.安全多方计算分类

3.安全多方计算基础组件

a、(n,t)门限线性秘密分享

b、信息论消息认证码(IT-MAC)

c、零知识证明

d、混淆电路

e、投币(coin-tossing)协议

f、同态加密(HE)

4.不经意传输及其算数变形

a、基础OT协议举例:Naor-Pinkas协议

b、不经意传输扩展(OT Extension)

c、随机不经意传输(ROT)

d、相关不经意传输(COT)

e、向量不经意线性函数计算(VOLE)

f、不经意线性函数计算(OLE)


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)敌手计算能力:

  1. 概率多项式时间(PPT):任意PPT敌手不能打破协议安全性

  2. 无限计算能力(信息论安全或无条件安全):即使无限计算能力的敌手也不能打破协议安全性(抵抗量子计算机攻击)

    • 信息论安全MPC协议需要在诚实大多数模型下设计

(6)腐化策略:

  1. 静态腐化(Static Corruption):在协议运行前,敌手决定腐化(Corrupt)哪些实体

  2. 自适应腐化(Adaptive Corruption):在协议运行过程中,敌手能自适应决定腐化哪些实体

    • 已知实际高效的MPC协议均考虑静态腐化

(7)网络模型:

  1. 同步(Synchronous)网络模型:同一个交互轮的消息在固定演出时\Delta内一定达到

  2. 异步(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)
  1. BDOZ:

    M=K+x · \Delta \inF

    • \Delta:全局密钥

    • K:本地密钥,仅用一次

    • x:消息

    • M:消息认证码(MAC)

    Pi的份额xi被Pj的密钥认证:Mj[xi]=KJ[Xi] · \Deltaj(相互认证)

    • 适用于设计恶意敌手模型下常数轮的MPC协议

    • 通常用Hash函数实现批量认证(认证通信开销常数小)

  2. 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,也就是说验证者知识没有增长。

  1. 完备性(Completeness):如果证明者诚实运行协议,验证者一定会接收x结论

  2. 可靠性(Soundness):恶意证明者不能让验证者接受x结论

  3. 零知识性(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协议
  1. 接收者从里面选一个想要知道的信息b\in{0,1},然后对其进行加密处理PKb=gk,PK1-b=C/PKb,这里为了防止发送者知道你想要哪个信息进行混淆。

  2. 发送者收到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发送给接收者

  3. 接受者需要知道的信息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

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TomYoung45

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值