混合 2PC:ABY 架构
参考文献:
- Demmler D, Schneider T, Zohner M. ABY-A framework for efficient mixed-protocol secure two-party computation[C]//NDSS. 2015.
- Kolesnikov V, Sadeghi A R, Schneider T. A systematic approach to practically efficient general two-party secure function evaluation protocols and their modular design[J]. Journal of Computer Security, 2013, 21(2): 283-315.
- 高效 OT 协议:https://blog.csdn.net/weixin_44885334/article/details/127084970
文章目录
- ABY架构
- 转换
- Y2B
- B2Y
- A2Y
- A2B
- 方案一
- 方案二
- B2A
- Y2A
- 方案一
- 方案二
- 效果
ABY架构
ABY 含义:Arithmetic(基于SS的算术电路), Boolean(基于SS的布尔电路), and Yao(姚的混淆电路)
算术电路使用的 SS 是:
< x > 0 A + < x > 1 A ≡ x m o d 2 l <x>_0^A + <x>_1^A \equiv x \mod 2^l <x>0A+<x>1A≡xmod2l
布尔电路使用的 SS 是:
< x > 0 B ⊕ < x > 1 B = x <x>_0^B \oplus <x>_1^B = x <x>0B⊕<x>1B=x
ABY 将使用 Free XOR 技术的 Yao’s GC 的输入线标签,也视作是 shares,对于 x ∈ { 0 , 1 } x \in \{0,1\} x∈{0,1}
< x > 0 Y = k 0 , < x > 1 Y = k x = k 0 ⊕ x R <x>_0^Y = k_0,\, <x>_1^Y = k_x = k_0 \oplus xR <x>0Y=k0,<x>1Y=kx=k0⊕xR
并且将 P&P 技术的选择比特 p 0 p_0 p0作为线标签 k 0 k_0 k0的第一比特。再固定 R R R的第一比特为 1 1 1,保证 k 0 , k 1 k_0,k_1 k0,k1的第一比特随机但不相同。它们满足
< x > 0 Y ⊕ < x > 1 Y = x R <x>_0^Y \oplus <x>_1^Y = xR <x>0Y⊕<x>1Y=xR
对于 Yao’s GC 的输入比特的 shares,可以使用 C-OT 快速分享。另外,对于布尔电路和算术电路的 Beaver Triple,都可以使用 R-OT 批量获得。
ABY 框架结合三种 2PC 的优势,让 shares 在它们之间相互转换,从而提高 2PC 的效率。
转换
Y2B
对于秘密值 x ∈ { 0 , 1 } x \in \{0,1\} x∈{0,1},Yao’s GC 的 shares 为
< x > 0 Y = k 0 , < x > 1 Y = k x = k 0 ⊕ x R <x>_0^Y = k_0,\, <x>_1^Y = k_x = k_0 \oplus xR <x>0Y=k0,<x>1Y=kx=k0⊕xR
其中 R [ 0 ] = 1 R[0]=1 R[0]=1,因此它们的选择比特满足:
< x > 0 Y [ 0 ] ⊕ < x > 1 Y [ 0 ] = x <x>_0^Y[0] \oplus <x>_1^Y[0] = x <x>0Y[0]⊕<x>1Y[0]=x
所以,转换方法就是:
< x > i B = Y 2 B ( < x > i Y ) = < x > i Y [ 0 ] <x>_i^B = Y2B(<x>_i^Y) = <x>_i^Y[0] <x>iB=Y2B(<x>iY)=<x>iY[0]
这是 free 的,只需要一丁点的本地计算。
B2Y
对于秘密值 x ∈ { 0 , 1 } x \in \{0,1\} x∈{0,1},布尔电路的 shares 为
< x > 0 B = r ∈ R { 0 , 1 } , < x > 1 B = x ⊕ r <x>_0^B = r \in_R \{0,1\},\, <x>_1^B = x \oplus r <x>0B=r∈R{0,1},<x>1B=x⊕r
它们满足
< x > 0 B ⊕ < x > 1 B = x <x>_0^B \oplus <x>_1^B = x <x>0B⊕<x>1B=x
- P 0 P_0 P0是 Yao’s GC 的生成者,它持有随机的线标签 k 0 k_0 k0和全局随机数 R R R,以及 < x > 0 B = r <x>_0^B=r <x>0B=r
- P 1 P_1 P1是计算方,它持有 < x > 1 B <x>_1^B <x>1B
运行 OT 协议, P 0 P_0 P0输入 ( k 0 ⊕ r R , k 0 ⊕ ( 1 − r ) R ) (k_0 \oplus rR,\, k_0 \oplus (1-r)R) (k0⊕rR,k0⊕(1−r)R), P 1 P_1 P1输入 < x > 1 B <x>_1^B <x>1B,并获得
o u t = { k 0 ⊕ ( r ⊕ 0 ) R , < x > 1 B = 0 k 0 ⊕ ( r ⊕ 1 ) R , < x > 1 B = 1 out = \left\{ \begin{aligned} k_0 \oplus (r \oplus 0)R, && <x>_1^B = 0\\ k_0 \oplus (r \oplus 1)R, && <x>_1^B = 1\\ \end{aligned} \right. out={k0⊕(r⊕0)R,k0⊕(r⊕1)R,<x>1B=0<x>1B=1
即
o u t = k 0 ⊕ ( < x > 0 B ⊕ < x > 1 B ) R = k x out = k_0 \oplus (<x>_0^B \oplus <x>_1^B)R = k_x out=k0⊕(<x>0B⊕<x>1B)R=kx
因此 P 1 P_1 P1获得了 Yao’s GC 的 share,
< x > 1 Y = o u t = k x <x>_1^Y = out = k_x <x>1Y=out=kx
而 P 0 P_0 P0简单地设置 < x > 0 Y = k 0 <x>_0^Y = k_0 <x>0Y=k0
A2Y
对于秘密值 x ∈ { 0 , 1 } l x \in \{0,1\}^l x∈{0,1}l,算术电路的 shares 为
< x > 0 A = r ∈ R { 0 , 1 } l , < x > 1 A = x − r <x>_0^A = r \in_R \{0,1\}^l,\, <x>_1^A = x - r <x>0A=r∈R{0,1}l,<x>1A=x−r
构造布尔加法电路,其功能为
x = < x > 0 A + < x > 1 A x = <x>_0^A + <x>_1^A x=<x>0A+<x>1A
让 P 0 P_0 P0构建对应的混淆版本,
- 输入: P 0 P_0 P0输入 < x > 0 A <x>_0^A <x>0A的 l l l比特, P 1 P_1 P1输入 < x > 1 A <x>_1^A <x>1A的 l l l比特
- 输出:电路输出 x ∈ Z 2 l x \in \mathbb Z_{2^l} x∈Z2l的 l l l比特的混淆值 < x > Y <x>^Y <x>Y
那么,对于每个 1 ≤ i ≤ l 1 \le i \le l 1≤i≤l, P 0 P_0 P0持有 < x i > 0 Y = k 0 i <x_i>^Y_0 = k_0^i <xi>0Y=k0i, P 1 P_1 P1持有 < x i > 1 Y = k x i <x_i>_1^Y = k_x^i <xi>1Y=kxi
A2B
方案一
类似 A2Y,构建布尔加法电路,功能是计算
x = < x > 0 A + < x > 1 A x = <x>_0^A + <x>_1^A x=<x>0A+<x>1A
使用基于 SS 的布尔电路,
- P 0 P_0 P0将 < x > 0 A ∈ Z 2 l <x>_0^A \in \mathbb Z_{2^l} <x>0A∈Z2l的每一比特都共享出去, < < x > 0 A [ i ] > B <<x>_0^A[i]>^B <<x>0A[i]>B
- P 1 P_1 P1将 < x > 1 A ∈ Z 2 l <x>_1^A \in \mathbb Z_{2^l} <x>1A∈Z2l的每一比特都共享出去, < < x > 1 A [ i ] > B <<x>_1^A[i]>^B <<x>1A[i]>B
- 然后计算出结果 < x > B <x>^B <x>B
方案二
可以复用其他的转换函数,
< x > B = A 2 B ( < x > A ) = Y 2 B ∘ A 2 Y ( < x > A ) <x>^B = A2B(<x>^A) = Y2B \circ A2Y(<x>^A) <x>B=A2B(<x>A)=Y2B∘A2Y(<x>A)
因为 Y2B 是 free 的,并且 A2Y 基于 Yao’s GC,它的计算效率远高于基于 SS 的布尔电路,所以方案二速度更快。
B2A
对于 l l l比特的秘密值 x ∈ { 0 , 1 } l x \in \{0,1\}^l x∈{0,1}l,布尔电路的 shares 满足
< x i > 0 B ⊕ < x i > 1 B = x i <x_i>_0^B \oplus <x_i>_1^B = x_i <xi>0B⊕<xi>1B=xi
于是
x = ∑ i = 0 l − 1 2 i x i = ∑ i = 0 l − 1 2 i ⋅ ( < x i > 0 B ⊕ < x i > 1 B ) x = \sum_{i=0}^{l-1} 2^i x_i = \sum_{i=0}^{l-1} 2^i \cdot (<x_i>_0^B \oplus <x_i>_1^B) x=i=0∑l−12ixi=i=0∑l−12i⋅(<xi>0B⊕<xi>1B)
可以用 OT 协议完成转换:
P 0 P_0 P0作为发送者,选择随机数 r i ∈ Z 2 l r_i \in \mathbb Z_{2^l} ri∈Z2l,输入 ( s 0 i , s 1 i ) (s_0^i,s_1^i) (s0i,s1i)
s 1 i = 2 i ⋅ < x i > 0 B − r i s 0 i = 2 i ⋅ ( 1 − < x i > 0 B ) − r i \begin{aligned} s_1^i &= 2^i \cdot <x_i>_0^B - r_i\\ s_0^i &= 2^i \cdot (1-<x_i>_0^B) - r_i \end{aligned} s1is0i=2i⋅<xi>0B−ri=2i⋅(1−<xi>0B)−riP 1 P_1 P1作为接收者,输入 < x i > 1 B <x_i>_1^B <xi>1B,获得
o u t i = { 2 i ⋅ ( < x i > 0 B ⊕ 0 ) − r i , < x > 1 B = 0 2 i ⋅ ( < x i > 0 B ⊕ 1 ) − r i , < x > 1 B = 1 out_i = \left\{ \begin{aligned} 2^i \cdot (<x_i>_0^B \oplus 0) - r_i, && <x>_1^B = 0\\ 2^i \cdot (<x_i>_0^B \oplus 1) - r_i, && <x>_1^B = 1\\ \end{aligned} \right. outi={2i⋅(<xi>0B⊕0)−ri,2i⋅(<xi>0B⊕1)−ri,<x>1B=0<x>1B=1
即
o u t i = 2 i ⋅ ( 0 B ⊕ 1 B ) − r i = 2 i x i − r i out_i = 2^i \cdot (_0^B \oplus _1^B) - r_i = 2^i x_i - r_i outi=2i⋅(0B⊕1B)−ri=2ixi−riP 0 P_0 P0设置
< x > 0 A = ∑ i = 0 l − 1 r i <x>_0^A = \sum_{i=0}^{l-1} r_i <x>0A=i=0∑l−1ri
P 1 P_1 P1设置
< x > 1 A = ∑ i = 0 l − 1 o u t i = x − < x > 0 A <x>_1^A = \sum_{i=0}^{l-1} out_i = x - <x>_0^A <x>1A=i=0∑l−1outi=x−<x>0A
容易验证 < x > 0 A + < x > 1 A = x ∈ Z 2 l <x>_0^A + <x>_1^A = x \in \mathbb Z_{2^l} <x>0A+<x>1A=x∈Z2l
Y2A
方案一
对于 l l l比特的秘密值 x ∈ { 0 , 1 } l x \in \{0,1\}^l x∈{0,1}l,Yao’s GC 中的 P 1 P_1 P1作为计算方,持有它的混淆值 k x i i , ∀ 1 ≤ i ≤ l k_{x_i}^i,\forall 1 \le i \le l kxii,∀1≤i≤l,而 P 0 P_0 P0作为生成方持有对应的 k 0 i k_0^i k0i以及 R R R
令 P 0 P_0 P0选择一个随机掩码(random mask) r ∈ R Z 2 l r \in_R \mathbb Z_{2^l} r∈RZ2l
P 0 P_0 P0根据 k 0 i k_0^i k0i以及 R R R,构造一个布尔减法电路的混淆版本,功能为
X = x − r X = x-r X=x−r
电路发送给 P 1 P_1 P1,同时发送 r r r对应的 l + σ l+\sigma l+σ个混淆值P 1 P_1 P1已经持有了 x x x对应的混淆值 k x i k_x^i kxi,不必执行 OT 协议。在混淆电路上计算,设置 < x > 1 A = X = x − r <x>_1^A = X = x-r <x>1A=X=x−r
P 0 P_0 P0简单地设置 < x > 0 A = r <x>_0^A = r <x>0A=r
方案二
可以复用其他的转换函数,
< x > A = Y 2 A ( < x > Y ) = B 2 A ∘ Y 2 B ( < x > Y ) <x>^A = Y2A(<x>^Y) = B2A \circ Y2B(<x>^Y) <x>A=Y2A(<x>Y)=B2A∘Y2B(<x>Y)
因为 Y2B 是 free 的,并且 B2A 主要使用 OT 协议,在计算和通信上的开销比构造和计算 Yao’s GC 小得多,所以方案二速度更快。
效果
预处理阶段(构造电路,执行 OT 协议):
在线阶段(电路运算):
混合 2PC:ABY 架构相关推荐
- 【总结】利用AWS搭建混合云的架构
下载完整视频:下载完整MP4文件 1.邱洋的理解 定义了混合IT架构的概念(因为有些企业本地可能还没有云,但是需要构建云+物理的架构) 混合IT架构是趋势,但最终不是公有云一统天下,而本地IT必然继续 ...
- Nutanix混合云基础架构现已支持亚马逊云服务(AWS)
携手AWS,Nutanix Clusters支持应用云间无缝迁移及统一操作,助力企业加速云上旅程 企业云计算领导者Nutanix(纳斯达克:NTNX)今日宣布,Nutanix Clusters现已在亚 ...
- 阿里云混合云首席架构师张晓丹:政企混合云技术架构的演进和发展
近日,阿里云混合云平台首席架构师张晓丹分享了 IT 架构技术,并对政企混合云技术架构的发展进行展望. 云计算经历了十几年的发展,从被认为是"新瓶装旧酒"而备受质疑,到广泛应用于消费 ...
- [编程开发工具-6]:github仓库、gitee仓库、git本地仓库混合管理的架构与详细实现步骤
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...
- Redis混合存储产品与架构介绍
简介 Redis混合存储实例是阿里云自主研发的完全兼容Redis协议和特性的混合存储产品.通过将部分冷数据存储到磁盘,在保证绝大部分访问性能不下降的基础上,大大降低了用户成本并突破了内存对Redis单 ...
- Redis vs Tendis:冷热混合存储版架构揭秘
作者:jingjunli,腾讯 IEG 后台开发工程师 Redis 作为高性能缓存被广泛应用到各个业务, 比如游戏的排行榜, 分布式锁等场景.经过在 IEG 的长期运营, 我们也遇到 Redis 一些 ...
- 论文解读:基于共享混合深度学习架构的DNA形状特征预测转录因子结合位点
Predicting transcription factor binding sites using DNA shape features based on shared hybrid deep l ...
- Apsara Stack 同行者专刊 | 政企混合云技术架构的演进和发展
云计算经历十几年的发展,从被认为是"新瓶装旧洒"受到很多怀疑,到在消费互联网领域得到广泛应用,再到传统政企客户普遍认同,并在政务互联网业务领域快速推广,当下已进入到全面替换政企客户 ...
- 云计算技术 — 混合云 — 技术架构
目录 文章目录 目录 混合云的基础架构 混合云管理 混合云网络 混合云安全 混合云的技术趋势 云原生促进混合云价值快速释放 云网深度结合 数据层面打通 管理一致性 混合云的基础架构 Hybrid Cl ...
- 政企混合云技术架构的演进和发展
云计算经历十几年的发展,从被认为是"新瓶装旧洒"受到很多怀疑,到在消费互联网领域得到广泛应用,再到传统政企客户普遍认同,并在政务互联网业务领域快速推广,当下已进入到全面替换政企客户 ...
最新文章
- 如何选择高性价比的控件产品
- unbutu 按照docker
- ZOJ-2366 Weird Dissimilarity 动态规划+贪心
- mediawiki常用设置
- 有参组装新转录本cufflinks_转录本组装软件StringTie的使用说明
- C语言位运算,醍醐灌顶式教学
- 16款测序平台性能大PK,华大表现不俗!基于人类和细菌基因组DNA水平的多平台测序数据研究成果发布...
- mysql 日志 设置 set_MySQL 慢查询日志的开启与配置
- 轻量级 js取色器 JSColor
- 多元线性回归模型检验-续上篇
- 如何提高FPGA的工作频率
- 零基础学习Java会不会很吃力?
- 金融直播方兴未艾,理财直播探索新道路
- 穿西服和穿皮鞋有那些讲究?
- 【语音从零之五】用科大讯飞语音包实现语音打开已安装应用程序
- 关于电脑壁纸分辨率低的原因及解决办法(个人感悟,并非系统性的盘点)
- 非常棒的开源协同办公OA项目,收藏了!
- 记录科研路上的第一篇也是最后一篇论文投稿全过程:《中国图象图形学报》投稿经验帖
- 2022中国电商市场发展洞察报告:人群、品类、品牌、玩法
- 面对百度绿萝算法再次升级SEO要做什么呢?