ABY2.0:更低的通信开销

参考文献:

  1. [ABY] Demmler D, Schneider T, Zohner M. ABY-A framework for efficient mixed-protocol secure two-party computation[C]//NDSS. 2015.
  2. [ABY3] Mohassel P, Rindal P. ABY3: A mixed protocol framework for machine learning[C]//Proceedings of the 2018 ACM SIGSAC conference on computer and communications security. 2018: 35-52.
  3. [ABY2.0] Patra A, Schneider T, Suresh A, et al. {ABY2. 0}: Improved {Mixed-Protocol} Secure {Two-Party} Computation[C]//30th USENIX Security Symposium (USENIX Security 21). 2021: 2165-2182.
  4. [Beaver91] D. Beaver. Effificient multiparty protocols using circuit randomization. In CRYPTO, 1991.
  5. [ALSM13] Asharov G, Lindell Y, Schneider T, et al. More efficient oblivious transfer and extensions for faster secure computation[C]//Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security. 2013: 535-548.
  6. [RSS19] Rathee D, Schneider T, Shukla K K. Improved multiplication triple generation over rings via RLWE-based AHE[C]//International Conference on Cryptology and Network Security. Cham: Springer International Publishing, 2019: 347-359.

文章目录

  • 混合 MPC
  • 乘法协议
  • ABY 转换

混合 MPC

首先汇总下以 Arithmetic - Boolean - Yao 为名的三种混合协议:

  • 著名的 ABY 是第一个混合多种 MPC 协议的安全多方计算协议。不过由于 Yao’s GC 的限制,它仅仅是个半诚实安全的 2PC 协议
  • 之后的 ABY3 是一种恶意安全的 3PC 协议。它使用了 Yao’s GC 的三方扩展,两个 Garbler,一个 Evaluator。由于三方协议计算 AND 门不需要 Beaver Triple,因此计算速度比 ABY 快很多。
  • 而 ABY2.0 则是对 ABY 的通信性能做了改进,它也是半诚实安全的 2PC 协议

它们的基本流程都是:

  1. 利用 Sharing protocol,将输入值分享给各方
  2. 利用 SS 的 Linear Homomorphic 性质,以及 Multiplication protocol,计算给定的函数(期间做 A-B-Y 之间的 shares 转换)
  3. 使用 Reconstruction protocol,从 shares 恢复出输出值

乘法协议

使用 Beaver Triple 计算乘法门,给定元组 ( δ a , δ b , δ a b = δ a δ b ) (\delta_a,\delta_b,\delta_{ab}=\delta_a\delta_b) (δa,δb,δab=δaδb),满足关系
a b = ( a + δ a − δ a ) ( b + δ b − δ b ) = ( a + δ a ) ( b + δ b ) − ( a + δ a ) δ b − ( b + δ b ) δ a + δ a b \begin{aligned} ab &= (a+\delta_a-\delta_a)(b+\delta_b-\delta_b)\\ &= (a+\delta_a)(b+\delta_b) - (a+\delta_a)\delta_b - (b+\delta_b)\delta_a + \delta_{ab} \end{aligned} ab=(a+δaδa)(b+δbδb)=(a+δa)(b+δb)(a+δa)δb(b+δb)δa+δab

简记 Δ a = a + δ a , Δ b = b + δ b \Delta_a=a+\delta_a, \Delta_b=b+\delta_b Δa=a+δa,Δb=b+δb。参与方 P i , i ∈ { 0 , 1 } P_i,i\in \{0,1\} Pi,i{0,1} 持有 ( [ a ] i , [ δ a ] i ) , ( [ b ] i , [ δ b ] i ) , [ δ a b ] i ([a]_i, [\delta_a]_i),([b]_i, [\delta_b]_i), [\delta_{ab}]_i ([a]i,[δa]i),([b]i,[δb]i),[δab]i 这些 shares,为了计算 c = a b c=ab c=ab 的 shares,使用 Beaver 乘法协议

  1. P i P_i Pi 计算 [ Δ a ] i = [ a ] i + [ δ a ] i [\Delta_a]_i = [a]_i+[\delta_a]_i [Δa]i=[a]i+[δa]i 以及 [ Δ b ] i = [ b ] i + [ δ b ] i [\Delta_b]_i = [b]_i+[\delta_b]_i [Δb]i=[b]i+[δb]i
  2. P i P_i Pi 互相发送 [ Δ a ] i [\Delta_a]_i [Δa]i [ Δ b ] i [\Delta_b]_i [Δb]i 给对方(四个元素
  3. P i P_i Pi 重构出 Δ a = [ Δ a ] 0 + [ Δ a ] 1 \Delta_a=[\Delta_a]_0+[\Delta_a]_1 Δa=[Δa]0+[Δa]1 Δ a = [ Δ a ] 0 + [ Δ a ] 1 \Delta_a=[\Delta_a]_0+[\Delta_a]_1 Δa=[Δa]0+[Δa]1
  4. P i P_i Pi 计算 [ c ] i = i ⋅ Δ a Δ b − Δ a [ δ b ] i − Δ b [ δ a ] i + [ δ a b ] i [c]_i = i \cdot \Delta_a\Delta_b - \Delta_a[\delta_b]_i - \Delta_b[\delta_a]_i + [\delta_{ab}]_i [c]i=iΔaΔbΔa[δb]iΔb[δa]i+[δab]i
  5. P i P_i Pi 持有了 [ c ] i [c]_i [c]i,容易验证 [ c ] 0 + [ c ] 1 = a b = c [c]_0+[c]_1=ab=c [c]0+[c]1=ab=c

ABY2.0 观察到 Δ a , Δ b \Delta_a,\Delta_b Δa,Δb 最终是明文信息,因此修改 shares 的格式,从原本的 ( [ a ] i , [ δ a ] i ) ([a]_i, [\delta_a]_i) ([a]i,[δa]i) 变为了 ( Δ a , [ δ a ] i ) (\Delta_a,[\delta_a]_i) (Δa,[δa]i)。容易验证:
a = Δ a − [ δ a ] 0 − [ δ a ] 1 c 1 ⋅ ( Δ a , [ δ a ] i ) + c 2 ⋅ ( Δ b , [ δ b ] i ) = ( Δ c 1 a + c 2 b , [ δ c 1 a + c 2 b ] i ) a = \Delta_a - [\delta_a]_0 - [\delta_a]_1\\ c_1 \cdot (\Delta_a,[\delta_a]_i) + c_2 \cdot (\Delta_b,[\delta_b]_i) = (\Delta_{c_1a+c_2b}, [\delta_{c_1a+c_2b}]_i) a=Δa[δa]0[δa]1c1(Δa,[δa]i)+c2(Δb,[δb]i)=(Δc1a+c2b,[δc1a+c2b]i)

因此定义 ⟨ a ⟩ i : = ( Δ a , [ δ a ] i ) \langle a\rangle_i := (\Delta_a,[\delta_a]_i) ai:=(Δa,[δa]i) 是新的 shares 格式,它依然是线性同态的。它对应的 Sharing Protocol 为, P i P_i Pi 随机采样 [ δ a ] 0 , [ δ a ] 1 [\delta_a]_0,[\delta_a]_1 [δa]0,[δa]1,计算 Δ a = a + [ δ a ] 0 + [ δ a ] 1 \Delta_a=a+[\delta_a]_0+[\delta_a]_1 Δa=a+[δa]0+[δa]1,自己持有 ⟨ a ⟩ i = ( Δ a , [ δ a ] i ) \langle a\rangle_i = (\Delta_a,[\delta_a]_i) ai=(Δa,[δa]i),将 ⟨ a ⟩ 1 − i = ( Δ a , [ δ a ] 1 − i ) \langle a\rangle_{1-i} = (\Delta_a,[\delta_a]_{1-i}) a1i=(Δa,[δa]1i) 发送给对方。

参与方 P i , i ∈ { 0 , 1 } P_i,i\in \{0,1\} Pi,i{0,1} 持有 ( Δ a , [ δ a ] i ) , ( Δ b , [ δ b ] i ) , [ δ a b ] i (\Delta_a, [\delta_a]_i),(\Delta_b, [\delta_b]_i), [\delta_{ab}]_i (Δa,[δa]i),(Δb,[δb]i),[δab]i 这些 shares,为了计算 c = a b c=ab c=ab 的 shares,使用 ABY2.0 乘法协议

  1. P i P_i Pi 独立生成随机数 [ δ c ] i [\delta_c]_i [δc]i(作为 Sharing 协议的一部分)
  2. P i P_i Pi 计算 [ Δ c ] i = i ⋅ Δ a Δ b − Δ a [ δ b ] i − Δ b [ δ a ] i + [ δ a b ] i + [ δ c ] i [\Delta_c]_i = i \cdot \Delta_a\Delta_b - \Delta_a[\delta_b]_i - \Delta_b[\delta_a]_i + [\delta_{ab}]_i + [\delta_c]_i [Δc]i=iΔaΔbΔa[δb]iΔb[δa]i+[δab]i+[δc]i
  3. P i P_i Pi 互相发送 [ Δ c ] i [\Delta_c]_i [Δc]i 给对方(两个元素
  4. P i P_i Pi 重构出 Δ c = [ Δ c ] 0 + [ Δ c ] 1 \Delta_c = [\Delta_c]_0 + [\Delta_c]_1 Δc=[Δc]0+[Δc]1
  5. P i P_i Pi 持有了 ⟨ c ⟩ i = ( Δ c , [ δ c ] i ) \langle c \rangle_i = (\Delta_c, [\delta_c]_i) ci=(Δc,[δc]i),容易验证 Δ c − [ δ c ] 0 − [ δ c ] 1 = a b = c \Delta_c-[\delta_c]_0-[\delta_c]_1=ab=c Δc[δc]0[δc]1=ab=c

Beaver 和 ABY2.0 对比如下:

在这里插入图片描述

上述的乘法协议在算术电路和布尔电路中都奏效,假设消息空间是 Z 2 l \mathbb Z_{2^l} Z2l,那么在 Online 阶段,ABY2.0 乘法门的通信开销仅为 2 l 2l 2l 比特,对比 Beaver 的开销为 4 l 4l 4l 比特。

对于 Setup 阶段,ABY2.0 的开销没变,因为它依然要生成 Beaver Triple。这可以通过 C-OT 或者 AHE 实现。

  • 由于 δ a b = ( [ δ a ] 0 + [ δ a ] 1 ) ( [ δ b ] 0 + [ δ b ] 1 ) \delta_{ab} = ([\delta_a]_0+[\delta_a]_1)([\delta_b]_0+[\delta_b]_1) δab=([δa]0+[δa]1)([δb]0+[δb]1) 可以拆分出四项加和,其中两项 [ δ a ] i [ δ b ] i [\delta_a]_i[\delta_b]_i [δa]i[δb]i 可以本地计算,因此我们只需实现交叉项 [ δ a ] i [ δ b ] 1 − i [\delta_a]_i[\delta_b]_{1-i} [δa]i[δb]1i 的 shares 计算。
  • C-OT based [ALSM13],
    1. P i P_i Pi 作为发送方,定义相关函数 f j ( x ) = x + 2 j [ δ a ] i f_j(x)=x+2^j[\delta_a]_i fj(x)=x+2j[δa]i,输入 ( m j , 0 = r j , m j , 1 = f ( r j ) ) (m_{j,0}=r_j, m_{j,1}=f(r_j)) (mj,0=rj,mj,1=f(rj))
    2. P 1 − i P_{1-i} P1i 作为接收方,根据 [ δ b ] 1 − i [\delta_b]_{1-i} [δb]1i 的第 j j j 比特 b j b_j bj 做出选择, 获得 m j , b j m_{j,b_j} mj,bj
    3. P i P_i Pi 持有 [ d ] i = − ∑ j r j [d]_i = -\sum_jr_j [d]i=jrj P 1 − i P_{1-i} P1i 持有 [ d ] 1 − i = ∑ j m j , b j [d]_{1-i} = \sum_j m_{j,b_j} [d]1i=jmj,bj,容易验证 [ d ] i + [ d ] 1 − i = [ δ a ] i [ δ b ] 1 − i [d]_i+[d]_{1-i} = [\delta_a]_i[\delta_b]_{1-i} [d]i+[d]1i=[δa]i[δb]1i
  • AHE based [RSS19],
    1. P 0 P_0 P0 生成公钥 p k pk pk,将 [ δ a ] 0 , [ δ b ] 0 [\delta_a]_0, [\delta_b]_0 [δa]0,[δb]0 加密后发送给 P 1 P_1 P1
    2. P 1 P_1 P1 生成随机数 r r r,同态计算线性函数 v = [ δ a ] 0 [ δ b ] 1 + [ δ a ] 1 [ δ b ] 0 − r v = [\delta_a]_0[\delta_b]_1 + [\delta_a]_1[\delta_b]_0 - r v=[δa]0[δb]1+[δa]1[δb]0r
    3. P 1 P_1 P1 发送密文 E ( v ) E(v) E(v) P 0 P_0 P0 解密得到 v v v
    4. P 0 P_0 P0 持有 [ d ] 0 = v [d]_0=v [d]0=v P 1 P_1 P1 持有 [ d ] 1 = r [d]_1=r [d]1=r,容易验证 [ d ] 0 + [ d ] 1 = [ δ a ] 0 [ δ b ] 1 + [ δ a ] 1 [ δ b ] 0 [d]_0+[d]_1=[\delta_a]_0[\delta_b]_1 + [\delta_a]_1[\delta_b]_0 [d]0+[d]1=[δa]0[δb]1+[δa]1[δb]0

ABY 转换

ABY2.0 同时使用了 [ a ] i [a]_i [a]i ⟨ a ⟩ i \langle a \rangle_i ai 两种格式的 SS,因此 A-B-Y 之间的转换与 ABY 略有不同。不过基本思路是一样的,这里不再详细描述。

在这里插入图片描述

除了 Y2B,其他的转换 ABY2.0 的通信量更小。除了 A2B,其他的转换 ABY2.0 的通信轮数仅为 1 1 1。不过 ABY2.0 的初始化阶段通信开销会更大。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/73067.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Weblogic10中常用Linux指令

一.Weblogic 创建域 域目录/servers/AdminServer 路径下 以weblogic帐号登录(与创建域目录相对应账户) cd /home/weblogic/bea/weblogic92/common/bin 执行./config.sh进入配置界面。配置步骤如下: 1.Choose between creating and exten…

【java web】JSP-Java Server Page

前言 这个框架我用得不多,感觉和python的django一样,前后端结合太紧密了,适合个人开发 get 明文请求,可以被直接收藏 post 密文请求 JSP Java Server Page(JSP)HTMLJava code 步骤: 1.…

【数据结构初阶】二、 线性表里的顺序表

相关代码gitee自取: C语言学习日记: 加油努力 (gitee.com) 接上期: 【数据结构初阶】一. 复杂度讲解_高高的胖子的博客-CSDN博客 1 . 线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实…

WMS仓储管理系统的功能与WCS系统有什么区别

在物流行业的现代化管理中,WMS仓储管理系统和WCS仓库控制系统是两个重要的组成部分。虽然它们都是用于仓库管理的软件系统,但是它们的功能和应用场景有很大的区别。本文我们将详细阐述这两者的功能和区别。 一、WMS仓储管理系统 WMS是一种软件系统&…

科技资讯|苹果Vision Pro获得被动冷却系统及数字表冠控制界面专利

据patentlyapple报道,美国专利商标局正式授予苹果一项与头戴式设备(Apple Vision Pro)相关的专利11751366,该设备可以提供被动冷却系统,利用光学组件的表面来管理热量,而不会对用户显示的视觉信息产生不利影…

计算机竞赛 基于深度学习的动物识别 - 卷积神经网络 机器视觉 图像识别

文章目录 0 前言1 背景2 算法原理2.1 动物识别方法概况2.2 常用的网络模型2.2.1 B-CNN2.2.2 SSD 3 SSD动物目标检测流程4 实现效果5 部分相关代码5.1 数据预处理5.2 构建卷积神经网络5.3 tensorflow计算图可视化5.4 网络模型训练5.5 对猫狗图像进行2分类 6 最后 0 前言 &#…

[C++]杨辉三角

目录 题目 解题思路 代码实现 获取数字 打印函数 主函数 全部代码 运行结果 题目 给定一个非负整数numRows ,生成「杨辉三角」的前numRows行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 解题思路 第k列的第i个数字的值第k-1列的(…

shell SQL 变量 Oracle shell调用SQL操作DB

注意 &#xff1a; v\\\$ 用法, “v\\\$session ” ""不能用 sqlplus -S / as sysdba << EOF set pagesize 0 set verify off set feedback off set echo off col coun new_value v_coun select count(*) coun from dual; EOF value"$?"VALUE…

鸿鹄工程项目管理系统em Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目显示…

Linux编辑器vim

目录 一、vim的几种模式 1、命令模式 2、编辑/插入模式 3、底行模式 ①增加行号 ②分屏操作 ③不退出vim执行命令 4、替换模式 二、vim的常见命令 1、yy命令 2、p命令 3、dd命令 4、u命令 5、Ctrl r命令 6、shirtg命令 7、gg命令 8、shirt6命令 9、shirt4命…

【PythonRS】基于GDAL修改栅格数据的DN值

遥感工作者离不开栅格数据&#xff0c;有时候我们可能需要修改栅格数据的值&#xff0c;但ENVI和ArcGIS中并没有直接修改DN值的工具&#xff0c;只有栅格计算器、Band math这些工具去计算整个波段的值&#xff0c;或者Edit Classification Image工具可以修改ENVI分类后的像元值…

查看视频文件关键帧间隔

一、Elecard StreamEye Tools拖放视频文件查看。 红的是I帧&#xff1b;蓝的是P帧&#xff1b;绿的是B帧。 二、ffprobe -show_streams统计。 1、统计视频关键帧、非关键帧 ffprobe.exe -i 1.mp4 -show_streams v -show_packets -print_format json > d:\1.json 再统计1.j…

[SSM]MyBatisPlus拓展

五、拓展篇 5.1逻辑删除 在电商网站中&#xff0c;我们会上架很多商品&#xff0c;这些商品下架以后&#xff0c;我们如果将这些商品从数据库中删除&#xff0c;那么在年底统计商品的时候&#xff0c;这个商品要统计的&#xff0c;所以这个商品信息我们是不能删除的。 如果商城…

如何判断bug是前端bug还是后端bug

1.前后端bug 特征&#xff1a; 前端主要负责显示数据&#xff0c;后端主要负责处理数据、存储数据&#xff0c;前后端主要通过接口进行数据交换。 前端bug的特征&#xff1a; 界面显示类问题&#xff1a;如文字大小不一&#xff0c;控件颜色不搭&#xff0c;控件不整齐&#x…

分布式锁怎么抗高并发 redis

比如&#xff0c;多个人下单某一个商品 怎么处理 分段加锁 合并扣减。 这里首先要让redis是集群&#xff0c;避开单机性能问题。 大概意思就是将商品分摊到多个服务器上&#xff0c;这样就减轻了单台的压力

网桥、路由器和网关有什么区别?

网桥、路由器和网关是网络设备中的三种重要类型&#xff0c;在OSI模型中&#xff0c;它们分别位于不同的层次。 网桥&#xff1a;工作在OSI模型的第二层&#xff0c;即数据链路层。网桥的主要功能是根据MAC地址转发和过滤帧&#xff0c;当帧到达网桥的接口&#xff0c;网桥不…

Chat GPT 使用教学,文字创作、学习

目录 文章长篇文章学习任何东西文章 大纲、目录、标题、内容 写出10个即将被AI取代的工作的文章标题 当然,以下是一些可能会被AI取代的工作的文章标题:"未来十年,AI将如何改变传统制造业的就业格局?" "智能客服崛起:人工智能如何重塑客户服务行业?"…

EXPLAIN概述与字段剖析

6. 分析查询语句&#xff1a;EXPLAIN(重点) 6.1 概述 定位了查询慢的sQL之后&#xff0c;我们就可以使用EXPLAIN或DESCRIBE 工具做针对性的分析查询语句。DESCRIBE语句的使用方法与EXPLAIN语句是一样的&#xff0c;并且分析结果也是一样的。 MySQL中有专门负责优化SELECT语句…

Alins - 化繁为简、极致优雅的WebUI框架

最近造了个js框架 Alins&#xff0c;分享一下&#xff1a; &#x1f680; Alins: 最纯粹优雅的WebUI框架 English | 文档 | 演练场 | 更新日志 | 反馈错误/缺漏 | Gitee | 留言板 0 简介 0.1 前言 Alins是一款极致纯粹、简洁、优雅的Web UI框架。秉持0-API、Less is More 的…

代理模式简介

概念&#xff1a; 代理模式&#xff08;Proxy Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许通过创建一个代理对象来控制对原始对象的访问。代理对象充当了客户端和目标对象之间的中介&#xff0c;可以在不改变目标对象的情况下增加额外的功能或限制访问。 特点…