畢業設計日志——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