説明

マッチングシステム、マッチングシステムの方法、結合装置及びプログラム

【課題】n個のテーブル記憶部に記録されたデータに対して、一致するキーカラムを秘匿化しつつキーカラムが一致するデータのタプルを結合したデータを出力するマッチング技術を提供する。
【解決手段】すべてのk(k=1,2,…,n)について、一致データvを含むタプルの全部または一部のデータext(v)を所定の順序で取得した後に、同一の順序のvのext(v)(k=1,2,…,n)の集合を取得する。この値および所定の多項式の各係数に対して、準同型性を持つ暗号関数による暗号化と置換を含むミックスネットの処理と所定の順序による並び替えを行い、キーカラムが一致するデータのタプルを結合したデータを出力する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、複数の表形式のデータについて非開示のまま必要なデータを結合する技術に関する。
【背景技術】
【0002】
非特許文献1に、複数の表形式のデータについて非開示のまま必要なデータを結合する技術が記載されている。以下、非特許文献1に記載された技術でできることを簡単に説明する(例えば、非特許文献1参照。)。
【0003】
図6に示すように、第1テーブル及び第2テーブルがあるとする。非特許文献1の技術により、第1テーブルのキーカラムのデータと、第2テーブルのキーカラムのデータとで一致するものを特定し、その一致するデータを含むタプル(行)のデータを結合して取得することができる。
【0004】
図6の例だと、第1テーブルのキーカラム及び第2テーブルのキーカラムは、014及び034のデータが共に含む。したがって、取得することができる結合データは、データ014と第1テーブルの014のデータを含むタプルのデータxxxと第2テーブルの014のデータを含むタプルのデータbbbとを結合したデータ、及び、データ034と第1テーブルの034のデータを含むタプルのデータzzzと第2テーブルの034のデータを含むタプルのデータcccとを結合したデータとなる。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】R.Agrawal, A.V.Evfimievski, and R.Srikant, “Information Sharing Across Private Databases”, ACM SIGMOD 2003, pp.86-97, 2003
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、非特許文献1の技術では、キーカラムの一致するデータを含むタプルのデータを結合したデータのみならず、キーカラムの一致するデータ自体が分かってしまう。図6の例では、データ014及び034において、一致するということが分かってしまう。
【0007】
この発明は、キーカラムの一致するデータの情報を秘匿化したマッチングシステム、方法、結合装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
この発明の第一の態様であるマッチングシステムは、nを2以上の整数、kを1以上n以下の整数として、i=1,…,k−1,k+1,…,nとし、第iテーブルの予め定められたキーカラムVのデータをvとし、tを所定の数として、f(x)=tΠv∈Vi(x−v)=Σj=0Ji−1i,jで定義される多項式f(x)の各係数ai,jを準同型性を持つ暗号関数Eで暗号化したE(ai,j)を計算する第i結合装置と、rを整数の乱数とし、第kテーブルの予め定められたキーカラムVのデータvを含むタプルの全部又は一部のデータをext(v)として、キーカラムVの各データvについて、E(ai,j)を用いて、c=E(Σi∈{1,2,…,n}−{k}(v)r)=Σi∈{1,2,…,n}−{k}E(ai,j)vを計算し、d=E(ext(v))を計算し、cとdとの組(d,c)を生成する関数値計算部と、複数の組(d,c)を再暗号化して置換πにより置換した複数の組(d’π,c’π)を生成する第一ミックスネット演算部と、E’を準同型性を持つ暗号関数として、複数の組(d’π,c’π)のそれぞれについて、c’πの復号結果cπ=0である場合にはb=1とし、c’πの復号結果cπ=0でない場合にはb=0として、そのc’πの組(d’π,c’π)のd’ πとE’(b)πとの組(d’π,E’(b)π)を生成するフラグ付与部と、複数の組(d’π,E’(b)π)を再暗号化して置換πの逆置換により置換した複数の組(d’’,E’’(b))(j=1,2,…,J)を生成する第二ミックスネット演算部と、複数の組(d’’,E’’(b))のそれぞれについて、E’’(b)を用いて、順序e’’=E’’(Σk=1)=Σk=1E’’(b)を計算して、計算された順序e’’を組(d’’,E’’(b))に追加した組(d’’,E’’(b),e’’)を生成する順序付与部と、複数の組(d’’,E’’(b),e’’)を再暗号化して置換πにより置換した複数の組(dπ*(j)’’’,E’’’(bπ*(j)),eπ*(j)’’’)を生成する第三ミックスネット演算部と、E’’’(bπ*(j))を復号したbπ*(j)=1となる組(dπ*(j)’’’,E’’’(bπ*(j)),eπ*(j)’’’)のeπ*(j)’’’を復号して順序eπ*(j)を生成する順序復号部と、順序eπ*(j)で組(dπ*(j)’’’,E’’’(bπ*(j)),eπ*(j)’’’)のdπ*(j)’’’を出力する並替部と、を含む。
【発明の効果】
【0009】
キーカラムの一致するデータの情報を秘匿化することができる。
【図面の簡単な説明】
【0010】
【図1】マッチングシステムの例を説明するためのブロック図。
【図2】第一ミックスネット演算部の変形例を説明するためのブロック図。
【図3】第二ミックスネット演算部の変形例を説明するためのブロック図。
【図4】第三ミックスネット演算部の変形例を説明するためのブロック図。
【図5】マッチングシステムの方法の例を説明するためのプログラム。
【図6】従来のマッチングシステムの概要を説明するための図。
【発明を実施するための形態】
【0011】
以下、図面を参照してこの発明の実施形態を説明する。
【0012】
[第一実施形態]
第一実施形態のマッチングシステムは、図1に示すように、第1結合装置1、第2結合装置2、…、第k結合装置k、…、第n結合装置n、テーブル記憶部11,21,…,k1,n1、第一ミックスネット演算部a,フラグ付与部b、第二ミックスネット演算部c、順序付与部d、第三ミックスネット演算部e、順序復号部f、並替部g、制御部iを例えば備える。nは2以上の整数である。
【0013】
第1結合装置1は、第1テーブルTを保有する。第1テーブルTはテーブル記憶部11に記憶されている。同様にして、i=2,3,…,nとして、第i結合装置iは、第iテーブルTを保有する。第iテーブルTはテーブル記憶部i1に記憶されている。
【0014】
各テーブルTは、カラム(列)及びタプル(行)で構成される。マッチングシステムは、すべてのテーブルT(i=1,2,…,n)の所定のカラムにおいて一致するデータを特定し、その一致するデータv(以下、一致データvと呼ぶ。)を含むタプルの全部又は一部のデータext(v)を結合したデータを取得する。一致するデータを特定する対象となるカラムをキーカラムと呼ぶことにする。各テーブルTのキーカラムVは予め定められているものとする。
【0015】
制御部iは、kを1からnまでの何れかの数であって、まだ設定されていない数に設定する(ステップS1)。例えば、k=1とする。
【0016】
以下のステップS2からステップS10の処理により、所定の順序で並んだ、テーブルTの一致データvを含むタプルの全部又は一部のデータext(v)を取得することができる。制御部iがkを異なる値に順次変えてステップS2からステップS10の処理を繰り返すことにより、各テーブルT(k=1,2,…,n)の一致データvを含むタプルの全部又は一部のデータext(v)を取得することができる。各kに対応して求まったデータは、共通する所定の順序、例えば一致データvの辞書順で並んでいる。したがって、同一の順序のvのext(v)(k=1,2,…,n)の集合を取得することにより、同一の一致データvについてのext(v)の集合、すなわち(ext(v),ext(v),…,ext(v))を取得することができる。
【0017】
i=1,…,k−1,k+1,…,nとして、各第i結合装置は、f(x)=tΠv∈Vi(x−v)=Σj=0Ji−1i,jで定義される多項式f(x)の各係数ai,jを準同型性を持つ暗号関数Eで暗号化したE(ai,j)を計算する(ステップS2)。
【0018】
ここで、tは所定の数である。tは、例えば1であってもよいし、乱数であってもよい。Jiは、キーカラムVを構成するデータvの数である。上記の多項式f(x)の式の中の下付きのViは、キーカラムVを意味する。E(ai,j)は、第一ミックスネット演算部aに送信される。
【0019】
関数値計算部hは、キーカラムVの各データvについて、上記E(ai,j)を用いて、c=E(Σi∈{1,2,…,n}−{k}(v)r)=Σi∈{1,2,…,n}−{k}E(ai,j)vを計算し、d=E(ext(v))を計算し、上記cとdとの組(d,c)を生成する(ステップS3)。rは、整数の乱数である。ext(v)は、キーカラムVのデータvを含むタプルの全部又は一部のデータである。キーカラムVのデータvの数をJk個とすると、Jk個の組(d,c)が生成される。生成された組(d,c)は、第一ミックスネット演算部aに所定の順序で送信される。所定の順序とは、例えば辞書順である。以下、単に所定の順序といった場合には、この所定の順序を意味する。
【0020】
暗号関数Eは準同型性の性質を持つため、加法的に記載すれば、E(αβ)=E(β+β+…+β)=E(β)+E(β)+…+E(β)=αE(β)となる。このため、E(Σi∈{1,2,…,n}−{k}(v)r)=Σi∈{1,2,…,n}−{k}E(ai,j)vとなるのである。
【0021】
関数値計算部hは、図1に示すように第k結合装置kの中に設けられている。このため、ステップS1の処理において、第1結合装置1から第n結合装置nで第k結合装置kとして選択される可能性がある結合装置は、関数計算部hを備えていることになる。なお、関数値計算部hは、第k結合装置kの外部に設けられていてもよい。
【0022】
第一ミックスネット演算部aは、複数の組(d,c)を再暗号化して置換πにより置換した複数の組(d’π,c’π)を生成する(ステップS4)。置換πは位数Jkの対称群の元である。複数の組(d’π,c’π)は、フラグ付与部bに送信される。複数の組(d,c)の数がJkあるため、組(d’π,c’π)の数もJkである。
【0023】
例えば組(d,c)の数が3つであり、それぞれ組(d,c)、組(d,c)及び組(d,c)であるとする。このとき、これらの3つの組(d,c)のそれぞれを暗号化して、組(d’,c’)、組(d’,c’)及び組(d’,c’)とする。置換π:{1,2,3}→{1,2,3}は1をπ(1)に写し、2をπ(2)に写し、3をπ(3)に写す全単射の写像であり、例えばπ(1)=2、π(2)=3、π(3)=1であるとする。この場合、これらの組(d’,c’)、組(d’,c’)及び組(d’,c’)を置換πで置換すると、組(dπ(3)’,cπ(3)’)、組(dπ(1)’,cπ(1)’)及び組(dπ(2)’,cπ(2)’)となる。
【0024】
フラグ付与部bは、複数の組(d’π,c’π)のそれぞれについて、c’πの復号結果cπ=0である場合にはb=1とし、c’πの復号結果cπ=0でない場合にはb=0として、そのc’πの組(d’π,c’π)のd’πとE’(b)πとの組(d’π,E’(b)π)を生成する(ステップS5)。複数の組(d’π,c’π)の数がJkであるため、組(d’π,E’(b)π)の数もJk個となる。生成された複数の組(d’π,E’(b)π)は、第二ミックスネット演算部cに送信される。
【0025】
vが一致データvである場合にはcπ=0となりb=1となり、vが一致データvでない場合にはcπ≠0の場合にはb=0となる。
【0026】
c’πの復号は、図1に例示するフラグ付与部bの復号部b1により行われる。また、bの暗号化は、フラグ付与部bの暗号化部b2により行われる。E’は、準同型性を持つ暗号関数である。
【0027】
第一ミックスネット演算部aによるミックスネットの処理で、置換πに基づいて複数の組(d,c)の順序が入れ替わるため、置換πを知らないフラグ付与部bは、任意の組(d’π,c’π)が一致データvに対応するかどうかを知ることができるが、その組(d’π,c’π)がどのデータvに対応するものであるのかを知ることができない。このように、組(d’π,c’π)とデータvとの対応関係をフラグ付与部bに秘匿化するために、第一ミックスネット演算部aによるミックスネットの処理を行っている。なお、第一ミックスネット演算部aによるミックスネットの処理で入れ替わった複数の組(d,c)及び複数の組(d’π,E’(b)π)の順番は、以下の第二ミックスネット演算部bによるミックスネットの処理で元の順番、すなわち関数値計算部hのステップS3の処理で説明をした「所定の順番」に戻る。
【0028】
第二ミックスネット演算部cは、複数の組(d’π,E’(b)π)を再暗号化して置換πの逆置換π−1により置換した複数の組(d’’,E’’(b))(j=1,…,J)を生成する(ステップS6)。組(d’π,E’(b)π)の数がJk個とであるため、組(d’’,E’’(b))の数もJk個となる。組(d’’,E’’(b))は、「所定の順序」におけるj番目の組(d’’,E’’(b))を意味する。生成された複数の組(d’’,E’’(b))は、順序付与部dに送信される。ある値xについてのE(x)の再暗号化により生成されたE’’(x)は、その値xを暗号関数E’’に入力したときの出力値と見ることができる。この場合の暗号関数E’’は、準同型性を持つとする。
【0029】
置換πの逆置換π−1は、π・π−1が恒等置換となるような置換のことである。例えば、置換π:{1,2,3}→{1,2,3}を1をπ(1)に写し、2をπ(2)に写し、3をπ(3)に写す全単射の写像であり、π(1)=2、π(2)=3、π(3)=1であるとした場合の逆置換π−1:{1,2,3}→{1,2,3}は、1をπ−1(1)に写し、2をπ−1(2)に写し、3をπ−1(3)に写す全単射の写像であり、π−1(1)=2、π−1(2)=1、π−1(3)=2である。
【0030】
順序付与部dは、複数の組(d’’,E’’(b))のそれぞれについて、E’’(b)を用いて、順序e’’=E’’(Σk=1)=Σk=1E’’(b)を計算して、計算された順序e’’を組(d’’,E’’(b))に追加した組(d’’,E’’(b),e’’)を生成する(ステップS7)。組(d’’,E’’(b))の数がJkであるため、組(d’’,E’’(b),e’’)の数もJkとなる。
【0031】
先に述べたように、vが一致データvである場合にはcπ=0となりb=1となり、vが一致データvでない場合にはcπ≠0の場合にはb=0となる。このため、順序e’’は、一致データvを所定の順序で並べたときの順序を暗号関数E’’で暗号化したものとなる。
【0032】
第三ミックスネット演算部eは、複数の組(d’’,E’’(b),e’’)を再暗号化して置換πにより置換した複数の組(dπ*(j)’’’,E’’’(bπ*(j)),eπ*(j)’’’)を生成する(ステップS8)。
【0033】
置換πは、位数Jkの対称群の元である。複数の組(dπ*(j)’’’,E’’’(bπ*(j)),eπ*(j)’’’)は、順序復号部fに送信される。複数の組(d’’,E’’(b),e’’)の数がJkであるため、組(dπ*(j)’’’,E’’’(bπ*(j)),eπ*(j)’’’)の数もJkである。
【0034】
第三ミックスネット演算部eによるミックスネットの処理で、置換πに基づいて複数の組(d’’,E’’(b),e’’)の順番が入れ替わる。これにより、置換πを知らない順序復号部fは、任意の組(dπ*(j)’’’,E’’’(bπ*(j)),eπ*(j)’’’)が「所定の順序」における何番目の一致データvかを知ることができるが、その組(dπ*(j)’’’,E’’’(bπ*(j)),eπ*(j)’’’)がどのデータvに対応するものなのかを知ることはできない。このように、組(dπ*(j)’’’,E’’’(bπ*(j)),eπ*(j)’’’)とデータvとの対応関係を順序復号部fに秘匿化するために、第三ミックスネット演算部eによるミックスネットの処理を行っている。
【0035】
順序復号部fは、E’’’(bπ*(j))を復号したbπ*(j)=1となる組(dπ*(j)’’’,E’’’(bπ*(j)),eπ*(j)’’’)のeπ*(j)’’’を復号して順序eπ*(j)を生成する(ステップS9)。生成された順序eπ*(j)及び順序eπ*(j)に対応するdπ*(j)’’’は、並替部gに送信される。
【0036】
並替部gは、順序eπ*(j)で組(dπ*(j)’’’,E’’’(bπ*(j)),eπ*(j)’’’)のdπ*(j)’’’を出力する(ステップS10)。このdπ*(j)’’’が、一致データvのを含むタプルの全部又は一部のデータext(v)に対応する。一致データvの個数だけdπ*(j)’’’が出力される。
【0037】
制御部iは、1からnまでのすべての整数がkに設定されたかどうか判定する(ステップS11)。設定されていない場合には、ステップS1に戻り、制御部iは、1からnまでの何れかの数であってまだ設定されていない数をkに設定する。1からnまでのすべての整数がkに設定されたたと判定された場合には、マッチングシステムの処理を終了する。
【0038】
このようにして、ステップS2からステップS10の処理を繰り返すことにより、各テーブルT(k=1,2,…,n)の一致データvを含むタプルの全部又は一部のデータext(v)を取得することができる。
【0039】
[第二実施形態]
第二実施形態のマッチングシステム及び方法は、関数値計算部h、第一ミックスネット演算部a、フラグ付与部bにおいて第一実施形態のマッチングシステム及び方法と異なる。以下、第一実施形態と異なる部分を中心に説明する。同様の部分については説明を省略する。
【0040】
第二実施形態の関数値計算部hは、rを整数の乱数とし、第kテーブルの予め定められたキーカラムVのデータvを含むタプルの全部又は一部のデータをext(v)とし、ext(v)に対応するビット列を検査符号t(v)として,キーカラムVの各データvについて、E(ai,j)を用いて、c=E((Σi∈{1,2,…,n−1}−{k}(v)r)+(ext(v)||t(v)))=(Σi∈{1,2,…,n−1}−{k}E(ai,j)v)+E((ext(v)||t(v)))を計算する(ステップS3)。
【0041】
第一実施形態とは、cの定義が異なる。また、第一実施形態では組(d,c)が送信されるのに対して、第二実施形態ではcだけが第一ミックスネット演算部aに所定の順序で送信される。
【0042】
ここで、||はビット結合を表わす。検査符号t(v)は、ext(v)に対応するビット列である。例えば、検査符号t(v)は、vに依存しない00…0等の一定のビット列であってもよいし、vに依存するビット列、例えばext(v)のハッシュ値であってもよい。
【0043】
第一ミックスネット演算部aは、所定の順序で並んだ複数のcを置換πにより置換した複数のcπを生成する。順序が並び替えられた複数のcπは、フラグ付与部bに送信される。
【0044】
フラグ付与部b3は、E’を準同型性を持つ暗号関数として、複数のcπのそれぞれについて、cπの復号結果=ext(v)であると判定された場合にはb=1とし、cπの復号結果=ext(v)でないと判定された場合にはb=0として、そのcπに対応するE’(b)πとdπ’=E(ext(v))の組(d’π,E’(b)π)を生成するフラグ付与部と、
c’πの復号は、図1に例示するフラグ付与部bの復号部b1により行われる。また、bの暗号化は、フラグ付与部bの暗号化部b2により行われる。さらに、cπの復号結果=ext(v)であるかどうかの判断は、判定部b3により行われる。
【0045】
判定部b3は、復号部b1によるcπの復号結果のビット列のうちt(v)に対応するビット列が、関数値計算部hがビット結合したt(v)と一致する場合にはそのcπの復号結果=ext(v)であり、一致しない場合にはそのcπの復号結果=ext(v)でないと判断する。
【0046】
πの復号結果=ext(v)でない場合には、cπの復号結果のビット列のうちt(v)に対応するビット列は、関数値計算部hがext(v)に対してビット結合したt(v)と一致しない可能性が非常に高い。このため、復号部b1によるcπの復号結果のビット列のうちt(v)に対応するビット列が、関数値計算部hがビット結合したt(v)と一致する場合にはそのcπの復号結果=ext(v)と判断できるのである。 フラグ付与部bは、上記の一致の判定をする必要があるため、検査符号t(v)についての情報を事前に知っているとする。検査符号t(v)がvに依存するビット列である場合には、フラグ付与部bは置換πについての情報を知っており、cπに対応する検査符号t(v)をわかっているものとする。
【0047】
このように、フラグ付与部bが検査符号t(v)を用いてcπの復号結果=ext(v)であるかを判定可能とすることにより、フラグ付与部bに対してext(v)を秘匿化することができる。
【0048】
他の処理は第一実施形態と同様である。
【0049】
[変形例等]
暗号関数E,E’,E’’E’’’は、準同型性の性質を持つ確率暗号であってもよい。これにより、安全性が増す。
【0050】
第一ミックスネット演算部aは、図2に例示するように、第1結合装置1に設けられた第一ミックスネット構成部a1、第2結合装置2に設けられた第一ミックスネット演算部a2、…、第k結合装置kに設けられた第一ミックスネット構成部ak、…、第n結合装置nに設けられた第一ミックスネット構成部anにより構成されてもよい。この場合、これらのn個の第一ミックスネット構成部ai(i=1,2,…,n)が共同して処理を行うことにより、第一ミックスネット演算部aの処理を実現する。
【0051】
例えば、再暗号化関数が多重暗号又は閾値関数であるとして、順次i=k+1,k+2,…,n,1,2,…,k−1として、第一ミックスネット構成部aiが、複数の組(d,c)を再暗号化して予め定められた順序で入れ替えて、第一ミックスネット構成部ai+1(i=nである場合には、第一ミックスネット構成部a1)に送信する。
【0052】
また、この際に、各第一ミックスネット構成部ai(i=1,2,…,n)が、dのみを再暗号化して、cについては部分的な復号を行ってもよい。各第一ミックスネット構成部ai(i=1,2,…,n)がcについての部分的な復号を行うことにより、cが復元される。すなわち、第一ミックスネット構成部ai(i=1,2,…,n)により構成される第一ミックスネット演算部aが、ミックスネットの処理と同時に、復号部b1の処理を行ってもよい。
【0053】
同様にして、第二ミックスネット構成部cが、図4に例示するように、第1結合装置1に設けられた第二ミックスネット構成部c1、第2結合装置2に設けられた第二ミックスネット演算部c2、…、第k結合装置kに設けられた第二ミックスネット構成部ck、…、第n結合装置nに設けられた第二ミックスネット構成部cnにより構成されてもよい。この場合、順次i=k−1,k−2,…,1,n,n−1,…,k+1として、第二ミックスネット構成部ciが、複数の組(d’π,E’(b)π)を再暗号化して予め定められた順序で入れ替えて、第二ミックスネット構成部ai+1(i=nである場合には、第一ミックスネット構成部a1)に送信する。
【0054】
同様にして、第三ミックスネット構成部eが、図5に例示するように、第1結合装置1に設けられた第三ミックスネット構成部e1、第2結合装置2に設けられた第三ミックスネット演算部e2、…、第k結合装置kに設けられた第三ミックスネット構成部ek、…、第n結合装置nに設けられた第三ミックスネット構成部enにより構成されてもよい。
【0055】
また、この際に、各第三ミックスネット構成部ei(i=1,2,…,n)が、d’’及びe’’を再暗号化して、E’’(b)については部分的な復号を行ってもよい。各第三ミックスネット構成部ei(i=1,2,…,n)がE’’(b)についての部分的な復号を行うことにより、bπ*(j)が復元される。すなわち、第三ミックスネット構成部ei(i=1,2,…,n)により構成される第三ミックスネット演算部eが、ミックスネットの処理と同時に、E’’’(bπ*(j))の復号を行ってもよい。
【0056】
マッチングシステムは、並替部gにより出力されたdπ*(j)’’’を復号して、ext(v)を生成する最終復号部を有していてもよい。
【0057】
なお、上記の実施形態では、マッチングシステムの各部間でデータは直接送受信されていたが、データは図示されていない記憶部を介してやり取りされてもよい。
【0058】
第i結合装置i(i=1,2,…,n)をコンピュータによって実現する場合、第i結合装置iの各部の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、第i結合装置iの各部の処理機能がコンピュータ上で実現される。
【0059】
これらのプログラムのそれぞれは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【0060】
この発明は上記の実施形態及び変形例に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【0061】
また、上記の実施形態及び変形例を互いに組み合わせてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。

【特許請求の範囲】
【請求項1】
nを2以上の整数、kを1以上n以下の整数として、
i=1,…,k−1,k+1,…,nとし、第iテーブルの予め定められたキーカラムVのデータをvとし、tを所定の数として、f(x)=tΠv∈Vi(x−v)=Σj=0Ji−1i,jで定義される多項式f(x)の各係数ai,jを準同型性を持つ暗号関数Eで暗号化したE(ai,j)を計算する第i結合装置と、
を整数の乱数とし、第kテーブルの予め定められたキーカラムVのデータvを含むタプルの全部又は一部のデータをext(v)として、キーカラムVの各データvについて、上記E(ai,j)を用いて、c=E(Σi∈{1,2,…,n}−{k}(v)r)=Σi∈{1,2,…,n}−{k}E(ai,j)vを計算し、d=E(ext(v))を計算し、上記cとdとの組(d,c)を生成する関数値計算部と、
上記複数の組(d,c)を再暗号化して置換πにより置換した複数の組(d’π,c’π)を生成する第一ミックスネット演算部と、
E’を準同型性を持つ暗号関数として、上記複数の組(d’π,c’π)のそれぞれについて、c’πの復号結果cπ=0である場合にはb=1とし、c’πの復号結果cπ=0でない場合にはb=0として、そのc’πの組(d’π,c’π)のd’ πとE’(b)πとの組(d’π,E’(b)π)を生成するフラグ付与部と、
上記複数の組(d’π,E’(b)π)を再暗号化して上記置換πの逆置換により置換した複数の組(d’’,E’’(b))(j=1,2,…,J)を生成する第二ミックスネット演算部と、
上記複数の組(d’’,E’’(b))のそれぞれについて、E’’(b)を用いて、順序e’’=E’’(Σk=1)=Σk=1E’’(b)を計算して、計算された順序e’’を組(d’’,E’’(b))に追加した組(d’’,E’’(b),e’’)を生成する順序付与部と、
上記複数の組(d’’,E’’(b),e’’)を再暗号化して置換πにより置換した複数の組(dπ*(j)’’’,E’’’(bπ*(j)),eπ*(j)’’’)を生成する第三ミックスネット演算部と、
E’’’(bπ*(j))を復号したbπ*(j)=1となる組(dπ*(j)’’’,E’’’(bπ*(j)),eπ*(j)’’’)のeπ*(j)’’’を復号して順序eπ*(j)を生成する順序復号部と、
上記順序eπ*(j)で組(dπ*(j)’’’,E’’’(bπ*(j)),eπ*(j)’’’)のdπ*(j)’’’を出力する並替部と、
を含むマッチングシステム。
【請求項2】
nを3以上の整数、kを1以上n以下の整数として、
i=1,…,k−1,k+1,…,nとし、第iテーブルの予め定められたキーカラムVのデータをvとし、tを所定の数として、f(x)=tΠv∈Vi(x−v)=Σj=0Ji−1i,jで定義される多項式f(x)の各係数ai,jを準同型性を持つ暗号関数Eで暗号化したE(ai,j)を計算する第i結合装置と、
を整数の乱数とし、第kテーブルの予め定められたキーカラムVのデータvを含むタプルの全部又は一部のデータをext(v)とし、||をビット結合とし、ext(v)に対応するビット列を検査符号t(v)として,キーカラムVの各データvについて、上記E(ai,j)を用いて、c=E((Σi∈{1,2,…,n}−{k}(v)r)+(ext(v)||t(v)))=(Σi∈{1,2,…,n}−{k}E(ai,j)v)+E((ext(v)||t(v)))を計算する関数値計算部と、
所定の順序で並んだ上記複数のcを置換πにより置換した複数のcπを生成する第一ミックスネット演算部と、
各上記cπの復号結果のビット列のうちt(v)に対応するビット列が上記t(v)と一致する場合にはそのcπの復号結果=ext(v)であり、一致しない場合にはそのcπの復号結果=ext(v)でないと判断する判定部と、
E’を準同型性を持つ暗号関数として、上記複数のcπのそれぞれについて、cπの復号結果=ext(v)であると判定された場合にはb=1とし、cπの復号結果=ext(v)でないと判定された場合にはb=0として、そのcπに対応するE’(b)πとdπ’=E(ext(v))の組(d’π,E’(b)π)を生成するフラグ付与部と、
上記複数の組(d’π,E’(b)π)を再暗号化して上記置換πの逆置換により置換した複数の組(d’’,E’’(b))(j=1,2,…,J)を生成する第二ミックスネット演算部と、
上記複数の組(d’’,E’’(b))のそれぞれについて、E’’(b)を用いて、順序e’’=E’’(Σk=1)=Σk=1E’’(b)を計算して、計算された順序e’’を組(d’’,E’’(b))に追加した組(d’’,E’’(b),e’’)を生成する順序付与部と、
上記複数の組(d’’,E’’(b),e’’)を再暗号化して置換πにより置換した複数の組(dπ*(j)’’’,E’’’(bπ*(j)),eπ*(j)’’’)を生成する第三ミックスネット演算部と、
E’’’(bπ*(j))を復号したbπ*(j)=1となる組(dπ*(j)’’’,E’’’(bπ*(j)),eπ*(j)’’’)のeπ*(j)’’’を復号して順序eπ*(j)を生成する順序復号部と、
上記順序eπ*(j)で組(dπ*(j)’’’,E’’’(bπ*(j)),eπ*(j)’’’)のdπ*(j)’’’を出力する並替部と、
を含むマッチングシステム。
【請求項3】
nを2以上の整数、kを1以上n以下の整数として、
i=1,…,k−1,k+1,…,nとし、第iテーブルの予め定められたキーカラムVのデータをvとし、tを所定の数として、f(x)=tΠv∈Vi(x−v)=Σj=0Ji−1i,jで定義される多項式f(x)の各係数ai,jを準同型性を持つ暗号関数Eで暗号化したE(ai,j)を計算する第i結合ステップと、
を整数の乱数とし、第kテーブルの予め定められたキーカラムVのデータvを含むタプルの全部又は一部のデータをext(v)として、キーカラムVの各データvについて、上記E(ai,j)を用いて、c=E(Σi∈{1,2,…,n}−{k}(v)r)=Σi∈{1,2,…,n}−{k}E(ai,j)vを計算し、d=E(ext(v))を計算し、上記cとdとの組(d,c)を生成する関数値計算ステップと、
上記複数の組(d,c)を再暗号化して置換πにより置換した複数の組(d’π,c’π)を生成する第一ミックスネット演算ステップと、
E’を準同型性を持つ暗号関数として、上記複数の組(d’π,c’π)のそれぞれについて、c’πの復号結果cπ=0である場合にはb=1とし、c’πの復号結果cπ=0でない場合にはb=0として、そのc’πの組(d’π,c’π)のd’ πとE’(b)πとの組(d’π,E’(b)π)を生成するフラグ付与ステップと、
上記複数の組(d’π,E’(b)π)を再暗号化して上記置換πの逆置換により置換した複数の組(d’’,E’’(b))(j=1,2,…,J)を生成する第二ミックスネット演算ステップと、
上記複数の組(d’’,E’’(b))のそれぞれについて、E’’(b)を用いて、順序e’’=E’’(Σk=1)=Σk=1E’’(b)を計算して、計算された順序e’’を組(d’’,E’’(b))に追加した組(d’’,E’’(b),e’’)を生成する順序付与ステップと、
上記複数の組(d’’,E’’(b),e’’)を再暗号化して置換πにより置換した複数の組(dπ*(j)’’’,E’’’(bπ*(j)),eπ*(j)’’’)を生成する第三ミックスネット演算ステップと、
E’’’(bπ*(j))を復号したbπ*(j)=1となる組(dπ*(j)’’’,E’’’(bπ*(j)),eπ*(j)’’’)のeπ*(j)’’’を復号して順序eπ*(j)を生成する順序復号ステップと、
上記順序eπ*(j)で組(dπ*(j)’’’,E’’’(bπ*(j)),eπ*(j)’’’)のdπ*(j)’’’を出力する並替ステップと、
を含むマッチングシステムの方法。
【請求項4】
nを3以上の整数、kを1以上n以下の整数として、
i=1,…,k−1,k+1,…,nとし、第iテーブルの予め定められたキーカラムVのデータをvとし、tを所定の数として、f(x)=tΠv∈Vi(x−v)=Σj=0Ji−1i,jで定義される多項式f(x)の各係数ai,jを準同型性を持つ暗号関数Eで暗号化したE(ai,j)を計算する第i結合ステップと、
を整数の乱数とし、第kテーブルの予め定められたキーカラムVのデータvを含むタプルの全部又は一部のデータをext(v)とし、||をビット結合とし、ext(v)に対応するビット列を検査符号t(v)として,キーカラムVの各データvについて、上記E(ai,j)を用いて、c=E((Σi∈{1,2,…,n}−{k}(v)r)+(ext(v)||t(v)))=(Σi∈{1,2,…,n}−{k}E(ai,j)v)+E((ext(v)||t(v)))を計算する関数値計算ステップと、
所定の順序で並んだ上記複数のcを置換πにより置換した複数のcπを生成する第一ミックスネット演算ステップと、
各上記cπの復号結果のビット列のうちt(v)に対応するビット列が上記t(v)と一致する場合にはそのcπの復号結果=ext(v)であり、一致しない場合にはそのcπの復号結果=ext(v)でないと判断する判定ステップと、
E’を準同型性を持つ暗号関数として、上記複数のcπのそれぞれについて、cπの復号結果=ext(v)であると判定された場合にはb=1とし、cπの復号結果=ext(v)でないと判定された場合にはb=0として、そのcπに対応するE’(b)πとdπ’=E(ext(v))の組(d’π,E’(b)π)を生成するフラグ付与ステップと、
上記複数の組(d’π,E’(b)π)を再暗号化して上記置換πの逆置換により置換した複数の組(d’’,E’’(b))(j=1,2,…,J)を生成する第二ミックスネット演算ステップと、
上記複数の組(d’’,E’’(b))のそれぞれについて、E’’(b)を用いて、順序e’’=E’’(Σk=1)=Σk=1E’’(b)を計算して、計算された順序e’’を組(d’’,E’’(b))に追加した組(d’’,E’’(b),e’’)を生成する順序付与ステップと、
上記複数の組(d’’,E’’(b),e’’)を再暗号化して置換πにより置換した複数の組(dπ*(j)’’’,E’’’(bπ*(j)),eπ*(j)’’’)を生成する第三ミックスネット演算ステップと、
E’’’(bπ*(j))を復号したbπ*(j)=1となる組(dπ*(j)’’’,E’’’(bπ*(j)),eπ*(j)’’’)のeπ*(j)’’’を復号して順序eπ*(j)を生成する順序復号ステップと、
上記順序eπ*(j)で組(dπ*(j)’’’,E’’’(bπ*(j)),eπ*(j)’’’)のdπ*(j)’’’を出力する並替ステップと、
を含むマッチングシステムの方法。
【請求項5】
請求項1又は請求項2のマッチングシステムの第i結合装置である結合装置。
【請求項6】
請求項5の結合装置の各部としてコンピュータを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−150379(P2012−150379A)
【公開日】平成24年8月9日(2012.8.9)
【国際特許分類】
【出願番号】特願2011−10549(P2011−10549)
【出願日】平成23年1月21日(2011.1.21)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】