(57)【特許請求の範囲】
【請求項１】
複数の情報処理装置と、サーバ装置とを有する情報処理システムであって、
各情報処理装置は、
他の情報処理装置との間で共有され更新されていく秘密情報を更新の度に記憶する秘密情報記憶部と、
データの生成を指示するデータ生成指示と、データの検索を指示するデータ検索指示とを入力する指示入力部と、
前記データ生成指示の入力があった際に、前記データ生成指示の入力時点で最新の秘密情報である生成時秘密情報で第１の演算を行って、生成時第１演算値データを生成し、前記データ検索指示の入力があった際に、前記データ検索指示の入力時点で最新の秘密情報である検索時秘密情報で第１の演算を行って、前記検索時秘密情報に先行する先行世代の秘密情報で第１の演算を行った場合に得られる先行第１演算値データを先行世代の秘密情報を用いた第１の演算を伴わない前記サーバ装置における第２の演算により導出可能な検索時第１演算値データを生成する第１演算実行部と、
前記第１演算実行部により生成された検索時第１演算値データを前記サーバ装置に送信する送信部とを有し、
前記サーバ装置は、
情報処理装置により生成された生成時第１演算値データ又は生成時第１演算値データに対して所定の演算がなされた後のデータを登録データとして記憶する登録データ記憶部と、
情報処理装置から送信された検索時第１演算値データを受信する受信部と、
前記受信部により受信された検索時第１演算値データで第２の演算を行って、先行第１演算値データを先行世代の各々に対して生成する第２演算実行部と、
検索時第１演算値データ及び前記第２演算実行部により生成された先行第１演算値データの少なくともいずれかと、前記登録データ記憶部内の登録データとを用いてデータの検索を行うデータ検索部とを有することを特徴とする情報処理システム。
【請求項２】
前記サーバ装置において、
前記第２演算実行部は、
前記検索時第１演算値データで第２の演算を行って、前記検索時秘密情報の１つ前の世代の秘密情報で第１の演算を行った場合に得られる先行第１演算値データを生成し、以降、生成した先行第１演算値データで第２の演算を行う処理を繰返すことにより秘密情報の世代を順次遡って先行世代の各々の先行第１演算値データを生成することを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記サーバ装置において、
前記登録データ記憶部は、
情報処理装置により生成された生成時第１演算値データを登録データとして記憶し、
前記データ検索部は、
検索時第１演算値データ及び先行第１演算値データの少なくともいずれかと、前記登録データ記憶部内の生成時第１演算値データとを用いてデータの検索を行うことを特徴とする請求項１又は２に記載の情報処理システム。
【請求項４】
各情報処理装置において、
前記指示入力部は、
平文の登録対象キーワードを含み、前記サーバ装置に内容を秘匿する暗号化キーワードを登録対象キーワードから生成するよう指示するデータ生成指示と、平文の検索対象キーワードを含み、検索対象キーワードを用いて暗号化キーワードを検索するよう指示するデータ検索指示とを入力し、
前記第１演算実行部は、
前記データ生成指示の入力があった際に、前記生成時秘密情報と前記登録対象キーワードで第１の演算を行って、生成時第１演算値データとして登録暗号化キーワードを生成し、前記データ検索指示の入力があった際に、前記検索時秘密情報と検索対象キーワードで第１の演算を行って、検索時第１演算値データを生成し、
前記サーバ装置において、
前記登録データ記憶部は、
情報処理装置により生成された登録暗号化キーワードと登録暗号化キーワードに関連するＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）情報とを対応付けて登録データとして記憶し、
前記データ検索部は、
検索時第１演算値データ及び先行第１演算値データのうちのいずれかと値が一致する登録暗号化キーワードに対応付けられているＩＤ情報を検索することを特徴とする請求項３に記載の情報処理システム。
【請求項５】
各情報処理装置は、更に、
前記第１演算実行部により生成された生成時第１演算値データで第３の演算を行って第３演算値データを生成する第３演算実行部を有し、
前記サーバ装置において、
前記登録データ記憶部は、
情報処理装置により生成された第３演算値データを登録データとして記憶し、
前記データ検索部は、
検索時第１演算値データ及び先行第１演算値データの各々で第３の演算を行って各々の第１演算値データに対応する第３演算値データを生成し、生成した第３演算値データの少なくともいずれかと、前記登録データ記憶部内の第３演算値データとを用いてデータの検索を行うことを特徴とする請求項１〜４のいずれかに記載の情報処理システム。
【請求項６】
各情報処理装置において、
前記指示入力部は、
平文の登録対象キーワードを含み、前記サーバ装置に内容を秘匿する暗号化キーワードを登録対象キーワードから生成するよう指示するデータ生成指示と、平文の検索対象キーワードを含み、検索対象キーワードを用いて暗号化キーワードを検索するよう指示するデータ検索指示とを入力し、
前記第１演算実行部は、
前記データ生成指示の入力があった際に、前記生成時秘密情報と前記登録対象キーワードで第１の演算を行って、生成時第１演算値データを生成し、前記データ検索指示の入力があった際に、前記検索時秘密情報と検索対象キーワードで第１の演算を行って、検索時第１演算値データを生成し、
前記第３演算実行部は、
前記第１演算実行部により生成された生成時第１演算値データで第３の演算を行って、第３演算値データとして登録暗号化キーワードを生成し、
前記サーバ装置において、
前記登録データ記憶部は、
情報処理装置により生成された登録暗号化キーワードと登録暗号化キーワードに関連するＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）情報とを対応付けて登録データとして記憶し、
前記データ検索部は、
検索時第１演算値データ及び先行第１演算値データの各々で第３の演算を行って各々の第１演算値データに関連する第３演算値データを生成し、生成した第３演算値データのうちのいずれかと値が一致する登録暗号化キーワードに対応付けられているＩＤ情報を検索することを特徴とする請求項５に記載の情報処理システム。
【請求項７】
前記情報処理装置において、
前記第１演算実行部は、
第１の演算として、べき乗剰余演算を行い、
前記サーバ装置において、
前記第２演算実行部は、
第２の演算として、べき乗剰余演算を行うことを特徴とする請求項１〜６のいずれかに記載の情報処理システム。
【請求項８】
前記情報処理装置において、
前記第１演算実行部は、
生成時第１演算値データ又は検索時第１演算値データをｔｄｉとし、生成時秘密情報又は検索時秘密情報をｋｉとし、生成時秘密情報又は検索時秘密情の世代数の値をｉとし、キーワードをＷとし、秘密情報の世代数の最大値をｑとし、秘密情報の生成に用いられるパラメータをｅ１、ｅ２及びＮとした場合に、
ｔｄｉ＝（ｋｉ×ｗ＾（ｅ１ｑ−ｉ））ｅ２  ｍｏｄＮ
（＾はべき乗を表し、ｍｏｄはモジュロ演算子を表す）
により第１の演算を行って、生成時第１演算値データ又は検索時第１演算値データを生成し、
前記サーバ装置において、
前記第２演算実行部は、
生成対象の先行第１演算値データをｔｄｊ−１とし、先行第１演算値データｔｄｊ−１に対応する秘密情報の世代数の値をｊ−１とし、世代数ｊ−１の秘密情報の１つ後の世代の秘密情報の世代数の値をｊとし、世代数ｊの秘密情報に対応する第１演算値データをｔｄｊとした場合に、
ｔｄｊ−１＝ｔｄｊｅ１  ｍｏｄＮ
により第２の演算を行って、先行第１演算値データを生成することを特徴とする請求項７に記載の情報処理システム。
【請求項９】
サーバ装置に接続される情報処理装置であって、
更新されていく秘密情報を更新の度に記憶する秘密情報記憶部と、
データの検索を指示するデータ検索指示を入力する指示入力部と、
前記データ検索指示の入力時点で最新の秘密情報である検索時秘密情報で第１の演算を行って、前記検索時秘密情報に先行する先行世代の秘密情報で第１の演算を行った場合に得られる先行第１演算値データを先行世代の秘密情報を用いた第１の演算を伴わない前記サーバ装置における第２の演算により導出可能な検索時第１演算値データを生成する第１演算実行部と、
前記第１演算実行部により生成された検索時第１演算値データを前記サーバ装置に送信する送信部とを有することを特徴とする情報処理装置。
【請求項１０】
前記第１演算実行部は、
前記サーバ装置が前記検索時第１演算値データで第２の演算を行うと前記検索時秘密情報の１つ前の世代の秘密情報で第１の演算を行った場合に得られる先行第１演算値データを生成でき、以降、生成された先行第１演算値データで第２の演算を行う処理を繰返すことにより秘密情報の世代を順次遡って先行世代の各々の先行第１演算値データを生成できる第１の演算を前記検索時秘密情報で行って、前記検索時第１演算値データを生成することを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
秘密情報が更新される度に更新後の秘密情報を記憶する情報処理装置に接続されるサーバ装置であって、
情報処理装置が、データの生成を指示するデータ生成指示を入力した時点における最新の秘密情報である生成時秘密情報で第１の演算を行って生成した生成時第１演算値データ又は生成時第１演算値データに対して所定の演算がなされた後のデータを、登録データとして記憶する登録データ記憶部と、
情報処理装置が、データの検索を指示するデータ検索指示を入力した時点における最新の秘密情報である検索時秘密情報で第１の演算を行って生成した検索時第１演算値データを、受信する受信部と、
前記受信部により受信された検索時第１演算値データで第２の演算を行って、前記検索時秘密情報に先行する先行世代の秘密情報で第１の演算を行った場合に得られる先行第１演算値データを、先行世代の秘密情報を用いた第１の演算を行わずに先行世代の各々に対して生成する第２演算実行部と、
検索時第１演算値データ及び前記第２演算実行部により生成された先行第１演算値データの少なくともいずれかと、前記登録データ記憶部内の登録データとを用いてデータの検索を行うデータ検索部とを有することを特徴とするサーバ装置。
【請求項１２】
前記第２演算実行部は、
前記検索時第１演算値データで第２の演算を行って、前記検索時秘密情報の１つ前の世代の秘密情報で第１の演算を行った場合に得られる先行第１演算値データを生成し、以降、生成した先行第１演算値データで第２の演算を行う処理を繰返すことにより秘密情報の世代を順次遡って先行世代の各々の先行第１演算値データを生成することを特徴とする請求項１１に記載のサーバ装置。
【請求項１３】
サーバ装置に接続される情報処理装置が行う情報処理方法であって、
更新されていく秘密情報を更新の度に記憶する秘密情報記憶ステップと、
データの検索を指示するデータ検索指示を入力する指示入力ステップと、
前記データ検索指示の入力があった際に、前記データ検索指示の入力時点で最新の秘密情報である検索時秘密情報で第１の演算を行って、前記検索時秘密情報に先行する先行世代の秘密情報で第１の演算を行った場合に得られる先行第１演算値データを先行世代の秘密情報を用いた第１の演算を伴わない前記サーバ装置における第２の演算により導出可能な検索時第１演算値データを生成する第１演算実行ステップと、
前記第１演算実行ステップにより生成された検索時第１演算値データを前記サーバ装置に送信する送信ステップとを有することを特徴とする情報処理方法。
【請求項１４】
秘密情報が更新される度に更新後の秘密情報を記憶する情報処理装置に接続されるサーバ装置が行う情報処理方法であって、
情報処理装置が、データの生成を指示するデータ生成指示を入力した時点における最新の秘密情報である生成時秘密情報で第１の演算を行って生成した生成時第１演算値データ又は生成時第１演算値データに対して所定の演算がなされた後のデータを、登録データとして記憶する登録データ記憶ステップと、
情報処理装置が、データの検索を指示するデータ検索指示を入力した時点における最新の秘密情報である検索時秘密情報で第１の演算を行って生成した検索時第１演算値データを、受信する受信ステップと、
前記受信ステップにより受信された検索時第１演算値データで第２の演算を行って、前記検索時秘密情報に先行する先行世代の秘密情報で第１の演算を行った場合に得られる先行第１演算値データを、先行世代の秘密情報を用いた第１の演算を行わずに先行世代の各々に対して生成する第２演算実行ステップと、
検索時第１演算値データ及び前記第２演算実行ステップにより生成された先行第１演算値データの少なくともいずれかと、前記登録データ記憶ステップにより記憶されている登録データとを用いてデータの検索を行うデータ検索ステップとを有することを特徴とする情報処理方法。
【請求項１５】
サーバ装置に接続される情報処理装置に、
更新されていく秘密情報を更新の度に記憶する秘密情報記憶処理と、
データの検索を指示するデータ検索指示を入力する指示入力処理と、
前記データ検索指示の入力があった際に、前記データ検索指示の入力時点で最新の秘密情報である検索時秘密情報で第１の演算を行って、前記検索時秘密情報に先行する先行世代の秘密情報で第１の演算を行った場合に得られる先行第１演算値データを先行世代の秘密情報を用いた第１の演算を伴わない前記サーバ装置における第２の演算により導出可能な検索時第１演算値データを生成する第１演算実行処理と、
前記第１演算実行処理により生成された検索時第１演算値データを前記サーバ装置に送信する送信処理とを実行させることを特徴とするプログラム。
【請求項１６】
秘密情報が更新される度に更新後の秘密情報を記憶する情報処理装置に接続されるサーバ装置に、
情報処理装置が、データの生成を指示するデータ生成指示を入力した時点における最新の秘密情報である生成時秘密情報で第１の演算を行って生成した生成時第１演算値データ又は生成時第１演算値データに対して所定の演算がなされた後のデータを、登録データとして記憶する登録データ記憶処理と、
情報処理装置が、データの検索を指示するデータ検索指示を入力した時点における最新の秘密情報である検索時秘密情報で第１の演算を行って生成した検索時第１演算値データを、受信する受信処理と、
前記受信処理により受信された検索時第１演算値データで第２の演算を行って、前記検索時秘密情報に先行する先行世代の秘密情報で第１の演算を行った場合に得られる先行第１演算値データを、先行世代の秘密情報を用いた第１の演算を行わずに先行世代の各々に対して生成する第２演算実行処理と、
検索時第１演算値データ及び前記第２演算実行処理により生成された先行第１演算値データの少なくともいずれかと、前記登録データ記憶処理により記憶されている登録データとを用いてデータの検索を行うデータ検索処理とを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の情報処理装置とサーバ装置とが含まれる情報処理システムに関し、特に、情報処理装置が、検索のためのキーワードをサーバ装置に秘匿した状態でサーバ装置に蓄積されているデータを検索する秘匿検索システムに関する。
【背景技術】
【０００２】
サーバ装置（以下、単にサーバともいう）に保存されたデータを、検索者がキーワードを指定して検索でき、かつその際にデータ・キーワードをサーバに対して秘匿する秘匿検索システムは、機密データ管理のアウトソーシングや、メールサーバにおける暗号化メールのフィルタリングへの応用が期待されており、種々の安全性要件を達成するための技術や、サーバや検索者のストレージ・通信オーバーヘッド・演算オーバーヘッドを削減するための様々な技術が提案されている。
さらに、複数のユーザによる検索を可能とする場合には、ユーザの加入・脱退に柔軟に対処するための技術が必要とされる。
【０００３】
非特許文献１では、ユーザが保持する秘密情報をハッシュチェーンで管理し、ユーザの加入・脱退に伴って世代が更新されるたびに新しい秘密情報を正当ユーザに配布し、正当ユーザは最新の秘密情報から過去の秘密情報を導出できるようにすることで、ユーザに必要なストレージを抑えつつ、世代更新に対応した秘匿検索を達成する方式が開示されている。
【０００４】
また、特許文献１では、データ中継サーバを利用することで、検索内容のサーバに対する秘匿を実現する秘匿検索方式が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２９７６０６号公報
【非特許文献】
【０００６】
【非特許文献１】Ｈ．Ｐａｒｋ、  Ｊ．Ｗ．Ｂｙｕｎ、  ａｎｄ  Ｄ．Ｈ．Ｌｅｅ、  “Ｓｅｃｕｒｅ  Ｉｎｄｅｘ  Ｓｅａｒｃｈ  ｆｏｒ  Ｇｒｏｕｐｓ、”  ＴｒｕｓｔＢｕｓ  ２００５、  ＬＮＣＳ  ３５９２、  ｐｐ．１２８−１４０、  ２００５．
【発明の概要】
【発明が解決しようとする課題】
【０００７】
世代更新を伴う秘匿検索システムでは、正当ユーザが、過去の世代で登録された情報を検索できるようにしたいという要求がある。
これを実現するために、非特許文献１にて開示されている方式では、検索者が最新の秘密情報から過去全ての世代の秘密情報を導出し、これらとキーワードからトラップドア（検索用の情報）を世代数分計算し、全てのトラップドアをサーバに送信し、トラップドアを受け取ったサーバが検索・取得処理を行っていた。
このため、検索者にとって計算量・通信量が世代数に比例して増大するという課題がある。
【０００８】
本発明は上記の課題を解決することを主な目的の一つとしており、検索者が用いる情報処理装置からサーバに送信すべきトラップドアの数を削減して、結果として検索者が用いる情報処理装置における計算量、情報処理装置とサーバ間の通信量を削減することを主な目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る情報処理システムは、
複数の情報処理装置と、サーバ装置とを有する情報処理システムであって、
各情報処理装置は、
他の情報処理装置との間で共有され更新されていく秘密情報を更新の度に記憶する秘密情報記憶部と、
データの生成を指示するデータ生成指示と、データの検索を指示するデータ検索指示とを入力する指示入力部と、
前記データ生成指示の入力があった際に、前記データ生成指示の入力時点で最新の秘密情報である生成時秘密情報で第１の演算を行って、生成時第１演算値データを生成し、前記データ検索指示の入力があった際に、前記データ検索指示の入力時点で最新の秘密情報である検索時秘密情報で第１の演算を行って、前記検索時秘密情報に先行する先行世代の秘密情報で第１の演算を行った場合に得られる先行第１演算値データを先行世代の秘密情報を用いた第１の演算を伴わない前記サーバ装置における第２の演算により導出可能な検索時第１演算値データを生成する第１演算実行部と、
前記第１演算実行部により生成された検索時第１演算値データを前記サーバ装置に送信する送信部とを有し、
前記サーバ装置は、
情報処理装置により生成された生成時第１演算値データ又は生成時第１演算値データに対して所定の演算がなされた後のデータを登録データとして記憶する登録データ記憶部と、
情報処理装置から送信された検索時第１演算値データを受信する受信部と、
前記受信部により受信された検索時第１演算値データで第２の演算を行って、先行第１演算値データを先行世代の各々に対して生成する第２演算実行部と、
検索時第１演算値データ及び前記第２演算実行部により生成された先行第１演算値データの少なくともいずれかと、前記登録データ記憶部内の登録データとを用いてデータの検索を行うデータ検索部とを有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、情報処理装置において、サーバ装置における第２の演算により先行第１演算値データの各々を導出可能な検索時第１演算値データを生成することで、情報処理装置からサーバ装置に送信するデータを検索時第１演算値データに限定することができ、情報処理装置において先行第１演算値データの各々を生成する必要がないので情報処理装置における計算量を抑えることができ、また、情報処理装置とサーバ装置間の通信量を削減することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係るシステム構成例を示す図。
【図２】実施の形態１に係るサーバ装置の構成例を示す図。
【図３】実施の形態１に係る情報処理装置の構成例を示す図。
【図４】実施の形態１に係るグループ管理装置の構成例を示す図。
【図５】実施の形態１に係る暗号化キーワード記憶領域における記憶内容の例を示す図。
【図６】実施の形態１に係る暗号化データ記憶領域における記憶内容の例を示す図。
【図７】実施の形態１に係る暗号鍵記憶領域における記憶内容の例を示す図。
【図８】実施の形態１に係る暗号鍵記憶領域における記憶内容の例を示す図。
【図９】実施の形態３に係る情報処理装置の構成例を示す図。
【図１０】実施の形態３に係る暗号化キーワード記憶領域における記憶内容の例を示す図。
【図１１】実施の形態１に係る暗号化データの送信・格納処理におけるデータフロー例を示す図。
【図１２】実施の形態１に係る暗号化データの検索・取得処理におけるデータフロー例を示す図。
【図１３】実施の形態２に係る暗号化データの送信・格納処理におけるデータフロー例を示す図。
【図１４】実施の形態２に係る暗号化データの検索・取得処理におけるデータフロー例を示す図。
【図１５】実施の形態３に係る暗号化データの送信・格納処理におけるデータフロー例を示す図。
【図１６】実施の形態３に係る暗号化データの検索・取得処理におけるデータフロー例を示す図。
【図１７】実施の形態１に係る暗号化データの送信処理における動作例を示すフローチャート図。
【図１８】実施の形態１に係る暗号化データの格納処理における動作例を示すフローチャート図。
【図１９】実施の形態１に係る暗号化データの検索・取得処理における動作例を示すフローチャート図。
【図２０】実施の形態１に係る暗号化データの検索・取得処理における動作例を示すフローチャート図。
【図２１】実施の形態１〜３に係るサーバ装置等のハードウェア構成例を示す図。
【発明を実施するための形態】
【００１２】
実施の形態１．
本実施の形態及び実施の形態２以降では、秘密情報やトラップドアの導出方法を工夫することで、サーバ装置が最新のトラップドアから過去のトラップドアを導出できるようにし、検索者が送信すべきトラップドアの数を削減して、結果として検索者の計算量・通信量を削減する情報処理システムについて説明する。
【００１３】
図１は、サーバ装置に保存されたデータを、複数のユーザがキーワードを指定して検索でき、かつその際にデータ・キーワードをサーバに対して秘匿する秘匿検索システムの構成例である。
図１に示すように、複数の情報処理装置３０１が、ネットワーク１０１を介してサーバ装置２０１とグループ管理装置４０１に接続している。
各装置の詳細は後述するが、ここで、各装置の概要を説明する。
【００１４】
複数の情報処理装置３０１は、グループを形成し、グループ内でデータを共用することができる。例えば、情報処理装置３０１を利用するユーザの属性（帰属組織、職務等）により、情報処理装置３０１のグループの分類が行われる。
同じグループの情報処理装置３０１は、秘密情報（例えば、暗号鍵）を共有するとともに、例えば、新規ユーザの追加、既存ユーザの脱退等に伴って秘密情報が更新されていく。
秘密情報は、グループ管理装置４０１によりユーザの追加、脱退等に従って更新され、同じグループに属する情報処理装置３０１に更新後の秘密情報が配布される。
各情報処理装置３０１では、グループ管理装置４０１から新たな秘密情報が配布される度に過去の秘密情報に上書きして保存する。
なお、秘密情報は世代数により管理される（更新により世代数の値が１つ増える）。
【００１５】
各情報処理装置３０１は、生成したデータを所定の暗号化方式により暗号化した後にサーバ装置２０１に登録する。
各情報処理装置３０１は、ユーザから暗号データの生成を指示するデータ生成指示を入力した際に、データ生成指示の入力時点の最新世代の秘密情報（生成時秘密情報）を用いて、暗号化データとともに登録するキーワード（平文）（登録対象キーワード）に対して所定の第１の演算を行ってトラップドアを生成し、更にトラップドアに対して第３の演算を行って暗号化キーワードを生成する。暗号化キーワードは、サーバ装置２０１に対して内容を秘匿化できる。
トラップドアは、後述するデータ検索段階で、データ検索要求の送信元が正当なアクセス権限を有する情報処理装置３０１（グループに属している情報処理装置３０１）であることをサーバ装置２０１において認証可能にするためのデータであり、また、検索対象のキーワードの内容を秘匿化したままサーバ装置２０１において検索対象のキーワードを特定可能にするためのデータである。
トラップドアは第１演算値データの例であり、データ生成指示入力時に生成されるトラップドアは生成時第１演算値データの例である。
また、暗号化キーワードは、第３演算値データ及び登録暗号化キーワードの例である。
なお、トラップドア、第１の演算、第３の演算の詳細は後述する。
【００１６】
そして、登録対象の暗号化データと、当該暗号化データのデータＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）、暗号化キーワード、当該暗号化キーワードの生成に用いた秘密情報（生成時秘密情報）の世代数をサーバ装置２０１に送信し、サーバ装置２０１では、これらを関連付けて記憶する。
【００１７】
そして、情報処理装置３０１では、ユーザからサーバ装置２０１に登録されている暗号化キーワードの検索、更には暗号化キーワードに関連付けられている暗号化データの検索を指示するデータ検索指示を入力した際に、データ検索指示の入力時点で最新世代の秘密情報（検索時秘密情報）を用いて、検索すべきキーワード（平文）（検索対象キーワード）に対して第１の演算を行ってトラップドアを生成する。
サーバ装置２０１では、キーワード（検索対象キーワード）から生成されたトラップドアから、当該キーワードに対応する暗号化キーワードを検索し、検索した暗号化キーワードに関連付けられている暗号化データを検索することになる。
なお、この時点で生成されるトラップドアは、検索時第１演算値データの例である。
そして、情報処理装置３０１では、トラップドアをサーバ装置２０１に送信する。
なお、このトラップドア（検索時第１演算値データ）に対してサーバ装置２０１において第２の演算を行うことにより、検索時秘密情報に先行する世代の秘密情報で第１の演算を行った場合に得られる歴代のトラップドア（先行第１演算値データ）を算出することができる。
【００１８】
サーバ装置２０１では、受信したトラップドアに対して第２の演算を行い、先行世代の秘密情報で第１の演算を行った場合に得られる先行世代のトラップドア（先行第１演算値データ）を秘密情報の世代を順次遡って生成する。
なお、第２の演算では、第１の演算は行われない。すなわち、第１の演算を行わなくても、先行世代の秘密情報で第１の演算を行った場合に得られる歴代のトラップドア（先行第１演算値データ）を得ることができる。
そして、サーバ装置２０１では、生成した先行世代のトラップドアの各々に対して第３の演算を行って暗号化キーワードの候補（第３演算値データ）を導出し、いずれかの暗号化キーワード候補と一致する暗号化キーワードを検索し、検索した暗号化キーワードから検索対象の暗号化データを抽出し、抽出した暗号化データを情報処理装置３０１に送信する。
【００１９】
以上が、各装置の概要である。
次に、図２〜図４を用いて、サーバ装置２０１、情報処理装置３０１及びグループ管理装置４０１の構成例を説明する。
【００２０】
図２は、本秘匿検索システム（図１）において、データ・キーワードを保持し、検索を行うサーバ装置２０１の構成例を表すブロック図である。
【００２１】
図２において、暗号化キーワード記憶領域２１１は、暗号化されたキーワードを、対応するデータＩＤと関連付けて記憶するデータ記憶手段である。
図５は暗号化キーワード記憶領域２１１が記憶するデータの一例を表す。
図５に示すように、暗号化キーワード記憶領域２１１は、暗号化キーワードｃを、対応する暗号化データのデータＩＤと、暗号化キーワードの生成に用いられた秘密情報の世代数と関連付けて記憶している。
なお、本実施の形態では、暗号化キーワードが登録データの例となり、登録データの例である暗号化キーワードを記憶している暗号化キーワード記憶領域２１１は登録データ記憶部の例である。
【００２２】
暗号化データ記憶領域２１２は、暗号化されたデータを、対応するデータＩＤと関連付けて記憶するデータ記憶手段である。
図６は暗号化データ記憶領域２１２が記憶するデータの一例を表す。
図６に示すように、暗号化データ記憶領域２１２は、情報処理装置３０１からの暗号化データｄを、そのデータＩＤと関連付けて記憶する。
【００２３】
トラップドア生成部２２１は、情報処理装置３０１から受信したトラップドアで第２の演算を行って、過去の世代のトラップドアを順次生成する手段である。
トラップドア生成部２２１は、第２演算実行部の例である。
【００２４】
比較部２２２は、トラップドア生成部２２１が生成した複数のトラップドアで第３の演算を行って暗号化キーワード候補を生成し、生成した暗号化キーワード候補と、暗号化キーワード記憶領域２１１に記憶されている暗号化キーワードを比較し、情報処理装置３０１の指定したキーワードに合致する暗号化キーワードを暗号化キーワード記憶領域２１１から検索する手段である。
比較部２２２は、データ検索部の例である。
【００２５】
通信部２３１は、情報処理装置３０１やグループ管理装置４０１と通信を行う手段である。
通信部２３１は、受信部の例である。
【００２６】
パラメータ記憶領域２１３は、トラップドア生成部２２１が過去のトラップドアを生成する際に用いるパラメータを記憶している。
パラメータの詳細は後述する。
【００２７】
図３は、本秘匿検索システム（図１）において、サーバ装置２０１への暗号化データの登録、サーバ装置２０１からの暗号化データの検索を行う情報処理装置３０１の構成例を表すブロック図である。
【００２８】
図３において、暗号鍵記憶領域３１１は、データの暗号化・検索に用いる秘密情報を記憶するデータ記憶手段である。
図７は暗号鍵記憶領域３１１が記憶するデータの一例を表す。
本実施の形態では、秘密情報として暗号鍵を使用する例を説明する。
図７に示すように、暗号鍵記憶領域３１１は、暗号鍵ｋを、その世代数とともに記憶している。
暗号鍵記憶領域３１１は、秘密情報記憶部の例である。
【００２９】
トラップドア生成部３２１は、暗号鍵とキーワードで第１の演算を行って、対応するトラップドアを生成する手段である。
トラップドア生成部３２１は、第１演算実行部の例である。
【００３０】
暗号化キーワード生成部３２２は、あるキーワードに対応したトラップドアとデータＩＤで第３の演算を行って、暗号化キーワードを生成する手段である。
暗号化キーワード生成部３２２は、第３演算実行部の例である。
【００３１】
通信部３３１は、サーバ装置２０１やグループ管理装置４０１と通信を行う手段である。
通信部３３１は、送信部の例である。
【００３２】
入力部３２４は、ユーザからデータ生成指示やデータ検索指示を入力する手段である。
入力部３２４は、データ生成指示として、サーバ装置２０１に送信するデータを生成し、生成したデータをデータ暗号化部３２３で暗号化することを指示するコマンドを入力し、また、暗号化データとともにサーバ装置２０１に登録するキーワード（登録対象キーワード）を入力し、当該キーワードから暗号化キーワードを生成するよう指示するコマンドを入力する。
また、入力部３２４は、データ検索指示として、サーバ装置２０１に登録されている暗号化キーワード及び暗号化データを検索するよう指示するコマンドを入力し、また、暗号化データの検索に用いられるキーワード（検索対象キーワード）を入力し、当該キーワードからトラップドアを生成するよう指示するコマンドを入力する。
入力部３２４は、指示入力部の例である。
【００３３】
データ暗号化部３２３は、サーバ装置２０１に登録させるデータの暗号化を行う手段である。
データ暗号化部３２３は、暗号鍵記憶領域３１１に記憶されている暗号鍵と異なる情報を用いてデータの暗号化を行う。
【００３４】
パラメータ記憶領域３１２は、トラップドア生成部３２１が、トラップドアを生成する際に用いるパラメータを記憶している。
パラメータの詳細は後述する。
【００３５】
図４は、本秘匿検索システム（図１）において、初期設定や、情報処理装置３０１が保持する暗号鍵の生成・管理などを行うグループ管理装置４０１の構成例を表すブロック図である。
【００３６】
図４において、暗号鍵記憶領域４１１は、情報処理装置３０１が利用する暗号鍵を記憶するデータ記憶手段である。
図８は暗号鍵記憶領域４１１が記憶するデータの一例を表す。
図８に示すように、暗号鍵記憶領域４１１は、暗号鍵ｋを、その世代数とともに記憶している。
【００３７】
暗号鍵生成部４２１は、情報処理装置３０１が利用する暗号鍵を生成する手段である。
【００３８】
通信部４３１は、サーバ装置２０１や情報処理装置３０１と通信を行う手段である。
【００３９】
本秘匿検索システムにおける手続きは、（１）グループ管理装置４０１が初期設定を行う部分、（２）グループ管理装置４０１が情報処理装置３０１が保持する暗号鍵の世代更新を行う部分、（３）情報処理装置３０１が暗号化データをサーバ装置２０１に送信・格納する部分、（４）情報処理装置３０１が暗号化データをサーバ装置２０１から検索・取得する部分、に大別される。以下、それぞれの手続きについて説明する。
【００４０】
（１）グループ管理装置の初期設定
グループ管理装置４０１は、パラメータｐ１、ｐ２、Ｎ、ｅ１、ｅ２、ｑを以下のように決定し、このうちＮ、ｅ１、ｅ２、ｑを公開情報とする。
ｐ１、ｐ２として十分大きな素数を選び、Ｎ＝ｐ１×ｐ２とする。ｅ１、ｅ２はＺＮ＊から、（ｐ１−１）（ｐ２−１）と互いに素となるようランダムに選択する。
ｑは世代数の最大値であり、世代の更新頻度やシステムの運用期間から適切に設定する。
また、適当な一方向性関数Ｆを選択し、公開情報とする。
【００４１】
次に、暗号鍵生成部４２１が、情報処理装置３０１が利用する暗号鍵を生成する。
まず、ｑ世代目の暗号鍵ｋｑを、ＺＮ＊からランダムに選択する。そして、それ以前の暗号鍵を、式（１）によって順次計算する。
ｋｊ−１＝ｋｊｅ１  ｍｏｄＮ    式（１）
なお、ｍｏｄはモジュロ演算子を表す。
こうして得られた全ての暗号鍵ｋ１〜ｋｑを、暗号鍵記憶領域４１１に格納する。
最後に、通信部４３１が、全ての正当な情報処理装置３０１に、１世代目の暗号鍵ｋ１を送信する。
これは、暗号鍵の安全性が保たれる方式であれば、オフラインで行っても良いし、既存の鍵配送技術を用いてオンラインで行っても良い。
暗号鍵ｋ１を受信した情報処理装置３０１は、この暗号鍵ｋ１を、世代とともに暗号鍵記憶領域３１１に格納する。
また、別途、グループ管理装置４０１は、パラメータｅ１、ｅ２、ｑ、Ｎ及び一方向性関数Ｆを各情報処理装置３０１及びサーバ装置２０１に通知し、各情報処理装置３０１では、これらの値をパラメータ記憶領域３１２に記憶し、サーバ装置２０１では、これらの値をパラメータ記憶領域２１３に記憶する。
なお、パラメータｅ１、ｅ２は、ｅ１、ｅ２とも表記する。
【００４２】
（２）暗号鍵の世代更新
正当な情報処理装置３０１のグループに対し、ユーザの加入・脱退があった際に、暗号鍵の世代更新が必要となる場合がある。
この場合、以下のように世代更新を実施する。
ｉ世代目からｉ＋１世代目に更新する場合（ただしｉ＋１≦ｑ）、グループ管理装置４０１の通信部４３１が、全ての正当な情報処理装置３０１に、ｉ＋１世代目の暗号鍵ｋｉ＋１を送信する。
これは、暗号鍵の安全性が保たれる方式であれば、オフラインで行っても良いし、既存の鍵配送技術を用いてオンラインで行っても良い。
ｋｉ＋１を受信した情報処理装置３０１は、暗号鍵記憶領域３１１の内容を、世代ｉ＋１と暗号鍵ｋｉ＋１で置き換える（秘密情報記憶ステップ）。
【００４３】
（３）暗号化データの送信・格納
正当な情報処理装置３０１がデータをサーバ装置２０１に送信する場合、後に秘匿検索が行えるよう、キーワードとデータを別々に暗号化したものを送信する。
ｉ世代目における具体的な手順を図１１のデータフロー図、図１７及び図１８のフローチャートを参照しながら以下に述べる。
【００４４】
まず、情報処理装置３０１において、ユーザが、データに対し、ユニークなデータＩＤを割り当てる（ｉｄｘとする）。データＩＤ（ｉｄｘ）は、データ生成指示の一部として入力部３２４が入力する。さらに、データ暗号化部３２３がデータの暗号化を行う（Ｓ１７０１）。
ここでは、正当な情報処理装置３０１だけが復号できるような、既存の暗号技術（グループ暗号技術）を利用する（暗号化データをｄｘとする）。
次に、入力部３２４が、暗号化データｄｘに関連付けられる複数のキーワード（ｗｘｊとする）をユーザから入力する（Ｓ１７０２）。
次に、トラップドア生成部３２１が、複数のキーワード（ｗｘｊ）に対し、それぞれトラップドアを生成する（Ｓ１７０３）。
具体的には、各キーワードｗｘｊに対し、トラップドアｔｄｘｊを以下の式（２）に従って計算する（＾はべき乗を表す。以下においても同様）。
ｔｄｘｊ＝（ｋｉ×ｗｘｊ＾（ｅ１ｑ−ｉ））ｅ２  ｍｏｄＮ    式（２）
ｋｉは、データ生成指示の入力時点で暗号鍵記憶領域３１１に保持されている最新世代の暗号鍵を意味する。
パラメータｅ１、ｅ２、ｑ、Ｎは、パラメータ記憶領域３１２に記憶されている。
また、上記の式（２）に従った演算が第１の演算に相当する。
【００４５】
その後、暗号化キーワード生成部３２２が、各トラップドアｔｄｘｊに対し、暗号化キーワードｃｘｊを以下の式（３）に従って計算する（Ｓ１７０４）。
ｃｘｊ＝Ｆ（ｉｄｘ、ｔｄｘｊ）    式（３）
一方向性関数Ｆの内容は、パラメータ記憶領域３１２に記憶されている。
また、上記の式（３）に従った演算が第３の演算に相当する。
【００４６】
最後に、通信部３３１が、世代、データＩＤ、暗号化データ、暗号化キーワードの組（ｉ、ｉｄｘ、ｄｘ、ｃｘ１、ｃｘ２、．．．）をサーバ装置２０１に送信する（Ｓ１７０５）。
【００４７】
サーバ装置２０１では、通信部２３１がこれらを受信し（Ｓ１８０１）、暗号化データｄｘをデータＩＤと関連付けて暗号化データ記憶領域２１２に格納し、各暗号化キーワードｃｘｊを世代、データＩＤと関連付けて暗号化キーワード記憶領域２１１に格納する（Ｓ１８０２）（登録データ記憶ステップ）。
【００４８】
（４）暗号化データの検索・取得
正当な情報処理装置３０１は、現在もしくは過去の世代にサーバ装置２０１に格納されたデータに対し、キーワードを指定して秘匿検索を行うことができる。
ｉ世代目における具体的な手順を図１２のデータフロー図、図１９及び図２０のフローチャートを参照しながら以下に述べる。
【００４９】
まず、情報処理装置３０１において、入力部３２４が、データ検索指示として、ユーザから検索対象のキーワードｗを入力する（Ｓ１９０１）（指示入力ステップ）。
次に、トラップドア生成部３２１が、検索したいキーワードｗに対応するトラップドアを生成する（Ｓ１９０２）（第１演算実行ステップ）。
具体的には、キーワードｗに対し、トラップドアｔｄｉ（ｉ世代目で生成されたトラップドア）を以下の式（４）に従って計算する。
ｔｄｉ＝（ｋｉ×ｗ＾（ｅ１ｑ−ｉ））ｅ２  ｍｏｄＮ    式（４）
ｋｉは、データ検索指示の入力時点で暗号鍵記憶領域３１１に保持されている最新世代の暗号鍵を意味する。
また、上記の式（４）に従った演算は第１の演算に相当する。
【００５０】
次に、通信部３３１が、世代、トラップドアの組（ｉ、ｔｄｉ）をデータ検索要求としてサーバ装置２０１に送信する（Ｓ１９０３）（送信ステップ）。
【００５１】
サーバ装置２０１では、通信部２３１がこれらを受信し（Ｓ２００１）（受信ステップ）、トラップドア生成部２２１が、過去全ての世代に対応するトラップドアｔｄ１〜ｔｄｉ−１を以下の式（５）に従って世代を１つずつ遡りながら順次計算する（Ｓ２００２）（第２演算実行ステップ）。
ｔｄｊ−１＝ｔｄｊｅ１  ｍｏｄＮ    式（５）
なお、上記の式（５）に従った演算は第２の演算に相当する。
【００５２】
その後、比較部２２２が、暗号化キーワード記憶領域２１１を参照し、トラップドアに対応する暗号化キーワードが存在するかを確認する（Ｓ２００３）（データ検索ステップ）。
具体的には、暗号化キーワード記憶領域２１１の各行の世代、データＩＤ、暗号化キーワードの組（ｊ、ｉｄ、ｃ）に対し、以下の式（６）の等式が成立するかを確認する。
ｃ＝Ｆ（ｉｄ、ｔｄｊ）    式（６）
つまり、比較部２２２は、式（６）に従って、暗号化キーワード記憶領域２１１に示されているデータＩＤと前述のＳ２００２で生成されたトラップドアに対して一方向性関数Ｆを適用して暗号化キーワード候補を算出し、算出した暗号化キーワード候補が、暗号化キーワード記憶領域２１１の対応する行の暗号化キーワードに一致するか否かの照合を行う。
なお、一方向性関数Ｆの適用対象となるのは、世代数が一致しているデータＩＤとトラップドアである（暗号化キーワード記憶領域２１１に示されている世代数ｊとトラップドアｔｄｊの世代数ｊが一致している）。
なお、上記の式（６）に従った演算は第３の演算に相当する。
【００５３】
上記の式（６）が成立した場合、すなわち、暗号化キーワード候補が、暗号化キーワード記憶領域２１１に示されている暗号化キーワードに一致する場合に、当該暗号化キーワードは、ユーザにより指定されたキーワードｗに対応する暗号化キーワードとなるため、比較部２２２は、暗号化キーワード記憶領域２１１から対応するデータＩＤ（ｉｄ）を抽出し（Ｓ２００４）、抽出したデータＩＤ（ｉｄ）をキーに暗号化データ記憶領域２１２を検索して暗号化データｄを取得し（Ｓ２００５）、通信部２３１が情報処理装置３０１に、キーワードｗに対応する暗号化データｄを送信する（Ｓ２００６）。
なお、式（６）の等式が複数行において成立し、複数の暗号化データが抽出された場合は暗号化データの全て送信するようにしても、一部を送信するようにしても良い。
一方、上記の式（６）の等式が暗号化キーワード記憶領域２１１のどの行においても不成立であった場合は、情報処理装置３０１にその旨を送信する。
なお、存在しないキーワードを指定した場合の他、データ検索の要求元が正当なアクセス権限を有しない場合（正しい暗号鍵を有しない又は正しいパラメータを有しないので、適切なトラップドアを作成できない）に、上記の式（６）の等式が暗号化キーワード記憶領域２１１のどの行においても不成立となると考えられる。
【００５４】
暗号化データｄを受信した情報処理装置３０１では、例えば、データ暗号化部３２３で暗号化データｄの復号を行う。
ここでは、正当な情報処理装置３０１だけが復号できるような、既存の暗号技術（グループ暗号技術）を利用する。
【００５５】
なお、サーバ装置２０１が最新のトラップドアから生成した過去のトラップドアと、情報処理装置３０１が過去の暗号鍵から生成したトラップドアが一致し、本秘匿検索システムが正常に機能することは、例えば以下のように確認される。
【００５６】
サーバ装置２０１がｉ世代目のトラップドアｔｄｉから生成した、ｉ−１世代目のトラップドアｔｄｉ−１は、
ｔｄｉ−１＝ｔｄｉｅ１  ｍｏｄＮ
＝（ｋｉ×ｗ＾（ｅ１ｑ−ｉ））ｅ１ｅ２  ｍｏｄＮ
＝（ｋｉｅ１×ｗ＾（ｅ１ｑ−（ｉ−１）））ｅ２  ｍｏｄＮ
＝（ｋｉ−１×ｗ＾（ｅ１ｑ−（ｉ−１）））ｅ２  ｍｏｄＮ
となり、これは情報処理装置３０１がｉ−１世代目に生成するトラップドアと一致する。
【００５７】
また、システムの安全性、すなわちサーバ装置２０１がトラップドアや暗号化キーワードからキーワードを類推できないことや、ある世代の暗号鍵を持つ情報処理装置３０１が未来の世代の暗号鍵を類推できないことは、ＲＳＡ（登録商標）暗号の安全性に基づいている。
【００５８】
以上によって、情報処理装置３０１がデータ・キーワードをサーバ装置２０１に対して秘匿したまま検索できる秘匿検索システムが実現できる。
サーバ装置２０１が、受信した最新のトラップドアから過去のトラップドアを生成できるため、検索時に情報処理装置３０１が送信すべきトラップドアが削減でき、情報処理装置３０１の計算量や通信量の削減を達成できる。
【００５９】
なお、本実施の形態では、検索結果として暗号化データを返すために暗号化データ記憶領域２１２を利用しているが、暗号化データを返す必要がない場合、サーバ装置２０１が暗号化データ記憶領域２１２を持たなくても良い。
例えば、暗号化データは別の装置が保持し、そこへのアクセスを可能とするためにデータＩＤだけを返すようにしても良い。
【００６０】
また、本実施の形態では、各処理において世代数を送信しているが、システム全体で現在の世代数の同期が取れている場合は、世代数の送信は不要である。
また、システム全体で現在の世代数の同期が取れている場合にも世代数の送信を行って、サーバ装置２０１が、Ｓ１８０１やＳ２００１で、現在の世代に対応するデータを受信したときのみ格納・検索処理を続行し、そうでない場合は処理を中断するようにしても良い。
【００６１】
また、本実施の形態では、異なるデータに関連付けられた同一のキーワードが別の暗号化キーワードとなるようにするため、暗号化キーワードをｃ＝Ｆ（ｉｄ、ｔｄ）のように生成しているが、この区別をつける必要がない場合、本処理を省略し、トラップドアを暗号化キーワードとして使うことも可能である。この場合、検索時にサーバ装置２０１がｉｄごとにＦを適用する必要がなくなり、検索を高速化することができる。
なお、このような運用については、実施の形態３で詳述する。
【００６２】
また、本実施の形態では、グループ管理装置４０１が初期設定の際に、全ての暗号鍵ｋ１〜ｋｑを生成し、暗号鍵記憶領域４１１に格納しているが、Ｎの素因数分解ｐ１×ｐ２を知るグループ管理装置４０１はｋｊからｋｊ＋１を導出可能であるため、暗号鍵記憶領域４１１には最新の暗号鍵のみを格納し、世代更新のたびに次の暗号鍵を導出するようにしても良い。
【００６３】
また、本実施の形態では、データに複数のキーワードが関連付けられている場合、各キーワードに対し暗号化キーワードを送信し、これらを暗号化キーワード記憶領域２１１の複数行に格納しているが、複数キーワードを効率的に処理するＢｌｏｏｍ  Ｆｉｌｔｅｒなどの既存技術と組み合わせて、複数キーワードを１行でまとめて処理できるようにしても良い。
【００６４】
実施の形態２．
本実施の形態では、秘匿検索システム（図１）において、情報処理装置３０１が暗号鍵とキーワードからトラップドアを生成する際、双線形写像を利用する方式について述べる。なお、双線形写像とは、Ｅ（ｇａ、ｈｂ）≡Ｅ（ｇ、ｈ）ａｂを満たす関数Ｅのことであり、例えばＷｅｉｌペアリングやＴａｔｅペアリングなどが利用できる。
【００６５】
サーバ装置２０１、情報処理装置３０１、グループ管理装置４０１の構成例については、実施の形態１にて記述したものと同一であるため、説明は省略する。
【００６６】
本実施の形態においても、本秘匿検索システムにおける手続きは、実施の形態１にて記述した四つの手続きに大別される。以下、それぞれの手続きについて説明する。
【００６７】
（１）グループ管理装置の初期設定
グループ管理装置４０１は、パラメータｐ１、ｐ２、Ｎ、ｅ１、ｑを以下のように決定し、このうちＮ、ｅ１、ｑを公開情報とする。
ｐ１、ｐ２として十分大きな素数を選び、Ｎ＝ｐ１×ｐ２とする。ｅ１はＺＮ＊から、（ｐ１−１）（ｐ２−１）と互いに素となるようランダムに選択する。
ｑは世代数の最大値であり、世代の更新頻度やシステムの運用期間から適切に設定する。
また、適当な一方向性関数Ｆ、および双線形写像Ｅを選択し、公開情報とする。
【００６８】
次に、暗号鍵生成部４２１が、情報処理装置３０１が利用する暗号鍵を生成する。
まず、ｑ世代目の暗号鍵ｋｑを、ＺＮ＊からランダムに選択する。そして、それ以前の暗号鍵を、式（７）によって順次計算する。
ｋｊ−１＝ｋｊｅ１  ｍｏｄＮ    式（７）
こうして得られた全ての暗号鍵ｋ１〜ｋｑを、暗号鍵記憶領域４１１に格納する。
最後に、通信部４３１が、全ての正当な情報処理装置３０１に、１世代目の暗号鍵ｋ１を送信する。
これは、暗号鍵の安全性が保たれる方式であれば、オフラインで行っても良いし、既存の鍵配送技術を用いてオンラインで行っても良い。
ｋ１を受信した情報処理装置３０１は、この暗号鍵ｋ１を、世代とともに暗号鍵記憶領域３１１に格納する。
また、実施の形態１と同様に、グループ管理装置４０１は、パラメータｅ１、ｑ、Ｎ、一方向性関数Ｆ及び双線形写像Ｅを各情報処理装置３０１及びサーバ装置２０１に通知し、各情報処理装置３０１では、これらの値をパラメータ記憶領域３１２に記憶し、サーバ装置２０１では、これらの値をパラメータ記憶領域２１３に記憶する。
【００６９】
（２）暗号鍵の世代更新
実施の形態１にて記述したものと同一であるため、説明は省略する。
【００７０】
（３）暗号化データの送信・格納
正当な情報処理装置３０１がデータをサーバ装置２０１に送信する場合、後に秘匿検索が行えるよう、キーワードとデータを別々に暗号化したものを送信する。
ｉ世代目における具体的な手順を図１３のデータフロー図を参照して以下に述べる。
なお、フローチャートは、図１７及び図１８に示したとおりである。
【００７１】
まず、情報処理装置３０１において、ユーザが、データに対し、ユニークなデータＩＤを割り当てる（ｉｄｘとする）。データＩＤ（ｉｄｘ）は、データ生成指示の一部として入力部３２４が入力する。さらに、データ暗号化部３２３がデータの暗号化を行う（Ｓ１７０１）。
ここでは、正当な情報処理装置３０１だけが復号できるような、既存の暗号技術（グループ暗号技術）を利用する（暗号化データをｄｘとする）。
次に、入力部３２４が、暗号化データｄｘに関連付けられる複数のキーワード（ｗｘｊとする）をユーザから入力する（Ｓ１７０２）。
次に、トラップドア生成部３２１が、複数のキーワード（ｗｘｊ）に対し、それぞれトラップドアを生成する（Ｓ１７０３）。
具体的には、各キーワードｗｘｊに対し、トラップドアｔｄｘｊを以下の式（８）に従って計算する。
ｔｄｘｊ＝Ｅ（ｋｉ、ｗｘｊ）    式（８）
ｋｉは、データ生成指示の入力時点で暗号鍵記憶領域３１１に保持されている最新世代の暗号鍵を意味する。
上記の式（８）に従った演算が第１の演算に相当する。
【００７２】
その後、暗号化キーワード生成部３２２が、各トラップドアｔｄｘｊに対し、暗号化キーワードｃｘｊを以下の式（３）に従って計算する（Ｓ１７０４）。
ｃｘｊ＝Ｆ（ｉｄｘ、ｔｄｘｊ）    式（３）
上記の式（３）に従った演算が第３の演算に相当する。
【００７３】
最後に、通信部３３１が、世代、データＩＤ、暗号化データ、暗号化キーワードの組（ｉ、ｉｄｘ、ｄｘ、ｃｘ１、ｃｘ２、．．．）をサーバ装置２０１に送信する（Ｓ１７０５）。
【００７４】
サーバ装置２０１では、通信部２３１がこれらを受信し（Ｓ１８０１）、暗号化データｄｘをデータＩＤと関連付けて暗号化データ記憶領域２１２に格納し、各暗号化キーワードｃｘｊを世代、データＩＤと関連付けて暗号化キーワード記憶領域２１１に格納する（Ｓ１８０２）（登録データ記憶ステップ）。
【００７５】
（４）暗号化データの検索・取得
正当な情報処理装置３０１は、現在もしくは過去の世代にサーバ装置２０１に格納されたデータに対し、キーワードを指定して秘匿検索を行うことができる。
ｉ世代目における具体的な手順を図１４のデータフロー図を参照しながら以下に述べる。
なお、フローチャートは、図１９及び図２０に示すとおりである。
【００７６】
情報処理装置３０１において、入力部３２４が、データ検索指示として、ユーザから検索対象のキーワードｗを入力する（Ｓ１９０１）（指示入力ステップ）。
次に、トラップドア生成部３２１が、検索したいキーワードｗに対応するトラップドアを生成する（Ｓ１９０２）（第１演算実行ステップ）。
具体的には、キーワードｗに対し、トラップドアｔｄｉ（ｉ世代目で生成されたトラップドア）を以下の式（９）に従って計算する。
ｔｄｉ＝Ｅ（ｋｉ、ｗ）    式（９）
ｋｉは、データ検索指示の入力時点で暗号鍵記憶領域３１１に保持されている最新世代の暗号鍵を意味する。
また、上記の式（９）に従った演算は第１の演算に相当する。
【００７７】
サーバ装置２０１では、通信部２３１がこれらを受信し（Ｓ２００１）（受信ステップ）、トラップドア生成部２２１が、過去全ての世代に対応するトラップドアｔｄ１〜ｔｄｉ−１を以下の式（５）に従って世代を１つずつ遡りながら順次計算する（Ｓ２００２）（第２演算実行ステップ）。
ｔｄｊ−１＝ｔｄｊｅ１  ｍｏｄＮ    式（５）
なお、上記の式（５）に従った演算は第２の演算に相当する。
【００７８】
その後、比較部２２２が、暗号化キーワード記憶領域２１１を参照し、トラップドアに対応する暗号化キーワードが存在するかを確認する（Ｓ２００３）（データ検索ステップ）。
具体的には、暗号化キーワード記憶領域２１１の各行の世代、データＩＤ、暗号化キーワードの組（ｊ、ｉｄ、ｃ）に対し、以下の式（６）の等式が成立するかを確認する。
ｃ＝Ｆ（ｉｄ、ｔｄｊ）    式（６）
つまり、比較部２２２は、式（６）に従って、暗号化キーワード記憶領域２１１に示されているデータＩＤと前述のＳ２００２で生成されたトラップドアに対して一方向性関数Ｆを適用して暗号化キーワード候補を算出し、算出した暗号化キーワード候補が、暗号化キーワード記憶領域２１１の対応する行の暗号化キーワードに一致するか否かの照合を行う。
なお、一方向性関数Ｆの適用対象となるのは、世代数が一致しているデータＩＤとトラップドアである（暗号化キーワード記憶領域２１１に示されている世代数ｊとトラップドアｔｄｊの世代数ｊが一致している）。
なお、上記の式（６）に従った演算は第３の演算に相当する。
【００７９】
上記の式（６）が成立した場合、すなわち、暗号化キーワード候補が、暗号化キーワード記憶領域２１１に示されている暗号化キーワードに一致する場合に、当該暗号化キーワードは、ユーザにより指定されたキーワードｗに対応する暗号化キーワードとなるため、比較部２２２は、暗号化キーワード記憶領域２１１から対応するデータＩＤ（ｉｄ）を抽出し（Ｓ２００４）抽出したデータＩＤ（ｉｄ）をキーに暗号化データ記憶領域２１２を検索して暗号化データｄを取得し（Ｓ２００５）、通信部２３１が情報処理装置３０１に、キーワードｗに対応する暗号化データｄを送信する（Ｓ２００６）。
なお、式（６）の等式が複数行において成立し、複数の暗号化データが抽出された場合は暗号化データの全て送信するようにしても、一部を送信するようにしても良い。
一方、上記の式（６）の等式が暗号化キーワード記憶領域２１１のどの行においても不成立であった場合は、情報処理装置３０１にその旨を送信する。
なお、存在しないキーワードを指定した場合の他、データ検索の要求元が正当なアクセス権限を有しない場合（正しい暗号鍵を有しない又は正しいパラメータを有しないので、適切なトラップドアを作成できない）に、上記の式（６）の等式が暗号化キーワード記憶領域２１１のどの行においても不成立となると考えられる。
【００８０】
暗号化データｄを受信した情報処理装置３０１では、例えば、データ暗号化部３２３で暗号化データｄの復号を行う。
ここでは、正当な情報処理装置３０１だけが復号できるような、既存の暗号技術（グループ暗号技術）を利用する。
【００８１】
なお、サーバ装置２０１が最新のトラップドアから生成した過去のトラップドアと、情報処理装置３０１が過去の暗号鍵から生成したトラップドアが一致し、本秘匿検索システムが正常に機能することは、例えば以下のように確認される。
【００８２】
サーバ装置２０１がｉ世代目のトラップドアｔｄｉから生成した、ｉ−１世代目のトラップドアｔｄｉ−１は、
ｔｄｉ−１＝ｔｄｉｅ１  ｍｏｄＮ
＝Ｅ（ｋｉ、ｗ）ｅ１  ｍｏｄＮ
＝Ｅ（ｋｉｅ１、ｗ）  ｍｏｄＮ
＝Ｅ（ｋｉ−１、ｗ）  ｍｏｄＮ
となり、これは情報処理装置３０１がｉ−１世代目に生成するトラップドアと一致する。
【００８３】
また、システムの安全性、すなわちサーバ装置２０１がトラップドアや暗号化キーワードからキーワードを類推できないことや、ある世代の暗号鍵を持つ情報処理装置３０１が未来の世代の暗号鍵を類推できないことは、ＲＳＡ（登録商標）暗号、および双線形写像の安全性に基づいている。
【００８４】
以上によって、情報処理装置３０１がデータ・キーワードをサーバ装置２０１に対して秘匿したまま検索できる秘匿検索システムが実現できる。
サーバ装置２０１が、受信した最新のトラップドアから過去のトラップドアを生成できるため、検索時に情報処理装置３０１が送信すべきトラップドアが削減でき、情報処理装置３０１の計算量や通信量の削減を達成できる。
【００８５】
さらに、本実施の形態においては、実施の形態１とは異なり、情報処理装置３０１のトラップドア生成部３２１がキーワードからトラップドアを生成する際に、世代数の最大値ｑを利用する必要がない。
したがって、ｑの値を大きく設定しても、情報処理装置３０１の計算量には影響しないという利点がある。
また、実施の形態１でも述べたように、グループ管理装置４０１はｋｊからｋｊ＋１を導出可能であるため、初期設定にてｋ１のみを生成し、世代更新のたびに次の暗号鍵を導出することで、世代数の最大値という制限を設けることなく秘匿検索システムを運用することが可能となる。
【００８６】
なお、本実施の形態では、検索結果として暗号化データを返すために暗号化データ記憶領域２１２を利用しているが、暗号化データを返す必要がない場合、サーバ装置２０１が暗号化データ記憶領域２１２を持たなくても良い。
例えば、暗号化データは別の装置が保持し、そこへのアクセスを可能とするためにデータＩＤだけを返すようにしても良い。
【００８７】
また、本実施の形態では、各処理において世代数を送信しているが、システム全体で現在の世代数の同期が取れている場合は、世代数の送信は不要である。
また、システム全体で現在の世代数の同期が取れている場合にも世代数の送信を行って、サーバ装置２０１が、Ｓ１８０１やＳ２００１で、現在の世代に対応するデータを受信したときのみ格納・検索処理を続行し、そうでない場合は処理を中断するようにしても良い。
【００８８】
また、本実施の形態では、異なるデータに関連付けられた同一のキーワードが別の暗号化キーワードとなるようにするため、暗号化キーワードをｃ＝Ｆ（ｉｄ、ｔｄ）のように生成しているが、この区別をつける必要がない場合、本処理を省略し、トラップドアを暗号化キーワードとして使うことも可能である。この場合、検索時にサーバ装置２０１がｉｄごとにＦを適用する必要がなくなり、検索を高速化することができる。
なお、このような運用については、実施の形態３で詳述する。
【００８９】
また、本実施の形態では、データに複数のキーワードが関連付けられている場合、各キーワードに対し暗号化キーワードを送信し、これらを暗号化キーワード記憶領域２１１の複数行に格納しているが、複数キーワードを効率的に処理するＢｌｏｏｍ  Ｆｉｌｔｅｒなどの既存技術と組み合わせて、複数キーワードを１行でまとめて処理できるようにしても良い。
【００９０】
実施の形態３．
本実施の形態では、トラップドアを暗号化キーワードとして使う例を説明する。
【００９１】
図９は、本実施の形態に係る情報処理装置３０１の構成例を示す。
本実施の形態では、トラップドアを暗号化キーワードとして使用するため、図３の構成に含まれていた暗号化キーワード生成部３２２を省略している。
他の構成要素は、図３に示したものと同様であり、説明を省略する。
なお、本実施の形態においても、サーバ装置２０１及びグループ管理装置４０１は、図２及び図４に示した構成のとおりである。
なお、サーバ装置２０１において、暗号化キーワード記憶領域２１１では、図１０に示すように、暗号化キーワードとしてトラップドアｔｄを用い、トラップドアｔｄと、対応する暗号化データのデータＩＤと、トラップドアの生成に用いられた暗号鍵の世代数とを関連付けて記憶している。
【００９２】
また、本実施の形態においても、本秘匿検索システムにおける手続きは、実施の形態１にて記述した四つの手続きに大別される。
なお、（１）グループ管理装置の初期設定及び（２）暗号鍵の世代更新は、実施の形態１及び実施の形態２に示したものと同様であるため、説明を省略し、以下では、（３）暗号化データの送信・格納及び（４）暗号化データの検索・取得を説明する。
【００９３】
（３）暗号化データの送信・格納
正当な情報処理装置３０１がデータをサーバ装置２０１に送信する場合、後に秘匿検索が行えるよう、キーワードとデータを別々に暗号化したものを送信する。
ｉ世代目における具体的な手順は図１５のデータフロー図に示すとおりである。
なお、図１５では、実施の形態１に示したべき乗剰余演算（式（２））を利用してトラップドアを生成する例を示しているが、実施の形態２に示した式（８）を用いることで、実施の形態２に示した双線形写像を利用することも可能である。
なお、本実施の形態では、図１７のフローチャートからＳ１７０４の動作を省略し、Ｓ１７０５で送信する暗号化キーワードをトラップドアとする。図１７の他の動作は、実施の形態１及び実施の形態２において説明したとおりである。
また、図１８のフローチャートにおいて、Ｓ１８０１で受信する暗号化キーワード及びＳ１８０２で記憶する暗号化キーワードをトラップドアとする。
【００９４】
（４）暗号化データの検索・取得
正当な情報処理装置３０１は、現在もしくは過去の世代にサーバ装置２０１に格納されたデータに対し、キーワードを指定して秘匿検索を行うことができる。
ｉ世代目における具体的な手順は図１６のデータフロー図に示すとおりである。
なお、図１６では、情報処理装置３０１において、実施の形態１に示したべき乗剰余演算（式（４））を利用してトラップドアを生成する例を示しているが、実施の形態２に示した式（９）を用いることで、実施の形態２に示した双線形写像を利用することも可能である。
なお、情報処理装置３０１の動作は、図１９のフローチャートに示すとおりである。
一方、サーバ装置２０１の動作では、図２０のフローチャートのＳ２００３の処理に代えて、Ｓ２００２で導出された過去の世代のトラップドアのうちのいずれかと同じトラップドアが示されている行を暗号化キーワード記憶領域２１１（図１０）において検索し、該当する行に示されているデータＩＤを抽出し（Ｓ２００４）、抽出したデータＩＤをキーに暗号化データ記憶領域２１２を検索して暗号化データｄを取得し（Ｓ２００５）、通信部２３１が情報処理装置３０１に、キーワードｗに対応する暗号化データｄを送信する（Ｓ２００６）。
その他の動作は、実施の形態１及び実施の形態２で説明したものと同様である。
【００９５】
このように、本実施の形態によれば、トラップドアを暗号化キーワードとして使用することにより、データ生成時に情報処理装置３０１において一方向性関数Ｆを適用する必要がなくなり、また、データ検索時にサーバ装置２０１が一方向性関数Ｆを適用する必要がなくなり、情報処理装置３０１及びサーバ装置２０１における処理を高速化でき、また、計算機リソースを有効に活用することができる。
【００９６】
以上の実施の形態１〜３では、サーバに保存されたデータを、ユーザがキーワードを指定して検索でき、かつその際にデータ・キーワードをサーバに対して秘匿する秘匿検索システムで、検索の際に利用する秘密情報を世代ごとに更新するシステムにおいて、データ保存・検索時にユーザがサーバに送信するトラップドアを、サーバが最新のトラップドアから過去のトラップドアを導出できるようなものにすることで、検索時にユーザが送信すべきトラップドアの数を削減し、結果として計算量や通信量を削減する方式を説明した。
【００９７】
また、実施の形態１及び実施の形態３では、ユーザが秘密情報とキーワードからトラップドアを生成する際に、べき乗剰余演算を利用する方式を説明した。
【００９８】
また、実施の形態２及び実施の形態３では、ユーザが秘密情報とキーワードからトラップドアを生成する際に、双線形写像を利用する方式を説明した。
【００９９】
最後に、実施の形態１〜３に示したサーバ装置２０１、情報処理装置３０１及びグループ管理装置４０１（以下、三者をまとめてサーバ装置２０１等と表記する）のハードウェア構成例について説明する。
図２１は、実施の形態１〜３に示すサーバ装置２０１等のハードウェア資源の一例を示す図である。
なお、図２１の構成は、あくまでもサーバ装置２０１等のハードウェア構成の一例を示すものであり、サーバ装置２０１等のハードウェア構成は図２１に記載の構成に限らず、他の構成であってもよい。
【０１００】
図２１において、サーバ装置２０１等は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。
ＣＰＵ９１１は、バス９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。
更に、ＣＰＵ９１１は、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７と接続していてもよい。また、磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード（登録商標）読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
実施の形態１〜３で説明した「〜記憶領域」は、ＲＡＭ９１４、磁気ディスク装置９２０等により実現される。
通信ボード９１５、キーボード９０２、マウス９０３、スキャナ装置９０７、ＦＤＤ９０４などは、入力装置の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力装置の一例である。
【０１０１】
通信ボード９１５は、図１に示すように、ネットワークに接続されている。例えば、通信ボード９１５は、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）、ＳＡＮ（ストレージエリアネットワーク）などに接続されていても構わない。
【０１０２】
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。
プログラム群９２３のプログラムは、ＣＰＵ９１１がオペレーティングシステム９２１、ウィンドウシステム９２２を利用しながら実行する。
【０１０３】
また、ＲＡＭ９１４には、ＣＰＵ９１１に実行させるオペレーティングシステム９２１のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、ＲＡＭ９１４には、ＣＰＵ９１１による処理に必要な各種データが格納される。
【０１０４】
また、ＲＯＭ９１３には、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）プログラムが格納され、磁気ディスク装置９２０にはブートプログラムが格納されている。
サーバ装置２０１等の起動時には、ＲＯＭ９１３のＢＩＯＳプログラム及び磁気ディスク装置９２０のブートプログラムが実行され、ＢＩＯＳプログラム及びブートプログラムによりオペレーティングシステム９２１が起動される。
【０１０５】
上記プログラム群９２３には、実施の形態１〜３の説明において「〜部」として説明している機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
【０１０６】
ファイル群９２４には、実施の形態１〜３の説明において、「〜の判断」、「〜の判定」、「〜の計算」、「〜の演算」、「〜の生成」、「〜の比較」、「〜の照合」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのＣＰＵの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態１〜３で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【０１０７】
また、実施の形態１〜３の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」、として説明しているものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、実施の形態１〜３の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態１〜３の「〜部」の手順や方法をコンピュータに実行させるものである。
【０１０８】
このように、実施の形態１〜３に示すサーバ装置２０１等は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【０１０９】
１０１  ネットワーク、２０１  サーバ装置、２１１  暗号化キーワード記憶領域、２１２  暗号化データ記憶領域、２１３  パラメータ記憶領域、２２１  トラップドア生成部、２２２  比較部、２３１  通信部、３０１  情報処理装置、３１１  暗号鍵記憶領域、３１２  パラメータ記憶領域、３２１  トラップドア生成部、３２２  暗号化キーワード生成部、３２３  データ暗号化部、３２４  入力部、３３１  通信部、４０１  グループ管理装置、４１１  暗号鍵記憶領域、４２１  暗号鍵生成部、４３１  通信部。
【図１】
0005388727.tif 000002
【図２】
0005388727.tif 000003
【図３】
0005388727.tif 000004
【図４】
0005388727.tif 000005
【図５】
0005388727.tif 000006
【図６】
0005388727.tif 000007
【図７】
0005388727.tif 000008
【図８】
0005388727.tif 000009
【図９】
0005388727.tif 000010
【図１０】
0005388727.tif 000011
【図１１】
0005388727.tif 000012
【図１２】
0005388727.tif 000013
【図１３】
0005388727.tif 000014
【図１４】
0005388727.tif 000015
【図１５】
0005388727.tif 000016
【図１６】
0005388727.tif 000017
【図１７】
0005388727.tif 000018
【図１８】
0005388727.tif 000019
【図１９】
0005388727.tif 000020
【図２０】
0005388727.tif 000021
【図２１】
0005388727.tif 000022