安装步骤参考官网g6k傅小凤。此时有一个0.1.2的发行版,发行于2022年,但我是按照此时(2023/8/18)的仓库代码安装的,也可以参考Joe Rowell的WSL-for-fplll,他是fplll项目的贡献者之一。

我的安装环境是ubuntu 20.04(wsl)| python3, 我尝试在macos(m1)芯片或者centos上安装,都遇到了一些问题,最后在ubuntu with python3成功运行。

下图是我的系统版本和Python版本,Ubuntu 20.04.6和Python 3.8.10:

使用 sudo su root,切换到 root。

安装 g6k 至本地,可以采用 git clone,即:git clone https://github.com/fplll/g6k.git

cd g6k 进入 g6k 并使用 ls 查看 g6k 下文件。我们发现有一个 requirements.txtbootstrap.sh 文件。

接下来我们先安装依赖项。

首先 pip3 install -r requirements.txt 下载依赖项。

然后用 python3 -m pip install virtualenv 安装 virtualenv,这个接下来会用到,我们在安装脚本 bootstrap.sh 会发现它创建了个虚拟环境。

输入 apt-get install autoconf automake pkg-config 安装依赖项。

它会问你 yes/no,此时输入 y 并回车继续安装。

安装 gmp:apt-get install libtool-bin libgmp-dev #gmp

它同样会问你 yes/no,此时输入 y 并回车继续安装。

安装 mpfr:apt-get install libmpfr-dev #mpfr

安装 qd:apt-get install libqd-dev #qd

它同样会问你 yes/no,此时输入 y 并回车继续安装。

接下来执行脚本文件,这里有个小错误就是脚本文件里面有的地方没有声明 python3,因此我们按照傅小凤的教程将官网的命令改为 PYTHON=python3 ./bootstrap.sh,或者修改 ./bootstrap.sh 也可以,这里我们使用命令 PYTHON=python3 ./bootstrap.sh。

这个地方用到了之前安装的 autoconf,automake。

cxx 这里会慢一些,我用阿里云2核4g的服务器到这里就会卡住,可能是对内存或者处理器有一些要求。

耐心等待有的地方会出现 warning 不用管,运行结束显示如下:

我们按照官网切换进虚拟环境 source ./activate,会在命令行最前面显示 (g6k-env)。

运行一个例子试一试,这里我们运行的是 lwe_challenge,选取 n=40 以及 alpha=0.005,对应的命令是 python lwe_challenge.py 40 –lwe/alpha 0.005。运行结果如下:

退出虚拟环境的话命令是 deactivate。

最后感谢g6k的开发人员和傅小凤的教程。