IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本放送協会の特許一覧

特開2023-109062データマッチング装置およびそのプログラム
<>
  • 特開-データマッチング装置およびそのプログラム 図1
  • 特開-データマッチング装置およびそのプログラム 図2
  • 特開-データマッチング装置およびそのプログラム 図3
  • 特開-データマッチング装置およびそのプログラム 図4
  • 特開-データマッチング装置およびそのプログラム 図5
  • 特開-データマッチング装置およびそのプログラム 図6
  • 特開-データマッチング装置およびそのプログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023109062
(43)【公開日】2023-08-07
(54)【発明の名称】データマッチング装置およびそのプログラム
(51)【国際特許分類】
   G09C 1/00 20060101AFI20230731BHJP
【FI】
G09C1/00 650Z
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2022010444
(22)【出願日】2022-01-26
(71)【出願人】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】110001807
【氏名又は名称】弁理士法人磯野国際特許商標事務所
(72)【発明者】
【氏名】梶田 海成
(57)【要約】
【課題】2者間でデータ集合の共通する要素をマッチングするデータマッチング装置を提供する。
【解決手段】データマッチング装置1は、データ集合に含まれる要素ごとに、秘密分散データと乱数とハッシュ値を秘密情報として生成する秘密情報生成手段30と、秘密情報の一部を他のデータマッチング装置との間で送受信して秘密情報により中間データ生成し、中間データを他のデータマッチング装置との間で送受信して秘密情報により判定データを生成し、判定データを他のデータマッチング装置との間で送受信して比較することで、共通要素を判定するマッチング判定手段40と、を備える。
【選択図】図3
【特許請求の範囲】
【請求項1】
2者間でデータ集合の共通する要素をマッチングするデータマッチング装置であって、
前記データ集合に含まれる要素ごとに、和が前記要素の値となるように前記要素の値を秘密分散し、第1秘密分散データおよび第2秘密分散データを生成する秘密分散データ生成手段と、
第1乱数および第2乱数を生成する乱数生成手段と、
前記要素の値をハッシュ関数によりハッシュ化し、前記第1乱数による乗算と前記第2乱数による除算とを行うことでハッシュ値を算出するハッシュ値算出手段と、
前記第1秘密分散データと前記第2乱数とをマッチング対象の他のデータマッチング装置との間で送受信し、前記第1乱数と前記他のデータマッチング装置で生成された第2乱数との積に前記第2秘密分散データと前記他のデータマッチング装置で生成された第1秘密分散データとの差を乗算した乗算値と、前記ハッシュ値との差を中間データとして生成する中間データ生成手段と、
前記中間データを前記他のデータマッチング装置との間で送受信し、前記他のデータマッチング装置で生成された中間データに対して、前記第1乱数による乗算と前記第2乱数よる除算とを行うことで判定データを生成する判定データ生成手段と、
前記判定データを前記他のデータマッチング装置との間で送受信し、前記他のデータマッチング装置で生成された判定データと、自身の判定データとが一致する要素を、共通要素として抽出する共通要素抽出手段と、
を備えることを特徴とするデータマッチング装置。
【請求項2】
前記中間データ生成手段は、前記乗算値と前記ハッシュ値との差を演算する代わりに、前記乗算値と前記ハッシュ値との和を演算することを特徴とする請求項1に記載のデータマッチング装置。
【請求項3】
前記データ集合の要素は、すべて同じデータ長であることを特徴とする請求項1または請求項2に記載のデータマッチング装置。
【請求項4】
コンピュータを、請求項1から請求項3のいずれか一項に記載のデータマッチング装置として機能させるためのデータマッチングプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、2者間のデータのマッチングを行うためのデータマッチング装置およびそのプログラムに関する。
【背景技術】
【0002】
従来、データ集合を持つユーザ同士で、互いにその内容を開示することなく、共通のデータ(要素)のみを共有することが可能なPSI(Private Set Intersection:秘匿共通集合計算)プロトコルが知られている。
このPSIプロトコルは、暗号学的ハッシュ関数を用いてデータ集合の各要素をハッシュ化し、それらのハッシュ値を比較することで高速化を実現している。このような単に暗号学的ハッシュ関数を用いた構成は、ハッシュ関数のドメインのエントロピーが小さい(集合内の要素の種類が多くない)場合、容易に全数探索(brute force)攻撃が可能である(非特許文献1参照)。この全数探索攻撃は、離散対数問題を安全性の根拠とするDiffie-Hellman公開鍵暗号を用いることで防止することができる(非特許文献2参照)。
【0003】
しかし、従来のDiffie-Hellman型のPSIプロトコルでは、例え十分大きな集合数を確保しても、一方のユーザがプロトコルに従わない攻撃者である場合、他方のユーザのデータを取得することができる。このような攻撃者は悪意のある攻撃者(Maliciousな攻撃者)といわれる。一般的なDiffie-Hellman公開鍵暗号を用いたPSIプロトコルは、このプロトコルに従わない悪意のある攻撃者に対する安全性(Malicious安全性)を満たさない。また、将来的に量子コンピュータが実現されると公開鍵暗号方式は危殆化すると考えられており、Diffie-Hellman公開鍵暗号を用いたPSIプロトコルは安全ではなくなるおそれがある。
そのため、近年では、量子コンピュータが実現されても安全(耐量子安全)な暗号技術としてマルチパーティ計算(MPC:Multi-Party Computation)が注目されている(非特許文献3,4)。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Pincas et al.,"Scalable Private Set Intersection Based on OT Extension," ACM Trans. On Privacy and Security 2018
【非特許文献2】梶田海成、田口周平、大竹剛,“視聴履歴のためのPSIの構成と安全性”,2021年暗号と情報セキュリティシンポジウム(SCIS2021),1月19日~22日オンライン,電子情報通信学会
【非特許文献3】T.Araki, J.Furukawa, Y.Lindell, A.Nof, and K.Ohara,“High-throughput semi-honest secure three-party computation with an honest majority,”Proc. of ACM SIGSAC CCS'16, pp.805-817,2016.
【非特許文献4】T.Nishide and K.Ohta,“Multiparty Computation for Interval, Equality, and Comparison without Bit-decomposition Protocol,”Proc. of PKC'07, pp.343-360, 2007.
【発明の概要】
【発明が解決しようとする課題】
【0005】
前記したように、従来のPSIプロトコルは、2者間で共通のデータのみを共有する場合、一方のユーザがプロトコルに従わない悪意のある攻撃者であれば、他方のユーザのデータを取得することができ、安全性を満たさないという問題がある。
また、従来のマルチパーティ計算(MPC)は、3人以上のユーザを必要とし、その内の1人のユーザは必ず信頼できるユーザである必要がある。従って、MPCを適用して2者間でMalicious安全性を有するPSIプロトコルを実現することはできないという問題がある。
【0006】
本発明は、このような従来技術の問題点に鑑みてなされたもので、2者間のPSIプロトコルにおいて、どちらかがプロトコルに従わない悪意のある攻撃者であっても、安全性を確保することが可能なデータマッチング装置およびそのプログラムを提供することを課題とする。
【課題を解決するための手段】
【0007】
前記課題を解決するため、本発明に係るデータマッチング装置は、2者間でデータ集合の共通する要素をマッチングするデータマッチング装置であって、秘密分散データ生成手段と、乱数生成手段と、ハッシュ値算出手段と、中間データ生成手段と、判定データ生成手段と、共通要素抽出手段と、を備える構成とした。
【0008】
かかる構成において、データマッチング装置は、秘密分散データ生成手段によって、データ集合に含まれる要素ごとに、和が要素の値となるように要素の値を秘密分散し、2つの秘密分散データ(第1秘密分散データおよび第2秘密分散データ)を生成する。
また、データマッチング装置は、乱数生成手段によって、2つの乱数(第1乱数および第2乱数)を生成する。
さらに、データマッチング装置は、ハッシュ値算出手段によって、要素の値をハッシュ関数によりハッシュ化し、第1乱数による乗算と第2乱数による除算とを行うことでハッシュ値を算出する。
【0009】
そして、データマッチング装置は、中間データ生成手段によって、第1秘密分散データと第2乱数とをマッチング対象の他のデータマッチング装置との間で送受信し、第1乱数と他のデータマッチング装置で生成された第2乱数との積に第2秘密分散データと他のデータマッチング装置で生成された第1秘密分散データの差を乗算した乗算値と、ハッシュ値との差または和を中間データとして生成する。この中間データは、要素の値を秘密分散して生成されたものであるため、他のデータマッチング装置においては、要素を判別することができない。
【0010】
そして、データマッチング装置は、判定データ生成手段によって、中間データを他のデータマッチング装置との間で送受信し、他のデータマッチング装置で生成された中間データに対して、第1乱数による乗算と第2乱数による除算とを行うことで判定データを生成する。このように生成された判定データは、要素が同じであれば、他のデータマッチング装置で生成された判定データと同じ値となる。
【0011】
そこで、データマッチング装置は、共通要素抽出手段によって、判定データを他のデータマッチング装置との間で送受信し、他のデータマッチング装置で生成された判定データと、自身の判定データとが一致する要素を、共通要素として抽出する。
このように、データマッチング装置は、要素の値を秘密分散するため、このプロトコルに従えば、互いにその内容を開示することなく、共通の要素のみを共有することができる。また、このプロトコルに従わなければ、共通の要素も、共通しない要素も判別することができない。
なお、データマッチング装置は、コンピュータを、前記した各手段として機能させるためのデータマッチングプログラムで動作させることができる。
【発明の効果】
【0012】
本発明は、以下に示す優れた効果を奏するものである。
本発明によれば、秘密分散によって、2者間で共通のデータのみを共有するPSIプロトコルを実現することができる。
これによって、本発明は、プロトコルに従わない悪意のある攻撃者であっても、他のユーザのデータ(要素)を取得することができず、安全性を確保することができる。
【図面の簡単な説明】
【0013】
図1】本発明の実施形態に係るデータマッチングシステムの全体構成を示すブロック図である。
図2】データ集合と共通集合との関係を説明するための説明図である。
図3】本発明の実施形態に係るデータマッチング装置の構成を示すブロック図である。
図4】本発明の実施形態に係るデータマッチング装置の2者のデータ集合における要素のマッチング順序の一例を説明するための説明図である。
図5】本発明の実施形態に係るデータマッチング装置の2者間の動作を示すフローチャートである。
図6図5の秘密情報生成の動作を示すフローチャートである。
図7図5のマッチング判定の動作を示すフローチャートである。
【発明を実施するための形態】
【0014】
<データマッチングシステムの構成>
最初に、図1を参照して、本発明の実施形態に係るデータマッチングシステム100の構成について説明する。
【0015】
データマッチングシステム100は、2者のデータ集合から、共通する要素をマッチングするものである。
データマッチングシステム100は、相互にデータ集合のマッチングを行うデータマッチング装置1(1,1)と、それぞれのデータマッチング装置1のマッチング対象となるデータ集合を記憶するデータベース2(2,2)と、を備える。
【0016】
データマッチング装置1は、2者間でデータ集合の共通する要素をマッチングする端末装置である。例えば、データマッチング装置1は、スマートフォン、タブレット端末、パーソナルコンピュータ等である。
データマッチング装置1は、秘匿共通集合計算(PSI)プロトコルでデータ集合のマッチングを行い、共通の要素を共通集合として生成する。このデータマッチング装置1が使用するPSIプロトコルは、データ集合の要素を秘密分散することで、自身のデータ集合の要素を秘匿したままで、データ(要素)のマッチングを行うプロトコルである。
データマッチング装置1の詳細な構成については後記する。
【0017】
データベース2は、データマッチング装置1同士がマッチングを行うデータの対象であるデータ集合を記憶するものである。このデータベース2は、例えば、クラウドC(OneDrive〔登録商標〕、Dropbox〔登録商標〕等)に存在する。
データベース2は、データマッチング装置1のデータ集合を記憶するものである。
データベース2は、データマッチング装置1のデータ集合を記憶するものである。
【0018】
データベース2が記憶するデータ集合の各要素のデータ長はすべて同じとする。異なるデータ長のデータについては、予め同じデータ長となるように加工しておく。例えば、要素の値が“3”(1バイト)、“12”(2バイト)、“6627”(4バイト)というデータがあった場合、“0003”、“0012”、“6627”とすべて4バイトのデータ長とする。すなわち、データ集合の各要素のデータ長は、最長のデータ長以上で同じデータ長に加工しておく。
【0019】
データベース2が記憶するデータ集合は、例えば、テレビ番組の視聴履歴等、ユーザがデータベース2に保存可能なデータであればデータの種類は問わない。ここでは、データ集合として、視聴履歴を例にして説明する。
視聴履歴は、ユーザが視聴端末TEを介して視聴した番組の履歴データである。
視聴端末TEは、放送波を介して番組を視聴するテレビジョン端末、高速インターネットのOTT(Over The Top)サービスで提供される動画等を視聴するスマートフォン、タブレット端末、パーソナルコンピュータ等である。
ここでは、データマッチング装置1を所持するユーザXが視聴した視聴履歴がデータベース2に記憶され、データマッチング装置1を所持するユーザYが視聴した視聴履歴がデータベース2に記憶されているものとする。
【0020】
例えば、データベース2には、図2に示すように、データ集合Uとして、M個(1以上の整数)の要素e(e:ドラマA1,e:映画B1,…,e:ドラマJ3)の各履歴を含んでいるものとする。
また、データベース2には、データ集合Uとして、N個(1以上の整数)の要素e(e:スポーツE21,e:バラエティC3,…,e:映画K2)の各履歴を含んでいるものとする。
この場合、データマッチング装置1,1は、それぞれ、自身のデータ集合の要素を秘匿したままで、共通の要素である“映画B1”,“バラエティC2”を、共通集合UCX=UCYとして抽出する。
【0021】
<データマッチング装置の構成>
次に、図3を参照して、本発明の実施形態に係るデータマッチング装置1の構成について説明する。なお、データマッチング装置1,1は、それぞれ同じ構成であり、データマッチングを要求する側(以下、マッチング要求側)として機能する場合と、データマッチングを要求される側(以下、マッチング被要求側)として機能する場合とで各手段の動作が異なる。この違いについては、以降の各手段の説明において適宜説明する。
ここでは、データマッチング装置1をマッチング要求側、データマッチング装置1をマッチング被要求側とする。
データマッチング装置1は、マッチング要求手段10と、要素選択手段20と、秘密情報生成手段30と、マッチング判定手段40と、通信手段50と、を備える。
【0022】
マッチング要求手段10は、マッチング要求を指示されることで、データマッチングの動作の開始を制御するものである。
データマッチング装置1(マッチング要求側)のマッチング要求手段10は、外部からマッチング要求を指示されることで、通信手段50を介して、データマッチングの要求の指示(マッチング要求)を、相手方のデータマッチング装置1に送信する。そして、マッチング要求手段10は、要素選択手段20に動作を移行する。
【0023】
一方、データマッチング装置1(マッチング被要求側)のマッチング要求手段10は、通信手段50を介してマッチング要求を指示されることで、要素選択手段20に動作を移行する。
なお、データマッチング装置1,1のマッチング要求手段10は、マッチング処理の開始とともに、図示を省略したメモリ上に記憶する共通集合UCX,UCYを空集合に設定しておく。
【0024】
また、ここでは、マッチング要求手段10は、通信手段50を介してマッチング要求を相手方に送信した際に、あるいは、通信手段50を介してマッチング要求を相手方から受信した際に、相互にデータベース2に記憶されているデータ集合の要素数を通知する。
【0025】
要素選択手段20は、データベース2に記憶されているデータ集合の要素を順次選択するものである。要素選択手段20は、選択した要素を順次、秘密情報生成手段30に出力する。
なお、データマッチング装置1(マッチング要求側)の要素選択手段20は、マッチング判定手段40で要素のマッチングが完了するたびに、次の要素を選択し、自身のデータ集合のすべての要素を選択した段階で動作を終了する。
一方、データマッチング装置1(マッチング被要求側)の要素選択手段20は、マッチング判定手段40で要素のマッチングが完了するたびに、次の要素を選択し、自身のデータ集合のすべての要素を選択する動作を、相手方のデータ集合の要素数分繰り返す。
【0026】
秘密情報生成手段30は、要素選択手段20で選択された要素から秘密情報を生成するものである。
秘密情報生成手段30は、秘密分散データ生成手段31と、乱数生成手段32と、ハッシュ値算出手段33と、を備える。
【0027】
秘密分散データ生成手段31は、要素選択手段20で選択された要素ごとに、和が要素の値となるように要素の値を秘密分散し、第1秘密分散データおよび第2秘密分散データを生成するものである。
秘密分散データ生成手段31は、選択された要素の値をaとしたとき、aから第1秘密分散データaと第2秘密分散データaとを生成する。ここで、秘密分散データa,aは、a=a+aを満たすものとする。
なお、aの分散手法は、a=a+aを満たせばどのような手法でもよい。例えば、秘密分散データ生成手段31は、要素aと同じデータ長の第1秘密分散データaを乱数(疑似乱数)として生成し、aから第1秘密分散データaを減算(a-a)することで、第2秘密分散データaを生成する。
【0028】
乱数生成手段32は、乱数(疑似乱数)を生成するものである。なお、乱数の生成手法は、一般的な手法を用いればよいため、説明を省略する。
ここでは、乱数生成手段32は、秘密分散データと同じ数の2つの乱数(第1乱数q,第2乱数q′)を生成する。
乱数生成手段32は、生成した2つの乱数をハッシュ値算出手段33に出力する。
【0029】
ハッシュ値算出手段33は、要素選択手段20で選択された要素の値をハッシュ関数によりハッシュ化し、第1乱数による乗算と第2乱数による除算とを行うことでハッシュ値を算出するものである。
具体的には、ハッシュ値算出手段33は、以下の式(1)に示すように、要素の値をa、2つの乱数を第1乱数q,第2乱数q′としたとき、要素の値aをハッシュ関数によりハッシュ化し、第1乱数qによる乗算と第2乱数q′による除算とを行うことでハッシュ値rを算出する。
【0030】
【数1】
【0031】
ここで、Hashはハッシュ関数を示す。ハッシュ関数のアルゴリズムは、SHA(Secure Hash Algorithm)256等の一般的なアルゴリズムを用いればよい。
秘密情報生成手段30は、秘密分散データ生成手段31で生成した秘密情報(秘密分散データa,aと、乱数生成手段32で生成した乱数q,q′と、ハッシュ値算出手段33で生成したハッシュ値rとを、マッチング判定手段40に出力する。
なお、相手方のデータマッチング装置1においても同様に、秘密情報生成手段30によって、秘密情報(要素の値をbとしたときの秘密分散データb,b=b-bと、乱数q,q′と、ハッシュ値r=Hash(b)×q/q′)が生成されることになる。
【0032】
マッチング判定手段40は、秘密情報生成手段30で生成された要素ごとの秘密情報と、マッチング相手のデータマッチング装置1で生成された要素ごとの秘密情報とにより、要素がマッチングするか否かを判定するものである。
ここでは、マッチング判定手段40は、中間データ生成手段41と、判定データ生成手段42と、共通要素抽出手段43と、を備える。
【0033】
中間データ生成手段41は、自身の要素と相手方の要素が同じであるか否かを判定するための判定データを生成するための中間データを生成するものである。
中間データ生成手段41は、マッチング対象の要素に対する相手方のデータマッチング装置1が生成する秘密情報の一部と自身の秘密情報の一部とから中間データを生成する。
具体的には、中間データ生成手段41は、通信手段50を介して、自身の要素の秘密情報の一部である第1秘密分散データaと第2乱数q′とを、相手方のデータマッチング装置1に送信するとともに、相手方のデータマッチング装置1から相手方の要素の秘密情報の一部である第1秘密分散データbと第2乱数q′とを受信する。
そして、中間データ生成手段41は、第2秘密分散データaと第1乱数qとハッシュ値rと、受信した第1秘密分散データbと第2乱数q′とを用いて、以下の式(2)により、中間データCA1を生成する。
【0034】
【数2】
【0035】
なお、相手方のデータマッチング装置1においても同様に、中間データ生成手段41によって、以下の式(3)により、中間データCB1が生成される。
【0036】
【数3】
【0037】
中間データ生成手段41は、生成した中間データCA1を判定データ生成手段42に出力する。
【0038】
判定データ生成手段42は、自身の要素と相手方の要素が同じであるか否かを判定するための判定データを生成するものである。
判定データ生成手段42は、マッチング対象の要素に対する相手方の中間データと自身の秘密情報の一部である乱数(第1乱数,第2乱数)とから中間データを生成する。
具体的には、判定データ生成手段42は、通信手段50を介して、中間データCA1を相手方のデータマッチング装置1に送信するとともに、相手方のデータマッチング装置1から中間データCB1を受信する。
そして、判定データ生成手段42は、以下の式(4)に示すように、受信した中間データCB1に対して、第1乱数q,による乗算と、第2乱数q′による除算とを行うことで、判定データCA2を生成する。
【0039】
【数4】
【0040】
なお、相手方のデータマッチング装置1においても同様に、判定データ生成手段42によって、以下の式(5)により、判定データCB2が生成される。
【0041】
【数5】
【0042】
判定データ生成手段42は、生成した判定データCA2を共通要素抽出手段43に出力する。
【0043】
共通要素抽出手段43は、マッチング対象の要素に対する相手方のデータマッチング装置1が生成する判定データと自身の判定データ生成手段42が生成した判定データとが一致する要素を共通要素として抽出するものである。
具体的には、共通要素抽出手段43は、通信手段50を介して、判定データCA2を相手方のデータマッチング装置1に送信するとともに、相手方のデータマッチング装置1から判定データCB2を受信する。
そして、共通要素抽出手段43は、判定データCA2と判定データCB2とが一致するか否かを判定し、一致する要素を共通要素として抽出して共通集合に追加する。
なお、判定データが一致することで要素が共通することの証明は後記する。
マッチング判定手段40は、要素のマッチング判定を終了した段階で、要素選択手段20に動作を移行する。
【0044】
これによって、図4に示すように、データマッチング装置1のマッチング判定手段40は、データ集合Uの1つの要素と、データマッチング装置1のデータ集合UのN個のすべての要素e~eとの間でN回のマッチング判定を行う処理を、データ集合Uの要素数分であるM回繰り返すことで、すべての組み合わせのマッチング判定を行う。
【0045】
通信手段50は、IPネットワーク等の通信回線を介して、データの送受信を行うものである。この通信手段50は、一般的な通信制御装置で構成することができる。
以上説明したように、データマッチング装置1は、データ集合の要素を秘匿したままで、共通のデータ(要素)を共有することができる。
また、データマッチング装置1は、要素の値を秘密分散することで、2者間であってもMalicious安全性を有するPSIプロトコルを実現することができる。
なお、データマッチング装置1は、コンピュータを、前記した各手段として機能させるためのプログラム(データマッチングプログラム)で動作させることができる。
【0046】
(判定データによる共通要素判定の証明)
次に、マッチング判定手段40の共通要素抽出手段43において、判定データCA2と、判定データCB2の一致により共通要素が判定できることを証明する。
判定データCA2は、前記式(4)のCB1に前記式(3)を代入することで、以下の式(6)に変形することができる。
【0047】
【数6】
【0048】
また、判定データCB2は、前記式(5)のCA1に前記式(2)を代入することで、以下の式(7)に変形することができる。
【0049】
【数7】
【0050】
よって、(CA2-CB2)は、以下の式(8)のように変形することができる。
【0051】
【数8】
【0052】
この式(8)に示すように、(CA2-CB2)は、a=bおよびHash(a)=Hash(b)のときに“0”となる。なお、a=bであれば、Hash(a)=Hash(b)である。すなわち、CA2=CB2の場合、a=bとなる。
これによって、マッチング判定手段40の共通要素抽出手段43は、判定データCA2と判定データCB2とが一致する場合、それぞれのデータマッチング装置1,1で選択された要素a,bが共通要素であると判定することができる。
【0053】
<データマッチング装置の動作>
次に、図5図7を参照(構成については適宜図3参照)して、本発明の実施形態に係るデータマッチング装置1の動作について説明する。
ここでは、データマッチング装置1,1で、データマッチングを行い、データマッチング装置1が、データマッチングを要求する側であるとする。また、データマッチング装置1,1で同じ動作を行う処理については、適宜説明を省略する。
【0054】
まず、図5を参照して、データマッチング装置1の全体動作について説明する。
ステップS10において、データマッチング装置1は、外部からマッチング要求を指示されることで、マッチング要求手段10によって、通信手段50を介して、データマッチングの要求の指示(マッチング要求)をデータマッチング装置1に送信する。
ステップS11において、データマッチング装置1は、マッチング要求手段10によって、通信手段50を介して、ステップS10で送信されたマッチング要求を受信する。
このとき、ステップとしての図示を省略するが、マッチング要求手段10は、相互にデータベース2に記憶されているデータ集合の要素数を通知する。
以降、データマッチング装置1のステップS12からS15までの処理と、データマッチング装置1のステップS12BからS15Bまでの処理とは、マッチング行うデータ集合が異なるだけで、動作は同じであるため、データマッチング装置1の動作のみを説明する。
【0055】
ステップS12において、マッチング要求手段10は、共通集合を空集合に設定する。
ステップS13において、マッチング要求手段10は、データベース2,2に記憶されているデータ集合Uを読み出し、先頭の要素を選択する。
ステップS14において、秘密情報生成手段30は、ステップS13で選択された要素、あるいは、後記するステップS18(データマッチング装置1ではステップS21)で選択された要素から秘密情報を生成する。
【0056】
ここで、図6を参照して、ステップS14の秘密情報の生成動作についてさらに詳細に説明する。なお、ここでは、データマッチング装置1では要素aが選択され、データマッチング装置1では要素bが選択された例を示している。
ステップS140において、秘密分散データ生成手段31は、選択された要素aを2つのデータ(第1秘密分散データa,第2秘密分散データa)に分散する。
ステップS141において、乱数生成手段32は、2つの乱数(第1乱数q,第2乱数q′)を生成する。
ステップS142において、ハッシュ値算出手段33は、選択された要素aと、ステップS141で生成された第1乱数q,第2乱数q′とを用いて、前記式(1)により、ハッシュ値rを算出する。
【0057】
以上の動作によって、秘密情報生成手段30は、秘密情報として、秘密分散データa,aと、乱数q,q′と、ハッシュ値rとを生成する。
なお、データマッチング装置1のステップS14Bの動作は、要素aを要素bとしただけで、動作は同じである。
【0058】
図5に戻って、データマッチング装置1の全体動作について説明を続ける。
ステップS15において、マッチング判定手段40は、ステップS14で生成された秘密情報を用いて、マッチング対象のデータマッチング装置1との間で、要素がマッチングするか否かを判定する。
【0059】
ここで、図7を参照して、ステップS15のマッチング判定の動作についてさらに詳細に説明する。
ステップS150において、中間データ生成手段41は、ステップS14で生成した秘密情報の一部である第1秘密分散データaと第2乱数q′とを、データマッチング装置1に送信する。
ステップS151において、中間データ生成手段41は、データマッチング装置1から、相手方の秘密情報の一部である第1秘密分散データbと第2乱数q′とを受信する。
【0060】
ステップS152において、中間データ生成手段41は、ステップS14で生成した秘密情報の一部である第2秘密分散データaと第1乱数qとハッシュ値rと、ステップS151で受信した第1秘密分散データbと第2乱数q′とを用いて、前記式(2)により、中間データCA1を生成する。
データマッチング装置1においても、ステップS150からS152と同様、ステップS150BからS152Bにおいて、第1秘密分散データと第2乱数とを送受信し、中間データCB1を生成する。
【0061】
ステップS153において、判定データ生成手段42は、ステップS152で生成した中間データCA1をデータマッチング装置1に送信する。
ステップS154において、判定データ生成手段42は、データマッチング装置1から、相手方の中間データCB1を受信する。
ステップS155において、判定データ生成手段42は、ステップS154で受信した中間データCB1に、前記式(4)に示したように、第1乱数qを乗算し、第2乱数q′で除算することで、判定データCA2を生成する。
データマッチング装置1においても、ステップS153からS155と同様、ステップS153BからS155Bにおいて、中間データを送受信し、判定データCB2を生成する。
【0062】
ステップS156において、共通要素抽出手段43は、ステップS155で生成した判定データCA2をデータマッチング装置1に送信する。
ステップS157において、共通要素抽出手段43は、データマッチング装置1から、相手方の判定データCB2を受信する。
ステップS158において、共通要素抽出手段43は、ステップS155で生成した判定データCA2と、ステップS157で受信した判定データCB2とが一致するか否かを判定する。
【0063】
ここで、判定データCA2と判定データCB2とが一致する場合(ステップS158でYes)、ステップS159において、共通要素抽出手段43は、現在選択されている要素aを、共通集合に追加して、ステップS15のマッチング判定を終了する。
一方、判定データCA2と判定データCB2とが一致しない場合(ステップS158でNo)、共通要素抽出手段43は、そのままステップS15のマッチング判定を終了する。
データマッチング装置1においても、ステップS156からS159と同様、ステップS156BからS159Bにおいて、判定データを送受信し、判定データCA2と判定データCB2とが一致する場合に、現在選択されている要素bを、共通集合に追加する。
【0064】
図5に戻って、データマッチング装置1の全体動作について説明を続ける。
ステップS16において、マッチング判定手段40は、選択した要素に対して、マッチング相手の要素をすべて判定したか否かを判定する。すなわち、マッチング判定手段40は、マッチング相手の要素数分の判定を行ったか否かを判定する。
ここで、まだ、マッチング相手の要素をすべて判定していない場合(ステップS16でNo)、データマッチング装置1は、ステップS15に戻って、マッチング判定を繰り返す。
【0065】
一方、マッチング相手の要素をすべて判定した場合(ステップS16でYes)、ステップS17において、自身のデータ集合の要素をすべて選択したか否かを判定する。
ここで、まだ、自身のデータ集合の要素をすべて選択していない場合(ステップS17でNo)、データマッチング装置1は、ステップS18に動作を進める。
一方、自身のデータ集合の要素をすべて選択した場合(ステップS17でYes)、データマッチング装置1は、ステップS19に動作を進める。
ステップS18において、要素選択手段20は、自身のデータ集合から次の要素を選択し、ステップS14に動作を戻す。
ステップS19において、マッチング判定手段40は、共通集合に含まれる要素をマッチング結果として、図示を表示装置等に出力する。
【0066】
データマッチング装置1は、ステップS20において、自身のデータ集合の要素をすべて選択したか否かを判定する。
ここで、まだ、自身のデータ集合の要素をすべて選択していない場合(ステップS20でNo)、データマッチング装置1は、ステップS21に動作を進める。
【0067】
一方、自身のデータ集合の要素をすべて選択した場合(ステップS20でYes)、データマッチング装置1は、ステップS22に動作を進める。
ステップS21において、要素選択手段20は、自身のデータ集合から次の要素を選択し、ステップS14Bに動作を戻す。
ステップS22において、マッチング判定手段40は、マッチング相手の要素をすべて判定したか否かを判定する。すなわち、マッチング判定手段40は、マッチング相手の要素数分の判定を行ったか否かを判定する。
【0068】
ここで、まだ、マッチング相手の要素をすべて判定していない場合(ステップS22でNo)、データマッチング装置1は、ステップS13Bに戻って、マッチング判定を繰り返す。
一方、マッチング相手の要素をすべて判定した場合(ステップS22でYes)、ステップS23において、マッチング判定手段40は、共通集合に含まれる要素をマッチング結果として、図示を表示装置等に出力する。
以上の動作によって、データマッチング装置1は、データ集合の要素を秘匿したままで、共通のデータ(要素)を共有することができる。
【0069】
以上、本発明に実施形態に係るデータマッチング装置1の構成および動作について説明したが、本発明は、この実施形態に限定されるものではない。
例えば、ここでは、データマッチング装置1の内部に秘密情報生成手段30(秘密分散データ生成手段31、乱数生成手段32、ハッシュ値算出手段33)を備える構成とした。しかし、秘密情報生成手段30は、データマッチング装置1の外部、例えば、データベース2に備えて、逐次、秘密情報を取得することとしてもよい。
【0070】
また、ここでは、中間データ生成手段41は、前記式(2)のように、第2秘密分散データaから第1秘密分散データbを減算したが、第1秘密分散データbから第2秘密分散データaを減算しても構わない。
その場合、対応する前記式(3)は、第1秘密分散データaから第2秘密分散データbを減算することになる。
【0071】
また、ここでは、中間データ生成手段41は、前記式(2)のように、q×q′×(a-b)とrとの差を中間データCA1として生成した。
しかし、中間データ生成手段41は、q×q′×(a-b)とrとの和を中間データCA1として生成してもよい。
その場合、対応する前記式(3)も、q′×q×(b-a)とrとの和を中間データCB1として生成すればよい。
【符号の説明】
【0072】
100 データマッチングシステム
1 データマッチング装置
10 マッチング要求手段
20 要素選択手段
30 秘密情報生成手段
31 秘密分散データ生成手段
32 乱数生成手段
33 ハッシュ値算出手段
40 マッチング判定手段
41 中間データ生成手段
42 判定データ生成手段
43 共通要素抽出手段
50 通信手段
2 データベース
図1
図2
図3
図4
図5
図6
図7