所用到的资源:
pbc:http: / /crypto.stanford.edu/pbc/download.html
charm-dev:GitHub - JHUISI/charm: Charm: A Framework for Rapidly Prototyping Cryptosystems
-----------------------------------------------------------------------------------------------------------------------
1.检查所用工具版本
~$gcc -v
~$make -v
~$perl -v
缺少perl进行安装
~$sudo apt-get install perl
2.安装依赖库
~$sudo apt-get update
~$sudo apt-get install m4 flex bison
3.安装python依赖
~$sudo apt-get install python3-setuptools python3-dev libssl-dev
~$sudo apt-get install python3-pip
~$pip3 install pyparsing==2.4.6
提示 Successfully install pyparsing-2.0.3,安装一下python-pip
~$sudo apt-get install python-pip
再运行一下
~$pip3 isntall hypothesis
4.编译安装openssl,需要版本1.1.1,不升级可能会不兼容charmcrypto
~$openssl version
更新openssl,看看网站是哪个版本了:/source/index.html (openssl.org)
~$wget https://www.openssl.org/source/openssl-1.1.1s.tar.gz 下载源代码
~$tar -zxf openssl-1.1.1s.tar.gz && cd openssl-1.1.1s 解压源代码
~/openssl-1.1.1s$./config 签发配置文件
~/openssl-1.1.1s$make 配置编译
~/openssl-1.1.1s$sudo mv /usr/bin/openssl /usr/bin/openssl.backup 备份当前 OpenSSL
二进制文件,我的openssl文件在 /usr/include里面,而且备份不成功,直接进行下一步了
~/openssl-1.1.1s$sudo make install 编译运行
~/openssl-1.1.1s$sudo ln -s /usr/local/bin/openssl /usr/include/openssl 创建软链接
~/openssl-1.1.1s$sudo sh -c "echo '/usr/local/lib' >> /etc/ld.so.conf" 更新动态链接库
~/openssl-1.1.1s$sudo ldconfig -v
再次查看OpenSSL版本
5.安装GMP库
确认下载的版本,默认下载到Downloads,进入直接手动解压,再移动到 /usr/local/src 下
~/Downloads$sudo mv gmp-6.2.1 /usr/local/src/ 移动
~/Downloads$cd /usr/local/src/gmp-6.2.1 进入目录
/usr/local/src/gmp-6.2.1$sudo ./configure 配置
/usr/local/src/gmp-6.2.1$sudo make 编译
/usr/local/src/gmp-6.2.1$sudo make install 安装
6.安装PBC
确认下载的版本,默认下载到Downloads,进入直接手动解压,再移动到 /usr/local/src 下
~/Downloads$sudo mv pbc-0.5.14 /usr/local/src/ 移动
~/Downloads$cd /usr/local/src/pbc-0.5.14 进入目录
/usr/local/src/pbc-0.5.14$sudo ./configure 配置
/usr/local/src/pbc-0.5.14$sudo make 编译
/usr/local/src/pbc-0.5.14$sudo make install 安装
在/etc/ld.so.conf.d/目录下新建一个libpbc.conf
/usr/local/src/pbc-0.5.14$sudo touch /etc/ld.so.conf.d/libpbc.conf 新建
/usr/local/src/pbc-0.5.14$sudo vi /etc/ld.so.conf.d/libpbc.conf 编辑libpbc.conf
内容为/usr/local/lib(vi进入,按字母【i】切换至插入模式(Insert mode),只能一直输入文字,如果发现输错了字!想用光标键往回移动,将该字删除,就要先按一下「ESC」键转到「命令行模式(command mode)」再删除文字。在「命令行模式」下,按一下「:」冒号键进入「Last line mode」,例如:: wq (输入「wq」,存盘并退出vi) : q! (输入q!, 不存盘强制退出vi))
/usr/local/src/pbc-0.5.14$sudo ldconfig
7.安装charm
下载charm-dev,默认下载到Downloads,进入直接手动解压,再移动到 /usr/local/src 下
~/Downloads$sudo mv charm-dev /usr/local/src/ 移动
~/Downloads$cd /usr/local/src/charm-dev 进入目录
/usr/local/src/charm-dev$sudo ./configure.sh 配置
/usr/local/src/charm-dev$sudo make 编译
/usr/local/src/charm-dev$sudo make install 安装
安装环节出现一个错误,提示安装的pyparsing<2.4.1,>=2.1.5
直接更改pyparsing的版本
~$pip3 install pyparsing==2.4.0
再进行charm的安装,成功!
最后进行一个小测试
from charm.toolbox.pairinggroup import PairingGroup,ZR,G1,G2,GT,pair
group2 = PairingGroup('SS512')
p = group2.random(G1)
q = group2.random(G2)
print(p,q)
参考博客: charm-crypto 5.0安装 【2022-无伤速通版】_网安小小白的博客-CSDN博客