安全索引的關(guān)鍵字搜索系統(tǒng)及建立該系統(tǒng)的方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種安全索引的關(guān)鍵字搜索系統(tǒng)及建立該系統(tǒng)的方法,該系統(tǒng)包含索引伺服器與代理伺服器。索引伺服器包含復(fù)數(shù)個(gè)子索引模塊以及散列模塊,散列模塊用以對(duì)至少一個(gè)原始檔案的至少一個(gè)關(guān)鍵字進(jìn)行散列并分割為復(fù)數(shù)個(gè)關(guān)鍵字散列值片段,并將每一個(gè)關(guān)鍵字散列值片段分別儲(chǔ)存至子索引模塊之一中。代理伺服器包含搜索模塊,搜索模塊接收搜索字后,利用散列模塊對(duì)搜索字進(jìn)行散列并分割為復(fù)數(shù)個(gè)搜索字散列值片段,并將每一個(gè)搜索字散列值片段分別傳送至子索引模塊之一中,其中子索引模塊基于搜索字散列值片段搜索關(guān)鍵字散列值片段后,回傳原始檔案中相匹配的至少一個(gè)匹配檔案。
【專(zhuān)利說(shuō)明】安全索引的關(guān)鍵字搜索系統(tǒng)及建立該系統(tǒng)的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種搜索系統(tǒng),尤其涉及一種安全索引的搜索系統(tǒng)。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)通訊產(chǎn)業(yè)的發(fā)展,云端技術(shù)的應(yīng)用也日趨廣泛,云端儲(chǔ)存裝置已漸漸成為民眾或一般企業(yè)儲(chǔ)存及備份資料的主流設(shè)備,將資料由過(guò)去固定式硬盤(pán)移至云端儲(chǔ)存裝置不但可減少個(gè)人或企業(yè)在儲(chǔ)存設(shè)備上的花費(fèi),且不會(huì)受限于場(chǎng)地及時(shí)間,通過(guò)網(wǎng)絡(luò)連線即可取得所需的資料。企業(yè)可通過(guò)將大量資料由公司的內(nèi)部?jī)?chǔ)存裝置移至云端儲(chǔ)存裝置,減少企業(yè)在儲(chǔ)存裝置上的開(kāi)銷(xiāo)并降低設(shè)備購(gòu)置與運(yùn)行的成本,云端儲(chǔ)存設(shè)備還可作為大量資料的溝通媒介,使企業(yè)運(yùn)行時(shí)大量資料的傳輸更為便捷,僅需將資料傳輸至云端儲(chǔ)存設(shè)備上即可供分處各地的分部存取,另外比起過(guò)去當(dāng)多人同時(shí)需要一份文件時(shí)需準(zhǔn)備多份復(fù)制文件且無(wú)法同時(shí)得知各備份的修改狀況,云端儲(chǔ)存裝置中的文件可供多人存取與使用且不需多余的復(fù)制文件,能有效節(jié)省資料文件溝通的花費(fèi)。
[0003]利用電腦處理含有重要信息的文件時(shí),信息安全一直是相當(dāng)重要的課題,在云端裝置上尤其如此,使用者并不希望儲(chǔ)存的文件及其信息有不必要的公開(kāi),為避免文件在網(wǎng)際網(wǎng)絡(luò)傳輸時(shí)遭受不明人士獲取,或是由于遭到黑客入侵導(dǎo)致資料外流,提供服務(wù)的伺服器端多會(huì)將文件加密以確保在傳送及儲(chǔ)存時(shí)的信息安全性,但由于加密與解密的行為常需依賴特定密鑰且密鑰為各文件所屬不可外流的重要信息,導(dǎo)致當(dāng)儲(chǔ)存在云端裝置的密文文件有搜索需求時(shí),伺服器端無(wú)法在密文文件直接進(jìn)行搜索,而需先將文件解密以還原成明文后才可對(duì)文件內(nèi)容進(jìn)行搜索,如此一來(lái)便失去當(dāng)初文件儲(chǔ)存的安全性,欲竊取資料的人可通過(guò)送出搜索需求,在伺服器端將密文文件還原成明文文件時(shí)竊取欲取得的信息,且無(wú)需費(fèi)心破解密鑰。
[0004]此外,為增加搜索效率,搜索系統(tǒng)多采用建立索引值的方式,根據(jù)分析文件的特性給予對(duì)應(yīng)的索引值,并通過(guò)搜索索引值取得所需信息,但在加密搜索的情況下,此索引值的分布趨勢(shì)恰好反應(yīng)出被搜索信息的特征分布,使得搜索程序失去信息保密性,欲竊取資料的人可通過(guò)不停送出特定涵義的搜索信息,試探索引值的分布趨勢(shì)以分析被搜索信息的特征。
[0005]因此,如何對(duì)加密后的文件進(jìn)行搜索,且不因追求搜索效率而破壞整體資料的安全性,以提供使用者安全便利的搜索系統(tǒng),已成為當(dāng)前相關(guān)領(lǐng)域亟需改進(jìn)的目標(biāo)。
【發(fā)明內(nèi)容】
[0006]有鑒于此,本發(fā)明的目的為提出一種安全索引的關(guān)鍵字搜索系統(tǒng),借以改善現(xiàn)行系統(tǒng)的安全性問(wèn)題。
[0007]依據(jù)本發(fā)明的一實(shí)施例,一種安全索引的關(guān)鍵字搜索系統(tǒng)包含索引伺服器與代理伺服器,代理伺服器與索引伺服器相連接。索引伺服器包含復(fù)數(shù)個(gè)子索引模塊以及散列模塊,散列模塊用以對(duì)至少一個(gè)原始檔案的至少一個(gè)關(guān)鍵字進(jìn)行散列并分割為復(fù)數(shù)個(gè)關(guān)鍵字散列值片段,并將每一個(gè)關(guān)鍵字散列值片段分別儲(chǔ)存至子索引模塊之一中。代理伺服器包含搜索模塊,搜索模塊接收搜索字后,利用散列模塊對(duì)搜索字進(jìn)行散列并分割為復(fù)數(shù)個(gè)搜索字散列值片段,并將每一個(gè)搜索字散列值片段分別傳送至子索引模塊之一中,其中子索引模塊基于搜索字散列值片段搜索關(guān)鍵字散列值片段后,回傳原始檔案中相匹配的至少一個(gè)匹配檔案。
[0008]依據(jù)本發(fā)明的一實(shí)施例,一種建立安全索引的關(guān)鍵字搜索系統(tǒng)的方法包含下列步驟:對(duì)至少一個(gè)原始檔案的至少一個(gè)關(guān)鍵字進(jìn)行散列并分割為復(fù)數(shù)個(gè)關(guān)鍵字散列值片段。將每一個(gè)關(guān)鍵字散列值片段分別儲(chǔ)存至復(fù)數(shù)個(gè)子索引模塊之一中。接收搜索字。對(duì)搜索字進(jìn)行散列并分割為復(fù)數(shù)個(gè)搜索字散列值片段。分別傳送每一個(gè)搜索字散列值片段至子索引模塊之一中?;谒阉髯稚⒘兄灯嗡阉麝P(guān)鍵字散列值片段,并回傳原始檔案中相匹配的至少一個(gè)匹配檔案。
[0009]在上述的實(shí)施例中,由于代理伺服器與索引伺服器為獨(dú)立運(yùn)行的伺服器,無(wú)法得知彼此的內(nèi)部運(yùn)行方式,且配合散列模塊進(jìn)行的散列演算,能夠在確保信息安全性的狀況下,將密文文件直接進(jìn)行搜索,并通過(guò)采用復(fù)數(shù)個(gè)子索引模塊的機(jī)制,將過(guò)去建立索引值時(shí)可能透露的索引值分布趨勢(shì)撫平,使竊取資料的人無(wú)法通過(guò)試探索引值的分布趨勢(shì)分析被搜索信息的特征。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0010]為讓本發(fā)明的上述和其他目的、特征、優(yōu)點(diǎn)與實(shí)施例能更明顯易懂,【專(zhuān)利附圖】
【附圖說(shuō)明】如下:
[0011]圖1是依照本發(fā)明一實(shí)施例的一種安全索引的關(guān)鍵字搜索系統(tǒng)的框圖。
[0012]圖2是依照本發(fā)明一實(shí)施例的一種建立安全索引的關(guān)鍵字搜索系統(tǒng)方法的流程圖。
[0013]圖3是依照本發(fā)明一實(shí)施例的一種安全索引的關(guān)鍵字搜索系統(tǒng)方法的流程圖。
【具體實(shí)施方式】
[0014]以下將以附圖詳細(xì)說(shuō)明本發(fā)明的精神,任何所屬【技術(shù)領(lǐng)域】中具有通常知識(shí)的人員在了解本發(fā)明的較佳實(shí)施例后,當(dāng)可由本發(fā)明所教示的技術(shù)加以改變及修飾,其并不脫離本發(fā)明的精神與范圍。另一方面,眾所周知的元件與步驟并未在實(shí)施例中描述,以避免對(duì)本發(fā)明造成不必要的限制。
[0015]請(qǐng)參照?qǐng)D1,其為依照本發(fā)明一實(shí)施例的一種安全索引的關(guān)鍵字搜索系統(tǒng)的框圖。安全索引的關(guān)鍵字搜索系統(tǒng)包含代理伺服器100、索引伺服器200與儲(chǔ)存伺服器300,代理伺服器100與索引伺服器200和儲(chǔ)存伺服器300相連接。代理伺服器100為使用者提供操作平臺(tái),可用來(lái)接收使用者上傳的原始檔案、供使用者輸入搜索字、顯示匹配檔案以及為使用者提供相關(guān)的操作功能,儲(chǔ)存伺服器300用來(lái)儲(chǔ)存加密后的原始檔案,由索引伺服器200基于多個(gè)原始檔案建立搜索架構(gòu),以提供搜索服務(wù),索引伺服器200可基于代理伺服器100接收的搜索字,搜索原始檔案中的關(guān)鍵字以回傳原始檔案中具有相匹配字句的匹配檔案。代理伺服器100、索引伺服器200與儲(chǔ)存伺服器300可為專(zhuān)業(yè)的伺服器機(jī)臺(tái)、個(gè)人電腦主機(jī)或是其他具備運(yùn)算能力的裝置,伺服器可由具有不同權(quán)限的管理者管理,不具備適當(dāng)權(quán)限者即無(wú)法登入、查詢或使用其提供的功能,伺服器間彼此為獨(dú)立運(yùn)行,無(wú)法得知其他伺服器內(nèi)部的運(yùn)行機(jī)制,設(shè)置時(shí)還可以將其實(shí)體機(jī)器放置于不同位置,增加欲竊取資料者破解時(shí)的復(fù)雜程度。
[0016]代理伺服器100可接收多位使用者上傳的原始檔案,代理伺服器100在接收使用者上傳的原始檔案后,加密此原始檔案,并將加密后的原始檔案儲(chǔ)存至儲(chǔ)存伺服器300,代理伺服器100可利用上傳的使用者名稱(chēng)與登入密碼,或是其他與上傳使用者相關(guān)的信息,作為加密的密鑰,并通過(guò)信息安全演算法將原始檔案加密,以保存完整的原始檔案并同時(shí)維持其信息安全性。
[0017]索引伺服器200包含復(fù)數(shù)個(gè)子索引模塊與散列模塊220。在本發(fā)明的一實(shí)施例中,復(fù)數(shù)個(gè)子索引模塊為第一子索引模塊210、第二子索引模塊212、第三子索引模塊214與第四子索引模塊216,但子索引模塊的數(shù)量不以此為限。散列模塊220用來(lái)對(duì)至少一個(gè)原始檔案中至少一個(gè)關(guān)鍵字進(jìn)行散列,以產(chǎn)生固定長(zhǎng)度(即包含固定的字節(jié)數(shù)量)的關(guān)鍵字散列值,散列模塊220將關(guān)鍵字散列值分割為與子索引模塊數(shù)量相同的復(fù)數(shù)個(gè)關(guān)鍵字散列值片段,分割方式可依據(jù)任一規(guī)則但需對(duì)所有關(guān)鍵字采用相同的分割方式,散列模塊220依據(jù)關(guān)鍵字散列值片段在關(guān)鍵字散列值中的位置順序,將每一個(gè)關(guān)鍵字散列值片段分別儲(chǔ)存至對(duì)應(yīng)的子索引模塊之一中。在本發(fā)明的一實(shí)施例中,散列模塊220將關(guān)鍵字進(jìn)行散列后產(chǎn)生長(zhǎng)度為三十二個(gè)字節(jié)的關(guān)鍵字散列值,散列模塊220將此關(guān)鍵字散列值分割為四個(gè)相同長(zhǎng)度的關(guān)鍵字散列值片段,每個(gè)關(guān)鍵字散列值片段長(zhǎng)度為八個(gè)字節(jié),依據(jù)每個(gè)關(guān)鍵字散列值片段在關(guān)鍵字散列值中的位置順序,將第一個(gè)關(guān)鍵字散列值片段(即第一到八個(gè)字節(jié))儲(chǔ)存至第一子索引模塊210中,將第二個(gè)關(guān)鍵字散列值片段儲(chǔ)存至第二子索引模塊212中,將第三個(gè)關(guān)鍵字散列值片段儲(chǔ)存至第三子索引模塊214中,將第四個(gè)關(guān)鍵字散列值片段儲(chǔ)存至第四子索引模塊216中。散列模塊220可為MD5或其他接收不定長(zhǎng)度信息并輸出固定長(zhǎng)度散列值的散列演算法。
[0018]代理伺服器100包含搜索模塊110。欲搜索含有特定搜索字的檔案的使用者,可在代理伺服器100輸入搜索字,代理伺服器100利用散列模塊220對(duì)搜索字進(jìn)行上述散列與分割程序以產(chǎn)生復(fù)數(shù)個(gè)搜索字散列值片段,且將每一個(gè)搜索字散列值片段依據(jù)其在搜索字散列值中的位置順序,分別傳送至對(duì)應(yīng)的子索引模塊之一中,而子索引模塊基于搜索字散列值片段搜索關(guān)鍵字散列值片段,回傳原始檔案中相匹配的至少一個(gè)匹配檔案。在本發(fā)明的一實(shí)施例中,散列模塊220對(duì)搜索字進(jìn)行散列以產(chǎn)生長(zhǎng)度為三十二字節(jié)的搜索字散列值,散列模塊220將此搜索字散列值分割為四個(gè)長(zhǎng)度為八字節(jié)的搜索字散列值片段,并將第一個(gè)搜索字散列值片段傳送至第一子索引模塊210,由第一子索引模塊210在其中搜索與第一個(gè)搜索字散列值片段相同的關(guān)鍵字散列值片段,回傳此關(guān)鍵字散列值片段所屬的原始檔案作為匹配檔案給使用者,第二個(gè)、第三個(gè)與第四個(gè)搜索字散列值片段則分別傳送至第二子索引模塊212、第三子索引模塊214與第四子索引模塊216,以進(jìn)行如上的搜索程序。
[0019]索引伺服器200包含識(shí)別碼對(duì)應(yīng)模塊230,識(shí)別碼對(duì)應(yīng)模塊230依據(jù)每一個(gè)關(guān)鍵字散列值片段所屬的原始檔案,以及代表此原始檔案的識(shí)別碼,將子索引模塊中每一個(gè)關(guān)鍵字散列值片段與其所屬的原始檔案的識(shí)別碼建立對(duì)應(yīng)關(guān)系,原始檔案的識(shí)別碼可為代理伺服器100在使用者上傳原始檔案后,針對(duì)每一個(gè)原始檔案指派一個(gè)數(shù)字,作為代表原始檔案的識(shí)別碼。
[0020]索引伺服器200包含識(shí)別碼交集模塊240,識(shí)別碼交集模塊240將每一個(gè)子索引模塊基于搜索字散列值片段搜索到的每一個(gè)關(guān)鍵字散列值片段,通過(guò)對(duì)應(yīng)關(guān)系取得關(guān)鍵字散列值片段對(duì)應(yīng)的識(shí)別碼,并回傳所有子索引模塊交集的識(shí)別碼至代理伺服器100。在本發(fā)明的一實(shí)施例中,第一子索引模塊210基于第一個(gè)搜索字散列值片段,搜索到與其相同的至少一個(gè)關(guān)鍵字散列值片段后,通過(guò)對(duì)應(yīng)關(guān)系取得此關(guān)鍵字散列值片段對(duì)應(yīng)的識(shí)別碼,第二子索引模塊212、第三子索引模塊214與第四子索引模塊216也分別如上述步驟取得識(shí)別碼后,識(shí)別碼交集模塊240回傳在所有子索引模塊中均出現(xiàn)的識(shí)別碼(即子索引模塊交集的識(shí)別碼)至代理伺服器100。
[0021]代理伺服器100包含檔案取得模塊140與檔案解密模塊150,檔案取得模塊140基于識(shí)別碼交集模塊240回傳的識(shí)別碼,從儲(chǔ)存伺服器300取得識(shí)別碼對(duì)應(yīng)的加密后的原始檔案,并由檔案解密模塊150將加密后的原始檔案解密,以回傳解密后的原始檔案作為匹配檔案給輸入搜索字的搜索使用者。
[0022]代理伺服器100包含關(guān)鍵字加密模塊120,關(guān)鍵字加密模塊120依據(jù)關(guān)鍵字的屬性,以及此屬性預(yù)先設(shè)定的屬性密鑰,加密關(guān)鍵字,供散列模塊220進(jìn)行散列并分割,此屬性可為關(guān)鍵字在原始檔案中所屬的欄位或是其他與原始檔案相關(guān)的性質(zhì)。
[0023]代理伺服器100包含搜索字加密模塊130,搜索字加密模塊130依據(jù)搜索字的屬性,以及此屬性預(yù)先設(shè)定的屬性密鑰,加密搜索字,供散列模塊220進(jìn)行散列并分割。搜索字加密模塊130可采用與關(guān)鍵字加密模塊120相同的加密演算法,對(duì)具有相同屬性的關(guān)鍵字與搜索字,以相同的屬性密鑰進(jìn)行加密演算。
[0024]請(qǐng)參照?qǐng)D2,其為依照本發(fā)明一實(shí)施例的一種建立安全索引的關(guān)鍵字搜索系統(tǒng)方法的流程圖。建立安全索引的關(guān)鍵字搜索系統(tǒng)的方法400包含以下步驟:
[0025]在步驟402中,接收由上傳者上傳的原始檔案,可由多位上傳者上傳單一或多個(gè)原始檔案。此原始檔案可為上傳者的履歷、上傳者的社區(qū)網(wǎng)站個(gè)人名片、個(gè)人信件或是其他與上傳者相關(guān)的信息。
[0026]在步驟404中,接收原始檔案后,加密原始檔案并將加密后的原始檔案儲(chǔ)存至儲(chǔ)存伺服器。利用上傳者的個(gè)人帳號(hào)密碼或是其他上傳者的信息,產(chǎn)生個(gè)別上傳者專(zhuān)屬的加密密鑰,進(jìn)而通過(guò)加密演算法將原始檔案加密,并將加密后的原始檔案儲(chǔ)存至儲(chǔ)存伺服器,且儲(chǔ)存伺服器中僅保留加密后的原始檔案,不記錄與加密密鑰或其他上傳者的信息。
[0027]在步驟406中,由原始檔案中取出至少一個(gè)關(guān)鍵字,并依據(jù)原始檔案中關(guān)鍵字的屬性,以及此屬性預(yù)先設(shè)定的屬性密鑰,加密關(guān)鍵字以進(jìn)行散列并分割,此屬性可為關(guān)鍵字在原始檔案中的欄位,如履歷中的學(xué)習(xí)經(jīng)歷欄位、個(gè)人名片中的信箱欄位、信件中的收件人欄位及其他原始檔案中的可能分類(lèi)欄位等,并針對(duì)所有可能的欄位預(yù)先設(shè)定不同的屬性密鑰,從而將不同欄位的關(guān)鍵字通過(guò)不同的屬性密鑰加密。
[0028]在步驟408中,對(duì)原始檔案中加密后的關(guān)鍵字進(jìn)行散列,以獲得固定長(zhǎng)度的關(guān)鍵字散列值,并分割關(guān)鍵字散列值為復(fù)數(shù)個(gè)關(guān)鍵字散列值片段。
[0029]在步驟410中,將每一個(gè)關(guān)鍵字散列值片段,依據(jù)關(guān)鍵字散列值片段所屬的原始檔案,以及代表原始檔案的識(shí)別碼,在子索引模塊中,將每一個(gè)關(guān)鍵字散列值片段與代表其所屬的原始檔案的識(shí)別碼,建立對(duì)應(yīng)關(guān)系,以便將每一個(gè)關(guān)鍵字散列值片段對(duì)應(yīng)至一個(gè)原始檔案。
[0030]在步驟412中,將每一個(gè)關(guān)鍵字散列值片段,依據(jù)其在關(guān)鍵字散列值中的位置順序,分別儲(chǔ)存至復(fù)數(shù)個(gè)子索引模塊之一中,每一個(gè)子索引模塊可儲(chǔ)存來(lái)自多個(gè)原始檔案的多個(gè)關(guān)鍵字中一個(gè)關(guān)鍵字散列值片段,以建立子索引模塊的搜索架構(gòu)。
[0031]請(qǐng)參照?qǐng)D3,其為依照本發(fā)明一實(shí)施例的一種安全索引的關(guān)鍵字搜索系統(tǒng)方法的流程圖。安全索引的關(guān)鍵字搜索系統(tǒng)的方法500包含以下步驟:
[0032]在步驟502中,關(guān)鍵字搜索系統(tǒng)接收輸入。
[0033]在步驟504中,判斷接收的輸入為搜索字或是原始檔案的識(shí)別碼。若輸入為搜索字則進(jìn)行步驟506,若輸入為識(shí)別碼則進(jìn)行步驟518。
[0034]在步驟506中,經(jīng)判斷此輸入為搜索字,則關(guān)鍵字搜索系統(tǒng)接收此搜索字,并取得此搜索字的屬性,此屬性可為原始檔案中可能的分類(lèi)欄位,且此分類(lèi)欄位亦可決定此搜索字可搜索的關(guān)鍵字。在本發(fā)明的一實(shí)施例中,收件人欄位的搜索字,可通過(guò)此收件人欄位屬性,搜索同為收件人欄位屬性的關(guān)鍵字。
[0035]在步驟508中,依據(jù)搜索字的屬性,以及此屬性預(yù)先設(shè)定的屬性密鑰,加密搜索字以進(jìn)行散列并分割,且此加密的方式與圖2中步驟406的加密關(guān)鍵字的方式為相同演算程序。
[0036]在步驟510中,對(duì)加密后的搜索字進(jìn)行散列,以產(chǎn)生與關(guān)鍵字散列值相同長(zhǎng)度的搜索字散列值,并分割為復(fù)數(shù)個(gè)搜索字散列值片段,且此散列的方式與圖2中步驟408的對(duì)關(guān)鍵字進(jìn)行散列的方式為相同的散列演算法。
[0037]在步驟512中,依據(jù)于搜索字散列值中的位置順序,分別傳送每一個(gè)搜索字散列值片段至子索引模塊之一中。
[0038]在步驟514中,基于搜索字散列值片段,搜索關(guān)鍵字散列值片段。在本發(fā)明的一實(shí)施例中,將第一個(gè)關(guān)鍵字散列值片段儲(chǔ)存至第一子索引模塊中后,第一個(gè)搜索字散列值片段便在第一子索引模塊中搜索與其相同的關(guān)鍵字散列值片段,其余的搜索字散列值片段亦重復(fù)上述程序,在對(duì)應(yīng)的子索引模塊中搜索關(guān)鍵字散列值片段。
[0039]在步驟516中,將每一個(gè)子索引模塊搜索到的每一個(gè)關(guān)鍵字散列值片段,通過(guò)對(duì)應(yīng)關(guān)系取得識(shí)別碼,并回傳每一個(gè)子索引模塊交集的識(shí)別碼至代理伺服器。
[0040]在步驟518中,基于識(shí)別碼從儲(chǔ)存伺服器取得加密后的原始檔案。在本發(fā)明的一實(shí)施例中,在步驟504判斷為識(shí)別碼后,可由關(guān)鍵字搜索系統(tǒng)主動(dòng)確認(rèn)原始檔案的上傳者,是否愿意將其原始檔案公開(kāi)給搜索者,經(jīng)確認(rèn)愿意讓搜索者觀看原始檔案后,即基于此識(shí)別碼從儲(chǔ)存伺服器取得加密后的原始檔案。
[0041]在步驟520中,將加密后的原始檔案解密后,由代理伺服器回傳解密后的原始檔案作為匹配檔案,傳送給輸入搜索字的搜索者。在本發(fā)明的一實(shí)施例中,在確認(rèn)上傳者愿意將其原始檔案公開(kāi)給搜索者后,即將解密后的原始檔案,作為匹配檔案?jìng)魉徒o搜索者,以供搜索者觀看。
[0042]由上述本發(fā)明實(shí)施例可知,由于代理伺服器、索引伺服器與儲(chǔ)存伺服器為獨(dú)立運(yùn)行的伺服器,無(wú)法得知彼此的內(nèi)部運(yùn)行方式,且配合散列模塊進(jìn)行的散列演算,能夠在確保信息安全性的狀況下,將密文文件直接進(jìn)行搜索,并通過(guò)采用復(fù)數(shù)個(gè)子索引模塊的機(jī)制,將過(guò)去建立索引值時(shí)可能透露的索引值分布趨勢(shì)撫平,使竊取資料的人無(wú)法通過(guò)試探索引值的分布趨勢(shì)分析被搜索信息的特征。
[0043]雖然本發(fā)明已經(jīng)以實(shí)施方式公開(kāi)如上,然其并非用以限定本發(fā)明,任何本領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作各種變動(dòng)與潤(rùn)飾,因此本發(fā)明的保護(hù)范圍當(dāng)視本申請(qǐng)權(quán)利要求書(shū)所界定者為準(zhǔn)。
【權(quán)利要求】
1.一種安全索引的關(guān)鍵字搜索系統(tǒng),其特征在于,包含: 索引伺服器,其包含: 復(fù)數(shù)個(gè)子索引模塊;以及 散列模塊,其用以對(duì)至少一個(gè)原始檔案的至少一個(gè)關(guān)鍵字進(jìn)行散列并分割為復(fù)數(shù)個(gè)關(guān)鍵字散列值片段,并將每一個(gè)上述這些關(guān)鍵字散列值片段分別儲(chǔ)存至上述這些子索引模塊之一中;以及 代理伺服器,其連接于上述索引伺服器,其中該代理伺服器包含: 搜索模塊,其在接收搜索字后,利用上述散列模塊對(duì)該搜索字進(jìn)行散列并分割為復(fù)數(shù)個(gè)搜索字散列值片段,并將每一個(gè)上述這些搜索字散列值片段分別傳送至上述這些子索引模塊之一中, 其中上述這些子索引模塊基于上述這些搜索字散列值片段搜索上述這些關(guān)鍵字散列值片段后,回傳上述至少一個(gè)原始檔案中相匹配的至少一個(gè)匹配檔案。
2.如權(quán)利要求1所述的安全索引的關(guān)鍵字搜索系統(tǒng),其特征在于,還包含: 儲(chǔ)存伺服器,其連接于所述代理伺服器, 其中所述代理伺服器接收所述原始檔案后,加密所述原始檔案并儲(chǔ)存加密后的所述原始檔案至上述儲(chǔ)存伺服器。
3.如權(quán)利要求2所述的安全索引的關(guān)鍵字搜索系統(tǒng),其特征在于,所述索引伺服器包含: 識(shí)別碼對(duì)應(yīng)模塊,其用以依據(jù)所述這些關(guān)鍵字散列值片段所屬的所述原始檔案,以及代表所述原始檔案的識(shí)別碼,在所述這些子索引模塊中將每一個(gè)所述這些關(guān)鍵字散列值片段與其所屬的所述原始檔案的該識(shí)別碼建立對(duì)應(yīng)關(guān)系。
4.如權(quán)利要求3所述的安全索引的關(guān)鍵字搜索系統(tǒng),其特征在于,所述索引伺服器包含: 識(shí)別碼交集模塊,其用以將每一個(gè)所述這些子索引模塊搜索到的每一個(gè)所述這些關(guān)鍵字散列值片段,通過(guò)所述對(duì)應(yīng)關(guān)系取得所述識(shí)別碼,并回傳所述這些子索引模塊交集的所述識(shí)別碼至所述代理伺服器。
5.如權(quán)利要求4所述的安全索引的關(guān)鍵字搜索系統(tǒng),其特征在于,所述代理伺服器包含: 檔案取得模塊,其基于所述識(shí)別碼從所述儲(chǔ)存伺服器取得加密后的所述原始檔案;以及 檔案解密模塊,其用以將加密后的所述原始檔案解密,并回傳解密后的所述原始檔案作為所述匹配檔案。
6.如權(quán)利要求1所述的安全索引的關(guān)鍵字搜索系統(tǒng),其特征在于,所述代理伺服器還包含: 關(guān)鍵字加密模塊,其用以依據(jù)所述關(guān)鍵字的屬性,及該屬性預(yù)先設(shè)定的屬性密鑰,加密所述關(guān)鍵字,供所述散列模塊進(jìn)行散列并分割。
7.如權(quán)利要求6所述的安全索引的關(guān)鍵字搜索系統(tǒng),其特征在于,所述代理伺服器包含: 搜索字加密模塊,其用以在所述搜索模塊取得所述搜索字后,依據(jù)所述搜索字預(yù)先設(shè)定的所述屬性密鑰,加密所述搜索字,供所述散列模塊進(jìn)行散列并分割。
8.一種建立安全索引的關(guān)鍵字搜索系統(tǒng)的方法,其特征在于,包含: 對(duì)至少一個(gè)原始檔案的至少一個(gè)關(guān)鍵字進(jìn)行散列并分割為復(fù)數(shù)個(gè)關(guān)鍵字散列值片段; 將每一個(gè)上述這些關(guān)鍵字散列值片段分別儲(chǔ)存至復(fù)數(shù)個(gè)子索引模塊之一中; 接收搜索字; 對(duì)上述搜索字進(jìn)行散列并分割為復(fù)數(shù)個(gè)搜索字散列值片段; 分別傳送每一個(gè)上述這些搜索字散列值片段至上述這些子索引模塊之一中;以及 基于上述這些搜索字散列值片段搜索上述這些關(guān)鍵字散列值片段,并回傳上述至少一個(gè)原始檔案中相匹配的至少一個(gè)匹配檔案。
9.如權(quán)利要求8所述的一種建立安全索引的關(guān)鍵字搜索系統(tǒng)的方法,其特征在于,還包含: 在接收所述原始檔案后,加密所述原始檔案并將加密后的所述原始檔案儲(chǔ)存至儲(chǔ)存伺服器。
10.如權(quán)利要求9所述的建立安全索引的關(guān)鍵字搜索系統(tǒng)的方法,其特征在于,所述對(duì)至少一個(gè)原始檔案的至少一個(gè)關(guān)鍵字進(jìn)行散列并分割為復(fù)數(shù)個(gè)關(guān)鍵字散列值片段包含: 依據(jù)所述這些關(guān)鍵字散列值片段所屬的所述原始檔案,以及代表所述原始檔案的識(shí)別碼,在所述這些子索引模塊中將每一個(gè)所述這些關(guān)鍵字散列值片段與其所屬的所述原始檔案的該識(shí)別碼建立對(duì)應(yīng)關(guān)系。
11.如權(quán)利要求10所述的建立安全索引的關(guān)鍵字搜索系統(tǒng)的方法,其特征在于,所述基于所述這些搜索字散列值片段搜索所述這些關(guān)鍵字散列值片段,并回傳所述至少一個(gè)原始檔案中相匹配的至少一個(gè)匹配檔案包含: 將每一個(gè)所述這些子索引模塊搜索到的每一個(gè)所述這些關(guān)鍵字散列值片段,通過(guò)所述對(duì)應(yīng)關(guān)系取得所述識(shí)別碼,并回傳所述這些子索引模塊交集的所述識(shí)別碼至代理伺服器。
12.如權(quán)利要求11所述的建立安全索引的關(guān)鍵字搜索系統(tǒng)的方法,其特征在于,所述基于所述這些搜索字散列值片段搜索所述這些關(guān)鍵字散列值片段,并回傳所述至少一個(gè)原始檔案中相匹配的至少一個(gè)匹配檔案還包含: 基于所述識(shí)別碼從所述儲(chǔ)存伺服器取得加密后的所述原始檔案;以及 將加密后的所述原始檔案解密后,由所述代理伺服器回傳解密后的所述原始檔案作為所述匹配檔案。
13.如權(quán)利要求8所述的建立安全索引的關(guān)鍵字搜索系統(tǒng)的方法,其特征在于,所述對(duì)至少一個(gè)原始檔案的至少一個(gè)關(guān)鍵字進(jìn)行散列并分割為復(fù)數(shù)個(gè)關(guān)鍵字散列值片段包含: 依據(jù)所述關(guān)鍵字的屬性,及該屬性預(yù)先設(shè)定的屬性密鑰,加密所述關(guān)鍵字以進(jìn)行散列并分割。
14.如權(quán)利要求13所述的建立安全索引的關(guān)鍵字搜索系統(tǒng)的方法,其特征在于,所述對(duì)所述搜索字進(jìn)行散列并分割為復(fù)數(shù)個(gè)搜索字散列值片段包含: 依據(jù)所述搜索字預(yù)先設(shè)定的所述屬性密鑰,加密所述搜索字以進(jìn)行散列并分割。
【文檔編號(hào)】G06F17/30GK104283930SQ201310290414
【公開(kāi)日】2015年1月14日 申請(qǐng)日期:2013年7月11日 優(yōu)先權(quán)日:2013年7月11日
【發(fā)明者】陳志鴻, 李志瑋 申請(qǐng)人:一零四資訊科技股份有限公司