cpabe 全称ciphertext-policy attribute-based encryption,是一种属性加密算法的实现方案。现在官方给出的源码可以在ubuntu上编译安装,不过我搭建的过程还是比较曲折。
因为毕设需要用到属性加密,所以找了一些相关的算法实现。
0、相关资源
官网:http://acsc.cs.utexas.edu/cpabe/
部分安装包我已经上传到CSDN的下载区。
gmp-6.1.2.tar http://download.csdn.net/detail/liuyueyi1995/9793384
pbc-0.5.1.tar.gz
libbswabe-0.9.tar.gz
cpabe-0.11.tar.gz
1、安装
安装cpabe之前,需要很多前置的环境。
先用apt-get安装:
1].M4
sudo apt-get install M4
2].flex
sudo apt-get install flex
3].bison
sudo apt-get install bison
再用编译的方法安装:
1].gmp
需要先安装lzip解压gmp的源码
sudo apt-get install lzip
去gmp的官网下载源码,
可能因为是外国网站,这一步花了我很多时间,
所以我把资源传到CSDN的下载区了
lzip -d gmp-6.1.2.tar.lz
进到gmp目录下用make安装
./configure
make check
make
make install
2].pbc
解压之后进到pbc的文件夹,用make安装
./configure
make
make install
3].libbswabe
安装libssl-dev
sudo apt-get install libssl-dev
安装libglib2.0-dev
sudo apt-get install libglib2.0-dev
解压之后进到libbswabe的文件夹,用make安装
./configure
make
make install
4].cpabe
解压之后进到cpabe的文件夹,用make安装
./configure
这里需要先修改一下Makefile,在LDFLAGS末尾加上-lgmp
make
make install
至此,安装就算全部完成啦!
2、使用
cpabe使用方法比较简单,一共就四个命令行指令。
1].cpabe-setup
生成master_key,pub_key
2].cpabe-keygen,cpabe-keygen [OPTION ...] PUB_KEY MASTER_KEY ATTR [ATTR ...]
输入公钥、主钥、用户的属性作为参数,生成用户的私钥
cpabe-keygen -o lyy_private_key pub_key master_key sysadmin 'age = 22'
这里有一个坑,age=22中间的空格不能省略,不然会解析错误
3].cpabe-enc,cpabe-enc [OPTION ...] PUB_KEY FILE [POLICY]
加密文件,生成一个.cpabe后缀的文件,
在加密时指定属性策略policy,只有属性满足policy的用户可以解密这个文件。
4].cpabe-dec,cpabe-dec [OPTION ...] PUB_KEY PRIV_KEY FILE
解密文件,使用特定用户的私钥进行解密,如果该用户属性不满足policy,会返回解密失败。