ubuntu虚拟机安装MP-SPDZ框架
1.下载安装包到虚拟机内 https://github.com/data61/MP-SPDZ/releases
安装git 报错Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 4402(unattended-upgr)
解决方案
#杀死进程
sudo kill 4402
#删除导致锁定的文件
sudo rm /var/lib/spkg/lock
#重启系统
sudo reboot
重启后安装git
sudo apt install git
2.在解压后的MP-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
3.需要手动安装四个文件夹
GitHub - data61/MP-SPDZ: Versatile framework for multi-party computation 获取ssh路径
git clone手动安装前 创建ssh连接
ls -al ~/.ssh
ssh-keygen -t rsa -C "github用户名" #按三次回车
#查看生成的key
cat ~/.ssh/id_rsa.pub
登陆github,点击头像-settings-new SSH,复制新生成的SSH配置到服务器,把上面生成的key拷贝到github上配置
4.在mp-spdz/Programs/Source目录下创建一个测试文件
gedit xxxxxx.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重构得到原数据
返回mp-spdz根目录编译
./compile.py -F 64 xxxxxx.mpc
生成证书文件
Scripts/setup-ssl.sh 2 #需要几方计算,就写几
第一个终端执行
./mascot-party.x -N 2 -I -p 0 xxxxxx #2:两方; 0:第0方
第二个终端执行
./mascot-party.x -N 2 -I -p 1 xxxxx
分别输入11 13 结果: