Ubuntu下CP ABE的使用

2021-10-08 21:59:30 字數 2162 閱讀 9180

ubuntu下cp-abe的使用

在上篇中,已經完成了在ubuntu下cp-abe的安裝,這篇簡單記錄一下使用方法。

本人參考的是這篇文章:

大家也可以直接參考官網:

如果小夥伴是按照我上篇分享的文章裡的步驟來的話,libbswabe庫就可以忽略啦,因為已經安裝過啦~

後面的部分大家按照上述兩個鏈結裡的步驟來是沒有問題的,但是我希望幫助一些小白,也借這個機會理解一下每個步驟的內容。

假設您在一家僅雇用了兩名新員工sara和kevin的公司工作,而您將為其工作站建立私鑰。

我的路徑是/home/allen/ 也就是使用者allen的資料夾啦。

進入cp-abe資料夾,通過cpabe-setup命令產生master key和public key,也就是系統主金鑰和公鑰。

然後,我們可以使用master_key來生成與各種屬性集關聯的私鑰。

我們可以使用cpabe-keygen命令為具有屬性值的使用者產生私鑰,也就是您的員工sara和kevin。給出以下例子:

cpabe-keygen -o sara_priv_key pub_key master_key \

sysadmin it_department 'office = 1431'

'hire_date = '

`date +%s`

cpabe-keygen -o kevin_priv_key pub_key master_key \

business_staff strategy_team 'executive_level = 7' \

'office = 2362'

'hire_date = '

`date +%s`

這裡為了方便,直接將命令寫出來,需要注意的是:

(1)「=」兩邊需要有空格,不然會報錯

(2)cp-keygen使用可以參照:

(3)**的末尾有乙個「\」是因為這一行放不下了,想換行繼續輸命令。如果是自己手敲的話,可以忽略「\」。

(4)上例產生了兩個私鑰sara_priv_key和kevin_priv_key,分別是sara和kevin的私鑰。

如示例中所看到的那樣,我們為某些屬性分配了乙個值,而另一些屬性只是簡單地「具有」鍵而沒有進一步的限定。

date命令用於將當前時間用作屬性值。

使用cpabe-enc在指定策略下即可進行加密。

事先新建乙個檔案security_report.pdf ,假設這個檔案是要被加密的。

輸入:

cpabe-enc pub_key security_report.pdf

(sysadmin and (hire_date < 946702800 or security_team)) or

(business_staff and 2 of (executive_level >= 5, audit_group, strategy_team))

^d

注意:

(1)第二行「or」後面一定要換行!!!

(2)最後^d為ctrl+d,表示結束輸入。

我們可以看到這個檔案已經被cpabe進行加密了。

使用cpabe-dec命令,可以用私鑰對密文進行解密。

我們可以看到這個檔案已經解密完成了。

如果我們輸入:

cpabe-dec pub_key sara_priv_key security_report.pdf.cpabe
我們可以看到,並不能解密,因為在這個例子裡設計的策略是kevin的屬性滿足,但是sara的屬性不滿足。

最後,可以說cp-abe的使用的流程已經十分清楚了,但是具體的細節部分,需要自己再消化消化,後期如果有機會再寫一篇筆記吧~

ubuntu下使用VirtualBox的相關問題

最近一直在搗鼓ubuntu下的虛擬機器,目前採用ubuntu host winxp guest 的方式。在vbox中使用xp系統一直感覺操作很不流暢,調整了螢幕解析度和滑鼠速度均沒有改善,最近由於虛擬機器與實體機之間的檔案共享問題,再次整理了使用虛擬機器的問題,以下有三個問題需要我寫下來方便以後檢視...

Ubuntu下C kermit的使用

c kermit是linux下簡單易用的串列埠工具,配置簡單,現說說我的安裝使用方法,我用的usb轉串列埠 vm,環境不同可能裝置名不一樣 1.安裝 sudo apt get install ckermit 2.設定配置檔案 c kermit啟動時會從當前使用者下查詢.kermrc配置檔案,所以我們...

ubuntu下locale gen的使用

名字 locale gen 編譯本地定義檔案的乙個列表 簡介 locale gen options locale language 描述 編譯本地檔案需要50m的磁碟容量,並卻大部分使用者僅需要很少的locales.為了節省磁碟容量,編譯的locale 檔案不在locales包中發布,但是當這些包通...