JP3784055B2 - リストマッチング方法、ネットワークシステム、そのサーバ及び情報端末 - Google Patents
リストマッチング方法、ネットワークシステム、そのサーバ及び情報端末 Download PDFInfo
- Publication number
- JP3784055B2 JP3784055B2 JP2002191591A JP2002191591A JP3784055B2 JP 3784055 B2 JP3784055 B2 JP 3784055B2 JP 2002191591 A JP2002191591 A JP 2002191591A JP 2002191591 A JP2002191591 A JP 2002191591A JP 3784055 B2 JP3784055 B2 JP 3784055B2
- Authority
- JP
- Japan
- Prior art keywords
- list
- polynomial
- information
- network
- information terminal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、2人以上の参加者の持つリストの共通部分を抽出するリストマッチングをネットワーク上で行う方法に関する。
【0002】
【従来の技術】
ネットワークを介して行われる情報交換において、2人以上の参加者の持つリストの共通部分だけを計算し、抽出するリストマッチングがある。リストマッチングの具体的な応用例としては、趣味などのプロファイルを記述したデータベース(リスト)のリストマッチングを行い、共通の趣味を持つ会員同士を紹介するマッチメーキングサービスがある。また、複数の金融機関において、特定の利用者のリスト(いわゆるブラックリストなど)を照会し、当該複数の金融機関で当該リストに載っている利用者を見出すといった利用も考えられる。
【0003】
インターネットなどのネットワーク環境の普及に伴い、ネットワーク上でのプライバシーの保護が重視されてきている今日、リストマッチングにおいても、個々の参加者の持つリストの内容を明らかにすることなく、共通部分を抽出することが要求されるようになっている。
【0004】
従来、ネットワーク上でリストマッチングを実現する手法としては、TTP(Trusted Third Party)サーバを設けて、リストマッチングの対象となるリストを管理し、当該TTPサーバによって共通部分を計算する方法があった。この場合、リストにおける情報の秘密保持は、当該TTPサーバにおけるセキュリティに依存することとなる。
【0005】
また近年、特定のサーバを必要としないピア・ツー・ピア(Peer to Peer)のサービスの普及により、TTPサーバを置かずにリストマッチングを行う場合が生じてきた。このような場合におけるセキュリティを図る手法として、次の文献1には、Oblivious Polynomial Evaluation(OPE)という暗号技術を用いたプロトコルが開示されている。
文献1:Naor, M. and Pinkas, B, "Oblivious Transfer and Polynomial Evaluation," in proc. of STOC, 1999.
【0006】
文献1には、次のようなプロトコルが記載されている。
リスト保持者であるAliceとBobとが持っているリストを、それぞれAL={a1,...,an}、BL={b1,…,bn}とする。
1.AliceとBobは、それぞれn次多項式PA(x)、PB(x)を秘密に用意する。
2.Aliceは、OPEを用いて[PB(ai)]i=1 nを計算し、同様にBobもOPEを用いて[PA(bi)]i=1 nを計算する。
3.Aliceは[PA(ai)+PB(ai)]i=1 nを、Bobは[PA(bi)+PB(bi)]i=1 nを、それぞれ公開する。
この方法によれば、第三者がリストにおける既知の項目について、他のリストにおける共通項目の有無を推測するのは不可能である。
【0007】
【発明が解決しようとする課題】
上述したように、リストマッチングによる情報交換を行う場合、TTPサーバを設けてリストマッチングの対象であるリストを管理するシステムでは、リストにおける情報の秘密保持は、TTPサーバにおけるセキュリティに依存する。したがって、当該TTPサーバのセキュリティが破られれば、当該リストの秘密情報が漏洩してしまうこととなる。
【0008】
また、ピア・ツー・ピアでリストマッチングを行う場合の文献1に開示されたOPEを用いたプロトコルでは、第三者がリストにおける既知の項目について、他のリストにおける共通項目の有無を推測することは防止できるものの、リスト保持者が、公開値を偽って、相手には不一致と見せかけながら、自分だけ相手との共通部分を知ることができてしまう。
【0009】
ところで、複数人で引数を秘密に保ったまま計算を行い、当該引数に対する計算結果だけを取り出す手法として、分散秘密計算(マルチパーティプロトコル:Multiparty Protocol)と呼ばれる手法がある。上述したOPEを用いたプロトコルも、この分散秘密計算に含まれる。分散秘密計算については、例えば、次の文献2に記載されている。
文献2:Ben-Or, Goldwasser, and Wigderson, "Completeness theorems for non-cryptographic fault-tolerant distributed computation," STOC, ACM, 1988.
【0010】
リストマッチングにより複数のリストから共通部分を抽出する場合、1項目ずつの比較計算が基本となる。そのため、n個の項目を持つ2つのリストの計算には、n2回の比較計算が必要である。このような比較計算は、プログラムでは簡単に構成できる。
しかしながら、分散秘密計算は、四則演算を基本計算としているため、比較計算に必要な分岐命令などを入れることは難しい。したがって、分散秘密計算を用いて、ピア・ツー・ピアでリストマッチングを行うことは、処理の実行効率の面からも困難であった。
【0011】
そこで、本発明は、情報交換における安全性を確保すると共に、実行効率が良く実用性の高いリストマッチングを実現することを目的とする。
また、本発明は、分散秘密計算を用いることにより、ピア・ツー・ピアでリストマッチングを行う場合においても、安全性の高い手法を提供することを他の目的とする。
【0012】
【課題を解決するための手段】
上記の目的を達成する本発明は、コンピュータを用いて複数のリストにおける共通項目を抽出するリストマッチング方法において、メモリから処理対象であるリストを読み出し、読み出されたリストごとに要素項目を根とする多項式を生成し、生成された多項式を加算し、加算によって得られた多項式の根を要素項目とするリストを生成して出力することを特徴とする。
より詳細には、リストの要素項目に対応する値に、所定の1方向ハッシュ関数による演算結果を付加した値を根とする多項式を生成する。そして、この多項式の加算によって得られた多項式の根のうち、1方向ハッシュ関数による演算結果が保持されている根において、かかる演算結果を除いた値を要素項目とするリストを生成する構成とすることができる。
【0013】
また、本発明は、ネットワークを構成する複数台の情報端末が保持する複数のリストにおける共通項目を抽出するリストマッチング方法において次の要件を満足することを特徴とする。すなわち、リストを保持する各情報端末が、このリストの要素項目を根とする多項式を生成する。そして、この各情報端末が、適宜設定された順番で、先の情報端末から受け取った多項式に対して生成した多項式を加算し、加算結果の多項式を後の情報端末に渡す。また、かかる順番の最後の情報端末が、受信した多項式の根を要素項目とするリストを生成する。
ここで、この最後の情報端末は、生成したリストまたはリストの項目に関する情報を他の情報端末に通知することができる。
【0014】
さらに、本発明は、ネットワークを構成する複数台の情報端末が保持する複数のリストにおける共通項目を抽出するリストマッチング方法において次の要件を満足することを特徴とする。すなわち、リストを保持する各情報端末が、このリストの要素項目を根とする多項式を生成する。そして、情報端末間で共通して使用することを取り決められたネットワーク上の複数のサーバを用いた分散秘密計算により、各情報端末にて生成された多項式を加算する。さらに、この情報端末が、サーバによる加算結果に基づいて各情報端末にて生成された多項式の加算結果である多項式を復元すると共に、復元された多項式の根を要素項目とするリストを生成する。
【0015】
さらにまた、本発明は、ネットワークを介して接続された複数台の情報端末が保持する複数のリストにおける共通項目を抽出するリストマッチング方法において次の要件を満足することを特徴とする。すなわち、リストを保持する各情報端末が、このリストの要素項目を根とする第1の多項式とネットワーク上の所定のサーバの数に対応した次数の第2の多項式とに基づいて2変数多項式を生成し、この2変数多項式を第2の多項式に基づいて各サーバに分散する。次に、サーバが、各情報端末から送られた2変数多項式を分散した多項式を加算し、加算結果を情報端末に返送する。次に、情報端末が、サーバによる加算結果に基づいて各情報端末に保持されたリストを表現する多項式の加算結果である多項式を復元すると共に、復元された多項式の根を要素項目とするリストを生成する。
【0016】
また、本発明による他のリストマッチング方法は、所定の情報端末が、他の端末装置が保持するリストの要素項目を根とする多項式に基づいて生成された公開情報を取得し、この他の情報端末から取得した公開情報を検証し、かかる検証を通過した他の情報端末の公開情報と自装置が保持するリストの要素項目を根とする多項式とに基づいて、この公開情報の生成に用いられたリストと自装置が保持するリストとの共通項目を求めることを特徴とする。
ここで、好ましくは、他の情報端末から取得した公開情報が検証を通過した場合にのみ、自装置が保持するリストから生成された多項式と公開情報とに基づいて所定の情報を生成して、この他の情報端末との間で交換する。そして、交換された情報に基づいて、公開情報の生成に用いられたリストと自装置が保持するリストとの共通項目を求める。
【0017】
また、本発明は、次のように構成されたことを特徴とするネットワークシステムとして実現される。すなわち、このネットワークシステムは、ネットワークを介して接続された、サーバと、複数台のクライアント端末とを備える。そして、このクライアント端末は、ネットワークを介して他のクライアント端末から受信した多項式に対し、リストマッチングの対象であるリストを表現する多項式を加算し、加算結果の多項式を他のクライアント端末またはサーバに送信する。また、このサーバは、複数台のクライアント端末にて生成された多項式全ての加算結果である多項式を受信し、この多項式の根を要素項目とするリストを生成する。
【0018】
ここで、上記のネットワークシステムを構成する所定のクライアント端末は、リストマッチングの対象であるリストを表現する第1の多項式と、任意の項目を根とする第2の多項式とを生成し、第2の多項式を前記サーバに送信すると共に、第1、第2の多項式を加算して得られる多項式を他のクライアント端末に送信する。また、サーバは、複数台の前記クライアント端末にて生成された多項式全ての加算結果である多項式から前記第2の多項式を減算し、減算結果である多項式の根を要素項目とするリストを生成する。
【0019】
さらに、本発明は、次のように構成されたことを特徴とするネットワークシステムとしても実現される。すなわち、このネットワークシステムは、ネットワークを介して接続された、複数台の情報端末と、複数台のサーバとを備え、このサーバは、各情報端末から送信されたデータの分散秘密計算をそれぞれ行い、計算結果を前記情報端末に返送する。そして、情報端末は、リストマッチングの対象であるリストを表現する多項式を前記サーバに分散して送信し、このサーバからこの多項式に対する分散秘密計算の計算結果を受信し、この計算結果に基づいて各情報端末にて生成された多項式の加算結果である多項式を復元すると共に、復元された多項式の根を要素項目とするリストを生成する。
【0020】
さらに詳しくは、この情報端末は、情報端末の数をm、リストの要素項目の数をnとした場合に、n+1次の多項式FYi(y)を、FYi(li,h)=0、h=1,...,nとなるように生成し、定数項が0の任意のk−1次多項式FXi(x)を生成し、2変数多項式Qi(x,y)=FXi(x)+FYi(y)を生成して、k個のサーバに対してQi(j,y)、j=1,...,kを送信する。そして、サーバは、m個の前記情報端末から受信した多項式Qi(j,y)を全て加算し、加算結果を情報端末に返送する。
【0021】
さらにまた、本発明は、次のように構成されたネットワークシステムとしても実現できる。すなわち、このネットワークシステムは、ネットワークを介して情報を交換する複数台の情報端末を備え、自装置が保持するリストの要素項目を根とする多項式を生成し、この多項式に基づいて第1の情報を生成して公開すると共に、この多項式に基づいて第2の情報を生成する第1の情報端末と、この第1の情報端末における第1の情報を取得して検証すると共に、この検証を通過した場合に第1の情報端末から第2の情報を取得し、これら第1、第2の情報と自装置が保持するリストから生成された多項式とに基づいて、公開情報の生成に用いられたリストと自装置が保持するリストとの共通項目を求める第2の情報端末とを備えることを特徴とする。
なお、ネットワークシステムを構成する複数台の情報端末は、それぞれが第1または第2の情報端末として動作する。そして、第1、第2の情報を交換することにより、それぞれの情報端末において相互にリストマッチングを行うことができる。
ここで、より好ましくは、第2の情報端末は、自装置が保持するリストの要素項目を根とする多項式を生成し、この多項式に基づいて第1の情報を生成して公開する。そして、第1の情報端末は、公開されている第2の情報端末における第1の情報を用いて第2の情報を生成する。
さらに好ましくは、このネットワークシステムにおいて、第1の情報端末における第1の情報と第2の情報端末が保持するリストとに基づいて生成された暗号化データを取得し、第1、第2の情報端末がそれぞれ保持するリストの内容が秘匿されたままでこのリストの共通項目を求めるサーバをさらに備える。そして、第2の情報端末は、第2の情報が取得できない場合または取得した第2の情報に基づいてリストの共通項目を求めることができない場合に、暗号化データを生成してかかるサーバに送信し、このサーバからの応答データを復号してリストの共通項目を得る。
【0022】
また、本発明は、ネットワークシステムを構成する、次のように構成されたことを特徴とするサーバとして実現することができる。すなわち、ネットワークを介して接続された複数台の情報端末が保持する複数のリストにおける共通項目を抽出するサーバにおいて、ネットワークを介して、複数台の情報端末に保持されている各リストを表現する複数の多項式の加算結果である多項式を情報端末から取得する通信手段と、加算結果である多項式の根を要素項目とするリストを生成する処理手段とを備える。
【0023】
一方、本発明は、同じくネットワークシステムを構成する、次のように構成されたことを特徴とする情報端末として実現することができる。すなわち、ネットワークを介して接続された情報端末において、ネットワークを介して他の情報端末とデータ交換を行うための通信手段と、所定のリストを格納した記憶手段と、この記憶手段に格納されているリストの要素項目を根とする多項式を生成すると共に、この多項式に対する処理を行う処理手段と、この多項式を含む複数の多項式の加算結果である多項式の根を要素項目とするリストに関する情報を出力する出力手段とを備える。
【0024】
あるいは、次のように構成されたことを特徴とする情報端末として実現することもできる。すなわち、ネットワークを介して接続された情報端末において、所定のリストを格納した記憶手段と、この記憶手段に格納されているリストの要素項目を根とする第1の多項式とネットワーク上の所定のサーバの数に対応した次数の第2の多項式とに基づいて2変数多項式を生成する処理手段と、ネットワーク上の所定のサーバに、この2変数多項式を第2の多項式に基づいて分散して送信すると共に、サーバから分散した多項式の加算結果を受信する通信手段と、この加算結果から復元される多項式の根を要素項目とするリストに関する情報を出力する出力手段とを備える。
【0025】
また、本発明は、次のように構成された情報端末としても実現される。すなわち、ネットワークに接続されたこの情報端末は、所定のリストを格納した記憶部と、このネットワークを介して他の情報端末が保持するリストに基づく公開情報を取得して検証する検証部と、この検証部による検証を通過した公開情報と記憶部に格納されているリストの要素項目を根とする多項式とに基づいて、公開情報の生成に用いられたリストと記憶部に格納されているリストとの共通項目を求めるマッチング結果出力部とを備えることを特徴とする。
ここで、より好ましくは、この情報端末は、多項式に基づいて公開情報を生成する公開情報生成部をさらに備える。この場合、マッチング結果出力部は、他の情報端末の公開情報が検証部による検証を通過した場合に、公開情報生成部にて生成された自装置の公開情報及び他の情報端末が保持するリストに基づいて生成された所定の情報を他の情報端末から取得し、所定の情報に基づいてリストの共通項目を求める。
【0026】
さらにまた、本発明は、コンピュータを制御して上述したサーバや情報端末の機能を実現するプログラムとしても実現することができる。このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記憶媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供することができる。
【0027】
【発明の実施の形態】
以下、添付図面に示す実施の形態に基づいて、この発明を詳細に説明する。
本発明は、リストマッチングによる情報交換を行うため、リストマッチングの対象であるリストを、多次元関数(以下、特徴関数と称す)を用いて表現することを提案する。
【0028】
〔特徴関数の導入〕
所定の要素項目を並べたリストは、当該要素項目を数値に置き換え、この数値を根とする(以下、リストの要素項目を置き換えた数値を根とすることを、単に、要素項目を根とすると表現する)多項式を生成することにより、特徴関数で表現することができる。したがって、リストのn個の項目を表現するには、n次の多項式を定義することが必要となる。
図1は、特徴関数である、リストの要素項目を根とする多項式の例を示す図である。
図1に示すように、リストL1、L2を表現した多項式をそれぞれFY1(y)(図中、実線で記載)、FY2(y)(図中、破線で記載)とすると、その加算結果である多項式FY(y)=FY1(y)+FY2(y)(図中、実太線で記載)において、座標点Aに示すように、両者の共通項目は相変わらず根になっている。これは、各リストL1、L2を示す多項式の和計算によって、共通項目を根とする多項式が得られたことを意味する。多項式を素数有限体Z/Zp上で考えると、Barlekampアルゴリズムを用いることによって、1変数多次元多項式を因数分解し、根を求めることができる。したがって、リストから多項式の構成、及び多項式からリストの復号という、1対1の関係付けができる。なお、Barlekampアルゴリズムについては、例えば、次の文献3に記載されている。
文献3:Donald E. Knuth, Seminumerical Algorithms, the art of computer programming, Addison-Wesley, 1998.
【0029】
ここで、図1の座標点Bに示すように、加算結果の多項式が共通根以外の点で根を持ち得ることが問題となる。この根を共通根と区別するために、1方向ハッシュ関数MD5を用いる。すなわち、リスト項目lをそのまま多項式の根にするのではなく、ハッシュ関数MD5による演算結果を付加したl||MD5(l)を根にする(ここで、||は文字列の結合を示す)。このようにすれば、多項式を換算した後、当該加算結果である多項式の根にもこのハッシュ関数MD5の演算結果が保持されているため、これを検証することにより、復号時に根がリストの項目から作られたものか、加算の結果、偶然にできたものかを区別することが可能となる。
【0030】
図2は、リストから特徴関数の多項式を構成する手順を説明するフローチャート、図3は、多項式を復号してリストの共通項目を取得する手順を説明するフローチャートである。この場合、各処理は例えば一般的なコンピュータ装置におけるプログラム制御されたCPUにて実行され、処理対象であるリストL及び関数F(x)は当該CPUのキャッシュメモリやメインメモリに格納される。図18は、この種のコンピュータ装置のハードウェア構成の例を模式的に示した図である。
図18に示すコンピュータ装置は、演算手段であるCPU(Central Processing Unit:中央処理装置)101と、M/B(マザーボード)チップセット102及びCPUバスを介してCPU101に接続されたメインメモリ103と、同じくM/Bチップセット102及びAGP(Accelerated Graphics Port)を介してCPU101に接続されたビデオカード104と、PCI(Peripheral Component Interconnect)バスを介してM/Bチップセット102に接続されたハードディスク105、ネットワークインターフェイス106及びUSBポート107と、さらにこのPCIバスからブリッジ回路108及びISA(Industry Standard Architecture)バスなどの低速なバスを介してM/Bチップセット102に接続されたフロッピーディスクドライブ109及びキーボード/マウス110とを備える。
なお、図18は本実施の形態を実現するコンピュータ装置のハードウェア構成を例示するに過ぎず、本実施の形態を適用可能であれば、他の種々の構成を取ることができる。例えば、ビデオカード104を設ける代わりに、ビデオメモリのみを搭載し、CPU101にてイメージデータを処理する構成としても良いし、ATA(AT Attachment)などのインターフェイスを介してCD−ROM(Compact Disc Read Only Memory)やDVD−ROM(Digital Versatile Disc Read Only Memory)のドライブを設けても良い。
【0031】
図2を参照すると、CPU101は、まず、関数F(x)=1、変数q=1とおき(ステップ201)、メインメモリ103から処理対象であるリストLの要素項目liを読み込む。ここで、li '=li||MD(li)とおく(ステップ202)。次に、CPU101は、改めてF(x)*(x−li ')(mod p)をF(x)とおき、変数qの値を1増加する(ステップ203)。そして、ステップ202、203の処理をqの値がリストLの項目数nに達するまで繰り返した後、得られた関数F(x)を出力する(ステップ204、205)。
以上のようにして、リストLから特徴関数F(x)が構成される。
【0032】
図3を参照すると、CPU101は、まず、メインメモリ103から処理対象であるn次元関数F(x)を読み込み(ステップ301)、Barlekampアルゴリズムを用いて当該関数F(x)を因数分解する(ステップ302)。次に、CPU101は、因数分解の結果に基づいて、gi=(x−li ')及びli '=l||MDを得る(ステップ303)。次に、因数分解された全ての(x−li ')に関してMD=MD5(li)であるような要素項目li '(すなわち、li '=li||MD5(li)であるようなli ')を抽出する(ステップ304、305)。そして、得られた要素項目li 'よりリストLを作成し(ステップ306)、得られたリストLを出力する(ステップ307)。
以上のようにして、特徴関数F(x)からリストLが復元される。
【0033】
この種のリストマッチングにおけるセキュリティに関しては、次の要件を満たすことが要求される。
(1)全リスト保持者のリストに共通して現れる項目を共通部分とする。
(2)リスト保持者の持つリストの内容は共通部分を除いて誰も知りえない。
このように定義すると、リスト保持者は自分のリストに含まれる項目の範囲内だけで、それぞれの項目が他の参加者と共通かどうかだけを知ることができることになる。
【0034】
上述したように、リストを当該リストの各項目を根とする多項式(特徴関数)で表現することにより、各多項式を加算することによって各リストの共通項目を根とする多項式が得られ、この計算結果である多項式からリストの共通項目を取得することができる。すなわち、分岐命令などを含む比較計算を必要とせず、加算のみによって、リストの共通項目を抽出することが可能となる。このため、後述するように、各参加者が自分のリストに対応する多項式を順次加算して共通項目を算出するシステムや、分散秘密計算を用いて共通項目を算出するシステムを構築することが可能となり、ネットワーク上で安全性の高いリストマッチングを実現することができる。
【0035】
〔第1の実施の形態〕
次に、上述したリストを特徴関数で表現し共通項目を計算する手法をプロトコルに用いて、リストマッチングを行うネットワークシステムの実施の形態について説明する。
ここでは、ネットワーク上にTTPサーバを置き、このTTPサーバでリストマッチングの計算を行うシステムと、ピア・ツー・ピアでリストマッチングを行うシステムとをそれぞれ説明する。
【0036】
図4は、ネットワーク上のTTPサーバでリストマッチングを行うシステムの全体構成を示す図である。
図4を参照すると、本実施の形態によるネットワークシステムは、リスト保持者(参加者)のクライアント端末と、リストマッチングの計算を行うマッチメーキングサーバ(TTPサーバ)とを備える。図4の例では、m人の参加者のクライアント端末411、412〜41mと1台のマッチメーキングサーバ400とがネットワークを介して接続されている。
【0037】
本実施の形態のマッチメーキングサーバ400は、例えば、ワークステーションやパーソナルコンピュータその他のコンピュータ装置にて実現される。また、クライアント端末411、412〜41mは、例えば、パーソナルコンピュータなどのコンピュータ装置、PDA(Personal Digital Assistant)、携帯電話などの情報通信端末にて実現される。そして、磁気ディスクや半導体メモリなどの記憶手段にリストマッチングの対象であるリストを格納している。典型的には、マッチメーキングサーバ400及びクライアント端末411、412〜41mは、図18に示したコンピュータ装置にて実現することができる。
【0038】
図5は、図4に示したマッチメーキングサーバ400及びクライアント端末411、412〜41mの好適なシステム構成を示す図である。
図5に示すように、マッチメーキングサーバ400及びクライアント端末411、412〜41mは、それぞれ、アプリケーションソフトウェア501、511と、ネットワークプロトコル502、512と、ネットワークインターフェイス503、513とを備える。
【0039】
アプリケーションソフトウェア501、511にて制御されたCPU101は、処理対象となるリストの生成、当該リストからの特徴関数の多項式の構成、多項式の加算、多項式からのリストの復号といった処理を実行する。そして、ネットワークプロトコル502、512を介してネットワークインターフェイス503、513を制御する。そして、このネットワークインターフェイス503、513により、ネットワーク回線520を介して、マッチメーキングサーバ400とクライアント端末411、412〜41mとの間の通信が行われる。
また、クライアント端末411、412〜41mのアプリケーションソフトウェア511にて制御されたCPU101は、後述のプロトコルにしたがってマッチメーキングサーバ400から受け取った共通項目のリストや当該リストに関する情報を、当該クライアント端末411、412〜41mに設けられている表示手段(液晶表示装置など)や音声出力手段にて出力する機能を実現する。
なお、本実施の形態におけるマッチメーキングサーバ400及びクライアント端末411、412〜41mのシステム構成は、必ずしも図5に示した構成に限るものではない。例えば、アプリケーションソフトウェア501、511とネットワークプロトコル502、512との間にネットワークOS(オペレーティングシステム)が介在していても良い。
【0040】
以上のように構成されたネットワークシステムにおいて、次のようなプロトコルでリストマッチングを実行する。
1.クライアント端末411は、自分のリストL1から多項式F1(x)を構成する。また、ランダムな項目を持つリストR1を生成し、この多項式をFR1(x)とする。そして、FR1(x)をマッチメーキングサーバ400に秘密送信し、F1,2(x)=F1(x)+FR1(x)をクライアント端末412に秘密送信する。
2.クライアント端末41i(i=2、・・・、m−1)は、クライアント端末41i−1から送信された多項式Fi-1,i(x)に自分のリストLiの多項式表現Fi(x)を加えたFi,i+1(x)=Fi-1,i(x)+Fi(x)をクライアント端末41i+1に秘密送信する。
3.クライアント端末41mは、クライアント端末41m−1から送信された多項式Fm-1,m(x)に自分のリストLmの多項式表現Fm(x)を加えたFm,M(x)=Fm-1,m(x)+Fm(x)を、マッチメーキングサーバ400に秘密送信する。
4.マッチメーキングサーバ400は、クライアント端末41mから送付された多項式Fm,M(x)からFR1(x)を引き算して得られた多項式FM(x)=Fm,M(x)−FR1(x)から、各クライアントの共通部分に関するリストを復号し、各クライアント端末411、412〜41mに通知する。
【0041】
以上のようにして、各参加者のリストを表現する多項式が、各クライアント端末411、412〜41mを経ながら加算されてゆき、マッチメーキングサーバ400において共通部分のリストが得られることとなる。なお、マッチングサーバ400は、共通部分のリストに対応する多項式FM(x)をそのまま各クライアント端末411、412〜41mへ送信し、各クライアント端末411、412〜41mにおいて共通部分のリストを復号させるようにしても良い。また、リストにおける共通項目の項目数だけを各クライアント端末411、412〜41mに通知するようなサービスも可能である。
【0042】
また、各クライアント端末411、412〜41mの順番は、任意に設定することができ、リストマッチングを行うたびに変更しても良いが、リストマッチングの対象であるリストを保持するクライアント端末411、412〜41mが全て参加することが必要である。さらに、リストマッチングを行うたびに、対象となるリストの数も変化し得る。例えば、4台のクライアント端末411、412〜41mがマッチメーキングサーバ400に接続されている場合に、ある時は4台全てのクライアント端末411、412〜41mが参加してリストマッチングを行い、別のある時は任意の2台のクライアント端末411、412〜41mが参加してリストマッチングを行うといった実施を行うことができる。
【0043】
上述したネットワークシステムによれば、次の2つの安全性が保たれることとなる。
第1に、マッチメーキングサーバ400は、加算結果の多項式のみを知ることができる。
第2に、各クライアント端末411、412〜41mは、他の参加者の多項式を知ることはできない。
したがって、各参加者は、自分のリストに含まれる項目の範囲内だけで、それぞれの項目が他の参加者と共通かどうかだけを知ることができることとなる。そのため、特定のリスト保持者だけが、自分の項目は全く明かさずに、他者の共通部分の知識を得るような操作を防ぐことが可能となる。
【0044】
〔第2の実施の形態〕
次に、TTPサーバを用いずに、ピア・ツー・ピアでリストマッチングを行うシステムについて説明する。
図6及び図7は、かかるシステムの全体構成を示す図である。各図には、後述するプロトコルにおける動作が記述されている。
本実施の形態によるネットワークシステムでは、秘密分散に協力する複数のサーバが必要になる。このサーバは、上述したマッチメーキングサーバ400とは異なり、多項式の計算に協力するのみであって、リストに関しての何の情報も知り得ない。図6及び図7を参照すると、本実施の形態によるネットワークシステムは、m人のリスト保持者(参加者)のネットワーク端末611〜61mと、秘密分散に協力するk台のサーバ621〜62kとがネットワークを介して接続されている。
【0045】
本実施の形態のネットワーク端末611〜61mは、例えば、パーソナルコンピュータなどのコンピュータ装置、PDA(Personal Digital Assistant)、携帯電話などの情報通信端末にて実現される。そして、磁気ディスクや半導体メモリなどの記憶手段にリストマッチングの対象であるリストを格納している。また、サーバ621〜62kは、例えば、ワークステーションやパーソナルコンピュータその他のコンピュータ装置にて実現される。典型的には、ネットワーク端末611〜61m及びサーバ621〜62kは、図18に示したコンピュータ装置にて実現することができる。
【0046】
図8は、図6に示したネットワーク端末611〜61m及びサーバ621〜62kの好適なシステム構成を示す図である。
図8に示すように、ネットワーク端末611〜61m及びサーバ621〜62kは、それぞれ、アプリケーションソフトウェア801、811と、ネットワークプロトコル802、812と、ネットワークインターフェイス803、813とを備える。
【0047】
アプリケーションソフトウェア801、811にて制御されたCPU101は、処理対象となるリストの生成、当該リストからの特徴関数の多項式の構成、多項式の加算、多項式からのリストの復号といった処理を実行する。そして、ネットワークプロトコル802、812を介してネットワークインターフェイス803、813を制御する。そして、このネットワークインターフェイス803、813により、ネットワーク回線820を介して、ネットワーク端末611〜61mとサーバ621〜62kとの間の通信が行われる。
また、ネットワーク端末611〜61mのアプリケーションソフトウェア801にて制御されたCPU101は、後述のプロトコルにしたがって復元した多項式に基づく共通項目のリストを、当該ネットワーク端末611〜61mに設けられている表示手段(液晶表示装置など)や音声出力手段にて出力する機能を実現する。
なお、本実施の形態におけるネットワーク端末611〜61m及びサーバ621〜62kのシステム構成は、必ずしも図7に示した構成に限るものではない。例えば、アプリケーションソフトウェア801、811とネットワークプロトコル802、812との間にネットワークOSが介在していても良い。
【0048】
ここで、本実施の形態のシステムにおける秘密分散によるリストマッチングを実現するための背景技術について説明する。
鍵共有暗号系:
鍵共有暗号系は、1つの秘密鍵をいくつかのサーバに分割してもたせるものであり、Shamirの(t,k)閾値暗号系が有名である。これは、1つの秘密情報をk個のサーバに分割して持たせ、そのうちのt個が協力することにより、元の鍵を復元できるものである。構成法は、まず、ある体F上の(t−1)次多項式
f(x)=f0+f1*x+f2*x2+…+ft-1*xt-1 (式1)
を定める。秘密情報の所有者は、まず、式1のf0に秘密情報を代入し、残りのfkはランダムに決める。次に、各サーバkに対し、(k,f(k))を分割情報として送る。k個の分割情報が集まると始めて、この多項式(式1)の各係数を一意に求めることができ、f0が求められる。
なお、Shamirの(t,k)閾値暗号系については、次の文献4に詳細に記載されている。
文献4:Shamir, A., "How to Share a Secret," CACM 22, 1979.
【0049】
Oblivious Transfer:
Oblivious Transfer(以下、OT)は、情報提供者(S:Sender)と選択者(C:Chooser)の2人の間のプロトコルであり、提供者が持つ複数個の情報のうち、所定のいくつかの情報を選択者が選んで得るという手法である。このとき、以下の2つの条件がみたされなければならない。
(1)選択者のプライバシー:提供者は選択者がどれを選んだかを知ることができない。
(2)提供者のプライバシー:選択者は選んだ情報以外を知ることはできない。
【0050】
基本的なOTとして、1−out−of−2−OTがある。これは、提供者が2つの情報を持ち、選択者はそのうちの任意の1つを選ぶというものである。これを実現する代表的なプロトコルとして、ElGamal暗号を使った、次に示すプロトコルがある。なお、下記プロトコルにおいて、提供者の持つ情報をI0、I1、選択者の選択値をb∈{0,1}、[b]=NOT bとする。
1.S→C:乱数r
2.C→S:Kb=gx,K[b]=r/Ab
3.S:Check that K0*K1=r
4.S→C{EI1,IE2},where EI1=(gh,I0*K0 h),EI2=(gh,I1*K1 h)
5.C:Decrypt Ib
以上のプロトコルは、例えば、下記文献5に詳細に記載されている。
文献5:Bellare, M. and Micali, S., "Non-interactive oblivious transfer and applications," in proc. CRYPTO'89, 1990.
【0051】
分散型OT:
上記の基本的なOTでは、提供者と選択者の間で暗号化、復号化の処理が必要になる。特に提供者側は、全ての情報を暗号化しなければならず、負担が大きい。そこで、提供者と選択者との間に複数のサーバを置き、サーバ間で情報の秘密分散をさせることによって、提供者の負担を軽減することが考えられる。これを実現したOTとして、分散型OTがある。この分散型OTのプロトコルを次に示す。なお、下記プロトコルにおいて、k個のサーバをP1,...,Pkとする。
1.S:一次式FY(y)=(I1−I0)y+I0と、定数項が0の任意のk−1次式FX(x)を作り、2変数多項式Q(x,y)=FX(x)+FY(y)を定義する。
2.S→Pi:Q(i,y)を送る(Qは1変数多項式)。
3.C:定数項がbであるk−1次式S(x)を作る。
4.C→Pi:座標(i,S(i))を送る。
5.Pi→C:Q(i,S(i))を返す。
6.C:k個のサーバからQ(i,S(i))を得ることによって、k−1次式G(x)=Q(x,S(x))を復元することができ、その結果G(0)=Q(0,S(0))=Q(0,b)=FY(b)の値が求まる。
上記プロトコルは、例えば、下記文献6に詳細に記載されている。
文献6:Naor, M. and Pinkas, B, "Distributed Oblivious," in proc. of Asiacrypt, 2000.
【0052】
以上の技術的背景に基づき、図6乃至図8に示したように構成されたネットワークシステムにおいて、次のようなプロトコルでリストマッチングを実行する。
1.特徴関数の構成と2変数関数化:
ネットワーク端末61i(i=1,...,m)は、n+1次の多項式FYi(y)を、FYi(li,h)=0、h=1,...,nとなるように構成する(n+1次なのでn+1個の根を持つことができるが、最後の1個はSiのIDの文字列「idi」を根にする、またネットワーク端末61iのリストの項目数がnに満たない場合も残りの根を全て「idi」とする)。次に、定数項が0の任意のk−1次多項式FXi(x)を作り、2変数多項式Qi(x,y)=FXi(x)+FYi(y)を定義する(図6参照)。図9は、多項式Qi(x,y)=FXi(x)+FYi(y)を示す図である。
【0053】
図10は、2変数多項式Qi(x,y)の生成方法を説明するフローチャートであり、図11は、k−1次多項式FXi(x)の生成方法を説明するフローチャートである。
図10を参照すると、予めメインメモリ等に格納されているn+1次の多項式FY(y)を読み出し(ステップ1001)、さらにk−1次の多項式FX(x)を読み出す(ステップ1002)。そして、読み出した多項式FY(y)及びFX(x)を加算して2変数多項式Qi(x,y)を生成する(ステップ1003)。
また、図11を参照すると、まず、k−1個の乱数を生成し(ステップ1101)、当該乱数を用いてk−1次多項式FX(x)=r1*x+r2*x2+…+rk-1*xk-1を生成する(ステップ1102)。
【0054】
2.特徴関数のサーバへの分散:
ネットワーク端末61i(i=1,...,m)からサーバ62j(j=1,...,k)へ、Qi(j,y)を送る(Qiは1変数多項式)(図6参照)。
【0055】
3.各サーバにおける分散値加算:
サーバ62j(j=1,...,k)は、各ネットワーク端末61i(i=1,...,m)から送られてきた多項式Qi(j,y)を全て加算する(図6参照)。すなわち、
Q(j)(j,y)=ΣiQi(j,y)
【0056】
4.復元用関数の作成:
各ネットワーク端末61i(i=1,...,m)は、定数項がli,tであるk−n−2次多項式Si,t(x)、t=1,...,nをn個作る(図7参照)。
【0057】
5.各サーバへの復元用関数上での分散値問い合わせ:
ネットワーク端末61i(i=1,...,m)からサーバ62j(j=1,...,k)へ、n個の座標(j,Si,t(j)),t=1,...,nを送る(図7参照)。
【0058】
6.各サーバからの復元用関数上での分散値返送:
サーバ62j(j=1,...,k)からネットワーク端末61i(i=1,...,m)へ、Q(j)(j,Si,t(j))の値、t=1,...,nを返す(図7参照)。
【0059】
7.項目の一致度判定:
ネットワーク端末61i(i=1,...,m)は、k個のQ(j)(j,Si,t(j)),(j=1,...,k)から、多項式Q(j)(x,Si,t(x))を復元する。そして、x=0を代入することによって、Q(j)(0,Si,t(0))=Q(j)(0,li,t)=ΣiFYi(li,t),t=1,...,nを計算する(図7参照)。もし、あるtについてΣiFYi(li,t)が0であれば、全てのリスト保持者がli,tという項目を共通に持っていることになる。一方、ΣiFYi(li,t)が0でなければ、共通項目ではなかったことがわかる。
【0060】
以上のようにして、各参加者のリストを表現する多項式が、複数のサーバ621〜62kに分散されて加算され、加算結果に基づいて、各参加者のネットワーク端末611〜61mにおいて、共通部分のリストが得られることとなる。なお、上記のプロトコルによって秘密分散を用いたリストマッチングを実行する場合、初期動作として、リストマッチングの対象となるリストを保有するネットワーク端末611〜61m間で通信を確立し、使用するサーバ621〜62kを決める工程が実行される。
上述したネットワークシステムによれば、次の2つの安全性が保たれることとなる。
第1に、秘密分散用のサーバ621〜62kは、k台全てが結託しない限り、リスト保持者の多項式および結果多項式についての情報を得ることはできない。
第2に、各ネットワーク端末611〜61mは、他の参加者の多項式を知ることはできない。
【0061】
ここで、ネットワーク端末611〜61mを用いた不正としては、定数0を自分のリスト表現関数として登録し、本当のリストは明らかにしないで、他の参加者の共通部分を知ろうとする方法が考えられる。しかしながら、ネットワーク端末611〜61mが秘密分散用のサーバ621〜62kに対して分散登録する際に、秘密分散用のサーバ621〜62kにおいて分散多項式の次数を調べることによって、不正を検出することができる。
【0062】
ところで、上記のプロトコルにおいて、各リスト保持者iは、自分の特徴関数FYi(y)を知っているため、和関数ΣiFYi(y)について、自分の特徴関数の根以外の点(つまり、あるリスト項目)y0を検索し、自分の特徴関数の値を引くことにより、ΣiFYi(y0)−FYi(y0)=0となった場合、自分以外のリスト保持者がその項目を共通点として持っていたかどうかを知ることができてしまう。これを防ぐために、以下のように、和関数を乱数倍にすることによって、根以外の情報を無効化することができる。
まず、上記プロトコルの2.において、Qi(j,y)に加え、乱数Ri(全てのサーバについて同じ値)を送る。
また、3.において、多項式Qi(j,y)を加算すると共に、各ネットワーク端末61i(i=1,...,m)から送られてきた乱数Riも加算する。すなわち、
R(j)=ΣiRi
そして、前者の関数を後者の乱数によって定数倍する。
以上の操作を含むことにより、自関数の根以外の点検索を無効化することができる。
【0063】
ところで、本実施の形態では、マッチングの対象であるリストの各要素は、特徴関数の根として表現されている。そのため、複数の特徴関数を加算した結果、個々の特徴関数において根でなかったところにも根が現れ得ることは上述した。また、この場合、1方向ハッシュ関数を用いることによって、復号時に根がリストの項目から作られたものか、加算の結果、偶然にできたものかを区別することが可能となることについても、先に述べた。
しかし、秘密分散を用いてピア・ツー・ピアでリストマッチングを行う本実施の形態においては、ハッシュ関数を用いた手法を取るまでもなく、偶然にできた根については大きな問題とはならない。なぜなら、各リスト保持者(参加者)は、自分の特徴関数の根であった部分について、結果の関数においても根であるか否かを調べるのが原則であるからである。したがって、少なくとも、参加者が2人の場合には問題は全く起こらない。
【0064】
参加者が3人以上の場合、例えば、参加者Aが{A1,A2}、参加者Bが{B1,B2}、参加者Cが{C1,C2}というリストをそれぞれ持っていたとする。この場合、AとBの特徴関数を加算した結果、ごく小さな確率で偶然に和関数がC1という根を持つ可能性があり、このとき、Cは、AもBも同じ要素C1を持っていると誤って判断することになる。このような事態が起きる確率は、以下のように求められる。
関数は、任意の有限体上で定義されるが、簡単のため素数体Zpとする。ここで、pを512bit程度の素数にすると、64文字長の文字列が根として表現できることになる。ここで、リストの要素数nを15程度にとると、特徴関数は16次元となる。特徴関数は、それぞれ対応するリストの保持者のIDを根として持つので、お互いに重なることはなく、ユニークであると考えられる。したがって、AとBの和関数がAとBの共通根以外の特定の値y0で根を持つ確率は、16/(2512)程度であり、ほとんど無視できる大きさだと考えられる。
【0065】
〔第3の実施の形態〕
次に、特徴関数を用いて、通常はピア・ツー・ピアでリストマッチングを行い、障害が発生した場合に、TTPサーバの支援によりリストマッチングの処理を補完するシステムについて説明する。
図12は、かかるシステムの全体構成を示す図である。
図12を参照すると、本実施の形態によるネットワークシステムでは、システムを構成する個々のピアであるネットワーク端末1200の間での情報のやり取りのみによって、リストマッチングが可能である。さらに、ネットワーク端末1200間での情報のやり取りに障害が発生した場合(必要な情報の交換が行われない場合や間違った情報が交換された場合)は、TTPサーバ1210に例外処理を依頼することにより、問題解決を図ることができる。
【0066】
図13は、本実施の形態におけるネットワーク端末1200及びTTPサーバ1210の機能構成を示す図である。
ネットワーク端末1200は、例えば、パーソナルコンピュータなどのコンピュータ装置、PDA(Personal Digital Assistant)、携帯電話などの情報通信端末にて実現される(図18参照)。そして、ハードディスク105やメインメモリ103などの記憶手段にリストマッチングの対象であるリストを格納している。図13を参照すると、ネットワーク端末1200は、公開情報であるコミットメント及びコミットメント開示値を生成するコミットメント生成部1201と、リストマッチングの相手となる他のネットワーク端末1200の公開情報を取得し検証を行うコミットメント検証部1202と、コミットメント生成部1201にて生成されたコミットメント開示値及びコミットメント検証部1202により検証された他のネットワーク端末1200のコミットメントに対するマッチング処理を行うマッチング部1203と、リストマッチングの結果を出力するマッチング結果出力部1204とを備えると共に、TTPサーバ1210に処理を依頼するための例外処理要求部1205と、TTPサーバ1210から取得した処理結果を出力する例外処理結果出力部1206とを備える。
これらコミットメント生成部1201、コミットメント検証部1202、マッチング部1203、マッチング結果出力部1204、例外処理要求部1205及び例外処理結果出力部1206は、ネットワーク端末1200を構成するコンピュータ装置におけるプログラム制御されたCPU101にて実現される仮想的なソフトウェアブロックである。また、特に図示しないが、ネットワーク端末1200は、プログラム制御されたCPU101及びネットワークインターフェイス106にて実現される送受信部を備える。
【0067】
また、TTPサーバ1210は、例えば、ワークステーションやパーソナルコンピュータその他のコンピュータ装置にて実現され(図18参照)、ネットワーク端末1200の例外処理要求部1205による処理要求に応じて、リストマッチングを行う例外処理実行部1211を備える。
この例外処理実行部1211は、TTPサーバ1210を構成するコンピュータ装置におけるプログラム制御されたCPU101にて実現される仮想的なソフトウェアブロックである。また、特に図示しないが、ネットワーク端末1200は、プログラム制御されたCPU101及びネットワークインターフェイス106にて実現される送受信部を備える。
【0068】
以下、図12に示したネットワークシステムを構成するピアであるネットワーク端末1200における所定の2台の間でリストマッチングが行われる場合を例として、処理及び情報の流れを説明する。
なお、以下の説明において、個々のネットワーク端末1200を区別する場合には、添え字u、vを付して記述する。各ネットワーク端末1200の構成要素についても同様である。例えばネットワーク端末1200v、コミットメント生成部1201uというように記す。
【0069】
各ネットワーク端末1200は、それぞれn個のデータをデータベースに保持しているものとする。全てのデータには、データごとに一意に区別できるデータ番号が割り振られているものとし、データ番号全体の集合をLとする。また、ネットワーク端末1200uが持つn個のデータにおけるデータ番号のリストを、添え字uを付してLu={αu,1,・・・,αu,n}とする。各ネットワーク端末1200uは、公開鍵暗号化に対応する秘密鍵Kuを持つものとする。また、TTPサーバ1210は、公開鍵暗号化アルゴリズムET()に対応する秘密鍵KTを保持する。このTTPサーバ1210は、通常プロセスでは登場せず、上述した障害(例外)発生時に、正常にプロトコルを終了させるための機能(例外処理実行部1211)を持つ。
【0070】
本実施の形態において、リストマッチング(2つのリストの共通部分抽出)は、次のように定義される。すなわち、任意の2組のネットワーク端末1200u、1200v(u≠v)の間で、それぞれの持つ秘密のリストLuとLvの共通部分Lu∩Lvを互いに共有する。この際、
(1)共通部分以外に関する情報を相手に漏らさないこと、
(2)一方だけが共通部分を知る不正を防ぐこと、
が要求される。
【0071】
次に、ネットワーク端末1200及びTTPサーバ1210において実行されるアルゴリズムについて説明する。
図14は、ネットワーク端末1200及びTTPサーバ1210で実行されるアルゴリズム及び情報の流れを示す図である。
本実施の形態では、リストマッチングを実現するため、ネットワーク端末1200において、以下に示す6つのアルゴリズムの記述を用いる。
・C(Lu):コミットメント生成部1201uにて実行されるコミットメント生成アルゴリズムであり、ネットワーク端末1200uの持つリストLuを入力として、コミットメントcomu及びコミットメント開示値openuを出力する。
・V(comv):コミットメント検証部1202uにて実行されるコミットメント検証アルゴリズムであり、ネットワーク端末1200vによるコミットメントcomvを入力として、検証結果{0,1}を出力する(以後、「1」を出力させる入力を「正当なコミットメント」と呼ぶ)。
・M(openu,comv):マッチング部1203uにて実行されるマッチングアルゴリズムであり、ネットワーク端末1200uのコミットメント開示値openu及びネットワーク端末1200vの正当なコミットメントcomvを入力として、応答メッセージansu,vを出力する。
・D(ansv,u,comv,Lu,Ku,openu):マッチング結果出力部1204uにて実行される結果出力アルゴリズムであり、ネットワーク端末1200vからネットワーク端末1200uに対する応答メッセージansv,u 、正当なコミットメントcomv、及びネットワーク端末1200uのリストLu、秘密鍵Ku、コミットメント開示値openuを入力として、LuとLvの共通部分
【数1】
(以下、~Lu,vとも表記する)もしくはエラーメッセージを出力する(以後、共通部分を出力させる入力ansv,uを「正当な応答メッセージ」と呼ぶ)。
・P(comv,Lu):例外処理要求部1205uにて実行される例外処理要求生成アルゴリズムであり、ネットワーク端末1200vの正当なコミットメントcomv、及びネットワーク端末1200uのリストLuを入力として、例外処理要求メッセージereqv,uを出力する。
・W(eansv,u,Ku):例外処理結果出力部1206uにて実行される例外処理結果生成アルゴリズムであり、例外要求応答メッセージeansv,uを入力として、LuとLvの共通部分~Lu,v(=Lu∩Lv)を出力する。
【0072】
さらに本実施の形態では、TTPサーバ1210の例外処理実行部1211において実行される次のアルゴリズムの記述を用いる。
・T(ereqv,u,KT):例外処理アルゴリズムであり、例外処理要求メッセージereqv,u及びTTPサーバ1210の秘密鍵KTを入力として、例外処理応答メッセージeansv,uまたはエラーを出力する(以後、eansv,uを出力させる例外処理要求メッセージereqv,uを「正当な例外処理要求メッセージ」と呼ぶ)。
以上のアルゴリズムの具体的な内容については後述する。
【0073】
上述したリストマッチング及びアルゴリズムの定義に基づいて、本実施の形態におけるリストマッチングは、次のように定式化される。
1.各サーバによるコミットメントの公開
初期的な処理として、各ネットワーク端末1200のコミットメント生成部1201uは、コミットメント生成アルゴリズムCを用いて、自装置のリスト(ネットワーク端末1200uの場合、Lu)に関するコミットメント及びコミットメント開示値(同様にネットワーク端末1200uの場合、{comu,openu}=C(Lu)を生成し、各ネットワーク端末1200、すなわちネットワークシステム全体に対して、生成されたコミットメント(com)をブロードキャストする。コミットメント開示値(open)は秘匿する。
なお、コミットメントは、全てのネットワーク端末1200に対して公開される。また、コミットメントのサイズは、システムに参加するネットワーク端末1200の数には依存しないので、ネットワーク端末1200のシステムへの追加に応じてコミットメントを変更する必要もない。したがって、ブロードキャストにより各ネットワーク端末1200間で個別に交換する代わりに、ネットワーク上に解説された公開されたデータベースに登録したり、このデータベースをCD−ROM(Compact Disc Read Only Memory)やDVD−ROM(Digital Versatile Disc Read Only Memory)などの大容量記録媒体に格納して配布したりするなど、各ネットワーク端末1200が任意に取得できる手段であれば、どのような手段を用いて提供しても良い。
【0074】
2.以下の処理を任意のネットワーク端末1200間で行う。簡潔のため、ネットワーク端末1200u、1200v間の処理の流れを示す。ここで、(b)は例外発生時にのみ必要となる手続きである。なお、以下に示すように、この処理はネットワーク端末1200u、1200vの双方で同様の処理を行うことから、初期的にネットワーク端末1200u、1200v間で連絡を取り合い、リストマッチングを行うことを確認した後に開始することとなる。
(a)通常プロセス
i.コミットメントの検証
ネットワーク端末1200uのコミットメント検証部1202uは、リストマッチングの相手であるネットワーク端末1200vのコミットメントcomvに対し、コミットメント検証アルゴリズムVを用いて、V(comv)=1となるかを検証することで、comvが正当なコミットメントであることを確認する。ここで、V(comv)=0であれば、ネットワーク端末1200vに対して以後の処理を行わない(したがってリストの交換は一切発生しない)。一方、ネットワーク端末1200vも、comuに対して同様の処理を行う。
【0075】
ii.応答メッセージの生成
ネットワーク端末1200uのマッチング部1203uは、ネットワーク端末1200vの正当なコミットメントcomvに対し、自身のコミットメント開示値openu及びマッチングアルゴリズムMを用いて、応答メッセージansu,v=M(openu,comv)を計算し、リストマッチングの相手であるネットワーク端末1200vに送信する。一方、ネットワーク端末1200vもcomuに対して同様の処理を行う。
【0076】
iii.結果出力
ネットワーク端末1200uのマッチング結果出力部1204uは、ネットワーク端末1200vから応答メッセージansv,uを受け取る。ansv,uを受信できない場合には、後述の例外処理プロセスを行う。ネットワーク端末1200vから受け取ったansv,uに対し、自身のリストLu、秘密鍵Ku、コミットメント開示値openu、ネットワーク端末1200vの正当なコミットメントcomv、及び結果出力アルゴリズムDを用いて、resv,u=D(ansv,u,comv,Lu,Ku,openu)を計算する。ansv,uが正当な応答メッセージであれば、resv,uは、ネットワーク端末1200uのリストLuとネットワーク端末1200vのリストLvとの共通部分(Lu∩Lv)である。resv,uがエラーのときは、例外処理プロセスを行う。一方、ネットワーク端末1200vもansu,vに対して同様の処理を行う。
【0077】
(b)例外処理プロセス
i.例外処理要求
ネットワーク端末1200uにおいてリストの共通部分を計算できないという例外が発生した場合、すなわち、ネットワーク端末1200vからansv,uが送信されなかった場合や間違ったansv,uが送信された場合、ネットワーク端末1200uの結果出力部1205uは、自身のリストLu、ネットワーク端末1200vの正当なコミットメントcomv、及び例外処理要求生成アルゴリズムPを用いて、例外処理要求メッセージereqv,u=P(comv,Lu)を計算し、TTPサーバ1210に送信する。
【0078】
ii.例外処理
TTPサーバ1210は、例外処理要求メッセージereqv,uを受け取った後、事前に規定された手段によって例外が生じたことを確認する。例外が確認されなければネットワーク端末1200uに対してエラーを返す。例外が確認された場合、例外処理実行部1211が、例外処理アルゴリズムT及び秘密鍵KTを用いて、例外処理応答メッセージeansv,u=T(ereqv,u,KT)を計算する。そして、TTPサーバ1210は、計算された例外処理応答メッセージeansv,uをネットワーク端末1200uに対して送信する。
【0079】
iii.例外処理結果出力
ネットワーク端末1200uの例外処理結果出力部1206uは、TTPサーバ1210から受け取った例外処理応答メッセージeansv,uと、ネットワーク端末1200uの秘密鍵Kuとを入力として、例外処理結果eresv,u=W(eansv,u,Ku)を計算し、出力する。この例外処理結果eresv,uは、ネットワーク端末1200uのリストLuとネットワーク端末1200vのリストLvとの共通部分(Lu∩Lv)である。
【0080】
以上の動作において、各ネットワーク端末1200は、自身のリストに対するコミットメントを公開することにより、リストマッチングにおいてリストを偽らないことを他のサーバに対して保証することができる。また、コミットメントには、例外発生時に一方が不利を被らないよう、TTPサーバ1210がリストの共通部分を計算することを可能にするための情報が含まれている。各ネットワーク端末1200は、コミットメント検証アルゴリズムVを用いて、「コミットメントが正確に構成されていおり、万一の場合にはTTPサーバ1210による問題解決が可能であること」を通常プロセスの冒頭においてチェックすることができる。
さらに、リストを偽ることが困難なように、応答メッセージは、公開されたコミットメントを入力として計算される。したがって、リストを偽ることにより不正にマッチング相手のネットワーク端末1200の持つリストに関する情報を入手することはできない。また、一方のネットワーク端末1200が応答メッセージを送信せずにプロトコルを勝手に中断したり、不正に計算されたメッセージを送信したりした場合、TTPサーバ1210が、コミットメント及び例外処理要求メッセージに含まれる情報を基にリストの共通部分を計算することができる仕組みになっている。したがって、不正行為によりリストの共通部分の情報を、一方のネットワーク端末1200だけが入手することはできない。
【0081】
次に、本実施の形態のシステムにおいて、上記のリストマッチングの動作を実現するためのプロトコルを説明する。
まず、本プロトコルで用いられるパラメータについて説明する。
GqをDecisional Diffice-Hellman(DDH)仮定が成立する位数q(qは素数)の群とし、g及びhをGqのランダムな元とする。ここで、logg hは未知とする。H(・)を理想的な一方向性ハッシュ関数、α∈Zqに対するコミットメントをπ(α,r)=gαhr(r∈RZq)とする。ここで、x∈RGは「Gからランダムに取り出した要素をxとする」を意味する。また、Gq上のElGamal暗号Ey(m,r)を次のように定義する。
Ey(m,r)=(gr,myr)(r∈RZq)
上式で、mは平文(メッセージ)、yは公開鍵である。公開鍵yに対応する秘密鍵による復号をDyと表す(つまり、Dy(Ey(m,r))=m)。mがGq上の元に限定される場合、この暗号化はDDH仮定の元で強秘匿であることが知られている。また、ElGamal暗号には次の性質がある。
(Ey(m,r))k=((gr)k,(myr)k)=Ey(mk,kr)
Ey(m,r)×Ey(m',r')=(grgr',myr(m'yr'))=Ey(mm',r+r')
以後、文脈に応じてE(m,r)の乱数rを省略してE(m)とする記述を適宜用いることにする。
【0082】
本実施の形態で実現されるプロトコルは、離散対数問題が計算量的に困難となるような任意の群GF(q)上で定義される。GF(q)の具体的構成例としては、(1)位数pの素体の上での構成法:pをq|p−1を満たす大きな素数、gを有限体Zp上の位数qの元として、gを生成元として構成される群GF(q)、
(2)位数pの素体の上での乗法演算を、任意の有限体上の楕円曲線などの曲線上の加法演算に対応させることにより構成される群、
(3)素数pに代えて素数p'のべき乗数とし、素数pを法とする剰余演算に代えてGF(p')拡大体上での演算を行なうことにより構成される群、
などがある。
【0083】
次に、本実施の形態で用いられる既存の基本的なプロトコルを示す。
ElGamal暗号を用いたOPE:
A、Bの2者間で情報のやり取りをするものとする。Aの公開鍵をyとする。
Aは秘密の値α(∈Zq)を持ち、Bは次の数2式に示す秘密の多項式fB(x)を持つものとする。
【数2】
本プロトコルは、
・AはBにαを知られずに、gfB( α )を得ることができる。
・AはfB(x)に関してgfB( α )以外の情報を知ることはできない。
という性質を持つ。以下にプロトコルの内容を示す。
【0084】
1.Aは、i=1,・・・,nについて、
【数3】
を、乱数ri(∈RZq)を用いて次の数4式のようにElGamal暗号化する。
【数4】
Aは、c1,・・・,cnをBへ送信する。
2.Bは、乱数r0(∈RZq)を選び、次の数5式に示す計算を行う。
【数5】
Bは
【数6】
をAへ送信する。
3.Aは、^cを復号してgfB( α )を得る。
【0085】
証明プロトコル1:
m0、m1をGqの元、^c1=(c1,c2)=Ey(m1,β)=(gβ,m1yβ)を、公開鍵yを用いたm1のElGamal暗号文とする。このとき、共通入力(g,y,m0,^c)に対し、暗号文^cに対応する平文m1のm0に対する離散対数αを知っていることを証明する。すなわち、知識の非対話証明(e,s,t)=PKa{(α,β):(c1=gβ)∧(c2=m1yβ)∧(m1=m0α)}は次のように構成できる。
1.r1,r2∈RZqを選ぶ。
2.次の数7式により(e,s,t)を計算する。
【数7】
検証者は、次の数8式が成立するときに、証明を受理する。
【数8】
【0086】
証明プロトコル2:
m1,m2,m'1,m'2をGqの元とし、また、
^c1=(c1,1,c1,2)=Ey(m'1,β1)=(gβ 1,m'1yβ 1)
^c2=(c2,1,c2,2)=Ey(m'2,β2)=(gβ 2,m'2yβ 1)
を、公開鍵yを用いた、それぞれm'1,m'2のElGamal暗号文とする。このとき、共通入力(g,y,m1,m2,^c1,^c2)に対し、暗号文^c1,^c2に対応する平文m'1,m'2の、それぞれm1,m2に対する離散対数が等しいことを証明する。すなわち、知識の非対話証明(e,s,t,u)=PK{(α,β1,β2):{(ci,1=gβ i)∧(ci,2=m'iyβ i)∧(m'i=mi α)}i=1,2}は、次のように構成できる。
1.乱数r1,r2,r3∈RZqを選ぶ。
2.次の数9式により、(e,s,t,u)を計算する。
【数9】
検証者は、次の数10式が成立するときに、証明を受理する。
【数10】
この手法を拡張することにより、
PK{(α,{βi}i=1 n):{(ci,1=gβi)∧(ci,2=m'iyβi)∧(m'i=miα)}i=1 n}
を構成することは容易である。
【0087】
証明プロトコル3:
m0をGqの元、また、i=1,・・・,nのそれぞれ対して^ci=(ci,1,ci,2)=(gβi,miyβi)を、公開鍵yを用いたmiのElGamal暗号文とする。このとき、共通入力(g,y,m0,^c1,・・・,^cn)に対し、次の数11式に示す関係を満足するαが存在することを、αを明かさずに証明する。
【数11】
すなわち、知識の非対話証明
【数12】
は、次のように構成できる。ここで、簡単のため、(c0,1,c0,2)=Ey(m0,0)=(1,m0),β0=0とする。
1.r1,r2∈RZqを選ぶ。
2.次の数13式により(e,s1,・・・,sn,t)を計算する。
【数13】
検証者は、次の数14式が成立するときに、証明を受理する。
【数14】
【0088】
図15は、上記の基本的なプロトコルに基づいて実現される本実施の形態におけるリストマッチングのプロトコルを説明する図である。以下、図15を参照しながら説明する。なお、図中の括弧付きの数字は、下記の手順の番号と対応している。
〔1〕ネットワーク端末1200uは、リストLu={αu,1,...,αu,n}に対し、特徴関数である
【数15】
を計算する。このとき、
【数16】
は、定数項が1であり、Luの全ての要素を根に持っている。
【0089】
〔2〕ネットワーク端末1200uは、係数{au,l}l=1 nに対するコミットメント{cu,l=gau,lhbu,l}l=1 nを作成する。ここで、
【数17】
とする。
【0090】
〔3〕ネットワーク端末1200uは、ElGamal暗号を用いたOPEの手法を応用し、リストの要素αu,i∈Luを入力とするOPEにより、αu,iがネットワーク端末1200vの多項式fv(x)の根になっているかを検査する。そのため、以下の処理を要素αu,i∈Luの全て(i=1,・・・,n)に対して行う。
(a) gu,i,hu,i∈Gqを選ぶ。ここでtg (u,i)=logg gu,iとth (u,i)=logh hu,iはネットワーク端末1200uのみが知るものとする。
(b) 次の数18式を計算する(yTはTTPサーバ1210の公開鍵)。
【数18】
また、この計算が正確に行われていること示す証明pku,i,1を構成する。さらにψt (u,・,・)はTTPサーバ1210において復号できることから、「TTPサーバ1210が問題発生時に問題解決できる」ということを検証可能にしている。
(c) αu,iがfu(αu,i)=0を満たすこと示す証明pku,i,2を構成する。この証明は、
【数19】
を用いて、次の数20式におけるhに対する離散対数の知識を証明することにより実現している。
【数20】
(d) αu,iに関する公開情報du,iは、次の数21式のように構成される。
【数21】
これにより公開されるコミットメントcomuは、次の数22式で表されるようになる。
【数22】
【0091】
〔4〕ネットワーク端末1200uのコミットメントcomuを受け取ったネットワーク端末1200vは、以下の処理をi=1,...,nに対して行う。
(a)du,iに含まれるpku,i,1及びpku,i,2を検証する。
(b)次の数23式により、φg (u,v,i)、φh (u,v,i)を計算する。
【数23】
(c)φg (u,v,i)をξ1 (u,v,i)乗することによりαu,iがfv()の根判定以外に関する情報を隠蔽する。すなわち、
【数24】
一方、以上の処理が正確に行われたかを、ネットワーク端末1200uの側で公開されたコミットメントcomvのみを用いて検証可能にするための情報を構成する。まず、φh (u,v,i)に
【数25】
を掛けることにより、wv(αu,i) に関する情報を隠蔽した上で、これらの処理が正確に行われていることを示す証明を、次の数26式のように構成する。
【数26】
これにより応答メッセージは、次の数27式に示すようになる。
【数27】
【0092】
〔5〕応答メッセージansu,vを受け取ったネットワーク端末1200uは、i=1,・・・,nに対して以下の処理を行う。
(a)証明ρ(u,v,i)をネットワーク端末1200uのコミットメントcomvを用いて検証する。具体的には、次の数28式を計算し、数29式が成立するかを検証する。
【数28】
【数29】
(b)上記の検証が通過しない場合は、例外処理を行う。σg (u,v,i)=1ならば、fv(αu,i)=0であることから、αu,i∈Lvがわかる。逆に、σg (u,v,i)≠1ならば、
【数30】
である。
【0093】
〔6〕例外発生時には、ネットワーク端末1200uはネットワーク端末1200vのコミットメントcomvに含まれる
【数31】
を用いて例外処理を行う。具体的には、次の数32式を計算する。
【数32】
そして、
【数33】
をTTPサーバ1210へ送る。TTPサーバ1210は、κ1を復号することにより、
【数34】
を得る。これは、ネットワーク端末1200uの公開鍵yuを用いたElGamal暗号化であり、強秘匿であることからリストLu、Lvの共通部分であるかどうかの情報はTTPサーバ1210には漏れない。TTPサーバ1210は、これを~z(u,v,i,j)乗してランダマイズした結果をネットワーク端末1200uへ送る。すなわち、
【数35】
である。ネットワーク端末1200uは、これを復号して、結果が1になったものが共通部分であると判定することができる。
【0094】
次に、以上の本実施の形態で使用される各アルゴリズムの詳細を説明する。
以下の説明において、YTはTTPサーバ1210の公開鍵とする。
・コミットメント生成アルゴリズムC
入力:ネットワーク端末1200uの持つリストLu。
出力:コミットメントcomu、コミットメント開示値openu。
処理:
(1)リストLuに対し、
【数36】
を生成する。各係数を
【数37】
とする。
(2)l=1,・・・,nに対してbu,lを選び、
【数38】
を計算する。ここで、
【数39】
とする。
(3)次の数40式を計算する。
【数40】
また、これらの各値は、次の数41式に示す処理により計算される。
【数41】
(4)コミットメント開示値openuを出力する。
【数42】
(5)コミットメントcomuを出力する。
【数43】
【0095】
・コミットメント検証アルゴリズムV
入力:ネットワーク端末1200vのコミットメントcomv。
出力:検証結果{0,1}。
処理:
【数44】
に含まれる証明
【数45】
を検証し、コミットメントcomvの全てを受理する場合に1を出力し、それ以外は0を出力する。
【0096】
・マッチングアルゴリズムM
入力:ネットワーク端末1200uのコミットメント開示値openu、ネットワーク端末1200vの正当なコミットメントcomv。
出力:応答メッセージansu,v。
処理:
(1)コミットメント開示値openuに含まれる
【数46】
を用いて、次の数47式に示す(a)〜(d)の処理をi=1,・・・,nに対して計算する。
【数47】
(2)応答メッセージansu,vを出力する。
【数48】
【0097】
・結果出力アルゴリズムD
入力:ネットワーク端末1200vからネットワーク端末1200uへの応答メッセージansv,u、ネットワーク端末1200vの正当なコミットメントcomv、ネットワーク端末1200uのリストLu、秘密鍵Ku、コミットメント開示値openu。
出力: リストLvとリストLuとの共通部分~Lv,u(=Lv∩Lu)もしくはエラーメッセージ。
処理:入力として、
【数49】
を用いる。そして、i=1,・・・,nに対して以下の処理を行う。
(1)証明
【数50】
を検証するため、次の数51式を計算する。
【数51】
(2)次の数52式が成り立たなければ、エラーメッセージを出力して終了する。
【数52】
(3)σg (u,v,i)を満たすならば、αu,iを出力して終了する。
【0098】
・例外処理要求生成アルゴリズムP
入力:ネットワーク端末1200vの正当なコミットメントcomv、ネットワーク端末1200uのリストLu。
出力:例外処理要求メッセージereqv,u。
処理:
(1)コミットメントcomvに含まれるψt (u,i)及びリストLuを用い、i=1,・・・,nに対して、次の数53式を計算する。
【数53】
(2)例外処理要求メッセージereqv,uを出力する。
【数54】
【0099】
・例外処理アルゴリズムT
入力:例外処理要求メッセージereqv,u、TTPサーバ1210の秘密鍵KT。
出力:例外処理応答メッセージeansv,uまたはエラーメッセージ。
処理:後述する所定の手続きに従い、ネットワーク端末1210u、1210v間での情報交換に障害(例外)が発生していることを確認する。確認できない場合はエラーメッセージを出力し、ネットワーク端末1210uに返送して処理を終了する。一方、確認できたならば、秘密鍵KTを用いた復号関数DyTを用い、i,j=1,・・・,nに対して以下の処理を行う。
(1)次の数55式を計算する
【数55】
(2)例外処理応答メッセージeansv,uを出力する。
【数56】
【0100】
・例外処理結果生成アルゴリズムW
入力:例外処理応答メッセージeansv,u、ネットワーク端末1200uの秘密鍵Ku。
出力: リストLvとリストLuとの共通部分~Lv,u(=Lv∩Lu)。
処理:i,j=1,・・・,nに対して以下の処理を行う。
(1)次の数57式により、σt (u,v,i,j)を計算する。
【数57】
(2)σt (u,v,i,j)=1ならば、αu,iを出力する。
【0101】
次に、TTPサーバ1210が、確かにネットワーク端末1210u、1210v間での情報交換に障害(例外)が発生していることを確認するための検証方法について説明する。
TTPサーバ1210は、例外処理アルゴリズムTを実行する上で、ネットワーク端末1210u、1210v間での情報交換に障害(例外)が発生していることを確認しなければならない。マッチング結果出力部1204がエラーメッセージを出力する場合には、それを示す証明を併せて検証することで、TTPサーバ1210は例外の発生を確認できる。また、例えばネットワーク端末1200uとネットワーク端末1200vとのリストの共通部分の計算において、ネットワーク端末1200uがネットワーク端末1200vに対して応答メッセージを送信したにも関わらず、ネットワーク端末1200vがネットワーク端末1200uに対して応答メッセージを送らないことによる例外発生も考えられる。この場合には、エラーメッセージの出力がなくても例外の解決が必要になる。しかしながら、TTPサーバ1210にとって、次の2つのケースを区別することは非常に困難である。
・ネットワーク端末1200vが本当に応答メッセージをネットワーク端末1200uに対して送っていない。
・ネットワーク端末1200uが、実際はネットワーク端末1200vとのやり取りを行っていないにもかかわらず、例外発生を主張し、不正にネットワーク端末1200vの持つリストとの共通部分を知ろうとしている。
【0102】
これらのケースの判定は、一般的には、期限付き取引証明書を暗号的・非暗号的手段を組み合わせて用いることにより実現できる。ここでいう「期限」とは、
(1)「期限」以前ならば、いずれかから取引中止証明書が提出されている状況下において、TTPサーバ1210は例外要求を受け付けない、
(2)「期限」以後ならば、いずれかから取引証明書が提出されれば、TTPサーバ1210は例外要求を受理し問題解決を行う、
というポリシー制約を付することを意味する。
図16は、この期限付き取引証明書を用いた例外発生の検証方法を説明する図である。
図16を参照すると、この検証方法の処理は次の手順で行われる。なお、図中の番号は、下記の手順の番号に対応している。
1.ネットワーク端末1200uが、ネットワーク端末1200vのコミットメントcomvの正当性を確認する。
2.ネットワーク端末1200uが、ネットワーク端末1200vに対して、期限付き取引証明書Certu,v(period)を送る。
3.ネットワーク端末1200vが、次のいずれかの場合に、取引中止証明書Stopv,uをTTPサーバ1210へ送付する。
・期限付き取引証明書Certu,v(period)が不正な場合
・期限内に期限付き取引証明書Certv,u(period)を送れない場合
・ネットワーク端末1200vのコミットメントcomvの正当性が確認されない場合
4.ネットワーク端末1200vが、ネットワーク端末1200uに対して、期限付き取引証明書Certv,u(period)を送る。
5.ネットワーク端末1200uが、Certv,u(period)が不正な場合や、期限内にCertv,u(period)を受け取れない場合には、取引中止証明書取引中止証明書Stopu,vをTTPサーバ1210へ送付する。
6.ネットワーク端末1200uが、期限後に応答ansu,vをネットワーク端末1200vに送る。
7.ネットワーク端末1200vが、期限後に応答ansv,uをネットワーク端末1200uに送る。
8.ネットワーク端末1200uがansv,uを受け取れない場合、ネットワーク端末1200uは、Certv,u(period)を送信してTTPサーバ1210に例外解決を依頼する。
9.ネットワーク端末1200vがansu,vを受け取れない場合、ネットワーク端末1200vはCertu,v(period) を送信してTTPサーバ1210に例外解決を依頼する。
【0103】
以上のようにして、TTPサーバ1210は、ネットワーク端末1210u、1210vからの例外処理要求に対し、確かにネットワーク端末1210u、1210v間での情報交換に障害(例外)が発生していることを確認した上で、例外処理実行部1211による例外処理を実行することができる。
【0104】
ところで、本実施の形態において、TTPサーバ1210に対する信頼の仮定は最低限であり、各ネットワーク端末1200のコミットメントにアクセスを許さなければ、例外処理時を含め、TTPサーバ1210がリストに関する情報を得ることはできない。だが、TTPサーバ1210が単独のネットワーク端末1200で運用された場合、前述の例外発生の判定において不正な判定を下したり、コミットメントを不正に入手したりすることで、各ネットワーク端末1200の持つ秘密に不正にアクセスする潜在的危険性は残る。そのような事態に対処するため、上述した第2の実施の形態における秘密分散のようにTTPサーバ1210を複数に分割し、閾値アクセス構造(閾値以上のTTPサーバ1210が協力することで初めて例外処理を行うことが可能な構造)をとることで、TTPサーバ1210に対する信頼性を飛躍的に向上することができる。
本実施の形態において、TTPサーバ1210の本質的機能は、
(1)例外発生の確認、
(2)ElGamal暗号の秘密鍵の運用、
であり、これらの機能は、公知の従来技術を用いて容易に閾値アクセス構造で分散できることが知られている。したがって、本実施の形態におけるTTPサーバ1210の安全な運用が容易に実現可能である。
【0105】
以上のようにして、本実施の形態によるシステムでは、複数のネットワーク端末1210が保持するリストの項目のマッチングを行うにあたって、次の要件を満足する。なお、以下の説明で、Cはコミットメント生成アルゴリズム、Vはコミットメント検証アルゴリズム、Mはマッチングアルゴリズム、Dは結果出力アルゴリズム、Pは例外処理要求生成アルゴリズム、Tは例外処理アルゴリズム、Wは例外処理結果生成アルゴリズムである。
1.コミットメントの秘匿性
公開情報であるコミットメントの値からリストに関する情報は得られない。すなわち、リストLu、Lv、コミットメントcomu、comvに関して、Lu≠Lv、comu←C(Lu)、comv←C(Lv)である場合、comu、comvのいずれかを与えられて、LuとLvのいずれに対応するかを1/2よりもよい確率で判定することはできない。
2.コミットメントの検証可能性
コミットメントcomuがコミットメント生成アルゴリズムCにより生成されていること、及びコミットメントcomuを入力として例外処理を行うことで、共通部分を得ることが可能であることを検証できる。
3.応答メッセージの秘匿性
ネットワーク端末1200uは、V(comu)=1、openv←C(Lv)及びansv,u=M(openv,comu)のとき、リストLvに関して、共通部分が~Lv,uであること以外の情報は、応答メッセージansv,uからは一切得ることができない。
4.応答メッセージの検証可能性
応答メッセージから得られる共通部分が、相手のコミットメントに対応するリストとの共通部分であることを検証できる。すなわち、V(comv)=1、openu←C(Lu)のとき、応答メッセージansv,uに対して、resu,v=D(ansv,u,comv,Lu,Ku,openu)は、エラーメッセージでなければ、リストLu、Lvの共通部分~Lv,uである。
5.調停機関による例外処理
V(comv)=1を満たすコミットメントcomvに対し、ereqv,u=P(comv,Lu)、eansv,u=T(ereqv,u,KT)、eresv,u=W(eansv,u,Ku)とすると、eresv,uは、リストLu、Lvの共通部分~Lv,uとなる。TTPサーバ1210の秘密鍵KTを入力とするのは、例外処理アルゴリズムTのみである(すなわち、TTPサーバ1210は例外処理のみ参加し、通常プロセスでは登場しない)。
6.効率性
ネットワーク端末1200uからネットワーク端末1200vへの通信回数はコミットメントフェーズで1回、通常プロセスで1回である。また、TTPサーバ1210は例外処理プロセスのみ参加し、通常プロセスでは登場しない。
【0106】
〔適用例〕
次に、上述したネットワークシステムを用いて具体的なサービスを提供する場合の適用例について説明する。
(1)マッチメーキングサービス
インターネット上で自分と同じ興味を持つ相手を探そうとする場合、従来は、ウェブページなどで自分の興味についての情報を公開して不特定人からの返答を待つ方法や、当該情報を仲介サーバに渡して仲介をしてもらう方法が一般的であった。
しかし、前者の方法では、自分のプライバシーに関する情報を公開しなければならなかった。また後者の方法では、プライバシーの保護を仲介サーバに任せなければならず、当該仲介サーバのセキュリティが破られた場合、参加者の情報が流出する危険があった。
【0107】
これに対して、上記第1の実施の形態によるネットワークシステムをそのまま利用することによって、安全性の高いマッチメーキングサービスを実現することができる。すなわち、図4に示したマッチメーキングサーバ400を上記の仲介サーバとして用いれば、当該仲介サーバは個々の参加者の情報を知ることなく、各参加者の情報(リスト)における共通項目だけを計算することができる。また、仲介サーバは、共通項目をリストアップするのではなく、共通項目数だけを教えるというようなサービスを行うこともできる。
また、第2の実施の形態によるネットワークシステムをそのまま利用することによって、仲介サーバを設けることなく、参加者だけが互いのリストの共通項目だけを知ることができる安全性の高いシステムを実現することができる。
さらに、第3の実施の形態によるネットワークシステムを利用すれば、通常プロセスでは各参加者の間で情報交換を行うだけで、当該参加者の情報(リスト)の共通項目だけを知ることができ、安全かつ効率的な実用性の高いシステムを実現することができる。
【0108】
図17は、このネットワークシステムによるマッチメーキングサービスを模式的に示した図である。同図を参照すると、「クラシック音楽」、「ドライブ」、「スキー」、「テニス」を興味の対象としてリストアップしている参加者Aのリストと、「クラシック音楽」、「ダイビング」、「花」、「お茶」、「テニス」を興味の対象としてリストアップしている参加者Bのリストとがマッチメークされ、「クラシック音楽」と「テニス」とが共通項目として取得されている。したがって、参加者A、Bは、この共通項目については互いに興味を持っていることがわかる。
さらに、このようなネットワークシステムをBluetoothなどの無線放送機能を持つ携帯電話のアプリケーションにて実装すれば、予め自分の趣味などを携帯電話に登録しておくことによって、同じような趣味を持つ(同じ項目をリストアップしている)人どうしが一定の距離に近づいたときに、お互いの持つ携帯電話が交信を開始する、というようなサービスが可能になる。
【0109】
さらにまた、上記のマッチメーキングサービスの変形として、探したい相手の情報を指定してリストマッチングを行う場合がある。この場合、各参加者は、自分の情報に関するリスト(以下、自分リスト)と、探したい相手の情報に関するリスト(以下、相手リスト)という2種類のリストを用意して、自分の持つ相手リストと他者の持つ自分リストとでリストマッチングを行う。同様に、他者の持つ相手リストと自分の持つ自分リストとでリストマッチングを行う。
この種の仲介サービスを行う場合、例えば、参加者A、Bが、自分のプロファイルと、探したい相手のプロファイルの2種類のリストを用意し、(Aの自分プロファイル)×(Bの相手プロファイル)と、(Aの相手プロファイル)×(Bの自分プロファイル)というように2回のリスト共通部分計算をすることによって、参加者自身のプロファイルと各参加者が求める相手のプロファイルとにおける一致の度合いを計算し、当該参加者A、Bの相性に関する情報として提供するサービスを行うこともできる。
あるいは、参加者Aは、自分のプロファイル項目はそのまま根とし、相手のプロファイル項目には−1を掛けた負の根として1つのリストで表現し、参加者Bは、自分のプロファイル項目に−1をかけた負の根とし、相手のプロファイル項目はそのまま根とする操作を介入することにより、自分リストと相手リストとを1つのリストで表現することが可能となる。このリストを用いれば、1回のリスト共通部分計算で、上述した参加者A、Bの相性に関する情報を計算できる。
【0110】
(2)リスト照会
銀行やクレジット会社などの金融機関は、顧客に対して融資を行うことにより利益を得ているため、顧客の信頼情報は極めて重要な経営情報である。とりわけ、支払延滞者のリストは、融資のリスクを計る上で重要である。一方、多くの顧客は複数の金融機関から多重に融資を受けている。そこで、与信審査等のために複数の金融機関で支払を滞らせている顧客のリスト(いわゆるブラックリスト)を比較したい場合がある。つまり、支払延滞の事実を金融機関同士で共有することで、顧客に対するより正確な与信情報を形成することが可能となる。
しかし、支払延滞者のリストは各金融機関の重要な企業秘密である。したがって、当該顧客のプライバシー及び当該金融機関の信用の観点から、延滞者のリスト自体は公開することなく、複数の金融機関で共通に延滞者として登録されている借り手のみを調査する必要がある。
このような場合、上記第1、第2、第3の実施の形態によるネットワークシステムを利用してリストの照会を行うことにより、リストの共通部分(調査対象である複数の金融機関のリストに共通して挙げられている顧客)の情報だけを抽出して、各金融機関の間で公平に交換させることが可能となる。
【0111】
(3)人材データバンクのデータ統合
人材データバンクは人の技術情報・希望職種などの情報(リスト)を企業秘密として保持しており、一方、採用側の企業は欲しい人材の技術情報・希望職種などをリストとして保持している。そこで、双方のリストの共通部分を抽出することにより、効果的な人材の提供、確保が実現される。しかし、各企業が獲得を希望している人材の情報は重要な企業戦略に関する情報を含んでいるため、各リストに関して共通部分以外の情報が相手方に知られることは好ましくない。
このような場合、上記第1、第2、第3の実施の形態によるネットワークシステムを利用してリストの照会を行うことにより、人材データ自体は秘匿したままで、需要側・供給側で共有する部分(情報)を抽出することが可能になる。
【0112】
(4)電子商取引市場における商品価格のマッチングデータベース
電子商取引市場においては、売り手と買い手との間の需給均衡をとることによって価格が形成される。この場合、売り手と買い手の双方が商品番号と希望価格をリストとしてもち、共通な部分を抽出することで、当該売り手と買い手との希望を満足する価格を形成することができる。一方、売り手にとって、商品をいくらで販売(購入)する意思を持っているかは重要な秘密情報である。したがって、希望価格のリストにおいて、売り手の希望価格と買い手の希望価格とが一致する部分の情報のみが抽出されることが好ましい。
このような場合、上記第1、第2、第3の実施の形態によるネットワークシステムを利用してリストの照会を行うことにより、売り手及び買い手は共に、自分が希望する商品および価格を秘匿したまま、どの商品価格が成立するかを調査することができる。
【0113】
【発明の効果】
以上説明したように、本発明によれば、情報交換における安全性を確保すると共に、実行効率が良く実用性の高いリストマッチングを実現することができる。また、本発明は、分散秘密計算を併用することにより、ピア・ツー・ピアでリストマッチングを行う場合においても、安全性の高い手法を提供することができる。
【図面の簡単な説明】
【図1】 本実施の形態にて用いられる特徴関数であるリストの要素項目を根とする多項式の例を示す図である。
【図2】 リストから特徴関数の多項式を構成する手順を説明するフローチャートである。
【図3】 多項式を復号してリストの共通項目を取得する手順を説明するフローチャートである。
【図4】 第1の実施の形態におけるネットワーク上のTTPサーバでリストマッチングを行うシステムの全体構成を示す図である。
【図5】 図4に示したマッチメーキングサーバ及びクライアント端末の好適なシステム構成を示す図である。
【図6】 第2の実施の形態におけるピア・ツー・ピアでリストマッチングを行うシステムの全体構成を示す図であり、サーバに秘密分散による計算を依頼する様子を説明する図である。
【図7】 第2の実施の形態におけるピア・ツー・ピアでリストマッチングを行うシステムの全体構成を示す図であり、サーバによる計算結果に基づいてマッチングを行う様子を説明する図である。
【図8】 図6に示したネットワーク端末及びサーバの好適なシステム構成を示す図である。
【図9】 多項式Qi(x,y)=FXi(x)+FYi(y)を示す図である。
【図10】 2変数多項式Qi(x,y)の生成方法を説明するフローチャートである。
【図11】 k−1次多項式FXi(x)の生成方法を説明するフローチャートである。
【図12】 第3の実施形態におけるリストマッチングを行うシステムの全体構成を示す図である。
【図13】 第3の実施の形態におけるネットワーク端末及びTTPサーバの機能構成を示す図である。
【図14】 ネットワーク端末及びTTPサーバで実行されるアルゴリズム及び情報の流れを示す図である。
【図15】 本実施の形態におけるリストマッチングのプロトコルを説明する図である。
【図16】 期限付き取引証明書を用いた例外発生の検証方法を説明する図である。
【図17】 本発明を用いたマッチメーキングサービスを模式的に示した図である。
【図18】 本発明のシステムを構成するサーバ及び情報端末を実現するのに好適なコンピュータのハードウェア構成の例を模式的に示した図である。
【符号の説明】
101…CPU(Central Processing Unit:中央処理装置)、103…メインメモリ、105…ハードディスク、106…ネットワークインターフェイス、400…マッチメーキングサーバ、411、412〜41m…クライアント端末、501、511…アプリケーションソフトウェア、502、512…ネットワークプロトコル、503、513…ネットワークインターフェイス、611〜61m…ネットワーク端末、621〜62k…サーバ、801、811…アプリケーションソフトウェア、802、812…ネットワークプロトコル、803、813…ネットワークインターフェイス、1200…ネットワーク端末、1201…コミットメント生成部、1202…コミットメント検証部、1203…マッチング部、1204…マッチング結果出力部、1205…例外処理要求部、1206…例外処理結果出力部、1210…TTPサーバ、1211…例外処理実行部
Claims (23)
- ネットワークを構成する複数台の情報端末が保持する複数のリストにおける共通項目を抽出するリストマッチング方法において、
リストを保持する各情報端末が、当該リストの要素項目を根とする多項式を生成し、
前記各情報端末に対して設定された順番の最初の情報端末が、生成した前記多項式とランダムな項目を持つリストの要素項目を根とする多項式とを加算し、加算結果の多項式を前記順番における後の情報端末に渡し、
前記順番における2番目以降の各情報端末が、先の情報端末から受け取った多項式に対して生成した多項式を加算し、加算結果の多項式を後の情報端末に渡し、
前記順番における最後の情報端末が、受信した多項式の根を要素項目とするリストを生成すること
を特徴とするリストマッチング方法。 - 前記最後の情報端末が、生成したリストまたは当該リストの項目に関する情報を他の情報端末に通知することを特徴とする請求項1に記載のリストマッチング方法。
- ネットワークを構成する複数台の情報端末が保持する複数のリストにおける共通項目を抽出するリストマッチング方法において、
リストを保持する各情報端末が、当該リストの要素項目を根とする多項式を生成し、
前記情報端末間で共通して使用することを取り決められた前記ネットワーク上の複数のサーバを用いた分散秘密計算により、各情報端末にて生成された前記多項式を加算し、
前記情報端末が、前記サーバによる加算結果に基づいて各情報端末にて生成された多項式の加算結果である多項式を復元すると共に、復元された当該多項式の根を要素項目とするリストを生成すること
を特徴とするリストマッチング方法。 - ネットワークを介して接続された複数台の情報端末が保持する複数のリストにおける共通項目を抽出するリストマッチング方法において、
リストを保持する各情報端末が、当該リストの要素項目を根とする第1の多項式と前記ネットワーク上の所定のサーバの数に対応した次数の第2の多項式とに基づいて2変数多項式を生成し、当該2変数多項式を当該第2の多項式に基づいて各サーバに分散し、
前記サーバが、前記各情報端末から送られた前記2変数多項式を分散した多項式を加算し、加算結果を前記情報端末に返送し、
前記情報端末が、前記サーバによる加算結果に基づいて各情報端末に保持されたリストを表現する多項式の加算結果である多項式を復元すると共に、復元された当該多項式の根を要素項目とするリストを生成すること
を特徴とするリストマッチング方法。 - ネットワークを構成する複数台の情報端末が保持する複数のリストにおける共通項目を抽出するリストマッチング方法において、
所定の情報端末が、他の情報端末が保持するリストの要素項目を根とする多項式に基づいて生成された公開情報を取得し、
前記他の情報端末から取得した前記公開情報を検証し、
前記検証を通過した前記他の情報端末の公開情報と自装置が保持するリストの要素項目を根とする多項式とに基づいて、当該公開情報の生成に用いられたリストと自装置が保持するリストとの共通項目を求めること
を特徴とするリストマッチング方法。 - 前記他の情報端末から取得した前記公開情報が前記検証を通過した場合にのみ、自装置が保持する前記リストから生成された多項式と当該公開情報とに基づいて所定の情報を生成して前記他の情報端末との間で交換し、
交換された前記所定の情報に基づいて、前記公開情報の生成に用いられたリストと自装置が保持するリストとの共通項目を求めることを特徴とする請求項5に記載のリストマッチング方法。 - ネットワークを介して接続された、サーバと、複数台のクライアント端末とを備え、
前記クライアント端末は、
前記ネットワークを介して他のクライアント端末から受信した多項式に対し、リストマッチングの対象であるリストを表現する多項式を加算し、加算結果の多項式を他のクライアント端末または前記サーバに送信し、
前記サーバは、
複数台の前記クライアント端末にて生成された多項式全ての加算結果である多項式を受信し、当該多項式の根を要素項目とするリストを生成することを特徴とするネットワークシステム。 - 所定の前記クライアント端末は、
リストマッチングの対象であるリストを表現する第1の多項式と、任意の項目を根とする第2の多項式とを生成し、当該第2の多項式を前記サーバに送信すると共に、第1、第2の多項式を加算して得られる多項式を他のクライアント端末に送信し、
前記サーバは、複数台の前記クライアント端末にて生成された多項式全ての加算結果である多項式から前記第2の多項式を減算し、減算結果である多項式の根を要素項目とするリストを生成することを特徴とする請求項7に記載のネットワークシステム。 - ネットワークを介して接続された、複数台の情報端末と、複数台のサーバとを備え、
前記サーバは、
各情報端末から送信されたデータの分散秘密計算をそれぞれ行い、計算結果を前記情報端末に返送し、
前記情報端末は、
リストマッチングの対象であるリストを表現する多項式を前記サーバに分散して送信し、
前記サーバから前記多項式に対する分散秘密計算の計算結果を受信し、当該計算結果に基づいて各情報端末にて生成された多項式の加算結果である多項式を復元すると共に、復元された当該多項式の根を要素項目とするリストを生成することを特徴とするネットワークシステム。 - 前記情報端末は、前記情報端末の数をm、前記リストの要素項目の数をnとした場合に、n+1次の多項式FYi(y)を、FYi(li,h)=0、h=1,...,nとなるように生成し、定数項が0の任意のk−1次多項式FXi(x)を生成し、2変数多項式Qi(x,y)=FXi(x)+FYi(y)を生成して、k個の前記サーバに対してQi(j,y)、j=1,...,kを送信し、
前記サーバは、m個の前記情報端末から受信した多項式Qi(j,y)を全て加算し、加算結果を前記情報端末に返送することを特徴とする請求項9に記載のネットワークシステム。 - ネットワークを介して情報を交換する複数台の情報端末を備え、
自装置が保持するリストの要素項目を根とする多項式を生成し、当該多項式に基づいて第1の情報を生成して公開すると共に、当該多項式に基づいて第2の情報を生成する第1の情報端末と、
前記第1の情報端末における前記第1の情報を取得して検証すると共に、当該検証を通過した場合に当該第1の情報端末から前記第2の情報を取得し、当該第1、第2の情報と自装置が保持するリストの要素項目を根とする多項式とに基づいて、当該公開情報の生成に用いられたリストと自装置が保持するリストとの共通項目を求める第2の情報端末と
を備えることを特徴とするネットワークシステム。 - 前記第2の情報端末は、自装置が保持するリストの要素項目を根とする多項式を生成し、当該多項式に基づいて第1の情報を生成して公開し、
前記第1の情報端末は、公開されている前記第2の情報端末における前記第1の情報を用いて前記第2の情報を生成することを特徴とする請求項11に記載のネットワークシステム。 - 前記第1の情報端末における前記第1の情報と前記第2の情報端末が保持するリストとに基づいて生成された暗号化データを取得し、前記第1、第2の情報端末がそれぞれ保持するリストの内容が秘匿されたままで当該リストの共通項目を求めるサーバをさらに備え、
前記第2の情報端末は、前記第2の情報が取得できない場合または取得した前記第2の情報に基づいて前記リストの共通項目を求めることができない場合に、前記暗号化データを生成して前記サーバに送信し、当該サーバからの応答データを復号して前記リストの共通項目を得ることを特徴とする請求項11に記載のネットワークシステム。 - ネットワークを介して接続された複数台の情報端末が保持する複数のリストにおける共通項目を抽出するサーバにおいて、
前記ネットワークを介して、前記複数台の情報端末に保持されている各リストを表現する複数の多項式の加算結果である多項式を前記情報端末から取得する通信手段と、
前記加算結果である多項式の根を要素項目とするリストを生成する処理手段と
を備えることを特徴とするサーバ。 - ネットワークを介して接続された情報端末において、
前記ネットワークを介して他の情報端末とデータ交換を行うための通信手段と、
所定のリストを格納した記憶手段と、
前記記憶手段に格納されているリストの要素項目を根とする多項式を生成すると共に、当該多項式に対する処理を行う処理手段と、
前記多項式を含む複数の多項式の加算結果である多項式の根を要素項目とするリストに関する情報を出力する出力手段と
を備えることを特徴とする情報端末。 - ネットワークを介して接続された情報端末において、
所定のリストを格納した記憶手段と、
前記記憶手段に格納されているリストの要素項目を根とする第1の多項式と前記ネットワーク上の所定のサーバの数に対応した次数の第2の多項式とに基づいて2変数多項式を生成する処理手段と、
前記ネットワーク上の所定のサーバに、前記2変数多項式を当該第2の多項式に基づいて分散して送信すると共に、当該サーバから分散した多項式の加算結果を受信する通信手段と、
前記通信手段により受信した前記加算結果から復元される多項式の根を要素項目とするリストに関する情報を出力する出力手段と
を備えることを特徴とする情報端末。 - ネットワークに接続された情報端末において、
所定のリストを格納した記憶部と、
前記ネットワークを介して他の情報端末が保持するリストに基づく公開情報を取得して検証する検証部と、
前記検証部による検証を通過した前記公開情報と前記記憶部に格納されているリストの要素項目を根とする多項式とに基づいて、当該公開情報の生成に用いられたリストと前記記憶部に格納されているリストとの共通項目を求めるマッチング結果出力部と
を備えることを特徴とする情報端末。 - 前記多項式に基づいて公開情報を生成する公開情報生成部をさらに備え、
前記マッチング結果出力部は、前記他の情報端末の公開情報が前記検証部による検証を通過した場合に、前記公開情報生成部にて生成された自装置の公開情報及び当該他の情報端末が保持するリストに基づいて生成された所定の情報を当該他の情報端末から取得し、当該所定の情報に基づいて前記リストの共通項目を求めることを特徴とする請求項17に記載の情報端末。 - 前記所定の情報が取得できない場合または取得した前記所定の情報に基づいて前記リストの共通項目を求めることができない場合に、前記他の情報端末の公開情報と前記記憶部に格納されているリストとに基づいて暗号化データを生成し、当該暗号化データに基づく例外処理要求を所定のサーバに送信する例外処理要求部と、
前記サーバから返送された処理結果を復号して前記リストの共通項目を得る例外処理結果出力部と
をさらに備えることを特徴とする請求項18に記載の情報端末。 - コンピュータを制御して、データ処理を行うプログラムであって、
メモリから所定のリストを読み出し、当該リストを表現する第1の多項式とネットワーク上の所定のサーバの数に対応した次数の第2の多項式とに基づいて2変数多項式を生成する処理と、
ネットワークインターフェイスを介して、ネットワーク上の所定のサーバに、前記2変数多項式を当該第2の多項式に基づいて分散して送信する処理と、
前記ネットワークインターフェイスを介して前記サーバから受信した分散秘密計算の結果から多項式を復元し、当該多項式の根を要素項目とするリストを生成する処理と
を前記コンピュータに実行させることを特徴とするプログラム。 - ネットワークに接続されたコンピュータを制御して、データ処理を行うプログラムであって、
前記ネットワークを介して他の情報端末が保持するリストに基づく公開情報を取得する通信手段と、
前記通信手段にて取得された前記公開情報を検証する検証手段と、
前記検証手段による検証を通過した前記公開情報と所定の記憶装置に格納されているリストの要素項目を根とする多項式とに基づいて、当該公開情報の生成に用いられたリストと前記記憶装置に格納されているリストとの共通項目を求めるマッチング結果出力手段として
前記コンピュータを機能させることを特徴とするプログラム。 - コンピュータを制御してデータ処理を行うプログラムを、当該コンピュータが読み取り可能に記録した記録媒体であって、
前記プログラムは、
メモリから所定のリストを読み出し、当該リストを表現する第1の多項式とネットワーク上の所定のサーバの数に対応した次数の第2の多項式とに基づいて2変数多項式を生成する処理と、
ネットワークインターフェイスを介して、ネットワーク上の所定のサーバに、前記2変数多項式を当該第2の多項式に基づいて分散して送信する処理と、
前記ネットワークインターフェイスを介して前記サーバから受信した分散秘密計算の結果から多項式を復元し、当該多項式の根を要素項目とするリストを生成する処理と
を前記コンピュータに実行させることを特徴とする記録媒体。 - ネットワークに接続されたコンピュータを制御してデータ処理を行うプログラムを、当該コンピュータが読み取り可能に記録した記録媒体であって、
前記プログラムは、
前記ネットワークを介して他の情報端末が保持するリストに基づく公開情報を取得する通信手段と、
前記通信手段にて取得された前記公開情報を検証する検証手段と、
前記検証手段による検証を通過した前記公開情報と所定の記憶装置に格納されているリストの要素項目を根とする多項式とに基づいて、当該公開情報の生成に用いられたリストと前記記憶装置に格納されているリストとの共通項目を求めるマッチング結果出力手段として
前記コンピュータを機能させることを特徴とする記録媒体。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002191591A JP3784055B2 (ja) | 2001-10-03 | 2002-07-01 | リストマッチング方法、ネットワークシステム、そのサーバ及び情報端末 |
US10/264,823 US7979712B2 (en) | 2002-07-01 | 2002-10-03 | Network system, server and information terminal for list matching |
US12/535,777 US8117456B2 (en) | 2002-07-01 | 2009-08-05 | Network system, server and information terminal for list matching |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001-307976 | 2001-10-03 | ||
JP2001307976 | 2001-10-03 | ||
JP2002191591A JP3784055B2 (ja) | 2001-10-03 | 2002-07-01 | リストマッチング方法、ネットワークシステム、そのサーバ及び情報端末 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003188872A JP2003188872A (ja) | 2003-07-04 |
JP3784055B2 true JP3784055B2 (ja) | 2006-06-07 |
Family
ID=27615239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002191591A Expired - Fee Related JP3784055B2 (ja) | 2001-10-03 | 2002-07-01 | リストマッチング方法、ネットワークシステム、そのサーバ及び情報端末 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3784055B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4576191B2 (ja) * | 2004-10-01 | 2010-11-04 | 日本電信電話株式会社 | 紛失通信路構成方法、この方法を実施する装置、プログラム |
US8200616B2 (en) * | 2008-12-31 | 2012-06-12 | Nokia Corporation | Method, apparatus, and computer program product for polynomial-based data transformation and utilization |
JP5689845B2 (ja) * | 2012-03-26 | 2015-03-25 | 日本電信電話株式会社 | 秘密計算装置、秘密計算方法、およびプログラム |
JP6141091B2 (ja) * | 2013-04-25 | 2017-06-07 | キヤノン株式会社 | 情報処理装置、情報処理方法、サーバ装置、プログラム、記録媒体 |
JP5752751B2 (ja) * | 2013-07-18 | 2015-07-22 | 日本電信電話株式会社 | 復号システム、端末装置、署名システム、その方法、及びプログラム |
WO2022144966A1 (ja) * | 2020-12-28 | 2022-07-07 | 富士通株式会社 | 情報処理システム、制御方法、情報処理装置および制御プログラム |
-
2002
- 2002-07-01 JP JP2002191591A patent/JP3784055B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003188872A (ja) | 2003-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11842317B2 (en) | Blockchain-based authentication and authorization | |
JP6841911B2 (ja) | 情報保護用のシステム及び方法 | |
TWI822693B (zh) | 產生臨界值保管庫之電腦施行方法 | |
CA3044907C (en) | Blockchain-based system and method for concealing sender and receiver identities | |
JP5562687B2 (ja) | 第1のユーザによって第2のユーザに送信される通信の安全化 | |
EP2494486B1 (en) | System for protecting an encrypted information unit | |
TWI225195B (en) | System and method for guaranteeing software integrity via combined hardware and software authentication | |
WO2020051710A1 (en) | System and process for managing digitized security tokens | |
US20040165728A1 (en) | Limiting service provision to group members | |
US8117456B2 (en) | Network system, server and information terminal for list matching | |
Skudnov | Bitcoin clients | |
CN114175028B (zh) | 密码假名映射方法、计算机系统、计算机程序和计算机可读介质 | |
CN116830523A (zh) | 阈值密钥交换 | |
CN114747172A (zh) | 加密链接身份 | |
Xue et al. | Blockchain-based fair and fine-grained data trading with privacy preservation | |
JP3784055B2 (ja) | リストマッチング方法、ネットワークシステム、そのサーバ及び情報端末 | |
JPWO2019186978A1 (ja) | 電子取引システム、取引サーバ、検証サーバ、電子取引方法及びプログラム | |
CN110677253B (zh) | 基于非对称密钥池和ecc的抗量子计算rfid认证方法及系统 | |
Kokaras et al. | The cost of privacy on blockchain: A study on sealed-bid auctions | |
WO2013153628A1 (ja) | 演算処理システムおよび演算結果認証方法 | |
CN112800479B (zh) | 利用可信第三方的多方联合数据处理方法及装置 | |
Omote et al. | An anonymous sealed-bid auction with a feature of entertainment | |
Zhao et al. | A regulatable mechanism for transacting data assets | |
Yu et al. | A novel fair and verifiable data trading scheme | |
Devarajan et al. | A secured signcryption scheme for e-payment system using hyper elliptic curve |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050628 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050922 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060307 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20060308 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060313 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100324 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110324 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110324 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120324 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130324 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140324 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |