基于秘密分享方法的MPC

基于秘密分享方法的MPC

Lecture 2 基于秘密分享方法的 MPC 协议 —— 冯登国院士_哔哩哔哩_bilibili

大部分OT扩展协议设计流程:
首先,设计相关不经意传输协议(COT),然后通过标准的方法转换得到随机的不经意传输协议(ROT),最后设计(OT)
image.png

相关协议介绍

ROT

发送者接收两个消息 r 0 , r 1 r_0,r_1 r0,r1接受者随机获取消息 r c , c ∈ { 0 , 1 } r_c,c\in\{0,1\} rc,c{0,1}
image.png

将随机随机不经意传输转化为传统的不经意传输
R O T ⇒ O T ROT \Rightarrow OT ROTOT
image.png

COT

image.png

将COT构造为ROT C O T ⇒ R O T COT \Rightarrow ROT COTROT
image.png

相关强健Hash函数:Correlation Robust Hash Funtion(CRHF)
杂凑函数(RO)
密钥固定的分组密码(RPM)

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

image.png

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

image.png

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

![[2024-06-27#线性秘密分享]]

基于线性秘密分享的MPC协议——基本框架

image.png

[!tip] 注意
在计算电路中,加法门和数乘门无需通信,在本机即可完成计算,但乘法门需要运行乘法子协议,因此重点关注乘法子协议的构造

其中所有的通信是建立在安全信道的基础之上(加法秘密分享除外,加法秘密分享可以只有一个参与方)

  • 支持多个参与方 ( p 1 , … , p n ) (p_1,\dots,p_n) (p1,,pn)运行协议;若腐化门限 t < n / 2 t<n/2 t<n/2,信道付啊咋读一般为 O ( n ) O(n) O(n),若 n / 2 ≤ t < n − 1 n/2\leq t< n-1 n/2t<n1,通信复杂度一般为 O ( n 2 ) O(n^2) O(n2)
  • 加法和数乘等线性门无需通信,计算速度极快
  • 协议通信主要发生在乘法门计算
  • 所有运算定义在有限域 F \mathbb{F} F上,也可以推广至一般环上(根据应用,环通常考虑剩余类环 Z 2 k \mathbb{Z}_{2^k} Z2k,由于模运算等价于直接截断)
  • 基于线性秘密分享的MPC协议主要考虑如何设计实际高效的乘法子协议

诚实大多数半诚实安全MPC协议

Shamir秘密分享

  • 分享算法 [ x ] ← S h a r e ( x ) [x]\leftarrow Share(x) [x]Share(x):随机选取次数为 t t t的多项式 f f f满足 x = f ( 0 ) x=f(0) x=f(0), x i = f ( α i ) x^i=f(\alpha_i) xi=f(αi)对于 i ∈ [ n ] i\in[n] i[n],其中 α 1 , … , α n ∈ F \alpha_1,\dots,\alpha_n\in\mathbb{F} α1,,αnF为不同的非零域元素
  • 重构算法 [ x ] ← R e c ( x ) [x]\leftarrow Rec(x) [x]Rec(x):需要至少 t + 1 t+1 t+1个份额, x = f ( 0 ) = ∑ λ i ( 0 ) ⋅ f ( α i ) x=f(0)=\sum\lambda_i(0)\cdot f(\alpha_i) x=f(0)=λi(0)f(αi),其中 λ i ( x ) = ∏ j ≠ i ( x − α j ) / ( α i − α j ) \lambda_i(x)=\prod_{j\neq i}(x-\alpha_j)/(\alpha_i-\alpha_j) λi(x)=j=i(xαj)/(αiαj) 是拉格朗日系数函数

image.png

Shamir秘密分享另一种生成方式
  • [ x ] ← S h a r e ( x ) [x]\leftarrow Share(x) [x]Share(x):随机选取t个域元素 x 1 , … , x t ∈ F x^1,\dots,x^t\in\mathbb{F} x1,,xtF,然后将密码值 x x x t t t个域元素 x 1 , … , x t x^1,\dots,x^t x1,,xt通过拉格朗日差值公式获得次数为 t t t的多项式 f f f满足 x = f ( 0 ) x=f(0) x=f(0) x i = f ( α i ) x^i=f(\alpha_i) xi=f(αi)
  • 其余 t + 1 t+1 t+1个份额计算为 x i = f ( α i ) x^i=f(\alpha_i) xi=f(αi)
  • P i P_i Pi运行该分享算法,将除自己以外的份额发送给所有其他参与方:通信开销为 n − 1 = 2 t n-1=2t n1=2t个域元素,其中这里不失一般性假设 n = 2 t + 1 n=2t+1 n=2t+1(诚实大多数)

[!tip] 注意
这里与传统的Shamir秘密分享不同的是:传统的是随机选取 t − 1 t-1 t1个系数 a i a_i ai,通过拉格朗日计算 x t x^t xt
此处是先随机选取t个域元素 x 1 , … , x t ∈ F x^1,\dots,x^t\in\mathbb{F} x1,,xtF,然后计算系数 a i a_i ai

image.png
为啥是通信效率提高了一倍,传统的 P i P_i Pi运行该分享算法,将除自己以外的份额发送给所有的参与方其中通信开销为n-1=2t(其中为2t是假设不失一般性,也就是诚实大多数)
伪随机生成器(PRG)优化,是指定 t t t个参与方, P 1 , … , P t P_1,\dots,P_t P1,,Pt,获得随机份额 x 1 , … , x t ∈ F x^1,\dots,x^t\in \mathbb{F} x1,,xtF

P i P_i Pi发送随机的种子seed_1,\dots,seed_t给参与方 P 1 , … , P t P_1,\dots,P_t P1,,Pt(可用于计算多个Shamir分享,通信开销可忽略不计)
分享生成: P i P_i Pi P 1 , … , P t P_1,\dots,P_t P1,,Pt计算随机份额 x j = P R G ( s e e d j ) x^j=PRG(seed_j) xj=PRG(seedj)
通信开销降低为t个域元素

image.png
即当诚实大多数的 r i r_i ri是均匀分布的那么 r r r也是均匀分布的

image.png

半诚实安全的BGW乘法子协议

基于Shamir秘密分享的BGW乘法子协议
预处理阶段: 所有参与方生成随机的零分享 [ 0 ] 2 t [0]_{2t} [0]2t
乘法门计算阶段: 给定输入分享 [ x ] t [x]_t [x]t, [ y ] t [y]_t [y]t,计算输出分享 [ z ] t = [ x ⋅ y ] t [z]_t=[x\cdot y]_t [z]t=[xy]t

  • 所有参与方本地计算 [ z ] t [z]_t [z]t,即每方 P i P_i Pi本地计算份额 x i ⋅ y i = h ( α i ) x^i\cdot y^i=h(\alpha_i) xiyi=h(αi), h = f ⋅ g h=f\cdot g h=fg为次数 2 t 2t 2t多项式
  • 随机化: [ z ~ 2 t ] = [ z ] 2 t + [ 0 ] 2 t [\tilde{z}_{2t}]=[z]_{2t}+[0]_{2t} [z~2t]=[z]2t+[0]2t,记对应次数 2 t 2t 2t多项式为 h ^ \hat{h} h^
  • t t t次多项式 h ^ \hat{h} h^ h ~ \tilde{h} h~中所有次数 ≤ t \leq t t 单项式组成,存在公共矩阵 A A A满足 [ h ^ ( α 1 ) , … , h ^ ( α n ) ] T = A ⋅ [ h ~ ( α 1 ) , … , h ~ ( α n ) ] T [\hat{h}(\alpha_1),\dots,\hat{h}(\alpha_n)]^T=A\cdot [\tilde{h}(\alpha_1),\dots,\tilde{h}(\alpha_n)]^T [h^(α1),,h^(αn)]T=A[h~(α1),,h~(αn)]T
  • 次数约化:每方 P i P_i Pi运行分享算法 [ h ~ ( α 1 ) ] ← S h a r e ( h ~ ( α i ) ) [\tilde{h}(\alpha_1)]\leftarrow Share(\tilde{h}(\alpha_i)) [h~(α1)]Share(h~(αi)),发送份额给其他参与方,本地计算矩阵乘法,然后运行重构算法 h ^ ( α i ) ← R e c ( [ h ^ ( α i ) ] ) \hat{h}(\alpha_i)\leftarrow Rec([\hat{h}(\alpha_i)]) h^(αi)Rec([h^(αi)]),即为 P i P_i Pi关于 [ z ] t [z]_t [z]t的份额 z i z^i zi

(讲解的不够详尽),查找相关资料:(1)Completeness theorems for non-cryptographic fault-tolerant disstributed computation. (2)A Full Proof of the BGW Protocol for Perfectly-Secure Multiparty Computation

GRR乘法子协议对RGW乘法子协议进行效率优化
image.png

半诚实安全的DN乘法子协议

image.png

提升信息论安全效率
image.png

image.png

image.png

基于Shamir秘密分享半诚实安全乘法子协议的效率对比

image.png

诚实大多数假设下乘法验证技术

诚实大多数假设下乘法子协议性质

image.png
在诚实大多数假设下大部分诚实安全的乘法子协议(以DN类乘法子协议为例)满足以下性质

  • 在恶意敌手模型下已经保证输入/输出的隐私性
  • 但不能保证计算的正确性,即允许敌手在输入中引入加法错误,对于输入分享 [ x ] [x] [x], [ y ] [y] [y],输出为 [ z ] = [ x ⋅ y + d ] [z]=[x\cdot y+d] [z]=[xy+d],其中 d d d是敌手选择的加法错误
    在恶意敌手模型下诚实大多数MPC协议的主要目标是设计高效的乘法验证协议,保证在所有的乘法门输出中加法错误为0(没有错误被引入,也就是可以纠正错误)

乘法验证技术

主要为三类乘法验证技术
image.png

对偶验证技术

对偶验证技术相比较于其他两种技术设计更加简单,应用场景更广

设计思路为运行两次半诚实安全协议,第一次输入为真实值 x x x,第二次输入随机化 r x rx rx,通过验证算法验证,最后重构输出
image.png
具体的验证过程

对偶验证技术

验证过程如下:
假设当分享 [ x ] [ y ] [x][y] [x][y]以及 [ r x ] [ r y ] [rx][ry] [rx][ry]运算乘法子协议有加法错误如 [ z ] = [ x ⋅ y + d   ] [z]=[x\cdot y+{\color{red}d} \ ] [z]=[xy+d ] [ r ⋅ x ⋅ y + e ] [r\cdot x\cdot y+{\color{red} e}] [rxy+e]需要检查是否与 [ r ⋅ z + f ] [r\cdot z+{\color{red}f}] [rz+f]相等, [ r ⋅ ( x ⋅ y + d ) + f ] [r\cdot (x\cdot y+{\color{red}d})+{\color{red}f}] [r(xy+d)+f]只有当 r = ( f − e ) / d {\color{red}r=(f-e)/d} r=(fe)/d时会出现误判,这样的概率至多为 1 / F 1/\mathbb{F} 1/F,当域足够大时可以忽略不计
image.png
由于为了验证乘法子协议的合法性,每步多引入两次乘法计算,增大了开销,现对上述算法进行优化。
首先运行投币协议,选取随机系数 α 1 , … , α m ∈ F \alpha_1,\dots,\alpha_m\in\mathbb{F} α1,,αmF,然后验证 ∑ α i ⋅ [ r ⋅ x i ⋅ y i + e i ] \sum \alpha_i\cdot[r\cdot x_i\cdot y_i+{\color{red}e_i}] αi[rxiyi+ei]是否与 [ r ⋅ ∑ α i [ z i ] + f ] [r\cdot\sum\alpha_i[z_i]+{\color{red}f} ] [rαi[zi]+f]
只有当 ∑ α i ⋅ ( e i − r ⋅ d i ) = f \sum\alpha_i\cdot(e_i-r\cdot d_i)=f αi(eirdi)=f时才相等,f可能依赖于 α 1 , … , α m \alpha_1,\dots,\alpha_m α1,,αm的选择,无法推导出 e i − r ⋅ d i = 0 e_i-r\cdot d_i=0 eirdi=0
image.png
image.png

### MPC技术概述 MPC可以指代多个领域中的不同概念,以下分别介绍多方安全计算、模型预测控制以及媒体播放器经典的相关内容。 #### 多方安全计算 (MPC - Multi-Party Computation) 多方安全计算是一种密码学协议,允许多个参与方在不泄露各自输入数据的情况下共同计算一个函数[^1]。其核心目标是在保护隐私的同时完成协作式计算任务。例如,在金融领域中,多个银行可以通过MPC协议联合分析客户信用风险,而无需共享具体的客户数据。 ```python # 示例:基于秘密分享的简单加法计算(模拟MPC) def secret_share(value, n): shares = [random.randint(1, 100) for _ in range(n - 1)] shares.append(value - sum(shares)) return shares def reconstruct(shares): return sum(shares) # 假设有两个参与方A和B value_A = 50 value_B = 30 shares_A = secret_share(value_A, 2) shares_B = secret_share(value_B, 2) # 模拟双方将各自的份额相加 result_shares = [shares_A[i] + shares_B[i] for i in range(2)] final_result = reconstruct(result_shares) ``` #### 模型预测控制 (MPC - Model Predictive Control) 模型预测控制是一种先进的过程控制方法,广泛应用于工业自动化系统中。它通过构建系统的动态模型,在每个采样时刻优化未来一段时间内的控制动作,以达到期望的目标值[^2]。与传统PID控制器相比,MPC能够处理多变量耦合系统,并考虑约束条件。 ```matlab % MATLAB代码示例:简单的MPC控制器设计 Plant = tf(1,[1 10 1]); % 被控对象传递函数 Ts = 0.1; % 采样时间 Controller = mpc(Plant,Ts); % 创建MPC控制器 ``` #### 媒体播放器经典 (MPC - Media Player Classic) 媒体播放器经典是一款流行的多媒体播放软件,支持多种音频和视频格式。它的特点是轻量级、易用性和高度可定制性[^3]。MPC通常作为Windows平台上的默认播放器之一,深受用户喜爱。 ### 结论 根据具体需求选择合适的MPC定义。如果是关注隐私保护的技术,则应研究多方安全计算;若涉及工业自动化,则需了解模型预测控制;而对于日常娱乐用途,则可使用媒体播放器经典。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值