本發(fā)明涉及服務器裝置、檢索系統(tǒng)、終端裝置、檢索方法、服務器程序以及終端程序。本發(fā)明例如涉及隱匿檢索系統(tǒng)。
背景技術:
隱匿檢索是能夠在對加密數(shù)據(jù)和關鍵字進行加密的狀態(tài)下進行檢索的技術。
近年來,由于云服務等的普及,已能夠在互聯(lián)網(wǎng)上進行數(shù)據(jù)管理。但是,在互聯(lián)網(wǎng)上的數(shù)據(jù)管理中,存在由于作為寄存數(shù)據(jù)的目的地的云服務器感染計算機病毒等惡意軟件、或者云服務的管理者進行不正當動作而向外部泄漏數(shù)據(jù)的危險性。作為避免這種安全性威脅的方法,存在加密技術,但是,當單純地對數(shù)據(jù)進行加密時,產(chǎn)生無法進行數(shù)據(jù)檢索這樣的問題。針對這種問題,此前已考慮了在進行檢索時在云服務器上暫時對數(shù)據(jù)進行解密后進行檢索這樣的手法。但是,數(shù)據(jù)在云服務器內(nèi)在一定期間返回到明文,因此,作為對策并不充分。因此,當前正在活躍地研究能夠在對數(shù)據(jù)進行加密的狀態(tài)下進行檢索的加密技術即隱匿檢索技術。近年來已公開有很多隱匿檢索技術的具體手法。
在隱匿檢索技術中,大致存在利用共享密鑰加密的方式(例如參照專利文獻1、專利文獻2、非專利文獻1、非專利文獻2、非專利文獻3)和利用公開密鑰加密的方式(例如參照非專利文獻4、非專利文獻5)這兩種。另外,共享密鑰加密也稱作秘密密鑰加密或?qū)ΨQ密鑰加密。
在基于公開密鑰加密的隱匿檢索技術中,通過使用公開密鑰,任何實體都能夠進行針對數(shù)據(jù)中心的數(shù)據(jù)登記。并且,持有與該公開密鑰對應的秘密密鑰的實體能夠進行關鍵字檢索。
另一方面,在基于共享密鑰加密的隱匿檢索技術中,僅持有秘密密鑰的實體能夠執(zhí)行數(shù)據(jù)登記和關鍵字檢索。公知與現(xiàn)有的基于公開密鑰加密的隱匿檢索技術相比,基于共享密鑰加密的隱匿檢索技術的檢索處理更加快速。特別是在近年來的基于共享密鑰加密的隱匿檢索技術中,已使用被稱作索引的對檢索結果進行加密并保管的數(shù)據(jù)構造而實現(xiàn)高速化。
現(xiàn)有技術文獻
專利文獻
專利文獻1:日本特開2013-152520號公報
專利文獻2:日本特開2013-161154號公報
非專利文獻
非專利文獻1:r.curtmola,j.garay,s.kamara,andr.ostrovsky,“searchablesymmetricencryption:improveddefinitionsandefficientconstructions”,acmccs2006,acm,2006
非專利文獻2:k.kurosawaandy.ohtaki,“uc-securesearchablesymmetricencryption”,fc2012,lecuturenotesincomputerscience7397,springer,2012
非專利文獻3:平野、服部、伊藤、川合、松田、太田、坂井、「暗號化索引追加後のsearchablesymmetricencryptionの安全性の関係」(平野、服部、伊藤、川合、松田、太田、坂井、“加密索引追加后的searchablesymmetricencryption的安全性的關系”)、scis2014、3b3-3、2014年
非專利文獻4:d.boneh,g.d.crescenzo,r.ostrovsky,andg.persiano,“publickeyencryptionwithkeywordsearch”,eurocrypt2004,lecturenotesincomputerscience3027,springer,2004
非專利文獻5:m.bellare,a.boldyreva,anda.o’neill,“deterministicandefficientlysearchableencryption”,crypto2007,lecturenotesincomputerscience4622,springer,2007
技術實現(xiàn)要素:
發(fā)明要解決的課題
在專利文獻1、非專利文獻1、非專利文獻2、非專利文獻3公開的現(xiàn)有的基于共享密鑰加密的隱匿檢索技術中,存在作為檢索者的用戶生成的檢索查詢的生成成本和檢索查詢的數(shù)據(jù)大小依賴于登記數(shù)據(jù)數(shù)量這樣的課題。
具體而言,在現(xiàn)有方式中,用戶能夠針對數(shù)據(jù)登記時生成的索引關聯(lián)多個數(shù)據(jù)。即,能夠在索引中存儲的檢索結果中插入多個數(shù)據(jù)名。但是,當針對一個索引關聯(lián)較多數(shù)據(jù)時,檢索查詢的生成成本和檢索查詢的數(shù)據(jù)大小與數(shù)據(jù)數(shù)量成比例增大。更準確地敘述時,當針對某個索引對應n個數(shù)據(jù)時,與僅與一個數(shù)據(jù)的對應相比,檢索查詢的生成成本和檢索查詢的數(shù)據(jù)大小增大大約n倍。
在使用ic(integratedcircuit:集成電路)卡這樣的計算資源匱乏的設備生成檢索查詢的情況下或通信頻帶狹窄的情況下,上述課題是致命的。廣泛公知ic卡是提高安全性的一個手段,但是,計算能力一般較低。因此,當檢索查詢的生成成本較大時,很難使用ic卡在現(xiàn)實的時間內(nèi)生成檢索查詢。在通信頻帶狹窄的情況下,發(fā)送檢索查詢的成本提高。因此,很難發(fā)送接收數(shù)據(jù)大小較大的檢索查詢。
為了降低檢索查詢的生成成本并減小檢索查詢的數(shù)據(jù)大小,可考慮減少與一個索引對應的數(shù)據(jù)數(shù)量而生成較多索引。但是,該情況下,數(shù)據(jù)中心登記的索引數(shù)量變多。其結果是,在檢索時,數(shù)據(jù)中心的服務器必須對較多索引實施檢索處理,檢索成本提高。
綜上所述,在現(xiàn)有的基于共享密鑰加密的隱匿檢索技術中,在請求檢索的一側(cè)的檢索查詢的生成成本和檢索查詢的數(shù)據(jù)大小與執(zhí)行檢索的一側(cè)的依賴于索引數(shù)量的檢索成本之間存在折中關系。即,如果提高請求檢索的一側(cè)的處理效率,則執(zhí)行檢索的一側(cè)的處理效率降低,相反也是同樣的。
本發(fā)明的目的在于,例如提高請求檢索的一側(cè)和執(zhí)行檢索的一側(cè)的整體處理效率。
用于解決課題的手段
本發(fā)明的一個方式的服務器裝置具有:數(shù)據(jù)保管部,其保管多個加密數(shù)據(jù);索引保管部,其保管用于使用針對輸入的關鍵字輸出唯一數(shù)值的函數(shù)進行檢索的數(shù)據(jù)構造作為索引,該數(shù)據(jù)構造具有與從所述函數(shù)輸出的數(shù)值一一對應的多個存儲區(qū)域,針對與對所述多個加密數(shù)據(jù)中的任意加密數(shù)據(jù)進行加密之前的數(shù)據(jù)即明文數(shù)據(jù)對應的多個關鍵字,在與通過輸入各個關鍵字而從所述函數(shù)輸出的數(shù)值對應的存儲區(qū)域中,存儲對各個關鍵字對應的明文數(shù)據(jù)進行加密之后的數(shù)據(jù)即加密數(shù)據(jù)的標識符;以及檢索部,其對所述函數(shù)輸入所述多個關鍵字中的任意關鍵字,根據(jù)所述索引確定與從所述函數(shù)輸出的數(shù)值對應的存儲區(qū)域,從所述數(shù)據(jù)保管部取得與所確定的存儲區(qū)域中存儲的標識符對應的加密數(shù)據(jù)。
發(fā)明效果
在本發(fā)明中,執(zhí)行檢索的一側(cè)即服務器裝置使用針對所輸入的關鍵字輸出唯一數(shù)值的函數(shù)進行檢索。服務器裝置保管具有與從函數(shù)輸出的數(shù)值一一對應的多個存儲區(qū)域的數(shù)據(jù)構造作為索引。如果存在輸入到函數(shù)的關鍵字,則服務器裝置能夠執(zhí)行檢索。請求檢索的一側(cè)僅將關鍵字交給服務器裝置就能夠請求檢索。由此,根據(jù)本發(fā)明,請求檢索的一側(cè)和執(zhí)行檢索的一側(cè)的整體處理效率得到提高。
附圖說明
圖1是示出實施方式1的檢索系統(tǒng)的結構的框圖。
圖2是示出關鍵字與作為檢索對象的數(shù)據(jù)的標識符的對應關系的例子的表。
圖3是示出實施方式1的終端裝置的結構的框圖。
圖4是示出實施方式1的服務器裝置的結構的框圖。
圖5是示出實施方式1的檢索系統(tǒng)的初始設定處理的流程圖。
圖6是示出實施方式1的檢索系統(tǒng)的數(shù)據(jù)登記處理的流程圖。
圖7是示出實施方式1的檢索系統(tǒng)的數(shù)據(jù)檢索處理的流程圖。
圖8是示出實施方式1的檢索系統(tǒng)的數(shù)據(jù)刪除處理的流程圖。
圖9是示出實施方式1的檢索系統(tǒng)的索引刪除處理的流程圖。
圖10是示出實施方式1的檢索系統(tǒng)的初始設定處理的具體例的流程圖。
圖11是示出實施方式1的檢索系統(tǒng)的數(shù)據(jù)登記處理的具體例的流程圖。
圖12是示出實施方式1的檢索系統(tǒng)的數(shù)據(jù)檢索處理的具體例的流程圖。
圖13是示出實施方式1的檢索系統(tǒng)的數(shù)據(jù)刪除處理的具體例的流程圖。
圖14是示出實施方式1的檢索系統(tǒng)的索引刪除處理的具體例的流程圖。
圖15是示出實施方式1的終端裝置和服務器裝置的硬件結構的例子的圖。
具體實施方式
下面,使用附圖對本發(fā)明的實施方式進行說明。另外,在各圖中,對相同或相當?shù)牟糠謽俗⑾嗤瑯颂?。在實施方式的說明中,針對相同或相當?shù)牟糠?,適當省略或簡化其說明。
實施方式1
下面,對本實施方式的概要進行說明。
圖1是示出本實施方式的檢索系統(tǒng)100的結構的框圖。
如圖1所示,檢索系統(tǒng)100具有由用戶200利用的多個終端裝置201和設置在數(shù)據(jù)中心300中的服務器裝置301。另外,檢索系統(tǒng)100也可以僅具有一個終端裝置201。檢索系統(tǒng)100也可以具有多個服務器裝置301。服務器裝置301也可以設置在數(shù)據(jù)中心300以外的場所。
公司內(nèi)部lan101是相互連接多個終端裝置201的通信路徑。公司內(nèi)部lan101是鋪設在企業(yè)內(nèi)的lan(localareanetwork:局域網(wǎng))。在公司內(nèi)部lan101上連接有在企業(yè)內(nèi)利用的各種服務器和pc(personalcomputer:個人計算機)。公司內(nèi)部lan101是網(wǎng)絡的例子。也可以代替公司內(nèi)部lan101而使用其他種類的網(wǎng)絡。例如,在多個建筑物內(nèi)具有辦公室的情況下,使用由經(jīng)由路由器、專用線等連接的多個lan構成的網(wǎng)絡。
互聯(lián)網(wǎng)102是連接公司內(nèi)部lan101和服務器裝置301的通信路徑?;ヂ?lián)網(wǎng)102是網(wǎng)絡的例子。也可以代替互聯(lián)網(wǎng)102而使用其他種類的網(wǎng)絡。
多個終端裝置201經(jīng)由公司內(nèi)部lan101相互共享信息。終端裝置201和服務器裝置301經(jīng)由公司內(nèi)部lan101和互聯(lián)網(wǎng)102進行通信。
終端裝置201例如是pc。終端裝置201是作為登記終端和檢索終端中的至少任意一方進行動作的計算機,該登記終端將作為檢索對象的數(shù)據(jù)登記在服務器裝置301中,該檢索終端請求服務器裝置301檢索數(shù)據(jù)。下面,為了便于說明,設終端裝置201作為登記終端和檢索終端雙方進行動作。
終端裝置201作為加密裝置發(fā)揮功能。即,終端裝置201生成后述的加密數(shù)據(jù)和索引。
終端裝置201作為登記裝置發(fā)揮功能。即,終端裝置201請求服務器裝置301保管加密數(shù)據(jù)和索引。
終端裝置201作為檢索請求裝置發(fā)揮功能。即,終端裝置201向服務器裝置301發(fā)送后述的檢索種子,請求檢索數(shù)據(jù)。
終端裝置201作為解密裝置發(fā)揮功能。即,終端裝置201對根據(jù)檢索請求而從服務器裝置301返回的加密數(shù)據(jù)進行解密。
終端裝置201作為刪除請求裝置發(fā)揮功能。即,終端裝置201請求服務器裝置301刪除加密數(shù)據(jù)或索引。
服務器裝置301是具有保管由終端裝置201生成的加密數(shù)據(jù)和索引的大容量記錄介質(zhì)的服務器。
服務器裝置301作為保管裝置發(fā)揮功能。即,如果被終端裝置201請求保管加密數(shù)據(jù)或索引,則服務器裝置301保管加密數(shù)據(jù)或索引。
服務器裝置301作為檢索裝置發(fā)揮功能。即,如果被終端裝置201請求檢索,則服務器裝置301從索引得到檢索結果信息,向終端裝置201發(fā)送檢索結果信息所示的加密數(shù)據(jù)。
服務器裝置301作為刪除裝置發(fā)揮功能。即,如果被終端裝置201請求刪除加密數(shù)據(jù)或索引,則服務器裝置301刪除所保管的加密數(shù)據(jù)或索引。
加密數(shù)據(jù)和檢索種子均被加密。因此,在服務器裝置301中,即使閱覽加密數(shù)據(jù)和檢索種子的內(nèi)容也無法得到有益信息。另外,在可以僅隱匿作為檢索對象的數(shù)據(jù)而不隱匿檢索用的關鍵字的情況下,也可以直接使用關鍵字作為檢索種子。
圖2是示出關鍵字與作為檢索對象的數(shù)據(jù)的標識符的對應關系的例子的表。
在圖2的例子中,數(shù)據(jù)1、數(shù)據(jù)3、數(shù)據(jù)5與關鍵字“特許”對應。即,在將關鍵字設定為“特許”的檢索中,命中由數(shù)據(jù)1、數(shù)據(jù)3、數(shù)據(jù)5分別識別的3個數(shù)據(jù)。
同樣,數(shù)據(jù)2、數(shù)據(jù)3、數(shù)據(jù)7、數(shù)據(jù)10與關鍵字“人事信息”對應。即,在將關鍵字設定為“人事信息”的檢索中,命中由數(shù)據(jù)2、數(shù)據(jù)3、數(shù)據(jù)7、數(shù)據(jù)10分別識別的4個數(shù)據(jù)。
同樣,數(shù)據(jù)1、數(shù)據(jù)2與關鍵字“預算”對應。即,在將關鍵字設定為“預算”的檢索中,命中由數(shù)據(jù)1、數(shù)據(jù)2分別識別的2個數(shù)據(jù)。
在本實施方式中,對利用索引的現(xiàn)有的基于共享密鑰加密的隱匿檢索技術進行改良。具體而言,由作為檢索者的用戶200利用的終端裝置201不需要生成生成成本和數(shù)據(jù)大小與登記數(shù)據(jù)數(shù)量成比例增大的檢索查詢。終端裝置201代替檢索查詢而生成生成成本和數(shù)據(jù)大小不依賴于登記數(shù)據(jù)數(shù)量的檢索種子。通過對關鍵字進行加密而生成檢索種子。服務器裝置301使用從將檢索種子作為輸入的函數(shù)輸出的數(shù)值,從索引取得與關鍵字對應的數(shù)據(jù)的標識符。在圖2的例子中,在從終端裝置201給出關鍵字“特許”的檢索種子的情況下,服務器裝置301從索引取得數(shù)據(jù)1、數(shù)據(jù)3、數(shù)據(jù)5這3個標識符。
如上所述,在本實施方式中,直到根據(jù)關鍵字確定作為檢索對象的數(shù)據(jù)的標識符為止的一連串檢索處理由終端裝置201和服務器裝置301分擔。以往,在檢索查詢的生成成本和檢索查詢的數(shù)據(jù)大小與檢索成本之間存在折中關系,但是,在本實施方式中,不需要考慮這種折中關系。即,在本實施方式中,即使不增加索引數(shù)量,也能夠減小在請求檢索的一側(cè)生成的信息的生成成本和該信息的數(shù)據(jù)大小,并且,能夠得到具有較高安全性的基于共享密鑰加密的隱匿檢索技術。
在本實施方式中,按照以下流程來執(zhí)行用戶200在數(shù)據(jù)中心300登記數(shù)據(jù)的處理即數(shù)據(jù)登記處理和用戶200使用關鍵字在數(shù)據(jù)中心300檢索數(shù)據(jù)的處理即關鍵字檢索處理。但是,要求希望登記或檢索數(shù)據(jù)的實體即登記者或檢索者作為事前準備而生成秘密密鑰,并嚴格進行管理以使該秘密密鑰不會泄漏給他人。用戶200相當于登記者和檢索者。另外,也可以代替秘密密鑰而使用其他種類的秘密信息。
首先,對數(shù)據(jù)登記處理進行說明。
希望利用云服務等在數(shù)據(jù)中心300寄存數(shù)據(jù)的用戶200在數(shù)據(jù)登記時決定希望登記的數(shù)據(jù)的關鍵字。如圖2的例子所示,用戶200生成針對各關鍵字在檢索中命中的數(shù)據(jù)的標識符的列表。用戶200將生成的列表和希望登記的數(shù)據(jù)輸入到終端裝置201。
終端裝置201利用秘密密鑰對由用戶200輸入的列表中包含的關鍵字進行加密,生成檢索種子。終端裝置201使用檢索種子生成索引。在索引中保管檢索結果。作為索引所要求的性質(zhì),要求如果不具有秘密密鑰或以該秘密密鑰為基準的秘密信息,則很難從索引取出有益檢索結果。
索引的構造能夠任意選擇。例如,作為索引的構造,能夠選擇如下的數(shù)組。即,各關鍵字的檢索結果存儲在數(shù)組的隨機地址的存儲區(qū)域中。利用對虛擬隨機函數(shù)或sha-1(securehashalgorithm-1(安全哈希算法-1))這樣的哈希函數(shù)輸入檢索種子而確定地生成的隨機數(shù),決定隨機地址。另外,“確定地”意味著,如果輸入的檢索種子相同,則始終生成相同值。如圖2的例子所示,在許可多個數(shù)據(jù)的標識符對應于一個關鍵字的情況下,與相同關鍵字對應的標識符的序數(shù)也輸入到哈希函數(shù)。如果輸入的檢索種子和序數(shù)的組合相同,則始終生成相同值。
在索引中,不存儲一切檢索種子本身而僅存儲檢索結果。僅具有秘密密鑰的用戶200能夠根據(jù)關鍵字生成檢索種子,能夠結合檢索種子和檢索結果。即,僅具有秘密密鑰的用戶200能夠結合關鍵字和檢索結果??梢钥紤]索引是檢索結果的轉(zhuǎn)置索引。
終端裝置201使用aes(advancedencryptionstandard:高級加密標準)或camellia(注冊商標)等共享密鑰加密方式對由用戶200輸入的數(shù)據(jù)進行加密。終端裝置201將索引和加密數(shù)據(jù)登記在數(shù)據(jù)中心300的服務器裝置301中。
接著,對關鍵字檢索處理進行說明。
希望檢索數(shù)據(jù)中心300中寄存的加密數(shù)據(jù)的用戶200將關鍵字輸入到終端裝置201。
終端裝置201利用秘密密鑰對由用戶200輸入的關鍵字進行加密,生成檢索種子。終端裝置201向數(shù)據(jù)中心300的服務器裝置301發(fā)送檢索種子。
數(shù)據(jù)中心300的服務器裝置301使用從終端裝置201接收到的檢索種子生成隨機數(shù)。該隨機數(shù)對應于索引的地址。如圖2的例子所示,在許可多個數(shù)據(jù)的標識符對應于一個關鍵字的情況下,服務器裝置301生成多個隨機數(shù)。服務器裝置301確定與所生成的隨機數(shù)對應的索引內(nèi)的一個或多個地址。服務器裝置301從所確定的地址的存儲區(qū)域中取出檢索結果。然后,服務器裝置301讀出與檢索結果所示的標識符對應的一個或多個加密數(shù)據(jù)。服務器裝置301向終端裝置201發(fā)送所讀出的加密數(shù)據(jù)。
終端裝置201使用共享密鑰加密方式對接收到的加密數(shù)據(jù)進行解密。
通過執(zhí)行上述數(shù)據(jù)登記處理和關鍵字檢索處理,即使數(shù)據(jù)被加密并保管在數(shù)據(jù)中心300中,也能夠在對數(shù)據(jù)進行加密的狀態(tài)下進行檢索而不會泄漏與數(shù)據(jù)的內(nèi)容有關的信息。數(shù)據(jù)中心300的服務器裝置301也無法訪問與數(shù)據(jù)的內(nèi)容有關的信息。
在本實施方式中,作為檢索者的用戶200的終端裝置201在檢索時不生成檢索查詢,取而代之地生成不依賴于登記數(shù)據(jù)數(shù)量的檢索種子。數(shù)據(jù)中心300的服務器裝置301根據(jù)該檢索種子生成隨機數(shù)即檢索關鍵字。服務器裝置301根據(jù)該檢索關鍵字進行索引的檢索。由此,即使在一個索引中登記了多個數(shù)據(jù),也不會影響檢索種子的生成成本和檢索種子的數(shù)據(jù)大小。即,在本實施方式中,與現(xiàn)有的檢索查詢不同,能夠降低檢索種子的生成成本,能夠減小檢索種子的數(shù)據(jù)大小。
下面,對本實施方式進行詳細說明。
***結構的說明***
如圖1所示,檢索系統(tǒng)100具有終端裝置201和服務器裝置301。下面,依次對終端裝置201的結構、服務器裝置301的結構進行說明。
圖3是示出終端裝置201的結構的框圖。
如圖3所示,終端裝置201具有秘密密鑰生成部202、秘密密鑰管理部203、關鍵字設定部204、數(shù)據(jù)加密部205、索引生成部206、數(shù)據(jù)刪除請求生成部207、索引刪除請求生成部208、關鍵字加密部209、通信部210以及數(shù)據(jù)解密部211。
雖然沒有圖示,但是,終端裝置201具有存儲在終端裝置201的各部中使用的數(shù)據(jù)的記錄介質(zhì)。
秘密密鑰生成部202生成用于對數(shù)據(jù)進行加密的共享密鑰加密方式的加密密鑰ek和用于生成索引i的索引密鑰ik。加密密鑰ek和索引密鑰ik是終端裝置201的秘密密鑰,嚴格進行管理以使不對進行數(shù)據(jù)登記、數(shù)據(jù)追加、數(shù)據(jù)刪除或關鍵字檢索的用戶200以外公開。另外,在本實施方式中使用共享密鑰加密方式,但是,也可以使用rsa(注冊商標)加密方式等公開密鑰加密方式。在公開密鑰加密方式中,加密中使用的公開密鑰可以公開,但是,要嚴格管理解密中使用的秘密密鑰。
秘密密鑰管理部203將由秘密密鑰生成部202生成的加密密鑰ek和索引密鑰ik存儲在記錄介質(zhì)中。
關鍵字設定部204從由用戶200輸入的多個明文數(shù)據(jù)d_1~d_n中自動提取多個關鍵字。關鍵字設定部204針對提取出的各關鍵字,生成圖2的例子所示的檢索結果信息。關鍵字設定部204將由用戶200輸入的登記索引名也包含在檢索結果信息中。另外,登記索引名不是必須由用戶200輸入,也可以省略。也可以不自動提取關鍵字。例如,也可以與作為明文數(shù)據(jù)的登記數(shù)據(jù)同時地,由用戶200輸入與各數(shù)據(jù)對應的關鍵字。該情況下,關鍵字設定部204判定由用戶200輸入的各關鍵字與數(shù)據(jù)的關聯(lián)性,生成檢索結果信息?;蛘?,用戶200直接輸入檢索結果信息。
數(shù)據(jù)加密部205使用秘密密鑰管理部203中存儲的加密密鑰ek,對從關鍵字設定部204接收到的登記數(shù)據(jù)進行加密。即,數(shù)據(jù)加密部205通過使用加密密鑰ek對多個明文數(shù)據(jù)d_1~d_n進行加密,生成多個加密數(shù)據(jù)c_1~c_n。
索引生成部206生成用于使用針對輸入的關鍵字輸出唯一數(shù)值的函數(shù)h進行檢索的數(shù)據(jù)構造作為索引i。索引i是具有與從函數(shù)h輸出的數(shù)值一一對應的多個存儲區(qū)域的數(shù)據(jù)構造。索引i是如下的數(shù)據(jù)構造:針對與多個明文數(shù)據(jù)d_1~d_n中的任意明文數(shù)據(jù)對應的多個關鍵字,在與通過輸入各個關鍵字而從函數(shù)h輸出的數(shù)值對應的存儲區(qū)域中,存儲對各個關鍵字對應的明文數(shù)據(jù)d_i進行加密之后的數(shù)據(jù)即加密數(shù)據(jù)c_i的標識符。
索引生成部206使用秘密密鑰管理部203中存儲的索引密鑰ik,根據(jù)由關鍵字設定部204生成的檢索結果信息生成索引i。即,函數(shù)h的輸入也可以是明文的關鍵字,但是,在本實施方式中,針對服務器裝置301隱匿關鍵字,因此,設函數(shù)h的輸入是加密后的關鍵字即檢索種子。索引生成部206針對多個關鍵字,使用索引密鑰ik對各個關鍵字進行加密。索引生成部206對函數(shù)h輸入加密后的關鍵字。索引生成部206生成如下的數(shù)據(jù)構造作為索引i:在與從函數(shù)h輸出的數(shù)值對應的存儲區(qū)域中,存儲對加密后的關鍵字對應的明文數(shù)據(jù)d_i進行加密之后的數(shù)據(jù)即加密數(shù)據(jù)c_i的標識符。
也可以是一個關鍵字僅對應于一個明文數(shù)據(jù),但是,在本實施方式中,一個關鍵字能夠?qū)?個以上的明文數(shù)據(jù),因此,設在函數(shù)h的輸入中包含關鍵字以外的數(shù)值。即,函數(shù)h是針對輸入的關鍵字和數(shù)值的組合輸出唯一數(shù)值的函數(shù)。索引生成部206針對共享關鍵字對應的2個以上的明文數(shù)據(jù),對函數(shù)h輸入共享關鍵字和用于識別各個明文數(shù)據(jù)d_i的數(shù)值。索引生成部206生成如下的數(shù)據(jù)構造作為索引i:在與從函數(shù)h輸出的數(shù)值對應的存儲區(qū)域中,存儲對各個明文數(shù)據(jù)d_i進行加密之后的數(shù)據(jù)即加密數(shù)據(jù)c_i的標識符。
數(shù)據(jù)刪除請求生成部207生成包含由用戶200輸入的標識符即刪除數(shù)據(jù)名的刪除數(shù)據(jù)信息。刪除數(shù)據(jù)信息是用于刪除服務器裝置301中登記的加密數(shù)據(jù)的信息。
索引刪除請求生成部208生成包含由用戶200輸入的刪除索引名的刪除索引信息。刪除索引信息是用于刪除服務器裝置301中登記的索引i的信息。
關鍵字加密部209使用秘密密鑰管理部203中存儲的索引密鑰ik,根據(jù)由用戶200輸入的關鍵字生成檢索種子。即,關鍵字加密部209使用索引密鑰ik對關鍵字進行加密。關鍵字加密部209還生成包含由用戶200輸入的檢索索引名的檢索索引信息。另外,檢索索引名不是必須由用戶200輸入,也可以省略。
檢索種子是進行檢索所需要的信息的中間信息。無法直接使用檢索種子來檢索索引i。檢索種子是僅具有作為秘密密鑰的索引密鑰ik的用戶200能夠生成的信息。服務器裝置301能夠僅使用檢索種子生成作為進行檢索所需要的信息的檢索關鍵字。服務器裝置301能夠根據(jù)生成的檢索關鍵字進行索引的檢索。
通信部210向服務器裝置301發(fā)送從數(shù)據(jù)加密部205送來的多個加密數(shù)據(jù)c_1~
c_n、從索引生成部206送來的索引i、從數(shù)據(jù)刪除請求生成部207送來的刪除數(shù)據(jù)信息、從索引刪除請求生成部208送來的刪除索引信息、從關鍵字加密部209送來的檢索種子和檢索索引信息。即,通信部210向服務器裝置301發(fā)送由數(shù)據(jù)加密部205生成的多個加密數(shù)據(jù)c_1~c_n和由索引生成部206生成的索引i。通信部210向服務器裝置301發(fā)送由關鍵字加密部209加密后的關鍵字。
通信部210從服務器裝置301接收作為多個加密數(shù)據(jù)c_1~c_n中的任意加密數(shù)據(jù)的加密數(shù)據(jù)c_i。
數(shù)據(jù)解密部211使用秘密密鑰管理部203中存儲的加密密鑰ek,對從通信部210接收到的加密數(shù)據(jù)c_i進行解密,取得明文數(shù)據(jù)c_i。數(shù)據(jù)解密部211將取得的明文數(shù)據(jù)c_i輸出到顯示器或打印機等。即,數(shù)據(jù)解密部211使用與加密密鑰ek對應的解密密鑰對由通信部210接收到的加密數(shù)據(jù)c_i進行解密。
圖4是示出服務器裝置301的結構的框圖。
如圖4所示,服務器裝置301具有通信部302、數(shù)據(jù)保管部303、索引保管部304、檢索部305、檢索關鍵字生成部306以及索引更新部307。
雖然沒有圖示,但是,服務器裝置301具有存儲在服務器裝置301的各部中使用的數(shù)據(jù)的記錄介質(zhì)。
通信部302從終端裝置201接收多個加密數(shù)據(jù)c_1~c_n、索引i、刪除數(shù)據(jù)信息、刪除索引信息、由終端裝置201使用索引密鑰ik加密后的關鍵字即檢索種子、檢索索引信息。
通信部302向終端裝置201發(fā)送由檢索部305取得的加密數(shù)據(jù)c_i。
數(shù)據(jù)保管部303將從通信部302送來的多個加密數(shù)據(jù)c_1~c_n存儲在記錄介質(zhì)中。即,數(shù)據(jù)保管部303保管多個加密數(shù)據(jù)c_1~c_n。如上所述,多個加密數(shù)據(jù)c_1~c_n是由保有加密密鑰ek的終端裝置201使用加密密鑰ek對多個明文數(shù)據(jù)d_1~d_n進行加密之后的數(shù)據(jù)。在從檢索部305送來標識符即數(shù)據(jù)名的情況下,數(shù)據(jù)保管部303從記錄介質(zhì)中讀出與該數(shù)據(jù)名對應的加密數(shù)據(jù)c_i。數(shù)據(jù)保管部303向檢索部305發(fā)送所讀出的加密數(shù)據(jù)。數(shù)據(jù)保管部303從記錄介質(zhì)中刪除與從索引更新部307送來的刪除數(shù)據(jù)名對應的加密數(shù)據(jù)c_i。
索引保管部304將從通信部302送來的索引i存儲在記錄介質(zhì)中。即,索引保管部304保管用于使用針對輸入的關鍵字輸出唯一數(shù)值的函數(shù)h進行檢索的數(shù)據(jù)構造作為索引i。如上所述,索引i是具有與從函數(shù)h輸出的數(shù)值一一對應的多個存儲區(qū)域的數(shù)據(jù)構造。索引i是如下的數(shù)據(jù)構造:針對與對多個加密數(shù)據(jù)c_1~c_n中的任意加密數(shù)據(jù)進行加密之前的數(shù)據(jù)即明文數(shù)據(jù)d_i對應的多個關鍵字,在與通過輸入各個關鍵字而從函數(shù)h輸出的數(shù)值對應的存儲區(qū)域中,存儲對各個關鍵字對應的明文數(shù)據(jù)d_i進行加密之后的數(shù)據(jù)即加密數(shù)據(jù)c_i的標識符。索引i是由終端裝置201生成的數(shù)據(jù)構造。
如上所述,函數(shù)h的輸入也可以是明文的關鍵字,但是,在本實施方式中,針對服務器裝置301隱匿關鍵字,因此,設函數(shù)h的輸入是加密后的關鍵字即檢索種子。即,函數(shù)h是針對由保有索引密鑰ik的終端裝置201使用索引密鑰ik加密后的關鍵字輸出唯一數(shù)值的函數(shù)。
如上所述,也可以是一個關鍵字僅對應于一個明文數(shù)據(jù),但是,在本實施方式中,一個關鍵字能夠?qū)?個以上的明文數(shù)據(jù),因此,設在函數(shù)h的輸入中包含關鍵字以外的數(shù)值。即,函數(shù)h是針對輸入的關鍵字和數(shù)值的組合輸出唯一數(shù)值的函數(shù)。索引i是如下的數(shù)據(jù)構造:針對共享關鍵字對應的2個以上的明文數(shù)據(jù),在與通過輸入共享關鍵字和用于識別各個明文數(shù)據(jù)d_i的數(shù)值而從函數(shù)h輸出的數(shù)值對應的存儲區(qū)域中,存儲對各個明文數(shù)據(jù)d_i進行加密之后的數(shù)據(jù)即加密數(shù)據(jù)c_i的標識符。
索引保管部304從記錄介質(zhì)中讀出與從檢索部305送來的檢索索引名對應的索引i。索引保管部304向檢索部305發(fā)送所讀出的索引i。
索引保管部304從索引更新部307接收刪除數(shù)據(jù)名。索引保管部304從記錄介質(zhì)中讀出索引i。索引保管部304尋找包含接收到的刪除數(shù)據(jù)名的索引i的地址。在發(fā)現(xiàn)了相應地址的情況下,索引保管部304從該地址中刪除刪除數(shù)據(jù)名。
索引保管部304從記錄介質(zhì)中刪除與從索引更新部307送來的刪除索引名對應的索引i。
檢索部305從由通信部302送來的檢索索引信息中提取檢索索引名。檢索部305向索引保管部304發(fā)送提取出的檢索索引名。檢索部305向檢索關鍵字生成部306發(fā)送從通信部302送來的檢索種子。在檢索關鍵字生成部306中裝載函數(shù)h。檢索部305使用從檢索關鍵字生成部306送來的檢索關鍵字,檢索從索引保管部304送來的索引i,提取檢索結果。然后,檢索部305向數(shù)據(jù)保管部303發(fā)送提取出的數(shù)據(jù)名。檢索部305向通信部302發(fā)送從數(shù)據(jù)保管部303送來的加密數(shù)據(jù)c_i。即,檢索部305對函數(shù)h輸入多個關鍵字中的任意關鍵字。檢索部305根據(jù)索引i確定與從函數(shù)h輸出的數(shù)值對應的存儲區(qū)域。檢索部305從數(shù)據(jù)保管部303取得與所確定的存儲區(qū)域中存儲的標識符對應的加密數(shù)據(jù)c_i。在本實施方式中,檢索部305對函數(shù)h輸入由通信部302接收到的關鍵字。
如上所述,在本實施方式中,一個關鍵字能夠?qū)?個以上的明文數(shù)據(jù),因此,在函數(shù)h的輸入中包含關鍵字以外的數(shù)值。該數(shù)值的范圍預先設定。例如,最小值為1。最大值為許可一個關鍵字對應的明文數(shù)據(jù)的數(shù)量。檢索部305對函數(shù)h一個一個地輸入多個關鍵字中的任意關鍵字和預先設定的范圍內(nèi)的數(shù)值。在索引i中存在與從函數(shù)h輸出的數(shù)值對應的存儲區(qū)域的情況下,檢索部305從數(shù)據(jù)保管部303取得與該存在的存儲區(qū)域中存儲的標識符對應的加密數(shù)據(jù)c_i。
檢索關鍵字生成部306根據(jù)從檢索部305送來的檢索種子生成檢索關鍵字。檢索關鍵字生成部306向檢索部305發(fā)送所生成的檢索關鍵字。也可以考慮檢索關鍵字生成部306是函數(shù)h本身。
索引更新部307從由通信部302送來的刪除數(shù)據(jù)信息中提取刪除數(shù)據(jù)名。索引更新部307向數(shù)據(jù)保管部303和索引保管部304發(fā)送提取出的刪除數(shù)據(jù)名。即,在由終端裝置201指定了要刪除的加密數(shù)據(jù)c_i的標識符的情況下,索引更新部307從數(shù)據(jù)保管部303中刪除與所指定的標識符對應的加密數(shù)據(jù)c_i。并且,索引更新部307根據(jù)索引確定存儲有所指定的標識符的存儲區(qū)域。索引更新部307刪除所確定的存儲區(qū)域的內(nèi)容。
索引更新部307從由通信部302送來的刪除索引信息中提取刪除索引名。索引更新部307向索引保管部304發(fā)送提取出的刪除索引名。
另外,終端裝置201的索引生成部206也可以僅生成一個索引i,但是,下面,設為生成多個索引i。通過登記索引名、檢索索引名、刪除索引名這樣的索引名來識別各個索引i。
用戶200在請求檢索時,可以輸入一個或多個檢索索引名,也可以省略檢索索引名的輸入。在省略了檢索索引名的輸入的情況下,終端裝置201的關鍵字加密部209將進行全部索引i的檢索這樣的信息包含在檢索索引信息中。
服務器裝置301的索引保管部304在從索引更新部307接收到刪除數(shù)據(jù)名時,從記錄介質(zhì)中讀出全部索引i。索引保管部304尋找包含接收到的刪除數(shù)據(jù)名的索引i。在發(fā)現(xiàn)了相應索引i的情況下,索引保管部304從該索引i的相應地址中刪除刪除數(shù)據(jù)名。
***動作的說明***
下面,對與本實施方式的檢索方法相當?shù)臋z索系統(tǒng)100的動作進行說明。
圖5是示出檢索系統(tǒng)100的初始設定處理的流程圖。
圖5的s101~s104是使作為計算機的終端裝置201執(zhí)行本實施方式的終端程序的處理。在執(zhí)行數(shù)據(jù)登記處理和數(shù)據(jù)檢索處理之前,由終端裝置201執(zhí)行s101~s104。
在s101中,秘密密鑰生成部202決定用于對數(shù)據(jù)進行加密的共享密鑰加密方式。作為共享密鑰加密方式,能夠選擇aes、camellia(注冊商標)等。另外,共享密鑰加密方式也可以預先決定。如上所述,也可以代替共享密鑰加密方式而選擇公開密鑰加密方式。下面,將在s101中決定的共享密鑰加密方式簡稱作“共享密鑰加密方式”。
在s102中,秘密密鑰生成部202生成用于對數(shù)據(jù)進行加密的共享密鑰加密方式的加密密鑰ek。在本實施方式中,加密密鑰ek也是解密密鑰。如果在s101中選擇了公開密鑰加密方式,則秘密密鑰生成部202生成與作為公開密鑰的加密密鑰ek對應的秘密密鑰作為解密密鑰。
在s103中,秘密密鑰生成部202生成用于生成索引i和檢索種子的索引密鑰ik。
在s104中,秘密密鑰管理部203將在s102中生成的加密密鑰ek和在s103中生成的索引密鑰ik存儲在記錄介質(zhì)中。
通過s104,檢索系統(tǒng)100的初始設定處理結束。
圖6是示出檢索系統(tǒng)100的數(shù)據(jù)登記處理的流程圖。
圖6的s201~s206是使作為計算機的終端裝置201執(zhí)行本實施方式的終端程序的處理。s204是數(shù)據(jù)加密處理,s205是索引生成處理,s206是通信處理。在s201~s206中,由終端裝置201生成作為檢索對象的加密數(shù)據(jù)c_1~c_n和用于對作為檢索對象的數(shù)據(jù)進行檢索的索引i。
圖6的s207是使作為計算機的服務器裝置301執(zhí)行本實施方式的服務器程序的處理。s207是通信處理。在s207中,在服務器裝置301中登記作為檢索對象的加密數(shù)據(jù)c_1~c_n和索引i。
在s201中,用戶200使用鍵盤或鼠標等在終端裝置201中指定登記數(shù)據(jù)和登記索引名。關鍵字設定部204受理登記數(shù)據(jù)和登記索引名的輸入。登記數(shù)據(jù)是未加密的作為檢索對象的數(shù)據(jù)即明文數(shù)據(jù)d_1~d_n。另外,也可以僅指定一個登記數(shù)據(jù)。登記索引名是分配給與同時輸入的登記數(shù)據(jù)相關聯(lián)的索引i的名稱。另外,登記索引名不是必須輸入。登記索引名可以由關鍵字設定部204自動分配,也可以不分配。
在s202中,關鍵字設定部204生成與在s201中輸入的登記數(shù)據(jù)相關聯(lián)的一個以上的關鍵字。例如,關鍵字設定部204從登記數(shù)據(jù)中自動提取名詞作為關鍵字,或者受理由用戶200直接指定的關鍵字的輸入。
在s203中,關鍵字設定部204按照在s202中生成的每個關鍵字生成檢索結果信息。如圖2的例子所示,檢索結果信息是表示與關鍵字對應的登記數(shù)據(jù)的數(shù)據(jù)名的信息。
在s204中,數(shù)據(jù)加密部205使用秘密密鑰管理部203中存儲的加密密鑰ek,對在s201中輸入的登記數(shù)據(jù)進行加密,生成加密數(shù)據(jù)c_1~c_n。
在s205中,索引生成部206使用秘密密鑰管理部203中存儲的索引密鑰ik,對在s203中生成的檢索結果信息進行加密,生成索引i。
在s206中,通信部210向服務器裝置301發(fā)送在s204中生成的加密數(shù)據(jù)c_1~c_n和在s205中生成的索引i。
在s207中,通信部302接收在s206中發(fā)送的加密數(shù)據(jù)c_1~c_n和索引i。然后,數(shù)據(jù)保管部303將加密數(shù)據(jù)c_1~c_n存儲在記錄介質(zhì)中。索引保管部304將索引i存儲在記錄介質(zhì)中。
通過s207,檢索系統(tǒng)100的數(shù)據(jù)登記處理結束。加密數(shù)據(jù)c_1~c_n和索引i被加密,因此,登記數(shù)據(jù)和關鍵字被隱匿。另外,能夠通過與上述相同的順序追加登記數(shù)據(jù)。
圖7是示出檢索系統(tǒng)100的數(shù)據(jù)檢索處理的流程圖。
圖7的s301~s304和s310是使作為計算機的終端裝置201執(zhí)行本實施方式的終端程序的處理。s302和s303是關鍵字加密處理,s304和s310的一部分是通信處理,s310的其余部分是數(shù)據(jù)解密處理。在s301~s304中,由終端裝置201生成檢索種子。
圖7的s305~s309是使作為計算機的服務器裝置301執(zhí)行本實施方式的服務器程序的處理。s305的一部分和s309是通信處理,s305的其余部分和s306~s308是檢索處理。在s305~s309中,使用檢索種子由服務器裝置301生成檢索關鍵字,使用檢索關鍵字和服務器裝置301中登記的索引i檢索服務器裝置301中登記的加密數(shù)據(jù)c_i。
在s301中,用戶200使用鍵盤或鼠標等在終端裝置201中指定一個或多個關鍵字和一個或多個檢索索引名。關鍵字加密部209受理關鍵字和檢索索引名的輸入。
在s302中,關鍵字加密部209使用秘密密鑰管理部203中存儲的索引密鑰ik,根據(jù)在s301中輸入的關鍵字生成檢索種子。檢索種子是用于由服務器裝置301生成檢索關鍵字的信息。
在s303中,關鍵字加密部209生成包含在s301中輸入的檢索索引名的檢索索引信息。
在s304中,通信部210向服務器裝置301發(fā)送在s302中生成的檢索種子和在s303中生成的檢索索引信息。
在s305中,通信部302接收在s304中發(fā)送的檢索種子和檢索索引信息。然后,檢索部305從由通信部302送來的檢索索引信息中提取檢索索引名。檢索部305從索引保管部304中讀出與提取出的檢索索引名對應的索引i。如果存在多個檢索索引名,則檢索部305讀出多個索引i。
在s306中,檢索關鍵字生成部306使用從檢索部305送來的在s305中接收到的檢索種子生成檢索關鍵字。
在s307中,檢索部305使用在s306中生成的檢索關鍵字,檢索在s305中讀出的索引i。檢索部305提取包含數(shù)據(jù)名的檢索結果信息。
在s308中,檢索部305根據(jù)在s307中提取出的檢索結果信息,從數(shù)據(jù)保管部303中讀出加密數(shù)據(jù)c_i。
在s309中,通信部302向終端裝置201發(fā)送在s308中讀出的加密數(shù)據(jù)c_i。
在s310中,通信部210接收在s309中發(fā)送的加密數(shù)據(jù)c_i。然后,數(shù)據(jù)解密部211使用秘密密鑰管理部203中存儲的加密密鑰ek,對從通信部210送來的加密數(shù)據(jù)c_i進行解密。數(shù)據(jù)解密部211將進行解密而得到的明文數(shù)據(jù)d_i輸出到顯示器或打印機等。
通過s310,檢索系統(tǒng)100的數(shù)據(jù)檢索處理結束。
圖8是示出檢索系統(tǒng)100的數(shù)據(jù)刪除處理的流程圖。
圖8的s401~s403是使作為計算機的終端裝置201執(zhí)行本實施方式的終端程序的處理。s403是通信處理。
圖8的s404和s405是使作為計算機的服務器裝置301執(zhí)行本實施方式的服務器程序的處理。s404的一部分是通信處理,s404的其余部分和s405是索引更新處理。在s404和s405中,刪除服務器裝置301中登記的一部分登記數(shù)據(jù)。
在s401中,用戶200使用鍵盤或鼠標等在終端裝置201中指定一個或多個刪除數(shù)據(jù)名。數(shù)據(jù)刪除請求生成部207受理刪除數(shù)據(jù)名的輸入。
在s402中,數(shù)據(jù)刪除請求生成部207生成包含在s401中輸入的刪除數(shù)據(jù)名的刪除數(shù)據(jù)信息。
在s403中,通信部210向服務器裝置301發(fā)送在s402中生成的刪除數(shù)據(jù)信息。
在s404中,通信部302接收在s403中發(fā)送的刪除數(shù)據(jù)信息。索引更新部307從由通信部302送來的刪除數(shù)據(jù)信息中提取刪除數(shù)據(jù)名。索引保管部304由索引更新部307進行控制,由此從記錄介質(zhì)中讀出全部索引i,尋找包含從索引更新部307送來的刪除數(shù)據(jù)名的索引i。在發(fā)現(xiàn)了相應索引i的情況下,索引保管部304從該索引i的相應地址中刪除刪除數(shù)據(jù)名。
在s405中,數(shù)據(jù)保管部303由索引更新部307進行控制,由此從記錄介質(zhì)中刪除與從索引更新部307送來的刪除數(shù)據(jù)名對應的加密數(shù)據(jù)c_i。
通過s405,檢索系統(tǒng)100的數(shù)據(jù)刪除處理結束。
圖9是示出檢索系統(tǒng)100的索引刪除處理的流程圖。
圖9的s501~s503是使作為計算機的終端裝置201執(zhí)行本實施方式的終端程序的處理。s503是通信處理。
圖9的s504是使作為計算機的服務器裝置301執(zhí)行本實施方式的服務器程序的處理。s504的一部分是通信處理,s504的其余部分是索引更新處理。在s504中,從服務器裝置301中刪除一部分索引i。
在s501中,用戶200使用鍵盤或鼠標等在終端裝置201中指定一個或多個刪除索引名。索引刪除請求生成部208受理刪除索引名的輸入。
在s502中,索引刪除請求生成部208生成包含在s501中輸入的刪除索引名的刪除索引信息。
在s503中,通信部210向服務器裝置301發(fā)送在s502中生成的刪除索引信息。
在s504中,通信部302接收在s503中發(fā)送的刪除索引信息。索引更新部307從由通信部302送來的刪除索引信息中提取刪除索引名。索引保管部304由索引更新部307進行控制,由此從記錄介質(zhì)中刪除與從索引更新部307送來的刪除索引名對應的索引i。
通過s504,檢索系統(tǒng)100的索引刪除處理結束。
圖8所示的數(shù)據(jù)刪除處理和圖9所示的索引刪除處理也可以同時執(zhí)行。例如,能夠從終端裝置201向服務器裝置301發(fā)送包含刪除數(shù)據(jù)名和刪除索引名雙方的刪除請求信息。
下面,對檢索系統(tǒng)100的動作的具體例進行說明。
如下所述定義在具體例的說明中使用的記號。
將作為明文數(shù)據(jù)的數(shù)據(jù)d_i和對該明文數(shù)據(jù)進行加密而得到的加密數(shù)據(jù)c_i的數(shù)據(jù)名記為“id(d_i)”。但是,數(shù)據(jù)名id(d_i)只是標識符,不表示數(shù)據(jù)d_i的內(nèi)容。即,通過數(shù)據(jù)名id(d_i),不會得知數(shù)據(jù)d_i的內(nèi)容。
設數(shù)據(jù)名id(d_i)的比特長度為u。在輸入的數(shù)據(jù)名的比特長度比u短的情況下,例如通過從數(shù)據(jù)名的前方連接若干個整數(shù)0,使數(shù)據(jù)名id(d_i)成為u比特。
設關鍵字w的比特長度為x。在輸入的關鍵字的比特長度比x短的情況下,例如通過從關鍵字的前方連接若干個整數(shù)0,使關鍵字w成為x比特。
設加密密鑰ek的比特長度為k1,索引密鑰ik的比特長度為k2。
共享密鑰加密方式的加密函數(shù)enc將k1比特的密鑰ek和m比特的明文數(shù)據(jù)d_i作為輸入值,輸出m比特的加密數(shù)據(jù)c_i。共享密鑰加密方式的解密函數(shù)dec將k1比特的密鑰ek和m比特的加密數(shù)據(jù)c_i作為輸入值,輸出m比特的明文數(shù)據(jù)d_i。在輸入數(shù)據(jù)的比特長度超過m時,例如使用cbc(cipherblockchaining:密碼塊鏈接)模式等加密利用模式實施加密。
函數(shù)h是不使用秘密信息而根據(jù)輸入值計算隨機數(shù)值的函數(shù)。函數(shù)h也稱作“哈希函數(shù)”。函數(shù)h是如果輸入值相同則輸出值始終相同的確定性函數(shù)。
函數(shù)h將有限比特長度的數(shù)據(jù)作為輸入值,輸出y比特的隨機整數(shù)。這里,在寫為“h(a)=b”時,意味著將有限比特長度的數(shù)據(jù)a作為輸入值,輸出0~(2y-1)的隨機整數(shù)b。例如,當設y=10時,h(a)的輸出值b是0~1023之間的隨機整數(shù)。
函數(shù)f是使用某個秘密信息根據(jù)輸入值計算與輸入值相同大小的隨機數(shù)值的函數(shù)。函數(shù)f也稱作“虛擬隨機置換”。函數(shù)f是如果輸入值相同則輸出值始終相同的確定性函數(shù)。
函數(shù)f將k2比特的索引密鑰ik和x比特的整數(shù)作為輸入值,輸出x比特的隨機整數(shù)。這里,在寫為“f(ik,a)=b”時,意味著將k2比特的索引密鑰ik和x比特的整數(shù)a作為輸入值,輸出0~2x-1的隨機整數(shù)b。例如,當設x=12時,f(ik,a)的輸出值b是0~4095之間的隨機整數(shù)。
索引i是具有數(shù)組構造的數(shù)據(jù),具有多個數(shù)組元素。索引i的一個數(shù)組元素中能夠設定的值的最大的比特長度為u。
將識別索引i的數(shù)組元素i[addr]的值addr稱作索引i的地址。設該addr的比特長度為z。
僅在索引i的數(shù)組元素中的被使用的數(shù)組元素中確保存儲區(qū)域。被使用的數(shù)組元素是指設定有值的數(shù)組元素。即,索引i的地址空間是2z這樣的指數(shù)大小,雖然非常大,但是實際上僅利用一部分地址,并且,在未利用的地址中不進行任何設定。因此,索引i的實質(zhì)上的數(shù)據(jù)大小被抑制成現(xiàn)實的多項式大小。
將索引i的數(shù)據(jù)名即索引名記為“id(i)”。但是,索引名id(i)僅僅是標識符,不表示索引i的內(nèi)容。即,通過索引名id(i),不會得知索引id(i)的內(nèi)容。
設索引名id(i)的比特長度為v。在輸入的索引名的比特長度比v短的情況下,例如通過從索引名的前方連接若干個整數(shù)0,使索引名id(i)成為v比特。
“#x”意味著集合x的元素數(shù)量?!皔//z”意味著比特列y與比特列z的耦合或連接。其他記號是與一般使用的數(shù)學記號相同的意思。
圖10是示出檢索系統(tǒng)100的初始設定處理的具體例的流程圖。
圖10的流程圖對應于圖5的流程圖。s601對應于s101,s602對應于s102,s603對應于s103,s604對應于s104。
在s601中,秘密密鑰生成部202決定用于對數(shù)據(jù)進行加密的具體的共享密鑰加密方式。
在s602中,秘密密鑰生成部202隨機生成在s601中決定的共享密鑰加密方式的k1比特的加密密鑰ek。
在s603中,秘密密鑰生成部202生成k2比特的隨機數(shù)即索引密鑰ik。
在s604中,秘密密鑰管理部203存儲在s602中生成的加密密鑰ek和在s603中生成的索引密鑰ik。
圖11是示出檢索系統(tǒng)100的數(shù)據(jù)登記處理的具體例的流程圖。
圖11的流程圖對應于圖6的流程圖。s701對應于s201,s702對應于s202,s703對應于s203,s704對應于s204,s705和s706對應于s205,s707對應于s206,s708對應于s207。
在s701中,用戶200使用鍵盤或鼠標等在終端裝置201中指定登記數(shù)據(jù)d={d_1,···,d_n}和登記索引名id(i)。關鍵字設定部204受理登記數(shù)據(jù)d和登記索引名id(i)的輸入。
登記數(shù)據(jù)d包含一個以上的明文數(shù)據(jù)d_i。附加標號i表示1以上的任意整數(shù)。下面,設登記數(shù)據(jù)d內(nèi)的數(shù)據(jù)數(shù)量為n。設各數(shù)據(jù)d_i的數(shù)據(jù)名id(d_i)為u比特的整數(shù)。另外,在追加登記數(shù)據(jù)時,將不同的u比特的整數(shù)和追加數(shù)據(jù)對應起來,使得不會與已經(jīng)登記的數(shù)據(jù)名重復。
這里,設一次能夠登記的數(shù)據(jù)的數(shù)量為n。n為1以上的整數(shù),可事前設定,并且設為公開的系統(tǒng)參數(shù)。n是1000或10000這樣的現(xiàn)實的大小即可,可以是任意整數(shù)。在登記數(shù)據(jù)d內(nèi)的數(shù)據(jù)數(shù)量n超過n的情況下,將登記數(shù)據(jù)d分割成數(shù)據(jù)數(shù)量為n以下的若干個群組,針對這些群組反復執(zhí)行s701~s708即可。
在s702中,關鍵字設定部204生成與在s701中輸入的登記數(shù)據(jù)d相關聯(lián)的關鍵字集合w={w_1,…,w_q}。
關鍵字集合w包含一個以上的關鍵字w。下面,設關鍵字集合w內(nèi)的關鍵字數(shù)量為q。關鍵字w與登記數(shù)據(jù)d中的至少任意數(shù)據(jù)d_i相關聯(lián)。
在s703中,關鍵字設定部204針對在s701中輸入的登記索引名id(i)和在s702中生成的關鍵字集合w中包含的各關鍵字w,生成檢索結果信息(id(i),w,d(w))。這里,d(w)是包含與關鍵字w相關聯(lián)的數(shù)據(jù)的數(shù)據(jù)名的集合,用{id(d_s(1)),…,id(d_s(m))}表示。與關鍵字w相關聯(lián)的數(shù)據(jù)是指在使用關鍵字w的檢索中命中的數(shù)據(jù)。m為1以上的整數(shù)。id(d_s(1)),…,id(d_s(m))是u比特的相互不同的整數(shù)。
在s704中,數(shù)據(jù)加密部205從秘密密鑰管理部203中讀出加密密鑰ek。數(shù)據(jù)加密部205使用加密密鑰ek對在s701中輸入的登記數(shù)據(jù)d內(nèi)的各數(shù)據(jù)d_i進行加密,生成加密數(shù)據(jù)c_i=enc(ek,d_i)(1≤i≤n)。
在s705中,索引生成部206從秘密密鑰管理部203中讀出索引密鑰ik。索引生成部206針對在s702中生成的各關鍵字w,計算f(ik,w)和h(f(ik,w),1),…,h(f(ik,w),m)。
在s706中,索引生成部206針對與各關鍵字w對應的在s705中生成的h(f(ik,w),1),…,h(f(ik,w),m)和在s703中生成的d(w)={id(d_s(1)),···,id(d_s(m))}設定索引i,使得i[h(f(ik,w),1)]=id(d_s(1)),…,i[h(f(ik,w),m)]=id(d_s(m))。即,索引生成部206設定h(f(ik,w),j)作為索引i的地址,在該地址的數(shù)組元素中設定id(d_s(j))。附加標號j為1以上的整數(shù)。
在s707中,通信部210向服務器裝置301發(fā)送在s704中生成的加密數(shù)據(jù)c={c_1,···,c_n}、以及在s701中輸入的索引名id(i)與在s706中生成的索引i的對即索引信息(id(i),i)。
在s708中,通信部302接收在s707中發(fā)送的加密數(shù)據(jù)c和索引信息(id(i),i)。然后,數(shù)據(jù)保管部303將加密數(shù)據(jù)c存儲在記錄介質(zhì)中。索引保管部304將索引信息(id(i),i)存儲在記錄介質(zhì)中。
圖12是示出檢索系統(tǒng)100的數(shù)據(jù)檢索處理的具體例的流程圖。
圖12的流程圖對應于圖7的流程圖。s801對應于s301,s802對應于s302,s803對應于s303,s804對應于s304,s805對應于s305,s806對應于s306,s807對應于s307,s808對應于s308,s809對應于s309,s810對應于s310。
在s801中,用戶200使用鍵盤或鼠標等在終端裝置201中指定關鍵字w和檢索索引名id(i)。關鍵字加密部209受理關鍵字w和檢索索引名id(i)的輸入。也可以輸入多個關鍵字w。也可以輸入多個檢索索引名id(i)。
在s802中,關鍵字加密部209從秘密密鑰管理部203中讀出索引密鑰ik。關鍵字加密部209針對在s801中輸入的關鍵字w,計算檢索種子f(ik,w)。
在s803中,關鍵字加密部209生成包含在s801中輸入的檢索索引名id(i)的檢索索引信息。另外,在s801中輸入了多個檢索索引名id(i)的情況下,關鍵字加密部209生成包含全部這些索引名id(i)的檢索索引信息。
在s804中,通信部210向服務器裝置301發(fā)送在s802中生成的檢索種子f(ik,w)和在s803中生成的檢索索引信息。
在s805中,通信部302接收在s804中發(fā)送的檢索種子f(ik,w)和檢索索引信息。然后,檢索部305從由通信部302送來的檢索索引信息中提取檢索索引名id(i)。檢索部305從索引保管部304中讀出與檢索索引名id(i)對應的索引信息(id(i),i)。如果存在多個檢索索引名id(i),則檢索部305按照每個索引名讀出索引信息(id(i),i)。
在s806中,檢索部305向檢索關鍵字生成部306發(fā)送從通信部302送來的檢索種子f(ik,w)。檢索關鍵字生成部306根據(jù)檢索種子f(ik,w)生成檢索關鍵字{h(f(ik,w),1),…,h(f(ik,w),n)}。n為1以上的整數(shù),是事前設定的所述系統(tǒng)參數(shù)。
在s807中,檢索部305使用在s806中生成的檢索關鍵字{h(f(ik,w),1),…,h(f(ik,w),n)},確定在s805中讀出的索引信息(id(i),i)的索引i中的與{h(f(ik,w),1),…,h(f(ik,w),n)}一致的地址。由于i[h(f(ik,w),1)]=id(d_t(1)),…,i[h(f(ik,w),n)]=id(d_t(n)),因此,檢索部305從所確定的地址中提取不同的u比特的多個數(shù)據(jù)名id(d_t(1)),…,id(d_t(n))。下面,將集合{id(d_t(1)),…,id(d_t(n))}稱作檢索結果信息。
這里,設存在索引i的與h(f(ik,w),1),…,h(f(ik,w),j)一致的地址中存儲的數(shù)據(jù)名id(d_t(1)),…,id(d_t(j)),但是,不存在與h(f(ik,w),j+1)一致的地址中存儲的數(shù)據(jù)名id(d_t(j+1)))。該情況下,根據(jù)s706中的索引i的生成方法可知,也不存在與h(f(ik,w),j+2),…,h(f(ik,w),n)一致的地址中存儲的數(shù)據(jù)名id(d_t(j+2)),…,id(d_t(n))。因此,檢索部305可以不對h(f(ik,w),j+2),…,h(f(ik,w),n)實施數(shù)據(jù)名的提取處理。即,檢索部305將數(shù)據(jù)名id(d_t(j+1)),…,id(d_t(n))設定為空字符,生成檢索結果信息{id(d_t(1)),…,id(d_t(n))}即可。即,檢索部305生成檢索結果信息{id(d_t(1)),…,id(d_t(j))}即可。id(d_t(1)),…,id(d_t(j))是相互不同的u比特的整數(shù)。
在與h(f(ik,w),1),…,h(f(ik,w),n)一致的地址中存儲的數(shù)據(jù)名id(d_t(1)),…,id(d_t(n))均不存在的情況下,檢索部305將檢索結果信息設定為“無”。即,在索引i中不存在與h(f(ik,w),1),…,h(f(ik,w),n)中的任何一個一致的地址的情況下,檢索部305將檢索結果信息設定為“無”。
另外,在s806中,檢索部305根據(jù)檢索種子f(ik,w)生成全部檢索關鍵字h(f(ik,w),1),…,h(f(ik,w),n),但是,也可以交替執(zhí)行s806和s807。例如,檢索部305在剛剛根據(jù)檢索種子f(ik,w)生成檢索關鍵字h(f(ik,w),1)之后,從索引i的數(shù)組元素i[h(f(ik,w),1)]中取出數(shù)據(jù)名id(d_t(1))。接著,檢索部305在剛剛根據(jù)檢索種子f(ik,w)生成檢索關鍵字h(f(ik,w),2)之后,從索引i的數(shù)組元素i[h(f(ik,w),2)]中取出數(shù)據(jù)名id(d_t(2))。然后,檢索部305反復進行同樣的處理。通過采用這種處理順序,能夠省略索引i中不存在的地址h(f(ik,w),j+2),…,h(f(ik,w),n)的計算。
在s808中,檢索部305從數(shù)據(jù)保管部303中讀出與在s807中提取出的u比特的數(shù)據(jù)名id(d_t(1)),…,id(d_t(n))對應的加密數(shù)據(jù)c_t(1),…,c_t(n)。針對某個整數(shù)j,在數(shù)據(jù)名id(d_t(j+1)),…,id(d_t(n))為空字符的情況下,不存在加密數(shù)據(jù)c_t(j+1),…,c_t(n),因此,不執(zhí)行與這些加密數(shù)據(jù)有關的處理。在s807中提取出的檢索結果信息為“無”的情況下,不執(zhí)行s808的處理本身。
在s809中,通信部302從檢索部305接收在s808中讀出的加密數(shù)據(jù){c_t(1),…,c_t(n)}。通信部302向終端裝置201發(fā)送加密數(shù)據(jù){c_t(1),…,c_t(n)}。另外,在s807中提取出的檢索結果信息為“無”的情況下,通信部302向終端裝置201發(fā)送“無加密數(shù)據(jù)”這樣的信息。
在s810中,通信部210接收在s809中發(fā)送的加密數(shù)據(jù){c_t(1),…,c_t(n)}。然后,數(shù)據(jù)解密部211使用秘密密鑰管理部203中存儲的加密密鑰ek對各加密數(shù)據(jù)c_t(i)進行解密,生成明文數(shù)據(jù)d_t(i)=dec(ek,c_t(i))(1≤i≤n)。另外,在不存在加密數(shù)據(jù){c_t(j+1),…,c_t(n)}的情況下,數(shù)據(jù)解密部211不對這些加密數(shù)據(jù)進行任何處理。并且,在通信部210接收到“無加密數(shù)據(jù)”這樣的信息的情況下,數(shù)據(jù)解密部211不進行任何處理。數(shù)據(jù)解密部211將進行解密而得到的明文數(shù)據(jù){d_t(1),…,d_t(n)}輸出到顯示器或打印機等。在通信部210接收到“無加密數(shù)據(jù)”這樣的信息的情況下,數(shù)據(jù)解密部211輸出表示已不存在檢索中命中的數(shù)據(jù)的消息等。
圖13是示出檢索系統(tǒng)100的數(shù)據(jù)刪除處理的具體例的流程圖。
圖13的流程圖對應于圖8的流程圖。s901對應于s401,s902對應于s402,s903對應于s403,s904對應于s404,s905對應于s405。
在s901中,用戶200使用鍵盤或鼠標等在終端裝置201中指定刪除數(shù)據(jù)名del={id(d_d(1)),…,id(d_d(k))}。數(shù)據(jù)刪除請求生成部207受理刪除數(shù)據(jù)名del的輸入。k為1以上的整數(shù)。id(d_d(1)),…,id(d_d(k))是相互不同的u比特的整數(shù)。
在s902中,數(shù)據(jù)刪除請求生成部207生成包含在s901中輸入的刪除數(shù)據(jù)名del={id(d_d(1)),…,id(d_d(k))}的刪除數(shù)據(jù)信息。
在s903中,通信部210向服務器裝置301發(fā)送在s902中生成的刪除數(shù)據(jù)信息。
在s904中,通信部302接收在s903中發(fā)送的刪除數(shù)據(jù)信息。索引更新部307從由通信部302送來的刪除數(shù)據(jù)信息中提取刪除數(shù)據(jù)名del={id(d_d(1)),…,id(d_d(k))}。索引保管部304從記錄介質(zhì)中讀出全部索引i,尋找包含id(d_d(1)),···,id(d_d(k))中的任意id的索引i。索引保管部304在發(fā)現(xiàn)了相應索引i的情況下,從該索引i的相應地址中刪除刪除數(shù)據(jù)名。在本例中,索引保管部304從索引i中刪除包含該刪除數(shù)據(jù)名的地址本身。
在s905中,數(shù)據(jù)保管部303從記錄介質(zhì)中刪除與從索引更新部307送來的刪除數(shù)據(jù)名del={id(d_d(1)),…,id(d_d(k))}對應的加密數(shù)據(jù)。
圖14是示出檢索系統(tǒng)100的索引刪除處理的具體例的流程圖。
圖14的流程圖對應于圖9的流程圖。s1001對應于s501,s1002對應于s502,s1003對應于s503,s1004對應于s504。
在s1001中,用戶200使用鍵盤或鼠標等在終端裝置201中指定刪除索引名del-i={id(i_1),…,id(i_k)}。索引刪除請求生成部208受理刪除索引名del-i的輸入。k為1以上的整數(shù)。id(i_1),…,id(i_k)是相互不同的v比特的整數(shù)。
在s1002中,索引刪除請求生成部208生成包含在s1001中輸入的刪除索引名del-i的刪除索引信息。
在s1003中,通信部210向服務器裝置301發(fā)送在s1002中生成的刪除索引信息。
在s1004中,通信部302接收在s1003中發(fā)送的刪除索引信息。索引更新部307從由通信部302送來的刪除索引信息中提取刪除索引名del-i={id(i_1),…,id(i_k)}。索引保管部304從記錄介質(zhì)中刪除與從索引更新部307送來的id(i_1),…,id(i_k)對應的索引。
***效果的說明***
本實施方式例如發(fā)揮以下的效果。
在本實施方式中,執(zhí)行檢索的一側(cè)即服務器裝置301使用針對輸入的關鍵字輸出唯一數(shù)值的函數(shù)h進行檢索。服務器裝置301保管具有與從函數(shù)h輸出的數(shù)值一一對應的多個存儲區(qū)域的數(shù)據(jù)構造作為索引i。如果存在輸入到函數(shù)h的關鍵字,則服務器裝置301能夠執(zhí)行檢索。請求檢索的一側(cè)即終端裝置201僅將關鍵字交給服務器裝置301,就能夠請求檢索。由此,根據(jù)本實施方式,請求檢索的一側(cè)和執(zhí)行檢索的一側(cè)的整體處理效率提高。
在本實施方式中,終端裝置201對關鍵字進行加密而生成檢索種子,代替明文的關鍵字而將檢索種子交給服務器裝置301。由此,根據(jù)本實施方式,不僅能夠?qū)τ煞掌餮b置301檢索的數(shù)據(jù)進行隱匿,而且能夠?qū)﹃P鍵字進行隱匿。即,能夠進行安全性較高的隱匿檢索。
在本實施方式中,與現(xiàn)有方式不同,在檢索處理中,能夠降低生成用于由作為檢索者的用戶200利用的終端裝置201進行檢索的信息的成本。正確地說,現(xiàn)有方式中的檢索查詢的生成成本依賴于登記數(shù)據(jù)數(shù)量,與此相對,檢索系統(tǒng)100中的檢索種子的生成成本不依賴于登記數(shù)據(jù)數(shù)量。因此,能夠高效地執(zhí)行終端裝置201中的檢索處理。在使用計算資源匱乏的ic卡這樣的設備作為終端裝置201的情況下,本實施方式特別有效。
在本實施方式中,與現(xiàn)有方式不同,在檢索處理中,用于進行檢索的信息的數(shù)據(jù)大小不依賴于登記數(shù)據(jù)數(shù)量。因此,能夠減小用于進行檢索的信息的數(shù)據(jù)大小。正確地說,現(xiàn)有方式中的檢索查詢的數(shù)據(jù)大小依賴于登記數(shù)據(jù)數(shù)量,與此相對,檢索系統(tǒng)100中的檢索種子的數(shù)據(jù)大小不依賴于登記數(shù)據(jù)數(shù)量。因此,能夠減小數(shù)據(jù)大小。在通信頻帶狹窄的情況下,本實施方式特別有效。
檢索系統(tǒng)100能夠在對數(shù)據(jù)和關鍵字進行加密的狀態(tài)下進行檢索。因此,與被檢索的數(shù)據(jù)有關的信息和與檢索中使用的關鍵字有關的信息都不會泄漏。由此,能夠進行安全的檢索。
圖15是示出本實施方式的終端裝置201和服務器裝置301的硬件結構的例子的圖。
在圖15的例子中,終端裝置201和服務器裝置301分別是計算機,具有輸出裝置910、輸入裝置920、存儲裝置930、處理裝置940這樣的硬件。通過在本發(fā)明的實施方式的說明中作為“部”說明的部分來利用硬件。
輸出裝置910例如是lcd(liquidcrystaldisplay:液晶顯示器)等顯示裝置、打印機、通信模塊。輸出裝置910用于由在本發(fā)明的實施方式的說明中作為“部”說明的部分輸出或發(fā)送數(shù)據(jù)、信息、信號。
輸入裝置920例如是鍵盤、鼠標、觸摸面板、通信模塊。輸入裝置920用于由在本發(fā)明的實施方式的說明中作為“部”說明的部分輸入或接收數(shù)據(jù)、信息、信號。
存儲裝置930例如是rom(readonlymemory:只讀存儲器)、ram(randomaccessmemory:隨機存取存儲器)、hdd(harddiskdrive:硬盤驅(qū)動器)、ssd(solidstatedrive:固態(tài)硬盤)。在存儲裝置930中存儲有程序931、文件932。程序931包含執(zhí)行在本發(fā)明的實施方式的說明中作為“部”說明的部分的處理的程序。文件932包含由在本發(fā)明的實施方式的說明中作為“部”進行說明的部分進行運算、加工、讀取、寫入、利用、輸入、輸出等的數(shù)據(jù)、信息、信號等。所述記錄介質(zhì)相當于存儲裝置930。
處理裝置940例如是cpu(centralprocessingunit:中央處理單元)。處理裝置940經(jīng)由總線等與其他硬件設備連接,對這些硬件設備進行控制。處理裝置940從存儲裝置930中讀出程序931,執(zhí)行程序931。處理裝置940用于由在本發(fā)明的實施方式的說明中作為“部”說明的部分進行運算、加工、讀取、寫入、利用、輸入、輸出等。
關于在本發(fā)明的實施方式的說明中作為“部”說明的部分,也可以將“部”改寫成“電路”、“裝置”、“設備”。并且,關于在本發(fā)明的實施方式的說明中作為“部”說明的部分,也可以將“部”改寫成“工序”、“步驟”、“處理”。即,在本發(fā)明的實施方式的說明中作為“部”說明的部分可僅通過軟件來實現(xiàn),僅通過硬件來實現(xiàn),或者通過軟件和硬件的組合來實現(xiàn)。軟件作為程序931存儲在存儲裝置930中。程序931使計算機作為在本發(fā)明的實施方式的說明中作為“部”說明的部分發(fā)揮功能?;蛘撸绦?31使計算機執(zhí)行在本發(fā)明的實施方式的說明中作為“部”說明的部分的處理。
以上說明了本發(fā)明的實施方式,但是,也可以部分地實施該實施方式。例如,可以僅采用在該實施方式的說明中作為“部”說明的部分中的任意一方,也可以采用若干個部分的任意組合。另外,本發(fā)明不限于該實施方式,能夠根據(jù)需要進行各種變更。
標號說明
100:檢索系統(tǒng);101:公司內(nèi)部lan;102:互聯(lián)網(wǎng);200:用戶;201:終端裝置;202:秘密密鑰生成部;203:秘密密鑰管理部;204:關鍵字設定部;205:數(shù)據(jù)加密部;206:索引生成部;207:數(shù)據(jù)刪除請求生成部;208:索引刪除請求生成部;209:關鍵字加密部;210:通信部;211:數(shù)據(jù)解密部;300:數(shù)據(jù)中心;301:服務器裝置;302:通信部;303:數(shù)據(jù)保管部;304:索引保管部;305:檢索部;306:檢索關鍵字生成部;307:索引更新部;910:輸出裝置;920:輸入裝置;930:存儲裝置;931:程序;932:文件;940:處理裝置。