参考文献:

  1. Demmler D, Schneider T, Zohner M. ABY-A framework for efficient mixed-protocol secure two-party computation[C]//NDSS. 2015.
  2. 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.
  3. 高效 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​构建对应的混淆版本,

  1. 输入: 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比特
  2. 输出:电路输出 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 的布尔电路,

  1. 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
  2. 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
  3. 然后计算出结果 < 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−1​2ixi​=i=0∑l−1​2i⋅(<xi​>0B​⊕<xi​>1B​)
可以用 OT 协议完成转换:

  1. 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} s1i​s0i​​=2i⋅<xi​>0B​−ri​=2i⋅(1−<xi​>0B​)−ri​​

  2. P 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​−ri​

  3. P 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−1​ri​
    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−1​outi​=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 kxi​i​,∀1≤i≤l,而 P 0 P_0 P0​作为生成方持有对应的 k 0 i k_0^i k0i​以及 R R R

  1. 令 P 0 P_0 P0​选择一个随机掩码(random mask) r ∈ R Z 2 l r \in_R \mathbb Z_{2^l} r∈R​Z2l​

  2. 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+σ个混淆值

  3. 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

  4. 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 架构相关推荐

  1. 【总结】利用AWS搭建混合云的架构

    下载完整视频:下载完整MP4文件 1.邱洋的理解 定义了混合IT架构的概念(因为有些企业本地可能还没有云,但是需要构建云+物理的架构) 混合IT架构是趋势,但最终不是公有云一统天下,而本地IT必然继续 ...

  2. Nutanix混合云基础架构现已支持亚马逊云服务(AWS)

    携手AWS,Nutanix Clusters支持应用云间无缝迁移及统一操作,助力企业加速云上旅程 企业云计算领导者Nutanix(纳斯达克:NTNX)今日宣布,Nutanix Clusters现已在亚 ...

  3. 阿里云混合云首席架构师张晓丹:政企混合云技术架构的演进和发展

    近日,阿里云混合云平台首席架构师张晓丹分享了 IT 架构技术,并对政企混合云技术架构的发展进行展望. 云计算经历了十几年的发展,从被认为是"新瓶装旧酒"而备受质疑,到广泛应用于消费 ...

  4. [编程开发工具-6]:github仓库、gitee仓库、git本地仓库混合管理的架构与详细实现步骤

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  5. Redis混合存储产品与架构介绍

    简介 Redis混合存储实例是阿里云自主研发的完全兼容Redis协议和特性的混合存储产品.通过将部分冷数据存储到磁盘,在保证绝大部分访问性能不下降的基础上,大大降低了用户成本并突破了内存对Redis单 ...

  6. Redis vs Tendis:冷热混合存储版架构揭秘

    作者:jingjunli,腾讯 IEG 后台开发工程师 Redis 作为高性能缓存被广泛应用到各个业务, 比如游戏的排行榜, 分布式锁等场景.经过在 IEG 的长期运营, 我们也遇到 Redis 一些 ...

  7. 论文解读:基于共享混合深度学习架构的DNA形状特征预测转录因子结合位点

    Predicting transcription factor binding sites using DNA shape features based on shared hybrid deep l ...

  8. Apsara Stack 同行者专刊 | 政企混合云技术架构的演进和发展

    云计算经历十几年的发展,从被认为是"新瓶装旧洒"受到很多怀疑,到在消费互联网领域得到广泛应用,再到传统政企客户普遍认同,并在政务互联网业务领域快速推广,当下已进入到全面替换政企客户 ...

  9. 云计算技术 — 混合云 — 技术架构

    目录 文章目录 目录 混合云的基础架构 混合云管理 混合云网络 混合云安全 混合云的技术趋势 云原生促进混合云价值快速释放 云网深度结合 数据层面打通 管理一致性 混合云的基础架构 Hybrid Cl ...

  10. 政企混合云技术架构的演进和发展

    云计算经历十几年的发展,从被认为是"新瓶装旧洒"受到很多怀疑,到在消费互联网领域得到广泛应用,再到传统政企客户普遍认同,并在政务互联网业务领域快速推广,当下已进入到全面替换政企客户 ...

最新文章

  1. 如何选择高性价比的控件产品
  2. unbutu 按照docker
  3. ZOJ-2366 Weird Dissimilarity 动态规划+贪心
  4. mediawiki常用设置
  5. 有参组装新转录本cufflinks_转录本组装软件StringTie的使用说明
  6. C语言位运算,醍醐灌顶式教学
  7. 16款测序平台性能大PK,华大表现不俗!基于人类和细菌基因组DNA水平的多平台测序数据研究成果发布...
  8. mysql 日志 设置 set_MySQL 慢查询日志的开启与配置
  9. 轻量级 js取色器 JSColor
  10. 多元线性回归模型检验-续上篇
  11. 如何提高FPGA的工作频率
  12. 零基础学习Java会不会很吃力?
  13. 金融直播方兴未艾,理财直播探索新道路
  14. 穿西服和穿皮鞋有那些讲究?
  15. 【语音从零之五】用科大讯飞语音包实现语音打开已安装应用程序
  16. 关于电脑壁纸分辨率低的原因及解决办法(个人感悟,并非系统性的盘点)
  17. 非常棒的开源协同办公OA项目,收藏了!
  18. 记录科研路上的第一篇也是最后一篇论文投稿全过程:《中国图象图形学报》投稿经验帖
  19. 2022中国电商市场发展洞察报告:人群、品类、品牌、玩法
  20. 面对百度绿萝算法再次升级SEO要做什么呢?

热门文章

  1. 云呐|纺织行业条码固定资产管理软件
  2. 大厂程序员没活整天划水,困局如何破?
  3. web笔记day10
  4. 吴恩达第四课第三周车辆检测yolo.h5加载失败解决办法
  5. k8s-kubeadm安装1.25.5
  6. 28岁的程序员从字节跳动退休,他是如何实现财务自由的?
  7. 十招抓新闻标题,get没?
  8. Pandas 处理csv文件常用操作补充
  9. 注塑机数据采集(海天、住友、发那科、力劲、伊之密、恩格尔、泰瑞、佳明、双马、宁波通讯塑机、申达、海雄、海达、丰铁、大禹)直采串口通讯网络通讯方案
  10. 在线考试系统-管理员服务-业务功能说明