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