Charm-Crypto 安装概述
在VMWare的CentOS和Ubuntu系统上安装Charm-Crypto库时,我遇到了一些初期问题,包括安装的版本较旧,以及对 Python 版本的限制较多,使得安装过程变得复杂。最终,我按照官方文档的步骤成功安装了最新版本的Charm-Crypto 0.50,同时没有对Python版本的限制。本教程是在Windows上的WSL(Windows Subsystem for Linux)中的Ubuntu系统下进行的,但同样适用于基于虚拟机的 Linux 系统。
准备工作
在开始之前,你需要准备以下依赖项:
- Python 3.x
- GMP 库
- PBC 库
- OPENSSL 库
- Charm-Crypto 库
安装依赖项
以下是必要的依赖安装步骤:
sudo apt install build-essential
sudo apt-get install subversion
sudo apt-get install m4
sudo apt install flex
sudo apt-get install bison
sudo apt-get install python3
sudo apt-get install python3-setuptools python3-dev
sudo apt-get install libssl-dev
sudo apt-get install libgmp-dev
pip install "pyparsing<2.4.1,>=2.1.5"
下载并解压
-
PBC库下载: http://crypto.stanford.edu/pbc/news.html
-
Charm-Crypto库下载:https://github.com/JHUISI/charm/
-
将下载好的压缩包拷贝到Ubuntu系统中,并且完成解压获得
接下来进行Charm的安装
-
首先进入Charm目录中,并运行
1. cd charm-dev/ 2. sudo ./configure.sh
-
其次进入PBC目录中,并运行
1. cd ../pbc-0.5.14 2. ./configure LDFLAGS="-lgmp" 3. make 4. sudo make install 5. sudo ldconfig
-
再次回到Charm目录,并运行
1. cd ../charm-dev/ 2. sudo make 3. sudo make install 4. sudo ldconfig
测试
-
编写test.py文件进行测试
1. vim test.py // 写入下文并保存退出 from charm.toolbox.pairinggroup import PairingGroup, ZR, G1, G2, GT, pair # 初始化配对群 group = PairingGroup('SS512') # 生成两个随机的群元素 g1 = group.random(G1) g2 = group.random(G2) # 计算 g1 和 g2 的配对 e = pair(g1, g2) # 打印配对的结果 print("g1:", g1) print("g2:", g2) print("e(g1, g2):", e) # 计算 g1 的指数,即 g1^3 exponent = group.random(ZR) g1_powered = g1 ** exponent # 打印 g1 的指数结果 print("g1^exponent:", g1_powered) 2. python3 test.py // 运行测试