專利名稱:基于逐字索引的密文檢索方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)中的數(shù)據(jù)庫應(yīng)用技術(shù)領(lǐng)域,具體地說,是對(duì)加密后的字符類型 數(shù)據(jù)進(jìn)行高效檢索的一種方法。
背景技術(shù):
外包數(shù)據(jù)庫是一種新興的數(shù)據(jù)管理模式。在這種模式下,企業(yè)或用戶把數(shù)據(jù)存放 在數(shù)據(jù)庫服務(wù)提供商(Database Service Provider,簡稱DSP)端,通過互聯(lián)網(wǎng)使用數(shù)據(jù),從 而降低數(shù)據(jù)管理及維護(hù)的開銷。但是,由于數(shù)據(jù)庫存放在DSP端,對(duì)于其中敏感和重要的文 檔數(shù)據(jù),出于安全考慮,通常需要進(jìn)行加密處理。加密后的密文文檔數(shù)據(jù)由于失去了明文的 原有特征,必須采用專門的密文檢索技術(shù)對(duì)其進(jìn)行檢索?,F(xiàn)有的密文檢索技術(shù)可分為兩類, 一類是無索引密文檢索技術(shù),另一類是基于索引的密文檢索技術(shù)。無索引密文檢索技術(shù)的實(shí)現(xiàn)方法是對(duì)查詢語句按其檢索條件進(jìn)行重構(gòu),將其分 為對(duì)明文屬性的檢索和對(duì)密文屬性的檢索兩部分,先執(zhí)行對(duì)明文屬性的檢索,篩選出符合 條件的中間結(jié)果集,然后對(duì)中間結(jié)果集中的記錄進(jìn)行解密,再在解密后的中間結(jié)果集上執(zhí) 行對(duì)密文屬性的檢索,得到最終的結(jié)果集。這種方法的缺陷是,對(duì)密文屬性的檢索必須在中 間結(jié)果集解密后才能進(jìn)行,導(dǎo)致中間結(jié)果集規(guī)模較大,對(duì)中間結(jié)果集的解密操作的開銷也 相應(yīng)增大,因此查詢語句的檢索效率偏低?;谒饕拿芪臋z索技術(shù)的實(shí)現(xiàn)方法是預(yù)先對(duì)密文屬性按一定方式建立索引, 使系統(tǒng)能夠利用該索引在不解密的前提下先對(duì)密文屬性進(jìn)行一次粗略的預(yù)檢索,縮小中間 結(jié)果集的規(guī)模,然后再在解密后的中間結(jié)果集上執(zhí)行精確檢索,得到最終的結(jié)果集。這種方 法下,中間結(jié)果集的規(guī)模被預(yù)先縮小了,解密操作的開銷也相應(yīng)減小,因此檢索效率更高。 但是,現(xiàn)有的基于索引的密文檢索技術(shù)大多只能處理數(shù)值類型的數(shù)據(jù),而對(duì)于字符類型的 文檔數(shù)據(jù),尚缺少高效的密文檢索方法。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出一種基于逐字索引的密文檢索方法,針對(duì)字符類型數(shù)據(jù)的 特點(diǎn),具有較高的檢索性能?;谥鹱炙饕拿芪臋z索方法,涉及基表,基表包含有字符類型的加密屬性,以及 加密屬性的逐字索引信息;加密屬性的逐字索引信息獲取方式為對(duì)加密屬性的明文按字 符逐個(gè)加密,得到每個(gè)字符的密文字符串,從每個(gè)密文字符串中選取k個(gè)字符依次連接組 成逐字索引字符串,k小于等于采用的加密算法對(duì)密文字符串限定的最小長度;檢索方法具體為(1)檢索條件變換在涉及加密屬性的原始檢索條件中,匹配字符串Sl包括普通 字符和通配符,采用與上述逐字索引信息獲取中相同的加密和字符選取方式對(duì)Sl中的普 通字符進(jìn)行加密和選取字符,用選取的字符替換Si中的對(duì)應(yīng)普通字符,同時(shí)檢索條件中涉 及到的加密屬性轉(zhuǎn)換為該加密屬性的逐字索引信息,形成中間檢索條件;
(2)初步檢索利用中間檢索條件在基表中進(jìn)行初步檢索,得到中間檢索結(jié)果;(3)精確檢索對(duì)中間檢索結(jié)果的各條記錄中的加密屬性進(jìn)行解密,最后利用原 始檢索條件在解密結(jié)果中進(jìn)行精確檢索。本發(fā)明為字符類型的密文屬性建立了一種逐字索引,可以在不解密的情況下對(duì)密 文屬性的內(nèi)容進(jìn)行預(yù)檢索,得到準(zhǔn)確率較高的中間結(jié)果集。這種方法降低了對(duì)中間結(jié)果集 的解密開銷,具有較高的檢索性能。
具體實(shí)施例方式本發(fā)明中的逐字索引是一種為字符類型的密文屬性創(chuàng)建的,用于在不解密的情況 下快速檢索該屬性內(nèi)容的索引信息。下面結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步的描述,但該實(shí)施 例不應(yīng)理解為對(duì)本發(fā)明的限制。本發(fā)明按以下步驟實(shí)施在數(shù)據(jù)庫中創(chuàng)建包含屬性Al,A2,A3的基本表Tablel,定義Al,A2的數(shù)據(jù)類型為 字符類型(如char、varchar、text、clob等),A3的數(shù)據(jù)類型為整數(shù)類型,并插入若干條記 錄。此時(shí)Tablel中的數(shù)據(jù)信息如表1所示。表 權(quán)利要求
基于逐字索引的密文檢索方法,涉及基表,基表包含有字符類型的加密屬性以及加密屬性的逐字索引信息;加密屬性的逐字索引信息獲取方式為對(duì)加密屬性的明文按字符逐個(gè)加密,得到每個(gè)字符的密文字符串,從每個(gè)密文字符串中選取k個(gè)字符依次連接組成逐字索引字符串,k小于等于采用的加密算法對(duì)密文字符串限定的最小長度;檢索方法具體為(1)檢索條件變換在涉及加密屬性的原始檢索條件中,匹配字符串S1包括普通字符和通配符,采用與上述逐字索引信息獲取中相同的加密和字符選取方式對(duì)S1中的普通字符進(jìn)行加密和選取字符,用選取的字符替換S1中的對(duì)應(yīng)普通字符,同時(shí)檢索條件中涉及的加密屬性轉(zhuǎn)換為該加密屬性的逐字索引信息,形成中間檢索條件;(2)初步檢索利用中間檢索條件在基表中進(jìn)行初步檢索,得到中間檢索結(jié)果;(3)精確檢索對(duì)中間檢索結(jié)果的各條記錄中的加密屬性進(jìn)行解密,最后利用原始檢索條件在解密結(jié)果中進(jìn)行精確檢索。
全文摘要
本發(fā)明公開了一種基于逐字索引的密文檢索方法,在基表中建立字符類型的加密屬性的逐字索引信息,逐字索引信息由對(duì)加密屬性的明文逐字加密后選取的部分字符構(gòu)成,檢索中,首先將涉及加密屬性的原始檢索條件轉(zhuǎn)換為涉及該加密屬性的逐字索引信息的中間檢索條件,利用中間檢索條件在基表中進(jìn)行初步檢索,最后利用原始檢索條件在中間解密結(jié)果中進(jìn)行精確檢索。本發(fā)明可以在不解密的情況下對(duì)密文屬性的內(nèi)容進(jìn)行預(yù)檢索,得到準(zhǔn)確率較高的中間結(jié)果集,這種方法降低了對(duì)中間結(jié)果集的解密開銷,具有較高的檢索性能。
文檔編號(hào)G06F17/30GK101937464SQ201010279079
公開日2011年1月5日 申請(qǐng)日期2010年9月13日 優(yōu)先權(quán)日2010年9月13日
發(fā)明者馮源, 周淳, 張青林, 張黎敏 申請(qǐng)人:武漢達(dá)夢(mèng)數(shù)據(jù)庫有限公司