一種基于希爾伯特曲線的密文檢索方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種基于希爾伯特曲線的密文檢索方法和系統(tǒng)。所述系統(tǒng)包括內(nèi)置密文翻譯器(3)的客戶端(1)、數(shù)據(jù)庫服務(wù)器(9)。所述密文翻譯器(3)用于接收由所述客戶端(1)輸入的明文數(shù)據(jù)查詢命令,通過基于希爾伯特曲線的密文索引表將該明文數(shù)據(jù)查詢命令翻譯為密文數(shù)據(jù)查詢命令后發(fā)送到數(shù)據(jù)庫服務(wù)器(9)。所述數(shù)據(jù)庫服務(wù)器(9)用于檢索密文數(shù)據(jù)中滿足該密文數(shù)據(jù)查詢命令的密文檢索信息,并將該密文檢索信息返回到所述密文翻譯器(3)。所述密文翻譯器(3)還用于對(duì)密文檢索信息進(jìn)行處理以得到明文數(shù)據(jù)檢索結(jié)果,并將該明文數(shù)據(jù)檢索結(jié)果輸出到所述客戶端(1)的顯示屏(8)進(jìn)行顯示。本發(fā)明可極大地提高服務(wù)器數(shù)據(jù)的存儲(chǔ)安全性。
【專利說明】一種基于希爾伯特曲線的密文檢索方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及檢索【技術(shù)領(lǐng)域】,更具體地說,涉及一種基于希爾伯特曲線的密文檢索方法和系統(tǒng)。
【背景技術(shù)】
[0002]出于成本及可擴(kuò)展性的考慮,互聯(lián)網(wǎng)公司越來越傾向于將其開發(fā)的網(wǎng)絡(luò)應(yīng)用存儲(chǔ)到存儲(chǔ)服務(wù)商提供的專用服務(wù)器。為了提高數(shù)據(jù)存儲(chǔ)安全性,網(wǎng)絡(luò)應(yīng)用開發(fā)者通常會(huì)先對(duì)其網(wǎng)絡(luò)應(yīng)用數(shù)據(jù)進(jìn)行加密得到密文數(shù)據(jù),再將密文數(shù)據(jù)存儲(chǔ)到存儲(chǔ)服務(wù)商提供的數(shù)據(jù)庫服務(wù)器。網(wǎng)絡(luò)應(yīng)用開發(fā)人員還相應(yīng)地在存儲(chǔ)服務(wù)商的服務(wù)器中存儲(chǔ)密文索引以便于該網(wǎng)絡(luò)應(yīng)用的檢索。然而,在現(xiàn)有技術(shù)中,存儲(chǔ)于服務(wù)器的密文數(shù)據(jù)的構(gòu)建基于數(shù)據(jù)明文,且該密文數(shù)據(jù)包含數(shù)據(jù)明文的相關(guān)信息,使得該密文數(shù)據(jù)易于破解。不法分子可通過對(duì)密文索引進(jìn)行分析來竊取數(shù)據(jù)明文所包含的敏感信息。故在現(xiàn)有技術(shù)中,即使應(yīng)用開發(fā)人員將應(yīng)用數(shù)據(jù)進(jìn)行加密后再存儲(chǔ)到存儲(chǔ)服務(wù)商提供的服務(wù)器,該加密應(yīng)用數(shù)據(jù)的泄露風(fēng)險(xiǎn)依然存在。
[0003]因此,如何開發(fā)一種既便于用戶對(duì)存儲(chǔ)于專用服務(wù)器的密文數(shù)據(jù)的檢索操作,又能避免該密文數(shù)據(jù)遭破解及泄露的方法和系統(tǒng)已成為亟待解決的問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問題在于,針對(duì)現(xiàn)有技術(shù)的上述缺陷提供一種既便于存儲(chǔ)于專用服務(wù)器的密文數(shù)據(jù)的檢索操作,又能有效避免該密文數(shù)據(jù)遭到破解及泄露的基于希爾伯特曲線的密文檢索方法和系統(tǒng)。
[0005]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:構(gòu)造一種基于希爾伯特曲線的密文檢索方法,包括如下步驟:
[0006]SI)接收由客戶端輸入的明文數(shù)據(jù)查詢命令,通過基于希爾伯特曲線的密文索引表將所述明文數(shù)據(jù)查詢命令翻譯為密文數(shù)據(jù)查詢命令,并向存儲(chǔ)密文數(shù)據(jù)的數(shù)據(jù)庫服務(wù)器發(fā)送所述密文數(shù)據(jù)查詢命令;
[0007]S2)使所述數(shù)據(jù)庫服務(wù)器根據(jù)接收的密文數(shù)據(jù)查詢命令在所述密文數(shù)據(jù)中查找滿足該密文數(shù)據(jù)查詢命令的所有密文檢索信息,并將該密文檢索信息回傳到密文翻譯器;
[0008]S3)通過所述密文翻譯器對(duì)所述密文檢索信息進(jìn)行處理,得到明文數(shù)據(jù)檢索結(jié)果,并將所述明文數(shù)據(jù)檢索結(jié)果輸出到所述客戶端的顯示屏進(jìn)行顯示。
[0009]在本發(fā)明上述基于希爾伯特曲線的密文檢索方法中,在所述步驟SI之前還包括以下步驟:
[0010]so)構(gòu)建希爾伯特曲線,并根據(jù)構(gòu)建的希爾伯特曲線的映射矩陣建立密文索引表。
[0011]在本發(fā)明上述基于希爾伯特曲線的密文檢索方法中,在步驟SO和步驟SI之間還包括如下步驟:
[0012]S01)提取所述密文索引表中與所述明文數(shù)據(jù)對(duì)應(yīng)的密文信息,將提取的密文信息作為加密秘鑰對(duì)所述明文數(shù)據(jù)進(jìn)行加密以生成密文數(shù)據(jù),將所述密文數(shù)據(jù)上傳到數(shù)據(jù)庫服務(wù)器進(jìn)行保存。
[0013]在本發(fā)明上述基于希爾伯特曲線的密文檢索方法中,所述步驟SO中構(gòu)建希爾伯特曲線的步驟包括:
[0014]S001)根據(jù)所述明文數(shù)據(jù)所形成的初始數(shù)據(jù)分布的大小選擇希爾伯特曲線的階數(shù);
[0015]S002)指定希爾伯特曲線的方向;
[0016]S003)根據(jù)所述希爾伯特曲線的階數(shù)以及所述希爾伯特曲線的方向構(gòu)建希爾伯特曲線。
[0017]在本發(fā)明上述基于希爾伯特曲線的密文檢索方法中,所述步驟SO中建立密文索引表的步驟包括: [0018]SOOr )設(shè)定明文數(shù)據(jù)的頻度閾值,根據(jù)所述頻度閾值將所述明文數(shù)據(jù)形成的初始數(shù)據(jù)分布p{ (A,a), (B,b),(C, c)……)}平均化,得到平均化的數(shù)據(jù)分布P' { (A1,η),(A2, η)…(Aa/n, η) ; (B1, η),(B2, η)…(Bb/n, η) ; (C1, η), (C2, η)…(Cc/n, η)......};
[0019]S002/ )在所述希爾伯特曲線的映射矩陣(V)中選擇一個(gè)切割點(diǎn),通過該切割點(diǎn)在映射矩陣中切割一個(gè)與所述數(shù)據(jù)分布P' { (A1, n), (A2, η)…(Aa/n,η) ; (B1, η),(B2,η)…(Β^η);”,!!),(C2, η)…(Ce/n,η)……}的大小匹配的正整數(shù)映射矩陣;
[0020]S003/ )從所述數(shù)據(jù)分布 P' { (A1, n), (A2, η)…(Aa/n, η) ; (B1, η),(B2, η)…
(Bb/n, η) ; (C1, η), (C2, η)...(Cc/n, η)......}中提取一組分割數(shù)據(jù)(A1, A1H-Ai^n, B1, B2…Bb,
n, C1, (V..Cw ),并將該提取的分割數(shù)據(jù)(A1, A1-^-Aa7n, B1, IV“Bb/n,C1, (ν..&/η...)中的每一個(gè)數(shù)據(jù)與所述映射矩陣中排列順序與其相同的正整數(shù)依次進(jìn)行替換,得到新的映射矩陣;
[0021]S004')根據(jù)所述映射矩陣構(gòu)造第一二維表,并將該第一二維表作為密文索引表存儲(chǔ)到所述密文翻譯器。
[0022]在本發(fā)明上述基于希爾伯特曲線的密文檢索方法中,所述步驟SOOl'還包括:如判斷所述明文數(shù)據(jù)的初始數(shù)據(jù)分布P { (A,a),(B,b),(C, c)……)}的元組個(gè)數(shù)不能被所述頻度閾值均分,則先對(duì)所述初始數(shù)據(jù)分布P { (A,a),(B,b),(C,c)……)}補(bǔ)足偽元組,再通過所述頻度閾值將該補(bǔ)足偽元組的初始數(shù)據(jù)分布P { (A,a),(B,b),(C,c)……)}平均化,得到平均化的數(shù)據(jù)分布 P' { (A1, n), (A2, η)…(Aa/n, η) ; (B1, η),(B2, η)…(Bb/η,η) ; (Ci,η),(C。,η)...(Cc/n,η) ******}。
[0023]在本發(fā)明上述基于希爾伯特曲線的密文檢索方法中,所述步驟SOl還包括:先計(jì)算從所述數(shù)據(jù)分布 P' { (A1, n), (A2, η)…(Aa/n, η) ; (B1, η),(B2, η)…(Bb/n, η) ; (C1,
η), (C2,η)...(Cc/n,n)......}提取的一組分割數(shù)據(jù)(A1, Ar.】* B1, B2…Bb/n, C1, C1*" Cc/n...)
在映射矩陣中的坐標(biāo) Z{ (X A1,YA1),(x A2,Y A2)…(X A(a/n),Y A(a/n)),(x B1,Y B1),(x B2,Y B2)…(XB(b/n),Y B(b/n) ^..?},通過對(duì)應(yīng)于所述分割數(shù)據(jù)(A1, A1-Aa7n, B1, B2-Bb7n, C1, C1-Cc/n...)的 ID (ID1, ID2...)與所述坐標(biāo) Z{ (X A1,Y A1),(X A2,Y A2)…(X A (a/n), Y A (a/n)),(Xm,Y m),(X B2,Y B2)…(X B (b/n) , Y B (b/n)、… }的映射關(guān)系構(gòu)造第二二維表,將所述第二二維表作為密文數(shù)據(jù)上傳到數(shù)據(jù)庫服務(wù)器。
[0024]在本發(fā)明上述基于希爾伯特曲線的密文檢索方法中,所述步驟SI包括:確定由所述明文數(shù)據(jù)查詢命令指定的分割數(shù)據(jù)及其在所述映射矩陣中的分布范圍,根據(jù)所述分割數(shù)據(jù)在所述映射矩陣中的分布范圍生成相應(yīng)的密文數(shù)據(jù)查詢命令,并將所述密文數(shù)據(jù)查詢命令發(fā)送到數(shù)據(jù)庫服務(wù)器。
[0025]在本發(fā)明上述基于希爾伯特曲線的密文檢索方法中,所述步驟S2還包括:通過所述數(shù)據(jù)庫服務(wù)器接收所述密文數(shù)據(jù)查詢命令,查找所述密文數(shù)據(jù)中滿足所述密文數(shù)據(jù)查詢命令的所有ID,并將所述ID返回到所述密文翻譯器;
[0026]通過所述密文翻譯器對(duì)所述ID進(jìn)行解析,得到明文數(shù)據(jù)檢索結(jié)果,并將所得明文數(shù)據(jù)檢索結(jié)果輸出到所述客戶端的顯示屏進(jìn)行顯示。
[0027]本發(fā)明還構(gòu)造一種基于希爾伯特曲線的密文檢索系統(tǒng),所述系統(tǒng)包括內(nèi)置密文翻譯器的客戶端、以及與所述客戶端建立無線通信的數(shù)據(jù)庫服務(wù)器;
[0028]所述客戶端用于根據(jù)用戶輸入生成明文數(shù)據(jù)查詢命令;
[0029]所述密文翻譯器用于接收由所述客戶端輸入的明文數(shù)據(jù)查詢命令,通過基于希爾伯特曲線的密文索引表將所述明文數(shù)據(jù)查詢命令翻譯為密文數(shù)據(jù)查詢命令,并向存儲(chǔ)密文數(shù)據(jù)的數(shù)據(jù)庫服務(wù)器發(fā)送所述密文數(shù)據(jù)查詢命令;
[0030]所述數(shù)據(jù)庫服務(wù)器用于根據(jù)接收到的所述密文數(shù)據(jù)查詢命令在所述密文數(shù)據(jù)中檢索滿足所述密文數(shù)據(jù)查詢命令的密文檢索信息,并將所述密文檢索信息返回到所述密文翻譯器;
[0031]所述密文翻譯器還用于對(duì)所述密文檢索信息進(jìn)行處理,得到明文數(shù)據(jù)檢索結(jié)果,以及用于將所得明文數(shù)據(jù)檢索結(jié)果輸出到所述客戶端的顯示屏進(jìn)行顯示。
[0032]實(shí)施本發(fā)明基于希爾伯特曲線的密文檢索方法和系統(tǒng),具有以下有益效果:
[0033](I)本發(fā)明用于對(duì)保護(hù)數(shù)據(jù)進(jìn)行加密的密文索引表的構(gòu)建源于用戶自定義的希爾伯特曲線經(jīng)隨機(jī)切割映射到水平面的正整數(shù)矩陣,而密文索引表中的每一個(gè)密文(即經(jīng)平均化處理的明文數(shù)據(jù)的各個(gè)數(shù)值映射到矩陣W'的坐標(biāo))均為用戶根據(jù)該明文數(shù)據(jù)的各個(gè)數(shù)值大小隨機(jī)賦值,故密文索引表中的密文與明文數(shù)據(jù)所形成的數(shù)據(jù)分布無任何關(guān)聯(lián),密文索引表的密文順序與明文數(shù)據(jù)的數(shù)據(jù)分布無規(guī)律可循。在本發(fā)明基于希爾伯特曲線的密文檢索系統(tǒng)中,一方面,密文數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)庫服務(wù)器,密文索引表存儲(chǔ)于客戶端的密文翻譯器,密文索引表的密文順序與明文數(shù)據(jù)的數(shù)據(jù)分布無規(guī)律可循;另一方面,密文索引表的構(gòu)建基于用戶自定義的希爾伯特曲線,不法分子欲破解密文索引表,還需確定用戶自指定的希爾伯特曲線的階數(shù)、方向,甚至于希爾伯特曲線的映射矩陣的切割點(diǎn)等信息。因此,本發(fā)明存儲(chǔ)于存儲(chǔ)服務(wù)商提供的數(shù)據(jù)庫服務(wù)器的密文數(shù)據(jù)的破解難度極大,存儲(chǔ)安全性極聞。
[0034](2)本發(fā)明基于希爾伯特曲線的密文檢索系統(tǒng)可適用于所有二維表結(jié)構(gòu)的數(shù)據(jù)的加密保護(hù),本發(fā)明基于希爾伯特曲線的密文檢索方法的應(yīng)用范圍廣闊,該密文檢索方法具有極高的使用價(jià)值。
【專利附圖】
【附圖說明】
[0035]下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明,附圖中:
[0036]圖1是本發(fā)明較佳實(shí)施例提供的基于希爾伯特曲線的密文檢索系統(tǒng)的結(jié)構(gòu)框圖;
[0037]圖2是圖1所示的希爾伯特曲線的示意圖;
[0038]圖3是圖2所示的希爾伯特曲線的映射矩陣V的示意圖;
[0039]圖4是圖3所示的映射矩陣V的切割矩陣W的示意圖;[0040]圖5是基于圖4所不的切割矩陣W構(gòu)建的密文索引表的不意圖;
[0041]圖6是本發(fā)明較佳實(shí)施例提供的明文數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)示意圖;
[0042]圖7是本發(fā)明較佳實(shí)施例提供的密文數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)示意圖;
[0043]圖8是本發(fā)明較佳實(shí)施例提供的基于希爾伯特曲線的密文檢索方法的流程圖。
【具體實(shí)施方式】
[0044]為了解決現(xiàn)有技術(shù)中存在的存儲(chǔ)于存儲(chǔ)服務(wù)商提供的專用服務(wù)器中的加密數(shù)據(jù)易遭破解及泄露的缺陷,本發(fā)明的創(chuàng)新點(diǎn)在于:a、構(gòu)建基于希爾伯特曲線的密文索引表,并將密文索引表存儲(chǔ)于客戶端I的密文翻譯器3 ;b、通過密文索引表對(duì)數(shù)據(jù)進(jìn)行加密,將所得密文數(shù)據(jù)存儲(chǔ)到存儲(chǔ)服務(wù)商提供的數(shù)據(jù)庫服務(wù)器9 ;c、通過翻譯器將用戶在客戶端I上輸入的明文查詢命令翻譯為密文查詢命令后發(fā)送到存儲(chǔ)服務(wù)商提供的數(shù)據(jù)庫服務(wù)器9,通過數(shù)據(jù)庫服務(wù)器9根據(jù)該密文查詢命令檢索密文數(shù)據(jù)中的相關(guān)信息并返回該檢索信息到客戶端I。
[0045]由于本發(fā)明采用了構(gòu)建基于希爾伯特曲線的密文索引表并將該密文索引表存儲(chǔ)于客戶端I的密文翻譯器3的設(shè)計(jì),以及通過密文索引表對(duì)數(shù)據(jù)進(jìn)行加密,并將加密數(shù)據(jù)存儲(chǔ)到專用服務(wù)器的設(shè)計(jì),所以解決了現(xiàn)有技術(shù)中存儲(chǔ)到專用服務(wù)器的加密數(shù)據(jù)易遭破解的技術(shù)問題,實(shí)現(xiàn)了通過密文翻譯器3將用戶輸入的明文查詢命令翻譯為密文查詢命令,將該密文查詢命令發(fā)送到存儲(chǔ)有密文數(shù)據(jù)的數(shù)據(jù)庫服務(wù)器9,以及接收由數(shù)據(jù)庫服務(wù)器9根據(jù)該密文查詢命令在密文數(shù)據(jù)中檢索到的相關(guān)信息的目的。
[0046]為了使本發(fā)明的目的更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0047]如圖1所示,本發(fā)明基于希爾伯特曲線的密文檢索系統(tǒng)包括內(nèi)置密文翻譯器3的客戶端1、以及與該客戶端I建立無線通信的數(shù)據(jù)庫服務(wù)器9。客戶端I用于接收用戶輸入的明文數(shù)據(jù)查詢命令,通過翻譯器將該明文數(shù)據(jù)查詢命令翻譯為密文數(shù)據(jù)查詢命令后發(fā)送到遠(yuǎn)端的數(shù)據(jù)庫服務(wù)器9。該數(shù)據(jù)庫服務(wù)器9用于接收來自客戶端I的密文數(shù)據(jù)查詢命令,及在密文數(shù)據(jù)中查找滿足該密文數(shù)據(jù)查詢請(qǐng)求命令的密文檢索信息,并將該檢索到的密文檢索信息返回到客戶端I進(jìn)行顯示。
[0048]其中,該密文翻譯器3進(jìn)一步包括預(yù)存有密文索引表的第一存儲(chǔ)模塊5、翻譯模塊
4、以及第一處理模塊6。該客戶端I還包括與該密文翻譯器3分別電連接的輸入模塊2、第一信號(hào)收發(fā)模塊7以及顯示屏8。該數(shù)據(jù)庫服務(wù)器9還包括第二信號(hào)收發(fā)模塊10、與第二信號(hào)收發(fā)模塊10電連接的第二處理模塊11、以及與該第二處理模塊11電連接,存儲(chǔ)有明文數(shù)據(jù)及密文數(shù)據(jù)的第二存儲(chǔ)模塊12。客戶端I的輸入模塊2用于接收用戶輸入的明文數(shù)據(jù)查詢請(qǐng)求信息。翻譯模塊4用于根據(jù)第一存儲(chǔ)模塊5存儲(chǔ)的密文索引表將用戶輸入的明文數(shù)據(jù)查詢請(qǐng)求信息翻譯為密文數(shù)據(jù)查詢請(qǐng)求信息。第一信號(hào)收發(fā)模塊7用于接收由翻譯模塊4輸入的密文數(shù)據(jù)查詢請(qǐng)求信息,并通過無線網(wǎng)絡(luò)將該密文數(shù)據(jù)查詢請(qǐng)求信息發(fā)送到遠(yuǎn)端的數(shù)據(jù)庫服務(wù)器9。
[0049]該數(shù)據(jù)庫服務(wù)器9的第二信號(hào)收發(fā)模塊10用于接收來自客戶端I的密文數(shù)據(jù)查詢請(qǐng)求信息,將該密文數(shù)據(jù)查詢請(qǐng)求信息輸入至第二處理模塊11。該第二處理模塊11用于根據(jù)接收到的密文數(shù)據(jù)查詢請(qǐng)求信息在第二存儲(chǔ)模塊12存儲(chǔ)的密文數(shù)據(jù)中查找符合該密文數(shù)據(jù)查詢請(qǐng)求信息的密文數(shù)據(jù)檢索結(jié)果,并通過第二信號(hào)收發(fā)模塊10將該密文數(shù)據(jù)檢索結(jié)果下發(fā)到客戶端I。該客戶端I還用于通過第一信號(hào)收發(fā)模塊7接收由數(shù)據(jù)庫服務(wù)器9下發(fā)的密文數(shù)據(jù)檢索結(jié)果,通過密文翻譯器3的第一處理模塊6對(duì)該密文數(shù)據(jù)檢索結(jié)果進(jìn)行處理以得到明文數(shù)據(jù)檢索結(jié)果,以及通過顯示屏8顯示明文數(shù)據(jù)檢索結(jié)果。
[0050]其中,客戶端I可以是電腦、或手機(jī)、平板電腦等終端設(shè)備,密文翻譯器3可以是現(xiàn)有的編碼譯碼器。第一信號(hào)收發(fā)模塊7可以是現(xiàn)有的信號(hào)收發(fā)裝置,例如網(wǎng)卡、無線網(wǎng)卡、天線。第一處理模塊6可以是現(xiàn)有的CPU或MCU。輸入模塊2可以是鍵盤等輸入裝置。第二收發(fā)模塊可以是現(xiàn)有的服務(wù)器網(wǎng)卡,第二處理模塊11可以是現(xiàn)有的服務(wù)器CPU。
[0051]下面將以某班級(jí)學(xué)生成績分布的密文檢索方法為例,結(jié)合圖2至圖7對(duì)本發(fā)明基于希爾伯特曲線的密文索引表的構(gòu)建進(jìn)行說明:
[0052]該密文索引表的構(gòu)建可分為以下四個(gè)步驟: [0053]1、班級(jí)學(xué)生成績分布P的平均化
[0054]假設(shè)一個(gè)班級(jí)共有61名同學(xué),該61名同學(xué)的成績包括A、B、C、D、E、F。其中,8個(gè)人獲取成績A,28個(gè)人獲取成績B,12人獲取成績C,8人獲取成績D,4人獲取成績E,I人獲取成績 F。則該班級(jí)的成績分布為 P={ (A,8),(B,28),(C, 12), (D,8),(E,4),(F,I) }。如用戶預(yù)設(shè)的頻度閾值n=2,根據(jù)該頻度閾值2對(duì)P的各個(gè)元組進(jìn)行拆分,其中,元組(A,8)被拆分為(Al,2),(A2,2),(A3,2,),CM, 2)四個(gè)元組。依次類推,得到平均化的成績分布P' { (A1, 2),(A2, 2),(A3, 2),(A4, 2),(B1, 2),(B2, 2),(B3, 2),(B4, 2),(B5, 2)......(E1, 2),
(E2, 2), (E3, 2), (E4, 2), (F1, 2)}。成績分布P所包含的元組中無法被頻度閾值2整除的元組需增加相應(yīng)數(shù)量的偽元組以便于元組拆分操作。例如,元組(F,I)不能被頻度閾值2整除,則添加一個(gè)偽元組得到新的元組(F,2),再將該新的元組(F,2)拆分為(Fl,2)。
[0055]2、希爾伯特曲線的構(gòu)建
[0056]由于經(jīng)頻度閾值η平均化的成績分布P' { (A1, 2), (A2, 2), (A3, 2), (A4, 2), (B1,
2),(B2, 2),(B3, 2,),(B4, 2),(B5, 2)......(E1, 2), (E2, 2, ), (E3, 2), (E4, 2), (F1, 2)}共有 31
個(gè)元組,由于本實(shí)施例中構(gòu)建的希爾伯特曲線(如圖2所示)的階數(shù)i的取值需滿足242)31的條件,故確定本實(shí)施例構(gòu)建的希爾伯特曲線為4階希爾伯特曲線。在本實(shí)施例中,用戶還需指定該希爾伯特曲線方向,以確定該希爾伯特曲線的具體形狀。該指定曲線形狀的4階希爾伯特曲線所構(gòu)造的映射矩陣V為16*16的自然數(shù)矩陣(如圖3所示)。
[0057]3、希爾伯特曲線的切割
[0058]由于經(jīng)頻度閾值η平均化的成績分布P'共有31個(gè)元組,可先在該映射矩陣V中隨機(jī)選擇一個(gè)切割點(diǎn)Q (Xci, Ytl)[假設(shè)該切割點(diǎn)Q (X0, Ytl)在映射矩陣V中的坐標(biāo)為(1,I)],再以該切割點(diǎn)Q (X0, Ytl)為起點(diǎn)沿右上角方向?qū)τ成渚仃嘨進(jìn)行切割,得到一個(gè)6*6的矩陣W (如圖4所示)。
[0059]4、密文索引表的構(gòu)建
[0060]先從成績分布P' { (A1, 2), (A2, 2), (A3, 2), (A4, 2), (B1, 2), (B2, 2), (B3, 2), (B4,
2), (B5,2)……(E1,2), (E2,2), (E3,2), (E4,2), (F1,2)}中提取一組遞增數(shù)列(A1, A2, A3,A4, B1, B1, B3……E1, E2, F1),再依照由小到大的替換順序?qū)⒃撨f增數(shù)列(A1, A2, A3, A4, B1, B1,B3……E1, E2, F1)中的每一個(gè)數(shù)字與該映射矩陣W中相應(yīng)的正整數(shù)依次進(jìn)行替換,得到新的映射矩陣W'(如圖5所示)。假設(shè)新的映射矩陣W'的左下角的替換數(shù)字的在該映射矩陣r中的坐標(biāo)為(O,O),依次獲取遞增數(shù)列(A1, A2, A3, A4, B1, B1, B3……E1, E2, F1)中的每一個(gè)數(shù)字在映射矩陣 W'中的坐標(biāo)冗{ (X A1,Y A1),(X A2,Y A2), (X A3,Y A3), (X A4,Y A4),(X m,Y m),(x B2,Y B2)…(xB14,Y BH)…(X m,Y El), (X E2,Y E2), (X F1,Y Fi)},即Z {(0,0),(0,2) (0,I) (I, I)……(2,5),(2,4) (2,3)}。
[0061]通過成績分布P={ (A,8),(B,28),(C, 12), (D,8),(E,4),(F,I) }的各個(gè)學(xué)生的編號(hào)與坐標(biāo)Z {(O, O),(O, 2) (O, I) (I, I)……(2,5),(2,4) (2,3)}的一一映射關(guān)系建立第一二維表,將該第一二維表作為密文索引表存儲(chǔ)到翻譯器的第一存儲(chǔ)單元。
[0062]5、明文數(shù)據(jù)的加密
[0063]根據(jù)每一個(gè)學(xué)生ID所對(duì)應(yīng)的成績Score Cscore1, Score2......)與坐標(biāo)
z{(0,0), (O, 2) (O, I) (I, I)……(2,5),(2,4) (2,3)}之間的映射關(guān)系,將該坐標(biāo)Z作為密文對(duì)學(xué)生成績分布P={ (A,8),(B,28),(C, 12), (D,8),(E,4),(F,I) }所表示的每一個(gè)學(xué)生的成績進(jìn)行加密,建立學(xué)生編號(hào)ID與坐標(biāo)Z的映射關(guān)系,形成第二二維表,并將該第二二維表作為密文數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫服務(wù)器9。其中,每一個(gè)坐標(biāo)均對(duì)應(yīng)于η(即頻度閾值η)個(gè)學(xué)生ID (如圖6及圖7所示)。例如,與學(xué)生ID=I所對(duì)應(yīng)的Score=B的密文為坐標(biāo)(2,0),與學(xué)生編號(hào)ID=2對(duì)應(yīng)的 Score=A的密文為坐標(biāo)(0,2)……依次類推。
[0064]下面將以本發(fā)明較佳實(shí)施例所揭示的基于希爾伯特曲線的密文索引表及密文數(shù)據(jù)對(duì)本發(fā)明基于希爾伯特曲線的密文檢索方法進(jìn)行說明:
[0065]如圖8所示,在步驟SlOO中,先通過本發(fā)明第一實(shí)施例所揭示的希爾伯特曲線構(gòu)建密文索引表(如圖5所示),再通過密文索引表的密文(即學(xué)生數(shù)據(jù)包含的各學(xué)生成績分別映射到矩陣W'中的坐標(biāo))對(duì)學(xué)生數(shù)據(jù)(本實(shí)施例中,該學(xué)生數(shù)據(jù)的類型為:屬性為ID,元組為Score的第一二維表,如圖6所示)進(jìn)行加密,生成密文數(shù)據(jù)(本實(shí)施例中,該密文數(shù)據(jù)的類型為:屬性為ID,元組為坐標(biāo)(X,Y)的第二二維表,如圖7所示)。
[0066]在步驟S200中,客戶端I通過第一信號(hào)收發(fā)模塊7將密文數(shù)據(jù)上傳到數(shù)據(jù)庫服務(wù)器9進(jìn)行保存。
[0067]在步驟S300中,客戶端I接收用戶通過輸入模塊2輸入的學(xué)生ID查詢請(qǐng)求信息(在本實(shí)施例中,用戶在客戶端I上輸入的學(xué)生ID查詢命令如下:select ID from Tablewhere C〈=score〈=E),將該學(xué)生ID查詢命令輸入到密文翻譯器3。
[0068]在步驟S400中,密文翻譯器3收到該學(xué)生ID查詢命令后,使第一處理模塊6參照密文索引表計(jì)算成績C1, C2, C3, C4, C5, C6, D1, D2, D3, D4, E1, E2, F1分別映射到密文索引表(即矩陣W')中的點(diǎn)坐標(biāo)(X,Y)(即解密秘鑰),再根據(jù)該點(diǎn)坐標(biāo)(X,Y)的分布范圍生成用于描述成績C1, C2, C3, C4, C5, C6, D1, D2, D3, D4, E1, E2, F1在矩陣W'中的分布范圍的密文數(shù)據(jù)查詢命令。該第一處理模塊6所生成的密文查詢命令如下:select ID from Table where(X=IAND y=5) or (x=2AND4<=y<=5) or (3〈=x〈=5AND3〈=y〈=5)。密文翻譯器 3 通過第一信號(hào)收發(fā)模塊7將第一處理模塊6生成的密文查詢命令發(fā)送到數(shù)據(jù)庫服務(wù)器9。
[0069]在步驟S500中,數(shù)據(jù)庫服務(wù)器9根據(jù)接收到的密文查詢請(qǐng)求命令在密文數(shù)據(jù)中檢索滿足密文查詢命令(select ID from Table where Cx=IAND y=5) or (x=2AND4〈=y〈=5)or (3〈=X〈=5AND3〈=y〈=5)的學(xué)生ID信息,并通過第二信號(hào)收發(fā)模塊10將該檢索的ID信息返回密文翻譯器3。[0070]在步驟S600中,密文翻譯器3接收由數(shù)據(jù)庫服務(wù)器9返回的ID信息,對(duì)ID信息進(jìn)行分析,得到明文數(shù)據(jù)檢索結(jié)果,并將明文數(shù)據(jù)檢索結(jié)果發(fā)送到顯示器進(jìn)行顯示。
[0071]綜上所述,本發(fā)明基于希爾伯特曲線的密文檢索系統(tǒng)可根據(jù)用戶輸入的學(xué)生成績查詢語句,例如:(select ID from Table where C〈=score〈=E)),將該學(xué)生成績查詢語句翻譯為如下密文數(shù)據(jù)查詢語句:select ID from Table where Cx=IAND y=5) or(x=2AND4〈=y〈=5) or (3〈=x〈=5AND3〈=y〈=5),并將該翻譯后的密文數(shù)據(jù)查詢語句發(fā)送到數(shù)據(jù)庫服務(wù)器9,使數(shù)據(jù)庫服務(wù)器9根據(jù)該密文數(shù)據(jù)查詢語句在密文數(shù)據(jù)中檢索成績?yōu)镃或D或E的所有學(xué)生ID,并將檢索到的ID信息返回到客戶端I進(jìn)行顯示。
[0072]以上所述僅以學(xué)生成績分布數(shù)據(jù)為例對(duì)本發(fā)明基于希爾伯特曲線的密文檢索方法進(jìn)行了說明,事實(shí)上,本發(fā)明基于希爾伯特曲線的密文檢索方法可應(yīng)用于所有二維表結(jié)構(gòu)數(shù)據(jù)的加密保護(hù)。
[0073]實(shí)施本發(fā)明基于希爾伯特曲線的密文檢索方法和系統(tǒng),可實(shí)現(xiàn)以下有益效果:
[0074]本發(fā)明用于對(duì)保護(hù)數(shù)據(jù)進(jìn)行加密的密文索引表的構(gòu)建源于用戶自定義的希爾伯特曲線經(jīng)隨機(jī)切割映射到水平面的正整數(shù)矩陣,而密文索引表中的每一個(gè)密文(即經(jīng)平均化處理的明文數(shù)據(jù)的各個(gè)數(shù)值映射到矩陣W'的坐標(biāo))均為用戶根據(jù)該明文數(shù)據(jù)的各個(gè)數(shù)值大小隨機(jī)賦值,故密文索引表中的密文與明文數(shù)據(jù)所形成的數(shù)據(jù)分布無任何關(guān)聯(lián),密文索引表的密文順序與明文數(shù)據(jù)的數(shù)據(jù)分布無規(guī)律可循。在本發(fā)明基于希爾伯特曲線的密文檢索系統(tǒng)中,一方面,密文數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)庫服務(wù)器9,密文索引表存儲(chǔ)于客戶端I的密文翻譯器3,密文索引表的密文順序與明文數(shù)據(jù)的數(shù)據(jù)分布無規(guī)律可循;另一方面,密文索引表的構(gòu)建基于用戶自定義的希爾伯特曲線,不法分子欲破解密文索引表,還需確定用戶自指定的希爾伯特曲線的階數(shù)、方向,甚至于希爾伯特曲線的映射矩陣的切割點(diǎn)Q (X0, Y0)等信息。因此,本發(fā)明存儲(chǔ)于存儲(chǔ)服務(wù)商提供的數(shù)據(jù)庫服務(wù)器9的密文數(shù)據(jù)的破解難度極大,存儲(chǔ)安全性極高。
[0075]本發(fā)明基于希爾伯特曲線的密文檢索系統(tǒng)可應(yīng)用于所有二維表結(jié)構(gòu)的數(shù)據(jù)的加密保護(hù),本發(fā)明基于希爾伯特曲線的密文檢索方法的應(yīng)用范圍廣闊,該密文檢索方法具有極高的使用價(jià)值。
[0076]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種基于希爾伯特曲線的密文檢索方法,其特征在于,包括如下步驟: 51)接收由客戶端(1)輸入的明文數(shù)據(jù)查詢命令,通過基于希爾伯特曲線的密文索引表將所述明文數(shù)據(jù)查詢命令翻譯為密文數(shù)據(jù)查詢命令,并向存儲(chǔ)密文數(shù)據(jù)的數(shù)據(jù)庫服務(wù)器(9)發(fā)送所述密文數(shù)據(jù)查詢命令; 52)使所述數(shù)據(jù)庫服務(wù)器(9)根據(jù)接收的密文數(shù)據(jù)查詢命令在所述密文數(shù)據(jù)中查找滿足該密文數(shù)據(jù)查詢命令的所有密文檢索信息,并將該密文檢索信息回傳到密文翻譯器(3); 53)通過所述密文翻譯器(3)對(duì)所述密文檢索信息進(jìn)行處理,得到明文數(shù)據(jù)檢索結(jié)果,并將所述明文數(shù)據(jù)檢索結(jié)果輸出到所述客戶端(I)的顯示屏(8 )進(jìn)行顯示。
2.根據(jù)權(quán)利要求1所述的基于希爾伯特曲線的密文檢索方法,其特征在于,在所述步驟SI之前還包括以下步驟: SO)構(gòu)建希爾伯特曲線,并根據(jù)構(gòu)建的希爾伯特曲線的映射矩陣(V)建立密文索引表。
3.根據(jù)權(quán)利要求1所述的基于希爾伯特曲線的密文檢索方法,其特征在于,在步驟SO和步驟SI之間還包括如下步驟: S01)提取所述密文索引表中與所述明文數(shù)據(jù)對(duì)應(yīng)的密文信息,將提取的密文信息作為加密秘鑰對(duì)所述明文數(shù)據(jù)進(jìn)行加密以生成密文數(shù)據(jù),將所述密文數(shù)據(jù)上傳到數(shù)據(jù)庫服務(wù)器(9)進(jìn)行保存。
4.根據(jù)權(quán)利要求2所述的基于希爾伯特曲線的密文檢索方法,其特征在于,所述步驟SO中構(gòu)建希爾伯特曲線的步驟包括: 5001)根據(jù)所述明文數(shù)據(jù)所形成的初始數(shù)據(jù)分布(P)的大小選擇希爾伯特曲線的階數(shù); 5002)指定希爾伯特曲線的方向; 5003)根據(jù)所述希爾伯特曲線的階數(shù)以及所述希爾伯特曲線的方向構(gòu)建希爾伯特曲線。
5.根據(jù)權(quán)利要求2所述的基于希爾伯特曲線的密文檢索方法,其特征在于,所述步驟SO中建立密文索引表的步驟包括: SOO^ )設(shè)定明文數(shù)據(jù)的頻度閾值(n),根據(jù)所述頻度閾值(n)將所述明文數(shù)據(jù)形成的初始數(shù)據(jù)分布P{ (A,a),(B,b),(C,c)……)}平均化,得到平均化的數(shù)據(jù)分布P' { (A1,n), (A2, n)…(Aa/n, n); (B1, n),(B2, n)…(Bb/n, n); (C1, n), (C2, n)…(Cc/n,n)......}; S002/ )在所述希爾伯特曲線的映射矩陣(V)中選擇一個(gè)切割點(diǎn)Q (Xtl, Ytl),通過該切割點(diǎn)Q (X0, Y0)在映射矩陣(V)中切割一個(gè)與所述數(shù)據(jù)分布P' { (A1, n), (A2, n)…(Aa/n, n) ; (B1, n) , (B2, n)...(Bb/n, n) ; (C1, n) , (C2, n)...(Cc/n, n)......}的大小匹配的正整數(shù)映射矩陣(W); S003')依照元組排列順序從所述數(shù)據(jù)分布P' { (A1, n), (A2, n)…(Aa/n,n) ;(B1;n), (B2, n)...(Bb/n,n); (C17Ii), (C2, n)...(Cc/n,n)......}中提取一組分割數(shù)據(jù)(A1, A1…Km, B1, B2-Bb7n, C1, C1..(;/n...),并將該提取的分割數(shù)據(jù)(A1, A1-Aa7n, B1, B2-Bb7n, C1, C1-Cc7?...)中的每一個(gè)數(shù)據(jù)與所述映射矩陣(W)中排列順序與其相同的正整數(shù)依次進(jìn)行替換,得到新的映射矩陣(W'); S004/ )根據(jù)所述映射矩陣(W')構(gòu)建第一二維表,并將該第一二維表作為密文索引表存儲(chǔ)于所述密文翻譯器(3 )。
6.根據(jù)權(quán)利要求5所述的基于希爾伯特曲線的密文檢索方法,其特征在于,所述步驟SOOl'還包括:如判斷所述明文數(shù)據(jù)的初始數(shù)據(jù)分布P{ (A,a),(B, b) , (C, c)……)}的元組項(xiàng)數(shù)不能被所述頻度閾值(η)均分,則先對(duì)所述初始數(shù)據(jù)分布P{ (A, a), (B,b), (C,c)……)}補(bǔ)足偽元組,再通過所述頻度閾值(η)將該補(bǔ)足偽元組的初始數(shù)據(jù)分布P{ (A,a), (B,b),(C, c)……)}平均化,得到平均化的數(shù)據(jù)分布P' { (A1,n), (A2,η)…(Aa/n,η) ; (Bi,η),(Β。,η) ^..(Bb/n,η) ; (Cl,η),(C。,η) ^..(Cc/n,η).“...} 0
7.根據(jù)權(quán)利要求3所述的基于希爾伯特曲線的密文檢索方法,其特征在于,所述步驟SOl還包括:先計(jì)算從所述數(shù)據(jù)分布P' { (A1, n), (A2, η)…(Aa/n, η) ; (B1, n), (B2, η)…(Bb/n, η) ; (C1, η), (C2, η)...(Cc/n, η)......}提取的一組分割數(shù)據(jù)(A1, A1H-Ai^n, B1, B2…Bb,n,C1, Cr-Cc^..)在映射矩陣(W')中的坐標(biāo)2{ (X A1,Y A1),(X A2,Y A2)…(XA(a/n),YA(a/n)), (X B1, Y B1), Y B2)…(--/?, Y B (b/n) )…},通過對(duì)應(yīng)于所述分割數(shù)據(jù)(A1,仏…Aa/WB11BfU11CV--CwMAID (ID1, ID2...)與所述坐標(biāo) Z{ (X A1,Y A1),(X A2,Y A2)...(X A (a/n),Y A(a/n)),(X BI,Y BI ),( Χβ2,Υβ2 )…^ (b/n) ? Y B (b/n) )...}的映射關(guān)系構(gòu)建第二二維表,并將所述第二二維表作為密文數(shù)據(jù)上傳到數(shù)據(jù)庫服務(wù)器(9)。
8.根據(jù)權(quán)利要求1 所述的基于希爾伯特曲線的密文檢索方法,其特征在于,所述步驟SI包括:確定由所述明文數(shù)據(jù)查詢命令指定的分割數(shù)據(jù)在所述映射矩陣(W')中的分布范圍,根據(jù)所述分割數(shù)據(jù)在所述映射矩陣(W')中的分布范圍生成相應(yīng)的密文數(shù)據(jù)查詢命令,并將所述密文數(shù)據(jù)查詢命令發(fā)送到數(shù)據(jù)庫服務(wù)器(9 )。
9.根據(jù)權(quán)利要求1所述的基于希爾伯特曲線的密文檢索方法,其特征在于,所述步驟S2還包括:通過所述數(shù)據(jù)庫服務(wù)器(9)接收所述密文數(shù)據(jù)查詢命令,以及查找所述密文數(shù)據(jù)中滿足所述密文數(shù)據(jù)查詢命令的所有(ID),并將所述(ID)返回到所述密文翻譯器(3); 通過所述密文翻譯器(3)對(duì)返回的(ID)進(jìn)行解析,得到明文數(shù)據(jù)檢索結(jié)果,并將所得明文數(shù)據(jù)檢索結(jié)果輸出到所述客戶端(I)的顯示屏(8 )進(jìn)行顯示。
10.一種基于希爾伯特曲線的密文檢索系統(tǒng),其特征在于,所述系統(tǒng)包括內(nèi)置密文翻譯器(3 )的客戶端(I)、以及與所述客戶端(I)建立無線通信的數(shù)據(jù)庫服務(wù)器(9 ); 所述客戶端(I)用于根據(jù)用戶輸入生成明文數(shù)據(jù)查詢命令; 所述密文翻譯器(3)用于接收所述明文數(shù)據(jù)查詢命令,通過基于希爾伯特曲線的密文索引表將所述明文數(shù)據(jù)查詢命令翻譯為密文數(shù)據(jù)查詢命令,并向存儲(chǔ)密文數(shù)據(jù)的數(shù)據(jù)庫服務(wù)器(9)發(fā)送所述密文數(shù)據(jù)查詢命令; 所述數(shù)據(jù)庫服務(wù)器(9 )用于根據(jù)接收到的所述密文數(shù)據(jù)查詢命令在所述密文數(shù)據(jù)中檢索滿足所述密文數(shù)據(jù)查詢命令的密文檢索信息,并將所述密文檢索信息返回到所述密文翻譯器(3); 所述密文翻譯器(3 )還用于對(duì)所述密文檢索信息進(jìn)行處理,得到明文數(shù)據(jù)檢索結(jié)果,以及用于將所得明文數(shù)據(jù)檢索結(jié)果輸出到所述客戶端(I)的顯示屏(8 )進(jìn)行顯示。
【文檔編號(hào)】G06F17/30GK103942244SQ201410048096
【公開日】2014年7月23日 申請(qǐng)日期:2014年2月11日 優(yōu)先權(quán)日:2014年2月11日
【發(fā)明者】陳開渠, 洪澄, 張敏, 李 昊, 馮登國, 龐妍 申請(qǐng)人:國家超級(jí)計(jì)算深圳中心, 中國科學(xué)院軟件研究所