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安装:
M4
sudo apt-get install M4
flex
sudo apt-get install flex
bison
sudo apt-get install bison
再用编译的方法安装:
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
- 需要先安装
pbc
- 解压之后进到
pbc
的文件夹,用make
安装
./configure
make
make install
- 解压之后进到
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
- 安装
cpabe
- 解压之后进到
cpabe
的文件夹,用make
安装
./configure
- 这里需要先修改一下
Makefile
,在LDFLAGS
末尾加上-lgmp
make
make install
- 解压之后进到
至此,安装就算全部完成啦!
2 使用
cpabe
使用方法比较简单,一共就四个命令行指令。
cpabe-setup
- 生成
master_key
,pub_key
- 生成
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中间的空格不能省略,不然会解析错误
cpabe-enc
,cpabe-enc [OPTION ...] PUB_KEY FILE [POLICY]
- 加密文件,生成一个
.cpabe
后缀的文件, - 在加密时指定属性策略policy,只有属性满足policy的用户可以解密这个文件。
- 加密文件,生成一个
cpabe-dec
,cpabe-dec [OPTION ...] PUB_KEY PRIV_KEY FILE
- 解密文件,使用特定用户的私钥进行解密,如果该用户属性不满足policy,会返回解密失败。