郭凱陽 ,韓 益 亮 ,吳日銘
(1.武警工程大學 密碼工程學院,陜西 西安 710086;2.武警部隊密碼與信息安全保密重點實驗室,陜西 西安710086)
在信息時代與大數據時代的背景下,當今網絡中的信息量呈現爆炸式的增長,網絡信息安全問題引起了人們的廣泛關注,密碼技術作為保障信息安全的關鍵技術之一,其研究發展也越來越受到重視。1976年Diffle和Hellman提出了公鑰密碼思想體制[1],解決了對稱密碼體制中密鑰管理代價高、功能單一等問題,但是隨著需求發展,傳統基于公鑰基礎設施的加密機制也遇到了一些瓶頸,為了提高效率,Shamir于1984年提出了基于身份的加密機制(Identity-Based Encryption,IBE)[2],在此基礎上,Sahai和 Waters進一步提出了屬性加密機制[3]。屬性加密機制實現了一對多的加密模式且具有靈活的訪問結構,通常分為密文策略屬性加密(Ciphertext-Policy Attribute Based Encryption,CP-ABE)和密鑰策略屬性加密(Key-Policy Attribute Based Encryption,KP-ABE)[4]。為了完善屬性加密機制的功能,發掘其潛在的應用前景,田有亮等人提出了基于屬性加密的區塊鏈數據溯源算法[5];劉建華等人在屬性加密的基礎上提出了支持密文檢索的云存儲方案[6];王崢等人提出了霧計算中用戶和屬性可撤銷的訪問控制方案[7];汪金苗等人基于多授權的屬性加密設計了面向區塊鏈的隱私保護和訪問控制方案[8]。
構造簡單、抗量子攻擊是格密碼體制的兩大優點,Regev在2005年提出了格上的誤差學習問題(Learning With Error,LWE)[9],并指出可以用來設計身份加密和屬性加密方案,之后構造格上的屬性加密方案成為了學者研究的熱點之一,張欣等人利用二叉樹設計了可撤銷屬性的格基屬性加密方案[10]。Tan等人利用LSSS技術構造了理想格上的高效CP-ABE方案[11]。吳立強等人提出了一種基于RLWE問題的高效模糊身份的加密方案[12]。于金霞等人提出了一種基于RLWE的支持訪問樹的屬性加密方案[13],之后基于LWE問題設計了一個外包環境下可撤銷的屬性基加密方案[14]。
在大多數屬性加密方案中,通常都是將所有的屬性歸在同一個層次,無法根據屬性之間的層次關系實現靈活高效的訪問控制。因此在2009年,Jin Li等人提出了將屬性分層處理的加密思想[15],并通過構建不同類的屬性樹設計了一個分層的屬性加密方案(Hierarchy Attribute-Based Encryption,HABE)。2014年Liu等人通過將屬性分布在不同的矩陣行中也實現了屬性分層[16]。2016年王梓瑩等人在其方案中給出了一個新的屬性分層加密的形式化定義[17]。目前分層屬性加密方案的構造大多是基于雙線性對映射且不具備其他功能,基于格基來構造分層屬性加密方案的例子較少。
為了使方案更加滿足實際需要,本文在Tan[11]等人的CP-ABE方案的基礎上對其進行改進,在研究格上屬性加密方案的同時嘗試將屬性進行分層,并參考王光波等人方案中的撤銷思想[18],設計了一種基于RLWE的支持撤銷的分層屬性加密方案。方案采用第三方機構進行撤銷減少了系統的工作量,采用改進的分層訪問結構可以實現靈活的訪問策略,在兼具抗量子攻擊的同時實現了屬性分層及即時撤銷。


定義 3理想格 如果存在一個環 R=[x]/<f>和一個理想 I?R且格 Λ∈Zn與 I相關,則稱其為理想格。
定義4判定型環上誤差學習問題 給定安全參數 λ,選 d、q為基于 λ 的整數,定義 R=Z[x]/f(x)是模 f(x)的整數多項式環,Rq=Z[x]/f(x)表示模 f(x)和q的整數多項式環,其中,f(x)=xn+1。給定基于 λ的離散分布 χ?Rq,判定性 RLWE問題中有一個指定的挑戰模型 O,對于 s∈Rq,判定該挑戰模型是含有噪聲的偽隨機采樣機Os還是真正的隨機采樣機,其中Os和有以下特征。
Os:輸出偽隨機 樣本,即(ω,v)=(ω,ωs+e)∈Rq×Rq,且樣本中含有噪聲,其中,ω為環多項式,s∈Rq表示均勻分布的密鑰,e是系數取自離散分布χ的噪聲。

Tamir在2007年提出了分層門限秘密共享方案[19],其原理與LSSS方案相似,都是通過滿足訪問結構的參與者重構多項式進而恢復出秘密,不同的是方案中運用求導的方法來區分參與者之間的層次,高等級對應較低層,子秘密中包含的秘密信息多,低等級則正好相反。在此基礎上,毛穎穎等人提出用一個自定義函數運算代替求導進而提高了原方案的運算效率[20],本文在構造訪問結構時使用的就是毛穎穎改進的分層門限秘密共享方案,下面對此方案進行介紹。


在恢復秘密時,V={v1,v2,…,v|v|}?U 表示授權屬性的集合,滿足:


…

其中 0≤l0≤l1≤…≤lm=|V|,當且僅當對于所有的 0≤i≤m,li≥ki, 則 V作為一個授權子集, 列出方 程 Fv·(→)T=σT, 即 :

則通過計算可以恢復出秘密s。
定義了一個選擇明文攻擊下的不可區分性游戲模型,游戲包括一個模擬器和一個敵手,具體定義如下:
階段 2:重復階段 1。
猜測:敵手提交對 b的猜想 b′。
方案中系統根據屬性的重要程度將不同的屬性劃分為不同的等級,每個用戶持有一組屬性的私鑰,當數據擁有者在設置訪問策略時,可以依據屬性的級別不同設置更為細粒度的控制策略,只有當數據訪問者的屬性集中,每層屬性的個數超過訪問策略中設定的每層屬性的個數的門限值時,才能成功通過密鑰解密密文,且一般高等級屬性的門限值要小于低等級屬性的門限值,在解密過程中,高等級屬性的解密能力要大于低等級屬性的解密能力,且可以避免高等級的屬性被多個低等級屬性合作取代的情況出現。
方案構架如圖1所示,本文方案主要包括5個主體部分:

圖1 方案架構
可信權威機構:生成系統的公共參數和主私鑰,為每個合法的用戶構造私鑰并負責屬性的更新與撤銷。
數據管理服務器:管理上傳到服務器中的數據,實現外部用戶的訪問控制。
數據服務器:存儲上傳到服務器中的數據。
數據擁有者:設置此密文的訪問策略對數據進行加密,并將其上傳到數據服務器。
數據訪問者:對數據服務器上的數據進行訪問。
本文方案共分為6個部分:(1)可信權威機構生成公共參數和主密鑰;(2)為注冊的用戶生成私鑰;(3)已經注冊的用戶根據自己設置的訪問策略加密需要共享的數據并將其上傳至服務器中;(4)當服務器中的數據中涉及到屬性撤銷時,生成數據加密密鑰;(5)是對數據重加密;(6)數據訪問者利用自己的私鑰對數據進行解密,具體流程如圖2所示。

圖2 方案流程圖
Encrypt(PP,M,A)→CT:該算法由加密者執行,輸入公共參數PP,明文消息M和一個屬性集U上的訪問結構 A,輸出密文 CT。
KeyGen(MSK,D)→K:該算法由授權機構執行,輸入主密鑰MSK和一個用戶屬性集合D,為用戶輸出一個私鑰K。
KEKGen(Uz)→KEK(Uz):該算法由數據管理服務器執行,若屬性Z中用戶信息更新,輸入屬性Z更新后的屬性用戶群Uz,為更新后的用戶群中的每個合法用戶輸出密鑰加密密鑰KEK(Uz)。
reEncrypt(CT,KEK(Uz))→CT*:該算法由數據管理服務器執行,輸入密文CT和密鑰加密密鑰KEK(Uz),對密文進行重加密,輸出CT*。
Decrypt(PP,CT*,A,K)→M:該算法由用戶執行,輸入公共參數 PP,用戶的密鑰 K,重加密密文CT*,根據屬性更新后該用戶是否仍然滿足訪問結構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。理論板數按烏頭堿計算不低于6 500。
密鑰加密密鑰生成 KEKGen(Uz):數據管理服務器收到關于屬性z的更新屬性群Uz后,輸出KEK(Uz),建立過程為:
將屬性群中的每個成員都分布到一棵完全二叉樹的葉子節點上,令每個節點vz對應一個隨機密鑰KEKz,如圖3所示。若 ut∈U為樹中的某葉子節點,令KLt為ut到根節點所對應的所有隨機密鑰的集合。例如,圖3中u3的隨機密鑰鏈集合KL3={KEK10,KEK5,KEK2,KEK1}, 對 于 屬 性 用 戶 群 Uz,KEK(Uz)表示二叉樹與Uz中用戶對應隨機密鑰的最小覆蓋集。 例如,假設 Uz={u1,u2,u5,u6,u7,u8},則在圖 3 中KEK(Uz)={KEK3,KEK4}。

圖3 屬性用戶群構造的二叉樹
數據重 加 密 reEncrypt(CT,KEK(Uz)):數據 管 理服務器收到加密密文后,根據屬性更新情況,對密文進行再次加密。

(2)生成頭文件信息 Hdr={Ek(f-1)}k∈KEK(Uz),其中Ek(f-1)表示以k為密鑰的快速對稱加密。
當用戶申請訪問數據時,將重加密密文CT*=(Hdr,CT′)發送給用戶。
數據解密 Decrypt(PP,CT*,A,K):輸 入公共參數 PP,用戶的密鑰 K,重加密密文(Hdr,CT′)。

若通過方案的解密部分正確解密密文,則驗證方案算法正確,下面對解密部分進行計算:


進一步計算得出 M=M′mod p。
合謀攻擊是屬性加密中常見的攻擊手段,系統中的惡意用戶會將他們的屬性集聯合起來,對一些他們各自權限之外的密文進行非法解密。為了抵抗這種合謀攻擊,本文方案在用戶密鑰生成過程中采用隨機化處理的方法,在每個密鑰中都嵌入一個隨機元素t∈Rq,這是每個用戶獨有的進而使用戶之間無法聯合,增加了惡意用戶合謀攻擊的難度,下面重點證明方案的選擇明文攻擊下的不可區分性安全。
證明 判定型RLWE問題是針對挑戰預言機O,對于 SK0∈Rq,判定該挑戰模型是含有噪聲的偽隨機采樣機Os還是真正的隨機采樣機。詢問挑戰 預 言 機 O(t+1)次 , 并 返 回 (ωk,υk)∈Rq×Rq, 其 中k∈{0,1,2,…,t},游戲按照以下步驟運行。
階段1:查詢密鑰及密鑰加密密鑰。

階段 2:重復階段 1。
則B的優勢為:

本文方案基于格上RLWE問題構造了一個CP-ABE方案,選取一些其他的格上密文策略方案從訪問結構、困難問題、私鑰長度、密文長度以及是否支持屬性撤銷和分層等方面進行對比,具體結果如表1所示,其中Ac表示加密屬性個數,Au表示用戶屬性規模,n、m為格上的相關參數。

表1 相關方案對比
從表1中可以看出,文獻[10]僅僅支持門限訪問結構,訪問結構不夠靈活,文獻[13]和[14]采取訪問樹的訪問結構,文獻[11]采取LSSS訪問結構,本文采取的是分層秘密共享訪問結構,都可以實現與、或和門限操作。文獻[10]和文獻[14]基于LWE構造,私鑰長度分別為 2mAulogq和 mAulogq,文獻[11]和文獻[13]及本文方案基于RLWE構造,文獻[14]的私鑰長度為 mAulog q,文獻[11]、[13]和本文方案的私鑰長度為(nAu+n)logq,因為參數之間存在m≥5nlogq的關系,所以本文方案的私鑰長度小于文獻[10]和文獻[14],同樣在密文尺寸上,本文方案的密文長度小于文獻[10]和文獻[14]。文獻[11]和文獻[13]不支持屬性撤銷和屬性分層,文獻[10]和文獻[14]雖然支持屬性撤銷,但不支持屬性分層,本文方案在支持屬性分層的同時也能實現屬性撤銷。
本文利用格上的RLWE問題構造了支持屬性分層的可撤銷CP-ABE方案,并證明了滿足抗合謀攻擊和選擇明文攻擊下的安全性,方案采用多等級門限秘密共享訪問控制矩陣實現了屬性的分層,在云環境的基礎上通過第三方機構控制用戶對屬性陷門的獲取實現了高效的屬性撤銷,在功能和性能上更適用于實際應用環境。但是方案僅僅依靠第三方實現了屬性的間接撤銷,且并未考慮對隱私信息的保護和泄露密鑰的追蹤問題,如何實現用戶或者屬性的直接撤銷,以及屬性加密機制的隱私保護和叛逆者追蹤問題將是之后研究的重點。