SEAL 全称Simple Encrypted Arithmetic Library,是微软研究院提出的一种同态加密算法的实现方案,其最终结果是一个C++库,在程序中调用相关API,完成同态加密的功能。因为毕设要用到相关的内容,所以做了些调研。
0 准备工作
SEAL就是源码。
1 编译
同样还是config、make两兄弟,但是这里还是有很多坑。
因为官网只提供了源码,没有给文档,所以编译还是花了很多功夫。
1.1 configure
下载得到的文件没有直接可用的configure文件和makefile文件。
只有configure.ac和makefile.in。
所以要先执行autoconf将configure.ac转换成普通的configure
之后进行 ./configure
1.2 make
SEAL需要gcc4.8的编译器,所以在make之前还需要先安装gcc-4.8
通过apt安装gcc-4.8和g++-4.8sudo apt-get install gcc-4.8 g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 60
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 40
sudo update-alternatives --config gcc
sudo update-alternatives --config g++
之后再进行make
1.3 结果
make之后,就可以看到SEAL的bin目录下,多了一个libseal.a的文件,就算大功告成了。
2 运行实例