專利名稱::一種面向密文云存儲(chǔ)的文檔檢索方法與系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及計(jì)算機(jī)軟件相關(guān)領(lǐng)域,具體涉及一種面向密文云存儲(chǔ)的文檔檢索方法與系統(tǒng)。屬于信息安全
技術(shù)領(lǐng)域:
。
背景技術(shù):
:隨著近些年云計(jì)算技術(shù)的迅猛發(fā)展,涌現(xiàn)出以AmazonS3為代表的一批云存儲(chǔ)系統(tǒng)。這些云存儲(chǔ)系統(tǒng)具有彈性可擴(kuò)展的特點(diǎn),并根據(jù)具體使用情況收費(fèi),使用者可以在很短的時(shí)間內(nèi)獲得所需要的巨大存儲(chǔ)空間。通過使用云存儲(chǔ)系統(tǒng),用戶可以隨時(shí)隨地訪問數(shù)據(jù),操作更為便利;企業(yè)也避免了數(shù)據(jù)中心搭建代價(jià)與維護(hù)成本,總體上更為經(jīng)濟(jì)廉價(jià)??梢灶A(yù)期,在未來一段時(shí)期內(nèi),云存儲(chǔ)將得到更為廣泛的應(yīng)用,會(huì)有越來越多的用戶及企業(yè)選擇使用云存儲(chǔ)系統(tǒng)。但目前云存儲(chǔ)用戶面臨的一個(gè)重要問題是如何實(shí)現(xiàn)數(shù)據(jù)機(jī)密性保護(hù)。由于數(shù)據(jù)內(nèi)容交由云存儲(chǔ)服務(wù)提供商維護(hù),后者自然就獲得的訪問用戶所有數(shù)據(jù)的能力。一旦出現(xiàn)系統(tǒng)故障或者內(nèi)部人員問題,導(dǎo)致用戶數(shù)據(jù)傳播,則后果不堪設(shè)想。加密是當(dāng)前公認(rèn)的實(shí)現(xiàn)數(shù)據(jù)機(jī)密性保護(hù)的有效手段,可以有效的防范非授權(quán)傳播。目前已有部分云存儲(chǔ)系統(tǒng)支持密文文檔,如Zetta等。數(shù)據(jù)加密帶來了密文狀態(tài)下難以實(shí)現(xiàn)文檔快速檢索與查找的問題。在普通云存儲(chǔ)系統(tǒng)中,用戶可根據(jù)文件名、關(guān)鍵詞、修改時(shí)間等條件,在海量存儲(chǔ)中查找所需文件。而文檔在密文狀態(tài)下,服務(wù)器無從獲得文檔的名字、關(guān)鍵詞等信息,存儲(chǔ)系統(tǒng)無法為用戶進(jìn)行文檔檢索,用戶需要將所有密態(tài)文檔先下載、解密,再判斷其是否符合檢索條件,無論從檢索時(shí)間還是從網(wǎng)絡(luò)傳輸帶寬兩方面來說,代價(jià)都令用戶無法承受。因此,如何在密文云存儲(chǔ)系統(tǒng)中,實(shí)現(xiàn)元信息的安全存儲(chǔ)以及高效訪問,并最終實(shí)現(xiàn)密文文檔的快速檢索,是當(dāng)前云存儲(chǔ)領(lǐng)域十分迫切的需求。
發(fā)明內(nèi)容針對(duì)上述問題,本發(fā)明提供了一種面向密文云存儲(chǔ)的文檔檢索方法與系統(tǒng),該方法充分利用面向列存儲(chǔ)的數(shù)據(jù)庫(kù)系統(tǒng),基于用戶所提供的自定義密文屬性與關(guān)鍵詞,構(gòu)建數(shù)據(jù)安全索引,實(shí)現(xiàn)海量密文文檔的安全快速檢索。該系統(tǒng)實(shí)現(xiàn)密文文檔元信息的安全存儲(chǔ)以及高效訪問,具有相對(duì)獨(dú)立的結(jié)構(gòu),可以為當(dāng)前各類云存儲(chǔ)系統(tǒng)提供海量密文數(shù)據(jù)的快速檢索支持。該方法包括如下幾個(gè)關(guān)鍵步驟1.密鑰生成本發(fā)明采用雙層密鑰體制。根密鑰為用戶的主密鑰,由用戶自行生成,二級(jí)密鑰為文檔加密密鑰與索引密鑰,均由客戶端自動(dòng)生成。為了最大程度保證文檔安全,每個(gè)文檔具有單獨(dú)的文檔加密密鑰,該密鑰被用戶的主密鑰加密保存在服務(wù)器端。每個(gè)用戶具有一個(gè)索引密鑰,用于加密保護(hù)所有屬性元信息,該索引密鑰被主密鑰加密保存在服務(wù)器端(即云數(shù)據(jù)庫(kù)端)。用戶的主密鑰由用戶自己負(fù)責(zé)其安全存儲(chǔ),客戶端只使用主密鑰,不會(huì)泄露主密鑰,上述若干二級(jí)密鑰可以根據(jù)實(shí)際需求定期更換。2密文文檔元信息生成密文文檔元信息包括兩個(gè)部分,一部分由用戶生成。用戶在上傳密文文檔的同時(shí),為該文檔生成用于檢索的元信息。該部分元信息包括一組用戶自定義的屬性集合,由用戶索引密鑰加密保護(hù)。每個(gè)屬性包括一個(gè)屬性名稱、以及一個(gè)或多個(gè)屬性值。令Ki表示用戶Ui的索引密鑰。該用戶為文檔T設(shè)定一個(gè)屬性,其名稱為Ax,η個(gè)屬性值分別為{Vx1,…,Vx11I;那么用戶為文檔生成的元數(shù)據(jù)為一個(gè)二元組(Eki(Ax),(Eki(Vx1)j…,EKl(Vx11)})前者是利用索引密鑰加密后的屬性名稱,后者是利用索引密鑰加密后的屬性值。當(dāng)用戶為文檔指派多個(gè)屬性時(shí),生成的元數(shù)據(jù)為上述二元組集合。密文文檔的另一個(gè)組成部分是由文檔提取的,在上傳密文文檔的同時(shí),客戶端自動(dòng)對(duì)文檔進(jìn)行解析,解析出文檔的一些元信息,如讀取文檔的名字等信息,以及分析文檔內(nèi)容的關(guān)鍵詞信息。該部分元信息包含文檔的一些屬性的集合,也由用戶索引密鑰加密保護(hù)。每個(gè)屬性也包含一個(gè)屬性名稱以及一個(gè)或多個(gè)屬性值。為密文文檔提取的所有的元信息將作為一條完整的索引記錄保存在云數(shù)據(jù)庫(kù)的索引表中。3密文文檔檢索當(dāng)用戶需要查找具有某個(gè)屬性值的密文文檔時(shí),提交形如“Αχ=V”查詢條件,其中,Ax是屬性名稱,V是屬性值。在發(fā)送到服務(wù)器端前,客戶端將該查詢條件翻譯成多個(gè)子檢索條件并采用索引密鑰進(jìn)行加密,形如“Ek(V)e丨EKl(Vx1),…,EKl(Vxn)}”。服務(wù)器端在收到檢索請(qǐng)求后,在所保存的元信息庫(kù)中檢索,找到所有滿足條件的元組后將其返回給用戶。用戶端可以通過索引密鑰解密得到具體的元信息,并根據(jù)該密文文檔的鏈接請(qǐng)求訪問文檔內(nèi)容。4密文元信息更新為了保證元信息之間的一致性,在密文文檔更新、元信息發(fā)生改變時(shí),需要用戶主動(dòng)將修改后的元信息加密并重新提交,由服務(wù)器更新所對(duì)應(yīng)的元組內(nèi)容。優(yōu)選地,步驟1所述的步驟中,用戶的主密鑰可以由口令加密保護(hù),或者可以保存在U-key等外接設(shè)備中。優(yōu)選地,步驟2所述的步驟中,可以對(duì)文檔的屬性元信息進(jìn)行處理,在用戶上傳密文文檔時(shí),自動(dòng)對(duì)文檔的基本屬性(如文檔名,大小等)進(jìn)行提取,作為文檔元信息,也對(duì)文檔的內(nèi)容進(jìn)行解析,解析出關(guān)鍵字,作為文檔屬性元信息。優(yōu)先地,步驟2所述的步驟中,如果文檔的屬性元信息的屬性名本身不泄漏用戶隱私,可以不對(duì)屬性名加密,而只對(duì)屬性值加密。優(yōu)先地,步驟2所述的步驟中,將文檔在云存儲(chǔ)的存儲(chǔ)位置作為該文檔屬性元信息的標(biāo)識(shí),作為文檔的屬性元信息的一部分。優(yōu)選地,步驟2所述的步驟中,可以針對(duì)文檔的文件名屬性生成作特殊優(yōu)化,比如對(duì)文件名進(jìn)行分詞。文檔的文件名對(duì)應(yīng)的索引值不僅包括加密后的文件名字符串,而且包括對(duì)文件名進(jìn)行分詞后的子文件名的密文集合,這樣可以適用于用戶提交的對(duì)文件名的部分查詢。優(yōu)選地,步驟2所述密文文檔的元信息可以保存在分布式鍵值數(shù)據(jù)庫(kù)中。每個(gè)文檔的所有元信息表示為一個(gè)元組;該元組的各個(gè)屬性為加密保密后的文檔屬性名,其屬性值為加密保護(hù)的屬性值。優(yōu)選地,步驟3所述步驟可以提供對(duì)多個(gè)檢索條件的支持。多個(gè)檢索條件為由一個(gè)或多個(gè)操作符(OR或AND)連接的多個(gè)基本查詢子句。優(yōu)選地,步驟3所述步驟可以提供對(duì)明密文的同時(shí)檢索,在用戶提交檢索條件后,將檢索拆分成明文檢索和密文檢索,明文檢索過程中不需要加密,最后將明文檢索和密文檢索結(jié)果合并。優(yōu)選地,步驟3所述步驟可以提供對(duì)區(qū)間條件檢索的支持。通過將文檔屬性值域劃分成不同層次的區(qū)域,從而將對(duì)該屬性的區(qū)間檢索轉(zhuǎn)化為對(duì)上述區(qū)域的等值檢索。若用戶需要為屬性A構(gòu)建支持區(qū)間檢索的屬性元信息,具體步驟為將屬性A值域[Fmm,Fmax]分成η個(gè)區(qū)間[Fmn,F(xiàn)max]={[Fmm,F(xiàn)1),[F1,F2),…,[Flri,F(xiàn)max]),其中當(dāng)k>i時(shí),F(xiàn)k>=F1;選擇一個(gè)映射函數(shù)Map,將每個(gè)區(qū)間對(duì)應(yīng)于一個(gè)不同的取值MapQF^,F(xiàn)1))=V1,其中當(dāng)i乒j時(shí),F(xiàn)1^Fj眷若元信息屬性值a屬于區(qū)間[Fh,F(xiàn)k),則其屬性值為Vk=Map([Flrf,F(xiàn)k));當(dāng)用戶對(duì)屬性A進(jìn)行區(qū)間檢索時(shí),檢索區(qū)間為[a_low,a_high]假定a_lowe[Fw,F(xiàn)1),a_highe[Flrf,F(xiàn)k),由A的值域劃分得,滿足檢索條件的區(qū)間{[Fh,F(xiàn)1),[F1,Fi+1),…,[FH,F(xiàn)k)};將滿足檢索的區(qū)間通過M印映射得伐,Vw,…,Vk);將這些映射值與檢索字段進(jìn)行組合,構(gòu)建多個(gè)值域區(qū)域的檢索鍵值對(duì){(A,V1),(A,V1+1)、…、(A,Vk)},多個(gè)檢索之間的關(guān)系是OR本發(fā)明提供的面向密文云存儲(chǔ)的文檔檢索系統(tǒng),其特征在于該系統(tǒng)包括通過網(wǎng)絡(luò)連接的一服務(wù)器(云存儲(chǔ)服務(wù)器,即云存儲(chǔ)數(shù)據(jù)庫(kù))和若干客戶端,其中每一客戶端包括安全組件10、索引操作組件20、檢索組件30、云數(shù)據(jù)庫(kù)訪問組件40。其中安全組件10包含了加解密組件11、密鑰管理組件12;索引操作組件20包含了文件上傳解析組件21、文件操作解析組件22、索引處理組件23;檢索組件30包含了檢索字段解析組件31、檢索條件構(gòu)建組件32、檢索結(jié)果解析組件33。加解密組件11主要是對(duì)上傳的元信息進(jìn)行加密和服務(wù)器返回密態(tài)元信息進(jìn)行解密,加解密使用的密鑰是由密鑰管理組件12返回的密鑰。密鑰管理組件12主要是負(fù)責(zé)接收用戶導(dǎo)入主密鑰,對(duì)于用戶的索引密鑰的請(qǐng)求,先從服務(wù)器獲取密態(tài)的索引密鑰,再使用主密鑰對(duì)其進(jìn)行解密,并返回解密結(jié)果。在服務(wù)器中不存在該用戶的索引密鑰時(shí),自動(dòng)為用戶生成索引密鑰,使用主密鑰加密后,上傳到服務(wù)器。文件上傳解析組件21主要是對(duì)要上傳的文件進(jìn)行解析,解析出所有需要的元信息,采用安全組件10對(duì)所有的元信息進(jìn)行加密保護(hù)。文件操作解析組件22主要根據(jù)文件的更新操作,解析出相關(guān)的更新元信息,并采用安全組件10對(duì)元信息進(jìn)行加密保護(hù)。索引處理組件23主要根據(jù)為文件上傳解析組件21或文件操作解析組件22中提供的所有密態(tài)元信息進(jìn)行處理,構(gòu)建完整的索引記錄,通過云數(shù)據(jù)庫(kù)訪問組件40提交給服務(wù)器保存。檢索字段解析組件31主要對(duì)用戶輸入的元信息中所有的檢索字段進(jìn)行分析,分析出與其相對(duì)應(yīng)的索引庫(kù)中元信息的一個(gè)或多個(gè)字段,并對(duì)檢索值與這些檢索字段采用安全組件10進(jìn)行加密保護(hù)。檢索條件構(gòu)建組件32主要是根據(jù)檢索字段解析組件31提供的密態(tài)元信息的檢索字段和檢索值,結(jié)合用戶提供的元信息檢索字段之間的關(guān)系,構(gòu)建出針對(duì)索引庫(kù)的檢索條件,通過云數(shù)據(jù)庫(kù)訪問組件40提交給服務(wù)器進(jìn)行檢索。檢索結(jié)果解析組件33主要是對(duì)服務(wù)器通過云數(shù)據(jù)庫(kù)訪問組件40返回的結(jié)果采用安全組件10進(jìn)行解密,并將結(jié)果顯示給用戶。云數(shù)據(jù)庫(kù)訪問組件40主要是對(duì)云數(shù)據(jù)庫(kù)的訪問進(jìn)行封裝,封裝成普通的數(shù)據(jù)庫(kù)訪問,如插入、修改、刪除、查找等操作。和現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)勢(shì)1.基于本發(fā)明的密文云存儲(chǔ)檢索系統(tǒng)安全性高。對(duì)于密文文檔的上傳,為其構(gòu)建的索引均將被用戶的索引密鑰保護(hù),在用戶沒有泄漏用戶索引密鑰的情況下,文檔的索引信息不會(huì)泄漏文檔具體信息。所有的密文檢索均是在索引信息的密文狀態(tài)下進(jìn)行的,服務(wù)器無需了解到索引具體內(nèi)容,保證了檢索系統(tǒng)的安全性。2.基于本發(fā)明的密文云存儲(chǔ)檢索系統(tǒng)檢索效率高。對(duì)于用戶的密文檢索的請(qǐng)求,服務(wù)器對(duì)索引信息進(jìn)行檢索時(shí),是在索引信息的密文狀態(tài)下進(jìn)行匹配的,可以直接返回檢索結(jié)果,而不需要將所有的密文文檔返回解密后,分別查看是否是所需要的文檔,也不需要在服務(wù)器端進(jìn)行額外的相關(guān)計(jì)算來判斷當(dāng)前判斷的文檔是否是所需要的,所以使得密文檢索系統(tǒng)的效率比較高。3.基于本發(fā)明的密文云存儲(chǔ)檢索系統(tǒng)彈性可擴(kuò)展。支持海量數(shù)據(jù)的存儲(chǔ)與訪問。用戶的文檔元信息將被存放在云存儲(chǔ)上,云存儲(chǔ)容量具有高度的可擴(kuò)展性,而且所有的訪問壓力將被分散在各個(gè)服務(wù)器上,所以密文檢索系統(tǒng)對(duì)于海量數(shù)據(jù)的存儲(chǔ)和訪問具有高度的可擴(kuò)展性。圖1是本發(fā)明的系統(tǒng)體系結(jié)構(gòu)圖;圖2是本發(fā)明的屬性加解密過程的示意圖;圖3是本發(fā)明的區(qū)間匹配的示意圖。具體實(shí)施例方式下面將詳細(xì)描述本發(fā)明的各個(gè)方面的特征和示例性實(shí)施例,在下面的詳細(xì)描述中,提出了許多具體的細(xì)節(jié),以便讓技術(shù)人員對(duì)本發(fā)明有個(gè)更加全面的理解。所以,技術(shù)人員在實(shí)施本發(fā)明時(shí)不需要完全按照下面描述的一些具體細(xì)節(jié)。圖1概要地表達(dá)出了本發(fā)明的體系結(jié)構(gòu)圖,其分成了四大組件索引操作組件、檢索組件、加解密組件和云數(shù)據(jù)庫(kù)訪問組件。一共包括了云數(shù)據(jù)庫(kù)(即云存儲(chǔ)數(shù)據(jù)服務(wù)器)、主密鑰、密鑰管理組件、索引加解密組件、文件上傳解析組件、文件操作解析組件、索引處理組件、檢索字段解析組件、檢索結(jié)果解析組件和檢索條件構(gòu)建組件。云數(shù)據(jù)庫(kù)主要是存放云存儲(chǔ)數(shù)據(jù)的索引和用戶的索引密鑰信息。在實(shí)施例中,采用HBase作為云數(shù)據(jù)庫(kù)來存儲(chǔ)索引和索引密鑰的相關(guān)信息。HBase是一個(gè)key-value數(shù)據(jù)庫(kù),其結(jié)構(gòu)與傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)不同,HBase有如下的結(jié)構(gòu)表名(table^ame)、行標(biāo)識(shí)(row_key)、列族(family_name)、列名(column_name),其中行標(biāo)識(shí)類似于在傳統(tǒng)數(shù)據(jù)庫(kù)中設(shè)置的主鍵,列族和列名的組合類似于傳統(tǒng)數(shù)據(jù)的列,列族是幾個(gè)列名的集合。key由表名、行標(biāo)識(shí)、列族和列名確定,value就是存放在指定表名、指定行標(biāo)識(shí)、指定列族和指定列名下的值。除了表名和列族需要在創(chuàng)建表時(shí)確定,行標(biāo)識(shí)和列名在插入記錄時(shí)確定,所以HBase支持自定義數(shù)據(jù)庫(kù)字段。先假設(shè)用戶上傳兩個(gè)文件,其中密文上傳testCipher.txt,明文上傳testPlain.txt,其他屬性均一樣,文檔大小500K,所有者administrator,上傳時(shí)間為2010-06-02,自定義字段為“項(xiàng)目”,對(duì)應(yīng)的自定義值為“密文檢索”,文檔的關(guān)鍵字屬性為“測(cè)試密文檢索,其中明文上傳的路徑是“/”,密文上傳的路徑是“/”,假設(shè)加解密函數(shù)分別是EncK()和DeckO,其中k為加解密密鑰。1密文文檔的元信息安全存儲(chǔ)文檔的元信息需要存放在云數(shù)據(jù)庫(kù)中,所以我們?cè)谠茢?shù)據(jù)庫(kù)中構(gòu)建索引元信息表,主要是用來存放云存儲(chǔ)文檔的元信息的。其采用文檔在云存儲(chǔ)中存放路徑(包含文檔名)作為元信息行記錄的標(biāo)識(shí)。當(dāng)用戶上傳文檔時(shí),假如用戶上傳的明文文檔testPlain.txt和密文文檔testCipher.txt,文件上傳解析組件獲得文檔的自定義字段“項(xiàng)目”,自定義值“密文檢索”文件上傳解析組件解析出上傳文檔的文檔名testPlain、testCipher,文檔大小500k,文檔類型txt,文檔修改時(shí)間2010-06-02,文檔所有者administrator文件上傳解析組件獲得文檔在云存儲(chǔ)的存儲(chǔ)路徑“/”,與文檔名進(jìn)行組合,組成“/testPlain.txt”禾Π“/testCipher.txt”,作為元信息的行標(biāo)識(shí)文件上傳解析組件對(duì)文檔解析,解析出關(guān)鍵字屬性測(cè)試、密文和檢索文件上傳解析組件對(duì)文檔名進(jìn)行解析,testPlain解析出test和Plain兩個(gè)單詞,testCipher解析出test和Cipher兩個(gè)單詞,對(duì)文檔修改時(shí)間進(jìn)行解析,解析出年、月、日分別是2010、06、02對(duì)于testCipher.txt,文件上傳解析組件調(diào)用安全組件對(duì)元信息進(jìn)行加密索引處理組件為這些獲得的和解析的信息構(gòu)建索引字段,組成索引記錄,并將索引記錄通過云數(shù)據(jù)庫(kù)訪問組件上傳到索引元信息數(shù)據(jù)庫(kù)中所以,兩個(gè)文件上傳完畢,云數(shù)據(jù)庫(kù)索引元信息表中增加如下兩條記錄。具體見表1所示表1索引元信息表權(quán)利要求1.一種面向密文云存儲(chǔ)的文檔檢索方法,其步驟為1)客戶端利用用戶導(dǎo)入的主密鑰為該用戶生成一索引密鑰,并利用主密鑰對(duì)該用戶的索引密鑰加密后保存在服務(wù)器端;其中,所述服務(wù)器端包括一索引表,用于存儲(chǔ)每一用戶用其索引密鑰加密所上傳文檔的屬性元信息所得到的密文;所述屬性元信息包含文檔的存儲(chǔ)路徑信息;2)客戶端接收某用戶輸入的待查詢文檔的屬性元信息后,從服務(wù)器端獲取該用戶的索引密鑰的密文;3)客戶端利用該用戶導(dǎo)入的主密鑰對(duì)該用戶的索引密鑰密文進(jìn)行解密,得到該用戶的索引密鑰;4)客戶端利用該用戶的索引密鑰對(duì)待查詢文檔的屬性元信息進(jìn)行加密,得到屬性元信息密文并將其發(fā)送到服務(wù)器端;5)服務(wù)器端根據(jù)該屬性元信息密文檢索所述索引表,將滿足條件的索引記錄返回給客戶端;6)客戶端利用該用戶的索引密鑰解密該索引記錄中的屬性元信息密文,得到屬性元信息對(duì)應(yīng)的文檔。2.如權(quán)利要求1所述的方法,其特征在于所述屬性元信息包括用戶自定義的檢索屬性元信息和文檔解析屬性元信息;每一所述檢索屬性元信息包括一屬性名稱、以及一個(gè)或多個(gè)屬性值;每一文檔解析屬性元信息包括一個(gè)屬性名稱、以及一個(gè)或多個(gè)屬性值。3.如權(quán)利要求2所述的方法,其特征在于所述文檔解析屬性元信息包括文檔名、文檔大小、文檔類型、文檔所有者、文檔修改時(shí)間、文檔關(guān)鍵字。4.如權(quán)利要求3所述的方法,其特征在于客戶端對(duì)文檔名進(jìn)行分詞得到子文檔名;所述文檔名對(duì)應(yīng)的屬性值包括加密后的文件名字符串以及對(duì)文檔名分詞后的子文檔名的密文集合。5.如權(quán)利要求2所述的方法,其特征在于所述步驟4)中,客戶端根據(jù)待查詢文檔的屬性元信息中的某屬性檢索區(qū)間,選取該屬性的值域區(qū)間并將其劃分為若干子區(qū)間,然后將每一子區(qū)間映射為一相應(yīng)的映射值;將每一映射值與該屬性構(gòu)成一檢索鍵值對(duì)并建立檢索鍵值對(duì)之間的邏輯關(guān)系;最后利用索引密鑰對(duì)其進(jìn)行加密后發(fā)送到服務(wù)器端。6.如權(quán)利要求1所述的方法,其特征在于所述服務(wù)器端采用HBase數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)存儲(chǔ);所述索引表中將屬性元信息中的文檔存儲(chǔ)路徑作為該屬性元信息密文在所述索引表中的行標(biāo)識(shí)。7.如權(quán)利要求1或2或3或4或5或6所述的方法,其特征在于每一用戶用其索引密鑰加密所上傳文檔的屬性元信息的方法為1)用戶在客戶端上傳文檔時(shí),客戶端生成所上傳文檔的屬性元信息,并從服務(wù)器端獲取該用戶的索引密鑰的密文;2)客戶端利用該用戶導(dǎo)入的主密鑰對(duì)該用戶的索引密鑰密文進(jìn)行解密,得到該用戶的索引密鑰;3)客戶端利用該用戶的索引密鑰對(duì)該屬性元信息加密后作為一條記錄保存在所述索引表中。8.如權(quán)利要求7所述的方法,其特征在于每一文檔具有一文檔密鑰,客戶端利用所述主密鑰對(duì)所述文檔密鑰加密后保存在所述服務(wù)器端;所述文檔為明文文檔或客戶端利用所述文檔密鑰加密后的密文;所述文檔密鑰和所述索引密鑰保存在服務(wù)器端的一密鑰表中。9.一種面向密文云存儲(chǔ)的文檔檢索系統(tǒng),其特征在于包括服務(wù)器端、若干客戶端,所述客戶端分別通過網(wǎng)絡(luò)與所述服務(wù)器端連接;其中,每一客戶端分別包括一密鑰管理組件,用于自動(dòng)為用戶生成索引密鑰并使用用戶主密鑰對(duì)其加密后,上傳到服務(wù)器端;或者用于接收用戶導(dǎo)入主密鑰,從服務(wù)器獲取密態(tài)的索引密鑰并使用主密鑰對(duì)其解密后,將所得索引密鑰返回給所述加解密組件;一加解密組件,用于采用索引密鑰對(duì)上傳的元信息進(jìn)行加密和對(duì)服務(wù)器端返回密態(tài)元信息進(jìn)行解密;一文件上傳解析組件,用于從上傳的文件中解析出元信息;一索引處理組件,用于根據(jù)文件的所有密態(tài)元信息構(gòu)建索引記錄,并將其保存到服務(wù)器端;一檢索字段解析組件,用于從用戶輸入的檢索條件中解析出元信息,并將解析出的元信息采用所述加解密組件進(jìn)行加密后發(fā)送給服務(wù)器端;一檢索結(jié)果解析組件,用于對(duì)服務(wù)器端返回的檢索結(jié)果采用所述加解密組件進(jìn)行解密后在客戶端顯示。10.如權(quán)利要求9所述的系統(tǒng),其特征在于所述客戶端還包括一文件操作解析組件,用于文件的更新操作,并解析出更新元信息;一檢索條件構(gòu)建組件,用于根據(jù)檢索字段解析組件的解析結(jié)果結(jié)合用戶提供的檢索元信息構(gòu)建出檢索條件,將其采用所述加解密組件進(jìn)行加密后發(fā)送給服務(wù)器端。全文摘要本發(fā)明公開了一種面向密文云存儲(chǔ)的文檔檢索方法與系統(tǒng),屬于信息安全
技術(shù)領(lǐng)域:
。本方法為1)客戶端利用用戶導(dǎo)入的主密鑰為該用戶生成一索引密鑰,并利用主密鑰對(duì)該索引密鑰加密后保存在服務(wù)器端;2)客戶端接收某用戶輸入的待查詢文檔的屬性元信息后,從服務(wù)器端獲取該索引密鑰的密文并解密得到索引密鑰;3)客戶端利用該索引密鑰對(duì)待查詢文檔的屬性元信息進(jìn)行加密后發(fā)送到服務(wù)器端;4)服務(wù)器端根據(jù)該屬性元信息密文檢索所述索引表,將滿足條件的索引記錄返回給客戶端,得到屬性元信息對(duì)應(yīng)的文檔。本系統(tǒng)包括服務(wù)器端、若干客戶端,客戶端分別通過網(wǎng)絡(luò)與服務(wù)器端連接。本發(fā)明提高了密文檢索系統(tǒng)的安全性和檢索效率,且可擴(kuò)展性高。文檔編號(hào)G06F17/30GK102024054SQ201010595149公開日2011年4月20日申請(qǐng)日期2010年12月10日優(yōu)先權(quán)日2010年12月10日發(fā)明者馮登國(guó),張敏,徐震,蔡克,陳馳申請(qǐng)人:中國(guó)科學(xué)院軟件研究所