Linux下Pypbc库的安装及其使用

本文详细介绍了在Ubuntu系统中如何安装GMP、PBC库,接着通过git下载并安装Pypbc库,然后指导如何下载并配置PyCharm。在PyCharm中新建项目并导入Pypbc库,通过一段测试代码验证安装是否成功。测试代码涉及BLS短签名系统的签名生成和验证过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.安装GMP库和PBC库

安装过程可以参考我之前的文章,附上链接:Ubuntu中安装PBC库_Frinklin_wang的博客-CSDN博客

2.安装Pypbc库

给上pbc官网网址:PBC Library - Pairing-Based Cryptography - Downloads (stanford.edu)

去官网找到pypbc的下载安装包的网址如下图:

 点击进入到github对应的链接,然后再终端输入如下命令,下载pypbc相关文件:

git clone https://github.com/debatem1/pypbc

下载完后,可以看到有一个install文件,这个文件里面是官方给出的下载pypbc的方法。

然后进入到pypbc的文件下面,如果命令:

sudo pip3 install

如果没有下载pip3,请自行下载;如果出现错误如下:

ERROR: Invalid requirement: '/home/wmc/Downloads/pypbc/install'

请输入命令:

pip3 install .../pypbc/  //.../pypbc/代表你的pypbc下载的路径
例如我的是:
pip3 install /home/wmc/Downloads/pypbc/

安装成功后会出现新的文件如下图:

 3.下载Pycharm

首先去官网下载linux安装包,安装好后解压。

然后在终端输入命令:

cd pycharm-community-2022.1/bin/
./pycharm.sh

 就可以开始安装了,安装步骤省略。

设置好自己习惯的模式,然后选择新建一个项目:

 这里要选择使用自己的编辑环境:

 

 

 当看到有外部库中包含了Pypbc的库的时候,证明pypbc库依赖是已经导入成功了

最后进行代码测试,将下面代码粘贴到main.py中:(附上我的测试代码)

#! /usr/bin/env python3

"""
test.py

Written by Geremy Condra
Licensed under GPLv3
Released 11 October 2009
"""

import unittest

from pypbc import *

stored_params = """type a
q 8780710799663312522437781984754049815806883199414208211028653399266475630880222957078625179422662221423155858769582317459277713367317481324925129998224791
h 12016012264891146079388821366740534204802954401251311822919615131047207289359704531102844802183906537786776
r 730750818665451621361119245571504901405976559617
exp2 159
exp1 107
sign1 1
sign0 1
"""


from pypbc import *
import hashlib
import time
from random import sample
import numpy as np

Hash1 = hashlib.sha256
Hash2 = hashlib.sha256
params = Parameters(qbits=512, rbits=160)  # type a
pairing = Pairing(params)
# 返回公共参数,PEKS是对称双线性对,G1=G2,二者的生成元是一样的,G2同样可以替换为G1
qbits=512
rbits=160


g = Element.random(pairing, G1)
sk = Element.random(pairing, Zr)
pk = Element(pairing, G1, g ** sk)
U = Element.random(pairing, G1)


x1 = Element.random(pairing, G1)
x2 = Element.random(pairing, Zr)


z = Element(pairing, G1, value=x1 **x2)



# this is a test for the BLS short signature system
params = Parameters(param_string=stored_params)
pairing = Pairing(params)

# build the common parameter g
g = Element.random(pairing, G2)

# build the public and private keys
private_key = Element.random(pairing, Zr)
public_key = Element(pairing, G2, value=g**private_key)

print("private_key = " , private_key)
print("public_key = " , public_key)

# set the magic hash value
hash_value = Element.from_hash(pairing, G1, "hashofmessage")

# create the signature
signature = hash_value**private_key

# build the temps
temp1 = Element(pairing, GT)
temp2 = Element(pairing, GT)

# fill temp1
temp1 = pairing.apply(signature, g)

#fill temp2
temp2 = pairing.apply(hash_value, public_key)


print(temp1)
print(temp2)
# and again...
temp1 = pairing.apply(signature, g)


if(temp1 == temp2):
    print("true")
else:
    print("false")

# compare to random signature
rnd = Element.random(pairing, G1)
temp1 = pairing.apply(rnd, g)

def compare(self):
    # compare
    self.assertEqual(temp1 == temp2, False)
    print(self.assertEqual(temp1 == temp2, False))

 如果成功运行了,证明安装成功!

 

 

### 安装 pypbc 对于 Windows 用户来说,在安装 `pypbc` 这样的特定时可能会遇到一些挑战,因为该依赖于底层的 PBC (Pairing-Based Cryptography) [^4]。 #### 方法一:通过预编译二进制文件安装 如果存在适用于 Windows 的预编译版本,则可以直接下载并安装这些轮子文件(`.whl`)。这通常是最简单的方式: ```powershell D:\Python35\Scripts>pip install pypbc‑<version>‑win_amd64.whl ``` 请注意替换 `<version>` 和架构名称以匹配实际使用Python 版本和计算机体系结构。这种方法假设已经有一个适合当前系统的 `.whl` 文件可用[^1]。 #### 方法二:构建源码 当没有现成的 Windows 轮子文件时,可能需要从源代码自行编译。此过程涉及以下几个环节: - **安装必要的开发工具** 确认 Visual C++ Build Tools 或者完整的 Visual Studio 已经被安装到系统中,这对于编译某些扩展至关重要。 - **获取 PBC ** 访问 [Stanford Crypto Group](https://crypto.stanford.edu/pbc/) 下载页面来获得最新的稳定版 PBC 源代码压缩包,并按照官方文档中的指示完成其配置与编译。 - **设置环境变量** 将 PBC 的相关路径添加至系统的 PATH 变量里以便后续能够顺利找到头文件以及静态/动态链接。 - **安装 pypbc** 使用如下命令执行安装操作: ```bash python setup.py build_ext --include-dirs=<path_to_pbc_include> --library-dirs=<path_to_pbc_lib> ``` 上述指令里的占位符应替换成真实的目录位置;之后再运行 `python setup.py install` 来最终部署这个 Python 扩展模块。 由于 `pypbc` 对应的维护活动较少,建议查阅项目主页或 GitHub 上是否有更详细的指南或者社区贡献的支持资源。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值