(57)【要約】【課題】処理負荷が少なく、無駄な鍵の消費も少ない、高速な量子鍵配送システムに適した、効率的に動作する鍵配分方法を実現する。【解決手段】通信システムは、複数の通信装置を備える。通信装置それぞれは、鍵生成部と、同期処理部と、を備える。鍵生成部は、他の通信装置と共有する共有鍵を生成する。同期処理部は、予め定められた規則に基づいて、生成された共有鍵を利用する順序、および、生成された共有鍵を利用するときの役割の少なくとも一方を、他の通信装置との間で同期させる。【選択図】図５
2015179989.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信装置を備える通信システムであって、
前記通信装置それぞれは、
他の通信装置と共有する共有鍵を生成する鍵生成部と、
予め定められた規則に基づいて、生成された前記共有鍵を利用する順序、および、生成された前記共有鍵を利用するときの役割の少なくとも一方を、他の通信装置との間で同期させる同期処理部と、
を備える通信システム。
【請求項２】
前記同期処理部は、他の通信装置で暗号鍵に配分された共有鍵は復号鍵に配分し、他の通信装置で復号鍵に配分された共有鍵は暗号鍵に配分するように予め定められた規則に基づいて、生成された前記共有鍵を暗号鍵および復号鍵のいずれかに配分する、
請求項１に記載の通信システム。
【請求項３】
前記同期処理部は、予め定められた条件が満たされる場合に、暗号鍵に配分された前記共有鍵を復号鍵に配分し直す、または、復号鍵に配分された前記共有鍵を暗号鍵に配分し直す、
請求項２に記載の通信システム。
【請求項４】
前記同期処理部は、前記共有鍵を配分し直す処理の前に、前記共有鍵の利用を停止させ、前記共有鍵を配分し直す処理の後に、前記共有鍵の利用を許可する、
請求項３に記載の通信システム。
【請求項５】
前記同期処理部は、予め定められた条件が満たされる場合に、暗号鍵に配分された前記共有鍵と、復号鍵に配分された前記共有鍵とを、相互に入れ替える、
請求項２に記載の通信システム。
【請求項６】
前記同期処理部は、前記共有鍵を相互に入れ替える処理の前に、前記共有鍵の利用を停止させ、前記共有鍵を相互に入れ替える処理の後に、前記共有鍵の利用を許可する、
請求項３に記載の通信システム。
【請求項７】
前記通信装置それぞれは、
他の通信装置との間で量子鍵配送を行う複数の量子通信部をさらに備え、
前記鍵生成部は、複数の量子通信部それぞれに対応する複数の共有鍵を生成し、
前記同期処理部は、複数の共有鍵を利用する順序を定めた前記規則に基づいて、生成された複数の前記共有鍵を利用する順序を他の通信装置との間で同期させる、
請求項１に記載の通信システム。
【請求項８】
前記通信装置それぞれは、
他の通信装置との間で量子鍵配送を行う複数の量子通信部をさらに備え、
前記鍵生成部は、複数の量子通信部それぞれに対応する複数の共有鍵を生成し、
前記同期処理部は、他の通信装置で暗号鍵に配分された共有鍵は復号鍵に配分し、他の通信装置で復号鍵に配分された共有鍵は暗号鍵に配分するように予め定められた規則に基づいて、生成された複数の前記共有鍵を暗号鍵および復号鍵のいずれかに配分する、
請求項１に記載の通信システム。
【請求項９】
前記通信装置それぞれは、
他の通信装置との間で量子鍵配送を行う複数の量子通信部をさらに備え、
前記鍵生成部は、複数の量子通信部それぞれに対応する複数の共有鍵を生成し、
複数の前記共有鍵それぞれに対応し、対応する前記共有鍵を用いて暗号データ送受信を行う複数のインタフェース部をさらに備え、
前記同期処理部は、複数の前記インタフェース部のいずれを利用するかを定めた前記規則に基づいて、生成された複数の前記共有鍵を用いた暗号データ送受信を行う前記インタフェース部を他の通信装置との間で同期させる、
請求項１に記載の通信システム。
【請求項１０】
前記規則は、前記共有鍵が生成された時刻に応じて前記順序および前記役割の少なくとも一方を変更する規則である、
請求項１に記載の通信システム。
【請求項１１】
前記規則は、前記共有鍵を識別する識別情報に応じて前記順序および前記役割の少なくとも一方を変更する規則である、
請求項１に記載の通信システム。
【請求項１２】
前記規則は、前記順序および前記役割の少なくとも一方を変更する期間を定めた規則である、
請求項１に記載の通信システム。
【請求項１３】
前記同期処理部は、予め定められた条件が満たされる場合に、前記規則を変更し、変更した前記規則に基づいて前記順序および前記役割の少なくとも一方を、他の通信装置との間で同期させる、
請求項１に記載の通信システム。
【請求項１４】
前記鍵生成部は、量子鍵配送に基づき前記共有鍵を生成する、
請求項１に記載の通信システム。
【請求項１５】
複数の通信装置を備える通信システムで実行される通信方法であって、
前記通信装置それぞれが、他の通信装置と共有する共有鍵を生成する生成ステップと、
前記通信装置それぞれが、予め定められた規則に基づいて、生成された前記共有鍵を利用する順序、および、生成された前記共有鍵を利用するときの役割の少なくとも一方を、他の通信装置との間で同期させる同期処理ステップと、
を含む通信方法。
【請求項１６】
外部装置と共有する共有鍵を生成する鍵生成部と、
予め定められた規則に基づいて、生成された前記共有鍵を利用する順序、および、生成された前記共有鍵を利用するときの役割の少なくとも一方を、前記外部装置との間で同期させる同期処理部と、
を備える通信装置。
【請求項１７】
コンピュータを、
外部装置と共有する共有鍵を生成する鍵生成部と、
予め定められた規則に基づいて、生成された前記共有鍵を利用する順序、および、生成された前記共有鍵を利用するときの役割の少なくとも一方を、前記外部装置との間で同期させる同期処理部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、通信システム、通信装置、通信方法およびプログラムに関する。
【背景技術】
【０００２】
量子鍵配送技術（ＱＫＤ（Quantum  Key  Distribution））とは、光ファイバーで接続された、単一光子を連続的に送信する送信ノード（Ａｌｉｃｅ）と、この単一光子を受信する受信ノード（Ｂｏｂ）と、の間で、安全に暗号データ通信用の鍵を共有する手法である。なお、鍵を共有するためには、鍵蒸留と呼ばれる古典通信路を介した制御データ交換が、送信ノードと受信ノードとの間で行われる。ここで鍵とは、送信ノードと受信ノードとの間で共有される共有情報であり、また、デジタルデータからなる乱数列である。送信ノード（Ａｌｉｃｅ）および受信ノード（Ｂｏｂ）を、ノードと総称する。ここで共有される鍵は、量子力学の原理に基づいて、盗聴されていないことが保証されている。
【０００３】
量子鍵配送システムのシステム制御のためのプロトコルとして、Ｑ３Ｐ（Quantum  Point  to  Point  Protocol）が知られている。Ｑ３ＰにおけるＬＯＡＤサブプロトコルは、量子鍵配送によって生成格納した鍵を「Common  Store」と呼ばれる１つの格納領域で記憶し、ノード間で必要に応じて、鍵を暗号鍵および復号鍵のどちらとして使うか、の情報を決定するプロトコルである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５４２４００８号公報
【非特許文献】
【０００５】
【非特許文献１】Kollmitzer  C.,  Pivk  M.  （Eds.）,  Applied  Quantum  Cryptography,  Lect.  Notes  Phys.  797  （Springer,  Berlin  Heidelberg  2010）,  Chapter  8,  QKD  Networks  Based  on  Q3P,  pp.151-171,  DOI  10.1007/978-3-642-04831-9
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術では、処理負荷の増大、および、無駄な鍵の消費などの問題があった。例えば、鍵が生成されるごとにＬＯＡＤサブプロトコルのような処理を実行する必要があり、システム構成が複雑化する。また、最終的に鍵が利用できるまでの時間も増大する。また、プロトコルを安全に実行するために鍵を消費することになる。
【課題を解決するための手段】
【０００７】
実施形態の通信システムは、複数の通信装置を備える。通信装置それぞれは、鍵生成部と、同期処理部と、を備える。鍵生成部は、他の通信装置と共有する共有鍵を生成する。同期処理部は、予め定められた規則に基づいて、生成された共有鍵を利用する順序、および、生成された共有鍵を利用するときの役割の少なくとも一方を、他の通信装置との間で同期させる。
【図面の簡単な説明】
【０００８】
【図１】量子鍵配送システムの構成の一例を示す図。
【図２】鍵同期（鍵配分）の一例を説明する図。
【図３】Ｑ３Ｐにおける鍵の格納領域の構成例を示す図。
【図４】鍵同期の一例を示す図。
【図５】第１の実施形態の通信システムのブロック図。
【図６】第１の実施形態における通信処理のフローチャート。
【図７】第１の実施形態の鍵配分処理の具体例を説明する図。
【図８】鍵配分の具体例を示す図。
【図９】鍵配分の具体例を示す図。
【図１０】鍵配分の具体例を示す図。
【図１１】タイムスロットを決める方法の具体例を説明する図。
【図１２】第２の実施形態の量子鍵配送システムのブロック図。
【図１３】配分−統合手法を説明するための図。
【図１４】タイムスロットを決める方法の具体例を説明する図。
【図１５】ネットワークインタフェース設計の一例を示す図。
【図１６】実施形態にかかる通信装置のハードウェア構成図。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、この発明にかかる通信装置の好適な実施形態を詳細に説明する。
【００１０】
（第１の実施形態）
図１は、量子鍵配送システムの構成の一例を示す図である。量子鍵配送システムは、送信ノード１０と受信ノード２０とが、通信路３１、３２で接続された構成となっている。通信路３１は、光子を送受信する量子通信路である。通信路３２は、制御データを交換するための古典通信路である。
【００１１】
量子鍵配送技術により共有された鍵を用いて、ワンタイムパッドと呼ばれる暗号通信方式を利用して暗号データ通信を行うと、このときの暗号データは、如何なる知識を有する盗聴者によっても解読できないことが情報理論によって保証される。
【００１２】
ワンタイムパッドとは、送受信するデータと同じ長さの鍵を用いて暗号化および復号化を行い、一度用いた鍵は以後使わずに捨てる方式である。一方のノードで暗号鍵として用いたものを、他方では復号鍵として用いる必要がある。送信ノード１０から受信ノード２０への暗号データ送信と、受信ノード２０から送信ノード１０への暗号データ送信の両方を行うこと、すなわち、全二重での暗号データ通信を考える。この場合、ノード間で共有された鍵のうち、一方のノードで暗号鍵として利用するものを他方のノードでは復号鍵として利用するように、また、一方のノードで復号鍵として利用するものを他方のノードでは暗号鍵として利用するように、システム全体を制御する必要がある。この制御を以後、暗号鍵および復号鍵の鍵同期（鍵配分）とも称する。
【００１３】
図２は、鍵同期（鍵配分）の一例を説明する図である。送信ノード１０は、「AliceよりBobへ」というデータを暗号鍵で暗号化して受信ノード２０に送信する。この場合、受信ノード２０は、この暗号鍵に対応する復号鍵によって、受信したデータを復号する。同様に、受信ノード２０は、「BobよりAliceへ」というデータを別の暗号鍵で暗号化して送信ノード１０に送信する。この場合、送信ノード１０は、この別の暗号鍵に対応する復号鍵によって、受信したデータを復号する。
【００１４】
上記のように、鍵同期の制御のためのプロトコルとして、Ｑ３Ｐが知られている。Ｑ３ＰのＬＯＡＤサブプロトコルにより、鍵を暗号鍵および復号鍵のどちらとして使うかが決定される。
【００１５】
以下、Ｑ３ＰにおけるＬＯＡＤサブプロトコルについて説明する。図３は、Ｑ３Ｐにおける鍵の格納領域の構成例を示す図である。
【００１６】
接続されるノードは、事前に、一方がマスターに設定され、他方がスレーブに設定される。各ノードは、ピックアップ領域（Pickup  Store）と、共通領域（Common  Store）と、出力領域（Out  Buffer）と、入力領域（In  Buffer）と、を備える。ピックアップ領域は、量子鍵配送で生成した鍵を格納する領域である。共通領域は、ピックアップ領域から移動される鍵を格納する領域である。出力領域は、暗号鍵として利用するための鍵を格納する格納領域である。入力領域は、復号鍵として利用するための鍵を格納するための格納領域である。
【００１７】
一方のノードにおいて、出力領域に格納された鍵は、他方のノードでは入力領域に格納されるべきである。また一方のノードにおいて、入力領域に格納された鍵は、他方のノードでは出力領域に格納されるべきである。上位のアプリケーションは、データを暗号化して送信したい時は、出力領域から暗号鍵を取り出してこれを利用する。利用された暗号鍵は出力領域から削除される。また、上位のアプリケーションが、データを受信して復号化したい時は、入力領域から復号鍵を取り出してこれを利用する。利用された復号鍵は入力領域から削除される。
【００１８】
ノードは、自身の入力領域を監視しており、入力領域に格納されている復号鍵が減少してくると、共通領域に格納されている鍵を、自身の復号鍵とする（復号鍵を補充する）。また、相手のノードは、同じ共通領域に格納されている鍵を、暗号鍵とするように（暗号鍵を補充するように）制御する。この際に利用されるプロトコルがＬＯＡＤサブプロトコルである。ＬＯＡＤサブプロトコルは、マスターによって制御される。
【００１９】
マスターであるノードが、復号鍵を補充する際には、マスターからスレーブに、鍵の識別情報に相当する情報（鍵ＩＤ）、鍵のサイズ、および、認証情報を含んだプロトコルメッセージを送信する。プロトコルメッセージを受信したスレーブは、指定された鍵を暗号鍵として入力領域に格納し、認証情報を含んだ応答プロトコルメッセージを送信する。応答プロトコルメッセージを受信したマスターは、鍵ＩＤによって指定された鍵を復号鍵として出力領域に格納する。
【００２０】
一方、スレーブであるノードが、復号鍵を補充する際には、スレーブからマスターに対し、必要な鍵のサイズと認証情報とを含んだ、ＬＯＡＤサブプロトコル要求メッセージを送信する。これを受信したマスターはＬＯＡＤサブプロトコルを実行する。
【００２１】
以上により、量子鍵配送システムにおける鍵配分（すなわち、暗号鍵および復号鍵の鍵同期（鍵配分））がＱ３Ｐによって可能である。図３では、各ノードの共通領域から、入力領域および出力領域に向かう矢印が、鍵同期（鍵配分）の処理に相当する。
【００２２】
Ｑ３Ｐでは、複数の量子鍵配送装置を用いて、より多くの鍵を共有するシステムにおける鍵の同期についても考慮している。図４は、このようなシステムでの鍵同期の一例を示す図である。
【００２３】
図４に示すように、例えば送信ノードは、送信ノード機能を持つ量子鍵配送装置を２つ（送信機１０ａおよび送信機１０ｂ）備える。また、受信ノードは、受信ノード機能を持つ量子鍵配送装置を２つ（受信機２０ａおよび受信機２０ｂ）を備える。これにより、送信機１０ａと受信機２０ａによる量子鍵配送によって生成される鍵と、送信機１０ｂと受信機２０ｂによる量子鍵配送によって生成される鍵と、を同時に利用できるようになる。すなわち、２倍の速度および量の鍵を利用可能になる。
【００２４】
２つの鍵をどのような順序で使うかについて、送信ノード側と受信ノード側で合意しておく必要がある。このために必要な制御を、以後、複数ＱＫＤリンクの鍵同期（鍵統合）とも称する。
【００２５】
複数ＱＫＤリンクの鍵同期（鍵統合）のシステム制御のためのプロトコルとして、Ｑ３ＰではＳＴＯＲＥサブプロトコルを用いている。ＳＴＯＲＥサブプロトコルは、量子鍵配送によって生成格納した鍵をピックアップ領域でそれぞれ記憶し、ノード間で必要に応じて、どちらの鍵を共通領域に移動させるのか、を決定するプロトコルである。以下、Ｑ３ＰにおけるＳＴＯＲＥサブプロトコルについて説明する。
【００２６】
マスターは、スレーブに対して、ピックアップ領域の番号と、鍵ＩＤの情報とを少なくとも含むメッセージを通知する。スレーブはこのメッセージを受信すると、同じくピックアップ領域の番号と、鍵ＩＤの情報とを少なくとも含むメッセージを応答として送信する。マスターはこのメッセージを受信して「Acknowledge」のメッセージを応答として送信する。以上の手順により、番号で指定されたピックアップ領域から、鍵ＩＤで指定された鍵を共通領域に移動させる。
【００２７】
以上により、量子鍵配送システムにおいて、複数の量子鍵配送装置を用いた場合の鍵の統合（すなわち、複数ＱＫＤリンクの鍵同期（鍵統合））がＱ３Ｐによって可能である。
【００２８】
なお、当然ながら、量子鍵配送装置が送信ノードに１台、受信ノードに１台の一対のみの場合（図５の例など）、ＳＴＯＲＥサブプロトコルの実行（すなわち、複数ＱＫＤリンクの鍵同期（鍵統合））は不要であり、ＬＯＡＤサブプロトコルのみでよい。すなわち、ピックアップ領域を共通領域と考えてよい。
【００２９】
上述のＱ３Ｐを利用する一般的な鍵同期（鍵配分および鍵統合）手法には、以下のような課題がある。１つは、鍵が生成されるごとにプロトコルを実行する必要があるため、システム構成が複雑化し、手順が多くなり、最終的な暗号データ通信を行うために必要な暗号鍵および復号鍵が得られるまでに時間がかかる点である。鍵が利用できる速度（鍵生成レート）は、ワンタイムパッドを用いて暗号データ通信を行うシステムにおいて、データ通信のスループットを決定する重要なメトリックである。このため、鍵生成レートを低下させる要因は望ましくない。
【００３０】
もう１つは、上記とも関連するが、プロトコルを安全に実行するためには、少なくともプロトコルデータの詐称または改ざんを検出または回避する必要があること、そしてこのために、データ健全性認証のための認証情報をプロトコルデータに付加する必要がある点である。このため、プロトコルの実行の際に、「鍵」を消費することになる。従って、アプリケーションによる暗号データ通信に供しない鍵の消費が生じ、鍵の有効利用の観点から問題がある。
【００３１】
そこで、第１の実施形態にかかる通信装置は、処理負荷が少なく、無駄な鍵の消費も少ない、高速な量子鍵配送システムに適した、効率的に動作する鍵配分方法を実現する。
【００３２】
図５は、第１の実施形態の通信システム（量子鍵配送システム）の構成例を示すブロック図である。ここでは、量子鍵配送装置が一対である場合、すなわち、量子鍵配送システムにおける暗号鍵および復号鍵の鍵同期（鍵配分）のみが必要な場合における、構成要素について説明する。
【００３３】
ノード１００ａ、１００ｂは、鍵を共有する装置（通信装置）である。ノード１００ａ、１００ｂは、１つの量子鍵配送システムに２つ（一対）存在し、量子鍵配送技術によって、お互いに秘密裏に鍵を共有する。ノード１００ａ、１００ｂを区別する必要がない場合は単にノード１００という。ノード１００は、量子通信部１０１と、鍵生成部１０２と、データ通信部１０３と、同期処理部１０４と、補助プロトコル部１０５と、鍵記憶部１２１と、鍵利用部１０６と、を備えている。
【００３４】
鍵記憶部１２１は、鍵を記憶する記憶部である。上述のピックアップ領域、共通領域、出力領域、および、入力領域の少なくとも１つを鍵記憶部１２１に備えてもよい。
【００３５】
量子通信路は、ノード１００間を直接接続する通信路であって、一方のノード１００（送信ノードといってもよい）が単一光子の列を他方のノード１００（受信ノードといってもよい）に送信するために用いられる。以下では、送信側のノード１００を送信ノード、受信側のノード１００を受信ノードという場合がある。量子通信路には様々な通信メディアが利用可能であるが、例えば光ファイバーが利用できる。
【００３６】
量子通信部１０１は、量子通信路を介してノード１００間を接続する。量子通信部１０１は、例えば量子通信路を介して接続された他のノード１００（外部装置）との間で光子を送受信する。送信ノードは単一光子を連続的に送信し、受信ノードは単一光子を連続的に受信する。なお、量子通信部１０１は、量子鍵配送技術を実現するために必要な、光子の出力強度、タイミング、偏光、および、位相等の制御を行う。さらに、量子通信部１０１は、単一光子の送信や受信（検出）のために必要な光学装置を含んでいるものとする。
【００３７】
古典通信路は、ノード１００間でデジタルデータの通信を行うための通信路である。古典通信路には、インターネット等に用いられる様々な通信メディアが利用可能である。古典通信路上で交換されるデータは、盗聴と詐称のリスクがある。これを避けるためには、データの暗号化や認証が必要である。
【００３８】
鍵生成部１０２は、量子通信部１０１によって行った単一光子の送受信結果に基づいて、鍵（共有鍵）をノード１００間で生成および共有するために必要な処理を実行する。このために必要な処理は、量子鍵配送技術における、シフティング、誤り訂正、および、秘匿性増強と呼ばれる処理である。各処理では、それぞれ古典通信路を介して、ノード１００間で制御データを送受信する必要がある。ここで実施される処理（の一部）は鍵蒸留処理と呼ばれることもある。
【００３９】
鍵生成部１０２によって生成された鍵（共有鍵）は、後述の鍵記憶部１２１に格納されてもよいし、同期処理部１０４に受け渡されてもよい。鍵生成部１０２による制御データの送受信は、古典通信路上での詐称を避けるため、認証を行う必要がある。また、制御データに対して暗号化を行ってもよい。この制御データの認証および暗号化は、鍵記憶部１２１に格納された鍵を用いて、データ通信部１０３によって実施される。
【００４０】
データ通信部１０３は、古典通信路を介してノード１００間を接続する。データ通信部１０３は、例えばノード１００間において、鍵生成部１０２が鍵を生成するための処理を実施する上で必要な制御データの交換を行う際に利用される。これらの通信は、鍵記憶部１２１に格納された鍵を利用して暗号化や認証を行うことができる。
【００４１】
なお、最初の鍵を生成する手順を考えると、まだ鍵を生成していない段階で、鍵生成部１０２の制御データの送受信のために鍵が必要となる。このため、例えば鍵記憶部１２１には、予め鍵として利用できる共有情報（乱数情報等）を記憶しておき、共有情報を利用して制御データの暗号化および認証を行ってもよい。また、システム起動時に、ノード１００の接続認証のために、同様に予め記憶しておいた共有情報を用いて、接続先のノード１００の認証（接続先のノード１００が正しいか否かの確認）を行ってもよい。
【００４２】
データ通信部１０３はまた、鍵利用部１０６が、暗号データ通信を行う際にも利用される。この場合も、鍵記憶部１２１に格納された鍵を利用して暗号化や認証を行う。データ通信部１０３はさらに、後述する補助プロトコル部１０５におけるプロトコルの交換にも利用される。このトラフィックに対しても、鍵記憶部１２１に格納された鍵を利用した暗号化や認証を利用してよい。
【００４３】
同期処理部１０４は、予め定められた規則に基づいて、生成された鍵を利用するときの役割を他の通信装置との間で同期させる同期処理（上記の暗号鍵および復号鍵の鍵同期（鍵配分））を行う。鍵配分とは、鍵生成部１０２によって生成し結果として鍵記憶部１２１にて記憶される鍵を、鍵生成部１０２における制御データの交換、鍵利用部１０６による暗号データ通信、および、補助プロトコル部１０５によるトラフィック等で利用される暗号鍵および復号鍵として関連付ける処理である。
【００４４】
鍵配分は、ある鍵ＩＤで特定される鍵に関して、一方のノード１００で暗号鍵として関連付けたものが、他方では復号鍵であるとして関連付けられるようにする処理である（暗号鍵および復号鍵の鍵同期（鍵配分））。同期処理部１０４において鍵配分を行うタイミングには以下の（Ａ１）、（Ａ２）、（Ａ３）などのバリエーションがある。このうちいずれの方法を適用してもよい。同期処理部１０４の具体的な動作は後述する。
（Ａ１）鍵生成部１０２から生成された鍵を受け取り、関連付けを行った上で鍵記憶部１２１に格納する方法
（Ａ２）既に鍵記憶部１２１に格納されている鍵に対して関連付ける方法
（Ａ３）鍵利用部１０６が鍵記憶部１２１から鍵を取得する際に関連付ける方法
【００４５】
補助プロトコル部１０５は、同期処理部１０４によって鍵配分を実行するために利用される。補助プロトコル部１０５を備えないように構成してもよい。補助プロトコル部１０５は、データ通信部１０３を介してトラフィックを交換してもよい。また、このときのトラフィックは認証されてもよいし、暗号化されてもよい。補助プロトコル部１０５の具体的な動作は後述する。
【００４６】
鍵記憶部１２１は、鍵生成部１０２によって生成された鍵を記憶する。鍵は、鍵ＩＤと関連付けて記憶される。また、鍵記憶部１２１は、システム起動時の接続認証、および、最初の鍵生成用の制御データ認証等のために、鍵生成部１０２が生成した鍵以外の鍵を記憶していてもよい。また、鍵記憶部１２１では、鍵を、少なくとも「暗号鍵」や「復号鍵」を含む役割と関連付けておくことができる。鍵に関連付けることができる役割はこれに限られるものではない。例えば、データ認証のみに利用する「認証鍵」やノード１００の接続認証に利用する「接続認証鍵」等があってもよい。なお、関連付けの方法には以下の（Ｂ１）、（Ｂ２）、（Ｂ３）などのバリエーションがある。このうちいずれの方法を適用してもよい。
（Ｂ１）個別の鍵または鍵ＩＤと役割情報との対応関係のテーブルを作成する方法
（Ｂ２）役割ごとに異なる格納領域（バッファ等）を用意してそこに鍵または鍵ＩＤを格納する方法
（Ｂ３）役割ごとに、関連付けられる鍵ＩＤを算出可能な演算（算出式や算出ルール等）を定めておく方法
これらの関連付けは同期処理部１０４によって行われる。
【００４７】
鍵利用部１０６は、鍵記憶部１２１に記憶された鍵を利用してデータ通信部１０３を介して古典通信路上で暗号データ通信を行う。鍵利用部１０６は、量子鍵配送システムにおけるアプリケーションであると考えてもよい。鍵利用部１０６は、データを暗号化して送信したいときは暗号鍵として関連付けられた鍵を利用し、暗号化されたデータを受信して復号化したいときは復号鍵として関連付けられた鍵を利用する。
【００４８】
量子通信部１０１、鍵生成部１０２、データ通信部１０３、同期処理部１０４、補助プロトコル部１０５、および、鍵利用部１０６は、例えば、ＣＰＵ（Central  Processing  Unit）などの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、ＩＣ（Integrated  Circuit）などのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。また、量子通信部１０１の一部は、光子の送受信を実現するために光回路装置によって実現してもよい。
【００４９】
鍵記憶部１２１は、ＨＤＤ（Hard  Disk  Drive）、光ディスク、メモリカード、ＲＡＭ（Random  Access  Memory）などの一般的に利用されているあらゆる記憶媒体により構成することができる。
【００５０】
次に、このように構成された第１の実施形態にかかるノード１００による通信処理について図６を用いて説明する。図６は、第１の実施形態における通信処理の一例を示すフローチャートである。
【００５１】
ノード１００の鍵生成部１０２は、予め定められた規則（ルール）に従い鍵を生成する（ステップＳ１０１）。鍵生成部１０２は、生成した鍵を鍵記憶部１２１に記憶する（ステップＳ１０２）。鍵利用部１０６は、記憶された鍵を利用してデータを送受信する（ステップＳ１０３）。利用する鍵は、上記（Ａ１）〜（Ａ３）に示す方法によって、同期処理部１０４によって配分される。
【００５２】
以下、同期処理部１０４にて実施される鍵配分方法のバリエーションを説明する。
【００５３】
まず、鍵生成部１０２は、生成した鍵を、そのまま鍵ＩＤと共に鍵記憶部１２１にて記憶させる。鍵利用部１０６が鍵を利用する際に同期処理部１０４が機能する。同期処理部１０４は、鍵利用部１０６が暗号鍵を必要としている場合には、暗号鍵として関連付けた鍵を提供し、鍵利用部１０６が復号鍵を必要としている場合には、復号鍵として関連付けた鍵を提供する。この鍵配分方法は、上述のバリエーション（Ａ３）に相当する。バリエーション（Ａ１）および（Ａ２）のように事前に関連付けることも可能である。
【００５４】
同期処理部１０４は、例えば、鍵ＩＤが偶数である鍵については暗号鍵に関連付けて取り扱い、鍵ＩＤが奇数である鍵については復号鍵に関連付けて取り扱う。当然、このように動作する同期処理部１０４を持つノード１００の通信相手となる他方のノード１００における同期処理部１０４はこの逆の手順で関連付けを行う。すなわち、他のノード１００の同期処理部１０４は、鍵ＩＤが偶数である鍵については復号鍵に関連付けて取り扱い、鍵ＩＤが奇数である鍵については暗号鍵に関連付けて取り扱う。
【００５５】
図７は、第１の実施形態の鍵配分処理の具体例を説明する図である。ノード１００ａ（上記例では「他のノード１００」に相当）は、鍵ＩＤが奇数であるＩＤ００１、ＩＤ００３の鍵は暗号鍵に配分する（暗号鍵に関連付ける）。そして、ノード１００ａは、鍵ＩＤが偶数であるＩＤ００２、ＩＤ００４の鍵は復号鍵に配分する。逆にノード１００ｂは、鍵ＩＤが奇数であるＩＤ００１、ＩＤ００３の鍵は復号鍵に配分する。そして、ノード１００ｂは、鍵ＩＤが偶数であるＩＤ００２、ＩＤ００４の鍵は暗号鍵に配分する。
【００５６】
このように、本実施形態では、同期処理部１０４において、事前に鍵ＩＤと関連付けのルールについて決定しておく。これにより、同期処理部１０４は、例えばＱ３Ｐなどのような複雑なプロトコル処理を実行することなく、さらに、プロトコル実行のために追加の鍵消費をすることなく、高速に鍵配分を行うことができる。
【００５７】
なお、事前に決定しておく「鍵ＩＤと関連付けのルール」については、鍵ＩＤに関する偶数と奇数の関係を用いる以外にも様々なものが考えられる。
【００５８】
例えば鍵ＩＤを事前にノード１００間で合意した特定の数で割った余りを参照し、余りの値に応じて、一方のノード１００では、その鍵ＩＤが指す鍵を暗号鍵と関連付け、他方のノード１００ではその鍵ＩＤが指す鍵を復号鍵と関連付ける、という方式も可能である。
【００５９】
また、極端な例として、すべての鍵について、一方のノード１００では暗号鍵と関連付け、他方のノード１００では復号鍵と関連付ける、ということも可能である。
【００６０】
この他、関連付けるのは鍵ＩＤだけでなく、例えば鍵の生成時刻と関連付ける方法も可能である。例えば、ある時刻Ｘから時刻Ｙまでに生成された鍵については、一方のノード１００では暗号鍵と関連付け、他方のノード１００では復号鍵と関連付け、時刻Ｙから時刻Ｚまでに生成された鍵については、一方のノード１００では復号鍵と関連付け、他方のノード１００では暗号鍵と関連付ける、ということも可能である。
【００６１】
ここで述べた例はバリエーション（Ｂ３）であるが、同時にバリエーション（Ｂ１）やバリエーション（Ｂ２）のような関連付けであってもよい。
【００６２】
ただし、このような単純な鍵配分のルールでは、システム実行中に発生する役割ごとの鍵の不足やアンバランスに対応することができない場合がある。例えば、鍵ＩＤに関する偶数と奇数の関係によって暗号鍵と復号鍵を対応付ける「ルール」が採用されたとする。そして、一方のノード１００が、データの送信を大量に行うが受信をあまり行わない、すなわち、一方向にデータを大量に送信するとする。このような場合、このノード１００における暗号鍵は大量に消費されるが、復号鍵はほとんど消費されない、という状況になる。
【００６３】
結果として、復号鍵と関連付けた鍵は余っているが、暗号鍵と関連付けた鍵がないため、暗号データ通信ができない、ということになる。すなわち、鍵ＩＤに関する偶数と奇数の関係によって暗号鍵と復号鍵を対応付ける「ルール」を採用する場合、一方向にデータを大量に送信すると、鍵生成部１０２における鍵生成速度に対して、その半分の鍵しか有効に利用できないことになる。
【００６４】
この課題を克服する方法として、以下の（Ｃ１）および（Ｃ２）の方法がある。
（Ｃ１）鍵記憶部１２１において、役割ごとの鍵の残量を考慮して変化するような複雑なルールを採用する方法
（Ｃ２）予め定められた条件を満たす場合に、補助プロトコルを実行することで、役割ごとの鍵の残量のアンバランスを解消するように制御する方法
【００６５】
まず（Ｃ１）の方法について述べる。ここでは、「ルール」の記述が上述の例よりも複雑になる。（Ｃ１）の方法では、例えば、暗号鍵と復号鍵の残量の差が、ある事前に合意された閾値を上回って、暗号鍵が少なくなった場合、暗号鍵に関連付ける鍵と復号鍵に関連付ける鍵の割合を、暗号鍵に関連付ける鍵が多くなるように変更し、復号鍵が少なくなった場合、復号鍵に関連付ける鍵が多くなるように変更する。
【００６６】
以下にルールの記述例を示す。なお、Ｅは暗号鍵と関連付けた鍵の残量、Ｄは、復号鍵と関連付けた鍵の残量、Ｘ１は、暗号鍵がより多いと判断する閾値、Ｘ２は、復号鍵がより多いと判断する閾値である。
（ルール）
Ｉｆ  Ｘ１＜（Ｅ−Ｄ）＃ＥがＤよりもＸ１以上多い場合
鍵ＩＤを３で割った余りが０なら暗号鍵とし、余りが１または２なら復号鍵とする。
Ｅｌｓｅ  ｉｆ（Ｅ−Ｄ）＜−Ｘ２＃ＤがＥよりもＸ２以上多い場合
鍵ＩＤを３で割った余りが０または１なら暗号鍵とし、２なら復号鍵とする。
Ｅｌｓｅ
鍵ＩＤを２で割った余りが０なら暗号鍵とし、１なら復号鍵とする。
【００６７】
このルールでは、暗号鍵が復号鍵より一定以上多くなった場合は、暗号鍵に関連付ける鍵と復号鍵に関連付ける鍵の割合を１：２とする。また、復号鍵が暗号鍵より一定以上多くなった場合は、暗号鍵に関連付ける鍵と復号鍵に関連付ける鍵の割合を２：１とする。いずれでもない場合（すなわち暗号鍵に関連付ける鍵と復号鍵に関連付ける鍵の数の差が一定以内である場合）は、暗号鍵に関連付ける鍵と復号鍵に関連付ける鍵の割合を１：１とする。
【００６８】
このように、関連付けた鍵残量の差に応じて、鍵を関連付ける役割（暗号鍵や復号鍵）の割合を変化させるようなルールを事前に合意しておくことで、同期処理部１０４は、鍵を消費するプロトコル処理を一切行わずに、役割ごとの鍵の不足やアンバランスに対応し、これを是正することが可能となる。すなわち、一方のノード１００が、データの送信を大量に行うが受信をあまり行わない場合、すなわち、一方向にデータを大量に送信するような場合であっても、効率的に鍵の配分を行うことができる。
【００６９】
なお、ここで述べたルールは一例であり、例えば残量の差でなく残量の絶対値を用いて鍵を関連付ける役割（暗号鍵や復号鍵）の割合を変化させるようなルールであってもよい。また、鍵を関連付ける役割の割合を３通りに変化させるルールであったが、４通り以上に条件分岐するようなルールであってもよい。なお、（Ｃ１）の例は、鍵配分タイミングに関しては、バリエーション（Ａ１）である。また、鍵関連付け方法に関しては、バリエーション（Ｂ１）またはバリエーション（Ｂ２）である。
【００７０】
次に、（Ｃ２）の方法について述べる。ここでは、ある一方のノード１００（Ｑ３Ｐにならってマスターと呼ぶ）が、予め定められた条件に基づいて、他方のノード１００（すなわちスレーブ）との間で補助プロトコル（すなわち制御メッセージの交換）を行うことによって、システム実行中に発生する役割ごとの鍵の不足やアンバランスに対応する。補助プロトコルは、補助プロトコル部１０５を用いて実現される。
【００７１】
予め定められた条件とは、例えば、（Ｃ１）で説明したように、役割ごとの鍵残量の絶対値または差の値がある閾値を超えた場合であってもよいし、鍵生成部１０２によって鍵が一定数生成された場合であってもよいし、一定時間経過した場合であってもよい。これらの条件において、実行される補助プロトコルには以下の（Ｃ２−Ａ）、（Ｃ２−Ｂ）、（Ｃ２−Ｃ）のバリエーションがある。
（Ｃ２−Ａ）鍵ＩＤに対して関連付ける役割を決定するルールを変更する指示を、マスターからスレーブに通知する。
（Ｃ２−Ｂ）既に暗号鍵に関連付けられた鍵の一部を、復号鍵として関連付け直す（逆に復号鍵に関連付けられた鍵の一部を、暗号鍵として関連付け直してもよい）。
（Ｃ２−Ｃ）暗号鍵に関連付けられた鍵と復号鍵に関連付けられた鍵とを入れ替える、の３通りが考えられる。
【００７２】
（Ｃ２−Ａ）について説明する。図８は、（Ｃ２−Ａ）の場合の鍵配分の具体例を示す図である。
【００７３】
マスター（ノード１００ａ）は、補助プロトコルとして、鍵ＩＤと役割との関連付けに関する新しいルールを示す情報と、その新しいルールを適用し始める最初の鍵の鍵ＩＤに関する情報、を含むメッセージをスレーブ（ノード１００ｂ）に通知する（ステップＳ８０１）。スレーブは、このメッセージに対して応答する（ステップＳ８０２）。その後、マスターおよびスレーブは、通知された鍵ＩＤ以降の鍵ＩＤを持つ鍵の関連付けの際には、通知された新しいルールを参照して実行する。
【００７４】
ルールとしては、例えば、上述の例と同様の以下のような単純なルールを用いることができる。
・鍵ＩＤに関する偶数と奇数の関係を用いるルール
・鍵ＩＤを通知した特定の数で割った余りを参照し、余りの値に応じて、一方のノード１００では、その鍵ＩＤが指す鍵を暗号鍵と関連付け、他方のノード１００ではその鍵ＩＤが指す鍵を復号鍵と関連付けるルール
・すべての鍵について一方のノード１００では暗号鍵と関連付け他方のノード１００では復号鍵と関連付けるルール
【００７５】
このように単純なルールを、補助プロトコルによって指示して変更しながら運用することで、役割ごとの鍵の不足やアンバランスに対応し、これを是正することが可能となる。（Ｃ２）の方法は、（Ｃ１）の方法と比較すると、ルールを変更する基準となる鍵ＩＤに関する情報を明示的にノード１００間で交換することができる。このため、鍵生成部１０２におけるノード１００間の鍵生成タイミングのずれなどによって発生しうる鍵配分の失敗が発生することがないメリットがある。
【００７６】
なお、（Ｃ２−Ａ）の例は、上述の鍵配分タイミングに関しては、バリエーション（Ａ１）である。また、上述の鍵関連付け方法に関しては、バリエーション（Ｂ１）またはバリエーション（Ｂ２）である。
【００７７】
（Ｃ２−Ｂ）について説明する。図９は、（Ｃ２−Ｂ）の場合の鍵配分の具体例を示す図である。
【００７８】
マスター（ノード１００ａ）は補助プロトコルとして、ある役割として既に関連付けられている鍵の範囲を示す情報（すなわち、鍵ＩＤの開始と鍵ＩＤの終了、または、鍵ＩＤを示す算出式）と、その鍵を新たに関連付ける役割の情報（例えば、暗号鍵、や復号鍵、等）を含むメッセージをスレーブ（ノード１００ｂ）に通知する（ステップＳ９０１）。スレーブはこれに応答する（ステップＳ９０２）。
【００７９】
これによって、例えば、マスターにおいて、暗号鍵に余裕があり、復号鍵が不足している場合、暗号鍵の一部を復号鍵として関連付け直す。同様に、スレーブにおいても、対応する関連付けとして、復号鍵の一部を暗号鍵として関連付け直す。これによって、マスターにおいては復号鍵の不足を補いスレーブにおいては暗号鍵の不足を補い、結果として役割ごとの鍵の不足やアンバランスに対応し、これを是正することが可能となる。
【００８０】
なお、（Ｃ２−Ｂ）の例は、上述の鍵配分タイミングに関しては、バリエーション（Ａ１）および（Ａ２）である。すなわち、最初に鍵生成部１０２が鍵を生成して鍵記憶部１２１に格納する際に、関連付けを（（Ｃ１）の方法で述べたような一定のルールに基づいて）行っておく（バリエーション（Ａ１）に相当）。また、記憶プロトコルを利用して、既に鍵記憶部１２１に格納されている鍵の関連付けを再度行う（バリエーション（Ａ２）に相当）。また、上述の鍵関連付け方法に関しては、バリエーション（Ｂ１）またはバリエーション（Ｂ２）である。
【００８１】
（Ｃ２−Ｃ）について説明する。図１０は、（Ｃ２−Ｃ）の場合の鍵配分の具体例を示す図である。
【００８２】
マスター（ノード１００ａ）は補助プロトコルとして、関連付けを反転する対象となる役割を示す情報（例えば、暗号鍵と復号鍵）を含むメッセージをスレーブに通知する（ステップＳ１００３）。スレーブはこれに応答する（ステップＳ１００４）。これによって、マスターおよびスレーブにおいて、余っている役割に関連付けられていた鍵が、不足している（足りない）役割に関連付けられ、逆に、不足している役割に関連付けられていた鍵が、余っている（余り必要でない）役割に関連付けられる。結果として役割ごとの鍵の不足やアンバランスに対応し、これを是正することが可能となる。
【００８３】
なお、（Ｃ２−Ｃ）の例は、上述の鍵配分タイミングに関しては、バリエーション（Ａ１）および（Ａ２）である。すなわち、最初に鍵生成部１０２が鍵を生成して鍵記憶部１２１に格納する際に、関連付けを（（Ｃ１）の方法で述べたような一定のルールに基づいて）行っておく（バリエーション（Ａ１）に相当）。また、記憶プロトコルを利用して、既に鍵記憶部１２１に格納されている鍵の関連付けを再度行う（バリエーション（Ａ２）に相当）。また、上述の鍵関連付け方法に関しては、バリエーション（Ｂ１）またはバリエーション（Ｂ２）である。
【００８４】
なお、（Ｃ２−Ｃ）によって鍵の関連付けをすべて変更する場合や、（Ｃ２−Ｂ）において関連付けを変更する鍵ＩＤの指定の仕方によっては、鍵利用部１０６により暗号データ通信に鍵が利用されるタイミングと鍵の関連付けを変更するタイミングが、一方のノード１００と他方のノード１００とで異なり、鍵配分の結果がノード１００間で異なってしまうおそれがある。
【００８５】
このような状況を避けるために、（Ｃ２−Ｃ）または（Ｃ２−Ｂ）において、補助プロトコルを実行する前後で、鍵記憶部１２１からの鍵の払い出し（すなわち、鍵利用部１０６や鍵生成部１０２への鍵提供）を停止してもよい。図１０では、補助プロトコル実行前に鍵の払い出し停止のシーケンスを行い（ステップＳ１００１、ステップＳ１００２）、補助プロトコル実行後に鍵の払い出し有効化（払い出しの許可）のシーケンスを行う（ステップＳ１００５、ステップＳ１００６）手順も示している。
【００８６】
以上により、送信ノードと受信ノードとの間で暗号鍵および復号鍵の鍵配分を、処理負荷が少なく、無駄な鍵の消費も少ない形で実施することができる。なお、以上述べてきた補助プロトコルや鍵の払い出し有効化および停止を制御するプロトコルのフォーマットは特に限定しない。そのため、Ｑ３Ｐで用いられるＬＯＡＤプロトコルおよびＳＴＯＲＥプロトコルで用いられるものと同様のプロトコルフォーマットを用いても構わないし、それ以外のプロトコルフォーマットを用いても構わない。
【００８７】
なお、上記のように暗号鍵および復号鍵の鍵配分を行う方法の他、鍵を利用可能なタイムスロットを、予めノード１００ごとに決めておくという方法も可能である。すなわち、一方のノード１００が鍵を暗号鍵として利用可能なタイミング（タイムスロット）を決めておき、そのタイムスロットにおいては、該当ノード１００が共通領域にある鍵を暗号鍵として利用し、他方のノード１００は鍵を復号鍵として利用する。そして、次のタイムスロットにおいては、他方のノード１００が鍵を暗号鍵として利用し、一方のノード１００が鍵を復号鍵として利用する。このように制御することによっても、同期処理部１０４は、例えばＱ３Ｐなどのような複雑なプロトコル処理を実行することなく、さらに、プロトコル実行のために追加の鍵消費をすることなく、高速に鍵配分を行うことができる。
【００８８】
図１１は、タイムスロットを決める方法の具体例を説明する図である。ＴＳ１およびＴＳ３は、ノード１００ａ（送信ノード）が鍵を暗号鍵として利用し、ノード１００ｂ（受信ノード）が鍵を復号鍵として利用するタイムスロットを表す。ＴＳ２は、ノード１００ｂが鍵を暗号鍵として利用し、ノード１００ａが鍵を復号鍵として利用するタイムスロットを表す。
【００８９】
このタイムスロットを用いる方法においても、システム実行中に役割ごとの鍵の不足やアンバランスが発生する恐れがある。このような場合、例えば上述の（Ｃ１）の方法によって、ノード１００に付与するタイムスロットの時間幅を調整することで、対応が可能である。
【００９０】
ただし、ここで述べた方法では、アプリケーションが任意のタイミングで暗号鍵や復号鍵を利用できない。このため、アプリケーションによる暗号データ送受信実行が遅延する可能性がある。また、システムを安全に動作させるためには、有効なタイムスロット以外にもガードタイム（図１１ではＧＴ１、ＧＴ２）を設ける必要がある。
【００９１】
（第２の実施形態）
第２の実施形態では、複数の量子鍵配送装置を備える場合の鍵配分について説明する。以下では、量子通信部が量子鍵配送装置に相当するものとして説明する。なお、例えば第１の実施形態のノード全体が量子鍵配送装置に相当すると解釈しても、以下と同様の機能が実現できる。第２の実施形態も、第１の実施形態と同様に、鍵配分のためのプロトコル実行をなくし、鍵配分に必要な処理負荷および無駄な鍵の消費を抑えることができる。
【００９２】
図１２は、第２の実施形態の量子鍵配送システムの構成例を示すブロック図である。第２の実施形態のノード１００−２は、量子通信部１０１−１、１０１−２と、鍵生成部１０２と、データ通信部１０３と、同期処理部１０４−２と、補助プロトコル部１０５と、鍵記憶部１２１と、鍵利用部１０６と、を備えている。第１の実施形態とは、以下の点が異なる。その他の構成は、第１の実施形態と同様であるため同一の符号を付し説明を省略する。
【００９３】
１つ目の違いは、各ノード１００−２における量子通信部が複数存在する点である（量子通信部１０１−１、１０１−２）。このような構成により、量子鍵配送を複数並行に実施することが可能となる。結果として、第１の実施形態に比べてより高速に大量の鍵を共有することが可能になる。また、ここでは図示しないが、このとき、各量子通信部（量子通信部１０１−１、１０１−２）によって行われる単一光子通信の結果から鍵を効率的に生成するために、鍵生成部１０２、データ通信部１０３、付随する量子通信路および古典通信路の少なくとも１つが、それぞれ複数備えられてもよい。なお、図１２では２つの量子通信部１０１−１、１０１−２を備える例を示しているが、３以上の量子通信部を備えてもよい。
【００９４】
２つ目の違いは、同期処理部１０４−２の機能が変更される点である。同期処理部１０４−２は、第１の実施形態で説明したような、暗号鍵および復号鍵の鍵同期（鍵配分）の機能に加え、複数ＱＫＤリンクの鍵同期（鍵統合）の機能を備える。後者について、以下に説明する。
【００９５】
複数ＱＫＤリンクの鍵同期（鍵統合）のために、同期処理部１０４−２にて実施される鍵配分方法および統合方法のバリエーションを示す。方法は大きく２つに分けられる。
【００９６】
１つ目は、Ｑ３Ｐと同じように、先に複数の量子鍵配送によって生成された鍵を１つに統合し、その後、暗号鍵および復号鍵に配分する方法（統合−配分手法）である。この方法は、図４で説明した方法と同様の方法である。
【００９７】
２つ目は、Ｑ３Ｐと異なり、先に各量子鍵配送によって生成された鍵を、暗号鍵および復号鍵に配分し、その後、複数の量子鍵配送によって関連付けられている暗号鍵を１つに統合し、また、複数の量子鍵配送によって関連付けられている復号鍵を１つに統合する方法である（配分−統合手法）。この方法は、後述の図１３で説明する。
【００９８】
まず、最初の方法（統合−配分手法）について、図４と図１２とを用いて説明する。
【００９９】
単一の量子鍵配送によって共有される鍵が格納される鍵記憶領域を、Ｑ３Ｐにならってピックアップ領域と呼ぶことにする。鍵記憶部１２１には、複数のピックアップ領域が存在する。複数のピックアップ領域で記憶されている鍵を、ノード１００−２に１つ存在する鍵記憶領域（共通領域）に記憶する。その後、共通領域に記憶されている鍵を、暗号鍵および復号鍵に配分する手順となる。共通領域に記憶されている鍵を、暗号鍵および復号鍵に配分する手順は第１の実施形態（暗号鍵および復号鍵の鍵同期（鍵配分））において説明した通りである。ここでは、ピックアップ領域の鍵を共通領域に移動させる方法（複数ＱＫＤリンクの鍵同期（鍵統合））について説明する。
【０１００】
このような方法として、どのピックアップ領域に格納された鍵から順番に共通領域に移動させるかのルール（鍵を利用する順序を定めたルール）を予めノード１００−２において決めておく方法が適用できる。
【０１０１】
例えば、２つのピックアップ領域（領域Ｐ１、領域Ｐ２とする）が存在する（量子鍵配送を二対動作させている）ものとする。このとき最初に領域Ｐ１に格納された一番目の鍵を共通領域に移動させ、次に領域Ｐ２に格納された一番目の鍵を共通領域に移動させ、次に領域Ｐ１に格納された二番目の鍵を共通領域に移動させる、という手順を繰り返すルールが適用できる。
【０１０２】
領域Ｐ１およびＰ２それぞれから移動させる鍵の量は均等である必要はない。例えば、領域Ｐ１から２つ分の鍵を移動させた後に領域Ｐ２から１つ分の鍵を移動させる、というルールも可能である。極端な場合として、常に領域Ｐ１からの鍵のみ共通領域に移動させ領域Ｐ２の鍵は共通領域に移動させない、というルールも可能である。
【０１０３】
各量子鍵配送における鍵生成速度の平均値を反映させた比率によって、各ピックアップ領域から鍵を移動させる量の比率が決定されてもよい。このように、同期処理部１０４−２は、事前に鍵選択および移動のルールについて決定しておくことで、例えばＱ３Ｐなどのような複雑なプロトコル処理を実行することなく、さらに、プロトコル実行のために追加の鍵消費をすることなく、高速に鍵統合を行うことができる。
【０１０４】
一方、このような単純な鍵統合のルールでは、システム実行中に発生する量子鍵配送装置の鍵生成量の低減（落ち込み）や変動に対応することが難しいと一般には考えられる。ただし、ここで量子鍵配送装置が設置される環境、および、光ファイバーが経由する経路等は、量子鍵配送装置ごとにほとんど相違しないと考えられる。そのため、上述のような単純なルールであっても、多くの場合、問題なく動作すると考えられる。
【０１０５】
しかし、実際に量子鍵配送装置ごとに、異なる比率で鍵生成量の低減（落ち込み）や変動が発生する可能性もある。例えば、領域Ｐ１と領域Ｐ２から順番に鍵を移動させる「ルール」が採用されたとする。両方のチャネルが安定していたり、同じように変動していたりする場合は問題ないが、一方の量子鍵配送装置において、鍵生成速度が低下したとする。このような場合、一方のピックアップ領域には鍵が余っているが、他方のピックアップ領域が空であるために鍵を共通領域に移動させることができない、という状況になる。
【０１０６】
この課題を克服する方法として、以下の（Ｄ１）および（Ｄ２）の方法がある。
（Ｄ１）鍵記憶部１２１において、ピックアップ領域ごとの鍵の残量を考慮して変化するような複雑なルールを採用する方法
（Ｄ２）予め定められた条件を満たす場合に、補助プロトコルを実行することで、ピックアップ領域ごとの鍵の残量のアンバランスを解消するように制御する方法
【０１０７】
（Ｄ１）の方法については、第１の実施形態の（Ｃ１）に記載した内容と類似の方法となる。すなわち、例えば、領域Ｐ１の鍵残量と領域Ｐ２の鍵残量の差がある事前に合意された閾値を上回った場合、領域Ｐ１および領域Ｐ２から移動させる鍵の比率を変更し、鍵残量が少ないピックアップ領域から移動させる鍵の量を少なくするように変更する。
【０１０８】
次に、（Ｄ２）の方法について述べる。これは、第１の実施形態の（Ｃ２）に記載した内容と類似の方法となる。例えば（Ｄ２）は、第１の実施形態に記載した（Ｃ２−Ａ）に相当する方法、すなわち、ピックアップ領域から共通領域に移動させる鍵を選択する順番に関するルールを変更する指示を、マスターからスレーブに通知する、方法となる。
【０１０９】
以上により、複数の量子鍵配送装置によって生成される鍵の統合を、処理負荷が少なく、無駄な鍵の消費も少ない形で実施することができる。
【０１１０】
次に、別の方法である（配分−統合手法）について説明する。図１３は、配分−統合手法を説明するための図である。
【０１１１】
二対の量子鍵配送を行う場合、ノード１００−２には、２つの出力領域（領域Ｏ１、領域Ｏ２とする）が存在する。領域Ｏ１およびＯ２は、それぞれ領域Ｐ１およびＰ２に由来する出力領域（Out  Buffer）である。同様に、ノード１００−２には、２つの入力領域（領域Ｉ１、領域Ｉ２とする）が存在する。領域Ｉ１およびＩ２は、それぞれ領域Ｐ１およびＰ２に由来する入力領域（In  Buffer）である。
【０１１２】
暗号データの送信を行うときは、領域Ｏ１と領域Ｏ２の鍵を、ノード１００−２間で「事前に決めたルール」に従って利用する。暗号データの受信を行うときは、領域Ｉ１と領域Ｉ２の鍵を、ノード１００−２間で「事前に決めたルール」に従って利用する。例えば図１３に示すように、送信時は領域Ｏ１および領域Ｏ２の鍵は暗号鍵として用いられ、受信時は領域Ｉ１および領域Ｉ２の鍵は復号鍵として用いられる。
【０１１３】
これらのルールの取り決めについては、統合−配分手法で説明したものと同じ統合方法が利用できる。なお、このように入力領域や出力領域を利用する順序を取り決めておけば、統合するためのバッファを設ける必要はなく、「事前に決められたルール」に基づいて、複数の入力領域や出力領域から順に鍵を利用または消費していけばよい。
【０１１４】
さらに、ルールとしては、利用する鍵の数に基づくルールだけでなく、鍵を利用するタイムスロットに基づくルールも利用可能である。すなわち、ある量子鍵配送に基づいて得られる鍵を利用可能なタイミング（タイムスロット）を決めておき、そのタイムスロットにおいては、該当のバッファ（例えば、領域Ｉ１および領域Ｏ１）から鍵を利用する。そして、次のタイムスロットにおいては、別の量子鍵配送に基づいて得られる鍵を（別のバッファ、例えば、領域Ｉ２および領域Ｏ２から）利用する。
【０１１５】
このように制御することによっても、同期処理部１０４−２は、例えばＱ３Ｐなどのような複雑なプロトコル処理を実行することなく、統一的に利用することができる。
【０１１６】
図１４は、タイムスロットを決める方法の具体例を説明する図である。ＴＳ１およびＴＳ３は、領域Ｏ１および領域Ｉ１の鍵を利用するタイムスロットを表す。ＴＳ２は、領域Ｏ２および領域Ｉ２の鍵を利用するタイムスロットを表す。
【０１１７】
また、このタイムスロットを用いる手法においても、システム実行中にバッファごとの鍵の不足やアンバランスが発生する恐れがある。このような場合は、上述の（Ｃ１）および（Ｄ１）と同様に、「鍵記憶部１２１において、バッファごとの鍵の残量を考慮して変化するような複雑なルールを採用する方法」によって、ノード１００−２に付与するタイムスロットの時間幅を調整してもよい。ただし、システムを安全に動作させるためには、有効なタイムスロット以外にもガードタイム（図１４ではＧＴ１、ＧＴ２）を設ける必要がある。
【０１１８】
配分−統合手法の実現方法としては、次のような方法も可能である。ネットワークインタフェースとして、物理的なネットワークインタフェースとは独立な仮想インタフェース（インタフェース部）を備える。この仮想インタフェースを介してデータを送信する場合、鍵を利用して暗号化された上でデータが送信され、さらにこの仮想インタフェースを介してデータを受信した場合、鍵を利用して復号化された上でデータが受信されるように制御する。
【０１１９】
例えば、領域Ｏ１を利用した暗号データ送信と領域Ｉ１を利用した暗号データ受信と、を行うように設計した仮想ネットワークインタフェース（すなわち、領域Ｐ１に格納される鍵を利用して実現される暗号データ送受信を行う仮想ネットワークインタフェース）であるＩＦ１を設ける。
【０１２０】
同時に、領域Ｏ２を利用した暗号データ送信と領域Ｉ２を利用した暗号データ受信と、を行うように設計した仮想ネットワークインタフェース（すなわち、領域Ｐ１に格納される鍵を利用して実現される暗号データ送受信を行う仮想ネットワークインタフェース）であるＩＦ２を設ける。
【０１２１】
この２つの仮想インタフェースを、ある「事前に決めたルール」に基づいて利用するように構成することで、配分−統合手法が実現可能となる。「事前に決めたルール」には、上述に記載のアルゴリズムが利用可能である。
【０１２２】
なお、本方式の実現方法は、複数のネットワークインタフェースを、事前に決めたルールに基づいて利用する、ネットワーク多重化のための様々な既存技術を利用して実現できる。例えば、ＩＥＥＥ８０２．３ａｄ  Ｌｉｎｋ  Ａｇｇｒｅｇａｔｉｏｎ（「ｂｏｎｄｉｎｇ」、「ｔｅａｍｉｎｇ」とも呼ばれる）によって、上記２つの仮想ネットワークインタフェースを束ねる別の仮想ネットワークインタフェース（統合暗号化インタフェース）を導入する設計によっても、ここで述べる鍵統合は実現可能である。
【０１２３】
図１５は、統合暗号化インタフェースを用いる場合のネットワークインタフェース設計の一例を示す図である。ＩＦ１４０１は、統合暗号化インタフェースを表す。ＩＦ１４１１およびＩＦ１４１２は、統合する仮想ネットワークインタフェースを表す。これらは、例えばドライバ等であるネットワークソフトウェア１４１０内に備えられる。
【０１２４】
ネットワークソフトウェア１４２０は、上述の量子通信部１０１−１、１０１−２、鍵生成部１０２、および、データ通信部１０３などに相当する機能１４２１、１４２２を備える。ＩＦ１４３１ａ、ＩＦ１４３１ｂは、上述の量子通信部１０１−１が利用するインタフェースに相当する物理インタフェースである。ＩＦ１４３２ａ、ＩＦ１４３２ｂは、上述のデータ通信部１０３が利用するインタフェースに相当する物理インタフェースである。
【０１２５】
例えばＩＦ１４１１からＩＦ１４３２ａを介してデータを送信する場合、領域Ｏ１の鍵によりデータが暗号化されて送信される。また、ＩＦ１４３２ａを介してデータが受信された場合、領域Ｉ１の鍵によりデータが復号化される。同様に、例えばＩＦ１４１２からＩＦ１４３２ｂを介してデータを送信する場合、領域Ｏ２の鍵によりデータが暗号化されて送信される。また、ＩＦ１４３２ｂを介してデータが受信された場合、領域Ｉ２の鍵によりデータが復号化される。
【０１２６】
配分−統合手法の実現方法としては、次のような方法も可能である。量子鍵配送装置が二対あった場合、一方を送信ノードにおける出力領域専用すなわち受信ノードにおける入力領域専用とし、他方を送信ノードにおける入力領域専用すなわち受信ノードにおける出力領域専用とする。これは、鍵の配分も鍵の統合も不要な方法となる。
【０１２７】
量子鍵配送装置が三対以上ある場合、送信ノードにおける出力領域専用すなわち受信ノードにおける入力領域専用に二対、送信ノードにおける入力領域専用すなわち受信ノードにおける出力領域専用に一対、を設けるといった方法が可能である。送信ノードにおける出力領域専用すなわち受信ノードにおける入力領域専用に割り当てる装置対の数と、送信ノードにおける入力領域専用すなわち受信ノードにおける出力領域専用に割り当てる装置対の数について、補助プロトコルで決定することにより、鍵の不足やアンバランスに対応し、これを是正することも可能となる。
【０１２８】
以上説明したとおり、第１から第２の実施形態によれば、処理負荷が少なく、無駄な鍵の消費も少ない、高速な量子鍵配送システムに適した、効率的に動作する鍵配分方法を実現することができる。
【０１２９】
次に、第１または第２の実施形態にかかる通信装置のハードウェア構成について図１６を用いて説明する。図１６は、第１または第２の実施形態にかかる通信装置のハードウェア構成を示す説明図である。
【０１３０】
第１または第２の実施形態にかかる通信装置は、ＣＰＵ（Central  Processing  Unit）５１などの制御装置と、ＲＯＭ（Read  Only  Memory）５２やＲＡＭ（Random  Access  Memory）５３などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５４と、量子鍵配送を行うための光回路装置５５と、各部を接続するバス６１を備えている。
【０１３１】
第１または第２の実施形態にかかる通信装置で実行されるプログラムは、ＲＯＭ５２等に予め組み込まれて提供される。
【０１３２】
第１または第２の実施形態にかかる通信装置で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact  Disk  Recordable）、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【０１３３】
さらに、第１または第２の実施形態にかかる通信装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第１または第２の実施形態にかかる通信装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【０１３４】
第１または第２の実施形態にかかる通信装置で実行されるプログラムは、コンピュータを上述した通信装置の各部として機能させうる。このコンピュータは、ＣＰＵ５１がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【０１３５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１３６】
１００ａ、１００ｂ  ノード
１０１  量子通信部
１０２  鍵生成部
１０３  データ通信部
１０４  同期処理部
１０５  補助プロトコル部
１０６  鍵利用部
１２１  鍵記憶部
【図１】
2015179989.tif 000003
【図２】
2015179989.tif 000004
【図３】
2015179989.tif 000005
【図４】
2015179989.tif 000006
【図５】
2015179989.tif 000007
【図６】
2015179989.tif 000008
【図７】
2015179989.tif 000009
【図８】
2015179989.tif 000010
【図９】
2015179989.tif 000011
【図１０】
2015179989.tif 000012
【図１１】
2015179989.tif 000013
【図１２】
2015179989.tif 000014
【図１３】
2015179989.tif 000015
【図１４】
2015179989.tif 000016
【図１５】
2015179989.tif 000017
【図１６】
2015179989.tif 000018