Charm-Crypto 安装指南

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 // 运行测试
    

    在这里插入图片描述

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值