440 likes | 611 Views
Public Key Encryption with Conjunctive Field Keyword Search. Dong Jin Park, Kihyun Kim, and Pil Joong Lee Presenter: 陳昱圻 2008/10/8. Outline. Introduction Preliminary CFKS scheme Proposed scheme 1 Proposed scheme 2 Security proof. Introduction. 將文件預先存放在伺服器. 搜尋文件. Alice. 傳回 Alice 的文件.
E N D
Public Key Encryption with Conjunctive Field Keyword Search Dong Jin Park, Kihyun Kim, and Pil Joong LeePresenter: 陳昱圻 2008/10/8
Outline • Introduction • Preliminary • CFKS scheme • Proposed scheme 1 • Proposed scheme 2 • Security proof
Introduction 將文件預先存放在伺服器 搜尋文件 Alice 傳回Alice的文件 誠實卻好奇的伺服器
Introduction – 2000 Song • 首推2000年Song等人提出的方法。 • 採用對稱式加密法。 • 加密的文件跟欲搜尋的暗門有關。 • 優點: 非常節省空間(文件大小為m 則放入伺服器大小也是m) • 缺點: 很多…
Introduction – 2004Goh • 繼Song等人的方法之後,Goh提出index的概念,加快了搜尋的效率。 • 使用了加密文件與可搜尋的密文分開儲存 • 優點: 搜尋效率較快(使用雜湊函數) • 缺點: 碰撞 搜尋錯誤 • 假設文件中總共有m的文字,訂定n個關鍵字。則上傳給伺服器的加密文件大小為m,可搜尋的密文為n,空間使用為m+n
Introduction User1(Alice) User2(Bob) No interactive send receive Untrusted mail server
Introduction • Boneh等人提出的public key encryption with keyword search scheme 即為使用公開金鑰的搜尋機制,主要利用在email系統上。[EApub[M], PEKS(Apub, W1),…,PEKS(Apub, Wm)]M為整篇eamilW1…Wm為關鍵字
Introduction • Golle等人提出的Secure Conjunctive Keyword Search Over Encrypted Data主要集中在多關鍵字的搜尋方式。 • 根據上述兩種方法,希望可以做到多關鍵字的公開金鑰加密搜尋系統。
Outline • Introduction • PreliminaryBDHBDHI • CFKS scheme • Proposed scheme 1 • Proposed scheme 2 • Security proof
Preliminary • 首先定義兩個困難的假設。BDH以及BDHI,基於這些安全假設上,可以證明提出的機制是安全的。 • 定義以下提到的G1為加法群,G2為乘法群。
Preliminary-BDH • 給一組數 • 輸出 • 一個攻擊者A可解BDH的能力為ε • 即為給A 看其是否能解
Preliminary-BDH • 在A隨機挑選 • 一個攻擊者B輸出 ,且有能力ε去解DBDH問題 • R為G2內隨機選擇的數 • 定義1:假如在沒有t-time的演算法有能力ε去解BDH,則(t,ε)BDH為困難的假設。
Preliminary-BDHI • Bilinear Diffie-Hellman Inversion • 給一組數 • 計算 • 一個攻擊者A可解BDHI的能力為ε • 即為給A 看其是否能解 • 方法與BDH類似,攻擊者B亦類似
Outline • Introduction • Preliminary • PECK scheme • Proposed scheme 1 • Proposed scheme 2 • Security proof
PECK scheme • Email訊息的格式 • 並具有以下特色1.在同一文件相同的keyword不會出現在兩個不同的field裡面。2.對於每個文件,每個keyword field都被定義。
m fields From To Date Status D1 D2 n docs Dn PECK scheme - Example The documents are the rows of the matrix Di = (Wi, 1, …, Wi, m)
PECK scheme – Example 2 D1: Kevin-Wang Kevin-Wang Kevin-Wang Kevin-Wang Kevin-Wang PHD D2: Noodle is a fat pig D3: Kevin-Wang is not CM-Wang D4: I saw a saw, saw a saw D5: AI-lab 922B
PECK scheme - Definition • PECK機制由以下幾個polynomial time randomized algorithm所組成。 • 1.KeyGen(1k)得到公鑰私鑰對 • 2. PECK(Apub, D)產生D的可共節搜尋的密文S • 3. Trapdoor(Apriv, Q) 利用欲搜尋的內容與私鑰產生暗門TQ • 4. Test(Apub, S, TQ)伺服器利用暗門與密文以及工要做比對之動作
Outline • Introduction • Preliminary • PECK scheme • Proposed scheme 1 • Proposed scheme 2 • Security proof
Proposed scheme 1 • 在大多數的機制中,只有Test步驟會用到一個pairing operation。 • 在scheme 1適用在email匝道上搜尋資料與路由上。 • 首先介紹此機制的一些參數雜湊函數 H: {0,1}*→G1size為小p的兩個群G1G2大P為G1之generator
Proposed scheme 1- work • KeyGen(1k)→Apub=[P, Y1=s1P, Y2=s2P]Apriv=[s1, s2]其中s1,s2為Zp中隨機選的兩個數 • PECK(Apub, D)→r為屬於Zp隨機值,D={W1,W2,…,Wm} • Trapdoor(Apriv, Q)→TQ=[T1,T2,I1,…,It]I1,…,It為欲搜尋的關鍵字之位置 size:2,3 size:mpr+2 size:2+欄位
Proposed scheme 1- work • Test(Apub, D, TQ): S=[A1, A2,…, Am, B=rY2, C=rP]驗證等式 AI1*AI2*…*AIt=e(T1,B+T2C)如果WIi=Ωi(1≤i ≤t)則輸出yes唯有搜尋到符合的keyword,驗證過程如下
Outline • Introduction • Preliminary • PECK scheme • Proposed scheme 1 • Proposed scheme 2 • Security proof
Proposed scheme 2 • 在scheme 1的Hfunction中使用了所謂admissible encoding scheme (MapToPoint),這是一個負擔極大的計算。 • Scheme2不使用此方法。在PECK步驟的計算負擔較低。需要兩個雜湊函數 參照Scheme 1的Hfunction
Proposed scheme 2 - work • KeyGen(1k)→ Apub=[P, Y1=s1P,…, Ym+2=sm+2P, g=e(P,P)]Apriv=[s1,…,sm+2] P為G1生成元,sn為Zp中挑選的隨機數 • PECK(Apub,D)→ [r0(Y1+H1(W1)P)+r1P,…, r0(Ym+H1(Wm)P)+rmP,r1Ym+1,…, rmYm+1, r0Ym+2,H2(gr0) ]rn為Zp中挑選的隨機數 size:(m+2)+1+pr , m+2 size:2m+2
Proposed scheme 2 - work • Trapdoor(Apriv,Q)→TQ=[T1,T2,T3,I1,…,It] • Test(Apub, S, TQ): S=(A1,.., Am, B1,…, Bm, C, D)驗證
Outline • Introduction • Preliminary • PECK scheme • Proposed scheme 1 • Proposed scheme 2 • Security proof
Security proof –game ICC Adversary Challenger A可以放資料或搜尋 Challenger給予回應 選定D0,D1 傳回一E(Db) A可以再放資料或搜尋 而challenger持續做回應 唯獨不能讓A去詢問D0,D1,最後A要猜b是0或1
Security proof –game ICR • 類似於ICC • 唯有D1=Rand(D0,T) T為所有關鍵字的集合 • A目標也是分辨D0&D1 • Proposition 1.If there is an adversary A that wins Game ICC with advantage ε, then there exists an adversary A’ that wins Game ICR with advantage ε/2.
Security proof –game ICLR • 類似於ICR • 唯有D0=Rand(D,T) D1=Rand(D,T-{t}) t為關鍵字集合中的一個關鍵字 • A目標也是分辨D0&D1 • Proposition 2.(Golle’s)If there is an adversary A that wins Game ICR with advantage ε, then there exists an adversary A’ that wins Game ICLR with advantage ε/m2
Security Proof –scheme 1 • 定義scheme1的安全性是架構在ICLRgame中解DBDH問題是困難的假設上。 • 假設攻擊者A在game ICLR擁有能力ε去破解scheme1,而A最多可做qT次詢問Trapdoor。 • 另外建立攻擊者B有ε’=ε/emqT的能力解在G1的DBDH問題。(執行時間與A差不多) • 當輸入(P,αP,βP,γP,R)攻擊者B的目標是如果R=e(P,P)αβγ輸出1,若不是則輸出0。
Security Proof –scheme 1 • 證明的概念假設有攻擊者A可以破解scheme1所以存在解DBDH的對手B。因為DBDH是open problem,所以B解不得DBDH,故推得存在攻擊者A是假設錯誤。 • 在game ICLR,攻擊者B執行動作並持續與攻擊者A互動,其過程步驟如下:
Security Proof – KeyGen. 攻擊者A 攻擊者B 從Zp內選一隨機數s 給Apub=[P, Y1= αP, Y2=sP] 符合的Apriv=[α,s] 其中α值攻擊者B並不知道
Security Proof – Hash queries. 攻擊者A 攻擊者B 任何時候A可對RO的H做詢問 其根據B他手上的H-list < Wi, hi, ai, ci > 回應H quries H-list初始是空的,當A詢問Wi的H,B回應如下。
Security Proof – Hash queries. 攻擊者A 攻擊者B 跟B詢問Wi的H 步驟1 B看H-list內是否有出現過Wi 如果有 <Wi, hi, ai, ci> 回傳H(Wi)=hi H-list 沒有在H-list內,則跳步驟2
Security Proof – Hash queries. 攻擊者A 攻擊者B 跟B詢問Wi的H 步驟2 B產生一個隨機{0,1}的ci Pr[ci=0]=1/qt 步驟3 B選一Zp隨機ai,當 ci=0則B計算hi←ai(βP) ci=1則B計算hi←aiP H-list 步驟4 B增加<Wi, hi, ai, ci>到H-list中 並回應H(Wi)=hi 回傳H(Wi)=hi
Security Proof – Trapdoor queries. 攻擊者A 攻擊者B 當A要做一個多關鍵字搜尋 Qi=(Ii,1,…Ii,t,Ωi,1,… Ωi,t) 步驟1 攻擊者B執行上述演算法對於回應H queries 去取得hi,j H(Ωi,j)=hi,j且讓<Ωi,j, hi,j, ai,j, ci,j>為對應的H-list 如果ci,j沒有全部都是1,則B會失敗。 步驟2 我們知道ci,j=1則hi,j=ai,jP 定義Ei=(ai,1+…+ai,t)Y1 Fi=(1/(s+ui)mod p)Ei其中ui是Zp隨機數 Fi對於欲查詢的Q在Apub下是正確的暗門。 傳回[Fi,ui,Ii,1,…,Ii,t] Go back
Security Proof – Challenge. 攻擊者A 攻擊者B 步驟1B取得H(W)=h且<W,h,a,c>符合H-list 如果c=1則B失敗 W,z 產生一關鍵字W以及位置z 希望來被challenge 步驟2 攻擊者B選多個隨機Wi,j i為0,1 j介於1~m除了W0,z=W B產生Di=(Wi,1,…,Wi,m) 兩隨機文件 限制先前的Trapdoor不能分辨此兩 給W0,j讓<W0,j,h0,j,a0,j,c0,j>為符合的H-list 步驟3B回應challenge[A1,…Am,B,C]以及 D0,D1計算challenge value如下 如果c0,j=0, Aj=Ra0,j否則Aj=e(a0,j(γP),αP) - B=s(γP). C=γP. 回應challenge以及D0,D1 Go back
Security Proof – Challenge. • 如果R為e(P,P)αβγ此challenge等於這會是D0可用的PECK
Security Proof – More queries. 攻擊者A 攻擊者B 可以持續做詢問動作 唯獨不能詢問有關D0,D1 針對A的詢問作回應
Security Proof – Output. • 最後A要輸出b’為0或1去分辨challenge是D0還是D1。如果b’=0則B輸出yes 表示R=e(P,P)αβγ,否則輸出no。
Security Proof • 以上完成描述了攻擊者B。而B可能失敗在Trapdoor queries以及準備challenge之時。 • 定義兩個事件E1: B回應所有A的Trapdoor queries不失敗E2:B準備挑戰給A時也不會失敗 • 假設qt足夠大 ,則E1的機率 而E2的機率,故B破解DBDH問題的能力為
Security Proof • 假設DBDH問題是棘手的,Scheme 1在抵擋adaptive chosen keyword attack符合semantically secure。
Conclusion • 利用bilinear map,在共節搜尋上提出了兩個更有效率的機制。 • 在scheme1中,在Test用了一個pairing operation,但這也是常受到質疑的一個步驟。此機制是用在搜尋已儲存的資料,其安全性架構在DBDH問題上