Trias聯(lián)合“北大軟微-八分量協(xié)同創(chuàng)新實(shí)驗(yàn)室”定期舉辦技術(shù)沙龍。該實(shí)驗(yàn)室成立于去年9月份,以可信計(jì)算、區(qū)塊鏈等作為主要研究方向,致力于推動智能互聯(lián)新時(shí)代下的人機(jī)互信問題的解決。針對沙龍具體細(xì)節(jié)問題,我們將推出由實(shí)驗(yàn)室教授、博士生主筆撰寫的系列文章。本期文章由北京大學(xué)的兩位博士生李聰、馮新宇撰寫。
關(guān)注信息安全圈的小伙伴,九月初可能看到了一則新聞,歐洲電信標(biāo)準(zhǔn)協(xié)會(ETSI)發(fā)布了兩套新的基于屬性的加密(Attribute-Based Encryption,ABE,下文的描述中均使用英文縮寫)標(biāo)準(zhǔn)。新加密標(biāo)準(zhǔn)被認(rèn)為可確保個(gè)人數(shù)據(jù)只會在用戶密鑰的屬性匹配加密屬性時(shí)才能解密。
看完這則新聞,你或許不禁會問,什么是ABE?什么又叫做用戶密鑰的屬性匹配加密屬性?下面就聊聊ABE中的幾個(gè)基本問題。
屬性,屬性集合及策略
百度百科中對屬性的解釋是:“屬性就是人類對于一個(gè)對象的抽象方面的刻畫。由于事物屬性的相同或相異,客觀世界中就形成了許多不同的事物類。具有相同屬性的事物就形成一類,具有不同屬性的事物就分別地形成不同的類。
在ABE中,屬性也有著相似的作用。舉個(gè)例子,Jacky Li是A大學(xué)信息安全學(xué)院的教授,那么“A大學(xué)”,“信息安全學(xué)院”以及“教授”就是ABE中刻畫Jacky Li這個(gè)人的多個(gè)屬性,這些屬性可以構(gòu)成一個(gè)屬性集合,我們可以把它記為集合SJacky L。
下面我們聊聊策略。一種簡單的理解是策略實(shí)際即是由屬性及它們間關(guān)系所組成的一個(gè)邏輯表達(dá)式,例如下式Policy1:
參與X課題 or(信息安全學(xué)院 and A大學(xué)and 教授)
這是一條簡單的策略,其表達(dá)的含義是唯有X課題組的成員或是A大學(xué)信息安全學(xué)院的教授才能滿足其要求。
最后,還必須說說屬性集合與策略的匹配。
我們?nèi)允褂肧Jacky Li與Policy1進(jìn)行說明。SJacky Li集合中沒有“參與X課題”這一屬性,故其無法滿足策略的前半部分;而策略的后半部分,要求“信息安全學(xué)院”、“A大學(xué)”、“教授”這三個(gè)屬性同時(shí)出現(xiàn),而SJacky Li同時(shí)包含了這三個(gè)屬性,所以屬性集合匹配策略后半部分,由于策略前后兩部分是or的關(guān)系,故屬性集合SJacky Li能夠滿足策略Policy1,我們稱之為屬性集合與策略匹配成功。
倘若此時(shí)另一個(gè)用戶Johnson,他的屬性集合是SJohnson= {計(jì)算機(jī)學(xué)院,A大學(xué),教授},顯然SJohnson無法滿足Policy1,此時(shí)屬性集合與策略匹配失敗。
什么是ABE?
清楚了ABE中的屬性及策略的概念,我們開始解釋什么是ABE。拋開嚴(yán)謹(jǐn)?shù)亩x,用一句話說明ABE加密算法其實(shí)就是看屬性集合與策略是否相匹配的一個(gè)公鑰加密“游戲”。
簡單解釋下這句話,首先ABE是一個(gè)公鑰加密算法,既然是公鑰加密算法,就有公鑰和私鑰的概念,每一名參與ABE系統(tǒng)的用戶都有一個(gè)屬于自己的私鑰,而加密方在加密數(shù)據(jù)時(shí)使用的則是公鑰,在ABE中我們?nèi)趸€這一概念,稱之為公共參數(shù)(public parameter)。
其次,在傳統(tǒng)公鑰加密中,用戶會使用其私鑰嘗試解密密文,ABE也不例外。
與傳統(tǒng)方法不同的是,設(shè)計(jì)者將屬性集合與策略嵌入到了用戶私鑰與密文中,這樣一來,私鑰與密文輸入解密算法嘗試解密的過程,實(shí)際也就是屬性集合與策略相匹配的過程,倘若能夠匹配成功,則算法順利完成解密操作,用戶可成功恢復(fù)出明文數(shù)據(jù)。倘若匹配失敗,則用戶無法恢復(fù)明文,解密失敗。
KP-ABE與CP-ABE
在這里還有兩個(gè)概念需要說明,即KP-ABE與CP-ABE。
KP-ABE,Key-Policy ABE,翻譯過來即是密鑰策略ABE,什么是密鑰策略?上文中提到了ABE的解密過程中需要進(jìn)行策略與屬性集合匹配的操作,但實(shí)際我們并沒有說清楚策略和屬性集合分別在哪。Key-Policy指的是策略嵌入用戶密鑰中,屬性集合嵌入于密文中,在解密的過程中,用戶將嵌入策略的密鑰與嵌入屬性集合的密文輸入解密算法,通過這種方式,實(shí)現(xiàn)策略與屬性集合的匹配。
而CP-ABE(Ciphertext-Policy ABE,密文策略ABE)呢?自然是策略嵌入在密文中?。∷cKP-ABE在結(jié)構(gòu)上是一種對偶關(guān)系,這也就是為什么往往學(xué)者們在提出一個(gè)新的CP-ABE方案時(shí),會在同一篇論文中同時(shí)再提出一個(gè)KP-ABE方案。同樣條件與假設(shè)下,兩類算法的密文密鑰結(jié)構(gòu)設(shè)計(jì)比較好類比與遷移。
需要注意的一點(diǎn)是,這種相似性僅存在于結(jié)構(gòu)上,CP-ABE與KP-ABE在應(yīng)用場景方面有著極大的不同。
CP-ABE由于策略嵌入密文中,這就意味著,數(shù)據(jù)擁有者可以通過設(shè)定策略去決定擁有哪些屬性的人能夠訪問這份密文,也就相當(dāng)于對這份數(shù)據(jù)做了一個(gè)粒度可以細(xì)化到屬性級別的加密訪問控制。
CP-ABE的應(yīng)用場景一般是公有云上的數(shù)據(jù)加密存儲與細(xì)粒度共享,而KP-ABE的應(yīng)用場景則更加偏向于付費(fèi)視頻網(wǎng)站、日志加密管理等等(由于篇幅的關(guān)系,具體場景會在后續(xù)文章中繼續(xù)討論)。
ABE的優(yōu)勢是什么?
我們以CP-ABE為例,舉一個(gè)簡單的例子說明ABE相較傳統(tǒng)公鑰加密算法的優(yōu)勢。
一個(gè)數(shù)據(jù)擁有者需要將一份明文文件,加密發(fā)送給N個(gè)不同的用戶,倘若使用傳統(tǒng)公鑰加密算法,數(shù)據(jù)擁有者需要首先保存這N個(gè)用戶的公鑰(不考慮公鑰證書的情況下),利用這N個(gè)不同公鑰,使用該份明文文件,加密N次,形成N份不同的密文,分別發(fā)送給這個(gè)N個(gè)用戶。
若使用ABE來完成這項(xiàng)任務(wù)則會輕松很多。此時(shí),數(shù)據(jù)擁有者只需要制定一條僅有這N個(gè)用戶才能滿足的訪問策略,接著輸入公共參數(shù)PP、該條策略以及明文文件至ABE加密算法,進(jìn)行加密一次,形成唯一一份密文。得到密文后,數(shù)據(jù)擁有者將該份密文分別發(fā)送給這N個(gè)不同用戶。
從加密計(jì)算開銷與存儲開銷的角度來看,ABE在該場景下(數(shù)據(jù)加密共享場景)相較于傳統(tǒng)公鑰加密算法,有著肉眼可見的性能優(yōu)勢,此處便不再贅述。
結(jié)語
評論
查看更多