王文濤, 馬永東, 王銀款
(1.東華大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 上海 201620; 2.上海航天控制技術(shù)研究所, 上海 201109)
目前,云存儲(chǔ)的廣泛應(yīng)用給互聯(lián)網(wǎng)用戶提供了靈活的數(shù)據(jù)外包服務(wù).但是,將數(shù)據(jù)外包給云服務(wù)器,數(shù)據(jù)擁有者則會(huì)失去對(duì)數(shù)據(jù)的絕對(duì)控制權(quán),而云服務(wù)器可能也會(huì)受到數(shù)據(jù)泄漏及硬件故障等威脅[1].為了數(shù)據(jù)的安全,加密技術(shù)得到廣泛使用:一方面,加密數(shù)據(jù)使數(shù)據(jù)得到了保護(hù),但另一方面也給數(shù)據(jù)搜索帶來(lái)了挑戰(zhàn).為了解決這個(gè)問(wèn)題,研究人員提出了一系列相關(guān)解決方案[2-11].雖然這些方案提供了不同功能的搜索加密方案,但仍存在一定的局限性.首先,現(xiàn)有的可搜索加密方案中,大多數(shù)方案沒(méi)有考慮到文本提取中關(guān)鍵詞的重要性,都只是將關(guān)鍵詞進(jìn)行簡(jiǎn)單提取,并沒(méi)有考慮不同關(guān)鍵詞在文本中的重要性也是不同的.其次,部分方案僅考慮了關(guān)鍵詞詞頻關(guān)系,沒(méi)有考慮到不同主題下關(guān)鍵詞的重要性也是不同的.基于此,本研究提出了提高檢索效率的多關(guān)鍵詞排序搜索方案:首先,給出了基于主題模型的關(guān)鍵詞提取算法以增加檢索的準(zhǔn)確性,該算法基于文檔關(guān)鍵詞建立主題模型,得出文檔主題;其次,利用TextRank算法[12-13]計(jì)算每個(gè)關(guān)鍵詞在不同主題下的權(quán)重值,并根據(jù)文檔主題分布,得到最終關(guān)鍵詞權(quán)重排序,選出若干關(guān)鍵詞作為文檔的關(guān)鍵詞;為了解決關(guān)鍵詞同義關(guān)系,采用Stemming算法[14]獲取關(guān)鍵詞的詞根,還可以查詢具有相同詞根的關(guān)鍵詞.通過(guò)實(shí)驗(yàn)測(cè)試結(jié)果表明,本研究提出的方案比相關(guān)文獻(xiàn)中現(xiàn)有的方案具有更高的效率.
本研究的模型系統(tǒng)基于文獻(xiàn)[7]建立(見(jiàn)圖1),主要分為3個(gè)主體:數(shù)據(jù)擁有者、搜索用戶和云服務(wù)器.其中,數(shù)據(jù)擁有者首先將文檔集合以加密的形式外包給云服務(wù)器,為了便于對(duì)密文進(jìn)行搜索,在外包之前對(duì)文檔進(jìn)行關(guān)鍵詞提取,并建立倒排索引,然后將倒排索引加密上傳至云服務(wù)器.為了下載感興趣的文件,搜索用戶將感興趣的查詢關(guān)鍵詞進(jìn)行加密,并將加密查詢發(fā)送給云服務(wù)器.云服務(wù)器通過(guò)計(jì)算加密查詢和加密倒排索引之間的相關(guān)性結(jié)果來(lái)搜索加密文檔,然后將前(top-k)個(gè)密文文檔返回給搜索用戶.最后,搜索用戶使用密鑰對(duì)密文文檔進(jìn)行解密.此過(guò)程中,云服務(wù)器不知道相關(guān)查詢關(guān)鍵詞的任何敏感信息或文檔內(nèi)容.
圖1系統(tǒng)模型示意圖
本研究同樣利用文獻(xiàn)[7]的威脅模型,即假設(shè)云服務(wù)器是“誠(chéng)實(shí)且好奇的”,它會(huì)“誠(chéng)實(shí)地”根據(jù)指定協(xié)議存儲(chǔ)數(shù)據(jù),但又對(duì)存儲(chǔ)的數(shù)據(jù)“感興趣”,并通過(guò)推斷或分析來(lái)獲取數(shù)據(jù)信息.同時(shí),本模型主要針對(duì)兩種不同攻擊能力的威脅.
1)已知密文模型.該模型中,假設(shè)云服務(wù)器僅知道數(shù)據(jù)擁有者上傳的加密文檔集C和安全索引I.
2)已知背景模型.云服務(wù)器可以知道比已知密文模型更多的信息,例如陷門的相互關(guān)系和其他統(tǒng)計(jì)信息等.云服務(wù)器可以通過(guò)規(guī)模分析來(lái)推斷關(guān)鍵詞的特定信息,進(jìn)而識(shí)別出查詢中的關(guān)鍵詞.
在方案中,本研究應(yīng)用如下相關(guān)概念:
1)隱含狄利克雷分布(Latent dirichlet allocation,LDA)主題模型.該模型是一種離散數(shù)據(jù)集上的完全生成概率模型[12],其思路是:假設(shè)數(shù)據(jù)集存在K個(gè)獨(dú)立的隱含主題,在LDA主題模型中,每個(gè)文檔d的關(guān)鍵詞w通過(guò)文檔主題分布θ(d)采樣生成主題z,然后從以主題z為特征的關(guān)鍵詞分布φ(z)中采樣生成關(guān)鍵詞w,其中φ(d)和φ(z)分別由狄利克雷分布α和β生成,則文檔d中隨機(jī)變量θ、z和w的聯(lián)合分布為,
(1)
2)TextRank算法.該算法是一種無(wú)監(jiān)督的機(jī)器學(xué)習(xí)算法,使用基于圖的排序方法,其中每個(gè)單詞表示頂點(diǎn),而加權(quán)邊表示頂點(diǎn)之間的相似度[13].TextRank算法完全基于單詞出現(xiàn)頻率,并且不需要任何先前的語(yǔ)法知識(shí).
3)Stemming算法.該算法是語(yǔ)言規(guī)范化的過(guò)程,其中詞的變體形式簡(jiǎn)化為通用形式[14].例如,詞干分析器基于詞干“search”識(shí)別“searchable”和“searched”,基于詞干“fish”識(shí)別“fisher”和“fished”等.
為區(qū)分文檔中關(guān)鍵詞之間的重要性,本研究提出了一種基于文本主題的關(guān)鍵詞提取算法:先將傳統(tǒng)的TextRank分解為不同主題下的多個(gè)TextRank,并根據(jù)TextRank算法獲取不同主題下的關(guān)鍵詞的權(quán)值;然后根據(jù)文檔主題分布進(jìn)一步提取關(guān)鍵詞.算法主要包括:構(gòu)建主題解析器以獲取關(guān)鍵詞與文檔的主題;執(zhí)行算法來(lái)提取關(guān)鍵詞.
2.1.1 構(gòu)建主題解析器.
本研究采用LDA主題模型算法從文檔集中獲取關(guān)鍵詞主題,其能夠獲得每個(gè)關(guān)鍵詞w的主題分布.關(guān)鍵詞的主題分布將用于關(guān)鍵詞提取,也用于整合不同主題下的關(guān)鍵詞.
2.1.2 基于主題模型的關(guān)鍵詞提取.
基于主題模型的關(guān)鍵詞提取的流程包括三個(gè)部分.
1)根據(jù)文檔中關(guān)鍵詞之間的共現(xiàn)關(guān)系來(lái)構(gòu)造關(guān)鍵詞圖.文檔被看作一個(gè)關(guān)鍵詞序列,而邊的權(quán)重被設(shè)定為關(guān)鍵詞之間在長(zhǎng)度為K的滑動(dòng)窗口中的共現(xiàn)數(shù).G=(V,E)表示文檔的圖結(jié)構(gòu),其中,頂點(diǎn)表示為V={w1,w2,…,wn},邊(wi,wj)表示從關(guān)鍵詞wi到關(guān)鍵詞wj的連接,邊的權(quán)重表示為e(wi,wj),定點(diǎn)wi的出度表示O(wi)=∑j:wi→wje(wi,wj).
2)利用TextRank算法來(lái)計(jì)算不同主題下的關(guān)鍵詞權(quán)重值.TextRank算法由PageRank算法改進(jìn)而來(lái),主要考慮關(guān)鍵詞權(quán)重.在TextRank算法中,關(guān)鍵詞wi的權(quán)重W(wi)表示為,
(2)
其中,d表示范圍在0~1間的阻尼系數(shù).
式(2)表示每個(gè)節(jié)點(diǎn)有d的概率跳轉(zhuǎn)到該頂點(diǎn),有(1-d)的概率跳轉(zhuǎn)到其他頂點(diǎn).(1-d)表示隨機(jī)跳轉(zhuǎn),若值為常數(shù)1,則表示頂點(diǎn)wj等可能地跳轉(zhuǎn)到其他頂點(diǎn).而本研究所提出的基于主題的關(guān)鍵詞提取算法視隨機(jī)跳轉(zhuǎn)不是等可能的,這是因?yàn)樵诓煌黝}下,關(guān)鍵詞的TextRank權(quán)重可能會(huì)更加偏好于對(duì)應(yīng)的主題.因此,對(duì)于特定主題,本研究提出了改進(jìn)的TextRank算法,設(shè)置隨機(jī)跳轉(zhuǎn)概率為特定主題偏好值Pz(wk),其中∑wk∈wPz(wk)=1.此時(shí),與主題密切相關(guān)的關(guān)鍵詞將賦予更大的權(quán)值.主題z中,特定主題的關(guān)鍵詞wi的權(quán)重表示為,
W(wi)=(1-d)Pz(wk)+
(3)
3)通過(guò)文檔主題分布,對(duì)不同主題下的關(guān)鍵詞進(jìn)行整合排序,并選出權(quán)重值最高的若干關(guān)鍵詞作為文檔關(guān)鍵詞.
本研究在文獻(xiàn)[7]的基礎(chǔ)上提出了改進(jìn)的基于主題模型的多關(guān)鍵詞排序搜索方案,其關(guān)鍵函數(shù)介紹如下:
1)KeyExtend(F).給定文檔集F,對(duì)文檔集進(jìn)行分詞,并使用Porter詞干算法將具有相同詞根的關(guān)鍵詞表示為同一形式,利用關(guān)鍵詞提取算法選出文檔關(guān)鍵詞w,并構(gòu)成關(guān)鍵詞集合W={w1,w2,…,wn};然后,將關(guān)鍵詞集合轉(zhuǎn)換成(n+u+1)維的文檔倒排索引向量I,其中對(duì)應(yīng)維上的值為關(guān)鍵詞權(quán)重W,u是插入的虛擬關(guān)鍵詞的數(shù)量,(n+u+1)維設(shè)置為1.
2)KeyGen(n).數(shù)據(jù)所有者隨機(jī)生成安全密鑰SK(M1,M2,S),其中,M1,M2∈R(n+u+1)×(n+u+1)為可逆矩陣,S∈{0,1}n+u+1為一個(gè)向量.
4)BuildIndexTree(I).在搜索過(guò)程中,云服務(wù)器必須搜索數(shù)據(jù)集的每個(gè)文檔索引,如果數(shù)據(jù)集非常大,則檢索效率會(huì)很低.本研究采用Xia等[15]提出的平衡二叉樹(shù)來(lái)構(gòu)建索引結(jié)構(gòu).在索引結(jié)構(gòu)構(gòu)建過(guò)程中,首先將索引生成樹(shù)的葉子節(jié)點(diǎn),然后根據(jù)這些葉子節(jié)點(diǎn)生成樹(shù)的中間節(jié)點(diǎn)平衡二叉樹(shù),具體如圖2所示.
圖2平衡二叉樹(shù)結(jié)構(gòu)示意圖
6)Query(I,Q).根據(jù)構(gòu)建的索引樹(shù),云服務(wù)器計(jì)算索引向量和安全陷門的內(nèi)積來(lái)獲得最終的查詢相關(guān)性結(jié)果,
Ri=Il·Q
=I′Q′+I″Q″
=(Ii,εi,1)(xQ,x,y)
(4)
最后,返回相關(guān)性結(jié)果前(top-k)的加密文檔給搜索用戶,用戶根據(jù)密鑰對(duì)密文文檔進(jìn)行解密.
在將數(shù)據(jù)集外包到云服務(wù)器之前,本研究采用了AES對(duì)稱加密算法[16]對(duì)數(shù)據(jù)集進(jìn)行加密.由于AES對(duì)稱加密算法是安全的,因此數(shù)據(jù)的安全性得到了保證.
雖然云服務(wù)器無(wú)法恢復(fù)查詢關(guān)鍵詞的內(nèi)容,但是陷門的可連接性可能導(dǎo)致隱私泄露.例如,如果陷門是確定性的,攻擊者可以通過(guò)多次搜索相同的關(guān)鍵詞來(lái)推斷出關(guān)鍵詞之間的關(guān)系.對(duì)此,本研究通過(guò)在向量分割過(guò)程中引入隨機(jī)數(shù)的方法,使得即使對(duì)于相同的查詢也會(huì)生成不同的加密查詢向量,此外,可以分別將隨機(jī)數(shù)εi引入到索引向量中及將隨機(jī)數(shù)x和y引入到查詢向量中,最終的查詢結(jié)果也會(huì)不同,由此來(lái)實(shí)現(xiàn)陷門的不可連接性.
在實(shí)驗(yàn)測(cè)試中,本研究提出的方法在AMD5 CPU 2.0 GHz的Windows 10操作系統(tǒng)上應(yīng)用Java語(yǔ)言得以實(shí)現(xiàn).同時(shí),本研究還評(píng)估了本方法的性能.測(cè)試選取的真實(shí)數(shù)據(jù)集為Enron email dataset[17],其包含150個(gè)用戶的數(shù)據(jù).
(5)
搜索時(shí)間在文檔集中的變化趨勢(shì)如圖4所示.由圖4(a)可知,文檔數(shù)量的變化并沒(méi)有對(duì)本方案產(chǎn)生較大影響,但隨著文檔數(shù)量的增加,Cao方案的搜索時(shí)間呈線性趨勢(shì).圖4(b)表示搜索時(shí)間隨查詢關(guān)鍵詞不同而變化的趨勢(shì)圖.無(wú)論查詢關(guān)鍵詞包含多少關(guān)鍵詞,它們都在同個(gè)字典中,查詢時(shí)間不會(huì)隨著查詢關(guān)鍵詞數(shù)量的增加而增加.但是,同Cao方案相比,本方案采用了平衡二叉樹(shù)的索引結(jié)構(gòu),因此具有更高的搜索效率.
圖3準(zhǔn)確性和隱私性
圖4搜索效率
本研究提出了一種安全、高效的多關(guān)鍵詞排序搜索方案,設(shè)計(jì)了基于主題的關(guān)鍵詞提取算法,即將文檔關(guān)鍵詞賦予不同的權(quán)重,在不失隱私性的情況下,提高了查詢結(jié)果的準(zhǔn)確性.同時(shí),本研究通過(guò)實(shí)驗(yàn)測(cè)試證明了本方案的安全性和有效性.下一步的工作將通過(guò)考慮搜索關(guān)鍵詞的語(yǔ)義關(guān)系來(lái)進(jìn)一步提高搜索的準(zhǔn)確性.