本發(fā)明屬于基于位置服務技術領域,特別是涉及一種隱私保護的安全位置服務范圍查詢外包方法。
背景技術:
隨著定位技術的日益成熟以及移動互聯(lián)網(wǎng)的快速普及,基于位置服務(Location-Based Services,LBS)已成為覆蓋了人們生活的方方面面,正在改變?nèi)藗兊纳罘绞胶土晳T。典型的LBS特別是移動環(huán)境下的LBS是指用戶使用移動設備內(nèi)嵌的全球定位系統(tǒng)(GPS)獲取當前位置信息,然后根據(jù)其位置信息向LBSP查詢附近自己感興趣的服務,例如查詢附近的醫(yī)院、賓館、餐廳、加油站等信息。業(yè)界已經(jīng)涌現(xiàn)了一大批LBS的應用,如Foursquare、Facebook、美團、貓眼電影、百度糯米、大眾點評等。而瑞典市場研究公司Berg Insight預測全球LBS市場規(guī)模將從2014年的103億歐元,以22.5%的復合年增長率(CAGR),增長至2020年的348億歐元。可以預見在不久的將來,LBS必將取得更大范圍和更深層次的應用。
在眾多的基于位置服務的查詢中,基于位置的范圍查詢尋求位置值在特定范圍中的興趣點(Point Of Interest,POI)集合。具體地,在LBS應用環(huán)境中,一個興趣點POI常常用其位置作為一個空間屬性,并使用其它諸多數(shù)值屬性,如一個餐館的食品質(zhì)量、價格、服務、衛(wèi)生條件。我們說一個POI滿足范圍查詢條件在于,如果一個POI具有某個數(shù)值屬性,且空間屬性在當前查詢用戶查詢區(qū)間內(nèi)。
隨著LBS應用的快速發(fā)展,特別是近年來移動互聯(lián)網(wǎng)的迅速普及,LBS數(shù)據(jù)和服務規(guī)模也日益增大,使得LBS服務在計算以及存儲上需求急劇增長,這種增長對位置服務提供商(Location-Based Service Provider,LBSP)有限的運營資源構成了巨大的挑戰(zhàn),幸運地是,云計算技術的興起為應對這一挑戰(zhàn)提供了可能。云平臺因其具有強大的存儲以及高效的計算能力一直備受業(yè)界的推崇,通過將LBSP的LBS數(shù)據(jù)和服務外包到資源強大的CSP,讓CSP為用戶提供永遠在線服務,不但可以減少數(shù)據(jù)的管理成本,還可以為用戶提供更高效的服務,并有著極大的部署彈性和擴展性。LBS的這種外包模式也逐漸成為了LBS應用中主流的服務模式。
雖然LBS外包模式減少了LBSP的運營成本并能為用戶提供更高效的LBS。但是,由于CSP不可信,LBS外包應用也面臨著諸多安全風險。這當中有兩個典型問題,首先是LBSP外包出去的POI數(shù)據(jù)的安全問題,由于POI數(shù)據(jù)是LBSP花費大量資源獲取的私有資源,是其維持運營的資本,如果泄露給不懷好意的CSP,將損害LBSP的利益。此外,由于POI的位置屬性和用戶請求位置相關,將POI空間屬性明文外包給CSP將會在用戶查詢時候泄露用戶位置隱私;其次是查詢結果的真實性問題,由于在LBS外包應用中,用戶的請求是由CSP來響應的,CSP可能出于其自身的利益,纂改用戶的查詢結果。
由于LBS服務的功能核心是滿足用戶的查詢需求,因此前一個問題實質(zhì)是如何在不告知CSP LBS服務原始數(shù)據(jù)情況下,滿足用戶在CSP上的隱私地開展查詢需求,其對應的研究問題是位置隱私保護的云端位置密文檢索,并在一些現(xiàn)有工作中得到了解決;而后一個問題的實質(zhì)是如何在讓用戶從CSP返回的驗證信息中檢驗查詢結果的完整性。對這兩個問題單獨的,這一問題同樣也在一些現(xiàn)有工作中得到了解決。然而,當同時考慮兩方面問題時,現(xiàn)有工作都不能同時解決問題,要么效率較低。
技術實現(xiàn)要素:
本發(fā)明的目的是提供一種隱私保護的安全位置服務范圍查詢外包方法,本發(fā)明可在不告知CSP LBS原始數(shù)據(jù)情況下,使得用戶能夠從CSP處獲取正確的查詢服務數(shù)據(jù),同時保障LBSP的數(shù)據(jù)安全和用戶的查詢結果完整性。
為達到上述目的,本發(fā)明提供的隱私保護的安全位置服務范圍查詢外包方法,包括步驟:
隱私保護的安全位置服務范圍查詢外包方法,包括步驟:
步驟1,位置服務提供商對POI數(shù)據(jù)進行預處理;
本步驟進一步包括子步驟:
1.1根據(jù)POI數(shù)據(jù)集獲得整個空間區(qū)域,并進一步獲得整體空間區(qū)域的最小外接矩形區(qū)域;
1.2將該最小外接矩形區(qū)域劃分為4個子矩形區(qū)域,該4個子矩形區(qū)域記為第1層的子矩形區(qū)域;按照預設的構造規(guī)則,用三條線段將該4個子矩形區(qū)域的中心點順次連接,獲得第1層的子型曲線;所述的構造規(guī)則包括Hilbert曲線的起點、方向、縮放因子和階數(shù),起點選擇該4個子矩形區(qū)域的中心點之一,方向為順時針方向或逆時針方向,起點和方向隨機設置,縮放因子和階數(shù)根據(jù)實際安全需要定制,縮放因子和階數(shù)越大安全性越強;
1.3逐層構造子型曲線,獲得Hilbert曲線,具體為:
1.3a對第m層的各子矩形區(qū)域分別進行如下操作,其中,m的初始值為1:
將第m層的子矩形區(qū)域劃分為第(m+1)層的4個子矩形區(qū)域,按照預設的構造規(guī)則,用三條線段將該第(m+1)層的4個子矩形區(qū)域的中心點順次連接,獲得該第m層的子矩形區(qū)域的子型曲線;
1.3b沿著第m層的子型曲線的走向,連接第m層的各子矩形區(qū)域的子型曲線,得第(m+1)層的子型曲線;
1.3c令m=m+1,重復執(zhí)行子步驟1.3a~1.3c,直至獲得第M層的子型曲線,第M層的子型曲線即最終的Hilbert曲線;M為預設的層數(shù),根據(jù)經(jīng)驗取值;
1.4沿著Hilbert曲線對Hilbert曲線穿過的最小子矩形區(qū)域順序編碼,該編碼即Hilbert值;
1.5根據(jù)POI數(shù)據(jù)集中各POI對象的位置獲得各POI對象的Hilbert值,即將各POI對象位置所落入的最小子矩形區(qū)域的編碼作為該POI對象的Hilbert值;
1.6按照Hilbert值從大到小對POI數(shù)據(jù)密文Ci’進行排序,得到排序后的POI數(shù)據(jù)密文集其中,n為POI數(shù)據(jù)集中POI對象的總數(shù),Ci’包含第i個POI對象的Hilbert值及密文,該密文即使用對稱加密算法對第i個POI對象的位置信息及數(shù)據(jù)內(nèi)容進行加密后生成的密文;
1.7對排序后的POI數(shù)據(jù)密文集構造Merkle哈希樹,具體為:
1.7a判斷n是否為2的冪數(shù),若是,執(zhí)行子步驟1.7b;否則,執(zhí)行子步驟1.7c;
1.7b構造深度為d的二叉樹,d和n存在數(shù)學關系n=2d;二叉樹中,每個葉子節(jié)點對應一個POI數(shù)據(jù)密文Ci’,且按Hilbert值從小到大的順序?qū)⒏鱌OI數(shù)據(jù)密文Ci’順次賦給各葉子節(jié)點;葉子節(jié)點的哈希值通過對POI數(shù)據(jù)密文Ci’進行哈希運算獲得,每一個非葉子節(jié)點的哈希值為它的兩個直接子節(jié)點的哈希值所串接;
1.7c構造深度為d'的二叉樹,d'和n'存在數(shù)學關系n'=2d',n'為所有大于n的2的冪數(shù)中的最小值;二叉樹中,前n個葉子節(jié)點分別對應一個POI數(shù)據(jù)密文Ci’,且按Hilbert值從小到大的順序?qū)⒏鱌OI數(shù)據(jù)密文Ci’順次賦給前n個葉子節(jié)點;其他葉子節(jié)點為冗余葉子節(jié)點;每一個非葉子節(jié)點的哈希值為它的兩個直接子節(jié)點的哈希值所串接;
1.7d使用Ci’和Ti計算樹根的哈希值,將樹根哈希值進行簽名,Ti為所有被用來驗證葉子節(jié)點Ci’的最小中間節(jié)點集合;
1.8將POI數(shù)據(jù)密文集和簽名發(fā)送給云服務提供商;
步驟2,位置服務提供商對用戶位置信息進行預處理;
本步驟具體為:
根據(jù)用戶位置信息確定用戶所需要查詢的區(qū)域范圍Q,區(qū)域范圍Q內(nèi)所有最小子矩形區(qū)域的編碼構成Hilbert值范圍Q',將Hilbert值范圍Q'發(fā)送給云服務提供商;
步驟3,云服務提供商將Hilbert值范圍Q'與POI數(shù)據(jù)密文集中各POI數(shù)據(jù)密文的Hilbert值一一比對,將與Hilbert值范圍Q'中所包含Hilbert值相同的POI數(shù)據(jù)密文以及用來恢復出簽名的最小中間節(jié)點集合、簽名返還給用戶;
步驟4,用戶驗證返回的POI數(shù)據(jù)密文的Hilbert值與Hilbert值范圍Q'中的Hilbert值在數(shù)量和數(shù)值上是否一致,若不一致,拋棄本次返回的數(shù)據(jù);若一致,采用返回的POI數(shù)據(jù)密文和最小中間節(jié)點集合恢復出樹根的簽名,并驗證與位置服務提供商的簽名是否一致,若一致,則對本次返回的POI數(shù)據(jù)密文進行解密,否則,拋棄本次返回的數(shù)據(jù)。
子步驟1.2中,將該最小外接矩形區(qū)域劃分為4個子矩形區(qū)域,具體為:
采用過該最小外接矩形區(qū)域中心點的兩條相互垂直的直線,將該最小外接矩形區(qū)域劃分為4個子矩形區(qū)域。
和現(xiàn)有技術相比,本發(fā)明具有如下優(yōu)點和有益效果:
在保障數(shù)據(jù)隱私性和查詢結果完整性的同時,還可減小計算和通信開銷,從而提高效率。
附圖說明
圖1為本發(fā)明系統(tǒng)模型結構示意圖;
圖2為實施例中Hilbert曲線的構造示意圖;
圖3為實施例中構建的Merkle哈希樹示意圖;
圖4為根據(jù)用戶位置信息確定所需要查詢的區(qū)域范圍的示意圖;
圖5為實施例所采用的6個POI數(shù)據(jù)集的分布示意圖;
圖6為本發(fā)明方法和現(xiàn)有方法在PC端的計算開銷對比圖;
圖7為本發(fā)明方法和現(xiàn)有方法在手機端的計算開銷對比圖;
圖8為本發(fā)明方法和現(xiàn)有方法的通信開銷對比圖。
具體實施方式
下面將先給出本發(fā)明所涉及模型和所要解決問題的定義。
一、系統(tǒng)模型
考慮一個擁有興趣點POI數(shù)據(jù)集并向移動用戶提供位置服務的位置服務提供商LBSP。為了減少它的運行和存儲開銷,位置服務提供商LBSP將他的POI數(shù)據(jù)集和基于位置的查詢服務外包給第三方云服務提供商CSP,然后由CSP向移動用戶提供基于位置的查詢服務,系統(tǒng)模型見圖1。
二、安全模型
CSP是誠實而好奇的(Honest-But-Curious,HBC),它會嚴格按照指令執(zhí)行系統(tǒng)中的操作,但會從其所接觸的數(shù)據(jù),最大化窺探用戶和LBSP的私密信息,本發(fā)明中CSP只知道LBSP外包的密文數(shù)據(jù)以及根據(jù)索引構建算法構建的索引,屬于已知密文模型。
三、問題描述
本發(fā)明要解決的問題包括外包POI數(shù)據(jù)的安全及與其關聯(lián)的用戶位置隱私,和用戶查詢結果完整性驗證兩方面。為了保證外包POI的數(shù)據(jù)安全,LBSP需要在預先對POI數(shù)據(jù)進行機密性和完整性處理,但處理后需保證CSP能夠有效檢索POI,考慮到在LBS中,用戶是根據(jù)POI的位置進行范圍查詢的,而位置信息關乎用戶的位置隱私,不能暴露給CSP,需要在進行POI數(shù)據(jù)外包時進行保護POI的位置;然后,CSP在給用戶返還POI查詢服務結果時出于自身的利益,可能會篡改用戶的查詢結果,LBSP如何在外包處理時,以防止CSP篡改用戶的查詢結果。
本發(fā)明通過基于希爾伯特曲線(Hilbert曲線)和Merkle哈希樹來解決上述所提問題,下面將對本發(fā)明方法的具體實施過程進行詳細說明。
1、外包POI數(shù)據(jù)的預處理
為保證POI數(shù)據(jù)在CSP上的安全,LBSP須對原始POI數(shù)據(jù)進行預處理。預處理的目的是在保護POI數(shù)據(jù)的位置信息同時,可以使CSP對POI的范圍檢索以便為用戶提供服務。
POI對象DOi是空間數(shù)據(jù)對象,具有二維位置loc(xi,yi),DOi表示POI數(shù)據(jù)集中第i個POI對象,xi是DOi的橫坐標,yi是DOi的縱坐標。由于在LBS中,位置對用戶來說是敏感,不能被CSP獲取,因此不能將POI的位置信息直接外包給CSP,而需要對其進行轉(zhuǎn)換,并且為了保證CSP能對位置信息經(jīng)過轉(zhuǎn)換后的POI進行查詢,必須讓在空間相鄰的POI經(jīng)過轉(zhuǎn)換后依然具有鄰近性。
Hilbert曲線具備上述特性,故本發(fā)明采用Hilbert曲線對外包POI位置信息進行加密處理,下面將結合小示例說明Hilbert曲線是怎么形成并對空間區(qū)域進行隱私編碼的。
首先,根據(jù)POI數(shù)據(jù)集獲得整體空間區(qū)域,并進一步獲得整體空間區(qū)域的最小外接矩形區(qū)域。
然后,將該最小外接矩形區(qū)域劃分為4個子矩形區(qū)域,將該4個子矩形區(qū)域記為第1層的子矩形區(qū)域;按照預設的構造規(guī)則,用三條線段將該4個子矩形區(qū)域的中心點順次連接,獲得第1層的子型曲線,見圖2(a)。所述的構造規(guī)則包括Hilbert曲線的起點、方向、縮放因子和階數(shù),起點選擇該4個子矩形區(qū)域的中心點之一,方向可以為順時針方向或逆時針方向。
4個子矩形區(qū)域的劃分具體為:
采用過該最小外接矩形區(qū)域中心點的兩條相互垂直的直線,將該最小外接矩形區(qū)域劃分為4個子矩形區(qū)域。
接著,逐層構造子型曲線,獲得Hilbert曲線,可參見圖2(b)和圖2(c)。
本步驟具體為:
(a)對第m層的各子矩形區(qū)域分別進行如下操作,其中,m的初始值取1:
將第m層的子矩形區(qū)域劃分為第(m+1)層的4個子矩形區(qū)域,按照預設的構造規(guī)則,用三條線段將該第(m+1)層的4個子矩形區(qū)域的中心點順次連接,獲得該第m層的子矩形區(qū)域的子型曲線;
(b)沿著第m層的子型曲線的走向,連接第m層的各子矩形區(qū)域的子型曲線,得第(m+1)層的子型曲線;
(c)令m=m+1,重復執(zhí)行子步驟(a)~(b),直至獲得第M層的子型曲線,第M層的子型曲線即最終的Hilbert曲線;M為預設的層數(shù),根據(jù)經(jīng)驗取值。
最后,沿著Hilbert曲線對Hilbert曲線穿過的最小子矩形區(qū)域順序編碼,該編碼即Hilbert值,這樣就實現(xiàn)了將二維空間轉(zhuǎn)化為一維值。
為便于理解,下面將對Hilbert曲線的數(shù)學含義進行描述。
設為二維空間下的N階Hilbert曲線,其中N≥1,見式(1):
H=f(x,y) (1)
其中,H表示位置loc(x,y)對應的Hilbert值,H∈[0,22N-1];f表示一單向函數(shù),該函數(shù)用來表示loc(x,y)和Hilbert值間的映射關系,x和y分別為位置loc(x,y)的橫坐標和縱坐標。
實現(xiàn)了將二維整型空間[0,22N-1]2轉(zhuǎn)換到一維整數(shù)集[0,22N-1],單向函數(shù)f與Hilbert曲線的參數(shù)(S0,θ,N,Γ)相關,S0表示Hilbert曲線的起始點位置,θ表示Hilbert曲線的方向,N表示Hilbert曲線的階數(shù),Γ表示Hilbert曲線的縮放因子。這些參數(shù)都會影響函數(shù)f的計算結果即Hilbert值,故這些參數(shù)一起組成了Hilbert曲線加密的密鑰HSK,HSK=(S0,θ,N,Γ)。CSP或攻擊者在不知道解密密鑰的情況下,不可能由Hilbert值反推出其所代表的位置信息。LBSP選擇合適的Hilbert曲線參數(shù)計算外包POI的Hilbert值,Hilbert曲線參數(shù)根據(jù)實際安全需要定制,N和Γ越大安全性越強,θ隨機。
將POI數(shù)據(jù)記為Cj=<Hj,Encek(DOHj1||...||DOHjk)>,其中,Cj表示Hilbert值為Hj的所有POI數(shù)據(jù);Hj表示第j個Hilbert值;一個Hilbert值可能對應多個POI對象,將Hilbert值為Hj的POI對象記為DOHj,DOHj包含POI對象的位置信息及數(shù)據(jù)內(nèi)容;將這多個POI對象DOHj從1到k進行編號,即DOHj1、…DOHjk,分別包含Hilbert值為Hj的第1、…k個POI對象的位置信息和數(shù)據(jù)內(nèi)容;Encek(DOHj1||...||DOHjk)表示對Hilbert值為Hj的POI對象使用對稱加密算法(如AES算法)進行加密后生成的密文,表示字符拼接。
為構建Merkle哈希樹,LBSP按照Hilbert值從大到小對POI數(shù)據(jù)密文Ci’進行排序,得到排序后的POI數(shù)據(jù)密文集Ci’為使用對稱加密算法對第i個POI對象DOi的位置信息及數(shù)據(jù)內(nèi)容進行加密后生成的密文;i表示POI對象編號,將POI對象編號和Hilbert值編號的關系記為i=HIDj,表示編號為i的POI對象DOi,其Hilbert值編號為j;n為POI數(shù)據(jù)集中POI對象的總數(shù)。然后,將POI數(shù)據(jù)密文集構造成一棵Merkle哈希樹,使得用戶可以高效地驗證查詢結果完整性。具體地:
假設對于某個正整數(shù)d,POI對象總數(shù)n滿足n=2d,位置服務提供商LBSP構造深度為d的二叉樹,在這個二叉樹當中,每個葉子節(jié)點對應著一個POI數(shù)據(jù)密文Ci,且每一個非葉子節(jié)點的哈希值為它的兩個直接子節(jié)點的哈希值所串接。本發(fā)明同時用一個輔助集合Ti作為和葉子節(jié)點Ci一起計算Merkle哈希樹樹根的非葉子節(jié)點集合,定義Ti為所有被用來驗證葉子節(jié)點Ci的最小中間節(jié)點集合。圖3給出了一個n=6的簡單的例子,由于6不是2的任何冪數(shù),則添加冗余葉子節(jié)點,使得葉子節(jié)點總數(shù)為8。該圖中,C表示POI數(shù)據(jù)密文,按照Hilbert值從小到大排列POI數(shù)據(jù)密文;h表示哈希值,hi表示對Ci進行哈希運算所得的哈希值,h0-1表示對h0和h1拼接后的哈希值,h2-3表示對h2和h3拼接后的哈希值,h4-5表示對h4和h5拼接后的哈希值,h6-7表示對h6和h7拼接后的哈希值;h0-3表示對下級h0-1和h2-3拼接后的哈希值,h4-7表示對下級h4-5和h6-7拼接后的哈希值,h0-7表示對下級h0-3和h4-7拼接后的哈希值。在這張圖中,有返回的POI數(shù)據(jù)密文C3和輔助集合T3={h2,h0-1,h4-7},樹根的哈希值root可以使用公式(2)計算:
root=H(H(h0-1||H(h2||H(C3)))||h4-7) (2)
式(2)中,||表示字符拼接;H(·)表示哈希運算。
如果n不是2的任何冪數(shù),構造Merkle哈希樹時,需要添加冗余葉子節(jié)點,使得葉子節(jié)點總數(shù)為2的冪數(shù)。
位置服務提供商LBSP將樹根的哈希值進行簽名{H(root)}K-1,其中{·}K-1表示使用下標所述的私鑰K-1計算的簽名,私鑰K-1在用戶注冊階段獲得。
最終,LBSP將POI數(shù)據(jù)密文集和簽名發(fā)給CSP,CSP使用POI數(shù)據(jù)密文集計算所有用于構造Merkle哈希樹的中間值。
2、范圍查詢請求
假定用戶在位置loc(x,y)向CSP發(fā)出位置服務查詢請求,則需要對用戶的位置信息進行預處理。首先,根據(jù)用戶位置信息確定其所需要查詢的區(qū)域范圍Q=[locld,locru],見圖4。locld和locru為所需要查詢的區(qū)域范圍Q(后文簡記為“查詢范圍Q”)的兩個邊界位置,在查詢范圍內(nèi)的任一位置locp都滿足locld.x≤locp.x≤locru.x和locld.y≤locp.y≤locru.y,locld.x和locld.y表示邊界位置locld的橫坐標和縱坐標,locru.x和locru.y表示邊界位置locru的橫坐標和縱坐標,locp.x和locp.y表示任一位置locp的橫坐標和縱坐標。確定查詢范圍Q后,利用Hilbert曲線轉(zhuǎn)換密鑰HSK將二維的范圍查詢Q轉(zhuǎn)換為一維的Hilbert值查詢Q'。見圖4,本實施例中,范圍查詢Q經(jīng)轉(zhuǎn)換后的Hilbert值查詢?yōu)?、11、12、13,即Q'={8,11,12,13}。最后,將Q'放到查詢請求Query中代替其中的loc信息。
3、查詢處理
CSP將查詢范圍Q對應的Hilbert值查詢Q'與LBSP外包的POI數(shù)據(jù)密文集中各POI數(shù)據(jù)密文的Hilbert值進行一一對比,將所有與Q'中所包含Hilbert值相同的POI數(shù)據(jù)密文返還給用戶。此外,CSP還返回所有可以被用來輔助恢復出簽名的輔助集合以及LBSP對Merkle哈希樹根root的簽名信息{H(root)}K-1。
4、查詢結果驗證
一旦收到CSP返回的查詢結果,用戶使用如下方法驗證查詢結果的真實性和正確性。
首先,用戶驗證返回的POI數(shù)據(jù)密文的Hilbert值是否與Hilbert值查詢Q'中Hilbert值在數(shù)量和數(shù)值上保持一致;然后,使用返回的POI數(shù)據(jù)密文和輔助集合驗證LBSP對哈希樹的根root的簽名是否正確。如果正確,則認為CSP返回了完整的查詢結果,否則查詢結果不完整。
實施例
下面將結合實施例進一步說明本發(fā)明的有益效果。
本實施例中,哈希函數(shù)采用SHA-1,對稱加密算法采用AES-128,處理器為Interl(R)Core(TM)i5-2320CPU@3.00GHZ,內(nèi)存為4.0GB,操作系統(tǒng)為win7,采用的開發(fā)語言為JAVA,開發(fā)環(huán)境為JDK1.7和eclipse3.6,智能手機為小米5:驍龍TM820四核2.15GHz處理器;3GB RAM;64GB ROM。
采用的數(shù)據(jù)集為位置服務研究中常用的數(shù)據(jù)集,其中包括4個真實數(shù)據(jù)集以及2個模擬數(shù)據(jù)集。真實數(shù)據(jù)集是從猶他大學官方網(wǎng)站獲得的,包括如下四個真實路網(wǎng)POI數(shù)據(jù)集:OldenBurg(OL:6105個POI數(shù)據(jù))、City of San Joaquin County(TG:18263個POI數(shù)據(jù))、San Francisco(SF:174956個POI數(shù)據(jù))、North America(NA:175813個POI數(shù)據(jù));模擬數(shù)據(jù)集是由chorochronos網(wǎng)站提供的空間數(shù)據(jù)生成器SpatialDataGenerators自動生成,包括均勻分布的數(shù)據(jù)集UN以及由4個高斯分布組成的偏斜數(shù)據(jù)集SK,數(shù)據(jù)集UN和SK的數(shù)據(jù)規(guī)模都為100000,其中UN為均勻分布,SK有4個Guass分布數(shù)據(jù)集組成,其中Guass分布的中心點為隨機選擇的,每個分布的數(shù)據(jù)規(guī)模為25000。6個數(shù)據(jù)集對應的分布如圖5所示,這些真實數(shù)據(jù)以及模擬數(shù)據(jù)很好的對應了位置服務外包應用場景。
本實施例中Hilbert曲線的通用參數(shù)設置見表1,為使數(shù)據(jù)集中各POI空間對象的Hilbert值唯一,本實施例中各數(shù)據(jù)集所使用的曲線階數(shù)見表2,在相應曲線階數(shù)下,各數(shù)據(jù)集中POI空間對象的Hilbert值都是唯一的。
表1Hilbert曲線的通用參數(shù)
表2各數(shù)據(jù)集所使用的曲線階數(shù)
圖6和圖7表示在同樣實驗參數(shù)情況下,方案[1]、方案[2]、本發(fā)明方案比較一對數(shù)值在PC端與手機端的計算開銷,由圖可知,本發(fā)明方案的計算開銷小于方案[1]和方案[2]。又由于本發(fā)明方案只涉及HMAC和hash操作,不涉及復雜的模冪運算和大數(shù)乘法,因此隨著元素位數(shù)的增加,本本發(fā)明方案的計算開銷增長不明顯,計算開銷增長率遠小于涉及模冪運算的方案[1]和方案[2]。
圖8表示在同樣實驗參數(shù)情況下,方案[1]、方案[2]、本發(fā)明方案比較一對數(shù)值的通信開銷。由圖可知,本發(fā)明方案的通信開銷小于方案[1]、方案[2]。由于本發(fā)明方案的通信只涉及到布隆過濾器的傳輸,而方案[1]和方案[2]在數(shù)值比較過程中均需要發(fā)送2λ個整數(shù),同時方案[2]還涉及不經(jīng)意傳輸,因此隨著λ的增大,方案[1]、方案[2]通信開銷增長明顯,為了保持布隆過濾器的誤差最小,本發(fā)明布隆過濾器的位數(shù)也會隨著λ增大而增長,通信開銷也會相應增長,但是增長速度比方案[1]和方案[2]小。
由圖6~圖8分析可知,本發(fā)明方案的計算量與通信量都較小,全額可以精確匹配,因此,本發(fā)明方案更適合應用于資源有限的智能終端。
上述方案[1]和方案[2]指下述文獻[1]和[2]中所記載的技術方案:
[1]Yao AC.Protocols for secure computations[C]//Foundations of Computer Science,1982.SFCS'08.23rd Annual Symposium on.IEEE,1982:160-164.
[2]李順東,戴一奇,游啟友.姚氏百萬富翁問題的高效解決方案[J].電子學報,2005,33(5):769-773.