C语言PBC库
PBC
前言
我的环境是Ubantu-22.04,gcc-11.4.0(用vscode连虚拟机开发)
最近做毕设需要用到,就借此机会写一些关于c语言PBC库的教程,一些用法有结合GPT。
说是教程不过是把官方文档说的函数用法翻译了一遍,关于双线性配对的知识我不了解,这里就不将了,我看网上大部分说的有就只是当黑盒调用就行了。
安装和环境配置
安装:
按照官方文档,安装PBC库前需要安装GMP库,下面是上面这篇教程的按照方法,我用了之后没什么问题。
-
安装 GMP库
sudo apt-get install libgmp3-dev
-
安装flex和bison
sudo apt-get install flex, bison
-
安装编译PBC库
1
2
3
4
5
6wget https://crypto.stanford.edu/pbc/files/pbc-0.5.14.tar.gz
tar -zxvf pbc-0.5.14.tar.gz
cd pbc-0.5.14
./configure
make
sudo make install
环境配置:
- 包含PBC的头文件
#include <pbc/pbc.h>
- 编译时,需要链接GMP库和PBC库,即再gcc时加上,
-lgmp -lpbc
(在tasks.json中的"args"里添加"-lgmp"和"-lpbc"即可)
我遇到的问题:
error while loading shared libraries: libpbc.so.1: cannot open shared object file: No such file or directory
添加编译参数-I/usr/local/include/pbc
(在tasks.json中的"args"里添加"-I/usr/local/include/pbc")
先放一个例子,可以看看能不能运行成功,输出的三个结果应该一样。
1 |
|
使用
pairing初始化
双线性配对一般使用的是pbc库中的Type-A
这一部分算是固定的。
1 |
|
元素初始化
一个pairing里有一般有两个群。按官方说法,为小的那个群,使用的时候看具体情况。
元素初始化有这么几个函数:
1 |
|
在初始化后就可以对元素进行各种操作啦。
元素赋值
pbc中有很多赋值操作,非常灵活:
1 |
|
运算
这里就列举一些常用的运算
1 |
|
元素输出
这里就说一下我用过的
1 |
|
C语言PBC库
http://example.com/2024/12/05/cPBC/