论文:Practical Secure Aggregation for Privacy-Preserving Machine Learning

背景介绍

在使用机器学习训练模型的时候,我们经常会碰到一些敏感数据。这些数据的价值高,但由于其敏感性让我们无法使用这些数据。然而随着近些年技术的发展,联邦学习和多方安全计算的概念因运而生。通过这些技术,我们可以在保护用户隐私的前提下进行更丰富的数据探索,在不获取用户隐私数据的前提下将这些数据纳入到模型之中,从而实现更好的为用户提供优质服务的目的。

针对如何联合各用户在隐私保护的前提下建模的方案,我们以google发表的论文为基准,结合隐私保护技术实现了名为安全聚合的方案来保护我们的数据安全。

目的

实现模型参数的安全聚合

优点

  • 解决了在隐私保护下的数据聚合问题
  • 可以支持任意不超过阈值数的参与方在任意计算节点掉线

主要解决以下信任为题:

  1. 参与方与参与方之间不能互相通信(因为每次用于的参与方均为随机抽取)
  2. 签名的验证是为了让参与方在不能互相通讯的前提下,仍然能相信其余参与方是真实存在(不是中心节点虚拟生成)且数据没有被篡改。所以,签名与验签的操作均仅发生在参与方这边。
  3. 每个参与方不能模拟其他参与方的行为(把自己伪装成其他人)。这要求参与方只能拥有自己的签名秘钥和所有参与方的签名公钥,来保证只有自己能签名。其余参与方使用相对应的公钥进行验签来证明参与方的真实性。
  4. 可信第三方必须存在,这是国家监管要求必定存在的。
  5. 尽可能减少中心节点获取的信息内容。
  6. 为了解决掉线的问题,秘密分享需要实施,但是秘密还原的时刻需要进行严格限定。具体来说就是,只有当一个参与方掉线且没有上传数据的时候,他的随机数秘密才能还原。这保证了即使还原秘密,也没有泄露数据,因为还原的是随机数的秘密。
  7. 验证签名的操作是所有参与方共享的操作。这是为了所有人都能验证身份的正确性。后续的身份验证是通过对称加密的方式实现的。这个对称加密的加密钥匙只有参与该加密的两个参与方之间可以知道(因为密钥协商里面包含了一方的私钥信息)。该信息之所以保密严格是因为其明文信息包含了秘密还原时候的涉及这两方的随机数的信息。
  8. 中心节点的作用仅限于代替各个参与方进行信息通讯、最终的混淆后的数据加总和秘密还原。

相关涉及技术

秘密分享

这里设计的秘密分享主要以诚实但有好奇心的shamir协议进行分享。
其特点在于当总参与方个数为 n 的时候,提前确定好阈值 t 。可以实现只要 任意 t 个参与方同意对秘密进行还原的时候即可还原秘密。任意少于 t 个参与方均不能实现秘密的还原。

密钥协商(Key Agreement)

该算法习惯简称为 K.A,实现方案有 DH 算法等

包含三个内容 KA.param,KA.gen,KA.agree

  • 根据随机数 k 生成参数 pp 的算法 KA.param
    即:KA.param(k) ——> pp  
  • 根据参数 pp 生成 公钥和私钥的算法 KA.gen
    即:KA.gen(pp) ——> 即:
  • 根据公钥和私钥得到协商后的密文 其中H()代表哈希函数

身份验证加密(对称加密)

  • AE.enc
    代表加密
  • AE.dec
    代表
    AE.dec(c, AE.enc(c,x)) = x
    c 为密钥
  • 该加密方案需要具有两个性质
    • IND-CPA(选择明文攻击下的不可区分性)
    • IND-CTXT(密文完整下的不可区分性)

伪随机数生成器

这里使用的为 PRG 算法通过设定随机种子生成伪随机数。
保证在随机种子一致的时候生成的伪随机数是一致的。

签名验证

  • 生成公私钥 SIG.gen
  • 加签名
  • 验证签名

通过验证内容是否一致来判断签名是否正确

实现要求

  • 可信第三方服务器,须具有以下功能

    • 安全的信息交互通道
    • 为所有参与方提供注册渠道,并可以进行身份签名验证
    • 保证每个参与方在可以通过签名验证其余参与方的真实性同时不能模拟其他参与方(唯一标识符可以解决)

安全聚合实现步骤

整体步骤要注意以下几点:

  • 计算的核心内容是(发生在Round2)

    其中 向量为目标聚合向量,其余两项混为了加总时候对​进行混淆,保证数据隐私安全
    向量为 ​ 为随机种子 通过 PRG算法生成的伪随机数向量
    向量是疫通过密钥协商获取到的 ​为种子通过下式得到的

  • 身份验证模块(每次完整的一个聚合中包含两次)

    • 第一次(Round0Round0加签,Round1Round1验签)

      • 加签名
      • 验证签名
    • 第二次(Round3Round3加签, Round4Round4验签)
      • 加签名
      • 验证签名
  • 秘密协商+秘密分享
    目的在于对于后续掉线的用户的随机数进行还原,保证聚合结果的正确性

    • 秘密分享+加密阶段(Round2Round2)

    • 秘密还原+解密阶段(Round4Round4)

  • 通信与流程校验

    • 每轮通讯或是广播是有超时时间的,达到阈值设定的时间之后进行判定
    • 存在以下情形直接终止迭代
      • 参与用户数不足
      • 身份验证不通过
      • 代码报错或执行失败

    以上逻辑每个round均会进行校验

具体流程图请查看链:

google的横向联邦聚合论文解读相关推荐

  1. 带个性化层联邦学习论文解读

    先上结论:本文提出了一种新颖的方法Fed Per,使用现有的联邦学习方法,将深度学习模型视为基础+个性化层,以协作方式对基础层进行训练,在本地进行个性化层训练,用于捕获联邦学习设置中用户的个性化方面. ...

  2. 横向联邦学习下隐私保护安全聚合:问题,方法,与展望

    开放隐私计算 以下文章来源于隐私计算研习社 ,作者董业 隐私计算研习社. 开放隐私计算社区 本文总结面向横向联邦学习的主要安全聚合技术路线和经典方法,对各条技术路线所处理的问题和经典方法的核心思想做一 ...

  3. 横向联邦学习-梯度安全聚合(二)

    一 背景 最近总结自己的公众号的时候,发现一个问题:对于联邦学习的文章,基本都是在讲述纵向联邦学习,对于横向联邦学习的技术涉及较少,所以心血来潮之下,决定写几篇文章来压压箱子底. ❝ 横向联邦:现代移 ...

  4. 横向联邦学习-梯度安全聚合

    一 背景 最近总结自己的公众号的时候,发现一个问题:对于联邦学习的文章,基本都是在讲述纵向联邦学习,对于横向联邦学习的技术涉及较少,所以心血来潮之下,决定写几篇文章来压压箱子底. ❝ 横向联邦:现代移 ...

  5. 横向联邦学习-梯度安全聚合1

    一 背景 最近总结自己的公众号的时候,发现一个问题:对于联邦学习的文章,基本都是在讲述纵向联邦学习,对于横向联邦学习的技术涉及较少,所以心血来潮之下,决定写几篇文章来压压箱子底. ❝ 横向联邦:现代移 ...

  6. 联邦学习论文阅读三:ChainFL

    联邦学习论文阅读三:ChainFL Secure and Efficient Federated Learning Through Layering and Sharding Blockchain 论 ...

  7. 收藏指数爆表!CVPR 2018-2019几十篇优质论文解读大礼包! | 技术头条

    点击上方↑↑↑蓝字关注我们~ 「2019 Python开发者日」,购票请扫码咨询 ↑↑↑ 作者 | Olga Liakhovich 译者 | AI科技大本营编译志愿者团队 编辑 | Jane 出品 | ...

  8. 【机器学习】横向联邦学习纵向联邦学习区别

    文章目录 背景简介 横向联邦学习 纵向联邦学习 参考 背景简介 现实生活中,除了少数巨头公司能够满足,绝大多数企业都存在数据量少,数据质量差的问题,不足以支撑人工智能技术的实现:同时国内外监管环境也在 ...

  9. CVPR2021 | 2D目标检测论文解读

    CVPR2021 | 2D目标检测论文解读 1. UP-DETR:--<UP-DETR: Unsupervised Pre-training for Object Detection with ...

最新文章

  1. UNP Chapter 11 - 高级名字与地址转换
  2. python打印表情
  3. JustOj 1486: Hello, world!
  4. xshell十大技巧
  5. android学习笔记---36_Activity生命周期
  6. 【精选】OCR精选10个问题 百度paddleocr
  7. 回顾:前端模块化和AMD、CMD规范(全)
  8. RegExp-1 【转义符号与字符、正则基础、修饰/元字符】
  9. SHP格式数据点线面无边界坐标生成经纬度边界点集合数据
  10. 【韵律迁移】Robust and fine-grained prosody control of end-to-end speech synthesis
  11. UE4 实时获取天气信息
  12. unity3d学习笔记-动画(1.Unity 中动画的基本原理)
  13. APP试玩应用如何赚钱?今天它来了!新手教程【建议收藏】
  14. 联想ghost重装系统_如何使用ghost手动安装系统_手动ghost安装系统图文步骤
  15. 写博客能月入10K?
  16. CQF量化金融职业指南
  17. yiui易柚7 是Android什么版本,康佳YIUI易柚系统升级5.0版本
  18. 安装PS时提示安装程序检测到计算机重新启动操作可能处于挂起状态,建议您退出安装...
  19. spSellProduct 中,Begin Transaction 和 Commit Transaction 语句被包装在 Begin Try 和 End Try 块之间
  20. 程序员客栈统计:2021年中国程序员薪资和生活现状调查报告

热门文章

  1. 【前端初级项目】学成在线网站首页,HTML+CSS,附PSD设计稿!!
  2. oracle之sql面试题,oracle sql面试题
  3. Emmet 插件使用教程
  4. hdu1874 畅通工程续 floyd入门题学习
  5. NGUI之学习制作简单例子(一)
  6. java自旋锁使用_实例讲解Java 自旋锁
  7. Android录音笔-音频播放器,不止适用于保存的录音
  8. VCSA补丁修复操作指引
  9. 羊城通通顺德 10月前顺德所有公交能刷
  10. 【文档神器typora】typora图云picgo + gitee