# MPCTensorLib **Repository Path**: xdnss/mpctensorlib ## Basic Information - **Project Name**: MPCTensorLib - **Description**: 安全多方计算库,支持隐私保护机器学习 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 13 - **Forks**: 5 - **Created**: 2023-11-07 - **Last Updated**: 2026-01-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MPCTensorLib ## 介绍 本项目为安全多方计算库,设计并实现了基于算术秘密分享,函数秘密分享的隐私保护计算协议,并基于这些协议实现隐私保护机器学习应用:隐私保护神经网络推理。 ## 安装教程 本项目需要Pytorch>=1.8.0支持,建议使用Pytorch==1.8.0,其他依赖在./requirements.txt中,可通过以下指令安装项目依赖 ```bash pip install -r requirements.txt ``` 若无法安装torchcsprng,可参考[torchcsprng](https://github.com/pytorch/csprng)的安装教程,或在anaconda环境下使用以下指令安装 ```bash conda install torchcsprng cudatoolkit=11.1 -c pytorch -c conda-forge ``` ## 使用说明 运行所有测试代码均需要在项目根目录下启动,如下面的示例 ``` # 开启两个终端,分别输入以下代码 python debug/application/neural_network/2pc/neural_network_server.py python debug/application/neural_network/2pc/neural_network_client.py ``` 如使用上述指令无法启动,请尝试在对应的测试文件开头添加以下代码 ```python import sys sys.path.append('/path/to/the/directory/mpctensorlib') print(sys.path) ``` 关于如何使用该计算库进行隐私保护应用,请参考```tutorials```包中的教程,这些内容以 Jupyter 笔记本的形式呈现,因此请在您的 conda 环境中安装以下内容 ```bash conda install ipython jupyter ``` 1. `Tutorial_0_Before_Starting.ipynb` - 在教程开始前,对该计算库内的配置信息和计算所需的辅助参数做一定介绍 2. `Tutorial_1_Ring_Tensor.ipynb` - 介绍了该计算库的基本数据类型:`RingTensor`,并展示了如何使用`RingTensor`进行基础运算 3. `Tutorial_2_Arithmetic_Secret_Sharing.ipynb` - 介绍了该计算库中用于安全多方计算的基本数据类型: `ArithmeticSecretSharing`,利用算术秘密分享技术将数据分享成两个份额,分发给两个参与方。该教程中还演示了如何利用`ArithmeticSecretSharing`进行基础运算 4. `Tutorial_3_Generate_Beaver_Triples_by_HE.ipynb` - 介绍了如何利用同态加密生成Beaver三元组 5. `Tutorial_4_Function_Secret_Sharing.ipynb` - 该计算库中函数秘密分享教程,介绍分布式点函数,分布式比较函数,分布式区间函数生成其密钥和评估的过程 6. `Tutorial_5_Neural_Network_Inference.ipynb` - 介绍如何利用该计算库的接口实现隐私保护神经网络推理 ## 软件架构 - [application](https://gitee.com/xdnss/mpctensorlib/tree/master/application) application包中是基于计算库的基础功能实现的应用,目前包括隐私保护的神经网络推理,支持明密文模型的自动转换与神经网络密态推理。 - [common](https://gitee.com/xdnss/mpctensorlib/tree/master/common) common包中包括该计算库用到的通用工具和基础数据结构,包括网络通信,随机数生成器和其他工具。 - [config](https://gitee.com/xdnss/mpctensorlib/tree/master/config) config包中包括该计算库的基础配置和网络配置。 - [crypto](https://gitee.com/xdnss/mpctensorlib/tree/master/crypto) crypto是该库的核心部分,包括该库支持的隐私计算密码学原语和协议。 - [data](https://gitee.com/xdnss/mpctensorlib/tree/master/data) 该库用于计算的所有辅助参数和用于隐私保护神经网络推理的模型和数据集都会放在这个包中。 - [debug](https://gitee.com/xdnss/mpctensorlib/tree/master/debug) debug包中是这个库的测试代码,在使用时需要在项目根目录下启动。 - [model](https://gitee.com/xdnss/mpctensorlib/tree/master/model) model包中包括该库用到的系统模型和威胁模型,如半诚实假设下的客户端-服务器模型。 - [tutorials](https://gitee.com/xdnss/mpctensorlib/tree/master/tutorials) 该库的使用教程在这个包中 ## 文档 详细的接口文档见[API Document.md](https://gitee.com/xdnss/mpctensorlib/blob/master/API%20Document.md) ## 维护者 本项目由西安电子科技大学NSS小组负责维护。 ## 使用许可 MPCTensorLib基于MIT,如在LICENSE中所述。