(57)【特許請求の範囲】
【請求項１】
検索を許可する範囲を示す範囲条件を暗号化してコアタグを生成するコアタグ生成部と、
前記コアタグ生成部によって生成された前記コアタグを、検索のキーワードがエンコードされたエンコード情報を用いて変換することにより、前記キーワードが設定された暗号化タグを生成する暗号化タグ生成部と
を備える暗号化タグ生成装置。
【請求項２】
前記コアタグは、基底Ｂにおけるベクトルであり、
前記暗号化タグ生成部は、前記エンコード情報を用いて前記コアタグの前記基底Ｂを変換することにより、前記暗号化タグを生成する
請求項１に記載の暗号化タグ生成装置。
【請求項３】
前記暗号化タグ生成部は、前記エンコード情報である行列を生成し、前記コアタグと前記行列との積を計算して、前記基底Ｂを変換する
請求項２に記載の暗号化タグ生成装置。
【請求項４】
前記暗号化タグ生成部は、前記エンコード情報である正方行列を生成する
請求項３に記載の暗号化タグ生成装置。
【請求項５】
ユーザの属性が設定されたユーザ鍵を、検索のキーワードがエンコードされたエンコード情報を用いて変換することにより、前記キーワードが設定された検索クエリを生成するクエリ生成部
を備える検索クエリ生成装置。
【請求項６】
前記ユーザ鍵は、基底Ｂ＊におけるベクトルであり、
前記クエリ生成部は、前記エンコード情報を用いて前記ユーザ鍵の前記基底Ｂ＊を変換することにより、前記検索クエリを生成する
請求項５に記載の検索クエリ生成装置。
【請求項７】
前記クエリ生成部は、前記エンコード情報である行列を生成し、前記ユーザ鍵と前記行列を転置した行列の逆行列との積を計算して、前記基底Ｂ＊を変換する
請求項６に記載の検索クエリ生成装置。
【請求項８】
前記クエリ生成部は、前記エンコード情報である正方行列を生成する
請求項７に記載の検索クエリ生成装置。
【請求項９】
暗号化タグ生成装置と検索クエリ生成装置とを備える秘匿検索システムであり、
前記暗号化タグ生成装置は、
検索を許可する範囲を示す範囲条件を暗号化してコアタグを生成するコアタグ生成部と、
前記コアタグ生成部によって生成された前記コアタグを、検索のキーワードがエンコードされたエンコード情報を用いて変換することにより、前記キーワードが設定された暗号化タグを生成する暗号化タグ生成部と
を備え、
前記検索クエリ生成装置は、
ユーザの属性が設定されたユーザ鍵を、検索のキーワードがエンコードされたエンコード情報を用いて変換することにより、前記キーワードが設定された検索クエリを生成するクエリ生成部
を備える秘匿検索システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、暗号化された状態のデータを検索可能な秘匿検索技術に関する。
【背景技術】
【０００２】
近年、ネットワーク、特にインターネットにおける演算資源を用いて、様々なサービスを実行し提供するクラウドコンピューティング技術が存在する。これらのサービスとして、ネットワークに様々なデータを保管しておき、データの利用が許可された検索者のみがそのデータをダウンロードし利用する、といったサービスが考えられる。
しかし、ネットワークに保管するデータの中には、利用者の個人情報といった第三者に漏洩することのない様に秘匿する必要があるデータが存在する場合がある。このようなデータは、秘密鍵暗号や公開鍵暗号といった暗号により秘匿可能であることが知られている。【０００３】
このように、暗号化したデータをネットワークに置くことで、データの秘匿化とクラウドコンピューティングの活用の両立をすることができる。しかし、データは暗号化してしまうことで検索ができなくなってしまうという課題がある。この課題を解決する技術として秘匿検索技術がある。秘匿検索技術では、特別な暗号化方法を用いることによって、暗号化された状態のデータが検索可能である。【０００４】
このような秘匿検索技術においては、クラウドに保存されるデータから情報が漏洩しないことが重要である。加えて、検索する際に送信する検索クエリからも検索するキーワードといった情報が漏洩しないことも重要である。【０００５】
特許文献１及び非特許文献１には、暗号化データを登録するユーザと、検索を実行するユーザとで、同じ鍵を共有し、内積述語暗号という暗号技術を用いる方式が記載されている。これにより、特許文献１及び非特許文献１では、検索する際、検索するキーワードが一切漏洩しない方式を実現している。
加えて、特許文献１には、ユーザ毎に、どの暗号化データにアクセスしてよいかを制御するアクセス制御を暗号学的に含ませることができる方式が記載されている。【０００６】
非特許文献２には、暗号化データを登録するユーザと、検索を実行するユーザとで、同じ鍵を共有することで、キーワードが一切漏洩せず効率的な検索を実現する方式が記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開２０１５／１８４８９４号公報
【非特許文献】
【０００８】
【非特許文献１】Ｅｍｉｌｙ  Ｓｈｅｎ，  Ｅｌａｉｎｅ  Ｓｈｉ，  ａｎｄ  Ｂｒｅｎｔ  Ｗａｔｅｒｓ．  Ｐｒｅｄｉｃａｔｅ  ｐｒｉｖａｃｙ  ｉｎ  ｅｎｃｒｙｐｔｉｏｎ  ｓｙｓｔｅｍｓ．  Ｉｎ  ＴＣＣ  ２００９，  ｖｏｌｕｍｅ  ５４４４  ｏｆ  ＬＮＣＳ，  ｐａｇｅｓ  ４５７−４７３．  Ｓｐｒｉｎｇｅｒ，  ２００９
【非特許文献２】Ｄ．  Ｂｏｎｅｈ，  Ｇ．Ｄ．  Ｃｒｅｓｃｅｎｚｏ，  Ｒ．  Ｏｓｔｒｏｖｓｋｙ，  ａｎｄ  Ｇ．  Ｐｅｒｓｉａｎｏ．Ｐｕｂｌｉｃ−Ｋｅｙ  Ｅｎｃｒｙｐｔｉｏｎ  ｗｉｔｈ  Ｋｅｙｗｏｒｄ  Ｓｅａｒｃｈ．  Ｉｎ  Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ  −  Ｅｕｒｏｃｒｙｐｔ，  ｖｏｌｕｍｅ  ３０２７  ｏｆ  ＬＮＣＳ，  ｐａｇｅｓ  ５０６−５２２．  Ｓｐｒｉｎｇｅｒ，  ２００４．
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１及び非特許文献１に記載された方式では、検索時に使用されるペアリング演算の実行回数が多く、検索速度が遅くなってしまう。非特許文献２に記載された方式では、特許文献１に記載された方式のようなアクセス制御を実現できていない。
この発明は、柔軟なアクセス制御を実現しつつ、検索速度を早くすることを可能とすることを目的とする。
【課題を解決するための手段】
【００１０】
この発明に係る暗号化タグ生成装置は、
検索を許可する範囲を示す範囲条件を暗号化してコアタグを生成するコアタグ生成部と、
前記コアタグ生成部によって生成された前記コアタグを、検索のキーワードがエンコードされたエンコード情報を用いて変換することにより、前記キーワードが設定された暗号化タグを生成する暗号化タグ生成部と
を備える。
【発明の効果】
【００１１】
この発明では、範囲条件を暗号化して得られたコアタグをキーワードがエンコードされたエンコード情報を用いて変換して暗号化タグを生成する。これにより、暗号化タグに含まれる要素数を減らすことが可能になり、検索速度を早くすることが可能となる。また、暗号化タグには範囲条件も設定されており、柔軟なアクセス制御を実現可能である。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１に係る秘匿検索システム１０の構成図。
【図２】実施の形態１に係るマスタ鍵生成装置２０の構成図。
【図３】実施の形態１に係るユーザ鍵生成装置３０の構成図。
【図４】実施の形態１に係る暗号化タグ生成装置４０の構成図。
【図５】実施の形態１に係る検索クエリ生成装置５０の構成図。
【図６】実施の形態１に係る検索装置６０の構成図。
【図７】実施の形態１に係るマスタ鍵生成装置２０の動作を示すフローチャート。
【図８】実施の形態１に係るユーザ鍵生成装置３０の動作を示すフローチャート。
【図９】実施の形態１に係る暗号化タグ生成装置４０の動作を示すフローチャート。
【図１０】実施の形態１に係る検索クエリ生成装置５０の動作を示すフローチャート。
【図１１】実施の形態１に係る検索装置６０の動作を示すフローチャートであり、暗号化タグ記憶処理を示すフローチャート。
【図１２】実施の形態１に係る検索装置６０の動作を示すフローチャートであり、暗号化タグ検索処理を示すフローチャート。
【図１３】変形例１に係るマスタ鍵生成装置２０の構成図。
【図１４】変形例１に係るユーザ鍵生成装置３０の構成図。
【図１５】変形例１に係る暗号化タグ生成装置４０の構成図。
【図１６】変形例１に係る検索クエリ生成装置５０の構成図。
【図１７】変形例１に係る検索装置６０の構成図。
【発明を実施するための形態】
【００１３】
実施の形態１．
＊＊＊記法の説明＊＊＊
Ａがランダムな変数または分布であるとき、数１１は、Ａの分布に従いＡからｙをランダムに選択することを表す。つまり、数１１において、ｙは乱数である。
【数１１】
0006494893.tif 000002
【００１４】
数１２は、ｙがｚにより定義された集合であること、又はｙがｚを代入された集合であることを表す。
【数１２】
0006494893.tif 000003
【００１５】
ａが定数であるとき、数１３は、機械（アルゴリズム）Ａが入力ｘに対しａを出力することを表す。
【数１３】
0006494893.tif 000004
【００１６】
数１４に示す基底Ｂと基底Ｂ＊とに対して、数１５である。
【数１４】
0006494893.tif 000005
【数１５】
0006494893.tif 000006
【００１７】
Ｆｑは、位数ｑの有限体を示す。また、ｙ∈ＦｑＺは、ｙが有限体Ｆｑ上のｚ個の要素を有するベクトルであることを示す。また、ｙ∈ＦｑＺ×Ｗは、ｙが有限体Ｆｑ上の要素を持つ、Ｚ行Ｗ列の行列であることを示す。
【００１８】
＊＊＊構成の説明＊＊＊
図１を参照して、実施の形態１に係る秘匿検索システム１０の構成を説明する。
秘匿検索システム１０は、マスタ鍵生成装置２０と、１つ以上のユーザ鍵生成装置３０と、１つ以上の暗号化タグ生成装置４０と、１つ以上の検索クエリ生成装置５０と、検索装置６０とを備える。
マスタ鍵生成装置２０と、各ユーザ鍵生成装置３０と、各暗号化タグ生成装置４０と、各検索クエリ生成装置５０と、検索装置６０とは、インターネットといったネットワーク７０を介して接続されている。ネットワーク７０は、インターネットに限らず、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）といった他の種別のネットワークであってもよい。ネットワーク７０は、マスタ鍵生成装置２０と、各ユーザ鍵生成装置３０と、各暗号化タグ生成装置４０と、各検索クエリ生成装置５０と、検索装置６０との通信路である。
【００１９】
図２を参照して、実施の形態１に係るマスタ鍵生成装置２０の構成を説明する。
マスタ鍵生成装置２０は、コンピュータである。
マスタ鍵生成装置２０は、プロセッサ２１と、メモリ２２と、ストレージ２３と、通信インタフェース２４とのハードウェアを備える。プロセッサ２１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００２０】
マスタ鍵生成装置２０は、機能構成要素として、取得部２１１と、マスタ鍵生成部２１２と、出力部２１３とを備える。取得部２１１と、マスタ鍵生成部２１２と、出力部２１３との機能はソフトウェアにより実現される。
ストレージ２３には、取得部２１１と、マスタ鍵生成部２１２と、出力部２１３との機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ２１によりメモリ２２に読み込まれ、プロセッサ２１によって実行される。これにより、取得部２１１と、取得部２１１と、マスタ鍵生成部２１２と、出力部２１３との機能が実現される。
また、ストレージ２３は、鍵記憶部２３１の機能を実現する。
【００２１】
図３を参照して、実施の形態１に係るユーザ鍵生成装置３０の構成を説明する。
ユーザ鍵生成装置３０は、コンピュータである。
ユーザ鍵生成装置３０は、プロセッサ３１と、メモリ３２と、ストレージ３３と、通信インタフェース３４とのハードウェアを備える。プロセッサ３１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００２２】
ユーザ鍵生成装置３０は、機能構成要素として、取得部３１１と、ユーザ鍵生成部３１２と、出力部３１３とを備える。取得部３１１と、ユーザ鍵生成部３１２と、出力部３１３との機能はソフトウェアにより実現される。
ストレージ３３には、取得部３１１と、ユーザ鍵生成部３１２と、出力部３１３との機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ３１によりメモリ３２に読み込まれ、プロセッサ３１によって実行される。これにより、取得部３１１と、ユーザ鍵生成部３１２と、出力部３１３との機能が実現される。
また、ストレージ３３は、鍵記憶部３３１の機能を実現する。
【００２３】
図４を参照して、実施の形態１に係る暗号化タグ生成装置４０の構成を説明する。
暗号化タグ生成装置４０は、コンピュータである。
暗号化タグ生成装置４０は、プロセッサ４１と、メモリ４２と、ストレージ４３と、通信インタフェース４４とのハードウェアを備える。プロセッサ４１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００２４】
暗号化タグ生成装置４０は、機能構成要素として、取得部４１１と、コアタグ生成部４１２と、暗号化タグ生成部４１３と、出力部４１４とを備える。取得部４１１と、コアタグ生成部４１２と、暗号化タグ生成部４１３と、出力部４１４との機能はソフトウェアにより実現される。
ストレージ４３には、取得部４１１と、コアタグ生成部４１２と、暗号化タグ生成部４１３と、出力部４１４との機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ４１によりメモリ４２に読み込まれ、プロセッサ４１によって実行される。これにより、取得部４１１と、コアタグ生成部４１２と、暗号化タグ生成部４１３と、出力部４１４との機能が実現される。
また、ストレージ４３は、鍵記憶部４３１の機能を実現する。
【００２５】
図５を参照して、実施の形態１に係る検索クエリ生成装置５０の構成を説明する。
検索クエリ生成装置５０は、コンピュータである。
検索クエリ生成装置５０は、プロセッサ５１と、メモリ５２と、ストレージ５３と、通信インタフェース５４とのハードウェアを備える。プロセッサ５１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００２６】
検索クエリ生成装置５０は、機能構成要素として、取得部５１１と、クエリ生成部５１２と、出力部５１３とを備える。取得部５１１と、クエリ生成部５１２と、出力部５１３との機能はソフトウェアにより実現される。
ストレージ５３には、取得部５１１と、クエリ生成部５１２と、出力部５１３との機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ５１によりメモリ５２に読み込まれ、プロセッサ５１によって実行される。これにより、取得部５１１と、クエリ生成部５１２と、出力部５１３との機能が実現される。
また、ストレージ５３は、鍵記憶部５３１との機能を実現する。
【００２７】
図６を参照して、実施の形態１に係る検索装置６０の構成を説明する。
検索装置６０は、コンピュータである。
検索装置６０は、プロセッサ６１と、メモリ６２と、ストレージ６３と、通信インタフェース６４とのハードウェアを備える。プロセッサ６１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００２８】
検索装置６０は、機能構成要素として、取得部６１１と、照合部６１２と、出力部６１３とを備える。取得部６１１と、照合部６１２と、出力部６１３との機能はソフトウェアにより実現される。
ストレージ６３には、取得部６１１と、照合部６１２と、出力部６１３との機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ６１によりメモリ６２に読み込まれ、プロセッサ６１によって実行される。これにより、取得部６１１と、照合部６１２と、出力部６１３との機能が実現される。
また、ストレージ６３は、暗号化タグ記憶部６３１との機能を実現する。
【００２９】
プロセッサ２１，３１，４１，５１，６１は、演算処理を行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ２１，３１，４１，５１，６１は、具体例としては、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００３０】
メモリ２２，３２，４２，５２，６２は、データを一時的に記憶する記憶装置である。メモリ２２，３２，４２，５２，６２は、具体例としては、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００３１】
ストレージ２３，３３，４３，５３，６３は、データを保管する記憶装置である。ストレージ２３，３３，４３，５３，６３は、具体例としては、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。また、ストレージ２３，３３，４３，５３，６３は、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカード、ＣＦ（ＣｏｍｐａｃｔＦｌａｓｈ）、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）といった可搬記憶媒体であってもよい。
【００３２】
通信インタフェース２４，３４，４４，５４，６４は、外部の装置と通信するためのインタフェースである。通信インタフェース２４，３４，４４，５４，６４は、具体例としては、Ｅｔｈｅｒｎｅｔ（登録商標）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＨＤＭＩ（登録商標，Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）のポートである。
【００３３】
図２では、プロセッサ２１は、１つだけ示されている。しかし、マスタ鍵生成装置２０は、プロセッサ２１を代替する複数のプロセッサを備えていてもよい。同様に、ユーザ鍵生成装置３０は、プロセッサ３１を代替する複数のプロセッサを備え、暗号化タグ生成装置４０は、プロセッサ４１を代替する複数のプロセッサを備え、検索クエリ生成装置５０は、プロセッサ５１を代替する複数のプロセッサを備えていてもよい。同様に、検索装置６０は、プロセッサ６１を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、各機能構成要素の機能を実現するプログラムの実行を分担する。それぞれのプロセッサは、プロセッサ２１，３１，４１，５１，６１と同じように、演算処理を行うＩＣである。
【００３４】
＊＊＊動作の説明＊＊＊
図７を参照して、実施の形態１に係るマスタ鍵生成装置２０の動作を説明する。
実施の形態１に係るマスタ鍵生成装置２０の動作は、実施の形態１に係るマスタ鍵生成方法に相当する。また、実施の形態１に係るマスタ鍵生成装置２０の動作は、実施の形態１に係るマスタ鍵生成プログラムの処理に相当する。
【００３５】
（ステップＳ１１：取得処理）
取得部２１１は、セキュリティパラメータλと、次元数Ｎとを取得する。
具体的には、取得部２１１は、通信インタフェース２４を介して、マスタ鍵生成装置２０の管理者等によって入力されたセキュリティパラメータλ及び次元数Ｎを受け付ける。取得部２１１は、セキュリティパラメータλ及び次元数Ｎをメモリ２２に書き込む。セキュリティパラメータλは、必要な安全性に応じて決定される値である。次元数Ｎは、必要な安全性及び実現したいアクセス制御の内容等によって決定される値であり、具体例としては３以上の整数である。
【００３６】
（ステップＳ１２：基底生成処理）
マスタ鍵生成部２１２は、パラメータｐａｒａｍと、正規直交基底である基底Ｂ及び基底Ｂ＊とを生成する。
具体的には、マスタ鍵生成部２１２は、メモリ２２からセキュリティパラメータλ及び次元数Ｎを読み出す。マスタ鍵生成部２１２は、セキュリティパラメータλ及び次元数Ｎを入力として、数１６に示すように、パラメータｐａｒａｍと、基底Ｂ及び基底Ｂ＊とを生成する。マスタ鍵生成部２１２は、生成されたパラメータｐａｒａｍと、基底Ｂ及び基底Ｂ＊とをメモリ２２に書き込む。
【数１６】
0006494893.tif 000007
アルゴリズムＧｂｐｇは、対象双線形ペアリング群（ｑ，Ｇ，ＧＴ，ｇ，ｅ）を生成するアルゴリズムである。対象双線形ペアリング群（ｑ，Ｇ，ＧＴ，ｇ，ｅ）は、素数ｑ、位数ｑの巡回加法群Ｇと位数ｑの巡回乗法群ＧＴと、ｇ≠０∈Ｇと、非退化双線形ペアリングｅ：Ｇ×Ｇ→ＧＴとの組である。
アルゴリズムＧｄｐｖｓは、双対ペアリングベクトル空間（ｑ，Ｖ，ＧＴ，Ａ，ｅ）を生成するアルゴリズムである。双対ペアリングベクトル空間（ｑ，Ｖ，ＧＴ，Ａ，ｅ）は、素数ｑ、群Ｇの直積により構成されたＮ次元ベクトル空間Ｖ、位数ｑの巡回群ＧＴ、空間Ｖの標準基底Ａ：＝（ａ１，．．．，ａＮ）の組である。
【００３７】
（ステップＳ１３：共通鍵生成処理）
マスタ鍵生成部２１２は、共通鍵Ｋ←｛０，１｝λをランダムに生成する。マスタ鍵生成部２１２は、生成された共通鍵Ｋをメモリ２２に書き込む。
【００３８】
（ステップＳ１４：マスタ鍵生成処理）
マスタ鍵生成部２１２は、タグ生成鍵ｔｋ及びマスタ鍵ｍｋを生成する。
具体的には、マスタ鍵生成部２１２は、メモリ２２からパラメータｐａｒａｍと基底Ｂとを読み出す。マスタ鍵生成部２１２は、読み出されたパラメータｐａｒａｍと基底Ｂとをタグ生成鍵ｔｋとしてメモリ２２に書き込む。また、マスタ鍵生成部２１２は、メモリ２２からパラメータｐａｒａｍと基底Ｂ＊とを読み出す。マスタ鍵生成部２１２は、読み出されたパラメータｐａｒａｍと基底Ｂ＊とをマスタ鍵ｍｋとしてメモリ２２に書き込む。
【００３９】
（ステップＳ１５：出力処理）
出力部２１３は、共通鍵Ｋとタグ生成鍵ｔｋとマスタ鍵ｍｋとを鍵記憶部２３１を出力する。
具体的には、出力部２１３は、メモリ２２から共通鍵Ｋとタグ生成鍵ｔｋとマスタ鍵ｍｋとを読み出す。出力部２１３は、読み出された共通鍵Ｋとタグ生成鍵ｔｋとマスタ鍵ｍｋとを鍵記憶部２３１に書き込む。また、出力部２１３は、通信インタフェース２４を介して、マスタ鍵ｍｋをユーザ鍵生成装置３０に送信し、共通鍵Ｋとタグ生成鍵ｔｋとを暗号化タグ生成装置４０に送信し、共通鍵Ｋを検索クエリ生成装置５０に送信する。
出力部２１３は、共通鍵Ｋとタグ生成鍵ｔｋとマスタ鍵ｍｋとを送信する際、既存の暗号方式により暗号化するといった方法により、共通鍵Ｋとタグ生成鍵ｔｋとマスタ鍵ｍｋとが他者に漏洩しないようにする。なお、出力部２１３は、共通鍵Ｋとタグ生成鍵ｔｋとマスタ鍵ｍｋとを、通信インタフェース２４を介して、ネットワーク７０経由で送信するのではなく、可搬記憶媒体に書き込んでもよい。そして、可搬記憶媒体が郵送によりユーザ鍵生成装置３０と暗号化タグ生成装置４０と検索クエリ生成装置５０とに送付されてもよい。
【００４０】
図８を参照して、実施の形態１に係るユーザ鍵生成装置３０の動作を説明する。
実施の形態１に係るユーザ鍵生成装置３０の動作は、実施の形態１に係るユーザ鍵生成方法に相当する。また、実施の形態１に係るユーザ鍵生成装置３０の動作は、実施の形態１に係るユーザ鍵生成プログラムの処理に相当する。
【００４１】
（ステップＳ２１：取得処理）
取得部３１１は、マスタ鍵ｍｋと、ユーザの属性情報ｖ→とを取得する。
具体的には、取得部３１１は、通信インタフェース３４を介して、図７のステップＳ１５で送信されたマスタ鍵ｍｋを受信する。取得部３１１は、受信されたマスタ鍵ｍｋをメモリ３２及び鍵記憶部３３１に書き込む。なお、既に、マスタ鍵ｍｋが鍵記憶部３３１に記憶されている場合には、取得部３１１は、鍵記憶部３３１からマスタ鍵ｍｋを読み出し、メモリ３２に書き込む。
また、取得部３１１は、通信インタフェース３４を介して、ユーザ鍵生成装置３０の管理者等によって入力されたユーザの属性情報ｖ→を受け付ける。ユーザの属性情報ｖ→は、有限体Ｆｑ上のｎ次元のベクトルとして表現されている。属性情報ｖ→は、要素が全て０のベクトル以外のベクトルである。取得部３１１は、受け付けられた属性情報ｖ→をメモリ３２に書き込む。属性情報ｖ→は、ユーザの所属先及び役職といったユーザの属性を示す。
【００４２】
（ステップＳ２２：乱数生成処理）
ユーザ鍵生成部３１２は、乱数σ∈Ｆｑと、乱数η→∈ＦｑＬとを生成する。ユーザ鍵生成部３１２は、生成された乱数σ及び乱数η→をメモリ３２に書き込む。
【００４３】
（ステップＳ２３：ユーザ鍵生成処理）
ユーザ鍵生成部３１２は、マスタ鍵ｍｋに属性情報ｖ→を設定してユーザ鍵ｋ＊を生成する。
具体的には、ユーザ鍵生成部３１２は、メモリ３２からマスタ鍵ｍｋと属性情報ｖ→と乱数σ及び乱数η→とを読み出す。ユーザ鍵生成部３１２は、マスタ鍵ｍｋと属性情報ｖ→と乱数σ及び乱数η→とを用いて、数１７に示すようにユーザ鍵ｋ＊を生成する。ユーザ鍵生成部３１２は、生成されたユーザ鍵ｋ＊をメモリ３２に書き込む。
【数１７】
0006494893.tif 000008
なお、０ｍは、ｍ個の０を意味している。同様に、０ｋは、ｋ個の０を意味している。ｍ，ｋは０以上の整数である。
【００４４】
（ステップＳ２４：出力処理）
出力部３１３は、ユーザ鍵ｋ＊を出力する。
具体的には、出力部３１３は、メモリ３２からユーザ鍵ｋ＊を読み出す。出力部３１３は、通信インタフェース３４を介して、読み出されたユーザ鍵ｋ＊を検索クエリ生成装置５０に送信する。出力部３１３は、ユーザ鍵ｋ＊を可搬記憶媒体に書き込み、可搬記憶媒体が検索クエリ生成装置５０に送付されてもよい。
【００４５】
図９を参照して、実施の形態１に係る暗号化タグ生成装置４０の動作を説明する。
実施の形態１に係る暗号化タグ生成装置４０の動作は、実施の形態１に係る暗号化タグ生成方法に相当する。また、実施の形態１に係る暗号化タグ生成装置４０の動作は、実施の形態１に係る暗号化タグ生成プログラムの処理に相当する。
【００４６】
（ステップＳ３１：取得処理）
取得部４１１は、共通鍵Ｋ及びタグ生成鍵ｔｋと、範囲条件ｘ→と、キーワードｗ１とを取得する。
具体的には、取得部４１１は、通信インタフェース４４を介して、図７のステップＳ１５で送信された共通鍵Ｋ及びタグ生成鍵ｔｋを受信する。取得部４１１は、受信された共通鍵Ｋ及びタグ生成鍵ｔｋをメモリ４２及び鍵記憶部４３１に書き込む。なお、既に、共通鍵Ｋ及びタグ生成鍵ｔｋが鍵記憶部４３１に記憶されている場合には、取得部４１１は、鍵記憶部４３１から共通鍵Ｋ及びタグ生成鍵ｔｋを読み出し、メモリ４２に書き込む。
また、取得部４１１は、通信インタフェース４４を介して、暗号化タグ生成装置４０の利用者等によって入力された範囲条件ｘ→及びキーワードｗ１を受け付ける。範囲条件ｘ→は、有限体Ｆｑ上のｎ次元のベクトルとして表現されている。範囲条件ｘ→は、要素が全て０のベクトル以外のベクトルである。範囲条件ｘ→は、検索を許可する範囲を示し、検索を許可する所属先及び役職等を示す。キーワードｗ１は、任意のビット数のビット列である。取得部４１１は、受け付けられた範囲条件ｘ→及びキーワードｗ１をメモリ４２に書き込む。
【００４７】
（ステップＳ３２：乱数生成処理）
コアタグ生成部４１２は、乱数ω∈Ｆｑと、乱数φ→∈Ｆｑｋとを生成する。コアタグ生成部４１２は、生成された乱数ω及び乱数φ→をメモリ４２に書き込む。
【００４８】
（ステップＳ３３：コアタグ生成処理）
コアタグ生成部４１２は、暗号化タグｃｘ，ｗを生成するための鍵であるタグ生成鍵ｔｋで、検索を許可する範囲を示す範囲条件ｘ→を暗号化してコアタグｃ〜ｘを生成する。
具体的には、コアタグ生成部４１２は、メモリ４２からタグ生成鍵ｔｋと範囲条件ｘ→と乱数ω及び乱数φ→とを読み出す。コアタグ生成部４１２は、タグ生成鍵ｔｋと範囲条件ｘ→と乱数ω及び乱数φ→とを用いて、数１８に示すように、基底Ｂにおけるベクトルであるコアタグｃ〜ｘを生成する。コアタグ生成部４１２は、生成されたコアタグｃ〜ｘをメモリ４２に書き込む。
【数１８】
0006494893.tif 000009
なお、０Ｌは、Ｌ個の０を意味している。Ｌは０以上の整数である。
【００４９】
（ステップＳ３４：エンコード処理）
暗号化タグ生成部４１３は、キーワードｗ１をエンコードしたエンコード情報である行列ＥＷ１を生成する。
具体的には、暗号化タグ生成部４１３は、メモリ４２から共通鍵Ｋとキーワードｗ１とを読み出す。暗号化タグ生成部４１３は、共通鍵Ｋとキーワードｗ１とを入力として、エンコード関数Ｈを計算して、Ｎ行Ｎ列の正方行列である行列ＥＷ１∈ＦｑＮ×Ｎを生成する。暗号化タグ生成部４１３は、生成された行列ＥＷ１をメモリ４２に書き込む。
エンコード関数Ｈは、具体例としては、ハッシュ関数を繰り返し実行する関数である。例えば、エンコード関数Ｈは、共通鍵Ｋとキーワードｗ１と値“１”とをハッシュ関数に入力して、行列ＥＷの１行目成分を生成する。また、エンコード関数Ｈは、共通鍵Ｋとキーワードｗ１と値“２”とをハッシュ関数に入力して、行列ＥＷの２行目成分を生成する。このように、エンコード関数Ｈは、行列ＥＷの各行の成分を、共通鍵Ｋとキーワードｗ１とその行に応じた値とをハッシュ関数の入力として計算する関数である。
【００５０】
（ステップＳ３５：暗号化タグ生成処理）
暗号化タグ生成部４１３は、コアタグｃ〜ｘを、検索のキーワードｗ１がエンコードされたエンコード情報である行列ＥＷ１によって変換することにより、キーワードｗ１が設定された暗号化タグｃｘ，ｗを生成する。
具体的には、暗号化タグ生成部４１３は、メモリ４２からコアタグｃ〜ｘと行列ＥＷ１とを読み出す。暗号化タグ生成部４１３は、数１９に示すように、コアタグｃ〜ｘと行列ＥＷ１との行列積を計算して暗号化タグｃｘ，ｗを生成する。
【数１９】
0006494893.tif 000010
つまり、暗号化タグ生成部４１３は、コアタグｃ〜ｘと行列ＥＷ１との行列積を計算して、コアタグｃ〜ｘの基底Ｂを変換することにより、暗号化タグｃｘ，ｗを生成する。暗号化タグ生成部４１３は、生成された暗号化タグｃｘ，ｗをメモリ４２に書き込む。
【００５１】
（ステップＳ３６：出力処理）
出力部４１４は、暗号化タグｃｘ，ｗを出力する。
具体的には、出力部４１４は、メモリ４２から暗号化タグｃｘ，ｗを読み出す。出力部４１４は、通信インタフェース４４を介して、読み出された暗号化タグｃｘ，ｗを検索装置６０に送信する。出力部４１４は、暗号化タグｃｘ，ｗを可搬記憶媒体に書き込み、可搬記憶媒体が検索装置６０に送付されてもよい。
【００５２】
図１０を参照して、実施の形態１に係る検索クエリ生成装置５０の動作を説明する。
実施の形態１に係る検索クエリ生成装置５０の動作は、実施の形態１に係る検索クエリ生成方法に相当する。また、実施の形態１に係る検索クエリ生成装置５０の動作は、実施の形態１に係る検索クエリ生成プログラムの処理に相当する。
【００５３】
（ステップＳ４１：取得処理）
取得部５１１は、共通鍵Ｋと、ユーザ鍵ｋ＊と、キーワードｗ２とを取得する。
具体的には、取得部５１１は、通信インタフェース５４を介して、図７のステップＳ１５で送信された共通鍵Ｋを受信する。取得部５１１は、受信された共通鍵Ｋをメモリ５２及び鍵記憶部５３１に書き込む。なお、既に、共通鍵Ｋが鍵記憶部５３１に記憶されている場合には、取得部５１１は、鍵記憶部５３１から共通鍵Ｋを読み出し、メモリ５２に書き込む。
また、取得部５１１は、通信インタフェース５４を介して、図８のステップＳ２４で送信されたユーザ鍵ｋ＊を受信する。取得部５１１は、受信されたユーザ鍵ｋ＊をメモリ５２及び鍵記憶部５３１に書き込む。なお、既に、ユーザ鍵ｋ＊が鍵記憶部５３１に記憶されている場合には、取得部５１１は、鍵記憶部５３１からユーザ鍵ｋ＊を読み出し、メモリ５２に書き込む。
また、取得部５１１は、通信インタフェース５４を介して、検索クエリ生成装置５０の利用者等によって入力されたキーワードｗ２を受け付ける。キーワードｗ２は、任意のビット数のビット列である。取得部４１１は、受け付けられたキーワードｗ２をメモリ５２に書き込む。
【００５４】
（ステップＳ４２：乱数生成処理）
クエリ生成部５１２は、乱数ｒ∈Ｆｑを生成する。クエリ生成部５１２は、生成された乱数ｒをメモリ５２に書き込む。
【００５５】
（ステップＳ４３：エンコード処理）
クエリ生成部５１２は、キーワードｗ２をエンコードしたエンコード情報である行列ＥＷ２を生成する。
具体的には、クエリ生成部５１２は、メモリ５２から共通鍵Ｋとキーワードｗ２とを読み出す。クエリ生成部５１２は、共通鍵Ｋとキーワードｗ２とを入力として、エンコード関数Ｈを計算して、Ｎ行Ｎ列の正方行列である行列ＥＷ２∈ＦｑＮ×Ｎを生成する。クエリ生成部５１２は、生成された行列ＥＷ２をメモリ５２に書き込む。
なお、エンコード関数Ｈは、図９のステップＳ３４と同じものが用いられる。
【００５６】
（ステップＳ４４：クエリ生成処理）
クエリ生成部５１２は、ユーザの属性が設定されたユーザ鍵ｋ＊を、検索のキーワードｗ２がエンコードされたエンコード情報である行列ＥＷ２によって変換することにより、キーワードｗ２が設定された検索クエリｋ＊ｖ，ｗを生成する
具体的には、クエリ生成部５１２は、メモリ５２からユーザ鍵ｋ＊と行列ＥＷ２と乱数ｒとを読み出す。暗号化タグ生成部４１３は、数２０に示すように、ユーザ鍵ｋ＊と行列ＥＷ２を転置した行列の逆行列との行列積を計算して検索クエリｋ＊ｖ，ｗを生成する。
【数２０】
0006494893.tif 000011
つまり、クエリ生成部５１２は、ユーザ鍵ｋ＊と行列ＥＷ２を転置した行列の逆行列との行列積を計算して、ユーザ鍵ｋ＊の基底Ｂ＊を変換することにより、検索クエリｋ＊ｖ，ｗを生成する。クエリ生成部５１２は、生成された検索クエリｋ＊ｖ，ｗをメモリ５２に書き込む。
【００５７】
（ステップＳ４５：出力処理）
出力部５１３は、検索クエリｋ＊ｖ，ｗを出力する。
具体的には、出力部５１３は、メモリ５２から検索クエリｋ＊ｖ，ｗを読み出す。出力部５１３は、通信インタフェース５４を介して、読み出された検索クエリｋ＊ｖ，ｗを検索装置６０に送信する。出力部５１３は、検索クエリｋ＊ｖ，ｗを可搬記憶媒体に書き込み、可搬記憶媒体が検索装置６０に送付されてもよい。
【００５８】
図１１及び図１２を参照して、実施の形態１に係る検索装置６０の動作を説明する。
実施の形態１に係る検索装置６０の動作は、実施の形態１に係る検索方法に相当する。また、実施の形態１に係る検索装置６０の動作は、実施の形態１に係る検索プログラムの処理に相当する。
実施の形態１に係る検索装置６０の動作は、暗号化タグ記憶処理と、暗号化タグ検索処理とに分けられる。
【００５９】
図１１を参照して、実施の形態１に係る暗号化タグ記憶処理を説明する。
（ステップＳ５１：取得処理）
取得部６１１は、暗号化タグｃｘ，ｗを取得する。
具体的には、取得部６１１は、通信インタフェース６４を介して、図９のステップＳ３６で送信された暗号化タグｃｘ，ｗを受信する。取得部６１１は、受信された暗号化タグｃｘ，ｗを暗号化タグ記憶部６３１に書き込む。
【００６０】
図９のステップＳ３６で暗号化タグｃｘ，ｗが送信される度に、送信された暗号化タグｃｘ，ｗが暗号化タグ記憶部６３１に書き込まれることにより、暗号化タグ記憶部６３１に複数の暗号化タグｃｘ，ｗが記憶される。
【００６１】
図１２を参照して、実施の形態１に係る暗号化タグ検索処理を説明する。
（ステップＳ６１：取得処理）
取得部６１１は、検索クエリｋ＊ｖ，ｗを取得する。
具体的には、取得部６１１は、通信インタフェース６４を介して、図１０のステップＳ４５で送信された検索クエリｋ＊ｖ，ｗを受信する。取得部６１１は、受信された検索クエリｋ＊ｖ，ｗをメモリ６２に書き込む。
【００６２】
（ステップＳ６２：照合処理）
照合部６１２は、暗号化タグ記憶部６３１に記憶された各暗号化タグｃｘ，ｗと、検索クエリｋ＊ｖ，ｗとを照合して、検索クエリｋ＊ｖ，ｗに対応する暗号化タグｃｘ，ｗを抽出する。
具体的には、照合部６１２は、メモリ６２から検索クエリｋ＊ｖ，ｗを読み出す。照合部６１２は、暗号化タグ記憶部６３１に記憶された各暗号化タグｃｘ，ｗと、読み出された検索クエリｋ＊ｖ，ｗとについて、数２１に示すペアリング演算を行う。
【数２１】
0006494893.tif 000012
照合部６１２は、ペアリング演算の結果得られた値Ｐが１であるなら、演算対象の暗号化タグｃｘ，ｗは検索クエリｋ＊ｖ，ｗに対応すると判定し、ペアリング演算の結果得られた値Ｐが１でないなら、演算対象の暗号化タグｃｘ，ｗは検索クエリｋ＊ｖ，ｗに対応しないと判定する。
【００６３】
（ステップＳ６３：出力処理）
出力部６１３は、照合結果を出力する。
具体的には、出力部６１３は、通信インタフェース６４を介して、検索クエリｋ＊ｖ，ｗに対応すると判定された暗号化タグｃｘ，ｗの識別情報を、ステップＳ６１で受信された検索クエリｋ＊ｖ，ｗの送信元の検索クエリ生成装置５０に送信する。あるいは、出力部６１３は、通信インタフェース６４を介して、検索クエリｋ＊ｖ，ｗに対応すると判定された暗号化タグｃｘ，ｗがあったか否かを、ステップＳ６１で受信された検索クエリｋ＊ｖ，ｗの送信元の検索クエリ生成装置５０に送信する。
【００６４】
＊＊＊実施の形態１の効果＊＊＊
以上のように、実施の形態１に係る秘匿検索システム１０では、暗号化タグ生成装置４０は、範囲条件ｘ→を暗号化して得られたコアタグｃ〜ｘをキーワードｗ１がエンコードされたエンコード情報である行列ＥＷ１によって変換して暗号化タグｃｘ，ｗを生成する。また、検索クエリ生成装置５０は、属性情報ｖ→が設定されたユーザ鍵ｋ＊をキーワードｗ２がエンコードされたエンコード情報である行列ＥＷ２によって変換して検索クエリｋ＊ｖ，ｗを生成する。
より具体的には、暗号化タグ生成装置４０は、コアタグｃ〜ｘの基底Ｂを行列ＥＷ１によって変換することにより、コアタグｃ〜ｘの要素数を増やすことなく、キーワードが設定された暗号化タグｃｘ，ｗを生成する。また、検索クエリ生成装置５０は、ユーザ鍵ｋ＊の基底Ｂ＊を行列ＥＷ２によって変換することにより、ユーザ鍵ｋ＊の要素数を増やすことなく、キーワードが設定された検索クエリｋ＊ｖ，ｗを生成する。
そのため、従来のように、範囲情報とキーワードとのそれぞれに対応した要素を有していた暗号化タグと、属性情報とキーワードとのそれぞれに対応した要素を有していた検索クエリとに比べて、要素数の少ない暗号化タグｃｘ，ｗ及び検索クエリｋ＊ｖ，ｗを生成することができる。その結果、図１２のステップＳ６３でのペアリング演算の演算数を少なくすることができる。ペアリング演算の演算数が少なくなると、暗号化タグｃｘ，ｗと検索クエリｋ＊ｖ，ｗとの照合にかかる処理時間が短くなり、検索速度が速くなる。
【００６５】
また、実施の形態１に係る秘匿検索システム１０では、従来のように、暗号化タグｃｘ，ｗには範囲情報が設定され、検索クエリｋ＊ｖ，ｗには属性情報が設定される。そのため、柔軟なアクセス制御を実現可能である。
【００６６】
＊＊＊他の構成＊＊＊
＜変形例１＞
実施の形態１では、マスタ鍵生成装置２０とユーザ鍵生成装置３０と暗号化タグ生成装置４０と検索クエリ生成装置５０と検索装置６０との機能構成要素がソフトウェアで実現された。しかし、変形例１として、機能構成要素はハードウェアで実現されてもよい。この変形例１について、実施の形態１と異なる点を説明する。
【００６７】
図１３を参照して、変形例１に係るマスタ鍵生成装置２０の構成を説明する。
機能がハードウェアで実現される場合、マスタ鍵生成装置２０は、プロセッサ２１とメモリ２２とストレージ２３とに代えて、処理回路２５を備える。処理回路２５は、マスタ鍵生成装置２０の機能構成要素と、メモリ２２とストレージ２３との機能とを実現する専用の電子回路である。
【００６８】
図１４を参照して、変形例１に係るユーザ鍵生成装置３０の構成を説明する。
機能がハードウェアで実現される場合、ユーザ鍵生成装置３０は、プロセッサ３１とメモリ３２とストレージ３３とに代えて、処理回路３５を備える。処理回路３５は、ユーザ鍵生成装置３０の機能構成要素と、メモリ３２とストレージ３３との機能とを実現する専用の電子回路である。
【００６９】
図１５を参照して、変形例１に係る暗号化タグ生成装置４０の構成を説明する。
機能がハードウェアで実現される場合、暗号化タグ生成装置４０は、プロセッサ４１とメモリ４２とストレージ４３とに代えて、処理回路４５を備える。処理回路４５は、暗号化タグ生成装置４０の機能構成要素と、メモリ４２とストレージ４３との機能とを実現する専用の電子回路である。
【００７０】
図１６を参照して、変形例１に係る検索クエリ生成装置５０の構成を説明する。
機能がハードウェアで実現される場合、検索クエリ生成装置５０は、プロセッサ５１とメモリ５２とストレージ５３とに代えて、処理回路５５を備える。処理回路５５は、検索クエリ生成装置５０の機能構成要素と、メモリ５２とストレージ５３との機能とを実現する専用の電子回路である。
【００７１】
図１７を参照して、変形例１に係る検索装置６０の構成を説明する。
機能がハードウェアで実現される場合、検索装置６０は、プロセッサ６１とメモリ６２とストレージ６３とに代えて、処理回路６５を備える。処理回路６５は、検索装置６０の機能構成要素と、メモリ６２とストレージ６３との機能とを実現する専用の電子回路である。
【００７２】
処理回路２５，３５，４５，５５，６５は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）が想定される。
マスタ鍵生成装置２０の各機能構成要素の機能を１つの処理回路２５で実現してもよいし、各機能構成要素の機能を複数の処理回路２５に分散させて実現してもよい。同様に、ユーザ鍵生成装置３０と暗号化タグ生成装置４０と検索クエリ生成装置５０と検索装置６０とのそれぞれについて、各機能構成要素の機能を１つの処理回路３５，４５，５５，６５で実現してもよいし、各機能構成要素の機能を複数の処理回路３５，４５，５５，６５に分散させて実現してもよい。
【００７３】
＜変形例２＞
変形例２として、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。つまり、各機能構成要素のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
【００７４】
プロセッサ２１，３１，４１，５１，６１とメモリ２２，３２，４２，５２，６２とストレージ２３，３３，４３，５３，６３と処理回路２５，３５，４５，５５，６５とを、総称して「プロセッシングサーキットリー」という。つまり、各機能構成要素の機能は、プロセッシングサーキットリーにより実現される。
【符号の説明】
【００７５】
１０  秘匿検索システム、２０  マスタ鍵生成装置、２１  プロセッサ、２２  メモリ、２３  ストレージ、２４  通信インタフェース、２５  処理回路、２１１  取得部、２１２  マスタ鍵生成部、２１３  出力部、２３１  鍵記憶部、３０  ユーザ鍵生成装置、３１  プロセッサ、３２  メモリ、３３  ストレージ、３４  通信インタフェース、３５  処理回路、３１１  取得部、３１２  ユーザ鍵生成部、３１３  出力部、３３１  鍵記憶部、４０  暗号化タグ生成装置、４１  プロセッサ、４２  メモリ、４３  ストレージ、４４  通信インタフェース、４５  処理回路、４１１  取得部、４１２  コアタグ生成部、４１３  暗号化タグ生成部、４１４  出力部、４３１  鍵記憶部、５０  検索クエリ生成装置、５１  プロセッサ、５２  メモリ、５３  ストレージ、５４  通信インタフェース、５５  処理回路、５１１  取得部、５１２  クエリ生成部、５１３  出力部、５３１  鍵記憶部、６０  検索装置、６１  プロセッサ、６２  メモリ、６３  ストレージ、６４  通信インタフェース、６５  処理回路、６１１  取得部、６１２  照合部、６１３  出力部、６３１  暗号化タグ記憶部、７０  ネットワーク。
【図１】
0006494893.tif 000013
【図２】
0006494893.tif 000014
【図３】
0006494893.tif 000015
【図４】
0006494893.tif 000016
【図５】
0006494893.tif 000017
【図６】
0006494893.tif 000018
【図７】
0006494893.tif 000019
【図８】
0006494893.tif 000020
【図９】
0006494893.tif 000021
【図１０】
0006494893.tif 000022
【図１１】
0006494893.tif 000023
【図１２】
0006494893.tif 000024
【図１３】
0006494893.tif 000025
【図１４】
0006494893.tif 000026
【図１５】
0006494893.tif 000027
【図１６】
0006494893.tif 000028
【図１７】
0006494893.tif 000029