本發(fā)明涉及計(jì)算機(jī)數(shù)據(jù)挖掘分析技術(shù)領(lǐng)域,具體地說,本發(fā)明涉及一種基于位置匿名的隱私保護(hù)方法和裝置。
背景技術(shù):
當(dāng)前,基于位置的服務(wù)(Location Based Service,縮寫為LBS)已廣泛地應(yīng)用于移動互聯(lián)網(wǎng)中。LBS通過用戶的位置信息獲取興趣點(diǎn)(Point of Interest,縮寫為POI)信息,然后基于POI為用戶提供多種領(lǐng)域的服務(wù)。然而,LBS在給用戶帶來便利的同時(shí),也威脅到了用戶的個人隱私,例如,攻擊者可以根據(jù)用戶的位置信息推導(dǎo)其家庭住址、生活習(xí)慣或健康狀況等個人敏感信息。也就是說,位置信息的泄漏對個人隱私造成嚴(yán)重威脅,因此開展基于位置服務(wù)的隱私保護(hù)研究,對維護(hù)社會安全有積極意義。
位置隱私保護(hù)在現(xiàn)有的研究中有大量的工作,包括位置干擾、空間變換、時(shí)空混淆等。然而,現(xiàn)有的位置隱私保護(hù)方案大都難以兼顧LBS服務(wù)質(zhì)量和隱私保護(hù)強(qiáng)度,往往會出現(xiàn)LBS可靠性過低(例如查詢效率過低、查詢準(zhǔn)確率過低等),或者隱私保護(hù)強(qiáng)度不足等問題。另一方面,用戶的使用偏好多種多樣,有的位置隱私保護(hù)要求較高,有的則偏好更高的查詢效率和查詢準(zhǔn)確率。而現(xiàn)有的位置隱私保護(hù)方案的不支持用戶個性化需求調(diào)控,用戶難以根據(jù)自己的偏好對位置隱私保護(hù)策略進(jìn)行調(diào)整,從而影響了用戶體驗(yàn)的提升。
因此,當(dāng)前迫切需要一種能夠克服上述現(xiàn)有技術(shù)缺陷的隱私保護(hù)解決方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的任務(wù)是提供一種能夠克服上述現(xiàn)有技術(shù)缺陷的隱私保護(hù)解決方案。
本發(fā)明提供了一種基于位置匿名的隱私保護(hù)方法,包括下列步驟:
1)根據(jù)當(dāng)前查詢的隱私等級確定匿名度k,其中隱私等級越高匿名度k越大;
2)將匿名度k作為當(dāng)前查詢的匿名集的大小,構(gòu)建多個元素個數(shù)為k的候選匿名集,所述候選匿名集由當(dāng)前查詢的真實(shí)位置和與該真實(shí)位置的查詢概率接近的k-1個匿名位置構(gòu)成;
3)在所構(gòu)建的多個候選匿名集中尋找查詢概率的集合熵最大的一個作為匿名集;
4)根據(jù)隱私等級生成匿名距離上界和下界,其中,隱私等級越高匿名距離的上界越大,隱私等級越高匿名距離的下界也越大;
5)在步驟3)所得到的匿名集的范圍內(nèi),根據(jù)所生成匿名距離上界和下界,生成用于替代當(dāng)前查詢真實(shí)位置的匿名位置。
其中,所述步驟1)中,每個隱私等級對應(yīng)一個預(yù)設(shè)的候選k值集合,隱私等級越高所對應(yīng)的候選k值集合的元素?cái)?shù)目越多,且隱私等級越高其對應(yīng)的候選k值集合中的元素的數(shù)值也越大;根據(jù)當(dāng)前查詢的隱私等級確定匿名度k的方法是:在當(dāng)前查詢的隱私等級所對應(yīng)的候選k值集合中隨機(jī)選擇一個元素作為當(dāng)前查詢的匿名度k。
其中,所述步驟1)中:所述候選k值集合的元素從k值列表中選擇。
其中,所述步驟1)中,所述隱私等級根據(jù)下述方法獲得:
11)提示用戶輸入表征自身隱私偏好的信息;
12)接收表征隱私偏好的信息并根據(jù)表征隱私偏好的信息得到所述隱私等級。
其中,所述步驟11)中,所述提示用戶輸入表征自身隱私偏好的信息包括:位置保護(hù)強(qiáng)度等級和匿名位置查詢準(zhǔn)確率等級。本文中,匿名位置查詢準(zhǔn)確率等級是使用匿名位置的進(jìn)行位置服務(wù)查詢所獲得的LBS服務(wù)結(jié)果的準(zhǔn)確率,這個準(zhǔn)確率可以根據(jù)用戶反饋的LBS服務(wù)結(jié)果的準(zhǔn)確率得出。
其中,所述步驟12)還包括:判斷位置保護(hù)強(qiáng)度等級和匿名位置查詢準(zhǔn)確率等級是否沖突,若不沖突,則直接使用位置保護(hù)強(qiáng)度等級作為所述隱私等級,否則將位置保護(hù)強(qiáng)度等級和匿名位置查詢準(zhǔn)確率等級融合得到一個折中的等級作為所述隱私等級。
其中,所述步驟5)包括下列子步驟:
51)根據(jù)步驟4)所得的匿名距離上界和下界,計(jì)算拉普拉斯分布參數(shù);
52)根據(jù)步驟51)所得的拉普拉斯分布參數(shù),基于差分隱私技術(shù)生成匿名位置。
其中,所述步驟52)中,所述匿名位置是基于匿名集中的任意位置,加上基于隨機(jī)數(shù)的噪音而得到的,所述匿名位置在預(yù)設(shè)的隱私預(yù)算范圍內(nèi)。
其中,所述隱私保護(hù)方法還包括步驟:
6)提交位置匿名后的查詢請求,接收用戶對位置服務(wù)的評價(jià),并更新相應(yīng)匿名位置的服務(wù)滿意率;
所述步驟4)中,所述匿名距離上界和下界還與所述服務(wù)滿意率相關(guān),服務(wù)請求滿意率越高,則所述匿名距離上界和下界均越大。
本發(fā)明還提供了一種基于位置匿名的隱私保護(hù)裝置,包括:
匿名度單元,用于根據(jù)當(dāng)前查詢的隱私等級確定匿名度k,其中隱私等級越高匿名度k越大;
候選匿名集構(gòu)建單元,用于將匿名度k作為當(dāng)前查詢的匿名集的大小,構(gòu)建多個元素個數(shù)為k的候選匿名集,所述候選匿名集由當(dāng)前查詢的真實(shí)位置和與該真實(shí)位置的查詢概率接近的k-1個匿名位置構(gòu)成;
匿名集選擇單元,用于在所構(gòu)建的多個候選匿名集中尋找查詢概率的集合熵最大的一個作為匿名集;
匿名距離范圍生成單元,用于根據(jù)隱私等級生成匿名距離上界和下界,其中,隱私等級越高匿名距離的上界越大,隱私等級越高匿名距離的下界也越大;以及
匿名位置生成單元,用于所得到的匿名集的范圍內(nèi),根據(jù)所生成匿名距離上界和下界,生成用于替代當(dāng)前查詢真實(shí)位置的匿名位置。
與現(xiàn)有技術(shù)相比,本發(fā)明具有下列技術(shù)效果:
1、本發(fā)明能夠在實(shí)現(xiàn)位置隱私保護(hù)的同時(shí),提高LBS服務(wù)質(zhì)量。
2、本發(fā)明的隱私保護(hù)方案能夠?yàn)椴煌挠脩籼峁﹤€性化的位置隱私保護(hù)定制服務(wù),從而保障不同用戶對隱私保護(hù)的不同需求。
3、本發(fā)明改善了傳統(tǒng)k匿名方法,并使用隨機(jī)噪音提高了隱私保護(hù)效果。
附圖說明
以下,結(jié)合附圖來詳細(xì)說明本發(fā)明的實(shí)施例,其中:
圖1示出了本發(fā)明一個實(shí)施例的基于隱私偏好的二次匿名位置隱私保護(hù)方法的流程圖;
圖2示出了本發(fā)明中基于位置保護(hù)強(qiáng)度等級level1和匿名位置查詢準(zhǔn)確率等級level2的隱私等級推薦方法的一個例子的流程圖;
圖3示出了本發(fā)明一個實(shí)施例中的k匿名集kSet獲取方法(即步驟400的實(shí)現(xiàn)方法)的流程圖;
圖4示出了本發(fā)明一個實(shí)施例中生成匿名位置的方法的流程圖;
圖5示出了本發(fā)明一個實(shí)施例的基于位置匿名的隱私保護(hù)系統(tǒng)。
具體實(shí)施方式
根據(jù)本發(fā)明的一個實(shí)施例,提供了一種基于隱私偏好的二次匿名位置隱私保護(hù)方法,它支持用戶個性化隱私偏好設(shè)置,通過用戶設(shè)置的隱私級別,生成一個k匿名集,使得k匿名集中的位置具有最大概率相似性,再通過差分隱私技術(shù)增加拉普拉斯分布噪音,得到一個匿名位置,用此位置代替真實(shí)位置獲取LBS服務(wù),兼顧用戶隱私偏好和LBS服務(wù)質(zhì)量。
圖1示出了本實(shí)施例的基于隱私偏好的二次匿名位置隱私保護(hù)方法的流程圖,參考圖1,該隱私保護(hù)方法包括下列步驟:
步驟100:提示用戶輸入自身的隱私偏好等級。本實(shí)施例中,隱私偏好等級用非負(fù)整數(shù)表示。數(shù)字越小,表示隱私偏好等級越低,0表示無匿名要求。
步驟200:接收用戶設(shè)置的隱私偏好等級以及用戶提交的查詢請求。
在一個實(shí)施例中,提示用戶輸入的隱私偏好等級包括位置保護(hù)強(qiáng)度等級level1和匿名位置查詢準(zhǔn)確率等級level2,這樣,用戶可以根據(jù)自己的喜好分別設(shè)置所期望的位置保護(hù)強(qiáng)度和所期望的查詢準(zhǔn)確率級別。在步驟200中,接收到用戶設(shè)置的位置保護(hù)強(qiáng)度等級level1和匿名位置查詢準(zhǔn)確率等級level2后,判斷l(xiāng)evel1與level2是否沖突,若不沖突,則直接使用level1作為隱私等級,否則將level1與level2融合得到level3作為隱私等級。
其中,圖2示出了基于位置保護(hù)強(qiáng)度等級level1和匿名位置查詢準(zhǔn)確率等級level2的隱私等級推薦方法的一個例子的流程圖,該流程包括子步驟201~203:
步驟201:進(jìn)行一致性判斷,即判斷是否滿足條件:
N-1≤level1+level2≤N+1
若滿足上述條件,說明level1和level2具有一致性,執(zhí)行步驟201a,直接確定隱私等級,即
若不滿足上述條件,執(zhí)行步驟202。
步驟202:進(jìn)行互斥性判斷,即判斷是否滿足條件:
且
若滿足上述條件,說明level1與level2的值都較小,進(jìn)而說明兩者不存在矛盾,此時(shí)執(zhí)行步驟202a,直接確定隱私等級,即
否則,執(zhí)行步驟203。
步驟203:若level1和level2不滿足上述2種條件,進(jìn)行隱私偏好融合。若level1和level2不滿足上述兩種條件,說明level1與level2之間存在沖突,此時(shí)需要兼顧用戶隱私偏好要求,融合用戶的這兩種偏好。隱私偏好融合公式為:
上述式子中,N表示預(yù)先設(shè)置的隱私等級的數(shù)目,N為非負(fù)整數(shù)。當(dāng)N等于0時(shí),表示不進(jìn)行隱私保護(hù)。本實(shí)施例中,有時(shí)將最終確定的隱私等級記為level。
另外,本步驟中,查詢請求Req的定義為:用戶在獲取位置服務(wù)時(shí)向位置服務(wù)提供商發(fā)送的請求,該請求可用一個二元組Req=<l,qry>描述。其中,l表示用戶發(fā)出請求的位置,由當(dāng)前位置的經(jīng)度和緯度組成,即l=(x,y)。qry表示查詢內(nèi)容。用戶的真實(shí)位置用lt=(xt,yt)表示,本步驟中的查詢請求中的l就是用戶的真實(shí)位置lt=(xt,yt)。在下文中,還將涉及到匿名位置,匿名位置用lp=(xp,yp)表示。
步驟300:根據(jù)隱私等級level確定本次查詢的匿名度。匿名度就是k匿名集的大小(即k匿名集中所包含的元素個數(shù),k匿名集將在下文中詳述),它可以反映對位置信息進(jìn)行匿名處理的程度,因此本文中也將其稱為匿名度。
本實(shí)施例中,預(yù)先設(shè)置好N個隱私等級各自所對應(yīng)的候選k值數(shù)目。通常來說,隱私等級越高,則它所對應(yīng)的候選k值數(shù)目越大,候選k值的數(shù)值也越大。為方便描述,假設(shè)隱私等級為n(n=0,1,2,…,N–1),則該隱私等級n對應(yīng)的候選k值數(shù)目為nk。從k值列表中選擇nk個元素構(gòu)成候選k值集合,本實(shí)施例中,候選k值集合記為candidatesK。其中,k值列表list={ki},其中i=1,2,3…n,且ki+1-ki=1,使用list.ki表示列表中的第i個k值。
candidatesK={list.k(2*(n–1)+1),list.k(2*(n–1)+2),……,list.k(2*(n–1)+nk)}
在獲得候選k值集合candidatesK后,從該集合中隨機(jī)選取一個元素作為匿名度。在一個實(shí)施例中,設(shè)置隨機(jī)函數(shù)random(nk),可以生成一個隨機(jī)整數(shù)rnd∈[1,nk],則匿名度k選取list.k(2*(n–1)+rnd)。特別地,當(dāng)n=0時(shí),認(rèn)為用戶不需要隱私保護(hù),不做匿名處理,直接上傳真實(shí)位置信息即可。
步驟400:根據(jù)步驟300所選擇的匿名度(即k匿名集的大小),結(jié)合用戶的歷史請求集{Req},使用基于位置熵的k匿名算法得到一個k匿名集kSet,其中,k匿名集kSet中的元素與真實(shí)位置lt具有概率相似性。
圖3示出了一個實(shí)施例中的k匿名集kSet獲取方法(即步驟400的實(shí)現(xiàn)方法)的流程圖,它包括子步驟401~404。
步驟401:將地圖區(qū)域分割成網(wǎng)格狀,每個單元格用celli表示,其中i代表第i個單元格,其中i=1,2,…,I。I為單元格的總數(shù)。地圖區(qū)域是涵蓋用戶活動范圍的一定大小(例如10km*10km,15km*15km等)的地圖區(qū)域。
步驟402:將用戶歷史查詢信息按照上述網(wǎng)格進(jìn)行劃分,對于每條歷史查詢,如果該歷史查詢所對應(yīng)的用戶位置(即用戶發(fā)送這條歷史查詢時(shí)所上傳的位置)位于地圖區(qū)域中的某一個單元格,則將該單元格的查詢數(shù)目加1。這樣,遍歷所有用戶歷史查詢后,即可統(tǒng)計(jì)地圖區(qū)域內(nèi)每一個單元格的用戶歷史查詢數(shù)目(或稱為次數(shù))。這樣可以計(jì)算每一個單元格celli的查詢概率qi。其中,
ni表示在單元格celli中的查詢數(shù)量,total表示全部單元格的查詢數(shù)量。
也就是說,一個單元格的查詢概率是該單元格中的歷史查詢數(shù)量與全部單元格的歷史查詢數(shù)量的比值。每個單元格代表一個位置,該位置包括真實(shí)位置和匿名位置。其中,所述匿名位置是為了實(shí)現(xiàn)隱私保護(hù)對真實(shí)位置施加干擾而生成的用于向服務(wù)器上傳的假位置。由于每個單元格代表一個位置,因此一個單元格的查詢概率就是其所對應(yīng)的位置的查詢概率。
步驟403:構(gòu)建多個候選位置集合。其中,每次選擇與真實(shí)位置的單元格的查詢概率相似的k-1個單元格構(gòu)建候選位置集合,然后計(jì)算該候選位置集合的集合熵。k為前面步驟所得出的匿名度。
在一個實(shí)施例中,用于構(gòu)建候選位置集合的單元格可在查詢概率與真實(shí)位置的單元格的查詢概率最接近的2k個單元格中選擇。
在一個實(shí)施例中,熵的計(jì)算公式為:
其中,qji表示第j個集合中的第i個位置的查詢概率,pji表示第j個集合的第i個位置的熵。
集合熵的計(jì)算公式為:
pji表示第j個集合的第i個位置的熵。Hj表示第j個集合的熵。
步驟404:在多個候選位置集合中,選擇集合熵最大的候選位置集合作為k匿名集kSet。
步驟500:生成匿名距離范圍。其中,根據(jù)步驟200中的level和步驟300中生成的kSet,分別計(jì)算出匿名距離下界dislow和匿名距離上界dishigh。
在一個實(shí)施例中,匿名距離的計(jì)算公式為:
length表示隱私劃分基礎(chǔ)距離,N為隱私等級總數(shù),psat表示位置服務(wù)的滿意率,具體地說,它是以某一個位置作為匿名位置的查詢被提交至服務(wù)器獲取位置服務(wù)后的滿意率,通常位置服務(wù)的滿意率基于用戶對位置服務(wù)準(zhǔn)確性的評價(jià)的統(tǒng)計(jì)得出。dislow表示第n個隱私保護(hù)等級的匿名距離下界,dishigh表示第n個隱私保護(hù)等級的匿名距離上界。
步驟600:根據(jù)步驟300、步驟400和步驟500的結(jié)果,計(jì)算拉普拉斯分布參數(shù),結(jié)合差分隱私技術(shù),生成匿名位置lp。
圖4示出了一個實(shí)施例中生成匿名位置的方法的流程圖,參考圖4,生成匿名位置的步驟(即步驟600)包括子步驟601~603:
步驟601:計(jì)算真實(shí)位置的經(jīng)度和緯度的拉普拉斯分布位置參數(shù);
經(jīng)度和緯度的位置參數(shù)的計(jì)算公式如下:
λx=max(xn)-min(xn),
λy=max(yn)-min(yn)
其中max(xn)、min(xn)分別表示在k匿名集中的經(jīng)度最大值和最小值。
max(yn)、min(yn)表示k匿名集中的緯度最大值和最小值。
步驟602:基于步驟601所述的拉普拉斯分布位置參數(shù),生成匿名經(jīng)度、匿名緯度;
匿名經(jīng)度、匿名緯度的生成方法如下:
在k匿名集中任取兩個位置,例如第i個位置,和第j個位置,然后對第i個位置加上基于隨機(jī)數(shù)的噪音,對第j個位置也加上基于隨機(jī)數(shù)的噪音。
步驟603:判斷所生成的匿名位置是否在隱私預(yù)算范圍內(nèi),如果是,合成匿名經(jīng)度和匿名緯度得到匿名位置,如果否,則重新執(zhí)行步驟602,直至獲得處于隱私預(yù)算范圍內(nèi)的匿名位置。
在一個實(shí)施例中,判斷是否在隱私預(yù)算范圍內(nèi),就是判斷是否滿足下述條件(可稱為隱私預(yù)算范圍條件):
Pr(xi→xp)≤eεPr(xj→xp)
Pr(yi→yp)≤eεPr(yj→yp)
其中,隱私預(yù)算參數(shù)ε表示隱私保護(hù)程度,隱私預(yù)算參數(shù)ε的值越小,隱私保護(hù)程度越高,本實(shí)施例中,ε可取經(jīng)驗(yàn)值。Pr( )表示生成匿名經(jīng)度和匿名緯度的函數(shù),xi、yi分別表示第i個位置的經(jīng)度和緯度,xj、yj分別表示第j個位置的經(jīng)度和緯度。“→xp”、“→yp”分別表示對位置經(jīng)度和位置緯度施加基于隨機(jī)數(shù)的噪音的過程。
如果同時(shí)滿足上述兩式(即隱私預(yù)算范圍條件),則表示基于第i個位置所生成的匿名經(jīng)度和匿名緯度與原始經(jīng)度和緯度在隱私預(yù)算參數(shù)ε內(nèi)不可區(qū)分,即基于第i個位置所生成的匿名經(jīng)度和匿名緯度在隱私預(yù)算范圍內(nèi)。
步驟700:提交位置匿名后的查詢請求<lp,qry>,然后獲取基于位置的服務(wù)(即LBS)。
步驟800:接收用戶對位置服務(wù)(即LBS服務(wù))準(zhǔn)確性評價(jià),并維護(hù)基于各個匿名位置的位置服務(wù)(LBS服務(wù))的滿意率。在一個例子中,該滿意率是:準(zhǔn)確性評價(jià)為滿意的同一匿名位置的查詢數(shù)目占該匿名位置的總查詢數(shù)目的比例。
進(jìn)一步地,根據(jù)本發(fā)明的另一實(shí)施例,還提供了一種相應(yīng)的基于位置匿名的隱私保護(hù)系統(tǒng),圖5示出了該隱私保護(hù)系統(tǒng)的結(jié)構(gòu)示意圖,包括:隱私偏好設(shè)置模塊11,用于根據(jù)用戶的查詢請求以及隱私保護(hù)強(qiáng)度要求和查詢準(zhǔn)確性要求為用戶推薦隱私等級,并要求用戶確認(rèn)或調(diào)整隱私保護(hù)等級;以及位置二次匿名模塊12,用于根據(jù)隱私等級偏好模塊11得到隱私等級,計(jì)算個性化隱私偏好參數(shù),包括k匿名集大小計(jì)算和匿名距離范圍,得到一個具有概率相似性的匿名位置集合,對這些位置進(jìn)行擾動都得到一個匿名位置。
在一個實(shí)施例中,隱私偏好設(shè)置模塊11包括隱私偏好推薦子模塊111和隱私偏好確認(rèn)子模塊112。其中,隱私偏好推薦子模塊111用于根據(jù)用戶選擇的隱私保護(hù)強(qiáng)度和查詢準(zhǔn)確率為用戶推薦一個隱私保護(hù)級別,隱私偏好確認(rèn)子模塊112用于將此推薦級別發(fā)送至用戶并由用戶確認(rèn)并調(diào)整,確定隱私保護(hù)級別。
在一個實(shí)施例中,位置二次匿名模塊12包括k匿名集大小計(jì)算子模塊121、基于位置熵的k匿名集選取子模塊122、匿名距離范圍計(jì)算子模塊123和基于差分隱私的匿名點(diǎn)生成子模塊124。
k匿名集大小計(jì)算子模塊121用于通過用戶設(shè)置的隱私等級計(jì)算k匿名集大小?;谖恢渺氐膋匿名集選取子模塊122用于得到k-1個與真實(shí)位置具有最大概率相似的位置,使得這k個位置的熵最大。匿名距離范圍計(jì)算子模塊123用于計(jì)算真實(shí)位置與匿名位置的距離范圍?;诓罘蛛[私的匿名點(diǎn)生成子模塊124用于對真實(shí)位置進(jìn)行擾動,得到一個與真實(shí)位置不可區(qū)分的匿名位置,使用這個位置從位置服務(wù)系統(tǒng)2獲取LBS服務(wù)。
最后應(yīng)說明的是,以上實(shí)施例僅用以描述本發(fā)明的技術(shù)方案而不是對本技術(shù)方法進(jìn)行限制,本發(fā)明在應(yīng)用上可以延伸為其它的修改、變化、應(yīng)用和實(shí)施例,并且因此認(rèn)為所有這樣的修改、變化、應(yīng)用、實(shí)施例都在本發(fā)明的精神和教導(dǎo)范圍內(nèi)。