PBC库安装*
该作者写的很好!不过中间我还是遇到了很多问题,写在下面。下面是我的详细步骤。欢迎指点!
https://blog.csdn.net/u013983667/article/details/54582126?locationNum=9&fps=1
安装相关依赖
sudo apt install m4 (注意小写m,装不上,先sudo apt update一下)
sudo apt install flex
sudo apt install bison
安装 GMP
GMP库下载地址如下:
https://gmplib.org/
下载后解压,进入解压后的文件夹。
sudo su
./configure
make
make check
make install
默认安装在/usr/local/lib,我们可以查看一下。
cd /usr/local/lib
ls
安装 PBC
pbc下载地址如下:
http://crypto.stanford.edu/pbc/download.html
下载并解压,进入解压文件夹:
sudo su
./configure
make
make install
其中,在Windows上configure命令需要额外的选项
./configure -disable-static -enable-shared
默认安装路径为/usr/local/lib
测试
双线性映射:G1*G2 –> GT, order 为 r。
打开你解压到的文件夹,也就是你上面进行编译的文件夹,里面有个pbc文件夹。
cd pbc
./pbc
生成g of G1
g := rnd(G1);
g;
生成h of G2
h := rnd(G2);
h;
e(g, h)
pairing(g,h);
产生两个数a,b of [0,r-1]
a := rnd(Zr);
b := rnd(Zr);
e(g^a, h^b)
pairing(g^a, h^b);
e(g,h)^(a*b)
pairing(g,h)^(a*b);
注意
如果要在编程中使用!
这里要设置动态库指定路径 LD_LIBRARY_PATH,LD_LIBRARY_PATH是Linux系统下的环境变量名,类似于Path(设置可执行文件的搜索路径)。它用于指定查找共享库(动态链接库)时除了默认路径(./lib和./usr/lib)之外的其他路径。移植程序时的经常碰到需要使用一些特定的动态库,而这些编译好的动态库放在我们自己建立的目录里,这时可以将这些目录设置到LD_LIBRARY_PATH中。
查看LD_LIBRARY_PATH:
echo $LD_LIBRARY_PATH
1.设置LD_LIBRARY_PATH(只能一次性使用):
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
2.把该语句加入/etc/profile里面,注销用户,再登录生效。
sudo gedit /etc/profile
把上面那条设置命令放在文件最下端,注销重新登录。
我们进入解压文件夹下(我的):
cd /home/wk/v2g/pbc-0.5.14/example
gcc bls.c -o blstest -L. -l