《Secure Analytics-Federated Learning and Secure Aggregation》论文阅读

背景

机器学习模型对数据的分析具有很大的优势,很多敏感数据分布在用户各自的终端。若大规模收集用户的敏感数据具有泄露的风险。
对于安全分析的一般背景就是认为有n方有敏感数据,并且不愿意分享他们的数据,但可以分享聚合计算后的结果。
联邦学习是一种训练数据在多方训练,然后聚合结果得到最终的中心化模型。其中的关键就是多方结果的安全聚合。

风险模型

有很多用户,假设用户都是诚实但好奇的,即会遵守协议规则,但会通过拼凑数据获取敏感信息。换句话说就是恶意的,很可能执行不好的行为。

安全聚合
问题的定义、目标和假设

风险模型假设用户和中心服务器都是诚实且好奇的。如果用户是恶意的,他们有能力在不被监测的情况下影响聚合结果。
安全聚合协议:

  1. 操作高维向量;
  2. 不管计算中涉及到的用户子集,通信是高效的;
  3. 用户dropout是robust;
  4. 足够安全
第一次尝试:一次填充掩码

对于所有的用户,通过每个用户对 u , v u,v uv构建一个secret,具体逻辑:对所有用户进行排序,当用户 u < v u < v u<v构建一个 + s u , v +s_{u,v} +su,v,相反则构建一个 − s v , u -s_{v,u} sv,u,如下图:
请添加图片描述
当聚合的时候
∑ i = 1 3 = x 1 + s 1 , 2 + s 1 , 3 + x 2 − s 1 , 2 + s 2 , 3 + x 3 − s 1 , 3 − s 2 , 3 \sum_{i=1}^3=x_1+s_{1,2}+s_{1,3}+x_2-s_{1,2}+s_{2,3}+x_3-s_{1,3}-s_{2,3} i=13=x1+s1,2+s1,3+x2s1,2+s2,3+x3s1,3s2,3

缺点:

  1. 二次通信,每个用户对 u , v u, v u,v都需要产生他们的秘钥 s u , v s_{u,v} su,v
  2. 如果任何一个用户drop out,对于 ∑ ∀ i y i \sum_{\forall i}y_i iyi都会变成垃圾数据,从而本次不能聚合。
利用Diffie-Hellman秘钥交换改进二次通信

所有的用户商定一个大素数 p p p和一个基本数 g g g。用户将自己的公钥( g a u m o d p g^{a_{u}} \mod p gaumodp,其中 a u a_u au是用户的秘钥)发送给server,然后server广播一个公钥给其他的用户,其他用户使用自己的秘钥和该公钥进行计算,如:
u 1 : ( g a 2 ) a 1 m o d p = g a 1 a 2 m o d p = s 1 , 2 u_1:(g^{a_2})^{a_1}\quad mod \quad p = g^{a_1a_2}\quad mod \quad p=s_{1,2} u1(ga2)a1modp=ga1a2modp=s1,2
u 2 : ( g a 1 ) a 2 m o d p = g a 1 a 2 m o d p = s 1 , 2 u_2:(g^{a_1})^{a_2}\quad mod \quad p = g^{a_1a_2}\quad mod \quad p=s_{1,2} u2(ga1)a2modp=ga1a2modp=s1,2
Diffie-Hellman秘钥交换比上面的方法更简单、更高效。

第二次尝试:可恢复的一次性填充掩码

同上述方法类似,用户将他们加密后的向量 y u y_u yu发给server,然后server询问其他用户是否包含drop out的用户,是的话则取消他们的秘密绑定。如下图:请添加图片描述

该方法的缺点:

  1. 在recovery阶段发生额外的用户drop out,这将要求新drop out的用户也需要recovery,在大量用户的情况下,轮询次数将增加。
  2. 通信延迟导致server以为用户被drop out。因此,会想其他用户recovery秘钥,这导致server在接收到该用户的secret时,解密该用户的 x u x_u xu。如下图
    请添加图片描述
    因此,如果server是恶意的,则可以通过此方法获取用户的inputs

Shamir秘密分享
允许一个用户将秘密 s s s分享成 n n n个shares,然后任意 t t t个shares都能重构出秘密 s s s,而任意 t − 1 t-1 t1个shares都不能重构出秘密 s s s

第三次尝试:处理Dropped用户

为了克服在通信轮次之间,新dropped用户增加recovery阶段,用户Shamir秘密分享的阈值。每个用户发送他们DH秘钥的shares给其他用户,只要符合阈值条件,允许pairwise secrets被recovered,即使是recovery期间新dropped用户。协议可以总结如下:

  1. 每个用户 u u u将他的DH秘钥 a u a_u au分享成n-1个部分 a u 1 , a u 2 , . . , a u ( n − 1 ) a_{u1},a_{u2},..,a_{u(n-1)} au1,au2,..,au(n1),并发送给其他 n − 1 n-1 n1个用户。
  2. server接收来自在线用户的 y u y_u yu(记为: U o n l i n e , r o u n d 1 U_{online,round 1} Uonline,round1)。
  3. server计算dropped用户集,表示为 U d r o p p e d , r o u n d 1 U_{dropped,round 1} Udropped,round1
  4. server向 U o n l i n e , r o u n d 1 U_{online,round 1} Uonline,round1询问 U d r o p p e d , r o u n d 1 U_{dropped,round 1} Udropped,round1的shares。在第二轮通信中假设至少还有t个用户在线
  5. server对 U d r o p p e d , r o u n d 1 U_{dropped,round 1} Udropped,round1的秘钥进行recover,并在最后聚合时,remove掉他们。

该方法依然没有解决恶意server因为通信延迟问题获取用户的数据问题。

最后一次尝试:双重掩码

双重掩码的目标就是为了防止用户数据的泄露,即使当server重构出用户的masks。首先,每个用户产生一个额外的随机秘钥 a u a_u au,并且分布他的shares给其他的用户。生成 y u y_u yu时,添加第二重mask:
y u = x u + a u + ∑ u < v s u , v − ∑ u > v s v , u m o d e R y_u = x_u+a_u+\sum_{u<v}s_{u,v}-\sum_{u>v}s_{v,u}\quad mode \quad R yu=xu+au+u<vsu,vu>vsv,umodeR
在recovery轮次中,对于每个用户,server必须作出精确的选择。从每个在线的成员 v v v中,请求 u u u s u , v s_{u,v} su,v或者 a u a_u au。对于同一个用户,一个诚实的 v v v通过这两种shares不能还原数据,server需要从所有dropped的用户中聚合至少t个 s u , v s_{u,v} su,v的shares或者所有在线用户中t个 a u a_u au的shares。之后,server便可以减去剩余的masks还原数据。
该方法整个过程中的计算和通信数量级还是 n 2 n_2 n2,n表示参与计算的用户数。一个新的问题:当 t < n 2 t<\frac{n}{2} t<2n时,server可以分别询问用户的 s u , v s_{u,v} su,v a u a_u au,来解密用户的数据

参考文献:
[1] K. Bonawitz. ”Practical Secure Aggregation for Privacy-Preserving Machine Learning”. 2017.
[2] J. Konecny. ”Federated Learning: Strategies for Improving Communication Efficiency”. 2017.
[3] H. B. McMahan. ”Communication-Efficient Learning of Deep Networks from Decentralized Data”. 2016.
[4] A. Shamir. ”How to Share a Secret”. 1979.

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

PyTorch入门之【AlexNet】

参考文献&#xff1a;https://www.bilibili.com/video/BV1DP411C7Bw/?spm_id_from333.999.0.0&vd_source98d31d5c9db8c0021988f2c2c25a9620 AlexNet 是一个经典的卷积神经网络模型&#xff0c;用于图像分类任务。 目录 大纲dataloadermodeltraintest 大纲 各个文件的作用&…

[每日算法 - 阿里机试] leetcode19. 删除链表的倒数第 N 个结点

入口 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能&#xff0c;轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/remove-nth-node-from-end…

【AI视野·今日Robot 机器人论文速览 第四十七期】Wed, 4 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Wed, 4 Oct 2023 Totally 40 papers &#x1f449;上期速览✈更多精彩请移步主页 Interesting: &#x1f4da;基于神经网络的多模态触觉感知, classification, position, posture, and force of the grasped object多模态形象的解耦(f…

多普勒频率相关内容介绍

图1 多普勒效应 1、径向速度 径向速度是作用于雷达或远离雷达的速度的一部分。 图2 不同的速度 2、喷气发动机调制 JEM是涡轮机的压缩机叶片的旋转的多普勒频率。 3、多普勒困境 最大无模糊范围需要尽可能低的PRF&#xff1b; 最大无模糊速度需要尽可能高的PRF&#xff1b…

【目标检测】——PE-YOLO精读

yolo&#xff0c;暗光目标检测 论文&#xff1a;PE-YOLO 1. 简介 卷积神经网络&#xff08;CNNs&#xff09;在近年来如何推动了物体检测的发展。许多检测器已经被提出&#xff0c;而且在许多基准数据集上的性能正在不断提高。然而&#xff0c;大多数现有的检测器都是在正常条…

项目环境搭建

注册中心网关配置 spring:cloud:gateway:globalcors:add-to-simple-url-handler-mapping: truecorsConfigurations:[/**]:allowedHeaders: "*"allowedOrigins: "*"allowedMethods:- GET- POST- DELETE- PUT- OPTIONroutes:# 平台管理- id: useruri: lb://…

基于SSM的大学生就业信息管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

【论文阅读】An Evaluation of Concurrency Control with One Thousand Cores

An Evaluation of Concurrency Control with One Thousand Cores Staring into the Abyss: An Evaluation of Concurrency Control with One Thousand Cores ABSTRACT 随着多核处理器的发展&#xff0c;一个芯片可能有几十乃至上百个core。在数百个线程并行运行的情况下&…

频次直方图、KDE和密度图

Seaborn的主要思想是用高级命令为统计数据探索和统计模型拟合创建各种图形&#xff0c;下面将介绍一些Seaborn中的数据集和图形类型。 虽然所有这些图形都可以用Matplotlib命令实现&#xff08;其实Matplotlib就是Seaborn的底层&#xff09;&#xff0c;但是用 Seaborn API会更…

黑马点评-02使用Redis代替session,Redis + token机制实现

Redis代替session session共享问题 每个Tomcat中都有一份属于自己的session,所以多台Tomcat并不共享session存储空间,当请求切换到不同tomcat服务时可能会导致数据丢失 用户第一次访问1号tomcat并把自己的信息存放session域中, 如果第二次访问到了2号tomcat就无法获取到在1号…

2023年CSP-J真题详解+分析数据(选择题篇)

目录 前言 2023CSP-J江苏卷详解 小结 前言 下面由我来给大家讲解一下CSP-J的选择题部分。 2023CSP-J江苏卷详解 1.答案 A 解析&#xff1a;const在C中是常量的意思&#xff0c;其作用是声明一个变量&#xff0c;值从头至尾不能被修改 2.答案 D 解析&#xff1a;八进制…

解决WPF+Avalonia在openKylin系统下默认字体问题

一、openKylin简介 openKylin&#xff08;开放麒麟&#xff09; 社区是在开源、自愿、平等和协作的基础上&#xff0c;由基础软硬件企业、非营利性组织、社团组织、高等院校、科研机构和个人开发者共同创立的一个开源社区&#xff0c;致力于通过开源、开放的社区合作&#xff…

【c++_containers】10分钟带你学会list

前言 链表作为一个像是用“链子”链接起来的容器&#xff0c;在数据的存储等方面极为便捷。虽然单链表单独在实际的应用中没用什么作用&#xff0c;但是当他可以结合其他结构&#xff0c;比如哈希桶之类的。不过今天学习的list其实是一个带头双向链表。 言归正传&#xff0c;让…

【LinuxC】时间、时区,相关命令、函数

文章目录 一、序1.1 时间和时区1.11 时间1.12 时区 1.2 查看时间时区的命令1.21 Windows1.22 Linux 二、C语言函数2.1 通用2.11 函数简介2.12 数据类型简介 2.2 windows 和 Linux特有函数2.3 C语言示例 一、序 1.1 时间和时区 1.11 时间 时间是一种用来描述物体运动变化的量…

【AI视野·今日CV 计算机视觉论文速览 第262期】Fri, 6 Oct 2023

AI视野今日CS.CV 计算机视觉论文速览 Fri, 6 Oct 2023 Totally 73 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computer Vision Papers Improved Baselines with Visual Instruction Tuning Authors Haotian Liu, Chunyuan Li, Yuheng Li, Yong Jae Lee大型多模…

【全3D打印坦克——基于Arduino履带式机器人】

【全3D打印坦克——基于Arduino履带式机器人】 1. 概述2. 设计机器人平台3. 3D 模型和 STL 下载文件3.1 3D打印3.2 组装 3D 打印坦克 – 履带式机器人平台3.3 零件清单 4. 机器人平台电路图4.1 定制电路板设计4.2 完成 3D 打印储罐组件 5. 机器人平台编程6. 测试3D打印机器人 -…

Docker 镜像的创建

目录 一、Docker镜像的创建 1、基于已有镜像创建 2、基于本地模板创建 3、基于dockerfile创建 3.1 dockerfile结构 3.2 构建镜像命令 二、镜像分层的原理 1、联合文件系统&#xff08;UnionFS&#xff09; 2、镜像加载的原理 三、Dockerfile 操作常用的指令 案例实验…

1.7.C++项目:仿muduo库实现并发服务器之Poller模块的设计

项目完整在&#xff1a; 文章目录 一、Poller模块&#xff1a;描述符IO事件监控模块二、提供的功能三、实现思想&#xff08;一&#xff09;功能&#xff08;二&#xff09;意义&#xff08;三&#xff09;功能设计 四、封装思想五、代码&#xff08;一&#xff09;框架&#…

pyqt5使用经验总结

pyqt5环境配置注意&#xff1a; 安装pyqt5 pip install PyQt5 pyqt5-tools 环境变量-创建变量名&#xff1a; 健名&#xff1a;QT_QPA_PLATFORM_PLUGIN_PATH 值为&#xff1a;Lib\site-packages\PyQt5\Qt\plugins pyqt5经验2&#xff1a; 使用designer.exe进行设计&#xff1…

【kubernetes】kubernetes中的应用配置(ConfigMap和Secret)

目录 1 为什么需要ConfigMap和Secret2 k8s中给容器传递配置的方式3 ConfigMap的基本使用4 ConfigMap的实践5 Secret的基本使用6 ConfigMap和Secret的对比 1 为什么需要ConfigMap和Secret 应用程序启动过程中通常需要传递参数&#xff0c;当参数较多时会将参数保存到配置文件中…