1. 程式人生 > 其它 >Ubuntu 配置 CP-ABE

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
  • 待解決問題