1. 程式人生 > >北大學術 | 基於屬性的加密概述

北大學術 | 基於屬性的加密概述

Trias聯合“北大軟微-八分量協同創新實驗室”定期舉辦技術沙龍。該實驗室成立於去年9月份,以可信計算、區塊鏈等作為主要研究方向,致力於推動智慧互聯新時代下的人機互信問題的解決。針對沙龍具體細節問題,我們將推出由實驗室教授、博士生主筆撰寫的系列文章。本期文章由北京大學的兩位博士生李聰、馮新宇撰寫。

關注資訊保安圈的小夥伴,九月初可能看到了一則新聞,歐洲電信標準協會(ETSI)釋出了兩套新的基於屬性的加密(Attribute-Based Encryption,ABE,下文的描述中均使用英文縮寫)標準。新加密標準被認為可確保個人資料只會在使用者金鑰的屬性匹配加密屬性時才能解密。

看完這則新聞,你或許不禁會問,什麼是ABE?什麼又叫做使用者金鑰的屬性匹配加密屬性?下面就聊聊ABE中的幾個基本問題。

 

屬性,屬性集合及策略

百度百科中對屬性的解釋是:“屬性就是人類對於一個物件的抽象方面的刻畫。由於事物屬性的相同或相異,客觀世界中就形成了許多不同的事物類。具有相同屬性的事物就形成一類,具有不同屬性的事物就分別地形成不同的類”[1]。

在ABE中,屬性也有著相似的作用。舉個例子,Jacky Li是A大學資訊保安學院的教授,那麼“A大學”,“資訊保安學院”以及“教授”就是ABE中刻畫Jacky Li這個人的多個屬性,這些屬性可以構成一個屬性集合,我們可以把它記為集合SJacky L。

下面我們聊聊策略。一種簡單的理解是策略實際即是由屬性及它們間關係所組成的一個邏輯表示式

,例如下式Policy1:

參與X課題 or(資訊保安學院 and A大學and 教授)

這是一條簡單的策略,其表達的含義是唯有X課題組的成員或是A大學資訊保安學院的教授才能滿足其要求。

最後,還必須說說屬性集合與策略的匹配。

我們仍使用SJacky Li與Policy1進行說明。SJacky Li集合中沒有“參與X課題”這一屬性,故其無法滿足策略的前半部分;而策略的後半部分,要求“資訊保安學院”、“A大學”、“教授”這三個屬性同時出現,而SJacky Li同時包含了這三個屬性,所以屬性集合匹配策略後半部分,由於策略前後兩部分是or的關係,故屬性集合SJacky Li能夠滿足策略Policy1,我們稱之為屬性集合與策略匹配成功

(策略與屬性集合匹配成功示意圖)

 倘若此時另一個使用者Johnson,他的屬性集合是SJohnson= {計算機學院,A大學,教授},顯然SJohnson無法滿足Policy1,此時屬性集合與策略匹配失敗。

(策略與屬性集合匹配失敗示意圖)

什麼是ABE?

清楚了ABE中的屬性及策略的概念,我們開始解釋什麼是ABE。拋開嚴謹的定義,用一句話說明ABE加密演算法其實就是看屬性集合與策略是否相匹配的一個公鑰加密“遊戲”。

簡單解釋下這句話,首先ABE是一個公鑰加密演算法,既然是公鑰加密演算法,就有公鑰和私鑰的概念,每一名參與ABE系統的使用者都有一個屬於自己的私鑰,而加密方在加密資料時使用的則是公鑰,在ABE中我們弱化公鑰這一概念,稱之為公共引數(public parameter)。

(傳統公鑰加密演算法加解密示意圖(該圖片來於百度圖片庫)[2])

其次,在傳統公鑰加密中,使用者會使用其私鑰嘗試解密密文,ABE也不例外。

與傳統方法不同的是,設計者將屬性集合與策略嵌入到了使用者私鑰與密文中,這樣一來,私鑰與密文輸入解密演算法嘗試解密的過程,實際也就是屬性集合與策略相匹配的過程,倘若能夠匹配成功,則演算法順利完成解密操作,使用者可成功恢復出明文資料。倘若匹配失敗,則使用者無法恢復明文,解密失敗。

KP-ABE與CP-ABE

在這裡還有兩個概念需要說明,即KP-ABE與CP-ABE。

KP-ABE,Key-Policy ABE,翻譯過來即是金鑰策略ABE,什麼是金鑰策略?上文中提到了ABE的解密過程中需要進行策略與屬性集合匹配的操作,但實際我們並沒有說清楚策略和屬性集合分別在哪。Key-Policy指的是策略嵌入使用者金鑰中,屬性集合嵌入於密文中,在解密的過程中,使用者將嵌入策略的金鑰與嵌入屬性集合的密文輸入解密演算法,通過這種方式,實現策略與屬性集合的匹配。

而CP-ABE(Ciphertext-Policy ABE,密文策略ABE)呢?自然是策略嵌入在密文中啊!它與KP-ABE在結構上是一種對偶關係,這也就是為什麼往往學者們在提出一個新的CP-ABE方案時,會在同一篇論文中同時再提出一個KP-ABE方案。同樣條件與假設下,兩類演算法的密文金鑰結構設計比較好類比與遷移。

需要注意的一點是,這種相似性僅存在於結構上,CP-ABE與KP-ABE在應用場景方面有著極大的不同。

CP-ABE由於策略嵌入密文中,這就意味著,資料擁有者可以通過設定策略去決定擁有哪些屬性的人能夠訪問這份密文,也就相當於對這份資料做了一個粒度可以細化到屬性級別的加密訪問控制。

CP-ABE的應用場景一般是公有云上的資料加密儲存與細粒度共享,而KP-ABE的應用場景則更加偏向於付費視訊網站、日誌加密管理等等(由於篇幅的關係,具體場景會在後續文章中繼續討論)。

ABE的優勢是什麼?

我們以CP-ABE為例,舉一個簡單的例子說明ABE相較傳統公鑰加密演算法的優勢。

一個數據擁有者需要將一份明文檔案,加密傳送給N個不同的使用者,倘若使用傳統公鑰加密演算法,資料擁有者需要首先儲存這N個使用者的公鑰(不考慮公鑰證書的情況下),利用這N個不同公鑰,使用該份明文檔案,加密N次,形成N份不同的密文,分別傳送給這個N個使用者。

(使用傳統公鑰加密演算法示意圖)

若使用ABE來完成這項任務則會輕鬆很多。此時,資料擁有者只需要制定一條僅有這N個使用者才能滿足的訪問策略,接著輸入公共引數PP、該條策略以及明文檔案至ABE加密演算法,進行加密一次,形成唯一一份密文。得到密文後,資料擁有者將該份密文分別傳送給這N個不同使用者。

(使用ABE演算法示意圖)

從加密計算開銷與儲存開銷的角度來看,ABE在該場景下(資料加密共享場景)相較於傳統公鑰加密演算法,有著肉眼可見的效能優勢,此處便不再贅述。

結語

在本文最後,給出維基百科對於ABE的定義[3],是不是發現你能明白這段文字在說什麼了?

ABE從06年正式被提出到現在,已經經歷了十二個年頭。在這十二年裡,ABE領域都是公鑰密碼學研究中的一個重要方向。

隨著ETSI新型加密標準的提出,相信ABE會越來越多地進入產業界的視野,逐漸成為一項可以落地的技術。在後續的文章中,我們還將對ABE的更多問題以及ETSI釋出的標準進行更深入地討論,敬請期待!

引用

[1] 百度百科

https://baike.baidu.com/item/%E5%B1%9E%E6%80%A7/1405051?fr=aladdin

[2]百度相簿

http://u6.gg/f4QMa

[3] 維基百科

https://en.wikipedia.org/wiki/Attribute-based_encryption