説明

分散ルーティング処理装置およびコンピュータプログラム

【課題】フルメッシュに通信リンクが存在しない通信ネットワークを対象にした分散ルーティング処理でノードの秘密情報を当該管理者以外の者に秘匿すること。
【解決手段】自ノードの局所トポロジー情報を用いて閾値秘密分散法により複数の分散情報を生成する秘密分散部13と、自局所ノード群内のノード間で複数の分散情報を分散して保持する分散情報格納部15と、複数の分散情報を変換分散情報構成要素に変換する分散情報変換部17と、自局所ノード群に隣接する局所ノード群との間で変換分散情報構成要素を交換して変換分散情報を生成する変換分散情報交換部18と、自局所ノード群内の各ノードと連携して所定の関数を分散して計算するSMCを解決するSMC部と、自局所ノード群内の各ノードと連携して次ホップ情報の複数の分散情報から次ホップ情報を復元する秘密分散復元部14と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分散ルーティング処理装置およびコンピュータプログラムに関する。
【背景技術】
【0002】
従来、複数(N台)の通信装置(以下、ノードと称する)と、ノード間を結ぶ通信路(以下、通信リンクと称する)とからなる通信ネットワークにおいて、N台のノード間で通信して分散ルーティング処理を行う技術が知られている。この分散ルーティング処理とは、N入力・N出力の関数[(Y_1,Y_2,・・・,Y_N)=F(X_1,X_2,・・・,X_N)]を計算する処理である。但し、Nは通信ネットワークを構成するノードの台数である。X_iはノードiから入力される局所トポロジー情報である。Y_iはノードiへ出力する次ホップ情報である。iは1からNまでの自然数である。局所トポロジー情報X_iとは、ノードiと他のノードとの間の接続関係(通信リンクの有無)を示す情報である。次ホップ情報Y_iとは、あるノードにメッセージを届けるために、ノードiがメッセージをどのノードに転送すればよいのかを示す情報である。
【0003】
任意の関数FをN台のノードで分散して計算する問題はSMC(Secure Multi-party computation)として知られている。このSMCを解決する方法として、例えば非特許文献1,2,3などに、汎用的な計算手順(SMCプロトコル)が開示されている。従来のSMC技術では、通信ネットワーク内の全ノード間に通信リンクが存在する、所謂フルメッシュに通信リンクが存在する通信ネットワークを対象にして、通信ネットワークを構成するN台のノードのうち単一の管理者に属するノードの台数がある閾値未満であるという条件下で、汎用的なSMCプロトコルを用いて、関数FをN台のノードで分散して計算している。これにより、ノードiの管理者以外の者には、ノードiの秘密情報を開示しないようにすることができる。ノードiの秘密情報とは、ノードiに係る入力情報(局所トポロジー情報)X_i及び出力情報(次ホップ情報)Y_i、並びに入力情報X_iを用いて関数Fを計算する途中で発生した情報を指す。
【0004】
一方、フルメッシュに通信リンクが存在しない通信ネットワークを対象にした従来の分散ルーティング処理技術として、例えば非特許文献4などに記載されるBellman-Fordアルゴリズムが知られている。この従来の分散ルーティング処理技術では、以下の4つの手順(S101からS104)を用いている。
S101:各ノードiからの局所トポロジー情報X_iの入力。
S102:各ノードiにおいて局所トポロジー情報X_iを用いた計算。
S103:各ノードiから、通信リンクが存在する他のノードへ、情報の転送。
S104:各ノードiへ次ホップ情報の出力。
このBellman-Fordアルゴリズムでは、ノードiの秘密情報を他のノードに対して秘匿することは考慮されていない。従って、ノードiの秘密情報がノードiの管理者以外の者に漏洩する可能性がある。
【0005】
また、非特許文献5には閾値秘密分散法が開示されている。閾値秘密分散法では、秘密情報から閾値以上の個数の分散情報を生成する。その分散情報は、当該閾値以上の個数の分散情報を使用しないと、元の秘密情報を復元することができないものである。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】Goldreich, O. Foundations of Cryptography, volume 2, Basic Applications. Cambridge University Press, 2004.
【非特許文献2】Goldreich, O., Micali, S., and Wigderson, A. How to play any mental game. In Proceedings of the nineteenth annual ACM symposium on Theory of computing (1987), ACM, pp. 218-229.
【非特許文献3】Ben-Or, M., Goldwasser, S., and Wigderson, A. Completeness theorems for non-cryptographic fault-tolerant distributed computation. In Proceedings of the twentieth annual ACM symposium on Theory of computing (1988), ACM, pp. 1-10.
【非特許文献4】Lynch, N.A., Distributed algorithms, Morgan Kaufmann, 1996.
【非特許文献5】Shamir, A. How to share a secret. Communications of the ACM 22, 11 (1979), 612-613.
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、上述したBellman-Fordアルゴリズムに代表される従来の分散ルーティング処理技術では、フルメッシュに通信リンクが存在しない通信ネットワークを対象にしているが、ノードiの秘密情報をノードiの管理者以外の者に秘匿することができない。一方、上述した汎用的なSMCプロトコルを用いる場合には、フルメッシュに通信リンクが存在する通信ネットワークを対象にする必要がある。
【0008】
本発明は、このような事情を考慮してなされたもので、フルメッシュに通信リンクが存在しない通信ネットワークを対象にした分散ルーティング処理において、ノードの秘密情報を当該ノードの管理者以外の者に秘匿することができる分散ルーティング処理装置およびコンピュータプログラムを提供することを課題とする。
【課題を解決するための手段】
【0009】
上記の課題を解決するために、本発明に係る分散ルーティング処理装置は、複数のノードから構成される通信ネットワークであって、前記複数のノードは複数の局所ノード群に分類され、一の前記局所ノード群は一管理者に属するノードの数が閾値秘密分散法における所定の閾値未満であり、一の前記局所ノード群内の全てのノード間には通信路が存在し、2つの前記局所ノード群間に通信路が存在する場合に当該2つの局所ノード群をお互いに隣接する局所ノード群であると定義した、前記通信ネットワークにおいて、ノードごとに設けられ、局所トポロジー情報から次ホップ情報を求める分散ルーティング処理装置であり、自分散ルーティング処理装置が設けられているノード(自ノード)からの局所トポロジー情報を入力する入力部と、前記入力された局所トポロジー情報を用いて前記閾値による閾値秘密分散法により前記閾値以上の個数の分散情報を生成する秘密分散部と、自ノードが属する局所ノード群内のノード間で、前記閾値以上の個数の分散情報を分散して保持する分散情報格納部と、前記閾値以上の個数の第1の分散情報を、「前記第1の分散情報とは異なり、且つ、前記閾値以上の個数の第2の分散情報(変換分散情報)であって前記閾値以上の個数の変換分散情報を用いて前記第1の分散情報の元の情報を復元することができる変換分散情報」を構成する要素(変換分散情報構成要素)に変換する分散情報変換部と、自ノードが属する局所ノード群に隣接する局所ノード群との間で変換分散情報構成要素を交換して変換分散情報を生成する変換分散情報交換部と、自ノードが属する局所ノード群内の各ノードの分散ルーティング処理装置と連携して、局所トポロジー情報の分散情報から次ホップ情報の分散情報を求めるために必要な所定の関数を分散して計算するSMC(Secure Multi-party computation)を解決するSMC部と、自ノードが属する局所ノード群内の各ノードの分散ルーティング処理装置と連携して、次ホップ情報の前記閾値以上の個数の分散情報から次ホップ情報を復元する秘密分散復元部と、前記復元された次ホップ情報を自ノードへ出力する出力部と、を備えたことを特徴とする。
【0010】
本発明に係るコンピュータプログラムは、複数のノードから構成される通信ネットワークであって、前記複数のノードは複数の局所ノード群に分類され、一の前記局所ノード群は一管理者に属するノードの数が閾値秘密分散法における所定の閾値未満であり、一の前記局所ノード群内の全てのノード間には通信路が存在し、2つの前記局所ノード群間に通信路が存在する場合に当該2つの局所ノード群をお互いに隣接する局所ノード群であると定義した、前記通信ネットワークにおいて、ノードごとに、局所トポロジー情報から次ホップ情報を求める分散ルーティング処理を行うためのコンピュータプログラムであって、自分散ルーティング処理装置が設けられているノード(自ノード)からの局所トポロジー情報を入力する入力ステップと、前記入力された局所トポロジー情報を用いて前記閾値による閾値秘密分散法により前記閾値以上の個数の分散情報を生成する秘密分散ステップと、自ノードが属する局所ノード群内のノード間で、前記閾値以上の個数の分散情報を分散して保持する分散情報格納ステップと、前記閾値以上の個数の第1の分散情報を、「前記第1の分散情報とは異なり、且つ、前記閾値以上の個数の第2の分散情報(変換分散情報)であって前記閾値以上の個数の変換分散情報を用いて前記第1の分散情報の元の情報を復元することができる変換分散情報」を構成する要素(変換分散情報構成要素)に変換する分散情報変換ステップと、自ノードが属する局所ノード群に隣接する局所ノード群との間で変換分散情報構成要素を交換して変換分散情報を生成する変換分散情報交換ステップと、自ノードが属する局所ノード群内の各ノードの分散ルーティング処理装置と連携して、局所トポロジー情報の分散情報から次ホップ情報の分散情報を求めるために必要な所定の関数を分散して計算するSMC(Secure Multi-party computation)を解決するSMCステップと、自ノードが属する局所ノード群内の各ノードの分散ルーティング処理装置と連携して、次ホップ情報の前記閾値以上の個数の分散情報から次ホップ情報を復元する秘密分散復元ステップと、前記復元された次ホップ情報を自ノードへ出力する出力ステップと、をコンピュータに実行させるためのコンピュータプログラムであることを特徴とする。
これにより、前述の分散ルーティング処理装置がコンピュータを利用して実現できるようになる。
【発明の効果】
【0011】
本発明によれば、フルメッシュに通信リンクが存在しない通信ネットワークを対象にした分散ルーティング処理において、ノードの秘密情報を当該ノードの管理者以外の者に秘匿することができるという効果が得られる。
【図面の簡単な説明】
【0012】
【図1】本発明の一実施形態に係る分散ルーティング処理装置1の構成を示すブロック図である。
【図2】本発明の一実施形態に係る分散ルーティング処理対象の通信ネットワーク100の構成例である。
【図3】本発明の一実施形態に係る分散ルーティング処理のフローチャートである。
【図4】本発明に係る分散ルーティング処理対象の通信ネットワーク300の一実施例である。
【図5】図4に示す通信ネットワーク300における局所ノード群の設定例である。
【図6】図4に示す通信ネットワーク300における局所ノード群の一実施例である。
【発明を実施するための形態】
【0013】
以下、図面を参照し、本発明の実施形態について説明する。
図1は、本発明の一実施形態に係る分散ルーティング処理装置1の構成を示すブロック図である。図1において、分散ルーティング処理装置1は、入力部11と出力部12と秘密分散部13と秘密分散復元部14と分散情報格納部15とSMC部16と分散情報変換部17と変換分散情報交換部18とを備える。
【0014】
図2は、本実施形態に係る、分散ルーティング処理を行う対象である通信ネットワーク100の構成例である。図2において、通信ネットワーク100は、複数(N台)のノードから構成されている。通信ネットワーク100には、通信リンクが存在しないノード間がある。つまり、通信ネットワーク100は、フルメッシュに通信リンクが存在しない通信ネットワークである。通信ネットワーク100を構成するN台のノードは、複数(7個)の局所ノード群101〜107に分類されている。
【0015】
一の局所ノード群は、一管理者に属するノードの数が閾値秘密分散法における所定の閾値未満であり、且つ、局所ノード群内の全てのノード間には通信リンクが存在する(フルメッシュに通信リンクが存在する)ように、設定される。又、2つの局所ノード群間に通信リンクが存在する場合に、当該2つの局所ノード群をお互いに隣接する局所ノード群であると定義する。
【0016】
例えば、図2において、局所ノード群101は8台のノードから構成される。この局所ノード群101に対して、閾値秘密分散法における閾値は3に設定されている。従って、局所ノード群101においては、一管理者に属するノードの数は3未満である。具体的には、局所ノード群101において、管理者Aに属するのはノードn1,n2の2台、管理者Bに属するのはノードn3の1台、管理者Cに属するのはノードn4の1台、管理者Dに属するのはノードn5の1台、管理者Eに属するのはノードn6の1台、管理者Fに属するのはノードn7,n8の2台、である。
【0017】
なお、ノードの管理者とは、当該ノードが格納する情報を知ることできる全ての者を指す。ノードの管理者としては、例えば、ノードの所有者、ノードの所有者からノードの使用権を与えられている者、ノードの使用権限を不当に取得している攻撃者などが挙げられる。
【0018】
さらに、局所ノード群101において、全てのノード間には通信リンクが存在する。図2の例では、局所ノード群101内の全ノードn1〜n8は、局所的な通信ネットワーク200に接続している。通信ネットワーク200は、ノードn1〜n8に対して、全ノード間の通信リンクを提供する。これにより、局所ノード群101内には、フルメッシュに通信リンクが存在している。
【0019】
又、図2の通信ネットワーク100において、局所ノード群間に通信リンクが存在する2つの局所ノード群はお互いに隣接する局所ノード群である。具体的には、局所ノード群101と局所ノード群102は、お互いに隣接する局所ノード群である。同様に、局所ノード群101と局所ノード群103、局所ノード群102と局所ノード群104、局所ノード群103と局所ノード群104、局所ノード群104と局所ノード群105、局所ノード群104と局所ノード群106、局所ノード群105と局所ノード群107は、それぞれに、お互いに隣接する局所ノード群である。
【0020】
分散ルーティング処理装置1は、分散ルーティング処理を行う対象である通信ネットワークを構成する各ノードに設けられる。図2の通信ネットワーク100においては、通信ネットワーク100を構成するN台のノードに対して、ノードごとに、分散ルーティング処理装置1が設けられる。例えば、局所ノード群101においては、局所ノード群101内の全ノードn1〜n8がそれぞれに分散ルーティング処理装置1を有する。
【0021】
以下、図2に示される、N台のノードから構成される通信ネットワーク100、を分散ルーティング処理の対象として説明を行う。この分散ルーティング処理では、N入力・N出力の関数[(Y_1,Y_2,・・・,Y_N)=F(X_1,X_2,・・・,X_N)]を計算する。但し、X_iはノードiから入力される局所トポロジー情報である。Y_iはノードiへ出力する次ホップ情報である。
【0022】
図1において、入力部11は、自分散ルーティング処理装置1が設けられているノード(以下、自ノードと称する)iから局所トポロジー情報X_iを入力する。出力部12は、自ノードiに対して、分散ルーティング処理の結果のうち次ホップ情報Y_iのみを出力する。
【0023】
秘密分散部13は、局所トポロジー情報X_iを用いて、所定の閾値による閾値秘密分散法により当該閾値以上の個数の分散情報を生成する。秘密分散部13は、その閾値以上の個数の分散情報を、自ノードが属する局所ノード群(以下、自局所ノード群と称する)内の各ノードで分散して保持させる。
【0024】
例えば、図2の局所ノード群101では、閾値が3であるので、局所トポロジー情報X_iから3個以上の所定個数(ここでは、8個とする)の分散情報を生成する。そして、その8個の分散情報を、局所ノード群101内の各ノードn1〜n8でそれぞれ1個ずつ保持する。これにより、局所ノード群101では、一管理者に属するノードの数は最大2台であるので、一管理者は、最大で2個の分散情報しか手に入れることができず、該分散情報からは元の局所トポロジー情報X_iを復元することができない。
【0025】
なお、閾値秘密分散法としては、非特許文献5に開示されるものを利用することができる。又は、排他的論理和演算を用いて、情報xを「x=x_1 XOR x_2」となるような、2個の情報x_1,x_2に分割する方法を利用することができる。但し、「XOR」はビット毎の排他的論理和演算を表す。
【0026】
秘密分散復元部14は、自局所ノード群内の各ノードと連携して、次ホップ情報Y_iの複数(閾値秘密分散法における閾値以上の個数)の分散情報から次ホップ情報Y_iを復元する。
【0027】
例えば、図2の局所ノード群101では、閾値が3であるので、次ホップ情報Y_iの3個以上の所定個数(ここでは、8個とする)の分散情報から次ホップ情報Y_iを復元する。その次ホップ情報Y_iの8個の分散情報は、局所ノード群101内の各ノードn1〜n8でそれぞれ1個ずつ保持されている。このため、ノードi(ここでは、ノードn1とする)の分散ルーティング処理装置1は、次ホップ情報Y_iの1個の分散情報を保持しているが、残りの7個の分散情報は他の7台のノードn2〜n8から取得する。そして、ノードn1の分散ルーティング処理装置1は、次ホップ情報Y_iの8個の分散情報から次ホップ情報Y_iを復元する。
【0028】
分散情報格納部15は、自ノードで管理する分散情報を保持する。
【0029】
SMC部16は、所定の関数[y=f(x)]をM台のノードで分散して計算するSMCを解決する。但し、xは分散情報である。関数fは、分散情報xから分散情報yを与える。所定の関数[y=f(x)]としては、局所トポロジー情報X_iの分散情報から次ホップ情報Y_iの分散情報を求めるために必要な関数が準備される。SMCを解決する方法には、例えば非特許文献1,2,3などに記載される汎用的な計算手順(SMCプロトコル)を利用する。
【0030】
SMC部16は、自局所ノード群内のM台のノードのみによって、所定の関数fを分散して計算する。一局所ノード群内の全ノード間には通信リンクが存在する。つまり、一局所ノード群内にはフルメッシュに通信リンクが存在する。さらに、一局所ノード群を構成するM台のノードのうち一管理者に属するノードの台数は閾値秘密分散法における閾値未満である。
【0031】
例えば、図2の局所ノード群101では、Mは8であり、8台のノードn1〜n8に対してフルメッシュに通信リンクが存在する。さらに、閾値秘密分散法における閾値は3であり、一管理者に属するノードの数は3未満である。そして、8台のノードn1〜n8の各SMC部16によって、所定の関数fを分散して計算する。
【0032】
分散情報変換部17は、元情報から生成された複数(閾値秘密分散法における閾値以上の個数)の分散情報を、「該分散情報とは異なり且つ複数(閾値秘密分散法における閾値以上の個数)の分散情報(変換分散情報)」を構成する要素(以下、変換分散情報構成要素と称する)、に変換する。但し、閾値秘密分散法における閾値以上の個数の変換分散情報を用いて、元情報を復元することができるようにする。
【0033】
変換分散情報交換部18は、自局所ノード群に隣接する局所ノード群(以下、隣接局所ノード群と称する)との間で変換分散情報構成要素を交換して変換分散情報を生成する。変換分散情報交換部18は、分散情報変換部17が生成した変換分散情報構成要素を隣接局所ノード群へ送信する。また、変換分散情報交換部18は、隣接局所ノード群から変換分散情報構成要素を受信する。例えば、図2の通信ネットワーク100では、局所ノード群101内の各ノードn1〜n8は、隣接局所ノード群102,103との間で変換分散情報構成要素を交換する。そして、変換分散情報交換部18は、隣接局所ノード群から受信した変換分散情報構成要素を用いて変換分散情報を生成する。
【0034】
ここで、変換分散情報の生成方法の例を説明する。ここでは、閾値秘密分散法における閾値を2とする。元情報をxとする。元情報xから生成された2個の分散情報をx_1,x_2とする。但し、「x=x_1 XOR x_2」である。分散情報x_1は、ノードnaで保持している。分散情報x_2は、ノードnaが属する局所ノード群内の他のノードnbで保持している。このとき、ノードnaでは、「x_1=x_11 XOR x_12」となるx_11とx_12を生成する。ノードnbでは、「x_2=x_21 XOR x_22」となるx_21とx_22を生成する。そして、ノードnaとノードnbは、生成した情報を、隣接局所ノード群へ送信する。ここでは、隣接局所ノード群のノードnc,ndへ送信するとする。このとき、ノードnaは、生成した情報のうち一方の情報x_11をノードncへ送信し、もう一方の情報x_12をノードndへ送信する。ノードnbは、生成した情報のうち一方の情報x_21をノードncへ送信し、もう一方の情報x_22をノードndへ送信する。隣接局所ノード群において、ノードncは、「x_3=x_11 XOR x_21」を計算することにより、変換分散情報x_3を得る。従って、x_11及びx_21は変換分散情報x_3の変換分散情報構成要素である。ノードndは、「x_4=x_12 XOR x_22」を計算することにより、変換分散情報x_4を得る。従って、x_12及びx_22は変換分散情報x_4の変換分散情報構成要素である。そして、隣接局所ノード群において、変換分散情報x_3はノードncで、変換分散情報x_4はノードndで、それぞれ分散して保持される。この2個の変換分散情報x_3,x_4によれば、「x=x_3 XOR x_4」となり、元情報xを復元することができる。
【0035】
次に、図3を参照して、本実施形態に係る分散ルーティング処理の手順を説明する。図3は、本実施形態に係る分散ルーティング処理のフローチャートである。
ステップS1:通信ネットワーク100内のN台のノードiは、それぞれに、自己の分散ルーティング処理装置1へ局所トポロジー情報X_iを入力する。
【0036】
ステップS2:ノードiの分散ルーティング処理装置1は、局所トポロジー情報X_iを用いて、所定の閾値による閾値秘密分散法により当該閾値以上の個数の分散情報を生成する。この分散情報は、自局所ノード群内の各ノードで分散して保持される。
【0037】
ステップS3:ノードiの分散ルーティング処理装置1は、自ノードiで保持している分散情報を変換分散情報構成要素に変換する。
【0038】
ステップS4:ノードiの分散ルーティング処理装置1は、隣接局所ノード群との間で変換分散情報構成要素を交換する。そして、ノードiの分散ルーティング処理装置1は、隣接局所ノード群から受信した変換分散情報構成要素を用いて変換分散情報を生成する。
【0039】
ステップS5:ノードiの分散ルーティング処理装置1は、自局所ノード群内のM台のノードのみによって、所定の関数[y=f(x)]を分散して計算する。但し、xは、自局所ノード群内のM台のノードがそれぞれに保持する分散情報である。なお、分散情報とは変換分散情報を含む。所定の関数[y=f(x)]は、局所トポロジー情報X_iの分散情報から次ホップ情報Y_iの分散情報を求めるために必要な関数であり、予め準備される。
【0040】
ステップS6:ノードiの分散ルーティング処理装置1は、上記ステップS3からS5の処理を終了する条件を判定する。上記ステップS3からS5の処理は、通信ネットワーク100内で最も離れた2つのノード間のホップ数(グラフ理論では「ネットワークの直径」と称される)と同じ回数だけ繰り返す必要がある。この終了条件を、満足する場合にはステップS7に進み、満足しない場合にはステップS3に戻る。
【0041】
ステップS7:ノードiの分散ルーティング処理装置1は、自局所ノード群内の各ノードから、閾値秘密分散法における閾値以上の個数だけ次ホップ情報Y_iの分散情報を取得する。そして、ノードiの分散ルーティング処理装置1は、次ホップ情報Y_iの複数(閾値秘密分散法における閾値以上の個数)の分散情報から、次ホップ情報Y_iを復元する。
【0042】
ステップS8:ノードiの分散ルーティング処理装置1は、次ホップ情報Y_iを自ノードiへ出力する。
【実施例】
【0043】
次に、本実施形態に係る一実施例を説明する。本実施例では、図4に示される、6台のノードから構成される通信ネットワーク300、を分散ルーティング処理の対象とする。本実施例では、分散ルーティング処理として、最短パスルーティングを扱う。最短パスルーティングでは、2つのノード間の通信パスが最短パスとなるような次ホップ情報を求める。最短パスとは、2つのノード間の通信パスが有する通信リンクの距離の合計が最小となる通信パスである。
【0044】
図4において、ノード#1とノード#2間には通信リンクが存在し、当該通信リンクの距離は1である。ノード#2とノード#3間には通信リンクが存在し、当該通信リンクの距離は3である。ノード#2とノード#4間には通信リンクが存在し、当該通信リンクの距離は1である。ノード#3とノード#5間には通信リンクが存在し、当該通信リンクの距離は1である。ノード#4とノード#5間には通信リンクが存在し、当該通信リンクの距離は2である。ノード#5とノード#6間には通信リンクが存在し、当該通信リンクの距離は1である。
【0045】
通信ネットワーク300には、通信リンクが存在しないノード間がある。つまり、通信ネットワーク300は、フルメッシュに通信リンクが存在しない通信ネットワークである。
【0046】
本実施例では、図5に示されるように、局所ノード群が設定されている。局所ノード群G2は、ノード#1とノード#2から構成される。局所ノード群G3は、ノード#3とノード#5から構成される。局所ノード群G4は、ノード#2とノード#4から構成される。局所ノード群G5は、ノード#5とノード#6から構成される。各局所ノード群G2,G3,G4,G5内は、全てのノード間に通信リンクが存在する(フルメッシュに通信リンクが存在する)。
【0047】
局所ノード群G2,G3,G4,G5において、閾値秘密分散法における閾値は2に設定されている。従って、局所ノード群G2,G3,G4,G5において、一管理者に属するノードの数は2未満である。
【0048】
図6は、通信ネットワーク300における局所ノード群の構成である。局所ノード群G2と局所ノード群G3との間には通信リンクが存在し、局所ノード群G2と局所ノード群G3とはお互いに隣接する局所ノード群である。同様に、局所ノード群G2と局所ノード群G4、局所ノード群G3と局所ノード群G5、局所ノード群G4と局所ノード群G5は、それぞれに、お互いに隣接する局所ノード群である。
【0049】
図4において、例えば、ノード#6からノード#1への最短パスは、ノード#6→ノード#5→ノード#4→ノード#2→ノード#1である。従って、ノード#5から見ると、宛先ノード#1に対応する次ホップはノード#4となる。各ノードが予め知っている局所トポロジー情報は、自分との間に通信リンクが存在するノード(以下、隣接ノードと称する)の識別子(ID)と、自分と隣接ノード間の通信リンクの距離だけである。従って、ノード#5単独では、宛先ノード#1に対応する次ホップがノード#4であるという情報は導出できない。そこで、本実施例では、そのような次ホップ情報を、各ノードが自身の局所トポロジー情報を他のノードに開示せずに求めることを図る。
【0050】
本実施例では、各ノード#1〜#6は、それぞれに、図1の分散ルーティング処理装置1を備える。本実施例では、以下を定義する。
【0051】
[x]_i:局所ノード群iにおいて秘密情報xから閾値秘密分散法により生成されて各ノードに分散されて保持されている分散情報。各ノードでは、分散情報格納部15が分散情報を保持している。
【0052】
[x]_i=SHARE(i,x):局所ノード群iにおいて、閾値秘密分散法により秘密情報xから分散情報を生成し、分散情報を各ノードに分散して保持させる動作。局所ノード群i内の各ノードの秘密分散部13は互いに通信して、本動作を行う。本動作によって、分散情報[x]_iとなる。
【0053】
[y]_i=COMPUTE(i,f,[x]_i):局所ノード群iにおいて、分散情報[x]_iを引数として所定の関数[y=f(x)]を計算し、分散情報[y]_iを得る動作。局所ノード群i内の各ノードのSMC部16は、互いに通信して、所定の関数[y=f(x)]を分散して計算するSMCを解決する。分散情報[y]_iは、局所ノード群i内の各ノードに分散されて保持される。各ノードでは、分散情報格納部15が分散情報を保持する。
【0054】
[x]_j=TRANSFER(i,j,[x]_i):局所ノード群iが分散情報[x]_iを変換分散情報構成要素に変換して局所ノード群jへ送信し、局所ノード群jが該変換分散情報構成要素を用いて変換分散情報[x]_jを生成する、動作。局所ノード群iの各ノードの分散情報変換部17は、分散情報[x]_iを変換分散情報構成要素に変換する。次いで、局所ノード群iの各ノードの変換分散情報交換部18は、局所ノード群jの各ノードの変換分散情報交換部18へ、変換分散情報構成要素を送信する。局所ノード群jの各ノードの変換分散情報交換部18は、受信した変換分散情報構成要素を用いて変換分散情報[x]_jを生成する。局所ノード群jにおいて、変換分散情報[x]_jは各ノードに分散されて保持される。局所ノード群jの各ノードでは、分散情報格納部15が変換分散情報を保持する。
【0055】
x=RECOVER(i,[x]_i):局所ノード群iにおいて、分散情報[x]_iから秘密情報xを復元する動作。なお、分散情報とは変換分散情報を含む。局所ノード群i内の各ノードの秘密分散復元部14は互いに通信して、本動作を行う。
【0056】
本実施例では、非特許文献4などに記載されるBellman-Fordアルゴリズムを用いて、最短パスルーティングを行う分散ルーティング処理を実行する。Bellman-Fordアルゴリズムでは全ノードについて最短パスを同時に計算するが、ここでは、説明の便宜上、図4においてノード#1への最短パスのみを計算する簡略化されたBellman-Fordアルゴリズムを用いて、以下に説明する。
【0057】
局所ノード群G2は以下の動作を行う。
[4]_G2=SHARE(G2,4)。ここで、秘密情報「4」はノード#1からノード#3までの通信パスの距離である(図4参照)。
[4]_G3=TRANSFER(G2,G3,[4]_G2)。これにより、秘密情報「4」が変換分散情報[4]_G3として局所ノード群G3へ伝達される。
[2]_G2=SHARE(G2,2)。ここで、秘密情報「2」はノード#1からノード#4までの通信パスの距離である(図4参照)。
[2]_G4=TRANSFER(G2,G4,[2]_G2)。これにより、秘密情報「2」が変換分散情報[2]_G4として局所ノード群G4へ伝達される。
【0058】
局所ノード群G3は以下の動作を行う。
[1]_G3=SHARE(G3,1)。ここで、秘密情報「1」はノード#3からノード#5までの通信パスの距離である(図4参照)。
[5]_G3=COMPUTE(G3,+,[4]_G3,[1]_G3)。ここで、所定の関数[y=f(x)]は、変換分散情報[4]_G3と分散情報[1]_G3とを引数として加算を行うものである。この結果として得られた分散情報[5]_G3は秘密情報「5」の分散情報であり、当該秘密情報「5」はノード#1からノード#3を経由したノード#5までの通信パスの距離である(図4参照)。
[5]_G5=TRANSFER(G3,G5,[5]_G3)。これにより、秘密情報「5」が変換分散情報[5]_G5として局所ノード群G5へ伝達される。
【0059】
局所ノード群G4は以下の動作を行う。
[2]_G4=SHARE(G4,2)。ここで、秘密情報「2」はノード#4からノード#5までの通信パスの距離である(図4参照)。
[4]_G4=COMPUTE(G4,+,[2]_G4,[2]_G4)。ここで、所定の関数[y=f(x)]は、変換分散情報[2]_G4と分散情報[2]_G4とを引数として加算を行うものである。この結果として得られた分散情報[4]_G4は秘密情報「4」の分散情報であり、当該秘密情報「4」はノード#1からノード#4を経由したノード#5までの通信パスの距離である(図4参照)。
[4]_G5=TRANSFER(G4,G5,[4]_G4)。これにより、秘密情報「4」が変換分散情報[4]_G5として局所ノード群G5へ伝達される。
【0060】
局所ノード群G5は以下の動作を行う。
[#4]_G5=COMPUTE(G5,argmin,[5]_G5,[4]_G5)。ここで、所定の関数[y=f(x)]は、変換分散情報[5]_G5と変換分散情報[4]_G5とを引数として、最短の距離である方の隣接ノード(次ホップ)のIDを求めるものである。この結果として得られた分散情報[#4]_G5は秘密情報「#4」の分散情報であり、当該秘密情報「#4」はノード#4のIDである。
#4=RECOVER(G5,[#4]_G5)。これにより、秘密情報「#4」が復元される。秘密情報「#4」は、ノード#5において、宛先ノード#1に対応する次ホップのIDである。これにより、ノード#5において、宛先ノード#1に対応する次ホップがノード#4であるという、次ホップ情報が得られる。この次ホップ情報はノード#5へ出力される。
【0061】
本実施例において、秘密情報および途中の計算結果は全て分散された状態で保持されるため、各ノードの秘密情報は他のノードに対して秘匿される。
【0062】
上述したように本実施形態によれば、任意の分散ルーティングを、SMCの要件を満たしながら実行することができる。これにより、フルメッシュに通信リンクが存在しない通信ネットワークを対象にした分散ルーティング処理において、ノードiの秘密情報をノードiの管理者以外の者に秘匿することができるという効果が得られる。又、任意の分散ルーティングに適用できるので、適用範囲が広い。
【0063】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【0064】
なお、本発明に適用可能な通信ネットワークとしては、物理ノードと物理通信リンクから成る物理ネットワークであってもよく、又は、peer-to-peer技術もしくはオーバーレイネットワーク技術もしくは計算機仮想化技術等を用いて作られた論理ノードと論理通信リンクから成る論理ネットワークであってもよい。
【0065】
例えば、peer-to-peerネットワークや、仮想化された計算機から構成される仮想化されたネットワークのような、管理者が複数存在し、各ノードは異なる管理者に属する場合があり、したがって各ノードの管理者と、ノードに格納される分散ルーティング中の情報の所有者とが必ずしも一致しない環境において、各ノードの秘密情報を開示せずに分散ルーティングを実行することができる。
【0066】
また、図3に示す各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、分散ルーティング処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disk)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0067】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【符号の説明】
【0068】
1…分散ルーティング処理装置、11…入力部、12…出力部、13…秘密分散部、14…秘密分散復元部、15…分散情報格納部、16…SMC部、17…分散情報変換部、18…変換分散情報交換部

【特許請求の範囲】
【請求項1】
複数のノードから構成される通信ネットワークであって、前記複数のノードは複数の局所ノード群に分類され、一の前記局所ノード群は一管理者に属するノードの数が閾値秘密分散法における所定の閾値未満であり、一の前記局所ノード群内の全てのノード間には通信路が存在し、2つの前記局所ノード群間に通信路が存在する場合に当該2つの局所ノード群をお互いに隣接する局所ノード群であると定義した、前記通信ネットワークにおいて、ノードごとに設けられ、局所トポロジー情報から次ホップ情報を求める分散ルーティング処理装置であり、
自分散ルーティング処理装置が設けられているノード(自ノード)からの局所トポロジー情報を入力する入力部と、
前記入力された局所トポロジー情報を用いて前記閾値による閾値秘密分散法により前記閾値以上の個数の分散情報を生成する秘密分散部と、
自ノードが属する局所ノード群内のノード間で、前記閾値以上の個数の分散情報を分散して保持する分散情報格納部と、
前記閾値以上の個数の第1の分散情報を、「前記第1の分散情報とは異なり、且つ、前記閾値以上の個数の第2の分散情報(変換分散情報)であって前記閾値以上の個数の変換分散情報を用いて前記第1の分散情報の元の情報を復元することができる変換分散情報」を構成する要素(変換分散情報構成要素)に変換する分散情報変換部と、
自ノードが属する局所ノード群に隣接する局所ノード群との間で変換分散情報構成要素を交換して変換分散情報を生成する変換分散情報交換部と、
自ノードが属する局所ノード群内の各ノードの分散ルーティング処理装置と連携して、局所トポロジー情報の分散情報から次ホップ情報の分散情報を求めるために必要な所定の関数を分散して計算するSMC(Secure Multi-party computation)を解決するSMC部と、
自ノードが属する局所ノード群内の各ノードの分散ルーティング処理装置と連携して、次ホップ情報の前記閾値以上の個数の分散情報から次ホップ情報を復元する秘密分散復元部と、
前記復元された次ホップ情報を自ノードへ出力する出力部と、
を備えたことを特徴とする分散ルーティング処理装置。
【請求項2】
複数のノードから構成される通信ネットワークであって、前記複数のノードは複数の局所ノード群に分類され、一の前記局所ノード群は一管理者に属するノードの数が閾値秘密分散法における所定の閾値未満であり、一の前記局所ノード群内の全てのノード間には通信路が存在し、2つの前記局所ノード群間に通信路が存在する場合に当該2つの局所ノード群をお互いに隣接する局所ノード群であると定義した、前記通信ネットワークにおいて、ノードごとに、局所トポロジー情報から次ホップ情報を求める分散ルーティング処理を行うためのコンピュータプログラムであって、
自分散ルーティング処理装置が設けられているノード(自ノード)からの局所トポロジー情報を入力する入力ステップと、
前記入力された局所トポロジー情報を用いて前記閾値による閾値秘密分散法により前記閾値以上の個数の分散情報を生成する秘密分散ステップと、
自ノードが属する局所ノード群内のノード間で、前記閾値以上の個数の分散情報を分散して保持する分散情報格納ステップと、
前記閾値以上の個数の第1の分散情報を、「前記第1の分散情報とは異なり、且つ、前記閾値以上の個数の第2の分散情報(変換分散情報)であって前記閾値以上の個数の変換分散情報を用いて前記第1の分散情報の元の情報を復元することができる変換分散情報」を構成する要素(変換分散情報構成要素)に変換する分散情報変換ステップと、
自ノードが属する局所ノード群に隣接する局所ノード群との間で変換分散情報構成要素を交換して変換分散情報を生成する変換分散情報交換ステップと、
自ノードが属する局所ノード群内の各ノードの分散ルーティング処理装置と連携して、局所トポロジー情報の分散情報から次ホップ情報の分散情報を求めるために必要な所定の関数を分散して計算するSMC(Secure Multi-party computation)を解決するSMCステップと、
自ノードが属する局所ノード群内の各ノードの分散ルーティング処理装置と連携して、次ホップ情報の前記閾値以上の個数の分散情報から次ホップ情報を復元する秘密分散復元ステップと、
前記復元された次ホップ情報を自ノードへ出力する出力ステップと、
をコンピュータに実行させるためのコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−216904(P2012−216904A)
【公開日】平成24年11月8日(2012.11.8)
【国際特許分類】
【出願番号】特願2011−79023(P2011−79023)
【出願日】平成23年3月31日(2011.3.31)
【出願人】(000208891)KDDI株式会社 (2,700)
【出願人】(504137912)国立大学法人 東京大学 (1,942)
【Fターム(参考)】