基于多密钥同态加密的安全高效的联邦学习
文章目录
- 摘要与简介部分
- 1、联邦学习 FL
- 2、同态加密 HE
- 3、文章创新点
- 一、简介
- 1、基于 HE 的 FLs
- 2、离线问题
- 3、计算开销
- 4、该文章的工作
- 5、文章的贡献点
- 二、背景和相关研究
- 1、基于多方安全计算 (SMC) 的联邦学习 (FL)
- 2、基于差分隐私 (DP) 的联邦学习 (FL)
- 3、基于可信执行环境 (TEE) 的联邦学习 (FL)
- 4、基于同态加密 (HE) 的联邦学习 (FL)
- 4.1、基于单密钥同态加密的联邦学习
- 4.2、基于多密钥同态加密的联邦学习
- 三、前言和系统模型
该篇文章是对《SecFed: A Secure and Efficient Federated Learning Based on Multi-Key Homomorphic Encryption》的笔记。
摘要与简介部分
1、联邦学习 FL
联邦学习 (FL) 有效地解决了孤立的 数据孤岛问题,因此在各行业中得到了广泛的应用。然而,窃听者可以从 密文传输的梯度或模型 推断出用户的隐私。
所谓 “数据孤岛问题”,就是指 数据拥有者 不愿意将自己的 私有数据 与其他的用户共享。从而导致在进行机器学习的过程中,因为数据集不够而产生训练效果不佳的问题。
为了解决 数据孤岛问题,谷歌首先推出了 联邦学习 FL 的概念,支持多个实体通过 收集 模型参数更新 来 联合训练模型,这些模型由本地数据训练而不暴露个人原始数据。
2、同态加密 HE
同态加密 (HE) 由于其对密文的可计算性,可以应用于密文传输中来保护敏感数据。然而,传统的 HE 作为一种 单密钥系统,无法防止 不诚实的用户 拦截和解密 FL 中合作用户的密文,在这种多用户场景下保证隐私和效率仍然是一个具有挑战性的目标。
3、文章创新点
- 文章提出了一种 基于多密钥 HE 的安全高效的 联邦学习方案 (SecFed),以保护用户隐私,并将部分操作委托给 TEE,在保证安全性的同时提高效率。
具体而言,设计了第一个基于 tee 的 多密钥 HE 密码系统 (EMK-BFV),以支持隐私保护 FL 并优化运行效率。 - 提供了 离线保护机制,以确保参与者断开连接时系统的正常运行。
- 通过 综合仿真 和与现有方案的比较,给出了它们的 安全性证明,并证明了它们的有效性和优越性。
SecFed 的性能比基于 tee 的方案提高了 3倍,比基于 he 的方案提高了 2倍。
一、简介
根据现有的研究,发现一个关于 FL 的问题,即明文传输的梯度或模型也可能会导致隐私的泄露。为了解决该问题,经常将各种隐私保护技术应用在 联邦学习中。例如:SMC、DP、TEE。
- SMC (Secure Multiparty Computation):
SMC 通过构建 安全的交互协议来 实现 机密性。但是 SMC 增加了 中央服务器 的 计算开销,降低了 通信效率。 - DP (Differential Privacy):
DP 将 噪声 添加到 梯度或模型 中,以至于攻击者即使拦截了数据,也无法获取 有效信息。但由于 不能有效地控制噪声,影响了 FL 的 精度。 - TEE (Trusted Execution Environment):
TEE 提供 硬件级别 的安全保护,但是构建这种安全环境通常会带来 额外的开销。
此外,由于需要 对密文进行计算,在 FL 任务的上下文中使用 轻量级加密算法 会 将原始数据暴露给 第三方服务器,从而降低了安全性并增加了隐私暴露的风险。同态加密 HE 可以很好的解决这个问题。
有一些使用了 HE 的隐私保护 FL 框架这些年被陆续提出来 (如下所述),但是他们仍然面对着一些挑战:隐私性、鲁棒性、效率。
1、基于 HE 的 FLs
如果 单密钥 HE (SHE) 被应用,那么 基于HE的FLs 会将隐私泄露给 合作实体 (实体可以解密其他实体的密文),如《Privacy preserving machine learning with homomorphic encryption and federated learning,》所述。
在一个多实体的系统中,如果所有的实体都使用用一个密钥来进行加密,那么恶意的实体便可以拦截和解密其他人的数据。所以 多密钥HE (MHE) 应该被应用于 FL 中。
2、离线问题
为了实现更高程度的准确性,更多的实体和更多的数据被期待为协同训练提供贡献。上面的 MHE 虽然可以解决 隐私性 问题,但是它增加了当 一些用户离线 的时候 数据管理 的难度。
任何用户离线都会导致他人解密失败,从而无法获得方案中的聚合结果。
详细请看 论文1所述。
3、计算开销
HE 拥有很高的计算开销。HE 虽然能在不牺牲 准确性 和 高操作开销 的情况下保证隐私。但是,与直接在明文上进行操作相比,它仍然有一些 计算开销 (这仍然是一个未解之谜)。
4、该文章的工作
为了解决上面说到的三个问题,作者首先构建了 多密钥同态加密系统 EMK-BFV,该系统基于 BFV 加密系统。
BFV 加密系统 参考《Somewhat practical fully homomorphic encryption》
然后,作者将一些在 HE 中 时间开销较大的操作 转移到了 TEE 中,为了提高计算效率。
然后,作者将 EMK-BFV 部署到 FL 中,并通过与 TEE 合作,设计了相应的用户离线保护机制,来提高 FL系统的 鲁棒性。
5、文章的贡献点
- 提出了一个名为 SecFed 的创新且强大的 隐私保护 FL 框架。它结合了一种新颖高效的 多密钥 HE,EMK-BFV,以及一种灵活的 离线保护机制,使 协作参与者 能够在 不同密钥 下上传数据,以保护数据隐私,同时确保系统的 不间断功能,即使多达 N-2名 参与者断开连接。
- 提出了首个 基于 TEE 的多密钥 HE 加密系统,称为 EMK-BFV,来提高 FL 的数据安全性。该系统基于 BFV,实际上就是将 BFV 中的一些 时间消耗较大的操作 改成用 TEE 来实现。
- 分析了包括 EMK-BFV 在内的 SecFed 的安全性,并通过比较评估了其效率。基于真实数据进行了基于模拟的实验,以测试 SecFed的性能。SecFed 与 基于TEE 和 基于HE 的 FL 之间的比较突显了 SecFed 在 效率和隐私保护方面 的卓越性能。
二、背景和相关研究
与中心化的 机械学习 (ML) 不同,FL 允许参与的用户通过交换 梯度和模型 而不是 原始数据 的方法来进行 协同训练。
1、基于多方安全计算 (SMC) 的联邦学习 (FL)
SMC 允许 多个用户 用他们自己的输入 联合计算 一个模型或函数,并保证这些输入的 私密性。SMC 技术 可以实现 梯度或模型的 安全传输和聚合。
然而,一些工作证明了:在存在 恶意服务器的情况下,安全聚合 很难确保 隐私完整性。但是仍然有一些文章提出了基于 半可信服务器 的解决方法。
- Bonawitz 等人的研究2
Bonawitz 等人首次构建了 SMC协议 来实现 安全聚合,并使用 double-masking 构建了 隐私计算步骤。
然而,该方法下的用户之间的必须相互交流和联系,这是非常低效的。 - Bell 等人的研究3
Bell 等人在 Bonawitz 等人工作2的基础上,改进了用户之间沟通的方式。将一个用户现需要与 N-1 个用户沟通,变成了只需要与 log(N) 个用户沟通。这种在 通信开销 上的减少是通过实现特殊的 数据结构 换来的,这将带来新的 存储开销。
该工作4通过 秘密共享 实现了 梯度的安全聚合。但是,它附带了 额外的通信轮,用于交换 安全聚合所需的参数。如果在较差的通信环境中,这些额外的通信会严重影响 模型的收敛速度。 - FATE
FATE5 使用 masking techniques 来保护模型,用户需要自己协商生成 masks。interrelated masks 保证了 模型聚合的安全性 和 解密的正确性。但是 FATE 引入了 生成 masks 的开销,并且 延长了 资源受限用户的 运行时间。
此外,任何 masks 的丢失 都会导致 解密失败。
上面对于三个方法的说明,表明基于 SMC 的 FL 方案在 通信开销 和 用户计算开销 方面存在一定的缺点。
2、基于差分隐私 (DP) 的联邦学习 (FL)
差分隐私6 给个人的隐私数据添加 噪声 来提供隐私保护。
这里有两种将 DP 应用到 FL 中的方法:
- 方法一,在本地训练之前,给用户的 数据集 添加 噪声,例如 DPFedAvg-GAN 和 NbAFL。
但是这种方法的 缺点 在于,噪声 会对模型的 收敛速度 产生负面影响,并降低 模型精度。 - 方法二,在模型的 参数 中添加 噪声 或者直接在 用户端的梯度 中添加 噪声,例如 Abidi、Hu 等人的研究。
然而 FL 的聚合过程 会造成 噪声的叠加,这些噪声是用户难以去除的,并且会降低模型的准确率。
Hu 等人的研究 在迭代的过程中给模型添加噪声。这与 Abidi 等人的研究 不同,被 不同的用户 加入到模型中的 噪声 会在聚合的过程中相互抵消。
但 模型数据 也会受到这种抵消效应的影响,导致 精度降低。
上面的内容说明了,基于 DP 的方案 对精度有负面影响。
3、基于可信执行环境 (TEE) 的联邦学习 (FL)
TEE 花费 额外的时间 通过 加密内存 来创建和维护一个供程序执行的安全环境。在论文7和论文8中,安全内存 确保数据隐私,但是会带来额外的开销。
在论文7中,使用 TEE 来保护 预测过程,这避免了将 复杂的训练过程 转移到 安全内存 中。然而,太多的 预测数据 会大大增加 时间开销。
在论文8中,将 FL 的聚合过程 迁移到 TEE 中执行,这 保护了用户的隐私。但是 内存中频繁的数据交互 导致了 安全内存消耗的增加,这带来了巨大的 时间开销。
为了防止论文7和论文8中对 安全内存的过度消耗,FAN 等人在 论文9 中使用了一个 贪心算法 对模型进行优化,使 TEE 处理的数据 更少,避免了昂贵的 分页机制。然而,贪心算法的使用 增加了 程序常规部分的 计算开销,并没有取得显著的效果。
总的来说,==如何使用 TEE 来合理的避免 额外时间开销 和 实现效率和安全之间的平衡 非常重要。
4、基于同态加密 (HE) 的联邦学习 (FL)
HE 提供了 对密文进行计算 的能力。根据 HE 中 密钥的数量,可以将该类型的同态加密分为两类:基于单密钥同态加密的联邦学习 和 基于多密钥同态加密的联邦学习。
4.1、基于单密钥同态加密的联邦学习
Paillier 加密系统 作为一种流行的 加法同态加密,被广泛用于 水平 FL 中对 梯度或模型 的保护。
论文9 使用 Paillier 对 模型 进行保护,同时利用 FPGA 对加密进行优化,从而提高了 基于 HE 的方案 的运行效率。
论文10 提出了使用 Paillier 来保护 梯度 的 可验证隐私保护 FL,其中 HE 的同态性质用于执行 密文计算 和 服务器操作的认证。
论文11 使用 CKKS 加密系统12 来保护模型。
论文13 利用 HE 保护 特征 在 用户和服务器 之间的传输,实现了一种 基于数据垂直分布 的 安全联邦贝叶斯算法。
同态加密算法也被用于保护 迁移学习14。
然而,在这些方案中,所有用户都持有 一对 用于 数据外包和共享的 密钥,这很容易受到 恶意用户 的攻击。单密钥 HE 不适合 FL 中的 多用户场景。
4.2、基于多密钥同态加密的联邦学习
该系统是为了满足多用户场景的要求。多密钥同态加密 被应用于在 联邦学习 中保护 梯度或模型的隐私性。
在论文15中,不同的噪声 在密钥生成的时候被添加到用户的 私钥 中。因此,用户使用 各种私钥 外包他们的 数据。然而,如果一个用户是 离线 的,则会因为 无法正确收集到噪声 而导致 解密失败。
xMK-CKKS16 实现了一个 多密钥的 CKKS 来保护 FL 中的 外包数据。每个用户 使用一个 不同的密钥 来加密他们的 模型。但是 CKKS 对于资源受限的用户来说具有很高的 计算开销。
DTAHE17 实现了一个 阈值机制 来实现多用户间的隐私保护。但是 阈值 在联邦学习的过程中是 不能改变的。
论文1 将 一个私钥 分成 若干个密钥 给用户。相同的公钥 被用于 加密,部分私钥 被用于 部分解密。部分解密的结果 能够被聚合起来得到最终的结果 (完整解密内容)。但是,这个方法不能处理 用户离线 的问题。
三、前言和系统模型
《Privacy-preserving federated learning using homomorphic encryption》 ↩︎ ↩︎
《Practical secure aggregation for privacy-preserving machine learning》 ↩︎ ↩︎
《Secure single-server aggregation with (poly) logarithmic overhead》 ↩︎
《Towards efficient and privacypreserving federated deep learning》 ↩︎
《FATE: An industrial grade platform for collaborative learning with data protection》 ↩︎
《Differential privacy: A survey of results》 ↩︎
《Privacy-preserving neural network inference framework via homomorphic encryption and SGX》 ↩︎ ↩︎ ↩︎
《FLATEE: Federated learning across trusted execution environments》 ↩︎ ↩︎ ↩︎
《FPGA-based hardware accelerator of homomorphic encryption for efficient federated learning》 ↩︎ ↩︎
《A secure federated learning framework using homomorphic encryption and verifiable computing》 ↩︎
《Secure neuroimaging analysis using federated learning with homomorphic encryption》 ↩︎
《Homomorphic encryption for arithmetic of approximate numbers》 ↩︎
《A homomorphic-encryption-based vertical federated learning scheme for rick management》 ↩︎
《A secure federated transfer learning framework》 ↩︎
《Secure aggregation in federated learning via multiparty homomorphic encryption》 ↩︎
《Privacy-preserving federated learning based on multi-key homomorphic encryption》 ↩︎
《Secure linear aggregation using decentralized threshold additive homomorphic encryption for federated learning》 ↩︎
相关文章:

基于多密钥同态加密的安全高效的联邦学习
文章目录 摘要与简介部分1、联邦学习 FL2、同态加密 HE3、文章创新点 一、简介1、基于 HE 的 FLs2、离线问题3、计算开销4、该文章的工作5、文章的贡献点 二、背景和相关研究1、基于多方安全计算 (SMC) 的联邦学习 (FL)2、基于差分隐私 (DP) 的联邦学习 (FL)3、基于可信执行环境…...

R语言统计分析——气泡图
参考资料:R语言实战【第2版】 气泡图(bubble plot)用来展示三个定量变量间的关系:先创建一个二维散点图,然后用点的大小来代表第三个边变量的值。 我们可以使用symbols()函数来创建气泡图。该函数可以在指定的(x,y)坐标…...

实用篇—Navicat复制多条INSERT语句,去除ID列执行
在数据库管理中,常常需要将数据从一个表复制到另一个表。使用 Navicat 等工具可以方便地导出多条 INSERT 语句,但有时我们不需要某些列(如 ID 列)。本文将介绍如何在 Navicat 中复制多条 INSERT 语句,并去除 ID 列以便…...

pytorch中张量的有关操作
pytorch中张量的有关操作 创建张量torch.tensor(data): 从数据创建张量torch.zeros(size): 创建元素全为0的张量torch.ones(size): 创建元素全为1的张量torch.empty(size): 创建未初始化的张量torch.randn(size): 创建服从标准正态分布的张量torch.arange(start, end, step): 创…...

Windows多线程编程 互斥量和临界区使用
Windows 多线程编程允许程序同时运行多个线程,提高程序的并发性和执行效率。多线程编程中的核心概念包括线程的创建、同步、调度、数据共享和竞争条件等。本文详细介绍了 Windows 多线程编程的关键技术点,并解释如何使用线程同步机制来保证线程安全。 1…...

Java中集合类型的转换
在Java编程中,集合框架(Collections Framework)提供了一套用于存储和处理对象集合的接口和类。由于集合框架的灵活性和强大功能,我们经常需要在不同的集合类型之间进行转换。本文将介绍Java中常见的集合类型转换方法,包…...

汽车售后TPMS浅谈
汽车售后中的TPMS,即轮胎压力监测系统(Tire Pressure Monitoring System),是一种重要的汽车安全系统。以下是对汽车售后TPMS的详细解释: 一、TPMS的作用 TPMS的主要作用是在汽车行驶过程中对轮胎气压进行实时自动监测…...

LUCEDA IPKISS Tutorial 77:在版图一定范围内填充dummy
案例分享:在给定的Shape内填充dummy 所有代码如下: from si_fab import all as pdk from ipkiss3 import all as i3 from shapely.geometry import Polygon, MultiPolygon import numpy as np import matplotlib.pyplot as pltclass CellFilledWithCon…...

TON生态小游戏开发:推广、经济模型与UI设计的建设指南
随着区块链技术的快速发展,基于区块链的Web3游戏正引领行业变革。而TON生态小游戏,借助Telegram庞大的用户基础和TON(The Open Network)链上技术,已成为这一领域的明星之一。国内外开发者正迅速涌入,开发和…...

Python 量子机器学习:基础概念、关键算法与应用实践
🌟 Python 量子机器学习:基础概念、关键算法与应用实践 目录 🌍 量子计算的基本原理 量子位、叠加、纠缠等概念解析量子计算如何影响机器学习:速度与效率的提升 🚀 量子机器学习中的关键算法 量子支持向量机…...

信息安全数学基础(29) x^2 + y^2 = p
前言 方程 x2y2p 是一个涉及整数解和素数 p 的二次方程。这个方程在数论和几何中都有重要的意义,特别是在研究圆的整数点和费马大定理的背景下。 一、定义与背景 方程 x2y2p 表示一个平面上的圆,其圆心在原点 (0,0),半径为 p(当…...

ChatGPT国内中文版镜像网站整理合集(2024/10/06)
一、GPT中文镜像站 ① yixiaai.com 支持GPT4、4o以及o1,支持MJ绘画 ② chat.lify.vip 支持通用全模型,支持文件读取、插件、绘画、AIPPT ③ AI Chat 支持GPT3.5/4,4o以及MJ绘画 1. 什么是镜像站 镜像站(Mirror Siteÿ…...

图文深入理解Oracle DB Scheduler
值此国庆佳节,深宅家中,闲来无事,就多写几篇博文。今天继续宅继续写。本篇图文深入介绍Oracle DB Scheduler。 Oracle为什么要使Scheduler? 答案就是6个字:简化管理任务。 • Scheduler(调度程序&#x…...

gin如何具体利用Server-Send-Events(SSE)实时推送技术实现消息推送
目录 业务场景 解决方案 1. 轮询 2. WebSocket 3. SSE(Server-Send-Events) 代码实现 总结 业务场景 在抖音、美团等APP中,我们经常会遇到APP内部的消息推送,如关注的人的动态消息推送、点赞评论互动消息推送以及算法推荐消息推送。这些场景都是…...

写端口-tcp udp不同方式发包和接包
最近一直在学习网络编程,今天把 socket部分做一个总结。 Python 的socket库可以实现不同协议不同地址的发包和收包,无奈资料很少,官方例子有限,大神博客很少提及, 经过一番尝试后,总结以下几点用法以便大家…...

计算机的错误计算(一百二十)
摘要 探讨在许多应用中出现的函数 的计算精度问题。 例1. 考虑在许多应用中出现的函数 计算 不妨在Python下计算: 若用下列Rust代码在线计算: fn f(x: f64) -> f64 {(x.exp() - 1.0) / x }fn main() {let result f(0.9e-13);println!("…...

Spring Boot 中使用 JSON Schema 来校验复杂 JSON 数据
博客主页: 南来_北往 系列专栏:Spring Boot实战 在现代软件开发中,尤其是构建 RESTful API 时,处理 JSON 数据已成为一项基本任务。JSON(JavaScript Object Notation)因其轻量级和易于人类阅读的特点ÿ…...

QT实现Opencv图像处理
案例 基于QT的人脸识别 pro文件需要加以下代码 INCLUDEPATH E:/opencv/opencv3.4-qt-intall/install/include INCLUDEPATH E:/opencv/opencv3.4-qt-intall/install/include/opencv INCLUDEPATH E:/opencv/opencv3.4-qt-intall/install/include/opencv2 LIBS E:/opencv/o…...

刚转Mac的新手如何卸载不需要的应用程序
最开始转Mac系统的时候很是苦恼,到底该怎么卸载App啊,App直接拖到废纸篓真的能卸载干净吗,卸载App时会不会留下一些文件残留,慢慢的会不会占满内存,于是我找到了一个免费的卸载工具——XApp。 这是一款Mac应用程序卸载…...

Unity 3d 继承MonoBahaviour的单例
在使用Unity3d开发游戏或做客户端项目时,单例是最常见的模式之一,他简单了类的创建,在代码中可以直接调用。下面是两个例子,代码两种不同类型的单例,一个是基本类的单例基类,不是unity MonoBehaviour的类都…...

grafana version 11.1.0 设置Y轴刻度为1
grafana 版本 # /usr/share/grafana/bin/grafana --version grafana version 11.1.0设置轴 Axis 搜索 Standard options 在"Decimals"中输入0,确保只显示整数...

Elasticsearch的安装与配置
注意:elasticsearch 禁止安装在/root路径下! 1、创建用户组 groupadd elastic 2、创建用户 useradd es -d /home/es -g elastic echo es | passwd es --stdin 3、给新创建的用户进行授权 chown -R es:elastic /home/es chmod -R 775 /home/es 4…...

win0删除 Windows.old
参考:https://blog.csdn.net/xitongzhijia_abc/article/details/126270452 win10如下所示: 打开 设置–>系统—>存储...

常见IDE及其编译器的讲解
IDE 意思是:集成开发环境 常见的IDE有哪些? eg. devC,VS2022,xcode,codeblocks,clion常见编译器有哪些? eg.msvc,gcc,clang微软的底层编译器是msvc苹果的底层编译器是clang IDE编译器特点devC集成了gcc小巧,工具简单&…...

用SQLyog连接mysql提示2058错误
1)在cmd下(必须是这个,不能是gitbash) // step1:修改下数据库 C:\Users\elex>mysql -uroot -p Enter password: **** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 97 Server version: 8.1.0 MySQL Community Server - GPLCopy…...

Web集群服务-Nginx
1. web服务 1. WEB服务:网站服务,部署并启动了这个服务,你就可以搭建一个网站 2. WEB中间件: 等同于WEB服务 3. 中间件:范围更加广泛,指的负载均衡之后的服务 4. 数据库中间件:数据库缓存,消息对列 2. 极速上手指南 nginx官网: nginx documentation 2.1 配置yum源 vim /etc/…...

获取时隔半个钟的三天
摘要: 今天遇到需求是配送时间,时隔半个钟的排线!所以需要拼接时间!例如2024-10-08 14:30,2024-10-08 15:00,2024-10-08 15:30 <el-form-item label"配送时间&a…...

构建可以ssh连接的容器镜像
构建可以ssh连接的容器镜像 构建可以通过ssh进行连接容器镜像,实现远程登录容器的目的。 ubuntu ssh容器镜像 你可以使用以下Dockerfile来构建一个可以SSH的容器镜像: FROM ubuntu:20.04MAINTAINER lldhsds# 配置apt国内源 COPY sources.list /etc/a…...

数据库中JOIN的用法?
在数据库中,JOIN 操作用于结合来自两个或多个表的数据,基于它们之间的相关列。JOIN 是关系数据库查询中一个非常重要的功能,允许你从多个表中提取相关的数据。以下是几种常见的 JOIN 类型及其用法: INNER JOIN: 返回两个表中匹配的…...

java项目之纺织品企业财务管理系统源码(springboot+vue+mysql)
风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的纺织品企业财务管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 基于spring boot…...