记录时间:2025-02-11 17:48
作者:王皓
环境
- 操作系统:Ubuntu-20.04(Win11下的wsl2)
- Python版本:Python3.8.10(Ubuntu20.04自带的Python)
- Charm库来源:Charm库
- 编辑器:VScode
依赖安装
基础设置
- 设置代理,确保可以访问外网,加快下载速度,如:git克隆库
- 常规更新apt包,确保包管理器是最新的
sudo apt update
sudo apt upgrade
安装一些常用的开发工具
sudo apt install build-essential autoconf automake libtool curl
sudo apt install python3-dev
GMP
github上说需要GMP版本为5.x,但是网站上能找到的资源包为GMP6.x的版本,不晓得使用wget下载后,使用与PBC类似的安装方法会不会有问题,本人没有尝试过
# 第一种安装方法,apt直接安装
sudo apt install libgmp-dev
gmp-config --version # 虽然我并没有输出hhhh
# 第二种安装方法,但本人没有试过,不保真
wget https://gmplib.org/download/gmp/gmp-6.3.0.tar.xz
xz -d gmp-6.3.0.tar.xz
tar -xvf gmp-6.3.0.tar
cd gmp-6.3.0
./configure
make
sudo make install
make check
PBC
sudo apt install flex bison
wget https://crypto.stanford.edu/pbc/files/pbc-0.5.14.tar.gz
tar -xvf pbc-0.5.14.tar.gz
cd pbc-0.5.14
./configure
make
sudo make install
pbc-config --libs # 验证安装, 虽然我还是没有输出hhhh
Openssl
By the way,虽然Ubuntu-18.04、Ubuntu-20.04自带了Openssl,但是以防万一,还是使用apt安装一下。那句话怎么说,代码和人总要有一个能跑,既然当前能跑,就不管有没有问题了。
sudo apt install libssl-dev
Charm安装
克隆库
# git克隆charm库
git clone https://github.com/JHUISI/charm.git
这里要注意一个问题,目前该库做了一些新的修改,比如在charm/core/math/pairing/pairingmodule.h文件中,对于include文件路径做了修改,以及在charm/core/math/pairing/pairingmodule.c文件中,对于结构体做了修改,不知道是为了适应更高版本的Python还是什么其他目的orz,具体如下图所示:
所以,我并没有使用新的修改,而是将代码,根据git提交记录切换到以前旧版本的分支,具体如下图所示,使用hash为bf9933fe843a0b78c07991452114fc4e4be2e71a的版本,可以看到,当前最新版本为1星期前提交的修改版本,而我使用的版本为10个月前提交的修改版本
安装
# 切换到合适的版本后,就可以开始安装啦
./configure.sh
make
sudo make install
验证
选取一个python文件跑着看看吧!我选的文件是charm/charm/schemes/abenc/abenc_bsw07.py
遇到的问题
Q1:libpbc.so.1: cannot open shared object file: No such file or directory
本人也遇到了这个问题,不知道是不是因为安装方法出了问题?orz
问题描述与解决方法
运行charm库时无法找到这个动态链接库, 这个库文件来自PBC库。如果这个文件存在但是没有被系统找到, 可以通过“创建符号链接到系统库目录”这个方法解决。在安装PBC 的目录下找到libpbc.so1文件路径
sudo find / -name "libpbc.so.1"
# 将 /usr/local/lib/libpbc.so.1 替换为查找到的实际路径
sudo ln -s /usr/local/lib/libpbc.so.1 /usr/lib/libpbc.so.1
最后,欢迎大家提出自己遇到的问题