(阅读笔记)ABY: A Framework for Efficient Mixed-Protocol Secure Two-Party Computation

ABY框架旨在克服单一安全计算协议的局限,支持算术、布尔和姚式三种秘密共享类型之间的安全转换。通过使用最新优化,它实现了包括模幂运算、隐私交集协议和生物特征匹配在内的高效隐私保护应用,运行时间显著提升。该框架在半诚实敌手模型中操作,确保了协议的安全性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码在这里

引言

为了克服对有效函数表示的依赖并提高效率,一些工作将基于同态加密的安全计算协议与姚氏混淆电路结合,使用同态加密评估算术电路,例如加法和乘法运算,使用姚氏电路评估布尔电路,例如比较运算,研究结果表明,使用混合协议方法可以产生比仅使用单个协议更好的性能。然而,同态加密和姚氏电路协议之间转换的成本相对昂贵,并且同态加密的性能对着安全参数的增加而变差,因此混合协议仅比使用单一协议实现了相对较小的改进。
作者提出了ABY框架,支持三种秘密共享类型(算术共享、布尔共享、姚式共享)之间的安全转换。具体而言,算术共享采用Beaver乘法三元组[14],布尔共享采用Goldreich-Micali-Wigderson (GMW)协议[13],姚式共享采用混淆电路协议[7],如图15所示,其中C表示cleartext明文。
在这里插入图片描述
每种安全计算技术都使用最新的优化和最佳实践来完成。作者采用ABY框架实现了几种隐私保护应用:模幂运算、隐私交集协议、生物特征匹配,运行时间比使用单一的协议快了一个数量级。

基础知识

ABY框架是在安全两方计算设置下构建的,两台计算服务器是不共谋的,每个客户端秘密地在两台服务器之间共享其输入。然后,两台服务器在输入共享上运行安全计算协议,在此期间它们不学习任何中间信息。最后,它们将输出份额发送给输出端,后者可以重构输出。由于所有协议都是在共享上运行的,这也允许响应式计算,即两台服务器在多次执行中保持安全的状态信息。
我们的工作集中在半诚实的敌手模型中设计和实现高效的混合协议安全的两方计算,与更强的恶意(主动)敌手相比,不允许半诚实的敌手偏离协议。此外,半诚实模型可以开发高效的安全计算协议,因此被广泛用于实现隐私保护应用。
符号定义如表1所示。
在这里插入图片描述
在这里插入图片描述

秘密共享类型

算术共享:free addition;cheap multiplication;good for multiplication;
布尔共享:free XOR;one interaction per AND;good for multiplexing;
姚式共享:free XOR;no interaction per AND;good for comparison。

算术共享

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

布尔共享

在这里插入图片描述
在这里插入图片描述

姚式共享

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ABY框架

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### 关于 PyTorch 和 'aby' 的使用 在 SecretFlow 中,逻辑设备具备可编程性,允许用户通过不同的前端框架(如 JAX、TensorFlow 或 PyTorch)来定义并调度计算到特定的设备上[^4]。对于涉及 `PyTorch` 和 `'aby'` 的场景,通常会涉及到多方安全计算中的 ABY 框架。 ABY 是一种用于实现隐私保护机器学习的安全计算协议集合,它支持加法共享和布尔电路等多种技术组合。如果希望将 PyTorch 集成到类似的隐私计算环境中,则可能需要依赖一些扩展库或者工具链的支持。例如: #### 安装 Python 版本为 3.8 的 Conda 环境 为了确保兼容性和稳定性,在创建新的开发环境时,可以按照如下命令设置一个基于 Python 3.8 的 Conda 虚拟环境: ```bash conda create -n tfe python=3.8 ``` 这一步骤有助于隔离项目所需的依赖项,并减少潜在冲突的发生概率[^1]。 #### 获取相关源码资源 针对具体实现细节以及如何结合 PyTorch 实现带有 `'aby'` 功能的应用程序,可以从以下 GitHub 存储库获取更多信息: - **CBMC-GC Framework**: 提供通用布尔电路生成器及相关组件,适用于构建复杂的加密算法流程。 ```plaintext Source Code: https://github.com/MPC-SoK/frameworks/tree/master/cbmc-gc ``` 上述链接指向了一个专注于多方通信与秘密分享的研究成果集合,其中包含了部分关于 ABY 协议的具体实例代码片段[^2]。 另外还可以参考官方文档资料进一步了解 SecretFlow 平台的整体架构设计及其提供的 API 接口说明: - **SecretFlow Tutorial**: 综合介绍了该系统的各项核心特性及典型应用场景案例分析。 ```plaintext Documentation Link: https://secretflow.readthedocs.io/zh/latest/tutorial/index.html# ``` 此页面不仅涵盖了基础入门指导还深入探讨了一些高级主题比如跨域联邦学习等[^3]。 最后值得注意的是虽然当前描述主要围绕着理论层面展开讨论但实际上要真正完成这样一个综合性任务往往还需要更多实际操作经验积累包括但不限于熟悉掌握目标平台内部工作机制熟练运用所选深度学习框架等等因素共同作用下才能达到预期效果。 --- ### 示例代码展示 下面给出了一段简单示例演示如何利用装饰器机制调用远程设备上的功能模块假设这里我们选用的是 SPUDevice 类型作为后台处理单元并通过 PyTorch 构建输入张量对象传递给远端执行引擎完成最终运算过程: ```python import torch from secretflow.device import reveal, SPUDevice # 初始化SPU设备实例 spu_dev = SPUDevice() @spu_dev() def compute_mse(predictions, targets): """Calculate Mean Squared Error on remote device.""" mse_loss_fn = torch.nn.MSELoss() loss_value = mse_loss_fn(torch.tensor(predictions), torch.tensor(targets)) return float(loss_value) # 假设预测值列表和真实标签分别为preds=[...];labels=[...] result = compute_mse(preds, labels) print(f"Computed MSE Loss Value:{reveal(result)}") ``` 以上脚本展示了怎样借助 SecretFlow SDK 将本地编写的常规 Python 函数无缝迁移至分布式网络节点之上运行从而充分利用后者强大的算力优势同时保障数据安全性不受侵犯。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值