(57)【要約】【課題】ストレージサーバに暗号化されたデータを保存する場合において、当該データの秘匿性を確保しつつ、端末装置の処理負荷及び端末装置〜ストレージサーバ間の通信トラフィックを抑制に寄与する検索代理装置及び検索代理方法を提供する。【解決手段】検索プロキシ２００は、通信ネットワーク上におけるストレージサーバ３００の所在位置、ユーザデータＤｕの暗号化方式及び暗号化方式において用いられる鍵情報を含む暗号化データメタ情報を記憶するリモートインデックスＤＢ２５０と、リモートインデックスＤＢ２５０に記憶されている暗号化データメタ情報に基づいて、ユーザデータＤｕを当該暗号化方式に従って暗号化する暗号化モジュール２３０と、ユーザデータＤｕが暗号化された暗号化データＤｅを暗号化データメタ情報に基づいてストレージサーバ３００に送信するリモート検索マネージャー２１０とを備える。【選択図】図１
2009211384.tif 000002
【特許請求の範囲】
【請求項１】
端末装置と、前記端末装置が取り扱うデータを保存するストレージサーバとの間に介在し、前記ストレージサーバに保存されている前記データの前記端末装置による検索を代理する検索代理装置であって、
通信ネットワーク上における前記ストレージサーバの所在位置、前記データの暗号化方式及び前記暗号化方式において用いられる鍵情報を含む暗号化データメタ情報を記憶するメタ情報記憶部と、
前記メタ情報記憶部に記憶されている暗号化データメタ情報に基づいて、前記データを前記暗号化方式に従って暗号化する暗号化部と、
前記暗号化部によって前記データが暗号化された暗号化データを前記暗号化データメタ情報に基づいて前記ストレージサーバに送信する送信部と
を備える検索代理装置。
【請求項２】
前記暗号化部による暗号化の対象とされたデータを特徴付けるとともに、前記ストレージサーバに保存されている前記暗号化データの検索に用いられるインデックスを作成するインデックス作成部と、
前記ストレージサーバに保存された前記暗号化データの検索を前記端末装置から要求された場合、前記インデックス作成部によって作成された前記インデックスを用いて前記暗号化データを検索するデータ検索部と
を備える請求項１に記載の検索代理装置。
【請求項３】
前記ストレージサーバに保存されている前記暗号化データの取得、及び取得した前記暗号化データの復号を実行する復号部を備え、
前記データ検索部は、前記インデックスを用いた前記暗号化データの検索結果に基づいて、前記暗号化データの取得及び復号を前記復号部に対して要求する請求項２に記載の検索代理装置。
【請求項４】
前記インデックスを記憶するインデックス記憶部を備え、
前記インデックス作成部は、前記端末装置から新たに追加された前記データのインデックスである追加インデックスを作成し、作成した追加インデックスを前記インデックス記憶部に記憶されている前記インデックスに追加する請求項３に記載の検索代理装置。
【請求項５】
端末装置と、前記端末装置が取り扱うデータを保存するストレージサーバとの間において、前記ストレージサーバに保存されている前記データの前記端末装置による検索を代理する検索代理方法であって、
通信ネットワーク上における前記ストレージサーバの所在位置、前記データの暗号化方式及び前記暗号化方式において用いられる鍵情報を含む暗号化データメタ情報を記憶するメタ情報記憶部に記憶されている暗号化データメタ情報に基づいて、前記データを前記暗号化方式に従って暗号化するステップと、
前記データが暗号化された暗号化データを前記ストレージサーバに送信するステップとを備える検索代理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末装置とストレージサーバとの間において、ストレージサーバに保存されているデータの前記端末装置による検索を代理する検索代理装置及び検索代理方法に関する。
【背景技術】
【０００２】
近年、携帯電話端末に代表される移動端末やパーソナルコンピュータなどの端末装置の性能向上に伴い、端末装置が取り扱うデータ量が増大している。そこで、端末装置が取り扱うデータを通信ネットワーク上に設けられたストレージサーバに保存するストレージサービスが提供されている。
【０００３】
ストレージサービスの場合、ストレージサービスの利用者、つまり、保存対象のデータの所有者と、ストレージサービスの提供者、つまり、当該データの管理者とが異なるため、保存対象のデータのセキュリティ確保が問題となる。そこで、一般的には、保存対象のデータは暗号化された状態でストレージサーバに保存される。
【０００４】
この場合、ストレージサーバに保存されているデータに含まれるキーワードを用いて所望のデータを検索しようとしても、ストレージサーバに保存されているデータは暗号化されているため、そのままでは検索することができない。
【０００５】
そこで、暗号化されたデータを逐次復号して検索する方法が知られている（例えば、特許文献１）。また、暗号化されたデータを復号することなく検索するために、暗号化されたデータのインデックスを作成し、ストレージサーバに保存された当該インデックスの内容を検索する方法も提案されている（例えば、特許文献２）。インデックスを用いる場合、暗号化されたデータを逐次復号する必要がないため、検索処理の高速化が図れる。
【特許文献１】特開２００１−２２２５５５号公報（第４−５頁、第３図）
【特許文献２】特開２００５−１３４９９０号公報（第５−６頁、第３図）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来のインデックスを用いるデータの検索方法には、次のような問題があった。すなわち、インデックスの内容の検索処理がストレージサーバにおいて実行されるため、インデックスの内容と暗号化されたデータとの関連性をヒントにストレージサーバに保存されているデータの内容が暴かれてしまう危険性がある。
【０００７】
一方、このような危険性を回避するため、インデックスの検索処理を端末装置において実行すると、端末装置とストレージサーバとの間における通信トラフィックが増大する。具体的には、利用者が指定したキーワードがインデックスに含まれていない場合、ストレージサーバに保存されている暗号化されたデータを逐次復号しつつ検索処理が実行されるため、当該データの送受信に関する通信トラフィックが増大する。また、このような検索処理を端末装置において実行すると、端末装置の処理負荷が大きくなり過ぎる。
【０００８】
そこで、本発明は、このような状況に鑑みてなされたものであり、ストレージサーバに暗号化されたデータを保存する場合において、当該データの秘匿性を確保しつつ、端末装置の処理負荷及び端末装置〜ストレージサーバ間の通信トラフィックを抑制に寄与する検索代理装置及び検索代理方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した問題を解決するため、本発明は、次のような特徴を有している。まず、本発明の第１の特徴は、端末装置（移動端末１００）と、前記端末装置が取り扱うデータ（ユーザデータＤｕ）を保存するストレージサーバ（ストレージサーバ３００）との間に介在し、前記ストレージサーバに保存されている前記データの前記端末装置による検索を代理する検索代理装置（検索プロキシ２００）であって、通信ネットワーク上における前記ストレージサーバの所在位置、前記データの暗号化方式及び前記暗号化方式において用いられる鍵情報を含む暗号化データメタ情報（マスターテーブルＴＢ１）を記憶するメタ情報記憶部（リモートインデックスＤＢ２５０）と、前記メタ情報記憶部に記憶されている暗号化データメタ情報に基づいて、前記データを前記暗号化方式に従って暗号化する暗号化部（暗号化モジュール２３０）と、前記暗号化部によって前記データが暗号化された暗号化データ（暗号化データＤｅ）を前記暗号化データメタ情報に基づいて前記ストレージサーバに送信する送信部（リモート検索マネージャー２１０）とを備えることを要旨とする。
【００１０】
このような検索代理装置によれば、ストレージサーバの所在位置、データの暗号化方式及び暗号化方式において用いられる鍵情報を含む暗号化データメタ情報は、検索代理装置に記憶される。つまり、暗号化データメタ情報は、端末装置が取り扱うデータが暗号化された暗号化データを保存するストレージサーバから離隔して配置される。このため、ストレージサーバに暗号化されたデータを保存する場合において、当該データの秘匿性を確保することができる。
【００１１】
また、データは、端末装置ではなく検索代理装置において暗号化されるため、端末装置の処理負荷、及び通信トラフィック、具体的には端末装置と検索代理装置との間の通信トラフィックを抑制できる。
【００１２】
本発明の第２の特徴は、本発明の第１の特徴に係り、前記暗号化部による暗号化の対象とされたデータを特徴付けるとともに、前記ストレージサーバに保存されている前記暗号化データの検索に用いられるインデックス（例えば、インデックステーブルＴＢ２）を作成するインデックス作成部（インデックス作成モジュール２２０）と、前記ストレージサーバに保存された前記暗号化データの検索を前記端末装置から要求された場合、前記インデックス作成部によって作成された前記インデックスを用いて前記暗号化データを検索するデータ検索部（リモート検索マネージャー２１０）とを備えることを要旨とする。
【００１３】
本発明の第３の特徴は、本発明の第２の特徴に係り、前記ストレージサーバに保存されている前記暗号化データの取得、及び取得した前記暗号化データの復号を実行する復号部（復号モジュール２４０）を備え、前記データ検索部は、前記インデックスを用いた前記暗号化データの検索結果に基づいて、前記暗号化データの取得及び復号を前記復号部に対して要求することを要旨とする。
【００１４】
本発明の第４の特徴は、本発明の第３の特徴に係り、前記インデックスを記憶するインデックス記憶部（リモートインデックスＤＢ２５０）を備え、前記インデックス作成部は、前記端末装置から新たに追加された前記データのインデックスである追加インデックスを作成し、作成した追加インデックスを前記インデックス記憶部に記憶されている前記インデックスに追加することを要旨とする。
【００１５】
本発明の第５の特徴は、端末装置と、前記端末装置が取り扱うデータを保存するストレージサーバとの間において、前記ストレージサーバに保存されている前記データの前記端末装置による検索を代理する検索代理方法であって、通信ネットワーク上における前記ストレージサーバの所在位置、前記データの暗号化方式及び前記暗号化方式において用いられる鍵情報を含む暗号化データメタ情報を記憶するメタ情報記憶部に記憶されている暗号化データメタ情報に基づいて、前記データを前記暗号化方式に従って暗号化するステップと、前記データが暗号化された暗号化データを前記ストレージサーバに送信するステップとを備えることを要旨とする。
【発明の効果】
【００１６】
本発明の特徴によれば、ストレージサーバに暗号化されたデータを保存する場合において、当該データの秘匿性を確保しつつ、端末装置の処理負荷及び端末装置〜ストレージサーバ間の通信トラフィックを抑制に寄与する検索代理装置及び検索代理方法を提供することができる。
【発明を実施するための最良の形態】
【００１７】
次に、本発明の実施形態について説明する。具体的には、（１）暗号化データ検索システムの全体概略構成、（２）検索代理装置の機能ブロック構成、（３）暗号化データ検索システムの動作、（４）作用・効果、及び（５）その他の実施形態について説明する。
【００１８】
なお、以下の図面の記載において、同一または類似の部分には、同一または類似の符号を付している。ただし、図面は模式的なものであり、各寸法の比率などは現実のものとは異なることに留意すべきである。
【００１９】
したがって、具体的な寸法などは以下の説明を参酌して判断すべきものである。また、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることは勿論である。
【００２０】
（１）暗号化データ検索システムの全体概略構成
図１は、本実施形態に係る暗号化データ検索システム１の全体概略構成図である。図１に示すように、暗号化データ検索システム１は、移動端末１００、検索プロキシ２００、及びストレージサーバ３００によって構成される。
【００２１】
検索プロキシ２００とストレージサーバ３００とは、インターネット１０を介して接続される。また、移動端末１００と検索プロキシ２００とは、移動通信網２０を介して接続される。
【００２２】
移動端末１００は、所定の無線通信方式に従って移動通信網２０に接続する。移動端末１００は、移動端末１００が取り扱うデータであるユーザデータＤｕをストレージサーバ３００に保存することができる。本実施形態において、移動端末１００は、端末装置を構成する。
【００２３】
移動端末１００は、ローカル検索マネージャー１１０及びローカルインデックスＤＢ１２０を備える。
【００２４】
ローカル検索マネージャー１１０は、ストレージサーバ３００に保存したユーザデータＤｕの検索機能を提供する。ローカル検索マネージャー１１０は、ストレージサーバ３００に保存したユーザデータＤｕ、具体的にはユーザデータＤｕが暗号化された暗号化データＤｅに対する検索クエリを検索プロキシ２００に送信する。また、ローカル検索マネージャー１１０は、暗号化データＤｅの追加・削除要求や、暗号化データＤｅの検索に用いられるインデックスの新規作成要求を検索プロキシ２００に送信することもできる。
【００２５】
ローカルインデックスＤＢ１２０は、ストレージサーバ３００に保存するために暗号化の対象とされたユーザデータＤｕを特徴付けるとともに、ストレージサーバ３００に保存されている暗号化データＤｅの検索に用いられるインデックスを記憶する。なお、ローカルインデックスＤＢ１２０は、必ずしも設けられていなくても構わない。
【００２６】
検索プロキシ２００は、移動端末１００とストレージサーバ３００との間に介在し、ストレージサーバ３００に保存されている暗号化データＤｅの移動端末１００による検索を代理する。本実施形態において、検索プロキシ２００は、検索代理装置を構成する。
【００２７】
検索プロキシ２００は、移動端末１００とストレージサーバ３００との間において、検索プロキシ２００とストレージサーバ３００との通信に伴う通信コスト（通信料金）が安価となる通信ネットワーク（インターネット１０または移動通信網２０）上の位置に設けられる。
【００２８】
検索プロキシ２００は、リモート検索マネージャー２１０、インデックス作成モジュール２２０、暗号化モジュール２３０、復号モジュール２４０及びリモートインデックスＤＢ２５０を備える。
【００２９】
検索プロキシ２００は、移動端末１００から受信した検索クエリに従ってリモートインデックスＤＢ２５０を検索し、検索クエリの内容に該当するユーザデータＤｕが特定できた場合、検索クエリに対する検索結果を移動端末１００に送信する。なお、検索プロキシ２００の具体的な機能については、後述する。
【００３０】
ストレージサーバ３００は、移動端末１００が取り扱うユーザデータＤｕが暗号化された暗号化データＤｅを保存する。ストレージサーバ３００は、暗号化データＤｅを保存する暗号化ＤＢ３１０を備える。
【００３１】
（２）検索代理装置の機能ブロック構成
図２は、本実施形態において検索代理装置を構成する検索プロキシ２００の機能ブロック構成図である。図２に示すように、検索プロキシ２００は、リモート検索マネージャー２１０、インデックス作成モジュール２２０、暗号化モジュール２３０、復号モジュール２４０及びリモートインデックスＤＢ２５０を備える。
【００３２】
リモート検索マネージャー２１０は、ストレージサーバ３００に保存されている暗号化データＤｅのリモート検索に関する機能を提供する。
【００３３】
リモート検索マネージャー２１０は、移動端末１００から検索クエリを受信する。リモート検索マネージャー２１０は、受信した検索クエリに応じてリモートインデックスＤＢ２５０を検索し、検索クエリに対する検索結果を移動端末１００に送信する。
【００３４】
具体的には、リモート検索マネージャー２１０は、ストレージサーバ３００に保存された暗号化データＤｅの検索を移動端末１００から要求された場合、インデックス作成モジュール２２０によって作成されたインデックス（例えば、図８に示すインデックステーブルＴＢ２）を用いて暗号化データＤｅを検索する。
【００３５】
より具体的には、リモート検索マネージャー２１０は、検索クエリによって指定されたキーワードを用いてインデックスの内容を検索する。リモート検索マネージャー２１０は、当該キーワードがヒットした場合、ストレージサーバ３００に検索対象の暗号化データＤｅが記憶されていると判定する。本実施形態において、リモート検索マネージャー２１０は、データ検索部を構成する。
【００３６】
また、リモート検索マネージャー２１０は、暗号化モジュール２３０によってユーザデータＤｕが暗号化された暗号化データＤｅを、リモートインデックスＤＢ２５０に記憶されているマスターテーブルＴＢ１（図７参照）に基づいてストレージサーバ３００に送信することができる。本実施形態において、リモート検索マネージャー２１０は、送信部を構成する。
【００３７】
図７は、本実施形態において暗号化データメタ情報を構成するマスターテーブルＴＢ１の構成例を示す。図７に示すように、マスターテーブルＴＢ１には、暗号化データＤｅのファイルＩＤ及び暗号化データＤｅの所在ＵＲＬ、つまり、通信ネットワーク上におけるストレージサーバ３００のＵＲＬ（所在位置）が含まれる。ファイルＩＤは、暗号化データ検索システム１内においてユニークな識別子である。また、マスターテーブルＴＢ１には、ユーザデータＤｕの暗号化（復号化）に用いられる暗号化方式、及び当該暗号化方式において用いられる暗号キー・復号キー（鍵情報）が含まれる。
【００３８】
リモート検索マネージャー２１０は、移動端末１００からの検索クエリに応じてリモートインデックスＤＢ２５０に記憶されているマスターテーブルＴＢ１を検索する。リモート検索マネージャー２１０は、マスターテーブルＴＢ１に示されているストレージサーバ３００のＵＲＬ、暗号化方式及び鍵情報に基づいて、暗号化データＤｅの作成を暗号化モジュール２３０に要求する。さらに、リモート検索マネージャー２１０は、暗号化モジュール２３０によって作成された暗号化データＤｅをストレージサーバ３００に送信する。
【００３９】
また、リモート検索マネージャー２１０は、当該インデックスを用いた暗号化データＤｅの検索結果に基づいて、暗号化データＤｅの取得、及び取得した暗号化データＤｅの復号を復号モジュール２４０に対して要求する。
【００４０】
具体的には、リモート検索マネージャー２１０は、マスターテーブルＴＢ１に示されているストレージサーバ３００のＵＲＬ、暗号化方式及び鍵情報に基づいて、ストレージサーバ３００からの暗号化データＤｅの取得及び復号を復号モジュール２４０に対して要求する。リモート検索マネージャー２１０は、復号モジュール２４０によって復号されたユーザデータＤｕを、移動端末１００やインデックス作成モジュール２２０に送信することができる。
【００４１】
インデックス作成モジュール２２０は、暗号化データＤｅの検索に用いられるインデックス、具体的には、インデックステーブルＴＢ２やインデックステーブルＴＢ３を作成する。インデックステーブルＴＢ２（図８参照）やインデックステーブルＴＢ３（図９参照）は、復号モジュール２４０による暗号化の対象とされたユーザデータＤｕを特徴付けるとともに、ストレージサーバ３００に保存されている暗号化データＤｅの検索に用いられる。
【００４２】
インデックス作成モジュール２２０は、リモート検索マネージャー２１０からの要求に基づいて、リモート検索マネージャー２１０を介して得られる復号済みのユーザデータＤｕを指定されたアルゴリズムに従って解析する。インデックス作成モジュール２２０は、当該解析の結果に基づいて、インデックステーブルＴＢ２やインデックステーブルＴＢ３を作成する。
【００４３】
図８は、インデックステーブルＴＢ２の構成例を示す。また、図９は、インデックステーブルＴＢ３の構成例を示す。
【００４４】
インデックステーブルＴＢ２は、ファイル（ユーザデータＤｕ）に含まれるキーワードを含むインデックステーブルである。インデックステーブルＴＢ２は、キーワードと、当該キーワードを含むファイルIDの組合せのリストによって構成される。
【００４５】
インデックステーブルＴＢ３は、ファイルが作成された場所の座標（緯度経度）を含むインデックステーブルである。インデックステーブルＴＢ３は、ファイルが作成された場所の座標と、当該座標の位置において作成されたファイルIDの組合せのリストによって構成される。
【００４６】
本実施形態では、上述したように、複数種類のインデックステーブルが用いられる。それぞれのインデックステーブルには、名称（keyword, location）が付与される。リモート検索マネージャー２１０は、用いるインデックステーブルの名称とKeyとを指定する。
【００４７】
また、インデックス作成モジュール２２０は、移動端末１００から新たに追加されたユーザデータＤｕのインデックス（追加インデックス）を作成することができる。インデックス作成モジュール２２０は、作成したインデックス（追加インデックス）を、リモートインデックスＤＢ２５０に既に記憶されているインデックステーブルＴＢ２またはインデックステーブルＴＢ３に追加する。
【００４８】
さらに、インデックス作成モジュール２２０は、移動端末１００から受信した暗号化データＤｅの削除要求に基づいて、インデックステーブルＴＢ２またはインデックステーブルＴＢ３の内容を修正することができる。また、インデックス作成モジュール２２０は、当該内容を修正後、該当する暗号化データＤｅのストレージサーバ３００からの削除をストレージサーバ３００に要求する。
【００４９】
暗号化モジュール２３０は、リモートインデックスＤＢ２５０に記憶されているマスターテーブルＴＢ１に基づいて、移動端末１００から送信されたユーザデータＤｕを指定された暗号化方式に従って暗号化する。具体的には、暗号化モジュール２３０は、リモート検索マネージャー２１０からの要求に基づいて、指定された暗号化方式及び鍵情報（キー）に従ってユーザデータＤｕを暗号化する。
【００５０】
また、暗号化モジュール２３０は、ユーザデータＤｕを暗号化した暗号化データＤｅをストレージサーバ３００にアップロードする。
【００５１】
復号モジュール２４０は、ストレージサーバ３００から暗号化データＤｅを取得し、取得した暗号化データＤｅを復号する。具体的には、復号モジュール２４０は、リモート検索マネージャー２１０からの要求に基づいて、ストレージサーバ３００から特定の暗号化データＤｅをダウンロードする。さらに、復号モジュール２４０は、リモートインデックスＤＢ２５０に記憶されているマスターテーブルＴＢ１に基づいて、ダウンロードした暗号化データＤｅを復号する。復号モジュール２４０は、暗号化データＤｅが復号されたユーザデータＤｕをリモート検索マネージャー２１０に送信する。
【００５２】
リモートインデックスＤＢ２５０は、ハードディスク（不図示）などの記憶媒体上に構成される。本実施形態では、リモートインデックスＤＢ２５０は、マスターテーブルＴＢ１を記憶する。本実施形態において、リモートインデックスＤＢ２５０は、メタ情報記憶部を構成する。
【００５３】
また、リモートインデックスＤＢ２５０は、インデックステーブルＴＢ２及びインデックステーブルＴＢ３（インデックス）を記憶する。本実施形態において、リモートインデックスＤＢ２５０は、インデックス記憶部を構成する。
【００５４】
（３）暗号化データ検索システムの動作
次に、暗号化データ検索システム１の動作について説明する。具体的には、暗号化データ検索システム１によるインデックスの検索、修正、及びインデックスの新規作成動作について説明する。
【００５５】
（３．１）インデックス検索
図３は、暗号化データ検索システム１によるインデックスの検索動作フローを示す。具体的には、ステップＳ１０〜ステップＳ７０に示されるように、検索プロキシ２００は、移動端末１００からの要求に応じてリモートインデックスＤＢ２５０を検索する。また、検索プロキシ２００は、必要に応じて暗号化データＤｅを復号しながら全件検索を実行し、検索結果を移動端末１００に送信する。
【００５６】
具体的には、ステップＳ１０において、検索プロキシ２００は、移動端末１００から検索要求（検索クエリ）があったか否かを判定する。
【００５７】
移動端末１００から検索要求があった場合（ステップＳ１０のＹＥＳ）、ステップＳ２０において、検索プロキシ２００は、リモートインデックスＤＢ２５０を検索し、検索要求によって指定された内容がヒットするか否かを判定する。
【００５８】
指定された内容がヒットしない場合（ステップＳ２０のＮＯ）、ステップＳ３０において、検索プロキシ２００は、ストレージサーバ３００から検索データ、具体的には、暗号化データＤｅをダウンロードする。
【００５９】
ステップＳ４０において、検索プロキシ２００は、ダウンロードした検索データを復号する。
【００６０】
ステップＳ５０において、検索プロキシ２００は、検索データを復号することによって得られたユーザデータＤｕの全件検索を実行し、検索要求によって指定された内容がヒットするか否かを判定する。
【００６１】
指定された内容がヒットしない場合（ステップＳ５０のＮＯ）、ステップＳ６０において、検索プロキシ２００は、指定された内容がヒットしないことを示す検索結果“Miss”応答を移動端末１００に送信する。
【００６２】
指定された内容がヒットした場合（ステップＳ２０のＹＥＳ）、ステップＳ７０において、検索プロキシ２００は、指定された内容がヒットしたことを示す検索結果“Ｈｉｔ”応答を移動端末１００に送信する。
【００６３】
（３．２）インデックス修正
次に、暗号化データ検索システム１によるインデックスの修正動作、具体的には、データ追加及びデータ削除について説明する。
【００６４】
（３．２．１）データ追加
図４は、暗号化データ検索システム１によるインデックスへのデータ追加動作フローを示す。図４に示すように、ステップＳ１１０において、検索プロキシ２００は、移動端末１００からインデックスへのデータ追加要求があったか否かを判定する。
【００６５】
移動端末１００からデータ追加要求があった場合（ステップＳ１１０のＹＥＳ）、ステップＳ１２０において、検索プロキシ２００は、既存のインデックステーブル（例えば、インデックステーブルＴＢ２）がリモートインデックスＤＢ２５０に記憶されているか否かを判定する。
【００６６】
既存のインデックステーブルが記憶されている場合（ステップＳ１２０のＹＥＳ）、ステップＳ１３０において、検索プロキシ２００は、データ追加要求に基づいて、既存のインデックステーブルの内容と追加内容との差分（インデックス差分）を作成する。
【００６７】
ステップＳ１４０において、検索プロキシ２００は、作成したインデックス差分に基づいて、リモートインデックスＤＢ２５０に記憶されているインデックステーブルの内容を修正する。
【００６８】
ステップＳ１５０において、検索プロキシ２００は、マスターテーブルＴＢ１に基づいて、データ追加要求によって追加されるユーザデータＤｕを指定された暗号化方式及び鍵情報を用いて暗号化する。
【００６９】
ステップＳ１６０において、検索プロキシ２００は、暗号化した暗号化データＤｅをストレージサーバ３００に備えられている暗号化ＤＢ３１０に追加し、暗号化ＤＢ３１０の内容を更新する。
【００７０】
既存のインデックステーブルが記憶されていない場合（ステップＳ１２０のＮＯ）、ステップＳ１７０において、検索プロキシ２００は、ストレージサーバ３００から暗号化データＤｅをダウンロードする。
【００７１】
ステップＳ１８０において、検索プロキシ２００は、ダウンロードした暗号化データＤｅを復号する。
【００７２】
ステップＳ１９０において、検索プロキシ２００は、暗号化データＤｅを復号することによって得られたユーザデータＤｕを対象としたインデックステーブルを作成する。
【００７３】
（３．２．２）データ削除
図５は、暗号化データ検索システム１によるインデックスからのデータ削除動作フローを示す。図５に示すように、ステップＳ２１０において、検索プロキシ２００は、インデックスからのデータ削除要求が移動端末１００からあったか否かを判定する。
【００７４】
移動端末１００からデータ削除要求があった場合（ステップＳ２１０のＹＥＳ）、ステップＳ２２０において、検索プロキシ２００は、データ削除要求に基づいて、既存のインデックステーブルの内容と削除内容との差分（インデックス差分）を作成する。
【００７５】
ステップＳ２３０において、検索プロキシ２００は、検索プロキシ２００は、作成したインデックス差分に基づいて、リモートインデックスＤＢ２５０に記憶されているインデックステーブルの内容を修正する。
【００７６】
ステップＳ２４０において、検索プロキシ２００は、データ削除要求の内容に基づいて、ストレージサーバ３００に備えられている暗号化ＤＢ３１０から該当する暗号化データＤｅを削除し、暗号化ＤＢ３１０の内容を更新する。
【００７７】
（３．３）インデックス新規作成
図６は、暗号化データ検索システム１によるインデックスの新規作成動作フローを示す。図６に示すように、ステップＳ３１０において、検索プロキシ２００は、移動端末１００からインデックスの新規作成要求があったか否かを判定する。
【００７８】
移動端末１００からインデックスの新規作成要求があった場合（ステップＳ３１０のＹＥＳ）、ステップＳ３２０において、検索プロキシ２００は、ストレージサーバ３００から暗号化データＤｅをダウンロードする。
【００７９】
ステップＳ３３０及びステップＳ３４０の処理は、図４に示したステップＳ１８０及びＳ１９０の処理と同様である。
【００８０】
（４）作用・効果
暗号化データ検索システム１によれば、ストレージサーバ３００の所在ＵＲＬ、データの暗号化方式及び暗号化方式において用いられる鍵情報を含むマスターテーブルＴＢ１は、検索プロキシ２００に記憶される。つまり、マスターテーブルＴＢ１は、移動端末１００が取り扱うユーザデータＤｕが暗号化された暗号化データＤｅを保存するストレージサーバ３００から離隔して配置される。このため、ストレージサーバ３００に暗号化されたユーザデータＤｕを保存する場合において、ユーザデータＤｕの秘匿性を確保することができる。
【００８１】
また、ユーザデータＤｕは、移動端末１００ではなく検索プロキシ２００において暗号化される。さらに、本実施形態では、インデックステーブルも移動端末１００ではなく検索プロキシ２００において作成される。このため、移動端末１００の処理負荷、及び移動端末１００〜ストレージサーバ３００間の通信トラフィックを抑制できる。
【００８２】
本実施形態では、インデックス作成モジュール２２０によって作成されたインデックステーブルを用いて、ストレージサーバ３００に保存された暗号化データＤｅが検索される。このため、ストレージサーバ３００から移動端末１００や検索プロキシ２００に暗号化データＤｅをダウンロードすることなく検索できる。つまり、ストレージサーバ３００に対してインデックステーブルの内容を秘匿しつつ、暗号化データＤｅを高速に検索できる。
【００８３】
また、本実施形態では、インデックス作成モジュール２２０を用いて、インデックステーブルの内容の追加及び削除が実行される。このため、ストレージサーバ３００から移動端末１００や検索プロキシ２００に暗号化データＤｅをダウンロードすることなくインデックステーブルを変更できる。つまり、検索プロキシ２００とストレージサーバ３００との通信トラフィックを抑制しつつ、インデックステーブルの内容を変更できる。
【００８４】
（５）その他の実施形態
上述したように、本発明の一実施形態を通じて本発明の内容を開示したが、この開示の一部をなす論述及び図面は、本発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態が明らかとなろう。
【００８５】
例えば、検索プロキシ２００は、インデックステーブルの内容の追加や削除を実行する機能、或いはストレージサーバ３００から暗号化データＤｅをダウンロードする機能を有していなくても構わない。
【００８６】
また、上述した実施形態では、移動端末１００や検索プロキシ２００とは、移動通信網２０、つまり、無線通信方式によって接続されていたが、端末装置（例えば、パーソナルコンピュータ）と検索プロキシ２００とは、有線通信方式によって接続されてもよい。
【００８７】
このように、本発明は、ここでは記載していない様々な実施の形態などを含むことは勿論である。したがって、本発明の技術的範囲は、上述の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【００８８】
【図１】本発明の実施形態に係る暗号化データ検索システム１の全体概略構成図である。
【図２】本発明の実施形態に係る検索プロキシ２００の機能ブロック構成図である。
【図３】本発明の実施形態に係る暗号化データ検索システム１によるインデックスの検索動作フローを示す図である。
【図４】本発明の実施形態に係る暗号化データ検索システム１によるインデックスへのデータ追加動作フローを示す図である。
【図５】本発明の実施形態に係る暗号化データ検索システム１によるインデックスからのデータ削除動作フローを示す図である。
【図６】本発明の実施形態に係る暗号化データ検索システム１によるインデックスの新規作成動作フローを示す図である。
【図７】本発明の実施形態に係るマスターテーブルＴＢ１の構成例を示す図である。
【図８】本発明の実施形態に係るインデックステーブルＴＢ２の構成例を示す図である。
【図９】本発明の実施形態に係るインデックステーブルＴＢ３の構成例を示す図である。
【符号の説明】
【００８９】
１…暗号化データ検索システム、１０…インターネット、２０…移動通信網、１００…移動端末、１１０…ローカル検索マネージャー、１２０…ローカルインデックスＤＢ、２００…検索プロキシ、２１０…リモート検索マネージャー、２２０…インデックス作成モジュール、…暗号化モジュール、２４０…復号モジュール、２５０…リモートインデックスＤＢ、３００…ストレージサーバ、３１０…暗号化ＤＢ、Ｄｅ…暗号化データ、Ｄｕ…ユーザデータ、ＴＢ１…マスターテーブル、ＴＢ２，ＴＢ３…インデックステーブル
【図１】
2009211384.tif 000003
【図２】
2009211384.tif 000004
【図３】
2009211384.tif 000005
【図４】
2009211384.tif 000006
【図５】
2009211384.tif 000007
【図６】
2009211384.tif 000008
【図７】
2009211384.tif 000009
【図８】
2009211384.tif 000010
【図９】
2009211384.tif 000011