説明

情報検索装置および情報検索方法

【課題】複数の検索要求用キーワードを用いて高速で誤検索の無い秘匿検索を行う情報検索装置を実現する。
【解決手段】情報検索装置は、検索履歴を記憶するインデックス3001を備え、検索要求が有った場合に、全データ検索を行わず、インデックス3001内の検索履歴を検索することで、検索の高速化を図る。インデックス3001は、検索要求用キーワードの数毎のキーワード数別インデックス3002を備える。更にキーワード数別インデックス3002は、検索要求用キーワードに対応したエントリ用代表元タグ3004とエントリ用検索クエリ3006を有する複数のエントリを備える。本構造により検索条件によって分類されたインデックス3001が形成され、情報検索装置は、誤検索の無い秘匿検索を行う。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、暗号化された情報を暗号化された検索要求用キーワードにより秘匿検索する情報検索装置および情報検索方法に関する。
【背景技術】
【0002】
秘匿検索とは、検索者(以下ユーザと称する)の要求に応じて、情報検索システム(情報検索装置)が必要な情報を検索する場合に、情報検索システム(情報検索装置)は、暗号化された情報(以下暗号化情報と称する)を復号することなく、暗号化された状態で検索をすることである。(以下、秘匿検索に用いる情報検索システム(情報検索装置)を秘匿検索システムと称する)。
秘匿検索システムが暗号化情報そのものを検索することは出来ないので、秘匿検索システムは、検索可能な情報キーワードを暗号化したもの(以下タグと称する)を暗号化情報に付加してデータセンターに登録(記録もしくは保存)する。
【0003】
ここでデータセンターとは、例えばデータサーバなどの大容量の記憶装置である。データセンターが登録した情報もしくはデータを、データセンターの管理者(データセンターの管理部門もしくは管理会社の人間)は閲覧することが可能である。
データセンターはユーザが用いる端末(以下ユーザ端末と称する)が入力した情報を保存し、保存した情報を管理し、ユーザ端末の要求に応じて検索し、ユーザ端末の要求に応じて検索した情報をユーザ端末に出力する等の機能を有する。
【0004】
また、秘匿検索システムにおいて、ユーザは、タグの検索に用いる検索要求用キーワードも暗号化されたものを用いる(以下、暗号化された検索要求用キーワードを暗号化検索要求用キーワードと称する。また、暗号化検索要求用キーワードには以下に説明のタグ暗号化検索要求用キーワードとクエリ暗号化検索要求用キーワードとが有るが、特に区別の必要が無い場合は、暗号化検索要求用キーワードと称する)。もしくは、ユーザは、タグの検索に検索要求用クエリを用いる(ここで、検索要求用クエリとは、1つ以上の暗号化検索要求用キーワードで構成されたユーザ端末からの検索要求のことである。)。
すなわち、秘匿検索システムがデータセンターに保存した暗号化情報および、秘匿検索システムがデータセンターに保存した暗号化情報を検索する際に使用するクエリ暗号化検索要求用キーワード(もしくは検索要求用クエリ)とタグは全て暗号化されている。従って、解読可能な情報は、第3者(以下、第3者とは、例えばデータセンターの管理会社の人間などを示す)に漏れることが無い。
【0005】
その為に、ユーザは第3者が管理するデータセンターに暗号化情報の保存、管理を委託することが可能である。
すなわち、ユーザはユーザ端末から暗号化情報をデータセンターに登録し、必要に応じてクエリ暗号化検索要求用キーワード(もしくは検索要求用クエリ)を用いて、データセンターに登録された暗号化情報に対応するタグを検索する。そして、ユーザは検索されたタグに対応する暗号化情報をユーザ端末に保存し、ユーザ端末で暗号化情報の復号処理を行い、暗号化情報の内容を閲覧する。
近年、例えばクラウドサービスなどのインターネット上にユーザが情報を保存する際、秘匿検索は、情報盗難などの脅威から守るためのセキュリティ技術として注目されている。
【0006】
一方、秘匿検索は、保存されている暗号化情報、クエリ暗号化検索要求用キーワード(もしくは検索要求用クエリ)やタグから一切の情報を得られない。そこで、データセンターは暗号化情報の内容に応じて分類分け等の管理が出来ず、データセンターは分類毎の検索が出来ない。その為、一般的にはユーザから検索要求が有った際に、データセンターは保存されているすべてのタグを検索対象とする必要があり、保存された暗号化情報の増加による検索時間の増加が問題となる。
【0007】
そこで、検索履歴(以下インデックス)を利用した秘匿検索の高速化手法が存在する。(例えば、特許文献1、非特許文献1参照)。
また、更に秘匿検索の検索効率改善手法として、複数の暗号化検索要求用キーワードを用いて秘匿検索を行う手法(例えば、非特許文献2参照)や、複数のユーザがタグを共有する手法(例えば、非特許文献3参照)が存在する。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2005−134990
【非特許文献】
【0009】
【非特許文献1】D.Boneh、G.D.Crescenzo、R.Ostrovsky、Persiano.G、 “Public Key Encryption with Keyword Search”、Proceedings of EUROCRYPT ‘04、vol.3027 LNCS、pp506−522(2004)
【非特許文献2】Y.H.Hwang、P.J.Lee、 “Public Key Encryption with Conjunctive Keyword Search and Its Extension to a Multi−user System”、Pairing 2007、LNCS 4575、pp2−22.
【非特許文献3】M.Hattori、T.Mori、T.Ito、N.Matsuda、T.Yoneda、K.Ohta、 “Anonymous HIBE with wildcards and its application to secure keyword search for group−oriented multi−user system,”、SCIS 2010、3A4−2、2010.
【発明の概要】
【発明が解決しようとする課題】
【0010】
この発明の実施の形態は、例えば、複数の暗号化検索要求用キーワードを用いて高速な秘匿検索を行う情報検索装置を実現することを目的とする。
【課題を解決するための手段】
【0011】
この発明に係る情報検索装置は、
1つ以上のクエリ暗号化検索要求用キーワードを有するエントリ用検索クエリと前記エントリ用検索クエリが有する属性と1つ以上の暗号化代表元用キーワードを有するエントリ用代表元タグとを対応させて記憶するインデックス記憶部と、
登録暗号化情報と前記登録暗号化情報に対応する1つ以上の暗号化登録キーワードを有する登録キーワードタグとを受信する登録データ受信部と、
前記インデックス記憶部に記憶された前記エントリ用検索クエリと前記登録データ受信部が受信した前記登録キーワードタグとを照合し、前記エントリ用検索クエリと前記登録キーワードタグとが対応する場合に、前記登録データ受信部が受信した前記登録暗号化情報が前記インデックス記憶部に記憶された前記エントリ用検索クエリに対応する前記登録暗号化情報であると判定して、前記インデックス記憶部において前記登録暗号化情報を前記エントリ用検索クエリに関連付けるインデックス更新管理部と、
1つ以上のクエリ暗号化検索要求用キーワードを有する検索要求用クエリを受信する検索要求受信部と、
前記検索要求受信部が受信した検索要求用クエリから前記検索要求用クエリが有する属性を検出するインデックス分類部と、
前記インデックス記憶部に記憶された前記エントリ用代表元タグと前記検索要求受信部が受信した前記検索要求用クエリとを照合し、前記エントリ用代表元タグと前記検索要求用クエリとが対応する場合で、かつ前記インデックス記憶部に記憶された前記エントリ用検索クエリが有する属性と前記インデックス分類部が検出した検索要求用クエリが有する属性とを照合し、前記エントリ用検索クエリが有する属性と前記検索要求用クエリが有する属性とが対応する場合に、前記エントリ用代表元タグに関連付けられた前記登録用情報を出力する検索処理部と
を備えたことを特徴とする。
【発明の効果】
【0012】
この発明に係る情報検索装置は、複数の暗号化検索要求用キーワードを用いて高速な秘匿検索を行うことが可能となる。
【図面の簡単な説明】
【0013】
【図1】実施の形態1を示す図で、秘匿検索システムの外観の一例を示す図。
【図2】実施の形態1を示す図で、秘匿検索システム100のハードウェア資源の一例を示す図。
【図3】実施の形態1を示す図で、秘匿検索システム100の構成例を示す図。
【図4】実施の形態1を示す図で、ユーザ端末201の構成を示すブロック図。
【図5】実施の形態1を示す図で、タグ生成部206におけるタグ生成の動作を示す図((a)はキーワードが1つの場合、(b)はキーワードが3つの場合)。
【図6】実施の形態1を示す図で、登録データ2301の構成の例を示す図。
【図7】実施の形態1を示す図で、検索要求用クエリ生成部205における検索要求用クエリ2002生成の動作を示す図((a)はキーワードが1つの場合、(b)はキーワードが3つの場合)。
【図8】実施の形態1を示す図で、検索要求2001の構成の例を示す図。
【図9】実施の形態1を示す図で、データセンター301の構成を示すブロック図。
【図10】実施の形態1を示す図で、検索要求用クエリ2002で保管キーワードタグ4003を復号する動作の第1の例を示す図。
【図11】実施の形態1を示す図で、検索要求用クエリ2002で保管キーワードタグ4003を復号する動作の第2の例を示す図。
【図12】実施の形態1を示す図で、検索要求用クエリ2002で保管キーワードタグ4003を復号する動作の第3の例を示す図。
【図13】実施の形態1を示す図で、インデックス記憶部304に記憶される検索結果のデータ構造の一例を示す図。
【図14】実施の形態1を示す図で、データセンター301で実施される処理の概要を示したフローチャート。
【図15】実施の形態1を示す図で、検索処理部303におけるインデックス検査S403の動作を示すフローチャート。
【図16】実施の形態1を示す図で、インデックス更新管理部306におけるインデックス登録S406の動作を示すフローチャート。
【図17】実施の形態1を示す図で、ユーザが新規にデータをデータセンター301に登録する際の動作を示したフローチャート。
【図18】実施の形態1を示す図で、登録データ2301と保管データ4001との具体例を示す図((a)は登録データ2301a、(b)は登録データ2301b、(c)は登録データ2301c、(d)は保管データ4001a、(e)は保管データ4001b、(f)は保管データ4001c)。
【図19】実施の形態1を示す図で、検索要求2001の具体例を示す図((a)は検索要求2001a、(b)は検索要求2001b、(c)は検索要求2001c)。
【図20】実施の形態1を示す図で、ステップS405の保管データ全探索の動作を示す図。
【図21】実施の形態1を示す図で、第1の検索要求2001aに基づくインデックス登録の例を示す図。
【図22】実施の形態1を示す図で、検索要求2001a〜cに基づくインデックス登録の例を示す図。
【図23】実施の形態1を示す図で、検索要求2001a〜cに基づくエントリ登録の例を示す図((a)はエントリ3003a、(b)はエントリ3003b、(c)はエントリ3003c)。
【図24】実施の形態1を示す図で、登録データ2301dを示す図。
【図25】実施の形態1を示す図で、登録データ2301dに含まれる登録暗号化情報がエントリに追加された例を示す図。
【図26】実施の形態1を示す図で、検索要求2001の更なる具体例を示す図((a)は検索要求2001d、(b)は検索要求2001e)。
【図27】実施の形態2を示す図で、フィールド番号を含んだ登録データ2301の構成の例を示す図。
【図28】実施の形態2を示す図で、フィールド番号を含んだ検索要求2001の構成の例を示す図。
【図29】実施の形態2を示す図で、フィールド番号を含んだインデックス記憶部304に記憶される検索結果のデータ構造の一例を示す図。
【図30】実施の形態2を示す図で、インデックス検査S403の手順を示したフローチャート。
【図31】実施の形態2を示す図で、インデックス登録S406の手順を示したフローチャート。
【図32】実施の形態2を示す図で、インデックス検査S403における一致検査の具体例を示す図((a)はエントリ3003の具体例、(b)は、検索要求2001a、(c)は、検索要求2001b、(d)は、検索要求2001c)。
【図33】実施の形態3を示す図で、データ保管部305の構造の一例を示す図。
【図34】実施の形態3を示す図で、インデックス記憶部304に保存されるインデックス3001の構造の一例を示す図。
【図35】実施の形態3を示す図で、グループ共有を行わない場合のインデックス検査S403の手順を示したフローチャート。
【図36】実施の形態3を示す図で、グループ共有を行う場合のインデックス検査S403の手順を示したフローチャート。
【発明を実施するための形態】
【0014】
実施の形態1.
本実施の形態では、ユーザ(検索者、登録者)とデータセンター(データ管理者)の間で、複数のキーワードに対応した検索履歴を利用した秘匿検索を実施する際の、誤検索や検索漏れを防止する手法の例を説明する。
【0015】
最初に、図1、図2、図3を用いて秘匿検索システムの概要を説明する。
【0016】
図1は、秘匿検索システムの外観の一例を示す図である。
図1において、秘匿検索システム100は、システムユニット910、CRT(Cathode・Ray・Tube)やLCD(液晶)の表示画面を有する表示装置901、キーボード902(Key・Board:K/B)、マウス903、FDD904(Flexible・Disk・ Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
また、これらのハードウェア資源をユーザ端末201と称している。
システムユニット910は、コンピュータであり、ファクシミリ機932、電話器931とケーブルで接続され、また、ローカルエリアネットワーク942(LAN)、ゲートウェイ941を介してネットワーク101に接続されている。ネットワーク101の代表的な例はインターネットがある。
【0017】
図2は、秘匿検索システム100のハードウェア資源の一例を示す図である。
図2において、秘匿検索システム100は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、通信ボード915、表示装置901、キーボード902、マウス903、FDD904、CDD905、プリンタ装置906、スキャナ装置907、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信ボード915、キーボード902、スキャナ装置907、FDD904などは、入力部、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力部、出力装置の一例である。
【0018】
通信ボード915は、ファクシミリ機932、電話器931、LAN942等に接続されている。通信ボード915は、LAN942に限らず、ネットワーク101、ISDN等のWAN(ワイドエリアネットワーク)などに接続されていても構わない。ネットワーク101或いはISDN等のWANに接続されている場合、ゲートウェイ941は不用となる。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
【0019】
上記プログラム群923には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明する情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disk)等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【0020】
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「手段」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【0021】
図3は、秘匿検索システム100の構成例を示す図である。図3は、図1に示した秘匿検索システム100の外観の一例を簡略化して図示している。
秘匿検索システム100は、ユーザ端末201、データセンター301を備える。ユーザ端末201はローカルエリアネットワーク942に接続されている。ローカルエリアネットワーク942はネットワーク101を介してデータセンター301と接続されている。
ユーザ端末201は、例えば企業のユーザが利用するPC(パーソナルコンピュータ)である。
ネットワーク101は、ローカルエリアネットワーク942とデータセンター301を接続する通信路である。
ローカルエリアネットワーク942は、企業内に施設された通信路であり、企業内で利用される様々なサーバやPCが接続される。なお、通信路は専用線や無線、ルータなどで構成される複雑な通信路となる。
ここで、図1はローカルエリアネットワーク942を使用した例を示している。しかし、例えば個人が家庭でユーザ端末201を使用する場合などは、ユーザ端末201は、ローカルエリアネットワーク942を介せず、直接ネットワーク101に接続することも可能である。
【0022】
ここで、秘匿検索システム100の大まかな動作を説明する。
秘匿検索システム100に用いる暗号方式は、基本的にはIDベース暗号(以下 IBE:Identity−Based Encryption)を用いた秘匿検索方式である。この方式によりユーザはデータセンター301に登録する情報も、検索時のキーワードも全て暗号化したまま、情報検索が可能である。以下に詳細を説明する。
まず、ユーザはユーザ端末201を用いて、ユーザが保存したい暗号化情報と暗号化情報に対応したタグ(以下、登録キーワードタグと称する)を組にしてデータセンター301に保存する。(なお、本実施の形態の説明においては、データ保管部305に保存された登録キーワードタグを保管キーワードタグと称しているが、実質的に同一のものであり、特に区別の必要が無い場合は、登録キーワードタグの表現を用いる)。
また、暗号化登録キーワードは暗号化情報を検索するための登録キーワード(暗号化情報の保存時にユーザが設定したキーワード)を暗号化したものである。そして、登録キーワードタグは1つ以上の暗号化登録キーワードから構成される。更に詳細に説明すると、暗号化登録キーワード(登録キーワードタグ)はユーザが入力した任意の平文を登録キーワードと公開鍵とで暗号化したものである。なお、任意の平文は、無意味な平文であり、以下無意味な平文と称する。ここで、暗号化情報と暗号化登録キーワード(登録キーワードタグ)は暗号化されていて、第3者は、情報を閲覧することが出来ない。
検索時には、ユーザは検索要求用キーワードをユーザ秘密鍵で暗号化したクエリ暗号化検索要求用キーワード(もしくは検索要求用クエリ)をデータセンター301に送信する。ここで、クエリ暗号化検索要求用キーワード(もしくは検索要求用クエリ)も暗号化されていて第3者は、情報を閲覧することが出来ない。
データセンター301は、検索要求用クエリを用いて、保存している登録キーワードタグと一致検査を行う。検索要求用クエリと登録キーワードタグとが一致すれば、データセンター301は、組で保存されている暗号化情報をユーザに返却する。ここで、検索要求用クエリと登録キーワードタグとが一致とは、検索要求用クエリで登録キーワードタグを復号して、元の無意味な平文が得られることをいう。復号された無意味な平文からも第3者は情報を閲覧することが出来ず、第3者は、検索要求用クエリと登録キーワードタグとが一致したという状態が分かるのみとなる。その為にユーザは第3者に対する秘匿検索が可能である。
また、データセンター301は、企業内で作成された暗号化情報および登録キーワードタグを保存する大容量の記憶装置を持つサーバである。またデータセンター301は、一度検索された暗号化検索要求用キーワードの検索結果をインデックスとして保存し、次回以降に同一のキーワードが検索された場合に、そのインデックスを利用して高速に応答する機能を備える。
【0023】
次に、図4を用いて本実施の形態にて構成されているユーザ端末201について、更に詳しく説明する。
【0024】
図4は、ユーザ端末201の構成を示すブロック図である。
ユーザ端末201は、情報・鍵格納領域202、暗号化情報管理部203、ユーザインターフェース204、検索要求用クエリ生成部205、タグ生成部206、通信モジュール207を備える。
【0025】
情報・鍵格納領域202は、暗号化情報の基であるオリジナルの情報を保存する。ここでオリジナルの情報とは、例えば数値データや図面や文章などの平文の情報そのものでも良いし、既に暗号化された情報でも良い。またオリジナルの情報は、情報名やファイル名、情報を保存しているデータベースの位置情報などで有っても良いし、これらの組み合わせ(例えば前記の平文の情報そのものとファイル名の組み合わせなど)でも良い。
また、情報・鍵格納領域202は、情報を暗号化して暗号化情報を生成する為の鍵(暗号化情報生成鍵)と、検索要求用キーワードを暗号化して検索要求用クエリを生成する為のユーザ秘密鍵と、タグを生成するための公開鍵を保存する。
【0026】
暗号化情報管理部203は、情報・鍵格納領域202に保存されている情報を暗号化し、暗号化情報を生成する。暗号化情報からは、第3者は、情報を閲覧することはできない。暗号化の方法としては、検索要求用クエリ生成部205やタグ生成部206で用いられる暗号化の方法とは別の方法が用いられる。
ユーザインターフェース204は、秘匿検索システム100をユーザが操作するためのインタフェースである。ユーザインターフェース204は、検索要求用クエリ生成部205や、タグ生成部206で用いるキーワードと無意味な平文をユーザが入力する機能を備える。なお、ユーザは、1つ以上のキーワード入力が可能である。
【0027】
通信モジュール207は、検索要求用クエリ生成部205、タグ生成部206、暗号化情報管理部203が生成した検索要求(検索要求用クエリや検索要求用代表元タグ)や登録データ(受信暗号化情報や受信キーワードタグや無意味な平文)を、データセンター301に送信するために、ローカルエリアネットワーク942もしくはネットワーク101に接続するものである。
【0028】
ここで、検索要求と登録データの説明を行う。
【0029】
まず、図5、図6を用いてタグ生成部206における暗号化の動作および登録データの構造を説明する。
【0030】
図5は、タグ生成部206におけるタグ生成の動作を示す図である。((a)はキーワードが1つの場合、(b)はキーワードが3つの場合)。
ユーザは、ユーザインターフェース204を介して無意味な平文2305と登録キーワード2300とを入力する。
タグ生成部206は、ユーザが入力した無意味な平文2305に登録キーワード2300と情報・鍵格納領域202に保存された公開鍵とから暗号化登録キーワード2304と登録キーワードタグ2303とを生成する。また、タグ生成部206は、ユーザがユーザインターフェース204を介して入力した検索要求用キーワード2000と情報・鍵格納領域202に保存された公開鍵とからタグ暗号化検索要求用キーワード2005と検索要求用代表元タグ2004とを生成する。
【0031】
具体的には、図5(a)を用いて登録データの生成を説明する。
例えば、ユーザがデータセンター301に保存する情報が「自動車」に関する情報とする。そして、データセンター301に保存する情報に「エンジン」に関係する記述が有る為にユーザは、登録キーワード2300として「エンジン」をユーザインターフェース204を介してタグ生成部206に入力する。
そして、タグ生成部206は、ユーザがユーザインターフェース204を介して入力した無意味な平文2305(例えば、pencil)を登録キーワード2300の「エンジン」と情報・鍵格納領域202に保存された公開鍵とで暗号化し、暗号化登録キーワード2304(登録キーワードタグ2303)を生成する。
同様に、図5(b)のようにユーザがデータセンター301に保存する情報に「エンジン」「タイヤ」「ハンドル」に関係する記述が有る為、登録キーワード2300として「エンジン」「タイヤ」「ハンドル」の3つのキーワードを設定したとする。その場合は、タグ生成部206は、無意味な平文2305(例えば、pencil、rain、candy)を登録キーワード2300の「エンジン」「タイヤ」「ハンドル」と情報・鍵格納領域202に保存された公開鍵とで暗号化し、暗号化登録キーワード2304(登録キーワードタグ2303)を生成する。
【0032】
図6は、登録データ2301の構成の例を示す図である。
登録データ2301は、登録暗号化情報2302と登録キーワードタグ2303と無意味な平文2305とから構成される。
ここでは、図5(b)に説明した例を用いる。ユーザがデータセンター301に保存する情報が情報・鍵格納領域202に保存されている例えば「自動車情報1」であったとする。そして、暗号化情報管理部203は、「自動車情報1」を暗号化し、登録暗号化情報2302を生成する。登録暗号化情報の暗号化の方法としては、検索要求用クエリ生成部205やタグ生成部206で用いられる暗号化の方法とは別の方法が用いられる。(例えば、登録暗号化情報2302を生成の為の独自のユーザ秘密鍵など)。また、ここでは保存する情報を平文のテキスト文書のようなものと想定しているが、数値データや画像データでも良い。また、保存する情報は、情報名やファイル名、情報を保存しているデータベースの位置情報などで有っても良いし、これらの組み合わせ(例えば前記の平文の情報そのものとファイル名の組み合わせなど)でも良い。また保存する情報そのものが元々暗号化されていても良い。
そして、登録キーワードタグ2303は、図5(b)で説明の通り、登録暗号化情報2302に対応した(関連した)3つのキーワードが設定されている。
なお、無意味な平文2305は平文のまま登録キーワードタグ2303の暗号化登録キーワード2304と対応して登録データ2301に含まれる。
また、暗号化登録キーワード2304(登録キーワードタグ2303)は暗号化されており、暗号化登録キーワード2304(登録キーワードタグ2303)を生成する為に用いた登録キーワード2300を第3者は知ることが出来ない。しかし、第3者(もしくはデータセンター301)は、登録キーワードタグ2303の属性として、登録キーワードタグ2303に含まれる暗号化登録キーワード2304の数は知ることが出来る。
【0033】
そして、図7、図8を用いて検索要求用クエリ生成部205における暗号化の動作および検索要求の構造を説明する。
図7は、検索要求用クエリ生成部205における検索要求用クエリ2002生成の動作を示す図である。((a)はキーワードが1つの場合、(b)はキーワードが3つの場合)。
検索要求用クエリ生成部205は、ユーザがユーザインターフェース204を介して入力したユーザが検索したいキーワード(以下、検索要求用キーワード2000と称す)と情報・鍵格納領域202に保存されたユーザ秘密鍵とからクエリ暗号化検索要求用キーワード2003と検索要求用クエリ2002を生成する。
【0034】
具体的には、図7(a)を用いて検索要求の生成を説明する。
例えば、ユーザが「エンジン」に関係する情報を検索したいとする。そして、ユーザは、検索要求用キーワード2000として「エンジン」をユーザインターフェース204を介して検索要求用クエリ生成部205に入力する。
そして、検索要求用クエリ生成部205は、検索要求用キーワード2000の「エンジン」を情報・鍵格納領域202にユーザ秘密鍵で暗号化し、クエリ暗号化検索要求用キーワード2003と検索要求用クエリ2002を生成する。
また、ユーザが検索要求用キーワード2000として「エンジン」「タイヤ」「ハンドル」の3つのキーワードを設定したとする。その場合は、検索要求用クエリ生成部205は、検索要求用キーワード2000の「エンジン」「タイヤ」「ハンドル」を情報・鍵格納領域202に保存されたユーザ秘密鍵で暗号化し、検索要求用クエリ2002を生成する。
【0035】
図8は、検索要求2001の構成の例を示す図である。ここでは、図5(b)と図7(b)に説明した例(3つのキーワードが設定された場合)を図示している。
検索要求2001は、検索要求用クエリ2002と検索要求用代表元タグ2004と無意味な平文2305から構成される。
検索要求2001の生成において、ユーザが入力した検索要求用キーワード2000は、図4に示すように検索要求用クエリ生成部205とタグ生成部206の両方に入力される。そして、検索要求用クエリ生成部205は、検索要求用クエリ2002を生成し、タグ生成部206は、検索要求用代表元タグ2004を生成する。そして、ユーザ端末201は、両者を組み合わせて検索要求2001を生成する。
なお、無意味な平文2305は平文のまま検索要求用代表元タグ2004のタグ暗号化検索要求用キーワード2005に対応して検索要求用クエリ2002に含まれる。(以下の説明においては、検索要求用クエリ2002に含まれる無意味な平文2305の図示は省略する)。
また、検索要求用クエリ2002は暗号化されており、検索要求用クエリ2002を生成する為に用いた検索要求用キーワード2000を第3者は知ることが出来ない。しかし、第3者(もしくはデータセンター301)は、検索要求用クエリ2002の属性として、検索要求用クエリ2002に含まれるクエリ暗号化検索要求用キーワード2003の数は知ることが出来る。
同様に、検索要求用代表元タグ2004は暗号化されており、検索要求用代表元タグ2004を生成する為に用いた検索要求用キーワード2000を第3者は知ることが出来ない。しかし、第3者(もしくはデータセンター301)は、検索要求用代表元タグ2004の属性として、検索要求用代表元タグ2004に含まれるタグ暗号化検索要求用キーワード2005の数は知ることが出来る。
【0036】
次に、図9を用いてデータセンター301の説明を行う。
【0037】
図9は、データセンター301の構成を示すブロック図である。
データセンター301は、検索要求受信部302、検索処理部303、インデックス記憶部304、データ保管部305、インデックス更新管理部306、検索要求回答部307、登録データ受信部308、インデックス分類部309を備える。
なお、インデックス分類部309は、検索処理部303もしくはインデックス更新管理部306に含まれていても構わない。
【0038】
まず各構成要素の概要を説明する。
【0039】
検索要求受信部302は、ユーザ端末201から送信された検索要求2001を受信し、検索処理部303へ入力する。
登録データ受信部308は、ユーザ端末201から登録データ2301を受信すると、インデックス更新管理部306とデータ保管部305に登録データ2301を入力する。
データ保管部305は、登録データ受信部308から受信した登録データ2301を保管データ4001として保存する。その際にデータ保管部305は、登録暗号化情報2302を保管暗号化情報4002として、登録キーワードタグ2303を保管キーワードタグ4003として保存する。(登録データ2301と保管データ4001は実質的に同一のものであり、特に区別の必要が無い場合は、登録データ2301の表現を用いている。登録暗号化情報2302と保管暗号化情報4002、登録キーワードタグ2303と保管キーワードタグ4003についても同様である。)また、データ保管部305は、無意味な平文2305も保管データ4001の一部として保存する。
保管キーワードタグ4003は、登録キーワードタグ2303と同一構造であり、保管キーワードタグ4003を生成する為に用いた登録キーワード2300を第3者は知ることが出来ない。しかし、第3者(もしくはデータセンター301)は、保管キーワードタグ4003の属性として保管キーワードタグ4003に含まれる暗号化登録キーワード2304の数は知ることが出来る。
【0040】
検索処理部303は、検索要求受信部302から検索要求2001を受信し、検索要求2001に応じて、インデックス記憶部304もしくはデータ保管部305の検索を行う。
インデックス記憶部304は、過去に検索処理部303が検索した検索結果を保存する。
インデックス分類部309は、クエリ暗号化検索要求用キーワード2003の数に応じてインデックス記憶部304の検索対象領域を決定する。
インデックス更新管理部306は、インデックス記憶部304に保存された内容を更新する。
検索要求回答部307は、検索処理部303によって検索された登録暗号化情報2302をユーザ端末201に送信する。
【0041】
前記のデータセンター301の各構成要素の内、まずは検索処理部303がデータ保管部305の検索を行う例を詳細説明する。
【0042】
検索処理部303は、検索要求受信部302から入力された検索要求2001に応じて、データ保管部305に保存された保管データ4001を検索する。その際に、検索処理部303は、検索要求2001に含まれる検索要求用クエリ2002で保管データ4001に含まれる保管キーワードタグ4003を照合(復号処理)する。そして、検索要求用クエリ2002で保管キーワードタグ4003が復号出来た場合に、検索要求用クエリ2002に含まれるクエリ暗号化検索要求用キーワード2003と保管キーワードタグ4003に含まれる暗号化登録キーワード2304とが一致したと判断する。
【0043】
ここで、図10、図11、図12を用いて検索要求用クエリ2002で保管キーワードタグ4003を復号する動作を説明する。
【0044】
図10は、検索要求用クエリ2002で保管キーワードタグ4003を復号する動作の第1の例を示す図である。
図11は、検索要求用クエリ2002で保管キーワードタグ4003を復号する動作の第2の例を示す図である。
図12は、検索要求用クエリ2002で保管キーワードタグ4003を復号する動作の第3の例を示す図である。
なお、図10〜図12における検索要求用クエリ2002の無意味な平文2305の図示は省略している。
【0045】
まず図10に示す例は、登録データ2301における登録キーワードタグ2303の暗号化登録キーワード2304が3つ有る場合(図5(b)の例と同じ)である。この登録データ2301がデータ保管部305に保管データ4001として保存されることで、同じく保管キーワードタグ4003は、暗号化登録キーワード2304が3つ有る状態となっている。そして、検索要求用クエリ2002は、クエリ暗号化検索要求用キーワード2003が1つの場合(図7(a)の例と同じ)である。
【0046】
検索処理部303は、図10に示す検索要求2001に含まれる検索要求用クエリ2002で、保管データ4001に含まれる保管キーワードタグ4003を復号する。そして、無意味な平文2305(例えばpencil)が正しく再現出来れば、検索処理部303は、検索要求用クエリ2002と保管キーワードタグ4003が一致すると判断する。ここで、無意味な平文2305は、ユーザ端末201のタグ生成部206において暗号化された登録キーワードタグ2303を生成する際に用いられたものである。(以下、復号処理により正しい無意味な平文が再現することを、「一致する」もしくは「復号出来る」と表現する)。
そして、検索処理部303は、検索要求用クエリ2002に一致した保管キーワードタグ4003に対応する保管暗号化情報4002が検索要求用キーワード2000に対応する保管暗号化情報であると判断する。
なお、無意味な平文2305は、登録キーワードタグ2303と一緒に登録データ2301の一部としてデータ保管部305に保存されている。そこで、検索処理部303は、データ保管部305に保存された無意味な平文2305を参照することで、復号において無意味な平文2305を正しく再現したかを判断する。
【0047】
次に図11に示す例は、検索要求用クエリ2002のクエリ暗号化検索要求用キーワード2003が2つの場合で、2つのクエリ暗号化検索要求用キーワード2003が両方とも保管キーワードタグ4003の暗号化登録キーワード2304に一致する場合である。この場合は、検索要求用キーワード「エンジン」と「ハンドル」それぞれに対応した無意味な平文2305(例えばPencilとCandy)は、正しく再現される。そして、検索処理部303は、検索要求用クエリ2002と保管キーワードタグ4003とが一致すると判断する。
【0048】
一方、図12に示す例は、検索要求用クエリ2002のクエリ暗号化検索要求用キーワード2003が2つの場合である。そして、2つのクエリ暗号化検索要求用キーワード2003のうち1つしか保管キーワードタグ4003の暗号化登録キーワード2304に一致しない場合である。この場合は、検索要求用キーワード「エンジン」に対応した無意味な平文2305(例えばPencil)が正しく再現されるが、検索要求用キーワード「アクセル」に対応した無意味な平文2305は誤って再現される。(例えば%6h+¥)。
そこで、検索処理部303は、検索要求用クエリ2002と保管キーワードタグ4003とが一致しないと判断する。
【0049】
次に、図13を用いて前記データセンター301の各構成要素の内、インデックス記憶部304の詳細を説明する。
図13は、インデックス記憶部304に記憶される検索結果のデータ構造の一例を示す図である。インデックス3001は、複数(例えばn個)のキーワード数別インデックス3002で構成される。キーワード数別インデックス3002は、検索要求用クエリ2002に含まれるn個(n≧1)のキーワード数に対応する。(図中に3002−1〜3002−nで表記)。さらに、キーワード数別インデックス3002は、1つ以上のエントリ3003から構成され、ユーザの検索要求により、必要に応じて生成される。
そして、エントリ3003は、エントリ用代表元タグ3004、エントリ用検索クエリ3006、エントリ用暗号化情報3007、無意味な平文2305から構成される。
エントリ用代表元タグ3004は、1つ以上の暗号化代表元用キーワードで構成される。実施の形態1においては、エントリ用代表元タグ3004は、検索要求2001に含まれる検索要求用代表元タグ2004が保存されたものである。その為、暗号化代表元用キーワードは、タグ暗号化検索要求用キーワード2005となる。また、暗号化代表元用キーワードは、無意味な平文2305が代表元用キーワードと公開鍵とで暗号化されたものである。その為、代表元用キーワードは検索要求用キーワード2000となる。エントリ用検索クエリ3006は、検索要求2001に含まれる検索要求用クエリ2002が保存されたものである。エントリ用暗号化情報3007は、複数の登録暗号化情報2302もしくは保管暗号化情報4002がエントリ3003に保存されたものである。もしくは、エントリ用暗号化情報3007は、データ保管部305における保管暗号化情報4002の識別子であっても良い。ここで、識別子とは、データの保管場所を示すアドレス情報であっても良いし、データの保管場所を示すリンクやポインタであっても良いし、データを特定可能なファイル名で有っても良い。
また、無意味な平文2305は、エントリ用代表元タグ3004が正しく復号されたかを検索処理部303が判断するのに用いられる。
【0050】
次いで、秘匿検索システム100のデータ検索処理の概要説明を行う。
図14は、データセンター301で実施される処理の概要を示したフローチャートである。
【0051】
まず、ステップS401において、データセンター301は、ユーザ端末201からネットワーク101を経由して送信される検索要求2001を、検索要求受信部302で受信する。
次に、ステップS402において、検索要求受信部302は、検索要求2001を検索処理部303に転送する。
次に、ステップS403において、検索処理部303は、インデックス分類部309により指定されたインデックス記憶部304のキーワード数別インデックス3002を参照する。そして、検索処理部303は、検索要求受信部302から転送された検索要求用クエリ2002に含まれるキーワードが、インデックス記憶部304に保存されているか検査する。
次に、ステップS404において、検索処理部303は、受信した検索要求2001のタグ暗号化検索要求用キーワード2005がインデックス記憶部304に存在した場合(該当あり)は、エントリ3003のエントリ用暗号化情報3007から該当する暗号化情報を読み出し、検索要求回答部307を介して、検索要求のあったユーザ端末201へ回答する。
また、ステップS405において、S403の検査で検索要求2001のタグ暗号化検索要求用キーワード2005がインデックス記憶部304に存在しなかった場合(該当なし)、検索処理部303は、データ保管部305を検索する。その際、検索処理部303は、インデックス検査S403で判定したエントリ用代表元タグ3004と同じ保管キーワードタグ4003を持つ保管データ4001を検索対象から除外する。
次に、ステップS406において、インデックス更新管理部306は、S405の検索の結果、検索要求2001に一致する登録データ2301がある場合(該当暗号化情報あり)、インデックス登録を行う。そして、S404において、検索処理部303は、該当する暗号化情報を読み出し、検索要求回答部307を介して、検索要求のあったユーザ端末201へ回答する。
S405において、データ保管部305にも、検索要求に該当するデータが存在しない場合(該当暗号化情報なし)、検索処理部303は、検索要求回答部307を介して、検索要求のあったユーザ端末201へ該当データが存在しない旨を回答する。
【0052】
そして、秘匿検索システム100のデータ検索処理の詳細説明を行う。
【0053】
まず図15を参照し、本実施の形態におけるインデックス検査S403を詳しく説明する。
図15は、検索処理部303におけるインデックス検査S403の動作を示すフローチャートである。
まず、ステップS501において、検索処理部303は、受信した検索要求2001をインデックス分類部309に入力する。インデックス分類部309は、検索要求2001の検索要求用クエリ2002に含まれるクエリ暗号化検索要求用キーワード2003の数に応じてキーワード数別インデックス3002の内、どのキーワード数別インデックスを検索するかを選択する。
次に、ステップS502において、検索処理部303は、インデックス分類部309が選択したキーワード数別インデックスから、未検査のエントリ3003があるかを検査する。
次に、ステップS503において、検索処理部303は、未検査のエントリが無い場合は、検索要求2001に該当するデータが存在しないため「該当なし」とし、保管データ全探索S405に進むため、インデックス検査S403を終了する。未検査のエントリがある場合、そこに保存されているエントリ用代表元タグ3004と検索要求2001における検索要求用クエリ2002とが一致するかを検査する。エントリ用代表元タグ3004と検索要求2001における検索要求用クエリ2002とが一致しなかった場合(不一致)、検索処理部303は、他の未検査のエントリ3003を検査するため、S502に戻る。
次に、ステップS504において、検索処理部303は、エントリ用代表元タグ3004と検索要求用クエリ2002とが一致した場合(一致)、エントリ用代表元タグ3004が対応するエントリ用暗号化情報3007を読み取る。そして、検索処理部303は、読み取ったエントリ用暗号化情報3007を検索要求回答部307に出力する。
なお、エントリ用暗号化情報3007に記憶されている情報が、保管暗号化情報4002の識別子である場合、検索処理部303は、識別子が示す保管暗号化情報4002をデータ保管部305から取り出す。そして、検索処理部303は、その保管暗号化情報4002を検索要求回答部307に出力する。(以下、エントリ用暗号化情報3007に記憶されている情報が、保管暗号化情報4002の識別子である場合の検索処理部303からの出力処理は同様である。そのため、以下、エントリ用暗号化情報3007に記憶されている情報が、保管暗号化情報4002の識別子である場合の説明を省略する)。
【0054】
次に図16を参照し、本実施の形態におけるインデックス登録S406を詳しく説明する。
図16は、インデックス更新管理部306におけるインデックス登録S406の動作を示すフローチャートである。
保管データ全探索S405において、データ保管部305から、検索要求2001に合致する検索結果(すなわち検索要求2001に合致する保管データ4001)が得られた場合に、検索処理部303は、保管データ4001に含まれる保管暗号化情報4002もしくは保管暗号化情報4002の識別子をエントリ用暗号化情報3007として、インデックス更新管理部306に転送する。また、検索処理部303は、登録データ2301に合致した検索要求2001もインデックス更新管理部306に転送する。
そして、ステップS601において、インデックス更新管理部306は検索処理部303から転送されたエントリ用暗号化情報3007と検索要求2001をインデックス分類部309に入力する。そして、インデックス分類部309は、検索要求2001に含まれる検索要求用クエリ2002のクエリ暗号化検索要求用キーワード2003の数に応じて、インデックス3001のキーワード数別インデックス3002のどこにエントリ用暗号化情報3007を登録するか決定する。
次に、ステップS602において、インデックス更新管理部306は、検索結果に対応した新規のエントリ3003を作成する。
次に、ステップS603において、インデックス更新管理部306は、作成したエントリのエントリ用代表元タグ3004には検索要求2001の検索要求用代表元タグ2004を設定する。
次に、ステップS604において、インデックス更新管理部306は、作成したエントリのエントリ用検索クエリ3006に検索要求2001の検索要求用クエリ2002を設定する。
次に、ステップS605において、インデックス更新管理部306は、作成したエントリのエントリ用暗号化情報3007を設定する。
なお、S603からS605までの処理は順不同である。
【0055】
次に図17を参照して、秘匿検索システム100のデータ新規登録処理の説明を行う。
図17は、ユーザが新規にデータをデータセンター301に登録する際の動作を示したフローチャートである。
まず、ステップS701において、登録データ受信部308が、ユーザ端末201から登録データ2301を受信すると、登録データ受信部308は、データ保管部305とインデックス更新管理部306とに登録データ2301を転送する。
次に、ステップS702において、インデックス更新管理部306は、登録データ2301の登録キーワードタグ2303と全てのキーワード数別インデックスに保存されたエントリ3003のエントリ用検索クエリ3006との一致判定を行う。(ここで、インデックス分類部309は、全てのキーワード数別インデックスとの照合を指定する)。
次に、ステップS703において、インデックス更新管理部306は、登録データ2301における登録キーワードタグ2303に一致するエントリ用検索クエリ3006を保存したエントリがある場合(一致)、該当する全てのエントリに登録暗号化情報2302をエントリ用暗号化情報3007として追加する。登録キーワードタグ2303とエントリ用検索クエリ3006とが一致しない場合(不一致)、インデックス更新管理部306は、インデックス3001の更新を行わない。
次に、ステップS704において、登録キーワードタグ2303とエントリ用検索クエリ3006とが一致/不一致に関わらず、データ保管部305は、登録データ受信部308から転送された登録データ2301を保管データ4001として保存する。保管データ4001は、保管キーワードタグ4003として保存された登録キーワードタグ2303と、保管暗号化情報4002として保存された登録暗号化情報2302とで構成される。
すなわち、登録キーワードタグ2303とエントリ用検索クエリ3006とが一致する場合は、登録暗号化情報2302は、インデックス記憶部304のエントリ3003とデータ保管部305との両方に保存される。
あるいは、図17のフローチャートには図示しないが、例えば、ユーザが登録暗号化情報2302をインデックス記憶部304とデータ保管部305との両方に保存する必要が無いと判断する場合が想定される。その場合には、インデックス更新管理部306は、ステップS704において登録データ受信部308が保存した保管暗号化情報4002の識別子をデータ保管部305から取得する。そして、インデックス更新管理部306は、登録暗号化情報2302の代わりに保管暗号化情報4002の識別子をエントリ用暗号化情報3007としてエントリ3003に保存することも出来る。
ユーザは例えば登録暗号化情報2302の容量が大きい場合は、保管暗号化情報4002の識別子をエントリ用暗号化情報3007として保存することが可能である。またユーザは例えば登録暗号化情報2302の容量が小さい場合は登録暗号化情報2302を保存するなどの選択が可能である。そして、ユーザは登録暗号化情報2302に応じて、保管暗号化情報4002の識別子と登録暗号化情報2302を混在してエントリ用暗号化情報3007として保存することが可能である。
【0056】
ここで、秘匿検索システム100のデータ新規登録処理及びデータ検索処理の具体例を示す。
図18は、登録データ2301と保管データ4001との具体例を示す図である。((a)は登録データ2301a、(b)は登録データ2301b、(c)は登録データ2301c、(d)は保管データ4001a、(e)は保管データ4001b、(f)は保管データ4001c)。ここで、登録データと保管データとに含まれる無意味な平文2305は図示を省略している。
図19は、検索要求2001の具体例を示す図である。((a)は検索要求2001a、(b)は検索要求2001b、(c)は検索要求2001c)。
図20は、ステップS405の保管データ全探索の動作を示す図である。
図21は、検索要求2001aに基づくインデックス登録の例を示す図である。
図22は、検索要求2001a〜cに基づくインデックス登録の例を示す図である。
図23は、検索要求2001a〜cに基づくエントリ登録の例を示す図である。((a)はエントリ3003a、(b)はエントリ3003b、(c)はエントリ3003c)。
図24は、登録データ2301dを示す図である。
図25は、登録データ2301dに含まれる登録暗号化情報がエントリに追加された例を示す図である。
図26は、検索要求2001の更なる具体例を示す図である。((a)は検索要求2001d、(b)は検索要求2001e)。
【0057】
まず、登録データの新規登録処理を説明する。
ここで、初期状態としては、秘匿検索システム100に保管データ4001が何も無い状態を想定する。
そして、登録データ受信部308は、図18に示す登録データ2301a〜cを受信したとする。そして、図17に示すステップS702においてエントリ用検索クエリ3006が何も無い状態なので、登録データ2301a〜cは、保管データ4001a〜cとしてデータ保管部305に保存される。
【0058】
そして、次に検索要求による検索処理を説明する。
検索要求受信部302は、図19(a)に示す検索要求2001aを受信したとする。図14のステップS403において、インデックス3001に何もデータが無い状態なので、検索処理部303は、図14のステップS405の保管データ全探索を行う。
図20に示すように、クエリ暗号化検索要求用キーワード2003a「エンジン」とクエリ暗号化検索要求用キーワード2003b「タイヤ」との両方に一致する保管キーワードタグ4003は、第1の保管データ4001aと第2の保管データ4001bとに存在する。
そこで、図16に示すステップS406内のステップS601において、インデックス分類部309は、検索要求2001aのクエリ暗号化検索要求用キーワード2003がクエリ暗号化検索要求用キーワード2003a「エンジン」とクエリ暗号化検索要求用キーワード2003b「タイヤ」の2つで有ることを認識する。
従って、図21に示すようにインデックス更新管理部306は、キーワード数別インデックス3002の内、2キーワードインデックスの箇所(例えば3002−2)に検索要求2001aに基づくエントリ3003bを登録する。すなわち、インデックス更新管理部306は、検索要求2001aの検索要求用代表元タグ2004をエントリ用代表元タグ3004としてエントリ3003bに保存する。さらに、インデックス更新管理部306は、検索要求2001aの検索要求用クエリ2002をエントリ用検索クエリ3006としてエントリ3003bに保存する。また、インデックス更新管理部306は、保管データ4001aの保管暗号化情報4002aもしくは保管暗号化情報4002aの識別子と、保管データ4001bの保管暗号化情報4002aもしくは保管暗号化情報4002aの識別子とをエントリ用暗号化情報3007bとして保存する。
【0059】
さらに検索要求受信部302は図19(b)に示す検索要求2001bと図19(c)に示す検索要求2001cとを受信したとする。その場合、インデックス更新管理部306は、同様の手順で図22に示すインデックス3001を形成する。そして、各エントリは、図23に示すエントリ3003a〜3003cの通りとなる。
【0060】
さらに追加登録データの登録処理について説明する。
図24に示す登録データ2301dを検索要求受信部302が受信したとする。そして、インデックス更新管理部306は、エントリ3003a〜3003cのエントリ用検索クエリ3006a〜3006cと登録データ2301dの登録キーワードタグ2303dが一致するかを検査する。そして、インデックス更新管理部306は、エントリ3003aのエントリ用検索クエリ3006aとエントリ3003bのエントリ用検索クエリ3006bとが登録データ2301dの登録キーワードタグ2303と一致すると判断する。インデックス更新管理部306は、登録データ2301dの登録暗号化情報2302d「自動車情報4」をエントリ3003aのエントリ用暗号化情報3007aとエントリ3003bのエントリ用暗号化情報3007bに追加する。(図25参照)。
【0061】
さらに追加検索要求による検索処理について説明する。
検索要求受信部302は、図26(a)に示す検索要求2001dを受信したとする。検索要求2001dのクエリ暗号化検索要求用キーワード2003の数は、2つである。その為に、図14のステップS403において、インデックス分類部309は、インデックス3001における2キーワード用インデックス(例えば3002b)の参照を決定する。そして、検索処理部303は、図25に示すエントリ3003bのエントリ用代表元タグ3004bと検索要求2001dの検索要求用クエリ2002dとが一致すると判断する。そして、検索処理部303は、検索結果として、図25に示すエントリ用暗号化情報3007dに記憶されている「自動車情報1」「自動車情報2」「自動車情報4」を検索要求回答部307に出力する。
【0062】
そして、検索要求受信部302は、図26(b)に示す検索要求2001eを受信したとする。
検索要求2001eのクエリ暗号化検索要求用キーワード2003の数は、1つである。その為に、図14のステップS403において、インデックス分類部309は、インデックス3001における1キーワード用インデックス(例えば3002a)の参照を決定する。そして、検索処理部303は、検索要求2001eの検索要求用クエリ2002eに一致するエントリが無いと判断する(図25参照)。その為、検索処理部303は、図14に示すステップS405の処理に移り、データ保管部305の検索を実施する。そして、検索処理部303は、データ保管部305に図18に示す保管データ4001cを見つけることが出来る。
ここで、仮にキーワード数別インデックス3002が存在しない場合を想定する。その場合、図25に示すエントリは混在することになる。そして、検索要求受信部302は、図26(b)に示す検索要求2001eを受信したとする。そして、図25に示すエントリ3003bのエントリ用代表元タグ3004bの暗号化登録キーワード2304は「タイヤ」が含まれている。すると、検索処理部303は、検索要求2001eの検索要求用クエリ2002eとエントリ3003bのエントリ用代表元タグ3004bとが一致すると判断する。そして、検索処理部303は、データ保管部305の保管データ4001cを検出出来ない。
【0063】
本実施の形態の秘匿検索システムは、ユーザが複数のキーワードを利用した検索を行うことが可能であり、ユーザの検索要求をより柔軟に表現できる。また、本実施の形態の秘匿検索システムは、複数のキーワード対応の検索履歴を用いた秘匿検索を誤一致や検索漏れなく実施することが出来、効率的な検索を実施出来る。
更に、本実施の形態の秘匿検索システムは、過去に検索した1つ以上のキーワードに対する検索結果をインデックスから必ず一意に特定できるため、誤った検索結果を出力することを防止する。
また、ユーザがデータを登録する際に、そのデータをインデックスに反映させることにより、秘匿検索システムがインデックスを利用して検索を高速化する際に、本実施の形態の秘匿検索システムは、検索漏れが発生しない。
また、1つのキーワードにつき1つのタグおよび検索クエリを生成する方式と比較し、本実施の形態の秘匿検索システムは、キーワードの増加による、タグおよび検索クエリの数の増加を低減し、かつ、キーワードの一致判定の回数を低減する。
【0064】
実施の形態2.
実施の形態1では、インデックス分類部309は、検索結果を保存するインデックスを暗号化検索要求用キーワード数ごとに分類していた。また、インデックスのエントリの検索要求用代表元タグ2004はユーザが指定していた。(ユーザは、検索要求2001を送信する際に検索要求用クエリ2002以外に検索要求用代表元タグ2004を送信していた)。
実施の形態2では、複数のキーワードを用いた検索要求において、ユーザが検索対象の登録キーワードの特定が可能な場合に、インデックスの暗号化検索要求用キーワード数ごとの分類や、ユーザによる検索要求用代表元タグの設定を不要とする秘匿検索システム100を示す。
【0065】
まず、図27を用いてフィールド番号を含んだ登録データ2301の構造を説明する。
図27は、フィールド番号を含んだ登録データ2301の構成の例を示す図である。
登録データ2301は、登録暗号化情報2302と登録キーワードタグ2303と無意味な平文2305と登録フィールド番号2404とから構成される。
登録暗号化情報2302と登録キーワードタグ2303は実施の形態1と同様であり、説明を省略する。
登録フィールド番号2404は平文であり、暗号化登録キーワード2304に対応している。すなわち、登録フィールド番号2404は登録キーワードタグ2303の属性を示すものである。図27に示す例では、暗号化登録キーワード「エンジン」は登録フィールド番号「1」、暗号化登録キーワード「タイヤ」は登録フィールド番号「2」、暗号化登録キーワード「ハンドル」は登録フィールド番号「3」と例えばユーザが定義している。
【0066】
次に図28を用いてフィールド番号を含んだ検索要求2001の構造を説明する。
図28は、フィールド番号を含んだ検索要求2001の構成の例を示す図である。
検索要求2001は、検索要求用クエリ2002と検索要求用フィールド番号2104から構成される。
検索要求用クエリ2002は実施の形態1と同様であり、説明を省略する。
検索要求用フィールド番号2104は、平文であり、検索要求用クエリ2002のクエリ暗号化検索要求用キーワード2003に対応している。すなわち、検索要求用フィールド番号2104は、検索要求用クエリ2002の属性を示すものである。また、検索要求用フィールド番号2104は、クエリ暗号化検索要求用キーワード2003がどの登録フィールド番号2404の暗号化登録キーワード2304を照合するかを示している。
すなわち、登録データとして図27の例が存在する場合では、図28に示すクエリ暗号化検索要求用キーワード「エンジン」は検索要求用フィールド番号が「1」であり、図27の登録フィールド番号「1」の暗号化登録キーワード「エンジン」を照合する。
【0067】
そして、図29を用いてフィールド番号を含んだインデックス記憶部304におけるインデックス3001の構造を説明する。
図29は、フィールド番号を含んだインデックス記憶部304に記憶される検索結果のデータ構造の一例を示す図である。
インデックス3001は、複数のエントリ3003で構成される。
そして、エントリ3003は、エントリ用代表元タグ3004、エントリ用検索クエリ3006、エントリ用暗号化情報3007、無意味な平文2305、エントリ用フィールド番号3105から構成される。
エントリ用代表元タグ3004は、1つ以上の暗号化代表元用キーワードで構成される。実施の形態2においては、エントリ用代表元タグ3004は、登録データ2301に含まれる登録キーワードタグ2303が保存されたものである。その為、暗号化代表元用キーワードは、暗号化登録キーワード2304となる。また、暗号化代表元用キーワードは、無意味な平文2305が代表元用キーワードと公開鍵とで暗号化されたものである。その為、代表元用キーワードは登録キーワード2300となる。
エントリ用検索クエリ3006、エントリ用暗号化情報3007、無意味な平文2305は、実施の形態1と同様である為説明を省略する。
エントリ用フィールド番号3105は、平文であり、エントリ用検索クエリ3006とエントリ用代表元タグ3004とに対応している。すなわち、エントリ用フィールド番号3105は、エントリ用検索クエリ3006とエントリ用代表元タグ3004との属性を示すものである。
【0068】
次いで、実施の形態2におけるフィールド番号を含んだ秘匿検索システム100のデータ検索処理の説明を行う。
実施の形態2におけるデータ検索処理の手順は、実施の形態1で説明した図14と同様である。
ここで、実施の形態1では、インデックス分類部309は、クエリ暗号化検索要求用キーワード2003の数に応じて、照合するキーワード数別インデックス3002を決定している。しかし、実施の形態2では、インデックス分類部309は、検索要求2001の検索要求用フィールド番号2104とエントリ3003のエントリ用フィールド番号3105とを照合する役割を担う。
そこで、図14において実施の形態1との相違点があるインデックス検査S403とインデックス登録S406の説明を行う。
【0069】
まず、図30を用いて実施の形態2におけるインデックス検査S403の説明を行う。
図30は、インデックス検査S403の手順を示したフローチャートである。
実施の形態1と同様に、ユーザから検索要求2001を受信したデータセンター301は、インデックス記憶部304から、検索要求2001に一致するエントリ3003を検索する。
まず、ステップS511において、検索処理部303は、インデックス3001に未検査のエントリ3003があるかを検査する。未検査のエントリが無い場合、検索要求に該当するデータが存在しないため検索処理部303は、「該当なし」と判断し、保管データ全探索S405に進むため、インデックス検査を終了する。
次に、ステップS512において、検索処理部303は、S511で未検査のエントリがある場合、検索要求用クエリ2002とエントリ用代表元タグ3004との一致検査を行う。
さらにインデックス分類部309は、検索要求用フィールド番号2104とエントリ用フィールド番号3105との一致検査を行う。
次に、ステップS513において、検索処理部303は、S513の一致検査の結果、一致する場合(一致)に該当エントリのエントリ用暗号化情報3007を検索要求回答部307に出力する。一致しない場合(不一致)は、他の未検査のエントリについて同様の検査を行う。
【0070】
次に図31を用いて実施の形態2におけるインデックス登録S406の説明を行う。
図31は、インデックス登録S406の手順を示したフローチャートである。
検索処理時、検索処理部303は、実施の形態1と同様にインデックス参照を実施した結果、検索要求に該当するエントリが見つからなかった場合、データ保管部305を検索する。
その結果、検索要求に該当する保管データ4001が存在する場合に、インデックス登録処理S406を行う。
まず、ステップS611において、インデックス更新管理部306は、インデックス記憶部304に保存するための新規エントリを作成する。
次に、ステップS612において、インデックス更新管理部306は、作成した新規エントリのエントリ用代表元タグ3004検索結果の保管キーワードタグ4003から選択し、設定する。
次に、ステップS613において、インデックス更新管理部306は、作成した新規エントリのエントリ用フィールド番号3105として、保管データ4001に含まれる登録フィールド番号2404を設定する。(実施の形態2における保管データ4001の例は、図示を省略しているが、実施の形態1と同じく、保管データ4001と登録データ2301は実質的に同一であり、登録フィールド番号2404が保管データ4001に含まれている)。
次に、ステップS614において、インデックス更新管理部306は、作成した新規エントリのエントリ用検索クエリ3006として検索要求用クエリ2002を保存する。この時に、インデックス更新管理部306は、エントリ用フィールド番号3105をエントリ用検索クエリ3006のクエリ暗号化検索要求用キーワード2003にも関連付けする。
次に、ステップS615において、インデックス更新管理部306は、作成した新規エントリのエントリ用暗号化情報3007に、検索結果の保管暗号化情報4002もしくは保管暗号化情報4002の識別子を保存する。
なお、S612からS615は順不同である。
【0071】
ユーザが新規にデータを登録する場合は、実施の形態1と同様に図17の手順で行う。保管データ4001は、実施の形態1と同様に登録データ2301と同じ構造のものである。従って、実施の形態2における保管データ4001は、図27に示すように、登録フィールド番号2404も含んでいる。
実施の形態2で説明しなかった部分については、実施の形態1と同様であるので省略する。
【0072】
ここで、図32を用いて、インデックス検査S403における一致検査の具体例を示す。
(前記の通り、インデックス登録S406における一致検査(保管データ4001と検索要求2001との一致検査)は、実施の形態1と同様の処理なので、説明を省略する)。
図32は、インデックス検査S403における一致検査の具体例を示す図である。((a)はエントリ3003の具体例、(b)は、検索要求2001a、(c)は、検索要求2001b、(d)は、検索要求2001c)。
まず、エントリ3003と検索要求2001aとを照合した場合、インデックス分類部309は、エントリ用フィールド番号3105と検索要求用フィールド番号2104aとが一致する為、エントリ3003と第1の検索要求2001aは一致と判断する。そして、検索処理部303は、エントリ用代表元タグ3004と検索要求用クエリ2002とが一致する為、最終的にエントリ3003と検索要求2001aは一致と判断する。
次に、エントリ3003と検索要求2001bとを照合した場合、インデックス分類部309は、エントリ用フィールド番号3105と検索要求用フィールド番号2104bとが一致しない為、エントリ3003と検索要求2001aは不一致と判断する。
そして、エントリ3003と検索要求2001cとを照合した場合、インデックス分類部309は、エントリ用フィールド番号3105と検索要求用フィールド番号2104cとが一致しない為、エントリ3003と検索要求2001cは不一致と判断する。
【0073】
実施の形態2によれば、実施の形態1の効果を奏するのに加えて、インデックスのエントリ用代表元タグは、検索結果の登録キーワードタグ2303を設定可能となる。従って、ユーザは、エントリ用代表元タグ3004用の検索要求用代表元タグ2004としてデータセンターに送らずに済む。そのため、ユーザ端末201とデータセンター301間の通信データ量を低減できるという効果がある。
また、データセンター301は、インデックス内を暗号化検索要求用キーワード数毎に分類しなくても良く、実施の形態1と比較してインデックスの管理の手間を削減できるという効果がある。
【0074】
実施の形態3.
実施の形態1、2では、複数のキーワードを利用した秘匿検索システムにおいて、データセンター301は、検索履歴から正確な検索結果を取得し、高速にユーザへ出力する。すなわち、実施の形態1、2は、インデックスの設定法に関する実施の形態である。実施の形態3は、複数のユーザが秘匿検索システムを利用する場合の、ユーザ毎のデータ保管とインデックス構築を行う実施形態を示す。
ここで複数のユーザとは、例えば企業における課、部などを指し、それぞれの範囲内でデータ登録およびデータ検索を行う。また、特定のユーザ間で共通のデータを検索する場合もあり、その場合を「グループ共有」と呼ぶ。
以下では、ユーザ1〜ユーザnのnユーザ(n≧1)が秘匿検索システムを利用しているものとする。また、ここでは、あるユーザの集合をユーザグループと呼ぶ。以下では、インデックス記憶部304とデータ保管部305をユーザ毎に管理する高速化手法を説明する。
【0075】
図33を用いて実施の形態3におけるデータ保管部305の構造を説明する。
図33は、データ保管部305の構造の一例を示す図である。
データ保管部305はデータ領域3051から構成される。(図中に3051−1〜3051−nで表記)。データ領域3051は複数のユーザ(ユーザ1〜ユーザn)用に割り当てられる。またグループ共有を行う場合は、データ保管部305はグループ用にデータ領域を割り当て、そこにデータを保管する。
データ登録時、データセンター301はデータ登録要求のあったユーザに対応するデータ領域に登録データを保管する。これを「ユーザデータ領域」と呼ぶ。グループ共有する場合は、データセンター301は「共通データ領域」としてデータ領域3051を割り当て、該当するデータを「共通データ領域」にデータを保存する。なお、共通データ領域は複数あってもよいので、ユーザは、グループ毎に共通データ領域を作成してもよい。
データ検索時、データセンター301は検索要求を送信したユーザのユーザデータ領域と、共通データ領域のみ参照する。このように、データセンター301は、データ保管部305の全探索時に、検索要求に関連のないユーザのデータを検索対象から除外することが可能となり、全探索にかかる時間を削減することができる。
【0076】
次に図34を用いて、実施の形態3におけるインデックス記憶部304に保存されるインデックスの構造を説明する。
図34は、インデックス記憶部304に保存されるインデックス3001の構造の一例を示す図である。
インデックス3001は、複数のサブインデックス3202から構成される。(図中に3202−1〜3202−nで表記)。サブインデックス3202内の構成は、例えば、実施の形態1、2のインデックス3001のようになる。つまり、インデックス3001はインデックス3001内に複数のインデックスを構築する構成である。
サブインデックスは、ユーザ毎に割り当てられ、ここでは「ユーザサブインデックス」と呼ぶ。また、グループ共有データのインデックス化のため、グループに対してサブインデックスを割り当てても良い。ここでは、グループに対するサブインデックスを「共通サブインデックス」と呼ぶ。
【0077】
ここで、実施の形態3における検索処理の説明を行う。
実施の形態3における検索処理の手順は実施の形態1で説明した図14と同様である。実施の形態1と同様に、ユーザから検索要求を受信したデータセンター301は、インデックス記憶部304から、検索要求に一致するエントリを検索する。
実施の形態1との相違点はインデックス検査S403の手順である。図35、図36を用いて、グループ共有の有無に応じた動作例を説明する。
図35は、グループ共有を行わない場合のインデックス検査S403の手順を示したフローチャートである。
図36は、グループ共有を行う場合のインデックス検査S403の手順を示したフローチャートである。
【0078】
まず、グループ共有しない場合を説明する。
グループ共有を行わない場合は、検索要求を送信したユーザに関連するユーザサブインデックスを検索対象として、検索処理部303は、インデックス検索を行う(図35参照)。
まず、ステップS801において、検索処理部303は、検索要求を送信したユーザのユーザサブインデックスを検索の対象として、検索要求に該当するエントリを検索する。
次に、ステップS802において、検索処理部303は、エントリの検索処理を行う。エントリの検索処理は実施の形態1の方法で有っても良いし、実施の形態2の方法で有っても良い。検索処理部303は、検索要求に該当するエントリが存在した場合(該当あり)、S803に進む。該当するエントリが存在しない場合(該当なし)、保管データ全探索S405に進むため、インデックス検査を終了する。
次に、ステップS803において、検索処理部303は、検索要求に該当するエントリに保存されているエントリ用暗号化情報3007を出力する。
【0079】
次に、グループ共有する場合を説明する。
グループ共有を行う場合は、共通サブインデックスと、検索要求を送信したユーザに関連するユーザサブインデックスを検索対象として、検索処理部303は、インデックス検索を行う(図36参照)。
まず、ステップS901において、検索処理部303は、検索要求を送信したユーザに関連する共通サブインデックスを検索対象として、検索要求に該当するエントリを検索する。
次に、ステップS902において、検索処理部303は、検索要求を送信したユーザのユーザサブインデックスを検索の対象として、検索要求に該当するエントリを検索する。
なお、S901、S902の検索の順序は逆でも良い。
次に、ステップS903において、検索処理部303は、S901とS902のエントリ探索の結果、該当するエントリが存在しない場合(該当なし)、保管データ全探索S405に進むため、インデックス検査を終了する。
次に、ステップS904において、検索処理部303は、S901とS902のエントリ探索の結果、検索要求に該当するエントリが存在した場合(該当あり)、該当エントリに保存されているエントリ用暗号化情報3007を出力する。
【0080】
以上のようにインデックス検査S403を実施した結果、検索要求に該当するエントリが見つからなかった場合、検索処理部303は、データ保管部305を検索する。その結果、検索要求に該当する保管データ4001が存在する場合に、検索処理部303は、インデックス登録処理S406を行う。
【0081】
次に、インデックス登録処理S406の説明を行う。インデックス登録処理S406は、グループ共有の有無により動作が異なる。以下、それぞれの場合について説明する。
【0082】
まず、グループ共有しない場合を説明する。
この場合、検索処理部303は、検索要求を送信したユーザのユーザサブインデックスに、検索結果を保存する。
【0083】
次に、グループ共有する場合を説明する。
グループ共有データ領域から検索された検索結果を、検索処理部303は、共通サブインデックスに保存する。そして、ユーザ用データ領域から検索された検索結果を、検索処理部303は、そのユーザに対応したユーザサブインデックスに保存する。
【0084】
さらに、実施の形態3におけるデータ登録処理の説明を行う。
【0085】
まず、グループ共有しない場合を説明する。
この場合、データ保管部305は、登録データをユーザ用データ領域に保存する。
【0086】
次に、グループ共有する場合を説明する。
この場合、ユーザ端末201は、登録データ2301と共に登録データ2301が、グループ共有データなのかユーザ専用データなのかをデータセンター301に通知する。
データセンター301は、登録データ2301がグループ共有データの場合は共通データ領域に保存し、登録データ2301がユーザ専用データの場合はユーザデータ領域に保存する。
【0087】
実施の形態3で説明しなかった部分については、実施の形態1、2と同様であるので省略する。
【0088】
実施の形態3によれば、実施の形態1、2の効果を奏するのに加えて、複数ユーザ対応の秘匿検索システムは、インデックスの検索範囲を限定出来る。その為、秘匿検索システムは、インデックス検索に要する時間を低減するという効果がある。
また、秘匿検索システムは、データ保管部305の全探索の際に、検索者に関連のあるデータのみを検索対象とするため、全探索に要する時間を低減する、という効果がある。
【0089】
以上、実施の形態1から実施の形態3にわたり、複数キーワード対応の検索履歴を用いた秘匿検索システムを開示したが、これは、暗号化情報のキーワード検索に限らない。任意のデータに対応した検索のためのキーデータ(検索キー)であれば、本実施の形態1〜3は、応用可能なことは明らかである。すなわち、本実施の形態1〜3によれば、データを暗号化したままで複数の検索キーを用いた検索を高速に実施することができる。したがって、本実施の形態1〜3は、画像検索、動画検索、音声検索などへの応用が可能である。
【0090】
既に、説明したように、本実施の形態1〜3に示す秘匿検索システム100は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータである。
そして、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【0091】
100 秘匿検索システム、101 ネットワーク、201 ユーザ端末、202 情報・鍵格納領域、203 暗号化情報管理部、204 ユーザインターフェース、205 検索要求用クエリ生成部、206 タグ生成部、207 通信モジュール、301 データセンター、302 検索要求受信部、305 データ保管部、306 インデックス更新管理部、308 登録データ受信部、901 表示装置、902 キーボード、903 マウス、904 FDD、905 コンパクトディスク装置、906 プリンタ装置、907 スキャナ装置、910 システムユニット、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 磁気ディスク装置、921 オペレーティングシステム、922 ウィンドウシステム、923 プログラム群、924 ファイル群、931 電話器、932 ファクシミリ機、941 ゲートウェイ、942 ローカルエリアネットワーク、2000 検索要求用キーワード、2001 検索要求、2002 検索要求用クエリ、2003 クエリ暗号化検索要求用キーワード、2004 検索要求用代表元タグ、2005 タグ暗号化検索要求用キーワード、2104 検索要求用フィールド番号、2300 登録キーワード、2301 登録データ、2302 登録暗号化情報、2303 登録キーワードタグ、2304 暗号化登録キーワード、2305 無意味な平文、2404 登録フィールド番号、3001 インデックス、3002 キーワード数別インデックス、3003 エントリ、3004 エントリ用代表元タグ、3006 エントリ用検索クエリ、3007 エントリ用暗号化情報、3105 エントリ用フィールド番号、3051 データ領域、3202 サブインデックス、4001 保管データ、4002 保管暗号化情報、4003 保管キーワードタグ。

【特許請求の範囲】
【請求項1】
1つ以上のクエリ暗号化検索要求用キーワードを有するエントリ用検索クエリと前記エントリ用検索クエリが有する属性と1つ以上の暗号化代表元用キーワードを有するエントリ用代表元タグとを対応させて記憶するインデックス記憶部と、
登録暗号化情報と前記登録暗号化情報に対応する1つ以上の暗号化登録キーワードを有する登録キーワードタグとを受信する登録データ受信部と、
前記インデックス記憶部に記憶された前記エントリ用検索クエリと前記登録データ受信部が受信した前記登録キーワードタグとを照合し、前記エントリ用検索クエリと前記登録キーワードタグとが対応する場合に、前記登録データ受信部が受信した前記登録暗号化情報が前記インデックス記憶部に記憶された前記エントリ用検索クエリに対応する前記登録暗号化情報であると判定して、前記インデックス記憶部において前記登録暗号化情報を前記エントリ用検索クエリに関連付けるインデックス更新管理部と、
1つ以上のクエリ暗号化検索要求用キーワードを有する検索要求用クエリを受信する検索要求受信部と、
前記検索要求受信部が受信した検索要求用クエリから前記検索要求用クエリが有する属性を検出するインデックス分類部と、
前記インデックス記憶部に記憶された前記エントリ用代表元タグと前記検索要求受信部が受信した前記検索要求用クエリとを照合し、前記エントリ用代表元タグと前記検索要求用クエリとが対応する場合で、かつ前記インデックス記憶部に記憶された前記エントリ用検索クエリが有する属性と前記インデックス分類部が検出した検索要求用クエリが有する属性とを照合し、前記エントリ用検索クエリが有する属性と前記検索要求用クエリが有する属性とが対応する場合に、前記エントリ用代表元タグに関連付けられた前記登録用情報を出力する検索処理部と
を備えたことを特徴とする情報検索装置。
【請求項2】
前記インデックス更新管理部は、前記エントリ用検索クエリと前記登録キーワードタグとが対応する場合に、前記登録データ受信部が受信した前記登録暗号化情報を前記インデックス記憶部に記憶することを特徴とした請求項1記載の情報検索装置。
【請求項3】
前記情報検索装置は、さらに
登録暗号化情報を記憶するデータ保管部
を備え、
前記登録データ受信部は、受信した登録暗号化情報を前記データ保管部に記憶し、
前記インデックス更新管理部は、前記エントリ用検索クエリと前記登録キーワードタグとが対応する場合に、前記登録キーワードタグとともに受信した登録暗号化情報であって前記データ保管部に記憶された登録暗号化情報の識別子を前記インデックス記憶部に記憶することを特徴とした請求項1又は2記載の情報検索装置。
【請求項4】
前記データ保管部は、さらに前記登録暗号化情報に対応する登録キーワードタグを記憶し、
前記検索処理部は、前記データ保管部が記憶した登録キーワードタグと前記検索要求受信部が受信した前記検索要求用クエリとを照合し、前記データ保管部が記憶した登録キーワードタグと前記検索要求用クエリとが対応する場合に前記データ保管部が記憶した登録キーワードタグに対応する登録暗号化情報もしくは前記データ保管部が記憶した登録暗号化情報の識別子を前記インデックス記憶部に記憶することを特徴とした請求項3記載の情報検索装置。
【請求項5】
前記インデックス記憶部は、クエリ暗号化検索要求用キーワードの数を属性として、クエリ暗号化検索要求用キーワードの数毎にキーワード数別インデックスを記憶し、前記キーワード数別インデックスの各々は、クエリ暗号化検索要求用キーワードと暗号化代表元用キーワードの数が同じ数のエントリ用検索クエリとエントリ用代表元タグとの組を一つ以上記憶し、
前記インデックス分類部は、前記検索要求用クエリが有する属性として前記検索要求用クエリが有するクエリ暗号化検索要求用キーワードの数を検出し、
前記インデックス更新管理部は、前記インデックス分類部が検出したクエリ暗号化検索要求用キーワードの数に応じて、該当するキーワード数別インデックスに、前記登録暗号化情報と前記エントリ用代表元タグとの関連付けを記憶することを特徴とする請求項1〜4いずれか記載の情報検索装置。
【請求項6】
前記インデックス記憶部は、前記暗号化登録キーワードの登録フィールド番号を属性として、前記暗号化登録キーワードの登録フィールド番号とクエリ暗号化検索要求用キーワードとの対応関係を記述したエントリを記憶し、前記エントリの各々は、検索要求用フィールド番号とクエリ暗号化検索要求用キーワードとの対応関係とともに、エントリ用代表元タグを記憶し、
前記検索要求受信部は、クエリ暗号化検索要求用キーワードと前記クエリ暗号化検索要求用キーワードの検索要求用フィールド番号を有する検索要求用クエリを受信し、
前記インデックス分類部は、前記検索要求用クエリが有する属性として前記検索要求用クエリが有するクエリ暗号化検索要求用キーワードの検索要求用フィールド番号を一つ以上検出し、
前記インデックス更新管理部は、前記インデックス分類部が検出した一つ以上のクエリ暗号化検索要求用キーワードの検索要求用フィールド番号に対応するエントリに、前記登録暗号化情報と前記エントリ用代表元タグとの関連付けを記憶することを特徴とする請求項1〜4いずれか記載の情報検索装置。
【請求項7】
前記検索処理部は、前記エントリ用検索クエリが有する属性と前記検索要求用クエリが有する属性とを照合し、前記エントリ用検索クエリが有する属性と前記検索要求用クエリが有する属性とが一致する場合に、前記エントリ用検索クエリが有する属性と前記検索要求用クエリが有する属性とが対応すると判断することを特徴とする請求項1〜6いずれか記載の情報検索装置。
【請求項8】
前記登録データ受信部は、平文の登録キーワードXと公開鍵とで暗号化された暗号化登録キーワードCXを一つ以上含む登録キーワードタグを受信し、
前記インデックス記憶部は、平文の検索要求用キーワードYがユーザ秘密鍵で暗号化されたクエリ暗号化検索要求用キーワードCYを含む前記エントリ用検索クエリを記憶し、
前記インデックス更新管理部は、前記暗号化登録キーワードCXに対応した任意の平文Zが、前記登録キーワードタグの各暗号化登録キーワードCXを前記エントリ用検索クエリの各クエリ暗号化検索要求用キーワードCYで復号処理して前記任意の平文Zが復号されるか否かにより前記登録キーワードタグと前記エントリ用検索クエリとを照合し、前記エントリ用検索クエリが含む全てのクエリ暗号化検索要求用キーワードCYで前記任意の平文Zが復号出来る場合に、前記登録キーワードタグと前記エントリ用検索クエリとが対応すると判断することを特徴とする請求項5記載の情報検索装置。
【請求項9】
前記登録データ受信部は、平文の登録キーワードXと公開鍵とで暗号化された暗号化登録キーワードCXと前記暗号化登録キーワードCXに対応した登録フィールド番号とをそれぞれ一つ以上含む登録キーワードタグを受信し、
前記インデックス記憶部は、平文の検索要求用キーワードYがユーザ秘密鍵で暗号化されたクエリ暗号化検索要求用キーワードCYと前記クエリ暗号化検索要求用キーワードCYに対応した検索要求用フィールド番号とを含む前記エントリ用検索クエリを記憶し、
前記インデックス更新管理部は、前記暗号化登録キーワードCXに対応した任意の平文Zが、前記登録キーワードタグの各暗号化登録キーワードCXを前記エントリ用検索クエリの各クエリ暗号化検索要求用キーワードCYで復号処理して前記任意の平文Zが復号されるか否かにより前記登録キーワードタグと前記エントリ用検索クエリとを照合し、かつ、
前記インデックス分類部は、前記暗号化登録キーワードCXに対応する登録フィールド番号と前記クエリ暗号化検索要求用キーワードCYに対応する検索要求用フィールド番号とを比較し、
前記インデックス更新管理部は、前記エントリ用検索クエリが含む全てのクエリ暗号化検索要求用キーワードCYで前記任意の平文Zが復号出来て、かつ、前記暗号化登録キーワードCXに対応する登録フィールド番号と前記クエリ暗号化検索要求用キーワードCYに対応する検索要求用フィールド番号とが一致する場合に、前記登録キーワードタグと前記エントリ用検索クエリとが対応すると判断することを特徴とする請求項5記載の情報検索装置。
【請求項10】
前記登録データ受信部は、平文の検索要求用キーワードYがユーザ秘密鍵で暗号化されたクエリ暗号化検索要求用キーワードCYを一つ以上含む前記検索要求用クエリを受信し、
前記インデックス記憶部は、平文の代表元用キーワードWと公開鍵とで暗号化された暗号化代表元用キーワードCWを一つ以上含む前記エントリ代表元タグを前記暗号化代表元用キーワードCWの数毎に関連付けられた前記キーワード数別インデックス毎に記憶し、
前記検索処理部は、前記暗号化代表元用キーワードCWに対応した任意の平文Zが、前記エントリ代表元タグの各暗号化代表元用キーワードCWを前記検索要求用クエリの各クエリ暗号化検索要求用キーワードCYで復号処理して前記任意の平文Zが復号されるか否かにより前記エントリ代表元タグと前記検索要求用クエリとを照合し、前記検索要求用クエリが含む全てのクエリ暗号化検索要求用キーワードCYで前記任意の平文Zが復号出来る場合に、前記登録キーワードタグと前記エントリ用検索クエリとが対応すると判断することを特徴とする請求項6記載の情報検索装置。
【請求項11】
前記登録データ受信部は、平文の検索要求用キーワードYがユーザ秘密鍵で暗号化されたクエリ暗号化検索要求用キーワードCYと前記クエリ暗号化検索要求用キーワードCYに対応した検索要求用フィールド番号とをそれぞれ一つ以上含む前記検索要求用クエリを受信し、
前記インデックス記憶部は、平文の代表元用キーワードWと公開鍵とで暗号化された暗号化代表元用キーワードCWと前記暗号化代表元用キーワードCWに対応したエントリ用フィールド番号とをそれぞれ一つ以上含む前記エントリ代表元タグを前記暗号化代表元用キーワードCWの数毎に関連付けられた前記キーワード数別インデックス毎に記憶し、
前記検索処理部は、前記暗号化代表元用キーワードCWに対応した任意の平文Zが、前記エントリ代表元タグの各暗号化代表元用キーワードCWを前記検索要求用クエリの各クエリ暗号化検索要求用キーワードCYで復号処理して前記任意の平文Zが復号されるか否かにより前記エントリ代表元タグと前記検索要求用クエリとを照合し、かつ、
前記インデックス分類部は、前記クエリ暗号化検索要求用キーワードCYに対応する検索要求用フィールド番号と前記暗号化代表元用キーワードCWに対応するエントリ用フィールド番号とを比較し、
前記検索処理部は、前記検索要求用クエリが含む全てのクエリ暗号化検索要求用キーワードCYで前記任意の平文Zが復号出来て、かつ、前記クエリ暗号化検索要求用キーワードCYに対応する検索要求用フィールド番号と前記暗号化代表元用キーワードCWに対応するエントリ用フィールド番号とが一致する場合に、前記登録キーワードタグと前記エントリ用検索クエリとが対応すると判断することを特徴とする請求項6記載の情報検索装置。
【請求項12】
前記インデックス記憶部は、複数のユーザにそれぞれ対応する複数の記憶領域を有することを特徴とする請求項1〜11いずれか記載の情報検索装置。
【請求項13】
1つ以上のクエリ暗号化検索要求用キーワードを有するエントリ用検索クエリと前記エントリ用検索クエリが有する属性と1つ以上の暗号化代表元用キーワードを有するエントリ用代表元タグとを対応させて記憶するインデックス記憶ステップと、
登録暗号化情報と前記登録暗号化情報に対応する1つ以上の暗号化登録キーワードを有する登録キーワードタグとを受信する登録データ受信ステップと、
前記インデックス記憶部に記憶された前記エントリ用検索クエリと前記登録データ受信部が受信した前記登録キーワードタグとを照合し、前記エントリ用検索クエリと前記登録キーワードタグとが対応する場合に、前記登録データ受信部が受信した前記登録暗号化情報が前記インデックス記憶部に記憶された前記エントリ用検索クエリに対応する前記登録暗号化情報であると判定して、前記インデックス記憶部において前記登録暗号化情報を前記エントリ用検索クエリに関連付けるインデックス更新管理ステップと、
1つ以上のクエリ暗号化検索要求用キーワードを有する検索要求用クエリを受信する検索要求受信ステップと、
前記検索要求受信部が受信した検索要求用クエリから前記検索要求用クエリが有する属性を検出するインデックス分類ステップと、
前記インデックス記憶部に記憶された前記エントリ用代表元タグと前記検索要求受信部が受信した前記検索要求用クエリとを照合し、前記エントリ用代表元タグと前記検索要求用クエリとが対応する場合で、かつ前記インデックス記憶部に記憶された前記エントリ用検索クエリが有する属性と前記インデックス分類部が検出した検索要求用クエリが有する属性とを照合し、前記エントリ用検索クエリが有する属性と前記検索要求用クエリが有する属性とが対応する場合に、前記エントリ用代表元タグに関連付けられた前記登録用情報を出力する検索処理ステップと
を備えることを特徴とする情報検索方法。
【請求項14】
コンピュータを、請求項1〜12いずれか記載の情報検索装置として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate


【公開番号】特開2012−83863(P2012−83863A)
【公開日】平成24年4月26日(2012.4.26)
【国際特許分類】
【出願番号】特願2010−227906(P2010−227906)
【出願日】平成22年10月7日(2010.10.7)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】