一、摘要
將數據庫存儲在服務器上可以節省很多的維護成本,但是大多數的服務器都是不可信的,因此存儲在其上的數據庫需要進行加密。本文通過bilinear pairing實現了加密數據庫的多用戶上傳和讀取,適合數據庫需要經常動態變化的情況。另外,該方案還實現了用戶的新增和刪除都對其他用戶透明,減少了開銷。
二、主要工作 (核心場景、框架或者算法)
該加密方案主要涉及兩個對稱密鑰e和k,其中密鑰e用于加密和解密數據庫記錄,密鑰k用于加密和解密index。密鑰e通過可信密鑰服務器直接分發給用戶,每個用戶的e都相同;而密鑰k則與關鍵字一一對應,即不同的用戶,只要關鍵字相同,就會得到相同的加密密鑰k,而密鑰k的計算需要通過bilinear pairing和BLS Short Signature實現,如下圖所示。
(一)首先是用戶新增的過程,該過程中,由offline的線下服務器完成密鑰的計算,生成密鑰對(xu,ComKu),其中私鑰xu以及用戶加密數據庫記錄的對稱密鑰e發送給用戶,ComKu發送給服務器存儲,s是哈希列表的種子。
<center>

</center>
(二)用戶上傳數據的過程,主要為雙線性映射的過程。首先用戶通過哈希列表以及隨機數rw計算g1=hs(w)^rw∈G1發送給服務器(rw保證了安全性),服務器根據公鑰ComKu返回映射到G2空間的值,用戶再根據私鑰解密得到生成Index的對稱密鑰K,使用k加密Index=<r,[r]k>,使用e加密record,上傳給服務器。
<center>

</center>
(三)用戶查詢及下載數據的過程。首先用戶根據私鑰xu生成查詢,上傳給服務器,服務器根據該用戶的公鑰ComKu以及哈希映射計算用于加密該關鍵字的對稱密鑰k',并且對Index列表中的每一個條目<r,[r]k>進行匹配,若r=[[r]k]k',表示匹配成功,則該index對應的記錄加入到返回給用戶的隊列中。
<center>

</center>
(四)用戶的撤銷過程。只需要可信密鑰服務器通知server刪除相應的公鑰comku,則該用戶就無法進行讀寫。
三、優點(動機、算法、寫作)
- 實現了多用戶的上傳和下載,適用于數據庫經常需要修改的情況
- 支持多關鍵字(作者提了一句說實現方法很簡單,但并沒有說明細節)
- 用戶的新增和刪除并不影響其他用戶
四、缺點 (算法缺陷、寫作邏輯漏洞、攻擊場景漏洞、工作完成度)
- 搜索效率為O(m),m為record的數目,不適合大型的數據庫。
- 優化方案中提到了性能的優化,但僅限于特定的可以進行binary search的數據庫
- 可信密鑰服務器只維護了一個主密鑰Kum以及對稱密鑰e,整個數據庫只分為可訪問與不可訪問兩類用戶。在該場景中是合理的,但在我們的場景中,每一個用戶的文件都相當于一個小型數據庫,每一個用戶甚至每一個文件都需要區分可訪問與不可訪問。
- 沒有區分搜索權限和下載權限
五、可改進點(改進方法、啟發)
- order preserving?(由下一篇論文得到啟發 )
六、對比
CCS06 | MuPQ | ||
---|---|---|---|
功能性分析 | 多關鍵字 | 不支持 | 支持 |
用戶組細分 | 不支持 | 整個database只分為可訪問與不可訪問兩類用戶 | |
多用戶上傳 | 不支持 | 支持 | |
多用戶下載 | 支持 | 支持 | |
搜索/下載權限區分 | 不區分 | 不區分 | |
效率分析 | 用戶的新增和刪除是否對其他用戶透明 | 透明 | 不透明 |
搜索效率 | O(1) | O(M) | |
服務器開銷 | |||
安全性分析 | search pattern | adaptive方案可以隱藏 | 可以隱藏 |
access pattern | 不支持 | 不支持 | |
結果驗證 | 不支持 | 不支持 | |
方案基礎 | BE-based | Bilinear pairing |