(本発明の基礎となった知見)
情報を暗号化したまま類似検索する方法として、準同型暗号を用いた方法がある。しかしながら、準同型暗号を用いた演算は、加算及び乗算のいずれかの演算のみである。類似検索には、特徴量の類似度の導出のためにユークリッド距離又は内積を用いる。そのため、加算及び乗算のいずれかの演算のみでは類似度が導出できないという問題がある。
また、暗号化に用いる秘密鍵が漏えいした場合に、どのユーザ端末装置から漏えいした秘密鍵であるのかが特定できないという問題がある。
このような課題を解決するために、本発明の一態様に係る情報処理方法は、第1装置を含む情報処理システムが実行する情報処理方法であって、前記第1装置は、プロセッサとメモリとを備え、前記メモリは、予め取得された複数のプライバシデータから算出された複数の参照特徴量のそれぞれを内積暗号を用いて暗号化することにより生成された複数の第2暗号化特徴量を記憶しており、前記複数の参照特徴量のそれぞれはn次元のベクトルで表され、nは1以上の整数であり、前記プロセッサにより、(a)ユーザに固有の秘匿情報が付加された第1暗号化特徴量を含むクエリを、前記第1装置に接続された第2装置から受信し、前記第1暗号化特徴量は、ユーザのプライバシデータから算出された第1特徴量を、内積暗号を用いて暗号化することにより生成されており、前記第1特徴量はn次元のベクトルで表され、(b)前記第1暗号化特徴量と前記複数の第2暗号化特徴量のそれぞれとを内積演算することで、複数の内積値を取得し、(c)前記複数のプライバシデータのうちのプライバシデータであって、前記第1暗号化特徴量と、当該プライバシデータから算出された参照特徴量が暗号化された第2暗号化特徴量との内積値が所定の閾値以下であるプライバシデータを、前記第2装置に送信し、(d)前記第1装置への不正アクセスが検出された場合に、前記クエリに含まれている前記秘匿情報を用いて前記ユーザの秘密鍵を特定し、前記ユーザの前記秘密鍵を特定する特定情報を前記第2装置に出力する。
上記態様によれば、情報処理システムは、ユーザのプライバシデータに基づく第1暗号化特徴量と、複数のプライバシデータに基づく複数の第2暗号化特徴量とを用いて、特徴量が暗号化された状態のままで類否判断がなされるので、プライバシデータが適切に保護される。また、類否判断により、ユーザのプライバシデータに類似すると判定されたプライバシデータだけが第2装置つまりユーザ端末装置に提供されるので、端末装置の処理負荷および通信量の増大を抑制することができる。さらに、不正アクセスを検出したことに基づいて、第1暗号化特徴量の暗号化に使用された秘密鍵が漏えいした可能性がある場合に、漏えいした可能性がある秘密鍵を特定し得る。これにより、秘密鍵が漏えいした可能性を認知し、漏えいした秘密鍵を使用しないようにシステム更新をするなどの運用が可能となる。このように、本態様に係る情報処理システムは、端末の処理負荷及び通信量の増大を抑制しながら、プライバシデータをより適切に保護することができる。
例えば、前記ユーザの前記秘密鍵は、前記ユーザが属するグループのグループ署名の署名生成鍵であり、前記秘匿情報は、グループ署名を含み、前記ユーザの前記秘密鍵を特定することは、前記クエリに含まれる前記秘匿情報に含まれる前記グループ署名の開示鍵を用いて、前記グループ署名から前記署名生成鍵を特定することを含んでもよい。
上記態様によれば、情報処理システムは、ユーザに固有の秘匿情報としてグループ署名を用い、また、グループ署名の開示鍵を用いて、ユーザの秘密鍵を特定し得る。本態様に係る情報処理システムは、このような具体的構成に基づいて、情報処理システムは、端末の処理負荷及び通信量の増大を抑制しながら、プライバシデータをより適切に保護することができる。
例えば、前記ユーザの前記秘密鍵は、前記第2装置に割り当てられたTraitor Traicingにおけるユーザに固有の秘密鍵である固有秘密鍵であり、前記秘匿情報が付加された前記第1暗号化特徴量は、前記固有秘密鍵を用いた内積暗号により暗号化されており、前記第2暗号化特徴量は、システム秘密鍵を用いた内積暗号により暗号化されており、前記ユーザの前記秘密鍵を特定することは、(e)前記第2暗号化特徴量と前記クエリに含まれる前記第1暗号化特徴量との内積値である第1内積値を取得することと、(f)前記システム秘密鍵の要素のうち、複数のユーザのうちの一のユーザに対応する要素を乱数に変更した検証用秘密鍵を、前記複数のユーザごとに生成することと、(g)前記参照特徴量を、前記検証用秘密鍵を用いた内積暗号により暗号化することで生成した検証値と、前記クエリに含まれる前記第1暗号化特徴量との内積値である第2内積値を、前記複数のユーザごとに取得することと、(h)前記複数のユーザのうち、前記第1内積値と前記第2内積値とが一致しないユーザの秘密鍵を特定することとを含んでもよい。
上記態様によれば、情報処理システムは、ユーザに固有の秘匿情報としてTraitor Traicingにおけるユーザに固有の秘密鍵を用い、また、Traitor Traicingによるトレース処理により、ユーザの秘密鍵を特定し得る。本態様に係る情報処理システムは、このような具体的構成に基づいて、端末の処理負荷及び通信量の増大を抑制しながら、プライバシデータをより適切に保護することができる。
例えば、前記ユーザのプライバシデータは、前記ユーザのバイタルデータを含んでもよい。
上記態様によれば、情報処理システムは、ユーザのプライバシデータとしてユーザのバイタルデータを用いて、複数のバイタルデータのうちからユーザのバイタルデータに類似するバイタルデータを抽出できる。これにより、バイタルデータをより適切に保護することができる。
例えば、前記ユーザのプライバシデータは、前記ユーザが機器又は車両を操作したことの履歴を示すログ情報を含んでもよい。
上記態様によれば、情報処理システムは、ユーザのプライバシデータとしてユーザによる機器等の操作のログ情報を用いて、複数の操作のログ情報のうちからユーザの操作のログ情報に類似する操作のログ情報を抽出できる。これにより、操作のログ情報をより適切に保護することができる。
例えば、前記第1特徴量は、前記ユーザの身体の全体又は一部位についての形状、サイズ、重量、状態、及び、動きの少なくとも1つに関連する指標を示す成分を含んでもよい。
上記態様によれば、情報処理システムは、ユーザの身体の形状などを特徴量として用いて類否判断を行う。本態様に係る情報処理システムは、このような具体的構成に基づいて、端末の処理負荷及び通信量の増大を抑制しながら、プライバシデータをより適切に保護することができる。
例えば、前記複数のプライバシデータは、互いに異なる複数人のバイタルデータを含んでもよい。
上記態様によれば、情報処理システムは、互いに異なる複数人のバイタルデータのうちから、ユーザのバイタルデータに類似するバイタルデータを抽出できる。これにより、同一人の複数のバイタルデータを抽出することが回避されることで、抽出できるバイタルデータがより一層利用しやすいものとなる。
また、本発明の一態様に係る情報処理システムは、第1装置を備える情報処理システムであって、前記情報処理システムは、プロセッサとメモリとを備え、前記メモリは、予め取得された複数のプライバシデータから算出された複数の参照特徴量のそれぞれを内積暗号を用いて暗号化することにより生成された複数の第2暗号化特徴量を記憶しており、前記複数の参照特徴量のそれぞれはn次元のベクトルで表され、nは1以上の整数であり、前記プロセッサにより、ユーザに固有の秘匿情報が付加された第1暗号化特徴量を含むクエリを、前記第1装置に接続された第2装置から受信し、前記第1暗号化特徴量は、ユーザのプライバシデータから算出された第1特徴量を、内積暗号を用いて暗号化することにより生成されており、前記第1特徴量はn次元のベクトルで表される受信部と、前記プロセッサにより、前記第1暗号化特徴量と前記複数の第2暗号化特徴量のそれぞれとを内積演算することで、複数の内積値を取得する演算部と、前記プロセッサにより、前記複数のプライバシデータのうちのプライバシデータであって、前記第1暗号化特徴量と、当該プライバシデータから算出された参照特徴量が暗号化された第2暗号化特徴量との内積値が所定の閾値以下であるプライバシデータを、前記第2装置に送信する送信部と、前記プロセッサにより、前記第1装置への不正アクセスが検出された場合に、前記クエリに含まれている前記秘匿情報を用いて前記ユーザの秘密鍵を特定し、前記ユーザの前記秘密鍵を特定する特定情報を前記第2装置に出力する特定部とを備える。
上記態様によれば、情報処理方法と同様の効果を奏する。
なお、これらの包括的または具体的な態様は、システム、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、装置、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
なお、本明細書において、数式における記号「^」は、べき乗を意味する。例えば、x^2と記載する場合、x2を意味する。
(提供するサービスの全体像)
まず、本実施の形態における情報管理システムが提供するサービスの全体像について説明する。
図1Aは、情報処理システムが提供するサービスの全体像を示す図である。情報処理システムは、グループ1000、データセンタ運営会社1110及びサービスプロバイダ1120を備える。
グループ1000は、例えば企業、団体又は家庭等であり、その規模を問わない。グループ1000は、第1の機器及び第2の機器を含む複数の機器1101およびホームゲートウェイ1102を備える。複数の機器1101は、インターネットと接続可能な機器、及び、それ自身ではインターネットと接続不可能な機器を含む。ここで、インターネットと接続可能な機器とは、例えば、スマートフォン、パーソナルコンピュータ(PC)又はテレビ等である。また、それ自身ではインターネットと接続不可能な機器は、例えば、照明、洗濯機又は冷蔵庫等である。複数の機器1101は、それ自身ではインターネットと接続不可能であってもよく、ホームゲートウェイ1102を介してインターネットと接続可能となる機器を含んでもよい。また、ユーザ1010は、グループ1100内の複数の機器1101を使用する。
データセンタ運営会社1110は、クラウドサーバ1111を備える。クラウドサーバ1111は、インターネットを介して様々な機器と連携する仮想化サーバである。クラウドサーバ1111は、主に通常のデータベース管理ツール等で扱うことが困難な巨大なデータ、つまりビッグデータ等を管理する。データセンタ運営会社1110は、データの管理、クラウドサーバ1111の管理、及びそれらを行うデータセンタの運営等を行っている。データセンタ運営会社1110が行っている役務の詳細については後述する。
ここで、データセンタ運営会社1110は、データの管理又はクラウドサーバ1111の管理のみを行っている会社に限らない。例えば、図1Bに示すように、複数の機器1101のうちの一つの機器を開発又は製造している機器メーカが、データの管理又はクラウドサーバ1111の管理等を行っている場合は、機器メーカがデータセンタ運営会社1110に該当する。また、データセンタ運営会社1110は一つの会社に限らない。例えば、図1Cに示すように、機器メーカ及び管理会社が共同又は分担してデータの管理又はクラウドサーバ1111の管理を行っている場合は、両者又はいずれか一方がデータセンタ運営会社1110に該当する。
サービスプロバイダ1120は、サーバ1121を備える。ここで言うサーバ1121とは、その規模は問わず、例えば、個人用PC内のメモリ等も含む。また、サービスプロバイダ1120がサーバ1121を備えていない場合もある。
なお、上記の情報管理システムにおいて、ホームゲートウェイ1102は必須ではない。例えば、クラウドサーバ1111が全てのデータ管理を行っている場合等は、ホームゲートウェイ1102は不要となる。また、家庭内の全ての機器がインターネットに接続されている場合のように、それ自身ではインターネットと接続不可能な機器は存在しない場合もある。
次に、上記の情報管理システムにおける情報の流れを説明する。
まず、グループ1100の第1の機器又は第2の機器は、各ログ情報をデータセンタ運営会社1110のクラウドサーバ1111にそれぞれ送信する。クラウドサーバ1111は、第1の機器又は第2の機器のログ情報を集積する(図1Aの矢印1131)。ここで、ログ情報とは、複数の機器1101の例えば運転状況又は動作日時等を示す情報である。例えば、ログ情報は、テレビの視聴履歴、レコーダーの録画予約情報、洗濯機の運転日時、洗濯物の量、冷蔵庫の開閉日時、又は冷蔵庫の開閉回数などを含むが、これらの情報に限らず、種々の機器から取得が可能な種々の情報を含んでもよい。なお、ログ情報は、インターネットを介して複数の機器1101自体から直接クラウドサーバ1111に提供されてもよい。また、ログ情報は、複数の機器1101から一旦ホームゲートウェイ1102に集積され、ホームゲートウェイ1102からクラウドサーバ1111に提供されてもよい。
次に、データセンタ運営会社1110のクラウドサーバ1111は、集積したログ情報を一定の単位でサービスプロバイダ1120に提供する。ここで、一定の単位とは、データセンタ運営会社1110が集積した情報を整理してサービスプロバイダ1120に提供することの出来る単位でもよいし、サービスプロバイダ1120が要求する単位でもよい。また、一定の単位で提供するとしているが、一定の単位でなくてもよく、状況に応じて提供する情報量が変化してもよい。ログ情報は、必要に応じてサービスプロバイダ1120が保有するサーバ1121に保存される(図1Aの矢印1132)。
そして、サービスプロバイダ1120は、ログ情報をユーザに提供するサービスに適合する情報に整理し、ユーザに提供する。情報が提供されるユーザは、複数の機器1101を使用するユーザ1010でもよいし、外部のユーザ1020でもよい。ユーザ1010,1020への情報提供方法としては、例えば、サービスプロバイダ1120から直接ユーザ1010,1020へ情報が提供されてもよい(図1Aの矢印1134)。また、ユーザ1010への情報提供方法としては、例えば、データセンタ運営会社1110のクラウドサーバ1111を再度経由して、ユーザ1010に情報が提供されてもよい(図1Aの矢印1135,1136)。また、データセンタ運営会社1110のクラウドサーバ1111は、ログ情報をユーザに提供するサービスに適合する情報に整理し、サービスプロバイダ1120に提供してもよい。
なお、ユーザ1010は、ユーザ1020と異なっていても同一であってもよい。
(実施の形態1)
実施の形態1において、端末の処理負荷及び通信量の増大を抑制しながら、プライバシデータをより適切に保護する情報処理システム及び情報処理方法について説明する。
1.構成
1.1 情報処理システムの全体構成
図2は、本実施の形態の情報処理システム10の全体構成を示す図である。情報処理システム10は、ユーザ端末装置100と、データ演算装置200と、データ提供装置300とを備える。
図2では、情報処理システム10は、ユーザ端末装置100と、データ演算装置200と、データ提供装置300とをそれぞれ1つずつ備えているが、それぞれ2つ以上備えてもよい。
また、各装置間の接続形態は、有線通信及び無線通信のいずれであってもよく、また、企業内ネットワーク、家庭内ネットワーク、専用回線、インターネットなどのいずれであってもよい。また、リアルタイムでの通信が必ずしも必要ではなく、例えばユーザ端末装置100がセンシングした情報及び類似検索の要求データを複数集め、集めた要求データをまとめてデータ演算装置200に送信してもよい。
1.2 ユーザ端末装置
図3は、ユーザ端末装置100の構成を示す構成図である。ユーザ端末装置100は、センシング部101と、特徴量算出部102と、鍵格納部103と、特徴量暗号部104と、復号部105と、参照データ利用部106と、通信部107とを含んで構成される。なお、ユーザ端末装置100は、第2装置に相当する。
ユーザ端末装置100は、例えば、プロセッサ又はマイクロプロセッサ、メモリ、センサ、通信インタフェース等を備えるコンピュータに実装され得る。メモリは、ROM(Read Only Memory)、RAM(Random Access Memory)等であり、プロセッサにより実行されるプログラムを記憶することができる。ここで、プログラムとは、ソフトウェアとしてのコンピュータプログラムである。
なお、コンピュータプログラムは、所定の機能を達成するために、プロセッサに対する指令を示す命令コードが複数個組み合わされて構成されたものである。例えば、メモリに格納されたプログラムをプロセッサが実行すること等によりユーザ端末装置100における各種機能が実現され得る。
ユーザ端末装置100は、ユーザに関する情報をセンシングし、また、ユーザに対して情報提示を行う装置である。ユーザ端末装置100は、例えば、ユーザの血圧、心拍、又は、CT(Computed Tomography)スキャン情報などのユーザに関する情報をセンシングする。そして、ユーザ端末装置100は、センシングにより得た情報から特徴量を抽出し、この特徴量に類似した症状の参照データをデータ演算装置200に要求し、得られた参照データをユーザへのサービスに利用する。ここで、症例の参照データとは、例えば症例の名称などを含む情報である。
1.2.1 センシング部
センシング部101は、ユーザに関する情報をセンシングにより取得する。センシング部101は、例えば血圧計、CTスキャナ、カメラ又はイメージセンサ等といった、センシングのための1つ以上のセンサ又は測定器を含んで構成され得る。
センシング部101がセンシングする情報は、例えばユーザの血圧、体温又は心拍等のバイタルデータであり、例えばユーザの身体を撮像又は測定することで得られる顔画像、エコー画像又はCTスキャン情報等の画像情報等であってもよい。
また、センシングする情報は、例えば、GPS(Global Positioning System)で得られる位置情報、ユーザが電気機器もしくは車両等の移動体を操作したことの履歴を示すログ情報、又は、ユーザによる商品等の購買履歴情報等であってもよい。
ログ情報は、例えば、車両のステアリング操作、アクセル操作、ブレーキ操作、変速ギアの操作等に関連して取得又は測定される各種情報を操作時刻と対応付けた情報であり得る。ここで、上記の各種情報は、変位量、速度又は加速度等を含む。
センシングされたユーザに関する情報は、例えば、ユーザが他人に知られたくない個人的な事柄であるプライバシデータであり得る。
情報処理システム10は、プライバシデータの秘匿を行って類似検索を行い得るシステムである。ここでは、センシング部101でセンシングされたユーザに関する情報は、プライバシデータであることとして説明する。
センシング部101でセンシングされたプライバシデータは、ユーザ端末装置100において各部で処理された後に特徴量暗号部104によって暗号化され、類似検索のためにデータ演算装置200に送信されることになる。
1.2.2 特徴量算出部
特徴量算出部102は、センシング部101で取得した情報であるプライバシデータから特徴量を算出する。特徴量算出部102が算出する特徴量は、複数の成分を含むベクトルで表され得る。この特徴量は、例えば、ユーザの身体の全体又は一部位についての形状、サイズ、重量、状態、及び、動きの少なくとも1つに関連する指標を成分として含む。なお、上記における成分を要素ともいう。
なお、特徴量に関連するユーザの部位は、いかなる部位であってもよく、例えば、目、鼻、耳、手、足、臓器、血管等である。ユーザの身体の全体又は一部位についての状態としては、例えば健康状態、水分量、血圧、酸素飽和度等が挙げられる。また、ユーザの身体の全体又は一部位についての動きとしては、例えば、体動、微振動が挙げられる。ここで、健康状態とは、健康診断に用いられる各種検査項目についての状態を含む。体動に関する指標は、単位時間当たりの寝返り回数等を含む。微振動に関する指標は、心拍数、呼吸数又は吸気呼気比率等を含む。
また、特徴量は、例えば、ユーザの顔画像における特徴的なパラメータの主成分、ある領域の位置、面積、又は、幅等の情報であってもよい。
また、特徴量は、センシング部101で取得されたユーザに関する情報の履歴から、要素の時間的な変化を例えば多項式で表現した場合における各項の係数を成分として含むベクトルで表される情報であってもよい。
センシング部101で取得した情報から抽出された特徴量自体も、プライバシデータであり得る。
1.2.3 鍵格納部
鍵格納部103は、特徴量暗号部104及び復号部105における暗号処理に用いる鍵を格納する。ここで、暗号処理とは、暗号化、復号、又は、署名生成に係る処理を含む。
特徴量暗号部104及び復号部105のそれぞれが用いる暗号方式及び鍵は、同じであってもよいし、異なっていてもよい。
例えば、特徴量暗号部104が用いる鍵は、暗号化したまま内積演算を可能にする内積暗号の秘密鍵と、署名生成に用いる署名生成鍵とである。この場合、復号部105が用いる鍵は、公知の公開鍵暗号方式におけるユーザ端末装置100の秘密鍵、つまり、データ演算装置200またはデータ提供装置300と共有する公開鍵と対をなす秘密鍵である。
また、特徴量暗号部104が用いた秘密鍵と同じ鍵を、復号部105が用いることとしてもよい。
1.2.4 特徴量暗号部
特徴量暗号部104は、特徴量算出部102により算出された特徴量を予め定められた暗号方式により暗号化する。特徴量暗号部104は、この暗号化において鍵格納部103に格納された鍵を用いる。
特徴量暗号部104は、データ演算装置200において特徴量を暗号化したまま、類似検索のための演算、つまり内積演算が可能となる所定の内積暗号を用いて暗号化を行う。また、特徴量暗号部104は、内積暗号を用いた暗号文に対し、グループ署名の署名生成を行う。内積暗号については、非特許文献1又は非特許文献4に示された公知の方法を採用し得るので、ここでは詳細に述べない。
また、グループ署名については、非特許文献2に示された公知の方法を採用し得るので、ここでは詳細に述べない。
また、類似検索の類似度にユークリッド距離を用いる場合には、特徴量の変換を行う。特徴量の変換方法は後述する。
1.2.5 復号部
復号部105は、データ演算装置200から送信された暗号化された参照データを復号する。この参照データは、類似検索の結果を含んでいる。復号部105は、この復号において鍵格納部103に格納された鍵を用いる。
1.2.6 参照データ利用部
参照データ利用部106は、復号部105において復号することで得た参照データを利用する。参照データの利用は、例えば、参照データのユーザへの提示である。
参照データ利用部106は、例えばディスプレイ、音声出力装置つまりスピーカ、その他のユーザインタフェースを含んで実装され得る。
参照データの提示は、例えば、ユーザ端末装置100のディスプレイに、参照データをグラフ又は統計情報等の形式で表示すること、又は、参照データを示す音声をスピーカにより出力すること等が挙げられる。
また、参照データ利用部106は、参照データに基づいて、所定の演算、又は、情報検索等を行うことで、病院への検診のレコメンド、ユーザへの生活習慣の改善アドバイス、お勧めの食事等のアドバイスを提示してもよい。
1.2.7 通信部
通信部107は、データ演算装置200との通信を行う。この通信には、例えばTLS(Transport Layer Security)プロトコルによる暗号通信を用いる。TLSプロトコルを単にTLSをもいう。
ユーザ端末装置100は、通信部107により、データ演算装置200との間でTLSに基づいて相互に認証し、データの暗号化を行う。TLSに用いる公開鍵証明書及び秘密鍵は、通信部107が保持している。
通信部107は、特徴量暗号部104により暗号化された特徴量である暗号化特徴量と、グループ署名との組を含む類似検索の要求であるクエリを、データ演算装置200に送信する。
また、通信部107は、類似検索の要求に対するデータ演算装置200からの応答としての、暗号化された参照データを受信して復号部105に提供する。ここで、暗号化された参照データは、類似検索の結果を含んでいる。
1.3 データ演算装置
図4は、データ演算装置200の構成を示す構成図である。データ演算装置200は、暗号化距離計算部201と、鍵格納部202と、暗号化特徴量格納部203と、通信部204とを含んで構成される。なお、データ演算装置200は、第1装置に相当する。
データ演算装置200は、例えば、ユーザ端末装置100と同様に、プロセッサ、メモリ、通信インタフェース等を備えるコンピュータに実装され得る。例えば、メモリに格納されたプログラムをプロセッサが実行すること等によりデータ演算装置200における各種機能が実現され得る。
データ演算装置200は、類似検索を行うサーバとして機能する。データ演算装置200は、ユーザ端末装置100からの特徴量に関する類似検索の要求を受信する。この類似検索の要求は、特徴量が変換され暗号化された情報を含んでいる。そして、データ演算装置200は、受信した類似検索の要求に応じて、データ提供装置300から提供される参照特徴量との類似検索を行い、この検索結果を示す参照データを、上記要求に対する応答としてユーザ端末装置100に送信する。
類似検索は、例えば、特徴量と対比可能な、ユーザとは別の複数人それぞれのバイタルデータ等の情報から算出した参照特徴量の集合から、特徴量と類似した特徴を有する参照特徴量を選定することを含む。また、類似検索は、その参照特徴量に対応する参照データを特定することをさらに含み得る。ここで、参照特徴量に対応する参照データは、例えば参照特徴量に対応する人に関わる症例等の情報を含んでいる。
1.3.1 暗号化距離計算部
暗号化距離計算部201は、ユーザ端末装置100が送信した類似検索の要求であるクエリを、通信部204を介して受信により取得する。クエリには、暗号化特徴量とグループ署名との組が含まれている。ここで、暗号化特徴量は、第1暗号化特徴量に相当する。グループ署名は、ユーザに固有の秘匿情報の一例である。なお、この機能は、受信部の機能に相当する。
また、暗号化距離計算部201は、複数の暗号化参照特徴量を取得する。複数の暗号化参照特徴量は、暗号化特徴量格納部203により複数の参照特徴量が暗号化されたものである。
暗号化距離計算部201は、ユーザ端末装置100から受信した暗号化特徴量を検証する。暗号化距離計算部201は、鍵格納部202に格納されているグループ署名の署名検証鍵を用いて、グループ署名の署名検証を行う。暗号化距離計算部201は、署名の検証において、署名が不正であると判定した場合には、距離計算を実行せずにエラーを返す。
暗号化距離計算部201は、署名の検証において、署名が正当であると判定した場合には、ユーザ端末装置100から受信した暗号化特徴量と、データ提供装置300から受信し格納している複数の暗号化参照特徴量それぞれとの内積を、暗号化したまま、内積演算により求める。なお、この機能は、演算部の機能に相当する。
例えば、特徴量のベクトルをn次元のベクトルX=(x1,x2,x3,・・・,xn)とし、参照特徴量のベクトルの1つをn次元のベクトルY1=(y11,y12,y13,・・・,y1n)としたとき、非特許文献1又は非特許文献4の内積暗号によれば、2つのベクトルX及びY1の内積値<X,Y1>が、下記(式1)により暗号化したまま求められる。
<X,Y1>=Σxi・y1i ただし、i=1,・・・,n (式1)
また、ユーザ端末装置100の特徴量暗号部104、および、データ提供装置300の参照特徴量暗号部302で事前に変換をすることで、暗号化距離計算部201は、下記(式2)に示されるユークリッド距離D1を算出できる。
D1=Σ(xj−y1j)^2 ただし、j=1,・・・,n (式2)
ここで、Σ(xj−y1j)^2は、(x1−y11)の2乗値から、(xn−y1n)の2乗値までの総和を示している。
なお、一般的なユークリッド距離の定義は、D1の平方根であるが、ここではD1をユークリッド距離として説明を行う。因みに、D1は、正式には、平方ユークリッド距離と呼ばれている。
ユーザ端末装置100において特徴量のベクトルXから変換されたベクトルX’=(Σxj^2, 1, x1, x2, ・・・ , xn)と、データ提供装置300において複数の参照特徴量のベクトルのうちの1つのベクトルY1から変換されたベクトルY1’=(1,Σy1j^2, −2y11, −2y12, ・・・ , −2y1n)との内積を、非特許文献1又は非特許文献4の内積暗号を用いて演算すると、下記(式3)のようになる。ここで、ベクトルX1’を第1変換特徴量のベクトルともいい、ベクトルY1’を第2変換特徴量ともいう。
<X’,Y1’>
=Σxj^2+Σy1j^2−2x1・y11−2x2・y12−・・・−2xn・y1n
=Σ(xj−y1j)^2 (式3)
(式3)のように、特徴量のベクトルXから変換されたベクトルX’と、参照特徴量のベクトルY1から変換されたベクトルY1’との内積演算をすると、特徴量と参照特徴量とのユークリッド距離であって、暗号化されたユークリッド距離が求められる。そして、この暗号化されたユークリッド距離を復号することでユークリッド距離が求められる。
暗号化距離計算部201は、内積演算により求めた内積またはユークリッド距離が条件を満たすか否かに基づいて、特徴量と参照特徴量とが類似であるか否かを判断する。特徴量と参照特徴量とが類似であるか否かを判断するためのこの条件は、例えば、内積が予め定められた閾値以下である、という条件である。ここで、閾値は、例えば1である。また、この条件を、類似判定のための条件ともいう。
暗号化距離計算部201は、特徴量と参照特徴量とが類似であると判断した場合は、対応する参照特徴量に対応付けられている識別子であるID(Identifier)を一時的に記憶する。ここで、対応する参照特徴とは、上記条件を満たすか否かの判断のための内積演算に用いられた暗号化参照特徴量を指す。
暗号化距離計算部201は、特徴量と参照特徴量とが類似であると判断しなかった場合には、対応する参照特徴量のIDを記憶しない。
暗号化距離計算部201は、暗号化特徴量格納部203に格納されている複数の暗号化参照特徴量それぞれと、ユーザ端末装置100から受信した暗号化特徴量とを用いた内積演算を行って、上述の条件を満たすか否かの判断を行う。これにより、暗号化特徴量格納部203に格納されている複数の参照特徴量のうち、特徴量に類似する1つ以上の参照特徴量に対応付けられているIDのみが記憶されることで抽出される。その後、データ演算装置200は、抽出されたIDをデータ提供装置300に提供し、抽出されたIDに対応する参照データがデータ提供装置300からユーザ端末装置100に提供される。
1.3.2 鍵格納部
鍵格納部202は、暗号化距離計算部201が用いる鍵を格納する。例えば、暗号化距離計算部201が用いる鍵は、グループ署名の署名検証鍵である。
1.3.3 暗号化特徴量格納部
暗号化特徴量格納部203は、データ提供装置300から提供された暗号化参照特徴量をメモリに格納する。暗号化参照特徴量は、第2暗号化特徴量に相当する。
また、暗号化特徴量格納部203は、ユーザ端末装置100からの類似検索の要求で受信した暗号化特徴量とグループ署名との組を格納する。
1.3.4 通信部
通信部204は、ユーザ端末装置100、データ提供装置300及びデータ検証装置400との通信を行う。これらの通信は、TLSによる暗号通信を用いる。つまり、通信する装置は、TLSにより、相互に認証し、データの暗号化を行う。TLSに用いる公開鍵証明書及び秘密鍵は、通信部204が保持している。
また、データ検証装置400からの要求に応じて、暗号化特徴量格納部203に格納している暗号化特徴量とグループ署名との組を送信する。送信する暗号化特徴量と、グループ署名との組は、ユーザ端末から得たものである。
1.4 データ提供装置
データ提供装置300は、例えば、プロセッサ、メモリ、通信インタフェース等を備えるコンピュータに実装され得る。例えば、メモリに格納されたプログラムをプロセッサが実行すること等によりデータ提供装置300における各種機能が実現され得る。
データ提供装置300は、データ演算装置200からの複数の暗号化参照特徴量を要求されると、この要求に応じて、複数の暗号化参照特徴量それぞれをIDとともにデータ演算装置200に送信する。また、データ提供装置300は、データ演算装置200からIDを指定して参照データを要求されると、この要求に応じて、該当するIDを有する参照データをデータ演算装置200に送信する。複数の暗号化参照特徴量は、暗号化第2変換特徴量に相当する。
データ提供装置300は、図5に示すように、参照特徴量格納部301と、参照特徴量暗号部302と、鍵格納部303と、参照データ格納部304と、参照データ暗号部305と、通信部306とを含んで構成される。
1.4.1 参照特徴量格納部
参照特徴量格納部301は、データ演算装置200による類似検索のために、検索の対象となる参照特徴量を格納する。参照特徴量は、例えば、ユーザとは別の複数人のプライバシデータ、より具体的にはバイタルデータの情報から算出された複数の特徴量である。
参照特徴量は、ユーザ端末装置100からの情報におけるその特徴量と対比され得る。すなわち、参照特徴量は、特徴量と同じ次元のベクトルで表現され、例えば、特徴量がn次元のベクトルで表わされる場合にはn次元のベクトルで表される。ユーザ端末装置100からの情報には、特徴量が変換され暗号化された情報が含まれている。
図6Aは、参照特徴量格納部301に格納されている参照特徴量の例を示す。参照特徴量格納部301には、複数の参照特徴量それぞれが、識別子であるIDと対応付けて格納される。図6Aの例では、参照特徴量格納部301には、ID毎に、IDと参照特徴量Eyとが対応付けて格納されている。この例では、複数の参照特徴量を、k個のn次元のベクトルYi=(yi1,yi2,yi3,・・・,yin)で表している。ここで、kは、複数の参照特徴量の個数であり、iは、1からkまでの整数値をとる。
各参照特徴量は、例えば、互いに異なる複数人それぞれについての測定結果等の情報から算出されたものであり、例えば、その測定された人の身体の全体又は一部位についての形状、サイズ、重量、状態、及び、動きの少なくとも1つに関連する指標を成分として含むものであってもよい。
IDは、参照特徴量に関連する人を他の人と区別する識別子であり得る。
また、参照特徴量格納部301に格納されている参照特徴量に対応付けられているIDは、後述する参照データ格納部304に格納されている参照データに対応付けられているIDと対応する。
1.4.2 参照特徴量暗号部
参照特徴量暗号部302は、参照特徴量を予め定められた暗号方式により暗号化する。参照特徴量暗号部302は、この暗号化において鍵格納部303に格納された鍵を用いる。
参照特徴量暗号部302は、参照特徴量格納部301の複数の参照特徴量のそれぞれに対して、ユーザ端末装置100の特徴量暗号部104と同じ所定の内積暗号を用いて、暗号化を行う。また、類似検索の類似度にユークリッド距離を用いる場合には、特徴量に変換を行う。
1.4.3 鍵格納部
鍵格納部303は、参照特徴量暗号部302及び参照データ暗号部305における各暗号処理に用いる鍵を格納する。参照特徴量暗号部302及び参照データ暗号部305のそれぞれが用いる暗号方式及び鍵は同じであってもよいし、異なっていてもよい。例えば、参照特徴量暗号部302が用いる鍵は、暗号化したまま内積演算を可能にする内積暗号の秘密鍵である。
参照データ暗号部305が用いる鍵は、ユーザ端末装置100の公開鍵等を用いることとしてもよいし、データ提供装置300とユーザ端末装置100とで共有する秘密鍵等を用いることとしてもよい。
また、参照特徴量暗号部302で用いた秘密鍵と同じ鍵を参照データ暗号部305で用いることとしてもよい。
1.4.4 参照データ格納部
参照データ格納部304は、ユーザ端末装置100からの要求に応じて類似検索を行う際に、検索の対象となる複数の参照特徴量に対応する複数の参照データを格納する。例えば、参照データ格納部304は、ある人についての測定結果等の情報から算出された参照特徴量に対応する参照データを格納する。図6Bは、参照データ格納部304に格納されている参照データの例を示す。
参照データ格納部304には、複数の参照データそれぞれが、識別子であるIDと対応付けて格納される。IDにより、参照特徴量と参照データとは対応付けられている。図6Bの例では、ID毎に、IDと参照データEzとが格納されている。
各参照データは、例えば、複数人それぞれについての測定結果等の情報から算出されたものであり得る。例えば、参照特徴量が人の身体に係る指標としてのCT画像、血圧、心拍数等である場合において、参照データは、その人の病気及び病気の履歴等であってもよい。
また、例えば、参照特徴量が、人の位置情報を示すものである場合において、参照データは、その人が購入した商品の履歴等であってもよい。図6Bの例では、参照データ格納部304は、IDが1の人が肺がんになった、IDが2の人が肝臓がんになった、というように、過去に罹患した病気に関する情報を蓄積している。
なお、参照データ格納部304に参照データを暗号化して格納しておいてもよい。
参照データ格納部304と参照特徴量格納部301とは、例えばデータ演算装置200におけるメモリ、ハードディスク等の記憶媒体で実装され、記憶媒体において、複数の参照データと、複数の参照特徴量とが対応付けて記憶される。
1.4.5 参照データ暗号部
参照データ格納部304で保持する参照データのうち、データ演算装置200がIDを指定して要求した参照データを暗号化して、その暗号化した参照データをデータ演算装置200へ通信部306を介して送信する。
このとき、暗号化に用いる鍵はユーザ端末の公開鍵であってもよい。
1.4.6 通信部
通信部306は、データ演算装置200との通信を行う。通信には、例えばTLSによる暗号通信を用いる。データ提供装置300は、通信部306により、データ演算装置200との間でTLSに基づいて相互に認証し、データの暗号化を行う。TLSに用いる公開鍵証明書又は秘密鍵は、通信部306が保持している。
1.5 データ検証装置
データ検証装置400は、例えば、プロセッサ、メモリ、通信インタフェース等を備えるコンピュータに実装され得る。例えば、メモリに格納されたプログラムをプロセッサが実行すること等によりデータ検証装置400における各種機能が実現され得る。
データ検証装置400は、データ演算装置200からの暗号化特徴量とグループ署名との組を受信すると、グループ署名に用いられている署名生成鍵を特定することによって、ユーザ端末を特定する。
データ検証装置400は、図7に示すように、特定部401と、鍵格納部402と、通信部403とを含んで構成される。
1.5.1 特定部
特定部401は、ユーザ端末装置100から鍵が漏えいした場合に、どのユーザ端末装置100から鍵が漏えいしたかを特定する。例えば、特定部401は、ユーザ端末装置100から鍵が漏えいして、クローン端末装置などの不正端末が作成された場合、不正端末からの類似検索の要求に係る通信から、どのユーザ端末装置100から鍵が漏えいしたかを特定する。特定部401は、具体的には、通信部403を介して、データ演算装置200から暗号化特徴量とグループ署名との組を受信する。
次に、特定部401は、グループ署名の開示鍵を用いて、署名に用いられた秘密鍵を特定する。また、秘密鍵を特定する特定情報を出力する。特定情報を出力する先は、例えば、当該秘密鍵に係るユーザのユーザ端末装置100であるが、これに限られない。
1.5.2 鍵格納部
鍵格納部402は、特定部401における暗号処理に用いる鍵を格納する。特定部401でグループ署名の開示処理を行う開示鍵を格納する。
1.5.3 通信部
通信部403は、データ演算装置200との通信を行う。通信には、例えばTLSによる暗号通信を用いる。
データ検証装置400は、通信部403により、データ演算装置200との間でTLSに基づいて相互に認証し、データの暗号化を行う。TLSに用いる公開鍵証明書および秘密鍵は、通信部403において保持している。
1.6 情報処理システムの動作
情報処理システム10の動作は、情報を暗号化したまま距離を計算することで、類似の参照データを検索する検索処理と、漏えいした鍵を特定する特定処理との2つを含む。
1.6.1 検索処理
情報処理システム10の検索処理の動作を、図8及び図9に示すシーケンス図を用いて説明する。図8及び図9は、本実施の形態における情報処理システム10の動作を示す第一及び第二のシーケンス図である。
ステップS101において、データ提供装置300は、参照特徴量格納部301が格納している各参照特徴量を参照特徴量暗号部302により暗号化する。これにより、参照特徴量が所定の内積暗号により暗号化され、複数の暗号化参照特徴量が生成される。
ステップS102において、データ提供装置300は、複数の暗号化参照特徴量を該当のIDと対応付けてデータ演算装置200へ送信する。複数の暗号化参照特徴量をデータ演算装置200へ送信することは、例えば、データ演算装置200からの要求をデータ提供装置300が受信したことに応じて行う。データ演算装置200は、送信された複数の暗号化参照特徴量を受信により取得し、暗号化特徴量格納部203に格納する。
ステップS103において、ユーザ端末装置100は、センシング部101により情報を取得する。取得する情報は、例えば、ユーザに関するプライバシデータを含む。
ステップS104において、ユーザ端末装置100は、センシング部101により取得した情報から、特徴量算出部102により特徴量を算出する。
ステップS105において、ユーザ端末装置100は、ステップS104で算出された特徴量を特徴量暗号部104により暗号化し、また、特徴量暗号部104によりグループ署名を生成する。これにより、特徴量が内積暗号により暗号化されることで暗号化特徴量が生成され、また、暗号化特徴量のグループ署名が生成される。
ステップS106において、ユーザ端末装置100は、暗号化した特徴量とグループ署名およびユーザの公開鍵とを含むクエリを通信部107によりデータ演算装置200に送信する。このクエリは、類似のデータを要求するクエリである。類似のデータは、例えば、ユーザに関する特徴量に類似した特徴を有する他の人に関するデータである参照データである。また、類似か否かの判断には、類似判定のための条件が用いられる。これにより、暗号化特徴量がユーザ端末装置100からデータ演算装置200に提供される。
ステップS107において、データ演算装置200は、ユーザ端末装置100から受信したクエリに含まれている暗号化特徴量とグループ署名とを用いて、署名検証鍵での検証により、署名が正当であるか否かを判定する。
署名が正当でないと判定した場合(ステップS107でNo)、ステップS108においてユーザ端末装置100にエラー通知を行う。署名が正当であると判定した場合(ステップS107でYes)、ステップS109に進む。
後述するステップS109からステップS112までの処理は、複数の暗号化参照特徴量に付されたIDそれぞれについて行われる。
ステップS109において、データ演算装置200は、データ提供装置300から取得した複数の暗号化参照特徴量のうちi番目のIDに対応する暗号化参照特徴量を選択する。ここで、iは、例えば最初は1であり、ステップS101で生成された暗号化参照特徴量の個数、つまり参照特徴量又はIDの総数になるまで、ステップS109が繰り返される毎にiが1ずつ増加する。
ステップS110において、データ演算装置200は、暗号化距離計算部201により、ステップS109で選択した暗号化参照特徴量と、ユーザ端末装置100から受信した暗号化特徴量とを用いた内積演算により内積値を算出する。この計算結果により特徴量とi番目のIDに対応する参照特徴量との内積値が得られる。
ステップS111において、データ演算装置200は、暗号化距離計算部201により、ステップS110で算出された内積値が類似判定のための条件を満たすか否かを判定する。具体的には、暗号化距離計算部201により、ステップS110で算出された内積値が所定の閾値以下であるという条件を満たすか否かを判定する。内積値が条件を満たすと判定した場合(ステップS111でYes)にはステップS112に進み、そうでない場合(ステップS111でNo)には、iを1増加させてステップS109に進む。
ステップS112において、暗号化距離計算部201は、i番目のIDに対応する参照特徴量が特徴量と類似していることから、参照特徴量が特徴量と類似するIDとしてi番目のIDを一時的に記憶する。ステップS112を終えたら、複数の暗号化参照特徴量に付されたIDのすべてについて、ステップS109からステップS112までの処理が行われたか否かを判定する。上記IDのすべてについて上記処理が行われた場合にはステップS113に進み、そうでない場合には、iを1増加させてステップS109に進む。
ステップS113において、ステップS112で記憶した1つ以上のIDを含む参照データの要求と、ユーザの公開鍵とをデータ提供装置300に送信する。
ステップS114において、参照データの要求を受信したデータ提供装置300は、データ演算装置200から受信したIDに対応する参照データを参照データ格納部304から抽出し、抽出した参照データを参照データ暗号部305によりユーザの公開鍵を用いて暗号化する。
ステップS115において、データ提供装置300は、参照データ暗号部305により暗号化された参照データを、通信部306によりデータ演算装置200へ送信する。
ステップS116において、データ演算装置200は、データ提供装置300から受信した、暗号化された参照データをユーザ端末装置100に送信する。ここで、データ提供装置300から受信した参照データがユーザ端末装置100の公開鍵等で暗号化されている場合、データ演算装置200は、データ提供装置300から受信した暗号化された参照データをそのままユーザ端末装置100に送信し得る。
ステップS117において、この送信された、暗号化された参照データを受信して、ユーザ端末装置100は、復号部105によりその参照データを復号し、参照データ利用部106で参照データを利用する。
1.6.2 ユーザ端末装置とデータ演算装置との間のデータ交換
図10Aは、本実施の形態における通信データのフォーマットの一例を示す図である。具体的には、図10Aは、ステップS106でユーザ端末装置100からデータ演算装置200へ送信される通信データのフォーマットの例を示している。
図10Aに示される通信データは、コマンド種別としての「類似のデータ要求コマンド」を示すフィールドと、データとしての「暗号化された特徴量」を含むフィールドと、グループ署名を含むフィールドとを有する。
図10Bは、本実施の形態における通信データのフォーマットの別の一例を示す図である。具体的には、図10Bは、ステップS115でデータ提供装置300からデータ演算装置200に送信される通信データ、及び、ステップS116でデータ演算装置200からユーザ端末装置100に送信される通信データのフォーマット例を示す。
図10Bに示される通信データは、コマンド種別としての「類似のデータ返答コマンド」を示すフィールドと、データとしての1つ以上の「暗号化された参照データ」を含むフィールドとを有する。
複数のユーザ端末装置100と複数のデータ演算装置200間で並行してコマンドがやり取りされる場合は、ステップS106の通信データとステップS115の通信データとを紐付けるための識別子を通信データに追加してもよい。
1.6.3 特定処理
情報処理システム10の特定処理の動作を、図11に示すシーケンス図を用いて説明する。
ステップS201において、データ検証装置400は、各装置の処理の様子、各装置間の通信の様子などに基づいて、不正アクセス、つまり、通常時と異なる異常な動作の検知を行う。データ検証装置400は、例えば、各装置への通信アクセス量の振る舞い、又は、ネットワークを流れる通信量の振る舞いなどに基づいて、通信量が通常時と比べ異常に多くなる、又は、一定期間内に類似データの要求が異常に増加するなどの事象を検知した場合に、異常な動作として検出する。ここで、例えば、通常の通信量の平均値の2倍以上の通信量が瞬間的に検出された場合に上記事象を検知し得る。類似データの要求についても同様である。また、データ検証装置400は、ユーザ端末装置100のクローン端末装置などを発見した場合など、ユーザ端末装置100から鍵が漏えいしたことが疑われる場合にも、異常な動作として検知する。
ステップS201において、異常な動作を検知した場合(ステップS201でYes)にはステップS202に進み、そうでない場合(ステップS201でNo)には再びステップS201を実行する。つまり、データ検証装置400は、異常な動作を検知するまでステップS201で待ち状態をとる。
ステップS202において、データ検証装置400は、データ演算装置200に対して、暗号化特徴量とグループ署名との組を要求する。このとき、データ検証装置400は、すべての暗号化特徴量を要求してもよいし、異常なユーザ端末装置100を絞り込めている場合には、その異常なユーザ端末装置100の分のみの暗号化特徴量を要求してもよい。
ステップS203において、データ演算装置200は、データ検証装置400に対し、暗号化特徴量格納部203に格納しているユーザ端末装置100から受信した暗号化特徴量とグループ署名との組を送信する。
ステップS204において、データ検証装置400は、データ演算装置200から暗号化特徴量とグループ署名との組を受信する。特定部401は、鍵格納部402に格納している開示鍵を用いて、グループ署名の開示を行い、鍵が漏えいしているユーザ端末装置100の鍵を特定する。
ステップS205において、データ検証装置400は、鍵が漏えいしているユーザ端末装置100に対し、鍵が漏えいしている旨の通知を行う。このとき、特定したユーザ端末装置100が明らかに不正を行っているとわかっている場合には、通知を行わなくてもよい。
1.7 効果
本実施の形態では、データ演算装置200は、ユーザ端末装置100側が暗号化した特徴量と、データ提供装置300側で暗号化した参照特徴量とを用いて、暗号化されたまま内積値又はユークリッド距離を演算する。これにより、データ演算装置200は、複数の参照特徴量のうちの特徴量に類似する参照特徴量から算出される、類似の参照データを抽出する。その際、データ演算装置200は、ユーザ端末装置100の特徴量とデータ提供装置300の参照特徴量とを、暗号化されたまま扱い、すなわち平文で扱わないので、プライバシデータを保護することができる。また、内積値又はユークリッド距離が閾値以下である参照データだけを抽出するので、ユーザ端末装置100の計算量及び通信量を削減することができる。
さらに、ユーザ端末装置100からの暗号化特徴量の署名にグループ署名を用いるので、匿名性を有しており、かつ、サービスの正規の利用者であることがわかるのみで、ユーザ固有の情報を開示する必要がない。よって、ユーザ端末装置100からデータ演算装置200に必要以上に情報を提供する必要がないという利点がある。
さらに、ユーザ端末装置100から漏えいした鍵を特定ができるので、漏えいした鍵を排除してシステムの更新をすることができる。また、漏えいした鍵を特定することは、攻撃者の特定につながる可能性があることから、攻撃を抑止させる効果も奏する。これらの効果に基づいて、システムの安全性を向上及び維持する効果も奏する。
(実施の形態の変形例1)
本変形例では、端末の処理負荷及び通信量の増大を抑制しながら、プライバシデータをより適切に保護する情報処理方法および情報処理システムについての必須の処理又は構成要素を説明する。
図12は、本変形例における情報処理方法を示すフロー図である。図13は、本変形例における情報処理システム10Aの構成を示すブロック図である。
図13に示されるように、情報処理システム10Aは、プロセッサ510とメモリ520とを備えている。図12に示される情報処理方法は、プロセッサ510がメモリ520等を用いて実現し得る。
図12に示されるように、本変形例における情報処理方法は、ステップS1〜S4を含む。
メモリ520は、予め取得された複数のプライバシデータから算出された複数の参照特徴量のそれぞれを内積暗号を用いて暗号化することにより生成された複数の第2暗号化特徴量を記憶しており、複数の参照特徴量のそれぞれはn次元のベクトルで表され、nは1以上の整数である。
ステップS1において、ユーザに固有の秘匿情報が付加された第1暗号化特徴量を含むクエリを、第1装置に接続された第2装置から受信し、第1暗号化特徴量は、ユーザのプライバシデータから算出された第1特徴量を、内積暗号を用いて暗号化することにより生成されており、第1特徴量はn次元のベクトルで表されている。
ステップS2において、第1暗号化特徴量と複数の第2暗号化特徴量のそれぞれとを内積演算することで、複数の内積値を取得する。
ステップS3において、複数のプライバシデータのうちのプライバシデータであって、第1暗号化特徴量と、当該プライバシデータから算出された参照特徴量が暗号化された第2暗号化特徴量との内積値が所定の閾値以下であるプライバシデータを、第2装置に送信する。
ステップS4において、第1装置への不正アクセスが検出された場合に、クエリに含まれている秘匿情報を用いてユーザの秘密鍵を特定し、ユーザの秘密鍵を特定する特定情報を第2装置に出力する。
また、プロセッサ510は、メモリ520を用いて所定のプログラムを実行することにより、受信部511と、演算部512と、送信部513と、特定部514との各機能を実現し得る。
受信部511は、プロセッサ510により、ユーザに固有の秘匿情報が付加された第1暗号化特徴量を含むクエリを、第1装置に接続された第2装置から受信し、第1暗号化特徴量は、ユーザのプライバシデータから算出された第1特徴量を、内積暗号を用いて暗号化することにより生成されており、第1特徴量はn次元のベクトルで表される。
演算部512は、プロセッサ510により、第1暗号化特徴量と複数の第2暗号化特徴量のそれぞれとを内積演算することで、複数の内積値を取得する。
送信部513は、プロセッサ510により、複数のプライバシデータのうちのプライバシデータであって、第1暗号化特徴量と、当該プライバシデータから算出された参照特徴量が暗号化された第2暗号化特徴量との内積値が所定の閾値以下であるプライバシデータを、第2装置に送信する。
特定部514は、プロセッサ510により、第1装置への不正アクセスが検出された場合に、クエリに含まれている秘匿情報を用いてユーザの秘密鍵を特定し、ユーザの秘密鍵を特定する特定情報を第2装置に出力する。
これにより、情報処理システム10Aは、端末の処理負荷及び通信量の増大を抑制しながら、プライバシデータをより適切に保護する。
(実施の形態の変形例2)
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記実施の形態に限定されないのは勿論である。以下のような場合も本発明に含まれる。
(1)上記実施の形態では、グループ署名を用いて、ユーザ端末装置100から漏えいした鍵を特定しているが、Traitor Tracing技術を用いてもよい。Traitor Tracing技術は、非特許文献3の技術を適用し得る。
具体的な構成は以下となる。ここでユーザ端末装置100の個数をmとし、つまり、ユーザ端末装置1001からユーザ端末装置100mまでのm個のユーザ端末装置100が存在する場合を一例に説明する。また、非特許文献4の内積暗号を用いて説明する。
m行m列の行列Hと、m次のベクトルeとを用いて、e=aHとなるように設定したシステム秘密鍵であるm次のベクトルaをデータ提供装置300の鍵格納部303およびデータ検証装置400の鍵格納部402に格納する。
また、行列Hのi列目を構成するベクトルHi、および、ベクトルeのi番目の要素eiをユーザ秘密鍵として、ユーザ端末装置100iの鍵格納部103に格納する。ここで、iは、1からmまでの各整数値をとる。以降でも同様とする。また、このユーザ秘密鍵が、ユーザに固有の秘匿情報に相当する。
ユーザ端末装置100iは、特徴量暗号部104で暗号化する際に、内積暗号の暗号化に、内積暗号の秘密鍵と、ユーザ秘密鍵であるベクトルHiと要素eiとを用いる。具体的な暗号処理演算を図14Aに示す。図14AにおいてCTxは、暗号化特徴量を示している。ここで、暗号処理演算でユーザ秘密鍵であるベクトルHiと要素eiとを入力することで、CTxは、ユーザ端末装置100iに固有の暗号化特徴量となり、ユーザ端末装置100iを特定する特定情報が含まれている。ユーザ端末装置100iは、上記にして得たCTxを実施の形態1のステップS106のクエリとして送信する。
データ提供装置300は、参照特徴量暗号部302で暗号化する際に、内積暗号の暗号化に内積暗号の秘密鍵とシステム秘密鍵aとを用いる。具体的な暗号処理演算を図14Bに示す。図14BにおいてSKyは、暗号化参照特徴量を示している。ここでyは、参照特徴量Ykのそれぞれを示している。すなわち上記実施の形態の例ではSKyがk個存在することになる。
データ演算装置200は、ユーザ端末装置100iから得た暗号化特徴量CTxと、データ提供装置300から得た複数のSKyとに基づいて、暗号化距離を計算する。具体的な距離計算処理を図14Cに示す。このとき、
からxとyとの内積値が演算できる。このとき、e=aHが成り立つため、CTxとSKyとを演算して、xとyとの内積値のみが出力される。
データ検証装置400は、参照特徴量と同じ次元のベクトルytを生成し、鍵格納部402が保持しているベクトルaとの内積暗号を用いてSKytを生成する。次に鍵格納部402が保持しているベクトルaを、ユーザ端末装置100jにより生成された暗号化特徴量だけがe=aHを成立させないようなm次のベクトルajに変更して、SKytjを生成する。このとき、m次のベクトルaの要素のうち、ユーザ端末装置100jに対応する要素に乱数を入力することでベクトルajを生成する。データ検証装置400は、図14Cの演算と同様に、データ演算装置200から受信した暗号化特徴量を、SKytとSKytjとのそれぞれに演算し、内積値Dを求める。このとき、CTxに対し、SKytとSKytjとのそれぞれとの演算により得られた内積値Dが同じである場合、ユーザ端末装置100jの鍵が漏えいしていると特定できる。
これにより、データ演算装置200では、ユーザ端末装置100の特徴量とデータ提供装置300の参照特徴量とを暗号化されたまま扱い、すなわち平文で扱わないので、プライバシデータを保護することができる。また、ユーザ端末装置100から漏えいした鍵を特定できることで、漏えいした鍵を排除してシステムの更新をすることができる。また、漏えいした鍵を特定することは、攻撃者の特定につながる可能性があることから、攻撃を抑止させる効果も奏する。
このように、データ演算装置200は、第2暗号化特徴量とクエリに含まれる第1暗号化特徴量との内積値である第1内積値を取得することと、システム秘密鍵の要素のうち、複数のユーザのうちの一のユーザに対応する要素を乱数に変更した検証用秘密鍵を、複数のユーザごとに生成することと、参照特徴量を、検証用秘密鍵を用いた内積暗号により暗号化することで生成した検証値と、クエリに含まれる第1暗号化特徴量との内積値である第2内積値を、複数のユーザごとに取得することと、複数のユーザのうち、第1内積値と第2内積値とが一致しないユーザの秘密鍵を特定することと、によって、ユーザの秘密鍵を特定する。
(2)上記実施の形態では、ユークリッド距離を演算する場合のユーザ端末装置100およびデータ提供装置300における変換の一例を示したが、その際、<X’,Y1’>が下記(式4)を満たすように変換すればよい。
Σxj^2+Σy1j^2−2x1・y11−2x2・y12−・・・−2xn・y1n=Σ(xj−y1j)^2 (式4)
具体的な別の変換方法としては、X’=(Σxj^2, 1, −2x1, −2x2, ・・・ , −2xn)と変換し、Y1’=(1,Σy1j^2, y11,y12, ・・・ , y1n)と変換してもよい。
(3)上記実施の形態では、内積暗号を用いてユークリッド距離を演算する一例を示したが、重み付きユークリッド距離を演算してもよい。重み付きユークリッド距離を演算する場合、各要素jの重みをwjとすると、ユーザ端末装置100での変換方法は、X’=(Σ(wj・xj^2), 1, x1, x2, ・・・ , xn)とし、データ提供装置300での変換方法は、Y1’=(1,Σ(wj・y1j^2), −2w1・y11, −2w2・y12, ・・・ , −2wn・y1n)となる。このとき、<X’,Y1’>は、下記(式5)のように表わされる。
<X’,Y1’>
=Σ(wj・xj^2)+Σ(wjyij^2)−2w1・x1・yi1−2w2・x2・yi2−・・・−2wn・xn・yin
=Σwj(xj−yij)^2 (式5)
(4)上記実施の形態では、暗号化距離計算部201は、特徴量暗号部104および参照特徴量暗号部302で変換することによってユークリッド距離を計算しているが、変換方法を以下のようにすることによって、特徴量と参照特徴量との差分のn乗を計算することができる。特徴量と参照特徴量との差分のn乗は、ユークリッド距離を拡張したものに相当する。
例えば、Σ(xj−y1j)^3を計算する場合、X’およびY1’は、それぞれ、下記(式6)および(式7)により変換される。
X’=(Σxj^3, 1, x1^2,x1,x2^2,x2, ・・・ , xn^2,xn)(j=1,・・・,n) (式6)
Y1’=(1,Σy1j^3, −3y11,3y11^2, −3y12,3y12^2,・・・ , −3y1n,3y1n^2) (式7)
このとき、<X’,Y1’>=Σ(xj−y1j)^3となるので、特徴量と参照特徴量との差分の3乗を計算できる。同様に変換を行うとn乗の計算もすることができる。
なお、さらなるユークリッド距離の拡張として、例えば、最初の項は2乗、2番目の項は3乗といった要素ごとにべき乗値を変更した値であっても、同様に変換可能である。
(5)上記実施の形態では、ユークリッド距離を演算できるようにデータ提供装置300で参照特徴量を事前に変換し、データ演算装置200で変換して暗号化した暗号化参照特徴量を、格納しておいてもよい。
(6)上記実施の形態では、データ演算装置200において、図8に示されるように、全てのIDに対応する全ての暗号化参照特徴量に関して、内積演算の結果としてのユークリッド距離が、類似判定のための条件を満たすか否かに係る判定を行うこととしたが、例えば、類似判定のための条件を満たすと判定されるものが所定数個あることが判明した時点で、判定を終了することとしてもよい。ここで所定数は、例えば10とする。
また、データ演算装置200は、全ての参照特徴量のうち、特徴量とのユークリッド距離が小さいものから所定数個の参照特徴量に対応する参照データのみを、ユーザ端末装置100に送信することとしてもよい。ここで所定数は、例えば10とする。
(7)上記実施の形態におけるデータ提供装置300からデータ演算装置200への暗号化参照特徴量の送信は、データ演算装置200からデータ提供装置300への要求に応じて行ってもよいし、要求の有無にかかわらず自発的にデータ提供装置300が行ってもよい。
また、データ演算装置200は、ユーザ端末装置100から類似検索に係る要求を受信した後に、データ提供装置300に暗号化参照特徴量の送信を要求することとし、この要求に応じてデータ提供装置300がデータ演算装置200に暗号化参照特徴量を送信することとしてもよい。
(8)上記実施の形態では、データ検証装置400のステップS204では、受信したクエリのグループ署名の検証を行うとしてもよい。
(9)上記実施の形態では、データ提供装置300とデータ検証装置400とを別の装置としているが、同じ装置としてもよい。
(10)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。RAMまたはハードディスクユニットには、コンピュータプログラムが記録されている。
マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(11)上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。RAMには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又はすべてを含むように1チップ化されてもよい。
また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
(12)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ICカードまたはモジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
(13)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、コンピュータプログラムまたはデジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されているデジタル信号であるとしてもよい。
また、本発明は、コンピュータプログラムまたはデジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、上記コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムにしたがって動作するとしてもよい。
また、プログラムまたはデジタル信号を記録媒体に記録して移送することにより、またはプログラムまたはデジタル信号をネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(14)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
なお、上記態様において説明された技術は、例えば、以下のクラウドサービスの類型において実現されうる。しかし、上記態様において説明された技術が実現されるクラウドサービスの類型はこれらに限られるものでない。
(サービスの類型1:自社データセンタ型クラウドサービス)
図15は、サービスの類型1(自社データセンタ型クラウドサービス)における情報管理システムが提供するサービスの全体像を示す図である。本類型では、サービスプロバイダ1120がグループ1100から情報を取得し、ユーザに対してサービスを提供する。本類型では、サービスプロバイダ1120が、データセンタ運営会社の機能を有している。すなわち、サービスプロバイダ1120が、ビッグデータを管理するクラウドサーバ1111を保有している。したがって、データセンタ運営会社は存在しない。
本類型では、サービスプロバイダ1120は、データセンタ(クラウドサーバ)1203を運営及び管理している。また、サービスプロバイダ1120は、オペレーティングシステム(OS)1202及びアプリケーション1201を管理する。サービスプロバイダ1120は、サービスプロバイダ1120が管理するOS1202及びアプリケーション1201を用いてサービスを提供する(矢印1204)。
(サービスの類型2:IaaS利用型クラウドサービス)
図16は、サービスの類型2(IaaS利用型クラウドサービス)における情報管理システムが提供するサービスの全体像を示す図である。ここで、IaaSとは、インフラストラクチャー・アズ・ア・サービスの略であり、コンピュータシステムを構築および稼動させるための基盤そのものを、インターネット経由のサービスとして提供するクラウドサービス提供モデルである。
本類型では、データセンタ運営会社1110が、データセンタ(クラウドサーバ)1203を運営及び管理している。また、サービスプロバイダ1120は、OS1202及びアプリケーション1201を管理する。サービスプロバイダ1120は、サービスプロバイダ1120が管理するOS1202及びアプリケーション1201を用いてサービスを提供する(矢印1204)。
(サービスの類型3:PaaS利用型クラウドサービス)
図17は、サービスの類型3(PaaS利用型クラウドサービス)における情報管理システムが提供するサービスの全体像を示す図である。ここで、PaaSとは、プラットフォーム・アズ・ア・サービスの略であり、ソフトウェアを構築および稼動させるための土台となるプラットフォームを、インターネット経由のサービスとして提供するクラウドサービス提供モデルである。
本類型では、データセンタ運営会社1110は、OS1202を管理し、データセンタ(クラウドサーバ)1203を運営及び管理している。また、サービスプロバイダ1120は、アプリケーション1201を管理する。サービスプロバイダ1120は、データセンタ運営会社1110が管理するOS1202及びサービスプロバイダ1120が管理するアプリケーション1201を用いてサービスを提供する(矢印1204)。
(サービスの類型4:SaaS利用型クラウドサービス)
図18は、サービスの類型4(SaaS利用型クラウドサービス)における情報管理システムが提供するサービスの全体像を示す図である。ここで、SaaSとは、ソフトウェア・アズ・ア・サービスの略である。SaaS利用型クラウドサービスは、例えば、データセンタ(クラウドサーバ)を保有しているプラットフォーム提供者が提供するアプリケーションを、データセンタ(クラウドサーバ)を保有していない会社又は個人などの利用者がインターネットなどのネットワーク経由で使用できる機能を有するクラウドサービス提供モデルである。
本類型では、データセンタ運営会社1110は、アプリケーション1201を管理し、OS1202を管理し、データセンタ(クラウドサーバ)1203を運営及び管理している。また、サービスプロバイダ1120は、データセンタ運営会社1110が管理するOS1202及びアプリケーション1201を用いてサービスを提供する(矢印1204)。
以上、いずれのクラウドサービスの類型においても、サービスプロバイダ1120がサービスを提供する。また、例えば、サービスプロバイダ又はデータセンタ運営会社は、OS、アプリケーション又はビッグデータのデータベース等を自ら開発してもよいし、また、第三者に外注させてもよい。
以上のように本実施の形態に係る情報処理方法によれば、情報処理システムは、ユーザのプライバシデータに基づく第1暗号化特徴量と、複数のプライバシデータに基づく複数の第2暗号化特徴量とを用いて、特徴量が暗号化された状態のままで類否判断がなされるので、プライバシデータが適切に保護される。また、類否判断により、ユーザのプライバシデータに類似すると判定されたプライバシデータだけが第2装置つまりユーザ端末装置に提供されるので、端末装置の処理負荷および通信量の増大を抑制することができる。さらに、不正アクセスを検出したことに基づいて、第1暗号化特徴量の暗号化に使用された秘密鍵が漏えいした可能性がある場合に、漏えいした可能性がある秘密鍵を特定し得る。これにより、秘密鍵が漏えいした可能性を認知し、漏えいした秘密鍵を使用しないようにシステム更新をするなどの運用が可能となる。このように、本態様に係る情報処理システムは、端末の処理負荷及び通信量の増大を抑制しながら、プライバシデータをより適切に保護することができる。
また、情報処理システムは、ユーザに固有の秘匿情報としてグループ署名を用い、また、グループ署名の開示鍵を用いて、ユーザの秘密鍵を特定し得る。本態様に係る情報処理システムは、このような具体的構成に基づいて、情報処理システムは、端末の処理負荷及び通信量の増大を抑制しながら、プライバシデータをより適切に保護することができる。
また、情報処理システムは、ユーザに固有の秘匿情報としてTraitor Traicingにおけるユーザに固有の秘密鍵を用い、また、Traitor Traicingによるトレース処理により、ユーザの秘密鍵を特定し得る。本態様に係る情報処理システムは、このような具体的構成に基づいて、端末の処理負荷及び通信量の増大を抑制しながら、プライバシデータをより適切に保護することができる。
また、情報処理システムは、ユーザのプライバシデータとしてユーザのバイタルデータを用いて、複数のバイタルデータのうちからユーザのバイタルデータに類似するバイタルデータを抽出できる。これにより、バイタルデータをより適切に保護することができる。
また、情報処理システムは、ユーザのプライバシデータとしてユーザによる機器等の操作のログ情報を用いて、複数の操作のログ情報のうちからユーザの操作のログ情報に類似する操作のログ情報を抽出できる。これにより、操作のログ情報をより適切に保護することができる。
また、情報処理システムは、ユーザの身体の形状などを特徴量として用いて類否判断を行う。本態様に係る情報処理システムは、このような具体的構成に基づいて、端末の処理負荷及び通信量の増大を抑制しながら、プライバシデータをより適切に保護することができる。
また、情報処理システムは、互いに異なる複数人のバイタルデータのうちから、ユーザのバイタルデータに類似するバイタルデータを抽出できる。これにより、同一人の複数のバイタルデータを抽出することが回避されることで、抽出できるバイタルデータがより一層利用しやすいものとなる。
なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記各実施の形態の情報処理システムなどを実現するソフトウェアは、次のようなプログラムである。
すなわち、このプログラムは、コンピュータに、第1装置を含む情報処理システムが実行する情報処理方法であって、前記第1装置は、プロセッサとメモリとを備え、前記メモリは、予め取得された複数のプライバシデータから算出された複数の参照特徴量のそれぞれを内積暗号を用いて暗号化することにより生成された複数の第2暗号化特徴量を記憶しており、前記複数の参照特徴量のそれぞれはn次元のベクトルで表され、nは1以上の整数であり、前記プロセッサにより、(a)ユーザに固有の秘匿情報が付加された第1暗号化特徴量を含むクエリを、前記第1装置に接続された第2装置から受信し、前記第1暗号化特徴量は、ユーザのプライバシデータから算出された第1特徴量を、内積暗号を用いて暗号化することにより生成されており、前記第1特徴量はn次元のベクトルで表され、(b)前記第1暗号化特徴量と前記複数の第2暗号化特徴量のそれぞれとを内積演算することで、複数の内積値を取得し、(c)前記複数のプライバシデータのうちのプライバシデータであって、前記第1暗号化特徴量と、当該プライバシデータから算出された参照特徴量が暗号化された第2暗号化特徴量との内積値が所定の閾値以下であるプライバシデータを、前記第2装置に送信し、(d)前記第1装置への不正アクセスが検出された場合に、前記クエリに含まれている前記秘匿情報を用いて前記ユーザの秘密鍵を特定し、前記ユーザの前記秘密鍵を特定する特定情報を前記第2装置に出力する情報処理方法を実行させる。
以上、一つまたは複数の態様に係る情報処理方法などについて、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。