張強(qiáng),王國軍,張少波
(1. 中南大學(xué)信息科學(xué)與工程學(xué)院,湖南 長沙 410083;2. 廣州大學(xué)計(jì)算機(jī)科學(xué)與網(wǎng)絡(luò)工程學(xué)院,廣東 廣州 510006;3. 湖南科技大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,湖南 湘潭 411201)
隨著時(shí)代的發(fā)展,信息量呈指數(shù)級增長趨勢,為了快速地從龐大的數(shù)據(jù)中找到所需要的信息,搜索成為了人們共同的選擇,搜索技術(shù)也從最開始的分類目錄時(shí)代漸漸進(jìn)入了以用戶為中心的時(shí)代。同時(shí),隨著數(shù)據(jù)量的劇增,存儲和計(jì)算問題也越來越突出,為了解決這一問題,云計(jì)算技術(shù)應(yīng)運(yùn)而生。
如今,云服務(wù)越來越便捷。然而,隨著云服務(wù)的普及,其安全和隱私泄露問題已然成為了人們關(guān)注的焦點(diǎn)[1]。因?yàn)楹诳图霸品?wù)器本身的不可信,當(dāng)數(shù)據(jù)以明文形式存儲在云服務(wù)器上時(shí),很可能會導(dǎo)致數(shù)據(jù)的泄露,鑒于此,數(shù)據(jù)擁有者傾向于先加密數(shù)據(jù),再將密文外包到云服務(wù)器中。然而,傳統(tǒng)的明文檢索技術(shù)在密文環(huán)境下將毫無用處。與此同時(shí),用戶在實(shí)時(shí)檢索時(shí)希望以最短的時(shí)間獲得自己最需要的檢索結(jié)果,但隨著數(shù)據(jù)量與用戶數(shù)的激增,云服務(wù)器可能會成為云服務(wù)的性能瓶頸,增加用戶的等待時(shí)間,這將嚴(yán)重影響用戶的搜索體驗(yàn)。因此,如何在浩瀚的密文中快速地獲得自己所需要的檢索結(jié)果成為密文環(huán)境下個(gè)性化搜索技術(shù)的研究方向。
為了在密文環(huán)境下檢索信息,可搜索加密技術(shù)應(yīng)運(yùn)而生。Song等[2]采用流密碼對關(guān)鍵詞進(jìn)行加密,通過關(guān)鍵詞與密文文件之間的一一匹配,即可獲悉該密文中是否包含該關(guān)鍵詞,開啟了密文關(guān)鍵詞檢索的新篇章。隨后,研究者們提出了許多的改進(jìn)方案[3-5],為可搜索加密注入了新的活力。Dan等[6]最早提出了公鑰加密的關(guān)鍵詞搜索方案,以解決服務(wù)器不可信時(shí)的路由問題。在這個(gè)方案中,用戶只需要擁有私鑰即可以通過搜索獲得經(jīng)過公鑰加密的數(shù)據(jù)。隨后,研究者們[7-8]提出了應(yīng)用于各種場景的可搜索加密方案,這些方案推動了可搜索加密技術(shù)的發(fā)展。
然而,以上的方案只考慮了搜索關(guān)鍵詞,并沒有考慮每個(gè)人在提交相同關(guān)鍵詞時(shí)的真實(shí)需求。世界上沒有相同的兩片樹葉,同樣也不會存在著興趣完全相同的人,因此,如何根據(jù)用戶的興趣及關(guān)鍵詞返回用戶滿意的搜索結(jié)果,關(guān)乎著用戶搜索體驗(yàn)的好壞。文獻(xiàn)[9]結(jié)合內(nèi)容過濾及協(xié)同過濾的方法為用戶提供個(gè)性化的搜索結(jié)果,實(shí)驗(yàn)結(jié)果表明該方法能夠提供精確的搜索結(jié)果,提升用戶的搜索體驗(yàn)。文獻(xiàn)[10]通過挖掘用戶的點(diǎn)擊數(shù)據(jù)獲取用戶的興趣偏好,同時(shí)引入了用戶的位置信息,并采用熵來平衡用戶偏好與位置信息之間的權(quán)重,該方法提高了搜索的精確度,提升了用戶的搜索體驗(yàn)。
但上述方法卻只限于明文搜索,如何很好地實(shí)現(xiàn)密文環(huán)境下的個(gè)性化搜索,提升用戶的搜索體驗(yàn),還是一個(gè)任重而道遠(yuǎn)的事情。文獻(xiàn)[11]通過用戶的搜索歷史,并根據(jù)語義網(wǎng)(WordNet)構(gòu)建用戶模型,通過關(guān)鍵詞優(yōu)先級將用戶興趣融入用戶的查詢關(guān)鍵詞,然后對存儲在云服務(wù)器上的密文進(jìn)行搜索,并返回相關(guān)性得分最高的前K個(gè)搜索結(jié)果給用戶,實(shí)現(xiàn)在密文環(huán)境下個(gè)性化搜索的目的,但該方法存在3個(gè)不足:1)索引構(gòu)建時(shí)間太長,不僅加大了數(shù)據(jù)擁有者構(gòu)建索引的負(fù)擔(dān),也不利于索引的更新;2)云服務(wù)器需要計(jì)算每個(gè)查詢與所有文件索引的相關(guān)性得分,云服務(wù)器的計(jì)算負(fù)擔(dān)不容小覷,這可能使云服務(wù)器成為性能瓶頸;3)為了保護(hù)用戶的隱私信息不被云服務(wù)器知曉,引入的假關(guān)鍵詞不僅增加了云服務(wù)器的開銷,還降低了查詢的精確度,而高的查詢精確度是提高用戶搜索體驗(yàn)的保證。
基于以上研究,本文通過引入邊緣服務(wù)器,提出一種基于多邊緣服務(wù)器的個(gè)性化搜索隱私保護(hù)方法,實(shí)現(xiàn)了密文環(huán)境下的個(gè)性化搜索。具體的創(chuàng)新點(diǎn)如下。
1)文件索引存儲在邊緣服務(wù)器中,而文件的密文存儲在云服務(wù)器中,從源頭上保證了文件索引不被云服務(wù)器知曉。
2)通過索引的切割,邊緣服務(wù)器只能得到部分索引信息,通過在邊緣服務(wù)器上加密索引,大大減輕了數(shù)據(jù)擁有者構(gòu)建索引的負(fù)擔(dān)。
3)通過引入隨機(jī)數(shù)后,將用戶查詢矩陣進(jìn)行切割、矩陣加密,在優(yōu)化整個(gè)系統(tǒng)查詢性能的同時(shí)保護(hù)了用戶的查詢隱私。
圖1為基于多邊緣服務(wù)器的隱私保護(hù)模型,該模型由用戶、數(shù)據(jù)擁有者、邊緣服務(wù)器和云服務(wù)器這4類實(shí)體構(gòu)成。數(shù)據(jù)擁有者負(fù)責(zé)生成密鑰sk并通過安全信道將查詢加密密鑰與密文密鑰key傳送給用戶,同時(shí)還負(fù)責(zé)構(gòu)建文件的索引并將索引切割后將pi與相應(yīng)的索引加密密鑰MiT發(fā)送給邊緣服務(wù)器i,同時(shí)數(shù)據(jù)擁有者將密文C傳送至云服務(wù)器,以便后續(xù)的查詢。在用戶端,用戶輸入查詢關(guān)鍵詞以生成查詢矩陣,經(jīng)過用戶興趣模型后,用戶查詢矩陣發(fā)生變化使其不僅帶有用戶本次查詢關(guān)鍵詞的信息,同時(shí)帶有用戶的興趣信息,然后用戶將轉(zhuǎn)換后的查詢矩陣進(jìn)行切割并用相對應(yīng)的密鑰加密生成Ti,最后將Ti發(fā)送至相應(yīng)的邊緣服務(wù)器i。邊緣服務(wù)器負(fù)責(zé)索引的加密,根據(jù)安全內(nèi)積計(jì)算用戶查詢與索引的相關(guān)性得分Si,隨后將計(jì)算得到的相關(guān)性得分矩陣發(fā)送到云服務(wù)器中。云服務(wù)器負(fù)責(zé)將邊緣服務(wù)器發(fā)送來的相關(guān)性得分進(jìn)行累加,并根據(jù)累加后的相關(guān)性得分的高低,將相關(guān)性得分最高的前K個(gè)密文給用戶。該方法通過引入多邊緣服務(wù)器,并將索引以及用戶查詢矩陣進(jìn)行切割后加密,大大地減少了計(jì)算量,同時(shí)使用多邊緣服務(wù)器計(jì)算用戶查詢與索引之間的相關(guān)性得分能夠大幅度地減少查詢的時(shí)間,進(jìn)而提升用戶體驗(yàn)。通過引入多邊緣服務(wù)器,減少了云服務(wù)器以及數(shù)據(jù)擁有者的計(jì)算開銷,提升了整個(gè)系統(tǒng)的效率,同時(shí)保護(hù)了用戶的查詢隱私。
圖1 基于多邊緣服務(wù)器的隱私保護(hù)模型
定義1TF-IDF(term-frequency-inverse document frequency)索引構(gòu)建方法。TF-IDF方法構(gòu)建的索引能夠很好地反映文件中關(guān)鍵詞的重要程度,這在很多文獻(xiàn)中都得到了證實(shí)[12-14]。本文采用 TF-IDF構(gòu)建文件的索引,以期關(guān)鍵詞能更好地反映文件。
定義2相關(guān)性得分。相關(guān)性得分的高低反映了加密后的查詢矩陣Ti與加密后的索引Ii的相關(guān)性程度,得分越高,說明兩者的相關(guān)性程度越高。
定義3安全內(nèi)積計(jì)算[15]。為了達(dá)到保護(hù)用戶的隱私不被泄露及完成相關(guān)性得分計(jì)算的目標(biāo),采用了先對用戶查詢及索引進(jìn)行加密,然后通過安全內(nèi)積計(jì)算的方法獲得兩者的相關(guān)性得分。安全內(nèi)積計(jì)算如式(1)所示。
定義4用戶興趣模型。用戶興趣模型反映了用戶的偏好為了返回和用戶搜索意圖最匹配的搜索結(jié)果,需要構(gòu)建用戶的興趣模型,張強(qiáng)等[16]通過對用戶的搜索歷史捕捉用戶的偏好;Du等[17]根據(jù)用戶的喜好程度建立了多層次的用戶模型,以使其能充分地反映用戶的真實(shí)需求;本文為了能返回符合用戶興趣的密文,采用了文獻(xiàn)[11]的方法構(gòu)建用戶興趣模型,通過用戶的查詢歷史及WordNet[18]英語詞匯數(shù)據(jù)庫來建立具有語義信息的用戶興趣模型。
定義5索引切割。本文采用多個(gè)邊緣服務(wù)器,用于索引的加密及用戶查詢與其上索引的相關(guān)性得分計(jì)算。為了實(shí)現(xiàn)這一功能,數(shù)據(jù)擁有者需要根據(jù)索引加密密鑰的維度對索引進(jìn)行切割。為了簡單起見,假設(shè)需要將索引切割成3份,索引加密密鑰為3階方陣,數(shù)據(jù)擁有者根據(jù)索引加密密鑰方陣的維數(shù),將索引切割成3份。其中,索引中的每一行代表一個(gè)文件的索引,行中的每一個(gè)元素代表文件中相應(yīng)關(guān)鍵詞的權(quán)重。數(shù)據(jù)擁有者根據(jù)索引加密矩陣的維數(shù),以 3列為一單位對整個(gè)索引進(jìn)行切割。如圖 2所示,整個(gè)索引被切割成了3個(gè)15× 3的矩陣。
圖2 索引切割
定義 6查詢矩陣切割。查詢矩陣為行矩陣,維度等于索引的列數(shù),其切割方法與索引切割方法相同,也是根據(jù)相應(yīng)密鑰的維數(shù)進(jìn)行切割,因?yàn)椴樵兙仃嚨募用苊荑€與索引的加密密鑰一一對應(yīng),因此經(jīng)過切割后的查詢矩陣也會和切割后的索引矩陣一一對應(yīng)。
本文假設(shè)邊緣服務(wù)器不會進(jìn)行合謀攻擊,且邊緣服務(wù)器不會將索引以及索引加密密鑰泄露給第三方。同時(shí)假設(shè)數(shù)據(jù)擁有者能夠通過可信信道安全地將密鑰發(fā)送給用戶,將索引以及索引加密密鑰發(fā)送給邊緣服務(wù)器,將密文發(fā)送給云服務(wù)器。這個(gè)是很容易實(shí)現(xiàn)的,如通過 SSL/TLS(secure socket layer/transport layer security)通信方式就能很容易地達(dá)到這一目的[19-20]。
1)誠實(shí)而好奇(HBC, honest-but-curious)模型[21-23]。在HBC模型中,攻擊者嚴(yán)格遵照協(xié)議的約定執(zhí)行整個(gè)流程,但為了某些利益或滿足自己的好奇心,會試圖從已知的信息中挖掘用戶的隱私信息(例如通過用戶的快遞信息推測用戶的家庭住址,或者通過用戶的網(wǎng)購信息推測用戶的喜好)。本文假設(shè)云服務(wù)器和邊緣服務(wù)器是誠實(shí)而好奇的攻擊者,其試圖獲取用戶的隱私信息。
2)惡意攻擊模型(malicious model)。惡意攻擊者完全不遵守協(xié)議的約定,可能發(fā)起拒絕服務(wù)攻擊(DoS, denial of service attack),也可能發(fā)起重放攻擊,甚至利用社會工程學(xué)進(jìn)行人身攻擊。本文主要關(guān)注的是保護(hù)用戶的隱私,因而這些主動攻擊不是本文的重點(diǎn),并且有相當(dāng)多的文獻(xiàn)對惡意攻擊做了相關(guān)研究[24-25]。
本文提出了一種基于多邊緣服務(wù)器的個(gè)性化搜索隱私保護(hù)方法,該方法的基本思想是引入多個(gè)邊緣服務(wù)器。與文獻(xiàn)[11]相比,在保護(hù)用戶隱私的前提下,引入邊緣服務(wù)器有如下作用。
1)在邊緣服務(wù)器上加密索引,能大幅度地減少數(shù)據(jù)擁有者的負(fù)擔(dān),同時(shí)提升索引的加密效率。
2)在邊緣服務(wù)器上計(jì)算用戶查詢矩陣和索引的相關(guān)性得分,在減輕云服務(wù)器計(jì)算開銷的同時(shí)能夠提升搜索的效率,進(jìn)而縮短用戶獲得搜索結(jié)果的時(shí)間,從而提高用戶的搜索體驗(yàn)。
如圖3所示,本文所提方法主要包括6個(gè)階段,依次是系統(tǒng)初始化階段、索引加密階段、查詢生成階段、得分計(jì)算階段、查詢處理階段和結(jié)果解密階段。相關(guān)的符號描述如表1所示。
圖3 基于多邊緣服務(wù)器的隱私保護(hù)方法流程
表1 符號描述
在系統(tǒng)初始化階段,數(shù)據(jù)擁有者隨機(jī)切割索引,并設(shè)第i部分索引的關(guān)鍵詞數(shù)為ni(i∈[1,h]),為了盡量減少系統(tǒng)的開銷,數(shù)據(jù)擁有者選取為了簡單起見,本文假設(shè)nm odh=0 ,然后生成h個(gè)ni×ni的可逆矩陣Mi(i∈[1,h])作為密鑰 sk,因而密鑰sk是一個(gè)h元組{Mi} 。
數(shù)據(jù)擁有者根據(jù)“TF×IDF”模型構(gòu)建文件集的索引p,并通過索引切割方法將其切割為h份,然后數(shù)據(jù)擁有者利用安全信道將索引pi以及索引
為了降低加密與解密文件的開銷,數(shù)據(jù)擁有者使用對稱密碼技術(shù)(如3DES、AES)對文件集C中的每個(gè)文件進(jìn)行加密,并將加密后的文件集C發(fā)送給云服務(wù)器。
大數(shù)據(jù)時(shí)代的到來使數(shù)據(jù)量呈指數(shù)級增長,為了減輕數(shù)據(jù)擁有者的負(fù)擔(dān),利用邊緣服務(wù)器加密索引。由于多邊緣服務(wù)器能并行加密索引,并且對切割后的索引加密降低了時(shí)間復(fù)雜度,這大大地縮短了索引加密的時(shí)間。邊緣服務(wù)器利用式(2)對索引進(jìn)行加密。
步驟1用戶查詢的轉(zhuǎn)換
系統(tǒng)會根據(jù)用戶提交的查詢關(guān)鍵詞生成查詢矩陣,查詢矩陣根據(jù)用戶興趣模型進(jìn)行變化,當(dāng)用戶興趣模型中關(guān)鍵詞的權(quán)重不為0時(shí),查詢矩陣對應(yīng)的關(guān)鍵詞權(quán)重作為用戶模型中的權(quán)重;當(dāng)用戶興趣模型中關(guān)鍵詞權(quán)重為0時(shí),查詢矩陣中對應(yīng)的關(guān)鍵詞權(quán)重不變,為初始值 1。轉(zhuǎn)換后的查詢矩陣不僅包含用戶的查詢信息,還包含用戶的興趣信息,例如用戶的查詢矩陣 q=[1,1,0,0,0,0,1,0,0],用戶興趣模型U =[9,0,8,1,0,0,2,0,7],經(jīng)過轉(zhuǎn)換后的查詢矩陣 q=[9,1,0,0,0,0,2,0,0]。
步驟2查詢矩陣的切割與加密
為了迷惑邊緣服務(wù)器和云服務(wù)器,用戶首先隨機(jī)地生成值a(a>0),并讓a和轉(zhuǎn)換后的查詢矩陣q相乘,使q中元素的值變?yōu)閍倍,記為aq,然后根據(jù)加密密鑰的維度,將aq切割為h份,記為aqi(i∈[1,h]),接下來根據(jù)加密用戶的查詢,最后用戶將Ti發(fā)送到第i個(gè)邊緣服務(wù)器,參數(shù)K隨機(jī)發(fā)送到其中的一個(gè)邊緣服務(wù)器。
邊緣服務(wù)器i在收到用戶的查詢請求Ti后,其利用安全內(nèi)積計(jì)算并根據(jù)式(3)計(jì)算獲得索引Ii與Ti的相關(guān)性得分Si,計(jì)算得到的Si是一個(gè)列矩陣。
從式(3)可以看出,邊緣服務(wù)器計(jì)算得到的Si確實(shí)為Ii與Ti內(nèi)積的a倍,這說明能通過該方法將文件按相關(guān)性得分進(jìn)行排序,從而返回用戶最相關(guān)的搜索結(jié)果。
當(dāng)邊緣服務(wù)器將計(jì)算得到的Si以及參數(shù)K上傳到云服務(wù)器后,云服務(wù)器將所有邊緣服務(wù)器計(jì)算得到的Si進(jìn)行累加,從而得到S,即,所得到的S是一個(gè)列矩陣,S(j)(1≤j≤m)代表用戶查詢與第j個(gè)文件的相關(guān)性得分。云服務(wù)器根據(jù)K將相關(guān)性得分最高的前K個(gè)密文文件返回給用戶。
當(dāng)用戶收到云服務(wù)器返回給自己的 topK密文后,用戶使用解密密鑰key對文件進(jìn)行解密,從而完成整個(gè)搜索的過程。
挑戰(zhàn) 1在本文中,為了充分利用邊緣服務(wù)器的計(jì)算能力,邊緣服務(wù)器將獲得部分索引以及加密該索引的密鑰。如果邊緣服務(wù)器可以知道用戶的查詢矩陣或用戶查詢矩陣與文件索引的相關(guān)性得分,那么邊緣服務(wù)器將贏得這個(gè)挑戰(zhàn)。
定理 1本文所提方法可以抵御邊緣服務(wù)器誠實(shí)而好奇的窺視。
證明數(shù)據(jù)擁有者通過索引切割方法將索引切割成h份子信息邊緣服務(wù)器i從數(shù)據(jù)擁有者處獲得了部分索引pi及加密該索引的密鑰根據(jù)邊緣服務(wù)器能夠計(jì)算得到用戶的查詢經(jīng)過轉(zhuǎn)換、切割與加密后,形成h份子信息邊緣服務(wù)器i從用戶處獲得了部分搜索信息Ti,邊緣服務(wù)器i根據(jù)能夠計(jì)算出用戶上傳到該邊緣服務(wù)器的aqi,但每次發(fā)送查詢前,用戶都會在用戶端隨機(jī)地生成a,因而邊緣服務(wù)器i不可能根據(jù)aqi推斷出qi,假設(shè)邊緣服務(wù)器不共謀,因而,邊緣服務(wù)器i只能獲得aqi。然而即使邊緣服務(wù)器共謀,攻擊者能夠獲得aq,但用戶在每次發(fā)送查詢時(shí),都會隨機(jī)地選擇a(a>0),因此,攻擊者不可能獲得q,并且攻擊者沒有關(guān)鍵詞詞典,其不可能根據(jù)aq的值推斷出用戶的查詢關(guān)鍵詞。
由式(4)~式(6)知,即使用戶兩次查詢的查詢向量qi相同,由于a1≠a2,邊緣服務(wù)器通過計(jì)算獲得的相關(guān)性得分 Si1≠ Si2,因此其不可能知道用戶的查詢矩陣,更不可能推斷出查詢矩陣與文件索引的相關(guān)性得分。
經(jīng)過以上的分析可知,邊緣服務(wù)器不能確定地猜出用戶的查詢以及查詢矩陣與文件索引的相關(guān)性得分。
挑戰(zhàn)2云服務(wù)器負(fù)責(zé)密文的存儲、查詢處理并將最符合用戶本次查詢請求的前K個(gè)密文返回給用戶。云服務(wù)器希望從中獲取用戶的隱私信息,進(jìn)而獲得經(jīng)濟(jì)效益或滿足自己的好奇心,同時(shí)也希望獲得文件的明文。如果云服務(wù)器能夠從中獲得用戶的具體查詢信息或者將存儲在其上的明文解密,那么云服務(wù)器將贏得這個(gè)游戲。
定理 2本文算法可以抵御云服務(wù)器誠實(shí)而好奇的攻擊。
證明由于云服務(wù)器只知道密文以及加密、解密算法,文件采用對稱密碼技術(shù)(如3DES、AES)進(jìn)行加密,其安全性已被證明,云服務(wù)器沒有用于文件解密的密鑰 key,因此其不可能將密文解密成明文,更不可能獲悉返回用戶的密文的具體信息。云服務(wù)器通過從邊緣服務(wù)器發(fā)送來的Si計(jì)算用戶查詢與文件之間的相關(guān)性得分S,而S的值與a相關(guān),a為用戶隨機(jī)生成的大于0的數(shù),由式(7)~式(9)知,即使用戶兩次查詢的查詢向量qi相同,對于同一文件,S1≠ S2。因而云服務(wù)器不可能根據(jù)相關(guān)性得分對用戶的具體查詢信息進(jìn)行揣測。
從以上分析可知,云服務(wù)器不能猜測出返回給用戶的密文信息以及用戶的具體查詢信息。
挑戰(zhàn) 3攻擊者通過竊聽不安全的通信信道,試圖從這些數(shù)據(jù)中挖掘出用戶的某些敏感信息,如果攻擊者能夠恢復(fù)用戶的查詢矩陣或者獲知返回用戶的文件信息,那么攻擊者將贏得這個(gè)游戲。
定理 3本文算法能抵御惡意攻擊者的竊聽攻擊。
證明假設(shè)惡意攻擊者攔截到用戶發(fā)送給所有邊緣服務(wù)器的查詢請求Ti,由于其不知道加密密鑰并且在每次查詢時(shí)隨機(jī)數(shù)a的值均不相同,因而惡意攻擊者不可能恢復(fù)用戶的查詢矩陣q。假設(shè)攻擊者通過偵聽云服務(wù)器與用戶之間的通信信道,獲得了云服務(wù)器返回給用戶的密文,但由于沒有密文的解密密鑰key,其不可能破解經(jīng)過對稱密碼技術(shù)(如3DES、AES)進(jìn)行加密后的文件,因此本文算法能抵御惡意攻擊者的竊聽攻擊。
從以上分析可知,惡意攻擊者既不能獲得用戶的查詢矩陣,也不能猜測出云服務(wù)器返回給用戶的密文信息。
實(shí)驗(yàn)主要從索引加密、用戶查詢生成、得分計(jì)算及查詢處理這4個(gè)方面分析本方法的性能,并將其與MRSE[26]以及PRSE[11]方法進(jìn)行比較,由于邊緣服務(wù)器數(shù)量為1時(shí)會造成部分隱私的泄露,因此實(shí)驗(yàn)中邊緣服務(wù)器為1的實(shí)驗(yàn)數(shù)據(jù)僅作性能對比。采用 Yelp數(shù)據(jù)集中的“business”與“review”數(shù)據(jù)作為本文實(shí)驗(yàn)的數(shù)據(jù)集,以一條“business”數(shù)據(jù)以及與該“business”數(shù)據(jù)相關(guān)的所有“review”數(shù)據(jù)作為一個(gè)文件,進(jìn)而形成文件集,并采用TF×IDF模型構(gòu)建這些文件的索引,以期關(guān)鍵詞能更好地反映文件。在文件中,每個(gè)關(guān)鍵詞的重要程度是不一樣的,關(guān)鍵詞的權(quán)重越大,說明該關(guān)鍵詞越重要,因此只需要選取權(quán)重較大的關(guān)鍵詞即能很好地反映文件,同時(shí)避免了因關(guān)鍵詞字典過于龐大而增加計(jì)算開銷與存儲開銷。在構(gòu)建完關(guān)鍵詞字典后,一個(gè)文件便可以按照關(guān)鍵詞字典中關(guān)鍵詞的順序,形成用關(guān)鍵詞的權(quán)重表示的文件索引。實(shí)驗(yàn)的硬件環(huán)境為 2.6 GHz Intel(R)Core(TM)i7-6700HQ CPU,16.00 GB內(nèi)存,操作系統(tǒng)為Microsoft Windows 10,軟件為Matlab R2016b,并使用OriginPro 2017對實(shí)驗(yàn)數(shù)據(jù)進(jìn)行仿真。
如今,數(shù)據(jù)量呈指數(shù)級增長勢,在這樣的環(huán)境下,快速地獲得需要的信息變得越來越迫切,因而快速地獲得高精度的搜索結(jié)果成為了提高用戶搜索體驗(yàn)的法寶。本文所提方法能夠在保護(hù)用戶隱私的同時(shí)返回用戶滿意的搜索結(jié)果,而用戶對返回結(jié)果的滿意程度在一定程度上反映了精確度的高低。為了評價(jià)所提方法的精確度,隨機(jī)選擇10位用戶使用本方法進(jìn)行搜索,結(jié)果表明,有9人對搜索結(jié)果滿意,這從一定程度上反映了本方法是可行的。
為了簡單明了地說明本方法能夠在密文環(huán)境下實(shí)現(xiàn)個(gè)性化搜索的目標(biāo),隨機(jī)選擇Yelp數(shù)據(jù)集中的200條“business”數(shù)據(jù)以及與這些“business”數(shù)據(jù)相關(guān)的所有“review”數(shù)據(jù),生成了200個(gè)文件。然后根據(jù) TF-IDF模型獲得各個(gè)文件中的關(guān)鍵詞權(quán)重,并選擇各個(gè)文件中關(guān)鍵詞權(quán)重最大的前10個(gè)關(guān)鍵詞生成關(guān)鍵詞字典,實(shí)驗(yàn)中關(guān)鍵詞詞典共有1 732個(gè)關(guān)鍵詞。最后,根據(jù)關(guān)鍵詞字典中關(guān)鍵詞的順序,采用關(guān)鍵詞權(quán)重表示文件的索引,因此,每個(gè)文件可以表示為1× 1732的矩陣。
為了說明本方法中云服務(wù)器返回的搜索結(jié)果不僅和用戶的查詢相關(guān),也與用戶的歷史查詢相關(guān),即與用戶的興趣相關(guān)。考慮了2種情況下云服務(wù)器返回用戶的搜索結(jié)果列表,具體如下。
1)只考慮用戶提交的查詢關(guān)鍵詞。本文實(shí)驗(yàn)中假設(shè)用戶選擇的關(guān)鍵詞數(shù)占總關(guān)鍵詞數(shù)的30%(由于本文實(shí)驗(yàn)中總文件數(shù)為200個(gè),為了有更多的相關(guān)文檔,因此假設(shè)用戶選擇的關(guān)鍵詞數(shù)較多。)。
2)既考慮用戶的查詢關(guān)鍵詞,也考慮用戶的興趣模型。在實(shí)驗(yàn)中,假設(shè)用戶進(jìn)行了1 000次的歷史查詢,并設(shè)置這1 000次查詢中的用戶興趣偏好如表2所示:即有20%的概率選擇前500個(gè)關(guān)鍵詞,15%的概率選擇第501~1 000個(gè)的關(guān)鍵詞,10%的概率選擇第1 001~1 500個(gè)的關(guān)鍵詞,1%的概率選擇第1 501~1 732個(gè)關(guān)鍵詞。
表2 用戶興趣偏好設(shè)置
設(shè)置參數(shù)K=10,即云服務(wù)器返回得分最高的前10個(gè)搜索結(jié)果給用戶,實(shí)驗(yàn)結(jié)果如表3所示。
表3 2種情況下搜索結(jié)果對比
從表3可以看出,云服務(wù)器在2種情況下返回給用戶的搜索結(jié)果列表是不同的,說明了用戶興趣模型真真切切地影響了搜索結(jié)果。同時(shí)也可以看到,在這2種情況下,云服務(wù)器返回給用戶的文件有6個(gè)是相同的,分別是135、85、41、32、13、90。
從這個(gè)實(shí)驗(yàn)可以看出,即使對于相同的查詢關(guān)鍵詞,由于每個(gè)人的興趣偏好、搜索歷史不相同,云服務(wù)器返回的搜索結(jié)果也不會相同,因此本方法適用于個(gè)性化搜索,尤其適用于密文環(huán)境下的個(gè)性化搜索。同時(shí),由于返回的搜索結(jié)果不僅與用戶的搜索關(guān)鍵詞相關(guān),也與用戶的搜索歷史相關(guān),這無疑能夠提高本方法的精確度。
召回率衡量搜索到所有相關(guān)文檔的能力,但本方法中,云服務(wù)器是根據(jù)用戶提交的參數(shù)K返回相關(guān)性得分最高的前K個(gè)文件給用戶。當(dāng)K越大,召回率顯然會相應(yīng)地提高,比如當(dāng)用戶設(shè)置K=10時(shí),而與用戶此次查詢相關(guān)的文檔有100個(gè)時(shí),召回率會很低。但隨著K的增大,召回率也會相應(yīng)地增加,因而在本文中討論召回率的大小是沒有必要的,也是沒有意義的。
6.1節(jié)的實(shí)驗(yàn)表明,在考慮或忽略用戶興趣模型時(shí),2種情況下返回的搜索結(jié)果是不同的。為了更進(jìn)一步地說明本文所提方法能很好地實(shí)現(xiàn)個(gè)性化搜索的目標(biāo),考慮當(dāng)用戶的搜索關(guān)鍵詞相同時(shí),云服務(wù)器返回給具有不同興趣偏好的3個(gè)用戶的搜索結(jié)果。
本節(jié)采用6.1節(jié)中的數(shù)據(jù)集進(jìn)行相關(guān)實(shí)驗(yàn)。
用戶興趣偏好設(shè)置如表4所示,既考慮用戶的查詢關(guān)鍵詞,也考慮用戶的興趣模型。在實(shí)驗(yàn)中,假設(shè)用戶進(jìn)行了1 000次的歷史查詢,并設(shè)置這1 000次查詢中的用戶興趣偏好如表4所示,即用戶1、用戶2、用戶3分別以20%、12%、5%的概率選擇前500個(gè)關(guān)鍵詞,分別以15%、20%、12%的概率選擇第501~1 000的關(guān)鍵詞;以10%、15%、5%的概率選擇第1 001~1 500的關(guān)鍵詞,分別以1%、6%、10%的概率選擇第1 501~ 1 732個(gè)關(guān)鍵詞。
表4 用戶興趣偏好設(shè)置
為了進(jìn)行對比,用戶查詢和用戶 1的興趣模型與6.1節(jié)中相同,并設(shè)置參數(shù)K=10,即云服務(wù)器返回得分最高的前10個(gè)搜索結(jié)果給用戶,實(shí)驗(yàn)結(jié)果如表5所示。
表5 不同用戶相同查詢時(shí)返回的搜索結(jié)果對比
從表5可以看出,當(dāng)用戶的查詢相同時(shí),在忽略用戶興趣模型的情況下,返回給用戶1至用戶3的查詢結(jié)果是完全相同的;當(dāng)考慮用戶的興趣模型時(shí),即使用戶的查詢完全相同,返回給用戶的查詢結(jié)果也是不相同的,因?yàn)樵品?wù)器返回給用戶的查詢結(jié)果不僅與用戶的查詢相關(guān),也與用戶的搜索歷史相關(guān),這無疑會使查詢結(jié)果更符合用戶的需求,進(jìn)而提升用戶的搜索體驗(yàn)。同時(shí),本文算法完全在密文環(huán)境下進(jìn)行,很好地保護(hù)了用戶的隱私。
不同于MRSE[26]和PRSE[11]在數(shù)據(jù)擁有者處進(jìn)行索引的加密,本文利用邊緣服務(wù)器對索引進(jìn)行加密。同時(shí),本文對 PRSE中的索引加密方法進(jìn)行了改進(jìn)。邊緣服務(wù)器的引入既降低了索引加密的時(shí)間復(fù)雜度,也保護(hù)了索引信息不被云服務(wù)器知曉。
圖 4(a)為字典中的關(guān)鍵詞數(shù)n=18711,文件數(shù)m為2 000~10 000時(shí),索引加密時(shí)間隨邊緣服務(wù)器數(shù)的變化情況,其表明索引加密的時(shí)間隨著文件數(shù)的增加而增加,而隨著邊緣服務(wù)器的增加而減小。在圖 4(a)中,當(dāng)邊緣服務(wù)器數(shù)量h=3,文件數(shù)從2 000增加到10 000時(shí),索引加密時(shí)間從1.72 s增加到了7.03 s。圖4(b)為當(dāng)邊緣服務(wù)器的數(shù)量一定、文件數(shù)為10 000時(shí),索引加密時(shí)間隨著字典中的關(guān)鍵詞數(shù)的增加呈二次曲線增長。當(dāng)字典中的關(guān)鍵詞數(shù)與文件數(shù)一定時(shí),索引加密時(shí)間隨著邊緣服務(wù)器的增加而急劇減小。
圖4 基于多邊緣服務(wù)器的隱私保護(hù)方法索引加密時(shí)間模型
為了更好地驗(yàn)證本方法的性能,將本文算法的索引加密時(shí)間與MRSE以及PRSE方法進(jìn)行對比,并取字典中的關(guān)鍵詞數(shù)n=18711,如表6所示,在對比實(shí)驗(yàn)中,采用3個(gè)邊緣服務(wù)器對文件的索引進(jìn)行加密。從表6可以看出,當(dāng)文件數(shù)為2 000時(shí),本文算法用時(shí)僅為1.72 s,而MRSE和PRSE方法分別用時(shí)6 211.11 s和5 531.48 s,當(dāng)文件數(shù)為10 000時(shí),本文算法加密用時(shí)為7.03 s,而MRSE和PRSE方法分別用時(shí)32 243.81 s和30 360.43 s。本文算法索引加密用時(shí)不超過MRSE方案的3?,不超過PRSE方案的4?。
在整個(gè)索引的構(gòu)建開銷中,索引加密占了主要的部分,當(dāng)索引加密時(shí)間降得足夠低時(shí),有利于采用 TF-IDF模型更新索引,因而,本方法也為索引的更新提供了新的思路。
表6 3種方案加密時(shí)間對比
用戶查詢生成包括用戶查詢矩陣的轉(zhuǎn)換與用戶查詢矩陣的切割與加密,為了得到“千人千面”的個(gè)性化查詢結(jié)果,需要根據(jù)用戶的興趣模型對用戶的查詢矩陣進(jìn)行轉(zhuǎn)換,使轉(zhuǎn)換后的用戶查詢矩陣不僅帶有用戶的查詢信息,也帶有用戶的個(gè)性化信息,進(jìn)而使用戶得到個(gè)性化的搜索結(jié)果。以明文形式存在的用戶查詢矩陣在存儲與傳輸?shù)倪^程中容易泄露用戶的查詢隱私,因此需要對轉(zhuǎn)換后的用戶查詢矩陣進(jìn)行加密。為了迷惑邊緣服務(wù)器與第三方攻擊者,使用隨機(jī)生成的迷惑數(shù)a乘以轉(zhuǎn)換后的用戶查詢矩陣q后,采用類似于索引切割的方法,對轉(zhuǎn)換后的用戶查詢矩陣q進(jìn)行切割,生成qi(i∈[1,h]),并將其用加密后,將Ti發(fā)送到對應(yīng)的服務(wù)器,同時(shí)將參數(shù)K發(fā)送到任意一個(gè)邊緣服務(wù)器以告知云服務(wù)器所需要返回的查詢結(jié)果數(shù)目。
圖 5(a)為本文算法取邊緣服務(wù)器數(shù)量h=3時(shí),與MRSE以及PRSE方法在生成用戶查詢時(shí)的性能對比,其表明隨著字典中關(guān)鍵詞數(shù)的增加,3種方法的用戶查詢生成時(shí)間均增加,并且本文算法性能明顯優(yōu)于MRSE以及PRSE方法,當(dāng)字典中關(guān)鍵詞數(shù)越多時(shí),優(yōu)勢越明顯,如當(dāng)字典中關(guān)鍵詞數(shù)為18 000時(shí),使用本方法生成用戶查詢的時(shí)間為0.051 s,而MRSE和PRSE方法生成用戶查詢的時(shí)間分別為0.292 s與0.293 s。用戶查詢的生成為用戶整個(gè)查詢的一部分,用戶查詢的生成時(shí)間越短,用戶的搜索體驗(yàn)越好。
圖5(b)展示了邊緣服務(wù)器數(shù)量以及字典中關(guān)鍵詞數(shù)與用戶查詢生成時(shí)間的關(guān)系。從圖 5(b)可以看出,隨著字典中關(guān)鍵詞數(shù)的增加,用戶查詢生成時(shí)間也相應(yīng)地增加。而隨著邊緣服務(wù)器的增加,用戶查詢生成時(shí)間減小,如當(dāng)字典中的關(guān)鍵詞數(shù)為18 000,邊緣服務(wù)器的數(shù)量從1增加到5時(shí),用戶查詢生成時(shí)間從0.136 s減小到0.034 s。
圖5 基于多邊緣服務(wù)器的隱私保護(hù)方法用戶查詢生成
得分計(jì)算為每個(gè)邊緣服務(wù)器計(jì)算出用戶部分查詢與其上的部分索引的相關(guān)性得分Si,用戶查詢與文件索引之間的相關(guān)性得分決定了兩者的相關(guān)性,進(jìn)而決定了返回什么文件給用戶。為了保護(hù)用戶的查詢隱私,在本文算法中,邊緣服務(wù)器不會取為1,但為了更好地進(jìn)行性能的對比,取邊緣服務(wù)器數(shù)h=1、 3、 9、 27 ,字典中的關(guān)鍵詞數(shù)n=18 711。從圖6可以看出,在邊緣服務(wù)器上進(jìn)行得分計(jì)算的時(shí)間隨著文件數(shù)的增加而增加,隨著邊緣服務(wù)器數(shù)量的增加而減小。當(dāng)文件數(shù)為500時(shí),邊緣服務(wù)器數(shù)量從 1增加到27的過程中,執(zhí)行時(shí)間從0.103 s減小到0.014 2 s。當(dāng)文件數(shù)為2 500時(shí),邊緣服務(wù)器數(shù)量從1增加到27的過程中,執(zhí)行時(shí)間從0.503 s減小到0.033 s。同樣地,得分計(jì)算也為用戶搜索中的一部分,得分計(jì)算的時(shí)間越短,用戶的搜索體驗(yàn)越好。
圖6 η=18 711時(shí),得分計(jì)算時(shí)間隨文件數(shù)變化情況
云服務(wù)器為了返回與用戶此次查詢最相關(guān)的前K個(gè)結(jié)果,至少需要知道是哪K個(gè)文件與用戶的此次查詢最相關(guān),即至少需要知道與用戶相關(guān)性得分最高的前K個(gè)文件是哪些。為了實(shí)現(xiàn)這一目標(biāo),云服務(wù)器運(yùn)行查詢處理進(jìn)程,其將從邊緣服務(wù)器計(jì)算得到的Si進(jìn)行加和,得到而S中存儲了用戶查詢與文件索引的相關(guān)性得分,云服務(wù)器對S進(jìn)行處理,即可知道是哪些文件與用戶的此次查詢最相關(guān),進(jìn)而返回與用戶最相關(guān)的前K個(gè)密文。
在云服務(wù)器的查詢處理階段,本文將字典中的關(guān)鍵詞數(shù)n設(shè)置為18 711,返回用戶的文件數(shù)K設(shè)置為10。圖7表明云服務(wù)器上查詢處理的執(zhí)行時(shí)間與文件數(shù)的多少關(guān)系不是很大,這是因?yàn)椴樵兲幚碇恍枰鶕?jù)計(jì)算用戶查詢與文件之間的相關(guān)性得分,并根據(jù)相關(guān)性得分的大小對S中的元素進(jìn)行排序后將相關(guān)性得分最高的前K個(gè)文件返回給用戶,此過程的計(jì)算開銷很小,因而從實(shí)驗(yàn)結(jié)果來看,文件數(shù)的多少對查詢處理的執(zhí)行時(shí)間幾乎沒有影響。
當(dāng)文件數(shù)不變時(shí),理論上說,隨著邊緣服務(wù)器數(shù)的增加,云服務(wù)器查詢處理的執(zhí)行時(shí)間會相應(yīng)增加,圖7也表明了這一變化趨勢。但由于邊緣服務(wù)器的增加只會影響過程,并不會影響其后的相關(guān)性得分排序與結(jié)果返回,因而,邊緣服務(wù)器數(shù)量會對查詢處理時(shí)間有影響,但影響并不是特別大。從圖7也可以看出,查詢處理的時(shí)間很小,如當(dāng)文件數(shù)為2 500,邊緣服務(wù)器數(shù)為27時(shí),云服務(wù)器執(zhí)行查詢處理的時(shí)間僅為0.026 s,這為創(chuàng)造良好的用戶搜索體驗(yàn)提供了條件。
圖7 n=18 711,K=10時(shí),查詢處理執(zhí)行時(shí)間隨文件數(shù)量變化情況
隨著大數(shù)據(jù)時(shí)代的到來,信息過載與隱私保護(hù)問題越來越受到人們的關(guān)注,基于此,本文提出了一種基于多邊緣服務(wù)器的個(gè)性化搜索方法,該方法同時(shí)實(shí)現(xiàn)了密文中的個(gè)性化搜索與用戶隱私保護(hù)的統(tǒng)一,并且進(jìn)行了安全性證明。該方法通過引入多個(gè)邊緣服務(wù)器,并將文件索引存儲于邊緣服務(wù)器中,而將文件密文存儲于云服務(wù)器中,然后通過切割索引與查詢矩陣,成功實(shí)現(xiàn)了在邊緣服務(wù)器上計(jì)算部分索引與部分查詢之間的相關(guān)性得分的目的,有利于保護(hù)索引與用戶隱私。實(shí)驗(yàn)表明,該方法能夠?qū)崿F(xiàn)個(gè)性化搜索并大幅地減小用戶的搜索等待時(shí)間,有利于提高用戶的搜索體驗(yàn),同時(shí)該方法減小了云服務(wù)的存儲開銷與計(jì)算開銷,能更加適用于大量用戶的密文搜索環(huán)境。