最近版本见http://www2.nict.go.jp/security/pbkzcode/index.html
这个库是对progressive BKZ算法(论文:Improved Progressive BKZ Algorithms and their Precise Cost Estimation by Sharp Simulator)的实现,发表在2016年的欧密会上
论文完整版本见https://eprint.iacr.org/2016/146
BKZ的核心部分pbkzmain.cpp以及ENUM(vectorenumeration.cpp)改自NTL的BKZ子程序
算法的实现依赖于以下库(版本号不低于所列)
gcc-5.3.0 (https://gcc.gnu.org/)
NTL-9.7.0 (http://www.shoup.net/ntl/)
gmp-6.1.0 (https://gmplib.org/)
gsl-1.16 (http://www.gnu.org/software/gsl/)
boost 1.58.0 (http://www.boost.org/)
介绍一下后两个库
gsl
GNU的科学库,是一个用C/C++开发的数值计算库
boost
synaptic包管理器显示的boost版本比较低
最新的版本是1.64
boost目录结构 $BOOST_ROOT=/usr/local/boost_1_64_0
去官网下载最新版本安装
进入pbkz文件夹,make会显示一些错误,去/etc/下找文件bash.bashrc增加如下环境变量
CPLUS_INCLUDE_PATH=/usr/local/boost_1_64_0
export CPLUS_INCLUDE_PATH
LIBRARY_PATH=/usr/local/boost_1_64_0/stage/lib
export LIBRARY_PATH