210 likes | 327 Views
Public Key Encryption with Keyword Search Revisited. Author:Joonsang, Reihaneh Safiavi-Naini, Willy Susilo Presenter: 紀汶承. Outline. 目的 改進的方法 結論. 目的. 在於改進原始的 PEKS 方法的缺點,以下有三 Server 會記錄過往的 trapdoor 進而去推算未來 trapdoor 所對應的 e-mail 種類 必須在安全的 ( 加密且授權 ) 通道下作溝通 改進多關鍵字搜尋. 改進的方法.
E N D
Public Key Encryption with Keyword Search Revisited Author:Joonsang, Reihaneh Safiavi-Naini, Willy Susilo Presenter:紀汶承
Outline • 目的 • 改進的方法 • 結論
目的 • 在於改進原始的PEKS方法的缺點,以下有三 • Server會記錄過往的trapdoor進而去推算未來trapdoor所對應的e-mail種類 • 必須在安全的(加密且授權)通道下作溝通 • 改進多關鍵字搜尋
改進的方法 • 解決記錄trapdoor的問題 • 更新keyword. • 在經常使用的keyword增加時戳欄位 • 例如: urgent||01/07/04, Alice||5 hours • 當時效過了就刪除keyword,避免server去計算哪些e-mail跟某些trapdoor相關
不需在安全的channel下也能執行 • 改進原始的PEKS演算法包含如下 • KeyGenParam(K) : 產生公用參數cp • KeyGenServer(cp) : 產生server的公密鑰對(pkS,skS) • KeyGenReceiver(cp) : 產生Receiver的公密鑰對(pkR,skR) • SCF-PEKS(cp,pkS,pkR,w)=S : 產生可搜尋加密關鍵字
Trapdoor(cp,skR,w) : 產生w的trapdoor • Test(cp,Tw,skS,S) : 驗證 S= SCF-PEKS(cp,pkS,pkR,w’)與Tw中,假設w=w’則正確,否則不正確
Test(cp,Tw,skS,S) 正確? SERVER Trapdoor(cp,skR,w) E(pkR,M)|| SCF-PEKS(cp,pkS,pkR,w) 假設正確回傳E(pkR,M) SENDER RECEVIER 目的sender要送e-mail給recevier Recevier收信
Proposed scheme • KeyGenParam(K) : 選擇兩個groups g1=<P>與g2其中order為 ,建立一個bilinear pairing : ,兩個hash function 公用參數cp=(q,g1,g2,e,P,H1,H2,dw) • KeyGenServer(cp) : 隨機選擇 並計算X=xP,隨機選擇 ,pkS=(cp,Q,X)和skS=(cp,x)為server的公密鑰對.
KeyGenReceiver(cp) :隨機選擇 並計算Y=yP,pkR=(pkS,Y)和skR=(pkS,y)為Receiver的公密鑰對 • SCF-PEKS(cp,pkS,pkR,w): 選擇 並計算S=(U,V)其中(U,V)=(rP,H2(κ)), κ= .S為一PEKS產生的密文
Trapdoor(cp,skR,w) : 計算 • Test(cp,Tw,skS,S) : 如果 成立,則回傳正確反之則不正確
安全性分析 • 給定攻擊者B(q,g1,g2,e,P,aP,bP,cP), 為一BDH問題.B的工作是再去計算BDH key: 去模擬IND-SCF-CKA attaacker A 分成game1(A是server),以及game2(A是外部攻擊者)
Game2(A是外部攻擊者) • Step1: B設定Q=bP,X=cP以及兩個random oracles H1,H2.選擇 計算Y=yP.(q,g1,g2,e,P,H1,H2)為公用參數,(Q,X)為server的公鑰.Y,y為recevier的公密鑰.當A送wi給H1,B隨機選擇 計算Li=liP,並回傳給A.當A送κi給H2,B隨機選擇 ,並回傳給A. B會記錄這些query-answer list.
Step2: 假設A送wi給trapdoor generation oracle,B計算Twi=yH1(wi)回傳給A(其中B不曉得y) • Step3: B收到A送來的 ,B隨機選擇 並且產生 其中Q,X,Y為之前定義,所以得到
Step4: B回答A的query給random oracle以及trapdoor oracle(在step2中所作) • Step5: 當A回答他的猜測 .B從query-answer list中選擇κ並回傳 為一BDH key. • 分析: 令AskW為A發生詢問 的事件.若AskW沒發生則β’=β的機率最多1/2因此得到
根據定義推得 • 若AskW發生則表示B可以解決BDH的問題,藉由選擇 • 並計算 ,qH為H2中的query總數
改進多關鍵字搜尋 • 簡單的概念為在加密文件後接上多關鍵字欄位. • 例如: E(pkR,M)||PEKS(pkR,w1)||…||PEKS(pkR,wn) • 缺點: 在執行PEKS加密時,rP會被重複計算多次(當有n個關鍵字就計算n次)以及密文長度會增長.
Proposed scheme • KeyGenReceiver(k): 選擇兩個群g1=<P>與g2其中order為 ,建立一個bilinear pairing : ,兩個hash function : ,pkR=(q,g1,g2,e,P,Y,H1,H2), skR=(q,g1,g2,e,P,y,H1,H2)為recevier的公密鑰對.
MPEKS(pk,w) 其中 w=(w1,….wn) :選擇 計算S=(U,V1,….Vn)其中 U=rP, S是一個MPEKS的密文 • Trapdoor(sk,w): 計算 • Test(Tw,(U,Vi)) ,i為{1,…,n} : 如果 成立,則正確反之不正確.
結果在執行MPEKS之後,縮短了S的長度變成E(pkR,M)||MPEKS(pkR,w)其中 w=(w1,….wn) .也減少了重複計算rP.
結論 • 這方法雖然改進了PEKS的三個缺點,使得可以再非安全的channel下通訊,但是可以看出server儲存trapdoor的動作會是PEKS的弱點,以及在更新經常使用的關鍵字方面還可以再去改進使其更有效率且方便.