(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023184362
(43)【公開日】2023-12-28
(54)【発明の名称】秘匿検索システム、秘匿検索方法
(51)【国際特許分類】
G09C 1/00 20060101AFI20231221BHJP
G06F 16/903 20190101ALI20231221BHJP
【FI】
G09C1/00 660D
G06F16/903
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2022098483
(22)【出願日】2022-06-17
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜弁理士法人
(72)【発明者】
【氏名】渡辺 大
(72)【発明者】
【氏名】吉野 雅之
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA10
(57)【要約】 (修正有)
【課題】データ利用者装置のデータ利用が適切かどうかについて把握し、社会的な観点で貢献する。
【解決手段】秘匿情報処理システムにおいて、秘匿検索データ管理者装置は、第一の秘密鍵で暗号化された暗号文データと、データ所有者装置の所有者IDとを第一のデータベースに保管する。データ利用者装置は、第一の秘密鍵と、第一の秘密鍵に紐づけられた暗号文データの検索に用いる検索鍵とを保管する。データ監視者装置は、所有者IDと、報告先の情報とを第二のデータベースに保管する。データ利用者装置は、検索鍵で暗号化した暗号文検索クエリをデータ管理者装置に送信する。データ管理者装置は、暗号文検索クエリを受信した際に、暗号文データに紐づけられた所有者IDと、暗号文検索クエリとを監視者装置に送信する。監視者装置は、暗号文検索クエリを登録し、暗号文検索クエリの一覧を送信し、データ所有者装置は、暗号文検索クエリの一覧を取得する。
【選択図】
図8
【特許請求の範囲】
【請求項1】
データ所有者装置と、データ利用者装置と、データ管理者装置と、監視者装置と、を備え、共通鍵暗号を用いる秘匿検索システムであって、
前記データ管理者装置は、
第一のデータベースを備え、
前記データ所有者装置が所持するデータに関し、第一の秘密鍵で暗号化された暗号文データと、前記データ所有者装置の所有者IDと、を前記第一のデータベースに保管し、
前記データ利用者装置は、
前記第一の秘密鍵と、前記第一の秘密鍵に紐づけられた前記暗号文データの検索に用いる検索鍵と、を保管し、
前記データ監視者装置は、
第二のデータベースを備え、
前記データ所有者装置の所有者IDと、前記データ所有者装置の所有者への報告先の情報と、を前記第二のデータベースに保管し、
前記データ利用者装置は、
データ検索実行の際に、前記検索鍵で暗号化した暗号文検索クエリを前記データ管理者装置に送信し、
前記データ管理者装置は、
前記暗号文検索クエリを受信した際に、前記第一のデータベースから前記暗号文検索クエリに合致する前記暗号文データを抽出し、前記暗号文データに紐づけられた前記データ所有者装置の所有者IDと、前記暗号文検索クエリと、を組として前記監視者装置に送信し、
前記第二のデータベースは、検索ログとして記録する、前記データ所有者装置の所有者ID、前記報告先、前記暗号文検索クエリのエントリを含み、
前記監視者装置は、
前記データ管理者装置からデータを受信した際に、前記データ所有者装置の所有者IDをキーとして、前記第二のデータベースに前記暗号文検索クエリを登録し、
前記監視者装置は、
期間をおいて、前記第二のデータベースに蓄積した前記検索ログから、前記データ所有者装置の所有者IDに紐づけられた前記暗号文検索クエリの一覧を抽出し、前記データ所有者装置に送信し、
前記データ所有者装置は、
前記監視者装置から送信された前記暗号文検索クエリの一覧を取得する、
ことを特徴とする秘匿検索システム。
【請求項2】
請求項1に記載の秘匿検索システムであって、
前記データ管理者装置は、
前記データ利用者装置から送信された前記暗号文検索クエリに合致する暗号文データを、前記データ利用者装置に送信し、
前記データ利用者装置は、
受信した前記暗号文データを前記第一の秘密鍵で復号する、
ことを特徴とする秘匿検索システム。
【請求項3】
請求項1に記載の秘匿検索システムであって、
前記データ管理者装置は、
前記データ利用者装置から送信された前記暗号文検索クエリに合致する暗号文データを、前記監視者装置に送信し、
前記監視者装置は、
前記暗号文データを前記データ利用者装置に転送し、
前記データ利用者装置は、
受信した前記暗号文データを前記第一の秘密鍵で復号する、
ことを特徴とする秘匿検索システム。
【請求項4】
請求項1に記載の秘匿検索システムであって、
前記第一のデータベースが保管する前記データ所有者装置の所有者IDは、第二の秘密鍵で暗号化されており、
前記監視者装置は、
前記第二の秘密鍵を保管し、
受信した前記データ所有者装置の所有者IDを前記第二の秘密鍵で復号してから、前記第二のデータベースに前記検索ログの登録を行う、
ことを特徴とする秘匿検索システム。
【請求項5】
請求項2に記載の秘匿検索システムであって、
前記第一のデータベースが保管する前記データ所有者装置の所有者IDは、第二の秘密鍵で暗号化されており、
前記監視者装置は、
前記第二の秘密鍵を保管し、
受信した前記データ所有者装置の所有者IDを前記第二の秘密鍵で復号してから、前記第二のデータベースに前記検索ログの登録を行う、
ことを特徴とする秘匿検索システム。
【請求項6】
請求項3に記載の秘匿検索システムであって、
前記第一のデータベースが保管する前記データ所有者装置の所有者IDは、第二の秘密鍵で暗号化されており、
前記監視者装置は、
前記第二の秘密鍵を保管し、
受信した前記データ所有者装置の所有者IDを前記第二の秘密鍵で復号してから、前記第二のデータベースに前記検索ログの登録を行う、
ことを特徴とする秘匿検索システム。
【請求項7】
請求項1に記載の秘匿検索システムであって、
前記データ所有者装置および前記データ管理者装置は、
第三の秘密鍵を保管し、
前記データ管理者装置は、
前記暗号文検索クエリを前記第三の秘密鍵で暗号化してから送信し、
前記データ所有者装置は、
取得した前記暗号文検索クエリを前記第三の秘密鍵で復号する、
ことを特徴とする秘匿検索システム。
【請求項8】
請求項2に記載の秘匿検索システムであって、
前記データ所有者装置および前記データ管理者装置は、
第三の秘密鍵を保管し、
前記データ管理者装置は、
前記暗号文検索クエリを前記第三の秘密鍵で暗号化してから送信し、
前記データ所有者装置は、
取得した前記暗号文検索クエリを前記第三の秘密鍵で復号する、
ことを特徴とする秘匿検索システム。
【請求項9】
請求項3に記載の秘匿検索システムであって、
前記データ所有者装置および前記データ管理者装置は、
第三の秘密鍵を保管し、
前記データ管理者装置は、
前記暗号文検索クエリを前記第三の秘密鍵で暗号化してから送信し、
前記データ所有者装置は、
取得した前記暗号文検索クエリを前記第三の秘密鍵で復号する、
ことを特徴とする秘匿検索システム。
【請求項10】
請求項4に記載の秘匿検索システムであって、
前記データ所有者装置および前記データ管理者装置は、
第三の秘密鍵を保管し、
前記データ管理者装置は、
前記暗号文検索クエリを前記第三の秘密鍵で暗号化してから送信し、
前記データ所有者装置は、
取得した前記暗号文検索クエリを前記第三の秘密鍵で復号する、
ことを特徴とする秘匿検索システム。
【請求項11】
請求項5に記載の秘匿検索システムであって、
前記データ所有者装置および前記データ管理者装置は、
第三の秘密鍵を保管し、
前記データ管理者装置は、
前記暗号文検索クエリを前記第三の秘密鍵で暗号化してから送信し、
前記データ所有者装置は、
取得した前記暗号文検索クエリを前記第三の秘密鍵で復号する、
ことを特徴とする秘匿検索システム。
【請求項12】
請求項6に記載の秘匿検索システムであって、
前記データ所有者装置および前記データ管理者装置は、
第三の秘密鍵を保管し、
前記データ管理者装置は、
前記暗号文検索クエリを前記第三の秘密鍵で暗号化してから送信し、
前記データ所有者装置は、
取得した前記暗号文検索クエリを前記第三の秘密鍵で復号する、
ことを特徴とする秘匿検索システム。
【請求項13】
請求項1に記載の秘匿検索システムであって、
前記データ所有者装置は、
ディスプレイを備え、
取得した前記暗号文検索クエリの一覧に基づいて、前記データ利用者装置によるデータ検索実行に関する内容を前記ディスプレイに表示する、
ことを特徴とする秘匿検索システム。
【請求項14】
請求項13に記載の秘匿検索システムであって、
前記データ所有者装置は、
データの利用範囲を規定した規約を保管し、
前記規約に準拠していない、もしくは、準拠していることが明確でない前記データ利用者装置によるデータ検索実行に関する内容について、アラート文を前記ディスプレイに表示する、
ことを特徴とする秘匿検索システム。
【請求項15】
データ所有者装置と、データ利用者装置と、第一のデータベースを備えるデータ管理者装置と、第二のデータベースを備える監視者装置を用いて行う秘匿検索方法であって、
前記秘匿検索方法は、
共通鍵暗号を用いた方法であり、登録フェーズと、検索フェーズと、報告フェーズと、を含み、
前記登録フェーズは、
前記データ所有者装置の使用者が、所持するデータを第一の秘密鍵で暗号化して、前記データ所有者装置の所有者IDと共に前記データ管理者装置に委託し、前記第一のデータベースに委託されたデータを保管するステップと、
前記データ所有者装置の使用者が、前記データ利用者装置に前記第一の秘密鍵と、第一の秘密鍵に紐づけられた暗号文データを検索するための検索鍵を委託するステップと、
前記データ所有者装置の使用者が、前記データ所有者装置の所有者IDと報告先の情報を前記監視者装置に事前に連絡し、前記データ所有者装置の所有者ID、前記データ所有者装置の使用者への連絡先、クエリを、エントリとして含み、検索ログを記録する前記第二のデータベースに連絡を受けた情報を保管するステップと、を含み、
前記検索フェーズは、
前記データ利用者装置が、検索実行の際に検索クエリを前記検索鍵で暗号化した暗号文検索クエリを前記データ管理者装置に送信するステップと、
前記データ管理者装置が、前記暗号文検索クエリを受信すると、前記第一のデータベースから前記暗号文検索クエリに合致する暗号文データを抽出し、暗号文データに紐づけられた前記データ所有者装置の所有者ID、前記暗号文検索クエリを組として前記監視者装置に送信するステップと、
前記監視者装置が、前記データ管理者装置からデータを受信すると、前記データ所有者装置の所有者IDをキーとして、前記第二のデータベースに前記暗号文検索クエリを登録するステップと、を含み、
前記報告フェーズは、
前記監視者装置が、前記データ所有者装置に対して、期間をおいて前記第二のデータベースに蓄積した検索ログから所有者IDに紐づけられた暗号文検索クエリの一覧を抽出し、前記データ所有者装置に送信するステップと、
前記データ所有者装置が、受信した前記暗号文検索クエリの一覧を取得するステップと、を含む、
ことを特徴とする秘匿検索方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、秘匿検索システム、および、秘匿検索方法に関する。
【背景技術】
【0002】
計算機能力の拡大および情報処理技術の進展により、複数の企業や個人が所有するデータを集積、分析することで有用な知見を得るデータ解析が社会の運用において重要な役割を担うようになってきた。その一方で、これらのデータには機微な情報が多数含まれるため、開示に消極的なデータ所有者装置も多い。データ活用と個々の情報の秘匿性を両立する技術として、秘匿情報処理技術が研究開発されている。秘匿情報処理技術の一端として、暗号化されたデータを復号せずに検索する秘匿検索技術がある。秘匿検索技術は情報処理の中でも基本的な検索機能に特化した技術で、データ所有者装置がクラウドストレージ等のデータ管理者装置にデータの保管を委託し、必要なデータを適宜抽出して利用することを想定している。
【0003】
例えば、特許文献1では、秘密分散技術をベースにした秘匿計算について、処理の証跡を取る方法を開示している。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】国際特許出願公開第2021/014611号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
秘匿検索の実現方法は複数あるが、公開鍵暗号技術を用いる方法は、処理速度が大幅に低下し、また、暗号化によりデータサイズが大幅に増大することから、大量なデータへ適用することは容易ではないと考えられる。その一方で、ビッグデータ分析では、データ所有者装置とデータ利用者装置が異なるケースが多々あり、共通鍵暗号技術をベースとした方式では、データ所有者装置は検索やデータの復号の実行に必要な秘密鍵をデータ利用者装置に開示する必要がある。この場合、データ利用者装置はデータ所有者装置が許諾した範囲を超えてデータを利用するリスクがある。
【0006】
そこで、本発明は、データ利用者装置のデータ利用が適切であるかどうかについて把握し、社会的な観点で(すなわち、セキュリティの観点で)貢献することができる秘匿検索システムおよび秘匿検索方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の第1の態様によれば、下記の秘匿検索システムが提供される。この秘匿検索システムは、データ所有者装置と、データ利用者装置と、データ管理者装置と、監視者装置と、を備え、共通鍵暗号を用いるシステムである。前記データ管理者装置は、第一のデータベースを備え、前記データ所有者装置が所持するデータに関し、第一の秘密鍵で暗号化された暗号文データと、前記データ所有者装置の所有者IDと、を前記第一のデータベースに保管する。前記データ利用者装置は、前記第一の秘密鍵と、前記第一の秘密鍵に紐づけられた前記暗号文データの検索に用いる検索鍵と、を保管する。前記データ監視者装置は、第二のデータベースを備え、前記データ所有者装置の所有者IDと、前記データ所有者装置の所有者への報告先の情報と、を前記第二のデータベースに保管する。また、前記データ利用者装置は、データ検索実行の際に、前記検索鍵で暗号化した暗号文検索クエリを前記データ管理者装置に送信し、前記データ管理者装置は、前記暗号文検索クエリを受信した際に、前記第一のデータベースから前記暗号文検索クエリに合致する前記暗号文データを抽出し、前記暗号文データに紐づけられた前記データ所有者装置の所有者IDと、前記暗号文検索クエリと、を組として前記監視者装置に送信する。前記第二のデータベースは、検索ログとして記録する、前記データ所有者装置の所有者ID、前記報告先、前記暗号文検索クエリのエントリを含み、前記監視者装置は、前記データ管理者装置からデータを受信した際に、前記データ所有者装置の所有者IDをキーとして、前記第二のデータベースに前記暗号文検索クエリを登録する。そして、前記監視者装置は、期間をおいて、前記第二のデータベースに蓄積した前記検索ログから、前記データ所有者装置の所有者IDに紐づけられた前記暗号文検索クエリの一覧を抽出し、前記データ所有者装置に送信し、前記データ所有者装置は、前記監視者装置から送信された前記暗号文検索クエリの一覧を取得する。
【0008】
本発明の第2の態様によれば、下記の秘匿検索方法が提供される。この秘匿検索方法は、データ所有者装置と、データ利用者装置と、第一のデータベースを備えるデータ管理者装置と、第二のデータベースを備える監視者装置を用いて行う方法であり、共通鍵暗号が用いられ、登録フェーズと、検索フェーズと、報告フェーズと、を含む。登録フェーズは、前記データ所有者装置の使用者が、所持するデータを第一の秘密鍵で暗号化して、前記データ所有者装置の所有者IDと共に前記データ管理者装置に委託し、前記第一のデータベースに委託されたデータを保管するステップと、前記データ所有者装置の使用者が、前記データ利用者装置に前記第一の秘密鍵と、第一の秘密鍵に紐づけられた暗号文データを検索するための検索鍵を委託するステップと、前記データ所有者装置の使用者が、前記データ所有者装置の所有者IDと報告先の情報を前記監視者装置に事前に連絡し、前記データ所有者装置の所有者ID、前記データ所有者装置の使用者への連絡先、クエリを、エントリとして含み、検索ログを記録する前記第二のデータベースに連絡を受けた情報を保管するステップと、を含む。検索フェーズは、前記データ利用者装置が、検索実行の際に検索クエリを前記検索鍵で暗号化した暗号文検索クエリを前記データ管理者装置に送信するステップと、前記データ管理者装置が、前記暗号文検索クエリを受信すると、前記第一のデータベースから前記暗号文検索クエリに合致する暗号文データを抽出し、暗号文データに紐づけられた前記データ所有者装置の所有者ID、前記暗号文検索クエリを組として前記監視者装置に送信するステップと、前記監視者装置が、前記データ管理者装置からデータを受信すると、前記データ所有者装置の所有者IDをキーとして、前記第二のデータベースに前記暗号文検索クエリを登録するステップと、を含む。前記報告フェーズは、前記監視者装置が、前記データ所有者装置に対して、期間をおいて前記第二のデータベースに蓄積した検索ログから所有者IDに紐づけられた暗号文検索クエリの一覧を抽出し、前記データ所有者装置に送信するステップと、前記データ所有者装置が、受信した前記暗号文検索クエリの一覧を取得するステップと、を含む。
【発明の効果】
【0009】
本発明によれば、データ利用者装置のデータ利用が適切であるかどうかについて把握し、社会的な観点で(すなわち、セキュリティの観点で)貢献することができる秘匿検索システムおよび秘匿検索方法が提供される。なお、上記した以外の課題、構成および効果は、以下の発明を実施するための形態の説明により明らかにされる。
【図面の簡単な説明】
【0010】
【
図1】秘匿情報処理システムの構成の一例を示す図。
【
図4】データ所有者装置の詳細を説明するための図。
【
図5】データ管理者装置の詳細を説明するための図。
【
図6】データ利用者装置の詳細を説明するための図。
【
図8】秘匿情報処理システムの処理の一例について説明するための図。
【
図9】報告レポートの形式の一例について説明するための図。
【発明を実施するための形態】
【0011】
以下、図面を参照して本発明の実施形態を説明する。実施形態は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略および簡略化がなされている。本発明は、他の種々の形態でも実施することが可能である。特に限定しない限り、各構成要素は単数でも複数でも構わない。
図面において示す各構成要素の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面に開示された位置、大きさ、形状、範囲などに限定されない。
各種情報の例として、「テーブル」、「リスト」、「キュー」等の表現にて説明することがあるが、各種情報はこれら以外のデータ構造で表現されてもよい。例えば、「XXテーブル」、「XXリスト」、「XXキュー」等の各種情報は、「XX情報」としてもよい。識別情報について説明する際に、「識別情報」、「識別子」、「名」、「ID」、「番号」等の表現を用いるが、これらについてはお互いに置換が可能である。
同一あるいは同様の機能を有する構成要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。また、これらの複数の構成要素を区別する必要がない場合には、添字を省略して説明する場合がある。
実施形態において、プログラムを実行して行う処理について説明する場合がある。ここで、計算機は、プロセッサ(例えばCPU、GPU)によりプログラムを実行し、記憶資源(例えばメモリ)やインターフェースデバイス(例えば通信ポート)等を用いながら、プログラムで定められた処理を行う。そのため、プログラムを実行して行う処理の主体を、プロセッサとしてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノードであってもよい。プログラムを実行して行う処理の主体は、演算部であれば良く、特定の処理を行う専用回路を含んでいてもよい。ここで、専用回路とは、例えばFPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)、CPLD(Complex Programmable Logic Device)等である。
プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサと配布対象のプログラムを記憶する記憶資源を含み、プログラム配布サーバのプロセッサが配布対象のプログラムを他の計算機に配布してもよい。また、実施形態において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
【0012】
実施形態では、共通鍵暗号に基づく秘匿情報処理システム(秘匿検索システム)を想定する。このような秘匿検索を実現する方法として、公知の技術(例えば、特開2012-123614号公報に開示の技術)を用いればよい。
【0013】
先ず、
図1を参照しながら、システム構成の一例について説明する。秘匿情報処理システムは、1台以上のデータ所有者装置(101)、1台以上のデータ利用者装置(102)、データ管理者装置(103)、監視者装置(104)備える。そして、これらのエンティティは、ネットワーク(105)を介して相互に接続されている。
【0014】
次に、
図2を参照しながら、システムに用いる計算機の構成の一例について説明する。計算機(201)は、一般的な計算機とされ、CPU(211)と、メモリ(212)と、ストレージ(220)と、通信インタフェース(230)と、を備える。CPU(211)は演算を実行し、所定の処理を実行する主体となる。メモリ(212)は演算結果を一時的に保管する。CPU(211)はメモリ(212)にデータを読み込んで処理を実行する。ストレージ(220)はデータを長期的に保管する。通信インタフェース(230)はネットワーク(105)と有線若しくは無線で接続され、ネットワーク(105)を介した通信に用いる。なお、本実施形態では、プロセッサとしてCPU(211)を用いる例を説明するが、所定の処理を実行することができればよく、CPUとは異なる半導体デバイスが用いられてもよい。
【0015】
本実施形態において、2者間の通信は通信路暗号機能(240)で暗号化されており、他のエンティティは盗聴できないものとする。この通信路暗号化は一般的なTLS(Transport Layer Security)などを用いれば良い。
【0016】
次に、
図3を参照しながら、各エンティティの役割について説明する。データ所有者装置(101)は、データ(301)の所有者の装置である。データ所有者装置(101)は個人の装置であっても良いし、顧客データ等を持つ法人の装置であっても良い。データ管理者装置(103)は、データ所有者装置(101)から委託されたデータ(301)を暗号化した状態で保管し、データ利用者装置(102)からの要求に応じて検索を実行し、検索結果をデータ利用者装置(102)に回答する。データ利用者装置(102)は、データ(301)の利用について、データ所有者装置(101)から一定の範囲で許諾を受けたエンティティである。データ利用者装置(102)は、データ(301)を利用するときには、データ管理者装置(103)に対して検索要求として必要な情報を取り出すクエリを送信し、データ管理者装置(103)からの検索回答である暗号文を復号して利用する。監視者装置(104)は、データ利用者装置(102)の検索を監視し、その結果をデータ所有者装置(101)に報告する。
【0017】
次に、
図4を参照しながら、データ所有者装置の機能構成、および、データ所有者装置が保持する情報の一例について説明する。
図4は、データ所有者装置(101)の使用する計算機の機能構成、および、データ所有者装置(101)が保持する情報をまとめた図である。
【0018】
データ所有者装置(101)の使用する計算機は、一般的な計算機201が具備する機能に加えて、鍵生成機能(401)および秘匿情報処理システムで保護対象のデータを暗号化し、暗号文データ(451)を出力する秘匿検索データ暗号化機能(402)を備える。また、ストレージ(220)には、保護対象のデータ(301)、および、データの利用範囲を規定した規約(411)が保存されている。また、鍵生成機能401を用いて生成した秘密鍵1(421)、秘密鍵2(422)、秘密鍵3(423)、秘密鍵1(421)に紐づけられた検索鍵1(431)、所有者ID(441)、連絡先アドレス(442)が保存されている。
【0019】
次に、
図5を参照しながら、データ管理者装置の機能構成、および、データ管理者装置が保持する情報の一例を説明する。
図5は、データ管理者装置(103)の使用する計算機の機能構成、および、データ管理者装置(103)が保持する情報をまとめた図である。
【0020】
データ管理者装置(103)の使用する計算機は、一般的な計算機(201)が具備する機能に加えて、秘匿検索暗号で暗号化されたデータと秘匿検索暗号でクエリを照合する秘匿検索暗号文照合機能(501)を具備する。また、ストレージ(220)には、データ所有者装置(101)から委託された暗号文データ(511)および暗号化されたID(512)を含むデータベース1(510)があり、また、データ所有者装置(101)と共有する秘密鍵3(523)が保存されている。
【0021】
次に、
図6を参照しながら、データ利用者装置の機能構成、および、データ利用者装置が保持する情報の一例を説明する。
図6は、データ利用者装置(102)の使用する計算機の機能構成、および、データ利用者装置(102)が保持する情報をまとめた図である。
【0022】
データ利用者装置(102)の使用する計算機は、一般的な計算機(201)が具備する機能に加えて、秘匿検索においてクエリを暗号化して暗号文クエリ(651)を出力する秘匿検索クエリ暗号化機能(601)、受信した検索結果を復号する秘匿検索データ復号機能(602)、復号したデータを用いて分析を行うデータ分析機能(603)を具備する。また、ストレージ(220)には、データ所有者装置(101)から受け取った秘密鍵1(621)および検索鍵(631)が保存されている。
【0023】
次に、
図7を参照しながら、監視者装置の機能構成、および、監視者装置が保持する情報の一例を説明する。
図7は、監視者装置(104)の使用する計算機の機能構成、および、監視者装置(104)が保持する情報をまとめた図である。
【0024】
監視者装置(104)の使用する計算機は、一般的な計算機(201)が具備する機能に加えて、所有者IDを照合する所有者ID照合機能(701)を具備する。なお、図においては、ユーザID照合機能と記載されている。また、ストレージ(220)には、所有者ID(711)と紐づけられた、ユーザの連絡先(712)および秘密鍵3で暗号化された暗号文クエリ(713)が格納されたデータベース2(710)と、データ所有者装置(101)から受け取った秘密鍵2(722)が保存されている。
【0025】
次に、
図8を参照しながら、秘匿情報処理システムの処理の一例について説明する。
図8は、本実施形態における、エンティティ間の通信プロトコルを表すメッセージシーケンスチャートである。このプロトコルは、登録(801)、検索(802)、報告(803)の3つのフェーズで構成される。以下、それぞれについて説明する。
【0026】
先ず、登録フェーズについて説明する。データ所有者装置(101)とデータ利用者装置(102)の使用者は、あらかじめデータ(301)の利用について協議を行い、その利用範囲を規約(411)にまとめ、相互のストレージに保管しておく(登録ステップ1)。
【0027】
データ所有者装置(101)は、鍵生成機能(401)を用いて秘密鍵1(421)と、それに紐づいた検索鍵1(431)を生成し、データ利用者装置(102)に送信し、また、自身のストレージ(220)に保管する。データ利用者装置(102)は、受信した秘密鍵1(621)と検索鍵1(631)をストレージ(220)に保管する(登録ステップ2)。
【0028】
データ所有者装置(101)は、鍵生成機能(401)を用いて秘密鍵2(422)を生成し、ストレージ(220)に保管する。また、秘密鍵2(422)、データ所有者装置(101)の所有者ID(441)、データ所有者装置の報告先アドレス(442)を監視者装置(104)に送信する。監視者装置(104)は、受信した秘密鍵2(722)、データ所有者装置(101)の所有者ID(441)、データ所有者装置の報告先アドレス(442)をストレージ(220)に保管する(登録ステップ3)。
【0029】
データ所有者装置(101)は、鍵生成機能(401)を用いて秘密鍵3(423)を生成し、データ管理者装置(103)に送信する。データ管理者装置(103)は、受信した秘密鍵3(523)をストレージ(220)に保管する(登録ステップ4)。
【0030】
データ所有者装置(101)は、秘匿検索データ暗号化機能(402)と秘密鍵1(421)を用いてデータ(301)を暗号化し、暗号文データ(451)を生成する。また、秘密鍵2(422)を用いて所有者ID(441)を暗号化し、暗号文ID(452)を生成する。データ所有者装置(101)は、暗号文データ(451)と暗号文ID(452)を対にしてデータ管理者装置(103)に送信する。データ管理者装置(103)は、受信した暗号文データ(451)と暗号文ID(452)と登録ステップ4で受信した秘密鍵3(523)を紐づけ、データベース1(510)に保管する(登録ステップ5)。
【0031】
次に、検索フェーズについて説明する。データ利用者装置(102)は、検索鍵1(631)を使って検索クエリを暗号化した暗号文クエリ(651)を生成し、データ管理者装置(103)に送信する(検索ステップ1)。
【0032】
データ管理者装置(103)は、受信した暗号文クエリ(651)で暗号文データ(511)が保管されているデータベース1(510)を検索し、検索にヒットした暗号文データ(511)と暗号文所有者ID(512)の対を監視者装置(104)に送信する。また、秘密鍵3(523)で暗号化した暗号文クエリ(651)を監視者装置(104)に送信する(検索ステップ2)。
【0033】
監視者装置(104)は、受信した暗号文データ(511)をデータ利用者装置(102)に送信する(検索ステップ3)。
【0034】
監視者装置(104)は、受信した暗号文ID(512)を、秘密鍵2(722)を用いて復号し、該当する所有者ID(711)に秘密鍵3で暗号化された検索クエリ(651)を紐づける(検索ステップ4)。
【0035】
データ利用者装置(102)は、受信した暗号文データ(511)を秘密鍵1(621)で復号し、データ利用者装置(102)の使用者は、該データを利用する(検索ステップ5)。
【0036】
次に、報告フェーズについて説明する。監視者装置(104)は、データ所有者装置ごとに、検索ステップ4で蓄積した秘密鍵3で暗号化された検索クエリ(713)のリストから、所有者ID(711)に紐づけられたデータを抽出し、同じく所有者ID(711)に紐づけられたデータ所有者装置の連絡先アドレス(712)に暗号文クエリ(713)のリストを送信する(報告ステップ1)。
【0037】
データ所有者装置(101)は、受信した秘密鍵3で暗号化された暗号文クエリ(713)のリストを秘密鍵3(423)で復号し、規約(411)に照らし合わせて、利用範囲を超えた利用の有無を確認する(報告ステップ2)。
【0038】
本実施形態によれば、データ利用者装置(102)が知りえる情報は検索結果として得られたデータの部分情報のみである。また、検索内容はデータ所有者装置(101)に知られるため、データ利用者装置(102)による無制限なデータ(301)の利用を抑止できると考えられる。データ管理者装置(103)は、共通鍵暗号ベースの従来の秘匿検索データベースとして知りえる以上の情報を得ることは無い。また、監視者装置(104)は暗号化された検索クエリと所有者IDを受信するが、検索クエリ自体は暗号化されているため、有用な情報を得ることはできない。
【0039】
なお、以下のようにしてもよい。本実施形態では、登録ステップ2において、データ所有者装置(101)が秘密鍵1(421)と検索鍵1(431)を生成しているが、この鍵はデータ利用者装置(102)が生成しても良い。この場合、データ利用者装置(102)は、生成した秘密鍵1(421)をデータ所有者装置(101)に送信する。また、データ所有者装置(101)は、登録ステップ5において、受信した秘密鍵1(421)でデータ(301)を暗号化し、暗号文データ(451)を生成する。
【0040】
また、本実施形態では、検索ステップ1において、データ利用者装置(102)はデータ管理者装置(103)に暗号文クエリ(651)を送信しているが、データ利用者装置(102)は監視者装置(104)に暗号文クエリ(651)を送信し、監視者装置(104)がデータ管理者装置(103)に暗号文クエリ(651)を転送しても良い。また、検索ステップ2において、データ管理者装置(103)は、暗号文データ(511)をデータ利用者装置(102)に送信しても良い。この場合、検索ステップ103において、監視者装置(104)が暗号文データ(511)をデータ利用者装置(102)に送信することが省略されても良い。
【0041】
また、本実施形態では、データ所有者装置(101)はデータ(301)を直接利用しないため、登録フェーズが完了した段階で、データ所有者装置(101)から平文のデータ(301)を削除しても良い。同様に、秘密鍵1(421)、秘密鍵2(422)も自身では使用しないため、データ所有者装置(101)から削除しても良い。
【0042】
また、本実施形態においてデータ利用者装置が複数である場合に、本実施形態の検索ステップ1において、データ利用者装置(102)がデータ監視者装置(104)に暗号文クエリ(651)と共にデータ利用者装置のID情報を送信し、データ管理者装置(103)は、受信したデータ利用者装置のID情報を秘密鍵3(523)で暗号化して監視者装置(104)に送信し、監視者装置(104)は秘密鍵3(523)で暗号化されたデータ利用者装置のID情報を暗号文のリストと共にデータ所有者装置(101)に送信しても良い。これにより、データ所有者装置(101)は、それぞれのクエリを実行したデータ利用者装置を特定することができる。すなわち、個々のデータ利用者装置について、許諾の範囲を超えたデータ利用があったかどうかを確認することができる。
【0043】
次に、
図9を参照しながら、報告レポートの形式の一例について説明する。
図9は、本実施例の報告ステップ2において、データ所有者装置(101)が受信、復号した報告の表示例である。ここで、
図4に記載のデータ所有者装置(101)は、さらに情報を表示するディスプレイ(910)と、検索クエリが規約に準拠しているか判定する検索クエリ判定機能(920)とを具備する。
【0044】
検索クエリ判定機能(920)は、復号された検索ログのエントリ(940)ごとに、規約(411)への準拠性を判定し、ディスプレイ(910)に出力する。ディスプレイ(910)に表示される項目としては、たとえば、クエリが発行された時刻(941)、データ利用者のID(942)、検索コマンド(943)、1つ以上の検索キーワード(944)がある。
【0045】
ディスプレイ上では、規約に準拠していない、もしくは準拠していることが明確でないエントリに対して、色やフォントで強調したり、アラート文(950)を表示したりすることで、データ所有者に対する視認の容易性を高めることができる。また、デフォルトでは規約に準拠していないエントリのみ表示しても良い。また、規約に準拠していないエントリの比率など、統計的な情報を表示しても良い。
【0046】
データ利用者が検索キーワードの開示を望まない場合には、規約でその旨を定め、検索ステップ2において、データ管理者装置(103)が検索クエリからキーワードを取り除いても良い。
【0047】
時刻情報(941)は、検索ステップ1において、データ利用者装置(102)が送信時の時刻を送信情報に付加しても良い。また、検索ステップ2において、データ管理者装置(103)が受信時の時刻を送信情報に付加しても良い。
【0048】
以上、本発明の実施形態について詳述したが、本発明は、前記の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の精神を逸脱しない範囲で、種々の設計変更を行うことができるものである。例えば、前記した実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。さらに、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0049】
各種の機能は、一例として、プログラムをプロセッサが実行することで実現される。ここで、プログラムはストレージに格納され、プロセッサがデータをメモリに読み出して所定の処理を実行してもよい。また、プログラムは、外部装置の記憶媒体からネットワーク経由、可搬型記憶媒体経由等により取得されてもよい。
【符号の説明】
【0050】
105…ネットワーク、211…CPU、212…メモリ、220…ストレージ、230…通信インターフェース、240…通信路暗号機能、401…鍵生成機能、402…秘匿検索データ暗号化機能