PBC下载、安装及基本使用

下载 安装

  • 在下PBC之前需要GMP库
  • 在官网找到相应的包进行安装
  • 我采用源码安装,将下载的pbc-0.5.14.tar.gz解压,并进入解压后的目录

        #对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系,根据提示先将依赖包安装好
    ./configure#对源码进行编译
    make#将编译好的程序安装到相应目录,默认的目录是/usr/local/lib
    sudo make install
  • 为了速度和简单,在开发环境下,可以使用simple.make。但它的可移植性较弱

        #PBC使用一些GUN C扩展作为内嵌的函数
    make -f simple.make

基本的使用

  • 程序使用这个PBC库应该包含头文件pbc.h

        #include <pbc/pbc.h>
  • 在链接时,加上PBC和GMP库

    gcc program.c -lpbc -lgmp -L.
  • PBC在以下几个方面遵循GMP

    • 输出参数总是先于输入参数
    • 在调用函数时,相同的变量可以同时用作输入和输出
    • 在使用一个变量之前,必须有且仅有一次初始化。不再使用它的时候,必须清除掉。为了效率,不必要的初始化和清除应该尽量避免
    • 在函数的调用中,PBC中以_t结尾的变量会和GMP有相同的行为,即引用传递。换句话说,在GMP里,如果一个函数修改了一个输入变量,即使函数返回到被调用的作用域,该变量依然会保留修改的值
    • 像GPM,变量在需要的时候能自动的分配内存。默认情况下,malloc()和与它相似的函数被调用,但是这是可以改变的
    • PBC函数大部分是可重入函数
  • 因为PBC库是建立在GMP库上的,所以GMP类型依然是可用的。PBC的类型与GMP的类型基本相似。下面的是来自GMP手册的一个示例,同时也展现怎样声明PBC数据类型element_t

    element_t sum;
    struct foo{ element_t x, y; };
    element_t vec[20];
  • GMP对于整数有mpz_t类型,对于有理数有mpq_t类型等。不同的是,PBC使用element_t数据类型作为不同代数结构的元素,比如椭圆曲线的群,多项式的环和有限域。函数假定它们的输入来自恰当的代数结构

  • PBC的数据类型和函数被分为以下几类,仅前两个就足以满足一系列的应用
    • element_t 代数结构的元素
    • paring_t 生成元所属的双线性对;可以通过在param子目录中与PBC捆绑的双线性对参数样本进行初始化
    • pbc_param_t 用于生成双线性对参数
    • pbc_cm_t 通过CM方法构造曲线的参数;有时需要pbc_param_t
    • field_t 群、环、域的代数结构,其内部使用pairing_t
    • 一些其他函数,比如说控制随机比特串的生成
  • 在一个给定数据类型上执行的函数,通常有相同的函数,例如设计element_t类型的函数前缀为element_

PBC下载、安装及基本使用相关推荐

  1. Redis学习之路(一)--下载安装redis

    redis学习之路--下载安装redis windows安装redis 1.下载redis 2.安装 3.查看是否安装成功 windows安装redis 1.下载redis 网址:https://gi ...

  2. git 下载 安装

    1.下载Git,官网地址:https://git-scm.com/,进入官网首页 在右下方的显示器中找到最新的版本下载,点击下载,跳转到下载页面 下载完成 2.安装Git 双击刚刚下载完成的安装文件, ...

  3. Docker初学5:下载安装可视化图形工具Portainer

    下载安装可视化图形工具Portainer # 搜索Portainer [root@iZh40ti53pk77iZ ~]# docker search portainer NAME DESCRIPTIO ...

  4. 01-01java概述 doc命令、jdk\jre下载安装、path、classpath配置、开发中常见小问题

    1:计算机概述(了解) (1)计算机(2)计算机硬件(3)计算机软件系统软件:window,linux,mac应用软件:qq,yy,飞秋(4)软件开发(理解)软件:是由数据和指令组成的.(计算器)开发 ...

  5. Kali Linux攻防系统(一:攻防系统Kali Linux下载安装与更新)

    任务一:攻防系统Kali Linux下载安装与更新 1.1.安装Kali Linux虚拟机 1.1.1.电脑硬件配置至少达到 CPU 内存 存储 >四核 >4G >20G 1.1.2 ...

  6. 平板电脑安装软件_题宝典软件升级了,微信公众号版不受影响,电脑版/手机APP/平板APP需要重新下载安装...

    亲爱的小伙伴们 大家好 题宝典软件升级了 那我们应该升级题库软件呢? 我们来一起看看 一.微信公众号版 进入步骤 关注本公众号(tbd339),点击菜单栏的"做题中心",如下图,然 ...

  7. windows10 下载 安装 使用 Sox

    windows10 下载 安装 使用 Sox 官网 http://sox.sourceforge.net/ 下载地址 https://sourceforge.net/projects/sox/file ...

  8. windows10中git 的下载安装

    git下载安装 下载网址: https://pc.qq.com/detail/13/detail_22693.html 双击安装 安装

  9. Sublime Text 3便携版下载安装和常用插件安装--顺便解决报错An error occured installing和no packages available for install

    文章目录 Sublime Text 3便携版下载安装和常用插件安装 1.Sublime Text 3便携版下载: 2.sublime 插件控制器(Package Control)安装 2.1离线安装P ...

最新文章

  1. java入门 慕路径,Java入门基础知识总结学习教程大全【必看经典】
  2. 有这么一群人,他们通过AI撬动世界!
  3. 【Python-ML】SKlearn库性能指标ROC-AUC
  4. Oracle Grid Control 11g for linux安装和配置指南
  5. 日常生活小技巧 -- word中插入visio和视频
  6. 5.2.3 OS之I/O设备的分配与回收(DCT-COCT-CHCT-SDT)
  7. 重磅!百度研究院发布2021年十大科技趋势预测
  8. chroot环境怎么重启linux,linux下简易chroot环境的塔建
  9. Cent OS dhcp配置
  10. RabbitMQ消息追踪之Firehose
  11. .propertie文件注释
  12. 在WinCE5.0和WinCE6.0下,编译选项介绍
  13. java 类复制构造方法_java面向对象入门(3)-java构造方法
  14. Oralce 导入dpm 文件数据
  15. 1.3 sklearn中的preprocessing.PolynomialFeatures——多项式回归
  16. win7设置视力保护色
  17. 深度优先搜索(DFS) 总结(算法+剪枝+优化总结)
  18. 数据可视化--实验4
  19. 函数调用之特殊三位数
  20. 日志说明以及格式统一规范

热门文章

  1. Kafka(一):概述
  2. Parsing error: No Babel config file detected for xxx Either disable config file checking with requir
  3. 监控安防工程商如何选择POE供电交换机
  4. 国内CMS网站内容管理系统介绍
  5. ReactNative进阶(三十五):应用脚手架 Yo 构建 RN 页面
  6. 运用CS-LBP提取裂纹的梯度特征
  7. html中aspx的cs文件是css吗,在asp.net 中怎么在.aspx.cs的文件里写代码来改变页面的颜色...
  8. null于undefined 区别
  9. 了解一下iframe页面嵌入使用,轻松实现页面集成
  10. 为什么厉害的人(我)都精力那么好?我有四大秘诀