毕业设计日志——Ubuntu系统配置HElib同态加密库(三)


  毕业设计需要在Linux操作系统下使用HElib库做同态加密操作,之前看了HElib库官方教程,但是官方教程没有详实的解释操作流程,所以自己搜索整理了网上的资料,总结出了一些经验和一些坑。

 

1. 下载Helib库

我是从自己的码云仓库下载的,地址是https://gitee.com/lingyao619/HElib.git,相对与GitHub,国内的代码托管平台下载代码速度很快。

# cd
# git clone https://gitee.com/lingyao619/HElib.git

 

2. 利用make命令编译源文件

首先修改src目录下的Makefile文件,修改的内容如下,

第一处是修改第19行,加入std子命令:

COPT = -g -O2 -std=c++11 -march=native

第二处是在第85行下面加入下面的命令:

install:
    cp -p fhe.a /usr/local/lib/libfhe.a
    chmod a+r /usr/local/lib/libfhe.a
    rm -rf /usr/local/include/fhe
    mkdir -m 755 /usr/local/include/fhe
    cp -p *.h /usr/local/include/fhe/
    chmod -R a+r /usr/local/include/fhe

该代码段的作用是,将下载的头文件和函数库放入到本地文件夹。

以下是两处修改的截图:

      

然后保存Makefile文件,在src文件夹下编译源码(我是用超级用户身份运行的):

# make
# make check
# make install

注意,执行make check命令的时候可能会出现报错,我的错误是:

 

 

但是这个错误并没有影响后面的步骤。

执行完make install后,出现以下内容则正确:

 

 

 

3. 测试程序

HElib库的example文件夹中给了两个测试用的cpp文件,把这两个文件拷贝到src文件夹下,并且修改头文件格式(修改为同级目录的形式),修改完之后的头文件引用格式如下图所示:

   

 

 

然后在src目录下执行如下编译命令:

# g++ -pthread -g -O2 -std=c++11 -march=native -DFHE_THREADS -DFHE_BOOT_THREADS -o BGV_general_example BGV_general_example.cpp fhe.a -lntl -lgmp -lm
# g++ -pthread -g -O2 -std=c++11 -march=native -DFHE_THREADS -DFHE_BOOT_THREADS -o binaryArith_example binaryArith_example.cpp fhe.a -lntl -lgmp -lm

执行完成后,生成了编译后产生的二进制文件,分别直接运行两个文件:

# ./BGV_general_example

结果为:

# ./binaryArith_example

结果为:

 

 

 运行成功。

 

4. 附参考资料

https://blog.csdn.net/weixin_43774577/article/details/103438782

Helib官方库:https://github.com/homenc/HElib

 

在接下来的文章中,我会记录我在学习的HElib库过程中的相关知识和经验。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM