ABY框架安装

这个框架花了我一天的时间去弄,遇到了特别多的问题,而且我现在还有些操作不大会,希望有大佬可以教一下我。

条件:

linux系统(Debian 和 Ubuntu都可以)

安装依赖项

第一步,更新g++版本(如果最新可跳过)

sudo apt-get install g++

第二步,安装make

sudo apt-get install make

第三步:安装cmake

sudo apt-get install cmake

第四步:安装libgmp-dev

sudo apt-get install libgmp-dev

第5步:安装libssl-dev

sudo apt-get install libssl-dev

第六步:安装libboost-all-dev

sudo apt-get install libboost-all-dev

现在基本框架都安装好了。现在我们还要下载几个依赖项,因为当我在查阅资料的时候发现很多人都遇到过这种报错,我也因为这个报错捣鼓好久,最后换了一台服务器才好。

git clone https://github.com/relic-toolkit/relic.git
git clone https://github.com/encryptogroup/ENCRYPTO_utils.git
git clone https://github.com/encryptogroup/OTExtension

先把这几个文件包下载一下,具体情况我们下文会讲。

搭建ABY框架

git clone https://github.com/encryptogroup/ABY.git
#进入 ABY 所在的文件夹里
cd ABY
#创建一个build目录
mkdir build
#进入build中
cd build
#使用cmake进行配置
cmake .. -DABY_BUILD_EXE=On

这个时候就容易报错了,会出现这样的错误:

我这个旧的服务器,boost版本太低,这个升级一下就行,大家的服务器应该不会有这个问题,我们主要看这句话

ENCRYPTO_utils was not found: add ENCRYPTO_utils subdirectory

或者还可能会出现

OTExtension was not found: add OTExtension subdirectory

这个时候我们得用到刚刚clone的几个数据包,我们进入这个ABY的extern目录里

然后把刚刚下载的ENCRYPTO_utils和OTExtension包替换进去,我们clone的原始三个包名会有后缀,比如ENCRYPTO_utils_main(好像是),我们要给文件夹名字重命名一下就好。

ENCRYPTO_utils这个文件里面有个relic

我们用刚刚clone的relic包替换进去就好,然后文件命名跟我刚刚说的一样。

接下来这个问题解决之后,我们就可以去测试用例了。

测试

比如说我们来测试百万富翁问题

那么我们将ABY/src/examples的 millionaire_prob 文件夹复制到/ABY/build/bin里 

(换了服务器哈哈)

然后进入到ABY/build/目录下命令行输入 

make

这个时候又容易报错了:

这个channel.cpp出现了问题,所以我们要打开channel.cpp进行修改,我们可以通过这个报错内容里面找到channel.cpp的路径哈。

我们在这个c++文件里的开头添加一行

#include <cstring>
#include <cstdlib>  // 添加这一行

然后保存退出即可,重新在终端里面输入:

make clean
make

基本就完成了

最后我们在 ABY/build/ 目录下进入 bin

在ABY/build/bin/目录下打开两个终端,分别输入如下代码

./millionaire_prob_test -r 0
./millionaire_prob_test -r 1

然后就可以得到结果:

以上就是所有的内容。

求帮助

最后我想要自己创建一个实例,但是我捣鼓半天都不会,希望有大老可以教教我,谢谢。

参考博文:怎么搭建一个ABY框架并运行实例_aby框架使用说明-CSDN博客

  • 28
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值