Skip to content

[he_shamir_agg]联邦学习中的安全聚合方案设计及实现 #49

@Niko-Zeng

Description

@Niko-Zeng

此 ISSUE 为 [隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)Phase 6 任务 ISSUE,欢迎社区开发者参与共建~

This ISSUE is one of the tasks of the [SecretFlow Open Source Contribution Plan (referred to as SF OSCP) Phase 6. Welcome to join us in building it together!

设计思路

by NDSzjq

本方案[threshold_agg]旨在实现可容错、抗共谋的联邦学习安全聚合,主要设计步骤如下:

  • 可信中心生成一对Paillier主公私钥,然后基于Shamir门限秘密分享将公开参数N拆成K份,其中K为总参与方个数。可信中心基于拆分的秘密分片生成并分发各参与方的加密密钥,发送主私钥给聚合方。密钥生成后,可信中心可保持离线。
  • 各参与方通过改造后的Paillier加密算法,使用自己的加密密钥加密本地数据后上传。
  • 聚合方聚合仍保持在线(提交了密文数据)参与方的数据,并通过主私钥解密。
  • 当参与聚合的在线参与方个数大于秘密分享门限时,秘密值N被恢复,聚合后的密文为标准的Paillier密文,可以被主私钥解密。同时,各参与方使用不同的密钥加密,不存在共谋推断的问题。

备注:由于本方案基于Paillier加密设计,其仅支持对整数数据的聚合,对浮点数的处理可通过放缩等前置步骤实现。此外,本方案可通过结合SIMD技术提升聚合效率。

任务介绍

  • 任务名称:【特别任务】联邦学习中的安全聚合方案设计以及实现
  • 技术方向:Federated Learning
  • 任务难度:挑战🌟🌟🌟
  • 说明:本任务不参与🌟累计哈~

详细要求

安全聚合是解决联邦学习中梯度泄露问题的有效手段。然而,现有安全聚合方案仍可能存在“参与方掉线不容忍”、“聚合行为不可控”、“共谋推断不可抗”和“系统效能不实际”等问题。希望同学们能够在这个开放问题下,设计出安全,可行,巧妙的算法来解决联邦学习聚合中遇到的安全问题,效率问题,掉线问题等等。解决方法不限,可以使用 TEE,同态,多方安全计算等各种技术作为辅助。

  • 安全性: 尽量少 reveal,设计出的聚合算法没有算法层面的安全问题
  • 功能性:可以将实现落到 SecretFlow 的 aggregator 中,可以无缝替换其他的聚合方法。
  • 收敛性:聚合结果需要保证正确性
  • 代码规范:Python 代码需要使用 black+isort 进行格式化(流水线包含代码规范检查卡点)
  • 提交要求:关联该 issue 并提交代码,代码提交细节请与蚂蚁导师进行沟通!!

操作说明

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions