【文献】
佐久間淳ほか,プライバシ保護データマイニング,人工知能学会誌,日本,社団法人人工知能学会,2009年 3月 1日,第24巻, 第2号,p.283−294
(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
従来、DBSCAN(Density−Based Spatial Clustering of Applications with Noise)と呼ばれるクラスタリング手法が利用されている。
個人情報又は機密情報を所有するユーザは、DBSCANを使用して、一方の当事者のデータを他の当事者に明らかにすることなく、統合されたデータセットから意味のある情報を抽出したい場合がある。非特許文献1及び2では、プライバシを保護して2者のデータをクラスタリングする分散型DBSCANのプロトコルが提案されている。
また、非特許文献3では、秘匿された複数パーティのデータの、準同型暗号による演算方式が提案されている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来のDBSCANのプロトコルは、3者以上のマルチパーティを効率的に扱うことができなかった。
【0005】
本発明は、複数の当事者が秘匿データを他の当事者と共有することなく、クラスタリングするための分類装置、分類方法及び分類プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る分類装置は、複数のパーティから、完全準同型の暗号方式により公開鍵で暗号化された複数のデータを受信する第1受信部と、前記データ間のユークリッド距離と所定の距離との大小関係を求める演算を、暗号化された状態で行う演算部と、前記演算の結果を前記複数のパーティに送信する第1送信部と、前記演算の結果を各パーティの秘密鍵を用いたマルチパーティ計算により復号した値により得られた前記大小関係の判定値を受信する第2受信部と、前記判定値に基づいて、前記複数のデータを分類したクラスタを生成するクラスタリング部と、前記クラスタの情報を前記公開鍵により暗号化し、前記複数のパーティに送信する第2送信部と、を備える。
【0007】
前記演算部は、前記ユークリッド距離の2乗と、前記所定の距離の2乗と、の差分値の暗号データを算出し、前記第2受信部は、前記差分値に基づく前記大小関係の判定値を受信してもよい。
【0008】
本発明に係る分類方法は、複数のパーティから、完全準同型の暗号方式により公開鍵で暗号化された複数のデータを受信する第1受信ステップと、前記データ間のユークリッド距離と所定の距離との大小関係を求める演算を、暗号化された状態で行う演算ステップと、前記演算の結果を前記複数のパーティに送信する第1送信ステップと、前記演算の結果を各パーティの秘密鍵を用いたマルチパーティ計算により復号した値により得られた前記大小関係の判定値を受信する第2受信ステップと、前記判定値に基づいて、前記複数のデータを分類したクラスタを生成するクラスタリングステップと、前記クラスタの情報を前記公開鍵により暗号化し、前記複数のパーティに送信する第2送信ステップと、をコンピュータが実行する。
【0009】
本発明に係る分類プログラムは、複数のパーティから、完全準同型の暗号方式により公開鍵で暗号化された複数のデータを受信する第1受信ステップと、前記データ間のユークリッド距離と所定の距離との大小関係を求める演算を、暗号化された状態で行う演算ステップと、前記演算の結果を前記複数のパーティに送信する第1送信ステップと、前記演算の結果を各パーティの秘密鍵を用いたマルチパーティ計算により復号した値により得られた前記大小関係の判定値を受信する第2受信ステップと、前記判定値に基づいて、前記複数のデータを分類したクラスタを生成するクラスタリングステップと、前記クラスタの情報を前記公開鍵により暗号化し、前記複数のパーティに送信する第2送信ステップと、をコンピュータに実行させる。
【発明の効果】
【0010】
本発明によれば、複数の当事者が秘匿データを他の当事者と共有することなく、クラスタリングできる。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態の一例について説明する。
図1は、本実施形態に係る分類システム100の構成を示す図である。
分類システム100は、秘匿対象データを保有する複数(N)パーティそれぞれの端末P
i(1≦i≦N)と、分類装置としてのサーバSとを備え、互いにネットワークで通信接続されている。
【0013】
端末P
iは、後述のMultiparty Computation(マルチパーティ計算)により協働することによって、データの暗号化及び復号を行える。端末P
iは、それぞれが保有するデータセットを互いに、さらには第三者のサーバSにも明らかにすることなく、クラスタリングの演算結果を取得する。
サーバSは、端末P
iから準同型暗号による秘匿データを受信し、後述のDBSCANによってクラスタリングの演算を行う。
【0014】
まず、分類システム100で利用される要素技術について説明する。
[Multiparty Computation(MPC)]
MPCのプロトコルでは、キー準同型の公開鍵暗号方式により、各ユーザの公開鍵pk
1、・・・、pk
Nから結合公開鍵p
kと、各ユーザの秘密鍵sk
1、・・・、sk
Nから結合秘密鍵skとが生成される。各ユーザは、それぞれの所有データを結合公開鍵pkで暗号化できる。このプロトコルは、t(<N)人のユーザの秘密鍵sk
i(1≦i≦t)を用いて暗号データが復号される。
【0015】
[準同型暗号]
完全準同型の暗号方式は、メッセージ空間M内の要素m
1、m
2について、以下の2つの特性を持つ。
decrypt(encrypt(m
1)+encrypt(m
2))=m
1+m
2
decrypt(encrypt(m
1)×encrypt(m
2))=m
1×m
2
なお、演算「+」及び「×」は、要素ごとの加算及び乗算である。
【0016】
[DBSCAN]
定義1:密度到達可能(density−reachable)
あるオブジェクト(データ点)p
iから特定の半径ε内に最小個数MinPts以上のデータ点を含む場合、半径ε内のデータ点p
i+1はデータ点p
iから直接密度到達可能である。
直接密度到達可能なデータ点p
1、・・・、p
nの有限列がある場合、p
1=q、p
n=qとすると、データ点pはデータ点qから密度到達可能である。
【0017】
定義2:密度接続(density−connected)
データ点p及びデータ点qの両方がデータ点oから密度到達可能であるようなデータ点oがある場合、データ点pとデータ点qとは、密度接続な関係にある。
【0018】
定義3:クラスタ
Dをデータ点の集合とする。クラスタCは、以下の条件を満たすDの空でない部分集合である。
・クラスタCは、全データ集合Dに含まれる全データ点に対して、密度到達可能なデータ点の極大集合である(極大性)。
・クラスタC内の全データ点は、相互に密度接続の関連にある(接続性)。
【0019】
定義4:ノイズ
ノイズは、クラスタCに属さない集合D内のデータ点の集合である。
【0020】
ここで、あるデータ点pから半径εの範囲内にMinPts以上のデータ点がある場合、このデータ点pはコアポイントと呼ばれる。コアポイントは、クラスタの内部にある。境界ポイントは、コアポイントの近傍にあるが、半径εの範囲内のデータ点がMinPtsよりも少ない。ノイズポイントは、コアポイント又は境界ポイントではない任意のポイントである。
【0021】
次に、分類システム100によるクラスタリング手法を説明する。
図2は、本実施形態に係るサーバSの機能構成を示す図である。
サーバSは、第1受信部11と、演算部12と、第1送信部13と、第2受信部14と、クラスタリング部15と、第2送信部16とを備える。
【0022】
第1受信部11は、複数のパーティの端末P
iから、完全準同型の暗号方式により公開鍵で暗号化された複数のデータを受信する。
【0023】
演算部12は、データ間のユークリッド距離distと所定の距離(前述の半径ε)との大小関係を求める演算を、暗号化された状態で行う。具体的には、演算部12は、distの2乗と、εの2乗との差分値の暗号データを算出する。
【0024】
第1送信部13は、演算部12による演算の結果を複数のパーティの端末P
iに送信する。
演算結果を受信した端末P
iは、演算の結果を各パーティの秘密鍵を用いたMPCにより復号し、復号結果である差分値から、distとεとの大小関係を判定する。
【0025】
第2受信部14は、端末P
iから、distとεとの大小関係の判定値を受信する。
例えば、第2受信部14は、dist≦εの場合に「1」を、dist>εの場合に「0」を受信する。
【0026】
クラスタリング部15は、第2受信部14が受信した判定値に基づいて、DBSCANにより複数のデータを分類したクラスタを生成する。
【0027】
第2送信部16は、クラスタの情報を公開鍵により暗号化し、複数のパーティの端末P
iに送信する。
端末P
iは、受信したデータをMPCにより復号し、クラスタリングの結果を取得する。
【0028】
図3は、本実施形態に係る分類方法を示すフローチャートである。
ステップS1において、各パーティの端末P
iは、データx
iを暗号化し(c
i=Enc
pk(x
i))、暗号化データc
iを生成する。
ステップS2において、端末P
iは、暗号化データc
iをサーバSに送信する。
【0029】
ステップS3において、サーバSは、暗号化データc
iをデータ点pとして選択し、pと別のデータ点p’との間の暗号化されたユークリッド距離distを、次のように計算する。
dist
2=(Enc
pk(p)−Enc
pk(p’))
2
=Enc
pk(p)
2−2Enc
pk(p)Enc
pk(p’)+Enc
pk(p’)
2
さらに、サーバSは、distとεとを比較する演算として、次の計算を行う。
d
i2=Enc
pk(dist
2)+Enc
pk(−ε
2)
=Enc
pk(dist
2−ε
2)
【0030】
ステップS4において、サーバSは、暗号化データd
i2を複数の端末Pに送信する。
ステップS5において、複数の端末Pは、MPCにより協働してd
i2を復号し、distとεとの大小関係を判定する。
【0031】
ステップS6において、端末Pのいずれかは、ステップS5の判定結果を平文でサーバSに送信する。具体的には、例えば、dist≦εの場合に「1」が、dist>εの場合に「0」が送信される。
【0032】
ステップS7において、サーバSは、データ点pからDBSCANのプロトコルに従い、ε及びMinPtsに関して密度到達可能な全ての点を取得する。
このとき、pがコアポイントであれば、クラスタが形成される。
【0033】
ステップS8において、サーバSは、全てのデータ点を処理したか否かを判定する。この判定がYESの場合、処理はステップS9に移り、判定がNOの場合、処理はステップS3に戻り、次のデータ点が選択される。
【0034】
ステップS9において、サーバSは、形成されたクラスタの情報を公開鍵により暗号化する。
ステップS10において、サーバSは、暗号化したクラスタの情報を複数パーティの端末Pに送信する。
ステップS11において、複数の端末Pは、ステップS9で受信した暗号データをMPCにより協働して復号し、クラスタの情報を取得する。
【0035】
本実施形態によれば、分類システム100において、複数のパーティは、完全準同型の暗号方式により、データセットを互いに共有することなく、さらに、サーバSにも知られることなく、DBSCANによるクラスタリングの計算をサーバSに実行させる。このとき、サーバSは、データ間のユークリッド距離と所定の距離との大小関係を、暗号化されたまま演算するが、複数パーティによるMPCにより結果のみを取得する。
具体的には、サーバSは、大小関係を2乗の差分として計算することにより、加算及び乗算のみで結果を得ることができるので、完全準同型の暗号方式により、暗号化されたまま演算できる。
【0036】
このように、分類システム100は、高負荷な演算をサーバSにアウトソースすることで、複数パーティの端末Pの処理負荷を低減させつつも、サーバSに対してデータセットを公開することなく、安全にクラスタリングを実行できる。
【0037】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
【0038】
分類システム100による分類方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD−ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。