劉雪艷 蘆婷婷 楊曉濤
(西北師范大學(xué)數(shù)學(xué)與統(tǒng)計(jì)學(xué)院 蘭州 730070)
隨著大數(shù)據(jù)和云計(jì)算時(shí)代的到來,越來越多的個(gè)人和企業(yè)將大量私有數(shù)據(jù)上傳到云中,從而節(jié)省本地存儲(chǔ)和管理成本。為了保證數(shù)據(jù)的機(jī)密性和隱私性,數(shù)據(jù)屬主需要將數(shù)據(jù)加密后再上傳到云中,傳統(tǒng)的明文搜索不適用于當(dāng)前需求。2000年,Song等人[1]提出了可搜索加密(Searchable Encryption, SE)的概念,實(shí)現(xiàn)了不解密密文情況下對(duì)密文的快速檢索。2004 年,Boneh等人[2]首次提出了公鑰可搜索加密的概念,隨后,具有連接關(guān)鍵詞[3,4]、模糊關(guān)鍵詞[5]、動(dòng)態(tài)關(guān)鍵字[6,7]、子集關(guān)鍵字[8]等功能的公鑰可搜索加密方案也相繼被提出。但是在實(shí)際應(yīng)用中,數(shù)據(jù)擁有者往往無法預(yù)先確定所有訪問者的信息,但是又希望能控制共享數(shù)據(jù)的訪問權(quán)限,并且實(shí)現(xiàn)一對(duì)多的通信模式,顯然傳統(tǒng)的公鑰可搜索加密和基于身份的可搜索加密技術(shù)已經(jīng)不能解決這一難題,而基于屬性關(guān)鍵字搜索(Attribute-Based Keyword Search, ABKS)的加密機(jī)制引起眾多學(xué)者的關(guān)注。
基于屬性關(guān)鍵詞搜索加密機(jī)制是一對(duì)多的公鑰加密搜索方式:數(shù)據(jù)屬主可以使用自己定義的訪問結(jié)構(gòu)加密關(guān)鍵字和共享信息,屬性集滿足訪問結(jié)構(gòu)的用戶才能獲得搜索授權(quán)和解密操作。文獻(xiàn)[9]在屬性加密方案[10]的基礎(chǔ)上提出基于屬性的密文檢索方案,該方案實(shí)現(xiàn)了快速關(guān)鍵字搜索,但沒有對(duì)搜索結(jié)果進(jìn)行驗(yàn)證。Ameri等人[11]在密鑰策略屬性加密方案[12]的基礎(chǔ)上提出一個(gè)密鑰策略的可搜索加密方案,該方案在搜索令牌中加入時(shí)間戳,只能提取在指定時(shí)間間隔內(nèi)生成的密文。Miao 等人[13,14]提出了一種可驗(yàn)證的關(guān)鍵字搜索方案,通過對(duì)每個(gè)密文文檔設(shè)置簽名,由第三方審計(jì)檢驗(yàn)返回密文的正確性,但是該方案密文大小與屬性的個(gè)數(shù)成正比,導(dǎo)致搜索時(shí)間隨屬性的增加而增加。Ballard等人[15]提出動(dòng)態(tài)的關(guān)鍵字搜索方案,采用Merkle 樹實(shí)現(xiàn)數(shù)據(jù)的完整性認(rèn)證,但是,該認(rèn)證方法不支持多關(guān)鍵字搜索。為解決上述問題,文獻(xiàn)[7]提出完整性驗(yàn)證的多關(guān)鍵字搜索方案,減少了計(jì)算量。文獻(xiàn)[16]提出支持屬性撤銷的關(guān)鍵字搜索方案,該方案將繁重的代理重加密工作交給授權(quán)中心,造成授權(quán)中心的瓶頸。隨后一些支持代理重加密等特點(diǎn)的關(guān)鍵字搜索方案相繼被提出[17,18],但是由于將訪問結(jié)構(gòu)和索引一起發(fā)送給云服務(wù)器,導(dǎo)致訪問結(jié)構(gòu)信息泄露問題。文獻(xiàn)[19]提出了隱藏訪問結(jié)構(gòu)的ABKS方案,并支持屬性撤銷,但該方案只適合單個(gè)關(guān)鍵字的搜索。還出現(xiàn)了一些具有其它特色的搜索方案[20,21],但這些方案都沒有考慮關(guān)鍵字搜索。
本文將關(guān)鍵字搜索技術(shù)與ABE技術(shù)結(jié)合,提出具有隱私保護(hù)的完整性可驗(yàn)證的關(guān)鍵字搜索方案,實(shí)現(xiàn)了細(xì)粒度的搜索授權(quán),主要工作有:(1)方案采用了一個(gè)有序多值屬性訪問結(jié)構(gòu)和有序多值屬性集,固定每個(gè)屬性的位置,減少參數(shù)及相關(guān)計(jì)算,提高了方案的效率;(2)方案采用倒序索引結(jié)構(gòu)和Merkle哈希樹生成數(shù)據(jù)認(rèn)證樹,實(shí)現(xiàn)對(duì)云服務(wù)器返回密文的完整性認(rèn)證,防止云服務(wù)器對(duì)數(shù)據(jù)的惡意篡改和返回不正確的結(jié)果;(3)為了防止訪問結(jié)構(gòu)泄露和保護(hù)用戶身份隱私性,采用hash及對(duì)運(yùn)算實(shí)現(xiàn)對(duì)訪問結(jié)構(gòu)的隱藏;(4)外包解密技術(shù)減少了用戶側(cè)的計(jì)算開銷。
表1 屬性值
圖1 Merkel樹
圖2 倒序索引列表
圖3 數(shù)據(jù)認(rèn)證
圖4 系統(tǒng)模型
本文方案主要有4個(gè)實(shí)體(如圖4):數(shù)據(jù)屬主(DO),數(shù)據(jù)用戶(DU),授權(quán)中心(TA),云服務(wù)器(CSP)。TA是可信的,為系統(tǒng)產(chǎn)生公鑰和主密鑰,并為用戶產(chǎn)生私鑰,用戶的私鑰與自身屬性相關(guān)。DO決定訪問策略并加密對(duì)稱鑰,建立關(guān)鍵字索引,為每個(gè)關(guān)鍵字建立密文認(rèn)證樹,將索引、認(rèn)證樹、密文文檔發(fā)送給云服務(wù)器。CSP是誠實(shí)又好奇的,它會(huì)誠實(shí)地遵守協(xié)議但又試圖解密文檔,CSP分為存儲(chǔ)服務(wù)器和解密服務(wù)器。存儲(chǔ)服務(wù)器存儲(chǔ)和管理數(shù)據(jù)屬主上傳的關(guān)鍵字索引、加密文檔,并通過判斷用戶上傳的門限值提供相應(yīng)的檢索服務(wù)。DU收到密文,將其外包給解密服務(wù)器進(jìn)行部分解密,并檢驗(yàn)返回密文與外包解密的正確性。
圖5 訪問結(jié)構(gòu)的隱藏
圖6 用戶屬性集的轉(zhuǎn)化
本小節(jié)對(duì)本方案和文獻(xiàn)[13,19]的密鑰生成算法、門限生成算法、搜索和解密算法進(jìn)行了實(shí)驗(yàn)仿真。仿真平臺(tái)Windows 10,AMD A8-6410 APU with AMD Randeon R5 Graphics 2.00 GHz,內(nèi)存為8 GB,代碼庫PBC(Paring-Based Cryptography[22]),使用大素?cái)?shù)為512位。從圖7-圖10可以看出,本文方案與文獻(xiàn)[13]方案在密鑰生成、門限生成、搜索階段效率幾乎持平,但是在解密階段效率高很多,而相比文獻(xiàn)[19]的各個(gè)階段,本文方案是高效的。圖11和圖12分別給出本文方案在屬性個(gè)數(shù)變化時(shí)多關(guān)鍵字情形下,門限生成時(shí)間與搜索時(shí)間,從圖中可以得出,門限生成與屬性個(gè)數(shù)和各關(guān)鍵字個(gè)數(shù)無關(guān),而搜索階段僅與關(guān)鍵字個(gè)數(shù)有關(guān),其余兩個(gè)方案不支持多關(guān)鍵字搜索。
本文就不可信云環(huán)境下,提出具有隱私保護(hù)的完整性可驗(yàn)證的ABKS方案。方案提出有序多值屬性訪問結(jié)構(gòu)和有序多值屬性集,固定每個(gè)屬性的位置,減少參數(shù)及相關(guān)計(jì)算,提高了方案的效率;采用Hash和對(duì)運(yùn)算實(shí)現(xiàn)訪問結(jié)構(gòu)的隱藏,保護(hù)了訪問結(jié)構(gòu)的安全性與用戶身份的隱私性;在密鑰生成時(shí)計(jì)算具體屬性取值的哈希值,從而達(dá)到區(qū)別多值屬性取值的不同;同時(shí),采用倒序索引結(jié)構(gòu)和Merkle樹建立數(shù)據(jù)認(rèn)證樹,實(shí)現(xiàn)對(duì)云服務(wù)器返回密文的完整性認(rèn)證并確保外包解密的正確性,防止云服務(wù)器對(duì)數(shù)據(jù)的惡意篡改和返回不正確的結(jié)果。此外,充分利用云的計(jì)算能力,支持外包解密以降低用戶側(cè)的計(jì)算量。安全性分析和實(shí)驗(yàn)表明,本文方案可實(shí)現(xiàn)云中共享數(shù)據(jù)的可驗(yàn)證性、關(guān)鍵字不可區(qū)分性和關(guān)鍵字不可鏈接性,且是高效的。在未來工作中,將探索云存儲(chǔ)中的關(guān)鍵字的更新和文件的刪除和添加。
表2 功能比較
表3 通信開銷比較
表4 計(jì)算開銷比較
圖7 密鑰生成階段
圖8 門限生成階段
圖9 搜索階段
圖10 解密階段
圖11 多關(guān)鍵字搜索階段
圖12 多關(guān)鍵字門限生成階段