Linux下使用cpabe属性加密
来源:互联网 发布:intouch10.6软件下载 编辑:程序博客网 时间:2024/05/09 12:12
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,会返回解密失败。
1 0
- Linux下使用cpabe属性加密
- Linux下Cpabe Toolkit安装教程
- Ubuntu下CPABE环境配置
- Ubuntu15.10下CPABE环境搭建
- Linux下使用gost算法加密
- Linux下使用Intel_WiFi_Link_5100AGN 破解无线加密
- Linux下使用openssl的MD5加密
- linux下使用openssl命令行加密文件
- Linux下使用SEAL同态加密
- Linux下使用wpa_supplicant连接WPA加密方式的WIFI
- Linux下使用wpa_supplicant连接WPA加密方式的WIFI
- Linux环境下使用同态加密库HElib
- linux下使用openssl对socket通信加密
- linux下使用openssl对socket通信加密
- Linux下如何使用zip压缩、解压和加密
- linux下使用openssl对socket通信加密
- linux下md5加密(使用openssl库C实现)
- linux下使用openssl对文件RSA加密解密
- eclipse debug状态启动缓慢问题
- Json解析案例
- 最优布线问题
- 2014年北京传智播客PHP培训视频教程
- vim使用指南
- Linux下使用cpabe属性加密
- jsonp跨域请求问题
- 在centOS下安装nginx并配置
- SQL基础要点概述——基于Mysql
- 浅析JAVA的垃圾回收机制(GC)
- QT窗体间传值总结之Signal与Slot
- C语言,好爽(第一二三季)
- hiebernate 学习之六(hibernate的检索策略)
- QMainWindow中窗口自适应大小