(57)【要約】【課題】アプリケーション鍵を効率的に割り当てられる通信装置、通信方法、プログラムおよび通信システムを提供する。【解決手段】通信装置は、暗号鍵を利用する１以上のアプリケーションと接続される。通信装置は、取得部と、決定部と、を備える。取得部は、暗号鍵を利用する１以上のアプリケーションごとに、アプリケーションで使用した暗号鍵の量の実績値である第１実績値を取得する。決定部は、第１実績値に応じて、アプリケーションそれぞれに割り当てる暗号鍵の量を決定する。【選択図】図２
2014241463.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
【発明の概要】
【発明が解決しようとする課題】
【０００７】
鍵生成・共有システムにおいて、最も重要なリソースの１つは鍵である。従って、複数のアプリケーションが接続するノードにおいて、アプリケーション鍵を各アプリケーションに割り当てる方式（鍵割り当て方式）が、システム効率の点で重要になる。しかしながら、従来技術ではアプリケーション鍵を効率的に割り当てられない場合があった。
【課題を解決するための手段】
【０００８】
実施形態の通信装置は、暗号鍵を利用する１以上のアプリケーションと接続される。通信装置は、取得部と、決定部と、を備える。取得部は、暗号鍵を利用する１以上のアプリケーションごとに、アプリケーションで使用した暗号鍵の量の実績値である第１実績値を取得する。決定部は、第１実績値に応じて、アプリケーションそれぞれに割り当てる暗号鍵の量を決定する。
【図面の簡単な説明】
【０００９】
【図１】本実施形態にかかる通信システムのネットワーク構成図。
【図２】本実施形態におけるノードのブロック図。
【図３】本実施形態における鍵割当処理のシーケンス図。
【図４】本実施形態にかかる通信装置のハードウェア構成図。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、この発明にかかる通信装置の好適な実施形態を詳細に説明する。
【００１１】
アプリケーションに対するアプリケーション鍵の割り当て方式ではないが、リンク鍵の割り当て方式として以下のような方式が知られている
（Ｍ１）送信鍵バッファおよび受信鍵バッファに対するリンク鍵の割り当て方式：現在の蓄積量が少ないバッファに優先的に割り当てる。
（Ｍ２）アプリケーションに対するリンク鍵の割り当て方式：ノードに予めアプリケーションごとの鍵レートを設定しておき、この鍵レートに基づいて、リンク鍵をアプリケーションに割り当てる。
【００１２】
一方、上記のような鍵生成・共有システムにおける、アプリケーションに対するアプリケーション鍵の割り当て方式としては、（Ｍ１）のような方式が最適とは限らない。アプリケーションとノードとが独立に構成される場合、アプリケーションとノードとの双方に鍵を蓄積する記憶部が存在する。また、アプリケーションがノードから鍵を取得するタイミングと、アプリケーションが鍵を実際に利用して暗号通信を行うタイミングとは異なる。また、そのタイミングはアプリケーションの種類や実現方法によっても異なる。従って、アプリケーションに対するアプリケーション鍵の割り当て方式として、例えばノードにおいて鍵の蓄積量とその減少量のみに着目して鍵の割り当てを行う方式を適用したとしても、アプリケーションにおける実際の鍵使用実績を反映しない、非効率な鍵割り当てとなっている可能性がある。
【００１３】
本実施形態にかかる通信装置は、アプリケーションにおける実際のアプリケーション鍵の使用実績に基づいて、アプリケーションに対して割り当てるアプリケーション鍵の量を決定する。これにより、実際の鍵使用実績を反映して効率的にアプリケーション鍵を割り当てることができる。
【００１４】
このように、本実施形態は、ノードがアプリケーションに対してアプリケーション鍵を割り当てる方式（特定のアプリケーションが専用に利用できるようにするため、ノードにおいて、あるアプリケーション鍵をそのアプリケーションのために事前に確保する方式）に関する。本実施形態の鍵割り当て方式は例えば以下のような処理を含む。
（１）ノードがアプリケーションの通信ＩＦ（インタフェース）などから、各アプリケーションのデータ通信量（例えば何バイトか）の「実績情報」を取得する。
（２）ノードが、該当アプリケーションから通信開始要求を受け取った際に、該当アプリケーションが、暗号データ通信に使用する「暗号方式」の情報を保持する。通信開始要求は、アプリケーション鍵の割り当てを開始する契機ともなる。暗号方式によって、例えば、データ通信量と必要な鍵量（例えば何バイトか）の比率を決定することができる。
【００１５】
ノードは、（１）の処理によってアプリケーションのデータ通信量の実績値を取得する。そしてノードは、（２）の処理によって保持している情報である、データ通信量と必要な鍵量の比率から、アプリケーションが実際に利用した鍵量（鍵使用実績）を算出することができる。本実施形態のノードは、算出した「鍵使用実績」の情報を用いて、個々のアプリケーションに対して割り当てるアプリケーション鍵の量を決定する。
【００１６】
図１は、本実施形態にかかる通信システムのネットワーク構成例を示す図である。通信システムは、鍵共有ネットワーク３０１と、アプリケーションネットワーク３０２と、プライベートネットワーク３０３ａ、３０３ｂと、を含む。また、通信システムは、通信装置としてのノード１００ａ〜１００ｃと、アプリケーション２００ａ〜２００ｄと、を含む。
【００１７】
ノード１００ａ〜１００ｃを区別する必要がない場合は、単にノード１００という場合がある。アプリケーション２００ａ〜２００ｄを区別する必要がない場合は、単にアプリケーション２００という場合がある。ノード１００の個数は３に限られるものではない。また、アプリケーション２００の個数は４に限られるものではない。図１は、ノード１００とアプリケーション２００が独立に実現される場合の一例である。
【００１８】
プライベートネットワーク３０３ａ、３０３ｂは、あるノード１００と、このノード１００がアプリケーション鍵を提供するアプリケーション２００とを接続するためのネットワークである。
【００１９】
ノード１００ａ〜１００ｃは、上述のように、対向ノードとの間で乱数を生成して共有する機能と、生成した乱数をリンク鍵として利用して、リンク上で暗号通信を行う機能とを備える。
【００２０】
ノード１００は、リンクとは独立に乱数を生成する機能と、別のノードに対して生成した乱数を送信する機能とを備えてもよい。
【００２１】
図２は、本実施形態におけるノード１００の構成例を示すブロック図である。ノード１００は、プラットフォーム部１０１と、リンク鍵共有部１０２と、アプリ鍵共有部１０３と、鍵記憶部１０４と、提供部１０５と、取得部１０６と、制御部１０７と、決定部１０８と、を備える。
【００２２】
プラットフォーム部１０１は、ノード１００を実現するコンピュータのオペレーティングシステムとして、基本的なプロセス管理機能、ネットワーク機能、セキュリティ機能、および、データ蓄積機能等を実現する。
【００２３】
リンク鍵共有部１０２は、直接接続される他のノード１００との間で量子鍵配送技術等を用いてリンク鍵を共有する。アプリ鍵共有部１０３は、他のノード１００（直接接続されるノードおよび直接接続されないノード）との間で、アプリケーション鍵を交換して共有する。アプリ鍵共有部１０３は、アプリケーション鍵の交換のために必要な制御等も行う。
【００２４】
鍵記憶部１０４は、リンク鍵やアプリケーション鍵を保持する。提供部１０５は、アプリケーション２００との間の通信インタフェースである。提供部１０５は、例えばアプリケーション２００からの通信開始要求の処理等を行い、アプリケーション鍵要求に対してアプリケーション鍵を提供する。
【００２５】
取得部１０６は、アプリケーション鍵を暗号鍵として利用するアプリケーション２００ごとに、当該アプリケーション２００で使用したアプリケーション鍵の量の実績値である「鍵使用実績」（第１実績値）を取得する。例えば、取得部１０６は、まずアプリケーション２００の「鍵使用実績」を算出するために必要な情報（例えば上述の「実績情報」（第２実績値））等をアプリケーション２００から取得する。また取得部１０６は、例えば、暗号方式を示す情報をアプリケーション２００から取得する。取得部１０６は、第２実績値、および、通信量と必要な鍵量との比率を用いて「鍵使用実績」を取得（算出）することができる。上述のように、通信量と必要な鍵量との比率は、暗号方式から決定できる。暗号方式を示す情報は、例えば、通信開始要求時にアプリケーション２００から取得することができる。
【００２６】
決定部１０８は、アプリケーション２００それぞれが使用したアプリケーション鍵の実績値に応じて、アプリケーション２００それぞれに対するアプリケーション鍵の割り当て方式（ポリシー）を決定する。決定部１０８は、例えば、アプリケーション２００それぞれにアプリケーション鍵を割り当てる割合、量、タイミング、および、アルゴリズム等の割り当て方式を決定する。本実施形態では、決定部１０８は、取得部１０６が取得した情報を入力情報として、割り当て方式を決定する。
【００２７】
制御部１０７は、ノード１００全体を制御する。制御部１０７は、例えば、決定部１０８が決定した割り当て方式にしたがって、アプリ鍵共有部１０３が共有したアプリケーション鍵を各ノード１００に対して実際に割り当てる処理を行う。
【００２８】
なお、プラットフォーム部１０１、リンク鍵共有部１０２、アプリ鍵共有部１０３、提供部１０５、取得部１０６、制御部１０７、および、決定部１０８は、例えば、ＣＰＵ（Central  Processing  Unit）などの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、ＩＣ（Integrated  Circuit）などのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。
【００２９】
また、鍵記憶部１０４は、例えば、ＨＤＤ（Hard  Disk  Drive）、光ディスク、メモリカード、ＲＡＭ（Random  Access  Memory）などの一般的に利用されているあらゆる記憶媒体により構成することができる。
【００３０】
次に、「実績情報」「暗号方式」および「鍵使用実績」の詳細について説明する。
【００３１】
「実績情報」は、アプリケーション２００を実行している装置（コンピュータ等）の通信ＩＦ等から統計情報として取得できる情報である。例えば、何バイトの情報を送受信したかを示す値である。ノード１００がアプリケーション２００またはアプリケーション２００を実行している装置に問い合わせることによって、「実績情報」を取得してもよい。また、アプリケーション２００が定期的にこの統計情報をノード１００に送信するように構成してもよい。
【００３２】
後者の場合、さらに、どの程度の頻度で統計情報を通知するか、という頻度についても、様々なパターンが考えられる。例えば、５００バイト分通信する度に通知する、５００Ｋバイト分通信する度に通知する、１分間ごとに現在のデータ通信量統計情報を通知する、等のバリエーションが考えられる。このような統計情報を取得するためのアプリケーション２００側の実現方法の一例として、通信ＩＦのＭＩＢ（Management  Information  Base）情報を利用し、ＳＮＭＰ（Simple  Network  Management  Protocol）によって取得する方法がある。
【００３３】
「暗号方式」は、アプリケーション２００のペアが、ノード１００から取得したアプリケーション鍵を使って、アプリケーションネットワーク３０２を介して暗号データ通信する際に利用する暗号方式を示す。アプリケーション２００は、アプリケーション鍵を取得して暗号データ通信を開始する際、ノード１００に対して通信開始要求を通知する。通信開始要求を受信したノード１００は、このアプリケーション２００の指定した通信相手となる他のアプリケーション２００との間でアプリケーション鍵を共有するための鍵共有処理、および、アプリケーション２００への鍵割り当てを行う。
【００３４】
通信開始要求は、アプリケーション２００がどのような暗号方式を利用するかに関する情報（暗号方式を示す情報）を含んでもよい。ノード１００の取得部１０６は、この通信開始要求に含まれる情報を保持することで、該当アプリケーション２００の暗号方式に関する情報を取得できる。ノード１００は、暗号方式を示す情報から、暗号方式の「データ通信量と必要な鍵量の比率」を把握することができる。
【００３５】
暗号方式には様々な種類がある。例えばＯＴＰ（One  Time  Pad）は、「データ通信量と必要な鍵量の比率」が１：１となる暗号方式である。それ以外のＡＥＳやＤＥＳといった一般的な暗号方式では、データ通信量の方が鍵量より大きくなる。暗号方式によっては、「データ通信量と必要な鍵量の比率」が固定的な比率にならない方式もある。汎用的な暗号方式であるＡＥＳもその１つである。このような場合は、暗号方式として例えばＡＥＳを使うということに加えて、どれだけのデータ量を送受信したらＡＥＳの鍵を更新するかというリキーに関する情報まで加えて「暗号方式」として表現すればよい。これにより、ＡＥＳのような暗号方式を用いた場合であっても、ノード１００が、暗号方式の「データ通信量と必要な鍵量の比率」を把握することが可能となる。
【００３６】
なお、上述のように、ノード１００は通信開始要求を処理する際に「暗号方式」を把握するが、把握方法はこれに限られるものではない。例えば、「実績情報」と同様の方法で、アプリケーション２００からノード１００に対して現在利用している「暗号方式」を通知するという方法を適用してもよい。
【００３７】
「鍵使用実績」は、アプリケーション２００が実際に暗号データ通信を行うことによって使用されたアプリケーション鍵の量である。上述のようにノード１００は、取得した「実績情報」および「暗号方式」から「鍵使用実績」を算出することができる。本実施形態では、この「鍵使用実績」の情報を用いて鍵割り当てを行う。
【００３８】
なお、アプリケーション２００の実現方法等によっては、ノード１００がアプリケーション２００から直接「鍵使用実績」の情報を取得できる場合も考えられる。このような場合、ノード１００は、アプリケーション２００から「実績情報」を取得したり、「暗号方式」を把握したりする必要はない。
【００３９】
この方法が適用可能な暗号方式の一例として、一定時間ごとに鍵を更新する（リキーする）ＡＥＳが挙げられる。アプリケーション２００は、リキーの完了ごとに、リキー完了のイベントをノード１００に通知するように構成する。ノード１００は、該当アプリケーション２００のＡＥＳの鍵長を把握しているものとする（鍵長情報が、リキー通知に含まれる構成であってもよい）。この場合、ノード１００は、リキーのタイミングまたは回数等の情報と、暗号方式が利用する鍵長の情報とから、アプリケーション２００が使用した、アプリケーション鍵の量（サイズ）、すなわち、「鍵使用実績」を算出することができる。このように、一部の暗号方式では、リキーを通知するように構成することで、ノード１００は、アプリケーション２００の「実績情報」を取得または経由することなく、「鍵使用実績」を直接得ることができる。
【００４０】
以下、本実施形態における「鍵使用実績」を活用する鍵割り当て方式のバリエーションについて説明する。鍵割り当て方式としては、例えば以下の（方式Ａ）、（方式Ｂ）、（方式Ｃ）が適用できる。
（方式Ａ）ノード１００は、アプリケーション２００ごとの鍵使用実績を把握し、鍵使用実績が大きいアプリケーション２００に対して優先的にアプリケーション鍵の割り当てを行う。
（方式Ｂ）ノード１００におけるアプリケーション２００へのアプリケーション鍵割り当ては、アプリケーション２００が通信開始要求時に示した鍵レート等の要求量（要求情報）に基づいて行う。アプリケーション２００ごとの鍵使用実績に基づいて、アプリケーション鍵割当比率を変更してゆく。この方法を用いることによって、アプリケーション２００の通信開始直後は、（実績情報がないので）アプリケーション２００による申告である要求情報に基づく鍵割り当てを行い、実際に暗号データ通信を開始し、鍵使用実績が得られるようになると、鍵使用実績を用いて、実際を反映した比率での鍵割り当てとなるように調整することができる。
（方式Ｃ）ノード１００におけるアプリケーション２００へのアプリケーション鍵割り当ては、アプリケーション２００が通信開始要求時に示した鍵レート等の要求量（要求情報）に基づいて行う。ただし、アプリケーション２００に対してアプリケーション鍵を提供した量（鍵提供実績）と、鍵使用実績との乖離（差分）が大きいアプリケーション２００に対しては割り当てる量を減らす（例えば鍵割当比率を下げる）。
【００４１】
上記の各方式は、鍵割り当て方式の一例である。「鍵使用実績」を用いるこれ以外の方式を適用してもよい。例えば、予め定められたアプリケーションごとの重みなどを考慮してアプリケーション鍵の割り当て量を調整するように構成してもよい。
【００４２】
次に、このように構成された本実施形態にかかるノード１００による鍵割当処理について図３を用いて説明する。図３は、本実施形態における鍵割当処理の一例を示すシーケンス図である。図３では、アプリケーション鍵の交換を行うノード１００ａ、ノード１００ｂ、ノード１００ａに接続するアプリケーション２００ａ、アプリケーション２００ａの通信ＩＦ、ノード１００ｂに接続するアプリケーション２００ｂ、および、アプリケーション２００ｂの通信ＩＦを示している。
【００４３】
アプリケーション２００ａは、接続しているノード１００ａに対して、暗号データ通信を開始する通信相手であるアプリケーション２００ｂのアドレス、利用するポート番号、利用する暗号方式、および、利用するアプリケーション鍵のレート（要求量）等の情報を含む通信開始要求を送信する（ステップＳ１０１）。
【００４４】
ノード１００ａは、アプリケーション２００ａからの通信開始要求を受信し、アプリケーション鍵の交換相手であるノード１００ｂを特定してアプリケーション鍵の共有を開始する（ステップＳ１０２）。ノード１００ｂは、アプリケーション２００ｂに対し、アプリケーション２００ｂのアドレス、利用するポート番号、利用する暗号方式、および、利用するアプリケーション鍵のレート（要求量）等の情報を通知し（ステップＳ１０３）、この情報に対する許可または合意を確認した上で、アプリケーション鍵の共有を開始してもよい。
【００４５】
この時点で、ノード１００ａおよびノード１００ｂは、アプリケーション２００ａ（およびアプリケーション２００ｂ）の要求するアプリケーション鍵のレート、および、暗号方式に関する情報を把握できる（ステップＳ１０４〜ステップＳ１０７）。
【００４６】
ノード１００ａおよびノード１００ｂは、要求されたアプリケーション鍵のレート、および、暗号方式を参照し、アプリケーション２００ａおよびアプリケーション２００ｂに対する鍵割り当て方式を決定する（ステップＳ１０８、ステップＳ１０９）。ノード１００ａおよびノード１００ｂに、既に他のアプリケーション２００が接続している場合等は、ノード１００ａおよびノード１００ｂは、この時点で、アプリケーション２００ａ（およびアプリケーション２００ｂ）に対し、要求するアプリケーション鍵のレート等に基づいたアプリケーション鍵の割り当て方式を用いるように決定してもよい。
【００４７】
ノード１００ａとノード１００ｂとの間でアプリケーション鍵が共有されると（ステップＳ１１０）、ノード１００は、決定した割り当て方式に基づきアプリケーション鍵をアプリケーション２００に割り当てる（ステップＳ１１１、ステップＳ１１２）。
【００４８】
ノード１００が、実際にアプリケーション２００に対してアプリケーション鍵を提供した場合（ステップＳ１１３、ステップＳ１１５）、提供したアプリケーション鍵の量に関する情報を、ノード１００それぞれでアプリケーション２００と関連付けて保持してもよい（ステップＳ１１４、ステップＳ１１６）。
【００４９】
アプリケーション鍵を取得したアプリケーション２００ａおよびアプリケーション２００ｂは、暗号データ通信を行う（ステップＳ１１７）。通信ＩＦを介して暗号データが送受信されると、通信ＩＦの統計情報として「実績情報」が更新される。この情報は、定期的に何らかの方法で、直接接続されるノード１００に対して通知される（ステップＳ１１８、ステップＳ１１９）。
【００５０】
ノード１００は、アプリケーション２００から通知された（またはアプリケーション２００から取得した）「実績情報」と、関連付けて保持している暗号方式に関する情報とから、このアプリケーション２００のペアが実際に暗号データ通信することによって使用したアプリケーション鍵の量すなわち「鍵使用実績」を算出する。
【００５１】
ノード１００は、「鍵使用実績」に基づいて、例えば、上述した鍵割り当て方式のバリエーションに示した方法で、アプリケーション鍵の割り当て方式または割り当て比率を変更してもよい（ステップＳ１２０、ステップＳ１２１）。以後、ノード１００ａとノード１００ｂとの間でアプリケーション鍵が共有されると、新たに決定された割り当て方式に基づきアプリケーション鍵をアプリケーション２００に割り当てる。
【００５２】
例えば、ステップＳ１０１〜ステップＳ１０９は、通信開始時の動作であり（開始時）、ステップＳ１１０〜ステップＳ１１２は、アプリケーション鍵が共有されたときの動作であり（鍵割当時）、ステップＳ１１３〜ステップＳ１１６は、アプリケーション鍵を提供するときの動作であり（鍵提供時）、ステップＳ１１７〜ステップＳ１２１は、ノード１００がアプリケーション２００から「実績情報」を受け取ったときの動作である（暗号データ通信時）。従って、鍵割当時、鍵提供時、および、暗号データ通信時、の各動作は、順不同で繰り返し実行されうる。
【００５３】
以上説明したとおり、本実施形態によれば、実際のアプリケーション鍵の使用実績に基づいてアプリケーション鍵を割り当てる量を決定する。これにより、実際の鍵使用実績を反映して効率的にアプリケーション鍵を割り当てることができる。
【００５４】
次に、本実施形態にかかる通信装置のハードウェア構成について図４を用いて説明する。図４は、本実施形態にかかる通信装置のハードウェア構成を示す説明図である。
【００５５】
本実施形態にかかる通信装置は、ＣＰＵ（Central  Processing  Unit）５１などの制御装置と、ＲＯＭ（Read  Only  Memory）５２やＲＡＭ（Random  Access  Memory）５３などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５４と、各部を接続するバス６１を備えている。
【００５６】
本実施形態にかかる通信装置で実行されるプログラムは、ＲＯＭ５２等に予め組み込まれて提供される。
【００５７】
本実施形態にかかる通信装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact  Disk  Recordable）、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【００５８】
さらに、本実施形態にかかる通信装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態にかかる通信装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【００５９】
本実施形態にかかる通信装置で実行されるプログラムは、コンピュータを上述した通信装置の各部（プラットフォーム部、リンク鍵共有部、アプリ鍵共有部、提供部、取得部、制御部、決定部）として機能させうる。このコンピュータは、ＣＰＵ５１がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【００６０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６１】
１００ａ、１００ｂ  ノード
１０１  プラットフォーム部
１０２  リンク鍵共有部
１０３  アプリ鍵共有部
１０４  鍵記憶部
１０５  提供部
１０６  取得部
１０７  制御部
１０８  決定部
２００ａ、２００ｂ  アプリケーション
３０１  鍵共有ネットワーク
３０２  アプリケーションネットワーク
３０３ａ、３０３ｂ  プライベートネットワーク
【図１】
2014241463.tif 000003
【図２】
2014241463.tif 000004
【図３】
2014241463.tif 000005
【図４】
2014241463.tif 000006