專利名稱:數(shù)據(jù)庫(kù)密文索引中隱藏偏序關(guān)系的技術(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)數(shù)據(jù)庫(kù)及信息安全相關(guān)領(lǐng)域。具體涉及對(duì)數(shù)據(jù)庫(kù)中的加密字段建立密文索引或其它用以加快查詢速度的數(shù)據(jù)結(jié)構(gòu)時(shí)如何隱藏其數(shù)據(jù)間的偏序關(guān)系,而不對(duì)查詢速度產(chǎn)生較大影響。
背景技術(shù):
在高安全級(jí)的數(shù)據(jù)庫(kù)管理系統(tǒng)中,需要對(duì)加密字段建立密文索引,以實(shí)現(xiàn)對(duì)密文字段的快速查詢。但是,若對(duì)加密字段建立索引,就會(huì)暴露原有密文數(shù)據(jù)之間的偏序關(guān)系。為了隱藏這種偏序關(guān)系,可以采用對(duì)索引中的指針進(jìn)行加密,再對(duì)索引中字段和數(shù)據(jù)庫(kù)采用不同的加密算法或加密密鑰進(jìn)行加密的方法,但是,這樣一來在進(jìn)行查詢時(shí)就要頻繁的解密,從而增加CPU的負(fù)擔(dān),降低系統(tǒng)的效率。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是,提供一種方法,使得在對(duì)密文字段建立索引時(shí)能夠隱藏其數(shù)據(jù)間的偏序關(guān)系,而不對(duì)查詢速度產(chǎn)生較大影響。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案是不是將索引中的索引項(xiàng)(以密文形式存儲(chǔ))按其索引數(shù)據(jù)的明文的大小排列,而是將其按照該明文經(jīng)過某種變換后的大小進(jìn)行排列。在進(jìn)行范圍查詢時(shí),根據(jù)這種變換的特點(diǎn),由待檢索的明文范圍,得出至少一個(gè)范圍的集合運(yùn)算的結(jié)果,其使得任一大小處在轉(zhuǎn)化前明文范圍中的數(shù)據(jù),在經(jīng)過上述變換后,其大小處在該集合運(yùn)算的結(jié)果中,再由此從索引中檢索出索引項(xiàng),從而達(dá)到在密文索引文件中隱藏各索引項(xiàng)的明文的偏序關(guān)系的目的。具體包括以下內(nèi)容(下述均以正數(shù)值類型進(jìn)行說明,但只需稍加調(diào)整其方法可應(yīng)用與任何數(shù)值類型(將數(shù)值類型中包含0的范圍轉(zhuǎn)化為小于0和大于等于0兩部分進(jìn)行求解,小于0部分分整型和浮點(diǎn)型討論),下述的前綴均可為空前綴)它包括對(duì)要索引的密文形式的數(shù)據(jù)項(xiàng)的排序方法和從用該排序方法構(gòu)造的索引中檢索滿足要求的索引項(xiàng)的方法,具體如下1.對(duì)要索引的密文形式存儲(chǔ)的數(shù)據(jù)的排列方法,其特征在于在索引或其它用以加快查詢速度的輔助數(shù)據(jù)結(jié)構(gòu)中,并不將數(shù)據(jù)項(xiàng)按其明文大小排列,而是將數(shù)據(jù)項(xiàng)按其明文經(jīng)預(yù)先設(shè)定的變換后的值的大小進(jìn)行排列,該變換至少包含一個(gè)具有以下特征的處理在該處理中,對(duì)結(jié)果的二進(jìn)制表示中不為常量的任意兩個(gè)比特x和y,若y相比x處在數(shù)據(jù)中的更高有效位,設(shè)x′為x所依賴的明文比特中處在最低有效位的比特,設(shè)y′為y所依賴的明文比特中處在最低有效位的比特,則x′=y(tǒng)′或者y′相比x′處在更高有效位,2.從用上述1)的排序方法構(gòu)造的索引中檢索出滿足要求的索引項(xiàng)的方法,其至少包括以下步驟1)由待檢索的明文范圍,得出至少一個(gè)范圍的集合運(yùn)算的結(jié)果,其使得任一大小處在轉(zhuǎn)化前明文范圍中的數(shù)據(jù),在經(jīng)過上述1)所述的變換后,其大小處在該集合運(yùn)算的結(jié)果中,2)根據(jù)步驟①?gòu)乃饕袡z索出索引項(xiàng)。
本發(fā)明可用于支持密文查詢的高安全級(jí)別數(shù)據(jù)庫(kù)的設(shè)計(jì),可以提高支持密文查詢的數(shù)據(jù)庫(kù)系統(tǒng)的效率。
具體實(shí)施例方式
本發(fā)明的具體實(shí)施方式
包括更新時(shí)的處理步驟、范圍查詢時(shí)的處理步驟、等值查詢時(shí)的處理步驟。
每當(dāng)要對(duì)數(shù)據(jù)庫(kù)中的密文數(shù)據(jù)項(xiàng)進(jìn)行更新、插入、刪除時(shí),用按照以下的變換方式求得的索引項(xiàng)的明文的變換后的值,作為索引項(xiàng)在比較和排序中的依據(jù)來維護(hù)索引對(duì)一個(gè)位數(shù)為n位的明文值,設(shè)其二進(jìn)制表示為(從最高有效位到最低有效位從左向右排列)a1a2a3……an;則對(duì)任一位t,其變換方式為at′=ft(a1,a2,……,at,k),其中,at′為變換后的第t位的值,k為變換的密鑰,ft中的其它變量均是可選的,而at是必須包含且無論其他變量取何值他都是有效的變量。ft函數(shù)可由用戶根據(jù)需要選用,如ft可設(shè)為a中在t位及其以左(從最高有效位到最低有效位從左向右排列)的所有位相異或,再與密鑰的第t位相異或。在密文索引中,所有的項(xiàng)是按其明文的變換后的值排序而不是按其明文值排序。設(shè)a中的任一長(zhǎng)度為p的前綴a1a2a3……ap,按此進(jìn)行變換其結(jié)果為a1′a2′a3′……ap′=g(a1a2a3……ap,k)。對(duì)a中的任一前綴a1a2a3……am,其前綴范圍是指h(a,m)是指范圍 變換前綴范圍h(a,m,k)是指范圍 前綴范圍或變換前綴范圍之間的運(yùn)算“+”表示兩個(gè)范圍求并集,運(yùn)算“-”表示第一個(gè)范圍減去第二個(gè)范圍的差集,容易得出,在此變換中,對(duì)結(jié)果的二進(jìn)制表示中不為常量的任意兩個(gè)比特x和y,若y相比x處在數(shù)據(jù)中的更高有效位,設(shè)x′為x所依賴的明文比特中處在最低有效位的比特,設(shè)y′為y所依賴的明文比特中處在最低有效位的比特,則x′=y(tǒng)′或者y′相比x′處在更高有效位。
當(dāng)要檢索密文項(xiàng)的明文值的在范圍[x,y]中的記錄時(shí),設(shè)x、y的二進(jìn)制表示分別為(從最高有效位到最低有效位從左向右排列)x1x2x3……xn,y1y2y3……yn,設(shè)x和y的在第g位時(shí)前g位相等,即x1x2x3……xg=y(tǒng)1y2y3……yg,而第g+1位不相等。如果一個(gè)數(shù)的2進(jìn)制表示中的一個(gè)連續(xù)的長(zhǎng)度大于等于1的比特序列中所有的位具有相同的值1,且與該比特序列左右相鄰的位要么不存在,要么為其值為0,則稱這個(gè)比特序列為該數(shù)中的一個(gè)全1位段;如果一個(gè)數(shù)中的一個(gè)連續(xù)的長(zhǎng)度大于等于1的比特序列中所有的位具有相同的值0,且與此比特序列左右相鄰的位要么不存在,要么為其值為1,則稱這個(gè)比特序列為該數(shù)中的一個(gè)全0位段;全1位段和全0位段的最低有效位稱為截止位,最高有效位稱為起始位。設(shè)x之中從左往右算第一個(gè)其截止位在g之后的全1位段其起始位為xs1,截止位為xe1,第二個(gè)全1位段的起始位為xs2,截止位為xe2,……最后一個(gè)全1位段的起始位為xsu,截止位為xeu;設(shè)y中從左往右算第一個(gè)其截止位在g之后的全0位段其起始位為ys1,截止位為ye1,第二個(gè)全0位段的起始位為ys2,截止位為ye2,……最后一個(gè)全0位段起始位為ysv,截止位為yev,則設(shè)范圍P=h(x,g)-h(x,xs1-1)+h(x,xe1)-h(x,xs2-1)+h(x,xe2)……-h(x,xst-1)+h(x,xet)……-h(x,xsu)+h(x,xeu);設(shè)范圍Q=h(y,ys1-1)-h(y,ye1)+h(y,ys2-1)-h(y,ye2)……+h(y,yst-1)-h(y,yet)……+h(y,ysv-1)-h(y,yev);
設(shè)范圍S=P-Q+[x,x]+[y,y];則[x,y]=S;將S表達(dá)式中的每一個(gè)前綴范圍求得其變換前綴范圍,即有設(shè)范圍P′=h(x,g,k)-h(x,xs1-1,k)+h(x,xe1,k)-h(x,xs2-1,k)+h(x,xe2,k)……-h(x,xst-1,k)+h(x,xet,k)……-h(x,xsu,k)+h(x,xeu,k);設(shè)范圍Q′=h(y,ys1-1,k)-h(y,ye1,k)+h(y,ys2-1,k)-h(y,ye2,k)……+h(y,yst-1,k)-h(y,yet,k)……+h(y,ysv-1,k)-h(y,yev,k);設(shè)范圍S′=P′-Q′+h(x,n,k)+h(y,n,k);對(duì)S′范圍集進(jìn)行化簡(jiǎn)。
在索引樹中求解其明文變換后的范圍在S′中的索引項(xiàng),則這些索引項(xiàng)對(duì)應(yīng)的就是其明文變換前在范圍[x,y]中的索引項(xiàng)。
權(quán)利要求
1.一種數(shù)據(jù)庫(kù)密文索引中隱藏偏序關(guān)系的方法,它包括對(duì)要索引的密文形式的數(shù)據(jù)項(xiàng)的排列方法和從用該排列方法構(gòu)造的索引中檢索滿足要求的索引項(xiàng)的方法,具體如下1)對(duì)要索引的密文形式存儲(chǔ)的索引項(xiàng)的排列方法,其特征在于在索引或其它用以加快查詢速度的輔助數(shù)據(jù)結(jié)構(gòu)中,并不將索引項(xiàng)按其索引的數(shù)據(jù)的明文大小排列,而是將索引項(xiàng)按其索引的數(shù)據(jù)的明文經(jīng)預(yù)先設(shè)定的變換后的值的大小進(jìn)行排列,該變換至少包含一個(gè)具有以下特征的處理在該處理中,對(duì)于結(jié)果的二進(jìn)制表示中不為常量的任意兩個(gè)比特x和y,若y相比x處在數(shù)據(jù)中的更高有效位,設(shè)x′為x所依賴的明文比特中處在最低有效位的比特,設(shè)y′為y所依賴的明文比特中處在最低有效位的比特,則x′=y(tǒng)′或者y′相比x′處在更高有效位,2)從用上述1)的排序方法構(gòu)造的索引中檢索出滿足要求的索引項(xiàng)的方法,其至少包括以下步驟①由待檢索的明文范圍,得出至少一個(gè)范圍的集合運(yùn)算的結(jié)果,其使得任一大小處在轉(zhuǎn)化前明文范圍中的數(shù)據(jù),在經(jīng)過上述1)所述的變換后,其大小處在該集合運(yùn)算的結(jié)果中,②根據(jù)步驟①?gòu)乃饕袡z索出索引項(xiàng)。
2.如權(quán)利要求1所述的在數(shù)據(jù)庫(kù)密文索引中隱藏偏序關(guān)系的方法,其特征在于在由待檢索的明文范圍得出至少一個(gè)范圍的集合運(yùn)算的結(jié)果時(shí),會(huì)將該明文范圍等價(jià)轉(zhuǎn)化為至少一個(gè)前綴范圍經(jīng)集合運(yùn)算后的結(jié)果,所謂前綴范圍,是指具有以下特征的范圍該范圍的兩個(gè)邊界值在二進(jìn)制表示下,除去兩個(gè)邊界值從最高有效位算起的最長(zhǎng)公共前綴所在的各比特外,其他比特要么全為0,要么全為1。
3.如權(quán)利要求2所述的在數(shù)據(jù)庫(kù)密文索引中隱藏偏序關(guān)系的方法,其特征在于所述的集合運(yùn)算僅為并運(yùn)算和差運(yùn)算。
全文摘要
本發(fā)明屬于計(jì)算機(jī)數(shù)據(jù)庫(kù)及信息安全相關(guān)領(lǐng)域。在高安全級(jí)的數(shù)據(jù)庫(kù)統(tǒng)中,需要對(duì)加密字段建立密文索引,以實(shí)現(xiàn)對(duì)密文字段的快速查詢。但是,若對(duì)加密字段建立索引,就會(huì)暴露原有密文數(shù)據(jù)之間的偏序關(guān)系。本發(fā)明提供了一種技術(shù),在數(shù)據(jù)庫(kù)的索引文件中只記載數(shù)據(jù)項(xiàng)的明文經(jīng)過某種變換后的偏序關(guān)系,在范圍查詢時(shí)將明文的范圍轉(zhuǎn)換為變換后值的另一些范圍的集合運(yùn)算的結(jié)果,在等值查詢時(shí)根據(jù)變換后的值的大小在索引中定位數(shù)據(jù),使得在對(duì)密文字段建立索引時(shí)能夠隱藏其數(shù)據(jù)間的偏序關(guān)系,而不對(duì)查詢速度產(chǎn)生較大影響。本發(fā)明可用于對(duì)安全性要求較高的政府、軍隊(duì)和大型企業(yè)的數(shù)據(jù)管理和維護(hù),能改善系統(tǒng)的安全性能。
文檔編號(hào)G06F21/00GK1900936SQ200610107919
公開日2007年1月24日 申請(qǐng)日期2006年7月25日 優(yōu)先權(quán)日2005年7月25日
發(fā)明者曾致中 申請(qǐng)人:曾致中