Ubuntu 配置 CP-ABE

  • 安装CP-ABE的依赖库
  1. sudo su先进入管理员权限
  2. 安装如下依赖项:m4,flex,bison
sudo apt-get install m4

sudo apt-get install flex

sudo apt-get install bison

  1. 安装:gmp
    安装lzip,用于解压gmp源码sudo apt-get install lzip;

使用lzip -d gmp-6.2.1.tar.lz命令,将.tar.lz 变为 .tar

解压gmp文件,并在该文件夹下打开终端并,进行以下命令进行安装

./configure
make check
make
make install
  1. 安装:pbc
    解压pbc文件,并在该文件夹下打开终端并,进行以下命令进行安装
./configure
make
make install
  1. 安装:libbswabe
    sudo apt-get install libssl-dev
    sudo apt-get install libglib2.0-dev
    安装libglib2.0-dev,容易报错安装不成功,影响接下来的步骤,

可以尝试多安装几次,目前我找不到更好的解决方法。
解压libbswabe文件,并在该文件夹下打开终端并,进行以下命令进行安装

./configure
make
make install
  1. 安装:cpabe
    解压cpabe文件,并在该文件夹下打开终端并,进行以下命令进行安装
./configure ##在进行make操作之前先看下一步对文件中某些文件进行修改
make
make install

修改文件:
编辑Makefile文件,在LDFLAGS最后再加一行,写:-lgmp

policy_lang.y文件在67行的 } 前面添加一个分号;

  • 实现
  1. 生成公钥和主密钥cpabe-setup

  2. 拥有了公钥和主密钥,就可以来生成用户的私钥,假设我们有两个用户A和B,假设我们生成对应的私钥为:A_priv_key,B_priv_key。我们使用如下命令生成私钥:

cpabe-keygen -o A_priv_key pub_key master_key sysadmin it_department 'office = 2021' 'hire_date = '`date +%s`
cpabe-keygen -o B_priv_key pub_key master_key business_staff strategy_team 'executive_level = 7' 'office = 10033' 'hire_date = '`date +%s`

  1. 加密test.txt文件
cpabe-enc pub_key test.txt 
(sysadmin and (hire_date < 946702800 or security_team))  ##注意换行
 or (business_staff and 2 of (executive_level >= 5, audit_group, strategy_team))  ##以CTRL+D结束

Ctrl + D 生成加密文件test.txt.cpabe

  1. 解密
cpabe-dec pub_key B_priv_key test.txt.cpabe
  • 待解决问题

    如果需要其中的安装文件可以发邮箱
posted @ 2022-04-03 11:06  伶俐虫虫  阅读(333)  评论(2)    收藏  举报