以下に添付図面を参照して、この発明にかかる解析方法、解析装置、および解析プログラムの実施例を詳細に説明する。
図1は、本実施例にかかる暗号化データの解析の流れを説明するための図である。図1は、データを収集および管理する収集システムと、当該収集システムが収集したデータを解析する解析装置とを示す。収集システムは、複数のセンサノード20−1乃至20−4、端末装置30−1および30−2、ゲートウェイ装置40、収集装置50を含む。なお、センサノード、端末装置、ゲートウェイ装置の数等は図1に示す個数に限定されない。また、センサノード、端末装置の両方を含まなくともよい。
センサノード20−1乃至20−4は、暗号処理を行う装置である。そして、センサノード20−1乃至20−4は、無線通信機能を有し、所定のデータを検出する装置である。センサノード20−1乃至20−4は、有線通信機能を有していてもよい。なお、センサノード20−1乃至20−4は、以下、センサノード20と称する。また、センサノード20は、携帯端末等のコンピュータであってもよい。
本実施例において、センサノード20は、センサにより検出された検出値を暗号化する。そして、センサノード20は、乱数生成器により生成された乱数を、検出値に算術演算することで、暗号化データを生成する。例えば、センサノード20は、乱数を検出値に算術加算する。また、乱数生成器は、あらかじめ設定された乱数パラメータにしたがって、乱数を生成する。なお、乱数パラメータについては、後述する。
そして、センサノード20は、ゲートウェイ装置40に対して、暗号化データ、機器ID、集計用情報、データ種別IDを含むデータパケットを送信する。なお、データパケットは、収集装置50において、暗号化データが復号可能なように、乱数生成時に利用した初期ベクトルをさらに含む。
機器IDは、各センサノード20を識別する情報である。集計用情報は、暗号化データが関連する対象を識別する情報である。集計用情報は、単に識別子と称する場合もある。例えば、集計用情報は、検出値が検出された場所の位置情報である。さらに、集計用情報は、検出値を検出した時刻情報を含んでもよい。
データ種別IDは、暗号化される元データの種類を識別する情報である。データ種別IDが共通の暗号化データは、同じデータ系列の暗号化データであるとみなされる。また、共通のデータ種別IDに対応する複数の暗号化データは、ひとつの暗号化データ群を構成する。
また、センサノード20は、図1に示すようなアドホックネットワーク60を介して、ゲートウェイ装置40へデータパケットを送信してもよい。つまり、センサノード20−1乃至20−4は、転送経路にしたがって、データパケットをマルチホップ通信することで、ゲートウェイ装置40へデータパケットが届けられる。
端末装置30−1および30−2は、暗号処理を行う装置である。そして、端末装置30−1および30−2は、通信機能を有するコンピュータである。なお、端末装置30−1および30−2は、以下、端末装置30と称する。例えば、端末装置30は、収集システムにおいて収集対象となるデータを、一時的に管理する。例えば、収集対象となるデータは、ユーザにより入力されたデータや、ユーザにより入力されたデータに何らかの処理を行ったデータである。
端末装置30は、センサノード20と同様に、収集対象のデータを暗号化することで、暗号化データを生成する。そして、端末装置30は、暗号化データ、機器ID、集計用情報、データ種別IDを含む提供データを、ゲートウェイ装置40へ送信する。
ゲートウェイ装置40は、インターネット、LAN、WANなどの通常ネットワーク61を介して、解析装置10、端末装置30と接続される。また、センサノード20がアドホック通信を行う場合には、ゲートウェイ装置40は、アドホックネットワーク60と通常ネットワーク61との間で情報をプロトコル変換する。そして、センサノード20や端末装置30から受信した暗号化データ等のデータを、収集装置50へ送信する。さらに、ゲートウェイ装置40は、センサノード20や端末装置30から受信した暗号化データ等のデータを複製し、解析装置10へ送信する。
収集装置50は、暗号化データを収集および管理するコンピュータである。収集装置50は、センサノード20や端末装置30における暗号化処理において用いられる暗号鍵の情報を、所有する。よって、収集装置50は、必要に応じて、暗号化データを復号することができる。
次に、解析装置10は、解析処理を行うコンピュータである。ここで、本実施例においては、解析処理として、解析装置10は、種々の統計量を算出する。解析装置10は、暗号化データを復号するための鍵は有さない。よって、解析装置10は、暗号化データを復号することはない。
解析装置10は、ゲートウェイ装置40から、暗号化データ、機器ID、集計用情報、データ種別IDが対応づいたデータを受信する。解析装置10は、各センサノード20、各端末装置30に設定された乱数生成用のパラメータを利用して、暗号化データにかかる統計量を算出する。各センサノード20、各端末装置30に設定された乱数生成用のパラメータ情報を、統計処理に先駆けて、収集装置50から取得する。詳細は後述するが、パラメータ情報は、生成される乱数の分布を制御するための情報であって、各センサノード20や各端末装置30に対して、収集装置50の制御の下、配布される。
解析装置10は、乱数生成用パラメータから算出される乱数平均を利用して、乱数の効果を排除した、種々の統計量の演算を行う。ここで、乱数の効果を排除するとは、例えば、暗号化データが乱数の算術加算により生成されている場合には、乱数の平均値を暗号化データから減算する。
解析装置10が算出する種々の統計量は、例えば、ある系列に関する暗号化データの元データの合計値、平均値、分散、標準偏差である。
また、解析装置10は、集計用情報を用いて、複数の系列の暗号化データを、互いに対応付ける。あるセンサノード20から受信した集計用情報と、ある端末装置30から受信した集計用情報が、同一または関連する場合、当該ノード20から受信した暗号化データと、当該端末装置30から受信した暗号化データを対応付ける。例えば、同じ位置情報に関する複数の系列の暗号化データが対応付けられ、管理される。この場合、解析装置10は、対応付けられた2つの系列に関する暗号化データを処理することで、元データの共分散、相関係数を算出する。
解析装置10は、算出した統計量を、解析結果として、収集装置50や、端末装置30など所定の宛先へ送信する。
以上のように、解析装置10は、暗号化データを復号することなく解析処理を行い、種々の統計量を簡易に演算することができる。収集システムは、暗号鍵に関する情報を収集システムの外部へ提供することなく、おおよその統計量を得ることができる。ここで、解析装置10が算出する統計量は、おおよその値である。しかし、全体の傾向を把握するためには、おおよその統計量であっても、収集システム側のユーザにとっては有用である。
次に、収集装置50の機能的構成について説明する。図2は、収集装置50の機能ブロック図である。収集装置50は、通信部51、制御部52、パラメータ情報記憶部55、暗号化データ記憶部56、鍵情報記憶部57を有する。
通信部51は、他の装置と通信を行う処理部である。例えば、通信部51は、解析装置10に、乱数生成用のパラメータを送信する。また、解析装置10から解析結果を受信する。
制御部52は、収集装置50における各種処理を制御する処理部である。本実施例にかかる制御部52は、例えば、生成部53と管理部54を含む。生成部53は、乱数生成用のパラメータを生成する処理部である。管理部54は、各種記憶部にデータを格納する処理部である。例えば、乱数生成用のパラメータに関するパラメータ情報を、パラメータ情報記憶部55に格納する。また、暗号化データを、暗号化データ記憶部56へ記憶する。
パラメータ情報記憶部55は、乱数生成用のパラメータ情報を記憶する記憶部である。図3は、パラメータ情報記憶部55のデータ構成例を示す図である。パラメータ情報記憶部55は、パラメータID、中心値、下限値、上限値、分布種別、乱数平均値、乱数の二乗値の平均値、機器ID、データ種別IDとを対応付けて記憶する。なお、中心値、下限値、上限値、分布種別は、各センサノード20等で生成される乱数の分布を制御する。
ここで、パラメータ情報には、元データの予測値の範囲を、少なくとも含む範囲で、上限値と下限値が設定される。つまり、下限値と上限値により規定される乱数の範囲は、元データの予測値の範囲を含む。これは、乱数の影響が元データに対して小さい場合、元データの秘匿化が不十分になることを防ぐためである。例えば、元データの値が、50乃至100であることが予測される場合は、例えば、下限値―127から上限値+127までと設定される。
元データの予測値の範囲に対して、乱数の範囲が大きすぎないことが望ましい。後述する解析処理において、暗号化データに対して乱数の影響を排除することで、解析装置10は統計量を算出する。ここでは、大数の法則により、より多くの暗号化データを統計処理することで、より精度の高い統計量を得ることができる。従って、設定された乱数のパラメータ情報と、得られた暗号化データの個数とから、得られる統計量の精度が算出される。
一方、元データの予測値の範囲に対して、乱数の範囲が大きすぎると、一定の精度が見込める統計量を算出するために、より多くの暗号化データが必要となる。したがって、収集システムの規模、つまり、収集が見込める暗号化データの数に応じて、元データの予測値の範囲に対する乱数の範囲を決定することも可能である。
パラメータIDは、乱数の分布ごとに一意に付される情報である。中心値は、乱数の分布の中央となる値である。なお、おおよそ中央の値が格納されてもよい。下限値は、乱数の分布の下限となる値である。上限値は、乱数の分布の上限となる値である。
分布種別は、乱数の分布の形状を識別する情報である。例えば、一様分布、正規分布等の情報が格納される。乱数平均値は、複数回の乱数生成により生成される乱数の平均値である。乱数平均値は、中心値、下限値、上限値、分布種別に応じて決定される。乱数の二乗値の平均値は、複数回の乱数生成により生成される乱数の二乗値の平均値である。乱数の二乗値の平均値は、中心値、下限値、上限値、分布種別に応じて決定される。
機器IDは、当該パラメータIDに対応するパラメータが設定された機器の機器IDが格納される。例えば、図3の例では、パラメータID「1」のパラメータは、センサノード「N20」、「N21」などに設定されたことを示す。なお、各機器に設定するパラメータは、収集システムの管理者により指定される。
データ種別IDは、パラメータIDに対応する乱数生成用のパラメータが適用されるデータ種別のデータ種別IDが格納される。本実施例においては、あるデータ種別のデータを暗号化する際には、同じパラメータに基づき生成された乱数が適用される。収集システムの管理者は、あるデータ系列に適用するパラメータを指定する。つまり、収集システムの管理者は、同一のデータ種別のデータを検出または取得するセンサノードや端末装置を特定し、特定されたセンサノードや端末装置に対しては、同一のパラメータを配布する。
次に、暗号化データ記憶部56は、暗号化データを、各種情報とともに記憶する記憶部である。図4は、暗号化データ記憶部56のデータ構成例を示す図である。暗号化データ記憶部56は、集計用情報と、機器IDと、暗号化データと、初期ベクトルとを、データ種別IDごとに記憶する。例えば、図4では、データ種別ID「X1」の例を示している。
収集装置50が集計用情報「0001」と機器ID「N20」と暗号化データ「m0001」と初期ベクトル「V1」とデータ種別ID「X1」をゲートウェイ装置40から受信した場合に、管理部54によって、データ種別ID「X1」に対応付けて、集計用情報「0001」と機器ID「N20」と暗号化データ「m0001」と初期ベクトル「V1」とが格納される。
鍵情報記憶部57は、鍵情報を記憶する記憶部である。鍵情報は、センサノード20や端末装置30における暗号処理において利用される鍵の情報である。事前に、収集装置50と、センサノード20または端末装置30との間で共有される。
図5は、鍵情報記憶部57のデータ構成例を示す図である。鍵情報記憶部57は、機器IDと鍵情報とを対応付けて記憶する。例えば、機器ID「N20」であるセンサノード20は、鍵情報KEY_N20を共有していることを示す。
なお、収集装置50が暗号化データを復号する場合、制御部52は、暗号化データ記憶部56から復号対象の暗号化データに対応する機器IDを取得する。そして、制御部52は、取得した機器IDに対応する鍵情報を、鍵情報記憶部57から取得する。制御部52は、鍵情報と、初期ベクトルとを用いて、暗号化データを復号することができる。なお、本実施例においては、解析処理は解析装置10が行うため、収集装置50は、その他必要に応じて復号処理を行うこととする。
次に、センサノード20の機能構成について説明する。図6は、センサノードの機能ブロック図である。センサノード20は、通信部21、制御部22、設定情報記憶部26を有する。
通信部21は、他の装置と通信を行う処理部である。例えば、データパケットを、ゲートウェイ装置40へ送信する。
制御部22は、センサノード20における各種処理を制御する処理部である。本実施例において、制御部22は、取得部23、暗号処理部24、パケット生成部25を含む。取得部23は、検出値を取得する処理部である。例えば、取得部23は、センサから検出値を取得する。なお、取得した検出値は、図示しない記憶部に一時的に記憶されてもよい。また、通信部21は、取得部22が取得値を取得するたびに、データパケットを送信してもよいし、一定個数の取得値を検出した場合に、複数のデータパケットを送信するとしてもよい。
暗号処理部24は、検出値を暗号化し、暗号化データを生成する。例えば、パラメータ設定された乱数生成器は、初期ベクトルと鍵情報とに基づいて乱数を生成する。ここで、パラメータは、後述の配布パラメータ情報に基づいて設定される。よって、収集装置50により制御された一定の分布を持つ乱数が生成される。
暗号処理部24は、乱数を検出値に加算することで、暗号化データを生成する。なお、本実施例においては、乱数生成器の機能は、暗号処理部が担うものとする。
パケット生成部25は、データパケットを生成する。具体的には、パケット生成部25は、暗号化データに対して、機器ID、集計用情報、データ種別IDを付加する。また、宛先情報等を含むヘッダ情報を生成する。なお、通信部21は、ヘッダ情報に基づいて、データパケットを送信する。
設定情報記憶部26は、設定情報を記憶する。設定情報は、当該センサノードに配布された鍵情報と、乱数生成器の設定用に配布された配布パラメータ情報とを含む。配布パラメータ情報は、先に述べたパラメータ情報の少なくとも一部を含む情報である。本実施例においては、パラメータ情報のうち、少なくとも、中心値、下限値、上限値、分布種別が、配布パラメータ情報として各センサノードに配布されるものとする。
図7AおよびBは、設定情報記憶部26のデータ構成例を示す図である。図7Aは、設定情報のうちの鍵情報を示す。自装置に配布された暗号化用の鍵に関する鍵情報が記憶される。図7Aの例は、センサノード「N20」に記憶される鍵情報の例を示している。
図7Bは、配布パラメータ情報を示す。図7Bに示す例のように、中心値、下限値、上限値、分布種別が設定情報記憶部26に記憶される。図7Bの例では、中心値「A1」、下限値「B1」、上限値「C1」、分布種別「一様分布」が乱数生成器のパラメータとして、センサノード「N20」に設定されたことを示している。
次に、端末装置30の機能構成について説明する。図8は、端末装置30の機能ブロック図である。端末装置30は、通信部31、制御部32、設定情報記憶部36を有する。
通信部31は、他の装置と通信を行う処理部である。例えば、提供データを、ゲートウェイ装置40へ送信する。
制御部32は、端末装置30における各種処理を制御する処理部である。制御部32は、取得部33と暗号処理部34と提供データ生成部35を含む。取得部33は、収集対象となるデータを取得する処理部である。例えば、取得部33は、ユーザの入力により収集対象となるデータを取得する。なお、取得したデータは、図示しない記憶部に記憶されてもよい。また、データを取得するたびに、後述の提供データを送信してもよいし、一定個数のデータを取得した場合に、まとめて送信するとしてもよい。
暗号処理部34は、収集対象となるデータを暗号化し、暗号化データを生成する。例えば、パラメータ設定された乱数生成器は、初期ベクトルと鍵情報とに基づいて乱数を生成する。ここで、パラメータは、後述の配布パラメータ情報に基づいて設定される。よって、収集装置50により制御された一定の分布を持つ乱数が生成される。
暗号処理部34は、乱数を検出値に加算することで、暗号化データを生成する。なお、本実施例においては、乱数生成器の機能は、暗号処理部が担うものとする。
提供データ生成部35は、提供データを生成する。具体的には、提供データ生成部35は、暗号化データに対して、機器ID、集計用情報、データ種別IDを付加する。また、宛先情報等を含むヘッダ情報を生成する。なお、通信部31は、ヘッダ情報に基づいて、提供データを送信する。
設定情報記憶部36は、設定情報を記憶する。なお。端末装置30が記憶する設定情報は、図7に示すセンサノードに記憶される設定情報と同様である。
次に、解析装置10の機能的構成について説明する。図9は、解析装置10の機能ブロック図である。解析装置10は、通信部11、制御部12、パラメータ情報記憶部15、解析用データ記憶部16を有する。
通信部11は、他の装置と通信を行う処理部である。例えば、ゲートウェイ装置40から、暗号化データ、機器ID、集計用情報、データ種別IDが対応づいたデータを受信する。さらに、通信部11は、収集装置50など所定の宛先へ解析結果を送信する。
制御部12は、解析装置10における各種処理を制御する処理部である。制御部12は、管理部13と解析部14を有する。
管理部13は、各種記憶部にデータを格納する処理部である。例えば、パラメータ情報を、パラメータ情報記憶部15に格納する。また、暗号化データを含む解析用データを、解析用データ記憶部16へ記憶する。なお、解析用データは、データ種別ごとに、暗号化データと、当該暗号化データを生成した機器の機器ID、集計用情報とが対応づけられた情報である。
解析部14は、解析用データと、パラメータ情報に基づいて、種々の統計量を算出する。例えば、暗号化データから乱数の平均値を逆演算することで、種々の統計量を算出する。ここでいう逆演算は、暗号化データ生成時の演算に対する逆演算である。例えば、元データに対する乱数の算術加算により暗号処理が行われている場合は、暗号化データから乱数の平均値を減算する。
例えば、解析部14は、ある系列の暗号化データに対して、元データの合計値、平均値、分散、標準偏差を算出する。以下、解析部14は算出する各種統計量の算出方法について説明する。
解析部14は、以下の数1の式に基づいて、元データの合計値S(m)の近似値を算出する。Lは暗号化データの総数である。Mkは、暗号化データである。E(r)は、乱数の平均値である。
解析部14は、以下の数2の式に基づいて、元データの平均値E(m)の近似値を算出する。
解析部14は、以下の数3の式に基づいて、元データの分散V(m)の近似値を算出する。なお、E(r2)は、乱数の二乗の平均値である。
解析部14は、以下の数4の式に基づいて、元データの標準偏差σ(m)の近似値を算出する。
また、解析部14は、第一の系列の暗号化データ群と、第二の系列の暗号化データ群とを、集計用情報に基づいて対応付ける。そして、解析部14は、パラメータ情報に基づいて、対応づいた2系列のデータ群の間で、共分散および相関係数を算出する。
解析部14は、以下の数5の式に基づいて、2系列データ間の共分散C(m,n)の近似値を算出する。Mkは、第一の系列の暗号化データである。E(r)は、第一の系列のデータに対する暗号化に用いられた乱数の平均値である。Nkは、第二の系列の暗号化データである。なお、E(s)は、第二の系列のデータに対する暗号化に用いられた乱数の平均値である。また、第一の系列のデータの平均値E(m)の近似値および、第二の系列のデータの平均値E(n)の近似値は、数2により求められる。
解析部14は、以下の数6の式に基づいて、2系列データ間の相関係数c(m,n)の近似値を算出する。
解析部14は、以下の数7の式に基づいて、2系列データ間の内積I(m.n)の近似値を算出する。
本実施例においては、収集装置50の制御の下、同一の系列に属するデータの暗号化を行う各センサノード20または各端末装置30に対しては、同一のパラメータを設定する。したがって、上記式においては、解析処理の対象となる系列に適用されたパラメータ情報が利用される。
以上のように、解析部14は、各種式に基づいて、統計量を算出する。解析部14は、収集システム側から指定された統計量を算出するとしてもよく、上記の統計量をすべて算出するとしてもよい。
ここで、ある系列のデータを大量に統計する場合、大数の法則が利用できる。そこで、乱数の平均値または、乱数の二乗の平均値を利用することで、暗号化データを復号することなく、統計量を算出することができる。なお、大数の法則にのっとり、ある系列のデータ数が多くなればなるほど、より真の値に近い統計量を算出することができる。
また、先にあげた先行技術においては、準同型を保ったまま暗号操作可能な演算の種類に限りがあるため、例えば、平方根計算を伴う相関係数を解析することはできない。しかし、本実施例によれば、暗号化データを秘匿したまま相関係数をはじめとする種々の統計量を算出することができる。
次に、パラメータ情報記憶部15は、パラメータ情報を記憶する記憶部である。図10は、解析装置10のパラメータ情報記憶部15のデータ構成例を示す図である。
パラメータ情報記憶部15は、パラメータID、中心値、下限値、上限値、分布種別、乱数平均値、乱数の二乗の平均値、機器ID、データ種別IDを対応付けて記憶する。なお、解析装置10におけるパラメータ情報記憶部15は、収集装置50のパラメータ情報記憶部55と同様の構成である。また、本実施例においては、パラメータ情報は、収集装置50から解析装置10に提供される。
解析用データ記憶部16は、解析用データを記憶する記憶部である。図11AおよびBは、解析用データ記憶部16のデータ構成例を示す図である。
解析用データ記憶部16は、データ種別ごとに、集計用情報と、機器IDと、暗号化データとを対応付けて記憶する。例えば、図11Aは、データ種別ID「X1」に関する解析用データを示している。例えば、図11Bは、データ種別ID「X3」に関する解析用データを示している。
ここで、解析部14は、2系列データ間の統計量を算出する場合は、2つの解析用データを、集計用情報に基づいて、対応付けを行う。つまり、集計用情報は、各暗号化データの元データが関連する対象を識別する情報であるため、解析部14は、集計用情報を用いて、同様の対象に関連する暗号化データを対応付けることができる。
例えば、解析部14が、データ系列「X1」とデータ系列「X3」の相関係数を算出する場合には、同様の集計用情報に対応するデータ系列「X1」の暗号化データと、データ系列「X2」の暗号化データを紐付ける。例えば、集計用情報が位置情報である場合には、同じ位置情報に関連する複数の暗号化データを紐付けることができる。
また、図11AおよびBの例では、データ種別ごとに異なるテーブルで、解析用データを管理するとして説明を行ったが、解析用データ記憶部16は、複数のデータ種別の暗号化データを、集計用情報に基づいて、あらかじめ対応付けて記憶してもよい。
次に、本実施例にかかる各装置の処理について、説明する。図12は、パラメータの設定に関する処理のフローチャートである。
収集基盤の生成部53は、パラメータ情報を生成する(Op.1)。具体的には、管理者から、中心値、下限値、上限値、分布種別を受け付けた場合に、新たなパラメータIDを付与する。さらに、生成部53が、平均値、下限値、上限値、分布種別に基づいて、乱数平均値、乱数の二乗の平均値を生成する。また、乱数平均値、乱数の二乗の平均値も、管理者により入力されてもよい。
さらに、生成部53は、当該パラメータ情報を設定する対象となる機器IDの指定を受け付ける。さらに、当該パラメータ情報に基づく乱数が適用されるデータ系列のデータ種別IDの指定も受け付ける。生成部53は、パラメータID、中心値、下限値、上限値、分布種別、乱数平均値、乱数の二乗の平均値、機器ID、データ種別IDと対応付けて、パラメータ情報を生成する。
管理部54は、パラメータ情報をパラメータ情報記憶部55へ格納する(Op.2)。なお、すでに登録されたパラメータ情報を新たな機器にも適用する場合は、パラメータ情報の機器IDに新たな機器の機器IDが追加更新されるとしてもよい。
通信部51は、制御部52の制御の下、パラメータ情報の一部である配布パラメータ情報を、各センサノード、端末装置へ送信する(Op.3)。具体的には、通信部51は、中心値、下限値、上限値、分布種別を、パラメータ情報内に規定された機器IDに対して送信する。なお、通信部51は、解析装置に対しても、制御部52の制御の下、パラメータ情報を送信する。
センサノード20の通信部21または端末装置30の通信部31は、配布パラメータ情報を受信する(Op.4)。以下、センサノード20の処理として説明を行う。制御部22は、乱数生成器のパラメータを、受信した配布パラメータ情報に基づいて設定する(Op.5)。さらに、配布パラメータ情報は、設定情報記憶部26に記憶される。通信部21は、制御部22の制御の下、設定完了通知を収集装置50へ送信する(Op.6)。なお、設定完了通知は、設定が完了した旨を通知する情報であって、センサノード20の機器IDを含む情報である。
収集装置50の通信部51は、設定完了通知を受信する(Op.7)。なお、一定時間経過後、設定完了通知を受信しない場合は、配布パラメータを再送するなどの処理を行ってもよい。
以上の処理によって、各センサノード20、端末装置30には、乱数生成用のパラメータが配布されるとともに、乱数生成器にパラメータが設定される。なお、パラメータはネットワークを介さずに、各種センサノードに配布されても良い。
次に、センサノード20または端末装置30における暗号処理について説明する。図13は、センサノード20または端末装置30における暗号処理のフローチャートである。なお、以下はセンサノード20における暗号処理について説明するが、端末装置30においても同様である。また、検出値を取得するたびに、暗号処理を実行するとして説明するが、これに限られない。例えば、一定時間ごと、収集装置50からの命令に応じて、または所定個数の検出値を取得した場合に、暗号処理を行うとしてもよい。
取得部23は、センサから検出値を取得する(Op.10)。なお、端末装置の場合は、例えば、提供対象のデータを取得する。
暗号処理部24は、乱数生成器を利用して乱数を生成する(Op.11)。ここでは、設定情報記憶部26に記憶された鍵情報、および初期ベクトルが利用される。次に、暗号処理部24は、Op.10で取得した検出値に対して乱数を算術加算する(Op.12)。
次に、パケット生成部25はデータパケットを生成する(Op.13)。具体的には、パケット生成部25は、暗号化データ、機器ID、データ種別ID、初期ベクトルを含むデータパケットであって、ヘッダ情報にデータパケットの宛先が設定されたデータパケットを生成する。なお、端末装置30においては、提供データ生成部25が、提供データを生成する。
次に、制御部22の制御の下、通信部21は、データパケットを送信する(Op.14)。なお、送信されたデータパケットは、ゲートウェイ装置40を介して、収集装置50および解析装置10に受信される。
以上の処理により、検出値または提供対象のデータは、設定された乱数パラメータに基づく乱数により暗号化される。つまり、後段の解析処理において、簡易に解析処理が実行可能なように、センサノード20または端末装置30において、暗号化がなされる。
次に、解析装置10における解析処理について説明する。図14は、解析処理のフローチャートである。なお、図14の処理に先駆けて、解析装置10の通信部11は、ゲートウェイ装置40から、暗号化データ、機器ID、集計用情報、データ種別IDが対応づいたデータを受信する。そして、管理部13により、解析用データとして、解析用データ記憶部16に格納される。
解析装置10は、通信部11が収集装置50から解析指示を受信するまで待機する(Op.20No)。解析指示は、算出する統計量の種類および、解析対象となるデータ種別IDが含まれる情報である。なお、解析指示を受信することなく、所定時間ごとにあらかじめ決められた解析処理を行うとしてもよい。
通信部11が、解析指示を受信した場合は(Op.20Yes)、解析部14は、解析指示に基づいて、解析対象のデータ種別IDの解析用データを、解析用データ記憶部16から取得する(Op.21)。なお、解析用データの中の暗号化データのみを取得するとしてもよい。
解析指示にて、2系列データ間の統計量の算出が指示されている場合は(Op.22Yes)、解析部14は、2系列目のデータ種別IDの解析用データを取得する(Op.23)。そして、解析部14は、2系列の暗号化データを、集計用情報に基づいて、対応付ける(Op.24)。
一方、解析指示にて、2系列データ間の統計量の算出が指示されていない場合は(Op.22No)、制御部12は、そのままOp.25へ処理を進める。解析部14は、解析対象となるデータ種別IDに基づいて、適用されたパラメータ情報を、パラメータ情報記憶部15から取得する(Op.25)。
Op.25において、解析対象となるデータ種別IDが複数である場合は、複数のパラメータ情報が取得される。なお、ここでは、パラメータ情報のうち、指定された統計量を算出する際に必要なパラメータ情報のみが取得されるとしてよい。例えば、統計量として平均値を算出する場合は、乱数平均値のみを取得するとしてもよい。
解析部14は、取得した解析用データに含まれる暗号化データ、取得したパラメータ情報に基づいて、指定された統計量を算出する(Op.26)。具体的には、乱数平均を暗号化データから減算し、当該データを利用して統計量を算出する。
次に、通信部11は、制御部12の制御の下、解析結果を、所定の宛先に送信する(Op.27)。
以上の処理によって、解析結果が算出される。解析装置10は、暗号化データを復号することなく、解析を行うことができる。また、より多くの暗号化データに対して解析を行うことで、より精度の高い解析結果を得ることができる。
各センサノード20または各端末装置30における暗号処理で、乱数が算術加算されることで暗号化データが生成されている。よって、解析装置10では、統計量の算出処理において、乱数平均を暗号化データから逆演算することで、あるデータ系列に含まれる複数の暗号化データ全体としては、元データの傾向を回復させることができる。
以下、本実施例の適用例を説明する。例えば、農場の生育管理に適用される例が考えられる。各センサノード20が、降雨量を取得するセンサを有する場合、センサノード20は、取得した降雨量の検出値を暗号化してゲートウェイ装置40へ送信する。また、降雨量に関する検出値であることを示すデータ種別IDや、検出を行ったセンサノードの機器ID、集計用情報等も送信される。なお、設置場所の位置情報を集計用情報として利用する。
一方、作業者が圃場を観察した結果として、位置ごとに作物の生育状況を数値化したデータを端末装置30へ入力するとする。さらに、作業者は、入力されたデータがどの位置の圃場に関連するものであるかを示す位置情報を集計用情報として入力する。
そして、生育状況に関するデータを暗号化するとともに、当該生育状況がどの位置の圃場に関するデータであるかを示す集計用情報とゲートウェイ装置40へ送信する。なお、生育状況に関するデータであることを示すデータ種別IDや、当該端末装置30を識別する機器ID等も送信される。
収集装置50は、ゲートウェイ装置40から、暗号化データを、集計用情報、機器ID、データ種別等とともに、複数取得する。そして、収集装置50は、データ種別IDごとに、暗号化データ、集計用情報、機器ID等を暗号化データ記憶部56に記憶する。
一方、解析装置10は、ゲートウェイ装置40から、暗号化データを、集計用情報、機器ID、データ種別とともに、複数取得する。解析装置10は、データ種別IDごとに、暗号化データ、集計用情報、機器IDを、解析用データとして、解析用データ記憶部16へ記憶する。
解析装置10は、例えば、降雨量と生育状況との間の相関係数を、各データ系列の暗号化データおよびパラメータ情報に基づいて、算出する。そして、算出した結果を、収集装置50へ提供する。なお、センサノードは、降雨量以外にも、日照量、気温、土の温度、湿度などを計測するセンサノードであってもよい。また、端末装置30は、既存の技術を応用し、作業者が撮影した画像から成育状況を示す値を算出するプログラムを実行してもよい。そして、算出された値を本実施例に基づいて、暗号化してゲートウェイ装置40へ送信してもよい。
以上のように、収集システムは、収集システム外の解析装置に対して、暗号化データとパラメータ情報を提供することで、おおむねの統計量である解析結果を入手することができる。また、収集システムは、種々の統計量を、暗号鍵を開示することなく、入手するこができる。
次に、他の実施例にかかる暗号化データの解析の流れを説明する。図15は、他の実施例にかかる暗号化データの解析の流れを説明するための図である。
他の実施例においては、複数の収集システムが存在する。そして、解析装置100は、複数の収集システムから暗号化データを受信するとともに、解析処理の依頼を受ける。例えば、第一の収集システムにおける収集装置500と、第二の収集システムにおける収集装置510から、暗号化データを含む解析用データや、パラメータ情報を取得する。
例えば、複数の店舗で共通で利用できるポイントカードを有する顧客が、第一の収集システムの配下の店舗で買い物をするとともに、ポイントカードを利用する。また、当該顧客は、第二の収集システムの配下の店舗で買い物をするとともに、当該ポイントカードを利用する。
収集装置500または端末装置300は、ポイントカードごとに顧客に配布される顧客識別情報と、各顧客の購買履歴を集計する。例えば、ある顧客がある商品を購入した場合には、購入したことを示す「100」を記録する。一方、ある顧客がある商品を購入していない場合には、購入していないことを示す「50」を記録する。
そして、収集装置500は、集計した各々の顧客の購買履歴を暗号化する。収集装置500は、暗号化された購買履歴の情報を、集計用情報とともに解析装置100へ送信する。なお、ここでは、集計用情報として顧客識別情報が利用される。この場合は、先に示した実施例と同様に、事前に設定された乱数パラメータにしたがって、あるデータ系列については同じパラメータに基づく乱数が適用され、暗号化が行われる。
なお、収集装置500が、購買履歴の集計および暗号化を行うとしたが、暗号化処理は、端末装置300または310で個別に行われてもよい。そして、端末装置300または310から、解析装置100は、暗号化された購買履歴の情報や、顧客識別情報を直接取得してもよい。
同様に、第二の収集システムにおける収集装置510は、集計用情報としての顧客識別情報とともに、暗号化された購買履歴の情報を解析装置100へ送信する。
そして、解析装置100は、暗号化された購買履歴の情報に基づいて、種々の統計量を算出する。例えば、解析装置100は、顧客識別情報に基づいて、2つの系列の暗号化データを対応付ける。そして、2系列データ間の相関係数を算出する。
2系列データ間の相関係数は、例えば、第一の収集システム配下に店舗で販売している商品X1と、第二の収集システム配下に店舗で販売している商品X2との間に、顧客の購買行為に関する相関があるのか、またどういった相関があるのかを示す。
このように、本実施例によれば、異なる収集システムにて個別に収集されたデータであっても、解析装置100を介することで、統計量を算出することができる。さらに、解析装置100は、先の実施例における解析装置10と同様の機能を持つため、暗号化データを復号することなく、解析を行うことができる。
つぎに、解析装置10および100のハードウェア構成について説明する。図16は、解析装置10および100のハードウェア構成の一例を示す図である。
解析装置10および100はCPU(Central Processing Unit)1001、ROM(Read Only Memory)1002,RAM(Random Access Memory)1003,通信装置1004、HDD(Hard Disk Drive)1005、入力装置1006、表示装置1007、媒体読取装置1009を有しており、各部はバス1008を介して相互に接続されている。そしてCPU1001による管理下で相互にデータの送受を行うことができる。
解析処理に係るプログラムが、コンピュータが読み取り可能な記録媒体に記録される。コンピュータが読み取り可能な記録媒体には、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、HDD、フレキシブルディスク(FD)、磁気テープ(MT)などがある。また、実施例にて説明した各種処理に関わるプログラムが、コンピュータが読み取り可能な記録媒体に記録される。
光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc − Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto − Optical disk)などがある。このプログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売されることが考えられる。
そして解析装置10および100は、例えば媒体読取装置1009が、各種プログラムを記録した記録媒体から、該プログラムを読み出す。CPU1001は、読み出されたプログラムをHDD1005若しくはROM1002、RAM1003に格納する。
CPU1001は、解析装置10および100の全体の動作制御を司る中央処理装置である。HDD1005には、上記の各実施例に示した解析装置10および100と同様の機能をコンピュータに発揮させるプログラムとして、例えば、図14に示す各処理をコンピュータに実行させるプログラムが記憶されている。
そして、CPU1001が、プログラムをHDD1005から読み出して実行することで、図9に示す解析装置10における制御部12として機能するようになる。また、各種プログラムはCPU1001とアクセス可能なROM1002またはRAM1003に格納されていても良い。
さらにHDD1005にはCPU1001の管理下でパラメータ情報記憶部15、解析用データ記憶部16の少なくとも一部として機能する。プログラム同様、記憶部の情報はCPU1001とアクセス可能なROM1002またはRAM1003に格納されても良い。また、ROM1002またはRAM1003は、処理の過程で一時的に生成された情報も記憶する。
表示装置1007は、必要に応じて各画面を表示する。通信装置1004はネットワークを介して他の装置からの信号を受信し、その信号の内容をCPU1001に渡す。さらに通信装置1004はCPU1001からの指示に応じてネットワークを介して他の装置に信号を送信する。なお、通信装置1004は、図9に示す解析装置10における通信部11として機能する。入力装置1006は、必要に応じて、ユーザからの情報の入力を受け付ける。