(57)【要約】      （修正有）【課題】既存の通信ネットワークや通信サービスに対して、鍵生成サービスを容易に適用できるようにする。【解決手段】暗号通信を行う既存のアプリケーション２００に付加するモジュール（付加モジュール３００）は発見部３０１と、交渉部３０３と、通信部３０４と、を備える。発見部３０１は、鍵情報を利用するアプリケーション２００からの要求に応じて、鍵情報を生成する鍵生成装置（ノード１００）を発見する。交渉部３０３は、生成する鍵情報の条件を決定する交渉処理を鍵生成装置との間で実行する。通信部３０４は、交渉処理により決定された条件に基づいて生成された鍵情報を鍵生成装置から受信し、受信した鍵情報をアプリケーション２００に送信する。【選択図】図４
2014036322.tif 000002
【特許請求の範囲】
【請求項１】
鍵情報を利用するアプリケーションからの要求に応じて、前記鍵情報を生成する鍵生成装置を発見する発見部と、
生成する鍵情報の条件を決定する交渉処理を前記鍵生成装置との間で実行する交渉部と、
前記交渉処理により決定された前記条件に基づいて生成された前記鍵情報を前記鍵生成装置から受信し、受信した前記鍵情報を前記アプリケーションに送信する通信部と、
を備える通信装置。
【請求項２】
前記鍵生成装置の正当性を検証する検証部をさらに備え、
前記通信部は、正当性が検証された前記鍵生成装置との間で通信を確立する、
請求項１に記載の通信装置。
【請求項３】
前記検証部は、前記鍵生成装置との間の通信に適用可能なセキュリティ機能の有無を検証し、前記セキュリティ機能が存在する場合に、前記鍵生成装置が正当であると判定する、
請求項２に記載の通信装置。
【請求項４】
前記発見部は、前記アプリケーションからの要求に応じて、前記鍵生成装置との間の通信に適用可能なセキュリティ機能の有無を検証し、前記セキュリティ機能が存在する前記鍵生成装置を発見する、
請求項１に記載の通信装置。
【請求項５】
前記通信部は、利用可能な前記条件を前記鍵生成装置から受信し、受信した前記条件を前記アプリケーションに送信する、
請求項１に記載の通信装置。
【請求項６】
鍵情報を利用するアプリケーションからの要求に応じて、前記鍵情報を生成する鍵生成装置を発見する発見ステップと、
生成する鍵情報の条件を決定する交渉処理を前記鍵生成装置との間で実行する交渉ステップと、
前記交渉処理により決定された前記条件に基づいて生成された前記鍵情報を前記鍵生成装置から受信し、受信した前記鍵情報を前記アプリケーションに送信する通信ステップと、
を含む通信方法。
【請求項７】
コンピュータを、
鍵情報を利用するアプリケーションからの要求に応じて、前記鍵情報を生成する鍵生成装置を発見する発見部と、
生成する鍵情報の条件を決定する交渉処理を前記鍵生成装置との間で実行する交渉部と、
前記交渉処理により決定された前記条件に基づいて生成された前記鍵情報を前記鍵生成装置から受信し、受信した前記鍵情報を前記アプリケーションに送信する通信部、
として機能させるためのプログラム。
【請求項８】
通信装置と、鍵生成装置と、を含む通信システムであって、
前記通信装置は、
鍵情報を利用するアプリケーションからの要求に応じて、前記鍵生成装置を発見する発見部と、
生成する鍵情報の条件を決定する交渉処理を前記鍵生成装置との間で実行する第１交渉部と、
前記交渉処理により決定された前記条件に基づいて生成された前記鍵情報を前記鍵生成装置から受信し、受信した前記鍵情報を前記アプリケーションに送信する通信部と、を備え、
前記鍵生成装置は、
前記交渉処理を前記通信装置との間で実行する第２交渉部と、
前記交渉処理により決定された前記条件に基づいて前記鍵情報を生成して前記通信装置に送信する生成部と、を備える、
通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、通信装置、通信方法、プログラムおよび通信システムに関する。
【背景技術】
【０００２】
ＳＥＣＯＱＣ（Secure  Communication  based  on  Quantum  Cryptography）と呼ばれる量子暗号通信に関する研究プロジェクトが知られている。ＳＥＣＯＱＣでは、量子暗号鍵配送（ＱＫＤ（Quantum  Key  Distribution））により生成され、複数のノードに分散蓄積された乱数を基に鍵交換等を行う際の機能、および、Ｑ３Ｐ（Quantum  Point  to  Point  Protocol）と名付けられたプロトコルなどの技術が提案されている。
【０００３】
ＱＫＤは、次世代の通信セキュリティの高度化を実現する一手法であり、そのサービス自身のセキュリティも重要となる。例えば、ＱＫＤは絶対安全な通信環境を提供できる画期的な技術である。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】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
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＱＫＤのような新たな通信技術は、既に存在し使われている通信ネットワークや通信サービスと原理が異なる。このため、新たな通信技術のための新しいシステムを設計する必要があり、既存の通信ネットワークや通信サービスへ適用することが容易ではない。このように、通信を安全にするための新しい技術を既存の通信ネットワークへ適応する際に、その原理や構成の違いにより、既存の端末の改造が必要になるなどの課題が存在する。
【課題を解決するための手段】
【０００６】
実施形態の通信装置は、発見部と、交渉部と、通信部と、を備える。発見部は、鍵情報を利用するアプリケーションからの要求に応じて、鍵情報を生成する鍵生成装置を発見する。交渉部は、生成する鍵情報の条件を決定する交渉処理を鍵生成装置との間で実行する。通信部は、交渉処理により決定された条件に基づいて生成された鍵情報を鍵生成装置から受信し、受信した鍵情報をアプリケーションに送信する。
【図面の簡単な説明】
【０００７】
【図１】暗号通信システムのネットワーク構成の一例を示す図。
【図２】暗号通信システムのネットワーク構成の一例を示す図。
【図３】本実施形態の暗号通信システムのネットワーク構成例を示す図。
【図４】本実施形態の付加モジュールおよびノードのブロック図。
【図５】本実施形態における通信処理のシーケンス図。
【図６】独立した機器内に付加モジュールを備える構成例を示す図。
【図７】付加モジュールをライブラリとして構成する構成例を示す図。
【図８】付加モジュールをドライバとして構成する構成例を示す図。
【図９】本実施形態にかかる通信装置のハードウェア構成図。
【発明を実施するための形態】
【０００８】
以下に添付図面を参照して、この発明にかかる通信装置の好適な実施形態を詳細に説明する。
【０００９】
図１は、暗号通信システムのネットワーク構成の一例を示す図である。情報通信の重要性から、複数のアプリケーション（アプリケーション２００ａ、アプリケーション２００ｃ）間で暗号（アプリケーション鍵利用）を用いて通信の安全性を確保する暗号通信が行われる。
【００１０】
暗号通信で用いられる暗号化方式、および、暗号化に用いる鍵の生成方式も、技術や計算機の進歩に従い、進化していく。現在の多くのシステムは、その際に、アプリケーション全体を更新する場合が多い。
【００１１】
また、暗号通信を行うために、特に暗号鍵（鍵情報）を提供するサービスシステム（暗号鍵生成サービス）をデータの暗号通信とは独立に構成することにより、高度な暗号通信を提供するシステムの検討も進んでいる。図２は、このような暗号通信システムのネットワーク構成の一例を示す図である。
【００１２】
図２の暗号通信システムは、ノード１００ａ〜１００ｃと、アプリケーション２００ａ、２００ｃと、を含む。ノード１００ａ〜１００ｃは、対向ノードとの間で乱数を生成して共有する機能と、生成した乱数をリンク鍵として利用して、リンク上で暗号通信を行う機能とを備える。ノード１００ａとノード１００ｂが暗号通信ネットワークであるリンク５００ａで接続され、ノード１００ｂとノード１００ｃが、暗号通信ネットワークであるリンク５００ｂで接続されている。
【００１３】
しかし、図２のような暗号通信システムにおいても、暗号鍵生成サービスが提供する暗号鍵は、アプリケーションが使用する暗号化方式に依存する。このため、結局新しい暗号化システムへの進化のためには、アプリケーションを含めて更新する必要がある。または、既存の暗号通信の変更なしに、既存の暗号通信に対して、暗号鍵生成サービスの提供する暗号鍵を利用可能とすることが難しい。従って、より進化した暗号鍵の利用法が、なかなか普及せず、暗号技術の進展がシステムに応用されにくい状況が存在する。これは、暗号通信をノードや利用者の認証に利用する場合にも、同様な問題となる。
【００１４】
そこで、本実施形態では、このような暗号鍵生成サービスが、既存のシステムにも適用され、最新の暗号鍵が、アプリケーションの行う暗号通信に活用されるための手法を提供する。これにより暗号通信技術の進展が、既存の暗号通信を行うアプリケーションを含めて、暗号通信に迅速に適用されるようになり、通信の安全性の確実な向上が実現される。
【００１５】
図３は、本実施形態の通信システムのネットワーク構成の一例を示す図である。図３に示すように、本実施形態の通信システムは、鍵生成装置としてのノード１００ａ、１００ｂと、アプリケーション２００ａ〜２００ｄと、付加モジュール３００ａ〜３００ｄと、を含む。
【００１６】
アプリケーション２００ａ〜２００ｄは、ネットワーク４０１を介して接続される。ネットワーク４０１は、図１および２のアプリケーション鍵を利用する暗号通信のリンクに相当する。ノード１００ａ、１００ｂは、暗号鍵生成サービスを構成するネットワーク４０２に接続される。ネットワーク４０２は、図２のリンク５００ａ、５００ｂに相当する。
【００１７】
ノード１００ａ、１００ｂを区別する必要がない場合は、単にノード１００という場合がある。アプリケーション２００ａ〜２００ｄを区別する必要がない場合は、単にアプリケーション２００という場合がある。付加モジュール３００ａ〜３００ｄを区別する必要がない場合は、単に付加モジュール３００という場合がある。
【００１８】
ノード１００の個数は２に限られるものではない。また、アプリケーション２００および付加モジュール３００の個数は４に限られるものではない。後述するように、アプリケーション２００は、付加モジュール３００と一体として通信装置に含まれるように構成されてもよい。アプリケーション２００と付加モジュール３００とが、１つの通信装置内で独立に含まれるように構成してもよい。また、アプリケーション２００を含む機器と物理的に異なる機器（通信装置）内に、付加モジュール３００を含むように構成してもよい。さらに、アプリケーション２００および付加モジュール３００を含む機器（通信装置）は、ノード１００と一体として実現されてもよいし、ノード１００と独立した端末として実現されてもよい。以下では、アプリケーション２００を含む通信装置を単にアプリケーション２００と呼ぶ場合がある。
【００１９】
本実施形態では、図３に示すように、暗号通信を行う既存のアプリケーション２００に付加するモジュール（付加モジュール３００）を用意する。付加モジュール３００は、暗号鍵生成サービスを発見する機能と、暗号鍵生成サービスと安全な通信を行う機能と、暗号鍵生成サービスと鍵の打合せ（交渉）を行う機能と、を備える。
【００２０】
このような構成により、既存のアプリケーション２００は、改変せずに、または、最小限の改変により、付加モジュール３００を介して暗号鍵生成サービスの提供を受けることが可能となる。例えば、上記機能を付加モジュール３００および暗号鍵生成サービス（ノード１００）の双方が備えることにより、既存の暗号通信を行うアプリケーション２００などのサービスにおいても、進化する暗号鍵生成サービスの提供する最新の強力な暗号鍵や、暗号通信方式の導入が容易になる。
【００２１】
図４は、本実施形態にかかる付加モジュール３００およびノード１００の構成の一例を示すブロック図である。図４に示すように、付加モジュール３００は、発見部３０１と、検証部３０２と、交渉部３０３と、通信部３０４と、を備えている。また、ノード１００は、応答部１０１と、検証部１０２と、交渉部１０３と、生成部１０４と、を備えている。
【００２２】
発見部３０１は、暗号鍵をアプリケーション２００からの要求に応じて、鍵情報（暗号鍵）を生成するノード１００を発見する。
【００２３】
例えば、アプリケーション２００は、暗号通信を行う前に暗号通信で使う暗号鍵を生成するための鍵交換プロトコルを動作させる。このようにアプリケーション２００が暗号通信の開始時に特定の鍵交換プロトコルを利用する場合、付加モジュール３００は、この鍵交換プロトコルの起動（暗号鍵の生成の要求）を検出することにより、暗号鍵生成サービスの利用を開始する。
【００２４】
付加モジュール３００の発見部３０１は、鍵交換プロトコルの起動を検出すると、まず暗号鍵生成サービスを探す。例えば、発見部３０１は、ＤＨＣＰ（Dynamic  Host  Configuration  Protocol）を使っているネットワークに接続し、ＤＨＣＰにより暗号鍵生成サービスを提供するサーバ（ノード１００）を探す。より具体的には、発見部３０１は、このネットワークで利用するＩＰアドレスをＤＨＣＰで入手する際に、このネットワークで提供しているサービスサーバの１つの情報として、暗号鍵生成サービスのサーバ情報を取得する。これにより、発見部３０１は、暗号鍵生成サービスを生成するサーバ（ノード１００）を発見することができる。
【００２５】
発見部３０１による暗号鍵生成サービス（ノード１００）の発見方法はこれに限られるものではない。例えば、発見部３０１が、暗号鍵生成サービスを探索するためのブロードキャストパケットを送信し、暗号鍵生成サービス（ノード１００）がこのブロードキャストパケットに応答することにより、暗号鍵生成サービスを発見する方法でもよい。ノード１００の応答部１０１は、例えばこのような構成で用いられる。例えば、応答部１０１は、発見部３０１から送信されたブロードキャストパケットを受信した場合に、暗号鍵生成サービスを提供するノード１００であることを示す応答を付加モジュール３００に送信する。
【００２６】
付加モジュール３００は、このようにして発見した暗号鍵生成サービスを使って暗号鍵を入手する。この際に、付加モジュール３００は、暗号鍵生成サービスとの間で安全な通信を行い、信頼できる暗号鍵を入手する必要がある。
【００２７】
そこで、検証部３０２は、発見された暗号鍵生成サービス（ノード１００）の正当性を検証する。そして、検証部３０２は、正当性が検証されたノード１００との間で安全な通信を確立する。例えば、グローバルインターネット上で暗号鍵生成サービスを利用する場合には、信頼できる認証局に付加モジュール３００および暗号鍵生成サービス（ノード１００）の双方を事前に登録しておく。これにより、検証部３０２は、公開鍵を用いて暗号鍵生成サービス（ノード１００の検証部１０２）との間の相互認証を実施する。検証部１０２は、検証部３０２との間で相互認証を実行する。
【００２８】
検証部３０２は、このような相互認証を使って暗号鍵生成サービスの正当性を確認するとともに、必要ならばそれ以降の暗号鍵生成サービスとの通信を秘匿化するための暗号鍵の設定も行う。クラウドサービスのような一般的なサービス提供形態を適用する場合には、このような方法が望ましい。
【００２９】
逆にクローズドな、ある限られた環境を前提として暗号鍵生成サービスが提供されている場合は、より単純な方法を適用してもよい。例えば、検証部３０２が、イーサネット（登録商標）レベルで直接通信できることを確認することにより、アプリケーション２００が接続される信頼できる物理ネットワークに暗号鍵生成サービス（ノード１００）が存在すると判断してもよい。また、侵入防止機構などを備える物理的に安全な場所にアプリケーション２００と暗号鍵生成サービス（ノード１００）とが設置されている場合は、この侵入防止機構を利用する検証方法を適用してもよい。例えば、検証部３０２は、侵入防止機構が機能しているかを確認することにより、ノード１００の正当性を検証する。例えば、前回の暗号通信を実施してから、侵入防止機構が適用される場所に侵入した人がいないこと、または、入室の権限を持った人しか入出していないことを確認できれば、検証部３０２は、暗号鍵生成サービス（ノード１００）が信頼できると判断する。
【００３０】
また、検証部３０２が、通信相手である暗号鍵生成サービス（ノード１００）またはアプリケーション２００がサポートしているセキュリティ機能の有無を確認する処理を、認証と同時に実施してもよい。例えば、検証部３０２は、アプリケーション２００と暗号鍵生成サービス（ノード１００）との間のトラフィックにどのような暗号化プロトコルが利用可能であるかを、アプリケーション２００およびノード１００との間で相互に通知する。そして、検証部３０２は、自身が要求するセキュリティを確保するための暗号化プロトコルが利用できない場合、認証失敗とみなしてもよい。
【００３１】
確認するセキュリティ機能はこれに限られるものではない。例えば通信相手の暗号鍵生成サービスまたはアプリケーション２００のＯＳ（オペレーティングシステム）がサポートするセキュリティ機能（データ暗号化機能）の有無等を確認してもよい。そして、検証部３０２は、自身が要求するセキュリティを確保しうる暗号技術（データ暗号化機能）が利用できない相手である場合、認証失敗とみなしてもよい。
【００３２】
また、このような相手のセキュリティ機能の有無を確認する処理は、認証処理と同時に行う方法に限られるものではない。例えば、発見部３０１によるサービス発見の際に同時に行う方法を用いてもよい。
【００３３】
このようにして、信頼できる暗号鍵生成サービス（ノード１００）の確認、および、暗号鍵生成サービスとの間の信頼できる通信方法の確認が完了すると、付加モジュール３００は暗号鍵生成サービスから暗号鍵を入手する。このために、交渉部３０３は、生成する暗号鍵の条件を決定する交渉処理をノード１００との間で実行する。ノード１００の交渉部１０３は、この交渉処理を付加モジュール３００の交渉部３０３との間で実行する。
【００３４】
交渉処理では、交渉部３０３は、必要な暗号鍵の条件を暗号鍵生成サービス（ノード１００の交渉部１０３）に通知する。ノード１００の生成部１０４は、交渉処理により決定した条件を満たす暗号鍵を生成し、付加モジュール３００に提供する。
【００３５】
暗号鍵の条件とは、暗号鍵の生成に影響を与える条件である。例えば、暗号鍵として使う乱数の長さ（例としては、単位時間あたりに利用可能な乱数のビット長を示すスループット（１Ｍｂｐｓ等））、暗号通信を行う通信相手のアドレス（ＩＰアドレス）、および、暗号化方式などを、暗号鍵の条件として利用できる。
【００３６】
暗号化方式は、サポートする暗号および／または認証のアルゴリズム、そのアルゴリズムが利用する暗号鍵の鍵長の情報で指定してもよい。例えば、交渉部３０３は、「AES-128-CBC」、「AES-256-CBC」、および、「DES-EDE3」などのように暗号化方式を通知してもよい。暗号鍵を定期的に交換するような暗号化方式の場合には、暗号鍵の更新頻度（例えば、更新間隔＝６０分等）も暗号鍵の条件の一部として指定してもよい。
【００３７】
このような暗号鍵の条件の記述方式についても、予め決めておく。さらに、その条件をどのように相互に交換するかも予め決めておく。例えば、付加モジュール３００から条件が提供されると、暗号鍵生成サービス（ノード１００）が可能か不可能かを回答する。不可能の場合、交渉部３０３が、条件を変えて暗号鍵生成サービス（ノード１００）に再度問合わせする方式を用いてもよい。この場合、プロトコルや機能の設計を簡素化できる。一方、この方式では、付加モジュール３００が、暗号鍵生成サービスで生成可能な暗号鍵の条件を見出すのに時間がかかる可能性がある。
【００３８】
そこで、暗号鍵生成サービス（ノード１００）が、不可能である旨の回答をする代わりに、提供された条件に近い条件であって、ノード１００が生成可能な暗号鍵の条件を回答するように構成してもよい。この場合、暗号鍵生成サービス（ノード１００）は、暗号鍵の条件を拡張する機能を備える必要があるが、暗号鍵の交渉が短時間で結論に達する可能性は高まる。
【００３９】
また、交渉処理を開始する際に、暗号鍵生成サービス（ノード１００）が、生成可能な暗号鍵の最大条件を付加モジュール３００に提示するように構成してもよい。これにより、付加モジュール３００が、アプリケーション２００に対して、暗号鍵生成サービスを受けることが容易かつ適切な暗号鍵の条件を提案できるようになる。この場合、付加モジュール３００は、例えば提案した条件内でアプリケーション２００からの指定に応じて条件を設定する機能などのように、高度な条件調整を行う機能を備える必要が生じる場合がある。しかし、暗号鍵の交渉が短時間で結論に到達する可能性は高まる。このように暗号鍵の条件を交渉するプロトコルや機能を用意することにより、付加モジュール３００と暗号鍵生成サービス（ノード１００）の間で、必要とされる暗号鍵について交渉が可能となる。
【００４０】
通信部３０４は、正当性が検証された鍵生成装置との間で通信を確立する。また、通信部３０４は、アプリケーション２００および他のノード１００などの外部装置との間の通信を行う。例えば、通信部３０４は、交渉処理により決定された条件に基づいて生成部１０４により生成された暗号鍵をノード１００から受信し、受信した暗号鍵をアプリケーション２００に送信する。
【００４１】
なお、付加モジュール３００内の各部およびノード１００内の各部は、例えば、ＣＰＵ（Central  Processing  Unit）などの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、ＩＣ（Integrated  Circuit）などのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。
【００４２】
以上のような機能を備えることにより、既存の暗号通信を行うアプリケーション２００やサービスにおいても、進化する暗号鍵生成サービスの提供する最新の強力な暗号鍵や、暗号通信方式の導入が容易になる。
【００４３】
次に、このように構成された本実施形態にかかる通信システムによる通信処理について図５を用いて説明する。図５は、本実施形態における通信処理の一例を示すシーケンス図である。
【００４４】
アプリケーション２００は、暗号通信の準備を開始する（ステップＳ１０１）。例えば、アプリケーション２００は、暗号通信で用いる鍵交換プロトコルを動作させる。
【００４５】
付加モジュール３００の発見部３０１は、暗号通信の準備の開始を検出すると、サービス探索メッセージを送信する（ステップＳ１０２）。サービス探索メッセージは、例えば、上述のようなブロードキャストパケットである。図５ではノード１００にサービス探索メッセージが送信されるように記載されているが、実際にはブロードキャストパケットは他の装置にも送信される。
【００４６】
ノード１００の応答部１０１は、サービス探索メッセージを受信すると、サービス探索メッセージに対する応答（サービス探索結果応答）を送信する（ステップＳ１０３）。
【００４７】
なお、応答が得られなかった場合は、発見部３０１は、例えば応答が得られなかった旨をアプリケーション２００に通知する。応答が得られた場合、付加モジュール３００の検証部３０２は、ノード１００の検証部１０２との間で相互認証を実行する。すなわち、検証部３０２は、発見されたノード１００宛に、相互認証用のデータを送信する（ステップＳ１０４）。ノード１００の検証部１０２は、データの送信元である付加モジュール３００宛に、相互認証用のデータを送信する（ステップＳ１０５）。
【００４８】
なお、相互認証によりノード１００の正当性が認証できなかった場合、検証部３０２は、例えば認証できなかった旨をアプリケーション２００に通知する。正当性が認証された場合、付加モジュール３００の交渉部３０３は、ノード１００の交渉部１０３との間で交渉処理を実行する。例えば、交渉部３０３は、サービス条件および鍵条件をノード１００の交渉部１０３に送信する（ステップＳ１０６）。サービス条件とは、暗号鍵の条件以外の、鍵生成サービスの利用に必要な条件を表す。例えば、通信相手、使用ネットワーク、および、通信速度などがサービス条件に相当する。
【００４９】
ノード１００の交渉部１０３は、サービス条件および鍵条件を受信すると、サービス条件を満たすサービスデータおよび鍵条件を満たす鍵データを、付加モジュール３００に送信する（ステップＳ１０７）。サービスデータは、例えば上述のサービス条件を満たす具体的な設定を示すデータである。例えば、通信相手のアドレス、使用ネットワークを表すデータ、および、通信速度の値などがサービスデータに相当する。鍵データは、例えば、決定された暗号鍵の条件に従って生成された暗号鍵を含むデータである。
【００５０】
付加モジュール３００の通信部３０４は、受信したサービスデータおよび鍵データをアプリケーション２００に送信する（ステップＳ１０８）。これにより、アプリケーション２００は、鍵条件を満たす暗号鍵を用いて、サービス条件を満たす暗号通信を開始可能となる。すなわち、アプリケーション２００は、受信した暗号鍵を用いた暗号通信を開始する（ステップＳ１０９）。また、付加モジュール３００は、暗号通信時に用いる暗号鍵の生成を、ノード１００との間で開始する（ステップＳ１１０）。
【００５１】
暗号通信を終了する場合、アプリケーション２００は、暗号通信の終了を付加モジュール３００に通知する（ステップＳ１１１）。付加モジュール３００は、暗号鍵生成サービスの終了をノード１００に要求する（ステップＳ１１２）。ノード１００は、サービス終了の要求を受けると、付加モジュール３００に対する暗号鍵生成サービスの提供を終了し、終了した旨を付加モジュール３００に通知する（ステップＳ１１３）。付加モジュール３００は、暗号鍵生成サービスが終了した旨をアプリケーション２００に通知する（ステップＳ１１４）。これにより通信処理が終了する。
【００５２】
付加モジュール３００は、例えば、暗号鍵生成サービス側が提供する。これにより、上述の諸機能を効果的に実現することができる。
【００５３】
付加モジュール３００は、さまざまな形態で提供できる。例えば、アプリケーション２００が動作する機器とは独立な機器内に、付加モジュール３００の機能を備えるように構成してもよい。例えば、アプリケーション２００が動作する機器を通信ネットワークに接続するケーブルの途中に、付加モジュール３００の機能を備える機器を挿入するように構成してもよい。
【００５４】
この場合、アプリケーション２００が動作する機器にほとんど変更や影響を与えずに、暗号鍵生成サービスの利用を実現できるため適応範囲が広がる。一方、暗号鍵生成サービスの提供側では独立した機器の開発が必要になり、利用側には購入が必要になるので、普及が難しい場合がある。
【００５５】
図６は、アプリケーション２００と独立した機器内に付加モジュール３００の機能を備える場合の構成例を示す図である。図６は、データの中継機能を備える中継装置３５０内に付加モジュール３００を備える例を示している。図６に示すように、中継装置３５０は、上述の付加モジュール３００と、中継部３５１と、トラフィック監視部３５２と、暗号処理部３５５と、を備えている。
【００５６】
中継部３５１は、アプリケーション２００とノード１００との間で送受信されるデータを中継する。トラフィック監視部３５２は、中継するデータのトラフィックを監視し、暗号鍵生成サービスの起動が必要なタイミングを決定する。例えば、中継するデータが鍵交換プロトコルの動作開始を表すデータであった場合に、トラフィック監視部３５２は、暗号鍵生成サービスの起動が必要であると判断する。そして、トラフィック監視部３５２は、付加モジュール３００の発見部３０１に対して、暗号鍵生成サービスの発見を要求する。
【００５７】
暗号処理部３５５は、中継するデータの暗号化処理および復号処理を実行する。
【００５８】
アプリケーション２００と独立した機器ではなく、通信ネットワークの接続モジュールを管理するドライバ、および、ＯＳ上で動作するモジュールソフトウェア（ライブラリ）として、付加モジュール３００を設計および開発してもよい。この場合、アプリケーション２００が動作している機器の環境等が、付加モジュール３００の設計に影響する。しかし、導入方法や、コストの低減は容易になる。
【００５９】
また、付加モジュール３００をライブラリとして提供することができれば、付加モジュール３００の開発も普及も容易になる。この場合も、アプリケーション２００が動作する環境の影響は受けるし、アプリケーション２００毎に、このライブラリを活用するような改造が必要になる場合もある。しかし、ＡＰＩ等を工夫することにより、アプリケーション２００が既存の鍵交換を行う機能の部分の代わりとして、このライブラリを利用するように、アプリケーション２００の構成を改造できるようにすれば、改造をより容易にすることができる。
【００６０】
図７は、付加モジュール３００をライブラリとして構成する場合の構成例を示す図である。図７では、アプリケーション２００が動作する機器である通信装置３６０の構成例を示す。通信装置３６０は、アプリケーション２００と、ライブラリとして機能する付加モジュール３００と、ＯＳ３６１と、を備えている。
【００６１】
ライブラリとして構成する場合は、アプリケーション２００が付加モジュール３００のライブラリを呼び出すためのライブラリ呼び出し（ライブラリＡＰＩ呼び出し）を行う必要があり、アプリケーション２００の改変が必要となる。
【００６２】
図８は、付加モジュール３００をドライバとして構成する場合の構成例を示す図である。図８では、アプリケーション２００が動作する機器である通信装置３７０の構成例を示す。通信装置３７０は、アプリケーション２００と、ドライバとして機能する付加モジュール３００と、ＯＳ３７１と、を備えている。図８の構成例では、ＯＳ３７１は、ドライバである付加モジュール３００を含む。
【００６３】
ドライバとして構成した場合も、アプリケーション２００がドライバ（付加モジュール３００）を呼び出すためのシステムコールを呼び出す必要が生じる可能性はある。ただし、例えば、ドライバ（付加モジュール３００）が、アプリケーション２００用のシステムコール呼び出しの情報をもとに、付加モジュール３００において必要な暗号鍵生成サービスの実行を（明示的なアプリケーション２００からのシステムコール呼び出しなしに）行える可能性もある。そのため、ドライバとして構成した場合は、ライブラリとして構成した場合に比べて、アプリケーション２００への改変が少なくすむ可能性がある。
【００６４】
以上のように、本実施形態にかかる通信装置では、新しい暗号鍵生成サービスを既存の暗号通信を行うアプリケーションで、活用することが可能になる。また、既存のアプリケーションの行う暗号通信の安全性を容易に向上させることができる。
【００６５】
次に、本実施形態にかかる通信装置のハードウェア構成について図９を用いて説明する。図９は、本実施形態にかかる通信装置のハードウェア構成を示す説明図である。
【００６６】
本実施形態にかかる通信装置は、ＣＰＵ（Central  Processing  Unit）５１などの制御装置と、ＲＯＭ（Read  Only  Memory）５２やＲＡＭ（Random  Access  Memory）５３などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５４と、各部を接続するバス６１を備えている。
【００６７】
本実施形態にかかる通信装置で実行されるプログラム（例えばドライバまたはライブラリとして構成される付加モジュール）は、ＲＯＭ５２等に予め組み込まれて提供される。
【００６８】
本実施形態にかかる通信装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact  Disk  Recordable）、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【００６９】
さらに、本実施形態にかかる通信装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態にかかる通信装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【００７０】
本実施形態にかかる通信装置で実行されるプログラムは、コンピュータを上述した通信装置の各部として機能させうる。このコンピュータは、ＣＰＵ５１がコンピュータ読み取り可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【００７１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７２】
１００ａ〜１００ｃ  ノード
１０１  応答部
１０２  検証部
１０３  交渉部
１０４  生成部
２００ａ〜２００ｄ  アプリケーション
３００ａ〜３００ｄ  付加モジュール
３０１  発見部
３０２  検証部
３０３  交渉部
３０４  通信部
３５０  中継装置
３５１  中継部
３５２  トラフィック監視部
３５５  暗号処理部
３６０  通信装置
３７０  通信装置
【図１】
2014036322.tif 000003
【図２】
2014036322.tif 000004
【図３】
2014036322.tif 000005
【図４】
2014036322.tif 000006
【図５】
2014036322.tif 000007
【図６】
2014036322.tif 000008
【図７】
2014036322.tif 000009
【図８】
2014036322.tif 000010
【図９】
2014036322.tif 000011