陳 元,張昌宏,付 偉
(海軍工程大學(xué),武漢 430033)
近些年來(lái),隨著IT行業(yè)和計(jì)算機(jī)領(lǐng)域的迅速發(fā)展,數(shù)據(jù)量正呈現(xiàn)爆炸式的增長(zhǎng)[1]。為高效存儲(chǔ)和處理這些海量數(shù)據(jù),云計(jì)算[2-3]與云存儲(chǔ)技術(shù)[4-6]應(yīng)運(yùn)而生。用戶可以將數(shù)據(jù)以外包的方式存儲(chǔ)至云服務(wù)提供商(CSP,Cloud Service Provider),實(shí)現(xiàn)資源存儲(chǔ)云化。對(duì)用戶而言,這種存儲(chǔ)模式可以降低存儲(chǔ)和計(jì)算成本,而且云服務(wù)器具有按需服務(wù)和按服務(wù)收費(fèi)等優(yōu)勢(shì),符合當(dāng)前綠色計(jì)算和低碳經(jīng)濟(jì)的發(fā)展趨勢(shì)[7]。
在云服務(wù)快速發(fā)展的同時(shí),其安全性問(wèn)題也日益突出,尤其是存儲(chǔ)數(shù)據(jù)的安全性與隱私保護(hù)問(wèn)題[8-12]。如果用戶將自身的隱私敏感數(shù)據(jù)完全暴露給云服務(wù)器,將存在極大的安全隱患。用戶可以將明文數(shù)據(jù)加密后再上傳至服務(wù)器,但這又會(huì)影響數(shù)據(jù)的可用性。當(dāng)用戶需要檢索某個(gè)文檔時(shí),需要將云端的數(shù)據(jù)全部下載到本地再進(jìn)行查詢,浪費(fèi)了大量的網(wǎng)絡(luò)帶寬且效率較低。因此,云存儲(chǔ)環(huán)境下的密文檢索技術(shù)是目前的研究熱點(diǎn)之一。
本文將CSP視為“忠實(shí)但好奇(Honest but Curious)”的半可信敵手模型。一方面,CSP能夠忠實(shí)履行與用戶之間的服務(wù)等級(jí)協(xié)定(SLA,Service Level Agreement)[13],向其提供穩(wěn)定的數(shù)據(jù)上傳、下載及檢索等服務(wù);另一方面,CSP出于好奇會(huì)對(duì)用戶的訪問(wèn)行為和記錄進(jìn)行分析,因此,用戶隱私敏感信息存在著一定的安全性威脅,例如照片、郵件、通訊錄、個(gè)人賬戶等個(gè)人用戶信息、政務(wù)商務(wù)機(jī)密,以及醫(yī)療機(jī)構(gòu)中存儲(chǔ)的患者隱私等企業(yè)用戶信息。
同時(shí),SLA實(shí)質(zhì)上只是一種信任契約,沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),缺乏有效的驗(yàn)證途徑,因此,無(wú)法解決目前存在的信任悖論問(wèn)題。一方面,CSP會(huì)信誓旦旦地承諾服務(wù)的安全性和可靠性;另一方面,用戶卻無(wú)法通過(guò)行之有效的技術(shù)手段對(duì)SLA進(jìn)行驗(yàn)證并阻止CSP的不正當(dāng)行為。由于信息存在不對(duì)稱性,用戶很難發(fā)現(xiàn)服務(wù)商的違約行為;而當(dāng)用戶違約時(shí),服務(wù)商則能立即發(fā)現(xiàn)并制止其行為。信任悖論問(wèn)題導(dǎo)致用戶不敢放心地將數(shù)據(jù)上傳至云服務(wù)器進(jìn)行保存。
針對(duì)云計(jì)算與云存儲(chǔ)服務(wù)中存在的安全威脅和信任悖論問(wèn)題,相關(guān)學(xué)者提出了密文檢索技術(shù)。為保證核心隱私敏感數(shù)據(jù)的安全,用戶可以選擇將其加密后再上傳至云服務(wù)器上進(jìn)行存儲(chǔ)。密文檢索技術(shù)使得數(shù)據(jù)查詢操作可以直接在密文上進(jìn)行,既保證了數(shù)據(jù)的機(jī)密性,又極大地提高了檢索效率。
1.2.1 密文檢索中數(shù)據(jù)的特點(diǎn)
與傳統(tǒng)數(shù)據(jù)相比,密文檢索中的數(shù)據(jù)通常具有以下幾個(gè)特點(diǎn):
1)海量性(Massive):由于云存儲(chǔ)用戶數(shù)量眾多,且每個(gè)用戶所存儲(chǔ)的隱私數(shù)據(jù)量比較大,因此,密文檢索中的數(shù)據(jù)是海量的,一般可以達(dá)到TB級(jí)甚至PB級(jí);
2)外包性(Outsourced):密文數(shù)據(jù)以外包的形式存儲(chǔ)在云端,用戶通過(guò)網(wǎng)絡(luò)與云存儲(chǔ)服務(wù)提供商聯(lián)系,因此,根本無(wú)法知道數(shù)據(jù)存儲(chǔ)在哪個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)上,甚至不知道存儲(chǔ)在哪個(gè)國(guó)家或地區(qū);
3)機(jī)密性(Confidential):出于對(duì)數(shù)據(jù)安全性的考慮,用戶將其核心隱私敏感數(shù)據(jù)加密后再發(fā)送給云存儲(chǔ)服務(wù)提供商;
4)可用性(Available):數(shù)據(jù)的可用性是服務(wù)商必須首先解決的問(wèn)題,也是用戶最關(guān)心的問(wèn)題??蓹z索性也是可用性的一個(gè)方面;
5)異構(gòu)性(Heterogeneous):數(shù)據(jù)的存儲(chǔ)、使用、授權(quán)方式和訪問(wèn)控制策略都不盡相同,因此,存在明顯的異構(gòu)性;
6)混雜性(Mixed):云存儲(chǔ)平臺(tái)通常采用多租戶機(jī)制,因此,一個(gè)存儲(chǔ)節(jié)點(diǎn)上可能同時(shí)存儲(chǔ)多個(gè)用戶的數(shù)據(jù),一個(gè)用戶的數(shù)據(jù)也可能存儲(chǔ)在不同的節(jié)點(diǎn)上。
1.2.2 密文檢索中數(shù)據(jù)的安全需求
相比于傳統(tǒng)的數(shù)據(jù)存儲(chǔ)方式,云存儲(chǔ)具有諸多優(yōu)勢(shì),但是出于安全方面的因素,用戶仍然不敢將隱私數(shù)據(jù)存儲(chǔ)在云服務(wù)器上。目前密文檢索中的數(shù)據(jù)主要有以下幾個(gè)安全需求:
1)數(shù)據(jù)的隱私保護(hù)能力需要進(jìn)一步提高。由于在云存儲(chǔ)環(huán)境下用戶數(shù)據(jù)具有外包性,如果沒(méi)有可靠的技術(shù)手段對(duì)數(shù)據(jù)進(jìn)行隱私保護(hù),而只是單純地依靠SLA協(xié)定對(duì)服務(wù)商的行為進(jìn)行約束,這顯然不能滿足數(shù)據(jù)的安全需求;此外,由于數(shù)據(jù)具有混雜性,在一個(gè)節(jié)點(diǎn)上會(huì)同時(shí)存儲(chǔ)多個(gè)用戶的數(shù)據(jù),而不是絕對(duì)的物理隔離,同樣會(huì)帶來(lái)安全隱患;
2)數(shù)據(jù)的完整性驗(yàn)證機(jī)制有待進(jìn)一步增強(qiáng)。完善和增強(qiáng)數(shù)據(jù)的完整性驗(yàn)證機(jī)制也是目前需要迫切解決的問(wèn)題。保證數(shù)據(jù)的完整性是服務(wù)雙方合作的基礎(chǔ),用戶數(shù)據(jù)在存儲(chǔ)和處理的過(guò)程中,不能被惡意修改或破壞;
3)數(shù)據(jù)的可用性需要得到更強(qiáng)大的技術(shù)保障。傳統(tǒng)的明文數(shù)據(jù)檢索技術(shù)通常無(wú)法適用于密文的檢索,為保證加密后數(shù)據(jù)的可用性,服務(wù)商需要給用戶提供安全有效的可檢索加密技術(shù)。
密文檢索方法主要分為兩種:一種是基于密文的檢索方法,用戶直接將加密后的文件上傳至云端,檢索時(shí)需要對(duì)密文全文進(jìn)行掃描匹配,得到與關(guān)鍵詞相同或相近的密文;另一種是基于索引的檢索方法,用戶需要事先提取明文中的關(guān)鍵詞,構(gòu)建索引結(jié)構(gòu),然后將加密后的密文和索引文件上傳至云端,檢索時(shí)只需比對(duì)關(guān)鍵詞和索引文件即可得到相應(yīng)的密文。
密文檢索中的挑戰(zhàn)性問(wèn)題主要是如何在保證用戶核心隱私敏感數(shù)據(jù)安全性的同時(shí),實(shí)現(xiàn)高效的檢索匹配以得到相應(yīng)的密文數(shù)據(jù)。同時(shí),如何實(shí)現(xiàn)密文數(shù)據(jù)的多用戶檢索、多關(guān)鍵字檢索、模糊檢索、區(qū)間檢索以及支持結(jié)果集排序的Top-k檢索,也是密文檢索中的一個(gè)挑戰(zhàn)性問(wèn)題。
本文對(duì)現(xiàn)有的密文檢索方案進(jìn)行研究和分析,提出云存儲(chǔ)環(huán)境下的密文檢索通用模型與基本框架。
圖1 云存儲(chǔ)環(huán)境下的密文檢索通用模型
如圖1所示,云存儲(chǔ)環(huán)境下的密文檢索通用模型主要由3個(gè)角色組成:數(shù)據(jù)擁有者(DO,Data Owner)、云存儲(chǔ)服務(wù)提供商(CSP,Cloud Storage Provider)和數(shù)據(jù)檢索者(DS,Data Searcher)。
1)DO:如果采用基于密文的檢索方法,數(shù)據(jù)擁有者可以直接將自身的核心隱私敏感數(shù)據(jù)加密后發(fā)送給CSP;如果采用基于索引的檢索方法,則用戶需要事先從明文中提取關(guān)鍵詞,并構(gòu)建索引結(jié)構(gòu),然后將加密后的密文和索引文件一起上傳至CSP;同時(shí)DO可以向CSP提出密文檢索請(qǐng)求;
2)CSP:向用戶DO和DS提供數(shù)據(jù)存儲(chǔ)、下載及檢索服務(wù);
3)DS:數(shù)據(jù)檢索者經(jīng)DO授權(quán)后可以向CSP提出密文檢索請(qǐng)求并獲取相應(yīng)的數(shù)據(jù)信息。
本文以基于索引的密文檢索方法為例,對(duì)云存儲(chǔ)環(huán)境下的密文檢索基本框架進(jìn)行描述,框架主要由以下幾個(gè)多項(xiàng)式時(shí)間的算法構(gòu)成:
1)Setup(k;sp,sk):概率密鑰生成算法。由數(shù)據(jù)擁有者DO執(zhí)行,對(duì)系統(tǒng)進(jìn)行初始化。輸入:安全參數(shù)k,輸出:系統(tǒng)參數(shù)sp和系統(tǒng)密鑰sk;
2)BuildIndex(D;I):確定性索引構(gòu)建算法。由數(shù)據(jù)擁有者DO執(zhí)行,提取明文關(guān)鍵詞并構(gòu)建文檔索引結(jié)構(gòu)。輸入:明文文檔D,輸出:索引結(jié)構(gòu)I;
3)Enc(D,I,sk;ED,EI):確定性加密算法。由數(shù)據(jù)擁有者DO執(zhí)行,加密明文文檔和索引結(jié)構(gòu)。輸入:明文文檔D、索引結(jié)構(gòu)I和系統(tǒng)密鑰sk,輸出:密文文檔ED和密文索引結(jié)構(gòu)EI;
4)Trapdoor(w,sk;Tw):確定性陷門生成算法。由數(shù)據(jù)檢索者DS執(zhí)行,生成關(guān)鍵詞陷門。輸入:檢索關(guān)鍵詞w和系統(tǒng)密鑰sk,輸出:關(guān)鍵詞陷門Tw;
5)Search(Tw,EI;ED):確定性檢索算法。由云存儲(chǔ)服務(wù)提供商CSP執(zhí)行,檢索關(guān)鍵詞對(duì)應(yīng)的密文文檔。輸入:關(guān)鍵詞陷門Tw和密文索引結(jié)構(gòu)EI,輸出:關(guān)鍵詞w對(duì)應(yīng)的密文文檔ED;
6)Dec(ED,sk;D):確定性解密算法。由數(shù)據(jù)檢索者DS執(zhí)行,得到檢索到的明文文檔。輸入:密文文檔ED和系統(tǒng)私鑰sk,輸出:明文文檔D。
在基于密文的檢索方法中,不存在文檔索引結(jié)構(gòu),因此,其基本框架中不存在第二步;另外,檢索時(shí)需要對(duì)密文全文進(jìn)行掃描匹配,得到與關(guān)鍵詞相同或相近的密文文檔。
國(guó)內(nèi)外專家學(xué)者提出許多針對(duì)云存儲(chǔ)應(yīng)用場(chǎng)景下的密文檢索方案,其評(píng)價(jià)指標(biāo)主要包括以下幾個(gè)方面:
1)安全性:要求數(shù)據(jù)的上傳、下載和檢索都是在密文狀態(tài)下進(jìn)行,以保證用戶核心隱私敏感數(shù)據(jù)的安全性,包括明文、關(guān)鍵詞索引及陷門和檢索過(guò)程的安全性。高安全性的方案能夠抵御統(tǒng)計(jì)分析攻擊,具有適應(yīng)性不可區(qū)分安全、適應(yīng)性語(yǔ)義安全和抵抗非自適應(yīng)性選擇關(guān)鍵詞攻擊的語(yǔ)義安全(IND-CKA、IND-CKA2)等[14];
2)高效性:符合綠色計(jì)算的要求,既要減小存儲(chǔ)空間,又要保證密文檢索的效率,這里所說(shuō)的存儲(chǔ)空間主要是指關(guān)鍵詞索引所占的存儲(chǔ)空間。高效性的衡量標(biāo)準(zhǔn)主要包括時(shí)間復(fù)雜度和空間復(fù)雜度;
3)正確性驗(yàn)證:方案支持檢索結(jié)果的正確性驗(yàn)證,通常采用正確率和召回率作為檢索結(jié)果的驗(yàn)證參數(shù),其中正確率是指檢索結(jié)果中與檢索陷門相關(guān)的文檔數(shù)占檢索結(jié)果總文檔數(shù)的比例,召回率是指檢索結(jié)果中與檢索陷門相關(guān)的文檔數(shù)占用戶云端密文總文檔數(shù)的比例;
4)可靠性:方案能夠給用戶提供可靠的數(shù)據(jù)存儲(chǔ)和密文檢索服務(wù)。
根據(jù)檢索方法的不同,可以將其分為基于密文全文的檢索方法和基于密文索引的檢索方法。
Song等人[15]首次提出可搜索加密(SE,Searchable Encryption)的概念,并設(shè)計(jì)實(shí)現(xiàn)了一種基于對(duì)稱密碼體制的密文檢索方案。方案用由偽隨機(jī)數(shù)和校驗(yàn)數(shù)生成的流密碼對(duì)用戶數(shù)據(jù)進(jìn)行加密,只有加密后的用戶數(shù)據(jù)、檢索陷門和檢索結(jié)果會(huì)暴露給不可信的服務(wù)商,保證了數(shù)據(jù)的安全性,同時(shí)證明了方案具有一定的可行性。但是方案采用基于密文全文的檢索方法,直接將陷門關(guān)鍵字與密文全文進(jìn)行線性比對(duì),效率比較低,方案只適用于單用戶、單關(guān)鍵字的精確檢索,且不支持結(jié)果集排序。
文獻(xiàn)[15]方案主要由以下幾個(gè)步驟組成:
1)Setup(k;sp,sk):概率密鑰生成算法。由數(shù)據(jù)擁有者DO執(zhí)行,對(duì)系統(tǒng)進(jìn)行初始化。輸入:安全參數(shù)k,輸出:系統(tǒng)參數(shù)sp和系統(tǒng)密鑰sk;
2)Enc(D,sk;ED):確定性加密算法。由數(shù)據(jù)擁有者DO執(zhí)行,加密明文文檔。輸入:明文文檔D和系統(tǒng)密鑰sk,輸出:密文文檔ED;具體做法如下:首先將明文單詞的長(zhǎng)度均轉(zhuǎn)換為n bit,采用分組加密函數(shù)和系統(tǒng)密鑰加密明文單詞;通過(guò)流密碼生成一組長(zhǎng)度為n-m bit的偽隨機(jī)數(shù);將加密后的明文單詞分成長(zhǎng)度為n-m bit和m bit的L和R兩部分;通過(guò)散列函數(shù)處理L得到密鑰sk’;通過(guò)偽隨機(jī)函數(shù)和密鑰sk’處理n-m比特位的偽隨機(jī)數(shù),得到長(zhǎng)度為m bit的數(shù),然后將其填充到n-m位的偽隨機(jī)數(shù)后,得到長(zhǎng)度為n bit的數(shù);最后將其與加密后的明文單詞按位異或,得到密文ED;
3)Trapdoor(w,sk;Tw):確定性陷門生成算法。由數(shù)據(jù)檢索者DS執(zhí)行,生成關(guān)鍵詞陷門。輸入:檢索關(guān)鍵詞w和系統(tǒng)密鑰sk,輸出:關(guān)鍵詞陷門Tw;采用步驟2)中的分組加密函數(shù)和系統(tǒng)密鑰加密檢索關(guān)鍵詞w得到關(guān)鍵詞陷門Tw;
4)Search(Tw;ED):確定性檢索算法。由云存儲(chǔ)服務(wù)提供商CSP執(zhí)行,檢索關(guān)鍵詞對(duì)應(yīng)的密文文檔。輸入:關(guān)鍵詞陷門Tw,輸出:關(guān)鍵詞w對(duì)應(yīng)的密文文檔ED;依次將關(guān)鍵詞陷門Tw與密文中的單詞按位異或;
5)Dec(ED,sk;D):確定性解密算法。由數(shù)據(jù)檢索者DS執(zhí)行,得到檢索到的明文文檔。輸入:密文文檔ED和系統(tǒng)私鑰sk,輸出:明文文檔D;首先將n-m位的偽隨機(jī)數(shù)與密文的前n-m位按位異或,得到L;然后由散列函數(shù)和L得到sk’,最后解密密文得到密文D。
上述方案雖然實(shí)現(xiàn)了基本的密文檢索功能,但是安全性和效率都比較低,不能抵御統(tǒng)計(jì)分析攻擊,不支持檢索結(jié)果的正確性驗(yàn)證;同時(shí),采用由偽隨機(jī)數(shù)和校驗(yàn)數(shù)生成的流密碼作為密鑰,給密鑰的管理帶來(lái)了困難。
Dan Boneh等人[16]提出一種基于公鑰加密的關(guān)鍵詞檢索方案,同樣需要對(duì)關(guān)鍵詞和密文進(jìn)行掃描匹配,適用范圍較小且效率較低。為了提高檢索效率,Bethencourt等人[17-18]在文獻(xiàn)[15]方案的基礎(chǔ)上提出了基于Paillier加解密算法[19]的密文檢索方案,方案采用非對(duì)稱密碼體制,并通過(guò)緩存器來(lái)存儲(chǔ)一些數(shù)據(jù)流,檢索效率比較高且算法具有部分同態(tài)加密的性質(zhì)。Curtmola等人[20]在文獻(xiàn)[15]方案的基礎(chǔ)上,提出了可搜索對(duì)稱加密方案SSE1、SSE2,通過(guò)增加和優(yōu)化索引結(jié)構(gòu)提高了檢索效率,同時(shí)方案將應(yīng)用場(chǎng)景由單用戶檢索擴(kuò)展到多用戶檢索,密文檢索用戶不再限制于數(shù)據(jù)擁有者,授權(quán)用戶同樣可以對(duì)云端密文進(jìn)行檢索。
在基于密文全文的檢索方法中,用戶數(shù)據(jù)加密、陷門生成和數(shù)據(jù)解密都是在客戶端完成,只有密文檢索部分是在服務(wù)器上執(zhí)行,因此,CSP不會(huì)獲得明文信息,保證了用戶數(shù)據(jù)的機(jī)密性。但是檢索時(shí)需要將陷門關(guān)鍵詞與密文全文進(jìn)行線性地掃描匹配比對(duì),效率較低,不能滿足云存儲(chǔ)場(chǎng)景下海量數(shù)據(jù)的應(yīng)用需求。
針對(duì)基于密文全文的檢索方法不能滿足云存儲(chǔ)場(chǎng)景下海量數(shù)據(jù)的應(yīng)用需求問(wèn)題,相關(guān)學(xué)者提出基于密文索引的檢索方法。用戶需要事先提取明文中的關(guān)鍵詞,構(gòu)建索引結(jié)構(gòu),然后將加密后的密文和索引文件上傳至云端,檢索時(shí)只需比對(duì)陷門關(guān)鍵詞和索引文件即可得到相應(yīng)的密文。
Goh等人[21]定義了一種基于偽隨機(jī)函數(shù)和布隆過(guò)濾器的安全索引—Z索引,構(gòu)建了安全模型,并形式化地證明了模型具有可以抵御非自適應(yīng)選擇關(guān)鍵字攻擊的語(yǔ)義安全,方案效率較高并且可以抵抗選擇明文攻擊。
文獻(xiàn)[21]方案主要由以下幾個(gè)步驟組成:
1)Setup(k;sp,sk):概率密鑰生成算法。由數(shù)據(jù)擁有者DO執(zhí)行,對(duì)系統(tǒng)進(jìn)行初始化。輸入:安全參數(shù)k,輸出:系統(tǒng)參數(shù)sp和系統(tǒng)密鑰sk;sk由偽隨機(jī)函數(shù)映射生成;
2)BuildIndex(D,sk;I):確定性索引構(gòu)建算法。由數(shù)據(jù)擁有者DO執(zhí)行,提取明文關(guān)鍵詞w并構(gòu)建文檔索引結(jié)構(gòu)。輸入:明文文檔D和系統(tǒng)密鑰sk,輸出:索引結(jié)構(gòu)I;索引結(jié)構(gòu)通過(guò)布隆過(guò)濾器存儲(chǔ);D中包含文檔的唯一標(biāo)識(shí)符 Did;計(jì)算和;然后將y插入到布隆過(guò)濾器中,并將其作為文檔的索引結(jié)構(gòu);
3)Enc(D,sk;ED):確定性加密算法。由數(shù)據(jù)擁有者DO執(zhí)行,加密明文文檔。輸入:明文文檔D和系統(tǒng)密鑰sk,輸出:密文文檔ED;
4)Trapdoor(sw,sk;Tw):確定性陷門生成算法。由數(shù)據(jù)檢索者DS執(zhí)行,生成關(guān)鍵詞陷門。輸入:檢索關(guān)鍵詞sw和系統(tǒng)密鑰sk,輸出:關(guān)鍵詞陷門Tw;為查詢單射函數(shù);
5)Search(Tw,I;ED):確定性檢索算法。由云存儲(chǔ)服務(wù)提供商CSP執(zhí)行,檢索關(guān)鍵詞對(duì)應(yīng)的密文文檔。輸入:關(guān)鍵詞陷門Tw和密文索引結(jié)構(gòu)I,輸出:關(guān)鍵詞w對(duì)應(yīng)的密文文檔ED;計(jì)算和,然后查詢y是否在索引結(jié)構(gòu)布隆過(guò)濾器中,完成檢索;
6)Dec(ED,sk;D):確定性解密算法。由數(shù)據(jù)檢索者DS執(zhí)行,得到檢索到的明文文檔。輸入:密文文檔ED和系統(tǒng)私鑰sk,輸出:明文文檔D。
上述方案的第 1、2、3、4、6 步均在客戶端完成,只有第5步檢索部分是在服務(wù)器上執(zhí)行,因此,CSP不會(huì)獲得明文信息,保證了用戶數(shù)據(jù)的機(jī)密性。同時(shí),布隆過(guò)濾器的存儲(chǔ)空間較小且存儲(chǔ)和檢索效率較高,但是查詢比對(duì)時(shí)存在誤判率和假陽(yáng)性,不適合對(duì)檢索匹配精度要求比較高的場(chǎng)景。
Cao等人[22]首次定義并解決了云計(jì)算環(huán)境下基于隱私保護(hù)的密文多關(guān)鍵字排序查詢問(wèn)題,方案將密文索引和檢索陷門通過(guò)編碼的方式轉(zhuǎn)換為向量,并將兩者的內(nèi)積作為匹配相似值,雖然實(shí)現(xiàn)了多關(guān)鍵字的密文排序檢索,但是由于檢索過(guò)程中需要線性掃描密文索引,所以效率較低,同時(shí)查詢前需要檢索用戶掌握索引的列表及位置信息。Fu等人[23]提出支持同義詞查詢的密文多關(guān)鍵字排序檢索方案,在文獻(xiàn)[22]方案的基礎(chǔ)上引入了二叉樹結(jié)構(gòu)存儲(chǔ)密文索引及其向量,檢索效率有所提高。楊旸等人[24]提出基于域加權(quán)和語(yǔ)義相似度的多關(guān)鍵字密文排序檢索方案,通過(guò)域加權(quán)評(píng)分和語(yǔ)義相似度評(píng)分構(gòu)建索引,創(chuàng)建文檔向量并將其分塊處理,通過(guò)匹配文檔向量和查詢向量實(shí)現(xiàn)了密文排序檢索,方案的效率比較高但是安全性有所降低。那海洋等人[25]將B+樹形結(jié)構(gòu)的思想引入索引構(gòu)建方案中,降低了索引空間的復(fù)雜度并提高了檢索效率,方案通過(guò)關(guān)鍵字匹配和相關(guān)度分?jǐn)?shù)實(shí)現(xiàn)了檢索結(jié)果集排序,但是安全性不高且不支持檢索結(jié)果的正確性驗(yàn)證。
在基于密文索引的檢索方法中,用戶的核心隱私敏感數(shù)據(jù)、索引結(jié)構(gòu)以及檢索陷門都是以密文的形式發(fā)送給CSP,保證了數(shù)據(jù)的機(jī)密性。與基于密文全文的檢索方法相比,基于密文索引的檢索方法安全性和效率都比較高,更適用于云存儲(chǔ)環(huán)境下的密文檢索場(chǎng)景。
1)目前大多數(shù)密文檢索方案只適用于單用戶檢索,但是在云存儲(chǔ)環(huán)境下,數(shù)據(jù)通常都是由多個(gè)授權(quán)用戶共享的,因此,設(shè)計(jì)適用于多用戶的密文檢索方案是十分必要的。
2)在云存儲(chǔ)環(huán)境下,由于用戶數(shù)據(jù)規(guī)模較大,如果密文檢索方案只支持單關(guān)鍵字檢索,將會(huì)檢索出大量與用戶需求無(wú)關(guān)的文檔;多關(guān)鍵字檢索可以設(shè)置多個(gè)檢索條件和陷門,可以檢索出更符合用戶需求的文檔,而且可以節(jié)省網(wǎng)絡(luò)帶寬。因此,密文檢索由單關(guān)鍵字檢索逐漸向多關(guān)鍵字檢索擴(kuò)展。
3)根據(jù)檢索匹配精度的不同,可以將密文檢索技術(shù)分為精確密文檢索和模糊密文檢索。在傳統(tǒng)的明文檢索技術(shù)中,由于檢索用戶掌握的數(shù)據(jù)與真實(shí)數(shù)據(jù)之間存在著誤差,僅僅依靠精確匹配無(wú)法完成相應(yīng)的檢索功能,因此,支持模糊匹配是十分必要的。同樣,在密文檢索中,即使明文數(shù)據(jù)之間存在較小的誤差,加密后的密文之間的誤差也會(huì)變得很大,因此,需要服務(wù)器檢索系統(tǒng)支持模糊檢索功能。
4)區(qū)間檢索是對(duì)數(shù)據(jù)進(jìn)行檢索的主要方式之一。在明文區(qū)間檢索中,用戶向服務(wù)器提供檢索區(qū)間,然后服務(wù)器將關(guān)鍵字在檢索區(qū)間內(nèi)的所有數(shù)據(jù)反饋給用戶。但是在密文區(qū)間檢索中,為保證敏感數(shù)據(jù)的機(jī)密性,用戶需將加密后的檢索區(qū)間陷門發(fā)送給服務(wù)器,服務(wù)器運(yùn)行檢索算法后將符合條件的密文反饋給用戶,由私鑰解密后得到相應(yīng)的明文數(shù)據(jù)。由于檢索需要在密文狀態(tài)下進(jìn)行,所以如何在保證安全性的同時(shí)實(shí)現(xiàn)高效的區(qū)間檢索是目前的主要難題。
5)由于在云端存儲(chǔ)的用戶密文文檔是海量的,而且檢索成功的文檔也比較多,因此,需要對(duì)檢索結(jié)果集進(jìn)行排序,以返回最符合用戶需求的Top-K個(gè)結(jié)果,同時(shí)可以節(jié)省網(wǎng)絡(luò)帶寬和資源開(kāi)銷,降低用戶成本。
本文首先介紹了云存儲(chǔ)環(huán)境下密文檢索的應(yīng)用場(chǎng)景,分析了密文檢索中數(shù)據(jù)的特點(diǎn)和安全需求,并提出了其中的挑戰(zhàn)性問(wèn)題。通過(guò)研究現(xiàn)有的密文檢索方案,提出了云存儲(chǔ)環(huán)境下的密文檢索通用模型與基本框架,并構(gòu)建了方案的評(píng)價(jià)體系。根據(jù)檢索方法的不同,將密文檢索分為基于密文全文的檢索方法和基于密文索引的檢索方法,并詳細(xì)分析了其中的一些經(jīng)典方案。最后,指出了當(dāng)前密文檢索方案中主要存在的問(wèn)題,并對(duì)密文檢索的發(fā)展趨勢(shì)進(jìn)行分析。