项目简介
本项目为基于MPC框架的MP - SPDZ,是一个用于基准测试各种安全多方计算(MPC)协议的软件框架。它支持多种协议,如SPDZ、SPDZ2k、MASCOT、Overdrive、BMR混淆电路、Yao的混淆电路,以及基于三方复制秘密共享和Shamir秘密共享的计算(需要诚实多数)。
项目的主要特性和功能
- 多协议支持:支持SPDZ、SPDZ2k、MASCOT、Overdrive、BMR、Yao的混淆电路等多种MPC协议。
- 安全模型:支持恶意、半诚实和诚实多数的安全模型。
- 计算域:支持模素数、模2^k和二进制电路的计算。
- 混合电路:支持在同一安全模型下混合算术和二进制秘密共享的计算。
- TensorFlow推理:支持使用TensorFlow图进行推理,如DenseNet、ResNet和SqueezeNet。
- 预处理和在线计算:支持预处理阶段和在线计算阶段的分离,便于性能基准测试。
安装使用步骤
1. 环境准备
确保系统满足以下要求: - GCC 5或更高版本(推荐使用clang) - MPIR库(使用C++支持编译) - libsodium库(测试版本1.0.18) - OpenSSL(测试版本1.1.1) - Boost.Asio和Boost.Thread(测试版本1.71) - Python 3.5或更高版本 - NTL库(可选,用于同态加密)
2. 下载和解压
从指定渠道下载本项目的源码文件并解压。
3. 编译
根据需要编辑CONFIG
或CONFIG.mine
文件,然后运行以下命令进行编译:
bash
make -j 8
4. 运行示例程序
编译完成后,运行示例程序进行测试。例如,运行教程程序:
bash
./compile.py tutorial
echo 1 2 3 4 > Player-Data/Input-P0-0
echo 1 2 3 4 > Player-Data/Input-P1-0
Scripts/mascot.sh tutorial
5. 运行TensorFlow推理
本项目支持TensorFlow图的推理。例如,运行SqueezeNet推理:
bash
cd EzPC/Athos/Networks/SqueezeNetImgNet
pip3 install scipy==1.1.0
python3 squeezenet_main.py --in ./SampleImages/n02109961_36.JPEG --saveTFMetadata True
python3 squeezenet_main.py --in ./SampleImages/n02109961_36.JPEG --scalingFac 12 --saveImgAndWtData True
cd ../../../..
Scripts/fixed-rep-to-float.py EzPC/Athos/Networks/SqueezeNetImgNet/SqNetImgNet_img_input.inp
./compile.py -R 64 tf EzPC/Athos/Networks/SqueezeNetImgNet/graphDef.bin 1 trunc_pr split
Scripts/ring.sh tf-EzPC_Athos_Networks_SqueezeNetImgNet_graphDef.bin-1-trunc_pr-split
6. 运行其他协议
根据需要选择不同的协议进行编译和运行。例如,运行基于BMR的协议:
bash
make -j 8 real-bmr-party.x
./compile.py -B 32 tutorial
./real-bmr-party.x -I 0 tutorial
./real-bmr-party.x -I 1 tutorial
通过以上步骤,即可快速上手并使用本项目进行安全多方计算的开发和测试。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】