專利名稱:用于快速密文檢索的方法、裝置和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息獲取技術(shù),尤其涉及用于快速密文檢索的方法、裝置 和系統(tǒng)。
背景技術(shù):
隨著網(wǎng)絡(luò)和通信技術(shù)的廣泛使用,數(shù)據(jù)存儲和管理服務(wù)變得普遍起 來。在一些情況中,出于各種原因,用戶將一些,甚至大量的數(shù)據(jù)存儲在 由第三方存儲供應(yīng)商維護(hù)的(一個或多個)遠(yuǎn)程服務(wù)器上,這些原因例如 是用戶終端的存儲容量有限、在用戶終端處不能提供穩(wěn)定或長時間連續(xù)的 數(shù)據(jù)訪問、數(shù)據(jù)維護(hù)的成本(考慮到存儲管理的成本一般是最初獲取數(shù)據(jù) 的成本的5 10倍),等等。
但是,大多數(shù)第三方存儲供應(yīng)商并不提供對數(shù)據(jù)保密性和完整性的強(qiáng) 有力的保障。如果敏感數(shù)據(jù)被存儲在由不完全可信的第三方維護(hù)的存儲服 務(wù)器上,則需要一個安全系統(tǒng)來提供對數(shù)據(jù)保密性和訪問模式隱私性的保 障。
圖1示出了一種情形,其中數(shù)據(jù)擁有者Alice將她的文件外發(fā)到不完 全可信的第三方,即存儲服務(wù)提供者,并且她還想要一些文件被分享給特 定的檢索者,例如她的朋友、同事和/或親戚。換言之,她希望讓檢索者直 接向存儲服務(wù)檢索她的文件,而不是向Alice自己發(fā)送查詢。另一方面, Alice希望限定并實(shí)行對被分享的文件的訪問權(quán)限。在圖l所示的示例中, Alice希望文件A/ove/.;7#、尸ete^g和F/朋""W.fifoc可以被她的親戚檢索和 訪問,但是其他文件不被她的親戚看到。類似地,Alice希望一些文件可以 分別被她的朋友和同事檢索和訪問,但是其他文件不行。為了實(shí)現(xiàn)這樣的 目的,需要數(shù)據(jù)安全和訪問控制措施。
由于存儲服務(wù)提供者是不完全可信的,因此Alice的文件需要全部加
8密,并且存儲服務(wù)提供者不能將文件解密密鑰散播給檢索者。此外,Alice
不能依賴于存儲服務(wù)提供者來實(shí)行對她的文件的訪問控制。
鑒于上述情形,存在以下問題如何使得檢索者能夠檢索文件并進(jìn)一
步訪問文件;如何將文件解密密鑰傳播給檢索者;如何針對不同的檢索者 區(qū)分不同的文件訪問權(quán)限;如果文件被更新或去除,如何維護(hù)服務(wù);如何 在計(jì)算和通信開銷方面使得方案具有高的效率。
在遠(yuǎn)程數(shù)據(jù)中容易并高效地進(jìn)行檢索的能力是一個非常重要的特點(diǎn)。 迄今為止,存在一些高效的基于內(nèi)容的關(guān)鍵詞檢索索引方案。但是,在安 全遠(yuǎn)程存儲中支持具有隱私性的基于內(nèi)容的檢索是困難的,并且經(jīng)常要么 明顯損失安全性,要么明顯損失性能。例如,如果數(shù)據(jù)以加密的形式存儲 在遠(yuǎn)程服務(wù)器上,則為了執(zhí)行基于內(nèi)容的檢索,可能難以負(fù)擔(dān)在服務(wù)器處 進(jìn)行解密,或者將大批加密的數(shù)據(jù)傳送到客戶端。前者因?yàn)榭赡懿煌耆?信的服務(wù)器需要知道解密密鑰而損失了安全性,而后者因?yàn)榇罅繑?shù)據(jù)傳輸 而損失了性能。
在中國專利申請公開CN1588365A中,發(fā)明人李新提出了一種稱為 "密文全文檢索"技術(shù)。在該密文全局檢索技術(shù)中,在索引階段,數(shù)據(jù)擁 有者首先創(chuàng)建針對所有文件的索引;然后使用一個密鑰對索引中的檢索詞 進(jìn)行加密,得到密文索引,使用同一密鑰對文件進(jìn)行加密,得到加密的文 件,并用一個公鑰PK對該密鑰加密;最后,數(shù)據(jù)擁有者將密文索引、加 密的文件以及密鑰的密文存儲在存儲服務(wù)器上。在檢索階段,數(shù)據(jù)擁有者 在進(jìn)行檢索之前,首先從存儲服務(wù)器下載密鑰的密文,利用與公鑰相對應(yīng) 的私鑰對密鑰的密文進(jìn)行解密;其次,數(shù)據(jù)擁有者利用密鑰對査詢檢索詞 加密,并將密文檢索詞發(fā)送給存儲服務(wù)器;再次,存儲服務(wù)器在密文索引 中査找相同的密文檢索詞;最后,數(shù)據(jù)擁有者根據(jù)匹配結(jié)果獲取加密的文 件,并用密鑰對這些加密的文件解密。如果數(shù)據(jù)擁有者希望授權(quán)一個檢索 者對該密文索引和加密的文件進(jìn)行檢索,他用該檢索者的公鑰對密鑰進(jìn)行 加密,并將密鑰的密文發(fā)送給該檢索者。
利用這樣的方案,數(shù)據(jù)擁有者僅使用單個密鑰來加密所有的文件。在 大多數(shù)情況中的文件加密使用的是流式密文。但是,已經(jīng)知道用單個密鑰加密多于一個文件是一種不安全的方法。另外,數(shù)據(jù)擁有者使用同一密鑰 來解密所有文件和所有關(guān)鍵詞。這樣,如果檢索者曾經(jīng)對數(shù)據(jù)擁有者的文 件執(zhí)行過任何關(guān)鍵詞的檢索,則檢索者可以獲取數(shù)據(jù)擁有者的全部文件。 因此,上述的密文全文檢索技術(shù)在圖1所示的應(yīng)用中不能很好地保證安全 性。
D. Boneh, G. D. Crescenzo, R. Ostrovsky, G. Persiano, "Public Key Encryption with Keyword Search", EuroCrypt 2004; and R. Curtmola, J. Garay, S. Kamara, "Searchable Symmetric Encryption: Improved Definitions and Efficient Constructions", CCS 2006中提出了另一種更加復(fù)雜的方案。利用 這種方案,在索引階段,數(shù)據(jù)擁有者首先選擇文件中的一些特殊字段(例 如電子郵件中的關(guān)鍵詞"緊急")來創(chuàng)建索引。具體地說,對于每個文 件,數(shù)據(jù)擁有者對特定關(guān)鍵詞加密。例如,<A = g、 Bz/^^/^KW),/^) >是"加密后的關(guān)鍵詞",其中,KW是關(guān)鍵詞,G,XGr> G2, g是G, 的生成子,"和//2是兩個不同的哈希函數(shù),r是Z;中的隨機(jī)數(shù),A等于 g、 x是秘密密鑰并且也在Z;中。這樣,安全索引由一系列元組構(gòu)成,其 中第i個元組是〈ciphertexti: (A,, B,),..., (A , B,,)>,其中ciphertexti是利用文 件加密密鑰Kfuei加密的Fil&的密文。在檢索階段,數(shù)據(jù)擁有者首先通過計(jì) 算并向檢索者發(fā)送針對關(guān)鍵詞KW的陷門(trapdoor) TKW=i^(KW),來 授權(quán)該檢索者查詢該關(guān)鍵詞。然后,檢索者向存儲服務(wù)器提交T,。對每 個文件的每個加密后的關(guān)鍵詞,存儲服務(wù)器計(jì)算B'二A(e(T,,A))來檢查 文件是否包含KW。如果B=B',則加密的文件是匹配的輸出,反之亦 然。如果檢索者希望對加密的文件解密,則需要與數(shù)據(jù)擁有者的另一輪交 互來獲取相應(yīng)的解密密鑰。
利用上述方案,存儲服務(wù)器花費(fèi)在檢索上的計(jì)算的復(fù)雜度為O(mX w),其中m是文件的數(shù)目,n是每個文件中的不同的關(guān)鍵詞的平均數(shù)目。 例如,對于1000個文件和10個關(guān)鍵詞,在配備有8個CPU的存儲服務(wù)器 上, 一次檢索需要30秒。該方案的另一個缺點(diǎn)在于在存儲服務(wù)器返回 了匹配的結(jié)果(即含有關(guān)鍵詞的加密的文件)之后,為了獲得這些加密的 文件的解密密鑰,檢索者必須聯(lián)系數(shù)據(jù)擁有者。鑒于現(xiàn)有技術(shù)中的問題作出了的本發(fā)明,提供了 一種用于快速密文檢 索的方法、裝置和系統(tǒng)。
利用根據(jù)本發(fā)明的新穎的快速密文檢索方案,在先進(jìn)的基于內(nèi)容的檢 索應(yīng)用中,向利用不完全可信的存儲服務(wù)器的外發(fā)存儲提供了以下一個或 多個或者其他的重要的安全特性
保密性——無論是在客戶端一服務(wù)器交互中還是在服務(wù)器方,即使是 惡意的服務(wù)器,存儲在服務(wù)器上的數(shù)據(jù)也是不可破解的。
檢索隱私性——在整個檢索過程中,檢索中所關(guān)心的關(guān)鍵詞以及檢索 者的隱私級別不會暴露給服務(wù)器。
多級別獲取^每個特定的檢索者只能獲得可在其隱私級別上公開的 文件。
可確認(rèn)解密——檢索者能夠確認(rèn)在檢索者方執(zhí)行的對索引中的加密了 的條目的解密的正確性。
虛擬刪除——服務(wù)器可以從要提供給檢索者的檢索結(jié)果中屏蔽掉被刪 除的文件。文件刪除后對索引的更新可以以后以較低頻次并按照對服務(wù)較 小影響的方式來執(zhí)行。
在加密索引中定位條目——利用附加參數(shù),服務(wù)器被提供了在索引中 定位與特定文件相關(guān)的文件定位信息的能力。
加密索引的更新——加密索引可以被快速更新,以添加或刪除與被添 加或刪除的文件有關(guān)的條目。
細(xì)粒度授權(quán)——可以不僅根據(jù)隱私級別,而且還根據(jù)關(guān)鍵詞來控制檢 索的授權(quán)。
鏈?zhǔn)绞跈?quán)——處于任何隱私級別的檢索者可以檢索在其所處隱私級別 所支配的文件,并且較高隱私級別將支配較低隱私級別。
根據(jù)本發(fā)明的一個方面,提供了一種用于密文檢索的方法,包括設(shè)
置一個或多個文件定位器生成密鑰;通過將至少包含關(guān)鍵詞的串映射到唯 一值,來生成一個或多個關(guān)鍵詞條目集合定位器;通過用至少一個文件定位器生成密鑰對多個文件中的每個文件的文件獲取信息進(jìn)行加密,來生成
一個或多個文件定位器;以及通過一個或多個關(guān)鍵詞條目集合形成加密索 引,其中每個關(guān)鍵詞條目集合由一個關(guān)鍵詞條目集合定位器標(biāo)識,并至少 包含一個或多個與相應(yīng)關(guān)鍵詞相關(guān)聯(lián)的文件的文件定位器。
根據(jù)本發(fā)明的另一個方面,提供了一種用于密文檢索的裝置,包括 加密/解密設(shè)置單元,被配置為設(shè)置一個或多個文件定位器生成密鑰;關(guān)鍵 詞條目集合定位器生成單元,被配置為通過將至少包含關(guān)鍵詞的串映射到 唯一值,來生成一個或多個關(guān)鍵詞條目集合定位器;文件定位器生成單 元,被配置為通過用至少一個文件定位器生成密鑰對多個文件中的每個文 件的文件獲取信息進(jìn)行加密,來生成一個或多個文件定位器;以及索引形 成單元,被配置為通過一個或多個關(guān)鍵詞條目集合形成加密索引,其中每 個關(guān)鍵詞條目集合由一個關(guān)鍵詞條目集合定位器標(biāo)識,并至少包含一個或 多個與相應(yīng)關(guān)鍵詞相關(guān)聯(lián)的文件的文件定位器。
根據(jù)本發(fā)明的另一個方面,提供了一種在加密文件檢索中使用的方 法,包括存儲包括一個或多個關(guān)鍵詞條目集合的加密索引,每個關(guān)鍵詞 條目集合由一個關(guān)鍵詞條目集合定位器標(biāo)識,并至少包含一個或多個文件 定位器,每個文件定位器伴隨有一個索引定位器;接收索引定位指示器; 以及如果伴隨一個文件定位器的索引定位器等于通過映射至少含有所述文 件定位器、標(biāo)識關(guān)鍵詞條目集合的關(guān)鍵詞條目集合定位器以及所述被接收 的索引定位指示器的串而計(jì)算出的值,則從所述關(guān)鍵詞條目集合中刪除所 述文件定位器。
根據(jù)本發(fā)明的另一個方面,提供了一種在加密文件檢索中使用的裝 置,包括存儲單元,被配置為存儲包括一個或多個關(guān)鍵詞條目集合的加 密索引,每個關(guān)鍵詞條目集合由一個關(guān)鍵詞條目集合定位器標(biāo)識,并至少 包含一個或多個文件定位器,每個文件定位器伴隨有一個索引定位器;以 及索引更新單元,被配置為如果伴隨一個文件定位器的索引定位器等于通 過映射至少含有所述文件定位器、標(biāo)識關(guān)鍵詞條目集合的關(guān)鍵詞條目集合 定位器以及一個被接收的索引定位指示器的串而計(jì)算出的值,則從所述關(guān) 鍵詞條目集合中刪除所述文件定位器。根據(jù)本發(fā)明的另一個方面,提供了一種用于加密文件檢索的方法,包 括接收關(guān)鍵詞條目集合定位器和文件定位器解密密鑰;利用所述關(guān)鍵詞
條目集合定位器獲取一個或多個文件定位器;用所述文件定位器解密密鑰 對每個文件定位器解密,以獲得一個或多個加密資源標(biāo)識符和相應(yīng)的文件 解密密鑰;獲取由所述一個或多個加密資源標(biāo)識符標(biāo)識的一個或多個加密 文件;以及用相應(yīng)的文件解密密鑰對每個加密文件解密。
根據(jù)本發(fā)明的另一個方面,提供了一種用于加密文件檢索的裝置,包 括檢索請求單元,被配置為生成至少包含關(guān)鍵詞條目集合定位器的檢索 請求;文件定位器解密單元,被配置為用文件定位器解密密鑰對一個或多 個文件定位器解密,以獲得一個或多個加密資源標(biāo)識符和相應(yīng)的文件解密 密鑰;文件獲取單元,被配置為獲取由所述一個或多個加密資源標(biāo)識符標(biāo) 識的一個或多個加密文件;以及用相應(yīng)的文件解密密鑰對每個加密文件解 密。
本發(fā)明使得數(shù)據(jù)擁有者能夠?qū)用軐?dǎo)頻索引應(yīng)用基于屬性的和多級別 的獲取。所有數(shù)據(jù)以及相關(guān)聯(lián)的元數(shù)據(jù)在被發(fā)送給服務(wù)器之前,在數(shù)據(jù)擁 有者處使用加密技術(shù)被加密。在服務(wù)器上,數(shù)據(jù)在其存在期間保持被加密 的狀態(tài)。為了使得能夠?qū)用軘?shù)據(jù)進(jìn)行基于內(nèi)容的檢索,所有被存儲的文 件在數(shù)據(jù)擁有者處在索引階段以安全的方式編制索引。這樣得到索引結(jié)構(gòu) 在服務(wù)器處的保密存儲,以用于以后的安全客戶訪問。通過在檢索結(jié)果中 進(jìn)行過濾,保證了虛擬刪除。通過根據(jù)隱私級別或者關(guān)鍵詞,限制和部署 與檢索者適應(yīng)的解密密鑰,實(shí)現(xiàn)了多級別獲取。
本發(fā)明采用了高效的檢索算法,使得檢索能夠?qū)Υ罅课募完P(guān)鍵詞進(jìn) 行。利用本發(fā)明,檢索時間是O(log(N)) to 0(1),其中N是全部文件的所 有不同的關(guān)鍵詞的數(shù)目。因此,與需要O(wX")的現(xiàn)有技術(shù)相比,本發(fā)明 提供了高效和可行的方案。
從下面結(jié)合附圖對本發(fā)明優(yōu)選實(shí)施例的描述中可以更好地理解本發(fā) 明,附圖中類似的參考標(biāo)號表示類似的部分,其中
13圖1是示出了使用存儲服務(wù)的一個示例的示圖2是示意性地示出了在其中應(yīng)用了本發(fā)明的系統(tǒng)的配置示例的示
圖3是示意性地示出了根據(jù)本發(fā)明一個實(shí)施例的數(shù)據(jù)擁有者終端的配 置示例的框圖4是示意性地示出了根據(jù)本發(fā)明一個實(shí)施例的數(shù)據(jù)擁有者終端的操 作的流程圖5是示意性地示出了根據(jù)本發(fā)明一個實(shí)施例的生成加密倒排索引的 過程示例的流程圖6是示意性地示出了根據(jù)本發(fā)明一個實(shí)施例的索引階段的數(shù)據(jù)流的 示例的示圖7是示意性地示出了根據(jù)本發(fā)明一個實(shí)施例的服務(wù)器的配置示例的 框圖8是示意性地示出了根據(jù)本發(fā)明一個實(shí)施例的檢索者終端的配置示 例的示圖9是示意性地示出了根據(jù)本發(fā)明一個實(shí)施例的檢索過程的流程圖; 圖10是示意性地示出了根據(jù)本發(fā)明一個實(shí)施例的檢索階段的數(shù)據(jù)流 的示圖11是示意性地示出了根據(jù)本發(fā)明一個實(shí)施例的檢索階段中的過濾 處理的數(shù)據(jù)流示例的示圖12是示意性地示出了根據(jù)本發(fā)明一個實(shí)施例的數(shù)據(jù)擁有者終端的 配置示例的框圖13是示意性地示出了根據(jù)本發(fā)明一個實(shí)施例的檢索階段的數(shù)據(jù)流 示例的示圖14是示意性地示出了根據(jù)本發(fā)明一個實(shí)施例的服務(wù)器的配置示例 的框圖15是示意性地示出了根據(jù)本發(fā)明一個實(shí)施例的用于當(dāng)加密的文件 要被刪除時更新加密索引的服務(wù)器的處理的流程圖16是示意性地示出了根據(jù)本發(fā)明一個實(shí)施例的更新加密索引的數(shù)據(jù)流示例的示圖;并且
圖17是示意性地示出了根據(jù)本發(fā)明一個實(shí)施例的更新加密索引的數(shù)
據(jù)流的另一個示例的示圖。
具體實(shí)施例方式
下面將參考附圖描述本發(fā)明的。在下面的詳細(xì)描述中,提出了許多具 體細(xì)節(jié),以便提供對本發(fā)明的全面的理解。但是,對于本領(lǐng)域技術(shù)人員來 說很明顯,本發(fā)明可以在不需要這些具體細(xì)節(jié)中的一些細(xì)節(jié)的情況下被實(shí) 施。在附圖和下面的描述中,沒有示出公知的結(jié)構(gòu)和技術(shù),以便避免不必 要地使本發(fā)明模糊。
圖2是示意性地示出了在其中應(yīng)用了本發(fā)明的一個系統(tǒng)的示圖。該系
統(tǒng)中涉及了三方至少一個數(shù)據(jù)擁有者、至少一個服務(wù)提供者、以及一個
或多個檢索者。如圖2所示,數(shù)據(jù)擁有者的裝置或終端、由服務(wù)提供者管
理的服務(wù)器、以及一個或多個檢索者的裝置或終端經(jīng)由通信網(wǎng)絡(luò)彼此連接 并彼此可通信。數(shù)據(jù)擁有者和服務(wù)器的裝置或終端中的每個可以實(shí)現(xiàn)為能
夠處理信息和進(jìn)行信息通信的設(shè)備,例如個人計(jì)算機(jī)(PC)、個人數(shù)字助 理(PDA)、智能電話、或者其他數(shù)據(jù)處理設(shè)備。服務(wù)器一般實(shí)現(xiàn)為由服 務(wù)提供者管理的能夠存儲和維護(hù)許多數(shù)據(jù),并且使得終端能夠有條件地訪 問數(shù)據(jù)的的設(shè)備或一組設(shè)備。
在本發(fā)明的系統(tǒng)中,數(shù)據(jù)擁有者將其文件和相關(guān)聯(lián)的元數(shù)據(jù)加密,并 將密文存儲在服務(wù)器上。在服務(wù)器上,文件始終保持被加密的狀態(tài)。為了 使得能夠?qū)用艿奈募M(jìn)行基于內(nèi)容的檢索,數(shù)據(jù)擁有者根據(jù)文件的每個 關(guān)鍵詞來生成加密的索引,并將加密的索引存儲到服務(wù)器上。該索引是倒 排索引,并且在服務(wù)器上存儲時保持被加密。為了授權(quán)檢索者對加密索引 進(jìn)行檢索并獲取包含一個或多個特定關(guān)鍵詞的文件,數(shù)據(jù)擁有者向檢索者 授予包括特定解密密鑰的必要數(shù)據(jù)。然后,利用數(shù)據(jù)擁有者授予的數(shù)據(jù), 檢索者可以通過檢索請求對存儲在服務(wù)器上的加密的文件進(jìn)行檢索,并且 作為結(jié)果,從服務(wù)器獲取有關(guān)的加密的文件,并通過利用被授予的解密密 鑰進(jìn)行解密,來獲得文件的明文。根據(jù)本發(fā)明,利用由一個或多個關(guān)鍵詞條目集合(Keyword Item Set, KIS)組成的加密倒排索引,加密的文件被索引。無論是在客戶端一服務(wù) 器交互中還是在服務(wù)器方,即使是惡意的服務(wù)器,存儲在服務(wù)器上的數(shù)據(jù) 也是不可破解的。每個特定的檢索者只能獲取和解密與該檢索者被授予的 特定隱私級別的文件定位器解密密鑰相對應(yīng)的加密文件。加密的文件在被 刪除之后可以從檢索中排除,而加密倒排索引的更新可以以后有條件地執(zhí) 行。
下面將詳細(xì)描述本發(fā)明的各個方面的特征和示例性實(shí)施例。應(yīng)當(dāng)注 意,下面對實(shí)施例的描述僅僅是為了通過示出本發(fā)明的示例來提供對本發(fā) 明的更好的理解。本發(fā)明決不限于下面所提出的任何具體配置和算法,而 是覆蓋了元素、部件和算法的任何修改、替換和改進(jìn),只要不脫離本發(fā)明 的精神。
加密和檢索
圖3是示意性地示出了根據(jù)本發(fā)明一個實(shí)施例的數(shù)據(jù)擁有者的配置的 框圖。如圖3所示,數(shù)據(jù)擁有者終端100主要包括關(guān)鍵詞單元101、加密/ 解密設(shè)置單元102、文件加密單元103、 KIS定位器生成單元104、文件定 位器生成單元105和索引形成單元106。
將參考圖4和圖5來描述根據(jù)本實(shí)施例的數(shù)據(jù)擁有者終端100的操 作。圖4是示意性地示出了數(shù)據(jù)擁有者終端的操作的流程圖,圖5是示出 了生成加密倒排索引的過程的示例的流程圖。
如圖4所示,在步驟S201,關(guān)鍵詞單元101設(shè)置每個文件和該文件中 所包含或與該文件相關(guān)的一個或多個關(guān)鍵詞之間的關(guān)聯(lián)。這可以通過從文 件中提取關(guān)鍵詞或者通過用戶的輸入來進(jìn)行。另外,文件和關(guān)鍵詞的關(guān)聯(lián) 可以由數(shù)據(jù)擁有者預(yù)先設(shè)置,并作為表存儲在數(shù)據(jù)擁有者終端中的存儲裝 置中,或者可以從遠(yuǎn)程位置接收得到。在這樣的情形中,關(guān)鍵詞單元101 對于數(shù)據(jù)擁有者終端的配置來說不是必要的。
在步驟S202,加密/解密設(shè)置單元102為每個文件設(shè)置文件加密和解 密密鑰。文件加密密鑰用于對相應(yīng)的文件加密,文件解密密鑰用于對相應(yīng)
16的加密文件解密。文件加密/解密密鑰可以根據(jù)任何加密方法而任意設(shè)置。 在本發(fā)明中,用于一個文件的文件加密密鑰和文件解密密鑰可以利用非對 稱加密方案而不同地設(shè)定。但是,利用對稱加密方案,單個密鑰也可以在 本發(fā)明中用作一個文件的文件加密密鑰和文件解密密鑰兩者。在這樣的情 況中,在下面的說明中用于同一文件的文件加密密鑰和文件解密密鑰是相 同的。
在步驟S203,加密/解密設(shè)置單元102還設(shè)置并分配在檢索中使用的
下面將詳細(xì)描述的文件定位器生成和解密密鑰。
文件定位器生成密鑰用于對文件的文件獲取信息進(jìn)行加密,以生成加 密索引中的后面將描述的文件定位器,文件定位器解密密鑰用于對加密索 引中的文件定位器解密。在本實(shí)施例中,可以根據(jù)不同的隱私級別,設(shè)置 多對文件定位器生成和解密密鑰。
例如,在圖1所示的情形中,需要三個隱私級別用于親戚的級別
1、用于朋友的級別2和用于同事的級別3。如下面將要描述的,處在各個
隱私級別的檢索者被使得能夠?qū)稍谄潆[私級別公開的文件進(jìn)行檢索和解 密,但是將被保持看不到不能在其隱私級別公開的文件。在上述示例中, 三對文件定位器生成和解密密鑰被設(shè)置,每對用于三個隱私級別中的一
個E《ejVD《e力用于級別1,五^^/DKe》用于級別2、五1^3/£>《^3用于 級別3。這里和下面所使用的五《^表示文件定位器生成密鑰,Z)Kej;表示 文件定位器解密密鑰。
同樣,文件定位器生成密鑰和相應(yīng)的文件定位器解密密鑰可以根據(jù)任 何加密方法而任意設(shè)置。利用非對稱加密方案,它們可以不同地設(shè)置,利 用對稱加密方案,它們可以設(shè)定為相同。利用對稱加密方案,同一對的文 件定位器生成密鑰和文件定位器解密密鑰是相同的。
例如,對于隱私級別m的文件定位器生成和解密密鑰可以如下生成 £勿 = D勿^ = Hash(M爛l附) (式1)
其中,Hash(M五弱m)是利用密鑰ME《的哈希函數(shù),"II"表示串或數(shù)字按 照預(yù)定順序的組合,M五《是數(shù)據(jù)擁有者的主加密密鑰,其可以由加密/解 密設(shè)置單元102選擇,或者從任何其他的授權(quán)機(jī)構(gòu)授予。很明顯,任何其密鑰。
數(shù)據(jù)擁有者終端可以保存計(jì)算文件定位器生成和解密密鑰所需的算法 和相關(guān)參數(shù),例如在加密/解密設(shè)置單元102中,以便用于以后計(jì)算文件定 位器生成和解密密鑰。例如,數(shù)據(jù)擁有者終端存儲主加密密鑰M五《,并在 加密索引被建立之后的以后的階段中,當(dāng)對在特定隱私級別的檢索者授權(quán) 時,通過式1來計(jì)算文件定位器生成和解密密鑰?;蛘?,數(shù)據(jù)擁有者終端
可以在本地存儲映射表,例如在加密/解密設(shè)置單元102中。在以后的階段
中,如果需要特定隱私級別的文件定位器生成和解密密鑰,數(shù)據(jù)擁有者終 端簡單地查找該映射表,來找到相應(yīng)的密鑰。
現(xiàn)在返回圖4。在對每個文件的文件加密和解密密鑰被設(shè)置之后,在 步驟S204,文件加密單元103利用相應(yīng)的文件加密密鑰對每個文件進(jìn)行加密。
在步驟S205,索引形成單元106基于文件的關(guān)鍵詞,形成由一個或多 個關(guān)鍵詞條目集合(KIS)組成的加密倒排索引。根據(jù)本實(shí)施例的每個 KIS對應(yīng)于一個關(guān)鍵詞。根據(jù)本實(shí)施例的生成索引的具體方法將參考圖5 來描述。
圖5示出了根據(jù)本實(shí)施例的生成加密倒排索引的過程的一個示例。在 步驟S301,針對關(guān)鍵詞《W, KIS定位器生成單元104生成唯一的KIS定 位器虹,,作為關(guān)鍵詞《W的KIS的唯一標(biāo)識符。KIS定位器XL,可以任意 生成,只要其唯一地對應(yīng)于關(guān)鍵詞《W,并且在沒有數(shù)據(jù)擁有者的幫助 下,任何其他人都無法從虹,計(jì)算出關(guān)鍵詞《W。 一般,KIS定位器生成 單元104通過任何可用的算法,將每個關(guān)鍵詞映射到一個唯一值,從而生 成每個關(guān)鍵詞的KIS定位器。例如,KIS定位器XL,可以如下生成 虹,=Hash(M五攀嗎 (式2)
應(yīng)當(dāng)注意到,這里所使用的哈希函數(shù)僅僅是本領(lǐng)域技術(shù)人員所知的許 多映射算法中的一個實(shí)例,本發(fā)明并不限于這樣的算法。
在步驟S302,文件定位器生成單元105根據(jù)每個文件可以向其公開的 一個或多個隱私基本,為每個文件生成一個或多個文件定位器。具體地 說,如果文件F/Lfi;.可以在隱私級別w公開,則文件定位器生成單元105通過利用被分配給隱私級別m的文件定位器生成密鑰E《e3^對F/Z^.的文 件獲取信息進(jìn)行加密,來生成F仏S的文件定位器F^,『如果文件可在多 個隱私級別公開,則文件定位器生成單元105為該文件生成多個文件定位 器,其中每個文件定位器對應(yīng)于多個隱私級別中的一個隱私級別,且利用 相應(yīng)的一個文件定位器生成密鑰生成。
例如,在圖1所示的情形中,Alice希望文件M v<pJ/、尸ete.y》g和 F/"fl"c/"/Joc可在隱私級別1公開,文件M ve/./^/和尸ete力 g可在隱私級 別2公開,并且文件W^earcA.;^,禾卩P"^^g可在隱私級別3公開。該示例 中每個文件可在向其公開的隱私級別列出在表1中。
表l
級別1級別2級別3
否否是
是是否
是是是
是否否
以可在隱私級別l和隱私級別2公開的文件M w/.;^/為例,文件定位 器生成單元105將用隱私級別1的文件定位器生成密鑰E《e"對M ve/.;^/ 的文件獲取信息進(jìn)行加密,以生成文件定位器FZ^。w一/,p并用隱私級別2 的文件定位器生成密鑰五《e》對M ve/./^/的文件獲取信息進(jìn)行加密,以生
成文件定位器凡腸e/.對'2。
文件獲取信息包括從服務(wù)器取得加密文件所需的信息以及用于對加密
文件解密的信息。例如,F(xiàn)/丄馬的文件獲取信息是,CFA^IIi:^其中CFA^
是用于標(biāo)識F/丄《的加密后文件的加密資源標(biāo)識符,^^是由加密/解密設(shè)
置單元102設(shè)置的F/丄《的文件解密密鑰。加密資源標(biāo)識符CFA^可以是 的加密文件名,或者F/丄《的密文的URL。 根據(jù)本實(shí)施例,針對F/Z^的在隱私級別w的文件定位器FA』如下 生成
凡乂 m = E(腳m, C ,》 (式3)
19其中,E(義,y)是表示用x對r加密的加密函數(shù)。
返回圖5,在KIS定位器生成單元104為每個關(guān)鍵詞《W生成KIS定 位器虹,并為全部文件生成了文件定位器之后,在步驟S303,針對每個關(guān) 鍵詞《W,索引形成單元106用與相對應(yīng)的KIS定位器紅,和與該關(guān)鍵詞 有關(guān)的文件的所有文件定位器,形成KIS。
以圖1和表1中所示的情形為例,并且假設(shè)文件7^^a/r/^W和 M ve/.;^/與關(guān)鍵詞《『。相關(guān)聯(lián),則根據(jù)本實(shí)施例,針對關(guān)鍵詞《^的KIS 被生成為兀組 <虹^: F丄/te,c/^,, 3 = E(五Xe力,CFA^as離d.妙lli^咖/"c/1./^), F丄A/ove/.jD《 i = E(五A"ej^, CF7V/vove/.p^/II^A/OTe/.;^/), ^^7vOTe/./w// 2 = E(EiTe;;2, C7Wtv。w/." |^aw./^/)> °
對于每個關(guān)鍵詞,索引形成單元106形成一個KIS,并且在步驟 S304,索引形成單元106用全部KIS形成加密索引。
應(yīng)當(dāng)注意,KIS定位器可以被放置在KIS外部,并僅僅被組織和處理 為KIS的標(biāo)識符。在這種情況中,每個KIS定位器和相應(yīng)的KIS之間的映 射關(guān)系被建立,代替將KIS定位器作為KIS的一部分。加密索引可以按照 唯一的KIS定位器,被組織成標(biāo)準(zhǔn)(例如,基于樹的)數(shù)據(jù)結(jié)構(gòu),并且 KIS定位器指定加密索引中的確切位置,從而服務(wù)器可以按照對數(shù)時間找 到KIS,如同位于未加密數(shù)據(jù)一樣。
返回圖4,在歩驟S206,數(shù)據(jù)擁有者終端100將加密文件和加密索引 存儲到服務(wù)器上。數(shù)據(jù)擁有者終端與服務(wù)器以及檢索者之間的通信可以通 過未示出的通信單元來完成。應(yīng)當(dāng)注意,這里所使用的術(shù)語"服務(wù)器"可 以是提供存儲服務(wù)和檢索服務(wù)兩者的單個裝置,或者彼此相鄰或遠(yuǎn)程的一 組多個裝置,每個負(fù)責(zé)不同的服務(wù),例如存儲、數(shù)據(jù)檢索、用戶管理等 等,或者分擔(dān)服務(wù)。例如,數(shù)據(jù)擁有者終端100可以將加密文件存儲在存 儲服務(wù)器上,而將加密索引存儲在可以存儲服務(wù)器通信的檢索服務(wù)器上。 為了簡化說明,所有這樣的提供服務(wù)裝置被總得稱為"服務(wù)器"。
為了幫助理解根據(jù)本實(shí)施例的索引階段的處理,圖6示出了上述示例 的示意性數(shù)據(jù)流。
上面描述了根據(jù)本發(fā)明一個實(shí)施例的索引階段中數(shù)據(jù)擁有者終端的處理。下面將參考圖7 9描述服務(wù)器和檢索者終端的配置以及在檢索階段 中的處理。
圖7示意性地示出了根據(jù)本發(fā)明一個實(shí)施例的服務(wù)器的示例配置,圖 8示意性地示出了根據(jù)本發(fā)明一個實(shí)施例的檢索者終端的配置。
如圖7所示,服務(wù)器400主要包括用于存儲來自數(shù)據(jù)擁有者的加密文 件和加密索引的存儲單元401、用于響應(yīng)于檢索者的請求而在加密索引中 執(zhí)行檢索的索引檢索單元402、以及用于搜索由特定加密資源標(biāo)識符標(biāo)識 的加密文件的文件搜索單元403。
如圖8所示,檢索者終端500主要包括用于生成檢索請求的檢索請求 單元501、用于對文件定位器解密的文件定位器解密單元502、用于生成 文件獲取請求的文件獲取單元503、以及用于對所獲取的加密文件進(jìn)行解 密的文件解密單元504。
參考圖9將描述根據(jù)本發(fā)明一個實(shí)施例的檢索過程的示例。
首先,在步驟S601,如果數(shù)據(jù)擁有者希望使得一個檢索者能夠?qū)σ粋€ 關(guān)鍵詞進(jìn)行檢索,則數(shù)據(jù)擁有者以安全的方式向該檢索者授予該關(guān)鍵詞的 KIS定位器以及授權(quán)給該檢索者的適當(dāng)隱私級別的文件定位器解密密鑰。 服務(wù)器可以通過各種方式來向每個檢索者通知相應(yīng)的KIS定位器和文件定 位器解密密鑰,例如通過經(jīng)由數(shù)據(jù)擁有者終端和檢索者終端之間的通信網(wǎng) 絡(luò)發(fā)送的電子消息來通知。授權(quán)過程可以響應(yīng)于檢索者的請求而執(zhí)行。例 如,檢索者可以例如利用檢索能力請求單元(未示出),向數(shù)據(jù)擁有者發(fā) 送包含他/她想要檢索的一個或多個關(guān)鍵詞的請求。在確認(rèn)了檢索者的身份 之后,數(shù)據(jù)擁有者可以決定適合于該檢索者的隱私級別,并向該檢索者授 予所請求的(一個或多個)關(guān)鍵詞的(一個或多個)KIS定位器,以及所 決定的隱私級別的文件定位器解密密鑰。KIS定位器和文件定位器解密密 鑰可以從數(shù)據(jù)擁有者終端處所存儲的表中獲取,或者可以由數(shù)據(jù)擁有者根 據(jù)所存儲的安全參數(shù)在線地計(jì)算出來。授權(quán)的過程例如可以由數(shù)據(jù)擁有者 終端中的授權(quán)單元(未示出)來執(zhí)行。在一些情形中,可以要求檢索者通 過安全認(rèn)證來從數(shù)據(jù)擁有者獲得授權(quán)。
在檢索階段,檢索者終端通過檢索請求單元501生成含有KIS定位器的檢索請求,并將該檢索請求發(fā)送給服務(wù)器,如步驟S602所示。
服務(wù)器從檢索者終端接收到含有KIS定位器的檢索請求之后,通過索 引檢索單元402在存儲在存儲單元401中的加密索引中執(zhí)行檢索,以找到 KIS定位器與請求中所接收的KIS定位器相同的KIS,如步驟S603所示。 然后,服務(wù)器將匹配的KIS中所包含的文件定位器發(fā)送給檢索者終端,如 步驟S604所示。如上所述,這些文件定位器中的每個文件定位器是通過 用文件定位器生成密鑰,對與KIS相對應(yīng)的關(guān)鍵詞有關(guān)的文件的文件獲取 信息進(jìn)行加密而生成的。
在從服務(wù)器接收到文件定位器之后,檢索者終端利用由數(shù)據(jù)擁有者所 授予的文件定位器解密密鑰,通過文件定位器解密單元502對每個文件定 位器進(jìn)行解密,以獲得含有文件的加密資源標(biāo)識符和相應(yīng)的文件解密密鑰 的文件獲取信息,如步驟S605所示。如上所述,每個文件定位器是由數(shù) 據(jù)擁有者利用某個隱私級別的文件定位器生成密鑰對文件獲取信息進(jìn)行解 密而生成的。用特定隱私級別的文件定位器解密密鑰,檢索者無法解密利 用其他隱私級別的其他文件定位器生成密鑰解密的文件定位器。這保證了 檢索者可以獲得在被數(shù)據(jù)擁有者授權(quán)的隱私級別上可公開的文件的加密資 源標(biāo)識符和相應(yīng)的文件解密密鑰,但是無法獲得在該隱私級別上不可公開 的文件的正確的加密資源標(biāo)識符和文件解密密鑰。
然后,檢索者終端通過文件獲取單元503生成包含在歩驟S605中獲 得的加密資源標(biāo)識符的文件獲取請求,然后在步驟S606,檢索者終端將該 文件獲取請求發(fā)送給服務(wù)器。
在從檢索者接收到含有加密資源標(biāo)識符的文件獲取請求之后,在步驟 S607,服務(wù)器的文件搜索單元403在所存儲的加密文件中査找與所接收的 加密資源標(biāo)識符相匹配的任何加密文件。在定位到匹配的加密文件之后, 服務(wù)器將這些匹配的加密文件發(fā)送給檢索者終端。
在接收到加密文件之后,在步驟S608,檢索者終端通過文件解密單元 504,用相應(yīng)的文件解密密鑰對加密文件進(jìn)行解密。從而,作為檢索結(jié) 果,檢索者可以獲得文件。
值得注意的是,在步驟S605,檢索者將不會得到在數(shù)據(jù)擁有者設(shè)置給該檢索者的隱私級別上不可公開的文件的正確的加密資源標(biāo)識符和文件解 密密鑰。如果檢索者錯誤地解密任何其他隱私級別的(一個或多個)文件 定位器,并將獲得的錯誤的(一個或多個)加密資源標(biāo)識符發(fā)送給服務(wù) 器,服務(wù)器將不會定位到正確的(一個或多個)加密文件,從而只可在其 他隱私級別公開的加密文件不會被提供給檢索者。即使檢索者偶然地從服 務(wù)器獲得了這樣的加密文件,檢索者也無法對這些文件正確地解密。這保 證了檢索者只能檢索和看到含有特定關(guān)鍵詞的、且在由數(shù)據(jù)擁有者設(shè)定的 特定隱私級別上可公開的文件。還值得注意的是,在整個過程中,所有文 件都沒有公開給服務(wù)器。
雖然未在流程圖中示出,但是值得注意的是,如果在步驟S605中檢 索者獲得的一個或多個加密資源標(biāo)識符是如上所述的URL,則檢索者可以 直接通過這些URL來獲得加密文件,而不是將這些URL發(fā)送給服務(wù)器。 或者,檢索者仍將這些URL發(fā)送給服務(wù)器,并且服務(wù)器的文件搜索單元 403將從由這些URL標(biāo)識的網(wǎng)絡(luò)位置獲取加密文件。
在上述示例中,在一次檢索中,檢索者向服務(wù)器發(fā)送一個KIS定位 器??梢韵氲剑跈z索者被數(shù)據(jù)擁有者授予了多個KIS定位器的情況下, 檢索者可以在檢索請求中向服務(wù)器發(fā)送多個KIS定位器,以執(zhí)行對多個關(guān) 鍵詞的檢索。
可確認(rèn)解密
在上述實(shí)施例中,其他隱私級別的文件定位器會被檢索者錯誤地解 密,并且無效的信息可能被傳送和處理。而在本發(fā)明的一個替代實(shí)施例 中,在檢索者向服務(wù)器發(fā)送文件獲取請求之前,每個文件定位器的解密的 正確性在檢索者處被檢査,以便避免無效的加密資源標(biāo)識符的傳送和在服 務(wù)器側(cè)用無效的加密資源標(biāo)識符來定位加密文件的處理。該可確認(rèn)解密可 以通過確認(rèn)當(dāng)文件定位器被生成時與文件獲取信息一同加密的已知值來實(shí) 現(xiàn),該已知值例如是附加在文件獲取信息上的一個標(biāo)志。下面將描述這種 實(shí)現(xiàn)方式的一個示例。
在該實(shí)施例中,文件F/Z《的文件獲取信息被擴(kuò)展為
23F^L4GIIC7W川X^,其中是由數(shù)據(jù)擁有者選擇的任意值或者其他字 符。
索引階段的處理基本上與上述實(shí)施例中的相同,除了代替式2,數(shù)據(jù) 擁有者終端在步驟S304如下生成F/i^的文件定位器
w = E(E^ym, i^L4GHCFA/;肌胸) (式4)
在檢索階段,在步驟S601,除了KIS定位器和文件定位器解密密鑰之 外,數(shù)據(jù)擁有者終端還向檢索者終端發(fā)送Fi^G。
檢索者終端從服務(wù)器獲得文件定位器的過程與上述實(shí)施例中的相同。 在對接收的文件定位器解密時,檢索者終端的文件定位器解密單元502檢 查解密后的文件定位器中所包含的標(biāo)志是否與從數(shù)據(jù)擁有者接收的標(biāo)志相 同。如果匹配,則表示文件定位器的解密正確,并且得到了正確的文件獲 取信息,如果不匹配,則表示由于錯誤的文件定位器解密密鑰或者其他原 因,文件定位器的解密失敗。這樣,通過使用標(biāo)志,實(shí)現(xiàn)了可確認(rèn)解密。 為了幫助理解根據(jù)本實(shí)施例的檢索過程,圖10示出了該情況中的示意性 數(shù)據(jù)流。
通過上述的確認(rèn),檢索者終端可以選擇并發(fā)送正確的加密資源標(biāo)識符 到服務(wù)器,以獲取相應(yīng)的加密文件,并使用正確的文件解密密鑰來對所接 收的文件解密。
在本實(shí)施例中利用對標(biāo)志進(jìn)行檢査,防止了無效的加密資源標(biāo)識符被 傳送給服務(wù)器,服務(wù)器可以更有效地定位加密文件。
該標(biāo)志可以最初由數(shù)據(jù)擁有者終端的加密/解密設(shè)置單元102來選取, 然后通知給檢索者?;蛘撸瑪?shù)據(jù)擁有者和檢索者兩者已知的數(shù)可以被預(yù)先 設(shè)定作為該標(biāo)志。在另外的實(shí)施例中,對于不同的隱私級別或者對于不同 的文件,可以使用不同的標(biāo)志。如本領(lǐng)域技術(shù)人間能夠認(rèn)識到的,其他種 類的參數(shù)和算法也可以應(yīng)用于本發(fā)明中用于可確認(rèn)解密。
虛擬刪除
如己經(jīng)知道的,在一個或多個文件刪除之后更新索引是相對復(fù)雜的, 并通?;ㄙM(fèi)大量計(jì)算資源和時間,而刪除操作本身是相對快速和容易執(zhí)行的。鑒于此,在加密文件被刪除之后立即更新加密索引是低效的。希望以 較低的頻次來執(zhí)行索引的更新。例如,每天、每周或每月等執(zhí)行一次更 新,或者在預(yù)定數(shù)目的加密文件被刪除之后執(zhí)行一次更新。還希望索引的 更新可以被調(diào)度,使得減少不服務(wù)的持續(xù)時間和影響。例如,在較少檢索 者會訪問檢索服務(wù)的時段,例如午夜的某個時間,來執(zhí)行索引的更新。
但是,為了保證在一個或多個加密文件被刪除之后的檢索的正確性, 需要在加密索引被更新之前,從檢索結(jié)果中濾掉被刪除的加密文件。這種 操作被稱為虛擬刪除。
通過在向檢索者提供加密文件時,按照某個條件過濾掉一些文件,服 務(wù)器在本發(fā)明中被賦予了虛擬刪除的能力。例如,數(shù)據(jù)擁有者向服務(wù)器發(fā)
送要被刪除的加密文件的加密資源標(biāo)識符的列表,例如(CFN2, CFN4},并
且服務(wù)器刪除相應(yīng)的加密文件。此后,當(dāng)服務(wù)器從檢索者接收到加密資源
標(biāo)識符的列表,例如《CFNhCFN2,CFN3,CFN4,CFN5)時,服務(wù)器的文件搜 索單元過濾掉被刪除的文件,即將列表過濾成(CFNi, CFN2, CFN3, CFN4, CFN5}-{CFN2, CFN4} = {CFNh CFN3, CFN5}。于是,服務(wù)器只定位并向檢 索者返回與過濾結(jié)果《CFN,, CFN3, CFN^相對應(yīng)的加密文件。圖11示出了 該示例的示意性數(shù)據(jù)流。
在虛擬刪除中,要被刪除的加密文件可以用特殊的符號被標(biāo)注,而不 是實(shí)際地被刪除。在從數(shù)據(jù)擁有者接收到確認(rèn)命令或者其他規(guī)定的條件被 滿足時,服務(wù)器可以執(zhí)行加密文件的實(shí)際刪除。
除了虛擬刪除之外,過濾可以應(yīng)用于其他情形,并且過濾的條件可以 根據(jù)任何具體的應(yīng)用來設(shè)計(jì)。
加密索引中的定位和更新
通過擴(kuò)展加密索引中的每個KIS,在本發(fā)明中提供了定位與特定文件 有關(guān)的(一個或多個)文件定位器的能力。例如,在一個加密文件被從服 務(wù)器刪除之后,與該加密文件有關(guān)的文件定位器應(yīng)當(dāng)從加密索引中去除。 利用根據(jù)本發(fā)明在每個KIS中添加的附加參數(shù),服務(wù)器在數(shù)據(jù)擁有者的幫 助下,能夠定位與指定文件有關(guān)的文件定位器,而文件的內(nèi)容和其中包含的關(guān)鍵詞不會暴露給服務(wù)器。下面將參考圖12 17描述本發(fā)明的這種實(shí)
圖12示出了根據(jù)本發(fā)明一個實(shí)施例的數(shù)據(jù)擁有者終端700的示例性 配置。如圖12所示,數(shù)據(jù)擁有者終端700包括圖3所示的全部單元,并且 還包括用于生成索引定位指示器的索引定位指示器生成單元701,以及用 于生成與文件定位器相關(guān)聯(lián)的索引定位器的索引定位器生成單元702。該 實(shí)施例中的關(guān)鍵詞單元101、加密/解密設(shè)置單元102、文件加密單元 103、 KIS定位器生成單元104和文件定位器生成單元105的功能和操作與 上述的相同。下面的描述僅集中與本實(shí)施例與上述實(shí)施例的區(qū)別。
在本實(shí)施例中,通過向每個文件定位器附加由數(shù)據(jù)擁有者終端從文件 定位器、相應(yīng)的KIS定位器和索引定位指示器映射得到的索引定位器,加 密索引中的每個KIS被括展。
具體地說,在索引階段,數(shù)據(jù)擁有者終端700的索引定位指示器生成 單元701通過將文件的加密資源標(biāo)識符映射到一個唯一值,來生成每個文 件的索引定位指示器。例如,對于文件F/丄《,索引定位指示器生成單元 701如下生成索引定位指示器x,:
x^Hash(OW》)t) (式5) 其中CFA^是F/ij^的加密資源標(biāo)識符,A是數(shù)據(jù)擁有者持有的秘密密鑰, 例如數(shù)據(jù)擁有者持有的私鑰。如前面提到的,代替哈希函數(shù),可以使用任 何單向映射方法。
除了 KIS定位器和文件定位器之外,根據(jù)本實(shí)施例的數(shù)據(jù)擁有者終端 700還通過索引定位器生成單元702,為KIS中所包含的每個文件定位器 生成一個索引定位器。每個索引定位器是通過將相應(yīng)的文件定位器、KIS 定位器和由索引定位指示器生成單元701生成的索引定位指示器的組合映 射到一個值來生成的。例如,對于具有KIS定位器XL,的KIS中與F/丄A 有關(guān)的文件定位器FZ^.,w,索引定位器生成單元702如下生成索引定位器
"^/,乂附
m = Hash 』x,) (式6)
其中x,是由索引定位指示器生成單元701生成的F/Z《的索引定位指示
26器。
然后,數(shù)據(jù)擁有者終端700的索引形成單元106用一個或多個KIS形 成加密索引,其中每個KIS包含一個KIS定位器、 一個或多個如上述實(shí)施 例中所生成的文件定位器、以及一個或多個索引定位器,每個索引定位器 伴隨一個相應(yīng)的文件定位器。以圖1和表1中所示的情形為例,并假設(shè)文 件7^earcA.; ^和A/ove/.j^/與關(guān)鍵詞^Of。相關(guān)聯(lián),則根據(jù)本實(shí)施例,針對 關(guān)鍵詞〖ff,的KIS被生成為元組〈虹。凡/^騰,,.鵬3, to匿A.鵬3 = Hash
C^^』FZ^扁^鵬31l義We扁n:/L/ /7 ),尸丄7Vove/./^ 1, M v々浙3 — Hash (AX"ll尸Z^匿/.p^
Hash (XL"11^PL油v々浙3||xw。ve/.prf/)〉。這樣生 成的加密索引被發(fā)送到被存儲在服務(wù)器上。
根據(jù)本實(shí)施例的索引階段的數(shù)據(jù)流示意性地示出在圖13中。 下面描述當(dāng)加密文件被刪除后,加密索引的更新過程。 圖14示出了根據(jù)本實(shí)施例的服務(wù)器的示例性配置。如圖14所示,服 務(wù)器800包括圖7中所示的全部單元,并且還包括用于更新所存儲的加密 索引的索引更新單元801。本實(shí)施例中,存儲單元401、索引檢索單元402 和文件搜索單元403的功能和操作與上述的相同。下面的描述集中與本實(shí) 施例與上述實(shí)施例的不同。
圖15是示出了當(dāng)一個加密文件被刪除后服務(wù)器更新加密索引的過程 的流程圖。
當(dāng)一個文件F/丄&要從加密索引中去除時,例如當(dāng)在服務(wù)器上加密文 件F/Z^。被從存儲服務(wù)中刪除從而索引需要被更新時,數(shù)據(jù)擁有者終端 700向服務(wù)器800發(fā)送含有由索引定位指示器生成單元701計(jì)算得到的 F/i^。的索引定位指示器x。的消息。在步驟S901,服務(wù)器800從數(shù)據(jù)擁有 者終端800接收索引定位指示器x。。
然后,對于被存儲的加密密鑰中的每個KIS中的每個文件定位器,服 務(wù)器800的索引更新單元801通過使用收到的索引定位指示器x。,利用與
數(shù)據(jù)擁有者終端在生成加密索引時所使用的相同的映射方法,計(jì)算索引定 位器。例如,對于具有KIS定位器XL,的KIS中的文件定位器/^),索引 更新單元801通過使用上述相同的哈希函數(shù),計(jì)算/丄"., , = Hash (XL,IIFZ;,m||xa)。然后,索引更新單元801檢查計(jì)算出的m是否與KIS中所包含
的伴隨文件定位器/^>的索引定位器/二,,)相等。如果兩個值匹配,則表
示相應(yīng)的文件應(yīng)當(dāng)被刪除。這樣,在步驟S902,索引更新單元801找出要
被刪除的所有文件定位器。
然后,在步驟S903,服務(wù)器800的索引更新單元801從存儲單元401
中所存儲的加密索引中刪除找到的所有匹配的文件定位器以及所伴隨的索
引定位器,從而更新加密索引。
上述加密索引更新的數(shù)據(jù)流被示意性地示出在圖16中。 在上述示例中,服務(wù)器檢査加密索引中全部KIS中的文件定位器?;?br>
者,數(shù)據(jù)擁有者可以將與被刪除的文件有關(guān)的全部KIS的KIS定位器發(fā)送給服務(wù)器,以幫助服務(wù)器將搜索范圍減小到具有匹配的KIS定位器的那些
KIS。
與該文件有關(guān)的KIS的KIS定位器可以最初在索引階段存儲在數(shù)據(jù)擁 有者終端中,或者數(shù)據(jù)擁有者終端可以預(yù)先保存每個文件的關(guān)鍵詞信息, 并在更新階段中計(jì)算KIS定位器。還可以想到,在加密文件被刪除之前, 數(shù)據(jù)擁有者從服務(wù)器獲取由加密資源標(biāo)識符標(biāo)識的加密文件,對該加密文 件解密,從解密后的文件中提取關(guān)鍵詞,計(jì)算并向服務(wù)器發(fā)送要與該要刪 除的文件有關(guān)的KIS定位器。在這種情況中,數(shù)據(jù)擁有者也扮演檢索者, 并且可以包括圖8所示的相關(guān)單元。
在從數(shù)據(jù)擁有者終端得到KIS定位器和索引定位指示器后,服務(wù)器可 用僅僅檢査由所接收的KIS定位器標(biāo)識的KIS中的文件定位器。從而,計(jì) 算量被大大降低。
該示例的更新加密索引的數(shù)據(jù)流示意性地示出在圖17中。
上述是從索引中去除文件的示例。根據(jù)本發(fā)明,在后來添加一個或多 個文件的情況下,也可以容易地更新加密索引。例如,如果在加密索引已 經(jīng)被建立之后的某個時間,數(shù)據(jù)擁有者向存儲服務(wù)添加另外的加密文件, 則數(shù)據(jù)擁有者終端可以簡單地按照上述相同的方式計(jì)算與新添加的文件相 關(guān)聯(lián)的KIS定位器和文件定位器(伴隨有或沒有伴隨有索引定位器),并 將其發(fā)送到服務(wù)器。在服務(wù)器處,索引檢索單元402定位與所接收的KIS
2簡單地將所接收的文件 定位器(伴隨有或沒有伴隨有索引定位器)添加到相應(yīng)的KIS中來更新加 密索引。這樣,被添加的文件的信息被并入到加密索引中。
細(xì)粒度授權(quán)
在上述示例性實(shí)施例中描述了每對文件定位器生成和解密密鑰是結(jié)合
隱私級別而生成的,而與任何具體關(guān)鍵詞無關(guān)。存在這樣的考慮如果被 授予了一個文件定位器解密密鑰的檢索者獲得了任何從未被數(shù)據(jù)擁有者授
予給他/她的KIS定位器,則該檢索者將仍舊可以通過該KIS定位器執(zhí)行 檢索,并對相應(yīng)的KIS中的文件定位器進(jìn)行解密。
為了加強(qiáng)授權(quán)控制,根據(jù)本發(fā)明一個實(shí)施例,每對文件定位器生成和 解密密鑰可以結(jié)合隱私級別和具體關(guān)鍵詞兩者來生成。例如,與關(guān)鍵詞 《W和隱私級別m相關(guān)的文件定位器生成和解密密鑰可以如下生成
五義e乂,^ = Z)Ke;; ,,m = Hash(M五刷《岡l附) (式7)
或者通過至少將相應(yīng)的關(guān)鍵詞和一個密鑰的組合映射到一個唯一值的其他 算法來生成。利用這種擴(kuò)展的文件定位器生成和解密密鑰,提供了不僅基 于隱私級別而且還基于關(guān)鍵詞的細(xì)粒度授權(quán)控制。
根據(jù)這樣的實(shí)施例,每個文件的文件定位器在索引階段通過用一個或 多個擴(kuò)展的文件定位器生成密鑰對文件獲取信息加密來生成,其中每個擴(kuò) 展的文件定位器生成密鑰與和該文件相關(guān)聯(lián)的一個關(guān)鍵詞以及該文件對其 可公開的一個隱私級別有關(guān)。
假設(shè)文件F/z《的文件獲取信息采取CFA^i:^.的形式,下面與上述式
3相比較地給出用于計(jì)算文件定位器的具體算法。即,對于與文件F/ZA相 關(guān)聯(lián)的關(guān)鍵詞《W和文件F/丄《對其可公開的隱私級別m, F/丄《的文件定 位器FA"^如下生成
凡,,力w = E(五^y歸,OW』A:荷) (式8)
根據(jù)這種實(shí)施例,每個關(guān)鍵詞的KIS包括利用與該關(guān)鍵詞有關(guān)的擴(kuò)展 文件定位器生成密鑰生成的文件定位器。也就是說,在一個文件的全部文 件定位器中,只有利用與特定關(guān)鍵詞有關(guān)的擴(kuò)展文件定位器生成密鑰生成的那些文件定位器被放入該關(guān)鍵詞的KIS中,而利用與任何其他關(guān)鍵詞有 關(guān)的擴(kuò)展文件定位器生成密鑰生成的文件定位器不被放入。這保證了任何
人不能直接解密一個關(guān)鍵詞的KIS中的文件定位器,如果他/她不具有與該
關(guān)鍵詞相關(guān)的正確的擴(kuò)展文件定位器解密密鑰。其他過程與上述實(shí)施例中 的相同。
在檢索階段,如果數(shù)據(jù)擁有者希望使得一個檢索者能夠?qū)σ粋€關(guān)鍵詞
進(jìn)行檢索,則數(shù)據(jù)擁有者以安全的方式向該檢索者授予該關(guān)鍵詞的KIS定 位器以及相應(yīng)的合適的隱私級別的擴(kuò)展文件定位器解密密鑰。檢索者對擴(kuò) 展文件定位器解密密鑰的使用與上述實(shí)施例中對文件定位器解密密鑰的使 用相同。
根據(jù)本實(shí)施例,每個擴(kuò)展文件定位器解密密鑰在各個檢索者處保持保 密,并且不會暴露給服務(wù)器。因此,即使一個或多個KIS定位器被暴露給 其他人,他/她也無法用任何與其他關(guān)鍵詞相關(guān)的文件定位器解密密鑰來解 密相應(yīng)KIS中的任何文件定位器。
本發(fā)明的其他特征,例如可確認(rèn)解密、虛擬刪除、定位和更新等,也 可以類似地應(yīng)用于該實(shí)施例。處理基本上相同,除了文件定位器生成和解 密密鑰被擴(kuò)展文件定位器生成和解密密鑰替代。
應(yīng)當(dāng)注意,本發(fā)明也可以應(yīng)用于不需要區(qū)分隱私級別的情況中。在這 種情況中,文件定位器生成和解密密鑰可以結(jié)合不同的關(guān)鍵詞來生成。例 如,文件定位器生成和解密密鑰如下生成
欣e乂 = i)^y, = Hash(M爛|竭) (式9)
索引、檢索和更新過程與前面描述的類似。由于可以通過假設(shè)僅有一 個隱私級別而想到具體的過程,這里不再重復(fù)其描述。
鏈?zhǔn)绞跈?quán)
在上述示例性實(shí)施例中,針對不同隱私級別的文件定位器生成和解密 密鑰是利用不同的參數(shù)獨(dú)立生成的,彼此之間不具有計(jì)算上的關(guān)系。
實(shí)際中,不同隱私級別之間可能存在支配關(guān)系,即較高隱私級別支配 任何較低隱私級別。也就是說,任何隱私級別的檢索者能夠檢索比其隱私級別低的任何隱私級別所能支配的文件,以及在其隱私級別能夠支配的而 其他較低隱私級別不能支配的文件。例如,數(shù)據(jù)擁有者Bob將對其文件進(jìn) 行訪問的檢索者按照不同的關(guān)系劃分為不同的級別。例如家庭成員具有 最高隱私級別(級別1),親密朋友具有中等隱私級別(級別2), 一般 朋友具有最低隱私級別(級別3)。同時,對文件的檢索權(quán)利遵循低隱私 級別所支配的文件也都能被任何高隱私級別支配的原則。即, 一般朋友能 夠檢索的文件都可以被親密朋友和家庭成員檢索,而親密朋友能夠檢索的 文件都能夠被家庭成員檢索。
在本發(fā)明中,針對這樣的情況,可以通過采用鏈?zhǔn)绞跈?quán),使得授權(quán)和 管理變得更加簡便高效。下面簡要描述根據(jù)本發(fā)明的利用鏈?zhǔn)绞跈?quán)的一個 實(shí)施例。
假設(shè)存在n個隱私級別,其中最高隱私級別為級別1,并且隱私級別 m支配任何其他較低隱私級別(隱私級別m+l,…,n),其中m是小于n 的自然數(shù)。
根據(jù)本實(shí)施例,在索引階段設(shè)置文件定位器生成和解密密鑰時,數(shù)據(jù) 擁有者首先利用哈希函數(shù)設(shè)置用于最高隱私級別的文件定位器生成和解密 密鑰。例如,最高隱私級別的文件定位器生成密鑰五《e力和文件定位器解 密密鑰Z)《e力如下生成
=D《e力=H1 (z) (式10)
其中,H乂z)代表對z的一次哈希運(yùn)算(Hash(z)) , z可以是任意位
串,例如M£X、 M五《和任意數(shù)的組合、Affi"l《W等等。優(yōu)選地,z是數(shù)
據(jù)擁有者容易記憶或取回的串。
然后,其他隱私級別的文件定位器生成和解密密鑰基于五《e力和
D《e力,按照哈希鏈的方式來生成。具體地說,隱私級別m的文件定位器
生成密鑰EKej^和文件定位器解密密鑰D《ej^如下生成
I; = Z)勿m = H"' (Z) (式1 1)
其中,H,z)代表對z的m次哈希運(yùn)算(Hash(歸…歸(z)…))。
也就是說,可根據(jù)以下遞推公式計(jì)算隱私級別m的文件定位器生成密 鑰五《e^和文件定位器解密密鑰D《ej^<formula>formula see original document page 32</formula>
上述計(jì)算例如由數(shù)據(jù)擁有者終端的加密/解密設(shè)置單元完成。
在授權(quán)時,數(shù)據(jù)擁有者將不同隱私級別的文件定位器解密密鑰授予相 應(yīng)級別的檢索者。其他過程與上述實(shí)施例中相似。
可見,被授予了 D《e;^的處于隱私級別m的檢索者能夠容易地根據(jù)已 知或者由數(shù)據(jù)擁有者公布的哈希算法,計(jì)算出其他任何更低隱私級別的文 件定位器解密密鑰(例如,由檢索者終端的文件定位器解密單元完成), 從而能夠?qū)θ魏胃碗[私級別的文件定位器進(jìn)行解密。而由于哈希函數(shù)的 單向性,處于隱私級別w的檢索者不能計(jì)算出更高隱私級別的文件定位器 解密密鑰,因此,保證了單向的鏈?zhǔn)绞跈?quán)。
利用上述實(shí)施例的鏈?zhǔn)绞跈?quán)方式,處于任何隱私級別的檢索者能夠通 過計(jì)算得到任何更低隱私級別的文件定位器解密密鑰,從而獲得了更低隱 私級別的檢索能力,實(shí)現(xiàn)了簡便的鏈?zhǔn)绞跈?quán)。
可在本發(fā)明中使用的鏈?zhǔn)绞跈?quán)的方式并不限于上述哈希鏈算法,而是 可以采用任何實(shí)現(xiàn)單向授權(quán)的技術(shù)。例如,可以使用Mahesh Kallahalla, etc., "Plustus: Scalable secure file sharing on untrusted storage", in the Proceedings of the 2nd Conference on File and Storage Technologies (FAST'03). pp. 29~42 (31 Mar —2 Apr 2003, San Francisco, CA), published by USENIX, Berkeley, CA中提出的前向密鑰旋轉(zhuǎn)(Forward Key Rotation, FKR)技術(shù)。下面簡要說明利用該技術(shù)的本發(fā)明的另一個實(shí)施例。
假設(shè)e。是數(shù)據(jù)擁有者的公鑰,A是數(shù)據(jù)擁有者的私鑰。數(shù)據(jù)擁有者公 布其公鑰e。,并將A保持為秘密。
在索引階段設(shè)置文件定位器生成和解密密鑰時,數(shù)據(jù)擁有者任意選擇 整數(shù)AQEZ/,并如下設(shè)置用于最低隱私級別n的文件定位器生成密鑰 五le^和文件定位器解密密鑰D《e;v
五~ = = V" (式13)
其他隱私級別m (m是小于n的自然數(shù))的文件定位器生成和解密密 鑰按照如下遞推公式計(jì)算
£Xe_ym = Z)i^附=(式14)上述計(jì)算例如由數(shù)據(jù)擁有者終端的加密/解密設(shè)置單元完成。 在授權(quán)時,數(shù)據(jù)擁有者將不同隱私級別的文件定位器解密密鑰授予相
應(yīng)級別的檢索者。被授予了 D《e;^的處于隱私級別m的檢索者能夠容易地 根據(jù)數(shù)據(jù)擁有者所公布的公鑰e。,利用如下遞推公式計(jì)算出其他任何更低 隱私級別的文件定位器解密密鑰
Z)—/+1 =("勿,廣,/= w, ..., n-1 (式15)
上述計(jì)算例如由檢索者終端的文件定位器解密單元完成。 另一方面,處于隱私級別m的檢索者無法計(jì)算出更高隱私級別的文件 定位器解密密鑰。從而,也實(shí)現(xiàn)了單向的鏈?zhǔn)绞跈?quán)。
其他替代
上面已經(jīng)參考附圖描述了根據(jù)本發(fā)明的一些特定實(shí)施例。但是,本發(fā) 明并非要受到上述實(shí)施例中描述的任何具體配置和過程的限制。在本發(fā)明 的精神的范圍之內(nèi),本領(lǐng)域技術(shù)人員能夠認(rèn)識到上述配置、算法、操作和 過程的各種替換、改變或修改。
例如,在上述示例性實(shí)施例中描述了每個關(guān)鍵詞在加密倒排索引中具 有一個KIS,并且每個KIS的KIS定位器被生成為唯一地對應(yīng)一個關(guān)鍵 詞。但是,索引還可以被生成為使得每個KIS不僅對應(yīng)于一個關(guān)鍵詞,而 且對應(yīng)于一個隱私級別(即, 一個文件定位器生成或解密密鑰)。S卩,相 同隱私級別且與相同關(guān)鍵詞相關(guān)聯(lián)的文件被索引在一個KIS中,而不同隱 私級別的文件被索引在不同的KIS中,無論這些文件是否與相同的關(guān)鍵詞 相關(guān)聯(lián)。換句話說,每個KIS對應(yīng)于僅僅一個文件定位器生成(或解密) 密鑰以及一個關(guān)鍵詞。在這種情況中,與一個關(guān)鍵詞《W和屬于隱私級別 m的一個文件定位器生成密鑰(或文件定位器解密密鑰D《ej;附)相 對應(yīng)的一個KIS的KIS定位器AZ,^可以如下生成
虹;> =E(^^e;^, (式16)
或者
XL^E,^,^) (式17)
本發(fā)明決不限于圖中所示的具體配置和過程。體現(xiàn)本發(fā)明的上述各種方面的示例可以根據(jù)具體的應(yīng)用而結(jié)合。例如,加密索引可以同時包括用 于確認(rèn)解密正確性的標(biāo)志以及用于定位文件定位器的索引定位器,并且數(shù) 據(jù)擁有者終端、服務(wù)器和檢索者終端包括這兩個方面的相應(yīng)部件。
另外,上述過程的順序可以合理地改變。例如,圖4中的步驟S201
和S202的順序可以顛倒,或者這些步驟可以并行地執(zhí)行。
在本說明書中使用的所謂的"文件"應(yīng)當(dāng)被理解為是廣義的概念,其 包括但不限于例如文本文件、視頻/音頻文件、圖像/圖表以及任何其他數(shù) 據(jù)或信息。
作為數(shù)據(jù)擁有者終端、檢索者終端和服務(wù)器的示例性配置,圖中已經(jīng) 示出了一些耦合在一起的單元。這些單元可以利用總線或者任何其他信號 線或者通過任何無線連接來耦合,以在其間傳輸信號。然而,每個設(shè)備中 所包括的部件并不限于上述這些單元,具體的配置可以被修改或改變。每 個設(shè)備還可以包括其他單元,例如用于向設(shè)備的操作者顯示信息的顯示單 元、用于接收操作者的輸入的輸入單元、用于控制每個單元的操作的控制 單元、任何需要的存儲裝置等等。由于這些部件是本領(lǐng)域中公知的,因此 沒有對其進(jìn)行詳細(xì)的描述,本領(lǐng)域的技術(shù)人員將容易地考慮到將它們添加 到上述設(shè)備中。另外,雖然所描述的單元在附圖中被示出為是分別的單 元,但是它們中的任何一個可以與其他單元相結(jié)合作為一個部件,或者可 以被分割為多個部件。例如,圖3中所示的KIS定位器生成單元、文件定 位器生成單元和索引形成單元可以組合在一起作為一個索引生成單元。或 者,上述加密/解密設(shè)置單元可以被分割為用于選擇用于加密/解密的密鑰 的單元和用于選擇其他安全參數(shù)的單元。
此外,數(shù)據(jù)擁有者終端、檢索者終端和服務(wù)器在上述示例中被描述為 分別的設(shè)備,其可以在通信網(wǎng)絡(luò)中彼此遠(yuǎn)程地放置。但是,它們可以組合 為一個設(shè)備來增強(qiáng)功能性。例如,數(shù)據(jù)擁有者終端和檢索者終端可以被組 合,以創(chuàng)建新的設(shè)備,其在一些情況中是數(shù)據(jù)擁有者終端而在另一些情況 中能夠作為檢索者終端而執(zhí)行檢索。又例如,服務(wù)器和數(shù)據(jù)擁有者終端或 者檢索者終端可以被組合,如果在某個應(yīng)用中它扮演這兩個角色。同樣, 可以創(chuàng)建在不同事務(wù)中扮演數(shù)據(jù)擁有者終端、檢索者終端和服務(wù)器的設(shè)備。
上述的通信網(wǎng)絡(luò)可以是任何類型的往來,包括任何種類的電信網(wǎng)絡(luò)或 者計(jì)算機(jī)網(wǎng)絡(luò)。當(dāng)數(shù)據(jù)擁有者終端、檢索者終端和服務(wù)器被實(shí)現(xiàn)為單個設(shè) 備的一部分是,上述通信網(wǎng)絡(luò)還可以包括任何內(nèi)部數(shù)據(jù)傳輸機(jī)制,例如, 數(shù)據(jù)總線或集線器。
本發(fā)明的元素可以實(shí)現(xiàn)為硬件、軟件、固件或者它們的組合,并且可 以用在它們的系統(tǒng)、子系統(tǒng)、部件或者子部件中。當(dāng)以軟件方式實(shí)現(xiàn)時, 本發(fā)明的元素是被用于執(zhí)行所需任務(wù)的程序或者代碼段。程序或者代碼段 可以存儲在機(jī)器可讀介質(zhì)中,或者通過載波中攜帶的數(shù)據(jù)信號在傳輸介質(zhì) 或者通信鏈路上傳送。"機(jī)器可讀介質(zhì)"可以包括能夠存儲或傳輸信息的 任何介質(zhì)。機(jī)器可讀介質(zhì)的例子包括電子電路、半導(dǎo)體存儲器設(shè)備、
ROM、閃存、可擦除ROM (EROM)、軟盤、CD-ROM、光盤、硬盤、 光纖介質(zhì)、射頻(RF)鏈路,等等。代碼段可以經(jīng)由諸如因特網(wǎng)、內(nèi)聯(lián)網(wǎng) 等的計(jì)算機(jī)網(wǎng)絡(luò)被下載。
本發(fā)明可以以其他的具體形式實(shí)現(xiàn),而不脫離其精神和本質(zhì)特征。例 如,特定實(shí)施例中所描述的算法可以被修改,而系統(tǒng)體系結(jié)構(gòu)并不脫離本 發(fā)明的基本精神。因此,當(dāng)前的實(shí)施例在所有方面都被看作是示例性的而 非限定性的,本發(fā)明的范圍由所附權(quán)利要求而非上述描述定義,并且,落 入權(quán)利要求的含義和等同物的范圍內(nèi)的全部改變從而都被包括在本發(fā)明的 范圍之中。
3權(quán)利要求
1.一種用于密文檢索的方法,包括設(shè)置一個或多個文件定位器生成密鑰;通過將至少包含關(guān)鍵詞的串映射到唯一值,來生成一個或多個關(guān)鍵詞條目集合定位器;通過用至少一個文件定位器生成密鑰對多個文件中的每個文件的文件獲取信息進(jìn)行加密,來生成一個或多個文件定位器;以及通過一個或多個關(guān)鍵詞條目集合形成加密索引,其中每個關(guān)鍵詞條目集合由一個關(guān)鍵詞條目集合定位器標(biāo)識,并至少包含一個或多個與相應(yīng)關(guān)鍵詞相關(guān)聯(lián)的文件的文件定位器。
2. 根據(jù)權(quán)利要求1所述的方法,還包括 為每個文件設(shè)置文件加密密鑰;以及用相應(yīng)的文件加密密鑰對每個文件加密。
3. 根據(jù)權(quán)利要求1所述的方法,其中,所述文件獲取信息至少包含文 件的加密資源標(biāo)識符和文件解密密鑰。
4. 根據(jù)權(quán)利要求3所述的方法,其中,所述文件獲取信息還包括用于 可確認(rèn)解密的標(biāo)志。
5. 根據(jù)權(quán)利要求1所述的方法,其中,關(guān)鍵詞條目集合中的每個文件 定位器伴隨有一個索引定位器,并且所述方法還包括通過將至少包含文件的加密資源標(biāo)識符的串映射到唯一值,來為每個 文件生成索引定位指示器;以及通過將至少包含文件的文件定位器、相應(yīng)的關(guān)鍵詞條目集合定位器和 索引定位指示器的串映射到唯一值,來為每個文件生成索引定位器。
6. 根據(jù)權(quán)利要求5所述的方法,其中,所述索引定位指示器被生成為 至少包含加密資源標(biāo)識符和秘密密鑰的串的哈希值。
7. 根據(jù)權(quán)利要求1所述的方法,其中,所述關(guān)鍵詞條目集合定位器被 生成為至少包含相應(yīng)關(guān)鍵詞和主加密密鑰的串的哈希值。
8. 根據(jù)權(quán)利要求1所述的方法,其中,所述關(guān)鍵詞條目集合定位器是通過用文件定位器生成密鑰對相應(yīng)的關(guān)鍵詞進(jìn)行加密而生成的。
9. 根據(jù)權(quán)利要求1所述的方法,其中,所述一個或多個文件定位器生 成密鑰是根據(jù)一個或多個隱私級別而設(shè)置的。
10. 根據(jù)權(quán)利要求9所述的方法,其中,每個文件定位器生成密鑰是至少包含主加密密鑰和指示隱私級別的值的串的哈希值。
11. 根據(jù)權(quán)利要求9所述的方法,其中,每個隱私級別的文件定位器 生成密鑰是前一較高隱私級別的文件定位器生成密鑰的哈希值。
12. 根據(jù)權(quán)利要求9所述的方法,其中,每個隱私級別的文件定位器 生成密鑰是前一較低隱私級別的文件定位器生成密鑰的A次冪,其中4 是私鑰。
13. 根據(jù)權(quán)利要求1所述的方法,其中,每個文件定位器生成密鑰是 至少包含關(guān)鍵詞和主加密密鑰的串的哈希值。
14. 一種用于密文檢索的裝置,包括加密/解密設(shè)置單元,被配置為設(shè)置一個或多個文件定位器生成密鑰; 關(guān)鍵詞條目集合定位器生成單元,被配置為通過將至少包含關(guān)鍵詞的串映射到唯一值,來生成一個或多個關(guān)鍵詞條目集合定位器;文件定位器生成單元,被配置為通過用至少一個文件定位器生成密鑰對多個文件中的每個文件的文件獲取信息進(jìn)行加密,來生成一個或多個文件定位器;以及索引形成單元,被配置為通過一個或多個關(guān)鍵詞條目集合形成加密索 引,其中每個關(guān)鍵詞條目集合由一個關(guān)鍵詞條目集合定位器標(biāo)識,并至少 包含一個或多個與相應(yīng)關(guān)鍵詞相關(guān)聯(lián)的文件的文件定位器。
15. 根據(jù)權(quán)利要求14所述的裝置,其中,所述加密/解密設(shè)置單元還被配置為多個文件中的每個文件設(shè)置文件加密密鑰,并且所述裝置還包括文 件加密單元,所述文件加密單元被配置為用相應(yīng)的文件加密密鑰對每個文 件加密。
16. 根據(jù)權(quán)利要求14所述的裝置,其中,所述文件獲取信息至少包含 文件的加密資源標(biāo)識符和文件解密密鑰。
17. 根據(jù)權(quán)利要求16所述的裝置,其中,所述文件獲取信息還包括用于可確認(rèn)解密的標(biāo)志。
18. 根據(jù)權(quán)利要求14所述的裝置,還包括索引定位指示器生成單元,被配置為通過將至少包含文件的加密資源 標(biāo)識符的串映射到唯一值,來為每個文件生成索引定位指示器;以及索引定位器生成單元,被配置為通過將至少包含文件的文件定位器、 相應(yīng)的關(guān)鍵詞條目集合定位器和索引定位指示器的串映射到唯一值,來為 每個文件生成索引定位器,其中,所述索引形成單元形成加密索引使得關(guān)鍵詞條目集合中的每個 文件定位器伴隨有一個相關(guān)的索引定位器。
19. 根據(jù)權(quán)利要求16所述的裝置,其中,所述索引定位指示器生成單 元被配置為生成至少包含加密資源標(biāo)識符和秘密密鑰的串的哈希值作為所 述索引定位器。
20. 根據(jù)權(quán)利要求14所述的裝置,其中,所述索引定位指示器生成單 元被配置為生成至少包含相應(yīng)關(guān)鍵詞和主加密密鑰的串的哈希值作為所述 關(guān)鍵詞條目集合定位器。
21. 根據(jù)權(quán)利要求14所述的裝置,其中,所述關(guān)鍵詞條目集合定位器 單元被配置為通過用文件定位器生成密鑰對相應(yīng)的關(guān)鍵詞進(jìn)行加密來生成 所述關(guān)鍵詞條目集合定位器。
22. 根據(jù)權(quán)利要求14所述的裝置,其中,所述加密/解密設(shè)置單元被配 置為根據(jù)一個或多個隱私級別來設(shè)置所述一個或多個文件定位器生成密 鑰。
23. 根據(jù)權(quán)利要求22所述的裝置,其中,所述加密/解密設(shè)置單元被配 置為設(shè)置至少包含主加密密鑰和指示隱私級別的值的串的哈希值作為所述 文件定位器生成密鑰。
24. 根據(jù)權(quán)利要求22所述的裝置,其中,所述加密/解密設(shè)置單元被配置為將每個隱私級別的文件定位器生成密鑰設(shè)置為前一較低隱私級別的文 件定位器生成密鑰的哈希值。
25. 根據(jù)權(quán)利要求22所述的裝置,其中,所述加密/解密設(shè)置單元被配置為將每個隱私級別的文件定位器生成密鑰設(shè)置為前一較低隱私級別的文件定位器生成密鑰的A次冪,其中A是私鑰。
26. 根據(jù)權(quán)利要求14所述的裝置,其中,所述加密/解密設(shè)置單元被配 置為設(shè)置至少包含關(guān)鍵詞和主加密密鑰的串的哈希值作為所述文件定位器 生成密鑰。
27. —種在加密文件檢索中使用的方法,包括存儲包括一個或多個關(guān)鍵詞條目集合的加密索引,每個關(guān)鍵詞條目集 合由一個關(guān)鍵詞條目集合定位器標(biāo)識,并至少包含一個或多個文件定位 器,每個文件定位器伴隨有一個索引定位器;接收索引定位指示器;以及如果伴隨一個文件定位器的索引定位器等于通過映射至少含有所述文 件定位器、標(biāo)識關(guān)鍵詞條目集合的關(guān)鍵詞條目集合定位器以及所述被接收 的索引定位指示器的串而計(jì)算出的值,則從所述關(guān)鍵詞條目集合中刪除所 述文件定位器。
28. 根據(jù)權(quán)利要求27所述的方法,還包括 接收一個或多個關(guān)鍵詞條目集合定位器;以及搜索由所述被接收的一個或多個關(guān)鍵詞條目集合定位器標(biāo)識的一個或 多個關(guān)鍵詞條目集合,其中,所述刪除是在所述一個或多個關(guān)鍵詞條目集合中執(zhí)行的。
29. 根據(jù)權(quán)利要求27所述的方法,還包括 接收關(guān)鍵詞條目集合定位器;搜索由所述被接收的關(guān)鍵詞條目集合定位器標(biāo)識的關(guān)鍵詞條目集合; 輸出所述關(guān)鍵詞條目集合中所包含的文件定位器; 接收一組加密資源標(biāo)識符;以及輸出由與所述接收的加密資源標(biāo)識符相匹配的加密資源標(biāo)識符標(biāo)識的 加密文件。
30. 根據(jù)權(quán)利要求29所述的方法,還包括在接收所述一組加密資源標(biāo) 識符之后,從所述一組加密資源標(biāo)識符中過濾掉要從檢索中排除的加密文 件的加密資源標(biāo)識符。
31. —種在加密文件檢索中使用的裝置,包括存儲單元,被配置為存儲包括一個或多個關(guān)鍵詞條目集合的加密索 引,每個關(guān)鍵詞條目集合由一個關(guān)鍵詞條目集合定位器標(biāo)識,并至少包含一個或多個文件定位器,每個文件定位器伴隨有一個索引定位器;以及索引更新單元,被配置為如果伴隨一個文件定位器的索引定位器等于 通過映射至少含有所述文件定位器、標(biāo)識關(guān)鍵詞條目集合的關(guān)鍵詞條目集 合定位器以及一個被接收的索引定位指示器的串而計(jì)算出的值,則從所述 關(guān)鍵詞條目集合中刪除所述文件定位器。
32. 根據(jù)權(quán)利要求31所述的裝置,還包括索引檢索單元,被配置為在所述加密索引中搜索由關(guān)鍵詞條目集合定 位器標(biāo)識的關(guān)鍵詞條目集合。
33. 根據(jù)權(quán)利要求31所述的裝置,還包括文件搜索單元,被配置為搜索由加密資源標(biāo)識符標(biāo)識的加密文件。
34. 根據(jù)權(quán)利要求33所述的裝置,還包括過濾單元,被配置為從被接收的一組加密資源標(biāo)識符中過濾掉要從檢 索中排除的加密文件的加密資源標(biāo)識符。
35. —種用于加密文件檢索的方法,包括接收關(guān)鍵詞條目集合定位器和文件定位器解密密鑰; 利用所述關(guān)鍵詞條目集合定位器獲取一個或多個文件定位器; 用所述文件定位器解密密鑰對每個文件定位器解密,以獲得一個或多 個加密資源標(biāo)識符和相應(yīng)的文件解密密鑰;獲取由所述一個或多個加密資源標(biāo)識符標(biāo)識的一個或多個加密文件;以及用相應(yīng)的文件解密密鑰對每個加密文件解密。
36. 根據(jù)權(quán)利要求35所述的方法,還包括 接收標(biāo)志;以及通過將所述被接收的標(biāo)志與從每個文件定位器的解密獲得的標(biāo)志相比 較,來確認(rèn)每個文件定位器的解密。
37. 根據(jù)權(quán)利要求35所述的方法,還包括通過計(jì)算所述文件定位器解密密鑰的哈希值,得到用于較低隱私級別的文件定位器解密密鑰。
38. 根據(jù)權(quán)利要求35所述的方法,還包括 通過計(jì)算所述文件定位器解密密鑰的e。次冪,得到用于較低隱私級別 的文件定位器解密密鑰,其中&是公鑰。
39. —種用于加密文件檢索的裝置,包括檢索請求單元,被配置為生成至少包含關(guān)鍵詞條目集合定位器的檢索請求;文件定位器解密單元,被配置為用文件定位器解密密鑰對一個或多個 文件定位器解密,以獲得一個或多個加密資源標(biāo)識符和相應(yīng)的文件解密密 鑰;文件獲取單元,被配置為獲取由所述一個或多個加密資源標(biāo)識符標(biāo)識 的一個或多個加密文件;以及用相應(yīng)的文件解密密鑰對每個加密文件解密。
40. 根據(jù)權(quán)利要求39所述的裝置,其中,所述文件定位器解密單元還 被配置為通過將接收的標(biāo)志與從每個文件定位器的解密獲得的標(biāo)志相比 較,來確認(rèn)每個文件定位器的解密。
41. 根據(jù)權(quán)利要求39所述的裝置,其中,所述文件定位器解密單元還 被配置為通過計(jì)算所述文件定位器解密密鑰的哈希值,得到用于較低隱私 級別的文件定位器解密密鑰。
42. 根據(jù)權(quán)利要求39所述的裝置,其中,所述文件定位器解密單元還 被配置為通過計(jì)算所述文件定位器解密密鑰的e。次冪,得到用于較低隱私 級別的文件定位器解密密鑰,其中e。是公鑰。
全文摘要
本發(fā)明提供了一種用于快速密文檢索的方法、裝置和系統(tǒng)。數(shù)據(jù)擁有者對文件加密并將密文存儲到服務(wù)器上。數(shù)據(jù)擁有者根據(jù)文件的關(guān)鍵詞生成加密索引,并將加密索引存儲到服務(wù)器上。索引由關(guān)鍵詞條目集合組成,每個關(guān)鍵詞條目集合由一個關(guān)鍵詞條目集合定位器標(biāo)識,并至少包含與相應(yīng)的關(guān)鍵詞相關(guān)聯(lián)的文件的一個或多個文件定位器。每個文件定位器包含用于獲取加密文件的信息的密文,并且只有利用正確的文件定位器解密密鑰,該密文才能被解密。數(shù)據(jù)擁有者向檢索者授予關(guān)鍵詞條目集合定位器以及文件定位器解密密鑰,以使得檢索者能夠?qū)用芩饕M(jìn)行檢索并獲取與某個關(guān)鍵詞有關(guān)的文件。
文檔編號G06F17/30GK101593196SQ20081014508
公開日2009年12月2日 申請日期2008年8月1日 優(yōu)先權(quán)日2008年5月30日
發(fā)明者珂 曾, 王利明, 野 田, 福島俊一, 浩 雷 申請人:日電(中國)有限公司