littlebot
Published on 2025-04-07 / 0 Visits
0

【源码】基于MPC框架的MPSPDZ

项目简介

本项目为基于MPC框架的MP - SPDZ,是一个用于基准测试各种安全多方计算(MPC)协议的软件框架。它支持多种协议,如SPDZ、SPDZ2k、MASCOT、Overdrive、BMR混淆电路、Yao的混淆电路,以及基于三方复制秘密共享和Shamir秘密共享的计算(需要诚实多数)。

项目的主要特性和功能

  1. 多协议支持:支持SPDZ、SPDZ2k、MASCOT、Overdrive、BMR、Yao的混淆电路等多种MPC协议。
  2. 安全模型:支持恶意、半诚实和诚实多数的安全模型。
  3. 计算域:支持模素数、模2^k和二进制电路的计算。
  4. 混合电路:支持在同一安全模型下混合算术和二进制秘密共享的计算。
  5. TensorFlow推理:支持使用TensorFlow图进行推理,如DenseNet、ResNet和SqueezeNet。
  6. 预处理和在线计算:支持预处理阶段和在线计算阶段的分离,便于性能基准测试。

安装使用步骤

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. 编译

根据需要编辑CONFIGCONFIG.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】