(57)【特許請求の範囲】
【請求項１】
端末装置から提供される情報に基づいて、サーバ装置が類似情報を検索して前記端末装置に提供する類似情報検索方法であって、
前記サーバ装置が、前記端末装置から、暗号化された特徴量である暗号化特徴量を受信する特徴量受信ステップと、
前記サーバ装置が、前記端末装置から、類似の度合を示す類似値を暗号化した情報である暗号化類似値を受信する類似値受信ステップと、
前記サーバ装置が、複数の参照特徴量の少なくとも一つについての前記参照特徴量と、前記サーバ装置で受信された前記暗号化特徴量との類似の度合を示す暗号化距離を算出する距離算出ステップと、
前記サーバ装置が、算出された前記暗号化距離が前記サーバ装置で受信された前記暗号化類似値とが一致するか否かを判定する判定ステップと、
前記サーバ装置が、前記判定ステップで一致すると判定された場合に、前記暗号化距離の算出に用いられた前記参照特徴量に対応するデータである参照データを暗号化した情報である暗号化参照データを生成し、生成した前記暗号化参照データを前記端末装置に送信する参照データ送信ステップと
を含む類似情報検索方法。
【請求項２】
前記類似値受信ステップでは、複数の類似の度合を示す複数の類似値のそれぞれを暗号化した情報である複数の暗号化類似値を受信し、
前記サーバ装置は、受信した前記複数の暗号化類似値のそれぞれについて、前記距離算出ステップ、前記判定ステップ及び前記参照データ送信ステップを実行する
請求項１記載の類似情報検索方法。
【請求項３】
前記暗号化距離は、前記参照特徴量と前記暗号化特徴量とのユークリッド距離である
請求項１又は２記載の類似情報検索方法。
【請求項４】
さらに、
前記サーバ装置は、前記端末装置が保持する秘密鍵を所定関数で変換した情報である鍵変換値を受信する鍵受信ステップを含み、
前記類似値受信ステップでは、前記暗号化類似値として、前記類似値を前記所定関数で変換した情報である変換類似値を受信し、
前記判定ステップでは、前記判定として、前記鍵変換値を用いて前記暗号化距離を復号することで変換距離を生成し、生成した前記変換距離が前記変換類似値と一致するか否かを判定する
請求項１〜３のいずれか１項に記載の類似情報検索方法。
【請求項５】
前記所定関数は、一方向性関数である
請求項４記載の類似情報検索方法。
【請求項６】
さらに、
前記端末装置は、データを取得し、取得したデータから、前記データの特徴を示す特徴量を算出し、算出した特徴量を暗号化することで前記暗号化特徴量を生成し、生成した前記暗号化特徴量を前記サーバ装置に送信する特徴量送信ステップと、
前記端末装置が、類似の度合を示す類似値を設定し、設定した類似値を暗号化することで前記暗号化類似値を生成し、生成した前記暗号化類似値を前記サーバ装置に送信する類似値送信ステップと、
前記端末装置が、前記サーバ装置から前記暗号化参照データを受信し、受信した前記暗号化参照データを復号する復号ステップとを含む
請求項１〜５のいずれか１項に記載の類似情報検索方法。
【請求項７】
前記暗号化特徴量、前記暗号化類似値及び前記参照特徴量は、準同型暗号方式で暗号化されている
請求項１〜６のいずれか１項に記載の類似情報検索方法。
【請求項８】
端末装置から提供される情報に基づいて、類似情報を検索して前記端末装置に提供するサーバ装置であって、
前記端末装置から、暗号化された特徴量である暗号化特徴量を受信し、受信した前記暗号化特徴量と、複数の参照特徴量の少なくとも一つについての前記参照特徴量との類似の度合を示す暗号化距離を算出する暗号化距離計算部と、
類似の度合を示す類似値を暗号化した情報である暗号化類似値を受信し、受信した前記暗号化類似値が、算出された前記暗号化距離と一致するか否かを判定する参照類似値抽出部と、
前記参照類似値抽出部で一致すると判定された場合に、前記暗号化距離の算出に用いられた前記参照特徴量に対応するデータである参照データを暗号化した情報である暗号化参照データを生成し、生成した前記暗号化参照データを前記端末装置に送信する暗号化参照データ抽出部と
を備えるサーバ装置。
【請求項９】
端末装置と、
前記端末装置から提供される情報に基づいて、類似情報を検索して前記端末装置に提供する請求項８記載のサーバ装置と
を備える類似情報検索システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化により内容を秘匿しながら類似情報検索を行う方法、サーバ装置及びシステムに関する。
【背景技術】
【０００２】
近年、例えば家庭で血圧などの測定を行い、サーバにおける分析により食生活などに関してユーザにアドバイスを行うシステムがある。この分析においては、その本人の過去情報のみならず、類似した他の症例を参照にアドバイスを行うことにより、さらにそのユーザに実感のある有用なアドバイスを行うことができる。サーバにおける類似症例の検索においては、プライバシー保護の観点により、そのユーザの情報や参照する他の症例の情報は、暗号化で秘匿することが望ましい。特許文献１、特許文献２および特許文献３には、暗号化したまま類似検索を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−１２６８６５号公報
【特許文献２】特開２０１４−１２６８６６号公報
【特許文献３】特許第５５４２４７４号公報
【非特許文献】
【０００４】
【非特許文献１】光成滋生、“クラウドを支えるこれからの暗号技術”、２０１５．３．２４．ｇｉｔｈｕｂ
【非特許文献２】Ｄ．Ｂｏｎｅｈ，  Ｅ．−Ｊ．Ｇｏｈ，  Ｋ．Ｎｉｓｓｉｍ，  “Ｅｖａｌｕａｔｉｎｇ  ２−ＤＮＦ  Ｆｏｒｍｕｌａｓ  ｏｎ  Ｃｉｐｈｅｒｔｅｘｔｓ”，  ＴＣＣ０５，  ２００５．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の類似検索では、共通鍵や公開鍵を利用した暗号化において、サーバ装置が暗号化した状態のまま類似検索を行う。この暗号化した特徴量について、復号するときの鍵を持つのは端末装置であるため、サーバ装置が送信した類似値を、端末装置が受信して復号を行い、類似値と端末装置が参照特徴量及び特徴量から算出した距離とが一致しているか否かの判断をする。一致していない場合には、再度同様の動作を行う。このため、端末装置とサーバ装置との通信回数の増加や、端末装置が暗号化したデータを復号する際の処理計算が増加する。
【０００６】
本発明は、このような課題を解決するものであり、端末装置の処理計算が軽量化し、かつ、サーバ装置と端末装置との通信回数が減少する類似情報検索方法、サーバ装置及び類似情報検索システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、類似情報検索方法の一態様は、端末装置から提供される情報に基づいて、サーバ装置が類似情報を検索して前記端末装置に提供する類似情報検索方法であって、前記サーバ装置が、前記端末装置から、暗号化された特徴量である暗号化特徴量を受信する特徴量受信ステップと、前記サーバ装置が、前記端末装置から、類似の度合を示す類似値を暗号化した情報である暗号化類似値を受信する類似値受信ステップと、前記サーバ装置が、複数の参照特徴量の少なくとも一つについての前記参照特徴量と、前記サーバ装置で受信された前記暗号化特徴量との類似の度合を示す暗号化距離を算出する距離算出ステップと、前記サーバ装置が、算出された前記暗号化距離が前記サーバ装置で受信された前記暗号化類似値とが一致するか否かを判定する判定ステップと、前記サーバ装置が、前記判定ステップで一致すると判定された場合に、前記暗号化距離の算出に用いられた前記参照特徴量に対応するデータである参照データを暗号化した情報である暗号化参照データを生成し、生成した前記暗号化参照データを前記端末装置に送信する参照データ送信ステップとを含む。
【０００８】
また、本発明の一態様に係る類似情報検索システムは、端末装置から提供される情報に基づいて、類似情報を検索して前記端末装置に提供するサーバ装置であって、前記端末装置から、暗号化された特徴量である暗号化特徴量を受信し、受信した前記暗号化特徴量と、複数の参照特徴量の少なくとも一つについての前記参照特徴量との類似の度合を示す暗号化距離を算出する暗号化距離計算部と、類似の度合を示す類似を暗号化した情報である暗号化類似値を受信し、受信した前記暗号化類似値が、算出された前記暗号化距離と一致するか否かを判定する参照類似値抽出部と、前記参照類似値抽出部で一致すると判定された場合に、前記暗号化距離の算出に用いられた前記参照特徴量に対応するデータである参照データを暗号化した情報である暗号化参照データを生成し、生成した前記暗号化参照データを前記端末装置に送信する暗号化参照データ抽出部とを備える。
【発明の効果】
【０００９】
本発明によれば、端末装置の処理計算が軽量化し、かつ、サーバ装置と端末装置との通信回数が減少することができる。
【図面の簡単な説明】
【００１０】
【図１Ａ】実施の形態１において情報管理システムが提供するサービスの全体像を示すブロック図である。
【図１Ｂ】実施の形態１において機器メーカがデータセンタ運営会社に該当する例を示すブロック図である。
【図１Ｃ】実施の形態１において機器メーカ及び管理会社の両者又はいずれか一方がデータセンタ運営会社に該当する例を示すブロック図である。
【図２】実施の形態１において類似情報検索システムの全体構成を示すブロック図である。
【図３】実施の形態１においてユーザ端末装置の構成を示すブロック図である。
【図４】実施の形態１においてデータ演算装置の構成を示すブロック図である。
【図５Ａ】実施の形態１においてデータ演算装置における参照特徴量格納部の例を示す図である。
【図５Ｂ】実施の形態１においてデータ演算装置における参照データ格納部の例を示す図である。
【図６】実施の形態１において類似情報検索システムの動作を示すシーケンス図である。
【図７Ａ】実施の形態１においてユーザ端末とデータ装置との間のデータフォーマット例を示す図である。
【図７Ｂ】実施の形態１においてユーザ端末とデータ装置との間のデータフォーマット例を示す図である。
【図８Ａ】実施の形態１においてユーザ端末装置の表示の例を示す図である。
【図８Ｂ】実施の形態１においてユーザ端末装置の表示の例を示す図である。
【図９】実施の形態１においてユーザ端末装置が表示する時間と特徴量との算出例を示すグラフである。
【図１０】実施の形態２においてユーザ端末装置の構成を示すブロック図である。
【図１１】実施の形態２においてデータ演算装置の構成を示すブロック図である。
【図１２】実施の形態２において類似情報検索システムの動作を示すシーケンス図である。
【図１３】その他の変形例において統計化参照データを取得する場合のデータ演算装置の構成を示すブロック図である。
【図１４】サービスの類型１（自社データセンタ型クラウドサービス）における情報管理システムが提供するサービスの全体像を示すブロック図である。
【図１５】サービスの類型２（ＩａａＳ利用型クラウドサービス）における情報管理システムが提供するサービスの全体像を示すブロック図である。
【図１６】サービスの類型３（ＰａａＳ利用型クラウドサービス）における情報管理システムが提供するサービスの全体像を示すブロック図である。
【図１７】サービスの類型４（ＳａａＳ利用型クラウドサービス）における情報管理システムが提供するサービスの全体像を示すブロック図である。
【発明を実施するための形態】
【００１１】
（発明の基礎となった知見）
暗号化したまま類似検索する方法がある。しかしながら、この場合サーバ側は暗号化した距離の計算は行うものの、対応する秘密鍵を持たないので指定した類似値に合致しているかどうかの判定はできなかった。判定を行うためにはユーザ端末の秘密鍵を用いた復号が必要であり、ユーザ端末で実現するには、計算量や通信量が大きくなっていた。
【００１２】
このような課題を解決するために、類似情報検索方法は、端末装置から提供される情報に基づいて、サーバ装置が類似情報を検索して前記端末装置に提供する類似情報検索方法であって、前記サーバ装置が、前記端末装置から、暗号化された特徴量である暗号化特徴量を受信する特徴量受信ステップと、前記サーバ装置が、前記端末装置から、類似の度合を示す類似値を暗号化した情報である暗号化類似値を受信する類似値受信ステップと、前記サーバ装置が、複数の参照特徴量の少なくとも一つについての前記参照特徴量と、前記サーバ装置で受信された前記暗号化特徴量との類似の度合を示す暗号化距離を算出する距離算出ステップと、前記サーバ装置が、算出された前記暗号化距離が前記サーバ装置で受信された前記暗号化類似値とが一致するか否かを判定する判定ステップと、前記サーバ装置が、前記判定ステップで一致すると判定された場合に、前記暗号化距離の算出に用いられた前記参照特徴量に対応するデータである参照データを暗号化した情報である暗号化参照データを生成し、生成した前記暗号化参照データを前記端末装置に送信する参照データ送信ステップとを含む。
【００１３】
この構成によれば、サーバ装置が暗号化特徴量と暗号化類似値とを端末装置から受信し、サーバ装置が暗号化特徴量と暗号化類似値とから暗号化距離を算出する。そして、サーバ装置は、暗号化距離が暗号化類似値と一致していれば、暗号化参照データを生成し、端末装置に送信する。このため、端末装置が暗号化距離と暗号化類似値とが一致するか否かを判断する場合に比べ、この類似情報検索方法では、端末装置の処理計算が減少する。
【００１４】
また、このサーバ装置では、暗号化距離と暗号化類似値とが一致する場合に、暗号化参照データを生成し、生成した暗号化参照データを端末装置に送信する。このため、端末装置が暗号化距離と暗号化類似値とが一致するか否かを判断する場合に比べ、サーバ装置と端末装置との通信回数が増加し難い。
【００１５】
したがって、この類似情報検索方法では、端末装置の処理計算が軽量化し、かつ、サーバ装置と端末装置との通信回数が減少することができる。
【００１６】
また、この類似情報検索方法では、前記類似値受信ステップでは、複数の類似の度合を示す複数の類似値のそれぞれを暗号化した情報である複数の暗号化類似値を受信し、前記サーバ装置は、受信した前記複数の暗号化類似値のそれぞれについて、前記距離算出ステップ、前記判定ステップ及び前記参照データ送信ステップを実行する。
【００１７】
この構成によれば、端末装置の処理計算がより軽量化し、かつ、サーバ装置と端末装置との通信回数がより減少する。
【００１８】
また、この類似情報検索方法では、前記暗号化距離は、前記参照特徴量と前記暗号化特徴量とのユークリッド距離であってもよい。
【００１９】
この構成によれば、この類似情報検索方法をより具体化することができる。
【００２０】
また、この類似情報検索方法では、さらに、前記サーバ装置が、前記端末装置が保持する秘密鍵を所定関数で変換した情報である鍵変換値を受信する鍵受信ステップを含み、前記類似値受信ステップでは、前記暗号化類似値として、前記類似値を前記所定関数で変換した情報である変換類似値を受信し、前記判定ステップでは、前記判定として、前記鍵変換値を用いて前記暗号化距離を復号することで変換距離を生成し、生成した前記変換距離が前記変換類似値と一致するか否かを判定する。
【００２１】
この構成によれば、乱数を含んだ確率的暗号について、ユーザが同一の情報に基づいて検索を行っても、暗号化された特徴量が同じ値にならない。このため、この類似値検索方法によれば、ユーザ端末装置からデータ演算装置への送信上及びデータ演算装置内でも、ユーザが検索した情報の秘匿性をより高めることができる。その結果、確率的暗号を用いることで暗号文の頻度などからの解析が困難となり、安全性を向上させることができる。
【００２２】
また、この類似情報検索方法では、前記所定関数は、一方向性関数である。
【００２３】
この構成によれば、復号するための鍵は一方向性関数を用いて変換するため、サーバ装置は鍵そのものを求めることは困難である。このため、類似情報検索方法では、ユーザにおける情報の秘匿性が守られ易い。
【００２４】
また、この類似情報検索方法では、さらに、前記端末装置が、データを取得し、取得したデータから、前記データの特徴を示す特徴量を算出し、算出した特徴量を暗号化することで前記暗号化特徴量を生成し、生成した前記暗号化特徴量を前記サーバ装置に送信する特徴量送信ステップと、前記端末装置が、類似の度合を示す類似値を設定し、設定した類似値を暗号化することで前記暗号化類似値を生成し、生成した前記暗号化類似値を前記サーバ装置に送信する類似値送信ステップと、前記端末装置が、前記サーバ装置から前記暗号化参照データを受信し、受信した前記暗号化参照データを復号する復号ステップとを含む。
【００２５】
この構成によれば、端末装置は、特徴量送信ステップ、類似値送信ステップ及び復号ステップを行うと、サーバ装置から類似情報を得ることができる。このため、サーバ装置が参照特徴量と暗号化特徴量との暗号化距離の算出を行い、サーバ装置からの暗号化類似値を受け取った端末装置が復号を行って暗号化類似値が一致するか否かの判断をする場合に比べ、この類似情報検索方法では、端末装置の処理計算が減少する。つまり、端末装置は、暗号化距離と暗号化類似値とが一致するか否かの判断を行わない。このため、端末装置の処理計算が減少し、かつ、サーバ装置と端末装置との通信回数が減少することができる。
【００２６】
また、この類似情報検索方法では、前記暗号化特徴量、前記暗号化類似値及び前記参照特徴量は、準同型暗号方式で暗号化されている。
【００２７】
この構成によれば、準同型暗号方式は、サーバ装置では復号できない暗号方式であり、このときに用いる鍵は、端末装置の公開鍵である。このため、端末装置からサーバ装置への送信上及びサーバ装置内でも、ユーザが検索した情報の秘匿性を高めることができる。
【００２８】
このような課題を解決するために、サーバ装置は、端末装置から提供される情報に基づいて、類似情報を検索して前記端末装置に提供するサーバ装置であって、前記端末装置から、暗号化された特徴量である暗号化特徴量を受信し、受信した前記暗号化特徴量と、複数の参照特徴量の少なくとも一つについての前記参照特徴量との類似の度合を示す暗号化距離を算出する距離算出計算部と、類似の度合を示す類似値を暗号化した情報である暗号化類似値を受信し、受信した前記暗号化類似値が、算出された前記暗号化距離と一致するか否かを判定する参照類似値抽出部と、前記参照類似値抽出部で一致すると判定された場合に、前記暗号化距離の算出に用いられた前記参照特徴量に対応するデータである参照データを暗号化した情報である暗号化参照データを生成し、生成した前記暗号化参照データを前記端末装置に送信する暗号化参照データ抽出部とを備える。
【００２９】
また、このような課題を解決するために、この類似情報検索システムは、端末装置と、前記端末装置から提供される情報に基づいて、類似情報を検索して前記端末装置に提供する請求項７記載のサーバ装置とを備える。
【００３０】
この構成によっても、サーバ装置が暗号化特徴量と暗号化類似値とを端末装置から受信し、サーバ装置が暗号化特徴量と暗号化類似値とから暗号化距離を算出する。そして、サーバ装置は、暗号化距離が暗号化類似値と一致していれば、暗号化参照データを生成し、端末装置に送信する。このため、端末装置が暗号化距離と暗号化類似値とが一致するか否かを判断する場合に比べ、類似情報検索方法では、端末装置の処理計算が減少する。
【００３１】
また、このサーバ装置では、暗号化距離と暗号化類似値とが一致する場合に、暗号化参照データを生成し、生成した暗号化参照データを端末装置に送信するだけである。このため、サーバ装置と端末装置との通信回数が増加し難い。
【００３２】
したがって、このサーバ装置及び類似情報検索システムでは、端末装置の処理計算が減少し、かつ、サーバ装置と端末装置との通信回数が減少することができる。
【００３３】
なお、以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、形状、構成要素、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また全ての実施の形態において、各々の内容を組み合わせることも出来る。
【００３４】
以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、形状、構成要素、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また全ての実施の形態において、各々の内容を組み合わせることも出来る。
【００３５】
（提供するサービスの全体像）
まず、本実施の形態における情報管理システムが提供するサービスの全体像について、図１Ａ、図１Ｂ及び図１Ｃを用いて説明する。
【００３６】
図１Ａは、実施の形態１において情報管理システムが提供するサービスの全体像を示すブロック図である。図１Ｂは、実施の形態１において機器メーカがデータセンタ運営会社に該当する例を示すブロック図である。図１Ｃは、実施の形態１において機器メーカ及び管理会社の両者又はいずれか一方がデータセンタ運営会社に該当する例を示すブロック図である。
【００３７】
情報管理システムは、グループ１０００、データセンタ運営会社１１１０及びサービスプロバイダ１１２０を備える。
【００３８】
グループ１０００は、例えば企業、団体又は家庭などであり、その規模を問わない。グループ１０００は、第１の機器及び第２の機器を含む複数の機器１１０１と、ホームゲートウェイ１１０２とを有する。複数の機器１１０１は、インターネットと接続可能な機器（例えば、スマートフォン、パーソナルコンピュータ（ＰＣ）又はテレビなど）、及びそれ自身ではインターネットと接続不可能な機器（例えば、照明、洗濯機又は冷蔵庫など）を含む。複数の機器１１０１は、それ自身ではインターネットと接続不可能であっても、ホームゲートウェイ１１０２を介してインターネットと接続可能となる機器を含んでもよい。また、ユーザ１０１０は、グループ１０００内の複数の機器１１０１を使用する。
【００３９】
データセンタ運営会社１１１０は、クラウドサーバ１１１１を備える。クラウドサーバ１１１１は、インターネットを介して様々な機器と連携する仮想化サーバである。クラウドサーバ１１１１は、主に通常のデータベース管理ツールなどで扱うことが困難な巨大なデータ（ビッグデータ）などを管理する。データセンタ運営会社１１１０は、データの管理、クラウドサーバ１１１１の管理、及びそれらを行うデータセンタの運営などを行っている。データセンタ運営会社１１１０が行っている役務の詳細については後述する。
【００４０】
ここで、データセンタ運営会社１１１０は、データの管理又はクラウドサーバ１１１１の管理のみを行っている会社に限らない。例えば、図１Ｂに示すように、複数の機器１１０１のうちの一つの機器を開発又は製造している機器メーカが、データの管理又はクラウドサーバ１１１１の管理などを行っている場合は、機器メーカがデータセンタ運営会社１１１０に該当する。また、データセンタ運営会社１１１０は一つの会社に限らない。例えば、図１Ｃに示すように、機器メーカ及び管理会社が共同又は分担してデータの管理又はクラウドサーバ１１１１の管理を行っている場合は、両者又はいずれか一方がデータセンタ運営会社１１１０に該当する。
【００４１】
サービスプロバイダ１１２０は、サーバ１１２１を備える。ここで言うサーバ１１２１とは、その規模は問わず、例えば、個人用ＰＣ内のメモリなども含む。また、サービスプロバイダ１１２０がサーバ１１２１を備えていない場合もある。
【００４２】
なお、上記の情報管理システムにおいて、ホームゲートウェイ１１０２は必須ではない。例えば、クラウドサーバ１１１１が全てのデータ管理を行っている場合などは、ホームゲートウェイ１１０２は不要となる。また、情報管理システムでは、家庭内の全ての機器がインターネットに接続されている場合のように、それ自身ではインターネットと接続不可能な機器は存在しない場合もある。
【００４３】
次に、上記の情報管理システムにおける情報の流れを説明する。
【００４４】
まず、グループ１０００の第１の機器又は第２の機器は、各ログ情報をデータセンタ運営会社１１１０のクラウドサーバ１１１１にそれぞれ送信する。クラウドサーバ１１１１は、第１の機器又は第２の機器のログ情報を集積する（図１Ａの矢印１１３１）。ここで、ログ情報とは、複数の機器１１０１の例えば運転状況又は動作日時などを示す情報である。例えば、ログ情報は、テレビの視聴履歴、レコーダーの録画予約情報、洗濯機の運転日時、洗濯物の量、冷蔵庫の開閉日時、及び冷蔵庫の開閉回数などを含むが、これらの情報に限らず、種々の機器から取得が可能な種々の情報を含んでもよい。なお、ログ情報は、インターネットを介して複数の機器１１０１自体から直接クラウドサーバ１１１１に提供されてもよい。また、ログ情報は、複数の機器１１０１から一旦ホームゲートウェイ１１０２に集積され、ホームゲートウェイ１１０２からクラウドサーバ１１１１に提供されてもよい。
【００４５】
次に、データセンタ運営会社１１１０のクラウドサーバ１１１１は、集積したログ情報を一定の単位でサービスプロバイダ１１２０に提供する。ここで、一定の単位とは、データセンタ運営会社１１１０が集積した情報を整理してサービスプロバイダ１１２０に提供することの出来る単位でもよいし、サービスプロバイダ１１２０が要求する単位でもよい。また、一定の単位で提供するとしているが、一定の単位でなくてもよく、状況に応じて提供する情報量が変化してもよい。ログ情報は、必要に応じてサービスプロバイダ１１２０が保有するサーバ１１２１に保存される（図１Ａの矢印１１３２）。
【００４６】
そして、サービスプロバイダ１１２０は、ログ情報をユーザに提供するサービスに適合する情報に整理し、ユーザに提供する。情報が提供されるユーザは、複数の機器１１０１を使用するユーザ１０１０でもよいし、外部のユーザ１０２０でもよい。ユーザ１０１０，１０２０への情報を提供する方法としては、例えば、サービスプロバイダ１１２０から直接ユーザ１０１０，１０２０へ情報が提供されてもよい（図１Ａの破線で示す矢印１１３３，１１３４）。また、ユーザ１０１０への情報を提供する方法としては、例えば、データセンタ運営会社１１１０のクラウドサーバ１１１１を再度経由して、ユーザ１０１０に情報が提供されてもよい（図１Ａの矢印１１３５，１１３６）。また、データセンタ運営会社１１１０のクラウドサーバ１１１１は、ログ情報をユーザ１０２０に提供するサービスに適合する情報に整理し、サービスプロバイダ１１２０に提供してもよい。
【００４７】
なお、ユーザ１０１０は、ユーザ１０２０と異なっていても同一であってもよい。
【００４８】
（実施の形態１）
ここでは、本発明の実施の形態として、本発明に関わる類似情報検索システムについて図面を参照しながら説明する。
【００４９】
１．１  類似情報検索システムの全体構成
図２は、実施の形態１において類似情報検索システムの全体構成を示すブロック図である。
【００５０】
図２に示すように、類似情報検索システム１０は、データ演算装置２００に対して検索を要求するユーザ端末装置１００（端末装置の一例）と、ユーザ端末装置１００から提供される情報に基づいて、類似情報を検索してユーザ端末装置１００に提供するデータ演算装置２００（サーバ装置の一例である）とを備える。
【００５１】
ユーザ端末装置１００とデータ演算装置２００とは、それぞれ１つずつ備えているが、それぞれ複数であり、例えば複数のユーザ端末装置１００が１つのデータ演算装置２００に接続されてもよいし、複数のデータ演算装置２００が１つのユーザ端末装置１００に接続されてもよい。また、各装置間の接続形態は、有線のインターネット線、無線通信、専用通信などのいずれであってもよい。なお、この類似情報検索システム１０では、リアルタイムでの通信が必ずしも必要ではなく、例えば、ユーザ端末装置１００は、センシングした情報や類似検索の要求をある程度集めてから、合わせてデータ演算装置に送信してもよい。
【００５２】
１．２  ユーザ端末装置
図３は、実施の形態１においてユーザ端末装置の構成を示すブロック図である。
【００５３】
図３に示すように、ユーザ端末装置１００は、類似情報を検索するデータ演算装置に対して検索を要求する。ユーザ端末装置１００は、センシング部１０１、特徴量算出部１０２、特徴量暗号部１０３、類似値設定部１０４、類似値暗号部１０５、参照データ利用部１０６、復号部１０７及び鍵格納部１０８を有している。
【００５４】
特徴量暗号部１０３、類似値暗号部１０５及び復号部１０７は、それぞれデータ演算装置２００（図４に示す）の、Ａ，Ｂ，Ｃで図示する箇所と接続されるものとする。ユーザ端末装置１００は、例えば、ユーザの血圧や顔色、ＣＴスキャン情報などユーザに関する情報をセンシングし、取得されたデータの特徴を示す特徴量を抽出する。そして、データ演算装置は、この特徴量に類似した症状の参照データ（後述する、参照特徴量に対応するデータ）をデータ演算装置に要求し、得られた参照データをユーザへのサービスに利用する。なお、ユーザ端末装置１００がユーザに関する情報をセンシングするにあたっては、ユーザより所定の同意を得て行うものとする。同意を取得するなどの手続きについては、本発明の範囲外とする。
【００５５】
１．２．１  センシング部
センシング部１０１は、ユーザをセンシングする。センシングしたデータは、例えばユーザの血圧や体温などのバイタルデータや、ユーザの顔画像やエコーやＣＴスキャンによるデータなどの画像データ、受け答えの声のデータなどである。なお、センシングしたデータは、ユーザの位置情報（ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）情報）や買い物の履歴情報であってもよい。
【００５６】
１．２．２  特徴量算出部
特徴量算出部１０２は、センシング部１０１で取得したデータから特徴量を算出する。ここで算出した特徴量は、例えば、顔などの画像情報における特徴的なパラメータの主成分や、ある領域の位置や面積や幅などのデータであってよい。また、特徴量は、履歴情報からその時間軸に対応した傾向を例えば多項式に変換し、その係数であってもよい。さらに、特徴量は、数値であっても、数値を並べたベクトル値であってもよい。
【００５７】
１．２．３  特徴量暗号部
特徴量暗号部１０３は、特徴量算出部１０２で算出したデータの特徴を示す特徴量を暗号化することで、暗号化特徴量を生成する。特徴量暗号部１０３は、生成した暗号化特徴量をデータ演算装置に送信する。ここでは、暗号化を行う方法は、データ演算装置にて特徴量を暗号化したまま、類似情報の検索のための演算が可能となる準同型暗号を用いるものとする。データ演算装置に特徴量を秘匿する場合には、後述の鍵格納部１０８に格納されているユーザ端末装置１００の公開鍵を用いるものとする。
【００５８】
１．２．４  類似値設定部
類似値設定部１０４は、検索する場合における類似の度合を示す類似値を設定する。ここでの類似値は、データ演算装置において、特徴量とどの程度近いものを検索するのかを示す値である。例えば、データ演算装置は、特徴量と参照特徴量との間のユークリッド距離を算出し、その値がある値Ｄ未満であるものを検索する場合に、ある値Ｄを類似値として設定する。あるいは、ある値Ｄの類似値である０，１、・・・、Ｄ−１の値をすべて設定してもよい。また、あるいは、類似値は、特徴量のベクトル値ごとに設定してもよい。
【００５９】
１．２．５  類似値暗号部
類似値暗号部１０５は、類似の度合を示す類似値を暗号化することで暗号化類似値を生成する。類似値暗号部１０５は、生成した暗号化類似値をデータ演算装置に送信する。暗号化類似値は、データ演算装置において、暗号化した状態で暗号化特徴量との類似値を判定し、判定の条件に合う参照ＩＤを抽出するために用いる。
【００６０】
１．２．６  復号部
復号部１０７は、ユーザ端末装置１００による類似情報の検索によって、暗号化特徴量と暗号化類似値とから生成された参照データ（類似検索の結果）を暗号化した情報である暗号化参照データをデータ演算装置から受信する。そして、復号部１０７は、受信した暗号化参照データを復号する。
【００６１】
１．２．７  参照データ利用部
参照データ利用部１０６は、復号部１０７において復号して得た参照データを利用する。例えば、参照データ利用部１０６は、参照データをユーザ端末にグラフや統計値として表示したり、これらの情報を用いて、ユーザへの生活習慣の改善アドバイスや、お勧めの食事などのアドバイスを行ったりする。
【００６２】
１．２．８  鍵格納部
鍵格納部１０８は、特徴量暗号部１０３、類似値暗号部１０５及び復号部１０７に用いる鍵を格納する。それぞれで用いる暗号方式および鍵は、同じであってもよく、異なっていてもよい。例えば、特徴量暗号部１０３と類似値暗号部１０５とで用いる鍵は、準同型暗号方式のユーザ端末装置１００の公開鍵（対応する秘密鍵も、本鍵格納部に格納）であって、復号部１０７で用いる鍵は、準同型暗号方式ではない公開鍵暗号方法のユーザ端末装置１００の秘密鍵（対応する公開鍵は、データ演算装置と共有）であってもよい。また、復号部１０７で用いる鍵は、特徴量暗号部１０３で用いた鍵と同じ準同型暗号のユーザ端末装置１００の秘密鍵としてもよい。
【００６３】
１．３  データ演算装置
図４は、実施の形態１においてデータ演算装置の構成を示すブロック図である。
【００６４】
図４に示すように、データ演算装置２００は、ユーザ端末装置から提供される情報に基づいて（ユーザからの検索の要求に応じて）類似情報を検索し、検索した情報をユーザ端末装置に提供する。データ演算装置２００は、参照特徴量格納部２０１、暗号化距離計算部２０２、参照類似値抽出部２０３、暗号化参照データ抽出部２０４及び参照データ格納部２０５を有している。暗号化距離計算部２０２、参照類似値抽出部２０３及び暗号化参照データ抽出部２０４は、それぞれユーザ端末装置１００（図３）の、図示する箇所と接続されるものとする。
【００６５】
１．３．１  参照特徴量格納部（図５Ａ）
図５Ａは、実施の形態１においてデータ演算装置における参照特徴量格納部の例を示す図である。図５Ａは、参照特徴量格納部２０１に格納されている参照特徴量の例を示している。
【００６６】
図５Ａに示すように、参照特徴量格納部２０１は、データ演算装置が類似検索を行う際に、検索の対象となる参照特徴量Ｙｉを格納する。なお、識別子ＩＤがｉに対応しており、参照特徴量をＹｉと記載する。識別子ＩＤと参照特徴量とは、参照特徴量格納部２０１に対で格納される。図５Ａでは、識別子ＩＤは１，２、・・とし、各識別子ＩＤに対応する各参照特徴量Ｙ１、Ｙ２、・・が格納されている。この例では、各参照特徴量は、ベクトル値であらわされているものとする。なお、参照特徴量は暗号化して格納しておいてもよい。
【００６７】
１．３．２  暗号化距離計算部
暗号化距離計算部２０２は、ユーザ端末装置から、準同型暗号方式で暗号化された特徴量である暗号化特徴量を受信する。暗号化距離計算部２０２は、受信した暗号化特徴量と、複数の参照特徴量の少なくとも一つについての参照特徴量との類似の度合を示す距離の暗号化した値を、特徴量と参照特徴量とを暗号化したまま算出する。つまり、暗号化距離計算部２０２は、ユーザ端末装置が生成した特徴量とデータ演算装置２００に格納している参照特徴量との距離を算出する。具体的には、暗号化距離計算部２０２は、ユーザ端末装置から受信した暗号化特徴量と、参照特徴量格納部２０１から受信した参照特徴量を暗号化して、それぞれ暗号化したまま距離を算出する。そして、暗号化距離計算部２０２は、この暗号化したままの距離（暗号化距離）を参照類似値抽出部２０３に出力する。距離は、参照特徴量と特徴量とのユークリッド距離である。なお、距離は、例えば、それぞれの特徴量が数値の場合では差の絶対値であってもよいし、それぞれの特徴量が数値を要素とするベクトルの場合では対応するベクトル要素の差の絶対値を加算したものであってもよい。また、暗号化距離は、それぞれのベクトル要素を積和したコサイン類似度であってもよい。具体的には、特徴量と参照特徴量とが数値を要素とするベクトルにおいて、特徴量が（ｘ１，ｘ２，ｘ３，・・ｘｎ)、参照特徴量が（ｙ１１，ｙ１２，ｙ１３，・・ｙ１ｎ)の場合に、ベクトル要素の差の絶対値の加算することによって得た距離はΣ｜ｘｉ−ｙ１ｉ｜で表され、コサイン類似度はΣｘｉ×ｙ１ｉで表され、ユークリッド距離はΣ（ｘｉ−ｙ１ｉ）＾２で表される。暗号化距離計算部２０２は、これらの計算を特徴量と参照特徴量とを暗号化したまま行うため、準同型暗号方式を用いる。準同型暗号方式の演算では、ベクトル値の要素ごとに計算をしてもよいし、計算を高速化するために、特徴量のベクトル値を多項式の各係数とした多項式にマッピングし、準同型暗号の距離計算を多項式間の演算で行ってもよい。
【００６８】
１．３．３  参照類似値抽出部
参照類似値抽出部２０３は、類似値暗号部から暗号化類似値を受信する。暗号化類似値とは、類似の度合を示す類似値を暗号化した情報である。なお、この暗号化した情報は、準同型暗号方式で暗号化されていることが好ましい。
【００６９】
参照類似値抽出部２０３は、類似値暗号部から受信した暗号化類似値と、暗号化距離計算部２０２から受信した暗号化距離とを用いて、距離と類似値とが一致しているか否かを判断する（暗号化距離と暗号化類似値とが一致することは、距離と類似値とが一致することと同一）。参照類似値抽出部２０３は、距離と類似値とが一致すると判断された場合に、対応する参照特徴量の識別子ＩＤを抽出する。参照類似値抽出部２０３は、暗号化類似値と暗号化距離とが一致すると判断しなかった場合に、対応する参照特徴量の識別子ＩＤを抽出しない。
【００７０】
１．３．４  参照データ格納部（図５Ｂ）
図５Ｂは、実施の形態１においてデータ演算装置における参照データ格納部の例を示す図である。図５Ｂは、参照データ格納部に格納されている識別子ＩＤと参照データの例を示している。
【００７１】
図５Ｂに示すように、参照データ格納部２０５は、データ演算装置が類似検索を行うために、検索の対象となる参照データを格納する。識別子ＩＤと参照データとは、参照データ格納部に対で格納される。参照データ格納部２０５には、識別子ＩＤを１、２、・・ｉとし、各識別子ＩＤに対応する各参照データＺ１、Ｚ２、・・Ｚｉが格納されている。なお、識別子ＩＤがｉに対応しており、参照データをＺｉと記載する。参照データとしては、例えば、血圧測定値の傾向を示す特徴量（図５Ａの参照特徴量）に対応した、病気や治療の履歴（図５Ｂの参照データ）や、ユーザの位置情報を示す特徴量（図５Ａの参照特徴量）に対応した、購入した商品の履歴（図５Ｂの参照データ）などであってもよい。図５Ｂの例では、識別子ＩＤが１のユーザは２０１３年１０月に脳梗塞で入院、識別子ＩＤが２のユーザは１９９９年２月に糖尿病で加療開始、といった病気や治療の履歴などを蓄積している。参照データは、暗号化して格納しておいてもよい。
【００７２】
１．３．５  暗号化参照データ抽出部
暗号化参照データ抽出部２０４は、参照類似値抽出部２０３で一致すると判定された場合に、暗号化参照データを生成する。暗号化参照データは、暗号化距離の算出に用いられた参照特徴量に対応するデータである参照データを暗号化した情報である。暗号化参照データ抽出部２０４は、生成した暗号化参照データをユーザ端末装置の復号部に送信する。具体的には、暗号化参照データ抽出部２０４は、参照類似値抽出部２０３において抽出した識別子ＩＤに対応した参照データを、参照データ格納部２０５から抽出し、これをユーザ端末装置の復号部に送信する。暗号化参照データ抽出部２０４は、送信時に通信路上のデータを保護するために暗号化して送信する。なお、暗号化の前に、参照データから対応するユーザを特定できないように匿名化してもよい。また、データ演算装置２００は、抽出した複数の参照データから、平均や頻度といった統計情報を求めて、これを暗号化してユーザ端末装置の復号部に送信してもよい。
【００７３】
１．４  類似情報検索システムの動作
１．４．１  動作概要
類似情報検索システム１０の動作を、図６を用いて説明する。
【００７４】
図６は、実施の形態１において類似情報検索システムの動作を示すシーケンス図である。
【００７５】
図６に示すように、ステップＳ１０１において、ユーザ端末装置１００は、センシング部で情報を取得する。
【００７６】
ステップＳ１０２において、特徴量算出部１０２は、センシング部がセンシングした情報から特徴量Ｘを算出する。例えば、特徴量Ｘは、次のように、要素が数値のｍ次ベクトルであってもよい。
【００７７】
Ｘ＝（ｘ１、ｘ２、・・、ｘｍ）
【００７８】
ステップＳ１０３において、類似値設定部は、検索する際の判定基準となる類似値を設定する。例えば、距離Ｄ未満となるデータを検索するもの場合は、類似値としての各距離０、１、２、・・、Ｄ−１を設定する。
【００７９】
ステップＳ１０４において、特徴量暗号部は、データを取得し、取得したデータから、データの特徴を示す特徴量を準同型暗号方式で暗号化することで暗号化特徴量を生成する。また、類似値暗号部は、類似値を準同型暗号方式で暗号化することで暗号化類似値を生成する。準同型暗号方式は、データ演算装置２００では復号できない暗号方式であり、このときに用いる鍵は、ユーザ端末装置１００の公開鍵である。
【００８０】
暗号化の関数をＥｎｃとすると、暗号化した暗号化特徴量は、
Ｅｘ＝（Ｅｎｃ（ｘ１），Ｅｎｃ（ｘ２），・・、Ｅｎｃ（ｘｍ））と表し、暗号化した暗号化類似値は、
Ｅｎｃ（０）、Ｅｎｃ（１）、・・、Ｅｎｃ（Ｄ−１）
と表すことができる。
【００８１】
ステップＳ１０５において、ユーザ端末装置１００は、暗号化特徴量と暗号化類似値とを示し、条件を満たす類似の参照データを要求する。つまり、暗号化特徴量は暗号化距離計算部に送信し、暗号化類似値は参照類似値抽出部に送信する（ステップＳ１０２、ステップＳ１０４及びステップＳ１０５が特徴量送信ステップの一例、ステップＳ１０３〜ステップＳ１０５が類似値送信ステップの一例）。
【００８２】
具体的には、暗号化距離計算部は、特徴量暗号部から、準同型暗号方式で暗号化された特徴量であるこの暗号化特徴量を受信する（特徴量受信ステップ）。また、参照類似値抽出部は、類似値暗号部から、類似の度合を示す類似値を暗号化した情報である暗号化類似値を受信する（類似値受信ステップ）。なお、暗号化した情報である暗号化類似値は、準同型暗号方式で暗号化されていることが好ましい。
【００８３】
また、類似値受信ステップでは、複数の類似の度合を示す複数の類似値のそれぞれを暗号化した情報である複数の暗号化類似値を受信してもよい。
【００８４】
ステップＳ１０６において、データ演算装置２００は、ｉ番目の識別子ＩＤの参照特徴量格納部から参照特徴量Ｙｉ＝（ｙｉ１、ｙｉ２、・・、ｙｉｍ）を選択する。
【００８５】
ステップＳ１０７において、暗号化距離計算部は、複数の参照特徴量の少なくとも一つについて、暗号化された参照特徴量と、データ演算装置２００で受信された暗号化特徴量との類似の度合を示す距離を暗号化したまま計算する。暗号化された参照特徴量は、
Ｅｙ＝（Ｅｎｃ（ｙｉ１），Ｅｎｃ（ｙｉ２），・・、Ｅｎｃ（ｙｉｍ））
と表すことができる。なお、複数の参照特徴量の少なくとも一つについて暗号化された参照特徴量は、準同型暗号方式で暗号化されていることが好ましい。
【００８６】
暗号化距離計算部は、特徴量Ｘと参照特徴量Ｙｉとの各ベクトルの差分を求めて加算し、準同型暗号方式の性質を用いて以下の暗号化距離ＥＤｉを計算する。
【００８７】
ＥＤｉ＝Ｅｎｃ（｜ｘ１−ｙｉ１｜＋｜ｘ２−ｙｉ２｜＋・・＋｜ｘｍ−ｙｉｍ｜）
【００８８】
ステップＳ１０７が距離算出ステップの一例である。なお、上記では、各ベクトル要素の差の絶対値を、累算したものを暗号化距離としている。また、なお、データ演算装置２００は、複数の暗号化類似値のそれぞれについて、距離算出ステップを実行してもよい。
【００８９】
ステップＳ１０８において、参照類似値抽出部は、暗号化距離と、暗号化類似値とを用いて条件を満たすか否かを確認する（判定ステップの一例）。つまり、判定ステップは、算出された暗号化距離がデータ演算装置２００で受信された暗号化類似値と一致するか否かを判定する。なお、データ演算装置２００は、複数の暗号化類似値のそれぞれについて、判定ステップを実行してもよい。
【００９０】
確認の仕方の例としては、暗号化距離ＥＤｉは、暗号化の関数Ｅｎｃ（０）、Ｅｎｃ（１）、・・、Ｅｎｃ（Ｄ−１）のいずれかと一致しているか否かを確認する。もし、一致していれば、暗号化距離ＥＤｉの暗号化の関数Ｅｎｃの中身、つまり特徴量と参照特徴量との距離である｜ｘ１−ｙｉ１｜＋｜ｘ２−ｙｉ２｜＋・・＋｜ｘｍ−ｙｉｍ｜が、類似値としての各距離０、１、・・、Ｄ−１のいずれかであることを意味する。
【００９１】
もし、いずれとも一致しなければ（満たさない）、次の識別子ＩＤを選択して、ステップＳ１０６に戻る。
【００９２】
もし、いずれかと一致していれば（満たす）、ステップＳ１０９において、参照類似値抽出部は、これら特徴量間の距離が類似値Ｄ未満であることにより、この時の識別子ＩＤを記録する。そして、ステップＳ１０６からステップＳ１０９を参照特徴量格納部の各識別子ＩＤに関して繰り返す。
【００９３】
ステップＳ１１０において、暗号化参照データ抽出部は、判定ステップで一致すると判定された場合に、暗号化距離の算出に用いられた参照特徴量に対応するデータである参照データを暗号化した情報である暗号化参照データを生成する。つまり、ステップＳ１１０において、暗号化参照データ抽出部は、ステップＳ１０９で抽出したすべての識別子ＩＤに対応した参照データを、参照データ格納部から抽出し、ユーザ端末装置１００の公開鍵を用いて暗号化する。
【００９４】
ステップＳ１１１において、暗号化参照データ抽出部は、生成した暗号化参照データをユーザ端末装置に送信する（ステップＳ１１０及びステップＳ１１１が参照データ送信ステップの一例）。なお、暗号化参照データ抽出部は、複数の暗号化類似値のそれぞれについて、参照データ送信ステップを実行してもよい。
【００９５】
ステップＳ１１２において、複合部は、暗号化参照データ抽出部から暗号化参照データを受信する。そして、ユーザ端末装置１００は、データ演算装置２００から受信した暗号化参照データを復号して参照データを利用する（復号ステップの一例）。
【００９６】
１．４．２  特徴量の算出例
ステップＳ１０２における特徴量の算出としては、例えば、センシング部で顔やエコー情報などの画像データを取得した場合に、その画像情報の特徴的なパラメータの主成分や、ある領域の位置や面積や幅などであってもよい。また、血圧情報を取得した場合に、ユーザ端末装置１００に別途格納されている今まで計測した血圧測定情報の履歴（図３には図示せず）から、その時間軸に対応した傾向を例えば多項式に変換し、その係数を特徴量としてもよい。時間軸に対応した傾向の多項式の例を、図９に示す。
【００９７】
図９は、実施の形態１においてユーザ端末装置が表示する時間と特徴量との算出例を示すグラフである。図９では、時間は、過去（例えば、１年前）から現在までの時間を表している。また、図９では、各特徴量の各測定値（×で示す）から近似曲線を求め、その近似曲線の係数を特徴量とする。
【００９８】
１．４．３  暗号化距離の算出例
ステップＳ１０７における暗号化距離の算出として、上記では、ユーザ端末装置１００で求めた特徴量と、データ演算装置２００における参照特徴量との対応するベクトル値の差分の累算を、暗号化したまま求めている。暗号化距離は、参照特徴量と暗号化特徴量とのユークリッド距離である。なお、この他に、暗号化距離の算出例は、例えば、コサイン類似度の算出方法であってもよい。ただし、この場合は、加算と乗算の両方を暗号化したまま求めることができる完全準同型暗号あるいは、乗算の回数に制限のある制限付き準同型暗号（サムホワット準同型暗号）を用いるとよい。
【００９９】
１．４．４  ユーザ端末装置とデータ演算装置間のデータ交換（図７Ａ、図７Ｂ）
図７Ａは、実施の形態１においてユーザ端末とデータ装置との間のデータフォーマット例を示す図である。図７Ｂは、実施の形態１においてユーザ端末とデータ装置との間のデータフォーマット例を示す図である。図７Ａ及び図７Ｂは、ステップＳ１０５及びステップＳ１１１で、ユーザ端末装置１００とデータ演算装置２００との間で交換されるデータのフォーマット例を示し、送信者の識別子ＩＤ、受信者の識別子ＩＤ、コマンド及びデータとからなる。なお、複数のユーザ端末装置１００と複数のデータ演算装置２００との間で並行してコマンドがやり取りされる場合は、ステップＳ１０５及びステップＳ１１１の対応をとるための、識別子を追加してもよい。
【０１００】
１．４．５  表示例（図８Ａ、図８Ｂ）
図８Ａは、実施の形態１においてユーザ端末装置の表示の例を示す図である。図８Ｂは、実施の形態１においてユーザ端末装置の表示の例を示す図である。
【０１０１】
図８Ａは、図６のステップＳ１０１におけるユーザ端末装置１００における表示の例である。ここでは、ユーザがＳｔａｒｔをクリック（選択）すると、センシング部が始動し、血圧の測定を行う。そして、ユーザは、最近の血圧の傾向から類似症例を検索するか否かを、「はい」、「取りやめ」のいずれかにより選択する。ユーザが「はい」をクリックして同意した場合は、ユーザ端末装置がその測定値と最近の履歴情報を用いて傾向から特徴量を算出する。また、ユーザが「取りやめ」をクリックして同意しない場合、ユーザ端末装置は、類似症例の検索を行うようにデータ演算装置に情報を送信しない。
【０１０２】
図８Ｂは、検索した参照類似データ（この場合は、血圧変動の傾向が類似のユーザの、その後発症した病気）を用いてユーザに食事や運動のアドバイスする場合の、表示の例である。ここでは、ユーザ端末装置は、ユーザの情報を基に、過去から現在までの血圧の傾向と、参照類似データと表示する。このユーザ端末装置では、ユーザの情報に基づいたアドバイスをおこなうことにより、より実感を伴ったアドバイスとなり、ユーザにとって有用となる。
【０１０３】
１．５  実施の形態１の効果
実施の形態１では、データ演算装置がユーザ端末装置から暗号化特徴量と暗号化類似値とを受信し、暗号化参照データ抽出部が暗号化参照データを抽出する。データ演算装置は、類似値Ｄ未満である暗号化参照データだけを抽出してユーザ端末装置に送信するため、ユーザ端末装置の計算量と、データ演算装置とユーザ端末装置との間の通信量とを削減することができる。また、ユーザ端末装置では、ユーザの意思に応じて柔軟に類似値を設定することができる。
【０１０４】
また、暗号化特徴量は、準同型暗号方式で暗号化されており、データ演算装置では復号できない。このため、この類似情報検索方法などでは、ユーザ端末装置からデータ演算装置への送信上及びデータ演算装置内でも、ユーザが検索した情報の秘匿性を高めることができる。
【０１０５】
（実施の形態２）
ここでは、本発明の実施の形態２として、本発明に関わる類似情報検索システムについて、図面を参照しながら説明する。実施の形態２と実施の形態１との相違点は次のとおりである。実施の形態１では、ステップＳ１０８において、参照類似値抽出部は、暗号化距離と暗号化類似値とが一致するか否かで判定した。これは、もとのデータが同一であれば、その時に限り、その暗号化されたデータも一致する決定的暗号方式を利用することを前提としている。一方で、実施の形態２では、暗号化時に乱数を生成し、乱数も含めて暗号化することにより、もとのデータが同一であってもその暗号化されたデータが同一の値にはならない、確率的暗号方式を用いる場合がある。確率的暗号方式を用いれば、暗号文の頻度などからの解析が困難となり、安全性を向上させることができる。その一方で、実施の形態１の決定的暗号方式において、暗号化時に乱数を用いた場合では、暗号化距離と暗号化類似値とが一致するか否かの判定を行うことができなくなる。
【０１０６】
実施の形態２では、確率的暗号方式を用いる場合について、暗号化したまま類似情報の検索のための演算が可能な方法について述べる。そのため、類似情報検索システムでは、ユーザ端末装置から、復号のための鍵を変換してデータ演算装置に渡し、データ演算装置において変換した距離を復号する。そして、類似情報検索システムでは、復号することにより乱数の要素が取り除かれ、変換距離と変換類似値とが一致するか否かの判定を行うことができる。また、復号のための鍵は、一方向性関数を用いて変換するため、データ演算装置が鍵そのものを求めることができない。以下では、主に実施の形態２と実施の形態１との異なる点について説明し、実施の形態１と実施の形態２と同一の構成については、同一の符号を付して構成に関する詳細な説明を省略する。
【０１０７】
２．１  ユーザ端末装置
図１０は、実施の形態２におけるユーザ端末装置の構成を示すブロック図である。
【０１０８】
図１０に示すように、このユーザ端末装置１００は、実施の形態１の構成に加え、鍵変換部１０９と類似値変換部１１０とを備えている。なお、図３と同一の符号が付与されている図１０のブロック図は、図３と同一の機能を有するため、説明を省略する。図１０における特徴量暗号部１０３、類似値変換部１１０、鍵変換部１０９及び復号部１０７は、それぞれ図１１のＤ，Ｅ，Ｆ，Ｇに接続しているものとする。
【０１０９】
２．１．１  鍵変換部
鍵変換部１０９は、鍵変換値を算出する。鍵変換値は、ユーザ端末装置１００の秘密鍵を一方向性関数を用いて変換した情報である。一方向性関数の例としては、秘密鍵をべきとするべき乗演算である。一方向性関数を用いた変換とは、秘密鍵からべき乗演算することは容易であるが、この反対である、べき乗値からそのべき値を求めることが難しいことを意味する。べき乗値からそのべき値を求めることは、離散対数領域でのＬＯＧ演算が困難であることに帰着する。
【０１１０】
２．１．２  類似値変換部
類似値変換部１１０は、鍵変換部１０９で用いたものと同一の一方向性関数を用いて設定した類似値を変換する。データ演算装置では、変換距離（暗号化距離と変換復号鍵とを用いて、復号することで求める変換領域での距離）、同様に、一方向性関数を用いて変換した類似値との一致により、類似しているか否かを判定する。
【０１１１】
２．２  データ演算装置（図１１）
図１１は、実施の形態２においてデータ演算装置の構成を示すブロック図である。
【０１１２】
図１１に示すように、データ演算装置２００は、実施の形態１の構成に加え、変換距離復号部２０６と、実施の形態１の参照類似値抽出部の代わりに参照変換類似値抽出部２０７とを備える。なお、図４と同一の符号が付与されている図１１のブロック図は、図４と同一の機能を有するため、説明を省略する。また、図１１のＤ，Ｅ，Ｆ，Ｇは、図１０の対応する箇所に接続している。
【０１１３】
２．２．１  変換距離復号部
変換距離復号部２０６は、変換領域において、鍵変換部がユーザ端末装置の秘密鍵を一方向性関数を用いて変換した情報である鍵変換値を用いて暗号化距離を復号することで得られる変換距離を求める（生成する）。ここで用いる準同型暗号方式は、確率的な方法であるため、暗号化距離に乱数要素が含まれている。しかし、変換復号鍵を用いて復号することで求めた変換距離は、乱数要素が除去されている。
【０１１４】
２．２．２  参照変換類似値抽出部
参照変換類似値抽出部２０７は、変換領域において、変換距離と変換された変換類似値とが一致しているか否かを判定する。参照変換類似値抽出部２０７は、変換距離が変換された変換類似値のいずれかと一致している場合に、変換距離が設定した変換類似値の条件を満足するものと判断して対応する識別子ＩＤを抽出する。いずれとも一致しない場合は、対応する識別子ＩＤを抽出しない。
【０１１５】
２．３  類似情報検索システムの動作
実施の形態２における類似情報検索システム１０の動作を、図１２に示すシーケンス図を用いて説明する。
【０１１６】
図１２は、実施の形態２において類似情報検索システムの動作を示すシーケンス図である。
【０１１７】
図１２に示すように、ステップＳ１０１において、ユーザ端末装置１００は、センシング部で情報を取得する。
【０１１８】
ステップＳ１０２において、特徴量算出部１０２は、センシング部がセンシングした情報から特徴量Ｘを算出する。例えば、特徴量Ｘは次のように、各要素が数値のｍ次ベクトルであってもよい。
【０１１９】
Ｘ＝（ｘ１、ｘ２、・・、ｘｍ）
【０１２０】
ステップＳ１０３において、類似値設定部は、検索する際の判定基準となる類似値を決定する。例えば、距離Ｄ未満となるデータを検索するもの場合は、類似値として各距離０、１、２、・・、Ｄ−１を設定する。
【０１２１】
ステップＳ１０４において、特徴量暗号部は、センシング部から特徴量算出部を介してデータを取得し、その取得したデータから、データの特徴を示す特徴量を準同型暗号方式で暗号化することで暗号化特徴量を生成する。また、類似値変換部は、類似値の一方向性関数値を求める。つまり、類似値変換部は、暗号化類似値として類似値を準同型暗号方式で変換することで変換類似値を生成する。準同型暗号方式は、データ演算装置２００では復号できない暗号方式である。このときに用いる鍵は、ユーザ端末装置１００の公開鍵とする。実施の形態２では、実施の形態１と異なり、準同型暗号方式が乱数要素を含めた確率的暗号方式とする。
【０１２２】
ここで、暗号化の関数をＥｎｃ１とすると、暗号化特徴量は、
Ｅ１ｘ＝（Ｅｎｃ１（ｘ１），Ｅｎｃ１（ｘ２），・・、Ｅｎｃ１（ｘｍ））
と表す。また、類似値を変換するための一方向性関数をＦとすると、変換類似値（一方向性関数値）は、
Ｆ（０）、Ｆ（１）、・・、Ｆ（Ｄ−１）
と表すことができる。
【０１２３】
ステップＳ１１３において、鍵変換部は、ユーザ端末装置１００が保持する秘密鍵ｓを所定関数で変換した情報である鍵変換値Ｆ（ｓ）を算出する。所定関数は、一方向性関数である。鍵変換部は、必要に応じて秘密鍵ｓの演算値（例えば、ｓのべき乗値）である鍵変換値を算出する。
【０１２４】
ステップＳ１０５において、ユーザ端末装置１００は、暗号化特徴量、変換類似値及び鍵変換値を示し、条件を満たす類似の参照データを要求する。つまり、ユーザ端末装置１００が暗号化特徴量、変換類似値及び鍵変換値をデータ演算装置２００に送信し、データ演算装置２００がこれらを受信する（ステップＳ１０２、ステップＳ１０４、ステップＳ１１３及びステップＳ１０５が特徴量受信ステップの一例、ステップＳ１０３、ステップＳ１０４、ステップＳ１１３及びステップＳ１０５が類似値受信ステップの一例、ステップＳ１１３及びステップＳ１０５が鍵受信ステップの一例）。
【０１２５】
具体的には、特徴量暗号部は、暗号化特徴量を暗号化距離計算部に送信し、暗号化距離計算部が受信する（特徴量受信ステップの一例）。また、類似値変換部は、変換類似値を変換距離復号部に送信し、変換距離復号部が受信する（類似値受信ステップの一例）。さらに、鍵変換部は、鍵変換値を参照変換類似値抽出部に送信し、参照変換類似値抽出部が受信する（鍵受信ステップの一例）。
【０１２６】
また、類似値受信ステップでは、データ演算装置２００は、暗号化類似値として、複数の類似の度合を示す複数の類似値のそれぞれを一方向性関数で暗号化した情報である複数の変換類似値を受信してもよい。
【０１２７】
ステップＳ１０６において、データ演算装置２００は、ｉ番目の識別子ＩＤの参照特徴量格納部から参照特徴量Ｙｉ＝（ｙｉ１、ｙｉ２、・・、ｙｉｍ）を選択する。
【０１２８】
ステップＳ１０７において、暗号化距離計算部は、暗号化の関数Ｅｎｃ１で暗号化された参照特徴量と暗号化特徴量との距離を暗号化したまま計算する（距離算出ステップの一例）。暗号化された参照特徴量は、
Ｅ１ｙ＝（Ｅｎｃ１（ｙｉ１），Ｅｎｃ１（ｙｉ２），・・、Ｅｎｃ１（ｙｉｍ））
と表すことができる。これにより、暗号化距離計算部は、特徴量Ｘと参照特徴量Ｙｉの各ベクトルの差分を求めて加算すれば、準同型暗号方式の性質を用いて暗号化距離ＥＤ１ｉを計算することができる。
【０１２９】
ＥＤ１ｉ＝Ｅｎｃ１（｜ｘ１−ｙｉ１｜＋｜ｘ２−ｙｉ２｜＋・・＋｜ｘｍ−ｙｉｍ｜）
【０１３０】
なお、上記では、各ベクトル要素の差の絶対値を、累算したものを距離としている。
【０１３１】
ステップＳ１１４において、変換距離復号部は、鍵変換値を用いて、変換領域で暗号化距離を復号する。復号の結果、
Ｆ（｜ｘ１−ｙｉ１｜＋｜ｘ２−ｙｉ２｜＋・・＋｜ｘｍ−ｙｉｍ｜）を求める（この値を、変換距離と呼ぶ）。なお、暗号化距離ＥＤ１ｉは、暗号化時に生成した乱数を含んでおり、暗号化の関数Ｅｎｃ１は入力が同じであっても出力は一致しない。一方、一方向性関数Ｆは、入力が同一の場合に、出力が一致する。
【０１３２】
ステップＳ１０８において、変換距離復号部は、鍵変換値を用いて暗号化距離を復号することで変換距離を生成する。また、参照変換類似値抽出部は、生成した変換距離が変換類似値と一致するか否かを判定する（ステップＳ１０８が判定ステップの一例）。つまり、参照変換類似値抽出部は、変換距離が変換類似値Ｆ（０）、Ｆ（１）、・・、Ｆ（Ｄ−１）のいずれかと一致しているかを確認する。もし、一致していれば、一方向性関数Ｆの中身、つまり特徴量と参照特徴量との距離である｜ｘ１−ｙｉ１｜＋｜ｘ２−ｙｉ２｜＋・・＋｜ｘｍ−ｙｉｍ｜が各距離０、１、・・、Ｄ−１のいずれかであることを意味する。
【０１３３】
もし、いずれとも一致しなければ（満たさない）、参照変換類似値抽出部が次の識別子ＩＤを選択して、ステップＳ１０６に戻る。
【０１３４】
もし、いずれかと一致していれば（満たす）、ステップＳ１０９において、参照変換類似値抽出部は、この時の識別子ＩＤを記録する。そして、ステップＳ１０６からステップＳ１０９を参照特徴量格納部の各識別子ＩＤに関して繰り返す。
【０１３５】
ステップＳ１１０において、暗号化参照データ抽出部は、Ｓ１０９で抽出したすべての識別子ＩＤに対応した参照データを、参照データ格納部から抽出し、ユーザ端末装置１００の公開鍵を用いて暗号化する。つまり、暗号化参照データ抽出部は、ステップＳ１０８（判定ステップ）で一致すると判定された場合に、暗号化距離の算出に用いられた参照特徴量に対応するデータである参照データを暗号化した情報である暗号化参照データを生成する。
【０１３６】
ステップＳ１１１において、暗号化参照データ抽出部は、生成した暗号化参照データをユーザ端末装置１００に送信する（ステップＳ１１０及びステップＳ１１１が参照データ送信ステップの一例）。
【０１３７】
ステップＳ１１２において、復号部は、暗号化特徴量と暗号化類似値とから生成された参照データを暗号化した情報である暗号化参照データをデータ演算装置２００から受信する。そして、復号部は、暗号化参照データ抽出部から送信されてきた、暗号化参照データ（類似検索の結果）を受信し、これを復号して参照データを利用する（復号ステップの一例）。
【０１３８】
２．３．１  リングＬＷＥ（Ｌｅａｒｎｉｎｇ  Ｗｉｔｈ  Ｅｒｒｏｒｓ）の場合の具体的な計算例
上記Ｅｎｃ１の具体例として、リングＬＷＥを用いた準同型暗号方式の鍵生成、暗号化、復号、暗号文の乗算について以下、説明する。なお、リングＬＷＥについては、非特許文献１の第１３章に説明がある。
【０１３９】
鍵生成：ｎは２のべきとして構成し、ｐはｐ−１が２ｎの倍数であるような素数として環Ｒ、Ｒｐを構成する。ｐより小さい素数をｔとする。Ｒｔ＝（Ｚ／ｔＺ）[ｘ]／（ｘ＾ｎ＋１）を平文空間とする。なお、ここで、Ｚは整数を意味し、Ｒｔはｔ以下の整数を係数とする多項式を（ｘ＾ｎ＋１）で除した剰余体である。また、秘密鍵ｓを任意に選択し、ｅを任意に選択し、ａ１をＲｐから任意に選択する。そして、（ａ０＝−（ａ１×ｓ＋ｔ×ｅ），ａ１）を公開鍵とする。
【０１４０】
暗号化：平文ｍ（∈Ｒｔ）の暗号化は、公開鍵（ａ０、ａ１）を用いて以下の通りとする。ｅ１、ｅ２、ｅ３を任意に選び、
Ｅｎｃ１（ｍ）＝（ｍ＋ａ０×ｅ１＋ｔ×ｅ３、ａ１×ｅ１＋ｔ×ｅ２）
【０１４１】
復号：暗号文ｃ＝（ｃ０、ｃ１、・・、ｃｋ）の復号は、秘密鍵ｓを用いて以下の通りとする。
【０１４２】
Ｄｅｃ１（ｃ）＝ｃ０×ｓ＾０＋ｃ１×ｓ＾１＋ｃ２×ｓ＾２＋・・・＋ｃｋ×ｓ＾ｋ    （∈Ｒｑ）
Ｄｅｃ１（ｃ）は、ｍ＋ｔ×ｅ４  （ただし、｜ｔ×ｅ４｜＜ｐ／２）となる。
【０１４３】
暗号文の乗算：暗号文ｃ＝（ｃ０、ｃ１、・・、ｃｋ）と暗号文ｄ＝（ｄ０、ｄ１、・・、ｄｌ）との乗算は、ｈ＝（ｈ０、ｈ１、・・・、ｈｋ＋ｌ）とする。
【０１４４】
ここで、ｈｉは、
Σｃｊ×ｄｉ−ｊ＝ｃ０×ｄｉ＋ｃ１×ｄｉ−１＋・・＋ｃｉ×ｄ０
で求める。
【０１４５】
暗号文の加算：暗号文ｃ＝（ｃ０、ｃ１、・・、ｃｋ）と暗号文ｄ＝（ｄ０、ｄ１、・・、ｄｌ）の加算は、短いほうのベクトルに０を追加して同じ長さにした後、各要素を加算して求める。
【０１４６】
以上の暗号化の関数Ｅｎｃ１を用いて、図１２のシーケンスの具体的な計算を以下に示す。
【０１４７】
ステップＳ１０４において、特徴量暗号部は、暗号化特徴量と変換類似値とはそれぞれ、以下の通りである。ここで、ｒは任意の乱数とする。
【０１４８】
Ｅ１ｘ＝（Ｅｎｃ１（ｘ１），Ｅｎｃ１（ｘ２），・・、Ｅｎｃ１（ｘｍ））
Ｆ（０）＝ｒ＾０、Ｆ（１）＝ｒ＾１、・・、Ｆ（Ｄ−１）＝ｒ＾Ｄ−１
【０１４９】
ステップＳ１１３において、鍵変換部は、次の鍵変換値Ｆ（ｓ）を求める。
【０１５０】
Ｆ（ｓ）＝ｒ＾ｓ、Ｆ（ｓ＾２）＝ｒ＾（ｓ＾２）、・・、Ｆ（ｓ＾ｋ）＝ｒ＾（ｓ＾ｋ）
【０１５１】
ステップＳ１０６において、暗号化された参照特徴量は次のとおりである。
【０１５２】
Ｅ１ｙ＝（Ｅｎｃ１（ｙ１），Ｅｎｃ１（ｙ２），・・、Ｅｎｃ１（ｙｍ））
【０１５３】
ステップＳ１０７において、暗号化距離計算部は、暗号化特徴量Ｅ１ｘと暗号化された参照特徴量Ｅ１ｙを用いて暗号化距離ＥＤｉを求める。暗号化の関数Ｅｎｃ１の加法及び乗法における準同型により、
ＥＤ１ｉ＝Ｅｎｃ１（特徴量Ｘと参照特徴量Ｙｉとの距離）
が求められる。暗号化距離ＥＤ１ｉを（ｃ０、ｃ１、・・・、ｃｋ）とおく。
【０１５４】
ステップＳ１１４において、変換距離復号部は、暗号化距離ＥＤ１ｉ及び鍵変換値Ｆ（ｓ）を用いて、以下を計算する。
【０１５５】
ｒ＾ｃ０＋Ｆ（ｓ）＾ｃ１＋・・＋Ｆ（ｓ＾ｋ）＾ｃｋ
【０１５６】
この値は、上記より、ｒ＾Ｄｅｃ１（ＥＤ１ｉ）となる。この計算値のべきを示すＤｅｃ１（ＥＤ１ｉ）は、特徴量Ｘと参照特徴量Ｙｉとの距離となる。
【０１５７】
ステップＳ１０８において、上記で求めた値と変換類似値Ｆ（０）＝ｒ＾０、Ｆ（１）＝ｒ＾１、・・、Ｆ（Ｄ−１）＝ｒ＾（Ｄ−１）とをそれぞれ比較（一致するか否かを判断）する。変換距離が変換類似値と一致すれば、特徴量Ｘと参照特徴量Ｙｉとが各距離０〜（Ｄ−１）のいずれかであるため、参照特徴量が類似条件を満たすと判断する。なお、ｒのべき乗を求める一方向性関数は、厳密には異なる入力の関数出力が一致する場合（衝突と呼ぶ）があるが、ここでは、確率的にはほぼ無視できると考える。
【０１５８】
２．３．２  ＢＧＮ暗号の場合の具体的な計算例
暗号化の関数Ｅｎｃ１の第２の具体例として、ＢＧＮ暗号の鍵生成、暗号化、復号、暗号文の乗算について以下、説明する。なお、ＢＮＧ暗号については、非特許文献２に説明がある。
【０１５９】
鍵生成：ｑ１、ｑ２をそれぞれ素数とし、Ｎ＝ｑ１×ｑ２を求める。ＧとＧ’とを位数がＮとなる情報についての有限巡回群とし、Ｇの生成元ｇと、ｈ＝ｕ＾ｑ２（ここでｕはＧの生成元）とを生成する。また、ｅはＧ×Ｇ→Ｇ’のペアリングとする。ペアリングは、任意のｕ，ｖ∈Ｇとａ，ｂ∈整数に対して、ｅ（ｕ＾ａ，ｖ＾ｂ）＝ｅ（ｕ，ｖ）＾（ａｂ）が成り立つ関数である。
【０１６０】
以上のうち、秘密鍵をｑ１とし、公開鍵を（Ｎ、ｅ、ｇ、ｈ）とする。
【０１６１】
暗号化：平文ｍ∈｛０，１、・・・、Ｔ｝（Ｔ＜ｑ２）（ここでの平文空間は離散対数問題が解法可能な程度）の暗号化は、公開鍵（Ｎ、ｅ、ｇ、ｈ）を用いて以下の通りとする。乱数ｒを任意に選び、
Ｅｎｃ１（ｍ）＝（ｇ＾ｍ）×（ｈ＾ｒ）＝ｃ
を、暗号文とする。
【０１６２】
復号：暗号文ｃの復号は、秘密鍵ｑ１を用いて以下の通りとする。
【０１６３】
Ｄｅｃ１（ｃ）＝ｃ＾ｑ１
Ｄｅｃ１（ｃ）は、（ｇ＾ｍ）＾ｑ１×（ｈ＾ｒ）＾ｑ１
＝（ｇ＾ｑ１）＾ｍ×ｕ＾（Ｎｒ）
＝（ｇ＾ｑ１）＾ｍ
ここから、離散対数問題を解法して、ｍを復号する。
【０１６４】
暗号文の乗算：ｍ１の暗号文Ｅ（ｍ１）とｍ２の暗号文Ｅ（ｍ２）との間で１回だけの乗法準同型性が満たされ、ｇ１＝ ｅ（ｇ、ｇ）、ｈ１＝ ｅ（ｇ、ｈ）とする。
【０１６５】
ｕ＝ｇ＾αとおくと、ｈ＝ｕ＾ｑ２＝ｇ＾αｑ２となる。このとき、次のように、Ｅ１（ｍ１），Ｅ１（ｍ２）からｍ１ｍ２に対する暗号文を作成できる。
【０１６６】
Ｅ１（ｍ１）＝（ｇ＾ｍ１）×（ｈ＾ｒ１）
Ｅ１（ｍ２）＝（ｇ＾ｍ２）×（ｈ＾ｒ２）
ｅ（Ｅ１（ｍ１）、Ｅ１（ｍ２））ｈ１＾ｒ＝（ｇ１＾（ｍ１ｍ２））ｈ１＾ｒ３∈Ｇ’
【０１６７】
ここで、ｒ３＝ｍ１ｒ２＋ｒ２ｍ１＋αｑ２ｒ１ｒ２＋ｒとなる。
【０１６８】
暗号文の加算：ｍ１の暗号文Ｅ１（ｍ１）とｍ２の暗号文Ｅ１（ｍ２）との間で、次の加法準同型性が満たされる。つまり、暗号文Ｅ１（ｍ１）及び暗号文Ｅ１（ｍ２）からｍ１＋ｍ２に対する暗号文を作成できる。
【０１６９】
Ｅ１（ｍ１）×Ｅ１（ｍ２）＝（ｇ＾（ｍ１＋ｍ２））×ｈ＾（ｒ１＋ｒ２）＝Ｅ１（ｍ１＋ｍ２）
【０１７０】
以上の暗号化の関数Ｅｎｃ１を用いて、図１２のシーケンスの具体的な計算を以下に示す。
【０１７１】
ステップＳ１０４において、暗号化特徴量と変換類似値とは、それぞれ以下の通りである。ここで、ｒは任意の乱数とする。
【０１７２】
Ｅ１ｘ＝（Ｅｎｃ１（ｘ１），Ｅｎｃ１（ｘ２），・・、Ｅｎｃ１（ｘｍ））
Ｆ（０）＝ｇ１＾Ｑ、Ｆ（１）＝ｇ１＾（２Ｑ）、・・、Ｆ（Ｄ−１）＝ｇ１＾（（Ｄ−１）Ｑ）
【０１７３】
ステップＳ１１３において、鍵変換部は、任意の乱数Ｒを生成し、次の鍵変換値を求める。
【０１７４】
Ｆ（ｓ）＝Ｒ×ｑ１＝Ｑ
【０１７５】
ステップＳ１０６において、暗号化した参照特徴量は次のとおりである。
【０１７６】
Ｅ１ｙ＝（Ｅｎｃ１（ｙ１），Ｅｎｃ１（ｙ２），・・、Ｅｎｃ１（ｙｍ））
【０１７７】
ステップＳ１０７において、暗号化距離計算部は、暗号化特徴量Ｅ１ｘと暗号化された参照特徴量Ｅ１ｙとを用いて暗号化距離ＥＤｉを求める。Ｅｎｃ１の加法及び乗法における準同型により次の式を満たす。
【０１７８】
ＥＤ１ｉ＝Ｅｎｃ１（ｘとｙの距離）
が求められる。なお、ｘとｙとの距離としては、例えばこれらの差でもよいし、１回だけの乗法準同型性を用いて、コサイン類似度（ｘ１ｙ１＋ｘ２ｙ２＋・・＋ｘｍｙｍ）でもよい。
【０１７９】
なお、ＥＤ１ｉは、（ｇ１＾（xとyの距離））×（ｈ＾ｒ４）の形式であり、乱数要素を含んでいる。
【０１８０】
ステップＳ１１４において、暗号化距離ＥＤ１ｉおよび鍵変換値を用いて、以下を計算する。
【０１８１】
（ＥＤ１ｉ）＾Ｆ（ｓ）＝（（ｇ１＾（xとyの距離））×（ｈ＾ｒ４））＾（Ｒ×ｑ１）
＝（ｇ１＾（xとyの距離））＾Ｑ
＝（ｇ１＾Ｑ）＾（xとyの距離）
【０１８２】
ステップＳ１０８において、変換距離復号部は、上記求めた値Ｆ（０）＝ｇ１＾Ｑ、Ｆ（１）＝ｇ１＾（２Ｑ）、・・、Ｆ（Ｄ−１）＝ｇ１＾（（Ｄ−１）Ｑ）
をそれぞれ比較する。これらの値のうち、いずれかが成り立てば、特徴量Ｘと参照特徴量Ｙｉとが各距離０〜（Ｄ−１）のうちのいずれかであるため、参照特徴量が類似条件を満たすと判断する。
【０１８３】
２．４  実施の形態２の効果
実施の形態２では、ユーザ端末装置が乱数を含んだ確率的暗号を用いてデータ演算装置に送信するため、安全性を強化することができる。また、データ演算装置は、ユーザ端末装置から暗号化特徴量、暗号化類似値及び鍵変換値を受信して暗号化参照データを抽出する。データ演算装置は、類似値Ｄ未満の類似データだけを抽出してユーザ端末装置に送信するため、ユーザ端末装置の計算量、データ演算装置とユーザ端末装置との間の通信量とを削減することができる。また、ユーザ端末装置では、ユーザの意思に応じて柔軟に類似値を設定することができる。
【０１８４】
また、乱数を含んだ確率的暗号については、ユーザが同一の情報に基づいて検索を行っても、暗号化された特徴量が同じ値にならない。このため、この類似値検索方法などによれば、ユーザ端末装置からデータ演算装置への送信上及びデータ演算装置内でも、ユーザが検索した情報の秘匿性をより高めることができる。その結果、確率的暗号を用いることで暗号文の頻度などからの解析が困難となり、安全性を向上させることができる。
【０１８５】
（その他の変形例）
なお、本発明を上記各実施の形態に基づいて説明してきたが、本発明は、上記各実施の形態に限定されないのは勿論である。また、以下のような場合も本発明に含まれる。
【０１８６】
（１）実施の形態１、２では、特徴量をベクトルで説明したが、数値であってもよい。また、この数値をマッピングしてもよい。
【０１８７】
（２）実施の形態１，２では、類似値をＤ未満の連続した値としたが、例えば、完全一致（つまり、類似値をゼロのみとする）や離散的な値としてもよい。
【０１８８】
（３）図１３は、その他の変形例において統計化参照データを取得する場合のデータ演算装置の構成を示すブロック図である。
【０１８９】
図１３に示すように、統計値を求めるための暗号化参照データ統計化部２０９を追加している。実施の形態１，２では、データ演算装置は、参照データをそれぞれ暗号化してユーザ端末装置に送信していたが、データ演算装置において、参照データから例えば平均や分散などの統計値や頻度情報を求めて、ユーザ端末装置に送信してもよい。この場合、参照データそのものではない統計値をユーザ端末装置に提示することにより、参照データが外部に流出してもその持ち主であるユーザを特定することが困難である。このため、プライバシー保護に配慮した構成となる。
【０１９０】
（４）実施の形態１，２では、データ演算装置における参照特徴量格納部及び参照データ格納部は、それぞれ平文でデータを保存していたが、暗号化してもよい。この場合は、参照データ格納部からデータを抽出して復号して用いることもでき、安全性が向上する。また、データ演算装置では、ユーザ端末装置の公開鍵で暗号化したデータを保存しておいてもよい。この場合は、そのままの状態で暗号化距離計算やユーザ端末装置への参照データを送付することができる。
【０１９１】
（５）実施の形態１，２では、ユーザ端末装置の公開鍵及び秘密鍵は、鍵格納部に格納しているが、例えば、ユーザが利用する際に、ユーザ端末装置に装着することができるユーザ端末装置とは別の媒体であってもよい。
【０１９２】
（６）実施の形態１，２では、ユーザ端末装置の公開鍵及び秘密鍵は、ユーザ端末装置の鍵としているが、鍵格納部にユーザごとの鍵を保管しておいてもよい。この場合、ユーザとユーザ端末装置との間で認証を行い、認証が成功した場合に、鍵格納部から特定のユーザに一致したその鍵を選択して利用することができる。なお、図７に示すデータフォーマット例では、ユーザ端末装置の識別子ＩＤの換わりに、ユーザの識別子ＩＤを利用する。
【０１９３】
（７）実施の形態１，２では、特徴量算出部は、データベースをもち、ユーザごとにセンシングした情報を蓄積し、過去にセンシングした情報から特徴量を算出してもよい。この場合、ユーザを識別する方法は、例えば、ユーザが識別子ＩＤの入力などによりユーザ端末装置がユーザを認証してもよい。
【０１９４】
（８）実施の形態１，２では、データ演算装置は、特徴量算出部は、別媒体のデータベースから過去にセンシングした情報を取得して、特徴量を算出してもよい。この場合、ユーザの識別子ＩＤを別媒体で保持し、ユーザ端末装置に読み取らせてもよい。
【０１９５】
（９）実施の形態１，２では、データ演算装置は、血圧などのバイタルデータを対象として特徴量から類似の傾向をもつユーザの参照データ（この場合、例えば病歴や治療履歴など）を検索するとしたが、特徴量及び参照データはこの場合に限らない。例えばＧＰＳなどを用いて行動範囲を示すデータから特徴量を算出し、この特徴量から類似の傾向をもつユーザの参照データ（例えば、購入履歴や飲食場所の履歴など）を検索してもよい。
【０１９６】
（１０）実施の形態１，２では、ユーザ端末装置は、類似値を暗号化してデータ演算装置に送信するが、この暗号化はデータ演算装置側で行ってもよい。つまり、ユーザ端末装置の類似値暗号部は、データ演算装置に設けられていてもよい。なお、類似値を秘匿する必要がない場合は、暗号化しなくてもよい。
【０１９７】
（１１）実施の形態１，２では、データ演算装置は、参照データ格納部を備えているが、データ演算装置とは異なる別の装置が参照データ格納部を備えていてもよい。この場合、特徴量が類似値として抽出した識別子ＩＤをデータ演算装置とは異なる別の装置に通知し、この別の装置が対応する参照データを算出してもよい。
【０１９８】
（１２）実施の形態１，２では、特徴量と類似するとして抽出した識別子ＩＤに対応した参照データの全てをユーザ端末装置に送信しているが、常にその全てを送信しなくてもよい。つまり、データ演算装置は、参照データの内の一部をピックアップし、ピックアップされた一部の参照データをユーザ端末装置に送信してもよい。
【０１９９】
また、データ演算装置は、参照データ格納部のすべての識別子ＩＤに対し、類似値０〜Ｄ−１を用いて類似しているか否かを確認しているが（図１２、図１６に示す通り）、例えば、まず、類似値０ですべての識別子ＩＤに関して確認し、次に類似値１で確認するということを繰り返し、類似値Ｄ−１までを順次確認する（ネスティング）といった方法であってもよい。そして、この確認のうち、いずれかが一致すれば、対応する識別子ＩＤを抽出する。
【０２００】
さらに、例えば、データ演算装置は、ユーザ端末装置に送信する暗号化参照データの最大個数を予め定めておき、図１２、図１６に示すデータ演算装置が繰り返して確認を行っている間に、予め定めた個数に至ったところでこの繰り返しを中断し、抽出した識別子ＩＤに対して参照データを抽出して暗号化し、ユーザ端末装置に暗号化参照データを返答するといった方法であってもよい。
【０２０１】
なお、上記態様において説明した技術は、例えば、以下のクラウドサービスの類型において実現され得る。しかし、上記態様において説明された技術が実現されるクラウドサービスの類型は、これらに限られるものでない。
【０２０２】
（サービスの類型１：自社データセンタ型クラウドサービス）
図１４は、サービスの類型１（自社データセンタ型クラウドサービス）における情報管理システムが提供するサービスの全体像を示すブロック図である。
【０２０３】
図１４に示すように、本類型では、サービスプロバイダ１１２０がグループ１０００から情報を取得し、ユーザに対してサービスを提供する。本類型では、サービスプロバイダ１１２０がデータセンタ運営会社の機能を有している。すなわち、サービスプロバイダ１１２０はビッグデータを管理するクラウドサーバ１１１１を保有している。したがって、データセンタ運営会社は存在しない。
【０２０４】
本類型では、サービスプロバイダ１１２０は、データセンタ（クラウドサーバ）１２０３を運営及び管理している。また、サービスプロバイダ１２０は、オペレーティングシステム（ＯＳ）１２０２及びアプリケーション１２０１を管理する。サービスプロバイダ１１２０は、サービスプロバイダ１１２０が管理するＯＳ１２０２及びアプリケーション１２０１を用いてサービスを提供する（矢印１２０４）。
【０２０５】
（サービスの類型２：ＩａａＳ利用型クラウドサービス）
図１５は、サービスの類型２（ＩａａＳ利用型クラウドサービス）における情報管理システムが提供するサービスの全体像を示すブロック図である。ここで、ＩａａＳ（Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）とは、コンピュータシステムを構築および稼動させるための基盤そのものを、インターネット経由のサービスとして提供するクラウドサービス提供モデルである。
【０２０６】
図１５に示すように、本類型では、データセンタ運営会社１１１０が、データセンタ（クラウドサーバ）１２０３を運営及び管理している。また、サービスプロバイダ１１２０は、ＯＳ１２０２及びアプリケーション１２０１を管理する。サービスプロバイダ１１２０は、サービスプロバイダ１１２０が管理するＯＳ１２０２及びアプリケーション１２０１を用いてサービスを提供する（矢印１２０４）。
【０２０７】
（サービスの類型３：ＰａａＳ利用型クラウドサービス）
図１６は、サービスの類型３（ＰａａＳ利用型クラウドサービス）における情報管理システムが提供するサービスの全体像を示すブロック図である。ここで、ＰａａＳ（Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）とは、ソフトウェアを構築および稼動させるための土台となるプラットフォームを、インターネット経由のサービスとして提供するクラウドサービス提供モデルである。
【０２０８】
図１６に示すように、本類型では、データセンタ運営会社１１１０は、ＯＳ１２０２を管理し、データセンタ（クラウドサーバ）１２０３を運営及び管理している。また、サービスプロバイダ１１２０は、アプリケーション１２０１を管理する。サービスプロバイダ１１２０は、データセンタ運営会社１１１０が管理するＯＳ１２０２及びサービスプロバイダ１１２０が管理するアプリケーション１２０１を用いてサービスを提供する（矢印１２０４）。
【０２０９】
（サービスの類型４：ＳａａＳ利用型クラウドサービス）
図１７は、サービスの類型４（ＳａａＳ利用型クラウドサービス）における情報管理システムが提供するサービスの全体像を示すブロック図である。ここで、ＳａａＳ（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）利用型クラウドサービスは、例えば、データセンタ（クラウドサーバ）１２０３を保有しているプラットフォーム提供者が提供するアプリケーション１２０１を、データセンタ（クラウドサーバ）１２０３を保有していない会社又は個人などの利用者がインターネットなどのネットワーク経由で使用できる機能を有するクラウドサービス提供モデルである。
【０２１０】
図１７に示すように、本類型では、データセンタ運営会社１１１０は、アプリケーション１２０１を管理し、ＯＳ１２０２を管理し、データセンタ（クラウドサーバ）１２０３を運営及び管理している。また、サービスプロバイダ１１２０は、データセンタ運営会社１１１０が管理するＯＳ１２０２及びアプリケーション１２０１を用いてサービスを提供する（矢印１２０４）。
【０２１１】
以上、いずれのクラウドサービスの類型１〜４においても、サービスプロバイダ１１２０がサービスを提供する。また、例えば、サービスプロバイダ又はデータセンタ運営会社は、ＯＳ、アプリケーション又はビックデータのデータベースなどを自ら開発してもよいし、また、第三者に外注させてもよい。
【０２１２】
その他、実施の形態１、２、その他の変形例及びサービスの類型１〜４に対して当業者が思いつく各種変形を施して得られる形態や、本発明の趣旨を逸脱しない範囲で実施の形態１、２、その他の変形例及びサービスの類型１〜４における構成要素及び機能を任意に組み合わせることで実現される形態も本発明に含まれる。
【産業上の利用可能性】
【０２１３】
本発明にかかる類似検索方法は、暗号化により特徴量の内容を秘匿しながら類似検索を行うことができ、例えば、症例などの類似検索を行うコンピュータシステムに適用することができる。
【符号の説明】
【０２１４】
１００  ユーザ端末装置（端末装置）
２００  データ演算装置（サーバ装置）
２０２  暗号化距離計算部
２０４  暗号化参照データ抽出部
２０７  参照変換類似値抽出部
【図１Ａ】
0006567979.tif 000002
【図１Ｂ】
0006567979.tif 000003
【図１Ｃ】
0006567979.tif 000004
【図２】
0006567979.tif 000005
【図３】
0006567979.tif 000006
【図４】
0006567979.tif 000007
【図５Ａ】
0006567979.tif 000008
【図５Ｂ】
0006567979.tif 000009
【図６】
0006567979.tif 000010
【図７Ａ】
0006567979.tif 000011
【図７Ｂ】
0006567979.tif 000012
【図８Ａ】
0006567979.tif 000013
【図８Ｂ】
0006567979.tif 000014
【図９】
0006567979.tif 000015
【図１０】
0006567979.tif 000016
【図１１】
0006567979.tif 000017
【図１２】
0006567979.tif 000018
【図１３】
0006567979.tif 000019
【図１４】
0006567979.tif 000020
【図１５】
0006567979.tif 000021
【図１６】
0006567979.tif 000022
【図１７】
0006567979.tif 000023