虚拟机安装MP-SPDZ

虚拟机版本:Ubuntu18.04

下载安装包

下载地址:https://github.com/data61/MP-SPDZ/releases
在这里插入图片描述
下载到本地后拖拽至虚拟机(需要使用VMware Tools)
在这里插入图片描述
之后,解压缩提取文件

下载安装依赖库

在SPDZ的根目录下打开终端,安装依赖库

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
执行成功后页面
在这里插入图片描述

编译MP-SPDZ库

make -j 8 tldr

执行该命令出现了很多报错,如下图等
在这里插入图片描述
出现原因主要是网络等问题造成的相关文件未下载完全,可以手动下载好以下文件,修改文件夹命放入相应目录中
打开根目录下的Makefile文件,找到以下git指令:

git submodule update --init --recursive deps/libOTe || git clone --recurse-submodules https://github.com/mkskeller/softspoken-implementation deps/libOTe
git submodule update --init deps/SimplestOT_C || git clone https://github.com/mkskeller/SimplestOT_C deps/SimplestOT_C
git submodule update --init deps/SimpleOT || git clone https://github.com/mkskeller/SimpleOT deps/SimpleOT
git submodule update --init deps/simde || git clone https://github.com/simd-everywhere/simde deps/simde
git submodule update --init deps/mpir || git clone https://github.com/wbhart/mpir deps/mpir

分别在本地下载对应链接,拖拽至虚拟机MP-SPDZ库根目录下的deps文件夹,根据上面的git指令修改好对应的文件名,如下图:
在这里插入图片描述

测试

  1. 在mp-spdz-0.3.5/Programs/Source文件夹下创建.mpc文件,在这里我命名为test.mpc
    使用gedit命令,创建一个文件并打开编辑
gedit test.mpc

编辑内容

# sint是SPDZ定义的安全类型
a = sint.get_input_from(0)    #接收第0方的秘密输入
b = sint.get_input_from(1)    #接收第1方的秘密输入
c = a + b 
print_ln('%s', c.reveal())    #reveal重构得到原数据

保存退出
2. 返回根目录mp-spdz-0.3.5,编译test.mpc

./compile.py -F 64 test.mpc

在这里插入图片描述

  1. 生成证书文件
Scripts/setup-ssl.sh 2 #2代表2方计算

在这里插入图片描述
4. 计算
在根目录下打开两个终端,分别执行:

./mascot-party.x -N 2 -I -p 0 test #test是我的文件命名,2表示两方计算,0表示第1方
./mascot-party.x -N 2 -I -p 1 test # 1表示第2方

执行后,在两个终端输入求和的数(在这里,我输入10,100),再次执行后返回计算结果110

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值