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

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

Info

Publication number
JP4837362B2
JP4837362B2 JP2005316865A JP2005316865A JP4837362B2 JP 4837362 B2 JP4837362 B2 JP 4837362B2 JP 2005316865 A JP2005316865 A JP 2005316865A JP 2005316865 A JP2005316865 A JP 2005316865A JP 4837362 B2 JP4837362 B2 JP 4837362B2
Authority
JP
Japan
Prior art keywords
information
index
encrypted
encryption
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005316865A
Other languages
English (en)
Other versions
JP2007124520A (ja
Inventor
康雅 平井
昌興 高村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Data Group Corp
Original Assignee
NTT Data Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Data Corp filed Critical NTT Data Corp
Priority to JP2005316865A priority Critical patent/JP4837362B2/ja
Publication of JP2007124520A publication Critical patent/JP2007124520A/ja
Application granted granted Critical
Publication of JP4837362B2 publication Critical patent/JP4837362B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データ検索システム、情報処理装置、データ検索方法、及び、プログラムに関する。
近年、様々なデータが電子化されるようになっている。その電子化されたデータはデータベースに蓄積され、管理される。
また、これらの電子化されたデータをネットワークを介して不特定多数の人や組織に提供するシステムが多く利用されるようになった。例えば、新薬開発などへの利用を目的に、医療・診療情報をデータベースに蓄積しておき、これを外部に提供するといったシステムがある。このシステムの利用者は、データベースに蓄積されたデータの中から所望のデータを検索し、閲覧することができる。
そして、このようなデータの中には、プライバシ情報が含まれる場合も多い。例えば、新薬を開発している企業(システムの利用者)は、データベースのデータを検索した検索内容が、他の競合する企業等に知られた場合、大きな不利益を被る可能性がある。このような不利益を考慮すると、データベースのデータを検索した検索内容は、プライバシ情報として秘匿されなければならない。
そこで、検索内容(プライバシ情報)を秘匿しながら、所望のデータを外部に提供するデータ検索システムが要求されるようになった。例えば、特許文献1には、データベース内のデータを秘匿化(暗号化)し、秘匿化(暗号化)したデータを外部に提供する方法(SPIR(Symmetrically Private Information Retrieval))が開示されている。具体的には、データ検索システムは、利用者用端末等を用いてシステムの利用者によって入力された検索内容を暗号化し、暗号化した検索内容に従って、データベースにアクセスする。また、データ検索システムは、データベースに格納された全てのデータを暗号化し、暗号化したデータを利用者に提供するために、利用者用端末等へ送信する。さらに、データ検索システムは、送信したデータのうち、検索内容に対応したデータのみを復号する。
特開2003−29633号公報
現在の計算機では、検索内容以外の復号鍵を持たない暗号化データを解読することは、計算機の処理速度が遅いために非常に困難であると考えられている。そのため、特許文献1に開示されるデータ検索システムは、データベースに格納された全ての暗号化データを利用者用端末等へ送信したとしても、プライバシ情報を秘匿するのに十分なシステムとされている。
しかしながら、従来のデータ検索システムは、将来的には計算機の処理速度の向上等により、検索内容以外の復号鍵を持たない暗号化データが解読される可能性が高くなり、プライバシが侵害される虞がある。
本発明は、上記実状に鑑みてなされたものであり、プライバシの侵害を防御するためのプライバシ保護機能を強化したデータ検索システム、情報処理装置、データ検索方法、及び、プログラムを提供することを目的とする。
上記目的を達成するため、本発明の第1の観点に係るデータ検索システムは、
第1の情報処理装置と、前記第1の情報処理装置と紛失通信を用いて通信を行う第2の情報処理装置と、第3の情報処理装置と、から構成されるデータ検索システムであって、
前記第1の情報処理装置は、
情報を記憶するデータベースと、
前記データベースに記憶されている情報のインデックスを前記第2の情報処理装置に前記紛失通信により送信するインデックス送信手段と、
を備え、
前記第2の情報処理装置は、
前記インデックスを取得し、取得したインデックスに対応する前記情報を暗号化する暗号鍵を生成する暗号鍵生成手段と、
前記取得したインデックスを選択可能に表示してユーザに選択されたインデックス以外のインデックスを削除対象の情報に対応するインデックスとして特定する削除鍵を不可逆演算により生成する削除鍵生成手段と、
前記暗号鍵生成手段が生成した暗号鍵を前記紛失通信により前記第1の情報処理装置に送信する暗号鍵送信手段と、
前記削除鍵生成手段が生成した削除鍵を前記第3の情報処理装置に送信する削除鍵送信手段と、
を備え、
前記第1の情報処理装置は、さらに、
前記暗号鍵送信手段が送信した暗号鍵を受信し、受信した暗号鍵に基づいて、前記データベースに記憶される情報を暗号化する暗号化手段と、
前記暗号化手段が暗号化した暗号化情報とインデックスとを対応付けて前記第3の情報処理装置に送信する暗号化情報送信手段と、
を備え、
前記第3の情報処理装置は、
前記暗号化情報送信手段が送信した暗号化情報とインデックスとを受信して記憶する暗号化情報受信記憶手段と、
前記削除鍵送信手段が送信した削除鍵を受信して記憶する削除鍵受信記憶手段と、
前記暗号化情報受信記憶手段が記憶したインデックスのうち、前記削除鍵受信記憶手段が記憶した削除鍵により特定されるインデックスを、前記削除対象の情報に対応するインデックスとして特定するインデックス特定手段と、
前記インデックス特定手段により特定されるインデックスに対応する暗号化情報を、前記暗号化情報受信記憶手段で記憶した暗号化情報から削除することで、前記第2の情報処理装置においてユーザにより選択されたインデックスに対応する暗号化情報を検索する情報削除検索手段と、
前記情報削除検索手段が暗号化情報を削除した後、削除されずに残った暗号化情報の順序を入れ替える情報順序入れ替え手段と、
前記情報順序入れ替え手段が入れ替えた暗号化情報を前記第2の情報処理装置に送信する入れ替え情報送信手段と、
を備え、
前記第2の情報処装置は、さらに、
前記暗号化手段が暗号化した暗号化情報を復号する復号鍵を生成する復号鍵生成手段と、
前記入れ替え情報送信手段が送信した暗号化情報を受信し、前記復号鍵生成手段が生成した復号鍵に基づいて、受信した前記暗号化情報を復号化する復号化手段と、
を備える、
ことを特徴とする。
また、前記データ検索システムにおいて、
前記第2の情報処理装置は、前記取得したインデックスのうち、前記ユーザにより選択されたインデックスの数を記憶するインデックス数記憶手段と、
をさらに備え、
前記暗号鍵には、前記インデックス数記憶手段で記憶したインデックスの数を示すインデックス数情報が含まれ、
前記第3の情報処理装置は、複数の装置から構成され、
前記情報削除検索手段が削除した暗号化情報の数を集計して記憶する情報数記憶手段と、
前記情報数記憶手段が記憶した暗号化情報の数が前記インデックス数情報の示すインデックスの数と等しいか否かを判別する判別手段と、
前記判別手段が、前記暗号化情報の数が前記インデックスの数と等しいと判別した場合、前記情報順序入れ替え手段が入れ替えた暗号化情報を前記第2の情報処理装置に送信し、前記判別手段が、前記暗号化情報の数が前記インデックスの数と等しくないと判別した場合、前記情報順序入れ替え手段が入れ替えた暗号化情報を別の前記第3の情報処理装置に送信する第2の入れ替え情報送信手段と、
をさらに備えることを特徴とするようにしてもよい。
上記目的を達成するため、本発明の第2の観点に係る情報処理装置は、第1の観点に係るデータ検索システムにおける第3の情報処理装置であって、
削除対象の暗号化情報とは別個に暗号化されているインデックスであって、かつ、前記削除対象の暗号化情報に対応するインデックスを特定する、不可逆演算により生成された削除鍵を記憶する削除鍵記憶手段と、
前記インデックス及び前記暗号化情報を受信して記憶し、前記記憶したインデックスのうち、前記削除鍵記憶手段が記憶した削除鍵により特定されるインデックスを、紛失通信においてユーザにより選択されたインデックス以外のインデックスとして特定するインデックス特定手段と、
前記インデックス特定手段により特定されるインデックスに対応する暗号化情報を、前記記憶した暗号化情報から削除することで、前記紛失通信を用いてユーザから選択されたインデックスに対応する暗号化情報を検索する情報削除検索手段と、
前記情報削除検索手段が暗号化情報を削除した後、削除されずに残った暗号化情報の順序を入れ替える情報順序入れ替え手段と、
を備えることを特徴とする。
上記目的を達成するため、本発明の第3の観点に係るデータ検索方法は、第1の観点に係るデータ検索システムにおける第3の情報処理装置が行うデータ検索方法であって、
削除対象の暗号化情報とは別個に暗号化されているインデックスであって、かつ、前記削除対象の暗号化情報に対応するインデックスを特定する、不可逆演算により生成された削除鍵を記憶する削除鍵記憶ステップと、
前記インデックス及び前記暗号化情報を受信して記憶し、前記記憶したインデックスのうち、前記削除鍵記憶ステップが記憶した削除鍵により特定されるインデックスを、紛失通信を用いてユーザにより選択されたインデックス以外のインデックスとして特定するインデックス特定ステップと、
前記インデックス特定ステップにより特定されるインデックスに対応する暗号化情報を、前記記憶した暗号化情報から削除することで、前記紛失通信を用いてユーザから選択されたインデックスに対応する暗号化情報を検索する情報削除検索ステップと、
前記情報削除検索ステップが暗号化情報を削除した後、削除されずに残った暗号化情報の順序を入れ替える情報順序入れ替えステップと、
を備えることを特徴とする。
上記目的を達成するため、本発明の第4の観点に係るプログラムは、コンピュータを、第1の観点に係るデータ検索システムにおける第3の情報処理装置として機能させるためのプログラムであって
削除対象の暗号化情報とは別個に暗号化されているインデックスであって、かつ、前記削除対象の暗号化情報に対応するインデックスを特定する、不可逆演算により生成された削除鍵を記憶する削除鍵記憶手段、
前記インデックス及び前記暗号化情報を受信して記憶し、前記記憶したインデックスのうち、前記削除鍵記憶手段が記憶した削除鍵により特定されるインデックスを、紛失通信においてユーザにより選択されたインデックス以外のインデックスとして特定するインデックス特定手段、
前記インデックス特定手段により特定されるインデックスに対応する暗号化情報を、前記記憶した暗号化情報から削除することで、前記紛失通信を用いてユーザから選択されたインデックスに対応する暗号化情報を検索する情報削除検索手段、
前記情報削除検索手段が暗号化情報を削除した後、削除されずに残った暗号化情報の順序を入れ替える情報順序入れ替え手段、
として機能させることを特徴とする。
本発明のシステムによれば、プライバシの侵害を防御するためのプライバシ保護機能を強化して、データベースに蓄積したデータから所望のデータを検索することができる。
以下、本発明の実施形態に係るデータ検索システム100を説明する。
本実施形態に係るデータ検索システム100は、図1に示すように、データ検索装置101と、複数台の中間サーバ102と、利用者用端末103と、から構成される。また、中間サーバ102は、単一のサーバで構成してもよい。データ検索装置101、各中間サーバ102、利用者用端末103は、それぞれネットワーク104を介して接続される。このような構成からなるデータ検索システム100は、データ検索装置101内のデータベースに格納されたデータのうち、利用者用端末103からの要求に応じた所望のデータを利用者に提供するシステムである。
ここで、ネットワーク104は、一般的な通信手段を用いることが可能である。本実施形態において、一般的に使用されているTCP/IP(トランスミッション・コントロール・プロトコル/インターネット・プロトコル)が使用される。なお、他のプロトコルが使用されてもよい。また、ネットワーク104は、ローカル・エリア・ネットワークでも、ワイド・エリア・ネットワークでもよい。バーチャル・プライベート・ネットワーク(VPN)やワイヤレス接続のような通信手段も同じように使用可能である。
データ検索装置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等に接続できればどこに配置されてもよい。
データベース204は、利用者用端末103に送信するデータを格納するデータベースであり、例えば、図3に示すように、データを識別するためのインデックス番号(例えば、数字、等)、データ種別(例えば、性別、年齢、等)、データ内容(例えば、病歴、等)等を対応づけて記憶する。
制御部201は、CPU(Central Processing Unit)等の演算処理装置から構成され、データ検索装置101の全体の制御を行う。また、制御部201は、ROM203に格納されるプログラムを読み出して、プログラムに基づいて所定の処理を実行する。例えばデータベース204に格納されたデータを暗号化する処理を行う。制御部201が実行する処理の詳細については後述する。
RAM202は、制御部201が所定の処理(例えば、暗号化処理、等)を実行するために読み出したプログラムや、制御部201が当該プログラムを実行するために必要なデータを格納する揮発性メモリである。
ROM203は、制御部201が所定の処理を実行するためのプログラム等を予め格納する不揮発性メモリである。制御部201は、ROM203から必要に応じてプログラム等を読み出して、RAM202に展開し、当該プログラム等に基づいて所定の処理を実行する。具体的には、ROM203に格納するプログラムは、図2(B)に示すように、データを暗号化するデータ暗号化プログラム210、暗号化データを送信するための送信プログラム211等である。
データ暗号化プログラム210は、データベース204のインデックス(公開データ)及びデータ内容をそれぞれ暗号化するためのプログラムである。暗号化の具体的な処理については、後述する。
送信プログラム211は、データ暗号化プログラム210で暗号化したデータを、中間サーバ(1)102へ送信するためのプログラムである。具体的な処理については、後述する。
通信部205は、NIC(Network Interface Card)等から構成され、ネットワーク104に接続するためのインタフェースを備え、ネットワーク104との間で、TCP/IPプロトコルに基づく通信を行う。通信部205は、例えば、モデム装置や赤外線通信装置等を含んでいてもよい。
システムバス206は、制御部201、RAM202、ROM203、データベース204及び通信部205の間で命令やデータを転送するための伝送経路である。
このように、データ検索装置101は、一般的に普及しているコンピュータ等を用いて構成することができる。
次に、図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アドレスを割り当てるようにしてもよい。
各中間サーバ102は、それぞれ同様の構成からなり、図4(A)に示すように、制御部401、RAM(Random Access Memory)402、ROM(Read Only Memory)403、記憶部404、通信部405及びシステムバス406を含む。
制御部401は、CPU(Central Processing Unit)等の演算処理装置から構成され、中間サーバ102の全体の制御を行う。また、制御部401は、ROM403に格納されるプログラムを読み出して、プログラムに基づいて所定の処理を実行する。例えば、記憶部404に格納された暗号化データに対して削除・シャッフル処理、転送処理等を行う。
RAM402は、制御部401が所定の処理(例えば、削除・シャッフル処理、転送処理等)を実行するために読み出したプログラムや、制御部401が当該プログラムを実行するために必要なデータを格納する揮発性メモリである。
ROM403は、制御部401が所定の処理を実行するためのプログラム等を予め格納する不揮発性メモリである。制御部401は、ROM403から必要に応じてプログラム等を読み出して、RAM402に展開し、当該プログラム等に基づいて所定の処理を実行する。具体的には、ROM403に格納するプログラムは、図4(B)に示すように、所定の暗号化データを削除して、シャッフルする削除・シャッフルプログラム410、暗号化データを転送するための転送プログラム411等である。また、ROM403は、ネットワーク104に接続される装置が共通に利用するパラメータ(プログラム)である公開用共通パラメータ412等も格納する。
削除・シャッフルプログラム410は、受信した暗号化データのうち、削除対象となるデータをインデックスから検索し、該当するデータを削除するためのプログラムである。また、削除対象のデータを削除した後、残ったデータをシャッフルするためのプログラムである。具体的な処理については、後述する。
転送プログラム411は、削除・シャッフルプログラム410によって処理されたデータの転送先を決定し、決定した転送先にデータを転送するためのプログラムである。具体的な処理については、後述する。
公開用共通パラメータ412は、後述する各処理で用いられる双線型写像e:(G1×G1→G2)を生成するためプログラムを含む。ここで、G1、G2は、位数q(qは1以上の整数)を持つ巡回群を表す。なお、qは十分に大きい素数であることが望ましい。また、公開用共通パラメータ412は、ハッシュ関数Hにより任意のビット列を巡回群G1のサイズのデータ(例えば、疑似乱数等)を生成するためのプログラムを含む。さらに、公開用共通パラメータ412は、巡回群G1の任意の元Pを含む。また、公開用共通パラメータ412は、暗号化関数によりデータベース204のデータを暗号化するためのプログラムや、復号化関数により暗号化されたデータを復号化するためのプログラムを含む。
これらの公開用共通パラメータ412は、データ検索装置101、中間サーバ102、利用者用端末103で共通して用いられる共通パラメータ(共通プログラム)であり、必要に応じて提供される公開情報である。
記憶部404は、ハードディスクドライブ等の記憶装置から構成され、データ検索装置101や他の中間サーバ102から送信された暗号化データを格納する。また、記憶部404は、制御部401がROM403等に格納されたプログラムに従って処理を行った結果として得られるデータを所定の場所に格納する。また、記憶部404は、中間サーバ102に固有のデータや鍵(中間サーバの番号j、中間サーバ固有の値r_j、中間サーバ公開鍵r_jP、中間サーバ公開情報R_j)等も記憶する。
通信部405は、NIC(Network Interface Card)等から構成され、ネットワーク104に接続するためのインタフェースを備え、ネットワーク104との間で、TCP/IPプロトコルに基づく通信を行う。転送プログラム411に従って指定したIPアドレスを持つ他の中間サーバ102や、利用者用端末103と通信を行う。
また、通信部405は、例えば、モデム装置や赤外線通信装置等を含んでいてもよい。
システムバス406は、制御部401、RAM402、ROM403、記憶部404及び通信部405の間で命令やデータを転送するための伝送経路である。
このように、中間サーバ102は、一般的に普及しているコンピュータ等を用いて構成することができる。
次に、図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等に接続できればどこに配置されてもよい。
制御部501は、CPU(Central Processing Unit)等の演算処理装置から構成され、利用者用端末103の全体の制御を行う。また、制御部501は、ROM503に格納されるプログラムを読み出して、プログラムに基づいて所定の処理を実行する。例えば、データ検索装置101から送信された暗号化データを復号化する処理や、復号化したデータを表示部506に表示する処理を行う。制御部501が実行する処理の詳細については後述する。
RAM502は、制御部501が所定の処理(例えば、鍵生成処理、復号化処理、表示処理、等)を実行するために読み出したプログラムや、制御部501が当該プログラムを実行するために必要なデータを格納する揮発性メモリである。
ROM503は、制御部501が所定の処理を実行するためのプログラム等を予め格納する不揮発性メモリである。制御部501は、ROM503から必要に応じてプログラム等を読み出して、RAM502に展開し、当該プログラム等に基づいて所定の処理を実行する。具体的には、ROM503に格納するプログラムは、図5(B)に示すように、暗号化・復号化等に用いる所定の鍵を生成するための鍵生成プログラム510、データ検索装置101から送信された暗号化データを復号化するデータ復号化プログラム511、復号化したデータのデータ内容を表示するための表示プログラム512等である。
鍵生成プログラム510は、例えば、Query(暗号化鍵)、復号化鍵、中間サーバ暗号化鍵、中間サーバ復号化鍵、インデックス削除鍵等を生成するためのプログラムである。Query(暗号化鍵)は、データベース204内のデータを暗号化するための暗号化鍵である。復号化鍵は、Query(暗号化鍵)で暗号化されたデータを復号化するための復号化鍵である。中間サーバ暗号化鍵は、中間サーバのサーバ番号(例えば、1〜N、等)を暗号化するための暗号化鍵である。中間サーバ復号化鍵は、中間サーバ暗号化鍵で暗号化されたサーバ番号を復号化するための復号化鍵である。インデックス削除鍵は、中間サーバ102に転送された暗号化データのうち、削除対象のデータを検索するための鍵である。
データ復号化プログラム511は、利用者が選択した所望の暗号化データを復号化するためのプログラムである。具体的な処理については、後述する。
表示プログラム512は、利用者が操作するために必要な文字列や画像を表示したり、データベース204のデータから検索した検索結果(データ内容)を表示するためのプログラムである。
記憶部504は、ハードディスクドライブ等の記憶装置から構成され、中間サーバ102から送信された暗号化データを格納する。また、記憶部504は、制御部501がROM503等に格納されたプログラムに従って処理を行った結果として得られるデータを所定の場所に格納する。例えば、鍵生成プログラム510で生成された各種鍵等(例えば、利用者を特定するための利用者秘密鍵User_secret、利用者公開鍵U_pub、等)を記憶する。
通信部505は、NIC(Network Interface Card)等から構成され、ネットワーク104に接続するためのインタフェースを備え、ネットワーク104との間で、TCP/IPプロトコルに基づく通信を行う。
また、通信部505は、例えば、モデム装置や赤外線通信装置等を含んでいてもよい。
表示部506は、LCD(Liquid Crystal Display)等の出力装置から構成される。利用者は、LCDに表示される画像や文字列等を見ることによって、データ検索装置101から送信されたデータのデータ内容を知ることができる。ここで、LCDは、ドットマトリクスタイプの表示素子であり、任意の文字、記号、数字、図形を表示する。
入力部507は、キーボード、マウス等の入力装置から構成される。これら入力装置を用いて利用者によって入力されるデータを受け付けて、入力されたデータを制御部501に供給する。
システムバス508は、制御部501、RAM502、ROM503、記憶部504、通信部505、表示部506及び入力部507の間で命令やデータを転送するための伝送経路である。
このように、中間サーバ102は、一般的に普及しているコンピュータ等を用いて構成することができる。
(データ検索システムの全体の動作)
次に、本実施の形態に係るデータ検索システム100のシステム全体の大まかな動作について、図6、図7を参照して説明する。
図6のシーケンス図に示すように、まず、データ検索システム100のセットアップとして、データ検索装置101は、ROM203に格納した公開用共通パラメータ412を公開する(ステップS1)。この公開用共通パラメータ412の公開により、データ検索装置101、中間サーバ102、利用者用端末103のどの計算機も、公開用共通パラメータ412を利用できる。
データ検索装置101は、図3に示すデータベース204のデータから公開用データを利用者用端末103に公開する(ステップS2)。
利用者用端末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(暗号化鍵)を生成する前に、暗号化鍵で暗号化したデータを復号化するための復号化鍵も生成しておく。
さらに、利用者用端末103は、中間サーバ復号化鍵、中間サーバ暗号化鍵、インデックス削除鍵を生成し(ステップS5)、生成したインデックス削除鍵を中間サーバ102に送信する(ステップS6)。
Query(暗号化鍵)を受信したデータ検索装置101は、このQuery(暗号化鍵)に基づいて、図3に示すデータベース204内の全てのデータ内容を暗号化する(ステップS7)。さらに、データ検索装置101は、図3に示すデータベース204内の全てのインデックス(公開用データ)を、公開用共通パラメータ412(公開情報)を用いて暗号化する(ステップS8)。
データ検索装置101は、ステップS7とステップS8でそれぞれ暗号化したデータ内容とインデックスとを対にしたまま、これらをランダムにシャッフルする(ステップS9)。そして、データ検索装置101は、ROM203に格納された送信プログラム211に従って、暗号化したデータを中間サーバ(1)102に送信する(ステップS10)。
暗号化されたデータを受信した中間サーバ(1)102は、受信したデータの中から、所定の条件を満たす削除対象の暗号化されたインデックスを検索する(ステップS11)。中間サーバ(1)102は、ステップS11で検索した結果に基づいて、所定の条件を満たす削除対象の暗号化されたインデックスに付属するデータを削除する(ステップS12)。
このとき、中間サーバ(1)102は、全ての中間サーバ102で削除した総データ数をカウントするために、中間サーバ(1)102で削除したデータ数を記憶部404に記憶する(ステップS13)。
さらに、中間サーバ(1)102は、ステップS11で検索した結果、削除対象ではなかった各インデックスを、再度、暗号化する(ステップS14)。その後、中間サーバ(1)102は、残ったデータを、ランダムにシャッフルする(ステップS15)。
次に、中間サーバ(1)102は、シャッフルしたデータを中間サーバ(2)102に転送し(ステップS16)、データを受信した中間サーバ(2)102は、ステップS11からステップS15までの処理を受信したデータに対して実行する。
以上のステップS11からステップS16までの処理が、全ての中間サーバ102(中間サーバ(1)、中間サーバ(2)、…、中間サーバ(N))で実行されるまで、順次、データを転送していく。
最後の中間サーバ(N)102は、ステップS15を実行した後、データを利用者用端末103に送信する(ステップS17)。
データを受信した利用者用端末103は、受信したデータを、予め作成しておいた復号化鍵で復号し(ステップS18)、図7(B)に示すように、復号化したデータ内容を表示部506に表示する。
以上の一連の処理を実行するデータ検索システム100は、暗号化したデータを各中間サーバ102で削除・シャッフルし、利用者用端末103へは、利用者が選択した所望のデータだけを転送する。これにより、従来のように、利用者用端末103へ利用者が選択したデータ以外のデータを転送することはないため、プライバシ保護機能は強化される。
以下に、図6のシーケンス図で説明した各処理について、より具体的に説明する。
(鍵生成処理)
まず、利用者用端末103の制御部501が、ROM503に格納される鍵生成プログラム510に従って各種鍵を生成する「鍵生成処理」(図6のステップS3〜ステップS6に対応)について、図8のフローチャートを参照して説明する。
鍵生成処理で生成する鍵は、復号化鍵、Query(暗号化鍵)、中間サーバ暗号化鍵、中間サーバ復号化鍵、インデックス削除鍵である。
鍵生成処理は、入力部507に配置されるキー或いはマウスボタンの押下による入力割り込みによって開始される。制御部501は、例えば、暗号化方式としてよく知られるElGamal暗号方式の復号化鍵を生成する(ステップS101)。具体的には、制御部501は、素数pおよび乗法群Z_pでの原始元gを生成する。それに対して、x∈Z_p−1を満たす整数xを計算し、このxを復号鍵とする。
次に、制御部501は、ステップS101で生成した復号化鍵に対する暗号化鍵を生成する(ステップS102)。具体的には、制御部501は、y=g^x mod pを生成する。そして、利用者がi番目のインデックスを選択した場合、(p,g,y−i)をQuery(暗号化鍵)とする。
このQuery(暗号化鍵)は、データ検索装置101側に、利用者が選択したデータがどれかを知られずに対応するデータ内容を得ることを目的とする。加えて、このQuery(暗号化鍵)は、利用者が、選択したデータ以外のデータを取得できないように、選択したデータ数がわかるようにすることを目的とする。この目的を達成できれば、生成する暗号化鍵は、任意の暗号化鍵でよい。
制御部501は、ステップS102で生成したQuery(暗号化鍵)を、通信部505を介して、データ検索装置101に送信する(ステップS103)。
次に、制御部501は、各中間サーバの処理負担を軽減するために、各中間サーバ102が図6のステップS11で検索するインデックス数をなるべく均等になるように設定する。具体的には、全インデックス数を中間サーバ数Nで除算した値、若しくは、その値に1加算した値にする。
さらに、制御部501は、各中間サーバ102を特定する値(若しくは、名前)を復号化するための数1に示す復号化鍵s_jを生成する(ステップS104)。ただし、jはサーバ番号、Nは中間サーバ数。
Figure 0004837362
また、制御部501は、各中間サーバ102を特定する値(若しくは、名前)を暗号化するための中間サーバ暗号化鍵S_jを生成する(ステップS105)。具体的には、中間サーバ復号化鍵s_jと、中間サーバ102に記憶される公開情報G1上の任意の元Pとを取得して、数2を用いて中間サーバ暗号化鍵S_jを生成する。すなわち、中間サーバ暗号化鍵S_jは、中間サーバ復号化鍵s_jと、公開情報G1上の任意の元Pと、の論理積により生成される。
ここで、ステップS104、ステップS105で生成した中間サーバ復号化鍵、中間サーバ暗号化鍵は、ともに公開されない秘密の値である。
Figure 0004837362
さらに、制御部501は、各中間サーバ102が図6のステップS11、ステップS12で削除対象の暗号化データを検索・削除するときに必要となるインデックス削除鍵Search_jを生成する(ステップS106)。具体的には、利用者秘密鍵User_secret、中間サーバ復号鍵s_jと、中間サーバ102に記憶される公開情報G1であるハッシュ関数H及び双線型写像eと、中間サーバ102が所有する公開情報R_jと、中間サーバ固有の値r_jとから、数3を用いてインデックス削除鍵を生成する。
Figure 0004837362
一般に、ハッシュ関数Hは不可逆な一方向関数であり、得られたハッシュ値からは元データを生成することができない。そのため、通信の暗号化やデジタル署名などの分野で広く用いられている。なお、本発明は、ハッシュ関数Hの具体的な数式(あるいは論理式等)を定めるものではない。また、ハッシュ関数Hは、似た情報から近いハッシュ値が得られず、値域に偏りがなく、異なる情報から同じハッシュ値が容易に生成されないように定義されることが望ましい。
次に、制御部501は、ステップS106で生成したインデックス削除鍵を、通信部505を介して、各中間サーバ102に送信し(ステップS107)、鍵生成処理を終了する。
なお、上述の各種鍵を生成するための各数式等は1つの例であり、これに限定されるものではなく種々の変形が可能である。
(暗号化処理)
次に、データ検索装置101の制御部201が、ROM203に格納されるデータ暗号化プログラム210に従って、データベース204のインデックス(公開データ)及びデータ内容を暗号化する「暗号化処理」(図6のステップS7〜ステップS9に対応)について、図9のフローチャートを参照して説明する。
暗号化処理は、図6のステップS4で、制御部201が、Query(暗号化鍵)を受信することよって開始される。
制御部201は、まず、利用者に選択されなかったデータのインデックスを暗号化するためのダミー鍵を生成しておく。ダミー鍵の生成には、ダミー鍵に対応する復号鍵を容易に作成できないように、例えば、離散対数問題等を利用する。
次に、制御部201は、受信したQuery(暗号化鍵)及び、生成したダミー鍵を用いて、データベース204に格納してあるデータ内容を暗号化する(ステップS201)。具体的には、制御部201は、中間サーバ102が公開した公開用共通パラメータ412に含まれる暗号化関数により、データベース204に格納してあるデータ内容を暗号化する。例えば、制御部201は、受信したQuery(p,g,y−i)から、全てのインデックスINDEXに対して暗号化鍵y−i+INDEXを計算する。また、乱数r∈Z_p−1を生成する。これらを用いて、データベース204のデータ内容をElGamal暗号化方式を用いて暗号化する。
以上の暗号化により、データ内容を対応する復号鍵なしで、復号することは困難となる。また、ダミー鍵を設けて、全てのデータ内容を暗号化することで、データ検索装置101側から、利用者がどのデータを閲覧しようとしているのか知ることはできない。
上述の暗号化関数は1つの例であり、これに限定されるものではなく種々の変形が可能である。
次に、制御部201は、ステップS201で行った暗号化とは別に、データベース204のインデックス(公開情報)を暗号化する(ステップS202)。具体的には、制御部201は、中間サーバ102に記憶される公開情報であるハッシュ関数H及び双線型写像eとを取得し、中間サーバ102が公開する公開情報R_j、利用者用端末103が所有する中間サーバ暗号鍵S_j及び利用者公開鍵U_pud、データベース204のインデックスを用いて、数4に示す数式でインデックス(公開情報)を暗号化する。
Figure 0004837362
ステップS201、ステップS202にあるように、データ内容とインデックスを別にして暗号化することにより、インデックスとデータ内容を結合したまま暗号化する手法と比較して、セキュリティをより強化した暗号化方式となる。
さらに、制御部201は、データベース204に格納される順序を、ランダムに入れ替える(ステップS203)。例えば、制御部201は、一様乱数等を用いて各データにデータ順序を表す番号を割り振ればよい。これにより、ステップS202で暗号化されたインデックスを復号化しない限り、データベース204に格納された順序を知ることはできない。順序を知られないようにすることは、不正にデータを取得しようとする人等が、必要なデータを効率よく取得することができないようにする意図が含まれる。
続いて、制御部201は、暗号化処理を終了し、ROM203に格納される送信プログラム211に従って、暗号化したデータを中間サーバ102へ送信する処理に移行する。
なお、上述の暗号化のための数式や手法等は1つの例であり、これに限定されるものではなく種々の変形が可能である。
(削除・シャッフル処理)
次に、各中間サーバ102の制御部401が、ROM403に格納される削除・シャッフルプログラム410に従って、他の中間サーバ102から転送された暗号化データを、削除・シャッフルする「削除・シャッフル処理」(図6のステップS11〜ステップS17に対応)について、図10のフローチャートを参照して説明する。
削除・シャッフル処理は、図6のステップS10で、制御部401が、暗号化データを受信することよって開始される。
制御部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倍の演算により生成される。
Figure 0004837362
ハッシュ値HKは、各中間サーバ102において、削除対象のデータを特定するための条件値となる。また、暗号化インデックスE_INDEX、インデックス削除鍵Search_jは、ともに暗号化されているので、各中間サーバ102は、インデックスに関して何の情報も得ることができず、利用者のプライバシを保護する。
制御部401は、データ検索装置101から受信した全ての暗号化インデックスE_INDEXについて、上述したハッシュ値HKと一致するか否かを判別していく。ここで、制御部401は、全ての暗号化インデックスE_INDEXが、ハッシュ値HKと一致しないと判別した場合(ステップS302;No)、データ検索装置101から受信した暗号化データを削除せずに、ステップS305の処理に移行させる。
一方、制御部401は、暗号化インデックスE_INDEXの中に、ハッシュ値HKと一致するインデックスが有ると判別した場合(ステップS302;Yes)、一致したインデックスと、そのインデックスに結合したデータ内容を削除する(ステップS303)。
また、制御部401は、削除した暗号化インデックスの数Delを記憶部404に記憶する(ステップS304)。各中間サーバ102で登録したこの削除数Delの値は、例えば、一つの中間サーバ102で集計される。
次に、制御部401は、ステップS303で削除したデータ以外のデータのインデックス、すなわち、記憶部404に残っているインデックスを、再度、暗号化する(ステップS305)。具体的には、制御部401は、削除・シャッフルプログラム410に従って、中間サーバ102に記憶される公開情報であるハッシュ関数H及び双線型写像eとを取得する。そして、中間サーバ102が公開する公開情報R_j、利用者用端末103が所有する中間サーバ暗号鍵S_j及び利用者公開鍵U_pud、各暗号化インデックスを用いて、数6に示す数式でインデックス(公開情報)を暗号化する。
Figure 0004837362
ここでの暗号化において、各中間サーバ102は、他の中間サーバ102で暗号化されたインデックスに基づいて、インデックスを暗号化する。そして、数6で暗号化されたインデックスでなければ、ステップS301で、適切に、削除対象のインデックスを検索することができない仕組みになっている。
次に、制御部401は、暗号化データの記憶部404に記憶される順序を、ランダムに入れ替える(ステップ306)。例えば、制御部401は、一様乱数等を用いて各データにデータ順序を表す番号を割り振ればよい。
続いて、制御部401は、各中間サーバ102のステップS304で集計してきた暗号化データの削除数Delを参照し、最後の中間サーバ(N)102であるか否かを判別する(ステップS307)。制御部401は、最後の中間サーバ(N)102ではないと判別した場合(ステップS307;No)、ROM403に格納される転送プログラム411に従って、IPアドレスを参照して、j+1番目の中間サーバ(j+1)102に、残っている暗号化データを転送する(ステップS308)。
以上のステップS301からステップS308の処理を、各中間サーバ102が実行することにより、利用者に選択されなかったデータを各中間サーバ102で削除していく。そして、最後の中間サーバ(N)102には、利用者に選択されたデータだけが残る。
一方、ステップS307で、制御部401は、最後の中間サーバ102であると判別した場合(ステップS307;Yes)、ROM403に格納される転送プログラム411に従って、残っている暗号化データを、通信部405を介して利用者用端末103に転送する(ステップS309)。その後、制御部401は、削除・シャッフル処理を終了する。
なお、上述の暗号化のための数式等は1つの例であり、これに限定されるものではなく種々の変形が可能である。
(復号化処理)
次に、利用者用端末103の制御部501が、ROM503に格納されるデータ復号化プログラム511に従って、中間サーバ(N)102から転送された暗号化データを復号化する「復号化処理」(図6のステップS18に対応)について、図11のフローチャートを参照して説明する。
復号化処理は、図6のステップS18で、制御部501が、暗号化データを受信することよって開始される。
制御部501は、上述した鍵生成処理で生成した復号鍵(d,n)を用いて、受信した暗号化データを復号化する(ステップS401)。具体的には、制御部501は、中間サーバ102が公開した公開用共通パラメータ412に含まる復号化関数により、受信した暗号化データを復号化する。例えば、制御部501は、中間サーバ102からハッシュ関数Hを取得し、暗号化に用いた乱数R_DB、別の乱数r、i(インデックス、又は、データ内容)を連結した値のハッシュ値HBを求める。そして、このハッシュ値HBと暗号化処理で求めた排他的論理和Eとの排他的論理和を求めることで、データを復号化する。
上述したデータの暗号化・復号化に用いる鍵や、暗号化関数・復号化関数は、将来開発されるものも含めて任意のものでよい。
次に、制御部501は、ROM503に格納される表示プログラム512に従って、表示部506に、図7(B)に示すような、検索結果を表示させる(ステップS402)。
その後、制御部501は、復号化処理を終了する。
このように、本実施形態のデータ検索システム100によれば、プライバシの侵害を防御するためのプライバシ保護機能を強化して、データベースに蓄積したデータから所望のデータを検索できる効果が得られる。
すなわち、データ検索装置101のデータベース204に格納されるデータのうち、インデックスとデータ内容とを、それぞれ別個に暗号化するため、データ間の関係性が秘匿され、データベース204のプライバシの保護は強化される。
そして、暗号化データは、データ検索装置101と、利用者用端末103の間に配置された複数の中間サーバ102によって、暗号化データのシャッフルが繰り返されるために、中間サーバ102で暗号データが解読されても、利用者の選択したデータがどれであるか特定することは困難である。
また、中間サーバ102によって、暗号化インデックスに基づいた削除が繰り返されるために、利用者用端末103に転送される暗号化データは、利用者が選択したデータに制限される。これにより、計算機の処理能力が向上して、利用者が選択したデータ以外のデータ内容が他人に知られてしまうようなプライバシの侵害を防ぐ効果がある。
さらに、中間サーバ102において、削除対象のデータは、インデックス削除鍵に基づいて削除され、インデックスも暗号化されている。これにより、中間サーバ102から、インデックスに関する情報を得ることはできないため、利用者のプライバシの保護は強化される。
この発明は上記実施の形態に限定されず、種々の変形及び応用が可能である。
例えば、鍵生成処理で生成される各種鍵(暗号化鍵、復号化鍵、インデックス削除鍵)に有効期限を設定し、この有効期限内の場合にのみ、この各種鍵を用いた復号化ができるように構成することもできる。
この場合、例えば、利用者用端末103の制御部501は、暗号化鍵、復号化鍵、インデックス削除鍵に有効期限を含めて生成する。利用者用端末103の制御部501は、復号化処理を開始するときに有効期限が過ぎていれば復号を許可しないようにすればよい。
これにより、生成した各種鍵が本来の所有者の意に反して流出した場合でも、有効期限を過ぎていれば復号化ができないようにすることができ、データベースのデータや利用者が選択した情報の機密性を強化することができる。
また、例えば、中間サーバ102に記憶される公開用共通パラメータ412を、定期的に変更するように構成することもできる。
この場合、中間サーバ102の制御部401は、所定のタイミング(例えば、1週間など)で、ハッシュ関数H、双線型写像e及び公開情報G1のうちの一部又は全部を設定し直せばよい。また、データ検索装置101、中間サーバ102及び利用者用端末103は、上述の各処理を開始するときに逐次これらの公開用共通パラメータ412のセットを取り込み直して用いればよい。あるいは、制御部401は、公開用共通パラメータ412を設定し直したタイミングで、データ検索装置101、中間サーバ102及び利用者用端末103に公開用共通パラメータ412が再設定された旨の通知を行って、公開用共通パラメータ412の再取得を促す(あるいは自動的に取得する)ようにすればよい。
これにより、データ検索システム100内でのデータの機密性を強化することができる。
上記実施形態では、各中間サーバ102が削除する暗号化データの数は均等になるようにしていた。しかしながら、これに限定されず、処理能力の高い中間サーバ102に、多くの暗号化データを削除させるようにしてもよい。
また、上記実施形態では、暗号化データを転送する中間サーバ102の順番については述べなかった。暗号化データは、各中間サーバ102間で、削除しながら転送されていくので、中間サーバ102が処理しなければならないデータ数はしだいに減少していく。そこで、暗号化データを転送する中間サーバ102の順番を、処理能力の高い中間サーバ102が最初にくるようにしてもよい。
さらに、上記実施形態では、中間サーバ102が複数台(N台)の場合について説明したが、中間サーバ102は、1台であってもよい。中間サーバ102が1台の場合、1台の中間サーバ102が上述した削除・シャッフル処理を一度実施するか、複数回実施すればよい。
また、上記実施形態では、公開用共通パラメータ412は中間サーバ102の記憶部404に格納していた。しかしながら、これに限定されず、公開用共通パラメータ412を、ネットワーク104に接続された他のサーバ等に格納して、公開するようにしてもよい。
上記実施形態では、プログラムがROM203、ROM403及びROM503等に予め記憶されているものとして説明した。しかし、データ検索装置101、中間サーバ102、利用者用端末103を、各々の全部又は一部として動作させ、あるいは、上述の処理を実行させるためのプログラムを、メモリカード、CD−ROM(Compact Disc Read-Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto Optical disk)などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
本実施形態に係るデータ検索システムの構成を説明するための図である。 データ検索装置の構成を説明するためのブロック図である。 データ検索装置のデータベースに記憶される情報の例を示す図である。 中間サーバの構成を説明するためのブロック図である。 利用者用端末の構成を説明するためのブロック図である。 本実施形態に係るデータ検索システムの全体の動作を説明するための図である。 (A)はデータ選択画面の表示例を示す図である。(B)は検索結果の表示例を示す図である。 データ選択による割り込み入力によって開始する鍵生成処理を説明するためのフローチャートである。 暗号化鍵を受信することによって開始する暗号化処理を説明するためのフローチャートである。 暗号化データを受信することによって開始する削除・シャッフル処理を説明するためのフローチャートである。 暗号化データを受信することによって開始する復号化処理を説明するためのフローチャートである。
符号の説明
100 データ検索システム
101 データ検索装置
102 中間サーバ
103 利用者用端末
104 ネットワーク
201 制御部(データ検索装置)
203 ROM(データ検索装置)
204 データベース
210 データ暗号化プログラム
401 制御部(中間サーバ)
403 ROM(中間サーバ)
410 削除・シャッフルプログラム
412 公開用共通パラメータ
501 制御部(利用者用端末)
503 ROM(利用者用端末)
506 表示部
507 入力部
510 鍵生成プログラム
511 データ復号化プログラム

Claims (5)

  1. 第1の情報処理装置と、前記第1の情報処理装置と紛失通信を用いて通信を行う第2の情報処理装置と、第3の情報処理装置と、から構成されるデータ検索システムであって、
    前記第1の情報処理装置は、
    情報を記憶するデータベースと、
    前記データベースに記憶されている情報のインデックスを前記第2の情報処理装置に前記紛失通信により送信するインデックス送信手段と、
    を備え、
    前記第2の情報処理装置は、
    前記インデックスを取得し、取得したインデックスに対応する前記情報を暗号化する暗号鍵を生成する暗号鍵生成手段と、
    前記取得したインデックスを選択可能に表示してユーザに選択されたインデックス以外のインデックスを削除対象の情報に対応するインデックスとして特定する削除鍵を不可逆演算により生成する削除鍵生成手段と、
    前記暗号鍵生成手段が生成した暗号鍵を前記紛失通信により前記第1の情報処理装置に送信する暗号鍵送信手段と、
    前記削除鍵生成手段が生成した削除鍵を前記第3の情報処理装置に送信する削除鍵送信手段と、
    を備え、
    前記第1の情報処理装置は、さらに、
    前記暗号鍵送信手段が送信した暗号鍵を受信し、受信した暗号鍵に基づいて、前記データベースに記憶される情報を暗号化する暗号化手段と、
    前記暗号化手段が暗号化した暗号化情報とインデックスとを対応付けて前記第3の情報処理装置に送信する暗号化情報送信手段と、
    を備え、
    前記第3の情報処理装置は、
    前記暗号化情報送信手段が送信した暗号化情報とインデックスとを受信して記憶する暗号化情報受信記憶手段と、
    前記削除鍵送信手段が送信した削除鍵を受信して記憶する削除鍵受信記憶手段と、
    前記暗号化情報受信記憶手段が記憶したインデックスのうち、前記削除鍵受信記憶手段が記憶した削除鍵により特定されるインデックスを、前記削除対象の情報に対応するインデックスとして特定するインデックス特定手段と、
    前記インデックス特定手段により特定されるインデックスに対応する暗号化情報を、前記暗号化情報受信記憶手段で記憶した暗号化情報から削除することで、前記第2の情報処理装置においてユーザにより選択されたインデックスに対応する暗号化情報を検索する情報削除検索手段と、
    前記情報削除検索手段が暗号化情報を削除した後、削除されずに残った暗号化情報の順序を入れ替える情報順序入れ替え手段と、
    前記情報順序入れ替え手段が入れ替えた暗号化情報を前記第2の情報処理装置に送信する入れ替え情報送信手段と、
    を備え、
    前記第2の情報処装置は、さらに、
    前記暗号化手段が暗号化した暗号化情報を復号する復号鍵を生成する復号鍵生成手段と、
    前記入れ替え情報送信手段が送信した暗号化情報を受信し、前記復号鍵生成手段が生成した復号鍵に基づいて、受信した前記暗号化情報を復号化する復号化手段と、
    を備える、
    ことを特徴とするデータ検索システム。
  2. 前記第2の情報処理装置は、前記取得したインデックスのうち、前記ユーザにより選択されたインデックスの数を記憶するインデックス数記憶手段と、
    をさらに備え、
    前記暗号鍵には、前記インデックス数記憶手段で記憶したインデックスの数を示すインデックス数情報が含まれ、
    前記第3の情報処理装置は、複数の装置から構成され、
    前記情報削除検索手段が削除した暗号化情報の数を集計して記憶する情報数記憶手段と、
    前記情報数記憶手段が記憶した暗号化情報の数が前記インデックス数情報の示すインデックスの数と等しいか否かを判別する判別手段と、
    前記判別手段が、前記暗号化情報の数が前記インデックスの数と等しいと判別した場合、前記情報順序入れ替え手段が入れ替えた暗号化情報を前記第2の情報処理装置に送信し、前記判別手段が、前記暗号化情報の数が前記インデックスの数と等しくないと判別した場合、前記情報順序入れ替え手段が入れ替えた暗号化情報を別の前記第3の情報処理装置に送信する第2の入れ替え情報送信手段と、
    をさらに備えることを特徴とする請求項1に記載のデータ検索システム。
  3. 削除対象の暗号化情報とは別個に暗号化されているインデックスであって、かつ、前記削除対象の暗号化情報に対応するインデックスを特定する、不可逆演算により生成された削除鍵を記憶する削除鍵記憶手段と、
    前記インデックス及び前記暗号化情報を受信して記憶し、前記記憶したインデックスのうち、前記削除鍵記憶手段が記憶した削除鍵により特定されるインデックスを、紛失通信においてユーザにより選択されたインデックス以外のインデックスとして特定するインデックス特定手段と、
    前記インデックス特定手段により特定されるインデックスに対応する暗号化情報を、前記記憶した暗号化情報から削除することで、前記紛失通信を用いてユーザから選択されたインデックスに対応する暗号化情報を検索する情報削除検索手段と、
    前記情報削除検索手段が暗号化情報を削除した後、削除されずに残った暗号化情報の順序を入れ替える情報順序入れ替え手段と、
    を備えることを特徴とする請求項1に記載のデータ検索システムにおける第3の情報処理装置。
  4. 請求項1に記載のデータ検索システムにおける第3の情報処理装置が行うデータ検索方法であって、
    削除対象の暗号化情報とは別個に暗号化されているインデックスであって、かつ、前記削除対象の暗号化情報に対応するインデックスを特定する、不可逆演算により生成された削除鍵を記憶する削除鍵記憶ステップと、
    前記インデックス及び前記暗号化情報を受信して記憶し、前記記憶したインデックスのうち、前記削除鍵記憶ステップが記憶した削除鍵により特定されるインデックスを、紛失通信を用いてユーザにより選択されたインデックス以外のインデックスとして特定するインデックス特定ステップと、
    前記インデックス特定ステップにより特定されるインデックスに対応する暗号化情報を、前記記憶した暗号化情報から削除することで、前記紛失通信を用いてユーザから選択されたインデックスに対応する暗号化情報を検索する情報削除検索ステップと、
    前記情報削除検索ステップが暗号化情報を削除した後、削除されずに残った暗号化情報の順序を入れ替える情報順序入れ替えステップと、
    を備えることを特徴とするデータ検索方法。
  5. コンピュータを、請求項1に記載のデータ検索システムにおける第3の情報処理装置として機能させるためのプログラムであって
    削除対象の暗号化情報とは別個に暗号化されているインデックスであって、かつ、前記削除対象の暗号化情報に対応するインデックスを特定する、不可逆演算により生成された削除鍵を記憶する削除鍵記憶手段、
    前記インデックス及び前記暗号化情報を受信して記憶し、前記記憶したインデックスのうち、前記削除鍵記憶手段が記憶した削除鍵により特定されるインデックスを、紛失通信においてユーザにより選択されたインデックス以外のインデックスとして特定するインデックス特定手段、
    前記インデックス特定手段により特定されるインデックスに対応する暗号化情報を、前記記憶した暗号化情報から削除することで、前記紛失通信を用いてユーザから選択されたインデックスに対応する暗号化情報を検索する情報削除検索手段、
    前記情報削除検索手段が暗号化情報を削除した後、削除されずに残った暗号化情報の順序を入れ替える情報順序入れ替え手段、
    として機能させることを特徴とするプログラム。
JP2005316865A 2005-10-31 2005-10-31 データ検索システム、情報処理装置、データ検索方法、及び、プログラム。 Expired - Fee Related JP4837362B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005316865A JP4837362B2 (ja) 2005-10-31 2005-10-31 データ検索システム、情報処理装置、データ検索方法、及び、プログラム。

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005316865A JP4837362B2 (ja) 2005-10-31 2005-10-31 データ検索システム、情報処理装置、データ検索方法、及び、プログラム。

Publications (2)

Publication Number Publication Date
JP2007124520A JP2007124520A (ja) 2007-05-17
JP4837362B2 true JP4837362B2 (ja) 2011-12-14

Family

ID=38147825

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005316865A Expired - Fee Related JP4837362B2 (ja) 2005-10-31 2005-10-31 データ検索システム、情報処理装置、データ検索方法、及び、プログラム。

Country Status (1)

Country Link
JP (1) JP4837362B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739400B (zh) * 2008-11-11 2014-08-13 日电(中国)有限公司 生成索引的方法和装置以及检索方法和装置
US8131738B2 (en) * 2008-12-30 2012-03-06 International Business Machines Corporation Search engine service utilizing hash algorithms
JP5557683B2 (ja) * 2010-10-07 2014-07-23 三菱電機株式会社 情報検索装置および情報検索方法
EP2899648A1 (en) * 2012-09-20 2015-07-29 Kabushiki Kaisha Toshiba Data processing device, data management system, data processing method, and program
US8943331B2 (en) * 2012-12-28 2015-01-27 Alcatel Lucent Privacy-preserving database system
JP6287964B2 (ja) * 2015-06-09 2018-03-07 株式会社デンソー ソフトウェア複製防止システム
WO2019216872A1 (en) * 2018-05-07 2019-11-14 Google Llc Private information retrieval with sublinear public-key operations
CN114840739B (zh) * 2022-05-25 2023-12-22 中国电信股份有限公司 信息检索方法、装置、电子设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050038819A1 (en) * 2000-04-21 2005-02-17 Hicken Wendell T. Music Recommendation system and method
JP4006214B2 (ja) * 2001-01-26 2007-11-14 株式会社日立製作所 データ検索システム、データ中継サーバ、データベースサーバおよびデータベースのアクセス方法
JP3871301B2 (ja) * 2001-05-15 2007-01-24 インターナショナル・ビジネス・マシーンズ・コーポレーション データベース検索装置、及びプログラム
JP4392489B2 (ja) * 2001-07-12 2010-01-06 独立行政法人情報通信研究機構 データベース情報処理方法及びプライベートインフォメーションリトリーバル装置並びにそのプログラム
JP3907184B2 (ja) * 2002-06-17 2007-04-18 インターナショナル・ビジネス・マシーンズ・コーポレーション データベース検索システム及びデータ共有システム
US6829599B2 (en) * 2002-10-02 2004-12-07 Xerox Corporation System and method for improving answer relevance in meta-search engines
JP4291130B2 (ja) * 2003-12-24 2009-07-08 Necソフト株式会社 紛失通信方法
JP2005284915A (ja) * 2004-03-30 2005-10-13 Canon Inc 情報検索装置および方法、ならびに情報検索システムおよびその制御方法

Also Published As

Publication number Publication date
JP2007124520A (ja) 2007-05-17

Similar Documents

Publication Publication Date Title
JP4837362B2 (ja) データ検索システム、情報処理装置、データ検索方法、及び、プログラム。
US20230291784A1 (en) Method and apparatus for storing information in a browser storage area of a client device
US6920560B2 (en) Secure network user states
US6601170B1 (en) Secure internet user state creation method and system with user supplied key and seeding
JP5417092B2 (ja) 暗号化属性を用いて高速化された暗号法
JP7132350B2 (ja) ブラウザクッキーの置換えとしてのドメイン固有ブラウザ識別子
US20130117861A1 (en) System allowing the display of a private computer file on a screen of a telecommunications terminal and corresponding method
US7908374B2 (en) Device, method and program for providing matching service
US9244864B2 (en) Information providing system, information processing apparatus, computer readable medium, and information providing method for providing encrypted information
WO2019217031A1 (en) Contact discovery service with privacy aspect
JP6619401B2 (ja) データ検索システム、データ検索方法およびデータ検索プログラム
JP2004126639A (ja) データ管理システム、データ管理方法及びプログラム
JP6961324B2 (ja) 検索可能暗号処理システム
CN103853943B (zh) 程序保护方法及装置
CN109067805B (zh) 直播间数据的防爬虫方法、装置、终端及可读介质
JP4920804B1 (ja) 通信装置、リマインダ装置、ならびに、情報記録媒体
WO2021163960A1 (zh) 基于区块链的随机数生成方法、系统及存储介质
CN104866773B (zh) 一种指纹搜索方法、装置及终端
KR20040097016A (ko) 암호화를 활용한 웹저장공간 제공 서비스 시스템 및 방법
JP2022545847A (ja) 安全な識別情報検索のためのシステムおよび方法
JPWO2011058629A1 (ja) 情報管理システム
KR20220152954A (ko) 스마트 계약을 이용한 신뢰실행환경의 데이터 처리 방법
JP4452105B2 (ja) 復号情報生成装置及びそのプログラム、配信用コンテンツ生成装置及びそのプログラム、並びに、コンテンツ復号装置及びそのプログラム
JP2003296331A (ja) データ検索方法、データ検索システム、検索キーワード生成装置、及びコンピュータプログラム
JP2008140202A (ja) 情報提供制御装置、情報提供制御方法、及び、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080327

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110825

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110927

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110928

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141007

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4837362

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees