首次安装MP-SPDZ库全过程(搭环境)

下载库压缩包

前往github下载自己需要的版本,今天是2022年12月19日,之前听师兄说0.3.3版本有bug不知道是否修复完毕,于是这里选择0.3.2版本

Releases · data61/MP-SPDZ (github.com)​​​​​​

拖进虚拟机

把下载好的压缩包拖进虚拟机里,这一步对于VMware来说需要额外安装VMware Tools,如下图

 

解压,填空文件夹

我是在桌面新建了个文件夹,解压完毕

 

 解压后的文件夹里有多个是空文件夹,需要在SPDZ GitHub 官网里下载后填进去(这一步可以先不做,直接跳到下一个标题,跟着步骤走如果最后不能运行程序再做这步)

GitHub - data61/MP-SPDZ: Versatile framework for multi-party computation

目前是以下四个:(PS:Circuits在Programs文件夹里)

 

执行各种搭建命令

执行

sudo apt-get install automake build-essential cmake git libboost-dev libboost-thread-dev libntl-dev libsodium-dev libssl-dev libtool m4 python3 texinfo yasm

建议不要一溜烟全部执行,有可能会报错;执行期间若有报错则根据报错内容进行修改。最后实在报错改不了就暂时略过。

大约花个十几分钟,把上面的都装完

 装完后,执行

Scripts/tldr.sh

效果如下

测试

 到这里基本就搭完了,写个小程序试试

进入Programs/Source,gedit新建一个文件,后缀改成.mpc

 代码就写个简单的两方求和计算

a = sint.get_input_from(0)    #接收第0方的秘密输入
b = sint.get_input_from(1)    #接收第1方的秘密输入

c = a + b

print_ln('%s', c.reveal())    #reveal重构得到原数据

保存后,回到spdz的根目录,编译

./compile.py -F 64 tt.mpc    #tt.mpc 是我写的代码文件的名字

 然后执行以下代码,用于生成证书(证书文件可以存在一个月,在此期间运行相关代码无需再次生成)

Scripts/setup-ssl.sh 2    #需要几方计算,就写几

全部完成后,就可以在两个终端内进行计算了。

在第一个终端执行:

./mascot-party.x -N 2 -I -p 0 tt     #2:两方; 0:第0方

在第二个终端执行:

./mascot-party.x -N 2 -I -p 1 tt

如果这时候运行不了,显示阈值必须为正,则可能安装出了问题,建议删除mpir文件夹,并在根目录执行 make -j 8 tldr 命令,会重新编译环境

正确的执行结果如下

 我们第一个输入11

第二个输入13,看看结果对不对

可以看到,两端分别输入后,都得到了结果24,且没有暴露对方的输入。简单的安全两方计算就完成了。 

### MP-SPDZ 安装、配置及使用教程 #### 一、项目简介 MP-SPDZ 是一个多用途的安全多方计算 (MPC) 框架,能够实现高效的多参与方数据处理和隐私保护操作。它提供了丰富的功能模块以及灵活的接口设计,适用于多种应用场景。 该项目的主要特点包括但不限于支持高效加密算法、分布式计算能力以及强大的扩展性[^1]。通过阅读官方文档可以进一步了解 SPDZ 提供的各种类、函数及其作用范围[^3]。 --- #### 二、安装指南 ##### 下载源码包 为了获取最新版本的 MP-SPDZ 软件,可以从 GitHub 的发布页面下载对应的压缩包并将其传输至目标机器环境内运行: ```bash wget https://github.com/data61/MP-SPDZ/releases/download/v0.5.7/mp-spdz-v0.5.7.tar.gz tar -xzvf mp-spdz-v0.5.7.tar.gz cd MP-SPDZ/ ``` 上述命令用于提取指定版本号下的程序文件夹以便后续编译工作开展[^2]。 --- #### 三、配置过程详解 完成基础依赖项准备后进入核心环节——构建工具链设置阶段: 1. **生成可执行协议** 执行如下脚本启动整个系统的初始化流程,期间可能耗时较长取决于硬件性能水平等因素影响。 ```bash make ``` 此步骤完成后,在 `spdz` 文件夹路径下面会自动生成一系列带有 `.x` 后缀名的新文件实体代表不同类型的通信协议实现形式[^4]。 2. **验证安装成果** 测试简单的例子来确认当前部署状态正常与否。例如尝试调用内置样例代码片段进行模拟交互演示效果如何呈现出来。 --- #### 四、基本使用说明 以下是基于 Python 编写的简单示例展示两个参与者之间共享秘密数值加法运算逻辑的过程概述: ```python from Compiler import compiler, instructions def main(): a = instructions.int_type(5) # 假设第一个用户的输入值为整数型态'5' b = instructions.int_type(3) # 另外一方贡献的数据量设定成固定常量'3' result = a + b # 计算两者相加之总合结果存储于新变量当中 compiler.run(main) ``` 以上代码段定义了一个名为 `main()` 函数用来接收来自两方各自的私密参数并通过标准加法规则得出最终答案返回给各自对应端点显示查看. 注意实际应用环境中往往还需要考虑更多细节方面比如网络连接状况调整优化措施等等因素综合考量才能达到理想预期成效. ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值