Garnet(石榴石) 是继SecMML(Queqiao)后,由复旦大学数据安全与治理实验室开发并开源的又一个安全多方学习(MPL:Multi-party Learning)平台,其深度优化并扩展自MP-SPDZ v0.3.5(CCS 2020),并适配安全多方学习的特定功能需求。经过多轮迭代,Garnet是一个易用性高、通用性强且支持算法丰富的安全多方学习平台。当前,Garnet支持多种安全多方计算协议,例如:半诚实两方场景下的SecureML协议(Garnet新增)、任意多方不诚实大多数+恶意场景下的SPDZ协议等。用户可以使用Python脚本语言调用XGBoost(Garnet新增)模型安全训练功能以及预训练模型的安全微调(Garnet新增)功能。此外,Garnet还支持多场景(任意参与方数,诚实大多数+半诚实,不诚实大多数+半诚实等)下的逻辑回归、神经网络等机器学习模型的安全训练功能。
当前Garnet支持Ubuntu 20.04以及MacOS High Sierra之后的操作系统版本。
且Python版本需要 >= 3.10.0。
git clone https://github.com/FudanMPL/Garnet.git
sudo apt-get install automake build-essential cmake git libboost-dev libboost-thread-dev libntl-dev libsodium-dev libssl-dev libtool m4 texinfo yasm
brew install automake build-essential cmake git libboost-dev libboost-thread-dev libntl-dev libsodium-dev libssl-dev libtool m4 texinfo yasm
make clean-deps boost libote
make clean
make -j 8 tldr
git clone https://github.com/FudanMPL/Garnet.git
sudo docker build -t garnet .
sudo docker run --cap-add=NET_ADMIN -it garnet bash
- 优化Function Secret Sharing的通信轮次
- 优化XGBoost推理所需的通信量
- 优化向量空间秘密分享矩阵乘法离线阶段生成三元组的效率
- 新增Transformer模块及线性化ReLU层
- 基于向量空间秘密共享的安全计算协议使用
- Function Secret Sharing与Replicated Secret Sharing混合协议
- 基于NFGen的非线性函数近似计算
- 模型训练开销Profiling
- XGBoost模型安全推理
如果您对项目代码有任何疑问,请在GitHub仓库上创建issue。