两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種密文數(shù)據(jù)庫(kù)隱私保護(hù)查詢方法

文檔序號(hào):6471633閱讀:349來(lái)源:國(guó)知局
專利名稱:一種密文數(shù)據(jù)庫(kù)隱私保護(hù)查詢方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)庫(kù)以及信息安全技術(shù),尤其涉及一種密文數(shù)據(jù)庫(kù)的查詢方法。
背景技術(shù)
隨著信息技術(shù)的不斷發(fā)展,數(shù)據(jù)庫(kù)系統(tǒng)的應(yīng)用日益普及,利用數(shù)據(jù)庫(kù)系統(tǒng)實(shí) 現(xiàn)數(shù)據(jù)共享,可以使人們的日常生活和工作更加方便、快捷,但同時(shí)也給非正 當(dāng)?shù)孬@取數(shù)據(jù)庫(kù)的數(shù)據(jù)信息提供了更多的機(jī)會(huì),數(shù)據(jù)庫(kù)系統(tǒng)中的敏感數(shù)據(jù)保護(hù) 問(wèn)題日趨嚴(yán)重。
在諸多針對(duì)敏感數(shù)據(jù)的保護(hù)方法中,對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)信息進(jìn)行加密是一 種非常有效的方案。但是另一方面,數(shù)據(jù)庫(kù)中的數(shù)據(jù)經(jīng)過(guò)加密后,原來(lái)相同的 關(guān)鍵字可能變成了不同的密文信息,關(guān)鍵字之間的序關(guān)系也被破壞,從而使基 于這些關(guān)鍵字進(jìn)行查詢的算法無(wú)法正常工作,如何在不對(duì)密文數(shù)據(jù)進(jìn)行解密的 條件下,針對(duì)密文數(shù)據(jù)進(jìn)行查詢是一項(xiàng)富有挑戰(zhàn)性的工作。近幾年,國(guó)內(nèi)外學(xué) 者圍繞該問(wèn)題進(jìn)行了一系列的研究工作,并取得了一些成果,其中主要包括 基于對(duì)稱密碼的隱私保護(hù)數(shù)據(jù)査詢方法;基于公鑰密碼的隱私保護(hù)數(shù)據(jù)査詢方 法;基于同態(tài)加密理論,對(duì)有序數(shù)據(jù)進(jìn)行保序加密的數(shù)據(jù)査詢方法。
隱私保護(hù)數(shù)據(jù)査詢方法可應(yīng)用于涉及政府、企業(yè)和個(gè)人的敏感數(shù)據(jù)的信息 系統(tǒng)中,實(shí)現(xiàn)對(duì)不同部門、不同類型和不同涉密級(jí)別的分類管理,使不同的用 戶在査詢同一個(gè)數(shù)據(jù)庫(kù),甚至是同一張數(shù)據(jù)表中的信息時(shí),可使用的信息量各 不相同。例如,在醫(yī)院的電子病歷管理系統(tǒng)中,通過(guò)使用本方案可以使患者的電子病歷只可由患者本人、該患者的主治醫(yī)牛、該主治醫(yī)生所在科室的主管醫(yī) 生,以及分管醫(yī)療的院長(zhǎng)查看,包括數(shù)據(jù)庫(kù)管理員在內(nèi)的其他人均無(wú)法査看該 患者的病歷信息。最理想的情況下,可以實(shí)現(xiàn)該患者不同病癥的主治醫(yī)生和該 主治醫(yī)生所在科室的主管醫(yī)生只能查看其負(fù)責(zé)診治的病癥對(duì)應(yīng)的病歷,該患者 的其他病癥的病歷記錄無(wú)法查看。
參考文獻(xiàn) 1 ( Zhiqiang Yang, Sheng Zhong, Rebecca N.Wright : "Privacy-Preserving Queries on Encrypted Data" , In ESORICS, 2006)描述以隱 私保護(hù)査詢概念和最小信息暴露的理論為基礎(chǔ),以非可信服務(wù)器平臺(tái)的攻擊與 信任模型為假設(shè)環(huán)境,設(shè)計(jì)的基于對(duì)稱加密算法的隱私保護(hù)數(shù)據(jù)查詢方案。
在該方案中,使用隨機(jī)產(chǎn)生的密鑰對(duì)明文表中每個(gè)元素進(jìn)行加密處理。加 密后對(duì)應(yīng)每一個(gè)元素的密文數(shù)據(jù)都包含兩部分,第一部分是使用分組加密算法 對(duì)元素進(jìn)行加密得到的結(jié)果;第二部分為檢查值,是使用相同的加密算法對(duì)第 一部分進(jìn)行加密的結(jié)果,加密過(guò)程中采用的加密密鑰是一個(gè)函數(shù);該檢査值能 夠使數(shù)據(jù)庫(kù)判斷其對(duì)應(yīng)的元素是否符合査詢的條件,因此在使用中又稱該檢査 值為索引值。在存儲(chǔ)的密文數(shù)據(jù)表中,密文數(shù)據(jù)的兩個(gè)部分滿足一個(gè)與用戶輸 入的査詢值相關(guān)聯(lián)的檢驗(yàn)等式,當(dāng)把數(shù)據(jù)庫(kù)中的元素導(dǎo)入這個(gè)與査詢值相關(guān)聯(lián) 的檢驗(yàn)等式時(shí),通過(guò)把密文數(shù)據(jù)的兩部分放入檢驗(yàn)等式中就能夠檢驗(yàn)出該密文 單元是否滿足查詢要求。在本發(fā)明中,該方案簡(jiǎn)稱為"Y&R方案"。
該方案中構(gòu)造的檢驗(yàn)等式的特點(diǎn)是將用戶輸入的査詢值加密后,以密鑰的 形式帶入檢驗(yàn)等式中,使存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)與查詢信息有效的關(guān)聯(lián)在一起。 當(dāng)用戶使用查詢值進(jìn)行査詢時(shí),客戶端發(fā)送用戶查詢值加密后的數(shù)據(jù)給數(shù)據(jù)庫(kù) 服務(wù)器。該方案中,由于檢驗(yàn)等式的使用,數(shù)據(jù)庫(kù)服務(wù)器端進(jìn)行數(shù)據(jù)檢索過(guò)程 中使用的數(shù)據(jù)均為密文數(shù)據(jù);同時(shí),服務(wù)器端不具備解密數(shù)據(jù)的能力。
但是,參考文獻(xiàn)l設(shè)計(jì)的方案中存在以下不足之處1. 運(yùn)算速度較慢在建立密文數(shù)據(jù)表時(shí),針對(duì)每一條記錄的每一個(gè)屬性值 分別采用兩次分組加密算法,其計(jì)算的復(fù)雜度較大,從而造成密文數(shù)據(jù)表產(chǎn)生 時(shí)的速度受到制約;而在進(jìn)行查詢時(shí),如可能獲得的查詢結(jié)果較多時(shí),由于同 樣的原因,會(huì)在查詢時(shí)產(chǎn)生處理時(shí)間較長(zhǎng)的問(wèn)題,從而其方案在效率上有待提 高。
2. 査詢方式單一在建立密文數(shù)據(jù)表時(shí),并未將序關(guān)系以某種方式存儲(chǔ)在 索引值中,從而使產(chǎn)生的密文數(shù)據(jù)表并未保持相同屬性不同屬性值之間的序關(guān) 系。使得參考文獻(xiàn)1中的方案只能處理精確査詢一種査詢方式。而在實(shí)際使用 中,查詢方式一般為精確查詢與模糊査詢兩種方式。因此參考文獻(xiàn)1設(shè)計(jì)的方 案在實(shí)際使用中存在比較大的局限性。
3. 安全性有限在參考文獻(xiàn)1設(shè)計(jì)的方案中,索引值以及檢驗(yàn)等式中使用 的密鑰值的加密算法均使用分組加密算法。分組加密算法加解密過(guò)程使用同一 個(gè)密鑰,分組加密算法的安全性依賴于密鑰。這樣在一定程度上影響了安全性。

發(fā)明內(nèi)容
為了克服上面歸納的技術(shù)問(wèn)題,提出了本發(fā)明的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)和査詢方案, 本發(fā)明的目的是有效地提高數(shù)據(jù)表產(chǎn)生和査詢過(guò)程的運(yùn)算速度,并基于這種數(shù) 據(jù)結(jié)構(gòu)設(shè)計(jì)適用于密文數(shù)據(jù)區(qū)間査詢的查詢方案。本發(fā)明改進(jìn)了參考文獻(xiàn)l設(shè)計(jì) 的基于分組密碼的密文數(shù)據(jù)庫(kù)存儲(chǔ)與查詢方案的顯著缺點(diǎn),設(shè)計(jì)了一種基于對(duì) 稱密碼與安全散列函數(shù)的隱私保護(hù)數(shù)據(jù)査詢方案,該方案在實(shí)現(xiàn)效率上明顯優(yōu) 于現(xiàn)有的基于對(duì)稱密碼的隱私保護(hù)數(shù)據(jù)查詢方案,并提供區(qū)間査詢方式,滿足 不等式査詢條件。
本發(fā)明的技術(shù)方案是在加密表T'上存儲(chǔ)了由保序列Aj的元素IYj生成的二 元組T'i,i(T'i,j〈l〉,T'i,j〈2》,其中T'i,j〈l〉是采用分組加密算法,使用隨機(jī)產(chǎn)生的加密密鑰S,處理Ti,j得到的密文值,通過(guò)解密過(guò)程Ds,(T'i,j〈l〉)可以得到Tj,j;
T'i,j〈2〉是元素Ti,j的索引值,在進(jìn)行密文查詢過(guò)程中,通過(guò)驗(yàn)證檢驗(yàn)等式
T,j〈2〉=H(Tu〈l〉, H(v))是否成立,判斷是否返回該檢驗(yàn)等式中對(duì)應(yīng)的 T'i,j<l>,其中v為用戶輸入的查詢值明文,H為加密運(yùn)算函數(shù)。通過(guò)上面對(duì)于 Y&R方案中未利用的技術(shù)特點(diǎn)的分析,本發(fā)明利用了散列函數(shù)計(jì)算方法H("改 進(jìn)Y&R方案中索引值生成算法,以及査詢等式中保持密碼隱私性的f運(yùn)算,并 借鑒單項(xiàng)散列函數(shù)中MAC的思想,構(gòu)造了基于安全散列函數(shù)SHA—1算法的檢 驗(yàn)等式,改進(jìn)的等式在不降低Y&R方案安全性的前提下,提高了數(shù)據(jù)處理速度, 并充分利用了索引值使用時(shí)的特點(diǎn)。安全散列函數(shù)特點(diǎn)在于能夠?qū)τ谌我獾膞, 得到H(x)的處理速度快;對(duì)于任意給定h,要發(fā)現(xiàn)滿足H(x)二h的x在計(jì)算上是 不可行的;能夠處理任意長(zhǎng)度的輸入;以及原始數(shù)據(jù)與生成的消息摘要一一對(duì) 應(yīng),即使原始數(shù)據(jù)的變化很小,也可以引起消息摘要的很大變化。這些特點(diǎn)滿 足檢査等式的構(gòu)造條件,并且滿足本發(fā)明的設(shè)計(jì)要求。
本發(fā)明中使用的檢驗(yàn)等式T',,」< 2 〉= H(T、 < 1 〉 , H(v))在應(yīng)用現(xiàn)有技術(shù)中檢驗(yàn)等 式設(shè)計(jì)思想的基礎(chǔ)上,通過(guò)改造等式中使用的函數(shù)和數(shù)據(jù)結(jié)構(gòu),使原來(lái)f(v)計(jì)算 的密鑰值轉(zhuǎn)化為類似于MAC密鑰的查詢值密鑰H(v)。
在新構(gòu)成的檢驗(yàn)等式中,通過(guò)對(duì)用戶査詢值v進(jìn)行散列運(yùn)算,得到用戶査詢 值v的摘要信息,并將該摘要信息H(v)作為査詢密鑰發(fā)送給數(shù)據(jù)庫(kù)服務(wù)器。數(shù) 據(jù)庫(kù)服務(wù)器通過(guò)使用査詢密鑰和數(shù)據(jù)庫(kù)中存儲(chǔ)的元素密文值T'i,j〈1〉,得到與索 引值進(jìn)行比對(duì)的査詢值。通過(guò)判斷是否滿足檢驗(yàn)等式,判斷這個(gè)元素對(duì)應(yīng)的密 文值T'i,j〈l〉是否符合查詢條件。通過(guò)新構(gòu)造的等式進(jìn)行查詢,客戶端與數(shù)據(jù)庫(kù) 服務(wù)器之間通信的內(nèi)容為敏感信息的摘要值,且安全散列函數(shù)運(yùn)算中不包含解密密鑰,所有相關(guān)信息均作為輸入,從而保證了本發(fā)明的安全性。
査詢過(guò)程中,將滿足檢驗(yàn)等式的密文值TVj〈l〉所在行中對(duì)應(yīng)的返回屬性的密 文值提取至內(nèi)存中,按照一定的格式封裝后返回給用戶。用戶使用預(yù)先存儲(chǔ)的 加密密鑰Sj軍密得到的返回值,得到用戶需要的明文信息。
區(qū)間索引值的構(gòu)造基于定值索引值的結(jié)構(gòu),構(gòu)造一個(gè)雙射關(guān)系,通過(guò)對(duì)定值 索引值進(jìn)行處理產(chǎn)生區(qū)間索引值。密文數(shù)據(jù)表產(chǎn)生過(guò)程中,首先在明文數(shù)據(jù)表T
中對(duì)保序列A」的元素Ti,j進(jìn)行排序,得到Aj列的元素序關(guān)系P(PXPj,其中 l^i〈j^N},然后對(duì)P中的元素Pi (1SU)進(jìn)行映射,將Pi映射到區(qū)間[l, N]中, 最后把映射值的二進(jìn)制值放大,得到變換后的序關(guān)系值Si。將Si存儲(chǔ)在定值索引 值中,使原本無(wú)序的定值索引值呈現(xiàn)有序的狀態(tài)。
因此,本發(fā)明提供一種密文數(shù)據(jù)庫(kù)隱私保護(hù)查詢方法,其特征在于,該 方法包括以下步驟
A、 向第一査詢單元輸入明文查詢;
B、 第一査詢單元對(duì)所述明文查詢進(jìn)行加密處理,將處理后的密文值查 詢發(fā)送給第二査詢單元;
C、 第二查詢單元處理所述通過(guò)第一查詢單元得到的密文值查詢,將加 密結(jié)果返回給第一查詢單元;
D、 第一查詢單元利用預(yù)先存儲(chǔ)在第一查詢單元的第一密鑰,對(duì)所述加 密結(jié)果進(jìn)行解密,得到解密結(jié)果a;
E、 第一查詢單元將解密結(jié)果a輸出。
根據(jù)本發(fā)明的一個(gè)方面,在上述歩驟A之前,還存在根據(jù)明文數(shù)據(jù)表生 成第一密鑰、第二密鑰并將所述第一密鑰、第二密鑰預(yù)先存儲(chǔ)在第一查詢 單元中的步驟。
根據(jù)本發(fā)明的 一個(gè)方面,在上述步驟C中具體包括以下步驟-d、使用第一算法生成密文數(shù)據(jù); C2、使用第二算法生成索引值數(shù)據(jù);
c3、在第二查詢單元中存儲(chǔ)所述密文數(shù)據(jù)和所述索引值數(shù)據(jù),其中所 述索引值數(shù)據(jù)包含使用第二算法生成的查詢使用散列值數(shù)據(jù);
C4、第二查詢單元根據(jù)檢驗(yàn)公式,利用所述密文數(shù)據(jù)和所述索引值數(shù) 據(jù)得到所述加密結(jié)果。
根據(jù)本發(fā)明的一個(gè)方面,所述第一算法是對(duì)稱密碼算法,第二算法是安 全散列函數(shù)。
根據(jù)本發(fā)明的一個(gè)方面,第二查詢單元通過(guò)第二密鑰和所述密文數(shù)據(jù)得 到與所述索弓I值數(shù)據(jù)進(jìn)行比對(duì)的查詢值。
根據(jù)本發(fā)明的一個(gè)方面,所述第一查詢單元是查詢客戶端,所述第二査 詢單元是數(shù)據(jù)庫(kù)服務(wù)器,所述第一密鑰是加密密鑰,所述第二密鑰是査詢 密鑰。
本發(fā)明的有益效果是,在實(shí)現(xiàn)效率上明顯優(yōu)于現(xiàn)有的基于對(duì)稱密碼的隱私保 護(hù)數(shù)據(jù)査詢方案,并提供區(qū)間査詢方式。本發(fā)明通過(guò)使用檢驗(yàn)等式進(jìn)行査詢處 理,從而使數(shù)據(jù)庫(kù)服務(wù)器端進(jìn)行用戶査詢請(qǐng)求處理時(shí)使用的數(shù)據(jù)均為密文數(shù)據(jù), 且服務(wù)器端不具備解密能力,也無(wú)需得到于明文內(nèi)容關(guān)聯(lián)的信息。
為了進(jìn)一步說(shuō)明本發(fā)明的原理及特性,以下結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā) 明進(jìn)行詳細(xì)說(shuō)明。


圖1是按照本發(fā)明一個(gè)實(shí)施方式的密文數(shù)據(jù)庫(kù)查詢系統(tǒng)的示意圖。 圖2是按照本發(fā)明一個(gè)實(shí)施方式的原始數(shù)據(jù)加密處理單元獲得密文值和索 引值的數(shù)據(jù)處理流程圖。圖3是按照本發(fā)明一個(gè)實(shí)施方式的密文數(shù)據(jù)庫(kù)査詢系統(tǒng)的系統(tǒng)結(jié)構(gòu)示意圖。 圖4是按照本發(fā)明一個(gè)實(shí)施方式的數(shù)據(jù)庫(kù)存儲(chǔ)信息的實(shí)例。 圖5是按照本發(fā)明一個(gè)實(shí)施方式的密文數(shù)據(jù)庫(kù)查詢方法的循環(huán)處理數(shù)據(jù)過(guò) 程的消耗時(shí)間統(tǒng)計(jì)圖。
圖6是按照本發(fā)明一個(gè)實(shí)施方式的密文數(shù)據(jù)庫(kù)査詢系統(tǒng)從接收到Q (v)開(kāi)始,
到提取加密結(jié)果的消耗時(shí)間統(tǒng)計(jì)圖。
具體實(shí)施例方式
下面結(jié)合附圖詳細(xì)描述本發(fā)明的具體實(shí)施方式
。
圖l是按照本發(fā)明一個(gè)實(shí)施方式的密文數(shù)據(jù)庫(kù)査詢系統(tǒng)的示意圖。其中原始 數(shù)據(jù)加密處理單元、査詢客戶端以及數(shù)據(jù)庫(kù)服務(wù)器通過(guò)網(wǎng)絡(luò)相互連接。所述網(wǎng) 絡(luò)包括但不限于局域網(wǎng)、廣域網(wǎng)、因特網(wǎng)。
圖2是按照本發(fā)明一個(gè)實(shí)施方式的原始數(shù)據(jù)加密處理單元獲得密文值和索 引值的數(shù)據(jù)處理流程圖。眾所周知,在數(shù)據(jù)庫(kù)査詢系統(tǒng)中,最為關(guān)鍵的是數(shù)據(jù) 庫(kù)中存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),以及如何利用存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行査詢的査詢協(xié)議。
在按照本發(fā)明一個(gè)實(shí)施方式的密文數(shù)據(jù)庫(kù)査詢系統(tǒng)中設(shè)定的存儲(chǔ)數(shù)據(jù)的數(shù)
據(jù)結(jié)構(gòu)如下
1^<1>數(shù)據(jù)結(jié)構(gòu)使用分組加密算法E()處理后得到的密文值,其密鑰空間, 明文空間與密文空間為{0,1}、使用符號(hào)Es(lV^ II M2)表示使用分組加密算法加密 信息Mt與M2的拼接值,其中加密密鑰為S, Mi、 M2分別是一個(gè)ki、 k2位串, 滿足k一 k2= k。。使用符號(hào)H(]V^ II M2II S)表示使用安全散列函數(shù)SHA— 1計(jì)算 M,與M2拼接值的信息摘要,其中S為査詢密鑰,密鑰空間為{0,1盧,Mh M2 位數(shù)不限。
為在數(shù)據(jù)庫(kù)中建立加密表T',首先從(0,1^空間中隨機(jī)選取加密密鑰S,、査詢密鑰S2,并由使用者保管。從(0,u、中為每個(gè)元素Ti,j隨機(jī)選擇ri,j,其中iYj是 k2bit的隨機(jī)字符串,即隨機(jī)產(chǎn)生的k2個(gè)0或者l。 ri,j的使用可以避免兩個(gè)明文值相
等的元素通過(guò)加密計(jì)算后,得到的密文值相等。然后,使用分組加密算法計(jì)算
密文值T'i,j〈1〉,將產(chǎn)生的査詢密鑰S2與元素Ti,j、 j (j為元素Ti,j所在列的列號(hào),為 了避免不同屬性列中的元素有相同的査詢值f(v),在進(jìn)行f運(yùn)算之前,追加j給 f(v)作為輸入值的一部分。)按(Tj,jllJII S2)的格式存儲(chǔ),并且在加密表T'中按如 下數(shù)據(jù)格式進(jìn)行保存
r',乂口 (r',j <i>,r',,7 <2〉)
=(a, (、. ii c),, c ii 。,氣ii y ii &)))
在這個(gè)數(shù)據(jù)結(jié)構(gòu)中,TVj〈l〉為明文數(shù)據(jù)表T中元素的密文值,TVj〈2〉為該密 文值的索引值,二元組兩個(gè)元素之間滿足新的檢驗(yàn)等式T'i,jOH(T'i,j〈1〉, H(Ti,jllJH S2))。
按照本發(fā)明一個(gè)實(shí)施方式的區(qū)間査詢方法,需要進(jìn)行區(qū)間査詢的屬性列的
數(shù)據(jù)結(jié)構(gòu)如下
r',》口(r',,/i〉,:r'w.〈2〉)
=II II, (、 II 。 II
在這個(gè)數(shù)據(jù)結(jié)構(gòu)中,索引值T'i/2〉是在定值索引值的數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)上,在 高位拼接其進(jìn)行簡(jiǎn)單變換后的序關(guān)系值Sj。這種保序的方法可以使數(shù)據(jù)表在不 暴露元素值的條件下,實(shí)現(xiàn)密文保序存儲(chǔ)。在此過(guò)程中附加暴露信息僅為暴露 的元素序關(guān)系P。
在按照本發(fā)明一個(gè)實(shí)施方式的密文數(shù)據(jù)庫(kù)査詢系統(tǒng)中設(shè)定的查詢協(xié)議如 下用Aj表示明文數(shù)據(jù)表T的第j個(gè)屬性列。假設(shè)使用査詢命令"select A. ,...,A.from T where Aj。=v "進(jìn)行査洵,通過(guò)計(jì)算q=H (v||j0||S2),并把運(yùn)算結(jié)果q 與jo、 (j,,...,Je)按照Q(v)的格式打包發(fā)送給數(shù)據(jù)庫(kù)服務(wù)器。其中jo是查詢值v所
在的屬性列,j,,...,je是需要返回的屬性列。Q(V)的格式如下
<formula>formula see original document page 12</formula>
其中第一部分為轉(zhuǎn)化后的摘要信息,其長(zhǎng)度為20字節(jié);第二部分為查詢列A 的列號(hào),長(zhǎng)度為1字節(jié);最后一部分是區(qū)間查詢的標(biāo)志位,如發(fā)送的為定值查 詢值則為空,如為最小査詢值則為O,最人查詢值為l,并位于整個(gè)數(shù)據(jù)包的最 后,長(zhǎng)度為1字節(jié)。
服務(wù)器接收到查詢請(qǐng)求值Q(V)后遍歷査詢值所在jQ列的元素,測(cè)試 i;」。"^H(、〈Uq)是否成立,其中r,」/2〉為jo列元素對(duì)應(yīng)的索引值。對(duì)于第 io行的元素,如上等式成立,服務(wù)器端受理程序會(huì)把T'u,〈l>,...,T'^<i〉返回 給用戶。用戶使用加密密鑰S,解密收到的元素組Ds,(T',,j。 <1>),.. . ,D"T'^ <1>), 得到TH與ri.」的拼接值,隨后刪除k2字節(jié)的&得到T,.j。
假設(shè)查詢命令為"select Aj,..,AjfromTbetween Aj。 = viand A。=v2"進(jìn)行查 詢,為實(shí)現(xiàn)該查詢,計(jì)算q產(chǎn)H (v!IIJ。IIS2)和q2 = H (v2||j0||S2)并把得到的 散列值q!,q2與jo、(h,…,je)以Q(V,)、Q(V2)的方式發(fā)送到數(shù)據(jù)庫(kù)服務(wù)器。其中Q(v)、 Q(V2)按Q(V)的格式。JQ是所查詢的屬性列,j,,…丄是需要返回的屬性列。
數(shù)據(jù)庫(kù)服務(wù)器接收到査詢后遍歷j。列的元素,提取jQ列元素對(duì)應(yīng)的索弓1 值丁",<2>,去掉索引值T',j,〈2〉中高位存儲(chǔ)的序號(hào)Si后,測(cè)試是否與 、OH(;0,q,)或者H(、〈l〉,q》)相等;對(duì)于第i,行的元素,如測(cè)試成立, 則記錄該元素的索引值T^?!?〉(或者T"〈2〉);遍歷索引值列元素T,j?!?〉,
測(cè)試不等式T.. 〈2XT.. <2)<r. ■ 〈2〉是否成立;對(duì)于第i。行的元素,如上不等式成立,數(shù)據(jù)庫(kù)會(huì)把T,, 〈l〉,...,Tu 〈1〉返回給用戶。
用加密密鑰S,解密收到的元素組DSi(TiJQ 〈1〉),... ,DSi(Ti4 〈1〉),得到Tj,i與 n,i的拼接值,隨后刪除k2字節(jié)的ri,j得到Ti,j。
圖3是按照本發(fā)明一個(gè)實(shí)施方式的密文數(shù)據(jù)庫(kù)查詢系統(tǒng)的系統(tǒng)結(jié)構(gòu)示意圖。 該系統(tǒng)包括兩大部分組成, 一部分是查詢客戶端,另一部分是數(shù)據(jù)庫(kù)服務(wù)器。 査詢客戶端包括查詢轉(zhuǎn)換器l、結(jié)果解密器6和密鑰單元7。數(shù)據(jù)庫(kù)服務(wù)器包 括査詢分析器2、查詢處理器3、密文提取單元4和帶輔助數(shù)據(jù)結(jié)構(gòu)的加密表 5。
該系統(tǒng)的工作流程如下
向查詢客戶端輸入明文査詢;
査詢客戶端中的査詢轉(zhuǎn)化器l接收該明文査詢,然后對(duì)其進(jìn)行轉(zhuǎn)化,得到 轉(zhuǎn)化結(jié)果查詢,然后將轉(zhuǎn)化結(jié)果查詢發(fā)送到查詢分析器2;這種轉(zhuǎn)化包括但不限 于加密處理,所述轉(zhuǎn)換結(jié)果査詢包括但不限于密文值査詢(優(yōu)選地,轉(zhuǎn)化結(jié)果 查詢包括密文值査詢、査詢列的列號(hào)、返回列的列號(hào)集合);
查詢分析器2將接收到的轉(zhuǎn)化結(jié)果查詢進(jìn)行分析,并將分析結(jié)果發(fā)送到査 詢處理器3;
查詢處理器3根據(jù)接收到的分析結(jié)果,按照本發(fā)明一個(gè)實(shí)施方式的上述査
詢協(xié)議,査詢帶輔助數(shù)據(jù)結(jié)構(gòu)的加密表5,并將查詢結(jié)果發(fā)送到密文提取單元4,
其中帶輔助數(shù)據(jù)結(jié)構(gòu)的加密表5中存有加密數(shù)據(jù)表;
密文提取單元4根據(jù)接收到的査詢結(jié)果,從帶輔助數(shù)據(jù)結(jié)構(gòu)的加密表5中
獲取對(duì)應(yīng)的密文值,然后將加密結(jié)果發(fā)送給査詢客戶端;
查詢客戶端接收到返回的加密結(jié)果之后,將其發(fā)送到結(jié)果解密器6;
結(jié)果加密器6從密鑰單元7中取得預(yù)先存儲(chǔ)在密鑰單元7中的對(duì)應(yīng)密鑰, 然后對(duì)接收到的加密結(jié)果進(jìn)行解密并去除隨機(jī)串,得到解密后的結(jié)果;査詢客戶端將解密后的結(jié)果返回給用戶。
圖4是按照本發(fā)明一個(gè)實(shí)施方式的數(shù)據(jù)庫(kù)存儲(chǔ)信息的實(shí)例。下面結(jié)合圖l-4,
說(shuō)明按照本發(fā)明 一個(gè)實(shí)施方式的查詢過(guò)程。
1. 明文數(shù)據(jù)處理過(guò)程
首先需要調(diào)用原始數(shù)據(jù)加密處理單元進(jìn)行數(shù)據(jù)轉(zhuǎn)化過(guò)程。例如第一行第二
列的明文數(shù)據(jù)usual經(jīng)過(guò)轉(zhuǎn)化后處理為密文值CF, FE, 5A, A3, A3, A3, CF, 88,...(共20個(gè)字節(jié));以及索引值02, FB, E2, CE, Cl, 60, 04, 27, B9,...(共
20個(gè)字節(jié))。同時(shí)隨機(jī)產(chǎn)生加密密鑰Si、査詢密鑰S2,并將變化后的密文數(shù)據(jù) 表存儲(chǔ)在圖3中數(shù)據(jù)庫(kù)服務(wù)器端的帶輔助數(shù)據(jù)結(jié)構(gòu)的加密表5中,將加密密鑰 S,、查詢密鑰S2保存在圖3中査詢客戶端的密鑰單元7中。到此為止,不再使 用明文數(shù)據(jù)表。
2. 密文數(shù)據(jù)査詢過(guò)程
圖3中的查詢客戶端接受到査詢命令"select Name, Parents, Has—nurs, Form from T where Children=l"時(shí),查詢轉(zhuǎn)化器1計(jì)算Children二l對(duì)應(yīng)的査 詢值q,并發(fā)送由Q、 "Children列的列號(hào))以及(l、 2、 3)(返回列的列號(hào))組成 的Q(v),即,將圖3中的轉(zhuǎn)化結(jié)果査詢發(fā)送給數(shù)據(jù)庫(kù)服務(wù)器。
數(shù)據(jù)庫(kù)服務(wù)器接到查詢請(qǐng)求后,首先通過(guò)査詢分析器2進(jìn)行分析,判斷列 號(hào)4是否對(duì)應(yīng)區(qū)間査詢結(jié)構(gòu),發(fā)現(xiàn)不是區(qū)間查詢列,則將査詢值q、查詢列列號(hào) 4、以及返回列列號(hào)l、 2、 3送入査詢處理器3中,進(jìn)行按照本發(fā)明一個(gè)實(shí)施方 式的査詢協(xié)議中所述的査詢處理,將查詢結(jié)果發(fā)送給密文提取模塊4,密文提取 模塊4提取相應(yīng)的密文值并發(fā)送給查詢客戶端程序。
3. 解密過(guò)程
査詢客戶端收到返回的加密結(jié)果后,將加密結(jié)果送入結(jié)果解密器6中進(jìn)行 解密和去除隨機(jī)串的操作,解密時(shí)使用預(yù)存在密鑰模塊7中的S,。解密后的結(jié)果返回給用戶。
本發(fā)明提高了參考文獻(xiàn)1整個(gè)方案的運(yùn)行速度,因此下面給出按照本發(fā)明 一個(gè)實(shí)施方式與參考文獻(xiàn)l中的方案的性能對(duì)比數(shù)據(jù)。為方便描述,按照本發(fā) 明一個(gè)實(shí)施方式簡(jiǎn)稱為L(zhǎng)&Y系統(tǒng),參考文獻(xiàn)1中的方案簡(jiǎn)稱為Y&R系統(tǒng)。
圖5是按照本發(fā)明一個(gè)實(shí)施方式的密文數(shù)據(jù)庫(kù)查詢方法的循環(huán)處理數(shù)據(jù)過(guò) 程的消耗時(shí)間統(tǒng)計(jì)圖。圖5中的橫軸表示數(shù)據(jù)表容量,縱軸表示消耗時(shí)間,單
位為毫秒。
對(duì)記錄數(shù)量不同的原始明文數(shù)據(jù)表進(jìn)行10次加密操作,每張數(shù)據(jù)表的處理 時(shí)間取平均值,分別記錄L&Y系統(tǒng)和Y&R系統(tǒng)從發(fā)送第一個(gè)數(shù)據(jù)到原始數(shù)據(jù)加 密處理單元開(kāi)始,到最后一個(gè)數(shù)據(jù)通過(guò)該單元變?yōu)槊芪臄?shù)據(jù)庫(kù)中存儲(chǔ)的二元組 的時(shí)間,其消耗時(shí)間如圖5所示。
圖6是按照本發(fā)明一個(gè)實(shí)施方式的密文數(shù)據(jù)庫(kù)查詢系統(tǒng)從接收到Q (v)開(kāi)始, 到提取加密結(jié)果的消耗時(shí)間統(tǒng)計(jì)圖。圖6中的橫軸表示并發(fā)訪問(wèn)用戶數(shù),縱軸 表示消耗時(shí)間,單位為毫秒。
對(duì)L&Y系統(tǒng)和Y&R系統(tǒng)中數(shù)據(jù)庫(kù)服務(wù)器從接收到Q(v)開(kāi)始,到提取加密結(jié) 果的時(shí)間進(jìn)行10次記錄,記錄了數(shù)據(jù)庫(kù)服務(wù)器根據(jù)檢驗(yàn)等式循環(huán)處理過(guò)程所消 耗的時(shí)間的多次平均值,并記錄了多用戶同時(shí)訪問(wèn)時(shí),數(shù)據(jù)庫(kù)服務(wù)器處理全部 請(qǐng)求消耗的時(shí)間,其消耗時(shí)間如圖6所示。
從圖5、 6中可以看出,L&Y系統(tǒng)消耗的時(shí)間與Y&R系統(tǒng)消耗的時(shí)間比近似 為1:3。
雖然以上描述了本發(fā)明的多個(gè)具體實(shí)施方式
,但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理 解,這些具體實(shí)施方式
僅是舉例說(shuō)明,本領(lǐng)域的技術(shù)人員在不脫離本發(fā)明的原 理和實(shí)質(zhì)的情況下,可以對(duì)上述方法和系統(tǒng)的細(xì)節(jié)進(jìn)行各種省略、替換和改變。例如,合并上述模塊單元和/或方法步驟,從而按照實(shí)質(zhì)相同的方法執(zhí)行實(shí)質(zhì)相 同的功能以實(shí)現(xiàn)實(shí)質(zhì)相同的結(jié)果則屬于本發(fā)明的范圍。因此,本發(fā)明的范圍僅 由所附權(quán)利要求書限定。
權(quán)利要求
1. 一種密文數(shù)據(jù)庫(kù)隱私保護(hù)查詢方法,其特征在于,該方法包括以下步驟A、向第一查詢單元輸入明文查詢;B、第一查詢單元對(duì)所述明文查詢進(jìn)行加密處理,將處理后的密文值查詢發(fā)送給第二查詢單元;C、第二查詢單元處理所述通過(guò)第一查詢單元得到的密文值查詢,將加密結(jié)果返回給第一查詢單元;D、第一查詢單元利用預(yù)先存儲(chǔ)在第一查詢單元的第一密鑰,對(duì)所述加密結(jié)果進(jìn)行解密,得到解密結(jié)果;E、第一查詢單元將解密結(jié)果輸出。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于在上述步驟A之前,還存在根據(jù)明文數(shù)據(jù)表生成第一密鑰、第二密鑰并將 所述第一密鑰、第二密鑰預(yù)先存儲(chǔ)在第一査詢單元中的步驟。
3. 根據(jù)權(quán)利要求l所述的方法,其特征在于在上述步驟C中具體包括以 下步驟Cl、使用第一算法生成密文數(shù)據(jù); C2、使用第二算法生成索引值數(shù)據(jù);C3、在第二查詢單元中存儲(chǔ)所述密文數(shù)據(jù)和所述索引值數(shù)據(jù),其中 所述索引值數(shù)據(jù)包含使用第二算法生成的查詢使用散列值數(shù)據(jù);C4、第二查詢單元根據(jù)檢驗(yàn)公式,利用所述密文數(shù)據(jù)和所述索引值數(shù) 據(jù)得到所述加密結(jié)果。
4. 根據(jù)權(quán)利要求3所述的方法,其特征在于所述第一算法是對(duì)稱密碼算 法,第二算法是安全散列函數(shù)。
5. 根據(jù)權(quán)利要求3所述的方法,其特征在于第二査詢單元通過(guò)第二密鑰和所述密文數(shù)據(jù)得到與所述索引值數(shù)據(jù)進(jìn)行比對(duì)的查詢值。
6. 根據(jù)權(quán)利要求卜5之一的方法,其特征在于,所述第一查詢單元是査詢 客戶端,所述第二查詢單元是數(shù)據(jù)庫(kù)服務(wù)器,所述第一密鑰是加密密鑰,所述 第二密鑰是査詢密鑰。
全文摘要
本發(fā)明在不改變數(shù)據(jù)庫(kù)管理系統(tǒng)內(nèi)部運(yùn)行機(jī)制的前提下,利用結(jié)構(gòu)化的附加數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)密文數(shù)據(jù)庫(kù)表單查詢,它包括含有索引查詢結(jié)構(gòu)的密文數(shù)據(jù)生成方法、以及全密文查詢處理過(guò)程。數(shù)據(jù)庫(kù)服務(wù)器首先判斷用戶持有的一定等級(jí)的密鑰可檢索的信息范圍,之后在這個(gè)信息范圍中進(jìn)行快速信息檢索,從而保護(hù)了數(shù)據(jù)庫(kù)中信息的隱私性。
文檔編號(hào)G06F17/30GK101436208SQ20081023941
公開(kāi)日2009年5月20日 申請(qǐng)日期2008年12月9日 優(yōu)先權(quán)日2008年12月9日
發(fā)明者劉吉強(qiáng), 光 楊, 臻 韓 申請(qǐng)人:北京交通大學(xué)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
马尔康县| 宁蒗| 景洪市| 那曲县| 新建县| 灵寿县| 绥阳县| 临城县| 哈密市| 金塔县| 苗栗县| 津南区| 疏勒县| 庆元县| 南宁市| 二连浩特市| 静乐县| 南郑县| 海口市| 仙游县| 白河县| 丰都县| 留坝县| 东明县| 汾阳市| 宁安市| 宁津县| 绵竹市| 灯塔市| 新绛县| 香港| 聂拉木县| 禄丰县| 如皋市| 遵义市| 集安市| 桃园市| 平山县| 容城县| 东莞市| 黄浦区|