Charm-Crypto安装

记录时间:2025-02-11 17:48
作者:王皓

环境

  1. 操作系统:Ubuntu-20.04(Win11下的wsl2)
  2. Python版本:Python3.8.10(Ubuntu20.04自带的Python)
  3. Charm库来源:Charm库
  4. 编辑器:VScode

依赖安装

作者在Charm库中描述,通过源代码安装方式,需要提前安装GMPPBCOPENSSL

基础设置

  1. 设置代理,确保可以访问外网,加快下载速度,如:git克隆库
  2. 常规更新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

最后,欢迎大家提出自己遇到的问题

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值