隱私保護(hù)數(shù)據(jù)庫系統(tǒng)的制作方法
【專利說明】
[0001] 在由情報(bào)先進(jìn)研宄計(jì)劃署(IARPA)給予的合同編號D11PC20194下由政府支持做 出本發(fā)明。政府對該專利具有特定的權(quán)力。
技術(shù)領(lǐng)域
[0002] 本公開一般涉及安全存儲和信息檢索領(lǐng)域。
【背景技術(shù)】
[0003] 有時(shí)當(dāng)客戶端從數(shù)據(jù)庫檢索數(shù)據(jù)時(shí),有必要使得被檢索的數(shù)據(jù)和查詢本身對于中 間的實(shí)體一一例如,服務(wù)器和,如果有的話,任何輔助的服務(wù)設(shè)備來說一一是不可見的(即 被隱藏)。已經(jīng)設(shè)計(jì)出多個(gè)方法以從服務(wù)器屏蔽數(shù)據(jù),然而需忍受,例如巨大的計(jì)算開銷。 此外,現(xiàn)有的方案不能充分地保護(hù)客戶查詢免于被檢查(inspection),因而給惡意的實(shí)體 提供了確定提供給客戶端的信息的機(jī)會。
[0004] 因此,需要能夠解決上述的缺陷的方案以提供從數(shù)據(jù)庫的改進(jìn)的數(shù)據(jù)安全檢索。
【發(fā)明內(nèi)容】
[0005] 在一個(gè)實(shí)施例中,本公開提供一種數(shù)據(jù)庫服務(wù)器。該服務(wù)器包括處理器和存儲器。 存儲器能夠由處理器訪問并且包括多個(gè)數(shù)據(jù)庫記錄。處理器被配置以在網(wǎng)絡(luò)上與索引服務(wù) 器通信,所述索引服務(wù)器例如輔助的非協(xié)作(noncolluding)服務(wù)器。處理器被配置以至少 偽偽隨機(jī)地排列數(shù)據(jù)庫記錄的順序,從而生成已排列的數(shù)據(jù)庫。處理器可生成與每個(gè)已排 列的數(shù)據(jù)庫記錄相對應(yīng)的至少偽隨機(jī)的加密密鑰,從而產(chǎn)生加密的密鑰數(shù)組??墒褂门c每 個(gè)已排列的數(shù)據(jù)庫記錄相對應(yīng)的加密密鑰對其加密。處理器被配置以將已排列的數(shù)據(jù)庫記 錄和至少偽隨機(jī)的加密密鑰存儲在存儲器中。
[0006] 在數(shù)據(jù)庫服務(wù)器的任意實(shí)施例中,處理器被進(jìn)一步配置以生成公私密鑰對,并且 使用該密鑰對--例如,公共密鑰--同態(tài)地加密每個(gè)偽隨機(jī)加密密鑰。在任意實(shí)施例中, 處理器可被進(jìn)一步配置以接收可能被掩碼的加密密鑰數(shù)組,并且解密和存儲已解密的加密 密鑰。在任意實(shí)施例中,處理器可被配置以解密從索引服務(wù)器接收的已加密的密鑰并且發(fā) 送生成的已解密的密鑰,例如至客戶端。在任意實(shí)施例中,處理器可被配置以發(fā)送已排列的 數(shù)據(jù)庫和已解密的密鑰數(shù)組至輔助的非協(xié)作服務(wù)器。
[0007] 在另一實(shí)施例中,本公開提供數(shù)據(jù)庫索引服務(wù)器。該索引服務(wù)器包括處理器和能 夠由處理器訪問的存儲器。存儲器包括由處理器執(zhí)行以在處理器和客戶端以及數(shù)據(jù)庫服務(wù) 器之間的網(wǎng)絡(luò)上提供通信的程序指令。處理器被配置以接收加密密鑰數(shù)組,其可能是加密 的。處理器可生成與所述數(shù)組中的每一個(gè)密鑰相對應(yīng)的至少偽隨機(jī)的掩碼。處理器可計(jì)算 和加密每個(gè)加密密鑰和與該密鑰對應(yīng)的掩碼的和。
[0008] 在索引服務(wù)器的任意實(shí)施例中,處理器可被進(jìn)一步配置以至少偽隨機(jī)地排列所述 已加密的和的序列以生成已排列的被掩碼的密鑰數(shù)組。在一些實(shí)施例中,所述和被同態(tài)地 加密。在任意實(shí)施例中,處理器被進(jìn)一步配置以從數(shù)據(jù)庫服務(wù)器接收數(shù)據(jù)記錄的數(shù)組。在 此類實(shí)施例中,處理器被進(jìn)一步配置以從客戶端接收記錄編號,并且返回與數(shù)據(jù)編號對應(yīng) 的數(shù)據(jù)記錄和掩碼至客戶端。在索引服務(wù)器的任意實(shí)施例中,數(shù)據(jù)記錄數(shù)組的每個(gè)記錄都 可能是加密的。
[0009] 另一實(shí)施例提供數(shù)據(jù)庫客戶端。客戶端包括處理器和存儲器。存儲器可被處理器 訪問并且包括能夠由處理器執(zhí)行以從索引服務(wù)器接收數(shù)據(jù)庫記錄、掩碼和對應(yīng)的密鑰的程 序指令。處理器被配置以計(jì)算和加密所述密鑰與所述掩碼的和,并且發(fā)送所述已加密的和 至數(shù)據(jù)庫服務(wù)器。
[0010] 在數(shù)據(jù)庫客戶端的任意實(shí)施例中,密鑰可以使被掩碼的密鑰,并且處理器可被進(jìn) 一步配置以從服務(wù)器接收與被掩碼的密鑰對應(yīng)的已解密的密鑰。在任何此類實(shí)施例中,處 理器可被進(jìn)一步配置以從接收到的已解密的密鑰中減去掩碼。在任何此類實(shí)施例中,處理 器被進(jìn)一步配置以使用已解密的密鑰解密接收到的數(shù)據(jù)庫記錄。
[0011] 另一實(shí)施例提供了操作數(shù)據(jù)庫服務(wù)器的方法。所述方法包括至少偽隨機(jī)地排列由 服務(wù)器存儲的數(shù)據(jù)庫記錄的順序。生成對應(yīng)于每一個(gè)已排列的數(shù)據(jù)庫記錄的至少偽隨機(jī)的 加密密鑰。使用與每一個(gè)已排列的數(shù)據(jù)庫記錄對應(yīng)的加密密鑰加密所述每個(gè)已排列的數(shù)據(jù) 庫記錄。
[0012] 另一實(shí)施例提供了操作數(shù)據(jù)庫索引服務(wù)器的方法。所述方法包括接收加密密鑰數(shù) 組,其可能是被加密的。生成對應(yīng)于數(shù)組中的每個(gè)密鑰的至少偽隨機(jī)的掩碼。計(jì)算每個(gè)加 密密鑰與對應(yīng)于該密鑰的掩碼的已加密的和。
[0013] 而另一實(shí)施例提供了操作數(shù)據(jù)庫客戶端的方法。所述方法包括向索引服務(wù)器查詢 對應(yīng)于記錄編號的數(shù)據(jù)庫記錄、掩碼和密鑰。計(jì)算和加密所述密鑰和所述掩碼的和。所述 加密的和被提供至數(shù)據(jù)庫服務(wù)器。
[0014] 本發(fā)明的附加方面部分將部分地在【具體實(shí)施方式】、圖表和后續(xù)的任意權(quán)利要求中 陳述,并且部分地從【具體實(shí)施方式】中推出,或通過本發(fā)明的實(shí)踐中得知。應(yīng)理解上述的一般 描述和隨后的【具體實(shí)施方式】都僅僅是示例性和解釋性的,并且并非公開作為對本發(fā)明的限 制。
【附圖說明】
[0015] 本發(fā)明更完整的理解可通過參考隨后的詳細(xì)描述并結(jié)合附圖獲得,其中:
[0016] 圖1示出了包括經(jīng)由通信網(wǎng)絡(luò)耦合通信的服務(wù)器(S)、索引服務(wù)器(IS)和客戶端 (C);
[0017] 圖2-4分別示出了例如如圖1所示的服務(wù)器、索引服務(wù)器和客戶端的功能塊;
[0018] 圖5示出了在圖1中的服務(wù)器和索引服務(wù)器的一個(gè)實(shí)施例的操作,例如,用于設(shè)置 圖1中的服務(wù)器和索引服務(wù)器以響應(yīng)于查詢向客戶端安全地提供數(shù)據(jù);
[0019] 圖6和圖7示出了圖1的服務(wù)器、索引服務(wù)器和客戶端的第一實(shí)施例操作,例如向 客戶端安全地提供數(shù)據(jù);
[0020] 圖8示出了圖1中的服務(wù)器和索引服務(wù)器的另一實(shí)施例操作,例如以用于設(shè)置圖 1中的服務(wù)器和索引服務(wù)器;以及
[0021] 圖9和圖10示出了圖1中的服務(wù)器、索引服務(wù)器和客戶端的第二實(shí)施例操作,例 如,向客戶端安全地提供數(shù)據(jù)。
【具體實(shí)施方式】
[0022] 本公開針對,例如,通過服務(wù)器的數(shù)據(jù)庫記錄安全檢索。在一些傳統(tǒng)安全數(shù)據(jù)庫系 統(tǒng)中,數(shù)據(jù)庫服務(wù)器被實(shí)現(xiàn)為兩個(gè)非協(xié)作實(shí)體,服務(wù)器S和索引服務(wù)器IS。在此類實(shí)施例 中,服務(wù)器為數(shù)據(jù)庫的所有者。索引服務(wù)器可被認(rèn)為是,例如,輔助的非協(xié)作服務(wù)器。在設(shè) 置階段期間,服務(wù)器將數(shù)據(jù)庫的每一行加密并且將所述加密發(fā)送至索引服務(wù)器。當(dāng)客戶端 C查詢索引服務(wù)器持有的已加密的數(shù)據(jù)庫時(shí),索引服務(wù)器回復(fù)正確的(已加密的)行,并且 要求服務(wù)器發(fā)送解密密鑰至客戶端。然而,因?yàn)榉?wù)器知道被發(fā)送至服務(wù)器的密鑰,客戶端 查詢不是嚴(yán)格私密的,有可能向惡意實(shí)體提供了攔截查詢數(shù)據(jù)的機(jī)會。
[0023]改進(jìn)此類傳統(tǒng)的系統(tǒng)的安全性的一些嘗試需要計(jì)算資源,其可能昂貴或者甚至是 過高的。例如一個(gè)已提出的方案使用大小為n2的同態(tài)加密矩陣,其中n為數(shù)據(jù)庫記錄的數(shù) 目。在此類實(shí)現(xiàn)中,索引服務(wù)器使用新的密鑰再加密(re-encrypt)所述n個(gè)記錄中以每一 個(gè),所述實(shí)現(xiàn)需要n2個(gè)加密操作。對于多于中等數(shù)目(modestnumber)的數(shù)據(jù)庫記錄,這 樣的解決方案可超過數(shù)據(jù)庫系統(tǒng)的實(shí)際計(jì)算限制。因此需要替代的解決方案。
[0024] 發(fā)明者發(fā)現(xiàn)在安全數(shù)據(jù)庫系統(tǒng)中的查詢的安全性可通過例如在本文中描述的實(shí) 施例中公開的設(shè)置階段中的分配和操縱解密密鑰來加以改進(jìn)。簡單地但非限制性的來說, 在一個(gè)實(shí)施例中,服務(wù)器向非協(xié)作索引服務(wù)器提供已排列并且已加密的數(shù)據(jù)庫以及對應(yīng)的 加密/解密密鑰數(shù)組。此處非協(xié)作服務(wù)器被定義為輔助服務(wù)器,其存儲和搜索所述已加密 的數(shù)據(jù)庫。客戶端向索引服務(wù)器查詢數(shù)據(jù)庫記錄。索引服務(wù)器以已加密的形式返回被請求 的記錄,連同對應(yīng)的解密密鑰和對應(yīng)的掩碼值至客戶端。然后客戶端將所述掩碼值加