Public Key Encryption with Conjunctive Field Keyword Search
Dong Jin Park, Kihyun Kim, and Pil Joong Lee Presenter: 陳昱圻 2008/8/19
Outline
• • • • • • Introduction Preliminary CFKS scheme Proposed scheme 1 Proposed scheme 2 Security proof
Introduction
將文件預先存放在伺服器
搜尋文件 Alice 傳回Alice的文件
誠實卻好奇的伺服器
Introduction – 2000 Song
• • • • 首推2000年Song等人提出的方法。 採用對稱式加密法。 加密的文件跟欲搜尋的暗門有關。 優點: 非常節省空間(文件大小為m 則放入伺 服器大小也是m) • 缺點: 很多…
Introduction – 2004 Goh
• 繼Song等人的方法之後,Goh提出index的概 念,加快了搜尋的效率。 • 使用了加密文件與可搜尋的密文分開儲存 • 優點: 搜尋效率較快(使用雜湊函數) • 缺點: 碰撞 搜尋錯誤 • 假設文件中總共有m的文字,訂定n個關鍵 字。則上傳給伺服器的加密文件大小為m, 可搜尋的密文為n,空間使用為m+n
Introduction
User1(Alice)
No interactive
User2(Bob)
send receive
Untrusted mail server
Introduction
• Boneh等人提出的public key encryption with keyword search scheme 即為使用公開金鑰的 搜尋機制,主要利用在email系統上。 [EApub[M], PEKS(Apub, W1),…,PEKS(Apub, Wm)] M為整篇eamil W1…Wm為關鍵字
Introduction
• Golle等人提出的Secure Conjunctive Keyword Search Over Encrypted Data 主要集中在多關鍵字的搜尋方式。 • 根據上述兩種方法,希望可以做到多關鍵 字的公開金鑰加密搜尋系統。
Outline
• Introduction • Preliminary BDH BDHI • CFKS scheme • Proposed scheme 1 • Proposed scheme 2 • Security proof
Preliminary
• 首先定義兩個困難的假設。BDH以及BDHI, 基於這些安全假設上,可以證明提出的機 制是安全的。 • 定義以下提到的G1為加法群,G2為乘法群。
Preliminary-BDH
• 給一組數 P, P, P, P G1 • 輸出 e( P, P) G2 • 一個攻擊者A可解BDH的能力為ε Pr[ A( P, P, P, P) e( P, P) ] • 即為給A P, P, P, P G1 看其是否能解 e( P, P) G2
Preliminary-BDH
* • 在A隨機挑選 , , Z P • 一個攻擊者B輸出 b {0,1} ,且有能力ε去解 DBDH問題
| Pr[ B( P, P, P, P, e( P, P) ) 0] Pr[ B( P, P, P, P, R) 0] |
• R為G2內隨機選擇的數 • 定義1: 假如在沒有t-time的演算法有能力ε 去解BDH,則(t,ε)BDH為困難的假設。
Preliminary-BDHI
• • • • Bilinear Diffie-Hellman Inversion 給一組數 P, xP, x 2 P,..., x q P (G1* ) q 1 * 計算 e( P, P)1/ x G2 一個攻擊者A可解BDHI的能力為ε 2 q 1/ x Pr[ A( P, xP, x P,..., x P) e( P, P) ]
2 q * q 1 1
• 即為給A P, xP, x P,..., x P (G ) * 看其是否能解 e( P, P)1/ x G2 • 方法與BDH類似,攻擊者B亦類似
Outline
• • • • • • Introduction Preliminary PECK scheme Proposed scheme 1 Proposed scheme 2 Security proof
PECK scheme
• Email訊息的格式 [ EApub [M ], PECK( Apub , (W1 ,...,Wm ))] • 並具有以下特色 1. 在同一文件相同的keyword不會出現在兩 個不同的field裡面。 2. 對於每個文件,每個keyword field都被定 義。
PECK scheme - Example
m fields From
D1
To Bob Charlie
Date 06/01/2004 05/28/2004
Status Urgent Secret
Alice Alice
n docs
D2
…
Dn
…
Alice
…
06/04/2004
…
Non-urgent
Dave
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
Model D1 D2 D3 D4 D5 1 KevinWang Noodle KevinWang I AI-lab 2 PHD is is saw 922B 3 NULL a not a NULL 4 NULL fat CM-Wang NULL NULL 5 NULL pig NULL NULL NULL … … … … … …
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}*→G1 size為小p的兩個群G1 G2 大P為G1之generator
Proposed scheme 1 - work
• KeyGen(1k)→Apub=[P, Y1=s1P, Y2=s2P] Apriv=[s1, s2] size:2,3 其中s1,s2為Zp中隨機選的兩個數 size:mpr+2 • PECK(Apub, D)→[e(rH (W1 ), Y1 ),..., e(rH (Wm ), Y1 ), rY2 , rP ] r為屬於Zp隨機值,D={W1,W2,…,Wm} • Trapdoor(Apriv, Q)→TQ=[T1,T2,I1,…,It] I1,…,It為欲搜尋的關鍵字之位置
s1 T1 s u mod p H (1 ) ... H ( t ) size:2+欄位 2 T2 u Z p 且隨機挑選
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,驗證過程如下
AI1 AI 2 ... AI t e(r ( H (WI1 ) ... H (WI t )),Y1 ) e( s1 ( H (1 ) ... H (t )), rP ) e(T1 , B T2C )
Outline
• • • • • • Introduction Preliminary PECK scheme Proposed scheme 1 Proposed scheme 2 Security proof
Proposed scheme 2
• 在scheme 1的H function中使用了所謂 admissible encoding scheme(?),這是一個負 擔極大的計算。 • Scheme 2不使用此方法。在PECK步驟的計 算負擔較低。需要兩個雜湊函數
H1 , H 2 : {0,1}* {0,1}log 2 p
參照Scheme 1的H function
Proposed scheme 2 - work
• KeyGen(1k)→ size:(m+2)+1+pr , m+2 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:2m+2
Proposed scheme 2 - work
• Trapdoor(Apriv,Q)→TQ=[T1,T2,T3,I1,…,It]
T1 T2 1 P sI1 ... sI t H1 (1 ) ... H1 (t ) sm 2u 1 sm 1 T1
T3 u為Z p中的隨機數
• Test(Apub, S, TQ): S=(A1,.., Am, B1,…, Bm, C, D) 驗證 e( AI ... AI T3C , T1 )
H2 (
1 t
e( BI1 ... BI t , T2 )
)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) • 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}) • A目標也是分辨D0&D1 • Proposition 2. 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的安全性是架構在ICLR game中 解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 如果有
回傳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
H-list 步驟3 B選一Zp隨機ai,當 ci=0則B計算hi←ai(βP) ci=1則B計算hi←aiP 步驟4 B增加到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
傳回[Fi,ui,Ii,1,…,Ii,t] Go back
s ui
H (
i ,1
) ... H ( i ,t )
Security Proof – Challenge.
攻擊者A 攻擊者B
W,z
步驟1 B取得H(W)=h且符合H-list 如果c=1則B失敗 步驟2 攻擊者B選多個隨機Wi,j i為0,1 j介於1~m除了W0,z=W B產生Di=(Wi,1,…,Wi,m) 兩隨機文件 限制先前的Trapdoor不能分辨此兩 給W0,j讓為符合的H-list 步驟3 B回應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.
產生一關鍵字W以及位置z 希望來被challenge
回應challenge以及D0,D1
Go back
Security Proof – Challenge.
• 如果R為e(P,P)αβγ 此challenge等於 [e(H (W0,1 ), Y1 ),..., e(H (W0,m ), Y1 ), Y2 , P] 這會是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時也不會失敗 1 1/ qt q 1/ e,則E1的機率 • 假設qt足夠大 Pr[ E1 ] 1 / e m而E2的機率 Pr[ E2 ] 1 / qt ,故B破 解DBDH問題的能力為 ' / e m qt
t
Security Proof
• 假設DBDH問題是棘手的,Scheme 1在抵擋 adaptive chosen keyword attack符合 semantically secure。
Conclusion
• 利用bilinear map,在共節搜尋上提出了兩 個更有效率的機制。 • 在scheme1中,在Test用了一個pairing operation,但這也是常受到質疑的一個步 驟。此機制是用在搜尋已儲存的資料,其 安全性架構在DBDH問題上