k-anonymous path privacy 是透過更動(k-1)名最短路徑之邊上的權重,使攻 擊者於圖形上能夠辨識原始最短路徑的機率,降低為 1/k,本文將對(一)K-Single Path Anonymization Algorithm (KSP) 、( 二 ) K-Multiple Paths Anonymization Algorithm (for NV)、(三)K-Multiple Paths Anonymization Algorithm (for AV)等,分 別介紹。
4.1 K-Single Path Anonymization (KSP)
隱匿圖形前,必須決定要保護之配對節點,本例以(V1, V6)為目標,首先必 須找到保護的目標之最短路徑,如圖 4.1 之紅色虛線所示,配對節點(V1, V6)之 最短路徑為 V1 →V3 →V4 →V6 =4。
其後,再於圖形中尋找配對節點之第二最短路徑,由圖 4.1 中可發現 V1 →V2
→V3 →V4 →V6 =5,為第二最短路徑。由於第二最短路徑上,e12與 e23皆為 NV,我 們挑選這兩條條邊依照權重大小之比例進行修改,權重較大的邊扣除較多的權重,
反之亦然。最短路徑與第二最短路徑相差權重為 1,依照比例原則,e12 扣除 個權重,e23扣除 個權重,使得兩個最短路徑的長度相 等,攻擊者發現原始最短路徑之機率降低為 1/2,如圖 4.2 左圖。若要增強隱匿之 保護則繼續尋找下一條最短路徑,並依此類推。
Single pair:[(V1, V6)] Multiple pair:[(V1, V6), (V2, V6)]
圖 4.1 原始圖形
圖 4.2 單對與多對節點之 k-anonymous path privacy(k=2)
在演算法中會使用到下列變數:
epq:邊 pq
wpq:邊 pq 之權重
:修改後邊 pq 之權重
SPL (shortest path list):最短路徑清單。
SPLh:第 h 配對的最短路徑清單。
SP (shortest path weight):最短路徑。
NSP (next shortest path weight):下一次短路徑。
SPW (shortest path weight):最短路徑之長度。
NSPW (next shortest path weight):下一次短路徑之長度。
VL (visited list):以被最短路徑經過的邊之清單。
ME (modify edge):預定要修改的邊。
MEW (modify edge weight):上述之邊所加總之權重數。
MW (modify weight):預定要修改的權重數量。
tempAVL (temp all-visited list):儲存目前修改配對中的 AV AVL (all-visited list):儲存前 k-1 個配對之 AV 清單
K-Single Path Anonymization Algorithm (KSP) 輸入: (1)圖形 G,
19
4.2 K-Multiple Paths Anonymization for NV (KMPN)
圖形也可針對多對配對節點進行隱匿保護,如圖 4.2 之左圖為已經針對配對
K-Multiple Paths Anonymization Algorithm for NV 輸入: (1)圖形 G,
(2)想要隱匿最短路徑之起始點與終點之集合 H,
(3)K,隱私層級,釋出圖形中擁有 K 條最短路徑,
輸出:隱匿後之圖形 G*。
21
4.3 K-Multiple Paths Anonymization for AV (KMPA)
在此方法中,除了針對圖形中的 NV 進行修改外,我們也可以針對前 k-1 項配 對之 AV,實行權重的更動。如圖 4.3 左圖,配對節點(V2, V6)已為 k=2 之隱匿 配對,假設(V2, V5)配對也為需要隱匿之對象,其最短路徑為 V2 →V3 →V5 =4,
其次短路徑為 V2 →V4 →V6 →V5 =5,相差的權重大小為 1。由於這個方法考量前(k-1)
對之 AV 也是可行的修改對象,如圖 4.3 右圖,次短路徑上 e65為 NV、e46為 AV,
即使修改了 e46,前一項配對節點(V2, V6)之兩個隱匿最短路徑雖然長度減小,但 其路線也不會受到更動。
K-Multiple Paths Anonymization Algorithm for AV 輸入: (1)圖形 G,
(2)想要隱匿最短路徑之起始點與終點之集合 H,
(3)K,隱私層級,釋出圖形中擁有 K 條最短路徑,
輸出:隱匿後之圖形 G*。
1. 初始化 SPLh = //shortest path list 2. WHILE H≠ DO
3. 由 H 中提出配對 h(i , j) 4. 尋找配對(i , j)的 SP 與 NSP 5. 將 SP 儲存於 SPLh
6. 將 SP 的每一條邊儲存於 tempAVL 7. WHILE 當 SPL 的內容數量不為 K DO 8. IF SPW = NSPW
9. 將 NSP 儲存於最短路徑清單 SPLh
Single pair:[(V2, V6)] Multiple pair:[(V2, V6), (V2, V5)]
圖 4.3 多對節點之權重路徑隱匿(for AV)
10. AVL = NSP 的邊與 tempAVL 內的邊做交集
23
次 短 路 徑 , 最 差 的 情 形 下 , 演 算 法 會 尋 找 最 後 之 次 短 路 徑 並 且 無 法 完 成 k-anonymous path privacy 。 依 此 情 況 下 , KSP 演 算 法 最 差 複 雜 度 為 : O((2+n)*(n-1)v(e+vlogv)/2)。若使用 KMP 之演算法,處理之配對節點為 h 對時,
則最差之時間複雜度為:O(h(2+n)*(n-1)v(e+vlogv)/2)
針對 AV 與 NV 之不同的修改方法,在下一章節,我們將會透過實驗做詳細的 比較,透過實驗結果之詳細的隱匿效果資訊,提供實際的參考與建議。