本發(fā)明屬于信息安全技術(shù)領(lǐng)域,尤其涉及一種基于云計算的支持隱私保護的個性化搜索系統(tǒng)。
背景技術(shù):
隨著云計算時代的到來,越來越多的企業(yè)與個人將他們的數(shù)據(jù)交與云服務(wù)器進行存儲,這種外包存儲的方式既能合理利用網(wǎng)絡(luò)資源又能降低用戶維護數(shù)據(jù)的成本。
然而云服務(wù)器和非法用戶(如黑客等不具有訪問權(quán)限的用戶)可以嘗試通過訪問數(shù)據(jù)來獲取數(shù)據(jù)所包含的信息,這將直接造成數(shù)據(jù)信息和用戶隱私的泄露。為了保護數(shù)據(jù)的隱私和打擊在云服務(wù)器中以及搜索過程中非法用戶對敏感數(shù)據(jù)(電子郵件、個人健康記錄、相冊、稅務(wù)文件、金融交易等)未經(jīng)授權(quán)的訪問,數(shù)據(jù)所有者就要在數(shù)據(jù)轉(zhuǎn)移到商業(yè)公共云之前將其加密,使數(shù)據(jù)以密文形式存儲在云服務(wù)器端。當用戶需要查找包含某些關(guān)鍵字的相關(guān)文件時,傳統(tǒng)的基于明文關(guān)鍵字搜索引擎無法適用于這種加密云數(shù)據(jù)的環(huán)境,因此如何對云服務(wù)器端的密文進行搜索成為一大難題。
在學術(shù)界和工業(yè)界可搜索加密(Searchable Encryption,簡稱SE)方案被提出,以解決對加密云數(shù)據(jù)的搜索問題。然而,現(xiàn)存SE方案中個性化搜索的缺失仍然是一個亟待解決的問題。我們以明文搜索引擎為例來解釋個性化搜索的概念:不同的用戶在使用谷歌進行搜索時,即使輸入相同的一組關(guān)鍵字,由于不同用戶對查詢請求中各個關(guān)鍵字的偏好不相同,所以返回給用戶的搜索結(jié)果的排序不一定相同。此外現(xiàn)存SE方案中還存在二義性的問題,例如,考慮如下兩個查詢請求:(蘋果,香蕉)與(蘋果,電腦),前者中的蘋果代表一種水果,而后者暗指蘋果公司這個品牌。
技術(shù)實現(xiàn)要素:
本發(fā)明的發(fā)明目的是:為了解決現(xiàn)有技術(shù)中存在的以上問題,本發(fā)明提出了一種基于云計算的支持隱私保護的個性化搜索系統(tǒng),以期解決可搜索加密領(lǐng)域中個性化缺失以及無法消除二義性的問題。
本發(fā)明的技術(shù)方案是:一種基于云計算的支持隱私保護的個性化搜索系統(tǒng),包括:
數(shù)據(jù)所有端,用于從外包數(shù)據(jù)文檔集中提取各文檔的對應(yīng)索引,并對將要上傳云服務(wù)器的外包數(shù)據(jù)及索引作對稱加密處理,同時將生成的密鑰通告給授權(quán)數(shù)據(jù)使用端;引導用戶生成本地字典,根據(jù)用戶數(shù)據(jù)關(guān)鍵字所屬類別及用戶偏好對ODP目錄進行調(diào)整,將與用戶交互過程中的信息上傳到云服務(wù)器進行處理;
云服務(wù)器,用于存儲所述數(shù)據(jù)所有端上傳的外包數(shù)據(jù)、索引及ODP目錄;計算數(shù)據(jù)使用端輸入的搜索關(guān)鍵字與文檔索引相似性得分并對相似性得分進行排序;將搜索查詢結(jié)果中相似性得分排序前k的加密文件反饋給數(shù)據(jù)使用端;通過建立陷門對數(shù)據(jù)使用端進行身份驗證;
數(shù)據(jù)使用端,用于輸入多關(guān)鍵字;對用戶搜索偏好進行學習,并對搜索關(guān)鍵字的歷史記錄、用戶對搜索結(jié)果中鏈接的點擊記錄進行分析;對云服務(wù)器反饋的加密文件進行解密。
進一步地,所述數(shù)據(jù)所有端包括數(shù)據(jù)處理模塊和個性化處理模塊;所述數(shù)據(jù)處理模塊用于從外包數(shù)據(jù)文檔集中提取各文檔所包含的關(guān)鍵字,利用關(guān)鍵字分別組成對應(yīng)文檔的子索引,通過子索引的構(gòu)建獲得外包數(shù)據(jù)文檔集合對應(yīng)的索引集合,還用于采用AES對稱加密算法對外包數(shù)據(jù)及索引作對稱加密處理;所述個性化處理模塊用于利用網(wǎng)絡(luò)爬蟲對用戶所選與自身數(shù)據(jù)密切相關(guān)的網(wǎng)頁進行關(guān)鍵字提取,再對關(guān)鍵字經(jīng)過預(yù)處理后去除不符合用戶要求的部分,并對關(guān)鍵字進行編號,建立本地關(guān)鍵字字典,還用于根據(jù)外包數(shù)據(jù)的內(nèi)容及網(wǎng)絡(luò)爬蟲所獲取的關(guān)鍵字字典對ODP目錄進行修改。
進一步地,所述云服務(wù)器包括計算模塊、反饋模塊、身份驗證模塊及存儲模塊;所述計算模塊用于計算查詢向量和相應(yīng)查詢文檔集中各文檔關(guān)鍵字矩陣的相似性得分進行排序;所述反饋模塊用于選取相似性得分排在前k位的加密文檔反饋給數(shù)據(jù)使用端;所述身份驗證模塊用于通過建立陷門對數(shù)據(jù)使用端進行身份驗證。
進一步地,所述數(shù)據(jù)使用端包括查詢模塊、用戶偏好模塊及解密模塊;所述查詢模塊用于輸入待查詢的關(guān)鍵字;所述用戶偏好模塊用于通過建立用戶偏好模型對用戶搜索偏好進行學習,并利用用戶偏好模型對搜索關(guān)鍵字的歷史記錄、用戶對搜索結(jié)果中鏈接的點擊記錄進行分析;所述解密模塊用于根據(jù)所述數(shù)據(jù)處理模塊生成的密匙對云服務(wù)器反饋的加密文件進行解密。
進一步地,所述建立用戶偏好模型具體包括以下步驟:
S1、采用向量空間模塊將用戶偏好表示為{(k1,p1,t1),(k2,p2,t2),...,(ki,pi,ti)},其中ki為關(guān)鍵字,pi為關(guān)鍵字ki相對應(yīng)的偏好權(quán)重,ti為時間戳,i∈[1,m];
S2、獲取用戶偏好并建立初始化搜索目錄,采用ODP樹狀目錄結(jié)構(gòu)來存儲用戶偏好的關(guān)鍵字;
S3、根據(jù)用戶每次搜索所輸入的關(guān)鍵字對用戶偏好模塊進行更新。
進一步地,所述ODP樹狀目錄結(jié)構(gòu)中每一個節(jié)點都包含關(guān)鍵字、偏好權(quán)重和時間戳信息。
進一步地,所述步驟S2采用ODP樹狀目錄結(jié)構(gòu)來存儲用戶偏好的關(guān)鍵字還包括設(shè)定一個關(guān)鍵字數(shù)量的上界m;當搜索目錄中關(guān)鍵字數(shù)量超過m時,刪除搜索目錄中權(quán)重最小的節(jié)點。
進一步地,所述步驟S3根據(jù)用戶每次搜索所輸入的關(guān)鍵字對用戶偏好模塊進行更新具體為:判斷用戶每次搜索所輸入的關(guān)鍵字是否包含于搜索目標結(jié)構(gòu)中;若關(guān)鍵字包含于搜索目標結(jié)構(gòu)中,則提高該關(guān)鍵字原有的偏好權(quán)重,同時更新該目錄節(jié)點所對應(yīng)的時間戳為當前時刻;若關(guān)鍵字不包含于搜索目標結(jié)構(gòu)中,則為該關(guān)鍵字創(chuàng)建目錄節(jié)點,將其添加至搜索目錄中。
進一步地,所述建立用戶偏好模型還包括設(shè)定一個時間門限T,判斷關(guān)鍵字在對應(yīng)目錄節(jié)點中時間戳與當前時間的差值的絕對值是否大于時間門限T;若大于時間門限T,則將該節(jié)點從目錄中去除;若小于或等于時間門限T,則將該節(jié)點保留在目錄中。
本發(fā)明的有益效果是:本發(fā)明利用云服務(wù)器的強大計算能力,通過多關(guān)鍵字搜索排名篩選出Top-k結(jié)果,為用戶節(jié)省網(wǎng)絡(luò)開銷和本地存儲空間,并且在整個過程中云服務(wù)器和非法用戶無法獲得數(shù)據(jù)的明文內(nèi)容以及用戶查詢請求中的關(guān)鍵字內(nèi)容;還通過構(gòu)建用戶偏好模型,自動地、規(guī)范地表示用戶的搜索偏好及搜索習慣,解決了可搜索加密領(lǐng)域中個性化缺失以及無法消除二義性的問題,從而使搜索結(jié)果更加精確、搜索過程中陷門的安全性更強。
附圖說明
圖1是本發(fā)明的基于云計算的支持隱私保護的個性化搜索系統(tǒng)結(jié)構(gòu)示意圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖1所示,為本發(fā)明的基于云計算的支持隱私保護的個性化搜索系統(tǒng)結(jié)構(gòu)示意圖。一種基于云計算的支持隱私保護的個性化搜索系統(tǒng),包括:
數(shù)據(jù)所有端,用于從外包數(shù)據(jù)文檔集中提取各文檔的對應(yīng)索引,并對將要上傳云服務(wù)器的外包數(shù)據(jù)及索引作對稱加密處理,同時將生成的密鑰通告給授權(quán)數(shù)據(jù)使用端;引導用戶生成本地字典,根據(jù)用戶數(shù)據(jù)關(guān)鍵字所屬類別及用戶偏好對ODP目錄進行調(diào)整,將與用戶交互過程中的信息上傳到云服務(wù)器進行處理;
云服務(wù)器,用于存儲所述數(shù)據(jù)所有端上傳的外包數(shù)據(jù)、索引及ODP目錄;計算數(shù)據(jù)使用端輸入的搜索關(guān)鍵字與文檔索引相似性得分并對相似性得分進行排序;將搜索查詢結(jié)果中相似性得分排序前k的加密文件反饋給數(shù)據(jù)使用端;通過建立陷門對數(shù)據(jù)使用端進行身份驗證;
數(shù)據(jù)使用端,用于輸入多關(guān)鍵字;對用戶搜索偏好進行學習,并對搜索關(guān)鍵字的歷史記錄、用戶對搜索結(jié)果中鏈接的點擊記錄進行分析;對云服務(wù)器反饋的加密文件進行解密。
本發(fā)明的數(shù)據(jù)所有端使用加密算法(如AES算法)對文件集進行加密,并構(gòu)建出便于用戶進行搜索的索引I,隨后他將索引集合I和加密的文件集合C上傳到云服務(wù)器,最后數(shù)據(jù)所有者給數(shù)據(jù)用戶發(fā)送對稱密鑰及密鑰SK。數(shù)據(jù)所有端包括數(shù)據(jù)處理模塊和個性化處理模塊;所述數(shù)據(jù)處理模塊用于從外包數(shù)據(jù)文檔集中提取各文檔所包含的關(guān)鍵字,利用關(guān)鍵字分別組成對應(yīng)文檔的子索引,通過子索引的構(gòu)建獲得外包數(shù)據(jù)文檔集合對應(yīng)的索引集合,還用于采用AES對稱加密算法對外包數(shù)據(jù)及索引作對稱加密處理,同時將生成密鑰通告給授權(quán)數(shù)據(jù)使用端;所述個性化處理模塊用于利用網(wǎng)絡(luò)爬蟲對用戶所選與自身數(shù)據(jù)密切相關(guān)的網(wǎng)頁進行關(guān)鍵字提取,再對關(guān)鍵字經(jīng)過預(yù)處理后去除不符合用戶要求的部分,并對關(guān)鍵字進行編號,建立本地關(guān)鍵字字典,還用于根據(jù)外包數(shù)據(jù)的內(nèi)容及網(wǎng)絡(luò)爬蟲所獲取的關(guān)鍵字字典對ODP目錄進行修改,使系統(tǒng)所提供的服務(wù)更符合用戶的意愿,在保證用戶愉快的搜索體驗的同時,將與用戶交互過程中的信息上傳到云服務(wù)器進行處理。
本發(fā)明中本地字典的生成對個性化搜索引擎目錄的建立具有重要作用,數(shù)據(jù)所有端、云服務(wù)器和數(shù)據(jù)使用端三方的關(guān)鍵字字典需要實現(xiàn)同步,以達到個性化功能的實時更新與維護。關(guān)鍵字字典由數(shù)據(jù)所有端通過網(wǎng)絡(luò)爬蟲獲取自身數(shù)據(jù)的關(guān)鍵字在本地建立,該字典包含在云服務(wù)器的普適字典中,具有較明顯的個性化特征。ODP(open directory project)分類目錄搜索系統(tǒng)是目前網(wǎng)上最大的人工編制的分類檢索系統(tǒng),本發(fā)明利用ODP目錄作為個性化搜索引擎的基本目錄。數(shù)據(jù)所有端根據(jù)外包數(shù)據(jù)的內(nèi)容及網(wǎng)絡(luò)爬蟲所獲取的關(guān)鍵字字典對ODP目錄進行修改,除去與數(shù)據(jù)內(nèi)容及用戶自身偏好無關(guān)的分類,使搜索目錄符合用戶偏好,從而提高關(guān)鍵字搜索的效率和搜索結(jié)果的準確程度。
本發(fā)明的云服務(wù)器是一個中間實體,執(zhí)行第三方的數(shù)據(jù)存儲與反饋、被授權(quán)的檢索用戶身份驗證和計算搜索關(guān)鍵字與文檔相關(guān)性評分的功能。當收到數(shù)據(jù)用戶的陷門時,云服務(wù)器將通過查詢索引來定位匹配文件,同時,計算相應(yīng)的相關(guān)性評分,并返回Top-k的排名結(jié)果。云服務(wù)器包括計算模塊、反饋模塊、身份驗證模塊及存儲模塊;所述計算模塊用于計算查詢向量和相應(yīng)查詢文檔集中各文檔關(guān)鍵字矩陣的相似性得分進行排序;所述反饋模塊是數(shù)據(jù)使用者和云服務(wù)器交互的主界面部分,在保證用戶愉快的體驗的同時將搜索查詢結(jié)果中相似性得分排序前k的文件反饋給數(shù)據(jù)使用端;所述身份驗證模塊用于通過建立陷門對數(shù)據(jù)使用端進行身份驗證,只有在陷門建立的前提下,數(shù)據(jù)使用端才能從云服務(wù)器中獲取數(shù)據(jù)。
本發(fā)明的數(shù)據(jù)使用端通過密鑰SK將自己的查詢請求生成陷門,并將陷門發(fā)送給云服務(wù)器。之后云服務(wù)器返回最相關(guān)的Top-k加密文件和對應(yīng)的索引,數(shù)據(jù)使用者利用從數(shù)據(jù)所有者處接收到的對稱密鑰和密鑰SK解密并使用這些數(shù)據(jù)。數(shù)據(jù)使用端包括查詢模塊、用戶偏好模塊及解密模塊;所述查詢模塊用于輸入待查詢的關(guān)鍵字;所述用戶偏好模塊用于通過建立用戶偏好模型對用戶搜索偏好進行學習,并利用用戶偏好模型對搜索關(guān)鍵字的歷史記錄、用戶對搜索結(jié)果中鏈接的點擊記錄進行分析;所述解密模塊用于根據(jù)所述數(shù)據(jù)處理模塊生成的密匙對云服務(wù)器反饋的加密文件進行解密。
本發(fā)明針對單關(guān)鍵字搜索結(jié)果條目精確度較低這一缺陷提出多關(guān)鍵字搜索方式,引入多關(guān)鍵字搜索后,由于多個關(guān)鍵字間的協(xié)同作用,數(shù)據(jù)使用端輸入關(guān)鍵字所生成的查詢向量與外包數(shù)據(jù)文件集中相似性較高的文件數(shù)量明顯減少,從而放大了各文檔間的差異,云服務(wù)器返回的搜索結(jié)果將更為符合用戶意愿;由于關(guān)鍵字在云服務(wù)器存放于樹狀結(jié)構(gòu)的目錄節(jié)點中,而目錄又以類別進行劃分延拓,多關(guān)鍵字的引入在一定程度上避免了對無關(guān)類別節(jié)點的搜索,更好地符合了用戶的需求,同時提高了查詢效率。
本發(fā)明中建立用戶偏好模型具體包括以下步驟:
S1、采用向量空間模塊將用戶偏好表示為{(k1,p1,t1),(k2,p2,t2),...,(ki,pi,ti)},其中ki為關(guān)鍵字,pi為關(guān)鍵字ki相對應(yīng)的偏好權(quán)重,ti為時間戳,i∈[1,m];
S2、獲取用戶偏好并建立初始化搜索目錄,采用ODP樹狀目錄結(jié)構(gòu)來存儲用戶偏好的關(guān)鍵字;
S3、根據(jù)用戶每次搜索所輸入的關(guān)鍵字對用戶偏好模塊進行更新。
在步驟S2中,ODP樹狀目錄結(jié)構(gòu)中每一個節(jié)點都包含關(guān)鍵字、偏好權(quán)重和時間戳信息。采用ODP樹狀目錄結(jié)構(gòu)來存儲用戶偏好的關(guān)鍵字還包括設(shè)定一個關(guān)鍵字數(shù)量的上界m;當搜索目錄中關(guān)鍵字數(shù)量超過m時,刪除搜索目錄中權(quán)重最小的節(jié)點。
當用戶開始使用模型時,通過基本問題詢問等人機交互的方式來獲取用戶偏好以建立初始化搜索目錄。在長期的搜索過程中,模型通過記錄用戶輸入的關(guān)鍵字以及對搜索結(jié)果條目的點擊選擇,從而實現(xiàn)對用戶搜索偏好的學習。
由于搜索過程需要系統(tǒng)提供盡可能詳細的目錄結(jié)構(gòu)以方便用戶的搜索操作,同時為關(guān)鍵字提供準確的分類標準,故本系統(tǒng)選用ODP樹狀目錄結(jié)構(gòu)來存儲用戶偏好的關(guān)鍵字。該目錄結(jié)構(gòu)具有兩個顯著的特點:一是人性化,ODP目錄系統(tǒng)是一個開放性質(zhì)的可編輯系統(tǒng),用戶可以對目錄結(jié)構(gòu)進行免費創(chuàng)建和管理,當用戶首次使用該目錄系統(tǒng)時所獲得的為一個不具有個人偏好的一般性目錄,用戶可自行添加所需節(jié)點和刪除無關(guān)節(jié)點,使目錄結(jié)構(gòu)符合個人需求;二是信息的完整性,目錄結(jié)構(gòu)中的每一個節(jié)點都包含關(guān)鍵字、偏好權(quán)重和時間戳三個重要信息,它既方便了關(guān)鍵字的存儲與更新,又將每次搜索中包含的關(guān)鍵字相應(yīng)的權(quán)重映射于目錄結(jié)構(gòu)。
為了維持用戶偏好模型的規(guī)模,本發(fā)明設(shè)定一個關(guān)鍵字數(shù)量的上界m,當搜索目錄中關(guān)鍵字數(shù)量超過m時,將刪除權(quán)重最小的節(jié)點,因為這些節(jié)點在用戶長期搜索過程中出現(xiàn)頻率較低,即在用戶偏好模型中貢獻度過小。
由于人的偏好隨時間、環(huán)境、情感等因素的變化而發(fā)生轉(zhuǎn)變,所以保證用戶偏好模型的實時更新是保證搜索結(jié)果精確化、合理化的前提。對于用戶每次搜索所輸入的關(guān)鍵字,若包含于搜索目錄結(jié)構(gòu)中,則提高該關(guān)鍵字原有的偏好權(quán)重,同時更新該目錄節(jié)點所對應(yīng)的時間戳為當前時刻;若關(guān)鍵字首次出現(xiàn)于搜索過程,則為該關(guān)鍵字創(chuàng)建目錄節(jié)點,將其添加至搜索目錄。
為了實時更新用戶偏好模型,確保目錄節(jié)點在系統(tǒng)中的效用,本發(fā)明設(shè)定一個時間門限T,對于長期未被搜索的關(guān)鍵字,當該關(guān)鍵字對應(yīng)目錄節(jié)點中時間戳與當前時間的差值的絕對值大于時間門限T時,認定其為系統(tǒng)中的低效用節(jié)點,將該節(jié)點從目錄中去除,對于未超出時間門限的關(guān)鍵字節(jié)點,將其保留。
本領(lǐng)域的普通技術(shù)人員將會意識到,這里所述的實施例是為了幫助讀者理解本發(fā)明的原理,應(yīng)被理解為本發(fā)明的保護范圍并不局限于這樣的特別陳述和實施例。本領(lǐng)域的普通技術(shù)人員可以根據(jù)本發(fā)明公開的這些技術(shù)啟示做出各種不脫離本發(fā)明實質(zhì)的其它各種具體變形和組合,這些變形和組合仍然在本發(fā)明的保護范圍內(nèi)。