專利名稱:基于動態(tài)后繼樹索引結構的密文全文檢索系統(tǒng)的索引更新方法
技術領域:
本發(fā)明屬于信息檢索和信息安全領域,具體涉及一種基于動態(tài)后繼樹索引結構的密文全文檢索系統(tǒng)的索引更新方法。
背景技術:
隨著計算機和通信等信息技術的迅猛發(fā)展,電子媒體等各種應用激增,傳統(tǒng)行業(yè)信息化也快速展開,工業(yè)和科研數(shù)據(jù)自動化和半自動化的產(chǎn)生,使得各種數(shù)據(jù)大量累積 ’另一方面存儲技術發(fā)展的日新月異也使得數(shù)據(jù)總量的增長勢頭越來越猛。據(jù)統(tǒng)計,二十世紀八十年代以來全世界信息總量以指數(shù)級增長??梢哉f,如今信息產(chǎn)生的速度遠遠大于人類對這些信息進行充分消化的速度。人們對問題進行有效決策所需要的信息量也大為增加,這就使得用戶在海量數(shù)據(jù)面前想找到自己滿意的信息變得越來越困難。在這樣的背景下,如果不借助于有效的檢索機制,信息量過大所產(chǎn)生的效果與無信息可查的效果是一樣的。全文信息檢索技術最早產(chǎn)生于20世紀50年代的美國。1950年Calvin N. Mooers首創(chuàng)了信息檢索這個術語,1958年Luhn提出了統(tǒng)計信息檢索的基本理論和方法,1960年Marson和Kuhns提出了信息檢索的概率模型,1986年Gerard創(chuàng)立了信息檢索向量空間模型,1968年Rocchio和Salton共同提出了查詢擴展的方法,1972年Lockheed公司推出的DIALOG系統(tǒng)是世界首例商用在線信息查詢服務系統(tǒng)。從上個世紀90年代開始,隨著廉價海量數(shù)據(jù)存儲設備的成功研發(fā),特別是國際互聯(lián)網(wǎng)技術的誕生和隨之而來的網(wǎng)絡信息的爆炸式增長,使信息檢索技術進入了一個嶄新的發(fā)展時期。在這一時期,具有代表性的理論成果包括潛在語義索引技術,貝葉斯網(wǎng)絡和神經(jīng)網(wǎng)技術。全文檢索技術已發(fā)展得較為成熟,國外的全文檢索軟件已較早地得到了應用。雖然中西文全文檢索的原理是一致的,但中文本身的特點使得中文全文檢索系統(tǒng)要比西文的復雜。國內(nèi)全文檢索技術的研究開始于1987年左右,目如在國內(nèi)市場占有率超過90%、具有代表性的全文檢索系統(tǒng)如易北寶信公司開發(fā)的TRS,支持概念檢索、多媒體數(shù)據(jù)檢索和原格式文件檢索,支持海量存儲結構化數(shù)據(jù)處理,并提供Wffff的數(shù)據(jù)庫接口。索引模型是信息檢索的核心技術,對信息檢索系統(tǒng)待處理的數(shù)據(jù)進行高效的組織是進行信息檢索的必要前提,索引存儲結構影響系統(tǒng)的檢索速度和存儲空間。當前主要索引模型有簽名文件、倒排文件、位圖、Pat樹、Pat數(shù)組和互關聯(lián)后繼樹等。前三種索引模型實質上都是把文檔看成索引項的集合,索引數(shù)據(jù)必須具有文檔-索引項結構,因而難以實現(xiàn)復雜查詢。Pat樹和Pat數(shù)組將索引數(shù)據(jù)看成一組半無限串的疊加,能實現(xiàn)復雜查詢,但存在空間開銷大等缺點。互關聯(lián)后繼樹|旲型是處理中文等半無限字符串的一種新穎的索引模型,它創(chuàng)建效率高、查詢速度快,與Pat樹一樣具有查詢功能全的特點以及比Pat樹小的膨脹比等系列優(yōu)點,但是也存在存儲結構、動態(tài)索引更新等方面的不足。
目前國內(nèi)外在基于密文的全文檢索領域只有少量研究,通過各著名的大型數(shù)據(jù)庫和搜索弓I擎檢索得到的結果中,在中文的密文全文檢索領域,只查到由中國科學院計算機網(wǎng)絡研究中心的李新在中國的發(fā)明專利申請《密文全文檢索技術》(申請?zhí)枮?00410070113. 5)和華中科技大學在中國的發(fā)明專利申請《分布式密文全文檢索系統(tǒng)》(申請?zhí)枮?00910062129.4)等相關研究成果發(fā)表。前者的發(fā)明是對全文檢索技術的改造,幾乎保留了全文檢索的大部分技術,只對索引文件的索引詞進行加密處理;后者實現(xiàn)了在密文條件下的全文信息檢索,保證了敏感數(shù)據(jù)的安全檢索,具有安全性強,執(zhí)行效率高的特點,其索引文件為倒排文件,但不能進行密文子串查詢及潛在的分詞查詢,而且不能進行密文動態(tài)更新。
發(fā)明內(nèi)容
本發(fā)明的目的,在于提供一種基于動態(tài)后繼樹索引結構的密文全文檢索系統(tǒng)的創(chuàng)建、檢索和索引更新方法。具體技術方案包括如下內(nèi)容一、密文全文檢索系統(tǒng)中的密文全文索引創(chuàng)建方法,包括以下步驟(I)將用戶提交的涉密原始文本文檔原文轉化為純文本,提取原文本文件中的主題、正文及其他附加屬性,并形成文檔概要;(2)對原文本文件中的主題、正文、附加屬性進行分詞處理,并提取特征向量;(3)對步驟(I)中得到的純文本文檔、文檔概要分別加密;(4)把步驟(3)中得到的文檔密文分布存儲到相應的文檔密文庫,把步驟(3)中得到的文檔概要密文分布存儲到相應的文檔概要密文庫;(5)對步驟⑵中得到的分詞、特征向量分別加密;(6)把步驟(5)中得到的特征向量密文存儲到特征向量密文庫;(7)對步驟(5)中得到的密文分詞分發(fā)到各索引服務器;(8)各索引服務器根據(jù)步驟(7)中的密文分詞檢索得到相應的分詞位置密文;(9)對步驟⑶中得到的分詞位置密文進行解密;(10)將步驟(9)中解密后的分詞位置傳回相應索引服務器;(11)索引服務器根據(jù)分詞位置創(chuàng)建索引;(12)對步驟(11)中得到的索引進行加密;(13)將步驟(12)中得到的密文索引存儲到相應的密文索引庫;與上述密文全文索引創(chuàng)建方法相對應的密文全文檢索方法,包括以下步驟(I)對用戶提交的檢索詞/串進行分詞并作查詢擴展;(2)對步驟⑴中得到的擴展分詞集進行加密;(3)把步驟(2)中得到的擴展密文分詞集以廣播方式分發(fā)到各索引服務器;(4)各索引服務器進行檢索;(5)系統(tǒng)收集各索引服務器返回的文檔編號集;(6)系統(tǒng)根據(jù)步驟(5)中得到的文檔編號集讀取相應文檔特征向量密文;(7)系統(tǒng)解密步驟(6)中得到的特征向量密文;
(8)利用步驟(7)中得到的特征向量對文檔編號集進行排序;(9)根據(jù)步驟(8)中得到的有序的文檔編號集讀取相應文檔概要密文;(10)將文檔概要密文解密;(11)將解密后的文檔概要顯示給用戶;(12)系統(tǒng)根據(jù)用戶的選擇獲取相應的文檔密文;(13)將文檔密文解密; (14)將解密后的文檔顯示給用戶。二、基于動態(tài)后繼樹索引結構的密文全文索引創(chuàng)建方法所述動態(tài)后繼樹索引結構為密文動態(tài)后繼樹索引結構;所述密文動態(tài)后繼樹索引是一個森林,所述森林由子樹組成;每一棵子樹的結構包括有樹根的密文,樹葉的密文,以及,由偽文檔編號、樹葉位置、樹葉關聯(lián)位置、樹葉變種組成的樹葉信息集的密文;所述樹根,用于指代位于樹根的分詞;所述樹葉,即樹根的后繼,用于指代位于樹葉的分詞;所述偽文檔編號,是偽文檔編號組的一個元素;所述樹葉位置,用于指代當前樹葉在文檔中的位置;所述樹葉關聯(lián)位置,用于指代指向當前樹葉的后繼的分詞的指針;所述樹葉變種,用于指代代替原樹葉的一串字符串;所述密文動態(tài)后繼樹索引的具體建立方法是對每一棵子樹中的樹根、樹葉分別進行加密,對偽文檔編號、樹葉位置、樹葉關聯(lián)位置、樹葉變種進行整體加密,即可得到所述密文動態(tài)后繼樹索引。本基于動態(tài)后繼樹索引結構的密文全文索引創(chuàng)建方法,可采用前述的密文全文索引創(chuàng)建方法,其特征在于,I)上述步驟(5)中的分詞采用如下加密方法a、根據(jù)分詞分組加密信息表對分詞明文進行分組,得到該分詞的密鑰生成參數(shù)和加密算法編號,并發(fā)送給密鑰管理器;b、密鑰管理器根據(jù)密鑰生成參數(shù)計算分詞分組密鑰,同時根據(jù)加密算法編號到加密算法庫中提取加密算法;C、根據(jù)所得到的分詞分組密鑰和加密算法,對分詞進行加密。2)上述步驟(11)中的密文索引創(chuàng)建采用如下方法a、對每個密文分詞,根據(jù)文檔編號信息表隨機選取一個偽文檔編號替換原密文分詞攜帶的文檔編號;b、用密文分詞的前驅到密文索引庫中查找樹根,用密文分詞本身查找樹葉,獲取對應的樹葉信息集;C、解密步驟b中得到的樹葉信息集,將密文分詞的位置信息插入到相應的樹葉信息集中;d、若插入后的樹葉信息集長度超過限定值,則對樹葉信息集進行劃分,當遇到終結符表示全文已經(jīng)處理完;e、將該索引中未加密的樹葉信息集進行加密;上述步驟d、e中的樹葉信息集劃分及加密方法為
a)若樹葉信息集的長度大于樹葉信息集平均長度,則將其劃分為若干個無交集子集,各子集長度在系統(tǒng)設定的范圍內(nèi);b)為除首個樹葉信息集子集之外的各子集分別隨機生成樹葉變種,使得每個子集都對應一個樹葉變種或一片樹葉;c)根據(jù)密文分詞,在分詞位置加密信息表中獲取密鑰生成參數(shù)和加密算法編號,并傳送給密鑰管理器;d)密鑰管理器根據(jù)密鑰生成參數(shù)計算得到分詞位置密鑰,同時根據(jù)加密算法編號在加密算法庫中提取加密算法;e)根據(jù)d)中得到的分詞位置加密算法,以及分詞位置密鑰對樹葉信息集明文進行加密。從上述步驟可知,所述樹葉信息集加密方法可對所述樹葉信息集進行分組管理,每組信息用具有一定加密強度的不同加密算法和密鑰進行加密;對高頻詞的樹葉信息集長度進行均衡化處理,為高頻詞隨機產(chǎn)生樹葉變種,將其樹葉信息集劃分成多個樹葉信息集子集并加密,樹葉變種使密文分詞數(shù)量動態(tài)變化,防止統(tǒng)計攻擊。三、本基于動態(tài)后繼樹索引結構的密文全文檢索方法,采用了前述的密文全文檢索方法,其特征在于,上述步驟(4)中的檢索,以檢索詞“qsl, qs2,…,qsi,,qsn”為例說明,n為檢索詞/串的分詞個數(shù),其步驟如下I)判斷檢索詞/串的分詞個數(shù)如果n= 1,則轉入2);如果n = 2,則轉入3);否則轉入4);2)判斷樹根表是否存在該分詞;若存在,則檢索命中結果集為該分詞的樹葉表中所有樹葉的樹葉信息集的樹葉位置的集合;檢索結束;3)判斷樹根表是否存在qsl ;判斷qsl的樹葉表是否存在qs2 ;若qsl、qs2都存在,則檢索命中結果集為qs2的樹葉信息集的樹葉位置的集合;檢索結束;4)判斷樹根表是否存在qsl,如果存在,判斷qsl的樹葉表是否存在qs2 ;5)若qsl、qs2都存在,則獲取qs2的樹葉信息集的關聯(lián)位置的集合,記為Urpi ;6)以3彡j彡n進行循環(huán),判斷qsi的樹葉表是否存在qsj ;若存在,則獲取qsj的樹葉信息集的樹葉位置的集合,記為spj ;計算spj與Urpi的交集,即qsj的樹葉位置子集,記為Uspj ;獲取qsj的樹葉信息集的關聯(lián)位置的子集合,記為Urpj ;最多循環(huán)n_2次便得到初步結果Urpj ;7)檢索命中結果集為Urpj中所有樹葉信息集的樹葉位置的集合;檢索結束。四、本基于動態(tài)后繼樹索引結構的密文全文索引更新方法,其特征在于,采用了更新粒度為文檔局部級的密文動態(tài)后繼樹索引更新方法,該方法包括有增加操作、刪除操作和修改操作;I)所述增加操作,其具體步驟如下 a、為新添加的文本以相對位置建立樹葉信息;b、解密原索引中受添加文本影響的樹葉的樹葉信息集;C、將新建立的樹葉信息插入原索引中;在此插入過程中,只對添加文本的前驅的樹葉關聯(lián)位置修改,使其指向添加文本的首字符樹葉位置,同時將前驅樹葉原先的關聯(lián)位置值寫入添加文本的尾字符樹葉關聯(lián)位置;
d、每次插入新的位置信息后,判斷樹葉信息集長度,如果大于設定值,則進行樹葉信息集劃分;e、對步驟d中得到的樹葉信息集進行加密;2)所述刪除操作,其具體步驟如下a、如果刪除位置涉及多個樹葉信息集,則先將其解密并合并成一個樹葉信息集;
b、在需要文本刪除的位置,直接修改刪除部分的前驅的樹葉關聯(lián)位置;C、刪除需要刪除部分的位置信息;d、將刪除后的樹葉信息集進行長度均衡化處理,加密并存盤;3)所述修改操作,以文本刪除及添加的方式來實現(xiàn)。本發(fā)明密文全文檢索系統(tǒng)基于我們提供的密文動態(tài)后繼樹索引結構、分詞分組方法、文檔局部級的密文動態(tài)后繼樹索引更新方法,實現(xiàn)了安全高效的索引創(chuàng)建、索引的動態(tài)更新以及密文狀態(tài)下的全文檢索和子串查詢。與現(xiàn)有的密文全文檢索系統(tǒng)相比,本發(fā)明具有如下優(yōu)勢(I)高安全性分詞分組方法保證了索引詞的安全性。對動態(tài)后繼樹索引結構中分詞加密,屏蔽了分詞的真正語義,周期性地更新分詞密文使得攻擊者對索引文件詞表中的密文分詞分析變得無效。對樹葉信息集加密,屏蔽了分詞位置信息。用偽文檔編號組防止了攻擊者通過獲得密文分詞的位置信息從而拼湊出一篇密文文檔的內(nèi)容。對樹葉信息集進行劃分,并將得到的樹葉信息子集與樹葉變種捆綁加密,既防止了密文長度統(tǒng)計攻擊,又進一步保證了分詞的安全性。檢索時不需解密密文索引詞,只解密檢索過程中需要的樹葉信息集,對不需要的樹葉信息集仍保持密文狀態(tài)。(2)高創(chuàng)建效率和檢索效率經(jīng)過一次掃描,即可對原文分詞并創(chuàng)建索引樹。位于樹根的分詞組成樹根表,位于樹葉的分詞組成樹葉表,樹葉分詞在原文檔中的位置信息組成樹葉信息集。每個樹根表項對應一個樹葉表,每個樹葉表項對應一個樹葉信息集,樹根表和樹葉表的表項在內(nèi)存中用字典順序的HashTree來存儲,檢索時按需解密,提高了查找速率。(3)索引更新的高動態(tài)本發(fā)明提出的更新粒度為文檔局部級的索引動態(tài)更新方法可在需要更新的地方,直接對節(jié)點進行增、刪、改操作,不需要預留空間,也不用附加索弓丨,實現(xiàn)了索引文件的實時動態(tài)更新。(4)實現(xiàn)了密文子串查詢本系統(tǒng)模型利用樹葉位置和樹葉關聯(lián)位置來記錄待匹配串子串的位置關系,在索引詞不脫密狀態(tài)下實現(xiàn)子串查詢,不但保證了密文索引庫的安全,同時也節(jié)省了密文子串查詢的開銷。
圖I是本發(fā)明密文全文檢索系統(tǒng)的一個實施例的體系結構圖。圖2是本發(fā)明密文全文檢索系統(tǒng)的一個實施例的結構組成示意圖。圖3是本發(fā)明密文全文檢索系統(tǒng)文檔密文庫和文檔概要密文庫的創(chuàng)建示意圖。圖4是本發(fā)明基于動態(tài)后繼樹索引結構的密文全文檢索系統(tǒng)所采用的密文動態(tài)后繼樹索引的一個實施例的結構示意圖。圖5是本發(fā)明基于動態(tài)后繼樹索引結構的密文全文檢索系統(tǒng)的一個實施例的索引創(chuàng)建過程示意圖。圖6是本發(fā)明密文全文檢索系統(tǒng)密文檢索過程的示意圖。
具體實施例方式以下結合附圖及實施例對本發(fā)明密文全文檢索系統(tǒng)和基于動態(tài)后繼樹索引結構的密文全文檢索系統(tǒng)及其工作原理作進一 步地說明。如圖I所示,本發(fā)明系統(tǒng)包括原始文本處理模塊100、分詞模塊200、加密模塊300、文檔密文存儲模塊400、密文索引模塊500、密文檢索模塊600、檢索結果處理模塊700和系統(tǒng)管理模塊800。系統(tǒng)工作原理步驟如下(I)用戶通過系統(tǒng)管理模塊800實現(xiàn)安全登錄后,系統(tǒng)判斷用戶選擇是執(zhí)行創(chuàng)建索引文件還是執(zhí)行檢索功能,如果是檢索則進入第15步;(2)系統(tǒng)把用戶提交的涉密原始文本文檔原文轉化為純文本,提取原文本文件中的主題、正文及其他附加屬性,并形成文檔概要;(3)系統(tǒng)對主題、正文、附加屬性進行分詞處理,并提取特征向量;(4)系統(tǒng)對步驟(2)中得到的純文本文檔、文檔概要分別加密;(5)系統(tǒng)把步驟(4)中得到的文檔密文分布存儲到相應的文檔密文庫,把步驟(4)中得到的文檔概要密文分布存儲到相應的文檔概要密文庫;(6)系統(tǒng)對步驟(3)中得到的分詞、特征向量分別加密;(7)系統(tǒng)把步驟(6)中得到的特征向量密文存儲到特征向量密文庫。(8)對步驟(6)中得到的密文分詞分發(fā)到各索引服務器;(9)各索引服務器根據(jù)步驟(8)中的密文分詞檢索得到相應的分詞位置密文;(10)對步驟(9)中得到的分詞位置密文進行解密;(11)將步驟(10)中解密后的分詞位置傳回相應索引服務器;(12)索引服務器根據(jù)分詞位置創(chuàng)建索引;(13)對步驟(12)中得到的索引進行加密;(14)將步驟(13)中得到的密文索引存儲到相應的密文索引庫;(15)用戶提交檢索詞/串;(16)系統(tǒng)對對用戶提交的檢索詞/串進行分詞并進行查詢擴展;(17)系統(tǒng)對步驟(16)中得到的擴展分詞集進行加密;(18)系統(tǒng)對步驟(17)中得到的擴展密文分詞集以廣播方式分發(fā)到各索引服務器;(19)各索引服務器進行檢索;(20)系統(tǒng)收集各索引服務器返回的文檔編號集;(21)系統(tǒng)根據(jù)步驟(20)中得到的文檔編號集讀取相應文檔特征向量密文;(22)解密步驟(21)中得到的特征向量密文;(23)系統(tǒng)利用步驟(22)中得到的特征向量對文檔編號集進行排序;(24)系統(tǒng)根據(jù)步驟(23)中得到的有序的文檔編號集讀取相應文檔概要密文;(25)將文檔概要密文解密;
(26)將解密后的文檔概要顯示給用戶;(27)根據(jù)用戶的選擇獲取相應的文檔密文;(28)對文檔密文進行解密;(29)將解密后的文檔顯示給用戶。( 二)下面結合圖2分別對各模塊在上述步驟中的作用作進一步詳細地說明
I、原始文本處理模塊100 文本的預處理主要包括有兩個方面物理上,是對文檔實物電子化處理;邏輯上,是對電子文檔歸一化和分類處理。如圖2所示,該原始文本處理模塊100包括有轉化單元110、提取單元120和概要單元130,其中,轉化單元110實現(xiàn)電子化紙質文檔,就是使紙質文檔經(jīng)過掃描等方式后,得到可以處理的電子化原始文檔,以及,將需要處理的電子文檔統(tǒng)一轉化為純文本文檔;提取單元120負責對上述純文本文檔中的文檔信息進行提取,提取的信息包括但不限于主題(標題、摘要、關鍵字)、正文、附加屬性(作者、作者單位、來源、時間);概要單元130將主題、摘要、作者、時間、來源等組織成文檔概要。2、分詞模塊200:分詞模塊200用于對所述原始文本處理模塊所提供的文檔主題、正文及附加屬性等進行分詞并提取特征向量,以及,用于對所述密文檢索模塊提供的檢索詞/串進行分詞和查詢擴展。其中,分詞單元210對傳送過來的主題、正文、附加屬性、檢索詞/串等進行分詞;特征向量單元220從分詞結果中提取文檔特征詞,形成特征向量;查詢擴展單元230對檢索詞/串分詞進行查詢擴展。3、加密模塊300:加密模塊300,包括提供加密和解密功能,具體包括有文檔加密單元310、分詞加密單元320、分詞位置加密單元330 (I)文檔加密單元310,負責對原始文本預處理模塊100傳送來的純文本文檔、文檔概要,分詞模塊200傳送來的特征向量進行加密處理;該文檔加密單元310中,包括有文檔加密信息表、加密運算器;所述文檔加密信息表用于獲取對純文本文檔、文檔概要、特征向量加密所需的密鑰和加密算法;(2)分詞加密單元320,負責對分詞模塊200傳送來的分詞明文進行加密處理。分詞加密單元320中包括有分詞分組子模塊、分詞分組加密信息表、加密運算器。所述分詞分組加密信息表用于獲取對分詞加密所需的密鑰和加密算法;其加密過程中還需要使用到密鑰管理器、加密算法庫。在對分詞進行加密時,利用分詞分組加密信息表中的參數(shù)計算分詞加密密鑰,為相同的分詞提供相同的加密算法和密鑰,保證相同的分詞加密的密文結果相同。所述分詞分組子模塊負責對分詞明文進行分組,其分詞分組方法包括分詞分組創(chuàng)建和分詞分組更新兩種操作,其中分詞分組創(chuàng)建是對來自分詞模塊200的分詞明文進行隨機分組,分詞分組更新是使每個分詞在不同的周期內(nèi)屬于不同的分詞分組,增強分詞分組的隨機性。I)分詞分組創(chuàng)建分詞分組創(chuàng)建時,分詞加密單元320首先接收來自分詞模塊200的分詞明文,根據(jù)分詞分組加密信息表對分詞明文進行分組,并將處理得到的分詞分組信息發(fā)送給密鑰管理器;所述密鑰管理器根據(jù)分詞分組信息到加密算法庫中提取加密算法,并計算分詞分組密鑰,然后對分詞進行加密處理,并將得到的密文分詞發(fā)送給密文索引模塊500。2)分詞分組更新由系統(tǒng)觸發(fā)當前分詞分組與它相鄰的下一個分詞分組之間的更新。因為密鑰管理器是利用分詞分組信息生成分詞分組密鑰,所以系統(tǒng)會同時觸發(fā)索引詞密文的更新。為了防止索引詞密文比較頻繁的更新,將分詞組間更新的周期設置為分詞分組更新的周期的整數(shù)倍。
分詞分組更新時,分詞分組子模塊隨機交換相鄰的兩個需要更新的分詞分組中的分詞,得到并保存新分詞分組信息;根據(jù)分詞分組加密信息表查找加密算法庫,得到兩個相鄰分詞分組當前的分詞分組加密算法和下一周期的新分詞分組加密算法;根據(jù)新舊分詞分組和分詞分組當前周期分別計算兩個相鄰分詞分組的當前分詞分組密鑰和下一周期的新分詞分組密鑰;根據(jù)新舊密鑰對和加密算法對,加密分詞分組中的各個分詞,得到新舊分詞密文對集;根據(jù)新舊分詞密文對,更新舊分詞密文;更新結束。(3)分詞位置加密單元330 :包括有分詞位置加密信息表、加密運算器;所述分詞位置加密信息表用于獲取對分詞位置信息加密所需的密鑰和加密算法;所述文檔加密單元310、分詞加密單元320、分詞位置加密單元330在加密過程中還需要使用到密鑰管理器、加密算法庫;4、文檔密文存儲模塊400文檔密文存儲模塊400用于分布存儲、提供文檔概要密文和文檔密文,包括有文檔密文分布代理模塊410和分布式文檔密文管理模塊420。文檔密文分布代理模塊410根據(jù)文檔標準碼將文檔密文和文檔概要密文分發(fā)到相應的文檔密文服務器。分布式文檔密文管理模塊420用來管理文檔密文和文檔概要密文,可由若干個文檔密文服務器、文檔概要密文庫和文檔密文庫組成。文檔密文服務器負責對所屬的文檔概要庫和文檔密文庫進行存取。下面結合圖3介紹文檔密文庫和文檔概要密文庫的創(chuàng)建過程(I)原始文本處理模塊100對文檔進行預處理,生成文檔編號、文檔標準碼、純文本文檔、文檔概要;(2)對純文本文檔和文檔概要加密;加密過程如下加密模塊300收到一篇純文本文檔和文檔概要,向加密模塊300的加密算法庫獲取一個隨機的文檔加密算法,由加密模塊300的密鑰管理器生成文檔加密密鑰,同時密鑰管理器向文檔加密信息表新增一條記錄;使用該算法和文檔加密密鑰對純文本文檔和文檔概要加密,得到文檔密文和文檔概要密文,由加密模塊300將文檔密文和文檔概要密文傳給文檔密文存儲模塊400 ;(3)文檔密文存儲模塊400中的文檔密文分布代理模塊410根據(jù)文檔標準碼對文檔密文和文檔概要密文分發(fā)到相應的文檔密文服務器;文檔密文服務器把文檔密文和文檔概要密文存放到相應的文檔密文庫和文檔概要密文庫。5、密文索引模塊500:密文索引模塊500包括有密文分詞分布代理模塊510、分布式密文索引管理模塊520。其中,密文分詞分布代理模塊510負責將密文分詞分布到索引服務器上;分布式密文索引分布管理模塊520包括有至少一個索引服務器和若干個密文索引庫,由索引服務器管理各個密文索引庫;各索引服務器接收來自所述加密模塊提供的密文分詞和分詞位置信息創(chuàng)建索引,存儲密文索引到相應的密文索引庫;索引服務器包括有文檔編號信息表;所述文檔編號信息表用于記錄文檔對應的偽文檔編號組;所述偽文檔編號組是文檔編號的一個一對多映射組成的集合,由系統(tǒng)生成。(I)密文動態(tài)后繼樹索引結構在本發(fā)明密文全文檢索系統(tǒng)中,還應用有本發(fā)明人首次提出的密文動態(tài)后繼樹索引結構,下面結合圖4和實例進一步介紹密文動態(tài)后繼樹索弓I是一個森林,其每一棵子樹的結構包括樹根的密文,樹葉的密文,以及偽文檔編號、樹葉位置、樹葉關聯(lián)位置、樹葉變種組成的樹葉信息集的密文;樹根,用于指代位于樹根的分詞;樹葉,即樹根的后繼,用于指代位于樹葉的分詞;偽文檔編號,是偽文檔編號組的一個元素;樹葉位置,用于指代當前樹葉在文檔中的位置;樹葉關聯(lián)位置,用于指代指向當前樹葉的后繼的分詞的指針;樹葉變種,用于指代代替原樹葉的一串字符串;子樹的索引結構可以表示為樹根〈樹葉([偽文檔編號,{(樹葉位置,樹葉關聯(lián)位置)}],樹葉變種)>,其中同一樹根下的樹葉密文之間互不相同;[偽文檔編號,{(樹葉位置,樹葉關聯(lián)位置)}]為一個樹葉信息,由偽文檔編號、位置列表組成,偽文檔編號用來干擾文檔的真正編號,以防止攻擊者獲得位置信息后拼湊出該篇文檔的密文;一片樹葉對應一個樹葉信息集和一個樹葉變種,樹葉變種允許為空,但樹葉信息集不能為空。(2)密文動態(tài)后繼樹索引創(chuàng)建密文動態(tài)后繼樹索引創(chuàng)建時,如圖5所示,分詞模塊200接收來自原始文本處理模塊100的主題、正文及附加信息,由分詞單元210對這些信息進行分詞處理;分詞單元210將得到的分詞傳送給加密模塊300,由其分詞加密單元320對分詞進行加密;分詞加密單元320將密文分詞傳送給密文索引模塊500,由密文分詞分布代理模塊510提取密文分詞對應的文檔標準碼,根據(jù)文檔標準碼將密文分詞分布到分布式密文索引管理模塊520中對應的索引服務器;索引服務器為新增的各文檔編號分配偽文檔編號組,并記錄到文檔編號信息表;查找當前可用的索引庫,并將此庫中受新增文檔影響的樹葉及樹葉信息集發(fā)送到加密模塊300 ;分詞位置加密單元330對接收到的樹葉的樹葉信息集解密后發(fā)送回相應的索引服務器;索引服務器隨機選取偽文檔編號為相應文檔創(chuàng)建索引;索引服務器將相應的樹葉信息集發(fā)送到分詞位置加密單元330 ;分詞位置加密單元330對接收到的樹葉信息集進行加密,加密后傳回索引服務器;索引服務器將收到的密文索引存儲到相應的密文索引庫;密文動態(tài)后繼樹索引結構中所有的樹根節(jié)點組成一個樹根表,相同樹根下的所有樹葉節(jié)點組成一個樹葉表;每個樹根表項對應一個樹葉表,每個樹葉表項對應一個樹葉信息集和一個樹葉變種。其創(chuàng)建算法如算法I所示。算法I :密文動態(tài)后繼樹索引創(chuàng)建算法輸入密文分詞輸出密文索引文件 for (每個密文分詞){
把密文分詞插入索引;
if (樹葉信息集長度大于平均長度)進行樹葉信息集劃分;}加密樹葉信息集并存盤;算法結束。(3)樹葉信息集加密為保證索引的安全,對樹葉信息集進行加密,屏蔽樹葉分詞在原文檔中的位置信息。由于高頻詞的樹葉信息集長度可能過長,容易讓攻擊者通過統(tǒng)計密文長度而獲得高頻詞相關信息,因此我們采用了樹葉信息集劃分的方法。該方法均衡了樹葉信息集長度,可防止密文長度統(tǒng)計攻擊。下面描述幾個定義樹葉信息集長度一個樹葉信息集所包含的字節(jié)數(shù);樹葉信息集平均長度密文動態(tài)后繼樹索引中,全部樹葉信息集所包含的字節(jié)數(shù)的平均值;樹葉信息集劃分在密文動態(tài)后繼樹索引中,任意一個樹葉信息集的長度若大于樹葉信息集平均長度,則將其劃分為多個無交集子集,各子集長度在系統(tǒng)設定的范圍內(nèi),并為除首個樹葉信息集子集之外的各子集分別隨機生成樹葉變種,使每個子集都對應一個樹葉變種或一片樹葉。下面進一步描述樹葉信息集的加密過程I)對一個樹葉信息集明文,分詞位置加密單元330向加密模塊300中的密鑰管理器請求對應的分詞位置密鑰和分詞位置加密算法編號;2)根據(jù)密文分詞,在分詞位置加密信息表中獲取密鑰生成參數(shù)和分詞位置加密算法編號,并傳送給密鑰管理器;3)分詞位置加密單元330根據(jù)分詞位置加密算法編號從加密算法庫中獲取對應的分詞位置加密算法,并用分詞位置密鑰對樹葉信息集明文進行加密。(4)索引密文更新包括分詞密文的更新和樹葉信息集密文的更新分詞密文的更新由系統(tǒng)觸發(fā),按分詞分組逐步更新,以密文索引庫返回成功更新響應后重置更新計時器為結束。其詳細過程見分詞分組方法中分詞分組的更新。樹葉信息集密文更新由系統(tǒng)觸發(fā),按分詞分組逐步更新,以密文索引庫返回成功更新響應后重置更新計時器為結束。密鑰管理器首先接收來自分詞位置加密信息表中需要更新的樹葉信息集對應的加密信息;根據(jù)加密信息計算分詞分組密鑰,新舊分詞位置密鑰;查找加密算法庫,得到分詞分組加密算法和新舊分詞位置加密算法;加密運算器對分詞進行加密得到密文分詞;根據(jù)密文分詞在密文索引庫中查找相應的樹葉信息集密文;分詞位置加密單元330根據(jù)舊分詞位置密鑰和算法對樹葉信息集密文解密,得到樹葉信息集明文;用新分詞位置密鑰和算法對樹葉信息集明文進行加密,得到新的樹葉信息集密文;用新樹葉信息集密文替換密文索引庫中的舊樹葉信息集密文。(5)更新粒度為文檔局部級的密文動態(tài)后繼樹索引更新方法密文動態(tài)后繼樹的索引更新是在密文狀態(tài)下用更新粒度為文檔局部級的索引動態(tài)更新算法,實現(xiàn)密文動態(tài)后繼樹索引的高動態(tài)性,提高密文索引更新的效率。密文動態(tài)后繼樹上更新粒度為文檔局部級的索引動態(tài)更新主要包括增加、刪除和修改操作。增加操作是對添加文本的前驅的樹葉關聯(lián)位置進行修改,使其指向添加文本的首字符樹葉位置,同時將前驅樹葉原先的關聯(lián)位置值寫入添加文本的尾字符樹葉關聯(lián)位置。每次插入新的位置信息后,將該密文分詞的樹葉信息集長度與平均長度進行比較,若小于平均長度,則無需進一步處理對應的樹葉信息集,增加操作完成;若大于平均長度,則需要對該分詞的樹葉信息集進行樹葉信息集劃分,同時根據(jù)劃分的子集數(shù)量n,隨機產(chǎn)生n-1個樹葉變種,將樹葉變種插入到對應樹根的樹葉表中。在進行刪除操作時,如果需要對包含兩個以上的樹葉信息集進行操作,則先將其解密并合并成一個樹葉信息集。在單個樹葉信息集上 ,修改刪除部分的前驅的樹葉關聯(lián)位置,并刪除需要刪除的位置信息,再將刪除后的樹葉信息集進行長度均衡化處理,加密并存盤。修改操作以文本刪除及添加的方式來實現(xiàn),可以看成刪除和增加的復合操作。更新過程如算法2所示。算法2 :密文狀態(tài)下更新粒度為文檔局部級的索引動態(tài)更新算法輸入文檔變更部分輸出變更后的索引文件對索引中每個分詞的樹葉信息集進行解密;把文檔變更部分在舊文檔中的上下文位置信息保存到臨時狀態(tài)表;if (增加)對變更部分用相對位置創(chuàng)建樹葉信息再并入原索引中;elseif (刪除)在原索引中直接刪除變更部分;else在原索引中直接對變更部分修改;對索引中每個分詞的樹葉信息集進行加密;算法結束。6、密文檢索模塊600密文檢索模塊600是為系統(tǒng)的合法用戶提供相應級別的信息檢索功能,包括檢索語句提交單元610和檢索服務器620。檢索服務器620用于將擴展密文分詞集以廣播方式分發(fā)到各索引服務器,接收并處理各索引服務器返回的結果,然后將得到的無序文檔編號集發(fā)送給檢索結果處理模塊700。密文檢索過程如圖6所示。在檢索過程中,合法用戶輸入檢索詞/串,并由檢索語句提交單元610提交給分詞模塊200,由分詞模塊200中的分詞單元210和查詢擴展單元230對檢索詞/串進行分詞及擴展得到擴展分詞集,再由加密模塊300中的分詞加密單元320對擴展分詞集進行加密得到密文分詞,將密文分詞通過檢索服務器620以廣播方式分發(fā)到分布式密文索引管理模塊520中各索引服務器,由各索引服務器進行檢索,最后由檢索服務器620收集各索引服務器返回的文檔編號集,去重并提交給檢索結果處理模塊700。動態(tài)后繼樹索引結構的檢索,根據(jù)分詞的個數(shù)劃分為單分詞檢索、雙分詞檢索、多分詞檢索,以檢索詞“qsl,qs2,-,qsi,…,qsn”為例說明,n為檢索詞/串的分詞個數(shù),其步驟如下I)判斷檢索詞/串的分詞個數(shù)如果n= 1,則轉入2);如果n = 2,則轉入3);否則轉入4);2)判斷樹根表是否存在該分詞;若存在,則檢索命中結果集為該分詞的樹葉表中所有樹葉的樹葉信息集的樹葉位置的集合;檢索結束;3)判斷樹根表是否存在qsl ;判斷qsl的樹葉表是否存在qs2 ;若qsl、qs2都存在,則檢索命中結果集為qs2的樹葉信息集的樹葉位置的集合;檢索結束;4)判斷樹根表是否存在qsl,如果存在,判斷qsl的樹葉表是否存在qs2 ;5)若qsl、qs2都存在,則獲取qs2的樹葉信息集的關聯(lián)位置的集合,記為Urpi ; 6)以3彡j彡n進行循環(huán),判斷qsi的樹葉表是否存在qsj ;若存在,貝U獲取qsj的樹葉信息集的樹葉位置的集合,記為sp j ;計算sp j與Urpi的交集,即qsj的樹葉位置子集,記為Uspj ;獲取qsj的樹葉信息集的關聯(lián)位置的子集合,記為Urpj ;最多循環(huán)n_2次便得到初步結果Urpj ;7)檢索命中結果集為Urpj中所有樹葉信息集的樹葉位置的集合;檢索結束。以上的結構表明,本檢索可以實現(xiàn)密文子串查詢和檢索過程按需解密(I)密文子串查詢是密文全文檢索系統(tǒng)查全率的重要保障。本系統(tǒng)模型利用樹葉位置和樹葉關聯(lián)位置來記錄待匹配子串的位置關系,在索引詞密文不脫密的狀態(tài)下實現(xiàn)子串查詢,不但保證了索引庫的安全,同時也節(jié)省了對密文子串查詢時的開銷,具有查詢效率聞,無漏檢的特點。(2)基于動態(tài)后繼樹索引結構的檢索,由于該索引結構結合了詞表法和單漢字法,可以實現(xiàn)按需解密,即只需對檢索到的樹葉信息集密文進行解密,提高了系統(tǒng)安全性和檢索效率。7、檢索結果處理模塊700檢索結果處理模塊700負責檢索結果集的排序和顯示,包括檢索結果排序單元720和結果顯示單元730。檢索結果排序單元720用于對無序的文檔編號集進行排序。結果顯示單元730包括文檔概要顯示和文檔顯示,文檔概要顯示內(nèi)容包括主題、摘要、作者、時間、來源等。圖2所示的檢索結果處理模塊700中,從方便分析系統(tǒng)工作流程及保持圖面整潔的角度考慮,還包括有特征向量密文庫710,但根據(jù)本領域技術人員的常識,所述特征向量密文庫710作為一個數(shù)據(jù)庫,并不限定放置于所述檢索結果處理模塊700中。檢索結果處理模塊700接收到檢索結果集中的文檔編號集,由檢索結果排序單元720提取文檔特征向量密文并發(fā)送到加密模塊300解密,然后對結果集進行排序。根據(jù)有序的結果集提取相應的文檔概要密文并解密返回給用戶,再按照用戶選擇的文檔進行文檔密文提取,經(jīng)過加密模塊300解密后將整篇文檔返回給用戶。檢索結果排序及顯示過程(I)檢索結果處理模塊700接收到無序的結果集,到特征向量密文庫710讀取相應文檔的特征向量密文,將特征向量密文和文檔編號發(fā)送給加密模塊300 ;(2)加密模塊300中的密鑰管理器讀取文檔加密信息表,動態(tài)生成文檔加密密鑰,并將加密密鑰和文檔加密算法傳遞給文檔加密單元310。文檔加密單元310對特征向量密文進行解密,得到特征向量明文;(3)在檢索結果排序單元720計算查詢串與特征向量明文的相關度,對文檔編號集按相關度降序排列得到有序的文檔編號集,并將有序文檔編號集發(fā)送給文檔密文分布代理模塊410 ;(4)文檔密文分布代理模塊410根據(jù)文檔標準碼將文檔編號發(fā)送到相應的文檔密文服務器;(5)文檔密文服務器從文檔概要密文庫獲取各文檔的文檔概要密文,并發(fā)送到加密模塊300進行解密,其解密方法如步驟(2)所述;(6)解密后的文檔概要由結果顯示單元730展示給用戶;(7)當用戶選擇某一篇文檔后,系統(tǒng)從文檔密文庫中獲取到該文檔密文,解密并顯示給用戶。8、系統(tǒng)管理模塊800系統(tǒng)管理模塊800用來管理用戶權限,對部門、角色、用戶的基本信息以及它們之間的映射關系進行維護更新等;該模塊包括用戶信息表、角色權限表、部門信息表、用戶部門關系表以及用戶角色關系表;其中,角色權限表用來記錄角色基本信息和角色權限,可由16位權限位串組成。權利要求
1.基于動態(tài)后繼樹索引結構的密文全文檢索系統(tǒng)的索引更新方法,其特征在于 (1)所述動態(tài)后繼樹索引結構為S文動態(tài)后繼樹索引結構;所述S文動態(tài)后繼樹索引是ー個森林,所述森林由子樹組成;每一棵子樹的結構包括有樹根的密文,樹葉的密文,以及,由偽文檔編號、樹葉位置、樹葉關聯(lián)位置、樹葉變種組成的樹葉信息集的密文; 所述樹根,用于指代位于樹根的分詞; 所述樹葉,是樹根的后繼,用于指代位于樹葉的分詞; 所述偽文檔編號,是偽文檔編號組的ー個元素; 所述樹葉位置,用于指代當前樹葉在文檔中的位置; 所述樹葉關聯(lián)位置,用于指代指向當前樹葉的后繼的分詞的指針; 所述樹葉變種,用于指代代替原樹葉的一串字符串; 所述密文動態(tài)后繼樹索引的具體建立方法是對每ー棵子樹中的樹根、樹葉分別進行加密,對偽文檔編號、樹葉位置、樹葉關聯(lián)位置、樹葉變種進行整體加密,即可得到所述密文動態(tài)后繼樹索引; (2)該索引更新方法采用了更新粒度為文檔局部級的密文動態(tài)后繼樹索引更新方法,該方法包括有增加操作、刪除操作和修改操作; 1)所述增加操作,其具體步驟如下 a、為新添加的文本以相對位置建立樹葉信息; b、解密原索引中受添加文本影響的樹葉的樹葉信息集; c、將新建立的樹葉信息插入原索引中;在此插入過程中,只對添加文本的前驅的樹葉關聯(lián)位置修改,使其指向添加文本的首字符樹葉位置,同時將前驅樹葉原先的關聯(lián)位置值寫入添加文本的尾字符樹葉關聯(lián)位置; d、每次插入新的位置信息后,判斷樹葉信息集長度,如果大于設定值,則進行樹葉信息集劃分; e、對步驟d中得到的樹葉信息集進行加密; 2)所述刪除操作,其具體步驟如下 a、如果刪除位置涉及多個樹葉信息集,則先將其解密并合并成ー個樹葉信息集; b、在需要文本刪除的位置,直接修改刪除部分的前驅的樹葉關聯(lián)位置; C、刪除需要刪除部分的位置信息; d、將刪除后的樹葉信息集進行長度均衡化處理,加密并存盤; 3)所述修改操作,以文本刪除及添加的方式來實現(xiàn)。
全文摘要
本發(fā)明分案申請涉及基于動態(tài)后繼樹索引結構的密文全文檢索系統(tǒng)的索引更新方法,該方法包括有增加操作、刪除操作和修改操作,更新粒度為文檔局部級。所述增加操作包括為新添加的文本以相對位置建立樹葉信息;解密原索引中受添加文本影響的樹葉的樹葉信息集;將新建立的樹葉信息插入原索引中;插入過程中只對添加文本的前驅的樹葉關聯(lián)位置修改,使其指向添加文本的首字符樹葉位置,同時將前驅樹葉原先的關聯(lián)位置值寫入添加文本的尾字符樹葉關聯(lián)位置;每次插入新的位置信息后,判斷樹葉信息集長度,如大于設定值則進行樹葉信息集劃分;對得到的樹葉信息集進行加密。采用本方法,可使系統(tǒng)安全高效地實現(xiàn)密文狀態(tài)下的索引創(chuàng)建及動態(tài)更新。
文檔編號G06F17/30GK102629274SQ20121007587
公開日2012年8月8日 申請日期2010年5月31日 優(yōu)先權日2010年5月31日
發(fā)明者胡和平, 覃海生, 霍林, 黃保華 申請人:廣西大學