(57)【特許請求の範囲】
【請求項１】
第１装置により実行される、データの検索のための検索方法であって、
ユーザのプライバシーデータから抽出された複数の成分を含むベクトルで表される特徴量に対する第１変換の結果としての第１変換特徴量に所定暗号化を施して得られる暗号化第１変換特徴量を第２装置から受信し、
複数の参照特徴量のそれぞれが複数の参照データのいずれかと対応して前記特徴量と同数の成分を含むベクトルで表される当該複数の参照特徴量のそれぞれについて、当該参照特徴量に対する第２変換の結果としての第２変換特徴量に前記所定暗号化を施して得られる暗号化第２変換特徴量を取得し、
前記取得した複数の暗号化第２変換特徴量のそれぞれについて当該暗号化第２変換特徴量と前記暗号化第１変換特徴量とを用いた内積演算を行い、当該内積演算の結果が一定条件を満たす１つ以上の暗号化第２変換特徴量のそれぞれと対応関係を有する１つ以上の前記参照データを示す情報を前記第２装置へ送信し、
前記第１変換、前記第２変換及び前記所定暗号化は、前記暗号化第１変換特徴量と前記取得した１つの暗号化第２変換特徴量との内積演算の結果が、当該暗号化第１変換特徴量に対応する前記特徴量と当該１つの暗号化第２変換特徴量に対応する参照特徴量とのユークリッド距離に関連する値となるように、定められ、
前記所定暗号化は、所定の内積暗号による暗号化であり、
前記第１変換及び前記第２変換は、前記暗号化第１変換特徴量と前記取得した１つの暗号化第２変換特徴量との内積演算の結果が、当該暗号化第１変換特徴量に対応する前記特徴量と当該１つの暗号化第２変換特徴量に対応する参照特徴量とのユークリッド距離となるように、定められており、
前記一定条件は、前記内積演算の結果が所定閾値以下の場合に満たされる条件である
検索方法。 
【請求項２】
前記特徴量を、ｎ次元のベクトルＸ＝（ｘ１，ｘ２，ｘ３，・・・，ｘｎ）で表す場合において、前記第１変換は、前記特徴量を前記第１変換特徴量としてのベクトルＸ’＝（Σｘｊ＾２，１，ｘ１，ｘ２，・・・，ｘｎ）に変換するように定められており、前記Σｘｊ＾２はｊが１からｎまでのｘｊ＾２の総和であり、
前記複数の参照特徴量を、ｋを１から当該複数の参照特徴量の個数までの各整数として、ｎ次元のベクトルＹｋ＝（ｙｋ１，ｙｋ２，ｙｋ３，・・・，ｙｋｎ）で表す場合において、前記第２変換は、前記複数の参照特徴量のそれぞれを前記第２変換特徴量としてのベクトルＹｋ’＝（１，Σｙｋｊ＾２，−２ｙｋ１，−２ｙｋ２，・・・，−２ｙｋｎ）に変換するように定められており、前記Σｙｋｊ＾２はｊが１からｎまでのｙｋｊ＾２の総和である
請求項１記載の検索方法。
【請求項３】
前記特徴量を、ｎ次元のベクトルＸ＝（ｘ１，ｘ２，ｘ３，・・・，ｘｎ）で表す場合において、前記第１変換は、前記特徴量を前記第１変換特徴量としてのベクトルＸ’＝（Σ（ｗｊ・ｘｊ＾２），１，ｘ１，ｘ２，・・・，ｘｎ）に変換するように定められており、前記Σ（ｗｊ・ｘｊ＾２）はｊが１からｎまでの（ｗｊ・ｘｊ＾２）の総和であり、
前記複数の参照特徴量を、ｋを１から当該複数の参照特徴量の個数までの各整数として、ｎ次元のベクトルＹｋ＝（ｙｋ１，ｙｋ２，ｙｋ３，・・・，ｙｋｎ）で表す場合において、前記第２変換は、前記複数の参照特徴量のそれぞれを前記第２変換特徴量としてのベクトルＹｋ’＝（１，Σ（ｗｊ・ｙｋｊ＾２），−２ｗ１・ｙｋ１，−２ｗ２・ｙｋ２，・・・，−２ｗｎ・ｙｋｎ）に変換するように定められており、前記Σ（ｗｊ・ｙｋｊ＾２）はｊが１からｎまでの（ｗｊ・ｙｋｊ＾２）の総和であり、
前記ユークリッド距離は、ｎ次元のベクトルの１番目からｎ番目までの成分に対応してｗ１からｗｎまでの重みを付けた重み付きユークリッド距離である
請求項１記載の検索方法。
【請求項４】
第１装置により実行される、データの検索のための検索方法であって、
ユーザのプライバシーデータから抽出された複数の成分を含むベクトルで表される特徴量に対する第１変換の結果としての第１変換特徴量に所定暗号化を施して得られる暗号化第１変換特徴量を第２装置から受信し、
複数の参照特徴量のそれぞれが複数の参照データのいずれかと対応して前記特徴量と同数の成分を含むベクトルで表される当該複数の参照特徴量のそれぞれについて、当該参照特徴量に対する第２変換の結果としての第２変換特徴量に前記所定暗号化を施して得られる暗号化第２変換特徴量を取得し、
前記取得した複数の暗号化第２変換特徴量のそれぞれについて当該暗号化第２変換特徴量と前記暗号化第１変換特徴量とを用いた内積演算を行い、当該内積演算の結果が一定条件を満たす１つ以上の暗号化第２変換特徴量のそれぞれと対応関係を有する１つ以上の前記参照データを示す情報を前記第２装置へ送信し、
前記第１変換、前記第２変換及び前記所定暗号化は、前記暗号化第１変換特徴量と前記取得した１つの暗号化第２変換特徴量との内積演算の結果が、当該暗号化第１変換特徴量に対応する前記特徴量と当該１つの暗号化第２変換特徴量に対応する参照特徴量とのユークリッド距離に関連する値となるように、定められ、
前記所定暗号化は、所定の述語暗号による暗号化であり、
前記第１変換及び前記第２変換は、前記暗号化第１変換特徴量と前記取得した１つの暗号化第２変換特徴量との内積演算の結果が、当該暗号化第１変換特徴量に対応する前記特徴量と当該１つの暗号化第２変換特徴量に対応する参照特徴量とのユークリッド距離から所定値を減算した値となるように、定められており、
前記一定条件は、前記内積演算の結果が０の場合に満たされる条件である
検索方法。
【請求項５】
前記第１装置は、記憶媒体を備え、当該記憶媒体に前記複数の参照データと前記複数の参照特徴量とを記憶しており、
前記検索方法では、前記記憶媒体における前記複数の参照特徴量のそれぞれについて、当該参照特徴量に対して第２変換を施した前記第２変換特徴量を生成し、当該第２変換特徴量に前記所定暗号化を施した前記暗号化第２変換特徴量を生成することにより前記暗号化第２変換特徴量の前記取得を行う
請求項１〜４のいずれか一項に記載の検索方法。
【請求項６】
前記検索方法では、複数の暗号化第２変換特徴量の前記取得を、第３装置から当該複数の暗号化第２変換特徴量を受信することにより行い、
前記第３装置は、前記複数の暗号化第２変換特徴量に対応する前記複数の参照データを記憶しており、
前記検索方法では、前記複数の暗号化第２変換特徴量それぞれのうち前記内積演算の結果が一定条件を満たす１つ以上の暗号化第２変換特徴量それぞれと対応関係を有する１つ以上の前記参照データを前記第３装置から受信し、当該受信した１つ以上の前記参照データに基づいて前記情報の前記第２装置への前記送信を行う
請求項１〜４のいずれか一項に記載の検索方法。
【請求項７】
前記ユーザのプライバシーデータは、前記ユーザのバイタルデータを含む
請求項１〜６のいずれか一項に記載の検索方法。
【請求項８】
前記特徴量は、前記ユーザの身体の全体又は一部位についての形状、サイズ、重量、状態、及び、動きの少なくとも１つに関連する指標を示す成分を含む
請求項７記載の検索方法。
【請求項９】
前記ユーザのプライバシーデータは、前記ユーザが機器を操作したことの履歴を示すログ情報を含む
請求項１〜６のいずれか一項に記載の検索方法。
【請求項１０】
１つ以上の前記参照データを示す前記情報は、当該１つ以上の前記参照データを暗号化した情報である
請求項１〜９のいずれか一項に記載の検索方法。
【請求項１１】
相互に通信可能な第１装置及び第２装置を備える検索システムであって、
前記第２装置は、ユーザについて測定を行い、当該測定結果としてのプライバシーデータから抽出された複数の成分を含むベクトルで表される特徴量に対する第１変換の結果としての第１変換特徴量に所定暗号化を施して得られる暗号化第１変換特徴量を前記第１装置へ送信し、
前記第１装置は、
前記暗号化第１変換特徴量を前記第２装置から受信し、
複数の参照特徴量のそれぞれが複数の参照データのいずれかと対応して前記特徴量と同数の成分を含むベクトルで表される当該複数の参照特徴量のそれぞれについて、当該参照特徴量に対する第２変換の結果としての第２変換特徴量に前記所定暗号化を施して得られる暗号化第２変換特徴量を取得し、
前記取得した複数の暗号化第２変換特徴量のそれぞれについて当該暗号化第２変換特徴量と前記暗号化第１変換特徴量とを用いた内積演算を行い、当該内積演算の結果が一定条件を満たす１つ以上の暗号化第２変換特徴量のそれぞれと対応関係を有する１つ以上の前記参照データを示す情報を前記第２装置へ送信し、
前記第２装置は、前記参照データを示す前記情報を受信して前記参照データを提示し、
前記第１変換、前記第２変換及び前記所定暗号化は、前記暗号化第１変換特徴量と前記取得した１つの暗号化第２変換特徴量との内積演算の結果が、当該暗号化第１変換特徴量に対応する前記特徴量と当該１つの暗号化第２変換特徴量に対応する参照特徴量とのユークリッド距離に関連する値となるように、定められ、
前記所定暗号化は、所定の内積暗号による暗号化であり、
前記第１変換及び前記第２変換は、前記暗号化第１変換特徴量と前記取得した１つの暗号化第２変換特徴量との内積演算の結果が、当該暗号化第１変換特徴量に対応する前記特徴量と当該１つの暗号化第２変換特徴量に対応する参照特徴量とのユークリッド距離となるように、定められており、
前記一定条件は、前記内積演算の結果が所定閾値以下の場合に満たされる条件である
検索システム。
【請求項１２】
相互に通信可能な第１装置及び第２装置を備える検索システムであって、
前記第２装置は、ユーザについて測定を行い、当該測定結果としてのプライバシーデータから抽出された複数の成分を含むベクトルで表される特徴量に対する第１変換の結果としての第１変換特徴量に所定暗号化を施して得られる暗号化第１変換特徴量を前記第１装置へ送信し、
前記第１装置は、
前記暗号化第１変換特徴量を前記第２装置から受信し、
複数の参照特徴量のそれぞれが複数の参照データのいずれかと対応して前記特徴量と同数の成分を含むベクトルで表される当該複数の参照特徴量のそれぞれについて、当該参照特徴量に対する第２変換の結果としての第２変換特徴量に前記所定暗号化を施して得られる暗号化第２変換特徴量を取得し、
前記取得した複数の暗号化第２変換特徴量のそれぞれについて当該暗号化第２変換特徴量と前記暗号化第１変換特徴量とを用いた内積演算を行い、当該内積演算の結果が一定条件を満たす１つ以上の暗号化第２変換特徴量のそれぞれと対応関係を有する１つ以上の前記参照データを示す情報を前記第２装置へ送信し、
前記第２装置は、前記参照データを示す前記情報を受信して前記参照データを提示し、
前記第１変換、前記第２変換及び前記所定暗号化は、前記暗号化第１変換特徴量と前記取得した１つの暗号化第２変換特徴量との内積演算の結果が、当該暗号化第１変換特徴量に対応する前記特徴量と当該１つの暗号化第２変換特徴量に対応する参照特徴量とのユークリッド距離に関連する値となるように、定められ、
前記所定暗号化は、所定の述語暗号による暗号化であり、
前記第１変換及び前記第２変換は、前記暗号化第１変換特徴量と前記取得した１つの暗号化第２変換特徴量との内積演算の結果が、当該暗号化第１変換特徴量に対応する前記特徴量と当該１つの暗号化第２変換特徴量に対応する参照特徴量とのユークリッド距離から所定値を減算した値となるように、定められており、
前記一定条件は、前記内積演算の結果が０の場合に満たされる条件である
検索システム。
【請求項１３】
記憶媒体及びマイクロプロセッサを備える第１装置に所定データ検索処理を実行させるためのプログラムであって、
前記第１装置は、前記記憶媒体に複数の参照データと、複数の成分を含むベクトルで表される複数の参照特徴量とを対応付けて記憶しており、
前記所定データ検索処理は、
ユーザのプライバシーデータから抽出された前記参照特徴量と同数の成分を含むベクトルで表される特徴量に対する第１変換の結果としての第１変換特徴量に所定暗号化を施して得られる暗号化第１変換特徴量を第２装置から受信する受信ステップと、
前記記憶媒体における前記複数の参照特徴量のそれぞれについて、当該参照特徴量に対して第２変換を施した第２変換特徴量を生成する変換ステップと、
前記変換ステップで生成された複数の前記第２変換特徴量のそれぞれについて、当該第２変換特徴量に前記所定暗号化を施した暗号化第２変換特徴量を生成する暗号化ステップと、
前記暗号化ステップで生成された複数の前記暗号化第２変換特徴量のそれぞれについて当該暗号化第２変換特徴量と前記暗号化第１変換特徴量とを用いた内積演算を行い、当該内積演算の結果が一定条件を満たす１つ以上の暗号化第２変換特徴量を選出する選出ステップと、
前記選出ステップで選出された前記１つ以上の暗号化第２変換特徴量のそれぞれと対応関係を有する１つ以上の前記参照データを示す情報を前記第２装置へ送信する送信ステップとを含み、
前記第１変換、前記第２変換及び前記所定暗号化は、前記暗号化第１変換特徴量と前記暗号化ステップで生成された１つの暗号化第２変換特徴量との内積演算の結果が、当該暗号化第１変換特徴量に対応する前記特徴量と当該１つの暗号化第２変換特徴量に対応する参照特徴量とのユークリッド距離に関連する値となるように、定められ、
前記所定暗号化は、所定の内積暗号による暗号化であり、
前記第１変換及び前記第２変換は、前記暗号化第１変換特徴量と前記生成した１つの暗号化第２変換特徴量との内積演算の結果が、当該暗号化第１変換特徴量に対応する前記特徴量と当該１つの暗号化第２変換特徴量に対応する参照特徴量とのユークリッド距離となるように、定められており、
前記一定条件は、前記内積演算の結果が所定閾値以下の場合に満たされる条件である
プログラム。
【請求項１４】
記憶媒体及びマイクロプロセッサを備える第１装置に所定データ検索処理を実行させるためのプログラムであって、
前記第１装置は、前記記憶媒体に複数の参照データと、複数の成分を含むベクトルで表される複数の参照特徴量とを対応付けて記憶しており、
前記所定データ検索処理は、
ユーザのプライバシーデータから抽出された前記参照特徴量と同数の成分を含むベクトルで表される特徴量に対する第１変換の結果としての第１変換特徴量に所定暗号化を施して得られる暗号化第１変換特徴量を第２装置から受信する受信ステップと、
前記記憶媒体における前記複数の参照特徴量のそれぞれについて、当該参照特徴量に対して第２変換を施した第２変換特徴量を生成する変換ステップと、
前記変換ステップで生成された複数の前記第２変換特徴量のそれぞれについて、当該第２変換特徴量に前記所定暗号化を施した暗号化第２変換特徴量を生成する暗号化ステップと、
前記暗号化ステップで生成された複数の前記暗号化第２変換特徴量のそれぞれについて当該暗号化第２変換特徴量と前記暗号化第１変換特徴量とを用いた内積演算を行い、当該内積演算の結果が一定条件を満たす１つ以上の暗号化第２変換特徴量を選出する選出ステップと、
前記選出ステップで選出された前記１つ以上の暗号化第２変換特徴量のそれぞれと対応関係を有する１つ以上の前記参照データを示す情報を前記第２装置へ送信する送信ステップとを含み、
前記第１変換、前記第２変換及び前記所定暗号化は、前記暗号化第１変換特徴量と前記暗号化ステップで生成された１つの暗号化第２変換特徴量との内積演算の結果が、当該暗号化第１変換特徴量に対応する前記特徴量と当該１つの暗号化第２変換特徴量に対応する参照特徴量とのユークリッド距離に関連する値となるように、定められ、
前記所定暗号化は、所定の述語暗号による暗号化であり、
前記第１変換及び前記第２変換は、前記暗号化第１変換特徴量と前記生成した１つの暗号化第２変換特徴量との内積演算の結果が、当該暗号化第１変換特徴量に対応する前記特徴量と当該１つの暗号化第２変換特徴量に対応する参照特徴量とのユークリッド距離から所定値を減算した値となるように、定められており、
前記一定条件は、前記内積演算の結果が０の場合に満たされる条件である
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化により内容を秘匿して類似検索を行う検索方法及び検索システムに関する。
【背景技術】
【０００２】
近年、例えばユーザが家庭で血圧等の測定を行ってユーザ端末から測定結果の情報をサーバに送信すると、サーバで分析を行うことにより食生活等に関してユーザにアドバイスを行うシステムがある。この分析においては、そのユーザ本人の過去の情報のみならず、類似した他の症例を参考にすることにより、そのユーザに有用なアドバイスを行うことができる。サーバにおける類似症例の検索（類似検索）においては、プライバシー保護の観点により、そのユーザの情報等は、暗号化して秘匿することが望ましい。特許文献１には、加法準同型暗号を用いて、暗号化したまま被認証データ及び認証データを照合することでこれらのデータをサーバに対して秘匿する照合システムの技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１４／１８５４５０号
【非特許文献】
【０００４】
【非特許文献１】Allison Bishop、外２名、「Function-Hiding Inner Product Encryption」、「Advances in Cryptology - ASIACRYPT 2015」、Springer Berlin Heidelberg、（ＵＲＬ：https://eprint.iacr.org/2015/672.pdf）
【非特許文献２】Emily Shen、外２名、「Predicate Privacy in Encryption Systems」、「Theory of Cryptography」、Springer Berlin Heidelberg、（ＵＲＬ：https://eprint.iacr.org/2008/536.pdf）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、従来の類似検索では、ユーザ端末からサーバにユーザの情報を暗号化して送信して、暗号化したままサーバで検索した結果としての参照情報をユーザ端末側で照合する必要があり、参照情報が多くなるとユーザ端末への処理負荷及び通信量が増大してしまう。
【０００６】
そこで、本発明は、サーバにおいてユーザの情報を秘匿して検索を行う上でユーザ端末の処理負荷を抑制し通信量を抑制し得る検索方法を提供する。また、本発明は、検索においてユーザ端末の処理負荷を抑制し通信量を抑制し得る検索システム、及び、検索システムで用いられるコンピュータプログラムを提供する。
【課題を解決するための手段】
【０００７】
上記課題を解決するために本発明の一態様に係る検索方法は、第１装置におけるデータの検索のための検索方法であって、ユーザのプライバシーデータから抽出された複数の成分を含むベクトルで表される特徴量に対する第１変換の結果としての第１変換特徴量に所定暗号化を施して得られる暗号化第１変換特徴量を第２装置から受信し、複数の参照特徴量のそれぞれが複数の参照データのいずれかと対応して前記特徴量と同数の成分を含むベクトルで表される当該複数の参照特徴量のそれぞれについて、当該参照特徴量に対する第２変換の結果としての第２変換特徴量に前記所定暗号化を施して得られる暗号化第２変換特徴量を取得し、前記取得した複数の暗号化第２変換特徴量のそれぞれについて当該暗号化第２変換特徴量と前記暗号化第１変換特徴量とを用いた内積演算を行い、当該内積演算の結果が一定条件を満たす１つ以上の暗号化第２変換特徴量のそれぞれと対応関係を有する１つ以上の前記参照データを示す情報を前記第２装置へ送信し、前記第１変換、前記第２変換及び前記所定暗号化は、前記暗号化第１変換特徴量と前記取得した１つの暗号化第２変換特徴量との内積演算の結果が、当該暗号化第１変換特徴量に対応する前記特徴量と当該１つの暗号化第２変換特徴量に対応する参照特徴量とのユークリッド距離に関連する値となるように、定められている。
【０００８】
また、上記課題を解決するために本発明の一態様に係る検索システムは、相互に通信可能な第１装置及び第２装置を備える検索システムであって、前記第２装置は、ユーザについて測定を行い、当該測定結果としてのプライバシーデータから抽出された複数の成分を含むベクトルで表される特徴量に対する第１変換の結果としての第１変換特徴量に所定暗号化を施して得られる暗号化第１変換特徴量を前記第１装置へ送信し、前記第１装置は、前記暗号化第１変換特徴量を前記第２装置から受信し、複数の参照特徴量のそれぞれが複数の参照データのいずれかと対応して前記特徴量と同数の成分を含むベクトルで表される当該複数の参照特徴量のそれぞれについて、当該参照特徴量に対する第２変換の結果としての第２変換特徴量に前記所定暗号化を施して得られる暗号化第２変換特徴量を取得し、前記取得した複数の暗号化第２変換特徴量のそれぞれについて当該暗号化第２変換特徴量と前記暗号化第１変換特徴量とを用いた内積演算を行い、当該内積演算の結果が一定条件を満たす１つ以上の暗号化第２変換特徴量のそれぞれと対応関係を有する１つ以上の前記参照データを示す情報を前記第２装置へ送信し、前記第２装置は、前記参照データを示す前記情報を受信して前記参照データを提示し、前記第１変換、前記第２変換及び前記所定暗号化は、前記暗号化第１変換特徴量と前記取得した１つの暗号化第２変換特徴量との内積演算の結果が、当該暗号化第１変換特徴量に対応する前記特徴量と当該１つの暗号化第２変換特徴量に対応する参照特徴量とのユークリッド距離に関連する値となるように、定められている。
【０００９】
また、上記課題を解決するために本発明の一態様に係るプログラムは、記憶媒体及びマイクロプロセッサを備える第１装置に所定データ検索処理を実行させるためのプログラムであって、前記第１装置は、前記記憶媒体に複数の参照データと、複数の成分を含むベクトルで表される複数の参照特徴量とを対応付けて記憶しており、前記所定データ検索処理は、ユーザのプライバシーデータから抽出された前記参照特徴量と同数の成分を含むベクトルで表される特徴量に対する第１変換の結果としての第１変換特徴量に所定暗号化を施して得られる暗号化第１変換特徴量を第２装置から受信する受信ステップと、前記記憶媒体における前記複数の参照特徴量のそれぞれについて、当該参照特徴量に対して第２変換を施した第２変換特徴量を生成する変換ステップと、前記変換ステップで生成された複数の前記第２変換特徴量のそれぞれについて、当該第２変換特徴量に前記所定暗号化を施した暗号化第２変換特徴量を生成する暗号化ステップと、前記暗号化ステップで生成された複数の前記暗号化第２変換特徴量のそれぞれについて当該暗号化第２変換特徴量と前記暗号化第１変換特徴量とを用いた内積演算を行い、当該内積演算の結果が一定条件を満たす１つ以上の暗号化第２変換特徴量を選出する選出ステップと、前記選出ステップで選出された前記１つ以上の暗号化第２変換特徴量のそれぞれと対応関係を有する１つ以上の前記参照データを示す情報を前記第２装置へ送信する送信ステップとを含み、前記第１変換、前記第２変換及び前記所定暗号化は、前記暗号化第１変換特徴量と前記暗号化ステップで生成された１つの暗号化第２変換特徴量との内積演算の結果が、当該暗号化第１変換特徴量に対応する前記特徴量と当該１つの暗号化第２変換特徴量に対応する参照特徴量とのユークリッド距離に関連する値となるように、定められている。
【発明の効果】
【００１０】
本発明によれば、ユーザの情報を秘匿して行う検索においてユーザ端末の処理負荷を抑制し通信量を抑制し得る。
【図面の簡単な説明】
【００１１】
【図１Ａ】実施の形態に係る検索システムが提供するサービスの態様の一例を示す概念図である。
【図１Ｂ】実施の形態に係るデータセンタ運営会社の一例を示す概念図である。
【図２】実施の形態１に係る検索システムの全体を示す概略構成図である。
【図３】実施の形態１に係るユーザ端末装置の構成を示す構成図である。
【図４】実施の形態１に係るユーザ端末装置での特徴量の変換の一例を示す図である。
【図５】実施の形態１に係るデータ演算装置の構成を示す構成図である。
【図６Ａ】データ演算装置における参照特徴量格納部の格納内容の一例を示す図である。
【図６Ｂ】データ演算装置における参照データ格納部の格納内容の一例を示す図である。
【図７】実施の形態１に係るデータ演算装置での参照特徴量の変換の一例を示す図である。
【図８】実施の形態１に係る検索システムの動作を示すシーケンス図である。
【図９Ａ】ユーザ端末からデータ演算装置への通信データのデータフォーマットの一例を示す図である。
【図９Ｂ】データ演算装置からユーザ端末への通信データのデータフォーマットの一例を示す図である。
【図１０】実施の形態２に係る検索システムの全体を示す構成図である。
【図１１】実施の形態２に係る検索システムの動作を示すシーケンス図である。
【図１２】変形例１に係る参照特徴量の変換の一例を示す図である。
【図１３】検索システムが提供するサービス（類型１）を示す概念図である。
【図１４】検索システムが提供するサービス（類型２）を示す概念図である。
【図１５】検索システムが提供するサービス（類型３）を示す概念図である。
【図１６】検索システムが提供するサービス（類型４）を示す概念図である。
【発明を実施するための形態】
【００１２】
（本発明の基礎となった知見等）
ユーザ端末がサーバにデータを秘匿してサーバで検索を行わせることに関して、データ（特徴量）を暗号化したままその特徴量に類似する参照特徴量を検索するための類似検索を行う際のその暗号化に、準同型暗号を用いることができる。しかしながら、準同型暗号を用いてできる演算は、加算及び乗算のいずれかの演算のみである。類似検索の対象となる特徴量が複数の成分（要素）を有するベクトルで表されるような場合において、類似検索において類似性を示す指標として、特徴量と参照特徴量とのユークリッド距離を特定するために内積等を用いるときには、加算及び乗算のいずれかの演算のみでは類似性の指標が導出できない。なお、特徴量を成分毎に分解してユーザ端末がサーバで類似検索を行わせると、ユーザ端末での処理負荷が増大してしまう。
【００１３】
そこで、サーバにおいてユーザの情報を秘匿して検索を行う上でユーザ端末の処理負荷を抑制し通信量を抑制すべく、本願発明者らは、特徴量を変換し、内積演算に関連した暗号方式を用いることで類似検索を行う方式を着想した。そして、その方式を用いた検索方法、検索システム、及び、その検索システムで用いられるコンピュータプログラムを提供する。
【００１４】
本発明の一態様に係る検索方法は、第１装置におけるデータの検索のための検索方法であって、ユーザのプライバシーデータから抽出された複数の成分を含むベクトルで表される特徴量に対する第１変換の結果としての第１変換特徴量に所定暗号化を施して得られる暗号化第１変換特徴量を第２装置から受信し、複数の参照特徴量のそれぞれが複数の参照データのいずれかと対応して前記特徴量と同数の成分を含むベクトルで表される当該複数の参照特徴量のそれぞれについて、当該参照特徴量に対する第２変換の結果としての第２変換特徴量に前記所定暗号化を施して得られる暗号化第２変換特徴量を取得し、前記取得した複数の暗号化第２変換特徴量のそれぞれについて当該暗号化第２変換特徴量と前記暗号化第１変換特徴量とを用いた内積演算を行い、当該内積演算の結果が一定条件を満たす１つ以上の暗号化第２変換特徴量のそれぞれと対応関係を有する１つ以上の前記参照データを示す情報を前記第２装置へ送信し、前記第１変換、前記第２変換及び前記所定暗号化は、前記暗号化第１変換特徴量と前記取得した１つの暗号化第２変換特徴量との内積演算の結果が、当該暗号化第１変換特徴量に対応する前記特徴量と当該１つの暗号化第２変換特徴量に対応する参照特徴量とのユークリッド距離に関連する値となるように、定められている。ここでのユークリッド距離は重み付きユークリッド距離を含む概念である。この構成によると、類似検索において、ユーザの情報を秘匿して暗号化したままで第１装置（例えばデータ演算装置）において内積演算を行って類似に係る条件の判断を行うことができ、第２装置（例えばユーザ端末装置）の処理負荷を抑制し通信量を抑制し得る。
【００１５】
また、例えば、前記所定暗号化は、所定の内積暗号による暗号化であり、前記第１変換及び前記第２変換は、前記暗号化第１変換特徴量と前記取得した１つの暗号化第２変換特徴量との内積演算の結果が、当該暗号化第１変換特徴量に対応する前記特徴量と当該１つの暗号化第２変換特徴量に対応する参照特徴量とのユークリッド距離となるように、定められており、前記一定条件は、前記内積演算の結果が所定閾値以下の場合に満たされる条件であることとしてもよいし、更に、前記特徴量を、ｎ次元のベクトルＸ＝（ｘ１，ｘ２，ｘ３，・・・，ｘｎ）で表す場合において、前記第１変換は、前記特徴量を前記第１変換特徴量としてのベクトルＸ’＝（Σｘｊ＾２，１，ｘ１，ｘ２，・・・，ｘｎ）に変換するように定められており、前記Σｘｊ＾２はｊが１からｎまでのｘｊ＾２の総和であり、前記複数の参照特徴量を、ｋを１から当該複数の参照特徴量の個数までの各整数として、ｎ次元のベクトルＹｋ＝（ｙｋ１，ｙｋ２，ｙｋ３，・・・，ｙｋｎ）で表す場合において、前記第２変換は、前記複数の参照特徴量のそれぞれを前記第２変換特徴量としてのベクトルＹｋ’＝（１，Σｙｋｊ＾２，−２ｙｋ１，−２ｙｋ２，・・・，−２ｙｋｎ）に変換するように定められており、前記Σｙｋｊ＾２はｊが１からｎまでのｙｋｊ＾２の総和であることとしてもよい。これらにより、複数の成分を含むベクトル間の類似性について、内積暗号により各ベクトルを暗号化したままで内積値が示すユークリッド距離に基づいて効率的な判断が可能となる。
【００１６】
また、例えば、前記特徴量を、ｎ次元のベクトルＸ＝（ｘ１，ｘ２，ｘ３，・・・，ｘｎ）で表す場合において、前記第１変換は、前記特徴量を前記第１変換特徴量としてのベクトルＸ’＝（Σ（ｗｊ・ｘｊ＾２），１，ｘ１，ｘ２，・・・，ｘｎ）に変換するように定められており、前記Σ（ｗｊ・ｘｊ＾２）はｊが１からｎまでの（ｗｊ・ｘｊ＾２）の総和であり、前記複数の参照特徴量を、ｋを１から当該複数の参照特徴量の個数までの各整数として、ｎ次元のベクトルＹｋ＝（ｙｋ１，ｙｋ２，ｙｋ３，・・・，ｙｋｎ）で表す場合において、前記第２変換は、前記複数の参照特徴量のそれぞれを前記第２変換特徴量としてのベクトルＹｋ’＝（１，Σ（ｗｊ・ｙｋｊ＾２），−２ｗ１・ｙｋ１，−２ｗ２・ｙｋ２，・・・，−２ｗｎ・ｙｋｎ）に変換するように定められており、前記Σ（ｗｊ・ｙｋｊ＾２）はｊが１からｎまでの（ｗｊ・ｙｋｊ＾２）の総和であり、前記ユークリッド距離は、ｎ次元のベクトルの１番目からｎ番目までの成分に対応してｗ１からｗｎまでの重みを付けた重み付きユークリッド距離であることとしてもよい。これにより、重み付きユークリッド距離によって類似性に係る判断を行うことが可能になる。
【００１７】
また、例えば、前記所定暗号化は、所定の述語暗号による暗号化であり、前記第１変換及び前記第２変換は、前記暗号化第１変換特徴量と前記取得した１つの暗号化第２変換特徴量との内積演算の結果が、当該暗号化第１変換特徴量に対応する前記特徴量と当該１つの暗号化第２変換特徴量に対応する参照特徴量とのユークリッド距離から所定値を減算した値となるように、定められており、前記一定条件は、前記内積演算の結果が０の場合に満たされる条件であることとしてもよい。これにより、複数の成分を含むベクトル間の類似性について、述語暗号により各ベクトルを暗号化したままで所定の内積演算の結果が示すユークリッド距離から所定値を減算した値に基づいて判断が可能となる。
【００１８】
また、例えば、前記第１装置は、記憶媒体を備え、当該記憶媒体に前記複数の参照データと前記複数の参照特徴量とを記憶しており、前記検索方法では、前記記憶媒体における前記複数の参照特徴量のそれぞれについて、当該参照特徴量に対して第２変換を施した前記第２変換特徴量を生成し、当該第２変換特徴量に前記所定暗号化を施した前記暗号化第２変換特徴量を生成することにより前記暗号化第２変換特徴量の前記取得を行うこととしてもよい。これにより、第１装置において記憶している参照特徴量を用いて、類似検索を行うことが可能となる。
【００１９】
また、例えば、前記検索方法では、複数の暗号化第２変換特徴量の前記取得を、第３装置から当該複数の暗号化第２変換特徴量を受信することにより行い、前記第３装置は、前記複数の暗号化第２変換特徴量に対応する前記複数の参照データを記憶しており、前記検索方法では、前記複数の暗号化第２変換特徴量それぞれのうち前記内積演算の結果が一定条件を満たす１つ以上の暗号化第２変換特徴量それぞれと対応関係を有する１つ以上の前記参照データを前記第３装置から受信し、当該受信した１つ以上の前記参照データに基づいて前記情報の前記第２装置への前記送信を行うこととしてもよい。これにより、第３装置（例えばデータ提供装置）において参照特徴量に基づいて生成された暗号化第２変換特徴量（暗号化参照特徴量）を利用することで、類似検索を行うことが可能となる。この場合には、例えば、第３装置は、類似検索の対象となる参照特徴量を第１装置に対して秘匿し得る。
【００２０】
また、例えば、前記ユーザのプライバシーデータは、前記ユーザのバイタルデータを含むこととしてもよいし、更に、前記特徴量は、前記ユーザの身体の全体又は一部位についての形状、サイズ、重量、状態、及び、動きの少なくとも１つに関連する指標を示す成分を含むこととしてもよい。これらにより、ユーザはバイタルデータを秘匿したまま、そのバイタルデータに関連性の高い健康、病気等に関する情報等の参照データを取得し得る。
【００２１】
また、例えば、前記ユーザのプライバシーデータは、前記ユーザが機器を操作したことの履歴を示すログ情報を含むこととしてもよい。これにより、ユーザは電気機器、移動体（車両等）等の機器についての操作履歴等を秘匿したまま、その操作履歴に関連性の高い情報等の参照データを取得し得る。
【００２２】
また、例えば、１つ以上の前記参照データを示す前記情報は、当該１つ以上の前記参照データを暗号化した情報であることとしてもよい。これにより、検索のためのプライバシーデータの特徴量のみならず、検索結果の暗号化により、プライバシーデータを推定されにくくなり、検索内容の秘匿化が一層適切に実現されることになる。
【００２３】
また、本発明の一態様に係る検索システムは、相互に通信可能な第１装置及び第２装置を備える検索システムであって、前記第２装置は、ユーザについて測定を行い、当該測定結果としてのプライバシーデータから抽出された複数の成分を含むベクトルで表される特徴量に対する第１変換の結果としての第１変換特徴量に所定暗号化を施して得られる暗号化第１変換特徴量を前記第１装置へ送信し、前記第１装置は、前記暗号化第１変換特徴量を前記第２装置から受信し、複数の参照特徴量のそれぞれが複数の参照データのいずれかと対応して前記特徴量と同数の成分を含むベクトルで表される当該複数の参照特徴量のそれぞれについて、当該参照特徴量に対する第２変換の結果としての第２変換特徴量に前記所定暗号化を施して得られる暗号化第２変換特徴量を取得し、前記取得した複数の暗号化第２変換特徴量のそれぞれについて当該暗号化第２変換特徴量と前記暗号化第１変換特徴量とを用いた内積演算を行い、当該内積演算の結果が一定条件を満たす１つ以上の暗号化第２変換特徴量のそれぞれと対応関係を有する１つ以上の前記参照データを示す情報を前記第２装置へ送信し、前記第２装置は、前記参照データを示す前記情報を受信して前記参照データを提示し、前記第１変換、前記第２変換及び前記所定暗号化は、前記暗号化第１変換特徴量と前記取得した１つの暗号化第２変換特徴量との内積演算の結果が、当該暗号化第１変換特徴量に対応する前記特徴量と当該１つの暗号化第２変換特徴量に対応する参照特徴量とのユークリッド距離に関連する値となるように、定められている。これにより、類似検索において、ユーザの情報を秘匿して暗号化したままで第１装置（例えばデータ演算装置）において内積演算を行って類似に係る条件の判断を行うことができ、第２装置（例えばユーザ端末装置）の処理負荷を抑制し通信量を抑制し得る。
【００２４】
また、本発明の一態様に係るプログラムは、記憶媒体及びマイクロプロセッサを備える第１装置に所定データ検索処理を実行させるためのプログラムであって、前記第１装置は、前記記憶媒体に複数の参照データと、複数の成分を含むベクトルで表される複数の参照特徴量とを対応付けて記憶しており、前記所定データ検索処理は、ユーザのプライバシーデータから抽出された前記参照特徴量と同数の成分を含むベクトルで表される特徴量に対する第１変換の結果としての第１変換特徴量に所定暗号化を施して得られる暗号化第１変換特徴量を第２装置から受信する受信ステップと、前記記憶媒体における前記複数の参照特徴量のそれぞれについて、当該参照特徴量に対して第２変換を施した第２変換特徴量を生成する変換ステップと、前記変換ステップで生成された複数の前記第２変換特徴量のそれぞれについて、当該第２変換特徴量に前記所定暗号化を施した暗号化第２変換特徴量を生成する暗号化ステップと、前記暗号化ステップで生成された複数の前記暗号化第２変換特徴量のそれぞれについて当該暗号化第２変換特徴量と前記暗号化第１変換特徴量とを用いた内積演算を行い、当該内積演算の結果が一定条件を満たす１つ以上の暗号化第２変換特徴量を選出する選出ステップと、前記選出ステップで選出された前記１つ以上の暗号化第２変換特徴量のそれぞれと対応関係を有する１つ以上の前記参照データを示す情報を前記第２装置へ送信する送信ステップとを含み、前記第１変換、前記第２変換及び前記所定暗号化は、前記暗号化第１変換特徴量と前記暗号化ステップで生成された１つの暗号化第２変換特徴量との内積演算の結果が、当該暗号化第１変換特徴量に対応する前記特徴量と当該１つの暗号化第２変換特徴量に対応する参照特徴量とのユークリッド距離に関連する値となるように、定められている。このプログラムを第１装置にインストールすれば、第１装置が所定データ検索処理を行うことで検索機能を実現する。これにより、ユーザは第２装置を用いて第１装置にアクセスすることで、プライバシーデータを秘匿したままで参照データを取得できるようになり得る。
【００２５】
なお、これらの包括的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なＣＤ−ＲＯＭ等の記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されてもよい。
【００２６】
以下、図面を参照して本発明の実施の形態を詳細に説明する。なお、以下で説明する実施の形態は、いずれも本発明の包括的又は具体的な一例を示すものである。以下の実施の形態で示される数値、形状、構成要素、構成要素の配置、ステップ、ステップの順序等は、一例であって本発明を限定するものではない。また、以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
【００２７】
（提供するサービスの全体像）
まず、本実施の形態における検索システムが提供するサービスの態様について説明する。
【００２８】
図１Ａは、本実施の形態における検索システム１０が提供するサービスの態様の一例を示す図である。検索システム１０は、グループ１１００、データセンタ運営会社１１１０及びサービスプロバイダ１１２０を備える。
【００２９】
グループ１１００は、例えば企業、団体又は家庭等の施設（例えばビルディング、住宅等）であり、その規模を問わない。グループ１１００は、機器１１０１及びホームゲートウェイ１１０２を備える。機器１１０１は、ユーザと何らかの方法で情報を交換するためのユーザインタフェースを有する。ユーザインタフェースはユーザについてセンシング（測定）を行うセンサ等であってもよい。機器１１０１は、例えば、インターネットと接続可能な機器（例えば、スマートフォン、パーソナルコンピュータ（ＰＣ）、テレビ等）である。なお、機器１１０１は、それ自身ではインターネットと接続不可能な機器（例えば、洗濯機、冷蔵庫等）であってもよく、ホームゲートウェイ１１０２を介してインターネットと接続可能となる機器であってもよい。なお、ホームゲートウェイ１１０２が必要ない場合もある。ユーザ１０１０は、機器１１０１を使用する。機器１１０１が、インターネットに無線接続可能で携帯可能な機器（例えばスマートフォン、ノートＰＣ等）であってもよく、この場合には、ユーザ１０１０及び機器１１０１は、必ずしもグループ１１００内に所在していなくてもよい。例えば、ユーザ１０１０及び機器１１０１が車両、航空機等の移動体内に所在してもよい。なお、機器１１０１は、１台の機器に限られず、機器１１０１が、複数台の機器により構成されているとしてもよい。
【００３０】
データセンタ運営会社１１１０は、クラウドサーバ１１１１を備える。クラウドサーバ１１１１は、インターネットを介して様々な機器と連携するコンピュータであり、例えば仮想化サーバである。クラウドサーバ１１１１は、例えば、通常のデータベース管理ツール等で扱うことが困難な巨大なデータ（ビッグデータ）等を管理する。データセンタ運営会社１１１０は、データの管理、クラウドサーバ１１１１の管理等を行っている。なお、データセンタ運営会社１１１０は、データの管理又はクラウドサーバ１１１１の管理のみを行っている管理会社に限られず、他の事業を併せて行っている会社であってもよく、例えば、機器１１０１を開発又は製造している機器メーカであってもよい。また、データセンタ運営会社１１１０は一つの会社に限られず、例えば、図１Ｂに示すように、機器メーカ及び管理会社が共同又は分担してデータの管理又はクラウドサーバ１１１１の管理を行っている場合は、機器メーカ及び管理会社の両者がデータセンタ運営会社１１１０に該当し得る。
【００３１】
サービスプロバイダ１１２０は、サーバ１１２１を備える。サーバ１１２１は、例えば１台又は複数台のコンピュータで実現され、その規模は問わず、記憶媒体として大容量のハードディスク等のストレージを備えてもよいし、例えば、ＰＣ内のメモリ等しか備えていなくてもよい。なお、サーバ１１２１が必ずしも記憶媒体を備えていなくてもよい。
【００３２】
次に、上述の態様の検索システム１０における情報の流れを説明する。
【００３３】
まず、グループ１１００の機器１１０１は、ユーザインタフェースを介して取得した情報に基づいて生成した送信情報を、直接或いはホームゲートウェイ１１０２を介してデータセンタ運営会社１１１０のクラウドサーバ１１１１に送信する。機器１１０１においてユーザ１０１０による入力に用いられるユーザインタフェースは、例えば、センサ、キーボード、タッチパネル、或いは、既存の音声認識技術を用いた音声入力装置等である。クラウドサーバ１１１１は、機器１１０１からの送信情報を取得する。送信情報は、例えばユーザの操作又はユーザの測定で得られた各種情報（ユーザのバイタルデータ、機器の操作に基づくログ情報等）に基づいて生成された情報である。機器のログ情報は、例えば、機器１１０１の操作内容、状態、日時等を示す情報である。ログ情報は、テレビの視聴履歴、レコーダーの録画予約情報、洗濯機の運転日時、洗濯物の量、冷蔵庫の開閉日時、又は冷蔵庫の開閉回数等を含み得るし、これらの情報に限らず、種々の機器から取得が可能な種々の情報を含んでもよい。
【００３４】
次に、データセンタ運営会社１１１０のクラウドサーバ１１１１は、機器１１０１からの送信情報に基づく情報をサービスプロバイダ１１２０のサーバ１１２１に送信する。この送信情報に基づく情報は、送信情報の少なくとも一部と同一の情報を含むものであっても、その同一の情報を含まず送信情報に対して演算等の処理を施した結果としての情報であってもよい。また、この送信情報に基づく情報の送信の単位は、いかなる単位であってもよい。サーバ１１２１は、クラウドサーバ１１１１からの情報を取得する。
【００３５】
そして、サービスプロバイダ１１２０のサーバ１１２１は、クラウドサーバ１１１１からの情報に対応して、ユーザへの提供用の情報を特定して、その提供用の情報をユーザ１０１０に提供すべく、クラウドサーバ１１１１に送信する。クラウドサーバ１１１１は、サーバ１１２１からの提供用の情報を機器１１０１に転送する又はその提供用の情報に対して演算等の処理を施した結果としての情報を機器１１０１に送信する。これにより、機器１１０１のユーザインタフェースからユーザ１０１０に情報が提供される。機器１１０１においてユーザ１０１０への情報の提供に用いられるユーザインタフェースは、例えば、ディスプレイ、或いは、既存の音声合成技術を用いた音声出力装置等である。
【００３６】
なお、サーバ１１２１が、クラウドサーバ１１１１を介さずに機器１１０１と通信を行うことで、ユーザ１０１０からの情報の取得、及び、提供用の情報の提供を行うこととしてもよい。また、検索システム１０は、上述した例と異なる態様であってもよい。例えば、検索システム１０において、データセンタ運営会社１１１０及びサービスプロバイダ１１２０を省いてもよく、機器１１０１がユーザから取得した情報に基づいて、提供用の情報を特定して、その提供用の情報をユーザに提供してもよい。
【００３７】
（実施の形態１）
以下、実施の形態１に係る検索システムの一例について図面を参照しながら説明する。
【００３８】
１．１  検索システムの全体構成
図２は、本実施の形態に係る検索システム１０の全体を示す概略構成図である。検索システム１０は、ユーザ端末装置１００と、データ演算装置２００とを備える。図２では、ユーザ端末装置１００とデータ演算装置２００とをそれぞれ１つずつ示したが、それぞれ１つ以上あればよく、複数あってもよい。また、各装置間の接続形態は、有線接続（有線ネットワーク、専用回線等）でも無線接続でもよく、通信可能であればよい。リアルタイムでの通信が必ずしも必要ではなく、例えばユーザ端末装置１００は、センシングした情報等に基づく類似検索の要求を、逐次、データ演算装置に送付してもよいし、その要求を複数まとめてデータ演算装置に送付してもよい。
【００３９】
１．２  ユーザ端末装置
図３は、ユーザ端末装置１００の構成を示す構成図である。ユーザ端末装置１００は、センシング部１０１と、特徴量算出部１０２と、特徴量変換部１０３と、鍵格納部１０４と、特徴量暗号部１０５と、復号部１０６と、参照データ利用部１０７と、通信部１０８とを含んで構成される。ユーザ端末装置１００は、例えば、プロセッサ（マイクロプロセッサ）、メモリ、センサ、通信インタフェース等を備えるコンピュータに実装され得る。メモリは、ＲＯＭ、ＲＡＭ等であり、プロセッサにより実行されるプログラム（ソフトウェアとしてのコンピュータプログラム）を記憶することができる。なお、コンピュータプログラムは、所定の機能を達成するために、プロセッサに対する指令を示す命令コードが複数個組み合わされて構成されたものである。例えば、メモリに格納されたプログラムをプロセッサが実行すること等によりユーザ端末装置１００における各種機能が実現され得る。ユーザ端末装置１００は、例えば、ユーザの血圧や心拍、ＣＴスキャン情報などユーザに関する情報をセンシングし、特徴量を抽出して、この特徴量に類似した症状の参照データ（例えば症例の情報等）をデータ演算装置２００に要求し、得られた参照データをユーザへのサービスに利用する。
【００４０】
１．２．１  センシング部
センシング部１０１は、ユーザについての情報をセンシングする。センシング部１０１は、例えば血圧計、ＣＴスキャナ、カメラ（イメージセンサ）等といったセンシングのための１つ以上のセンサ（測定装置）を含んで構成され得る。センシングする情報は、例えばユーザの血圧や体温、心拍等のバイタルデータであり、例えばユーザの身体を撮像（測定）して得られる顔画像、エコー画像、ＣＴスキャン情報等の画像情報等であってもよい。また、センシングする情報は、例えば、ＧＰＳ（Global Positioning System）で得られる位置情報、ユーザが電気機器或いは移動体（車両等）を操作したことの履歴を示すログ情報、或いは、ユーザによる商品等の購買履歴情報等であってもよい。ログ情報は、例えば、車両のステアリング操作、アクセル操作、ブレーキ操作、変速ギアの操作等に関連して取得（測定）される各種情報（変位量、速度、加速度）等を操作時刻と対応付けた情報であり得る。センシングされたユーザについての情報は、例えば、ユーザが他人に知られたくない個人的な事柄であるプライバシーデータであり得る。検索システム１０は、プライバシーデータの秘匿を行って類似検索を行い得るシステムであるので、ここでは、センシング部１０１でセンシングされたユーザについての情報は、プライバシーデータであることとして説明する。センシング部１０１でセンシングされたプライバシーデータは、ユーザ端末装置１００において各部で処理された後に特徴量暗号部１０５によって暗号化され、類似検索のためにデータ演算装置２００に送信されることになる。
【００４１】
１．２．２  特徴量算出部
特徴量算出部１０２は、センシング部１０１で取得した情報（プライバシーデータ）から特徴量を算出（抽出）する。特徴量算出部１０２が算出する特徴量は、複数の成分（要素）を含むベクトルで表され得る。この特徴量は、例えば、ユーザの身体の全体又は一部位についての形状、サイズ、重量、状態、及び、動きの少なくとも１つに関連する指標を示す成分を含む。特徴量の対象となるユーザの部位はいかなる部位であってもよく、例えば、目、鼻、耳、手、足、臓器、血管等である。ユーザの身体の全体又は一部位についての状態としては、例えば健康状態（健康診断に用いられる各種検査項目についての状態）、水分量、血圧、酸素飽和度等が挙げられる。また、ユーザの身体の全体又は一部位についての動きとしては、例えば、体動（単位時間当たりの寝返り回数等）、微振動（心拍数、呼吸数、吸気呼気比率等）が挙げられる。特徴量は、例えば、ユーザの顔画像における特徴的なパラメータの主成分、ある領域の位置、面積、幅等の情報であってもよい。また、特徴量は、センシング部１０１でユーザについて測定された何らかの要素を示す履歴情報から、時間軸に対応した要素の傾向を例えば多項式で表現した場合の各項の係数を成分として含むベクトルで表される情報であってもよい。センシング部１０１で取得した情報から抽出された特徴量自体も、プライバシーデータであり得る。
【００４２】
１．２．３  特徴量変換部
特徴量変換部１０３は、特徴量算出部１０２で算出された特徴量に、予め定められた変換（第１変換と称する）を施す。この第１変換の例を図４に示す。図４は、変換前と変換後の特徴量の一例を示した図である。特徴量算出部１０２により算出された特徴量（変換前の特徴量）をｎ次元（ｎは例えば２以上）のベクトルＸ＝（ｘ１，ｘ２，ｘ３，・・・，ｘｎ）で表す場合において、特徴量変換部１０３による変換後の特徴量（第１変換特徴量）はベクトルＸ’＝（Σｘｊ＾２，１，ｘ１，ｘ２，・・・，ｘｎ）となる。ここで、Σｘｊ＾２は、ｊが１からｎまでのｘｊ＾２の総和（つまりｘ１からｘｎまでの要素の２乗の総和）を示している。
【００４３】
１．２．４  鍵格納部
鍵格納部１０４は、特徴量暗号部１０５及び復号部１０６における各暗号処理（暗号化或いは復号）に用いる鍵を格納する。特徴量暗号部１０５及び復号部１０６のそれぞれで用いる暗号方式及び鍵は同じであってもよいし、異なっていてもよい。例えば、特徴量暗号部１０５で用いる鍵は、暗号化したまま内積演算を可能にする内積暗号の秘密鍵であり、復号部１０６で用いる鍵は、一般の公開鍵暗号方式のユーザ端末装置１００の秘密鍵（データ演算装置２００と共有する公開鍵と対をなす秘密鍵）であってもよい。また、特徴量暗号部１０５で用いた秘密鍵と同じ鍵を復号部１０６で用いることとしてもよい。
【００４４】
１．２．５  特徴量暗号部
特徴量暗号部１０５は、特徴量変換部１０３により変換された特徴量を予め定められた暗号方式により暗号化する。特徴量暗号部１０５は、この暗号化において鍵格納部１０４に格納された鍵を用いる。特徴量暗号部１０５は、データ演算装置２００において特徴量を暗号化したまま、類似検索のための演算（内積演算）が可能となる所定の内積暗号を用いて暗号化を行う。内積暗号については、本明細書で引用する非特許文献１に示された従来の方法を用いるため、ここでは詳細に述べない。
【００４５】
１．２．６  復号部
復号部１０６は、データ演算装置２００から送付された暗号化された参照データ（類似検索の結果）を復号する。復号部１０６は、この復号において鍵格納部１０４に格納された鍵を用いる。
【００４６】
１．２．７  参照データ利用部
参照データ利用部１０７は、復号部１０６において復号して得た参照データを利用する。参照データの利用は、例えば、参照データのユーザへの提示である。参照データ利用部１０７は、例えばディスプレイ、音声出力装置その他のユーザインタフェースを含んで実装され得る。参照データの提示の例としては、例えば、ユーザ端末装置１００のディスプレイに、参照データに基づくグラフ、統計情報等の形式で表示すること、参照データに基づく音声を音声出力装置から出力すること等が挙げられる。また、参照データ利用部１０７は、参照データに基づいて、所定の演算、或いは、情報検索等を行うことで、ユーザへの生活習慣の改善アドバイス、お勧めの食事等のアドバイスを提示してもよい。
【００４７】
１．２．８  通信部
通信部１０８は、データ演算装置２００との通信を行う。この通信には、例えばＴＬＳ（Transport Layer Security）プロトコルによる暗号通信を用いる。ユーザ端末装置１００は、通信部１０８により、データ演算装置２００との間でＴＬＳに基づいて相互に認証し、データの暗号化を行う。ＴＬＳに用いる公開鍵証明書や秘密鍵は、通信部１０８において保持している。
【００４８】
通信部１０８は、特徴量暗号部１０５により暗号化された、変換後の特徴量を伴う類似検索の要求をデータ演算装置２００に送信する。また、通信部１０８は、類似検索の要求に対するデータ演算装置２００からの返答（応答）としての、暗号化された参照データ（類似検索の結果）を受信して復号部１０６に伝達する。
【００４９】
１．３  データ演算装置
図５は、データ演算装置２００の構成を示す構成図である。データ演算装置２００は、参照特徴量格納部２０１と、参照特徴量変換部２０２と、参照特徴量暗号部２０３と、鍵格納部２０４と、暗号化距離計算部２０５と、暗号化参照データ抽出部２０６と、参照データ格納部２０７と、通信部２０８とを含んで構成される。データ演算装置２００は、例えば、ユーザ端末装置１００と同様に、プロセッサ、メモリ、通信インタフェース等を備えるコンピュータに実装され得る。例えば、メモリに格納されたプログラムをプロセッサが実行すること等によりデータ演算装置２００における各種機能が実現され得る。データ演算装置２００は、類似検索を行うサーバとして機能し、ユーザ端末装置１００からの特徴量に関する類似検索の要求（特徴量が変換され暗号化された情報を伴う要求）を受信して類似検索を行い、検索結果としての参照データを、要求に対する返答としてユーザ端末装置１００に送信する。類似検索は、例えば、特徴量と対比可能な、ユーザとは別の複数人それぞれのバイタルデータ等の情報から抽出した参照特徴量の集合から、特徴量と類似した特徴を有する参照特徴量を選定することを含み、その参照特徴量に対応する参照データ（例えば参照特徴量に対応する人に関わる症例等の情報）を特定することを含み得る。
【００５０】
１．３．１  参照特徴量格納部
参照特徴量格納部２０１は、ユーザ端末装置１００からの要求に応じて類似検索を行う際に、検索の対象となる参照特徴量を格納する。参照特徴量は、ユーザ端末装置１００からの要求が伴う情報（特徴量が変換され暗号化された情報）におけるその特徴量と対比され得る性質を有する。即ち、参照特徴量は、特徴量と同様にｎ次元のベクトルで表される。
【００５１】
図６Ａは、参照特徴量格納部２０１に格納されている参照特徴量の例を示す。参照特徴量格納部２０１には、複数の参照特徴量それぞれが、識別子（ＩＤ）と対応付けて格納される。図６Ａの例では、参照特徴量格納部２０１には、ＩＤ毎に、ＩＤと参照特徴量Ｅｙとが格納されている。この例では、複数の参照特徴量を、ｋを１からその複数の参照特徴量の個数までの各整数として、ｋ個のｎ次元のベクトルＹｋ＝（ｙｋ１，ｙｋ２，ｙｋ３，・・・，ｙｋｎ）で表している。各参照特徴量は、例えば、複数人それぞれについての測定結果等の情報から抽出されたものであり、例えば、その測定された人の身体の全体又は一部位についての形状、サイズ、重量、状態、及び、動きの少なくとも１つに関連する指標を示す成分を含むものであってもよい。ＩＤは、その人（参照特徴量に関連する人）を他の人と区別する識別子であり得る。なお、参照特徴量格納部２０１に参照特徴量を暗号化して格納しておき、参照特徴量変換部２０２で変換する際にのみ復号するとしてもよい。また、参照特徴量格納部２０１に格納されている参照特徴量に対応付けられているＩＤは、後述する参照データ格納部２０７に格納されている参照データに対応付けられているＩＤと対応する（図６Ｂ参照）。
【００５２】
１．３．２  参照特徴量変換部
参照特徴量変換部２０２は、参照特徴量格納部２０１に格納されている参照特徴量に、予め定められた変換（第２変換と称する）を施す。この第２変換の例を図７に示す。図７は変換前と変換後の参照特徴量の一例を示した図である。参照特徴量格納部２０１に格納されている参照特徴量（変換前の参照特徴量）の１つを、特徴量と同数の成分からなるｎ次元のベクトルＹ１＝（ｙ１１，ｙ１２，ｙ１３，・・・，ｙ１ｎ）で表す場合において、参照特徴量変換部２０２による変換後の参照特徴量（第２変換特徴量）はベクトルＹ１’＝（１，Σｙ１ｊ＾２，−２ｙ１１，−２ｙ１２，・・・，−２ｙ１ｎ）となる。ここで、Σｙ１ｊ＾２はｊが１からｎまでのｙ１ｊ＾２の総和（つまりｙ１１からｙ１ｎまでの要素の２乗の総和）を示している。また、参照特徴量変換部２０２は、他の参照特徴量Ｙｋ（ｋ＝２，・・・，ｎ）についても同様の変換を行う。
【００５３】
即ち、参照特徴量格納部２０１に格納されている複数の参照特徴量を、ｋを１からその複数の参照特徴量の個数までの各整数として、ｎ次元のベクトルＹｋ＝（ｙｋ１，ｙｋ２，ｙｋ３，・・・，ｙｋｎ）で表す場合において、参照特徴量変換部２０２により行われる第２変換は、その複数の参照特徴量のそれぞれをベクトルＹｋ’＝（１，Σｙｋｊ＾２，−２ｙｋ１，−２ｙｋ２，・・・，−２ｙｋｎ）に変換するように定められている。ここで、Σｙｋｊ＾２はｊが１からｎまでのｙｋｊ＾２の総和である。この第２変換は、ユーザ端末装置１００において特徴量に施される第１変換と一定の関係を有するように定められている。具体的には、特徴量に対する第１変換の結果である第１変換特徴量に上述した所定の内積暗号による暗号化を施した結果である暗号化第１変換特徴量と、参照特徴量に対する第２変換の結果である第２変換特徴量にその所定の内積暗号による暗号化を施した結果である暗号化第２変換特徴量との内積演算の結果（内積値）が、その特徴量とその参照特徴量とのユークリッド距離となるように、定められている。
【００５４】
１．３．３  参照特徴量暗号部
参照特徴量暗号部２０３は、参照特徴量変換部２０２により変換された参照特徴量を予め定められた暗号方式により暗号化する。参照特徴量暗号部２０３は、この暗号化において鍵格納部２０４に格納された鍵を用いる。参照特徴量暗号部２０３は、参照特徴量変換部２０２により変換された複数の参照特徴量（第２変換特徴量）のそれぞれに対して、ユーザ端末装置１００の特徴量暗号部１０５と同じ所定の内積暗号を用いて、暗号化を行う。
【００５５】
１．３．４  鍵格納部
鍵格納部２０４は、参照特徴量暗号部２０３及び暗号化参照データ抽出部２０６における各暗号処理（暗号化或いは復号）に用いる鍵を格納する。参照特徴量暗号部２０３及び暗号化参照データ抽出部２０６のそれぞれで用いる暗号方式及び鍵は同じであってもよいし、異なっていてもよい。例えば、参照特徴量暗号部２０３で用いる鍵は、暗号化したまま内積演算を可能にする内積暗号の秘密鍵であり、暗号化参照データ抽出部２０６で用いる鍵は、一般の公開鍵暗号方式のユーザ端末装置１００の公開鍵であってもよい。また、参照特徴量暗号部２０３で用いた秘密鍵と同じ鍵を暗号化参照データ抽出部２０６で用いることとしてもよい。
【００５６】
１．３．５  暗号化距離計算部
暗号化距離計算部２０５は、ユーザ端末装置１００が送信した類似検索の要求に係る情報（特徴量に第１変換が施され内積暗号による暗号化が施されたものである暗号化第１変換特徴量等）を、通信部２０８を介して取得する。また、暗号化距離計算部２０５は、参照特徴量暗号部２０３により参照特徴量に基づく第２変換特徴量が暗号化されたものである各暗号化第２変換特徴量を取得する。
【００５７】
暗号化距離計算部２０５は、ユーザ端末装置１００が生成した特徴量とデータ演算装置２００に格納している各参照特徴量とのユークリッド距離を、それぞれ暗号化したまま、内積演算により求める。
【００５８】
例えば、特徴量のベクトルＸ＝（ｘ１，ｘ２，ｘ３，・・・，ｘｎ）と、１つの参照特徴量のベクトルＹ１＝（ｙ１１，ｙ１２，ｙ１３，・・・，ｙ１ｎ）とのユークリッド距離Ｄ１は、Ｄ１＝Σ（ｘｊ−ｙ１ｊ）＾２（ｊ＝１，・・・，ｎ）で表される。Σ（ｘｊ−ｙ１ｊ）＾２は、ｘ１−ｙ１１の結果の２乗値から、ｘｎ−ｙ１ｎの結果の２乗値までの総和を示す。なお、一般的なユークリッド距離の定義は、Ｄ１の平方根であるが、ここではＤ１（正式には、平方ユークリッド距離と呼ばれるもの）をユークリッド距離として説明を行う。非特許文献１の内積暗号によれば、２つのベクトルＸ、Ｙ１の内積値＜Ｘ，Ｙ１＞＝Σｘｉ・ｙ１ｉ（ｉ＝１，・・・，ｎ）が、暗号化したまま求められる。非特許文献１の内積暗号を用いて、第１変換により変換した特徴量（第１変換特徴量）Ｘ’＝（Σｘｊ＾２，１，ｘ１，ｘ２，・・・，ｘｎ）と、第２変換により変換した１つの参照特徴量（第２変換特徴量）Ｙ１’＝（１，Σｙ１ｊ＾２，−２ｙ１１，−２ｙ１２，・・・，−２ｙ１ｎ）との内積を演算すると、次のようになる。
【００５９】
＜Ｘ’，Ｙ１’＞
＝Σｘｊ＾２＋Σｙ１ｊ＾２−２ｘ１・ｙ１１−２ｘ２・ｙ１２−・・・−２ｘｎ・ｙ１ｎ
＝Σ（ｘｊ−ｙ１ｊ）＾２
【００６０】
このように、第１変換により変換した特徴量と第２変換により変換した参照特徴量との内積演算をすると特徴量と参照特徴量とのユークリッド距離が求められる。非特許文献１の内積暗号を用いることで、内積演算をすると暗号化したユークリッド距離が求められ、復号することでユークリッド距離が求められる。
【００６１】
暗号化距離計算部２０５は、内積演算により求めたユークリッド距離（内積演算の結果）が一定条件を満たすか否かで類似か否かを判断する。この一定条件は、例えば、予め定められた閾値（例えば１等）以下である場合に満たされる条件である。暗号化距離計算部２０５は、類似と判断した場合は、対応する参照特徴量（つまり一定条件を満たすかの判断のための内積演算に用いられた暗号化第２変換特徴量の基礎となる参照特徴量）に対応付けられているＩＤを抽出する。暗号化距離計算部２０５は、類似と判断しなかった場合は、対応する参照特徴量のＩＤは抽出しない。
【００６２】
暗号化距離計算部２０５は、参照特徴量格納部２０１に格納されている複数の参照特徴量に、それぞれ第２変換を施して内積暗号を施したものである複数の暗号化第２変換特徴量のそれぞれについて、その暗号化第２変換特徴量と、ユーザ端末装置１００から受信した特徴量に第１変換が施され内積暗号が施されたものである暗号化第１変換特徴量とを用いた内積演算を行って、上述の一定条件を満たすか否かの判断を行う。これにより、参照特徴量格納部２０１に格納されている複数の参照特徴量のうち、類似の判断に係るその一定条件を満たす１つ以上の参照特徴量に対応するＩＤが抽出されることになる。
【００６３】
１．３．６  暗号化参照データ抽出部
暗号化参照データ抽出部２０６は、暗号化距離計算部２０５において抽出した１つ以上のＩＤに対応した参照データを、参照データ格納部２０７から抽出して暗号化し、暗号化した参照データを、通信部２０８を介してユーザ端末装置１００に送信する。なお、暗号化参照データ抽出部２０６は、暗号化の前に、参照データ（例えば症例等の情報）から対応する人を特定できないように匿名化してもよい。また、暗号化参照データ抽出部２０６は、ＩＤに対応して抽出した１つ以上の参照データについて、平均、分布等といった統計情報を求めて、これを暗号化してユーザ端末装置１００に送信することとしてもよい。
【００６４】
１．３．７  参照データ格納部
参照データ格納部２０７は、ユーザ端末装置１００からの要求に応じて類似検索を行う際に、検索の対象となる複数の参照特徴量に対応する複数の参照データを格納する。例えば、ある人についての測定結果等の情報から抽出された参照特徴量に対応する参照データは、その人のその情報に関連する。図６Ｂは、参照データ格納部２０７に格納されている参照データの例を示す。参照データ格納部２０７には、複数の参照データそれぞれが、識別子（ＩＤ）と対応付けて格納される。ＩＤにより、参照特徴量と参照データとは対応付けられている。図６Ｂの例では、参照データ格納部２０７には、ＩＤ毎に、ＩＤと参照データＥｚとが格納されている。各参照データは、例えば、複数人それぞれについての測定結果等の情報から抽出されたものであり得る。例えば、参照特徴量が人の身体に係る指標（例えば血圧、心拍数等）である場合において参照データは、例えば、その人の病気及び治療の履歴等であってもよい。また、例えば、参照特徴量が、人の位置情報を示すものである場合において参照データは、例えば、その人が購入した商品の履歴等であってもよい。図６Ｂの例では、ＩＤが１の人は、２０１３年１０月に脳梗塞で入院、ＩＤが２の人は、１９９９年２月に糖尿病で加療開始等といった病気及び治療の履歴を蓄積している。なお、参照データ格納部２０７に参照データを暗号化して格納しておいてもよい。
【００６５】
参照データ格納部２０７と参照特徴量格納部２０１とは、例えばデータ演算装置２００におけるメモリ、ハードディスク等の記憶媒体で実装され、記憶媒体において、複数の参照データと、複数の参照特徴量とが対応付けて記憶されることになる。
【００６６】
１．３．８  通信部
通信部２０８は、ユーザ端末装置１００との通信を行う。この通信には、例えばＴＬＳプロトコルによる暗号通信を用いる。データ演算装置２００は、通信部２０８により、ユーザ端末装置１００との間でＴＬＳに基づいて相互に認証し、データの暗号化を行う。ＴＬＳに用いる公開鍵証明書や秘密鍵は、通信部２０８において保持している。
【００６７】
通信部２０８は、ユーザ端末装置１００から、暗号化された特徴量に関する情報を伴う類似検索の要求を受信し、その情報を暗号化距離計算部２０５に伝達する。また、通信部２０８は、暗号化参照データ抽出部２０６で暗号化された参照データを、類似検索の要求に対する返答（応答）としてユーザ端末装置１００へ送信する。
【００６８】
１．４  検索システムの動作
１．４．１  動作処理
図８は、検索システム１０の動作を示すシーケンス図である。以下、検索システム１０の動作について図８に即して説明する。
【００６９】
データ演算装置２００は、参照特徴量変換部２０２において、参照特徴量格納部２０１に格納されている各参照特徴量Ｙｋを変換する（ステップＳ１０１）。これにより、各参照特徴量Ｙｋが第２変換により変換され、複数の第２変換特徴量Ｙｋ’が生成される。
【００７０】
次に、データ演算装置２００は、参照特徴量変換部２０２により変換された各参照特徴量を参照特徴量暗号部２０３において暗号化する（ステップＳ１０２）。これにより、各第２変換特徴量が所定の内積暗号により暗号化され、複数の暗号化参照特徴量（暗号化第２変換特徴量）が生成される。
【００７１】
ユーザ端末装置１００は、センシング部１０１で情報（ユーザについてのプライバシーデータ）を取得する（ステップＳ１０３）。
【００７２】
続いてユーザ端末装置１００は、特徴量算出部１０２において、センシング部１０１で取得した情報から特徴量Ｘを算出（抽出）する（ステップＳ１０４）。
【００７３】
次に、ユーザ端末装置１００は、特徴量変換部１０３において、特徴量Ｘを変換する（ステップＳ１０５）。これにより、特徴量Ｘが第１変換により変換され、第１変換特徴量Ｘ’が生成される。
【００７４】
次に、ユーザ端末装置１００は、特徴量暗号部１０５において、変換された特徴量（第１変換特徴量Ｘ’）を暗号化する（ステップＳ１０６）。これにより、第１変換特徴量が内積暗号により暗号化され、暗号化特徴量（暗号化第１変換特徴量）が生成される。
【００７５】
そして、ユーザ端末装置１００は、通信部１０８において、暗号化した特徴量をデータ演算装置２００に送信して、一定条件を満たす類似のデータを要求する（ステップＳ１０７）。類似のデータは、例えば、ユーザについての特徴量に類似した特徴を有する他の人についてのデータ（参照データ）である。これにより暗号化特徴量（暗号化第１変換特徴量）がユーザ端末装置１００からデータ演算装置２００に送信されることになる。
【００７６】
次に、データ演算装置２００は、ステップＳ１０２で生成された複数の暗号化参照特徴量のうちｉ番目のＩＤに対応する暗号化参照特徴量を選択する（ステップＳ１０８）。ここで、ｉは、例えば最初は１であり、ステップＳ１０２で生成された暗号化参照特徴量の数（つまり参照特徴量或いはＩＤの総数）になるまで、ステップＳ１０８が繰り返される毎にｉが１増加する。
【００７７】
データ演算装置２００は、暗号化距離計算部２０５において、ステップＳ１０８で選択した暗号化参照特徴量（暗号化第２変換特徴量）と、ユーザ端末装置１００から受信した暗号化特徴量（暗号化第１変換特徴量）とを用いた内積演算により内積を計算する（ステップＳ１０９）。この計算結果により特徴量とｉ番目のＩＤに対応する参照特徴量とのユークリッド距離が得られる。
【００７８】
データ演算装置２００は、暗号化距離計算部２０５においてステップＳ１０９での計算で導出されたユークリッド距離が所定の閾値以下であるか否かにより類似に係る一定条件を満たしているか否かをチェック（判断）する（ステップＳ１１０）。ステップＳ１１０でユークリッド距離が所定の閾値以下であった場合には、暗号化距離計算部２０５は、特徴量と参照特徴量とが類似していると判断して、ｉ番目のＩＤを抽出する（ステップＳ１１１）。
【００７９】
データ演算装置２００は、ステップＳ１０８〜Ｓ１１１の処理を、全てのＩＤに係るチェックを終えるまで繰り返し、その後に、暗号化参照データ抽出部２０６において、ステップＳ１１１で抽出された１つ以上のＩＤそれぞれに対応した参照データを参照データ格納部２０７から抽出して暗号化する（ステップＳ１１２）。
【００８０】
そして、データ演算装置２００は、通信部２０８において、ステップＳ１１２で暗号化された参照データを送信する（ステップＳ１１３）。これにより、１つ以上の参照データを示す情報がユーザ端末装置１００へ送信される。
【００８１】
この送信された、暗号化された参照データを受信して、ユーザ端末装置１００では、復号部１０６でその参照データを復号し、参照データ利用部１０７で参照データを利用する（ステップＳ１１４）。
【００８２】
１．４．２  ユーザ端末装置とデータ演算装置との間での通信
図９Ａ及び図９ＢはそれぞれステップＳ１０７、ステップＳ１１３で、ユーザ端末装置１００とデータ演算装置２００との間で授受される通信データのフォーマット例を示す。図９Ａ及び図９Ｂの例に係る通信データは、いずれも、送信者、受信者、コマンド及びデータから構成される。送信者は、通信データの送信元の装置の識別情報（通信ネットワークのアドレス等）であり、受信者は、通信データの送信先（宛先）の装置の識別情報（通信ネットワークのアドレス等）である。図９Ａでは、ステップＳ１０７でユーザ端末装置１００から送信される通信データについて、コマンドとして、類似のデータに係る要求コマンドを示す情報が含まれ、データとして、暗号化特徴量（暗号化第１変換特徴量）が含まれる例を示している。図９Ｂでは、ステップＳ１１３でデータ演算装置２００から送信される通信データについて、コマンドとして、類似のデータに係る返答コマンドを示す情報が含まれ、データとして、２つの暗号化された参照データが含まれる例を示している。
【００８３】
なお、ユーザ端末装置１００及びデータ演算装置２００が、図８に示すシーケンスに係る処理を複数並列的に実行し得るような場合には、ステップＳ１０７とステップＳ１１３との通信データが対応するものであることを識別するための識別子を通信データ内に含めてもよい。このとき、要求コマンドを含む通信データに対応する返答コマンドを含む通信データにおいて識別子として同一値を設定する。また、複数のユーザ端末装置と複数のデータ演算装置との間で並行して通信データの授受が行われるような場合においても、同様であり、ステップＳ１０７とステップＳ１１３との通信データが対応するものであることを識別するための識別子を通信データ内に含めてもよい。
【００８４】
１．５  実施の形態１の効果
実施の形態１に係る検索システム１０では、データ演算装置２００は、ユーザ端末装置１００で特徴量に第１変換を施して内積暗号で暗号化した暗号化特徴量（暗号化第１変換特徴量）を含む情報を受信し、保持する各参照特徴量に第２変換を施して内積暗号で暗号化した暗号化参照特徴量（暗号化第２変換特徴量）を用いて、暗号化したまま内積演算によって特徴量と各参照特徴量とのユークリッド距離を導出することで、類似のデータ（類似の参照特徴量に対応する参照データ）を抽出する。ユークリッド距離が所定の閾値以下の類似する参照特徴量に対応する参照データだけを抽出してユーザ端末装置１００に送付するため、ユーザ端末装置１００における処理負荷（計算量）と、通信量とを、例えば従来の準同型暗号を用いた類似検索の場合に比べて、低減させ得る。また、ユーザのプライバシーデータであり得る特徴量をデータ演算装置２００において平文で扱わないため、ユーザのプライバシーが保護され得る。
【００８５】
（実施の形態２）
以下、実施の形態１で示した検索システム１０の一部を変形して、データ演算装置２００を２つの装置に分離した例である検索システム１１について説明する。
【００８６】
２．１  検索システムの全体構成
図１０は、実施の形態２に係る検索システム１１の全体構成を示す構成図である。検索システム１１は、ユーザ端末装置１００とデータ演算装置２００ａとデータ提供装置３００とを備える。即ち、検索システム１１では、実施の形態１に係る検索システム１０におけるデータ演算装置２００を、データ演算装置２００ａとデータ提供装置３００とに分離している。データ提供装置３００では、参照特徴量と参照データとを暗号化してデータ演算装置２００ａに提供する。データ演算装置２００ａでは、特徴量、参照特徴量及び参照データのいずれについても平文では扱わない。なお、検索システム１１において、検索システム１０（図２、図３及び図５参照）と同じ構成要素については、同じ符号を付して、説明を適宜省略する。ここで特に説明しない点については、検索システム１１は、検索システム１０と同様である。
【００８７】
図１０では、ユーザ端末装置１００とデータ演算装置２００ａとデータ提供装置３００とをそれぞれ１つずつ示したが、それぞれ１つ以上あればよく、複数あってもよい。また、各装置間の接続形態は、有線接続でも無線接続でもよい。
【００８８】
２．２  データ演算装置
データ演算装置２００ａは、図１０に示すように、鍵格納部２０４と、暗号化距離計算部２０５と、暗号化参照データ抽出部２０６と、通信部２０８とを含んで構成される。
【００８９】
データ演算装置２００ａは、例えば、プロセッサ、メモリ、通信インタフェース等を備えるコンピュータに実装され得る。例えば、メモリに格納されたプログラムをプロセッサが実行すること等によりデータ演算装置２００ａにおける各種機能が実現され得る。データ演算装置２００ａは、ユーザ端末装置１００からの特徴量に関する類似検索の要求（特徴量が変換され暗号化された情報を伴う要求）を受信して、データ提供装置３００から暗号化された参照特徴量を取得して類似検索を行い、検索結果としてデータ提供装置３００から取得した暗号化された参照データを、要求に対する返答としてユーザ端末装置１００に送信する。
【００９０】
鍵格納部２０４は、暗号化参照データ抽出部２０６における暗号処理に用いる鍵を格納する。暗号化参照データ抽出部２０６で、データ提供装置３００から受信した参照データについて、ユーザ端末装置１００に送信するために暗号化するために用いる鍵は、例えば、一般の公開鍵暗号方式のユーザ端末装置１００の公開鍵等である。
【００９１】
暗号化距離計算部２０５は、ユーザ端末装置１００が送信した類似検索の要求に係る情報（特徴量に第１変換が施され内積暗号による暗号化が施されたものである暗号化第１変換特徴量等）を、通信部２０８を介して取得する。また、暗号化距離計算部２０５は、データ提供装置３００において参照特徴量暗号部３０３により参照特徴量に基づく第２変換特徴量が暗号化されたものである各暗号化第２変換特徴量を要求して取得する。暗号化距離計算部２０５は、ユーザ端末装置１００が生成した特徴量とデータ提供装置３００に格納している各参照特徴量とのユークリッド距離を、それぞれ暗号化したまま、内積演算により求める。
【００９２】
暗号化参照データ抽出部２０６は、暗号化距離計算部２０５において抽出した１つ以上のＩＤに対応した参照データを、通信部２０８を介してデータ提供装置３００に要求することで取得して、データ提供装置３００から取得した参照データを、ユーザ端末装置１００に通信部２０８を介して送信する。暗号化参照データ抽出部２０６は、参照データのユーザ端末装置１００への送信に際して参照データを暗号化し得る。なお、データ提供装置３００が、ユーザ端末装置１００の公開鍵等を用いて参照データを暗号化して送信することとしてもよく、この場合には、暗号化参照データ抽出部２０６では、暗号化を省略して、データ提供装置３００から受信した参照データをユーザ端末装置１００に転送する。
【００９３】
通信部２０８は、ユーザ端末装置１００との通信を行う他に、データ提供装置３００との通信を行う。これらの通信には、例えばＴＬＳプロトコルによる暗号通信を用いる。データ演算装置２００ａは、通信部２０８により、ユーザ端末装置１００或いはデータ提供装置３００との間でＴＬＳに基づいて相互に認証し、データの暗号化を行う。ＴＬＳに用いる公開鍵証明書や秘密鍵は、通信部２０８において保持している。
【００９４】
２．３  データ提供装置
データ提供装置３００は、例えば、プロセッサ、メモリ、通信インタフェース等を備えるコンピュータに実装され得る。例えば、メモリに格納されたプログラムをプロセッサが実行すること等によりデータ提供装置３００における各種機能が実現され得る。データ提供装置３００は、データ演算装置２００ａからの複数の暗号化参照特徴量（暗号化第２変換特徴量）を要求されると、各々にＩＤを付してデータ演算装置２００ａに送信し、また、データ演算装置２００ａからＩＤを指定して参照データを要求されると、参照データをデータ演算装置２００ａに送信する。
【００９５】
データ提供装置３００は、図１０に示すように、参照特徴量格納部３０１と、参照特徴量変換部３０２と、参照特徴量暗号部３０３と、鍵格納部３０４と、参照データ格納部３０５と、参照データ暗号部３０６と、通信部３０７とを含んで構成される。参照特徴量格納部３０１、参照特徴量変換部３０２、参照特徴量暗号部３０３及び参照データ格納部３０５は、それぞれ、実施の形態１で示した参照特徴量格納部２０１、参照特徴量変換部２０２、参照特徴量暗号部２０３、参照データ格納部２０７と同様の機能を有するので、ここでは説明を省略する。
【００９６】
鍵格納部３０４は、参照特徴量暗号部３０３において、変換された参照特徴量の暗号化に用いる鍵と、参照データ暗号部３０６において参照データの暗号化に用いる鍵とを保持する。参照データの暗号化には、例えばユーザ端末装置１００の公開鍵等を用いることとしてもよいし、データ提供装置３００とデータ演算装置２００ａとで共有する秘密鍵等を用いることとしてもよい。
【００９７】
参照データ暗号部３０６は、参照データ格納部３０５で保持する参照データのうち、データ演算装置２００ａがＩＤを指定して要求した参照データを暗号化して、その暗号化した参照データをデータ演算装置２００ａへ通信部３０７を介して送信する。
【００９８】
通信部３０７は、データ演算装置２００ａとの通信を行う。通信には、例えばＴＬＳプロトコルによる暗号通信を用いる。データ提供装置３００は、通信部３０７により、データ演算装置２００ａとの間でＴＬＳに基づいて相互に認証し、データの暗号化を行う。ＴＬＳに用いる公開鍵証明書や秘密鍵は、通信部３０７において保持している。
【００９９】
２．４  検索システムの動作
２．４．１  動作処理
図１１は、検索システム１１の動作を示すシーケンス図である。以下、検索システム１１の動作について図１１に即して説明する。
【０１００】
データ提供装置３００は、参照特徴量変換部３０２において、参照特徴量格納部３０１に格納されている各参照特徴量Ｙｋを変換する（ステップＳ２０１）。これにより、各参照特徴量Ｙｋが第２変換により変換され、複数の第２変換特徴量Ｙｋ’が生成される。
【０１０１】
次に、データ提供装置３００は、参照特徴量変換部３０２により変換された各参照特徴量を参照特徴量暗号部３０３において暗号化する（ステップＳ２０２）。これにより、各第２変換特徴量が所定の内積暗号により暗号化され、複数の暗号化参照特徴量（暗号化第２変換特徴量）が生成される。
【０１０２】
データ提供装置３００は、例えばデータ演算装置２００ａの要求に応じて、複数の暗号化参照特徴量を該当のＩＤと対応付けてデータ演算装置２００ａへ送信する（ステップＳ２０３）。データ演算装置２００ａでは、複数の暗号化参照特徴量（暗号化第２変換特徴量）を受信により取得する。
【０１０３】
ユーザ端末装置１００は、センシング部１０１で情報（ユーザについてのプライバシーデータ）を取得する（ステップＳ２０４）。
【０１０４】
続いてユーザ端末装置１００は、特徴量算出部１０２において、センシング部１０１で取得した情報から特徴量Ｘを算出（抽出）する（ステップＳ２０５）。
【０１０５】
次に、ユーザ端末装置１００は、特徴量変換部１０３において、特徴量Ｘを変換する（ステップＳ２０６）。これにより、特徴量Ｘが第１変換により変換され、第１変換特徴量Ｘ’が生成される。
【０１０６】
次に、ユーザ端末装置１００は、特徴量暗号部１０５において、変換された特徴量（第１変換特徴量Ｘ’）を暗号化する（ステップＳ２０７）。これにより、第１変換特徴量が内積暗号により暗号化され、暗号化特徴量（暗号化第１変換特徴量）が生成される。
【０１０７】
そして、ユーザ端末装置１００は、通信部１０８において、暗号化した特徴量をデータ演算装置２００ａに送信して、一定条件を満たす類似のデータを要求する（ステップＳ２０８）。類似のデータは、例えば、ユーザについての特徴量に類似した特徴を有する他の人についてのデータ（参照データ）である。これにより暗号化特徴量（暗号化第１変換特徴量）がユーザ端末装置１００からデータ演算装置２００ａに送信されることになる。
【０１０８】
次に、データ演算装置２００ａは、データ提供装置３００から取得した複数の暗号化参照特徴量のうちｉ番目のＩＤに対応する暗号化参照特徴量を選択する（ステップＳ２０９）。ここで、ｉは、例えば最初は１であり、ステップＳ２０２で生成された暗号化参照特徴量の数（つまり参照特徴量或いはＩＤの総数）になるまで、ステップＳ２０９が繰り返される毎にｉが１増加する。
【０１０９】
データ演算装置２００ａは、暗号化距離計算部２０５において、ステップＳ２０９で選択した暗号化参照特徴量（暗号化第２変換特徴量）と、ユーザ端末装置１００から受信した暗号化特徴量（暗号化第１変換特徴量）とを用いた内積演算により内積を計算する（ステップＳ２１０）。この計算結果により特徴量とｉ番目のＩＤに対応する参照特徴量とのユークリッド距離が得られる。
【０１１０】
データ演算装置２００ａは、暗号化距離計算部２０５においてステップＳ２１０での計算で導出されたユークリッド距離が所定の閾値以下であるか否かにより類似に係る一定条件を満たしているか否かをチェック（判断）する（ステップＳ２１１）。ステップＳ２１１でユークリッド距離が所定の閾値以下であった場合には、暗号化距離計算部２０５は、特徴量と参照特徴量とが類似していると判断して、ｉ番目のＩＤを抽出する（ステップＳ２１２）。
【０１１１】
データ演算装置２００ａは、ステップＳ２０９〜Ｓ２１２の処理を、全てのＩＤに係るチェックを終えるまで繰り返し、ステップＳ２１２で抽出された１つ以上のＩＤを指定した参照データの要求をデータ提供装置３００に送信する（ステップＳ２１３）。
【０１１２】
参照データの要求を受信したデータ提供装置３００は、データ演算装置から受信したＩＤに対応した参照データを参照データ格納部３０５から抽出して、参照データ暗号部３０６で暗号化する（ステップＳ２１４）。
【０１１３】
データ提供装置３００は、参照データ暗号部３０６で暗号化された参照データを通信部３０７においてデータ演算装置２００ａへ送信する（ステップＳ２１５）。
【０１１４】
次にデータ演算装置２００ａは、データ提供装置３００から受信した、暗号化された参照データをユーザ端末装置１００に送信する（ステップＳ２１６）。ステップＳ２１６では、データ提供装置３００から受信した参照データがユーザ端末装置１００の公開鍵等で暗号化されている場合においてデータ演算装置２００ａは、データ提供装置３００から受信した暗号化された参照データをそのままユーザ端末装置１００に送信し得る。また、データ提供装置３００から受信した暗号化された参照データを、復号した上でユーザ端末装置１００の公開鍵等で暗号化してユーザ端末装置１００に送信してもよい。
【０１１５】
この送信された、暗号化された参照データを受信して、ユーザ端末装置１００では、復号部１０６でその参照データを復号し、参照データ利用部１０７で参照データを利用する（ステップＳ２１７）。
【０１１６】
２．５  実施の形態２の効果
実施の形態２に係る検索システム１１では、データ演算装置２００ａは、ユーザ端末装置１００で特徴量に第１変換を施して内積暗号で暗号化した暗号化特徴量（暗号化第１変換特徴量）を含む情報を受信し、データ提供装置３００から各参照特徴量に第２変換を施して内積暗号で暗号化した暗号化参照特徴量（暗号化第２変換特徴量）を受信し、暗号化したまま内積演算によって特徴量と各参照特徴量とのユークリッド距離を導出することで、類似のデータ（類似の参照特徴量に対応する参照データ）を抽出する。データ演算装置２００ａでは、ユーザ端末装置１００の特徴量とデータ提供装置３００の参照特徴量について、平文で扱わないためプライバシーを保護することができる。また、データ演算装置２００ａは、ユークリッド距離が所定の閾値以下の類似する参照特徴量に対応する参照データだけをデータ提供装置３００から取得してユーザ端末装置１００に送付するため、ユーザ端末装置１００における処理負荷（計算量）と、通信量とを低減させ得る。
【０１１７】
（他の実施の形態等）
以上のように、本発明に係る技術の例示として実施の形態１、２を用いて説明した。しかしながら、上述の実施の形態は一例に過ぎず、各種の変更、付加、省略等が可能であることは言うまでもない。以下、変形例等を示す。
【０１１８】
（１）上記実施の形態では、変換された特徴量である第１変換特徴量の暗号化、及び、変換された各参照特徴量である第２変換特徴量の暗号化に、非特許文献１の内積暗号を用いる例を示したが、これらの暗号化に、非特許文献２に示された暗号方式である所定の述語暗号を用いることとしてもよい。以下、この所定の述語暗号を用いる例を変形例１と称する。変形例１に係る検索システム１０の参照特徴量変換部２０２での参照特徴量の変換の例を図１２に示す。図１２は、変換前と変換後の参照特徴量の一例を示している。参照特徴量格納部２０１に格納されている参照特徴量（変換前の参照特徴量）の１つを、特徴量と同数の成分からなるｎ次元のベクトルＹ１＝（ｙ１１，ｙ１２，ｙ１３，・・・，ｙ１ｎ）で表す場合において、参照特徴量変換部２０２による変換後の参照特徴量はベクトルＹ１’＝（１，（Σｙ１ｊ＾２）−ｚ，−２ｙ１１，−２ｙ１２，・・・，−２ｙ１ｎ）となる。ここで、Σｙ１ｊ＾２はｊが１からｎまでのｙ１ｊ＾２の総和（つまりｙ１１からｙ１ｎまでの要素の２乗の総和）を示している。また、ｚは、ユークリッド距離の条件に係る変数を示しており、類似と判断するためのユークリッド距離の閾値（閾値以下のユークリッド距離となる関係を類似と判断するためのその閾値）を例えばＤ−１とすると、ｚとして０からＤ−１までの値を代入する。そして、データ演算装置２００では、その各値を代入したｚに対応したＹ１’をこの場合はＤ個用いて、第１変換後の特徴量である第１変換特徴量のベクトルＸ’との間で所定の内積演算を行うことで、類似か否かを判断する。即ち、０からＤ−１までの１つの値を代入した所定のｚを用いた変換後の参照特徴量Ｙ１’に所定の述語暗号を施したものと、変換後の特徴量Ｘ’に所定の述語暗号を施したものとを、非特許文献２のＱｕｅｒｙに入力することで内積演算を行う。非特許文献２のＱｕｅｒｙの出力が１の場合には特徴量Ｘと参照特徴量Ｙ１とのユークリッド距離が所定のｚであり、類似していると判断できる。Ｙ１については、ｚに０からＤ−１までの値を逐次代入して生成されたＹ１’と、Ｘ’とに基づいてＤ回、Ｑｕｅｒｙにより類似の判断を行う。また、参照特徴量変換部２０２は、他の参照特徴量Ｙｋ（ｋ＝２，・・・，ｎ）についても同様の変換を行う。そして、データ演算装置２００では、Ｙ２からＹｎまでのｎ−１個のそれぞれの変換後の参照特徴量を用いてＹ１の場合と同様に類似の判断を行う。この場合にユーザ端末装置１００の特徴量変換部１０３で行われる第１変換と、データ演算装置２００の参照特徴量変換部２０２で行われる第２変換とは、第１変換特徴量に所定の述語暗号を施したものである暗号化第１変換特徴量と、第２変換特徴量に所定の述語暗号を施したものである暗号化第２変換特徴量との内積演算の結果が、その暗号化第１変換特徴量に対応する特徴量とその暗号化第２変換特徴量に対応する参照特徴量とのユークリッド距離から所定値ｚを減算した値となるように、定められている。この場合において類似と判断するための一定条件は、その内積演算の結果が０の場合に満たされる条件である。
【０１１９】
（２）上記実施の形態では、特徴量変換部１０３による第１変換及び参照特徴量変換部２０２による第２変換の一例を示したが、第１変換及び第２変換は、例えば＜Ｘ’，Ｙ１’＞が以下の式となるものであるとよい。
【０１２０】
＜Ｘ’，Ｙ１’＞
＝Σｘｊ＾２＋Σｙ１ｊ＾２−２ｘ１・ｙ１１−２ｘ２・ｙ１２−・・・−２ｘｎ・ｙ１ｎ
＝Σ（ｘｊ−ｙ１ｊ）＾２
【０１２１】
具体的な１つの変換方法として、第１変換により、特徴量Ｘを、Ｘ’＝（Σｘｊ＾２，１，−２ｘ１，−２ｘ２，・・・，−２ｘｎ）となるように変換し、第２変換により、１つの参照特徴量Ｙ１を、Ｙ１’＝（１，Σｙ１ｊ＾２，ｙ１１，ｙ１２，・・・，ｙ１ｎ）と変換してもよい。また、変形例１に適用する場合には、第１変換により、特徴量Ｘを、Ｘ’＝（Σｘｊ＾２，１，−２ｘ１，−２ｘ２，・・・，−２ｘｎ）となるように変換し、第２変換により、１つの参照特徴量Ｙ１を、Ｙ１’＝（１，（Σｙ１ｊ＾２）−ｚ，ｙ１１，ｙ１２，・・・，ｙ１ｎ）と変換してもよい。
【０１２２】
（３）上記実施の形態では、特に重み付きでないユークリッド距離を求めたが、ユークリッド距離は、重み付きユークリッド距離であってもよい。例えば、ユークリッド距離は、ｎ次元のベクトルの１番目からｎ番目までの成分に対応してｗ１からｗｎまでの重みを付けた重み付きユークリッド距離である。重み付きユークリッド距離を求める場合において、ベクトルの各成分（要素）ｊへの重みをｗｊと表すと、特徴量変換部１０３による第１変換は、特徴量Ｘをｎ次元のベクトルＸ＝（ｘ１，ｘ２，ｘ３，・・・，ｘｎ）で表す場合において、特徴量Ｘを第１変換特徴量としてのベクトルＸ’＝（Σ（ｗｊ・ｘｊ＾２），１，ｘ１，ｘ２，・・・，ｘｎ）とするものであり、ここで、Σ（ｗｊ・ｘｊ＾２）はｊが１からｎまでの（ｗｊ・ｘｊ＾２）の総和である。また、参照特徴量変換部２０２による第２変換は、複数の参照特徴量を、ｋを１からその複数の参照特徴量の個数までの各整数として、ｎ次元のベクトルＹｋ＝（ｙｋ１，ｙｋ２，ｙｋ３，・・・，ｙｋｎ）で表す場合において、複数の参照特徴量のそれぞれを第２変換特徴量としてのベクトルＹｋ’＝（１，Σ（ｗｊ・ｙｋｊ＾２），−２ｗ１・ｙｋ１，−２ｗ２・ｙｋ２，・・・，−２ｗｎ・ｙｋｎ）に変換するように定められており、ここでΣ（ｗｊ・ｙｋｊ＾２）はｊが１からｎまでの（ｗｊ・ｙｋｊ＾２）の総和である。１つの参照特徴量Ｙ１については、Ｙ１’＝（１，Σ（ｗｊ・ｙ１ｊ＾２），−２ｗ１・ｙ１１，−２ｗ２・ｙ１２，・・・，−２ｗｎ・ｙ１ｎ）と変換される。このとき、＜Ｘ’，Ｙｋ’＞は以下の式となる。
【０１２３】
＜Ｘ’，Ｙｋ’＞
＝Σ（ｗｊ・ｘｊ＾２）＋Σ（ｗｊ・ｙｋｊ＾２）−２ｗ１・ｘ１・ｙｋ１−２ｗ２・ｘ２・ｙｋ２−・・・−２ｗｎ・ｘｎ・ｙｋｎ
＝Σｗｊ（ｘｊ−ｙｋｊ）＾２
【０１２４】
（４）上記実施の形態では、特徴量変換部１０３及び参照特徴量変換部２０２で特徴量及び参照特徴量に変換を行うことによって、特徴量と参照特徴量とのユークリッド距離を計算する例を示したが、変換方法を以下のようにすることで、ユークリッド距離の拡張となる、特徴量と参照特徴量との差分の累乗を計算することができる。例えば、Σ（ｘｊ−ｙ１ｊ）＾３を計算する場合には、変換後のＸ’及びＹ１’は以下のようになる。
【０１２５】
Ｘ’＝（Σｘｊ＾３，１，ｘ１＾２，ｘ１，ｘ２＾２，ｘ２，・・・，ｘｎ＾２，ｘｎ）
Ｙ１’＝（１，Σｙ１ｊ＾３，−３ｙ１１，３ｙ１１＾２，−３ｙ１２，３ｙ１２＾２，・・・，−３ｙ１ｎ，３ｙ１ｎ＾２）
【０１２６】
ここで、Σｘｊ＾３はｊが１からｎまでの（ｘｊ＾３）の総和である。
【０１２７】
このとき、＜Ｘ’，Ｙ１’＞は、Σ（ｘｊ−ｙ１ｊ）＾３と一致するため、ｘｊ−ｙ１ｊの３乗の計算ができる。同様に変換を行うと３乗以外の累乗の計算も可能となる。なお、更なるユークリッド距離の拡張として、例えば、特徴量と参照特徴量との内積演算で得られる多項式が、最初の項は２乗、２番目の項は３乗というように成分（要素）毎にべき乗値を変更したものであっても、同様に計算可能となる。
【０１２８】
（５）上記実施の形態では、データ演算装置２００或いはデータ提供装置３００が参照特徴量を保持してその参照特徴量を変換して暗号化する例を示した。この他に、データ演算装置２００或いはデータ提供装置３００は、予め変換した参照特徴量である第２変換特徴量をＩＤ（参照データと対応付けるためのＩＤ）と対応付けて記憶媒体等に格納することで保持してもよいし、その第２変換特徴量に暗号化を施したものである暗号化参照特徴量（暗号化第２変換特徴量）をＩＤと対応付けて保持してもよい。これにより、効率的に類似検索に係る処理を行うことが可能となり得る。
【０１２９】
（６）上記実施の形態では、データ演算装置２００、２００ａにおいて、全てのＩＤに対応する全ての暗号化参照特徴量に関して、内積演算の結果としてのユークリッド距離が一定条件を満たすか否かに係る判断を行うこととしたが（図８、図１１参照）、例えば、一定数（例えば１０個）条件を満たすと判断するものがあればそこで判断の繰り返しを終了することとしてもよい。また、データ演算装置２００、２００ａは、全ての参照特徴量のうち、特徴量とのユークリッド距離が小さいものから一定数（例えば１０個）に対応する参照データのみを、ユーザ端末装置１００に送信することとしてもよい。
【０１３０】
また、変形例１を用いる場合は、ｚ＝０で条件を満たすものがあるか否かを判断し、次にｚ＝１で判断するといった具合に、順次判断して、一定数（例えば１０個）条件を満たすものが集まったら判断の繰り返しを終了することとしてもよい。これにより、特徴量とのユークリッド距離が近いものから一定数の参照特徴量に対応する参照データをユーザ端末装置１００に提供することができる。
【０１３１】
（７）上記実施の形態で示した暗号化参照データ抽出部２０６は、参照データを暗号化して送信することとしたが、参照データを必ずしも暗号化して送信しなくてもよい。但し、暗号化することはユーザが取得した参照データを秘匿する上で有用である。
【０１３２】
（８）上記実施の形態２におけるデータ提供装置３００からデータ演算装置２００ａへの暗号化参照特徴量の送信は、データ演算装置２００ａからデータ提供装置３００への要求に応じて行ってもよいし、要求に拘わらず自発的にデータ提供装置３００が行ってもよい。また、データ演算装置２００ａは、ユーザ端末装置１００から類似検索に係る要求を受信した後に、データ提供装置３００に暗号化参照特徴量の送信を要求することとして、これに応じてデータ提供装置３００がデータ演算装置２００ａに暗号化参照特徴量を送信することとしてもよい。
【０１３３】
（９）上記変形例１では、述語暗号を用いて、変換前の参照特徴量をベクトルＹ１＝（ｙ１１，ｙ１２，ｙ１３，・・・，ｙ１ｎ）で表す場合において、参照特徴量変換部２０２による変換後の参照特徴量はベクトルＹ１’＝（１，（Σｙ１ｊ＾２）−ｚ，−２ｙ１１，−２ｙ１２，・・・，−２ｙ１ｎ）となることとしたが、これは一例に過ぎず、例えば次のようにしてもよい。即ち、変換後の特徴量をベクトルＸ’＝（Σｘｊ＾２，１，１，ｘ１，ｘ２，・・・，ｘｎ）、変換後の参照特徴量をベクトルＹ１’＝（１，（Σｙ１ｊ＾２），−ｚ，−２ｙ１１，−２ｙ１２，・・・，−２ｙ１ｎ）とする。ここで、Σｘｊ＾２はｊが１からｎまでのｘｊ＾２の総和（つまりｘ１からｘｎまでの要素の２乗の総和）を示し、Σｙ１ｊ＾２はｊが１からｎまでのｙ１ｊ＾２の総和（つまりｙ１１からｙ１ｎまでの要素の２乗の総和）を示している。
【０１３４】
（１０）上記実施の形態で示した各種処理の手順（例えば図８、図１１に示したシーケンス等）の実行順序は、必ずしも、上述した通りの順序に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えたり、複数の手順を並列に行ったり、その手順の一部を省略したりすることができる。
【０１３５】
（１１）上記実施の形態における各装置は、例えば、プロセッサ、メモリ、通信インタフェース等を含む装置であることとしたが、ハードディスク装置、ディスプレイ、キーボード、マウス等の他のハードウェア構成要素を含んでいてもよい。また、メモリに記憶されたプログラムがプロセッサにより実行されてソフトウェア的に機能を実現する代わりに、専用のハードウェア（デジタル回路、アナログ回路、通信回路等）によりその機能を実現することとしてもよい。
【０１３６】
（１２）上記実施の形態における各装置を構成する構成要素の一部又は全部は、１個のシステムＬＳＩ（Large Scale Integration：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ等を含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムＬＳＩは、その機能を達成する。また、上記各装置を構成する構成要素の各部は、個別に１チップ化されていてもよいし、一部又は全部を含むように１チップ化されてもよい。また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
【０１３７】
（１３）上記各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なＩＣカード又は単体のモジュールから構成されているとしてもよい。前記ＩＣカード又は前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭ等から構成されるコンピュータシステムである。前記ＩＣカード又は前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ＩＣカード又は前記モジュールは、その機能を達成する。このＩＣカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
【０１３８】
（１４）本発明の一態様としては、例えば図８、図１１等に示す処理手順の全部又は一部を含む検索方法であるとしてもよい。例えば、検索方法は、第１装置（例えばデータ演算装置２００、２００ａ）におけるデータの検索のための検索方法であって、ユーザのプライバシーデータから抽出された複数の成分を含むベクトルで表される特徴量に対する第１変換の結果としての第１変換特徴量に所定暗号化を施して得られる暗号化第１変換特徴量を第２装置（例えばユーザ端末装置１００）から受信し、複数の参照特徴量のそれぞれが複数の参照データのいずれかと対応して前記特徴量と同数の成分を含むベクトルで表される当該複数の参照特徴量のそれぞれについて、当該参照特徴量に対する第２変換の結果としての第２変換特徴量に前記所定暗号化を施して得られる暗号化第２変換特徴量を取得し、前記取得した複数の暗号化第２変換特徴量のそれぞれについて当該暗号化第２変換特徴量と前記暗号化第１変換特徴量とを用いた内積演算を行い、当該内積演算の結果が一定条件を満たす１つ以上の暗号化第２変換特徴量のそれぞれと対応関係を有する１つ以上の前記参照データを示す情報を前記第２装置へ送信し、前記第１変換、前記第２変換及び前記所定暗号化は、前記暗号化第１変換特徴量と前記取得した１つの暗号化第２変換特徴量との内積演算の結果が、当該暗号化第１変換特徴量に対応する前記特徴量と当該１つの暗号化第２変換特徴量に対応する参照特徴量とのユークリッド距離に関連する値となるように、定められている。また、この検索方法に係る所定データ検索処理をコンピュータにより実現するプログラム（コンピュータプログラム）であるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。例えば、プログラムは、受信ステップ（例えばステップＳ１０７に係る要求の受信）と、変換ステップ（例えばステップＳ１０１）と、暗号化ステップ（例えばステップＳ１０２）と、選出ステップ（例えばステップＳ１０８〜Ｓ１１１）と、送信ステップ（例えばステップＳ１１３）とを含む所定データ検索処理をプロセッサに実行させるためのものである。受信ステップでは、ユーザのプライバシーデータから抽出された参照特徴量と同数の成分を含むベクトルで表される特徴量に対する第１変換の結果としての第１変換特徴量に所定暗号化を施して得られる暗号化第１変換特徴量をユーザ端末装置１００から受信する。変換ステップでは複数の参照特徴量のそれぞれについて、その参照特徴量に対して第２変換を施した第２変換特徴量を生成する。暗号化ステップでは、変換ステップで生成された複数の第２変換特徴量のそれぞれについて、その第２変換特徴量に所定暗号化を施した暗号化第２変換特徴量を生成する。選出ステップでは、暗号化ステップで生成された複数の暗号化第２変換特徴量のそれぞれについてその暗号化第２変換特徴量と暗号化第１変換特徴量とを用いた内積演算を行い、内積演算の結果が一定条件を満たす１つ以上の暗号化第２変換特徴量を選出する。送信ステップでは、選出ステップで選出された１つ以上の暗号化第２変換特徴量のそれぞれと対応関係を有する１つ以上の参照データを示す情報をユーザ端末装置１００へ送信する。ここで、第１変換、第２変換及び所定暗号化は、暗号化第１変換特徴量と暗号化ステップで生成された１つの暗号化第２変換特徴量との内積演算の結果が、暗号化第１変換特徴量に対応する特徴量とその１つの暗号化第２変換特徴量に対応する参照特徴量とのユークリッド距離に関連する値となるように、定められている。また、本発明の一態様としては、前記コンピュータプログラム又は前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Blu-ray（登録商標） Disc）、半導体メモリ等に記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。また、本発明の一態様としては、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。また、本発明の一態様としては、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。また、前記プログラム若しくは前記デジタル信号を前記記録媒体に記録して移送することにより、又は、前記プログラム若しくは前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【０１３９】
また、上記実施の形態で示した検索システム１０、１１に係る技術は、上述したサービスの態様（図１Ａ参照）の他、例えば、以下のクラウドサービスの類型において実現され得る。但し、上記実施の形態で示した技術の適用が、ここで説明するクラウドサービスの類型に限られるものではない。
【０１４０】
（サービスの類型１：自社データセンタ型クラウドサービス）
図１３は、サービスの類型１（自社データセンタ型クラウドサービス）における検索システムが提供するサービスの全体像を示す図である。本類型では、サービスプロバイダ１１２０が、機器１１０１からユーザ１０１０により入力される情報を取得し、ユーザ１０１０に対して機器１１０１を介してサービスを提供する。本類型では、サービスプロバイダ１１２０が、データセンタ運営会社の機能を有している。すなわち、サービスプロバイダ１１２０が、ビッグデータを管理するクラウドサーバを保有している。本類型では、データセンタ運営会社は存在しない。本類型では、サービスプロバイダ１１２０は、データセンタとしてのクラウドサーバ１２０３を有し、オペレーティングシステム（ＯＳ）１２０２及びアプリケーションプログラム（アプリケーション）１２０１を管理する。サービスプロバイダ１１２０は、ＯＳ１２０２及びアプリケーション１２０１を用いて、クラウドサーバ１２０３により機器１１０１と通信することで、サービスを提供する。
【０１４１】
（サービスの類型２：ＩａａＳ利用型クラウドサービス）
図１４は、サービスの類型２（ＩａａＳ利用型クラウドサービス）における検索システムが提供するサービスの全体像を示す図である。ここで、ＩａａＳとは、インフラストラクチャー・アズ・ア・サービスの略であり、コンピュータシステムを構築及び稼動させるための基盤そのものを、インターネット経由のサービスとして提供するクラウドサービス提供モデルである。
【０１４２】
本類型では、データセンタ運営会社１１１０が、データセンタ（クラウドサーバ）１２０３を運営及び管理している。また、サービスプロバイダ１１２０は、ＯＳ１２０２及びアプリケーション１２０１を管理する。サービスプロバイダ１１２０は、サービスプロバイダ１１２０が管理するＯＳ１２０２及びアプリケーション１２０１を用いてサービスを提供する。
【０１４３】
（サービスの類型３：ＰａａＳ利用型クラウドサービス）
図１５は、サービスの類型３（ＰａａＳ利用型クラウドサービス）における検索システムが提供するサービスの全体像を示す図である。ここで、ＰａａＳとは、プラットフォーム・アズ・ア・サービスの略であり、ソフトウェアを構築及び稼動させるための土台となるプラットフォームを、インターネット経由のサービスとして提供するクラウドサービス提供モデルである。
【０１４４】
本類型では、データセンタ運営会社１１１０は、ＯＳ１２０２を管理し、データセンタ（クラウドサーバ）１２０３を運営及び管理している。また、サービスプロバイダ１１２０は、アプリケーション１２０１を管理する。サービスプロバイダ１１２０は、データセンタ運営会社１１１０が管理するＯＳ１２０２及びサービスプロバイダ１１２０が管理するアプリケーション１２０１を用いてサービスを提供する。
【０１４５】
（サービスの類型４：ＳａａＳ利用型クラウドサービス）
図１６は、サービスの類型４（ＳａａＳ利用型クラウドサービス）における検索システムが提供するサービスの全体像を示す図である。ここで、ＳａａＳとは、ソフトウェア・アズ・ア・サービスの略である。ＳａａＳ利用型クラウドサービスは、例えば、データセンタ（クラウドサーバ）を保有しているプラットフォーム提供者が提供するアプリケーションを、データセンタ（クラウドサーバ）を保有していない会社又は個人等の利用者がインターネット等のネットワーク経由で使用できる機能を有するクラウドサービス提供モデルである。
【０１４６】
本類型では、データセンタ運営会社１１１０は、アプリケーション１２０１を管理し、ＯＳ１２０２を管理し、データセンタ（クラウドサーバ）１２０３を運営及び管理している。また、サービスプロバイダ１１２０は、データセンタ運営会社１１１０が管理するＯＳ１２０２及びアプリケーション１２０１を用いてサービスを提供する。
【０１４７】
以上、いずれのクラウドサービスの類型においても、サービスプロバイダ１１２０がサービスを提供する。また、例えば、サービスプロバイダ又はデータセンタ運営会社は、ＯＳ、アプリケーション又はビッグデータのデータベース等を自ら開発してもよいし、また、第三者に開発させてもよい。
【０１４８】
また、上記実施の形態で示した各構成要素及び機能を任意に組み合わせることで実現される形態も本発明の範囲に含まれる。
【産業上の利用可能性】
【０１４９】
本発明は、ユーザの情報を秘匿して検索を行う検索システムに利用可能である。
【符号の説明】
【０１５０】
１０、１１  検索システム
１００  ユーザ端末装置
１０１  センシング部
１０２  特徴量算出部
１０３  特徴量変換部
１０４  鍵格納部
１０５  特徴量暗号部
１０６  復号部
１０７  参照データ利用部
１０８  通信部
２００、２００ａ  データ演算装置
２０１、３０１  参照特徴量格納部
２０２、３０２  参照特徴量変換部
２０３、３０３  参照特徴量暗号部
２０４、３０４  鍵格納部
２０５  暗号化距離計算部
２０６  暗号化参照データ抽出部
２０７、３０５  参照データ格納部
２０８  通信部
３００  データ提供装置
３０６  参照データ暗号部
３０７  通信部
１０１０  ユーザ
１１００  グループ
１１０１  機器
１１０２  ホームゲートウェイ
１１１０  データセンタ運営会社
１１１１  クラウドサーバ
１１２０  サービスプロバイダ
１１２１  サーバ
１２０１  アプリケーション
１２０２  オペレーティングシステム（ＯＳ）
１２０３  クラウドサーバ
【図１Ａ】
0006742852.tif 000002
【図１Ｂ】
0006742852.tif 000003
【図２】
0006742852.tif 000004
【図３】
0006742852.tif 000005
【図４】
0006742852.tif 000006
【図５】
0006742852.tif 000007
【図６Ａ】
0006742852.tif 000008
【図６Ｂ】
0006742852.tif 000009
【図７】
0006742852.tif 000010
【図８】
0006742852.tif 000011
【図９Ａ】
0006742852.tif 000012
【図９Ｂ】
0006742852.tif 000013
【図１０】
0006742852.tif 000014
【図１１】
0006742852.tif 000015
【図１２】
0006742852.tif 000016
【図１３】
0006742852.tif 000017
【図１４】
0006742852.tif 000018
【図１５】
0006742852.tif 000019
【図１６】
0006742852.tif 000020