Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 適用於搜尋加密文件之有效率關鍵字 索引架構. 2 Outline 緒論 - 加密搜尋 相關研究 PRP-Index 及 P-Index 錯誤率分析 比較與實際例子 安全分析 結論.

Similar presentations


Presentation on theme: "1 適用於搜尋加密文件之有效率關鍵字 索引架構. 2 Outline 緒論 - 加密搜尋 相關研究 PRP-Index 及 P-Index 錯誤率分析 比較與實際例子 安全分析 結論."— Presentation transcript:

1 1 適用於搜尋加密文件之有效率關鍵字 索引架構

2 2 Outline 緒論 - 加密搜尋 相關研究 PRP-Index 及 P-Index 錯誤率分析 比較與實際例子 安全分析 結論

3 3 3 使用者 誠實卻好奇的伺服器 將加密文件及搜尋架構預先存放在伺服器 關鍵字的後門 傳回使用者所需 的文件 藉由關鍵字的後 門進行搜尋 緒論 - 加密搜尋

4 4 加密搜尋的隱私維護 獨立詢問 (Query Isolation) 控制搜尋 (Controlled Searching) 隱藏搜尋 (Hidden Queries) 獨立更新 (Update Isolation)

5 5 加密搜尋的執行目標 低搜尋延遲 (Low Query Latency) 伺服器高處理效率 (High Server Throughput) 支持邏輯運算 (Support For Boolean Queries) 低錯誤率及使用空間 (Low False Positive & Low Index Space)

6 6 相關研究 Song 等人的方法 SWP(2000) – 為循序搜尋 – 加解密方式固定 Goh 的方法 Z-IDX(2004) – 為索引架構 – 文件加密方法與索引為互相獨立

7 7 Goh 的方法 Z-IDX(2004) ‘water’ trapdoor: T 1 = f k (‘water’) codeword: x 1 = f id (T 1 ) 3. Bloom Filter BuildIndex (D, Key) SearchIndex (trapdoor, Index)

8 8 Goh 的方法 Bloom Filter

9 9 Z-IDX 的缺點 使用雜湊函數會發生碰撞 (Collision) 的問題,而 產生誤判 (False Positive) 的情況。 為了降低錯誤率,因此必須考慮所有文件中關鍵字 的總個數,造成陣列的大小變的相當大。 此索引架構僅能判斷關鍵字是否存在文件中,而 無法得知關鍵字的位置,因此不能對文件進行片 語的搜尋,搜尋功能有限。

10 10 PRP-Index 及 P-Index 一份文件對應一個索引。 索引與加密文件為互相獨立。 每份文件的搜尋時間平均為 O(1) 。 具備 and, or, not 甚至是片語的搜尋功能支持。 索引所需空間變得更少且錯誤率變得更低。 達成加密搜尋的隱私維護要求及執行目標。

11 11 擬亂排列 (Pseudorandom Permutation) ∏: {0, 1} u × {0, 1} s → {0, 1} u 擬亂排列具有一對一的特性。在相同金鑰下, 不會產生輸入值不同,而輸出值相同的情況, 沒有碰撞 (Collision) 的情形,為單向函數,並 且計算速度要快,必需在常數時間內完成。

12 12 虛擬亂數產生器 (Pseudorandom Generator) G: {0, 1} n → {0, 1} l 虛擬亂數產生器為產生虛擬亂數之函數 ( 不需 金鑰 ) ,單向且隨機,常用於串流加密法。

13 13 PRP-Index(1/2) ‘water’ trapdoor: T 1 = ∏ k (‘water’) codeword: x 1 = ∏ id (T 1 ) key 1 =G(T 1 +id) 3. Array(codeword & position) BuildIndex (D, Key) SearchIndex (trapdoor, Index)

14 14 PRP-Index(2/2)

15 15 P-Index(Position-Index)(1/2) ‘water’ trapdoor: T 1 = ∏ k (‘water’) codeword: x 1 = ∏ id (T 1 ) key 1 =G(T 1 +id) 3. Array(position) BuildIndex (D, Key) SearchIndex (trapdoor, Index)

16 16 P-Index(Position-Index)(2/2)

17 17 特性 PRP-Index :利用擬亂排列函數在同一金鑰 不會碰撞的特點,同一文件裡的關鍵字的 codeword 不會重覆,所以伺服器端能 100% 準確地搜尋。 P-Index :在低錯誤率的情形下,索引所需空 間變得更少。

18 18 P-Index 錯誤率分析 fp = (1/2 r ) 3 +(1/2 r ) 4 +(1/2 r ) 5 +… +(1/2 r ) m ≤ (1/2 r ) 3 +(1/2 r ) 4 +(1/2 r ) 5 +… +(1/2 r ) 2r = (1/2) 3r-1 -(1/2) r*2r+r = O((1/2 r ) 3 )

19 19 搜尋架構的比較 SWPGoh’ Z-IDXPRP-IndexP-Index Controlled search ˇˇˇˇ Query Isolation ˇˇˇˇ Hidden Queries ˇˇˇˇ Update Isolation ˇˇˇˇ Key Phrase ˇ × ˇˇ Search Time (per doc) O(m)O(1) Encryption Method (for doc) SWPAny Index Space Cost (per doc) 0O(n’t)O(n*(u+r)+m*r)O((n+m)*r) False Positive O((1/2) p )O((1/2) t )O((1/2) 2r )O((1/2) 3r )

20 20 索引空間實際例子的比較 Z-IDX (fp=(1/2) 16 ) PRP-Index (fp=0, u=64) P-Index (fp=(1/2) 51 ) largest doc (72982 words 36491 unique) 1710.6 KB873.1 KB454.6 KB average doc (1808 words 528 unique) 24.8 KB14.2 KB8.2 KB smallest doc (1 words 1 unique) 0.05 KB0.03 KB0.01 KB 2654 個文件中共有 4799551 個字,其中 439611 為關鍵字

21 21 安全性分析 目的:讓攻擊者無法推測文件是否含有其他未 搜尋關鍵字。 攻擊手段:攻擊者產生文件及關鍵字對挑戰者 提出詢問,得到其相對應的索引及後門,再自 行做搜尋分析。 若能滿足目的,則稱此索引架構為 IND-CKA Index 。

22 22 IND-CKA Index(1/4) 攻擊者 A 挑戰者 C 執行 Keygen k D 1, D 2, …, w 2, w 3,.. I 1,I 2,.., T w2,T w3,.. 執行 BuildIndex Trapdoor 對索引及後 門進行分析

23 23 IND-CKA Index(2/4) 攻擊者 A 挑戰者 C D’, w 0, w 1 ID’ID’ b {0, 1} D’ {w b } 執行 BuildIndex 推測 w b 未有 w 0, w 1 後門 R

24 24 IND-CKA Index(3/4) 攻擊者 A 挑戰者 C 繼續尋問 Output b’ 未有 w 0, w 1 後門

25 25 IND-CKA Index(4/4) 攻擊者 A 的優勢 (advantage) 為 Adv A =|Pr[b=b’]–1/2| 。 若一索引架構為ɛ -IND-CKA Index ,表示 Adv A =|Pr[b=b’]–1/2|< ɛ。 惡意攻擊者 A 難以推測文件所含有的關鍵字 為何。

26 26 擬亂排列 (Pseudorandom Permutation) Adv A =| Pr[A ∏k(.) = 1] - Pr[A E(.) = 1] | ,其中 E 為 隨機排列函數 。 若 Adv A < ɛ p ,則 ∏ 稱為ɛ p -pseudorandom- permutation 。 A F(.) 1, 猜測 F 為擬亂排列函數 0, 猜測 F 為隨機排列函數

27 27 Theorem 1. 若 PRP-Index 所使用的擬亂排列函數 ∏ 為ɛ p - pseudorandom-permutation ,則 PRP-Index 為ɛ p -IND-CKA index 。 2. 若 P-Index 所使用的擬亂排列函數 ∏ 為ɛ p - pseudorandom-permutation ,則 P-Index 為 ɛ p -IND-CKA index 。

28 28 proof(1/6) 利用逆轉命題 (¬q → ¬p) 來進行證明,首先假 設 PRP-Index 不為ɛ p -IND-CKA index ,表示存 在一演算法 α 可以ɛ p -breaks PRP-Index(Adv α ≥ ɛ p ) ;我們要建立一使用 α 來分辨 ∏ 為擬亂排列 或隨機排列的演算法 β 。

29 29 proof(2/6) 演算法 β 將利用對 oracle O F 的詢問 ( 對於輸 入值 x , O F 產生相對應的值 F(x) ,以函數 F 來作為後門所用的函數 ) 來模擬 PRP-Index 環境,將演算法 α 放入此環境中進行攻擊挑 戰,其中演算法 α 攻擊所需的資訊均由 β 所 給予,最後 β 由演算法 α 的結果來判斷 F 為擬 亂排列或隨機排列 。

30 30 proof(3/6)

31 31 proof(4/6) 5. 演算法 α 最後輸出一值 b’ ,當 b = b’ 時,演算法 β 輸出 1 ,表示 β 猜測 F 為擬亂排列函數,反之輸出 0 。 當 F 為擬亂排列函數 (∏) 時,演算法 β 模擬的 PRP- Index 環境為正確的,因此 Adv α =|Pr[b=b’]–1/2| =|Pr[b=b’ |∏ 為擬亂排列 ]-1/2| ( 由於 P-Index 中的 ∏ 為擬亂排列 ) =|Pr[β ∏k(.) =1|∏ 為擬亂排列 ]-1/2|≥ ɛ p ・・・・ (1)

32 32 proof(5/6) 當 F 為隨機排列函數 (E) 時,因為由 F 所得 的後門為真隨機,所以無法猜測 w 0, w 1 的後門,也無法根據索引所存的值 (codeword& 位置 ) 來分析;因此演算法 α 能猜測出 b = b’ 的機率為 1/2 。 Pr[b=b’|E 為隨機排列 ] Pr[β E(.) =1|E 為隨機排列 ] =1/2 ・・・・ (2)

33 33 proof(6/6) 由 (1), (2) 得知: Adv β =|Pr[β ∏k(.) =1|∏ 為擬亂排列 ]- Pr[β E(.) =1|E 為隨 機排列 ]| =|Pr[β ∏k(.) =1|∏ 為擬亂排列 ]-1/2|≥ ɛ p 演算法 β 可以在 Adv β ≥ ɛ p 的情況下破解 PRP- Index 所使用的擬亂排列函數 。

34 34 加密搜尋要求 (1/2) 1. 獨立詢問:關鍵字搜尋所得到的結果資訊僅 與目前搜尋的關鍵字有關,關鍵字間的搜尋 是獨立的。 2. 控制搜尋:由 Theorem 可得知,即使擁有之 前搜尋的結果,仍無法在沒有授權的情形下 猜測文件含有哪些未搜尋關鍵字。

35 35 加密搜尋要求 (2/2) 3. 隱藏搜尋:關鍵字搜尋是由使用者將關鍵字代入 擬亂排列函數產生後門,再傳給伺服器端進行搜 尋,因此難以從關鍵字後門以及搜尋過程中推測 使用者欲搜尋的關鍵字為何。 4. 獨立更新: 由於是一份文件對應一個索引,因 此文件在進行更新時,例如:增加文件、刪除文 件及修改文件,並不會洩漏此文件之資訊且不會 影響到其他未更新的文件。

36 36 結論 具有較彈性的加密、較少空間使用量及較低錯 誤率的搜尋以及對片語搜尋的支持,同時仍保 有一定的搜尋效率, 這些特點幫助使用行動裝置的使用者節省許多 的時間及空間浪費。 未來希望能在維持以上特點的前提下,將伺服 器端空間的消耗降到最低,達到零錯誤率並結 合其它搜尋技術,以提升加密索引搜尋的整體 效率及功能。


Download ppt "1 適用於搜尋加密文件之有效率關鍵字 索引架構. 2 Outline 緒論 - 加密搜尋 相關研究 PRP-Index 及 P-Index 錯誤率分析 比較與實際例子 安全分析 結論."

Similar presentations


Ads by Google