閆璽璽, 何廣輝, 于金霞
河南理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 焦作454000
隨著云計(jì)算技術(shù)的出現(xiàn)與快速發(fā)展, 其強(qiáng)大的計(jì)算資源與存儲(chǔ)性能越來越受到互聯(lián)網(wǎng)各界領(lǐng)域的青睞, 也因此產(chǎn)生一種新的計(jì)算模式: 外包計(jì)算[1]. 它允許計(jì)算與存儲(chǔ)資源匱乏的終端用戶將一些耗時(shí)的計(jì)算外包給云服務(wù)器進(jìn)行處理, 通過云計(jì)算按需付費(fèi)這一特點(diǎn), 用戶便可享受到云端提供的各類信息服務(wù).但由于云服務(wù)器并非是完全可信的, 數(shù)據(jù)持有者將要計(jì)算的任務(wù)上傳給云端時(shí), 同時(shí)也失去了對(duì)數(shù)據(jù)的實(shí)際控制, 如何保護(hù)數(shù)據(jù)中包含的私密信息, 是當(dāng)前研究的安全問題之一. Sahai 與Waters 提出了一種新的公鑰密碼系統(tǒng), 屬性基加密(attribute-based encryption, ABE)[2], 數(shù)據(jù)擁有者通過訪問策略可以有效地實(shí)現(xiàn)在云計(jì)算系統(tǒng)中數(shù)據(jù)的細(xì)粒度訪問控制. 依照訪問策略位置不同可以分為兩類: 密文策略屬性基加密(ciphertext-policy ABE, CP-ABE)[3]與密鑰策略屬性基加密(key-policy ABE, KP-ABE)[4]. 傳統(tǒng)的屬性基加密, 其計(jì)算代價(jià)會(huì)隨著屬性數(shù)量的增加和訪問策略的復(fù)雜度呈線性遞增的關(guān)系, 無疑給設(shè)備終端帶來龐大的計(jì)算負(fù)擔(dān), 學(xué)者們也提出了各種屬性基外包方案, 既能通過外包給云服務(wù)器來減少開銷, 也能保護(hù)數(shù)據(jù)的隱私性. 例如在電子醫(yī)療系統(tǒng)中, 病人的健康紀(jì)錄通常被外包在第三方機(jī)構(gòu), 病人的敏感信息得不到保障, 為了解決這種情況, Liu 等人設(shè)計(jì)了一種離線/在線的屬性基簽名方案[5], 通過引入離散對(duì)數(shù)的陷門哈希函數(shù), 有效地實(shí)現(xiàn)了醫(yī)療文件的私密性, 簽名者的匿名性與不可偽造性; 另外, 提出一種密文策略屬性基簽密方案[6], 簽名的同時(shí)又滿足加密, 可以有效地保障數(shù)據(jù)隱私的機(jī)密性與不可偽造性; 隨后通過使用門限秘密共享與訪問樹結(jié)構(gòu), 提出了兩種不同的RSS (redactable signature scheme)[7]方案來實(shí)現(xiàn)對(duì)醫(yī)療文件的完整性與對(duì)數(shù)據(jù)靈活的訪問控制. 但因?yàn)橛脩羲借€與屬性相關(guān), 存在多個(gè)用戶的屬性私鑰相同的情況, Jiang 等人[8]提出了一種在霧計(jì)算中防止密鑰委托濫用的密文策略屬性基加密方案, 方案基于“與” 門訪問結(jié)構(gòu)與雙線性群的性質(zhì)進(jìn)行構(gòu)造, 同時(shí)對(duì)泄露的密鑰具備可追蹤功能; 針對(duì)屬性撤銷問題, Liu等人[9]提出了一種基于時(shí)間的直接撤銷的CP-ABE 方案, 該方案通過將撤銷列表嵌入到密文中, 撤銷列表中的密鑰都存在一個(gè)有效期, 同時(shí)對(duì)非撤銷用戶給出了一種密鑰更新算法, 以此來實(shí)現(xiàn)更加靈活的訪問控制功能.
由于在外包計(jì)算過程中, 云服務(wù)器可能因?yàn)椤巴祽小?行為, 或受到敵手惡意攻擊, 極大地影響計(jì)算結(jié)果的準(zhǔn)確性, 因此如何設(shè)計(jì)一種有效的驗(yàn)證算法是數(shù)據(jù)外包過程中另一個(gè)安全挑戰(zhàn). 相關(guān)學(xué)者也將熱點(diǎn)放在外包計(jì)算過程中如何由云服務(wù)器執(zhí)行復(fù)雜的計(jì)算操作以及如何對(duì)返回計(jì)算的結(jié)果進(jìn)行驗(yàn)證. Green 等人[10]首次在隨機(jī)預(yù)言機(jī)模型下所提出的屬性基加密外包方案, 該方案將解密操作交由解密服務(wù)器執(zhí)行,通過將密文部分解密成ElGamal 類型的轉(zhuǎn)換密文, 再交付給用戶來降低用戶計(jì)算代價(jià). 王皓等人[11]給出屬性基加密外包的形式化定義, 并給出了一個(gè)詳細(xì)的CP-ABE 方案, 并在標(biāo)準(zhǔn)模型下證明方案是自適應(yīng)安全的, 但方案效率較低. Li 等人[12]給出一種離線/在線屬性基加密方案, 該方案在加密期間將龐大的計(jì)算開銷使用離線/在線技術(shù)實(shí)現(xiàn), 同時(shí)引入“變色龍” 哈希函數(shù)來實(shí)現(xiàn)解密前的驗(yàn)證功能, 并證明方案是適應(yīng)性選擇密文攻擊安全, 但解密涉及的雙線性對(duì)運(yùn)算對(duì)用戶依然是較大的開銷. Fan 等人[13]提出一種云-霧計(jì)算中可驗(yàn)證多授權(quán)機(jī)構(gòu)的外包方案, 該方案將加密與解密外包給離終端用戶較近的霧節(jié)點(diǎn), 相對(duì)于遠(yuǎn)端的云數(shù)據(jù)中心, 霧節(jié)點(diǎn)可以以較低的時(shí)延來進(jìn)行計(jì)算, 很適合對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)計(jì)算處理. Zhang 等人[14]首次提出了一種完全外包方案, 即將密鑰生成、加密與解密操作全部由云端來進(jìn)行處理, 但缺乏驗(yàn)證機(jī)制. 該方案在加密階段通過租用多個(gè)加密服務(wù)器來完成計(jì)算, 最后將多個(gè)加密服務(wù)器計(jì)算的結(jié)果交付給用戶從而生成完整密文, 即使惡意用戶與加密服務(wù)器勾結(jié), 也不能截取有效的密文, 解密操作也是類似,但前提條件是假設(shè)服務(wù)器之間不會(huì)互相勾結(jié). Zhao 等人[15]在原來Zhang 等人[14]方案的基礎(chǔ)上提出了可驗(yàn)證的完全外包方案, 除了支持可驗(yàn)證功能, 其計(jì)算代價(jià)不會(huì)隨著屬性數(shù)量增加或訪問策略復(fù)雜度而顯著提升.
在上述方案的外包計(jì)算過程中, 數(shù)據(jù)擁有者只需計(jì)算常數(shù)個(gè)指數(shù)運(yùn)算, 而與屬性數(shù)量呈線性相關(guān)的部分指數(shù)運(yùn)算外包給加密服務(wù)商執(zhí)行, 但其底數(shù)與指數(shù)包含的信息對(duì)加密服務(wù)商而言是透明的, 尤其指數(shù)部分中包含有訪問結(jié)構(gòu)的部分信息, 如在外包解密運(yùn)算中為重構(gòu)共享秘密s 的有效秘密份額λi等信息會(huì)泄露, 因此對(duì)訪問結(jié)構(gòu)中部分信息進(jìn)行隱藏格外重要. 針對(duì)外包加密過程中涉及到的指數(shù)運(yùn)算, Fu 等人[16]提出了針對(duì)冪指數(shù)安全外包計(jì)算, 通過邏輯分割的方式, 將數(shù)據(jù)分割成隨機(jī)片的形式來達(dá)到隱私保護(hù)的目的. Li 等人[17]將冪指數(shù)安全外包算法應(yīng)用到屬性基加密的方案中, 在外包加密過程中的指數(shù)運(yùn)算, 通過冪指數(shù)安全外包算法, 可以有效的對(duì)密文中提到的底數(shù)與對(duì)數(shù)實(shí)現(xiàn)信息隱藏, 從而避免加密服務(wù)商獲取密文中的私密信息, 同時(shí)支持對(duì)計(jì)算結(jié)果的可驗(yàn)證性, 但是因?yàn)橛煞?wù)器對(duì)多個(gè)隨機(jī)片計(jì)算的結(jié)果不能進(jìn)行有效的區(qū)分, 因此在驗(yàn)證時(shí)正確驗(yàn)證的概率只有1/2.
針對(duì)上述問題, 本文提出了一種支持可驗(yàn)證的冪指數(shù)運(yùn)算安全外包算法的屬性基加密, 該算法是在Li等人[17]提出的算法基礎(chǔ)上, 借鑒Fu 等人[16]的算法思想, 對(duì)驗(yàn)證操作進(jìn)行完善, 使正確驗(yàn)證概率提升為“1”. 通過在屬性基外包方案中引入該算法, 可以有效地實(shí)現(xiàn)在外包加密操作中, 對(duì)部分密文組件(如Ci,Di的計(jì)算) 執(zhí)行一種新的數(shù)學(xué)分割方式, 并用產(chǎn)生的隨機(jī)盲化對(duì)進(jìn)行處理, 生成隨機(jī)片的形式, 之后交由云服務(wù)器計(jì)算, 即將數(shù)據(jù)分割成由加密服務(wù)商計(jì)算的隨機(jī)片的形式, 以此來達(dá)到數(shù)據(jù)的隱私保護(hù)這一目的, 方案中同時(shí)也支持可驗(yàn)證的外包解密這一操作. 最后在隨機(jī)預(yù)言機(jī)模型下, 證明本文方案是選擇性抗重放選擇密文攻擊(replay chosen-ciphertext attacks, RCCA)[18]安全.
定義G,GT是素?cái)?shù)階為p 的兩個(gè)乘法循環(huán)群, g 為群G 的生成元, 雙線性映射e : G×G →GT滿足下列性質(zhì):
(1) 雙線性: e(ga,gb)=e(g,g)ab,?g ∈G,?a,b ∈.
(2) 非退化性: e(g,g)/=1.
判定性q-BDHE 問題定義如下:
在安全參數(shù)下選擇一個(gè)素?cái)?shù)階p 的群G, 隨機(jī)選取a,s,b1,··· ,bq∈Zp, 公開
算法通過輸出z ∈{0,1} 進(jìn)行猜測(cè), 如果
定義擁有ε 優(yōu)勢(shì)來解決判定性q-BDHE 問題, 若無多項(xiàng)式時(shí)間以不可忽略的優(yōu)勢(shì)解決q-BDHE 問題, 就稱判定性q-BDHE 假設(shè)是成立的.
在多數(shù)方案中, 用戶借助子程序Rand[19]來生成隨機(jī)盲化對(duì), Rand 的輸入是一個(gè)素?cái)?shù)p 和一個(gè)底數(shù)g ∈RZ*p, 調(diào)用后輸出一個(gè)具有(a,ga)mod p 形式的盲化對(duì), 其中a ∈RZ*p, 實(shí)現(xiàn)這個(gè)子程序的方法常用的有兩種: (1) 檢查表方法; (2) 預(yù)處理[20]技術(shù). 用戶通過Rand 程序返回的隨機(jī)數(shù)對(duì)對(duì)數(shù)據(jù)進(jìn)行盲化處理, 進(jìn)而發(fā)送給云服務(wù)器.
本文所提的方案系統(tǒng)模型包括數(shù)據(jù)擁有者(data owner, DO), 加密服務(wù)商(encryption service provider, ESP), 存儲(chǔ)服務(wù)商(storage service provider, SSP), 解密服務(wù)商(decryption service provider,DSP), 用戶(data user, DU), 屬性中心(attribute authority, AA)6 個(gè)實(shí)體組成.
圖1 安全外包屬性基加密模型Figure 1 Secure outsourced attribute-based encryption model
數(shù)據(jù)擁有者DO 指定好訪問策略, 先對(duì)數(shù)據(jù)執(zhí)行簡(jiǎn)單指數(shù)運(yùn)算的加密與異或操作, 然后將隨屬性數(shù)量線性增加的復(fù)雜的指數(shù)運(yùn)算與模乘運(yùn)算交由ESP, ESP 根據(jù)訪問結(jié)構(gòu)執(zhí)行外包加密操作, DO 收到ESP返回的部分加密密文后對(duì)計(jì)算結(jié)果進(jìn)行驗(yàn)證, 若驗(yàn)證成功則將DO 與ESP 計(jì)算的結(jié)果構(gòu)成一個(gè)完整密文CT 上傳到SSP.
終端用戶DU 可以訪問云服務(wù)器上密文文件并從SSP 下載密文, 由于終端設(shè)備資源有限, 將解密過程中涉及的指數(shù)與雙線性對(duì)運(yùn)算交由DSP 執(zhí)行, DSP 利用AA 生成的轉(zhuǎn)換密鑰TK 來生成轉(zhuǎn)換密文并發(fā)送給DU, DU 對(duì)DSP 返回的計(jì)算結(jié)果進(jìn)行驗(yàn)證并用自己秘密保存的私鑰SK 進(jìn)行解密, 恢復(fù)出明文.
本文假設(shè)服務(wù)器之間不會(huì)發(fā)生共謀勾結(jié), AA 是密鑰分發(fā)機(jī)構(gòu), 是完全可信的, 方案所包含的算法由以下5 個(gè)算法組成.
Setup(λ,{0,1}*): 該算法輸入安全參數(shù)λ 與系統(tǒng)屬性集合{0,1}*, 輸出系統(tǒng)公鑰PK 與主私鑰MSK.
Encrypt(PK,m ∈{0,1}λ,(M,ρ)): 加密算法由DO 與加密服務(wù)商ESP 合作共同完成, 通過輸入PK, m 與訪問策略, 在兩種模冪安全外包算法Exp_1, Exp_2 下, ESP 執(zhí)行部分加密操作生成中間密文CTout. 最后與DO 執(zhí)行的加密操作生成完整密文CT.
KeyGenout(MSK,S): 密鑰生成算法由AA 執(zhí)行, 輸入主私鑰MSK 與用戶屬性集合S, 輸出轉(zhuǎn)換密鑰TK 與私鑰SK.
Transformout(TK,CT): 該算法由DSP 執(zhí)行, 輸入轉(zhuǎn)換密鑰TK 與完整密文CT, 輸出轉(zhuǎn)換密文CTtransform.
Decrypt(SK,CT′): 該算法由數(shù)據(jù)用戶DU 執(zhí)行, 輸入轉(zhuǎn)換密文CTtransform與用戶私鑰SK, 最后恢復(fù)出明文m.
本文采用的安全游戲是選擇性抗重放選擇密文攻擊(RCCA) 安全, 它允許對(duì)提供的密文進(jìn)行修改卻不會(huì)改變消息內(nèi)容. 如果在Setup 階段前加入Init 階段, 則稱是選擇性安全.
Init. 敵手A 選擇一個(gè)要挑戰(zhàn)的訪問策略(M*,ρ*), 發(fā)送給模擬者(挑戰(zhàn)者)B.
Setup. 模擬者B 運(yùn)行Setup 算法, 將PK 發(fā)送給敵手A.
Phase 1. 模擬者初始化一個(gè)空表T*, 一個(gè)集合D 與一個(gè)整數(shù)j =0, 敵手A 對(duì)屬性集合S 重復(fù)進(jìn)行以下詢問.
· Creat(S): 模擬者設(shè)置j = j +1, 運(yùn)行密鑰生成算法KeyGen 來獲得密鑰對(duì)(SK,TK), 然后將(j,S,SK,TK) 存儲(chǔ)在表T*中. 模擬者發(fā)送轉(zhuǎn)換密鑰TK 給敵手A.
· Corrupt(i): 如果在表T*中存在第i 個(gè)實(shí)體, 挑戰(zhàn)者獲得實(shí)體(i, S, SK, TK) 并設(shè)置D :=D ∪{S}, 將私鑰SK 發(fā)送給敵手A, 如果不存在這個(gè)實(shí)體, 就返回終止符“⊥”.
· Decryt(i, CT): 如果在表T*中存在第i 個(gè)實(shí)體, 挑戰(zhàn)者獲得實(shí)體(i, S, SK, TK), 將解密算法中輸入(SK,CT) 計(jì)算的輸出結(jié)果返回給敵手A, 如果沒有查詢到第i 個(gè)實(shí)體, 就輸出“⊥”.
Challenge. 敵手A 提交兩個(gè)等長(zhǎng)度消息m0,m1, 模擬者隨機(jī)選擇mβ,β ∈{0,1}, 運(yùn)行Encrypt算法獲得mβ的密文CT*, 最后模擬者將CT*發(fā)送給敵手A.
Phase 2. 與Phase 1 類似, 繼續(xù)給出以上詢問.
Guess. 敵手A 輸出β′∈{0,1} 的值作為對(duì)β 的猜測(cè), 如果β′= β, 我們稱敵手A 贏得了該游戲,其敵手優(yōu)勢(shì)定義為:
定義1 若無多項(xiàng)式時(shí)間以不可忽略的優(yōu)勢(shì)來攻破上述安全模型, 那么我們就說本文提出的方案是選擇性RCCA.
一個(gè)安全外包[21]算法(T, U) 通常由兩個(gè)實(shí)體組成, 可信的用戶T 與不可信的云服務(wù)器U. 用戶使用子程序Rand 產(chǎn)生的隨機(jī)盲化對(duì)來實(shí)現(xiàn)對(duì)數(shù)據(jù)的分割隱藏, 將盲化后的隨機(jī)數(shù)對(duì)上傳到云服務(wù)器進(jìn)行計(jì)算, 并將計(jì)算結(jié)果返回給用戶, 最后用戶進(jìn)行驗(yàn)證. 針對(duì)冪指數(shù)運(yùn)算外包算法, Li 等人[17]提出了多個(gè)底數(shù)模冪運(yùn)算與單個(gè)底數(shù)模冪運(yùn)算, 可有效的解決指數(shù)計(jì)算開銷大的問題, 但是正確驗(yàn)證概率分別只有2/5與1/2. 為實(shí)現(xiàn)驗(yàn)證概率為“1”, 本文通過對(duì)Li 等人[17]算法進(jìn)行完善, 提出了驗(yàn)證概率為“1” 的模冪安全外包算法.
應(yīng)注意的是為提高邏輯分割過程中的安全性, x1,x2通常至少選取64 bit 長(zhǎng)度.
(2) 用戶T 向服務(wù)器U 詢問計(jì)算的結(jié)果:
(3) 用戶T 對(duì)服務(wù)器U 返回的結(jié)果用下面等式進(jìn)行驗(yàn)證:
如果等式成立, 用戶便可以計(jì)算出:
否則, 輸出錯(cuò)誤符號(hào)“⊥”.
算法描述: Exp2(a,u)→ua
給定一個(gè)素?cái)?shù)階p 的循環(huán)群G,群G 的生成元為g,任意選取一個(gè)底數(shù)u ∈RG 與一個(gè)指數(shù)a ∈R,輸出結(jié)果uamod p.
(1) T 運(yùn)行Rand 程序得到四組盲化隨機(jī)數(shù)對(duì)(γ,gγ),(β,gβ), (α,gα),(η,gη) 同時(shí)對(duì)數(shù)據(jù)u,a 邏輯分割成由云服務(wù)器U 計(jì)算的隨機(jī)片形式, 分割過程如下:
(3) 用戶T 對(duì)服務(wù)器U 返回的結(jié)果用下面等式進(jìn)行驗(yàn)證:
如果等式成立, 用戶便可以計(jì)算出:
否則, 輸出錯(cuò)誤符號(hào)“⊥”.
在云外包服務(wù)器模型下的安全外包密文策略屬性基加密方案是基于Green 等人[10]的方案上來構(gòu)造我們的方案, 具體由以下5 個(gè)算法組成, 每個(gè)算法的詳細(xì)敘述如下:
Setup(λ,{0,1}*). 該算法輸入一個(gè)安全參數(shù)λ 與系統(tǒng)屬性集合, 然后選擇一個(gè)素?cái)?shù)階p 的雙線性群G, 群G 的生成元g, 一個(gè)將{0,1}*映射到群G 的哈希函數(shù)F. 另外, 隨機(jī)選擇的指數(shù)α,α ∈Zp, 選擇兩個(gè)哈希函數(shù)H1:{0,1}*→Zp與H2:{0,1}*→{0,1}λ最后輸出系統(tǒng)主私鑰MSK=(gα,PK), 系統(tǒng)公鑰PK={g,e(g,g)α,ga,F,H1,H2}.
ESP 將每次的計(jì)算出的結(jié)果CTout發(fā)送給DO, 即
同樣地, 依照Exp2算法來對(duì)Di進(jìn)行計(jì)算, 過程與對(duì)Ci的計(jì)算類似.
(3) DO 對(duì)返回的計(jì)算結(jié)果進(jìn)行驗(yàn)證, 驗(yàn)證公式如下:
若上述等式成立, 則說明ESP 準(zhǔn)確地執(zhí)行了計(jì)算結(jié)果, DO 根據(jù)返回的結(jié)果就可以輸出完整密文CT=(C,C′,C′′,Ci,Di). 其中C,C′,C′′由DO 計(jì)算得出; Ci,Di由ESP 執(zhí)行計(jì)算操作, 同時(shí)DO 還需對(duì)云服務(wù)器返回的計(jì)算結(jié)果進(jìn)行驗(yàn)證.
最終輸出部分解密密文CT′={C,C′′,CTtransform}.
Decrypt(SK,CT′). 該算法由用戶執(zhí)行, 通過輸入CT′= {C,C′′,CTtransform} 與SK, 則計(jì)算r = C/(CTtransform)z,m=C ⊕H2(r), 并且計(jì)算s = H1(r,m). 如果C = r ·e(g,g)αs,CTtransform=e(g,g)sα/z, 則說明云服務(wù)器返回的計(jì)算結(jié)果正確, 便輸出明文m.
本文所提出的兩種冪指數(shù)安全外包算法以及所構(gòu)造的方案, 我們分別從該算法可驗(yàn)證性與方案的安全性進(jìn)行證明.
定理1 在單個(gè)不可信服務(wù)器模型下, 算法Exp1和Exp2是本文方案的一個(gè)正確性的實(shí)現(xiàn), 那么正確驗(yàn)證概率為“1”.
證明: 對(duì)于Exp1, 數(shù)據(jù)擁有者對(duì)于輸入的數(shù)據(jù)u1au2b, 那么可以準(zhǔn)確地執(zhí)行下列計(jì)算:
由式(7)與式(8)可知, 只要云服務(wù)器因懶惰或者遭受惡意攻擊可返回錯(cuò)誤結(jié)果, 那么當(dāng)數(shù)據(jù)擁有者收到云服務(wù)器返回來的計(jì)算結(jié)果后, 通過驗(yàn)證公式(3)便可判斷云服務(wù)器計(jì)算的結(jié)果是否正確, 若不符合等式, 說明云服務(wù)器計(jì)算產(chǎn)生錯(cuò)誤, 因此數(shù)據(jù)擁有者便可以“1” 的概率檢測(cè)出錯(cuò)誤.
同理, Exp2證明過程與上述類似, 其正確驗(yàn)證概率為“1”.
定理2 假設(shè)判定性q-BDHE 假設(shè)在群G 與GT成立, 那么本文所提的方案在隨機(jī)預(yù)言機(jī)模型下是選擇性RCCA 安全.如果S 滿足訪問策略, 那么選一個(gè)“假” 轉(zhuǎn)換密鑰, 過程與上面類似, 選取一個(gè)隨機(jī)值d ∈Zp, 運(yùn)行KeyGen 算法來獲得SK′, 設(shè)置TK = SK′, SK = (d,TK), 其中, d 如果被未知的值z(mì) = α/d,重新生成TK. 最后將(j,S,SK,TK) 存放在表T3中, 返回TK 給A.
· Corrupt(i): A 不能詢問與訪問策略(M*,ρ*) 相關(guān)聯(lián)的密鑰key. 如果在表T3中存在一個(gè)實(shí)體,那么B 就可以獲得這個(gè)實(shí)體(i,S,SK,TK) 與D :=D ∪{S}, B 將SK 返回給A, 如果在表中不存在, 則輸出“⊥”.
· Decrypt(i,CT): 我們假設(shè)所輸入的密文已被部分解密, 由于B 和A 都可以訪問TK 的值, 因此只有其中一個(gè)可以執(zhí)行轉(zhuǎn)換密文的操作. 與訪問策略相關(guān)的密文CT=(C,C′′,CTtransform), 在表T3中可以查詢到(i,S,SK,TK), 若查詢不到或者S /∈(M,ρ), 輸出“⊥” 給A. 如果第i 個(gè)實(shí)體中的密鑰不滿足挑戰(zhàn)的訪問策略(M*,ρ*), 執(zhí)行以下過程:
所以, B 能以不可忽略的優(yōu)勢(shì)ε 攻破該判定性q-BDHE 困難問題假設(shè).
將本文的方案與文獻(xiàn)[10], 文獻(xiàn)[17] 方案從功能方面與計(jì)算開銷方面兩個(gè)角度來進(jìn)行分析比較, 在方案對(duì)比中, |?| 代表策略屬性集合數(shù)量大小, E 表示模指數(shù)運(yùn)算, P 表示雙線性對(duì)計(jì)算, M 表示群中模乘運(yùn)算, 由于在方案里面開銷較大的指數(shù)運(yùn)算與雙線性對(duì)運(yùn)算, 以及較復(fù)雜的乘法運(yùn)算, 因此忽略其它次要的運(yùn)算(如哈希運(yùn)算).
表1 主要從功能方面進(jìn)行對(duì)比分析, 從中可以看到文獻(xiàn)[10] 的方案僅僅將解密工作外包給云服務(wù)器進(jìn)行計(jì)算, 加密工作還是由數(shù)據(jù)擁有者進(jìn)行計(jì)算, 所以數(shù)據(jù)擁有者在加密期間涉及到繁重的指數(shù)運(yùn)算以及較大的乘法運(yùn)算. 文獻(xiàn)[17] 與本文方案都是將加密操作和解密操作都外包給云服務(wù)器進(jìn)行計(jì)算, 大大減少了用戶終端的計(jì)算量. 文獻(xiàn)[17] 不僅支持外包加密解密操作, 而且針對(duì)外包加密中的指數(shù)運(yùn)算提出了兩類冪指數(shù)安全外包算法, 通過數(shù)學(xué)分割以及盲化操作, 對(duì)密文組件中包含的底數(shù)與指數(shù)進(jìn)行隱藏, 以此來實(shí)現(xiàn)數(shù)據(jù)的隱私保護(hù), 然而多個(gè)底數(shù)模冪安全外包算法與單個(gè)底數(shù)模冪安全外包算法的正確性驗(yàn)證概率分別只有2/5、1/2. 本文方案將加密解密操作外包給云服務(wù)器執(zhí)行, 并且通過對(duì)文獻(xiàn)[17] 算法進(jìn)行改進(jìn), 不僅可以實(shí)現(xiàn)隱私保護(hù)這一功能, 還將正確驗(yàn)證概率提升為“1”.
表1 功能分析Table 1 Function comparison
表2 主要從數(shù)據(jù)擁有者加密操作、驗(yàn)證以及數(shù)據(jù)使用者解密操作、驗(yàn)證等方面進(jìn)行計(jì)算代價(jià)分析, 文獻(xiàn)[17] 方案數(shù)據(jù)擁有者在加密階段只涉及到2 次指數(shù)運(yùn)算, 在對(duì)計(jì)算結(jié)果驗(yàn)證上需要2 次指數(shù)與1 次乘法, 數(shù)據(jù)用戶在解密過程中進(jìn)行1 次模乘操作, 但驗(yàn)證過程中涉及到5 次指數(shù)操作和1 次雙線性對(duì)以及4 次模乘操作, 而雙線性對(duì)計(jì)算代價(jià)遠(yuǎn)遠(yuǎn)大于模乘計(jì)算的代價(jià). 文獻(xiàn)[10] 中由于加密計(jì)算全部由數(shù)據(jù)擁有者操作, 所以加密階段需要進(jìn)行3|?|+2 次指數(shù)運(yùn)算和1|?|+1 次模乘運(yùn)算, 指數(shù)運(yùn)算的工作量遠(yuǎn)遠(yuǎn)加重了數(shù)據(jù)擁有者的計(jì)算量. 本文方案在加密階段進(jìn)行2E 次操作, 與文獻(xiàn)[10] 相同, 加密驗(yàn)證階段我們比文獻(xiàn)[17] 多進(jìn)行了2 次指數(shù)運(yùn)算和13 次乘法運(yùn)算, 但是我們將驗(yàn)證的概率從2/5 提升到了“1”, 犧牲計(jì)算代價(jià)獲得100% 的驗(yàn)證正確性是值得的. 解密階段我們比文獻(xiàn)[17] 多了1 次指數(shù)計(jì)算, 但我們的解密驗(yàn)證階段僅需要1 次乘法與2 次指數(shù)運(yùn)算, 比文獻(xiàn)[17] 的1 次雙線性運(yùn)算, 5 次指數(shù)運(yùn)算以及4 次乘法運(yùn)算, 其計(jì)算代價(jià)要小很多.
整體來看, 我們的方案將數(shù)據(jù)加密和數(shù)據(jù)解密中的指數(shù)運(yùn)算都進(jìn)行了外包操作, 大大減少了用戶終端的計(jì)算量, 而且本文方案中用戶的加密驗(yàn)證和解密驗(yàn)證正確率達(dá)到了100%, 完全實(shí)現(xiàn)了外包計(jì)算的可靠性和安全性.
表2 計(jì)算代價(jià)分析Table 2 Comparison of computing overhead
通過上述理論分析, 本文方案在功能與效率上更有優(yōu)勢(shì), 為了更準(zhǔn)確評(píng)估方案的實(shí)際性能, 通過實(shí)驗(yàn)進(jìn)一步分析與文獻(xiàn)[10]、文獻(xiàn)[17] 在終端設(shè)備的計(jì)算量上的時(shí)間開銷, 包括加解密時(shí)間與驗(yàn)證所需的時(shí)間.
實(shí)驗(yàn)環(huán)境: Windows 10 操作系統(tǒng), Inter? Core(TM) i3-3217U(1.80 GHz)、內(nèi)存2 GB, 實(shí)驗(yàn)代碼基于JPBC-2.0.0 (java pairing-based cryptography library) 函數(shù)庫(kù)與MyEclipse 開發(fā)環(huán)境進(jìn)行編寫, 其中模冪與模乘運(yùn)算是分別調(diào)用庫(kù)中G_1.powZn() 與G_1.mul() 兩個(gè)函數(shù)進(jìn)行測(cè)試.
實(shí)驗(yàn)設(shè)置: 在密文策略屬性基加密方案中, 訪問策略中屬性個(gè)數(shù)影響加密與解密時(shí)間, 在實(shí)驗(yàn)過程中,由于龐大的計(jì)算開銷外包給云服務(wù)器進(jìn)行計(jì)算, 因此我們只測(cè)試用戶端的計(jì)算時(shí)間. 我們?cè)趯?shí)驗(yàn)中設(shè)置屬性個(gè)數(shù)為100, 每次遞增10 個(gè)屬性個(gè)數(shù), 從而產(chǎn)生10 種不同的訪問策略, 通過比較用戶端在不同訪問策略下的計(jì)算時(shí)間, 每個(gè)訪問策略我們測(cè)試10 次, 取一個(gè)平均值作為實(shí)驗(yàn)結(jié)果.
圖2 有兩個(gè)子圖, 圖2(a) 與圖2(b), 分別代表了數(shù)據(jù)擁有者的計(jì)算時(shí)間與數(shù)據(jù)用戶的計(jì)算時(shí)間. 在圖2(a) 中, 我們可以看到文獻(xiàn)[10] 由于所有加密操作都由數(shù)據(jù)擁有者獨(dú)立完成, 可以看到計(jì)算時(shí)間隨著屬性數(shù)量的增加線性遞增, 文獻(xiàn)[17] 與本文方案由于數(shù)據(jù)擁有者只承擔(dān)部分加密操作, 可以看到時(shí)間不會(huì)隨屬性數(shù)量的增加而逐漸遞增, 同時(shí)本文方案所需的計(jì)算時(shí)間要高于文獻(xiàn)[17], 但我們將正確驗(yàn)證概率提升到“1”, 文獻(xiàn)[17] 并不具備這項(xiàng)優(yōu)勢(shì). 在圖2(b) 中文獻(xiàn)[17] 的用戶解密與驗(yàn)證時(shí)間要高于本文方案與文獻(xiàn)[10], 而本文方案與文獻(xiàn)[10] 用戶所花的計(jì)算時(shí)間幾乎相同, 但因?yàn)槲墨I(xiàn)[10] 中的加密運(yùn)算時(shí)間隨著屬性數(shù)目增加而逐漸遞增, 因此本文方案是更有效的.
綜合分析, 本文方案中的數(shù)據(jù)擁有者與數(shù)據(jù)用戶的計(jì)算時(shí)間不會(huì)隨著訪問策略中屬性個(gè)數(shù)增加而遞增, 雖然在加密過程中數(shù)據(jù)擁有者的計(jì)算時(shí)間成本略高, 但可以準(zhǔn)確地驗(yàn)證云服務(wù)器返回的計(jì)算結(jié)果, 并且用戶解密時(shí)間成本較低, 因此本文方案是可行的.
圖2 仿真時(shí)間對(duì)比Figure 2 Comparison of simulation time
為解決基于屬性加密外包方案中的冪指數(shù)運(yùn)算, 本文提出了一種針對(duì)冪指數(shù)運(yùn)算的模冪安全外包算法, 通過對(duì)數(shù)據(jù)分割、盲化等操作, 在屬性基加密方案中由ESP 執(zhí)行的外包加密過程期間, 可以有效地對(duì)數(shù)據(jù)私密信息實(shí)現(xiàn)隱藏這一功能, 以及概率為“1” 的可驗(yàn)證性; 同時(shí)支持DSP 執(zhí)行部分解密計(jì)算, 以此降低本地解密計(jì)算量, 用戶通過哈希算法與異或操作進(jìn)行外包解密結(jié)果的驗(yàn)證并恢復(fù)出明文. 最后在隨機(jī)預(yù)言機(jī)模型下證明了方案的安全性, 并從功能與效率兩方面進(jìn)行比較, 表明我們的方案更具優(yōu)勢(shì).