"第一結合装置及び第二結合装置を含むマッチングシステムにおいて、fを、逆関数が存在する所定の秘密鍵を用いた可換暗号関数、gを所定の鍵生成関数とし、Eを所定の暗号化関数として、上記第一結合装置は、上記第一結合装置が保有するテーブルの予め定められたキーカラムの各データvのハッシュ値hvを計算する第一ハッシュ値計算部と、組y,Eext’v’を上記第二結合装置から受信する受信部と、上記第二結合装置から受信したyを秘密鍵eSを用いた関数fに入力したときの出力値feS,yを計算する第一計算部と、上記第二結合装置から受信したyを秘密鍵eS’を用いた関数fに入力したときの出力値feS’,yを計算する第二計算部と、上記feS,yのハッシュ値h’feS,yを計算する第二ハッシュ値計算部と、上記feS,yを上記鍵生成関数gに入力したときの出力値k’=gfeS,yを計算する第三計算部と、上記第二結合装置から受信したEext’v’を所定の再暗号化関数Eで暗号化したEEext’v’を計算する再暗号化部と、上記EEext’v’を上記k’を用いて所定の暗号化関数K’で暗号化したc’=K’k’,EEext’v’を計算する第四計算部と、上記h’feS,y、上記feS’,y及び上記c’の組h’feS,y,feS’,y,c’を上記第二結合装置に送信する第一送信部と、上記hvを秘密鍵eSを用いた関数fに入力したときの出力値x=feS,hvを計算する第五計算部と、上記hvを秘密鍵eS’を用いた関数fに入力したときの出力値k=feS’,hvを計算する第六計算部と、上記第一結合装置が保有するテーブルの各上記データvを含むタプルの全部又は一部のデータextvを上記kを用いて所定の暗号化関数Kで暗号化したc=Kk,extvを計算する第七計算部と、上記x及び上記cの組x,cを上記第二結合装置に送信する第二送信部と、を含み、上記第二結合装置は、上記第二結合装置が保有するテーブルの予め定められたキーカラムの各データv’のハッシュ値hv’を計算するハッシュ値計算部と、各上記ハッシュ値hv’を秘密鍵eRを用いた関数fに入力したときの出力値y=feR,hv’を計算する第一計算部と、上記第二結合装置が保有するテーブルの各上記データv’を含むタプルの全部又は一部のデータext’v’を上記暗号化関数Eで暗号化したEext’v’を計算する暗号化部と、上記y及び上記Eext’v’の組y,Eext’v’を上記第一結合装置に送信する送信部と、組h’feS,y,feS’,y,c’を上記第一結合装置から受信する第一受信部と、組x,cを上記第一結合装置から受信する第二受信部と、上記第一結合装置から受信したxを用いて、秘密鍵eRを用いた関数fに入力したときの出力値feR,xのハッシュ値h’feR,xを計算する第二計算部と、上記h’feR,xと、h’feS,yとが一致する組h’feS,y,feS’,y,c’と組x,cとのペアを検出する検出部と、上記検出されたペアを構成するfeR,xを上記鍵生成関数gに入力したときの出力値gfeR,xを計算する第三計算部と、上記秘密鍵eRを用いたfの逆関数f-1を用いて上記検出されたペアを構成する上記feS’,yを復号したf-1eR,feS’,y=feS’,hv’を計算する第四計算部と、上記検出されたペアを構成するcを上記feS’,hv’を用いて復号関数Kにより復号したKfeS’,hv’,c=extvを計算する第一復号部と、上記検出されたペアを構成するc’を上記gfeR,xを用いて上記復号関数K’により復号したK’gfeR,x,c’=EEext’v’を計算する第二復号部と、上記EEext’v’を、上記復号関数E及び復号関数Eで復号したext’v’を計算する第三復号部と、を含む、マッチングシステム。fを、逆関数が存在する所定の秘密鍵を用いた可換暗号関数、gを所定の鍵生成関数とし、Eを所定の暗号化関数として、上記第一結合装置が保有するテーブルの予め定められたキーカラムの各データvのハッシュ値hvを計算する第一ハッシュ値計算部と、組y,Eext’v’を他の結合装置から受信する受信部と、上記他の結合装置から受信したyを秘密鍵eSを用いた関数fに入力したときの出力値feS,yを計算する第一計算部と、上記他の結合装置から受信したyを秘密鍵eS’を用いた関数fに入力したときの出力値feS’,yを計算する第二計算部と、上記feS,yのハッシュ値h’feS,yを計算する第二ハッシュ値計算部と、上記feS,yを上記鍵生成関数gに入力したときの出力値k’=gfeS,yを計算する第三計算部と、上記他の結合装置から受信したEext’v’を所定の再暗号化関数Eで暗号化したEEext’v’を計算する再暗号化部と、上記EEext’v’を上記k’を用いて所定の暗号化関数K’で暗号化したc’=K’k’,EEext’v’を計算する第四計算部と、上記h’feS,y、上記feS’,y及び上記c’の組h’feS,y,feS’,y,c’を上記他の結合装置に送信する第一送信部と、上記hvを秘密鍵eSを用いた関数fに入力したときの出力値x=feS,hvを計算する第五計算部と、上記hvを秘密鍵eS’を用いた関数fに入力したときの出力値k=feS’,hvを計算する第六計算部と、上記第一結合装置が保有するテーブルの各上記データvを含むタプルの全部又は一部のデータextvを上記kを用いて所定の暗号化関数Kで暗号化したc=Kk,extvを計算する第七計算部と、上記x及び上記cの組x,cを上記他の結合装置に送信する第二送信部と、を含む、結合装置。fを、逆関数が存在する所定の秘密鍵を用いた可換暗号関数、gを所定の鍵生成関数とし、Eを所定の暗号化関数として、上記第二結合装置が保有するテーブルの予め定められたキーカラムの各データv’のハッシュ値hv’を計算するハッシュ値計算部と、各上記ハッシュ値hv’を秘密鍵eRを用いた関数fに入力したときの出力値y=feR,hv’を計算する第一計算部と、上記第二結合装置が保有するテーブルの各上記データv’を含むタプルの全部又は一部のデータext’v’を上記暗号化関数Eで暗号化したEext’v’を計算する暗号化部と、上記y及び上記Eext’v’の組y,Eext’v’を他の結合装置に送信する送信部と、組h’feS,y,feS’,y,c’を上記他の結合装置から受信する第一受信部と、組x,cを上記他の結合装置から受信する第二受信部と、上記他の結合装置から受信したxを用いて、秘密鍵eRを用いた関数fに入力したときの出力値feR,xのハッシュ値h’feR,xを計算する第二計算部と、上記h’feR,xと、h’feS,yとが一致する組h’feS,y,feS’,y,c’と組x,cとのペアを検出する検出部と、上記検出されたペアを構成するfeR,xを上記鍵生成関数gに入力したときの出力値gfeR,xを計算する第三計算部と、上記秘密鍵eRを用いたfの逆関数f-1を用いて上記検出されたペアを構成する上記feS’,yを復号したf-1eR,feS’,y=feS’,hv’を計算する第四計算部と、上記検出されたペアを構成するcを上記feS’,hv’を用いて復号関数Kにより復号したKfeS’,hv’,c=extvを計算する第一復号部と、上記検出されたペアを構成するc’を上記gfeR,xを用いて復号関数K’により復号したK’gfeR,x,c’=EEext’v’を計算する第二復号部と、上記EEext’v’を、復号関数E及び復号関数Eで復号したext’v’を計算する第三復号部と、を含む、結合装置。fを、逆関数が存在する所定の秘密鍵を用いた可換暗号関数、gを所定の鍵生成関数とし、Eを所定の暗号化関数として、上記第一結合装置が、上記第一結合装置が保有するテーブルの予め定められたキーカラムの各データvのハッシュ値hvを計算する第一ハッシュ値計算ステップと、上記第一結合装置が、組y,Eext’v’を第二結合装置から受信する受信ステップと、上記第一結合装置が、上記第二結合装置から受信したyを秘密鍵eSを用いた関数fに入力したときの出力値feS,yを計算する第一計算ステップと、上記第一結合装置が、上記第二結合装置から受信したyを秘密鍵eS’を用いた関数fに入力したときの出力値feS’,yを計算する第二計算ステップと、上記第一結合装置が、上記feS,yのハッシュ値h’feS,yを計算する第二ハッシュ値計算ステップと、上記第一結合装置が、上記feS,yを上記鍵生成関数gに入力したときの出力値k’=gfeS,yを計算する第三計算ステップと、上記第一結合装置が、上記第二結合装置から受信したEext’v’を所定の再暗号化関数Eで暗号化したEEext’v’を計算する再暗号化ステップと、上記第一結合装置が、上記EEext’v’を上記k’を用いて所定の暗号化関数K’で暗号化したc’=K’k’,EEext’v’を計算する第四計算ステップと、上記第一結合装置が、上記h’feS,y、上記feS’,y及び上記c’の組h’feS,y,feS’,y,c’を上記第二結合装置に送信する第一送信ステップと、上記第一結合装置が、上記hvを秘密鍵eSを用いた関数fに入力したときの出力値x=feS,hvを計算する第五計算ステップと、上記第一結合装置が、上記hvを秘密鍵eS’を用いた関数fに入力したときの出力値k=feS’,hvを計算する第六計算ステップと、上記第一結合装置が、上記第一結合装置が保有するテーブルの各上記データvを含むタプルの全部又は一部のデータextvを上記kを用いて所定の暗号化関数Kで暗号化したc=Kk,extvを計算する第七計算ステップと、上記第一結合装置が、上記x及び上記cの組x,cを上記第二結合装置に送信する第二送信ステップと、上記第二結合装置が、上記第二結合装置が保有するテーブルの予め定められたキーカラムの各データv’のハッシュ値hv’を計算するハッシュ値計算ステップと、上記第二結合装置が、各上記ハッシュ値hv’を秘密鍵eRを用いた関数fに入力したときの出力値y=feR,hv’を計算する第一計算ステップと、上記第二結合装置が、上記第二結合装置が保有するテーブルの各上記データv’を含むタプルの全部又は一部のデータext’v’を上記の暗号化関数Eで暗号化したEext’v’を計算する暗号化ステップと、上記第二結合装置が、上記y及び上記Eext’v’の組y,Eext’v’を上記第一結合装置に送信する送信ステップと、上記第二結合装置が、組h’feS,y,feS’,y,c’を上記第一結合装置から受信する第一受信ステップと、上記第二結合装置が、組x,cを上記第一結合装置から受信する第二受信ステップと、上記第二結合装置が、上記第一結合装置から受信したxを用いて、秘密鍵eRを用いた関数fに入力したときの出力値feR,xのハッシュ値h’feR,xを計算する第二計算ステップと、上記第二結合装置が、上記h’feR,xと、h’feS,yとが一致する組h’feS,y,feS’,y,c’と組x,cとのペアを検出する検出ステップと、上記第二結合装置が、上記検出されたペアを構成するfeR,xを上記鍵生成関数gに入力したときの出力値gfeR,xを計算する第三計算ステップと、上記第二結合装置が、上記秘密鍵eRを用いたfの逆関数f-1を用いて上記検出されたペアを構成する上記feS’,yを復号したf-1eR,feS’,y=feS’,hv’を計算する第四計算ステップと、上記第二結合装置が、上記検出されたペアを構成するcを上記feS’,hv’を用いて復号関数Kにより復号したKfeS’,hv’,c=extvを計算する第一復号ステップと、上記第二結合装置が、上記検出されたペアを構成するc’を上記gfeR,xを用いて復号関数K’により復号したK’gfeR,x,c’=EEext’v’を計算する第二復号ステップと、上記第二結合装置が、上記EEext’v’を、上記復号関数E及び上記復号関数Eで復号したext’v’を計算する第三復号ステップと、を含む、マッチングシステムの方法。第一結合装置及び第二結合装置を含むマッチングシステムにおいて、fを所定の秘密鍵を用いた可換暗号関数とし、Eを所定の暗号化関数として、上記第一結合装置は、上記第一結合装置が保有するテーブルの予め定められたキーカラムの各データvのハッシュ値hvを計算するハッシュ値計算部と、組y,Eext’v’を上記第二結合装置から受信する受信部と、上記第二結合装置から受信したyを秘密鍵eSを用いた関数fに入力したときの出力値feS,yを計算する第一計算部と、上記第二結合装置から受信したEext’v’を所定の再暗号化関数Eで暗号化したEEext’v’を計算する再暗号化部と、上記feS,y及び上記EEext’v’の組feS,y,EEext’v’を上記第二結合装置に送信する第一送信部と、上記hvを秘密鍵eSを用いた関数fに入力したときの出力値x=feS,hvを計算する第二計算部と、上記第一結合装置が保有するテーブルの各上記データvを含むタプルの全部又は一部のデータextvを上記暗号化関数Eで暗号化したEextvを計算する暗号化部と、上記x及び上記Eextvの組x,Eextvを上記第二結合装置に送信する第二送信部と、を含み、上記第二結合装置は、上記第二結合装置が保有するテーブルの予め定められたキーカラムの各データv’のハッシュ値hv’を計算するハッシュ値計算部と、各上記ハッシュ値hv’を秘密鍵eRを用いた関数fに入力したときの出力値y=feR,hv’を計算する第一計算部と、上記第二結合装置が保有するテーブルの各上記データv’を含むタプルの全部又は一部のデータext’v’を上記暗号化関数Eで暗号化したEext’v’を計算する暗号化部と、上記y及び上記Eext’v’の組y,Eext’v’を上記第一結合装置に送信する送信部と、組feS,y,EEext’v’を上記第一結合装置から受信する第一受信部と、組x,Eextvを上記第一結合装置から受信する第二受信部と、上記第一結合装置から受信したxを秘密鍵eRを用いた関数fに入力したときの出力値feR,xを計算する第二計算部と、上記feR,xと、feS,yとが一致する組feS,y,EEext’v’と組x,Eextvとのペアを検出して、検出されたペアを構成するEextv及びEEext’v’を出力する検出部と、を含む、マッチングシステム。fを所定の秘密鍵を用いた可換暗号関数とし、Eを所定の暗号化関数として、上記第一結合装置が保有するテーブルの予め定められたキーカラムの各データvのハッシュ値hvを計算するハッシュ値計算部と、組y,Eext’v’を他の結合装置から受信する受信部と、上記他の結合装置から受信したyを秘密鍵eSを用いた関数fに入力したときの出力値feS,yを計算する第一計算部と、上記他の結合装置から受信したEext’v’を所定の再暗号化関数Eで暗号化したEEext’v’を計算する再暗号化部と、上記feS,y及び上記EEext’v’の組feS,y,EEext’v’を上記第二結合装置に送信する第一送信部と、上記hvを秘密鍵eSを用いた関数fに入力したときの出力値x=feS,hvを計算する第二計算部と、上記第二結合装置が保有するテーブルの各上記データvを含むタプルの全部又は一部のデータextvを上記暗号化関数Eで暗号化したEextvを計算する暗号化部と、上記x及び上記Eextvの組x,Eextvを上記他の結合装置に送信する第二送信部と、を含む、結合装置。fを所定の秘密鍵を用いた可換暗号関数とし、Eを所定の暗号化関数として、上記第二結合装置が保有するテーブルの予め定められたキーカラムの各データv’のハッシュ値hv’を計算するハッシュ値計算部と、各上記ハッシュ値hv’を秘密鍵eRを用いた関数fに入力したときの出力値y=feR,hv’を計算する第一計算部と、上記第二結合装置が保有するテーブルの各上記データv’を含むタプルの全部又は一部のデータext’v’を上記暗号化関数Eで暗号化したEext’v’を計算する暗号化部と、上記y及び上記Eext’v’の組y,Eext’v’を他の結合装置に送信する送信部と、組feS,y,EEext’v’を上記他の結合装置から受信する第一受信部と、組x,Eextvを上記他の結合装置から受信する第二受信部と、上記他の結合装置から受信したxを秘密鍵eRを用いた関数fに入力したときの出力値feR,xを計算する第二計算部と、上記feR,xと、feS,yとが一致する組feS,y,EEext’v’と組x,Eextvとのペアを検出して、検出されたペアを構成するEextv及びEEext’v’を出力する検出部と、を含む、結合装置。fを所定の秘密鍵を用いた可換暗号関数とし、Eを所定の暗号化関数として、第一結合装置が、上記第一結合装置が保有するテーブルの予め定められたキーカラムの各データvのハッシュ値hvを計算するハッシュ値計算ステップと、上記第一結合装置が、組y,Eext’v’を上記第二結合装置から受信する受信ステップと、上記第一結合装置が、第二結合装置から受信したyを秘密鍵eSを用いた関数fに入力したときの出力値feS,yを計算する第一計算ステップと、上記第一結合装置が、上記第二結合装置から受信したEext’v’を所定の再暗号化関数Eで暗号化したEEext’v’を計算する再暗号化ステップと、上記第一結合装置が、上記feS,y及び上記EEext’v’の組feS,y,EEext’v’を上記第二結合装置に送信する第一送信ステップと、上記第一結合装置が、上記hvを秘密鍵eSを用いた関数fに入力したときの出力値x=feS,hvを計算する第二計算ステップと、上記第一結合装置が、上記第一結合装置が保有するテーブルの各上記データvを含むタプルの全部又は一部のデータextvを上記暗号化関数Eで暗号化したEextvを計算する暗号化ステップと、上記第一結合装置が、上記x及び上記Eextvの組x,Eextvを上記第二結合装置に送信する第二送信ステップと、上記第二結合装置が、上記第二結合装置が保有するテーブルの予め定められたキーカラムの各データv’のハッシュ値hv’を計算するハッシュ値計算ステップと、上記第二結合装置が、上記第二結合装置が保有するテーブルの各上記ハッシュ値hv’を秘密鍵eRを用いた関数fに入力したときの出力値y=feR,hv’を計算する第一計算ステップと、上記第二結合装置が、各上記データv’を含むタプルの全部又は一部のデータext’v’を上記暗号化関数Eで暗号化したEext’v’を計算する暗号化ステップと、上記第二結合装置が、上記y及び上記Eext’v’の組y,Eext’v’を上記第一結合装置に送信する送信ステップと、上記第二結合装置が、組feS,y,EEext’v’を上記第一結合装置から受信する第一受信ステップと、上記第二結合装置が、組x,Eextvを上記第一結合装置から受信する第二受信ステップと、上記第二結合装置が、上記第一結合装置から受信したxを秘密鍵eRを用いた関数fに入力したときの出力値feR,xを計算する第二計算ステップと、上記第二結合装置が、上記feR,xと、feS,yとが一致する組feS,y,EEext’v’と組x,Eextvとのペアを検出して、検出されたペアを構成するEextv及びEEext’v’を出力する検出ステップと、を含む、マッチングシステムの方法。請求項2,3,6,7の何れかの結合装置の各部としてコンピュータを機能させるためのプログラム。しかしながら、非特許文献1の技術では、キーカラムの一致するデータを含むタプルのデータを結合したデータのみならず、キーカラムの一致するデータ自体が分かってしまう。図10の例では、データ014及び034において、一致するということが分かってしまう。この発明は、キーカラムの一致するデータの情報を秘匿化したマッチングシステム、方法、結合装置及びプログラムを提供することを目的とする。この発明の第一の態様であるマッチングシステムは、第一結合装置及び第二結合装置を含む。fを、逆関数が存在する所定の秘密鍵を用いた可換暗号関数、gを所定の鍵生成関数とし、Eを所定の暗号化関数とする。第一結合装置は、第一結合装置が保有するテーブルの予め定められたキーカラムの各データvのハッシュ値hvを計算する第一ハッシュ値計算部と、組y,Eext’v’を第二結合装置から受信する受信部と、第二結合装置から受信したyを秘密鍵eSを用いた関数fに入力したときの出力値feS,yを計算する第一計算部と、第二結合装置から受信したyを秘密鍵eS’を用いた関数fに入力したときの出力値feS’,yを計算する第二計算部と、feS,yのハッシュ値h’feS,yを計算する第二ハッシュ値計算部と、feS,yを鍵生成関数gに入力したときの出力値k’=gfeS,yを計算する第三計算部と、第二結合装置から受信したEext’v’を所定の再暗号化関数Eで暗号化したEEext’v’を計算する再暗号化部と、EEext’v’をk’を用いて所定の暗号化関数K’で暗号化したc’=K’k’,EEext’v’を計算する第四計算部と、h’feS,y、feS’,y及びc’の組h’feS,y,feS’,y,c’を第二結合装置に送信する第一送信部と、hvを秘密鍵eSを用いた関数fに入力したときの出力値x=feS,hvを計算する第五計算部と、hvを秘密鍵eS’を用いた関数fに入力したときの出力値k=feS’,hvを計算する第六計算部と、第一結合装置が保有するテーブルの各データvを含むタプルの全部又は一部のデータextvをkを用いて所定の暗号化関数Kで暗号化したc=Kk,extvを計算する第七計算部と、x及びcの組x,cを第二結合装置に送信する第二送信部と、を含む。第二結合装置は、第二結合装置が保有するテーブルの予め定められたキーカラムの各データv’のハッシュ値hv’を計算するハッシュ値計算部と、各ハッシュ値hv’を秘密鍵eRを用いた関数fに入力したときの出力値y=feR,hv’を計算する第一計算部と、第二結合装置が保有するテーブルの各データv’を含むタプルの全部又は一部のデータext’v’を上記暗号化関数Eで暗号化したEext’v’を計算する暗号化部と、y及びEext’v’の組y,Eext’v’を第一結合装置に送信する送信部と、組h’feS,y,feS’,y,c’を第一結合装置から受信する第一受信部と、組x,cを第一結合装置から受信する第二受信部と、第一結合装置から受信したxを用いて、秘密鍵eRを用いた関数fに入力したときの出力値feR,xのハッシュ値h’feR,xを計算する第二計算部と、h’feR,xと、h’feS,yとが一致する組h’feS,y,feS’,y,c’と組x,cとのペアを検出する検出部と、検出されたペアを構成するfeR,xを鍵生成関数gに入力したときの出力値gfeR,xを計算する第三計算部と、秘密鍵eRを用いたfの逆関数f-1を用いて検出されたペアを構成するfeS’,yを復号したf-1eR,feS’,y=feS’,hv’を計算する第四計算部と、検出されたペアを構成するcをfeS’,hv’を用いて復号関数Kにより復号したKfeS’,hv’,c=extvを計算する第一復号部と、検出されたペアを構成するc’をgfeR,xを用いて復号関数K’により復号したK’gfeR,x,c’=EEext’v’を計算する第二復号部と、EEext’v’を、復号関数E及び復号関数Eで復号したext’v’を計算する第三復号部と、を含む。この発明の第二の態様であるマッチングシステムは、第一結合装置及び第二結合装置を含む。fを所定の秘密鍵を用いた可換暗号関数とし、Eを所定の暗号化関数とする。第一結合装置は、第一結合装置が保有するテーブルの予め定められたキーカラムの各データvのハッシュ値hvを計算するハッシュ値計算部と、組y,Eext’v’を第二結合装置から受信する受信部と、第二結合装置から受信したyを秘密鍵eSを用いた関数fに入力したときの出力値feS,yを計算する第一計算部と、第二結合装置から受信したEext’v’を所定の再暗号化関数Eで暗号化したEEext’v’を計算する再暗号化部と、feS,y及びEEext’v’の組feS,y,EEext’v’を第二結合装置に送信する第一送信部と、hvを秘密鍵eSを用いた関数fに入力したときの出力値x=feS,hvを計算する第二計算部と、各データvを含むタプルの全部又は一部のデータextvを暗号化関数Eで暗号化したEextvを計算する暗号化部と、x及びEextvの組x,Eextvを第二結合装置に送信する第二送信部と、を含む。第二結合装置は、第二結合装置が保有するテーブルの予め定められたキーカラムの各データv’のハッシュ値hv’を計算するハッシュ値計算部と、各ハッシュ値hv’を秘密鍵eRを用いた関数fに入力したときの出力値y=feR,hv’を計算する第一計算部と、第二結合装置が保有するテーブルの各データv’を含むタプルの全部又は一部のデータext’v’を暗号化関数Eで暗号化したEext’v’を計算する暗号化部と、y及びEext’v’の組y,Eext’v’を第一結合装置に送信する送信部と、組feS,y,Eext’v’を第一結合装置から受信する第一受信部と、組x,Eextvを第一結合装置から受信する第二受信部と、第一結合装置から受信したxを秘密鍵eRを用いた関数fに入力したときの出力値feR,xを計算する第二計算部と、feR,xと、feS,yとが一致する組feS,y,EEext’v’と組x,Eextvとのペアを検出して、検出されたペアを構成するEextv及びEEext’v’を出力する検出部と、を含む。キーカラムの一致するデータの情報を秘匿化することができる。以下、図面を参照してこの発明の実施形態を説明する。[第一実施形態]第一実施形態のマッチングシステムは、図1に示すように、第一結合装置S及び第二結合装置Rを例えば備える。第一結合装置Sは、図2に示すように、記憶部S0、テーブル記憶部S1、第一ハッシュ値計算部S2、秘密鍵生成部S3、第一計算部S4、第二計算部S5、第二ハッシュ値計算部S6、第三計算部S7、再暗号化部S8、第四計算部S9、第一送信部S10、第五計算部S11、第六計算部S12、第七計算部S13、第二送信部S14を例えば備える。第二結合装置Rは、図3に示すように、記憶部R0、テーブル記憶部R1、ハッシュ値計算部R2、秘密鍵生成部R3、第一計算部R4、送信部R5、暗号化部R6、第二受信部R7、第一受信部R15、第二計算部R8、検出部R9、第三計算部R10、第四計算部R11、第二復号部R12、第一復号部R13、第三復号部R14を例えば備える。第一結合装置Sは、テーブルTSを保有する。テーブルTSはテーブル記憶部S1に記憶されている。一方、第二結合装置Rは、テーブルTRを保有する。テーブルTRはテーブル記憶部R1に記憶されている。テーブルTS及びテーブルTRは、カラム列及びタプル行で構成される。マッチングシステムは、テーブルTS及びテーブルTRの所定のカラムにおいて一致するデータを特定し、その一致するデータを含むタプルの全部又は一部のデータを結合したデータを取得する。一致するデータを特定する対象となるカラムをキーカラムと呼ぶことにする。テーブルTSのキーカラムVS及びテーブルTRのキーカラムVRは予め定められているものとする。第一結合装置Sの第一ハッシュ値計算部S2図2は、キーカラムVSの各データvのハッシュ値hvを計算するステップA1。ハッシュ値hvは、第五計算部S11及び第六計算部S12に送信される。第一結合装置Sの秘密鍵生成部S3は、秘密鍵eS及び秘密鍵eS’を生成するステップA2。秘密鍵eSは、第一計算部S4及び第五計算部S11に送信される。秘密鍵eS’は、第二計算部S5及び第六計算部S12に送信される。秘密鍵eS及び秘密鍵eS’は、後述する関数fで用いることができればどのようなものでもよい。第二結合装置Rのハッシュ値計算部R2図3は、キーカラムVRの各データv’のハッシュ値hv’を計算するステップB1。ハッシュ値hv’は、第一計算部R4に送信される。第二結合装置Rの秘密鍵生成部R3は、秘密鍵eRを生成するステップB2。秘密鍵eRは、第一計算部R4及び第二計算部R8に送信される。秘密鍵eRは、後述する関数fで用いることができればどのようなものでもよい。第二結合装置Rの第一計算部R4は、各ハッシュ値hv’を秘密鍵eRを用いた関数fに入力したときの出力値y=feR,hv’を計算するステップB3。計算されたyは、送信部R5に送信される。関数fは、逆関数が存在する、所定の秘密鍵を用いた可換暗号関数である。この例では、関数fは、所定の秘密鍵として秘密鍵eRを用いている。例えば、pを素数、所定の秘密鍵ksを用いた関数fksは次のようにして構成することができる。fksx=xksmodpこのとき、所定の秘密鍵krを用いた関数fkrをfkr=xkrmodpとすると、fksfkrx=xkrksmodp=xkskrmodp=fkrfksxとなり、関数fks及び関数fkrが可換となることがわかる。第二結合装置Rの暗号化部R6は、各データv’を含むタプルの全部又は一部のデータext’v’を所定の暗号化関数Eで暗号化したEext’v’を計算するステップB4。計算されたEext’v’は、送信部R5に送信される。第二結合装置Rの送信部R5は、y及びEext’v’の組y,Eext’v’を第一結合装置Sに送信するステップB5。組y,Eext’v’は、例えば辞書順に第一結合装置Sに送信される。第一結合装置Sの受信部S16図2は、組y,Eext’v’を受信するステップA3。組y,Eext’v’のyは、第一計算部S4及び第二計算部S5に送信される。第一結合装置Sの第一計算部S4は、第二結合装置から受信したyを秘密鍵eSを用いた関数fに入力したときの出力値feS,yを計算するステップA4。feS,yは、第二ハッシュ値計算部S6及び第一送信部S10に送信される。第一結合装置Sの第二計算部S5は、第二結合装置から受信したyを秘密鍵eS’を用いた関数fに入力したときの出力値feS’,yを計算するステップA5。feS’,yは、第一送信部S10に送信される。第一結合装置Sの第二ハッシュ値計算部S6は、feS,yのハッシュ値h’feS,yを計算するステップA6。h’feS,yは、第一送信部S10に送信される。第一結合装置Sの第三計算部S7は、feS,yを鍵生成関数gに入力したときの出力値k’=gfeS,yを計算するステップA7。k’は、第四計算部S9に送信される。第一結合装置Sの再暗号化部S8は、第二結合装置から受信したEext’v’を所定の再暗号化関数Eで暗号化したEEext’v’を計算するステップA8。EEext’v’は、第四計算部S9に送信される。第一結合装置Sの第四計算部S9は、EEext’v’をk’を用いて所定の暗号化関数K’で暗号化したc’=K’k’,EEext’v’を計算するステップA9。c’は、第一送信部S10に送信される。第一結合装置Sの第一送信部S10は、h’feS,y、feS’,y及びc’の組h’feS,y,feS’,y,c’を第二結合装置Rに送信するステップA10。第一結合装置Sの第五計算部S11は、hvを秘密鍵eSを用いた関数fに入力したときの出力値x=feS,hvを計算するステップA11。xは、第二送信部S14に送信される。第一結合装置Sの第六計算部S12は、hvを秘密鍵eS’を用いた関数fに入力したときの出力値k=feS’,hvを計算するステップA12。kは、第七計算部S13に送信される。第一結合装置Sの第七計算部S13は、各データvを含むタプルの全部又は一部のデータextvをkを用いて所定の暗号化関数Kで暗号化したc=Kk,extvを計算するステップA13。cは、第二送信部S14に送信される。第一結合装置Sの第二送信部S14は、x及びcの組x,cを第二結合装置Rに送信するステップA14。組x,cは、例えば辞書順で第二結合装置Rに送信される。第二結合装置Rの第一受信部R15図3は、組h’feS,y,feS’,y,c’を第一結合装置Sから受信するステップB6。組h’feS,y,feS’,y,c’は、検出部R9に送信される。第二結合装置Rの第二受信部R7は、組x,cを第一結合装置Sから受信するステップB7。xは、第二計算部R8に送信される。組x,cは、検出部R9に送信される。第二結合装置Rの第二計算部R8は、第一結合装置から受信したxを用いて、秘密鍵eRを用いた関数fに入力したときの出力値feR,xのハッシュ値h’feR,xを計算するステップB8。h’feR,xは、検出部R9に送信される。第二結合装置Rの検出部R9は、第二計算部R8が計算したh’feR,xと、受信したh’feS,yとが一致する組h’feS,y,feS’,y,c’と組x,cとのペアを検出するステップB9。以下のステップB11以降のステップは、この検出されたペアを構成する情報について行われる。第二結合装置Rの第三計算部R10は、検出されたペアを構成するfeR,xを鍵生成関数gに入力したときの出力値gfeR,xを計算するステップB10。gfeR,xは、第二復号部R12に送信される。第二結合装置Rの第四計算部R11は、秘密鍵eRを用いたfの逆関数f-1を用いて検出されたペアを構成する上記feS’,yを復号したf-1eR,feS’,y=feS’,hv’を計算するステップB11。feS’,hv’は、第一復号部13に送信される。第二結合装置Rの第一復号部R13は、検出されたペアを構成するcをfeS’,hv’を用いて復号関数Kにより復号したKfeS’,hv’,c=extvを計算するステップB12。復号関数Kは、暗号化関数Kに対応する復号関数である。任意のxに対してKKx=xとなる。第二結合装置Rの第二復号部R12は、検出されたペアを構成するc’をgfeR,xを用いて復号関数K’により復号したK’gfeR,x,c’=EEext’v’を計算するステップB13。EEext’v’は、第三復号部R14に送信される。復号関数K’は、暗号化関数K’に対応する復号関数である。任意のxに対してK’K’x=xとなる。第二結合装置Rの第三復号部R14は、EEext’v’を、再復号関数E及び復号関数Eで復号したext’v’を計算するステップB14。再復号関数Eは、再暗号化関数Eに対応する復号関数である。任意のxに対してEEx=xとなる。復号関数Eは、暗号化関数Eに対応する復号関数である。任意のxに対してEEx=xとなる。第一復号部R13により計算されるextvが、テーブルTS及びテーブルTRのキーカラムにおいて一致するデータを含む、テーブルTSのタプルの全部又は一部のデータとなる。また、第三復号部R14により計算されるext’v’が、テーブルTS及びテーブルTRのキーカラムにおいて一致するデータを含む、テーブルTRのタプルの全部又は一部のデータとなる。ext’v’を再暗号化可能な暗号関数で暗号化することにより、第二結合装置RによるテーブルTRにおける、テーブルTS及びテーブルTRのキーカラムにおいて一致するデータvのタプルの特定を困難にしている。また、feS,yから秘密鍵k’を生成して、EEext’v’を暗号化し、第二結合装置RにはfeS,yではなく、h’feS,yを送信することで、テーブルTS及びテーブルTRのキーカラムにおいて一致するデータvのext’vの復号のみを可能としている。[第二実施形態]以下、第一実施形態と異なる部分を中心に説明する。第一実施形態と同様の部分については説明を省略する。第二実施形態の第一結合装置Sは、図4に示すように、記憶部S0、テーブル記憶部S1、ハッシュ値計算部S2、秘密鍵生成部S3、第一計算部S4、第二計算部S5、再暗号化部S8、第一送信部S10、第二送信部S14、暗号化部S15を例えば備える。第二実施形態の第二結合装置Rは、図5に示すように、記憶部R0、テーブル記憶部R1、ハッシュ値計算部R2、秘密鍵生成部R3、第一計算部R4、送信部R5、暗号化部R6、第二受信部R7、第一受信部R15、第二計算部R8、検出部R9、第二復号部R12、第一復号部R13を例えば備える。第一結合装置Sのハッシュ値計算部S2図4は、テーブル記憶部S1に記憶されているテーブルTSのキーカラムVsの各データvのハッシュ値hvを計算するステップA1。ハッシュ値hvは、第二計算部S5に送信される。第一結合装置Sの秘密鍵生成部S3は、秘密鍵eSを生成するステップA2。秘密鍵eSは、第二計算部S5及び第一計算部S4に送信される。第二結合装置Rのハッシュ値計算部R2図5は、テーブル記憶部R1に記憶されてうるテーブルTRのキーカラムVRの各データv’のハッシュ値hv’を計算するステップB1。ハッシュ値hv’は、第一計算部R4に送信される。第二結合装置Rの秘密鍵生成部R3は、秘密鍵eRを生成するステップB2。秘密鍵eRは、第一計算部R4及び第二計算部R8に送信される。第二結合装置Rの第一計算部R4は、各ハッシュ値hv’を秘密鍵eRを用いた関数fに入力したときの出力値y=feR,hv’を計算するステップB3。計算されたyは、送信部R5に送信される。第二結合装置Rの暗号化部R6は、各データv’を含むタプルの全部又は一部のデータext’v’を所定の暗号関数Eで暗号化したEext’v’を計算するステップB4。計算されたEext’v’は、送信部R5に送信される。第二結合装置Rの送信部R5は、y及びEext’v’の組y,Eext’v’を第一結合装置Sに送信するステップB5。組y,Eext’v’は、例えば辞書順に第一結合装置Sに送信される。第一結合装置Sの受信部S16図4は、組y,Eext’v’を受信するステップA3。組y,Eext’v’のyは、第一計算部S4に送信される。第一結合装置Sの第一計算部S4は、第二結合装置から受信したyを秘密鍵eSを用いた関数fに入力したときの出力値feS,yを計算するステップA4。feS,yは、第一送信部S10に送信される。第一結合装置Sの再暗号化部S8は、第二結合装置から受信したEext’v’を所定の再暗号化関数Eで暗号化したEEext’v’を計算するステップA8。EEext’v’は、第一送信部S10に送信される。第一結合装置Sの第一送信部S10は、feS,y及びEEext’v’の組feS,y,EEext’v’を第二結合装置Rに送信するステップA10。第一結合装置Sの第二計算部S5は、hvを秘密鍵eSを用いた関数fに入力したときの出力値x=feS,hvを計算するステップA11。xは、第二送信部S14に送信される。第一結合装置Sの暗号化部S15は、各データvを含むタプルの全部又は一部のデータextvを所定の暗号化関数Eで暗号化したEextvを計算するステップA13。Eextvは、第二送信部S14に送信される。第一結合装置Sの第二送信部S14は、x及びEextvの組x,Eextvを第二結合装置Rに送信するステップA14。組x,Eextvは、例えば辞書順で第二結合装置Rに送信される。第二結合装置Rの第一受信部R15図5は、組feS,y,EEext’v’を第一結合装置Sから受信するステップB6。組feS,y,EEext’v’は、検出部R9に送信される。第二結合装置Rの第二受信部R7は、組x,Eextvを第一結合装置Sから受信するステップB7。xは、第二計算部R8に送信される。組x,Eex第二結合装置Rの第二計算部R8は、第一結合装置から受信したxを用いて、秘密鍵eRを用いた関数fに入力したときの出力値feR,xを計算するステップB8。feR,xは、検出部R9に送信される。第二結合装置Rの検出部R9は、第二計算部R8が計算したfeR,xと、受信したfeS,yとが一致する組feS,y,EEext’v’と組x,Eextvとのペアを検出するステップB9。検出部R9は、検出されたペアを構成するEextv及びEEext’v’を出力する。第一復号部R13が、検出されたペアを構成するEextvを復号関数Eにより復号したextvを計算して出力してもよいステップB12。また、第二復号部R12が、検出されたペアを構成するEEext’v’を復号関数E及びEにより復号したext’v’を計算して出力してもよいステップB13。[変形例等]ハッシュ関数h’は、ハッシュ関数hと同じでも異なっていてもよい。異なっている場合には、同じ場合よりも安全性が高くなる。暗号化関数K’は、暗号化関数Kと同じでも異なっていてもよい。異なっている場合には、同じ場合よりも安全性が高くなる。なお、上記の実施形態では、第一結合装置S、第二結合装置Rの各部間でデータは直接送受信されていたが、データは記憶部S0,R0を介してやり取りされてもよい。第一結合装置Sをコンピュータによって実現する場合、第一結合装置Sの各部の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、第一結合装置Sの各部の処理機能がコンピュータ上で実現される。同様に、第二結合装置Rをコンピュータによって実現する場合、第二結合装置Rの各部の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、第二結合装置Rの各部の処理機能がコンピュータ上で実現される。これらのプログラムのそれぞれは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。この発明は上記の実施形態及び変形例に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、上記の実施形態及び変形例を互いに組み合わせてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。"