郭凱陽 ,韓 益 亮 ,吳日銘
(1.武警工程大學 密碼工程學院,陜西 西安 710086;2.武警部隊密碼與信息安全保密重點實驗室,陜西 西安710086)
在信息時代與大數(shù)據(jù)時代的背景下,當今網(wǎng)絡(luò)中的信息量呈現(xiàn)爆炸式的增長,網(wǎng)絡(luò)信息安全問題引起了人們的廣泛關(guān)注,密碼技術(shù)作為保障信息安全的關(guān)鍵技術(shù)之一,其研究發(fā)展也越來越受到重視。1976年Diffle和Hellman提出了公鑰密碼思想體制[1],解決了對稱密碼體制中密鑰管理代價高、功能單一等問題,但是隨著需求發(fā)展,傳統(tǒng)基于公鑰基礎(chǔ)設(shè)施的加密機制也遇到了一些瓶頸,為了提高效率,Shamir于1984年提出了基于身份的加密機制(Identity-Based Encryption,IBE)[2],在此基礎(chǔ)上,Sahai和 Waters進一步提出了屬性加密機制[3]。屬性加密機制實現(xiàn)了一對多的加密模式且具有靈活的訪問結(jié)構(gòu),通常分為密文策略屬性加密(Ciphertext-Policy Attribute Based Encryption,CP-ABE)和密鑰策略屬性加密(Key-Policy Attribute Based Encryption,KP-ABE)[4]。為了完善屬性加密機制的功能,發(fā)掘其潛在的應(yīng)用前景,田有亮等人提出了基于屬性加密的區(qū)塊鏈數(shù)據(jù)溯源算法[5];劉建華等人在屬性加密的基礎(chǔ)上提出了支持密文檢索的云存儲方案[6];王崢等人提出了霧計算中用戶和屬性可撤銷的訪問控制方案[7];汪金苗等人基于多授權(quán)的屬性加密設(shè)計了面向區(qū)塊鏈的隱私保護和訪問控制方案[8]。
構(gòu)造簡單、抗量子攻擊是格密碼體制的兩大優(yōu)點,Regev在2005年提出了格上的誤差學習問題(Learning With Error,LWE)[9],并指出可以用來設(shè)計身份加密和屬性加密方案,之后構(gòu)造格上的屬性加密方案成為了學者研究的熱點之一,張欣等人利用二叉樹設(shè)計了可撤銷屬性的格基屬性加密方案[10]。Tan等人利用LSSS技術(shù)構(gòu)造了理想格上的高效CP-ABE方案[11]。吳立強等人提出了一種基于RLWE問題的高效模糊身份的加密方案[12]。于金霞等人提出了一種基于RLWE的支持訪問樹的屬性加密方案[13],之后基于LWE問題設(shè)計了一個外包環(huán)境下可撤銷的屬性基加密方案[14]。
在大多數(shù)屬性加密方案中,通常都是將所有的屬性歸在同一個層次,無法根據(jù)屬性之間的層次關(guān)系實現(xiàn)靈活高效的訪問控制。因此在2009年,Jin Li等人提出了將屬性分層處理的加密思想[15],并通過構(gòu)建不同類的屬性樹設(shè)計了一個分層的屬性加密方案(Hierarchy Attribute-Based Encryption,HABE)。2014年Liu等人通過將屬性分布在不同的矩陣行中也實現(xiàn)了屬性分層[16]。2016年王梓瑩等人在其方案中給出了一個新的屬性分層加密的形式化定義[17]。目前分層屬性加密方案的構(gòu)造大多是基于雙線性對映射且不具備其他功能,基于格基來構(gòu)造分層屬性加密方案的例子較少。
為了使方案更加滿足實際需要,本文在Tan[11]等人的CP-ABE方案的基礎(chǔ)上對其進行改進,在研究格上屬性加密方案的同時嘗試將屬性進行分層,并參考王光波等人方案中的撤銷思想[18],設(shè)計了一種基于RLWE的支持撤銷的分層屬性加密方案。方案采用第三方機構(gòu)進行撤銷減少了系統(tǒng)的工作量,采用改進的分層訪問結(jié)構(gòu)可以實現(xiàn)靈活的訪問策略,在兼具抗量子攻擊的同時實現(xiàn)了屬性分層及即時撤銷。
定義 3理想格 如果存在一個環(huán) R=[x]/<f>和一個理想 I?R且格 Λ∈Zn與 I相關(guān),則稱其為理想格。
定義4判定型環(huán)上誤差學習問題 給定安全參數(shù) λ,選 d、q為基于 λ 的整數(shù),定義 R=Z[x]/f(x)是模 f(x)的整數(shù)多項式環(huán),Rq=Z[x]/f(x)表示模 f(x)和q的整數(shù)多項式環(huán),其中,f(x)=xn+1。給定基于 λ的離散分布 χ?Rq,判定性 RLWE問題中有一個指定的挑戰(zhàn)模型 O,對于 s∈Rq,判定該挑戰(zhàn)模型是含有噪聲的偽隨機采樣機Os還是真正的隨機采樣機,其中Os和有以下特征。
Os:輸出偽隨機 樣本,即(ω,v)=(ω,ωs+e)∈Rq×Rq,且樣本中含有噪聲,其中,ω為環(huán)多項式,s∈Rq表示均勻分布的密鑰,e是系數(shù)取自離散分布χ的噪聲。
Tamir在2007年提出了分層門限秘密共享方案[19],其原理與LSSS方案相似,都是通過滿足訪問結(jié)構(gòu)的參與者重構(gòu)多項式進而恢復出秘密,不同的是方案中運用求導的方法來區(qū)分參與者之間的層次,高等級對應(yīng)較低層,子秘密中包含的秘密信息多,低等級則正好相反。在此基礎(chǔ)上,毛穎穎等人提出用一個自定義函數(shù)運算代替求導進而提高了原方案的運算效率[20],本文在構(gòu)造訪問結(jié)構(gòu)時使用的就是毛穎穎改進的分層門限秘密共享方案,下面對此方案進行介紹。
在恢復秘密時,V={v1,v2,…,v|v|}?U 表示授權(quán)屬性的集合,滿足:
…
其中 0≤l0≤l1≤…≤lm=|V|,當且僅當對于所有的 0≤i≤m,li≥ki, 則 V作為一個授權(quán)子集, 列出方 程 Fv·(→)T=σT, 即 :
則通過計算可以恢復出秘密s。
定義了一個選擇明文攻擊下的不可區(qū)分性游戲模型,游戲包括一個模擬器和一個敵手,具體定義如下:
階段 2:重復階段 1。
猜測:敵手提交對 b的猜想 b′。
方案中系統(tǒng)根據(jù)屬性的重要程度將不同的屬性劃分為不同的等級,每個用戶持有一組屬性的私鑰,當數(shù)據(jù)擁有者在設(shè)置訪問策略時,可以依據(jù)屬性的級別不同設(shè)置更為細粒度的控制策略,只有當數(shù)據(jù)訪問者的屬性集中,每層屬性的個數(shù)超過訪問策略中設(shè)定的每層屬性的個數(shù)的門限值時,才能成功通過密鑰解密密文,且一般高等級屬性的門限值要小于低等級屬性的門限值,在解密過程中,高等級屬性的解密能力要大于低等級屬性的解密能力,且可以避免高等級的屬性被多個低等級屬性合作取代的情況出現(xiàn)。
方案構(gòu)架如圖1所示,本文方案主要包括5個主體部分:
圖1 方案架構(gòu)
可信權(quán)威機構(gòu):生成系統(tǒng)的公共參數(shù)和主私鑰,為每個合法的用戶構(gòu)造私鑰并負責屬性的更新與撤銷。
數(shù)據(jù)管理服務(wù)器:管理上傳到服務(wù)器中的數(shù)據(jù),實現(xiàn)外部用戶的訪問控制。
數(shù)據(jù)服務(wù)器:存儲上傳到服務(wù)器中的數(shù)據(jù)。
數(shù)據(jù)擁有者:設(shè)置此密文的訪問策略對數(shù)據(jù)進行加密,并將其上傳到數(shù)據(jù)服務(wù)器。
數(shù)據(jù)訪問者:對數(shù)據(jù)服務(wù)器上的數(shù)據(jù)進行訪問。
本文方案共分為6個部分:(1)可信權(quán)威機構(gòu)生成公共參數(shù)和主密鑰;(2)為注冊的用戶生成私鑰;(3)已經(jīng)注冊的用戶根據(jù)自己設(shè)置的訪問策略加密需要共享的數(shù)據(jù)并將其上傳至服務(wù)器中;(4)當服務(wù)器中的數(shù)據(jù)中涉及到屬性撤銷時,生成數(shù)據(jù)加密密鑰;(5)是對數(shù)據(jù)重加密;(6)數(shù)據(jù)訪問者利用自己的私鑰對數(shù)據(jù)進行解密,具體流程如圖2所示。
圖2 方案流程圖
Encrypt(PP,M,A)→CT:該算法由加密者執(zhí)行,輸入公共參數(shù)PP,明文消息M和一個屬性集U上的訪問結(jié)構(gòu) A,輸出密文 CT。
KeyGen(MSK,D)→K:該算法由授權(quán)機構(gòu)執(zhí)行,輸入主密鑰MSK和一個用戶屬性集合D,為用戶輸出一個私鑰K。
KEKGen(Uz)→KEK(Uz):該算法由數(shù)據(jù)管理服務(wù)器執(zhí)行,若屬性Z中用戶信息更新,輸入屬性Z更新后的屬性用戶群Uz,為更新后的用戶群中的每個合法用戶輸出密鑰加密密鑰KEK(Uz)。
reEncrypt(CT,KEK(Uz))→CT*:該算法由數(shù)據(jù)管理服務(wù)器執(zhí)行,輸入密文CT和密鑰加密密鑰KEK(Uz),對密文進行重加密,輸出CT*。
Decrypt(PP,CT*,A,K)→M:該算法由用戶執(zhí)行,輸入公共參數(shù) PP,用戶的密鑰 K,重加密密文CT*,根據(jù)屬性更新后該用戶是否仍然滿足訪問結(jié)構(gòu)A對密文進行解密,解密成功輸出M,否則輸出⊥。
(1)色譜條件:XBridgeTM-C18色譜柱(250 mm×4.6 mm,5 μm);填充劑為十八烷基硅烷鍵合硅膠;流動相為乙腈-0.5%氨水,梯度洗脫:0~45 min,30%~60%乙腈;45~80 min,60%~80%乙腈;體積流量0.5 mL/min;檢測波長235 nm;柱溫30 ℃;進樣量20 μL。理論板數(shù)按烏頭堿計算不低于6 500。
密鑰加密密鑰生成 KEKGen(Uz):數(shù)據(jù)管理服務(wù)器收到關(guān)于屬性z的更新屬性群Uz后,輸出KEK(Uz),建立過程為:
將屬性群中的每個成員都分布到一棵完全二叉樹的葉子節(jié)點上,令每個節(jié)點vz對應(yīng)一個隨機密鑰KEKz,如圖3所示。若 ut∈U為樹中的某葉子節(jié)點,令KLt為ut到根節(jié)點所對應(yīng)的所有隨機密鑰的集合。例如,圖3中u3的隨機密鑰鏈集合KL3={KEK10,KEK5,KEK2,KEK1}, 對 于 屬 性 用 戶 群 Uz,KEK(Uz)表示二叉樹與Uz中用戶對應(yīng)隨機密鑰的最小覆蓋集。 例如,假設(shè) Uz={u1,u2,u5,u6,u7,u8},則在圖 3 中KEK(Uz)={KEK3,KEK4}。
圖3 屬性用戶群構(gòu)造的二叉樹
數(shù)據(jù)重 加 密 reEncrypt(CT,KEK(Uz)):數(shù)據(jù) 管 理服務(wù)器收到加密密文后,根據(jù)屬性更新情況,對密文進行再次加密。
(2)生成頭文件信息 Hdr={Ek(f-1)}k∈KEK(Uz),其中Ek(f-1)表示以k為密鑰的快速對稱加密。
當用戶申請訪問數(shù)據(jù)時,將重加密密文CT*=(Hdr,CT′)發(fā)送給用戶。
數(shù)據(jù)解密 Decrypt(PP,CT*,A,K):輸 入公共參數(shù) PP,用戶的密鑰 K,重加密密文(Hdr,CT′)。
若通過方案的解密部分正確解密密文,則驗證方案算法正確,下面對解密部分進行計算:
進一步計算得出 M=M′mod p。
合謀攻擊是屬性加密中常見的攻擊手段,系統(tǒng)中的惡意用戶會將他們的屬性集聯(lián)合起來,對一些他們各自權(quán)限之外的密文進行非法解密。為了抵抗這種合謀攻擊,本文方案在用戶密鑰生成過程中采用隨機化處理的方法,在每個密鑰中都嵌入一個隨機元素t∈Rq,這是每個用戶獨有的進而使用戶之間無法聯(lián)合,增加了惡意用戶合謀攻擊的難度,下面重點證明方案的選擇明文攻擊下的不可區(qū)分性安全。
證明 判定型RLWE問題是針對挑戰(zhàn)預(yù)言機O,對于 SK0∈Rq,判定該挑戰(zhàn)模型是含有噪聲的偽隨機采樣機Os還是真正的隨機采樣機。詢問挑戰(zhàn) 預(yù) 言 機 O(t+1)次 , 并 返 回 (ωk,υk)∈Rq×Rq, 其 中k∈{0,1,2,…,t},游戲按照以下步驟運行。
階段1:查詢密鑰及密鑰加密密鑰。
階段 2:重復階段 1。
則B的優(yōu)勢為:
本文方案基于格上RLWE問題構(gòu)造了一個CP-ABE方案,選取一些其他的格上密文策略方案從訪問結(jié)構(gòu)、困難問題、私鑰長度、密文長度以及是否支持屬性撤銷和分層等方面進行對比,具體結(jié)果如表1所示,其中Ac表示加密屬性個數(shù),Au表示用戶屬性規(guī)模,n、m為格上的相關(guān)參數(shù)。
表1 相關(guān)方案對比
從表1中可以看出,文獻[10]僅僅支持門限訪問結(jié)構(gòu),訪問結(jié)構(gòu)不夠靈活,文獻[13]和[14]采取訪問樹的訪問結(jié)構(gòu),文獻[11]采取LSSS訪問結(jié)構(gòu),本文采取的是分層秘密共享訪問結(jié)構(gòu),都可以實現(xiàn)與、或和門限操作。文獻[10]和文獻[14]基于LWE構(gòu)造,私鑰長度分別為 2mAulogq和 mAulogq,文獻[11]和文獻[13]及本文方案基于RLWE構(gòu)造,文獻[14]的私鑰長度為 mAulog q,文獻[11]、[13]和本文方案的私鑰長度為(nAu+n)logq,因為參數(shù)之間存在m≥5nlogq的關(guān)系,所以本文方案的私鑰長度小于文獻[10]和文獻[14],同樣在密文尺寸上,本文方案的密文長度小于文獻[10]和文獻[14]。文獻[11]和文獻[13]不支持屬性撤銷和屬性分層,文獻[10]和文獻[14]雖然支持屬性撤銷,但不支持屬性分層,本文方案在支持屬性分層的同時也能實現(xiàn)屬性撤銷。
本文利用格上的RLWE問題構(gòu)造了支持屬性分層的可撤銷CP-ABE方案,并證明了滿足抗合謀攻擊和選擇明文攻擊下的安全性,方案采用多等級門限秘密共享訪問控制矩陣實現(xiàn)了屬性的分層,在云環(huán)境的基礎(chǔ)上通過第三方機構(gòu)控制用戶對屬性陷門的獲取實現(xiàn)了高效的屬性撤銷,在功能和性能上更適用于實際應(yīng)用環(huán)境。但是方案僅僅依靠第三方實現(xiàn)了屬性的間接撤銷,且并未考慮對隱私信息的保護和泄露密鑰的追蹤問題,如何實現(xiàn)用戶或者屬性的直接撤銷,以及屬性加密機制的隱私保護和叛逆者追蹤問題將是之后研究的重點。