How to install G6K?
安装步骤参考官网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.txt
和 bootstrap.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的开发人员和傅小凤的教程。