Ubuntu下cpabe的安装与使用(整理)

Ubuntu下cpabe的安装与使用

因为硕士论文要做关于cpabe的内容,所以自己在网上查找资料折腾了一下,信息全来源于网上,如有侵权必删。谨以此博客记录自己的学习经历。

(一)安装

1. 安装m4、bison、flex

sudo apt-get install m4
sudo apt-get install flex
sudo apt-get install bison

2. 安装GMP
gmp下载地址:https://gmplib.org/ ,下载然后解压,并进入目录

tar -xvf gmp-6.1.2.tar.bz2 
cd gmp-6.1.2

安装

./configure 
sudo make check
sudo make
sudo make install

3. 安装pbc
pbc下载地址:http://crypto.stanford.edu/pbc/download.html ,下载然后解压,并进入目录

tar -xvf pbc-0.5.14.tar.gz
cd pbc-0.5.14

安装

./configure
sudo make
sudo make install

pbc的环境配置完成,下面进行测试
进入pbc-0.5.14——example目录下,创建一个foo.c文件,编写内容:

#include "pbc.h"
int main(void) 
{ 
printf("this is a test\n");
return 0; 
} 

然后运行下面代码编译

gcc -o foo foo.c -I /usr/local/include/pbc -L /usr/local/lib -Wl,-rpath /usr/local/lib  -l pbc

如果还有错请参考:http://crypto.stanford.edu/pbc/howto.html
编译完成之后运行该文件:

./foo

运行成功会打印出:

this is a test

至此pbc环境配置完成

4. 安装cpabe
安装cpabe前先安装下面两个软件:

sudo apt-get install libssl-dev
sudo apt-get install libglib2.0-dev

如果安装这两个软件出错,请参考:https://blog.csdn.net/zally_1994/article/details/84566171

然后进入http://acsc.cs.utexas.edu/cpabe/ 下载libbswabe-0.9.tar.gz 和cpabe-0.11.tar.gz。首先安装libbswabe

tar -xvf libbswabe-0.9.tar.gz
cd libbswabe-0.9
./configure
sudo make
sudo make install

然后安装cpabe

tar -xvf cpabe-0.11.tar.gz
cd cpabe-0.11
./configure
sudo make

执行完这一步会出错,错误如下面
在这里插入图片描述
解决办法是修改Makefile文件

vim Makefile

进入Makefile,找到以LDFLAGS开头的以下部分在最后添加-lgmp,修改之后:

LDFLAGS = -O3 -Wall \
    -lglib-2.0  \
    -Wl,-rpath /usr/local/lib -lgmp \
    -Wl,-rpath /usr/local/lib -lpbc \
    -lbswabe \
    -lcrypto -lcrypto \
    -lgmp 

修改完之后,再修改policy_lang.y文件

vim policy_lang.y

在67行的 } 前面加入 ; ,加完之后运行

sudo make
sudo make install

之后进行测试:cpabe-setup -h
显示下图表明搭建成功
在这里插入图片描述

(二)使用

环境搭建完成之后就看下如何使用了
可以参考这两个:
http://acsc.cs.utexas.edu/cpabe/tutorial.html

http://acsc.cs.utexas.edu/cpabe/

安装之前先创建一个cpabe文件夹

mkdir cpabe

进入cpabe文件夹内

cd cpabe

接下来会在这个文件夹下面产生公钥和私钥。

1、通过cpabe-setup命令产生 public key and master key

cpabe-setup
ls

会产生 master_keypub_key

2、使用master_key 和 pub_key 以及cpabe-keygen命令为具有属性值的用户产生私钥

cpabe-keygen -o sara_priv_key pub_key master_key \
    sysadmin it_department 'office = 1431' 'hire_date = '`date +%s`
cpabe-keygen -o kevin_priv_key pub_key master_key \
    business_staff strategy_team 'executive_level = 7' \
    'office = 2362' 'hire_date = '`date +%s`
ls

master_key pub_key sara_priv_key kevin_priv_key

注意:

(1)cp-keygen使用参照:http://acsc.cs.utexas.edu/cpabe/cpabe-keygen.html

(2)第一行代码的末尾有一个“\”是因为第一行放不下了,想换行继续输命令。

(3)上例产生 了两个私钥sara_priv_key kevin_priv_key,分别是sara和kevin的。

3、使用cpabe-enc命令和pub_key和访问策略加密明文生成密文 (这里事先新建了一个文件security_report.pdf ,这个文件是要被加密的)
这里要注意:
(1)先执行代码
cpabe-enc pub_key security_report.pdf
(2)然后执行
(sysadmin and (hire_date < 946702800 or security_team)) or
(3)然后执行

(business_staff and 2 of (executive_level >= 5, audit_group, 			strategy_team))

(4)然后执行^D //Ctrl+D

ls一下会发现多出来一个 security_report.pdf.cpabe文件
这里的sysadmin and (hire_date < 946702800 or security_team是访问策略
在这个例子里设计的策略是kevin满足,但是sara的不满足

4、使用cpabe-dec命令,用私钥对密文进行解密。

cpabe-dec pub_key kevin_priv_key security_report.pdf.cpabe

运行之后会发现security_report.pdf.cpabe这个文件已经被成功解密,会变成security_report.pdf

注意:如果要是运行

cpabe-dec pub_key sara_priv_key security_report.pdf.cpabe

则会报错

以上代码全部经过本人测试成功,此博客谨希望能让您少走一点弯路。

参考博客:
1:https://blog.csdn.net/hlsdbd1990/article/details/48291359
2:https://blog.csdn.net/duoaii/article/details/52870763

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值