可搜尋加密技術 - 學習筆記(一)

不愛學習的Shirley發表於2021-07-17

  由於種種原因,本來應該是準備其他事情的我最近又開始看可搜尋加密技術。結果發現兩三個月前看的內容都被我忘得差不多了,果然“好記性不如爛筆頭”,更何況我的記性還不好qwq。因此,還是打算將學到的東西記錄下來,所以有了這篇簡陋的筆記。

引言

  • 為什麼需要可搜尋加密技術?

  其實,這個問題的答案是顯而易見的。現在隱私洩露問題備受關注,大家肯定都希望自己的資訊以密文的形式上雲,而不是以明文的形式上雲。但是這就會有個問題,如果需要對資料進行搜尋,那怎麼辦?總不能把雲上所有的加密資料都下載下來,然後對其一一解密,再進行搜尋吧。如果真是這樣,效率顯然會很低。因此,可搜尋加密技術應運而生。

  • 什麼是可搜尋加密技術?
  可搜尋加密技術是搜尋技術和加密技術的結合。可搜尋加密能夠實現將使用者的資料進行特殊的加密後上傳到雲伺服器上, 並且可以實現根據關鍵字進行檢索的功能, 有些可搜尋加密方案更能實現範圍查詢或布林查詢等高階檢索功能。在方便使用者使用的過程中, 也保護了檔案的隱私安全[1]。
  • 可搜尋加密技術的分類:
  目前, 可搜尋加密技術一般分為對稱可搜尋加密(Searchable Symmetric Encryption, SSE)和非對稱可搜尋加密(Asymmetric Searchable Encryption, ASE),非對稱可搜尋加密目前一般又稱為公鑰可搜尋加密(Public Key Encryption With Searching, PEKS)。兩者有不同的應用場景和構造方式[1]。
  對稱可搜尋加密一般考慮單使用者使用的情況, 相當於建立個人加密雲盤, 依賴對稱加密演算法進行方案構造。
  公鑰可搜尋加密一般考慮多使用者使用的場景例如郵件系統或者多人檔案共享系統, 主要依賴公鑰加密演算法進行構造
 

關於 “ 非對稱可加密 ” 的那些事

  2004年,Boneh等[2]將公鑰加密應用到可搜尋加密中,基於BDH(BilinearDiffie-Hellman)困難問題假設,首次提出了非對稱可搜尋加密(PEKS)的概念,其主要目的是為了解決“多對一”的多使用者郵件模型。例如Bob,Carol等多人向Alice傳送郵件,這些郵件通過Alice的公鑰進行加密,Alice可以根據私鑰在郵件系統中進行關鍵字搜尋並解密郵件內容並保證郵件伺服器對內容一無所知。PEKS演算法描述如下:

  定義1 一個PEKS系統由如下四個多項式時間的演算法組成:

  (這裡就偷個懶,直接放我在word打好的截圖,(#^.^#))

  實際上,Boneh等人的PEKS方案可以視為在加密檔案後附上加密的關鍵字清單,使用者可以通過私鑰和Test演算法與所檢索關鍵字進行匹配,以此進行關鍵字的搜尋。隨後2006年Byun[3]發現當前PEKS方案存在安全隱患:由於關鍵字空間遠小於金鑰空間,敵手可以通過離線關鍵字猜測攻擊輕鬆破解PEKS體制。隨後,這一安全性問題由Tang等人[4]提出註冊關鍵字得以解決。

  由於我主要看的是對稱可搜尋加密,就不再展開說了,感興趣的可以自己找來看看。

 

關於 “ 對稱可加密 ” 的那些事

  2000 年, 對稱可搜尋加密由 Song 等[5]第一次提出, 用來解決“一對一”單使用者進行雲端儲存模型的方案, 即主要應用場景是個人使用者將資料加密儲存於雲伺服器, 並能在之後對加密資料進行檢索。這是可搜尋加密的概念被首次提出,這為後面的研究奠定了基礎。
  • 可搜尋加密的構建方法:
  SSE 的構建方法一般分為基於儲存結構基於索引兩種方式。(我主要看的是基於索引的)
  基於儲存結構的 SSE 方案[5-7]的構建方法一般通過特殊的加密手段將資料儲存於特定的位置。例如 Song 等人[5]的方案是應用流密碼加密將密文在伺服器內進行線性儲存, 而 Naveed 等人[7]的方案是利用偽隨機函式和偽隨機序列生成器將文件加密並“隨機”分配到特定的隨機位置, 只有擁有隨機生成器“種子”的使用者能準確找到檔案的位置。然而, 基於儲存結構構建 SSE 方案的效率往往比較低, 在搜尋時需要伺服器對整個儲存器進行線性掃描並依次進行匹配, 而且對伺服器的儲存拓撲進行了嚴格要求。因此,基於索引構建 SSE 方案是目前公認的主流方法, 絕大多數方案都是基於索引來構造的。
  基於索引的構建方法的優勢在於不需要特定的加密手段和儲存結構, 並且在搜尋時有很高的效率, 其主要流程可以描述如下:  
  1. 使用者選擇安全通用的對稱加密演算法SKE例如AES, 對資料檔案加密, 儲存金鑰;
  2. 使用者根據檔案內容構建索引結構, 保證索引內容與加密檔案可以進行“連結”;
  3. 將索引結構進行特殊加密, 和加密的資料文件一起傳送給伺服器;
  4. 伺服器儲存加密索引和加密檔案, 等待使用者傳送陷門進行操作。
  如上所述, 這一型別的SSE構建方法中, 不同方案的核心在於第 2 步的索引結構的建立以及密文與索引進行“連結”的方式, 以及第 3 步對索引結構的特殊加密。而使用者加密檔案的手段使用的對稱加密演算法 SKE 和伺服器儲存檔案的方式都是可選的, 具有靈活性。雖然基於索引的 SSE 相較於基於儲存結構的 SSE 方案需要額外的索引構建過程, 以及額外存放索引的儲存代價, 但是在效率上, 基於索引的SSE 方案具有非常大的優勢, 這在應用層面上決定了基於索引來構建 SSE 方案是最佳的[1]。
  在文獻[1]中參考 Curtmola 等[8]第一次正式定義的 SSE 的演算法框架(一演算法框架是基於索引的) 給出了其定義。定義如下:

  定義2 SSE

  一個單使用者的 SSE 方案的參與者包含一個使用者和一個伺服器, 假設Δ是關鍵字字典,D⊆2Δ是檔案集合, 使用者希望將檔案集合 D 儲存於伺服器上, 並且伺服器可以提供對字典Δ的搜尋服務,一個基於索引的對稱可搜尋加密體制是指一個多項式時間演算法的集合 SSE=(Gen, Enc, Trpdr, Search, Dec)如下:
  K←Gen(1λ):一個金鑰生成的概率演算法, 通過使用者執行以建立系統, 以安全引數λ作為輸入, 輸出金鑰 K。
  (I,c)← Enc(K,D): 由使用者執行的一個概率加密演算法, 以金鑰K 和檔案集合D = (D1,...,Dn)為輸入, 生成一個安全索引 I 和一系列密文 c = (c1,...cn).
  t ← Trpdr(K,w):由使用者執行的一個確定性演算法,根據希望檢索的關鍵字w及金鑰K作為輸入,輸出一個陷門t。
  X ← Search(I,t): 由伺服器執行的一個確定性演算法,根據索引I 和陷門t 來查詢檔案集 D 中含有關鍵字w的檔案,並返回檔案識別符號集合X
  Di ← Dec(K,ci): 由使用者執行的一個確定性算法, 根據X中識別符號得到對應密文, 用金鑰K進行解密輸出最終明文檔案。
 
  之後, Kamara[9]在Curtmola[8]的方案上稍加改進, 增加了方案動態性以支援新增檔案或刪除檔案的操作, 根據這兩篇文章的工作, 可以把對稱可搜索加密過程簡化為歸為以下 4 個步驟:
  步驟 1. 建立和金鑰生成過程: 使用者對檔案集合進行某種特殊加密後上傳至伺服器並生成金鑰和加密資料庫;
  步驟 2. 陷門生成過程: 使用者根據金鑰和將要檢索的內容生成特定陷門, 分為生成檢索陷門和生成更新陷門, 並都上傳給伺服器;
  步驟 3. 檢索過程: 使用者提交陷門, 由伺服器根據陷門對加密資料庫進行安全搜尋和返回結果, 用戶收到密文後解密得到最終結果;
  步驟 4. 更新過程: 對於支援動態更新的可搜尋加密, 可以通過將加密檔案和更新陷門上傳到服務器進行檔案新增或刪除操作, 注意新增操作和刪除操作是區分開來的。
 
  // 到飯點了,先不往下寫了,溜了溜了~

參考文獻

[1] 劉文心,高瑩.對稱可搜尋加密的安全性研究進展[J].資訊保安學報,2021,6(02):73-84.
[2] Boneh D, Crescenzo G, Ostrovsky R, et al. Public key encryption with keyword search[C]. Proceedings of Eurocrypt 2004, Interlaken, Switzerland, 2004. 506-522.
[3] Byun J W, Rhee H S, Park H A, et al. Off-Line Keyword Guessing Attacks on Recent Keyword Search Schemes over Encrypted Data[M]. Lecture Notes in Computer Science. Springer Berlin Hei delberg, 2006: 75-83. 
[4] Tang Q, Chen L Q. Public-Key Encryption with Registered Keyword Search[M]. Public Key Infrastructures, Services and Applications. Berlin, Heidelberg: Springer Berlin Heidelberg, 2010:163-178. 
[5] Song D X, Wagner D, Perrig A. Practical Techniques for Searches on Encrypted Data[C]. SP '00: The 2000 IEEE Symposium on Security and Privacy. 2000: 44-55.
[6] Chang Y C, Mitzenmacher M. Privacy Preserving Keyword Searches on Remote Encrypted Data[J]. Applied Cryptography and Network Security, 2005: 442-45. DOI:10.1007/11496137_30. 
[7] Naveed M, Prabhakaran M, Gunter C A. Dynamic Searchable Encryption via Blind Storage[C]. SP '14: The 2014 IEEE Symposium on Security and Privacy. 2014: 639-654. 
[8] Curtmola R, Garay J, Kamara S, et al. Searchable Symmetric Encryption: Improved Definitions and Efficient Constructions[J].Journal of Computer Security, 2011, 19(5): 895-934. 
[9] Kamara S, Papamanthou C, Roeder T. Dynamic Searchable Symmetric Encryption[C]. The 2012 ACM conference on Computer and communications security - CCS '12, 2012: 965-976. 
 

相關文章