Linux环境下PBC库的安装

Linux环境下PBC库的安装

The PBC (Pairing-Based Cryptography) library is a free C library (released under the GNU Lesser General Public License) built on the GMP library that performs the mathematical operations underlying pairing-based cryptosystems.

简单记录Linux环境下PBC库的安装过程,已在ubuntu14.04fedora30上验证。

依赖预安装

安装GMP、PBC过程中会提示有依赖未安装,在此直接预安装。不同系统下可能有其他依赖未安装的情况,按各自configure脚本提示安装即可。

# 以fedora30的dnf包管理器为例,ubuntu14.04替换为apt-get等命令。
$ sudo dnf install m4
$ sudo dnf install g++
$ sudo dnf install flex

安装GMP

GMP官网下载包(如gmp-6.1.2.tar.lz)并解压。

$ cd /dir/to/gmp
$ ./configure --enable-cxx
$ make
$ make check
$ sudo make install

Tip:

ubuntu系统下可能有configure脚本无法执行的问题,使用chmod命令赋予权限:

$ sudo chmod +x ./configure

安装PBC

PBC官网下载包(如pbc-0.5.14.tar.gz)并解压。

$ cd /dir/to/pbc
$ ./configure
$ make
$ make install

管理库路径

添加pbc库文件libpbc.so.1路径。

$ cd /etc/ld.so.conf.d
$ sudo vi libpbc.conf

/etc/ld.so.conf.d路径下新建libpbc.conf文件,内容为:

/usr/local/lib

更新cache:

$ sudo ldconfig

测试

新建一个c文件main.c测试PBC库:

// main.c
#include <stdio.h>
#include "/usr/local/include/pbc/pbc.h"
int main(int argc, char const *argv[]) {
  // 初始化pairing
  pairing_t pairing;  
  // pairing_t定义: pairings where elements belong本例子用a.param去初始化pairing; a pairing is a map 例如:e:G1×G2->Gt
  // a.param是pbc库中标准的参数集,其提供对称的pairing ,在所有的param中有最高的速度。
  char param[1024];
  size_t count = fread(param, 1, 1024, stdin); // 读大小为1的个数最大为1024到param,返回真实读入的个数
  if (!count) pbc_die("input error");
  pairing_init_set_buf(pairing, param, count);

  // 生成x
  element_t x;
  element_init_Zr(x, pairing); //用pairing初始化x
  element_random(x); //随机生成x
  element_printf("%B\n", x); //打印x

  return 0;
}

编译

$ gcc main.c -L. -lpbc -lgmp

运行

初始化pairing时需要传入参数,一组参数已提供于PBC库中/param/a.param,可将其拷贝到方便的位置使用。

# 此处已将a.param拷贝到工程目录下
$ ./a.out < ./a.param

参考

  • https://blog.csdn.net/just_h/article/details/82667787

  • https://blog.csdn.net/cnzb01/article/details/81320001

  • https://blog.csdn.net/z695516174/article/details/87606726

  • https://blog.csdn.net/u013983667/article/details/60151921

  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值