毕业课题做全同态加密,通过搜索关键词“dghv code”可以在google的结果中找到 共享在github上的代码 https://github.com/coron/fhe 。
代码是运行在linux系统下的,需要一个名为Sage的数学库支持,现在最新的数学库是5.10版本的,代码是在4.7.2版本下写的,尝试在5.10版本下运行代码,将会得到错误提示。
下载4.7.2版本的tar包( http://www.sagemath.org/src-old/ ),由于是旧版本,需要自行编译(安装提示: http://www.sagemath.org/doc/installation/source.html ),之前需要安装g++、m4等依赖包,大概编译了1个多小时提示error,原因出在安装linbox的问题上。
提示的版本为1.1.6.p3,在网上搜索发现1.1.6有bug,遂尝试下载1.1.7版本(点击打开链接),按照安装说明安装相应依赖包。
其他:
学习到的一些linux相关知识:
make出问题很可能是依赖包的问题
apt-cache search gmp 搜索当前源包含gmp关键字的包
dpkg -s libgmp10 报告libgmp10的状态,其中dpkg是debian package的缩写
make install 的时候有时候需要管理员权限,sudo
find / -name gmp.h 查找
编译gmp的时候需要加上--enable-cxx(./configure --enable-cxx )
dpkg -l | grep -i gmp 查找已经安装的包含(-i:忽略大小写)gmp的包
apt-get remove libgmp10 libgmpxx4ldbl 删除两个包
apt-get remove --purge softname1.. 卸载并清除配置