当前位置: 首页 > news >正文

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

相关文章:

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

背景 机器学习模型对数据的分析具有很大的优势&#xff0c;很多敏感数据分布在用户各自的终端。若大规模收集用户的敏感数据具有泄露的风险。 对于安全分析的一般背景就是认为有n方有敏感数据&#xff0c;并且不愿意分享他们的数据&#xff0c;但可以分享聚合计算后的结果。 联…...

十三、Django之添加用户(原始方法实现)

修改urls.py path("user/add/", views.user_add),添加user_add.html {% extends layout.html %} {% block content %}<div class"container"><div class"panel panel-default"><div class"panel-heading"><h3 c…...

Elasticsearch数据操作原理

Elasticsearch 是一个开源的、基于 Lucene 的分布式搜索和分析引擎&#xff0c;设计用于云计算环境中&#xff0c;能够实现实时的、可扩展的搜索、分析和探索全文和结构化数据。它具有高度的可扩展性&#xff0c;可以在短时间内搜索和分析大量数据。 Elasticsearch 不仅仅是一个…...

gitgitHub

在git中复制CtrlInsert、粘贴CtrlShif 一、用户名和邮箱的配置 查看用户名 &#xff1a;git config user.name 查看密码&#xff1a; git config user.password 查看邮箱&#xff1a;git config user.email 查看配置信息&#xff1a; $ git config --list 修改用户名 git co…...

十天学完基础数据结构-第九天(堆(Heap))

堆的基本概念 堆是一种特殊的树形数据结构&#xff0c;通常用于实现优先级队列。堆具有以下两个主要特点&#xff1a; 父节点的值始终大于或等于其子节点的值&#xff08;最大堆&#xff09;&#xff0c;或者父节点的值始终小于或等于其子节点的值&#xff08;最小堆&#xff…...

vertx的学习总结7之用kotlin 与vertx搞一个简单的http

这里我就简单的聊几句&#xff0c;如何用vertx web来搞一个web项目的 1、首先先引入几个依赖&#xff0c;这里我就用maven了&#xff0c;这个是kotlinvertx web <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apac…...

golang学习笔记(二):链路追踪

自定义http连接的服务端 package serverimport ("github.com/gin-gonic/gin""go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin""net/http" )type MyServer struct {Server *http.Server }func GetServer() *MyS…...

git提交代码实际操作

1.仓库的代码 2.克隆代码下存在的分支 git clobe https://gitee.com/sadsadasad/big-event-11.git 3.查看当下存在的分支 git branch -a 在很多情况下,我们是要围绕着dev分支进行开发,所以我们可以在开发之前问明白围绕那个分支进行开发。 4.直接拉去dev分支代码 5.如果没在…...

TF坐标变换

ROS小乌龟跟随 5.1 TF坐标变换 Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 tf模块&#xff1a;在 ROS 中用于实现不同坐标系之间的点或向量的转换。 在ROS中坐标变换最初对应的是tf&#xff0c;不过在 hydro 版本开始, tf 被弃用&#xff0c;迁移到 tf2,后者更…...

如何进行网络编程和套接字操作?

网络编程是计算机编程中重要的领域之一&#xff0c;它使程序能够在网络上进行数据传输和通信。C语言是一种强大的编程语言&#xff0c;也可以用于网络编程。网络编程通常涉及套接字&#xff08;Socket&#xff09;操作&#xff0c;套接字是一种用于网络通信的抽象接口。本文将详…...

在Spark中集成和使用Hudi

本文介绍了在Spark中集成和使用Hudi的功能。使用Spark数据源API(scala和python)和Spark SQL,插入、更新、删除和查询Hudi表的代码片段。 1.安装 Hudi适用于Spark-2.4.3+和Spark 3.x版本。 1.1 Spark 3支持矩阵 Hudi...

力扣第226翻转二叉数 c++三种方法 +注释

题目 226. 翻转二叉树 简单 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1]示例 2&#xff1a; 输入&#xff1a;root [2,1,3] 输出&am…...

React项目部署 - Nginx配置

写在前面&#xff1a;博主是一只经过实战开发历练后投身培训事业的“小山猪”&#xff0c;昵称取自动画片《狮子王》中的“彭彭”&#xff0c;总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域&#xff0c;如今终有小成…...

【Vue3】定义全局变量和全局函数

// main.ts import { createApp } from vue import App from ./App.vue const app createApp(App)// 解决 ts 报错 type Filter {format<T>(str: T): string } declare module vue {export interface ComponentCustomProperties {$filters: Filter,$myArgs: string} }a…...

【Pandas】Apply自定义行数

文章目录 1. Series的apply方法2. DataFrame的apply方法2.1 针对列使用apply2.2 针对行使用apply Pandas提供了很多数据处理的API,但当提供的API不能满足需求的时候,需要自己编写数据处理函数, 这个时候可以使用apply函数apply函数可以接收一个自定义函数, 可以将DataFrame的行…...

C#,数值计算——完全VEGAS编码的蒙特·卡洛计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// Complete VEGAS Code /// adaptive/recursive Monte Carlo /// </summary> public abstract class VEGAS { const int NDMX 50; const int …...

纯css实现3D鼠标跟随倾斜

老规矩先上图 为什么今天会想起来整这个呢?这是因为和我朋友吵架, 就是关于这个效果的,就是这个 卡片懸停毛玻璃效果, 我朋友认为纯css也能写, 我则坦言他就是在放狗屁,这种跟随鼠标的3D效果要怎么可能能用纯css写, 然后吵着吵着发现,欸,好像真能用css写哦,我以前还写过这种…...

Pandas数据结构

文章目录 1. Series数据结构1.1 Series数据类型创建1.2 Series的常用属性valuesindex/keys()shapeTloc/iloc 1.3 Series的常用方法mean()max()/min()var()/std()value_counts()describe() 1.4 Series运算加/减法乘法 2. DataFrame数据结构2.1 DataFrame数据类型创建2.2 布尔索引…...

systemverilog function的一点小case

关于function的应用无论是在systemverilog还是verilog中都有很广泛的应用&#xff0c;但是一直有一个模糊的概念困扰着我&#xff0c;今天刚好有时间来搞清楚并记录下来。 关于fucntion的返回值的问题&#xff1a; function integer clog2( input logic[255:0] value);for(cl…...

微服务的初步使用

环境说明 jdk1.8 maven3.6.3 mysql8 idea2022 spring cloud2022.0.8 微服务案例的搭建 新建父工程 打开IDEA&#xff0c;File->New ->Project&#xff0c;填写Name&#xff08;工程名称&#xff09;和Location&#xff08;工程存储位置&#xff09;&#xff0c;选…...

【2023年11月第四版教材】第18章《项目绩效域》(合集篇)

第18章《项目绩效域》&#xff08;合集篇&#xff09; 1 章节内容2 干系人绩效域2.1 绩效要点2.2 执行效果检查2.3 与其他绩效域的相互作用 3 团队绩效域3.1 绩效要点3.2 与其他绩效域的相互作用3.3 执行效果检查3.4 开发方法和生命周期绩效域 4 绩效要点4.1 与其他绩效域的相互…...

Android 11.0 mt6771新增分区功能实现三

1.前言 在11.0的系统开发中,在对某些特殊模块中关于数据的存储方面等需要新增分区来保存, 所以就需要在系统分区新增分区,接下来就来实现这个功能,看系列三的实现过程 2.mt6771新增分区功能实现三的核心类 build/make/tools/releasetools/common.py device/mediatek/mt6…...

计算机网络——计算机网络的性能指标(上)-速率、带宽、吞吐量、时延

目录 速率 比特 速率 例1 带宽 带宽在模拟信号系统中的意义 带宽在计算机网络中的意义 吞吐量 时延 发送时延 传播时延 处理时延 例2 例3 速率 了解速率之前&#xff0c;先详细了解一下比特&#xff1a; 比特 计算机中数据量的单位&#xff0c;也是信息论中信…...

每日一题 518零钱兑换2(完全背包)

题目 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带符号整…...

Linux shell编程学习笔记8:使用字符串

一、前言 字符串是大多数编程语言中最常用最有用的数据类型&#xff0c;这在Linux shell编程中也不例外。 本文讨论了Linux Shell编程中的字符串的三种定义方式的差别&#xff0c;以及字符串拼接、取字符串长度、提取字符串、查找子字符串等常用字符串操作,&#xff0c;以及反…...

【Spring笔记03】Spring依赖注入各种数据类型

这篇文章&#xff0c;详细介绍一下Spring框架中如何注入各种数据类型&#xff0c;包含&#xff1a;注入基本数据类型、数组、集合、Map映射、Property属性、注入空字符串、注入null值、注入特殊字符等内容&#xff0c;以及如何使用命名空间进行依赖注入。 目录 一、注入各种数据…...

2023计算机保研——双非上岸酒吧舞

我大概是从22年10月份开始写博客的&#xff0c;当时因为本校专业的培养方案的原因&#xff0c;课程很多&#xff0c;有些知识纸质记录很不方便&#xff0c;于是选择了打破了自己的成见使用博客来记录学习生活。对于我个人而言&#xff0c;保研生活在前一大半过程中都比较艰难&a…...

《计算机视觉中的多视图几何》笔记(13)

13 Scene planes and homographies 本章主要讲述两个摄像机和一个世界平面之间的射影几何关系。 我们假设空间有一平面 π \pi π&#xff0c;平面上的一点为 x π x_{\pi} xπ​。 x π x_{\pi} xπ​分别在两幅图像 P , P ′ P, P P,P′上形成了 x , x ′ x, x x,x′。 那…...

H5移动端购物商城系统源码 小型商城全新简洁风格全新UI 支持易支付接口

一款比较简单的 H5 移动端购物商城系统源码&#xff0c;比较适合单品商城、小型商城使用。带有易支付接口。 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/88391704 源码下载2&#xff1a;评论留言或私信留言...

全志ARM926 Melis2.0系统的开发指引⑤

全志ARM926 Melis2.0系统的开发指引⑤ 编写目的8. 固件修改工具(ImageModify)使用8.1.界面说明8.2.操作步骤8.2.1. 配置平台8.2.2. 选择固件8.2.3. 选择要替换的文件8.2.4. 替换文件8.2.5. 保存固件 8.3.注意事项8.4.增加固件修改权限设置8.4.1. 概述8.4.2. 操作说明8.4.2.1.打…...

青岛知名网站建设/网站推广和优化系统

展开全部关键函数pdist( )参考代码2113&#xff1a;clcclear allclose allx [0 1; % 第一列5261是横坐标4102&#xff0c;第二列是纵坐标1 2;2 3];d pdist(x); % 计算两两点之间距离1653内disp(d);figureplot(x(:,1), x(:,2), ^--);grid onxlabel(x);ylabel(y);输出结果&…...

安全员怎么网站中做备案/seo技术自学

以上就是我写的一个列表页,我想点击第一个红框里的复选框来触发一个事件,将下面的复选框都变成他的选中状态来达到全选和全不选的效果,那么这里在循环的时候发生了一个问题,就是使用js调用节点的setAttribute(checked,true)方法设置是否选中,这样会移除掉绑定在节点上的事件,改…...

wordpress短链/常用的五种网络营销工具

HR组织架构的层次结点在ECC维护的是中文&#xff1b;抽到BW后发现中文的数据抽不过来。解决方法是&#xff1a;在t778l表增加了中文。t778l表存放的是HR中支持的语言。...

做公司网站怎么删除图片/游戏推广员拉人犯法吗

考纲 目录&#xff1a;https://blog.csdn.net/dkbnull/article/details/87933295...

无锡市网站建设/seo入门讲解

000 前言 ECShop是一款B2C独立网店系统&#xff0c;适合企业及个人快速构建个性化网上商店。2.x版本跟3.0版本存在代码执行漏洞。 001 漏洞原理 ECShop 没有对 $GLOBAL[‘_SERVER’][‘HTTP_REFERER’] 变量进行验证&#xff0c;导致用户可以将任意代码插入的user_passport.dwt…...

网站主机免费/刷网站关键词工具

一&#xff1a;打破狭窄的技术视野 ①真实项目对外开发系统性讲解 ②例如电商、教育行业、社区网站等主流互联网场景的商业解决方案讲解 ③针对不同业务场景海量数据或者访问量以及及时响应等所面临的挑战进行对应的瓶颈分析。 ④拓展技术视野&#xff0c;与一线大厂零距离…...