説明

データ検索システム、情報処理装置、データ検索方法、及び、プログラム。

【課題】プライバシ機能を強化した、データ検索システム、情報処理装置、データ検索方法及びプログラムを提供する。
【解決手段】データ検索システム100において、データ検索装置101は、データベースのデータのインデックスを利用者用端末103に公開する。利用者用端末103は、利用者によって選択されたインデックスに基づいて暗号化鍵・復号化鍵、インデックス削除鍵を生成する。データ検索装置101は、暗号化鍵に基づいて、データベースのデータを暗号化し、暗号化データを中間サーバ102に送信する。複数台の中間サーバ102は、協働して暗号化データをインデックス削除鍵に基づいて削除する。最終的に、利用者用端末103には、利用者が選択したデータのみ転送される。利用者用端末103は、暗号化データを復号化する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ検索システム、情報処理装置、データ検索方法、及び、プログラムに関する。
【背景技術】
【0002】
近年、様々なデータが電子化されるようになっている。その電子化されたデータはデータベースに蓄積され、管理される。
また、これらの電子化されたデータをネットワークを介して不特定多数の人や組織に提供するシステムが多く利用されるようになった。例えば、新薬開発などへの利用を目的に、医療・診療情報をデータベースに蓄積しておき、これを外部に提供するといったシステムがある。このシステムの利用者は、データベースに蓄積されたデータの中から所望のデータを検索し、閲覧することができる。
【0003】
そして、このようなデータの中には、プライバシ情報が含まれる場合も多い。例えば、新薬を開発している企業(システムの利用者)は、データベースのデータを検索した検索内容が、他の競合する企業等に知られた場合、大きな不利益を被る可能性がある。このような不利益を考慮すると、データベースのデータを検索した検索内容は、プライバシ情報として秘匿されなければならない。
【0004】
そこで、検索内容(プライバシ情報)を秘匿しながら、所望のデータを外部に提供するデータ検索システムが要求されるようになった。例えば、特許文献1には、データベース内のデータを秘匿化(暗号化)し、秘匿化(暗号化)したデータを外部に提供する方法(SPIR(Symmetrically Private Information Retrieval))が開示されている。具体的には、データ検索システムは、利用者用端末等を用いてシステムの利用者によって入力された検索内容を暗号化し、暗号化した検索内容に従って、データベースにアクセスする。また、データ検索システムは、データベースに格納された全てのデータを暗号化し、暗号化したデータを利用者に提供するために、利用者用端末等へ送信する。さらに、データ検索システムは、送信したデータのうち、検索内容に対応したデータのみを復号する。
【特許文献1】特開2003−29633号公報
【0005】
現在の計算機では、検索内容以外の復号鍵を持たない暗号化データを解読することは、計算機の処理速度が遅いために非常に困難であると考えられている。そのため、特許文献1に開示されるデータ検索システムは、データベースに格納された全ての暗号化データを利用者用端末等へ送信したとしても、プライバシ情報を秘匿するのに十分なシステムとされている。
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、従来のデータ検索システムは、将来的には計算機の処理速度の向上等により、検索内容以外の復号鍵を持たない暗号化データが解読される可能性が高くなり、プライバシが侵害される虞がある。
【0007】
本発明は、上記実状に鑑みてなされたものであり、プライバシの侵害を防御するためのプライバシ保護機能を強化したデータ検索システム、情報処理装置、データ検索方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するため、本発明の第1の観点に係るデータ検索システムは、第1の情報処理装置と、第2の情報処理装置と、第3の情報処理装置と、から構成されるデータ検索システムであって、
前記第1の情報処理装置は、
情報を記憶するデータベースと、
前記データベースに記憶されている情報のインデックスを前記第2の情報処理装置に公開するインデックス公開手段と、
を備え、
前記第2の情報処理装置は、
前記インデックスを取得し、取得したインデックスの少なくとも一部に対応する暗号鍵及び復号鍵を生成する暗号鍵・復号鍵生成手段と、
前記第3の情報処理装置が前記情報を削除するために必要な削除鍵を生成する削除鍵生成手段と、
前記暗号鍵・復号鍵生成手段が生成した暗号鍵を前記第1の情報処理装置に送信する暗号鍵送信手段と、
前記削除鍵生成手段が生成した削除鍵を前記第2の情報処理装置に送信する削除鍵送信手段と、
を備え、
前記第1の情報処理装置は、さらに、
前記暗号鍵送信手段が送信した暗号鍵を受信し、受信した暗号鍵に基づいて、前記データベースに記憶される情報を暗号化する暗号化手段と、
前記暗号化手段が暗号化した暗号化情報を前記第3の情報処理装置に送信する暗号化情報送信手段と、
を備え、
前記第3の情報処理装置は、
前記暗号化情報送信手段が送信した暗号化情報を受信する暗号化情報受信手段と、
前記削除鍵送信手段が送信した削除鍵を受信する削除鍵受信手段と、
前記削除鍵受信手段が受信した削除鍵に基づいて、前記暗号化情報受信手段が受信した暗号化情報の所定数の情報を削除する情報削除手段と、
前記情報削除手段が情報を削除した後、削除されずに残った情報の順序を入れ替える情報順序入れ替え手段と、
前記情報順序入れ替え手段が入れ替えた情報を前記第2の情報処理装置に送信する入れ替え情報送信手段と、
を備え、
前記第2の情報処置装置は、さらに、
前記入れ替え情報送信手段が送信した情報を受信し、前記暗号鍵・復号鍵生成手段が生成した復号鍵に基づいて、受信した前記情報を復号化する復号化手段と、
を備える、
ことを特徴とする。
【0009】
また、前記データ検索システムにおいて、
前記第3の情報処理装置は、複数の装置から構成され、
前記情報順序入れ替え手段が情報を入れ替えた後、前記情報の残数が前記暗号鍵・復号鍵生成手段が取得したインデックスの少なくとも一部に対応するインデックス数と等しいか否かを判別する残数判別手段と、
前記残数判別手段が、前記情報の残数が前記インデックス数と等しいと判別した場合、前記情報順序入れ替え手段が入れ替えた情報を前記第2の情報処理装置に送信し、前記残数判別手段が、前記情報の残数が前記インデックス数と等しくないと判別した場合、前記情報順序入れ替え手段が入れ替えた情報を別の前記第3の情報処理装置に送信する第2の入れ替え情報送信手段と、
を備えることを特徴とするようにしてもよい。
【0010】
上記目的を達成するため、本発明の第2の観点に係る情報処理装置は
暗号化された暗号化情報を削除するために必要な削除鍵を記憶する削除鍵記憶手段と、
前記削除鍵記憶手段が記憶する削除鍵に基づいて、前記暗号化情報の所定数の情報を削除する暗号化情報削除手段と、
前記暗号化情報削除手段が情報を削除した後、削除されずに残った情報の順序を入れ替える情報順序入れ替え手段と、
を備えることを特徴とする。
【0011】
上記目的を達成するため、本発明の第3の観点に係るデータ検索方法は、
暗号化された暗号化情報を削除するために必要な削除鍵を記憶する削除鍵記憶ステップと、
前記削除鍵記憶ステップで記憶した削除鍵に基づいて、前記暗号化情報の所定数の情報を削除する暗号化情報削除ステップと、
前記暗号化情報削除ステップで情報を削除した後、削除されずに残った情報の順序を入れ替える情報順序入れ替えステップと、
を備えることを特徴とする。
【0012】
上記目的を達成するため、本発明の第4の観点に係るプログラムは、
コンピュータに、
暗号化された暗号化情報を削除するために必要な削除鍵を記憶する削除鍵記憶手順と、
前記削除鍵記憶手順で記憶した削除鍵に基づいて、前記暗号化情報の所定数の情報を削除する暗号化情報削除手順と、
前記暗号化情報削除手順で情報を削除した後、削除されずに残った情報の順序を入れ替える情報順序入れ替え手順と、
を実行させる。
【発明の効果】
【0013】
本発明のシステムによれば、プライバシの侵害を防御するためのプライバシ保護機能を強化して、データベースに蓄積したデータから所望のデータを検索することができる。
【発明を実施するための最良の形態】
【0014】
以下、本発明の実施形態に係るデータ検索システム100を説明する。
【0015】
本実施形態に係るデータ検索システム100は、図1に示すように、データ検索装置101と、複数台の中間サーバ102と、利用者用端末103と、から構成される。また、中間サーバ102は、単一のサーバで構成してもよい。データ検索装置101、各中間サーバ102、利用者用端末103は、それぞれネットワーク104を介して接続される。このような構成からなるデータ検索システム100は、データ検索装置101内のデータベースに格納されたデータのうち、利用者用端末103からの要求に応じた所望のデータを利用者に提供するシステムである。
【0016】
ここで、ネットワーク104は、一般的な通信手段を用いることが可能である。本実施形態において、一般的に使用されているTCP/IP(トランスミッション・コントロール・プロトコル/インターネット・プロトコル)が使用される。なお、他のプロトコルが使用されてもよい。また、ネットワーク104は、ローカル・エリア・ネットワークでも、ワイド・エリア・ネットワークでもよい。バーチャル・プライベート・ネットワーク(VPN)やワイヤレス接続のような通信手段も同じように使用可能である。
【0017】
データ検索装置101は、図2(A)に示すように、制御部201、RAM(Random Access Memory)202、ROM(Read Only Memory)203、データベース204、通信部205及びシステムバス206を含む。データ検索装置101は、データベース204にデータを格納し、通信部205を介して、利用者用端末103からの要求に応じてデータを利用者用端末103へ送信する装置である。
なお、データ検索装置101は、病院やオフィス内に配置されることはもちろん、ネットワーク104を介して利用者用端末103等に接続できればどこに配置されてもよい。
【0018】
データベース204は、利用者用端末103に送信するデータを格納するデータベースであり、例えば、図3に示すように、データを識別するためのインデックス番号(例えば、数字、等)、データ種別(例えば、性別、年齢、等)、データ内容(例えば、病歴、等)等を対応づけて記憶する。
【0019】
制御部201は、CPU(Central Processing Unit)等の演算処理装置から構成され、データ検索装置101の全体の制御を行う。また、制御部201は、ROM203に格納されるプログラムを読み出して、プログラムに基づいて所定の処理を実行する。例えばデータベース204に格納されたデータを暗号化する処理を行う。制御部201が実行する処理の詳細については後述する。
【0020】
RAM202は、制御部201が所定の処理(例えば、暗号化処理、等)を実行するために読み出したプログラムや、制御部201が当該プログラムを実行するために必要なデータを格納する揮発性メモリである。
【0021】
ROM203は、制御部201が所定の処理を実行するためのプログラム等を予め格納する不揮発性メモリである。制御部201は、ROM203から必要に応じてプログラム等を読み出して、RAM202に展開し、当該プログラム等に基づいて所定の処理を実行する。具体的には、ROM203に格納するプログラムは、図2(B)に示すように、データを暗号化するデータ暗号化プログラム210、暗号化データを送信するための送信プログラム211等である。
【0022】
データ暗号化プログラム210は、データベース204のインデックス(公開データ)及びデータ内容をそれぞれ暗号化するためのプログラムである。暗号化の具体的な処理については、後述する。
【0023】
送信プログラム211は、データ暗号化プログラム210で暗号化したデータを、中間サーバ(1)102へ送信するためのプログラムである。具体的な処理については、後述する。
【0024】
通信部205は、NIC(Network Interface Card)等から構成され、ネットワーク104に接続するためのインタフェースを備え、ネットワーク104との間で、TCP/IPプロトコルに基づく通信を行う。通信部205は、例えば、モデム装置や赤外線通信装置等を含んでいてもよい。
【0025】
システムバス206は、制御部201、RAM202、ROM203、データベース204及び通信部205の間で命令やデータを転送するための伝送経路である。
【0026】
このように、データ検索装置101は、一般的に普及しているコンピュータ等を用いて構成することができる。
【0027】
次に、図1に示すネットワーク104に接続される中間サーバ102について説明する。中間サーバ102は、複数台(例えば、N台)で構成される。
各中間サーバ102に、例えば、所定のIPアドレスを割り振り、データ検索装置101及び各中間サーバ102は、IPアドレスを指定して所望の中間サーバ102にネットワーク104を介してアクセスする。
具体的には、中間サーバ(1)201にIPアドレス:192.168.0.1、中間サーバ(2)201にIPアドレス:192.168.0.2、…、中間サーバ(N)201にIPアドレス:192.168.0.N等といった静的アドレスを割り当てる。データ検索装置101及び各中間サーバ102は、この静的アドレスを指定して送信先の中間サーバ102を決定し、順次、暗号化データを転送する。また、各中間サーバ102は、暗号化データに対して、削除・シャッフル処理を施してから、それらデータを転送する。削除・シャッフル処理等の具体的な内容の詳細については後述する。
また、各中間サーバ102に、静的なIPアドレスを割り当てる必要はなく、DNS(Domain Name Sever)やDHCP(Dynamic Host Configuration Protocol)サーバ等を協働して利用し、動的なIPアドレスを割り当てるようにしてもよい。
【0028】
各中間サーバ102は、それぞれ同様の構成からなり、図4(A)に示すように、制御部401、RAM(Random Access Memory)402、ROM(Read Only Memory)403、記憶部404、通信部405及びシステムバス406を含む。
【0029】
制御部401は、CPU(Central Processing Unit)等の演算処理装置から構成され、中間サーバ102の全体の制御を行う。また、制御部401は、ROM403に格納されるプログラムを読み出して、プログラムに基づいて所定の処理を実行する。例えば、記憶部404に格納された暗号化データに対して削除・シャッフル処理、転送処理等を行う。
【0030】
RAM402は、制御部401が所定の処理(例えば、削除・シャッフル処理、転送処理等)を実行するために読み出したプログラムや、制御部401が当該プログラムを実行するために必要なデータを格納する揮発性メモリである。
【0031】
ROM403は、制御部401が所定の処理を実行するためのプログラム等を予め格納する不揮発性メモリである。制御部401は、ROM403から必要に応じてプログラム等を読み出して、RAM402に展開し、当該プログラム等に基づいて所定の処理を実行する。具体的には、ROM403に格納するプログラムは、図4(B)に示すように、所定の暗号化データを削除して、シャッフルする削除・シャッフルプログラム410、暗号化データを転送するための転送プログラム411等である。また、ROM403は、ネットワーク104に接続される装置が共通に利用するパラメータ(プログラム)である公開用共通パラメータ412等も格納する。
【0032】
削除・シャッフルプログラム410は、受信した暗号化データのうち、削除対象となるデータをインデックスから検索し、該当するデータを削除するためのプログラムである。また、削除対象のデータを削除した後、残ったデータをシャッフルするためのプログラムである。具体的な処理については、後述する。
【0033】
転送プログラム411は、削除・シャッフルプログラム410によって処理されたデータの転送先を決定し、決定した転送先にデータを転送するためのプログラムである。具体的な処理については、後述する。
【0034】
公開用共通パラメータ412は、後述する各処理で用いられる双線型写像e:(G1×G1→G2)を生成するためプログラムを含む。ここで、G1、G2は、位数q(qは1以上の整数)を持つ巡回群を表す。なお、qは十分に大きい素数であることが望ましい。また、公開用共通パラメータ412は、ハッシュ関数Hにより任意のビット列を巡回群G1のサイズのデータ(例えば、疑似乱数等)を生成するためのプログラムを含む。さらに、公開用共通パラメータ412は、巡回群G1の任意の元Pを含む。また、公開用共通パラメータ412は、暗号化関数によりデータベース204のデータを暗号化するためのプログラムや、復号化関数により暗号化されたデータを復号化するためのプログラムを含む。
これらの公開用共通パラメータ412は、データ検索装置101、中間サーバ102、利用者用端末103で共通して用いられる共通パラメータ(共通プログラム)であり、必要に応じて提供される公開情報である。
【0035】
記憶部404は、ハードディスクドライブ等の記憶装置から構成され、データ検索装置101や他の中間サーバ102から送信された暗号化データを格納する。また、記憶部404は、制御部401がROM403等に格納されたプログラムに従って処理を行った結果として得られるデータを所定の場所に格納する。また、記憶部404は、中間サーバ102に固有のデータや鍵(中間サーバの番号j、中間サーバ固有の値r_j、中間サーバ公開鍵r_jP、中間サーバ公開情報R_j)等も記憶する。
【0036】
通信部405は、NIC(Network Interface Card)等から構成され、ネットワーク104に接続するためのインタフェースを備え、ネットワーク104との間で、TCP/IPプロトコルに基づく通信を行う。転送プログラム411に従って指定したIPアドレスを持つ他の中間サーバ102や、利用者用端末103と通信を行う。
また、通信部405は、例えば、モデム装置や赤外線通信装置等を含んでいてもよい。
【0037】
システムバス406は、制御部401、RAM402、ROM403、記憶部404及び通信部405の間で命令やデータを転送するための伝送経路である。
【0038】
このように、中間サーバ102は、一般的に普及しているコンピュータ等を用いて構成することができる。
【0039】
次に、図1に示すネットワーク104に接続される利用者用端末103について説明する。利用者用端末103は、図5(A)に示すように、制御部501、RAM(Random Access Memory)502、ROM(Read Only Memory)503、記憶部504、通信部505、表示部506、入力部507及びシステムバス508を含む。利用者用端末103は、データ検索システム100を利用する利用者がデータ検索装置101への指示入力等を行う端末である。利用者用端末103は、データ検索装置101のデータベース204に格納されたデータの中から所望のデータを取り込み、そのデータのデータ内容を表示部506に表示する。
なお、利用者用端末103は、病院やオフィス、家庭内に配置されることはもちろん、ネットワーク104を介して利用者用端末103等に接続できればどこに配置されてもよい。
【0040】
制御部501は、CPU(Central Processing Unit)等の演算処理装置から構成され、利用者用端末103の全体の制御を行う。また、制御部501は、ROM503に格納されるプログラムを読み出して、プログラムに基づいて所定の処理を実行する。例えば、データ検索装置101から送信された暗号化データを復号化する処理や、復号化したデータを表示部506に表示する処理を行う。制御部501が実行する処理の詳細については後述する。
【0041】
RAM502は、制御部501が所定の処理(例えば、鍵生成処理、復号化処理、表示処理、等)を実行するために読み出したプログラムや、制御部501が当該プログラムを実行するために必要なデータを格納する揮発性メモリである。
【0042】
ROM503は、制御部501が所定の処理を実行するためのプログラム等を予め格納する不揮発性メモリである。制御部501は、ROM503から必要に応じてプログラム等を読み出して、RAM502に展開し、当該プログラム等に基づいて所定の処理を実行する。具体的には、ROM503に格納するプログラムは、図5(B)に示すように、暗号化・復号化等に用いる所定の鍵を生成するための鍵生成プログラム510、データ検索装置101から送信された暗号化データを復号化するデータ復号化プログラム511、復号化したデータのデータ内容を表示するための表示プログラム512等である。
【0043】
鍵生成プログラム510は、例えば、Query(暗号化鍵)、復号化鍵、中間サーバ暗号化鍵、中間サーバ復号化鍵、インデックス削除鍵等を生成するためのプログラムである。Query(暗号化鍵)は、データベース204内のデータを暗号化するための暗号化鍵である。復号化鍵は、Query(暗号化鍵)で暗号化されたデータを復号化するための復号化鍵である。中間サーバ暗号化鍵は、中間サーバのサーバ番号(例えば、1〜N、等)を暗号化するための暗号化鍵である。中間サーバ復号化鍵は、中間サーバ暗号化鍵で暗号化されたサーバ番号を復号化するための復号化鍵である。インデックス削除鍵は、中間サーバ102に転送された暗号化データのうち、削除対象のデータを検索するための鍵である。
【0044】
データ復号化プログラム511は、利用者が選択した所望の暗号化データを復号化するためのプログラムである。具体的な処理については、後述する。
【0045】
表示プログラム512は、利用者が操作するために必要な文字列や画像を表示したり、データベース204のデータから検索した検索結果(データ内容)を表示するためのプログラムである。
【0046】
記憶部504は、ハードディスクドライブ等の記憶装置から構成され、中間サーバ102から送信された暗号化データを格納する。また、記憶部504は、制御部501がROM503等に格納されたプログラムに従って処理を行った結果として得られるデータを所定の場所に格納する。例えば、鍵生成プログラム510で生成された各種鍵等(例えば、利用者を特定するための利用者秘密鍵User_secret、利用者公開鍵U_pub、等)を記憶する。
【0047】
通信部505は、NIC(Network Interface Card)等から構成され、ネットワーク104に接続するためのインタフェースを備え、ネットワーク104との間で、TCP/IPプロトコルに基づく通信を行う。
また、通信部505は、例えば、モデム装置や赤外線通信装置等を含んでいてもよい。
【0048】
表示部506は、LCD(Liquid Crystal Display)等の出力装置から構成される。利用者は、LCDに表示される画像や文字列等を見ることによって、データ検索装置101から送信されたデータのデータ内容を知ることができる。ここで、LCDは、ドットマトリクスタイプの表示素子であり、任意の文字、記号、数字、図形を表示する。
【0049】
入力部507は、キーボード、マウス等の入力装置から構成される。これら入力装置を用いて利用者によって入力されるデータを受け付けて、入力されたデータを制御部501に供給する。
【0050】
システムバス508は、制御部501、RAM502、ROM503、記憶部504、通信部505、表示部506及び入力部507の間で命令やデータを転送するための伝送経路である。
【0051】
このように、中間サーバ102は、一般的に普及しているコンピュータ等を用いて構成することができる。
【0052】
(データ検索システムの全体の動作)
次に、本実施の形態に係るデータ検索システム100のシステム全体の大まかな動作について、図6、図7を参照して説明する。
【0053】
図6のシーケンス図に示すように、まず、データ検索システム100のセットアップとして、データ検索装置101は、ROM203に格納した公開用共通パラメータ412を公開する(ステップS1)。この公開用共通パラメータ412の公開により、データ検索装置101、中間サーバ102、利用者用端末103のどの計算機も、公開用共通パラメータ412を利用できる。
【0054】
データ検索装置101は、図3に示すデータベース204のデータから公開用データを利用者用端末103に公開する(ステップS2)。
【0055】
利用者用端末103は、図7(A)に示すように、ステップS2で公開された公開用データの選択画面を表示部506に表示し、利用者に選択させる。
このとき、利用者用端末103は、kアウトオブn(k out of n)紛失通信(Oblivious Transfer)方式によって、データ検索装置101と通信を開始する。kアウトオブn紛失通信方式による通信において、利用者が選択したデータがどれかを、データ検索装置101側に知られることはない。また、利用者は、選択したk個のデータ以外のデータ内容を入手することはできない。
利用者用端末103は、選択されたk個のデータに対応するQueryを生成し、その生成したQueryを暗号化したQeury(暗号化鍵)を生成する(ステップS3)。次に、利用者端末103は、生成したQuery(暗号化鍵)をデータ検索装置101に送信する(ステップS4)。ここで、Query(暗号化鍵)は、データ検索装置101側に、利用者が選択したデータがどれかを知られないようにするために、利用者に選択されたインデックスに対して所定の演算を施して暗号化した暗号化鍵である。また、利用者用端末103は、Query(暗号化鍵)を生成する前に、暗号化鍵で暗号化したデータを復号化するための復号化鍵も生成しておく。
【0056】
さらに、利用者用端末103は、中間サーバ復号化鍵、中間サーバ暗号化鍵、インデックス削除鍵を生成し(ステップS5)、生成したインデックス削除鍵を中間サーバ102に送信する(ステップS6)。
【0057】
Query(暗号化鍵)を受信したデータ検索装置101は、このQuery(暗号化鍵)に基づいて、図3に示すデータベース204内の全てのデータ内容を暗号化する(ステップS7)。さらに、データ検索装置101は、図3に示すデータベース204内の全てのインデックス(公開用データ)を、公開用共通パラメータ412(公開情報)を用いて暗号化する(ステップS8)。
【0058】
データ検索装置101は、ステップS7とステップS8でそれぞれ暗号化したデータ内容とインデックスとを対にしたまま、これらをランダムにシャッフルする(ステップS9)。そして、データ検索装置101は、ROM203に格納された送信プログラム211に従って、暗号化したデータを中間サーバ(1)102に送信する(ステップS10)。
【0059】
暗号化されたデータを受信した中間サーバ(1)102は、受信したデータの中から、所定の条件を満たす削除対象の暗号化されたインデックスを検索する(ステップS11)。中間サーバ(1)102は、ステップS11で検索した結果に基づいて、所定の条件を満たす削除対象の暗号化されたインデックスに付属するデータを削除する(ステップS12)。
【0060】
このとき、中間サーバ(1)102は、全ての中間サーバ102で削除した総データ数をカウントするために、中間サーバ(1)102で削除したデータ数を記憶部404に記憶する(ステップS13)。
【0061】
さらに、中間サーバ(1)102は、ステップS11で検索した結果、削除対象ではなかった各インデックスを、再度、暗号化する(ステップS14)。その後、中間サーバ(1)102は、残ったデータを、ランダムにシャッフルする(ステップS15)。
【0062】
次に、中間サーバ(1)102は、シャッフルしたデータを中間サーバ(2)102に転送し(ステップS16)、データを受信した中間サーバ(2)102は、ステップS11からステップS15までの処理を受信したデータに対して実行する。
【0063】
以上のステップS11からステップS16までの処理が、全ての中間サーバ102(中間サーバ(1)、中間サーバ(2)、…、中間サーバ(N))で実行されるまで、順次、データを転送していく。
【0064】
最後の中間サーバ(N)102は、ステップS15を実行した後、データを利用者用端末103に送信する(ステップS17)。
【0065】
データを受信した利用者用端末103は、受信したデータを、予め作成しておいた復号化鍵で復号し(ステップS18)、図7(B)に示すように、復号化したデータ内容を表示部506に表示する。
【0066】
以上の一連の処理を実行するデータ検索システム100は、暗号化したデータを各中間サーバ102で削除・シャッフルし、利用者用端末103へは、利用者が選択した所望のデータだけを転送する。これにより、従来のように、利用者用端末103へ利用者が選択したデータ以外のデータを転送することはないため、プライバシ保護機能は強化される。
【0067】
以下に、図6のシーケンス図で説明した各処理について、より具体的に説明する。
【0068】
(鍵生成処理)
まず、利用者用端末103の制御部501が、ROM503に格納される鍵生成プログラム510に従って各種鍵を生成する「鍵生成処理」(図6のステップS3〜ステップS6に対応)について、図8のフローチャートを参照して説明する。
【0069】
鍵生成処理で生成する鍵は、復号化鍵、Query(暗号化鍵)、中間サーバ暗号化鍵、中間サーバ復号化鍵、インデックス削除鍵である。
【0070】
鍵生成処理は、入力部507に配置されるキー或いはマウスボタンの押下による入力割り込みによって開始される。制御部501は、例えば、暗号化方式としてよく知られるElGamal暗号方式の復号化鍵を生成する(ステップS101)。具体的には、制御部501は、素数pおよび乗法群Z_pでの原始元gを生成する。それに対して、x∈Z_p−1を満たす整数xを計算し、このxを復号鍵とする。
【0071】
次に、制御部501は、ステップS101で生成した復号化鍵に対する暗号化鍵を生成する(ステップS102)。具体的には、制御部501は、y=g^x mod pを生成する。そして、利用者がi番目のインデックスを選択した場合、(p,g,y−i)をQuery(暗号化鍵)とする。
【0072】
このQuery(暗号化鍵)は、データ検索装置101側に、利用者が選択したデータがどれかを知られずに対応するデータ内容を得ることを目的とする。加えて、このQuery(暗号化鍵)は、利用者が、選択したデータ以外のデータを取得できないように、選択したデータ数がわかるようにすることを目的とする。この目的を達成できれば、生成する暗号化鍵は、任意の暗号化鍵でよい。
【0073】
制御部501は、ステップS102で生成したQuery(暗号化鍵)を、通信部505を介して、データ検索装置101に送信する(ステップS103)。
【0074】
次に、制御部501は、各中間サーバの処理負担を軽減するために、各中間サーバ102が図6のステップS11で検索するインデックス数をなるべく均等になるように設定する。具体的には、全インデックス数を中間サーバ数Nで除算した値、若しくは、その値に1加算した値にする。
【0075】
さらに、制御部501は、各中間サーバ102を特定する値(若しくは、名前)を復号化するための数1に示す復号化鍵s_jを生成する(ステップS104)。ただし、jはサーバ番号、Nは中間サーバ数。
【数1】

【0076】
また、制御部501は、各中間サーバ102を特定する値(若しくは、名前)を暗号化するための中間サーバ暗号化鍵S_jを生成する(ステップS105)。具体的には、中間サーバ復号化鍵s_jと、中間サーバ102に記憶される公開情報G1上の任意の元Pとを取得して、数2を用いて中間サーバ暗号化鍵S_jを生成する。すなわち、中間サーバ暗号化鍵S_jは、中間サーバ復号化鍵s_jと、公開情報G1上の任意の元Pと、の論理積により生成される。
ここで、ステップS104、ステップS105で生成した中間サーバ復号化鍵、中間サーバ暗号化鍵は、ともに公開されない秘密の値である。
【数2】

【0077】
さらに、制御部501は、各中間サーバ102が図6のステップS11、ステップS12で削除対象の暗号化データを検索・削除するときに必要となるインデックス削除鍵Search_jを生成する(ステップS106)。具体的には、利用者秘密鍵User_secret、中間サーバ復号鍵s_jと、中間サーバ102に記憶される公開情報G1であるハッシュ関数H及び双線型写像eと、中間サーバ102が所有する公開情報R_jと、中間サーバ固有の値r_jとから、数3を用いてインデックス削除鍵を生成する。
【数3】

【0078】
一般に、ハッシュ関数Hは不可逆な一方向関数であり、得られたハッシュ値からは元データを生成することができない。そのため、通信の暗号化やデジタル署名などの分野で広く用いられている。なお、本発明は、ハッシュ関数Hの具体的な数式(あるいは論理式等)を定めるものではない。また、ハッシュ関数Hは、似た情報から近いハッシュ値が得られず、値域に偏りがなく、異なる情報から同じハッシュ値が容易に生成されないように定義されることが望ましい。
【0079】
次に、制御部501は、ステップS106で生成したインデックス削除鍵を、通信部505を介して、各中間サーバ102に送信し(ステップS107)、鍵生成処理を終了する。
【0080】
なお、上述の各種鍵を生成するための各数式等は1つの例であり、これに限定されるものではなく種々の変形が可能である。
【0081】
(暗号化処理)
次に、データ検索装置101の制御部201が、ROM203に格納されるデータ暗号化プログラム210に従って、データベース204のインデックス(公開データ)及びデータ内容を暗号化する「暗号化処理」(図6のステップS7〜ステップS9に対応)について、図9のフローチャートを参照して説明する。
【0082】
暗号化処理は、図6のステップS4で、制御部201が、Query(暗号化鍵)を受信することよって開始される。
【0083】
制御部201は、まず、利用者に選択されなかったデータのインデックスを暗号化するためのダミー鍵を生成しておく。ダミー鍵の生成には、ダミー鍵に対応する復号鍵を容易に作成できないように、例えば、離散対数問題等を利用する。
【0084】
次に、制御部201は、受信したQuery(暗号化鍵)及び、生成したダミー鍵を用いて、データベース204に格納してあるデータ内容を暗号化する(ステップS201)。具体的には、制御部201は、中間サーバ102が公開した公開用共通パラメータ412に含まれる暗号化関数により、データベース204に格納してあるデータ内容を暗号化する。例えば、制御部201は、受信したQuery(p,g,y−i)から、全てのインデックスINDEXに対して暗号化鍵y−i+INDEXを計算する。また、乱数r∈Z_p−1を生成する。これらを用いて、データベース204のデータ内容をElGamal暗号化方式を用いて暗号化する。
【0085】
以上の暗号化により、データ内容を対応する復号鍵なしで、復号することは困難となる。また、ダミー鍵を設けて、全てのデータ内容を暗号化することで、データ検索装置101側から、利用者がどのデータを閲覧しようとしているのか知ることはできない。
【0086】
上述の暗号化関数は1つの例であり、これに限定されるものではなく種々の変形が可能である。
【0087】
次に、制御部201は、ステップS201で行った暗号化とは別に、データベース204のインデックス(公開情報)を暗号化する(ステップS202)。具体的には、制御部201は、中間サーバ102に記憶される公開情報であるハッシュ関数H及び双線型写像eとを取得し、中間サーバ102が公開する公開情報R_j、利用者用端末103が所有する中間サーバ暗号鍵S_j及び利用者公開鍵U_pud、データベース204のインデックスを用いて、数4に示す数式でインデックス(公開情報)を暗号化する。
【数4】

【0088】
ステップS201、ステップS202にあるように、データ内容とインデックスを別にして暗号化することにより、インデックスとデータ内容を結合したまま暗号化する手法と比較して、セキュリティをより強化した暗号化方式となる。
【0089】
さらに、制御部201は、データベース204に格納される順序を、ランダムに入れ替える(ステップS203)。例えば、制御部201は、一様乱数等を用いて各データにデータ順序を表す番号を割り振ればよい。これにより、ステップS202で暗号化されたインデックスを復号化しない限り、データベース204に格納された順序を知ることはできない。順序を知られないようにすることは、不正にデータを取得しようとする人等が、必要なデータを効率よく取得することができないようにする意図が含まれる。
続いて、制御部201は、暗号化処理を終了し、ROM203に格納される送信プログラム211に従って、暗号化したデータを中間サーバ102へ送信する処理に移行する。
【0090】
なお、上述の暗号化のための数式や手法等は1つの例であり、これに限定されるものではなく種々の変形が可能である。
【0091】
(削除・シャッフル処理)
次に、各中間サーバ102の制御部401が、ROM403に格納される削除・シャッフルプログラム410に従って、他の中間サーバ102から転送された暗号化データを、削除・シャッフルする「削除・シャッフル処理」(図6のステップS11〜ステップS17に対応)について、図10のフローチャートを参照して説明する。
【0092】
削除・シャッフル処理は、図6のステップS10で、制御部401が、暗号化データを受信することよって開始される。
【0093】
制御部401は、先に図6のステップS6で利用者用端末103から受信したインデックス削除鍵Search_jに基づいて、データ検索装置101から受信した暗号化インデックスE_INDEXの中から、削除対象のインデックスを検索する(ステップS301)。具体的には、制御部401は、数3で表すインデックス削除鍵Search_jと、中間サーバ公開鍵r_jPとを双線型写像eにより写像したビット列のハッシュ値HKと一致する暗号化インデックスE_INDEXを検索する。ここでのハッシュ値HKを数5に表す。また、中間サーバ公開鍵r_jPは、制御部401が、記憶部404に記憶される公開情報G1上の任意の元Pと、中間サーバ固有の値r_jとし、Pのr_j倍の演算により生成される。
【数5】

【0094】
ハッシュ値HKは、各中間サーバ102において、削除対象のデータを特定するための条件値となる。また、暗号化インデックスE_INDEX、インデックス削除鍵Search_jは、ともに暗号化されているので、各中間サーバ102は、インデックスに関して何の情報も得ることができず、利用者のプライバシを保護する。
【0095】
制御部401は、データ検索装置101から受信した全ての暗号化インデックスE_INDEXについて、上述したハッシュ値HKと一致するか否かを判別していく。ここで、制御部401は、全ての暗号化インデックスE_INDEXが、ハッシュ値HKと一致しないと判別した場合(ステップS302;No)、データ検索装置101から受信した暗号化データを削除せずに、ステップS305の処理に移行させる。
【0096】
一方、制御部401は、暗号化インデックスE_INDEXの中に、ハッシュ値HKと一致するインデックスが有ると判別した場合(ステップS302;Yes)、一致したインデックスと、そのインデックスに結合したデータ内容を削除する(ステップS303)。
【0097】
また、制御部401は、削除した暗号化インデックスの数Delを記憶部404に記憶する(ステップS304)。各中間サーバ102で登録したこの削除数Delの値は、例えば、一つの中間サーバ102で集計される。
【0098】
次に、制御部401は、ステップS303で削除したデータ以外のデータのインデックス、すなわち、記憶部404に残っているインデックスを、再度、暗号化する(ステップS305)。具体的には、制御部401は、削除・シャッフルプログラム410に従って、中間サーバ102に記憶される公開情報であるハッシュ関数H及び双線型写像eとを取得する。そして、中間サーバ102が公開する公開情報R_j、利用者用端末103が所有する中間サーバ暗号鍵S_j及び利用者公開鍵U_pud、各暗号化インデックスを用いて、数6に示す数式でインデックス(公開情報)を暗号化する。
【数6】

【0099】
ここでの暗号化において、各中間サーバ102は、他の中間サーバ102で暗号化されたインデックスに基づいて、インデックスを暗号化する。そして、数6で暗号化されたインデックスでなければ、ステップS301で、適切に、削除対象のインデックスを検索することができない仕組みになっている。
【0100】
次に、制御部401は、暗号化データの記憶部404に記憶される順序を、ランダムに入れ替える(ステップ306)。例えば、制御部401は、一様乱数等を用いて各データにデータ順序を表す番号を割り振ればよい。
【0101】
続いて、制御部401は、各中間サーバ102のステップS304で集計してきた暗号化データの削除数Delを参照し、最後の中間サーバ(N)102であるか否かを判別する(ステップS307)。制御部401は、最後の中間サーバ(N)102ではないと判別した場合(ステップS307;No)、ROM403に格納される転送プログラム411に従って、IPアドレスを参照して、j+1番目の中間サーバ(j+1)102に、残っている暗号化データを転送する(ステップS308)。
【0102】
以上のステップS301からステップS308の処理を、各中間サーバ102が実行することにより、利用者に選択されなかったデータを各中間サーバ102で削除していく。そして、最後の中間サーバ(N)102には、利用者に選択されたデータだけが残る。
【0103】
一方、ステップS307で、制御部401は、最後の中間サーバ102であると判別した場合(ステップS307;Yes)、ROM403に格納される転送プログラム411に従って、残っている暗号化データを、通信部405を介して利用者用端末103に転送する(ステップS309)。その後、制御部401は、削除・シャッフル処理を終了する。
【0104】
なお、上述の暗号化のための数式等は1つの例であり、これに限定されるものではなく種々の変形が可能である。
【0105】
(復号化処理)
次に、利用者用端末103の制御部501が、ROM503に格納されるデータ復号化プログラム511に従って、中間サーバ(N)102から転送された暗号化データを復号化する「復号化処理」(図6のステップS18に対応)について、図11のフローチャートを参照して説明する。
【0106】
復号化処理は、図6のステップS18で、制御部501が、暗号化データを受信することよって開始される。
【0107】
制御部501は、上述した鍵生成処理で生成した復号鍵(d,n)を用いて、受信した暗号化データを復号化する(ステップS401)。具体的には、制御部501は、中間サーバ102が公開した公開用共通パラメータ412に含まる復号化関数により、受信した暗号化データを復号化する。例えば、制御部501は、中間サーバ102からハッシュ関数Hを取得し、暗号化に用いた乱数R_DB、別の乱数r、i(インデックス、又は、データ内容)を連結した値のハッシュ値HBを求める。そして、このハッシュ値HBと暗号化処理で求めた排他的論理和Eとの排他的論理和を求めることで、データを復号化する。
【0108】
上述したデータの暗号化・復号化に用いる鍵や、暗号化関数・復号化関数は、将来開発されるものも含めて任意のものでよい。
【0109】
次に、制御部501は、ROM503に格納される表示プログラム512に従って、表示部506に、図7(B)に示すような、検索結果を表示させる(ステップS402)。
その後、制御部501は、復号化処理を終了する。
【0110】
このように、本実施形態のデータ検索システム100によれば、プライバシの侵害を防御するためのプライバシ保護機能を強化して、データベースに蓄積したデータから所望のデータを検索できる効果が得られる。
【0111】
すなわち、データ検索装置101のデータベース204に格納されるデータのうち、インデックスとデータ内容とを、それぞれ別個に暗号化するため、データ間の関係性が秘匿され、データベース204のプライバシの保護は強化される。
【0112】
そして、暗号化データは、データ検索装置101と、利用者用端末103の間に配置された複数の中間サーバ102によって、暗号化データのシャッフルが繰り返されるために、中間サーバ102で暗号データが解読されても、利用者の選択したデータがどれであるか特定することは困難である。
【0113】
また、中間サーバ102によって、暗号化インデックスに基づいた削除が繰り返されるために、利用者用端末103に転送される暗号化データは、利用者が選択したデータに制限される。これにより、計算機の処理能力が向上して、利用者が選択したデータ以外のデータ内容が他人に知られてしまうようなプライバシの侵害を防ぐ効果がある。
【0114】
さらに、中間サーバ102において、削除対象のデータは、インデックス削除鍵に基づいて削除され、インデックスも暗号化されている。これにより、中間サーバ102から、インデックスに関する情報を得ることはできないため、利用者のプライバシの保護は強化される。
【0115】
この発明は上記実施の形態に限定されず、種々の変形及び応用が可能である。
【0116】
例えば、鍵生成処理で生成される各種鍵(暗号化鍵、復号化鍵、インデックス削除鍵)に有効期限を設定し、この有効期限内の場合にのみ、この各種鍵を用いた復号化ができるように構成することもできる。
この場合、例えば、利用者用端末103の制御部501は、暗号化鍵、復号化鍵、インデックス削除鍵に有効期限を含めて生成する。利用者用端末103の制御部501は、復号化処理を開始するときに有効期限が過ぎていれば復号を許可しないようにすればよい。
これにより、生成した各種鍵が本来の所有者の意に反して流出した場合でも、有効期限を過ぎていれば復号化ができないようにすることができ、データベースのデータや利用者が選択した情報の機密性を強化することができる。
【0117】
また、例えば、中間サーバ102に記憶される公開用共通パラメータ412を、定期的に変更するように構成することもできる。
この場合、中間サーバ102の制御部401は、所定のタイミング(例えば、1週間など)で、ハッシュ関数H、双線型写像e及び公開情報G1のうちの一部又は全部を設定し直せばよい。また、データ検索装置101、中間サーバ102及び利用者用端末103は、上述の各処理を開始するときに逐次これらの公開用共通パラメータ412のセットを取り込み直して用いればよい。あるいは、制御部401は、公開用共通パラメータ412を設定し直したタイミングで、データ検索装置101、中間サーバ102及び利用者用端末103に公開用共通パラメータ412が再設定された旨の通知を行って、公開用共通パラメータ412の再取得を促す(あるいは自動的に取得する)ようにすればよい。
これにより、データ検索システム100内でのデータの機密性を強化することができる。
【0118】
上記実施形態では、各中間サーバ102が削除する暗号化データの数は均等になるようにしていた。しかしながら、これに限定されず、処理能力の高い中間サーバ102に、多くの暗号化データを削除させるようにしてもよい。
【0119】
また、上記実施形態では、暗号化データを転送する中間サーバ102の順番については述べなかった。暗号化データは、各中間サーバ102間で、削除しながら転送されていくので、中間サーバ102が処理しなければならないデータ数はしだいに減少していく。そこで、暗号化データを転送する中間サーバ102の順番を、処理能力の高い中間サーバ102が最初にくるようにしてもよい。
【0120】
さらに、上記実施形態では、中間サーバ102が複数台(N台)の場合について説明したが、中間サーバ102は、1台であってもよい。中間サーバ102が1台の場合、1台の中間サーバ102が上述した削除・シャッフル処理を一度実施するか、複数回実施すればよい。
【0121】
また、上記実施形態では、公開用共通パラメータ412は中間サーバ102の記憶部404に格納していた。しかしながら、これに限定されず、公開用共通パラメータ412を、ネットワーク104に接続された他のサーバ等に格納して、公開するようにしてもよい。
【0122】
上記実施形態では、プログラムがROM203、ROM403及びROM503等に予め記憶されているものとして説明した。しかし、データ検索装置101、中間サーバ102、利用者用端末103を、各々の全部又は一部として動作させ、あるいは、上述の処理を実行させるためのプログラムを、メモリカード、CD−ROM(Compact Disc Read-Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto Optical disk)などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
【0123】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【図面の簡単な説明】
【0124】
【図1】本実施形態に係るデータ検索システムの構成を説明するための図である。
【図2】データ検索装置の構成を説明するためのブロック図である。
【図3】データ検索装置のデータベースに記憶される情報の例を示す図である。
【図4】中間サーバの構成を説明するためのブロック図である。
【図5】利用者用端末の構成を説明するためのブロック図である。
【図6】本実施形態に係るデータ検索システムの全体の動作を説明するための図である。
【図7】(A)はデータ選択画面の表示例を示す図である。(B)は検索結果の表示例を示す図である。
【図8】データ選択による割り込み入力によって開始する鍵生成処理を説明するためのフローチャートである。
【図9】暗号化鍵を受信することによって開始する暗号化処理を説明するためのフローチャートである。
【図10】暗号化データを受信することによって開始する削除・シャッフル処理を説明するためのフローチャートである。
【図11】暗号化データを受信することによって開始する復号化処理を説明するためのフローチャートである。
【符号の説明】
【0125】
100 データ検索システム
101 データ検索装置
102 中間サーバ
103 利用者用端末
104 ネットワーク
201 制御部(データ検索装置)
203 ROM(データ検索装置)
204 データベース
210 データ暗号化プログラム
401 制御部(中間サーバ)
403 ROM(中間サーバ)
410 削除・シャッフルプログラム
412 公開用共通パラメータ
501 制御部(利用者用端末)
503 ROM(利用者用端末)
506 表示部
507 入力部
510 鍵生成プログラム
511 データ復号化プログラム

【特許請求の範囲】
【請求項1】
第1の情報処理装置と、第2の情報処理装置と、第3の情報処理装置と、から構成されるデータ検索システムであって、
前記第1の情報処理装置は、
情報を記憶するデータベースと、
前記データベースに記憶されている情報のインデックスを前記第2の情報処理装置に公開するインデックス公開手段と、
を備え、
前記第2の情報処理装置は、
前記インデックスを取得し、取得したインデックスの少なくとも一部に対応する暗号鍵及び復号鍵を生成する暗号鍵・復号鍵生成手段と、
前記第3の情報処理装置が前記情報を削除するために必要な削除鍵を生成する削除鍵生成手段と、
前記暗号鍵・復号鍵生成手段が生成した暗号鍵を前記第1の情報処理装置に送信する暗号鍵送信手段と、
前記削除鍵生成手段が生成した削除鍵を前記第2の情報処理装置に送信する削除鍵送信手段と、
を備え、
前記第1の情報処理装置は、さらに、
前記暗号鍵送信手段が送信した暗号鍵を受信し、受信した暗号鍵に基づいて、前記データベースに記憶される情報を暗号化する暗号化手段と、
前記暗号化手段が暗号化した暗号化情報を前記第3の情報処理装置に送信する暗号化情報送信手段と、
を備え、
前記第3の情報処理装置は、
前記暗号化情報送信手段が送信した暗号化情報を受信する暗号化情報受信手段と、
前記削除鍵送信手段が送信した削除鍵を受信する削除鍵受信手段と、
前記削除鍵受信手段が受信した削除鍵に基づいて、前記暗号化情報受信手段が受信した暗号化情報の所定数の情報を削除する情報削除手段と、
前記情報削除手段が情報を削除した後、削除されずに残った情報の順序を入れ替える情報順序入れ替え手段と、
前記情報順序入れ替え手段が入れ替えた情報を前記第2の情報処理装置に送信する入れ替え情報送信手段と、
を備え、
前記第2の情報処置装置は、さらに、
前記入れ替え情報送信手段が送信した情報を受信し、前記暗号鍵・復号鍵生成手段が生成した復号鍵に基づいて、受信した前記情報を復号化する復号化手段と、
を備える、
ことを特徴とするデータ検索システム。
【請求項2】
前記第3の情報処理装置は、複数の装置から構成され、
前記情報順序入れ替え手段が情報を入れ替えた後、前記情報の残数が前記暗号鍵・復号鍵生成手段が取得したインデックスの少なくとも一部に対応するインデックス数と等しいか否かを判別する残数判別手段と、
前記残数判別手段が、前記情報の残数が前記インデックス数と等しいと判別した場合、前記情報順序入れ替え手段が入れ替えた情報を前記第2の情報処理装置に送信し、前記残数判別手段が、前記情報の残数が前記インデックス数と等しくないと判別した場合、前記情報順序入れ替え手段が入れ替えた情報を別の前記第3の情報処理装置に送信する第2の入れ替え情報送信手段と、
を備えることを特徴とする請求項1に記載のデータ検索システム。
【請求項3】
暗号化された暗号化情報を削除するために必要な削除鍵を記憶する削除鍵記憶手段と、
前記削除鍵記憶手段が記憶する削除鍵に基づいて、前記暗号化情報の所定数の情報を削除する暗号化情報削除手段と、
前記暗号化情報削除手段が情報を削除した後、削除されずに残った情報の順序を入れ替える情報順序入れ替え手段と、
を備えることを特徴とする情報処理装置。
【請求項4】
暗号化された暗号化情報を削除するために必要な削除鍵を記憶する削除鍵記憶ステップと、
前記削除鍵記憶ステップで記憶した削除鍵に基づいて、前記暗号化情報の所定数の情報を削除する暗号化情報削除ステップと、
前記暗号化情報削除ステップで情報を削除した後、削除されずに残った情報の順序を入れ替える情報順序入れ替えステップと、
を備えることを特徴とするデータ検索方法。
【請求項5】
コンピュータに、
暗号化された暗号化情報を削除するために必要な削除鍵を記憶する削除鍵記憶手順と、
前記削除鍵記憶手順で記憶した削除鍵に基づいて、前記暗号化情報の所定数の情報を削除する暗号化情報削除手順と、
前記暗号化情報削除手順で情報を削除した後、削除されずに残った情報の順序を入れ替える情報順序入れ替え手順と、
を実行させるプログラム。

【図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


【公開番号】特開2007−124520(P2007−124520A)
【公開日】平成19年5月17日(2007.5.17)
【国際特許分類】
【出願番号】特願2005−316865(P2005−316865)
【出願日】平成17年10月31日(2005.10.31)
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)
【Fターム(参考)】