基于云文檔系統(tǒng)的密文檢索方法
【專利摘要】本發(fā)明公開了一種基于云文檔系統(tǒng)的密文檢索方法。其實現(xiàn)步驟是:1)數(shù)據(jù)上傳者對文件加密后發(fā)送給代理服務(wù)器;2)代理服務(wù)器解析文件提取出關(guān)鍵詞,計算出文件的關(guān)鍵詞權(quán)重與關(guān)鍵詞陷門一起發(fā)送給索引服務(wù)器,同時代理服務(wù)器使用隨機(jī)密鑰對文件進(jìn)行二次加密后發(fā)送給存儲服務(wù)器;3)索引服務(wù)器用關(guān)鍵詞陷門構(gòu)建一個二叉樹嵌套于B+樹結(jié)構(gòu)的關(guān)鍵詞陷門索引樹;4)檢索用戶進(jìn)行關(guān)鍵詞檢索時,代理服務(wù)器將待查詢關(guān)鍵詞陷門發(fā)送給索引服務(wù)器,索引服務(wù)器檢索索引樹,得到符合條件的文件標(biāo)識發(fā)送給存儲服務(wù)器;5)存儲服務(wù)器根據(jù)文件標(biāo)識將相應(yīng)密文文件發(fā)送給用戶,用戶解密密文文件得到明文。本發(fā)明安全性強(qiáng),檢索效率高。
【專利說明】基于云文檔系統(tǒng)的密文檢索方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于數(shù)字信息存儲【技術(shù)領(lǐng)域】,特別涉及云存儲中的密文檢索方法,可用于 存儲系統(tǒng)的存儲管理以及文件的檢索。
【背景技術(shù)】
[0002] 隨著云計算技術(shù)發(fā)展的日益成熟,大量的隱私數(shù)據(jù)將被存儲在云服務(wù)器上。由于 云服務(wù)器的不完全可信,為保護(hù)隱私數(shù)據(jù)安全,用戶上傳文件之前需要對文件進(jìn)行加密。如 果加密操作不合適,將會大大降低數(shù)據(jù)利用的效率。當(dāng)用戶希望將上傳的數(shù)據(jù)共享給其他 用戶時,合適的加密操作將會提高文件共享的效率。共享用戶有可能只希望訪問數(shù)據(jù)上傳 者的部分文件,向服務(wù)器提交其感興趣的關(guān)鍵詞,服務(wù)器返回與關(guān)鍵詞相關(guān)的文件給用戶。
[0003] 與明文檢索不同,云存儲中對于文件的搜索是基于密文進(jìn)行檢索。對于云服務(wù)器 中的密文文件,如果也將所有文件下載解密后再進(jìn)行明文搜索,效率將非常低下。因此,對 于加密數(shù)據(jù)的隱私保護(hù)以及檢索在云存儲中非常重要。
[0004] 針對加密文檔進(jìn)行關(guān)鍵詞搜索的密文檢索技術(shù)首先由Dawn Song等人提出,該方 案沒有構(gòu)建任何索引,需要對全部密文進(jìn)行線性掃描,效率較為低下。Goh等人隨后提出了 安全索引的概念,基于該概念,密文檢索技術(shù)可分為對稱可搜索加密和非對稱可搜索加密。
[0005] Song等人在2000年首次提出了對稱可搜索加密方案,即在對稱密碼體制下的密 文檢索方案,該方案只考慮了單關(guān)鍵詞的密文檢索,效率較低。其主要原理是用流密碼即校 驗序列和偽隨機(jī)序列生成加密明文信息,得到密文信息。當(dāng)用戶希望檢索關(guān)鍵詞時,將關(guān)鍵 詞與密文信息線性地進(jìn)行異或操作。將操作結(jié)果與校驗條件相比較,如果符合校驗條件,則 將相應(yīng)的密文信息發(fā)送給用戶,如果不符合校驗條件,則檢索停止。
[0006] Dan Boneh等人于2004年在歐密會上提出了第一個非對稱可搜索加密PEKS方案, 解決了當(dāng)密文存儲于第三方非可信服務(wù)器時的關(guān)鍵詞密文檢索問題。該方案引入了雙線性 映射這一密碼學(xué)原理,用戶每次上傳文件時都需要對所有關(guān)鍵詞使用對運算進(jìn)行加密,效 率仍然不高。隨后,B. Waters等人引入了基于屬性加密的概念,使用PEKS方案來建立帶關(guān) 鍵詞檢索的加密數(shù)據(jù),從而用戶可以使用更好的粒度來控制公鑰加密的強(qiáng)度。Abdalla等人 在2005年完善了公鑰可搜索加密的理論部分并擴(kuò)展了公鑰可搜索加密的應(yīng)用和功能。
[0007] 然而,上述方案并未提及關(guān)鍵詞與文件的相似度,用戶得到的文件與其查詢的關(guān) 鍵詞可能并不匹配。對此,Cao等人考慮關(guān)鍵詞詞頻的信息,提出了關(guān)鍵詞的密文排序查詢 方案,該方案對關(guān)鍵詞與文件的相似度的考慮并不全面,需要掃描全部文檔,同時索引的更 新較為麻煩。基于關(guān)鍵詞與文件相似度的改進(jìn),Wang等人引入了準(zhǔn)則,改進(jìn)了單個關(guān)鍵詞 的密文排序查詢。
[0008] 在現(xiàn)實的使用中,單關(guān)鍵詞的查詢不足以滿足用戶的檢索需求。Cao等人第一次提 出了多關(guān)鍵詞的密文排序查詢方案,將索引向量與查詢向量的內(nèi)積作為多關(guān)鍵詞與文件對 應(yīng)的相似值,從而解決了多關(guān)鍵詞對應(yīng)文檔的排序問題。該方案初步實現(xiàn)了多關(guān)鍵詞的密 文排序查詢,但是由于需要對索引進(jìn)行線性掃描,檢索效率仍然不高。Fu等人對上面的方 案進(jìn)行了改進(jìn),將索引向量存儲于二叉樹中,提高了檢索的效率。然而,二叉樹用于文件索 引時,隨著文件數(shù)的增加,樹的高度越來越大,服務(wù)器在檢索海量文件時的負(fù)擔(dān)也會急劇增 大。同時,基于向量的多關(guān)鍵詞排序查詢方案只適合應(yīng)用與關(guān)鍵詞詞典固定的應(yīng)用場景,當(dāng) 索引中出現(xiàn)了新的關(guān)鍵詞時,索引的修改十分麻煩。
【發(fā)明內(nèi)容】
[0009] 本發(fā)明目的在于提出一種基于云文檔系統(tǒng)的密文檢索方法,以解決現(xiàn)有方法的索 引結(jié)構(gòu)效率低下的問題,同時進(jìn)一步保證用戶的隱私數(shù)據(jù)安全。
[0010] 為實現(xiàn)上述目的,本發(fā)明的技術(shù)方案包括如下步驟:
[0011] ⑴文件上傳
[0012] la)數(shù)據(jù)上傳者為待上傳的文件附加上128位的'0'作為文件頭head,用公鑰PKu 對文件加密,用私鑰SKu對文件頭head進(jìn)行加密得到Csa., ,并用代理服務(wù)器的公鑰 PKs對其私鑰SKu進(jìn)行加密得到(1: (^心.),再將這三個加密項一起上傳至代理服務(wù)器;
[0013] Ib)代理服務(wù)器為文件生成一個文件標(biāo)識,同時解析文件提取出關(guān)鍵詞,并使用排 序函數(shù)計算出關(guān)鍵詞權(quán)重,使用哈希函數(shù)計算出關(guān)鍵詞陷門,將關(guān)鍵詞權(quán)重、關(guān)鍵詞陷門與 文件標(biāo)識一起發(fā)送給索引服務(wù)器;
[0014] Ic)代理服務(wù)器使用一個隨機(jī)的密鑰Rkey對數(shù)據(jù)上傳者加密過的文件進(jìn)行再次 加密后與加密文件頭-起發(fā)送給存儲服務(wù)器,以確保用戶的隱私安全;
[0015] Id)代理服務(wù)器用數(shù)據(jù)上傳者的公鑰PKu對隨機(jī)密鑰Rkey進(jìn)行加密,并將加密后 的隨機(jī)密鑰與數(shù)據(jù)上傳者的身份、時間戳這些元數(shù)據(jù)一起存儲在代理服務(wù)器中,代理服務(wù) 器刪除原有的隨機(jī)密鑰Rkey和用戶私鑰SKu ;
[0016] ⑵索引建立
[0017] 索引服務(wù)器將代理服務(wù)器發(fā)送過來的關(guān)鍵詞陷門構(gòu)建一個二叉樹嵌套于B+樹結(jié) 構(gòu)的關(guān)鍵詞陷門索引樹,以保證文件檢索;
[0018] ⑶單關(guān)鍵詞密文檢索
[0019] 3a)檢索用戶進(jìn)行單關(guān)鍵詞檢索時,將希望檢索的關(guān)鍵詞發(fā)送給代理服務(wù)器;
[0020] 3b)代理服務(wù)器根據(jù)檢索用戶發(fā)送的關(guān)鍵詞計算出相應(yīng)的關(guān)鍵詞陷門發(fā)送給索引 服務(wù)器;
[0021] 3c)索引服務(wù)器根據(jù)關(guān)鍵詞陷門檢索索引樹,得到符合條件的文件標(biāo)識發(fā)送給存 儲服務(wù)器;
[0022] (4)多關(guān)鍵詞密文檢索
[0023] 4a)檢索用戶對多個關(guān)鍵詞(W1, w2, 一,Wj進(jìn)行檢索時,將希望檢索的多關(guān)鍵詞的 邏輯表達(dá)式W1 U W2 U…n Wi發(fā)送給代理服務(wù)器;
[0024] 4b)代理服務(wù)器判斷每個關(guān)鍵詞是在交集中還是在并集中,將關(guān)鍵詞分成兩組, 一組是并集中的關(guān)鍵詞(WpW2, --?,¥」},另一組是交集中的關(guān)鍵詞{Wj+1,Wj+2, "'wj,其中 I ^ j ^ i ;
[0025] 4c)代理服務(wù)器分別將并集(W1, w2,…,Wj}和交集{wj+1, wj+2,…,wj中的每個關(guān)鍵 詞的散列值發(fā)送給索引服務(wù)器;
[0026] 4d)索引服務(wù)器檢索索引樹,將匹配的文件標(biāo)識發(fā)送給代理服務(wù)器;
[0027] 4e)代理服務(wù)器將這些文件標(biāo)識合并,分別對這些文件標(biāo)識進(jìn)行并集排序操作和 交集排序操作;
[0028] 4f)代理服務(wù)器對于并集排序操作以及交集排序操作找出的文件標(biāo)識集合,再進(jìn) 行一次交集排序操作,為兩個文件標(biāo)識集合執(zhí)行交集排序操作,得到最終匹配到的文件標(biāo) 識排序集合。
[0029] (5)文件下載
[0030] 5a)代理服務(wù)器將檢索用戶用私鑰加密的文件頭Ca., 發(fā)送給存儲服務(wù)器;
[0031] 5b)存儲服務(wù)器根據(jù)索引服務(wù)器發(fā)送的文件標(biāo)識,比較文件標(biāo)識對應(yīng)的文件頭 Q (/2^/')和C;A:, (feW)是否相同,將兩者相同的密文文件發(fā)送給檢索用戶;
[0032] 5c)檢索用戶對密文文件進(jìn)行解密得到明文。
[0033] 本發(fā)明與現(xiàn)有技術(shù)相比具有以下優(yōu)點:
[0034] 第一,本發(fā)明通過引入一個代理服務(wù)器,作為可信第三方或者用戶端的服務(wù)器,用 于解析用戶的文件,同時對用戶的加密文件進(jìn)行二次加密,進(jìn)一步保障了用戶的隱私安全。
[0035] 第二,本發(fā)明引入了文件頭的概念,數(shù)據(jù)持有者上傳文件時為每個文件附加上一 個用私鑰加密的128位的'0'作為文件頭,因為服務(wù)器檢索文件時是對系統(tǒng)中的全部文件 進(jìn)行檢索,引入文件頭機(jī)制可以防止用戶檢索時接收到自己未被授權(quán)訪問的文件。
[0036] 第三,在索引的結(jié)構(gòu)方面進(jìn)行了改進(jìn),提出了一種二叉樹嵌套于B+樹的雙樹索引 結(jié)構(gòu),在此索引結(jié)構(gòu)上實現(xiàn)了對關(guān)鍵詞的密文檢索,在保證了用戶隱私安全的同時,提高了 檢索的效率。
[0037] 第四,本發(fā)明對檢索的結(jié)果進(jìn)行排序,保證了用戶接收的文件與所查詢關(guān)鍵詞之 間的高相關(guān)性,且本發(fā)明提出的多關(guān)鍵詞密文檢索方案,可支持對于多個不同邏輯關(guān)系的 關(guān)鍵詞的密文檢索。
【專利附圖】
【附圖說明】
[0038] 圖1為現(xiàn)有的云存儲中密文檢索系統(tǒng)模型圖;
[0039] 圖2為本發(fā)明的云文檔系統(tǒng)模型圖;
[0040] 圖3為本發(fā)明基于云文檔系統(tǒng)的密文檢索總流程圖;
[0041] 圖4為本發(fā)明中的文件上傳子流程圖;
[0042] 圖5為本發(fā)明中的索引結(jié)構(gòu)圖;
[0043] 圖6為本發(fā)明中的索引樹修改子流程圖;
[0044] 圖7為本發(fā)明中的單關(guān)鍵詞檢索子流程圖;
[0045] 圖8為本發(fā)明中的多關(guān)鍵詞檢索子流程圖;
[0046] 圖9為用本發(fā)明的索引樹結(jié)構(gòu)和用二叉樹結(jié)構(gòu)建立索引的對比圖;
[0047] 圖10為用本發(fā)明的索引樹結(jié)構(gòu)和用二叉樹結(jié)構(gòu)在進(jìn)行關(guān)鍵詞查詢的對比圖。
【具體實施方式】
[0048] 下面結(jié)合附圖及具體實例對本發(fā)明作進(jìn)一步的具體描述:
[0049] 參照圖1,在現(xiàn)有的云存儲中密文檢索系統(tǒng)中,用戶與云服務(wù)器進(jìn)行直接交互,數(shù) 據(jù)上傳者將加密的文件以及關(guān)鍵詞陷門上傳到云服務(wù)器中,檢索用戶需要進(jìn)行檢索時,則 生成需要檢索關(guān)鍵詞的陷門給云服務(wù)器,云服務(wù)器根據(jù)檢索結(jié)果返回匹配到的文件給檢索 用戶。
[0050] 該系統(tǒng)由于不存在單獨的索引服務(wù)器,用戶的文件標(biāo)識以線性結(jié)構(gòu)或二叉樹結(jié)構(gòu) 存儲在云服務(wù)器上。在大規(guī)模的數(shù)據(jù)存儲中,樹節(jié)點存儲的元素數(shù)是有限的。當(dāng)文件數(shù)量 非常大時,二叉樹結(jié)構(gòu)的深度會變的很大,服務(wù)器對文件進(jìn)行檢索時,對于磁盤I/O的讀寫 過于頻繁,從而導(dǎo)致檢索效率變得低下。
[0051] 參照圖2,本發(fā)明的云文檔系統(tǒng)在圖1的基礎(chǔ)上加入了代理服務(wù)器作為可信第三 方,為用戶和云服務(wù)器之間提供接口,保證了用戶的隱私安全;同時使用單獨的索引服務(wù)器 來存儲索引樹,以提高系統(tǒng)的工作效率。
[0052] 參照圖3,本發(fā)明基于圖2系統(tǒng)進(jìn)行密文檢索的步驟包括如下:
[0053] 步驟1.用戶和代理服務(wù)器產(chǎn)生密鑰對。
[0054] 用戶和代理服務(wù)器共同選取公開參數(shù)p和g,其中p是大素數(shù),g是p的本原根;
[0055] 代理服務(wù)器隨機(jī)選取一個秘密隨機(jī)整數(shù)SKs作為私鑰,得到代理服務(wù)器的公鑰為: PKs - mod p
[0056] 用戶選取一個秘密隨機(jī)整數(shù)SKu作為私鑰,得到用戶的公鑰為: = g、?' mod /)。
[0057] 步驟2?文件上傳。
[0058] 數(shù)據(jù)上傳者在上傳文件之前,使用文件頭機(jī)制處理文件后發(fā)送至代理服務(wù)器,代 理服務(wù)器對文件進(jìn)行處理后發(fā)送關(guān)鍵詞陷門信息給索引服務(wù)器,發(fā)送密文文件給存儲服務(wù) 器。
[0059] 參照圖4,本步驟的具體實現(xiàn)如下:
[0060] 2a)數(shù)據(jù)上傳者在上傳文件F之前,為文件F附加一個文件頭head,文件頭為128 位的'〇' ;
[0061] 2b)數(shù)據(jù)上傳者用公鑰PKu加密文件,用私鑰SKu對文件頭head進(jìn)行加密得到加 密文件頭Ga., ,并用代理服務(wù)器的公鑰PKs對其私鑰SKu進(jìn)行加密得到數(shù)據(jù)上傳者的 加密私鑰認(rèn)Y ),再將這三個加密項一起上傳至代理服務(wù)器;
[0062] 2c)代理服務(wù)器接收到上傳的文件后,生成一個隨機(jī)密鑰Rkey用于加密文件,為 文件生成一個文件標(biāo)識FID ;
[0063] 2cl)代理服務(wù)器使用其私鑰SKs對數(shù)據(jù)上傳者的加密私鑰Cpa.(從,)進(jìn)行解密, 得到數(shù)據(jù)上傳者的私鑰SKu,用SKu解密文件后對文件進(jìn)行解析,提取出包含t個關(guān)鍵詞的 關(guān)鍵詞集為:
[0064] {w1; W2, --?, Wi, . . . wj ;
[0065] 2c2)計算出每個關(guān)鍵詞的權(quán)重),并將其散列值h(Wi)與對應(yīng)的文件標(biāo)識FID 一起發(fā)送給索引服務(wù)器,計算關(guān)鍵詞權(quán)重的公式為:
[0066]
【權(quán)利要求】
1. 一種云存儲系統(tǒng)中的密文檢索方法,包括如下步驟: (1) 文件上傳 la) 數(shù)據(jù)上傳者為待上傳的文件附加上128位的'0'作為文件頭head,用公鑰?&對 文件加密,用私鑰SK"對文件頭head進(jìn)行加密得,并用代理服務(wù)器的公鑰PKS對 其私鑰S&進(jìn)行加密得到cPKs (sig,再將這三個加密項一起上傳至代理服務(wù)器; lb) 代理服務(wù)器為文件生成一個文件標(biāo)識,同時解析文件提取出關(guān)鍵詞,并使用排序函 數(shù)計算出關(guān)鍵詞權(quán)重,使用哈希函數(shù)計算出關(guān)鍵詞陷門,將關(guān)鍵詞權(quán)重、關(guān)鍵詞陷門與文件 標(biāo)識一起發(fā)送給索引服務(wù)器; lc) 代理服務(wù)器使用一個隨機(jī)的密鑰Rkey對數(shù)據(jù)上傳者加密過的文件進(jìn)行再次加密 后與加密文件頭(/mk) -起發(fā)送給存儲服務(wù)器,以確保用戶的隱私安全; ld) 代理服務(wù)器用數(shù)據(jù)上傳者的公鑰PK"對隨機(jī)密鑰Rkey進(jìn)行加密,并將加密后的隨 機(jī)密鑰與數(shù)據(jù)上傳者的身份、時間戳這些元數(shù)據(jù)一起存儲在代理服務(wù)器中,代理服務(wù)器刪 除原有的隨機(jī)密鑰Rkey和用戶私鑰S& ; (2) 索引建立 索引服務(wù)器將代理服務(wù)器發(fā)送過來的關(guān)鍵詞陷門構(gòu)建一個二叉樹嵌套于B+樹結(jié)構(gòu)的 關(guān)鍵詞陷門索引樹,以保證文件檢索; (3) 單關(guān)鍵詞密文檢索 3a)檢索用戶進(jìn)行單關(guān)鍵詞檢索時,將希望檢索的關(guān)鍵詞發(fā)送給代理服務(wù)器; 3b)代理服務(wù)器根據(jù)檢索用戶發(fā)送的關(guān)鍵詞計算出相應(yīng)的關(guān)鍵詞陷門發(fā)送給索引服務(wù) 器; 3c)索引服務(wù)器根據(jù)關(guān)鍵詞陷門檢索索引樹,得到符合條件的文件標(biāo)識發(fā)送給存儲服 務(wù)器; (4) 多關(guān)鍵詞密文檢索 4a)檢索用戶對多個關(guān)鍵詞{Wl,W2,...,Wi}進(jìn)行檢索時,將希望檢索的多關(guān)鍵詞的邏 輯表達(dá)式ruw2u...nWi發(fā)送給代理服務(wù)器; 4b)代理服務(wù)器判斷每個關(guān)鍵詞是在交集中還是在并集中,將關(guān)鍵詞分成兩組,一 組是并集中的關(guān)鍵詞{wpw2, . . .,Wj},另一組是交集中的關(guān)鍵詞{wj+1,wj+2, . . .,wj,其中 1 ^j^i; 4c)代理服務(wù)器分別將并集h,w2,…,Wj}和交集{wj+1,wj+2,…,wj中的每個關(guān)鍵詞 的散列值發(fā)送給索引服務(wù)器; 4d)索引服務(wù)器檢索索引樹,將匹配的文件標(biāo)識發(fā)送給代理服務(wù)器; 4e)代理服務(wù)器將這些文件標(biāo)識合并,分別對這些文件標(biāo)識進(jìn)行并集排序操作和交集 排序操作; 4f)代理服務(wù)器對于并集排序操作以及交集排序操作找出的文件標(biāo)識集合,再進(jìn)行一 次交集排序操作,為兩個文件標(biāo)識集合執(zhí)行交集排序操作,得到最終匹配到的文件標(biāo)識排 序集合。 (5) 文件下載 5a)代理服務(wù)器將檢索用戶用私鑰加密的文件頭(few/';)發(fā)送給存儲服務(wù)器; 5b)存儲服務(wù)器根據(jù)索引服務(wù)器發(fā)送的文件標(biāo)識,比較文件標(biāo)識對應(yīng)的文件頭
是否相同,將兩者相同的密文文件發(fā)送給檢索用戶; 5c)檢索用戶對密文文件進(jìn)行解密得到明文。
2. 根據(jù)權(quán)利要求1所述的方法,其中所述步驟(lb)中代理服務(wù)器解析文件提取出關(guān)鍵 詞,是代理服務(wù)器使用其私鑰SKs對用其公鑰PKS加密后的數(shù)據(jù)上傳者私鑰CPKs (SK")進(jìn)行解 密,得到用戶的私鑰SK",再用該SK"解密文件,并對解密后的文件進(jìn)行解析,提取出關(guān)鍵詞 集為:{w"w2, ? ? ?,wj。
3. 根據(jù)權(quán)利要求1所述的方法,其中所述步驟(lb)中使用排序函數(shù)計算出關(guān)鍵詞權(quán) 重,按如下公式進(jìn)行:
其中,為文件中對應(yīng)的關(guān)鍵詞的詞頻數(shù);為文件中包含的全部詞的數(shù)量;N是云文檔系 統(tǒng)中的全部文件數(shù);gi是包含關(guān)鍵詞的全部文件數(shù)。
4. 根據(jù)權(quán)利要求1所述的方法,其中所述步驟(2)索引服務(wù)器構(gòu)建一個二叉樹嵌套于 B+樹結(jié)構(gòu)的關(guān)鍵詞陷門索引樹,其步驟如下: 2a)當(dāng)索引服務(wù)器收到關(guān)鍵詞Wi的散列值\以及對應(yīng)的文件標(biāo)識^時,先檢索B+ 樹,查找B+樹中是否存在Wi的散列值\ :如果索引服務(wù)器在B+樹中找到該關(guān)鍵詞Wi的散 列值&,則只需將對應(yīng)的文件標(biāo)識插入到該節(jié)點中的二叉排序樹中,執(zhí)行2b);若在B+ 樹中未找到&,則需將&作為一個新的節(jié)點插入B+樹中,并將對應(yīng)的文件標(biāo)識取1;作為該 節(jié)點中二叉排序樹的根節(jié)點; 2b)對每一個文件標(biāo)識按照其關(guān)鍵詞權(quán)重大小執(zhí)行二叉排序查詢算法,在二叉樹中查 找該文件標(biāo)識:如果沒有找到,則將文件標(biāo)識形成一個新的節(jié)點點并將其插入到二叉樹中, 執(zhí)行2c);如果找到了,則無需更新二叉樹; 2c)判斷二叉排序樹是否為空:若二叉排序樹為空,則將待插入節(jié)點作為根節(jié)點插入 到空樹中;當(dāng)二叉排序樹不為空,則根據(jù)待插入節(jié)點對應(yīng)文件的關(guān)鍵詞權(quán)重大小將文件標(biāo) 識插入到二叉排序樹中。
5. 根據(jù)權(quán)利要求1所述的方法,其中步驟(3c)所述的索引服務(wù)器根據(jù)關(guān)鍵詞陷門查詢 索引樹,按如下步驟進(jìn)行: 3cl)索引服務(wù)器在B+索引樹中查詢關(guān)鍵詞陷門h(w); 3c2)在B+樹中找到h(w)所在節(jié)點后查詢該節(jié)點中的二叉排序樹,將二叉樹中存儲的 文件標(biāo)識按照中序遍歷的順序發(fā)送給存儲服務(wù)器。
6. 根據(jù)權(quán)利要求1所述的方法,其中步驟(4d)所述的索引服務(wù)器檢索索引樹,將匹配 的文件標(biāo)識發(fā)送給代理服務(wù)器,按如下步驟進(jìn)行: 4dl)索引服務(wù)器依次檢索出并集中的每個關(guān)鍵詞對應(yīng)的文件標(biāo)識集合為 F/D丨F/D,:"j(0<mS./),按照關(guān)鍵詞權(quán)重從大到小依次排序后發(fā)送給代理服務(wù) 器,其對應(yīng)的關(guān)鍵詞權(quán)重為{約(w,")(w,"),…,% (w",)}; 4d2)索引服務(wù)器依次檢索出交集中的每個關(guān)鍵詞\對應(yīng)的文件標(biāo)識集合為{FID:.FID:.....F/D,"} (./<//9_),按照關(guān)鍵詞權(quán)重從大到小依次排序后發(fā)送給代理服務(wù) 器,其對應(yīng)的關(guān)鍵詞權(quán)重為{的(),妁(w"),…肩()}。
7. 根據(jù)權(quán)利要求1所述的方法,其中所述步驟(4e)中代理服務(wù)器將文件標(biāo)識合并,分 別對這些文件標(biāo)識進(jìn)行并集排序操作和交集排序操作,按如下步驟進(jìn)行: 4el)代理服務(wù)器對并集中每個關(guān)鍵詞所匹配到的對應(yīng)文件標(biāo)識集合求并集,用如下公 式為每個不同的文件標(biāo)識計算并集中關(guān)鍵詞的權(quán)重:
4e2)根據(jù)并集中關(guān)鍵詞權(quán)重的運算結(jié)果,為這些不同的文件標(biāo)識進(jìn)行排序,得到文件 標(biāo)識集合為{FIDi,F(xiàn)ID2,…,F(xiàn)IDJ,其對應(yīng)的關(guān)鍵詞權(quán)重為?[灼(U),朽(U),...,代.(U)}; 4e3)代理服務(wù)器對交集中每個關(guān)鍵詞所匹配到的文件標(biāo)識集合{FID^FID:F/D,"}求交集,用如下公式為每個交集中的文件標(biāo)識計算交集中關(guān)鍵詞的 權(quán)重:
4e4)根據(jù)交集中關(guān)鍵詞的權(quán)重,為這些不同的文件標(biāo)識進(jìn)行排序,得到文件標(biāo)識集合 {fid"fid2,…,F(xiàn)iDy}對應(yīng)的關(guān)鍵詞權(quán)重集合為h(n)M(nx._.,A(n)}。
8. 根據(jù)權(quán)利要求1所述的方法,其中所述步驟(5c)中檢索用戶對接收到的文件進(jìn)行解 密,按如下步驟進(jìn)行: 5cl)代理服務(wù)器提取出用數(shù)據(jù)上傳者的公鑰加密后的隨機(jī)密鑰(/&印)發(fā)送給用 戶; 5c2)檢索用戶使用私鑰SKu解密C)>A,(似??;)得到Rkey,用SKu和Rkey解密密文文件后 得到明文。
【文檔編號】G06F17/30GK104408177SQ201410773613
【公開日】2015年3月11日 申請日期:2014年12月15日 優(yōu)先權(quán)日:2014年12月15日
【發(fā)明者】樊凱, 王朗, 李暉 申請人:西安電子科技大學(xué)