(57)【要約】【課題】複数ノードの暗号鍵を容易にかつ安定的に管理できる暗号鍵管理方法および装置を提供する。【解決手段】少なくとも１つの第１ノードと各第１ノードに接続された複数の第２ノードとを有し、各第１ノードとそれに接続された複数の第２ノードの各々との間で暗号鍵を個別に生成し消費するシステムにおける暗号鍵管理装置であって、各第１ノードおける各第２ノードに対応する暗号鍵の鍵蓄積量を監視するモニタと、前記鍵蓄積量に基づいて対応する第１ノードに対する鍵生成制御を実行する鍵管理制御部と、を有する。【選択図】図１
2008306633.tif 000002
【特許請求の範囲】
【請求項１】
第１ノードと前記第１ノードに接続された複数の第２ノードとを含むネットワークを少なくとも１つ有するシステムにおける前記第１ノードと前記複数の第２ノードの各々との間の暗号鍵を管理する装置であって、
前記第１ノードにおける前記複数の第２ノードの各々との間の暗号鍵の鍵蓄積量をそれぞれ監視する監視手段と、
前記鍵蓄積量に基づいて前記第１ノードにおける前記暗号鍵の生成管理を行う鍵管理手段と、
を有することを特徴とする暗号鍵管理装置。
【請求項２】
前記第１ノードは、
当該第１ノードに従属する前記複数の第２ノードの各々の間で生成した暗号鍵を各第２ノードに対応づけて格納する記憶手段と、
前記鍵管理手段の指示に従って暗号鍵を生成する第２ノードを切り換える制御手段と、
を有することを特徴とする請求項１に記載の暗号鍵管理装置。
【請求項３】
前記鍵管理手段は、前記鍵蓄積量が最も少ない第２ノードとの間で鍵生成を開始するように前記第１ノードに対して指示することを特徴とする請求項１または２に記載の暗号鍵管理装置。
【請求項４】
前記鍵管理手段は、異なる第２ノード間での暗号鍵共有要求があった場合、当該暗号鍵の要求量と前記異なる第２ノード間の経路内における鍵蓄積量とを比較し、その比較結果に従って前記第１ノードに鍵生成を指示することを特徴とする請求項１−３のいずれかに記載の暗号鍵管理装置。
【請求項５】
前記鍵管理手段は、前記経路内における鍵蓄積量が不足している部分に接続された第１ノードに対して鍵生成開始を指示することを特徴とする請求項４に記載の暗号鍵管理装置。
【請求項６】
前記鍵管理手段は、異なる第２ノード間での暗号鍵共有要求があった場合、前記異なる第２ノードの一方の間で生成した暗号鍵のなかから共有すべき暗号鍵を決定して前記第１ノードに対して指定することを特徴とする請求項１−５のいずれかに記載の暗号鍵管理装置。
【請求項７】
前記第１ノードと前記複数の第２ノードの各々との間の暗号鍵は、パルスあたりの光子数が１個以下の光パルス信号を送信することで生成され共有される乱数列であることを特徴とする請求項１−６のいずれかに記載の暗号鍵管理装置。
【請求項８】
前記光パルス信号は前記第２ノードから前記第１ノードへ送信され、前記第１ノードにおいて検出された光パルス信号に基づいて前記暗号鍵が生成されることを特徴とする請求項７に記載の暗号鍵管理装置。
【請求項９】
前記システムは、前記第１ノードをセンタノードとし前記第２ノードをリモートノードとする１対多接続のネットワークを１つ以上含む秘匿通信ネットワークを構成することを特徴とする請求項１−８のいずれかに記載の暗号鍵管理装置。
【請求項１０】
第１ノードと前記第１ノードに接続された複数の第２ノードとを含むネットワークを少なくとも１つ有するシステムにおける前記第１ノードと前記複数の第２ノードの各々との間の暗号鍵を管理する方法であって、
前記第１ノードの記憶手段に格納された前記複数の第２ノードの各々との間の暗号鍵の鍵蓄積量を監視し、
前記鍵蓄積量に基づいて前記第１ノードにおける前記暗号鍵の生成を管理する、
ことを特徴とする暗号鍵管理方法。
【請求項１１】
前記鍵蓄積量が最も少ない第２ノードとの間で鍵生成を開始するように前記第１ノードに対して指示することを特徴とする請求項１０に記載の暗号鍵管理方法。
【請求項１２】
異なる第２ノード間での暗号鍵共有要求があった場合、当該暗号鍵の要求量と前記異なる第２ノード間の経路内における鍵蓄積量とを比較し、
前記比較結果に従って前記第１ノードに鍵生成を指示する、
ことを特徴とする請求項１０または１１に記載の暗号鍵管理方法。
【請求項１３】
前記経路内における鍵蓄積量が不足している部分に接続された第１ノードに対して鍵生成開始を指示することを特徴とする請求項１２に記載の暗号鍵管理方法。
【請求項１４】
異なる第２ノード間での暗号鍵共有要求があった場合、前記異なる第２ノードの一方の間で生成した暗号鍵のなかから共有すべき暗号鍵を決定して前記第１ノードに対して指定することを特徴とする請求項１０−１３のいずれかに記載の暗号鍵管理方法。
【請求項１５】
前記第１ノードは、前記異なる第２ノードの前記一方の第２ノードに対しては前記共有すべき暗号鍵を識別する情報を通知し、他方の第２ノードに対しては当該共有すべき暗号鍵を当該他方の第２ノードとの間で生成した暗号鍵を用いて暗号化して送信する、ことを特徴とする請求項１４に記載の暗号鍵管理方法。
【請求項１６】
第１ノードと前記第１ノードに接続された複数の第２ノードとを含むサブネットワークを少なくとも１つ有し、前記第１ノードと前記複数の第２ノードの各々との間の暗号鍵を管理する鍵管理装置を更に有する秘匿通信ネットワークにおいて、
前記鍵管理装置は、
前記第１ノードにおける前記複数の第２ノードの各々との間の暗号鍵の鍵蓄積量をそれぞれ監視する監視手段と、
前記鍵蓄積量に基づいて前記第１ノードにおける前記暗号鍵の生成管理を行う鍵管理手段と、
を有することを特徴とする秘匿通信ネットワーク。
【請求項１７】
前記第１ノードは、
当該第１ノードに従属する前記複数の第２ノードの各々の間で生成した暗号鍵を各第２ノードに対応づけて格納する記憶手段と、
前記鍵管理手段の指示に従って暗号鍵を生成する第２ノードを切り換える制御手段と、
を有することを特徴とする請求項１６に記載の秘匿通信ネットワーク。
【請求項１８】
前記鍵管理手段は、異なる第２ノード間での暗号鍵共有要求があった場合、当該暗号鍵の要求量と前記異なる第２ノード間の経路内における鍵蓄積量とを比較し、その比較結果に従って前記第１ノードに鍵生成を指示することを特徴とする請求項１６または１７に記載の秘匿通信ネットワーク。
【請求項１９】
前記鍵管理手段は、前記経路内における鍵蓄積量が不足している部分に接続された第１ノードに対して鍵生成開始を指示することを特徴とする請求項１８に記載の秘匿通信ネットワーク。
【請求項２０】
前記鍵管理手段は、異なる第２ノード間での暗号鍵共有要求があった場合、前記異なる第２ノードの一方の間で生成した暗号鍵のなかから共有すべき暗号鍵を決定して前記第１ノードに対して指定することを特徴とする請求項１６−１９のいずれかに記載の秘匿通信ネットワーク。
【請求項２１】
前記第１ノードと前記複数の第２ノードの各々との間の暗号鍵は、パルスあたりの光子数が１個以下の光パルス信号を送信することで生成され共有される乱数列であることを特徴とする請求項１６−２０のいずれかに記載の秘匿通信ネットワーク。
【請求項２２】
前記光パルス信号は前記第２ノードから前記第１ノードへ送信され、前記第１ノードにおいて検出された光パルス信号に基づいて前記暗号鍵が生成されることを特徴とする請求項２１に記載の秘匿通信ネットワーク。
【請求項２３】
前記サブネットワークを複数個有し、それぞれのサブネットワークの第１ノードが互いに閉じた経路で接続され当該複数のサブネットワークにおける１つの第１ノードとして機能することを特徴とする請求項１６−２２のいずれかに記載の秘匿通信ネットワーク。
【請求項２４】
前記サブネットワークを複数個有し、１つのサブネットワークの第１ノードが別のサブネットワークの１つの第２ノードと互いに閉じた経路で接続されていることを特徴とする請求項１６−２２のいずれかに記載の秘匿通信ネットワーク。
【請求項２５】
前記第１ノードは、前記複数の第２ノードの１つと閉じた経路で接続された中継ノードを介して、別の第２ノードに接続されていることを特徴とする請求項１６−２２のいずれかに記載の秘匿通信ネットワーク。
【請求項２６】
コンピュータを、
第１ノードと前記第１ノードに接続された複数の第２ノードとを含むネットワークを少なくとも１つ有するシステムにおける前記第１ノードと前記複数の第２ノードの各々との間の暗号鍵を管理する装置であって、
前記第１ノードにおける前記複数の第２ノードの各々との間の暗号鍵の鍵蓄積量をそれぞれ監視する監視手段と、
前記鍵蓄積量に基づいて前記第１ノードにおける前記暗号鍵の生成管理を行う鍵管理手段と、
を有する暗号鍵管理装置として機能させることを特徴とするプログラム。
【請求項２７】
複数のリモートノードと接続されたセンタノードであって、
前記複数のリモートノードの各々の間で生成した暗号鍵をそれぞれ対応づけて格納する記憶手段と、
前記複数のリモートノードから選択された１つのリモートノードとの間で暗号鍵を生成する制御手段と、
を有することを特徴とするセンタノード。
【請求項２８】
前記制御手段は、鍵管理サーバからの鍵生成指示に従って選択されたリモートノードとの間で暗号鍵を生成することを特徴とする請求項２７に記載のセンタノード。
【請求項２９】
前記複数のリモートノードの各々との間で生成された暗号鍵の鍵蓄積量をそれぞれ監視する監視手段と、
前記鍵蓄積量に基づいて前記制御手段の暗号鍵生成管理を行う鍵管理手段と、
を更に有することを特徴とする請求項２７に記載のセンタノード。
【請求項３０】
請求項１−９のいずれかに記載の暗号鍵管理装置を有する鍵管理サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は秘匿通信ネットワークに係り、特にノード間で使用される暗号鍵を管理する方法および装置に関する。
【背景技術】
【０００２】
インターネットは様々なデ−タが行き交う経済社会インフラとなっており、それゆえにネット上を流れるデ−タを盗聴リスクから事前に守る予防策を整えることが重要な課題となっている。予防策の一つとして、通信するデ−タを暗号化する秘匿通信システムが挙げられる。暗号化の方法としては、共通鍵暗号と公開鍵暗号の二種類がある。
【０００３】
共通鍵暗号は、ＡＥＳ(Advanced Encryption Standard)に代表されるように暗号化と復号化に共通の暗号化鍵を用いる方式で高速処理が可能である。そのため本方式はデ−タ本体の暗号化に用いられている。
【０００４】
一方、公開鍵暗号はＲＳＡ暗号方式に代表されるように一方向性関数を用いた方式で、公開鍵によって暗号化を行い、秘密鍵によって復号化を行う。高速処理には適していないため、共通鍵方式の暗号鍵配送などに用いられている。
【０００５】
デ−タの暗号化によって秘匿性を確保する秘匿通信において、秘匿性を確保するために重要なことは、たとえ盗聴者によって暗号化デ−タを盗聴されたとしても、その暗号化デ−タを解読されないことである。そのため、暗号化に同じ暗号鍵を使い続けないことが必要である。それは、同じ暗号鍵を使い続けて暗号化していると、盗聴された多くのデ−タから暗号鍵を推測される可能性が高くなるからである。
【０００６】
そこで送信側と受信側で共有している暗号化鍵を更新することが求められる。鍵更新時には更新する鍵を盗聴・解読されないことが必須であるので、（１）公開鍵暗号によって暗号化して送る方法、（２）予め鍵更新用に設定した共通鍵であるマスタ鍵を用いて暗号化して送る方法、の大きく二通りがある（たとえば特開２００２−３４４４３８号公報（特許文献１）および特開２００２−３００１５８号公報（特許文献２）を参照）。これらの方法における安全性は、解読するための計算量が膨大であることに依っている。
【０００７】
一方、量子暗号鍵配布技術（ＱＫＤ）は、通常の光通信とは異なり、１ビットあたりの光子数を１個として伝送することにより送信−受信間で暗号鍵を生成・共有する技術である（非特許文献１および２参照）。この量子暗号鍵配布技術は、上述した計算量による安全性ではなく、量子力学によって安全性が保証されており、光子伝送部分での盗聴が不可能であることが証明されている。さらに、一対一の鍵生成・共有だけでなく、光スイッチング技術やパッシブ光分岐技術により一対多あるいは多対多ノード間での鍵生成および鍵共有を実現する提案もされている（非特許文献３参照）。
【０００８】
このようなＱＫＤ技術では、光子１個に暗号鍵の基となる情報を載せて伝送するので、光子伝送を行なう限り暗号鍵を生成し続けることができる。たとえば、１秒あたり数１０ｋビットの最終鍵を生成することが可能である。
【０００９】
さらに、ＱＫＤ技術によって生成した暗号鍵を、解読不可能なことが証明されているワンタイムパッド（OTP:one-time-pad）暗号に使用することで、絶対安全な暗号通信を提供することができる。ワンタイムパッド暗号により暗号化通信を行うと、暗号鍵はデータと同じ容量分だけ消費され、しかも一回限りで必ず使い捨てされる。例えば、１Ｍビットのファイルをワンタイム暗号化して送受信すると、１Ｍビットの暗号鍵が消費される。
【００１０】
このように大量に暗号鍵を生成し消費する量子暗号システムでは、記憶媒体に格納されている暗号鍵の管理が必須といえる。特に、ＱＫＤ技術において、非特許文献３で提案されているような光スイッチング技術やパッシブ光分岐技術によって一対多あるいは多対多の鍵生成・共有への拡張を実現するためには、多ノード間での暗号鍵の管理が重要となる。
【００１１】
【特許文献１】特開２００２−３４４４３８号公報
【特許文献２】特開２００２−３００１５８号公報
【非特許文献１】"QUANTUM CRYPTOGRAPHY: PUBLIC KEY DISTRIBUTION AND COIN TOSSING" C. H. Bennett and G. Brassard, IEEE Int. Conf. on Computers, Systems, and Signal Processing, Bangalore, India, December １０−１２, １９８４ pp.１７５−１７９
【非特許文献２】"Automated 'plug & play' quantum key distribution" G. Ribordy, J. Gauiter, N. Gisin, O. Guinnard and H. Zbinden, Electron. Lett., Vol. ３４, No. ２２ pp.２１１６−２１１７, (１９９８)
【非特許文献３】"Quantum cryptography on multiuser optical fibre Networks" P. D. Townsend, Nature vol. ３８５, ２ January １９９７ pp. ４７−４９
【非特許文献４】"Temperature independent QKD system using alternative−shifted phase modulation method" A.Tanaka, A.Tomita, A.Tajima, T.Takeuch, S.Takahashi, and Y.Nambu, Proc. of ECOC ２００４, Tu４.５.３.
【非特許文献５】"Single−photon Interference over 150km Transmission Using Silica−based Integrated−optic Interferometers for Quantum Cryptography" T.Kimura, Y.Nambu, T.Hatanaka, A.Tomita, H.Kosaka and K.Nakamura, Japanese Journal of Applied Physics Lett. Vol. ４３, No. 9A/B, ２００４, pp. Ｌ１２１７−Ｌ１２１９.
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、これまでの技術では暗号鍵を生成することにのみ重点を置き、消費することも考慮した暗号鍵管理はほとんど行なわれていない。上述したように、各ノードにおける暗号鍵の蓄積量は、鍵生成・共有プロセスにより増加すると共に暗号通信を実行する毎に消費されて減少する。また、鍵生成・共有プロセスによる暗号鍵の生成速度は、ノード間の距離や通信品質などにも依存するために、一般にノード間で一定ではない。このために各ノードでの鍵蓄積量は時事刻々と増減することとなり、ノード数が増えるに従って暗号鍵の管理は益々複雑化する。
【００１３】
また、１対多接続のようなセンタ・リモート構成のネットワークでは、センタノードと各リモートノード間で暗号鍵が生成・共有されるために、リモートノード間で暗号鍵が共有されていない。したがって、リモートノード同士で暗号化通信を行うことができない。同様に、多対多接続のネットワークにおいても、鍵生成・共有プロセスを実行するノード間では暗号化通信を行うことができるが、それ以外のノードとの間では暗号鍵が共有されていないので暗号化通信を行うことができない。
【００１４】
本発明の目的は、複数ノードの暗号鍵を容易にかつ安定的に管理できる暗号鍵管理方法および装置を提供することにある。
【課題を解決するための手段】
【００１５】
本発明による暗号鍵管理装置は、第１ノードと前記第１ノードに接続された複数の第２ノードとを含むネットワークを少なくとも１つ有するシステムにおける前記第１ノードと前記複数の第２ノードの各々との間の暗号鍵を管理する装置であって、前記第１ノードにおける前記複数の第２ノードの各々との間の暗号鍵の鍵蓄積量をそれぞれ監視する監視手段と、前記鍵蓄積量に基づいて前記第１ノードにおける前記暗号鍵の生成管理を行う鍵管理手段と、を有することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、第１ノードおける各第２ノードに対応する暗号鍵の鍵蓄積量に基づいて第１ノードに対する鍵生成制御を行うことで、複数ノードの暗号鍵を容易にかつ安定的に管理できる。
【発明を実施するための最良の形態】
【００１７】
１．第１実施例
１．１）ネットワーク構成
図１（Ａ）および（Ｂ）は本発明の第１実施例による暗号鍵管理システムを適用した秘匿通信ネットワークの２つの例をそれぞれ示す概略的構成図である。ここでは説明を複雑化しないために、図１（Ａ）に示す秘匿通信ネットワークは、複数のセンタノード１０、複数のリモートノード２０および鍵管理サーバ３０を有し、各センタノード１０は複数個のリモートノード２０と接続し、各センタノード１０が鍵管理サーバ３０に接続されているものとする。さらに図中の二重線で例示されるように、センタノード１０間、センタノード１０とリモートノード２０間および／またはリモートノード間のいくつかが閉じた通信経路により安全に接続され、全体が１つのネットワークを構成しているものとする。
【００１８】
また、各センタノード１０は、後述するように、配下のリモートノード２０との間でそれぞれ暗号鍵を生成し、また暗号化通信を実行する毎に暗号鍵を消費する。鍵管理サーバ３０は、生成あるいは消費される共有鍵の蓄積量をリモートノード毎に管理する。
【００１９】
鍵管理サーバ３０には鍵蓄積量モニタ３１および鍵管理制御部３２が設けられている。鍵蓄積量モニタ３１は、各センタノードにおけるリモートノード毎の鍵蓄積量をモニタする。たとえば鍵蓄積量モニタ３１が定期的に各センタノード１０へ問い合わせて鍵蓄積量を取得することができる。またはセンタノードとリモートノードとの間で鍵が生成された時あるいは消費された時にセンタノード１０から鍵管理サーバ３０へ生成あるいは消費量が通知されてもよい。
【００２０】
鍵管理制御部３２は、後述するように、鍵蓄積量が低下した場合あるいは暗号化通信要求が生じた場合などに、対応するセンタノードに対して鍵生成プロセスを開始するように指示することができる。
【００２１】
また、鍵蓄積量モニタ３１によりモニタされた鍵蓄積量を鍵管理テーブルに格納し、鍵管理テーブルを参照しながら鍵管理制御部３２が鍵生成制御を行ってもよい。
【００２２】
なお、図１（Ｂ）に示すように、１つのセンタノード１０に複数のリモートノードが収容されている１：Ｎネットワークであれば、上述した鍵管理サーバ３０の機能をセンタノード１０で実行することもできる。言い換えれば、図１（Ａ）に示す鍵管理サーバ３０は、物理的にセンタノード１０と別個に設ける必要はなく、論理的に別にあればよい。
【００２３】
１．２）暗号鍵管理
図２は本発明の第１実施例による暗号鍵管理方法を示すフローチャートである。鍵蓄積量モニタ３１は、各センタノード１０がリモートノード２０と共有する鍵の蓄積量を監視する（ステップＳ１）。鍵管理制御部３２は、各センタノードにおいて鍵蓄積量が最も少ないリモートノード２０に対する鍵生成プロセスの開始を指示する（ステップＳ２）。続いて、鍵管理制御部３２は、リモートノード間の通信要求が発生したか否かを判断し（ステップＳ３）、発生していない場合は（ステップＳ３のＮＯ）、上記ステップＳ１およびＳ２を繰り返すことで、ネットワーク内の各リモートノードに対する鍵蓄積量を均一化あるいは所定量以上に維持することができる。
【００２４】
ある２つのリモートノード間で暗号化通信要求が発生すると（ステップＳ３のＹＥＳ）、鍵管理制御部３２は、当該２つのリモートノードに対してそれぞれ確保されている鍵蓄積量の両方が当該暗号化通信に要求される暗号鍵の量より大きいか否かを判断する（ステップＳ４）。少なくとも一方の鍵蓄積量が不足している場合には（ステップＳ４のＮＯ）、鍵管理制御部３２は、不足している方のリモートノード２０が収容されているセンタノード１０に対して鍵生成プロセスの開始を指示する（ステップＳ５）。鍵生成プロセスは、当該２つのリモートノードに対する鍵蓄積量の両方が要求量より大きくなるまで続けられる。なお、暗号化通信に要求される暗号鍵の量は、ワンタイムパッド暗号化通信の場合、送信データと同じ容量となる。
【００２５】
当該２つのリモートノードに対する鍵蓄積量の両方が当該暗号化通信に要求される暗号鍵の量より大きくなると（ステップＳ４のＹＥＳ）、鍵管理制御部３２は、暗号化通信に使用すべき暗号鍵を当該２つのリモートノード２０に設定するように、対応するセンタノード１０へ指示する（ステップＳ６）。
【００２６】
センタノード１０が両方のリモートノードを収容している場合には、それぞれのリモートノードとの間で暗号鍵を共有している。したがって、一方のリモートノードに対しては、その共有乱数から使用すべき暗号鍵を決定し、その暗号鍵を特定する情報を通知すればよい。他方のリモートノード２０に対しては、当該使用すべき暗号鍵を当該他方のリモートノードとの間の共有鍵を用いてＯＴＰ暗号化して送信すればよい。図１（Ａ）に示すように、両方のリモートノードが別々のセンタノードに従属している場合には、二重線で示す閉じた経路を通して、当該使用すべき暗号鍵をノード間で順次ＯＴＰ暗号化して転送すればよい。
【００２７】
１．３）効果
本発明の第１実施例によれば、鍵管理サーバ３０は、センタノード１０に接続された各リモートノード２０に対する暗号鍵の鍵蓄積量に基づいて鍵生成制御を行うことで、複数ノードの暗号鍵を容易にかつ安定的に管理できる。たとえば、多対多量子鍵配付ネットワークにおいて、センタノード１０に保持されている量子鍵の蓄積量を監視するだけで各リモートノードの暗号鍵管理を容易に行うことができる。たとえば、暗号鍵の消費を前提とした暗号鍵管理を行うことで、センタノード１０およびリモートノード２０間で安定したワンタイムパッド暗号化通信を実現することができる。
【００２８】
２．第２実施例
２．１）構成
図３は本発明の第２実施例による秘匿通信ネットワークにおけるセンタノードおよびリモートノードの概略的構成を示すブロック図である。ここでは、Ｎ個（複数）のリモートノード２０（以下、ＲＮ−１〜ＲＮ−Ｎと記す。）がそれぞれ光ファイバによってセンタノード１０に接続され、各リモートノードとセンタノード１０との間で暗号鍵の生成、共有およびそれを用いた暗号化通信が行われるものとする。
【００２９】
リモートノードＲＮ−１〜ＲＮ−Ｎの各々は同様の構成を有し、量子チャネルユニット２０１、古典チャネルユニット２０２、それらを制御する制御部２０３、量子鍵を格納するための量子鍵メモリ２０４、およびリモートノード間通信用の暗号鍵を格納するためリモート鍵メモリ２０５を有する。
【００３０】
リモートノードＲＮ−１〜ＲＮ−Ｎの量子鍵メモリ２０４には、各リモートノードとセンタノード１０との間で生成・共有された乱数列Ｋ１、Ｋ２、・・・ＫＮがそれぞれ格納されている。また、リモート鍵メモリ２０５には、要求に応じてリモートノード間通信用の暗号鍵Ｋｒが格納される。例えば、リモートノードＲＮ−１とリモートノードＲＮ−２との間で暗号化通信が要求されると、これらのリモートノードのリモート鍵メモリ２０５には暗号鍵Ｋｒ（１−２）がそれぞれ格納される。
【００３１】
制御部２０３は、センタノード１０との間で共有乱数の生成、共有乱数を用いた暗号化／復号化などを実行する。制御部２０３はプログラム制御プロセッサでもよく、図示しないメモリから読み出されたプログラムを実行することで、上記共有乱数生成機能および暗号化／復号化機能を実現することもできる。
【００３２】
センタノード１０は、量子チャネル用のスイッチ部１０１および量子チャネルユニット１０２と、古典チャネル用のスイッチ部１０３および古典チャネルユニット１０４と、それらを制御する制御部１０５と、リモートノードＲＮ−１〜ＲＮ−Ｎのそれぞれとの間で共有された共有乱数Ｋ１、Ｋ２、・・・ＫＮを格納する量子鍵メモリ１０６と、を有する。制御部１０５は、各リモートノードの間での共有乱数の生成、スイッチ部１０１および１０３の切り替え制御、共有乱数を用いた暗号化／復号化、鍵メモリ１０６に格納された各鍵量のモニタなどを実行する。
【００３３】
各リモートノードの量子チャネルユニット２０１とセンタノード１０の量子チャネルユニット１０２とは、量子チャネルおよびスイッチ部１０１を通して微弱光信号を送信し、両者で共有すべき乱数列を生成する。また、各リモートノードの古典チャネルユニット２０２とセンタノード１０の古典チャネルユニット１０４とは、共有乱数を生成するためのデータをスイッチ部１０３および古典チャネルを通して相互に送受信し、共有された乱数列に基づいて暗号化したデータをスイッチ部１０３および古典チャネルを通して相互に送受信する。
【００３４】
制御部１０５は、スイッチ部１０１を制御することで、リモートノードＲＮ−１〜ＲＮ−Ｎから選択された１つのリモートノードの量子チャネルを量子チャネルユニット１０２に接続することができる。この量子チャネルの切替制御とは独立に、制御部１０５は、スイッチ部１０３を制御することで、リモートノードＲＮ−１〜ＲＮ−Ｎから選択された１つのリモートノードの古典チャネルを古典チャネルユニット１０４に接続することができる。
【００３５】
鍵管理サーバ３０は、センタノード１０の量子鍵メモリ１０６に格納されている共有乱数Ｋ１、Ｋ２、・・・ＫＮのそれぞれの量を監視している。ここでは、センタノード１０の制御部１０５が鍵メモリ１０６に格納された各鍵量をモニタし、そのモニタされた鍵量の情報が鍵管理サーバ３０へ送信され、鍵管理サーバ３０の鍵蓄積量モニタ３１により監視されているものとする。
【００３６】
各リモートノードは、センタノード１０との間で生成した乱数列を量子鍵メモリ２０４にそれぞれ格納し、センタノード１０は各リモートノードとの間で生成したすべての乱数列を量子鍵メモリ１０６に格納している。このように、センタノード１０は、自身に従属するリモートノードのすべての量子鍵を把握しているので、鍵管理サーバ３０はセンタノード１０の量子鍵メモリ１０６を監視すればよい。鍵管理サーバ３０は、センタノード１０の量子鍵メモリ１０６にある量子鍵の残量が少なくなれば、センタノード１０の制御部１０５に指示を送り、制御部１０５が量子チャネルのスイッチ部１０１および量子ユニット１０２を制御して、意図するリモートノードとの間で量子鍵を優先的に生成することができる。
【００３７】
なお、量子チャネルと古典チャネルとはチャネルとして区別できればよく、量子チャネルは量子鍵の生成に利用されるチャネルであり、古典チャネルは通常の光パワー領域での通信チャネルである。古典チャネルは、共有乱数を生成するためのデータ送受信および暗号化されたデータの送受信のために利用される。量子チャネルは、パワーが１ｐｈｏｔｏｎ／ｂｉｔ以下の微弱な状態の光信号を送信器（Ａｌｉｃｅ）から受信器（Ｂｏｂ）へ送信するが、通常の光通信で使用される光パワーの光信号を伝送することもできる。詳しくは後述する。
【００３８】
なお、鍵管理サーバ３０とセンタノードとの通信では、量子鍵自身を公開することなく、量子鍵のファイル番号や鍵蓄積量などの鍵管理情報のみをやりとりするので、鍵情報が公開されることはない。また、鍵管理情報を量子鍵によって暗号化することで秘密に通信することも可能である。さらに、鍵管理サーバはセンタノードの認証を行うことで成りすましを防止することができる。
【００３９】
また、図３における量子チャネルと古典チャネルとは光ファイバに多重化されているが、多重化方式を特定するものではない。波長分割多重（ＷＤＭ）方式であれば、各リモートノードに対応するスイッチ部１０１および１０３の前段に波長多重分離部を設けて、量子チャネルの波長信号をスイッチ部１０１へ、古典チャネルの波長信号をスイッチ部１０３へそれぞれ分離するように構成すればよい。
【００４０】
２．２）量子鍵の生成・共有
センタノード１０の制御部１０５および任意のリモートノード２０の制御部２０３は、それぞれのノードの全体的な動作を制御するが、ここでは特に鍵生成機能について説明を行なう。制御部１０５および２０３は、所定の鍵生成シーケンスを実行することで暗号鍵用の乱数列をセンタノード１０とリモートノード２０との間で共有する。代表的なものとしては、ＢＢ８４プロトコル（非特許文献１参照)、誤り検出・訂正および秘匿増強を行って暗号鍵を生成し共有することができる。一例としてリモートノードＲＮ−１との間で共有される乱数列Ｋ１を生成する場合を説明する。
【００４１】
まず、リモートノードＲＮ−１の量子ユニット２０１とセンタノード１０の量子ユニット１０２とは量子チャネルを介して単一光子伝送を行なう。センタノード１０の量子ユニット１０２では光子検出を行い、この結果を制御部１０５へ出力する。各ノードの制御部１０５および２０３は、古典チャネルを介して、基底照合、誤り訂正および秘匿増強処理を光子検出の結果に基づいて行なう。センタノード１０では、このようにして得られた共有乱数列Ｋ１をリモートノードＲＮ−１に対応付けて量子鍵メモリ１０６に格納する。その他のリモートノードＲＮ−２〜Ｎの共有乱数列Ｋ２〜ＫＮについても同様のプロセスにより順次生成される。
【００４２】
リモートノードＲＮ−ｘ（ｘ＝１〜Ｎ）の量子ユニット２０１とセンタノード１０の量子ユニット１０２とは、Ａｌｉｃｅ（微弱光信号の送信器）およびＢｏｂ（微弱信号の受信器）の一方と他方にそれぞれ対応する。しかしながら、Ｂｏｂは光子検出器を含むため、消費電力、監視制御の観点から、Ｂｏｂがセンタノード１０に配置される方が望ましい。
【００４３】
次に、量子ユニット１０２および２０１にプラグアンドプレイ(Plug & Play)方式を用い、センタノード１０がＢｏｂとなるＱＫＤシステムを例示して詳細に説明する。
【００４４】
図４はプラグアンドプレイ方式ＱＫＤシステムを示すブロック図である。リモートノードＲＮ−ｘの量子ユニット２０１はＡｌｉｃｅ側の量子送信部であり、量子ユニット１０２はＢｏｂ側の量子受信部である。なお、量子ユニット２０１および１０２は交互シフト位相変調型プラグアンドプレイ方式とする(非特許文献２および４を参照)。ここでは、スイッチ部１０１および１０３によって量子チャネルと古典チャネルとがリモートノードＲＮ−ｘに接続されている場合が図示されている。
【００４５】
この例において送信側量子ユニット２０１は、偏光ビ−ムスプリッタ（ＰＢＳ）２１および位相変調部２２から構成されるＰＢＳループを有し、ＰＢＳ２１が光ファイバに接続されている。ＰＢＳループはファラデーミラーと同様の機能を有し、入射光の偏光状態が９０度回転して送出される（非特許文献４を参照）。
【００４６】
位相変調器２２はドライバ２３によって駆動され、古典チャネルユニット２０２から供給されるクロック信号Ｓｙｎｃに従って、通過する光パルス列に対して位相変調を行う。位相変調の深さは、２つの乱数ＲＮＤ１およびＲＮＤ２の４通りの組み合わせにそれぞれ対応する４通りの深さ（０、π／２、π、３π／２）となり、光パルスが位相変調器２２を通過するタイミングで位相変調が行われる。乱数ＲＮＤ１およびＲＮＤ２は鍵生成処理部２０３．１から供給されるが、それらは後の基底照合処理のために保存されている。
【００４７】
鍵生成処理部２０３．１は制御部２０３により実現される機能部であり、鍵生成プロセスを実行することで暗号鍵メモリ２０４に共有乱数列Ｋｘを格納する。乱数列Ｋｘは、所定の基準に従って乱数列の位置が特定されるように格納される。ここでは乱数列Ｋｘが一定量ずつファイル化され、それぞれファイル番号＃１、＃２・・・により特定可能となっている。
【００４８】
受信側量子ユニット１０２は、偏光ビ−ムスプリッタ（ＰＢＳ）１１、位相変調部１２、ドライバ１３、光カプラ１４、光サーキュレータ１５、パルス光源１６、および、光子検出器１７を有し、ＰＢＳ１１が光ファイバ伝送路６０に接続されている。ドライバ１３、パルス光源１６および光子検出器１７は、古典チャネルユニット１０４から供給されるクロック信号ｓｙｎｃに同期して動作する。ドライバ１３は、鍵生成処理部１０５．１から供給される乱数ＲＮＤ３に従って位相変調器１２を駆動し、位相変調器１２が通過する光パルスに対して位相変調を行う。
【００４９】
パルス光源１６はクロック信号ｓｙｎｃに従って駆動され、パルス光源１６により生成された光パルスＰは、光サーキュレータ１５により光カプラ１４へ導かれ、光カプラ１４により２分割される。分割された一方の光パルスＰ１は短いパス(Short Path)を通ってＰＢＳ１１へ送られる。分割された他方の光パルスＰ２は長いパス(Long Path)に設けられた位相変調器１２を通してＰＢＳ１１へ送られる。これら光パルスＰ１およびＰ２はＰＢＳ１１で合波され、時間的に分割されたダブルパルスとして光ファイバ伝送路６０を通して送信側量子ユニット２０１へ送信される。
【００５０】
送信側量子ユニット２０１において、光ファイバ伝送路６０を通して到来した量子チャネルのダブルパルスＰ１およびＰ２は、ＰＢＳ２１でさらに分離され、時計回りのダブルパルスＰ１CWおよびＰ２CWと反時計回りのダブルパルスＰ１CCWおよびＰ２CCWの４つのパルス、すなわちカルテットパルスとなって位相変調器２２をそれぞれ反対方向で通過し、それぞれ出射したポートとは反対のＰＢＳポートへ入射する。
【００５１】
位相変調器２２は時計回りのダブルパルスの後方のパルスＰ２CWを前方のパルスＰ１CWに対して位相変調するとともに、反時計回りのダブルパルスと時計回りのダブルパルスとの間にπの位相差を与える。このように、必要に応じて位相変調されたカルテットパルスはＰＢＳ２１で合波され再びダブルパルスに戻る。上述したように後方のパルスのみが２つの乱数ＲＮＤ１およびＲＮＤ２の４通りの組み合わせに従って位相変調されたので、出射ダブルパルスをＰ１およびＰ２*aと記す。このときＰＢＳループ入射時に対して出射時は偏波が９０°回転しているので、結果的にファラデーミラーと同等の効果が得られる。
【００５２】
受信側量子ユニット１０２のＰＢＳ１１は、送信側量子ユニット２０１から受信した光パルスＰ１およびＰ２*aの偏光状態が９０度回転していることから、これら受信パルスをそれぞれ送信時とは異なるパスへ導く。すなわち受信した光パルスＰ１は長いパスを通り、位相変調器１２によって乱数ＲＮＤ３に従った位相変調が施され、位相変調された光パルスＰ１*bが光カプラ１４に到達する。他方、光パルスＰ２*aは送信時とは異なる短いパスを通って同じく光カプラ１４に到達する。
【００５３】
こうして送信側量子ユニット２０１で位相変調された光パルスＰ２*aと受信側量子ユニット１０２で位相変調された光パルスＰ１*bとが光カプラ１４で干渉し、その結果が光子検出器１７のＡＰＤ０またはＡＰＤ１により乱数ＲＮＤ４として検出される。光子検出器１７は、古典チャネルユニットから供給されるクロック信号ｓｙｎｃに従ってガイガーモードで駆動され、高感度受信を行なう。このような送信側量子ユニット２０１と受信側量子ユニット１０２によって光子伝送が行われる。
【００５４】
鍵生成処理部１０５．１は制御部１０５により実現される機能部であり、検出された乱数ＲＮＤ４に基づいて鍵生成プロセスを実行することにより暗号鍵メモリ１０６に共有乱数列Ｋｘを格納する。乱数列Ｋｘは、所定の基準に従って乱数列の位置が特定されるように格納される。ここでは乱数列Ｋｘが一定量ずつファイル化され、それぞれファイル番号＃１、＃２・・・により特定可能となっている。こうしてリモートノードＲＮ−１〜ＲＮ−Ｎの各々に対する乱数列Ｋ１〜ＫＮをメモリ１０６に蓄積する。
【００５５】
２．３）リモート鍵の共有
次に、ワンタイムパッド暗号通信を用いて、リモートノード間で暗号鍵を安全に共有する手法について説明する。Ｎ個のリモートノードＲＮ−１〜ＲＮ−Ｎのうち、暗号化通信を行ないたい任意の２つのリモートノードは、鍵管理サーバ３０に対してリモート鍵の要求を行なう。以下、リモートノードＲＮ−１とリモートノードＲＮ−２との間で暗号化通信が要求された場合を例にとり、そのリモート間の暗号化通信に使用されるリモート鍵Ｋｒ（１―２）の共有手順について説明する。なお、共有できたリモート鍵は各リモートノードのリモート鍵メモリ２０５に格納される。
【００５６】
図５はリモートノード間でリモート鍵を共有する手順を説明するための模式図であり、図６はリモート鍵を共有する手順を示すシーケンス図である。ここでは、リモートノードＲＮ−１がリモートノードＲＮ−２との間の暗号化通信のためにセンタノード３０を通して鍵管理サーバ３０に対してリモート鍵の要求を行なったものとする（ステップＳ３０１）。このリモート鍵要求を受けると、鍵管理サーバ３０はリモートノードＲＮ−１およびＲＮ−２の乱数列Ｋ１およびＫ２の鍵蓄積量（残量）をチェックする（ステップＳ３０２）。鍵管理サーバ３０は、Ｋ１およびＫ２の残量の少なくとも一方がリモート鍵の要求量以下ならば（ステップＳ３０２のｎｏ）、不足しているリモートノードに対する鍵生成プロセスの開始をセンタノード１０へ指示する（ステップＳ３０３）。これによってセンタノード１０の制御部１０５は、量子チャネルのスイッチ部１０１を指定されたリモートノードに切り替え、当該リモートノードに対する鍵生成プロセスを実行する。Ｋ１およびＫ２の残量が双方とも要求量より不足している場合は、残量が少ない方のリモートノードから鍵生成を開始する。
【００５７】
Ｋ１およびＫ２の残量がいずれもリモート鍵の要求量より大きいならば（ステップＳ３０２のｙｅｓ）、鍵管理サーバ３０はリモート鍵共有プロセスの開始をセンタノード１０へ指示する。まず、センタノード１０は、鍵管理サーバ３０の指示により乱数列Ｋ１の中からリモート鍵Ｋｒ（１―２）として使用する部分を選択し、古典チャネルを介してリモートノードＲＮ−１へＫｒ（１−２）に相当する領域を示す情報を通知する（ステップＳ３０４）。リモートノードＲＮ−１は、自身の鍵メモリ２０４に格納している量子鍵Ｋ１のうち、リモート鍵に相当する部分をリモート鍵メモリ２０５にＫｒ（１−２）として付け替え処理を行なう（ステップＳ３０５）。上述したように、リモートノードにおいて、量子鍵メモリ２０４の乱数列を一定容量ごとにファイル化し、生成順の番号をファイル名に付けて管理している場合には、センタノード１０がリモートノードＲＮ−１にリモート鍵Ｋｒ（１−２）を通知する際は、ファイル番号のみを古典チャネルを用いて送信すればよい。
【００５８】
次に、センタノード１０は、リモートノードＲＮ−２との間で共有している乱数Ｋ２から量子鍵Ｋ２OTPを取り出してリモート鍵Ｋｒ（１−２）をワンタイムパッド暗号化し、古典チャネルを通してリモートノードＲＮ−２に送信する（ステップＳ３０６）。
【００５９】
リモートノードＲＮ−２は、自身の乱数列Ｋ２から同じ量子鍵Ｋ２OTPを取り出してワンタイムパッド暗号化されたリモート鍵Ｋｒ（１−２）を復号し、リモート鍵メモリ２０５に格納する（ステップＳ３０７）。ここで、ワンタイムパッド暗号化に用いる量子鍵Ｋ２OTPの領域（ファイル番号）も鍵管理サーバ３０により指示することができる。
【００６０】
ワンタイムパッド暗号化は、暗号鍵と平文の容量が等しく、暗号鍵に周期性がない限り、解読できないことが保証された暗号方式である。リモート鍵Ｋｒ（１―２）を量子鍵Ｋ２OTPでワンタイムパッド暗号化してＯＴＰ配送することにより、リモートノードＲＮ−２は安全にリモート鍵Ｋｒ（１―２）を共有することが可能になる。
【００６１】
２．４）暗号鍵の補充
このようにリモートノード間でワンタイムパッド暗号化通信が発生すると、センタノード１０とリモートノードＲＮ−２との間で共有されている乱数列Ｋ２が消費される。一般に、センタノード１０と配下のリモートノードとの間で古典チャネルを介して暗号化通信が行なわれた場合も共有乱数列は消費される。他方、すでに述べたように、センタノード１０において量子チャネルのスイッチ部１０１と古典チャネルのスイッチ部１０３とは独立して切り替えることができるので、各リモートノードとの間での共有乱数列の消費と並行して、量子チャネルを介した鍵生成を行うこともできる。このように各リモートノードにおける鍵蓄積量は常に増減を繰り返している。
【００６２】
そこで、ＯＴＰ配送が終了すると、鍵管理サーバ３０は、センタノード１０の量子鍵メモリ１０６に格納された共有乱数列Ｋ１−ＫＮのうち残量が最も少ない乱数列を検出し、そのリモートノードとの間で鍵生成プロセスを開始するようにセンタノード１０へ指示する（ステップＳ３０８）。すなわち、鍵管理サーバ３０の指示に従って、センタノード１０の制御部１０５は、量子チャネルのスイッチ部１０１を指定されたリモートノードに切り替えて鍵生成プロセスを開始する。この鍵生成を行なうリモートノードは、ＯＴＰ配送を行なったリモートノード（ここではＲＮ−２）とは限らない。ＯＴＰ配送によって量子鍵が消費された場合だけでなく、暗号化通信を行なうことでも量子鍵が消費されるからである。したがって、ステップＳ３０８は、暗号化通信が行われた時には常に実行されることが望ましい。なお、リモート鍵要求が発生したときの鍵生成プロセスであるステップＳ３０３は、ステップＳ３０８よりも優先される。
【００６３】
このようにして、ワンタイムパッド暗号化通信による量子鍵の消費が発生しても、鍵管理サーバ３０はセンタノード１０の鍵蓄積量を監視し適切に鍵生成開始の指示をすることにより、各リモートノード間の鍵蓄積量を平均化させることができる。これによってセンタノード１０と各リモートノードとの間で安定したワンタイムパッド暗号化通信を提供することが可能となる。
【００６４】
３．第３実施例
３．１）構成
図７は本発明の第３実施例による秘匿通信ネットワークにおけるセンタノードおよびリモートノードの概略的構成を示すブロック図である。本実施例では、多対多（Ｎ：Ｍ）接続ネットワークにおいて、異なるセンタノードに従属するリモートノード間でリモート鍵を共有する場合を説明する。
【００６５】
まず、ＱＫＤネットワークＡ（ＱＫＤ−ＮＷ−Ａ）では、Ｎ個のリモートノードＲＮ−Ａ１〜ＲＮ−ＡＮとセンタノード１０ａとがそれぞれ光ファイバによって接続され１：Ｎのネットワークを構成している。また、ＱＫＤネットワークＢ（ＱＫＤ−ＮＷ−Ｂ）では、Ｍ個のリモートノードＲＮ−Ｂ１〜ＲＮ−ＢＭとセンタノード１０ｂとがそれぞれ光ファイバによって接続され１：Ｍのネットワークを構成している。
【００６６】
それぞれのＱＫＤネットワークにおける各リモートノードとセンタノードとは、すでに述べたように暗号鍵の生成および共有プロセスおよび暗号鍵を用いた暗号化通信を行う。各リモートノードとセンタノードの構成は図３に示すものと基本的に同じであるから、図７では、簡単のために、センタノードの量子ユニットおよび古典ユニットとリモートノードの制御部とは省略されている。
【００６７】
また、センタノード１０ａとセンタノード１０ｂとは安全に量子鍵のやり取りを行うことができるものとする。例えば、センタノード１０ａとセンタノード１０ｂとは同じデータセンタ内に設置された閉じたネットワーク内にあって、特に暗号化通信などを行なわなくても装置の設置・管理の面から安全が保証されている場合である。従って、図７に示すネットワークは、センタノード１０ａおよびセンタノード１０ｂを１つのセンタノードとすれば、Ｍ個のリモートノードとＮ個のリモートノードとが光ファイバで接続されたＭ：Ｎネットワークである。
【００６８】
鍵管理サーバ３０はセンタノード１０ａおよびセンタノード１０ｂの量子鍵メモリ１０６ａおよび１０６ｂを監視している。各リモートノードは、生成した乱数列を量子鍵メモリ２０４ａおよび２０４ｂにそれぞれ格納している。センタノード１０ａは、リモートノードＲＮ−Ａ１〜ＲＮ−ＡＮと生成したすべての乱数列を量子鍵メモリ１０６ａに格納している。また、センタノード１０ｂは、リモートノードＲＮ−Ｂ１〜ＲＮ−ＢＭと生成したすべての乱数列を量子鍵メモリ１０６ｂに格納している。このように、センタノードは、自身に従属するリモートノードすべての量子鍵を把握しているので、鍵管理サーバ３０はセンタノード１０ａ、１０ｂの量子鍵メモリ１０６ａ、１０６ｂを監視すればよい。鍵管理サーバ３０は、上述したように、センタノード１０ａ／１０ｂの量子鍵の残量に応じて制御部１０５ａ／１０５ｂに指示を送り、量子チャネルのスイッチ部１０１ａ／１０１ｂを制御して、意図するリモートノードとの間の量子鍵を優先的に生成することが可能となる。量子鍵の生成・共有に関しては上記２．２）項で説明したとおりであるから、ここでは省略する。
【００６９】
３．２）リモート鍵の共有
図８はリモートノード間でリモート鍵を共有する手順を説明するための模式図であり、図９はリモート鍵を共有する手順を示すシーケンス図である。ここでは、センタノード１０ａに従属するリモートノードＲＮ−Ａ１とセンタノード１０ｂに従属するリモートノードＲＮ−Ｂ１との間で安全にリモート鍵Ｋｒ（１ａ−１ｂ）を共有する場合を一例として説明する。ただし、図６のフローチャートと同じステップには同じ参照符号を付して説明は簡略化する。
【００７０】
まず、リモートノードＲＮ−Ａ１がリモートノードＲＮ−Ｂ１との間の暗号化通信のためにセンタノード１０を通して鍵管理サーバ３０に対してリモート鍵の要求を行なったものとする（ステップＳ３０１）。このリモート鍵要求を受けると、鍵管理サーバ３０はリモートノードＲＮ−Ａ１およびＲＮ−Ｂ１の乱数列Ｋ１ＡおよびＫ１Ｂの鍵蓄積量（残量）をチェックする（ステップＳ３０２）。鍵管理サーバ３０は、Ｋ１ＡおよびＫ１Ｂの残量の少なくとも一方がリモート鍵の要求量以下ならば（ステップＳ３０２のｎｏ）、不足しているリモートノードに対する鍵生成プロセスの開始をセンタノード１０ａ／１０ｂへ指示する（ステップＳ３０３）。この指示を受けたセンタノードの制御部１０５は、量子チャネルのスイッチ部１０１を指定されたリモートノードに切り替え、当該リモートノードに対する鍵生成プロセスを実行する。Ｋ１ＡおよびＫ１Ｂの残量が双方とも要求量より不足している場合は、残量が少ない方のリモートノードから鍵生成を開始する。
【００７１】
Ｋ１ＡおよびＫ１Ｂの残量がいずれもリモート鍵の要求量より大きいならば（ステップＳ３０２のｙｅｓ）、鍵管理サーバ３０はリモート鍵共有プロセスの開始をセンタノード１０ａおよび１０ｂへ指示する。センタノード１０ａは、鍵管理サーバ３０の指示により乱数列Ｋ１Ａの中からリモート鍵Ｋｒ（１ａ―１ｂ）として使用する部分を選択し、古典チャネルを介してリモートノードＲＮ−Ａ１へＫｒ（１ａ−１ｂ）に相当する領域を示す情報を通知する（ステップＳ３０４）。リモートノードＲＮ−Ａ１は、自身の鍵メモリ２０４に格納している量子鍵Ｋ１Ａのうち、リモート鍵に相当する部分をリモート鍵メモリ２０５にＫｒ（１ａ−１ｂ）として付け替え処理を行なう（ステップＳ３０５）。上述したように、リモートノードにおいて、量子鍵メモリ２０４の乱数列を一定容量ごとにファイル化し、生成順の番号をファイル名に付けて管理している場合には、センタノード１０ａがリモートノードＲＮ−Ａ１にリモート鍵Ｋｒ（１ａ−１ｂ）を通知する際は、ファイル番号のみを古典チャネルを用いて送信すればよい。
【００７２】
続いて、センタノード１０ａはリモート鍵Ｋｒ（１ａ−１ｂ）をセンタノード１０ｂに受け渡す（ステップ３０４ａ）。ここでは、センタノード１０ａとセンタノード１０ｂとは閉じた経路を用いるので特に暗号化などは行なわない。
【００７３】
次に、センタノード１０ｂは、リモートノードＲＮ−Ｂ１との間で共有している乱数Ｋ１Ｂから量子鍵Ｋ１ＢOTPを取り出してリモート鍵Ｋｒ（１ａ−１ｂ）をワンタイムパッド暗号化し、古典チャネルを通してリモートノードＲＮ−Ｂ１に送信する（ステップＳ３０６）。
【００７４】
リモートノードＲＮ−Ｂ１は、自身の乱数列Ｋ１Ｂから同じ量子鍵Ｋ１ＢOTPを取り出してワンタイムパッド暗号化されたリモート鍵Ｋｒ（１ａ−１ｂ）を復号し、リモート鍵メモリ２０５に格納する（ステップＳ３０７）。ここで、ワンタイムパッド暗号化に用いる量子鍵Ｋ１ＢOTPの領域（ファイル番号）も鍵管理サーバ３０により指示することができる。
【００７５】
ワンタイムパッド暗号化は、暗号鍵と平文の容量が等しく、暗号鍵に周期性がない限り、解読できないことが保証された暗号方式である。リモート鍵Ｋｒ（１ａ−１ｂ）を量子鍵Ｋ１ＢOTPでワンタイムパッド暗号化してＯＴＰ配送することにより、リモートノードＲＮ−Ｂ１は安全にリモート鍵Ｋｒ（１ａ−１ｂ）を共有することが可能になる。
【００７６】
３．３）暗号鍵の補充
このようにリモートノード間でワンタイムパッド暗号化通信が発生すると、センタノード１０とリモートノードＲＮ−Ｂ１との間で共有されている乱数列Ｋ１Ｂが消費される。一般に、センタノード１０と配下のリモートノードとの間で古典チャネルを介して暗号化通信が行なわれた場合も共有乱数列は消費される。他方、すでに述べたように、センタノードにおいて量子チャネルのスイッチ部１０１と古典チャネルのスイッチ部１０３とは独立して切り替えることができるので、各リモートノードとの間での共有乱数列の消費と並行して、量子チャネルを介した鍵生成を行うこともできる。このように各リモートノードにおける鍵蓄積量は常に増減を繰り返している。
【００７７】
そこで、ＯＴＰ配送が終了すると、鍵管理サーバ３０は、センタノード１０ａおよび１０ｂの量子鍵メモリ１０６に格納された共有乱数列のうち残量が最も少ない乱数列を検出し、そのリモートノードとの間で鍵生成プロセスを開始するようにセンタノードへ指示する（ステップＳ３０８）。すなわち、鍵管理サーバ３０の指示に従って、センタノード１０ａ／１０ｂの制御部１０５は、量子チャネルのスイッチ部１０１を指定されたリモートノードに切り替えて鍵生成プロセスを開始する。この鍵生成を行なうリモートノードは、ＯＴＰ配送を行なったリモートノード（ここではＲＮ−Ｂ１）とは限らない。ＯＴＰ配送によって量子鍵が消費された場合だけでなく、暗号化通信を行なうことでも量子鍵が消費されるからである。したがって、ステップＳ３０８は、暗号化通信が行われた時には常に実行されることが望ましい。なお、リモート鍵要求が発生したときの鍵生成プロセスであるステップＳ３０３は、ステップＳ３０８よりも優先される。
【００７８】
このようにして、ワンタイムパッド暗号化通信による量子鍵の消費が発生しても、鍵管理サーバ３０はセンタノード１０の鍵蓄積量を監視し適切に鍵生成開始の指示をすることにより、各リモートノード間の鍵蓄積量を平均化させることができる。これによってセンタノード１０と各リモートノードとの間で安定したワンタイムパッド暗号化通信を提供することが可能となる。
【００７９】
４．第４実施例
４．１）構成
図１０は本発明の第４実施例による秘匿通信ネットワークにおけるセンタノードおよびリモートノードの概略的構成を示すブロック図である。本実施例では、センタノードを中継ノードとして用いることで、異なるセンタノードに従属するリモートノード間でリモート鍵を共有する例である。
【００８０】
まず、ＱＫＤネットワークＡ（ＱＫＤ−ＮＷ−Ａ）では、Ｎ個のリモートノードＲＮ−Ａ１〜ＲＮ−ＡＮとセンタノード１０ａとがそれぞれ光ファイバによって接続され１：Ｎのネットワークを構成している。また、ＱＫＤネットワークＣ（ＱＫＤ−ＮＷ−Ｃ）では、センタノード１０ｃとリモートノードＲＮ−Ｃとが光ファイバによって接続され、Ｐｏｉｎｔ−ｔｏ−Ｐｏｉｎｔのネットワークを構成している。したがって、図１０では、センタノード１０ｃにスイッチ部１０１および１０３が図示されていない。
【００８１】
それぞれのＱＫＤネットワークにおける各リモートノードとセンタノードとは、すでに述べたように暗号鍵の生成および共有プロセスおよび暗号鍵を用いた暗号化通信を行う。各リモートノードとセンタノードの構成は図３に示すものと基本的に同じであるから、図１０では、簡単のために、センタノードの量子ユニットおよび古典ユニットとリモートノードの制御部とは省略されている。
【００８２】
ここでは、センタノード１０ｃとＱＫＤ−ＮＷ−ＡのリモートノードＲＮ−Ａ２とが安全に量子鍵のやり取りを行うことができるものとする。例えば、センタノード１０ｃとリモートノードＲＮ−Ａ２とは同じデータセンタ内に設置された閉じたネットワーク内にあって、特に暗号化通信などを行なわなくても装置の設置・管理の面から安全が保証されている場合である。本実施例によれば、センタノード１０ｃとリモートノードＲＮ−Ａ２とを１つの中継ノードとして用いることにより、センタノード１０ａは、自局ネットワークのリモートノードと別ネットワークＱＫＤ−ＮＷ−ＣのリモートノードＲＮ−Ｃとの間でのリモート鍵の共有を可能にする。
【００８３】
鍵管理サーバ３０はセンタノード１０ａおよびセンタノード１０ｃの量子鍵メモリ１０６ａおよび１０６ｃを監視している。各リモートノードは、生成した乱数列を量子鍵メモリ２０４ａおよび２０４ｃにそれぞれ格納している。センタノード１０ａは、リモートノードＲＮ−Ａ１〜ＲＮ−ＡＮと生成したすべての乱数列を量子鍵メモリ１０６ａに格納している。また、センタノード１０ｃは、リモートノードＲＮ−Ｃと生成した乱数列を量子鍵メモリ１０６ｃに格納している。このように、センタノードは、自身に従属するリモートノードすべての量子鍵を把握しているので、鍵管理サーバ３０はセンタノード１０ａ、１０ｃの量子鍵メモリ１０６ａ、１０６ｃを監視すればよい。鍵管理サーバ３０は、上述したように、センタノード１０ａ／１０ｃの量子鍵の残量に応じてセンタノード１０ａ／１０ｃに指示を送り、意図するリモートノードとの間の量子鍵を優先的に生成することが可能となる。量子鍵の生成・共有に関しては上記２．２）項で説明したとおりであるから、ここでは省略する。
【００８４】
なお、鍵管理サーバ３０とセンタノード１０ｃとの通信では、量子鍵自身を公開することなく、量子鍵のファイル番号や鍵蓄積量などの鍵管理情報のみをやりとりするので、鍵情報が公開されることはない。また、鍵管理情報を暗号化することで鍵管理情報も秘密に通信することが可能である。さらに、鍵管理サーバ３０はセンタノード１０ｃの認証を行なって成りすましを防止することもできる。
【００８５】
４．２）リモート鍵の共有
図１１はリモートノード間でリモート鍵を共有する手順を説明するための模式図であり、図１２はリモート鍵を共有する手順を示すシーケンス図である。ここでは、センタノード１０ａに従属するリモートノードＲＮ−Ａ１とセンタノード１０ｃに従属するリモートノードＲＮ−Ｃとの間で安全にリモート鍵Ｋｒ（１ａ−ｃ）を共有する場合を一例として説明する。ただし、図６のフローチャートと同じステップには同じ参照符号を付して説明は簡略化する。
【００８６】
まず、リモートノードＲＮ−Ａ１がリモートノードＲＮ−Ｃとの間の暗号化通信のためにセンタノード１０ａを通して鍵管理サーバ３０に対してリモート鍵の要求を行なったものとする（ステップＳ３０１）。このリモート鍵要求を受けると、鍵管理サーバ３０は、リモートノードＲＮ−Ａ１からリモートノードＲＮ−Ｃに至る経路にある全てのリモートノードの鍵蓄積量（残量）をチェックする（ステップＳ３０２）。この実施例では、リモートノードＲＮ−Ａ１、ＲＮ−Ａ２およびＲＮ−Ｃの乱数列Ｋ１ａ、Ｋ２ａおよびＫｃの鍵蓄積量（残量）がチェックされる。
【００８７】
鍵管理サーバ３０は、Ｋ１ａ、Ｋ２ａおよびＫｃの残量の少なくとも１つがリモート鍵の要求量以下ならば（ステップＳ３０２のｎｏ）、不足しているリモートノードに対する鍵生成プロセスの開始をセンタノード１０ａ／１０ｃへ指示する（ステップＳ３０３）。この指示を受けたセンタノードの制御部１０５は当該リモートノードに対する鍵生成プロセスを実行する。Ｋ１ａ、Ｋ２ａおよびＫｃの残量が双方とも要求量より不足している場合は、残量が少ない方のリモートノードから鍵生成を開始する。
【００８８】
Ｋ１ａ、Ｋ２ａおよびＫｃの残量がいずれもリモート鍵の要求量より大きいならば（ステップＳ３０２のｙｅｓ）、鍵管理サーバ３０はリモート鍵共有プロセスの開始をセンタノード１０ａおよび１０ｃへ指示する。まず、センタノード１０ａは、鍵管理サーバ３０の指示により乱数列Ｋ１ａの中からリモート鍵Ｋｒ（１ａ−ｃ）として使用する部分を選択し、古典チャネルを介してリモートノードＲＮ−Ａ１へＫｒ（１ａ−ｃ）に相当する領域を示す情報を通知する（ステップＳ３０４）。リモートノードＲＮ−Ａ１は、自身の鍵メモリ２０４に格納している量子鍵Ｋ１ａのうち、リモート鍵に相当する部分をリモート鍵メモリ２０５にＫｒ（１ａ−ｃ）として付け替え処理を行なう（ステップＳ３０５）。上述したように、リモートノードにおいて、量子鍵メモリ２０４の乱数列を一定容量ごとにファイル化し、生成順の番号をファイル名に付けて管理している場合には、センタノード１０ａがリモートノードＲＮ−Ａ１にリモート鍵Ｋｒ（１ａ−ｃ）を通知する際は、ファイル番号のみを古典チャネルを用いて送信すればよい。
【００８９】
次に、センタノード１０ａは、リモートノードＲＮ−Ａ２との間で共有している乱数Ｋ２ａから量子鍵Ｋ２ＡOTPを取り出してリモート鍵Ｋｒ（１ａ−ｃ）をワンタイムパッド暗号化し、古典チャネルを通してリモートノードＲＮ−Ａ２に送信する（ステップＳ４０１）。
【００９０】
ＯＴＰ暗号化されたリモート鍵Ｋｒ（１ａ−ｃ）を受け取ると、リモートノードＲＮ−Ａ２は、自身の乱数列Ｋ２ａから同じ量子鍵Ｋ２ＡOTPを取り出してワンタイムパッド暗号化されたリモート鍵Ｋｒ（１ａ−ｃ）を復号する（ステップＳ４０２）。ここで、ワンタイムパッド暗号化に用いる量子鍵Ｋ２ＡOTPの領域（ファイル番号）も鍵管理サーバ３０により指示することができる。ワンタイムパッド暗号化は、暗号鍵と平文の容量が等しく、暗号鍵に周期性がない限り、解読できないことが保証された暗号方式である。リモート鍵Ｋｒ（１ａ−ｃ）を量子鍵Ｋ２ＡOTPでワンタイムパッド暗号化してＯＴＰ配送することにより、リモートノードＲＮ−Ａ２は安全にリモート鍵Ｋｒ（１ａ−ｃ）を共有することが可能になる。
【００９１】
続いて、リモートノードＲＮ−Ａ２はリモート鍵Ｋｒ（１ａ−ｃ）をセンタノード１０ｃに受け渡す（ステップ４０３）。ここでは、センタノード１０ｃとリモートノードＲＮ−Ａ２とは閉じた経路を用いるので特に暗号化などは行なわない。
【００９２】
次に、センタノード１０ｃは、リモートノードＲＮ−Ｃとの間で共有している乱数Ｋｃから量子鍵ＫｃOTPを取り出してリモート鍵Ｋｒ（１ａ−ｃ）をワンタイムパッド暗号化し、古典チャネルを通してリモートノードＲＮ−Ｃに送信する（ステップＳ４０４）。
【００９３】
リモートノードＲＮ−Ｃは、自身の乱数列Ｋｃから同じ量子鍵ＫｃOTPを取り出してワンタイムパッド暗号化されたリモート鍵Ｋｒ（１ａ−ｃ）を復号し、リモート鍵メモリ２０５に格納する（ステップＳ４０５）。ここで、ワンタイムパッド暗号化に用いる量子鍵ＫｃOTPの領域（ファイル番号）も鍵管理サーバ３０により指示することができる。
【００９４】
ワンタイムパッド暗号化は、暗号鍵と平文の容量が等しく、暗号鍵に周期性がない限り、解読できないことが保証された暗号方式である。リモート鍵Ｋｒ（１ａ−ｃ）を量子鍵ＫｃOTPでワンタイムパッド暗号化してＯＴＰ配送することにより、リモートノードＲＮ−Ｃは安全にリモート鍵Ｋｒ（１ａ−ｃ）を共有することが可能になる。
【００９５】
４．３）暗号鍵の補充
このようにリモートノード間でワンタイムパッド暗号化通信が発生すると、センタノード１０ａとリモートノードＲＮ−Ａ２との間で共有されている乱数列Ｋ２ａおよびセンタノード１０ｃとリモートノードＲＮ−Ｃとの間で共有されている乱数列ｋｃが消費される。一般に、センタノードと配下のリモートノードとの間で古典チャネルを介して暗号化通信が行なわれた場合も共有乱数列は消費される。他方、すでに述べたように、センタノード１０ａにおいて量子チャネルのスイッチ部１０１と古典チャネルのスイッチ部１０３とは独立して切り替えることができるので、各リモートノードとの間での共有乱数列の消費と並行して、量子チャネルを介した鍵生成を行うこともできる。このように各リモートノードにおける鍵蓄積量は常に増減を繰り返している。
【００９６】
そこで、ＯＴＰ配送が終了すると、鍵管理サーバ３０は、センタノード１０ａおよび１０ｃの量子鍵メモリ１０６に格納された共有乱数列のうち残量が最も少ない乱数列を検出し、そのリモートノードとの間で鍵生成プロセスを開始するようにセンタノードへ指示する（ステップＳ４０６）。すなわち、鍵管理サーバ３０の指示に従って、センタノード１０ａ／１０ｃの制御部１０５は指定されたリモートノードに対する鍵生成プロセスを開始する。この鍵生成を行なうリモートノードは、ＯＴＰ配送を行なったリモートノード（ここではＲＮ−Ａ２、ＲＮ−Ｃ）とは限らない。ＯＴＰ配送によって量子鍵が消費された場合だけでなく、暗号化通信を行なうことでも量子鍵が消費されるからである。したがって、ステップＳ４０６は、暗号化通信が行われた時には常に実行されることが望ましい。なお、リモート鍵要求が発生したときの鍵生成プロセスであるステップＳ３０３は、ステップＳ４０６よりも優先される。
【００９７】
このようにして、ワンタイムパッド暗号化通信による量子鍵の消費が発生しても、鍵管理サーバ３０はセンタノードの鍵蓄積量を監視し適切に鍵生成開始の指示をすることにより、各リモートノード間の鍵蓄積量を平均化させることができる。これによってセンタノードと各リモートノードとの間で安定したワンタイムパッド暗号化通信を提供することが可能となる。
【００９８】
５．ネットワーク例
図１３は秘匿通信ネットワークの他の例を示すブロック図である。ここでは、センタノード１０ａはＮ個のリモートノードと１：Ｎネットワークを構成し、センタノード１０ｂはＭ個のリモートノードと１：Ｍネットワークを構成している。また、センタノード１０ｃはリモートノードＲＮ−ＣとＰｏｉｎｔ−ｔｏ−Ｐｏｉｎｔネットワークを構成している。センタノードは、それぞれのノードに従属するリモートノードと量子暗号鍵を生成・共有することができるものとする。また、センタノード１０ａと１０ｂとは閉じた経路で接続され、センタノード１０ｃとリモートノードＲＮ−Ａ２とも閉じた経路で接続され、それぞれ暗号化通信は必要ないものとする。鍵管理サーバ３０はセンタノード１０ａ、センタノード１０ｂおよびセンタノード１０ｃに格納されている量子鍵の残量を監視している。
【００９９】
このようなネットワーク構成では、リモートノードＲＮ−Ａ１とＲＮ−Ａ２との間のリモート暗号化通信５０１は上述した第２実施例により可能となり、リモートノードＲＮ−Ａ１とＲＮ−Ｂ１との間のリモート暗号化通信５０２は上述した第３実施例により可能となり、リモートノードＲＮ−Ａ１とＲＮ−Ｃとの間のリモート暗号化通信５０３は上述した第４実施例により可能となる。
【０１００】
なお、本発明は、上述した第１〜第４実施例のそれぞれに限定されるものではなく、これらの実施例の組み合わせにより任意のネットワーク構成における暗号化管理に適用可能である。
【０１０１】
また、量子暗号鍵配付（ＱＫＤ）技術は、Plug & Play方式、単一方向型、差動位相シフト型でも構わない。量子暗号鍵配布プロトコルは、ＢＢ８４プロトコルに限らず、Ｂ９２でもＥ９１でもよく、本発明をこれらに限定されるものではない。
【０１０２】
６．ネットワークの二重化
さらに、本発明は冗長系ネットワークに適用することで秘匿通信ネットワークの信頼性を向上させることができる。たとえば、上述した第２実施例によれば、リモートノード間のリモート鍵共有だけでなく、プロテクション機能としても利用することができる。図７に示された中央の破線より折り返してＱＫＤ−ＮＷ−ＡとＱＫＤ−ＮＷ−Ｂとをちょうど重ねるようにし、Ｎ＝Ｍとする。センタノードと各リモートノードとは、ＱＫＤ−ＮＷ−ＡとＱＫＤ−ＮＷ−Ｂとで同じようにリモート鍵を共有することにより、ネットワークを二重化構造にすることができる。以下、本発明を提供した冗長系ネットワークの一例を簡単に説明する。
【０１０３】
図１４は本発明の第２実施例を適用した冗長系ネットワークにおけるセンタノードおよびリモートノードの概略的構成を示すブロック図である。ここでは、Ｎ個（複数）のリモートノードＲＮ−１〜ＲＮ−Ｎがそれぞれ２本の光ファイバ（現用系および予備系）によってセンタノード１０に接続されている。通常は現用系ファイバを通して各リモートノードとセンタノード１０との間で暗号鍵の生成、共有およびそれを用いた暗号化通信が行われるが、現用系に障害あるいは基準を超える品質劣化が発生すると、当該リモートノードとセンタノード１０とは現用系から予備系に切り替えて、同様の暗号鍵生成および暗号化通信をやり直したり続行したりすることができる。現用系における障害あるいは品質劣化の検出については周知技術を用いればよい。
【０１０４】
リモートノードＲＮ−１〜ＲＮ−Ｎの各々は、現用系ファイバと予備系ファイバのいずれかを量子チャネルユニット２０１および古典チャネルユニット２０２に接続するためのスイッチ２０６を有する。制御部２０３は、上述した鍵生成およびリモート鍵付け替え制御に加えて、スイッチ２０６の現用系／予備系切り替え制御も行う。量子鍵メモリ２０４およびリモート鍵メモリ２０５についてはすでに説明したとおりである。
【０１０５】
センタノード１０はすでに説明したとおりであるが、制御部１０５は上述した制御に加えて、スイッチ部１０１および１０３を制御することで、あるリモートノードに関する現用系／予備系の切り替え制御も行う。現用系あるいは予備系を用いた鍵生成プロセスや暗号化通信は、第２実施例で説明したとおりであるからここでは省略する。
【産業上の利用可能性】
【０１０６】
本発明は、量子暗号鍵配付ＱＫＤに代表される共通暗号鍵配布技術を用いた１対多および多対多の秘匿情報通信に利用可能である。
【図面の簡単な説明】
【０１０７】
【図１】（Ａ）および（Ｂ）は本発明の第１実施例による暗号鍵管理システムを適用した秘匿通信ネットワークの２つの例をそれぞれ示す概略的構成図である。
【図２】本発明の第１実施例による暗号鍵管理方法を示すフローチャートである。
【図３】本発明の第２実施例による秘匿通信ネットワークにおけるセンタノードおよびリモートノードの概略的構成を示すブロック図である。
【図４】プラグアンドプレイ方式ＱＫＤシステムを示すブロック図である。
【図５】リモートノード間でリモート鍵を共有する手順を説明するための模式図である。
【図６】リモート鍵を共有する手順を示すシーケンス図である。
【図７】本発明の第３実施例による秘匿通信ネットワークにおけるセンタノードおよびリモートノードの概略的構成を示すブロック図である。
【図８】リモートノード間でリモート鍵を共有する手順を説明するための模式図である。
【図９】リモート鍵を共有する手順を示すシーケンス図である。
【図１０】本発明の第４実施例による秘匿通信ネットワークにおけるセンタノードおよびリモートノードの概略的構成を示すブロック図である。
【図１１】リモートノード間でリモート鍵を共有する手順を説明するための模式図である。
【図１２】リモート鍵を共有する手順を示すシーケンス図である。
【図１３】秘匿通信ネットワークの他の例を示すブロック図である。
【図１４】本発明の第２実施例を適用した冗長系ネットワークにおけるセンタノードおよびリモートノードの概略的構成を示すブロック図である。
【符号の説明】
【０１０８】
１０  センタノード
２０  リモートノード
３０  鍵管理サーバ
３１  鍵蓄積量モニタ
３２  鍵管理制御部
１０１  スイッチ部
１０２  量子チャネルユニット
１０３  スイッチ部
１０４  古典チャネルユニット
１０５  制御部
１０６  量子鍵メモリ
２０１  量子チャネルユニット
２０２  古典チャネルユニット
２０３  制御部
２０４  量子鍵メモリ
２０５  リモート鍵メモリ
【図１】
2008306633.tif 000003
【図２】
2008306633.tif 000004
【図３】
2008306633.tif 000005
【図４】
2008306633.tif 000006
【図５】
2008306633.tif 000007
【図６】
2008306633.tif 000008
【図７】
2008306633.tif 000009
【図８】
2008306633.tif 000010
【図９】
2008306633.tif 000011
【図１０】
2008306633.tif 000012
【図１１】
2008306633.tif 000013
【図１２】
2008306633.tif 000014
【図１３】
2008306633.tif 000015
【図１４】
2008306633.tif 000016