(57)【要約】【課題】特定のノードにおける暗号鍵の消費および枯渇を避けつつ、スループットを維持しながら、システム全体での暗号鍵の消費量を小さくするように、効率的にルーティングを行う。【解決手段】通信装置は、複数の外部装置と接続される。通信装置は、取得部と、選択部と、を備える。取得部は、外部装置が提供可能な暗号鍵のリソースを表すリソース情報を取得する。選択部は、外部装置に到達する複数の経路のうち、リソース情報が表すリソースの経路上のボトルネックと、ホップ数とに基づいて、１の経路を選択する。【選択図】図１
2014103514.tif 000002
【特許請求の範囲】
【請求項１】
複数の外部装置と接続される通信装置であって、
前記外部装置が提供可能な暗号鍵のリソースを表すリソース情報を取得する取得部と、
前記外部装置に到達する複数の経路のうち、前記リソース情報が表すリソースの経路上のボトルネックと、ホップ数とに基づいて、１の経路を選択する選択部と、
を備える通信装置。
【請求項２】
前記リソース情報は、提供可能な前記暗号鍵の生成速度、および、提供可能な前記暗号鍵の保有量の少なくとも一方である、
請求項１に記載の通信装置。
【請求項３】
前記選択部は、複数の前記経路のうち、前記ボトルネックが最良となる経路を選択し、前記ボトルネックが最良となる経路が複数存在する場合は、前記ボトルネックが最良となる複数の経路のうち、ホップ数が小さい経路を選択する、
請求項１に記載の通信装置。
【請求項４】
前記選択部は、複数の前記経路のうち、前記ホップ数が最小となる経路を選択し、前記ホップ数が最小となる経路が複数存在する場合は、前記ホップ数が最小となる複数の経路のうち、ボトルネックが大きい経路を選択する、
請求項１に記載の通信装置。
【請求項５】
前記選択部は、複数の前記経路のうち、前記ボトルネックが大きいほど大きい値となり、前記ホップ数が小さいほど大きい値となるメトリックが最大となる経路を選択する、
請求項１に記載の通信装置。
【請求項６】
前記取得部は、前記外部装置が提供可能な暗号鍵のリソースを表す第１リソース情報を取得し、前記第１リソース情報と異なる時刻に、前記外部装置が提供可能な暗号鍵のリソースを表す第２リソース情報を取得し、
前記選択部は、前記第２リソース情報が表すリソースと前記第１リソース情報が表すリソースとの変化量が閾値以上の場合に、複数の前記経路から１の経路を選択する選択処理を実行する、
請求項１に記載の通信装置。
【請求項７】
暗号鍵を提供可能な複数の通信装置を備える通信システムであって、
前記通信装置それぞれは、
他の前記通信装置が提供可能な暗号鍵のリソースを表すリソース情報を取得する取得部と、
他の前記通信装置に到達する複数の経路のうち、前記リソース情報が表すリソースの経路上のボトルネックと、ホップ数とに基づいて、１の経路を選択する選択部と、を備える、
通信システム。
【請求項８】
複数の外部装置と接続されるコンピュータを、
前記外部装置が提供可能な暗号鍵のリソースを表すリソース情報を取得する取得部と、
前記外部装置に到達する複数の経路のうち、前記リソース情報が表すリソースの経路上のボトルネックと、ホップ数とに基づいて、１の経路を選択する選択部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、通信装置、通信システムおよびプログラムに関する。
【背景技術】
【０００２】
複数のリンクによって相互に接続され、ネットワーク化された複数のノードから構成される鍵共有ネットワークが知られている。各ノードは、リンクによって接続されたノード間で乱数を生成して共有する機能と、生成された乱数を暗号鍵（以下、リンク鍵）として利用して、リンク上で暗号通信を行う機能とを備える。また、ノードのうちの幾つかは、リンクとは独立に乱数である暗号鍵（以下、アプリケーション鍵）を生成する機能と、別のノードに対し、生成したアプリケーション鍵をリンクを介して送信する機能と、を備える。
【０００３】
鍵共有ネットワークにおけるアプリケーションは、ノードからアプリケーション鍵を取得し、これを暗号鍵として利用して、別のアプリケーションとの間で暗号通信を行う機能を備える。このときの暗号通信は、鍵共有ネットワークとは異なる、インターネット等のネットワーク（以下、アプリケーションネットワーク）によってなされてよい。また、ノードとアプリケーションとは一体として実現されてもよい。ノードとアプリケーションとを独立した端末として構成し、両端末の間でアプリケーション鍵を送受信するようにしてもよい。
【０００４】
ノードにおいて、リンクによって接続されたノード間で乱数（リンク鍵）を生成・共有する機能は、例えば、一般に量子暗号または量子鍵配送（ＱＫＤ（Quantum  Key  Distribution））と呼ばれる技術により実現する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Dianati,  M.,  Alleaume,  R.,  Gagnaire,  M.  and  Shen,  X.  （2008）,    Architecture  and  protocols  of  the  future  European  quantum  key  distribution  network.  Security  and  Communication  Networks,  1:  57-74.  DOI:  10.1002/sec.13
【非特許文献２】Kollmitzer  C.,  Pivk  M.  （Eds.）,  Applied  Quantum  Cryptography,  Lect.  Notes  Phys.  797  （Springer,  Berlin  Heidelberg  2010）,  p155-p168,  DOI  10.1007/978-3-642-04831-9
【発明の概要】
【発明が解決しようとする課題】
【０００６】
量子鍵配送では、鍵共有ネットワークの中のノード間でアプリケーション鍵を共有するためのルーティング、すなわち、複数のノードを介したアプリケーション鍵の転送が行われる。従って、量子暗号通信システムでは、アプリケーション鍵の転送に用いられるリンク鍵の消費および枯渇を避けつつ、効率的にルーティングを行うことが望ましい。
【課題を解決するための手段】
【０００７】
実施形態の通信装置は、複数の外部装置と接続される。通信装置は、取得部と、選択部と、を備える。取得部は、外部装置が提供可能な暗号鍵のリソースを表すリソース情報を取得する。選択部は、外部装置に到達する複数の経路のうち、リソース情報が表すリソースの経路上のボトルネックと、ホップ数とに基づいて、１の経路を選択する。
【図面の簡単な説明】
【０００８】
【図１】実施形態における量子暗号通信システムの構成図。
【図２】鍵共有ネットワークでの暗号鍵の共有手順を示す図。
【図３】ＯＳＰＦの手順の一例を示す図。
【図４】メトリックについて説明するための図。
【図５】パスのホップ数の比較例を示す図。
【図６】本実施形態におけるノードのブロック図。
【図７】実施形態のルーティングアルゴリズムを説明するための図。
【図８】実施形態のルーティングアルゴリズムを説明するための図。
【図９】実施形態のルーティングアルゴリズムを説明するための図。
【図１０】実施形態のルーティングアルゴリズムを説明するための図。
【図１１】実施形態のルーティングアルゴリズムを説明するための図。
【図１２】本実施形態におけるパス選択処理のフローチャート。
【図１３】ネットワーク構成例を示す図。
【図１４】ルーティングの手順を示す図。
【図１５】ルーティングの手順を示す図。
【図１６】ルーティングの手順を示す図。
【図１７】ルーティングの手順を示す図。
【図１８】ルーティングの手順を示す図。
【図１９】ルーティングの手順を示す図。
【図２０】ルーティングの手順を示す図。
【図２１】ルーティングの手順を示す図。
【図２２】ルーティングの手順を示す図。
【図２３】ルーティングの手順を示す図。
【図２４】ルーティングの手順を示す図。
【図２５】ルーティングの手順を示す図。
【図２６】変形例における量子暗号通信システムの構成図。
【図２７】本実施形態にかかる通信装置のハードウェア構成図。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、この発明にかかる通信装置の好適な実施形態を詳細に説明する。
【００１０】
量子鍵配送で暗号鍵を共有するための経路（パス）を決定するプロトコル（ルーティングプロトコル）としてはＯＳＰＦ（Open  Shortest  Path  Fast）が用いられることがある。ＯＳＰＦは、ルーティング（経路制御）を行うためのメトリックとして距離（各パスに含まれるリンクのコストの和）を用いる。
【００１１】
量子暗号通信システムの各ノードは、鍵共有ネットワークを利用してアプリケーション鍵の共有を行う。ノードは、アプリケーション鍵をリンク鍵で暗号化して交換する際、リンク鍵を消費する。ノードは、リンク鍵をワンタイムパッドで利用するため、すなわち、一度利用したリンク鍵を捨てるためである。従って、共有しているリンク鍵の量またはリンク鍵を共有する速度以上の速さで、アプリケーション鍵を交換および中継することはできない。複数のノードを介してアプリケーション鍵を交換する場合、アプリケーション鍵の共有速度は、リンク鍵の最も少ないリンク、または、リンク鍵の共有速度が最も低いリンクに律速される。量子暗号通信システムにおける暗号通信のスループットは、このようなリンクがボトルネックとなり制約を受ける。または、リンク鍵が枯渇したリンクでは通信そのものができなくなる。量子暗号通信システムでは、できるだけこのようなボトルネックとなるリンクを避けて、効率的なパスを選択してアプリケーション鍵を共有することが望まれる。
【００１２】
一方、システム全体のリンク鍵の消費量に着目すると、多くのリンクを経由するパスほどリンク鍵の消費量が多いと言える。リンク鍵はアプリケーション鍵を共有する際に用いられるため、アプリケーションのスループットを決定する貴重なシステムリソースである。このため、システム全体としては、経由するリンクを少なくし、リンク鍵の消費量を抑えることが望ましい。
【００１３】
このように、量子暗号通信システムでは、リンク鍵をシステムにおける制約リソース（鍵リソース）と考えると、鍵の消費および枯渇を避けつつ、効率的にルーティングを行うことが望ましい。
【００１４】
そこで、本実施形態にかかる通信システムは、リンク鍵の消費をできるだけ抑制し、効率的にアプリケーション鍵の共有を行うためのルーティングアルゴリズムを実現する。これにより、特定のノードにおけるリンク鍵の枯渇を避けつつ、スループットを維持しながら、システム全体でのリンク鍵の消費量を小さくすることが可能となる。
【００１５】
例えば、本実施形態にかかる通信システムは、アプリケーションへ提供可能な暗号鍵のリソース（鍵リソース）を表すリソース情報を算出するアルゴリズムをルーティングプロトコルの一部として利用する。これにより、経路選択（パス選択）のメトリックは鍵リソースのボトルネック（ボトルネックを示す値）となり、鍵枯渇を回避するパス選択となる。本実施形態にかかる通信システムは、さらにホップ数をメトリックとして採用する。これにより、リンク鍵の消費量を抑える経路を選択できる。
【００１６】
なお、ボトルネックを示す値とは、例えばボトルネックとなる部分のリソースの値である。後述するように、例えばパスに含まれる各リンクのコスト（リソース）の最小値が、ボトルネックを示す値となる。以下では、ボトルネックを示す値を単にボトルネックという場合がある。
【００１７】
鍵共有ネットワークを構成する各ノードは、利用可能な鍵リソース情報、およびネットワーク情報を相互に交換する。各ノードは、アプリケーション鍵を共有するためのパスに関し、鍵リソースのボトルネック、および、ホップ数を算出する。各ノードは、鍵リソースのボトルネックおよびホップ数をメトリックとして、以下の述べるアルゴリズムを用いて、鍵の生成速度が遅く、鍵保有量が少ないようなリンクの鍵枯渇を回避し、同時にシステム全体における鍵消費を抑制するパスを選択する。
【００１８】
なお、ボトルネックの回避、および、ホップ数の削減は、異なるメトリックであり、これを評価する順序や重み付けにより、いくつかのバリエーションがありえる。ノードは、例えば以下の（Ａ）または（Ｂ）の手順により、あるリンクのリンク鍵の枯渇を避け、システム全体における鍵消費を抑制するパスを選択する。
（Ａ）メトリック［鍵リソースのボトルネック］が同一のパスに対して、メトリック［ホップ数］を考慮したパス選択を行う。
（Ｂ）ボトルネックおよびホップ数の両方を考慮した単一のメトリックを用いてパス選択を行う。
【００１９】
さらに、鍵リソースの大きな変動が発生したことを契機としてルーティングプロトコルの再実行を行うように構成してもよい。
【００２０】
なお、メトリックの一例として鍵リソースのボトルネックとパスのホップ数とを採用したが、それ以外の要素もメトリックとなり得る。また、メトリックの要素として１つ目にボトルネックを採用し、次の要素としてホップ数を評価したが、これらを評価する順序は逆であっても構わない。すなわち、メトリックとしてパスのホップ数によってルーティングを行い、ホップ数が等しい場合にボトルネックを評価してもよい。そして、鍵リソースのボトルネックとパスのホップ数のそれぞれを、メトリックに反映させる度合いを調整することも可能である。これは、例えば鍵リソースのボトルネックとパスのホップ数とを重み付けしてメトリックを計算することで可能となる。
【００２１】
鍵リソースのボトルネックを考慮することは、アプリケーション鍵を共有する速度（スループット）、または、あるリンクにおけるリンク鍵の枯渇に関する回避性向に関係する。また、ホップ数を考慮することはシステム全体の鍵の消費量に関係する。量子暗号通信システムを適応するアプリケーションに応じて、メトリックを使い分けるとよい。
【００２２】
図１は、本実施形態における量子暗号通信システムの構成例を示す図である。なお、図１は、ノードとアプリケーションとが独立に実現される場合の一例である。通信システムは、通信装置としてのノード１００ａ〜１００ｅと、アプリケーション２００ａ、２００ｂと、を含む。ノード１００ａ〜１００ｅは、鍵共有ネットワーク５０２によりリンク鍵（リンク鍵３０１〜３０４）を共有する。アプリケーション２００ａ、２００ｂは、アプリケーションネットワーク５０１によりアプリケーション鍵（アプリケーション鍵４０１〜４０２）を用いた暗号通信を行う。
【００２３】
ノード１００ａ〜１００ｅを区別する必要がない場合は、単にノード１００という場合がある。アプリケーション２００ａ、２００ｂを区別する必要がない場合は、単にアプリケーション２００という場合がある。ノード１００の個数は５に限られるものではない。また、アプリケーション２００の個数は２に限られるものではない。
【００２４】
ノード１００ａ〜１００ｅは、上述のように、対向ノードとの間で乱数を生成して共有する機能と、生成した乱数をリンク鍵として利用して、鍵共有ネットワーク５０２上で暗号通信を行う機能とを備える。ノード１００は、リンクとは独立に乱数を生成する機能と、別のノードに対して生成した乱数を送信する機能とを備えてもよい。
【００２５】
図２は、鍵共有ネットワークでの暗号鍵の共有手順の一例を示す図である。ノード１００は、他のノード１００との間でリンク鍵を生成する。図２では、ノード１００ａとノード１００ｃとの間でリンク鍵３０２が共有される例、および、ノード１００ｃとノード１００ｅとの間でリンク鍵３０３が共有される例が示されている。
【００２６】
この後、各ノード１００は、アプリケーション鍵を共有するためのルーティングを行う。そして、各ノード１００は、ルーティングにより決定されたパスにおいて、リンク鍵を用いてアプリケーション鍵を共有（転送）する。図２では、ノード１００ａおよびノード１００ｅの間でアプリケーション鍵が共有され、それぞれアプリケーション鍵４０１および４０２が提供される例が示されている。
【００２７】
次に、既存のルーティングプロトコルであるＯＳＰＦを利用して、鍵共有ネットワークのルーティングテーブルを決定する手順について説明する。ＯＳＰＦでは、ノード１００はリンクステートと呼ばれるメッセージを送信し、ノード１００が接続しているリンクの状態、そのリンクのネットワークアドレス、および、リンクごとのコストなどの情報を他のノード１００と共有する。リンクステートには、あるノード１００が、他のいずれのノード１００に、どのように接続しているか、という情報（ネットワーク情報）が含まれる。リンクステートを受け取った各ノード１００は、ネットワーク情報に基づいて、ネットワーク構成を把握する。そして、ネットワーク構成を表す表（リンクステートデータベース）を構築する。各ノード１００は、リンクステートデータベースからダイクストラ（Ｄｉｊｋｓｔｒａ）アルゴリズムを用いて、自身を始点とした最短パスツリーを作成し、ルーティングテーブルを作成する。
【００２８】
図３は、ＯＳＰＦの手順の一例を示す図である。各ノード１００は、図３の（１）〜（４）に示すような手順でＯＳＰＦによってルーティングを行う。
（１）他のノード１００との間でリンクステートを共有する。リンクステートは、例えば接続しているリンクの状態、ネットワークアドレス、および、リンクごとのコストを含む。
（２）各ノード１００は、リンクステートを参照し、ネットワーク構成を表す表（リンクステートデータベース）を作成する。
（３）リンクステートデータベースからダイクストラアルゴリズムを用いて、自身を始点とした最短パスツリーを作成する。
（４）最短パスツリーからルーティングテーブル（例えばＩＰアドレスとネクストホップとを対応づけたテーブル）を作成する。
【００２９】
以上が、鍵共有ネットワークにおける基本的なルーティングテーブル決定の手順である。本実施形態は、上述の手順のうち、主に（３）の最短パスツリーの作成に関する。それ以外の（１）、（２）および（４）は、従来と同様の手順で実行できる。ただし、後述のとおり、（１）の手順によって共有される情報の一部に、本実施形態特有の情報が含まれる。
【００３０】
ここで、本実施形態のルーティングプロトコルにおけるメトリック算出方法について説明する。初めに、鍵共有ネットワークを構成する各リンクと各ノード１００に対応づけられるデータは以下のとおりとする。
リンクに対応づけられるデータ：
・コスト（リソース情報）：鍵生成速度
・コスト（リソース情報）：鍵保有量
ノード１００に対応づけられるデータ：
・ネットワークの構成を表すデータベース（リンクステートデータベース）
・最短パスツリーとしての確定情報
・始点から他のノード１００までのボトルネック
・始点から他のノード１００までのホップ数
・ネクストホップ
【００３１】
本実施形態では、リンクに対応づけられるデータとして、リンク鍵の生成速度（鍵生成速度）、および、リンク鍵の保有量（鍵保有量）の２種類のコスト（リソース情報）を用いる。鍵生成速度は、ノード１００間で量子鍵配送を行うことでリンク鍵を共有する速度を表す。鍵生成速度は、リンクに接続されて動作するノード１００の設定パラメータや環境の影響によって、リンクごとに異なる。鍵保有量は、複数のノード１００間で量子鍵配送を行うことで共有した鍵のうち、まだ使用していない鍵の量である。鍵保有量は、量子鍵配送を行うことによって増加し、鍵ルーティングでリンク鍵を利用することによって消費される（減少する）。本実施形態では、リンクのコストとしてこれら２つを扱う。以下では、これらを鍵リソースと総称する。なお、鍵リソースはこれに限られるものではない。例えば、鍵生成速度のみ、または、鍵保有量のみを鍵リソースとして用いてもよい。
【００３２】
上記のように、各ノード１００は、最短パスを計算するときに必要となる情報として、エリア内のネットワークの構成（接続関係）を表すリンクステートデータベースを持っている。また、各ノード１００は、最短パスツリーとしての確定情報、始点から他の各ノード１００までの各リンクのコスト（リソース情報）、始点から他の各ノード１００までのホップ数、および、ネクストホップを持つ。
【００３３】
最短パスツリーとしての確定情報は、外部装置（他のノード１００）ごとに、当該ノード１００までの最短パスが確定しているかどうかを表す。確定していない場合は、そのノード１００までのパスは最短パスの候補（最短パス候補）に過ぎないことを表す。
【００３４】
始点から他のノード１００までのボトルネックは、他のノード１００に到達するための最短パス候補を経由するときのリンクのコスト（リソース情報）のボトルネックを表す。始点から他のノード１００までのホップ数は、他のノード１００に到達するための最短パス候補を経由するときのホップ数を表す。始点から他のノード１００までの各リンクのコスト、および、始点から他のノード１００までのホップ数は、他のノード１００ごとに保持される。
【００３５】
ネクストホップは、最短パスの候補となるネクストホップを表す。
【００３６】
ＯＳＰＦにおけるダイクストラアルゴリズムでは、メトリックは距離であった。一方、本実施形態の鍵消費抑制ルーティングプロトコルでは、距離ではなく、パスにおけるボトルネックをメトリックの算出に用いる。アプリケーション鍵を共有するノード１００間の、鍵生成速度と鍵保有量とを一定の値以上に保ち、アプリケーションネットワークにおけるデータ通信速度に支障が生じないようにするために、ボトルネックをメトリックとして導入する。
【００３７】
図４は、メトリックについて説明するための図である。図４を例に、メトリックとしての距離およびボトルネックについて説明する。図４のリンクに付された数値がコストを表す。
【００３８】
距離をメトリックとする場合、図４のｓからｔまでのパスに含まれる各リンクのコストの和がパスのメトリック（距離）となる。ボトルネックをメトリックとする場合、ｓからｔまでのパスに含まれる各リンクのコストの最小値がメトリック（ボトルネック）となる。
【００３９】
図４の例では、距離は、パスに含まれる各リンクのコストの和なので、４＋３＋８＝１５となる。すなわち、このパスのメトリックは１５となる。一方、ボトルネックは、パスに含まれる各リンクのコストの最小値なので、ｍｉｎ｛４，３，８｝＝３となる。すなわち、このパスのメトリックは３となる。
【００４０】
上述のように、ＯＳＰＦでは、メトリックを距離としてダイクストラアルゴリズムを行うが、鍵消費抑制ルーティングプロトコルではメトリックにボトルネックを採用してルーティングの処理を行う。しかし、仮にボトルネックのみをメトリックとすると、同一のボトルネックを持つパスが複数含まれるときの判断基準が存在しないため、パスの評価順序などの実装や対象ネットワークの形態によっては、ホップ数が多い遠回りのパスを選択する可能性がある。すなわち、システムのリンク鍵消費量を増大させる可能性がある。
【００４１】
図５は、ボトルネックをメトリックとして得られるパスのホップ数の比較例を示す図である。図５では、ノードに振られた番号がノード番号を表し、リンクに振られた番号がリンクのコストを表す。以下ではノード番号ｎ（ｎは１以上の整数）のノードをノードｎと表す場合がある。
【００４２】
ノード１→ノード２→ノード３→ノード４→ノード５→ノード６のパスＡは、ボトルネックが３、ホップ数が５となる。一方、ノード１→ノード３→ノード５→ノード６のパスＢも、ボトルネックは３であるもののホップ数は３となる。パスに含まれる各リンクでボトルネック分のリンク鍵を消費すると考えると、パスＡでは１５のリンク鍵を消費する。これに対し、パスＢでは９のリンク鍵の消費に抑えることができる。よって、ホップ数の多いパスＡに比べてホップ数の少ないパスＢの方がシステム全体の鍵消費を抑えることができる。
【００４３】
そこで、メトリックとしてパスのボトルネックに加え、送信元のノード１００からあて先のノード１００までのパスのホップ数を追加する。こうすることで、ボトルネックが等しいパスの中で、さらにホップ数が少ないパスが選ばれることになり、システム全体の鍵消費をより抑制するルーティングが可能となる。
【００４４】
図６は、本実施形態におけるノード１００の機能構成例を示すブロック図である。ノード１００は、制御部１０１と、管理部１０２と、プラットフォーム部１０３と、通信部１０４と、ルーティング処理部１１０とを備えている。ルーティング処理部１１０は、記憶部１２１と、取得部１１１と、カウント部１１２と、算出部１１３と、選択部１１４とを備えている。
【００４５】
記憶部１２１は、ルーティングテーブル、および、各ノード１００のリソース情報などの各種情報を記憶する。例えば、記憶部１２１は、ノード１００ごとに、当該ノード１００から取得されたリソース情報（鍵生成速度、鍵保有量）を記憶する。
【００４６】
取得部１１１は、他のノード１００から、当該ノード１００が提供可能なリンク鍵のリソース情報、および、ネットワーク情報を取得する。
【００４７】
カウント部１１２は、例えばネットワーク情報を参照し、他のノード１００に到達するまでの最短パス候補のホップ数を求める。
【００４８】
算出部１１３は、ボトルネックとホップ数とからメトリックを算出する。以下に、上述した（Ａ）および（Ｂ）それぞれの、より具体的なメトリック算出方法の例を示す。
（Ａ１）ボトルネックとホップ数を別の領域に用意し、ボトルネックが等しい場合にホップ数を比較する。
（Ｂ１）ボトルネック（ＢＮ）とホップ数（Ｈｏｐ）とを含むメトリック（ｍｅｔｒｉｃ）を算出する１つの算出式を作っておく。以下に算出式の例を２つ示す。
ｍｅｔｒｉｃ＝ＢＮ＋１／（Ｈｏｐ）・・・（Ｅ１）
ｍｅｔｒｉｃ＝ＢＮ＋（１−Ｈｏｐ／１０）・・・（Ｅ２）
【００４９】
例えばＢＮ＝４、Ｈｏｐ＝２のとき、式Ｅ１では、ｍｅｔｒｉｃ＝４＋１／２＝４．５となる。例えばＢＮ＝４、Ｈｏｐ＝２のとき、式Ｅ２では、ｍｅｔｒｉｃ＝４＋（１−２／１０）＝４．８となる。
【００５０】
（Ａ１）では、各ノード１００までのボトルネックとホップ数とをそれぞれ保持し、ボトルネックが等しい場合にのみホップ数の比較を行う。（Ｂ１）では、メトリックを表す算出式を予め作っておき、各ノード１００までのボトルネックとホップ数とからメトリックを算出しておく。
【００５１】
（Ａ１）および（Ｂ１）でメトリック算出の結果は同じになる。（Ｂ１）を利用した場合、既存のダイクストラアルゴリズムと同様に、利用するメトリックの種類が一種類となる。このため、既存の実装の多くを再利用できる可能性がある。ただし、（Ｂ１）を利用した場合、正確なメトリック算出が可能なのは、ホップ数が１０以下である場合に限られる点に注意が必要である。
【００５２】
なお、上記メトリックの算出式は一例であり、これらに限られるものではない。例えば、ボトルネックとホップ数とに重みを付けて足し合わせた結果をメトリックとする他の式を用いてもよい。この場合、ボトルネックおよびホップ数にかかる係数（重み）は任意である。
【００５３】
選択部１１４は、外部装置（他のノード１００）に到達する複数のパス候補から、メトリックに基づいて１のパス（メトリックが最良となるパス）を選択する。
【００５４】
制御部１０１は、ノード１００で行われる処理の制御を行う。例えば、制御部１０１は、各構成部の起動を担う。
【００５５】
管理部１０２は、ノード１００の接続しているリンクの鍵生成速度や鍵保有量などの鍵リソースを管理する。
【００５６】
プラットフォーム部１０３は、ノード１００上の他の構成要素の管理、動作に必要なコンピュータのオペレーティングシステム機能、基本的なネットワーク機能、および、セキュリティ機能等を提供する。
【００５７】
通信部１０４は、接続されている他のノード１００との通信を行う。通信部１０４は、リンクによって接続されたノード１００の間で、量子暗号を用いて、乱数を生成してから共有し、生成した乱数をリンク鍵として管理する。また、通信部１０４は、リンクによって接続された他のノード１００との間でデータ通信を行う際に他の構成部から利用される。通信部１０４を介して他のノード１００との間で交換されるデータには、アプリケーション鍵のデータなどがある。これらのデータは通常、ノード１００が管理するリンク鍵を用いて暗号通信により交換される。
【００５８】
上記各部（制御部１０１、管理部１０２、プラットフォーム部１０３、通信部１０４、ルーティング処理部１１０）は、例えば、ＣＰＵ（Central  Processing  Unit）などの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、ＩＣ（Integrated  Circuit）などのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。また、記憶部１２１は、ＨＤＤ（Hard  Disk  Drive）、光ディスク、メモリカード、ＲＡＭ（Random  Access  Memory）などの一般的に利用されているあらゆる記憶媒体により構成することができる。
【００５９】
以上、本実施形態におけるノード１００の構成について説明した。ただし、上記説明は一例である。
【００６０】
次に、本実施形態における、鍵消費抑制ルーティングプロトコルについて詳細を説明する。以下が、鍵消費抑制ルーティングプロトコルの基本シーケンスとなる。ここでは、ノード１００間でリンクステートを共有し、ネットワーク構成を把握した後、ルーティングテーブルを作成する前の最短パスツリーを作成する処理（Ｓ１）〜（Ｓ９）について示す。以下では、装置（通信装置）としての各ノード１００に対応する、最短パスツリー（木構造）のノード（節）を表すために、符号を付さずに「ノード」と記載する場合がある。
（Ｓ１）すべてのノードに初期化のラベルを設定する。
（Ｓ２）始点に接続されているすべてのノードに対して、ボトルネックを求める。
（Ｓ３）始点に接続されているノードの中でボトルネックが最大であるノードの値を確定する。
（Ｓ４）確定したノードに接続されているすべてのノードに対して、始点からのパス中のボトルネックを新たに算出する。
（Ｓ５）新たに算出したボトルネックが、保持するボトルネックよりも大きい場合はボトルネックを更新し、新たなパスを保持する。そして、以前のパスは使用しないものとして削除する。
（Ｓ６）保持するボトルネックが、新たに算出したボトルネックよりも大きい場合は、現在のボトルネックとパスを保持する。新たに算出したパスは使用しないものとして削除する。
（Ｓ７）新たに算出したボトルネックと保持するボトルネックが等しい場合は、そのノードまでの各パスのホップ数を求め、ホップ数が少ない方のパスを保持する。
（Ｓ８）確定していないノードの中で、始点からのボトルネックが最も大きいノードの値を確定する。
（Ｓ９）すべてのノードの値が確定するまで（Ｓ４）〜（Ｓ８）を繰り返す。
【００６１】
次に、本実施形態のルーティングアルゴリズムを示す。このアルゴリズムは、ＯＳＰＦで利用されるダイクストラアルゴリズムでメトリックとして扱われている距離の代わりに、ボトルネックとホップ数とをメトリックとしたアルゴリズムである。まず、本アルゴリズムで用いる記法を説明する。
ｓ：始点
Ｖ：グラフ全体の点の集合
ＶＰ：ボトルネックが確定した点の集合
Ｖ＼ＶＰ：ボトルネックが未確定の点の集合
ＢＮ［ｎ］：点ｎまでのボトルネック
ｈｏｐ［ｎ］：点ｎまでのホップ数
ｃｏｓｔ［ｌ］：辺ｌのコスト
ｐａｔｈ［ｎ］＝ｌ：点ｎへのパスが辺ｌである
【００６２】
次に本実施形態のルーティングアルゴリズムの例を説明する。
（Ｓ１１）始点ｓを選び、ＶＰ：＝φ、ＢＮ［ｓ］：＝０，ｈｏｐ［ｓ］：＝０（ｐａｔｈ［ｓ］：＝０）とする。ｓ以外の点ｖに対しては、ＢＮ［ｖ］：＝−１，ｈｏｐ［ｖ］：＝０（ｐａｔｈ［ｖ］：＝−１）とする。なお、ｖはＶ＼｛ｓ｝に含まれないものとする。
（Ｓ１２）Ｖ＝ＶＰとなるまで以下を繰り返す。
（Ｓ１２ａ）ＢＮ［ｗ］＝ｍａｘ｛ＢＮ［ｖ］｜ｖ∈Ｖ＼ＶＰ｝となる点ｗを求める（ボトルネックが未確定の点の中でボトルネックの値が最大の点ｗを求める）。
（Ｓ１２ｂ）ＶＰ：＝ＶＰ  ∪  ｛ｗ｝とする（ボトルネックが確定した点の集合に点ｗを含める）。
ｗを始点とする各辺ｅ＝（ｗ，ｖ）に対して、以下の処理を実行する。
ｉｆ  ＢＮ［ｗ］＞ｃｏｓｔ（ｅ）＞ＢＮ［ｖ］
ｔｈｅｎ  ＢＮ［ｖ］＝ｃｏｓｔ（ｅ），
ｈｏｐ［ｖ］：＝ｈｏｐ［ｗ］＋１  （ｐａｔｈ（ｖ）：＝ｅ）
ｉｆ  ｃｏｓｔ（ｅ）＞ＢＮ［ｗ］＞ＢＮ［ｖ］
ｔｈｅｎ  ＢＮ［ｖ］＝ＢＮ［ｗ］，
ｈｏｐ［ｖ］：＝ｈｏｐ［ｗ］＋１  （ｐａｔｈ（ｖ）：＝ｅ）
（もし、点ｗまでのボトルネックと辺ｅのコストが点ｖよりも大きければ更新する）
ｉｆ  ＢＮ［ｗ］≧ＢＮ［ｖ］＝ｃｏｓｔ（ｅ）  ａｎｄ
ｈｏｐ［ｖ］＞ｈｏｐ［ｗ］＋１
ｔｈｅｎ  ＢＮ［ｖ］＝ｃｏｓｔ（ｅ），
ｈｏｐ［ｖ］：＝ｈｏｐ［ｗ］＋１  （ｐａｔｈ（ｖ）：＝ｅ）
ｉｆ  ｃｏｓｔ（ｅ）＞ＢＮ［ｖ］＝ＢＮ［ｗ］  ａｎｄ
ｈｏｐ［ｖ］＞ｈｏｐ［ｗ］＋１
ｔｈｅｎ  ＢＮ［ｖ］＝ＢＮ［ｗ］，
ｈｏｐ［ｖ］：＝ｈｏｐ［ｗ］＋１  （ｐａｔｈ（ｖ）：＝ｅ）
（もし、点ｗまでのボトルネックと辺ｅからのパスのボトルネックが等しければ、ホップ数を比較する。点ｗからのホップ数が点ｖの保持するホップ数よりも小さければ更新する）
【００６３】
ここで、上記アルゴリズムの（Ｓ１２ｂ）について図７〜図１１で説明する。送信元ノードをｗ、あて先ノードをｖとするリンクｅ＝（ｗ，ｖ）を考える。
【００６４】
図７は、ＢＮ［ｗ］＞ｃｏｓｔ（ｅ）＞ＢＮ［ｖ］のとき、ＢＮ［ｖ］＝ｃｏｓｔ（ｅ），ｈｏｐ［ｖ］：＝ｈｏｐ［ｗ］＋１  （ｐａｔｈ（ｖ）：＝ｅ）となる例を示す図である。図７は、ノードｗまでのボトルネックが８、ノードｗを経由せずにノードｖまで到達するパスのボトルネックが４であり、リンクｅのコストが６である例を示す。ノードｖまでのボトルネックは、現時点のボトルネック４よりも、新たにつながるリンクｅを含むパスの方が良い（大きい）。このため、リンクｅがボトルネックとなりボトルネックを示す値は６となる。このように、リンクのコストが送信元ノードのボトルネックよりも小さい場合は、リンクのコストで、あて先ノードまでのボトルネックを更新する。
【００６５】
図８は、ｃｏｓｔ（ｅ）＞ＢＮ［ｗ］＞ＢＮ［ｖ］のとき、ＢＮ［ｖ］＝ＢＮ［ｗ］，ｈｏｐ［ｖ］：＝ｈｏｐ［ｗ］＋１  （ｐａｔｈ（ｖ）：＝ｅ）となる例を示す図である。図８は、ノードｗまでのボトルネックが６、ノードｗを経由せずにノードｖまで到達するパスのボトルネックが４であり、リンクｅのコストが８である例を示す。ノードｖまでのボトルネックは、現時点のボトルネック４よりも新たにつながるリンクｅを含むパスの方が良い（大きい）。一方、リンクｅのコスト８はボトルネックではない（ノードｗまでのボトルネック６より大きい）。このため、ノードｗまでのボトルネックと同様に、ノードｖまでのボトルネックは６となる。このように、送信元ノードまでのボトルネックが、新たにつながるリンクのコストよりも小さい場合は、送信元ノードまでのボトルネックで、あて先ノードまでのボトルネックを更新する。
【００６６】
図９は、あて先ノードまでのボトルネックを更新しない例を示す図である。図９のように、ノードｗまでのボトルネック、リンクｅのコスト、および、ノードｖまでのボトルネックを比較して、ノードｗを経由しないパスでノードｖまで到達するパスのボトルネックが最も大きい場合は、リンクｅを含むパスは最短パスとなりえないのでボトルネックは更新しない。
【００６７】
図１０は、ＢＮ［ｗ］≧ＢＮ［ｖ］＝ｃｏｓｔ（ｅ）かつｈｏｐ［ｖ］＞ｈｏｐ［ｗ］＋１のとき、ＢＮ［ｖ］＝ｃｏｓｔ（ｅ），ｈｏｐ［ｖ］：＝ｈｏｐ［ｗ］＋１  （ｐａｔｈ（ｖ）：＝ｅ）となる例を示す図である。図１０に示すように、ノードｖまでのボトルネックとリンクｅのコストとが６で等しく、ノードｗまで到達するパスのボトルネックが６よりも大きい８である場合は、ホップ数を比較する。図１０に示すように、ノードｗまでのホップ数が２でノードｖまでのホップ数が５とする。この場合、ノードｗからリンクｅを経由してノードｖまで到達しても、ホップ数は２＋１＝３となり、ノードｖまでのホップ数５よりも小さくなる。このため、ノードｖまでのパスをリンクｅを経由するパスに更新する。
【００６８】
図１１は、ｃｏｓｔ（ｅ）＞ＢＮ［ｖ］＝ＢＮ［ｗ］かつｈｏｐ［ｖ］＞ｈｏｐ［ｗ］＋１のとき、ＢＮ［ｖ］＝ＢＮ［ｗ］，ｈｏｐ［ｖ］：＝ｈｏｐ［ｗ］＋１  （ｐａｔｈ（ｖ）：＝ｅ）となる例を示す図である。図１１に示すように、ノードｖまでのボトルネックとノードｗまでのボトルネックが６で等しく、リンクｅのコストが６よりも大きい８である場合は、ホップ数を比較する。図１１に示すように、ノードｗまでのホップ数が２でノードｖまでのホップ数が５とする。この場合、ノードｗからリンクｅを経由してノードｖまで到達しても、ホップ数は２＋１＝３となり、ノードｖまでのホップ数５よりも小さくなる。このため、ノードｖまでのパスをリンクｅを経由するパスに更新する。
【００６９】
次に、このように構成された本実施形態にかかるノード１００によるパス選択処理について図１２を用いて説明する。図１２は、本実施形態におけるパス選択処理の一例を示すフローチャートである。
【００７０】
まず、取得部１１１は、他のノード１００から、当該ノード１００が提供可能なリンク鍵のリソース情報、および、ネットワーク情報を取得する（ステップＳ１０１）。
【００７１】
上記（Ａ）（または（Ａ１））の手順を適用する場合は、カウント部１１２が、他のノード１００に到達するまでの最短パス候補のホップ数をカウントする。ホップ数は、ボトルネックが等しい複数のパス候補が得られた場合に参照される。上記（Ｂ）（または（Ｂ１））の手順を適用する場合は、算出部１１３が、ボトルネックとホップ数とを含むメトリックを算出する。
【００７２】
次に、選択部１１４は、上述の（Ａ）および（Ｂ）のいずれかの手順に従い、他のノード１００それぞれに対して、当該ノード１００との間のパスのうち、コスト（ボトルネックとホップ数とを考慮したコスト）が最良となるパスを選択する（ステップＳ１０２）。
【００７３】
ルーティング処理部１１０は、選択されたパス（最短パスツリー）から、ルーティングテーブルを作成し、記憶部１２１に保存する（ステップＳ１０３）。
【００７４】
次に、選択部１１４によるパス選択処理（ルーティング）の具体例について説明する。以下では、図１３のようなネットワークを例に説明する。図１４から図２５は、図１３のネットワークの場合のルーティングの手順の一例を示す図である。
【００７５】
ノード内に振られた番号（丸で囲まれた番号）はノード番号を示す。リンクに振られた番号（四角で囲まれた番号）はリンクのコストを示す。リンクのコストは、例えば、鍵生成速度および鍵保有量を示す。ノードの近くに書かれた２つの数字は、そのノードに到達するためのコストを表す。本実施形態では、このコストを［ボトルネック−ホップ数］の形式で表現している。また、二重丸のノードは、そのノードまでの最短パスが確定したノードを表す。
【００７６】
ここでは、ノード間でリンクステートを共有し、ネットワーク構成を把握した後、ルーティングテーブルを作成する前の最短パスツリーを作成する処理について示す。例として片方向のネットワークを説明するが、双方向ネットワークであっても同様にして最短パスツリーを求めることができる。
【００７７】
まず、各ノードまで到達するためのコストを−１に初期化する（図１４）。なお初期値−１は一例であり、コストが正数であることを考えると、いかなる負数を初期値としてもよい。始点のノードであるノード１（以下、始点ノード１ともいう）は、コストがボトルネック０、ホップ数０（「０−０」）として、最短パスが確定される。
【００７８】
ノード１に接続されているノード２は、ボトルネック３、ホップ数１とする。また、ノード３は、ボトルネック６、ホップ数１とする（図１５）。ノード２およびノード３のうち、ボトルネックが最良のノード３が、ボトルネック６、ホップ数１として、最短パスが確定される（図１６）。
【００７９】
確定ノードはノード１およびノード３となり、始点ノード１からあて先ノード３へのネクストホップはノード３となる。
【００８０】
ノード３に接続されているノード２は、ボトルネック５、ホップ数２に更新される。ノード４は、ボトルネック１、ホップ数２に更新される。ノード５は、ボトルネック３、ホップ数２に更新される（図１７）。
【００８１】
コストが最良のノード２は、ボトルネック５、ホップ数２として、最短パスが確定される（図１８）。確定ノードは、ノード１、ノード３、およびノード２となり、始点ノード１からあて先ノード２へのネクストホップはノード３となる。
【００８２】
ノード２に接続されているノード４は、ボトルネック５、ホップ数３に更新される（図１９）。
【００８３】
コストが最良のノード４は、ボトルネック５、ホップ数３として、最短パスが確定される（図２０）。確定ノードは、ノード１、ノード３、ノード２、およびノード４となり、始点ノード１からあて先ノード４へのネクストホップはノード３となる。
【００８４】
ノード４に接続されているノード５は、ボトルネック３、ホップ数４となるが、ホップ数が大きいため更新しない。ノード６は、ボトルネック２、ホップ数４で更新される（図２１）。
【００８５】
コストが最良のノード５は、ボトルネック３、ホップ数２として、最短パスが確定される（図２２）。確定ノードは、ノード１、ノード３、ノード２、ノード４、およびノード５となり、始点ノード１からあて先ノード５へのネクストホップはノード３となる。
【００８６】
ノード５に接続されているノード６は、ボトルネック３、ホップ数３に更新される（図２３）。
【００８７】
最後にノード６が、ボトルネック３、ホップ数３として、最短パスが確定される。確定ノードは、ノード１、ノード３、ノード２、ノード４、ノード５、および、ノード６となり、始点ノード１からあて先ノード６へのネクストホップはノード３となる（図２４）。
【００８８】
最終的にすべてのノードが確定し、最短パスツリーが完成し、ノード１からノード６への最短パスはノード１→ノード３→ノード５→ノード６となる（図２５）。
【００８９】
以上のように、最短パスツリーが求められる。また、構築した最短パスツリーを用いて、ルーティングテーブルが作成される。そして、作成されたルーティングテーブルを参照して、アプリケーション鍵の共有が行われる。
【００９０】
（変形例）
各ノード１００がＯＳＰＦを実行し、それぞれルーティングテーブルを保持する構成では、メトリックが等しいパスが複数存在する場合に、送信元ノードが意図したルートとは異なるルートを選択し、鍵の送信先が実際の最良のパスとは異なることがある。これは、各ノード１００は、送信元ノードからの最良なパスではなく、各ノード１００自身からあて先ノードまでの最良なパスを選択するためである。
【００９１】
このような状況が好ましくない場合は、送信元ノードがソース・ルーティングの手法で鍵を送り、予め鍵を送るパスを指定しておくことで、送信元ノードが決定したパスを選択させることができる。ソース・ルーティングとは、送信元によってデータが通るべきパスを決定し、決定したパスに沿ってデータの転送を行う方式である。
【００９２】
その他に、ルーティングを管理するサーバを用意し、このサーバが鍵の進むパスを指定してもよい。図２６は、このように構成した変形例における量子暗号通信システムの構成例を示す図である。変形例の量子暗号通信システムは、ルーティング管理サーバ６００を備えている。ルーティング管理サーバ６００は、最良のパスを算出し、算出したパスを各ノード１００のルーティングテーブルに反映させる。これにより各ノード１００は、最良のパスを選択することが可能となる。
【００９３】
なお、鍵リソースは、例えば、量子鍵配送が実行され鍵保有量が増加したり、アプリケーション鍵転送をすることで鍵保有量が減少したり、量子暗号装置の環境変化等の影響で、鍵生成速度が変化したりすることで変動しうる。このため、鍵リソースの変動を検出したときに、本実施形態を含むルーティングプロトコルを再実行し、最適なパスの算出をやり直してもよい。例えば、選択部１１４が、異なる時刻に取得されたリソース情報（鍵生成速度、鍵保有量など）を比較し、両者の変化量が閾値以上の場合に、パス選択処理（ルーティングプロトコル）を実行するように構成してもよい。
【００９４】
このように、本実施形態にかかる通信システムは、リソースのボトルネックおよびホップ数を考慮して暗号鍵の共有を行うためのルーティングを行う。これにより、特定のノードにおける暗号鍵の枯渇を避けつつ、スループットを維持し、システム全体での暗号鍵の消費量を小さくすることができる。
【００９５】
次に、本実施形態にかかる通信装置（ノード１００）のハードウェア構成について図２７を用いて説明する。図２７は、本実施形態にかかる通信装置のハードウェア構成を示す説明図である。
【００９６】
本実施形態にかかる通信装置は、ＣＰＵ（Central  Processing  Unit）５１などの制御装置と、ＲＯＭ（Read  Only  Memory）５２やＲＡＭ（Random  Access  Memory）５３などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５４と、各部を接続するバス６１を備えている。
【００９７】
本実施形態にかかる通信装置で実行されるプログラムは、ＲＯＭ５２等に予め組み込まれて提供される。
【００９８】
本実施形態にかかる通信装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact  Disk  Recordable）、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【００９９】
さらに、本実施形態にかかる通信装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態にかかる通信装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【０１００】
本実施形態にかかる通信装置で実行されるプログラムは、コンピュータを上述した通信装置の各部として機能させうる。このコンピュータは、ＣＰＵ５１がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【０１０１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０２】
１００ａ〜１００ｅ  ノード
１０１  制御部
１０２  管理部
１０３  プラットフォーム部
１０４  通信部
１１０  ルーティング処理部
１１１  取得部
１１２  カウント部
１１３  算出部
１１４  選択部
１２１  記憶部
２００ａ、２００ｂ  アプリケーション
【図１】
2014103514.tif 000003
【図２】
2014103514.tif 000004
【図３】
2014103514.tif 000005
【図４】
2014103514.tif 000006
【図５】
2014103514.tif 000007
【図６】
2014103514.tif 000008
【図７】
2014103514.tif 000009
【図８】
2014103514.tif 000010
【図９】
2014103514.tif 000011
【図１０】
2014103514.tif 000012
【図１１】
2014103514.tif 000013
【図１２】
2014103514.tif 000014
【図１３】
2014103514.tif 000015
【図１４】
2014103514.tif 000016
【図１５】
2014103514.tif 000017
【図１６】
2014103514.tif 000018
【図１７】
2014103514.tif 000019
【図１８】
2014103514.tif 000020
【図１９】
2014103514.tif 000021
【図２０】
2014103514.tif 000022
【図２１】
2014103514.tif 000023
【図２２】
2014103514.tif 000024
【図２３】
2014103514.tif 000025
【図２４】
2014103514.tif 000026
【図２５】
2014103514.tif 000027
【図２６】
2014103514.tif 000028
【図２７】
2014103514.tif 000029