(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024134304
(43)【公開日】2024-10-03
(54)【発明の名称】量子鍵配送システム、ノード、鍵リレー経路計算エンジン、プログラム、及び量子鍵配送方法
(51)【国際特許分類】
H04L 9/12 20060101AFI20240926BHJP
【FI】
H04L9/12
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023044537
(22)【出願日】2023-03-20
(71)【出願人】
【識別番号】301022471
【氏名又は名称】国立研究開発法人情報通信研究機構
(74)【代理人】
【識別番号】100116850
【弁理士】
【氏名又は名称】廣瀬 隆行
(74)【代理人】
【識別番号】100165847
【弁理士】
【氏名又は名称】関 大祐
(72)【発明者】
【氏名】宮澤 高也
(72)【発明者】
【氏名】朝枝 仁
(72)【発明者】
【氏名】藤原 幹生
(57)【要約】
【課題】量子鍵配送ネットワークにおいて鍵リレー要求の棄却率や鍵消費量等を低減しつつ鍵リレー経路計算を自動化する。
【解決手段】量子鍵配送により他のノードと共有される暗号鍵を生成する量子鍵配送ネットワーク用のノード10は、始端のノード10(A)と終端のノード10(C)との間で共有される第1の暗号鍵を中継先のノードに供給する暗号鍵マネージャ12と、中継先のノードとなり得る複数の候補の中から中継先のノードを決定する鍵リレー経路計算エンジン14を含む。鍵リレー経路計算部14は、A)複数の候補との各リンクにおける暗号鍵の残量値、B)複数の候補との各リンクにおける暗号鍵の消費量の予測値、及びC)複数の候補との各リンクにおける暗号鍵の生成量の予測値に基づいて中継先のノードを決定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数の他のノードとの間で量子鍵を送受信し、当該量子鍵に基づいて当該他のノードと共有される暗号鍵を生成する量子鍵配送ネットワーク用のノードであって、前記量子鍵配送ネットワークは、始端のノードと終端のノードの間に複数の中継用のノードが介在しており、
前記ノードは、
生成した前記暗号鍵を記憶する暗号鍵記憶部と、
前記始端のノードと前記終端のノードとの間で共有される第1の暗号鍵を、中継先のノードとの間で共有している第2の暗号鍵を用いて暗号化して、当該中継先のノードに供給する鍵リレー部と、
前記中継先のノードとなり得る複数の候補の中から、前記中継先のノードを決定する鍵リレー経路計算部を有し、
前記鍵リレー経路計算部は、
A)前記複数の候補との各リンクについて前記暗号鍵記憶部に記憶されている前記暗号鍵の残量値、
B)前記複数の候補との各リンクにおける前記暗号鍵の消費量の予測値、及び
C)前記複数の候補との各リンクにおける前記暗号鍵の生成量の予測値のうち、
前記A)の情報と、前記B)と前記C)の情報の両方又はいずれか一方とに基づいて前記中継先のノードを決定する
ノード。
【請求項2】
前記鍵リレー経路計算部は、前記A)、前記B)、及び前記C)の情報に基づいて前記中継先のノードを決定する
請求項1に記載のノード。
【請求項3】
前記暗号鍵の消費量の予測値は、前記複数の候補との各リンクにおけるt時間の鍵消費量の予測値であり、
前記暗号鍵の生成量の予測値は、前記複数の候補との各リンクにおけるt時間の鍵生成量の予測値であって、
前記t時間は、前記始端のノードから前記第1の暗号鍵の供給を受ける送信端末と前記終端のノードから前記第1の暗号鍵の供給を受ける受信端末との間で行われる暗号通信の動作時間である
請求項1に記載のノード。
【請求項4】
請求項1に記載の前記ノードと、前記ノードが生成した前記暗号鍵の供給先を管理する管理サーバと、を備える量子鍵配送システムであって、
前記管理サーバは、
前記ノード間のリンクごとの前記暗号鍵の消費量の予測値を求める予測部を有し、
前記消費量の予測値を前記ノードに提供する
量子鍵配送システム。
【請求項5】
前記予測部は、過去の前記暗号鍵の消費量に関するデータを教師データとして機械学習を実行することにより得られた学習済みモデルを用いて、前記暗号鍵の消費量の予測値を求める
請求項4に記載の量子鍵配送システム。
【請求項6】
前記予測部は、さらに、前記ノード間のリンクごとの前記暗号鍵の生成量の予測値を求めるものであり、
前記管理サーバは、前記生成量の予測値を前記ノードに提供する
請求項4に記載の量子鍵配送システム。
【請求項7】
前記予測部は、さらに、過去の前記暗号鍵の消費量に関するデータを教師データとして機械学習を実行することにより得られた学習モデルを用いて、前記暗号鍵を利用した送信端末と受信端末との間で行われる暗号通信の需要を予測する
請求項4に記載の量子鍵配送システム。
【請求項8】
複数の他のノードとの間で量子鍵を送受信し、当該量子鍵に基づいて当該他のノードと共有される暗号鍵を生成する量子鍵配送方法であって、
前記量子鍵配送方法は、始端のノードと終端のノードの間に複数の中継用のノードが介在するネットワークにおいて行われ、
前記量子鍵配送方法は、
前記中継用のノードが、前記始端のノードと前記終端のノードとの間で共有される第1の暗号鍵を、中継先のノードとの間で共有している第2の暗号鍵を用いて暗号化して、当該中継先のノードに供給する鍵リレー工程と、
前記中継用のノードが、前記中継先のノードとなり得る複数の候補の中から、前記中継先のノードを決定する鍵リレー経路計算工程を含み、
前記鍵リレー経路計算工程は、
A)前記複数の候補との各リンクについて前記中継用のノードの記憶部に記憶されている前記暗号鍵の残量値、
B)前記複数の候補との各リンクにおける前記暗号鍵の消費量の予測値、及び
C)前記複数の候補との各リンクにおける前記暗号鍵の生成量の予測値のうち、
前記A)の情報と、前記B)と前記C)の情報の両方又はいずれか一方とに基づいて前記中継先のノードを決定する工程である
量子鍵配送方法。
【請求項9】
複数の他のノードとの間で量子鍵を送受信し、当該量子鍵に基づいて当該他のノードと共有される暗号鍵を生成するノード用の鍵リレー経路計算エンジンであって、
前記ノードは、
生成した前記暗号鍵を記憶する暗号鍵記憶部と、
始端のノードと終端のノードの間に複数の中継用のノードが介在している場合に、当該始端のノードと当該終端のノードとの間で共有される第1の暗号鍵を、中継先のノードとの間で共有している第2の暗号鍵を用いて暗号化して、当該中継先のノードに供給する鍵リレー部を有しており、
前記鍵リレー経路計算エンジンは、
前記中継先のノードとなり得る複数の候補の中から、前記中継先のノードを決定するものであって、
A)前記複数の候補との各リンクについて前記暗号鍵記憶部に記憶されている前記暗号鍵の残量値、
B)前記複数の候補との各リンクにおける前記暗号鍵の消費量の予測値、及び
C)前記複数の候補との各リンクにおける前記暗号鍵の生成量の予測値のうち、
前記A)の情報と、前記B)と前記C)の情報の両方又はいずれか一方とに基づいて前記中継先のノードを決定する
鍵リレー経路計算エンジン。
【請求項10】
コンピュータを、請求項9に記載の鍵リレー経路計算エンジンとして機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、量子鍵配送システム、当該システムを構成するノード、当該ノードが具備する鍵リレー経路計算エンジン、及びコンピュータプログラムに関する。また、本発明は、量子鍵配送方法にも関するものである。
【背景技術】
【0002】
近年の量子コンピュータ技術の進展に伴い、将来のネットワークでは、既存の暗号方式で暗号化された機密情報を短時間で容易に復号化されてしまう懸念がある。従って、機密情報等をやりとりするアプリケーションサービスにおいては、盗聴者が元のデータを絶対解読不可能とするなど極めて高い秘匿性を維持しつつ送受信間で情報のやり取り可能な技術が必須であり、早急に商用ネットワークに導入することが求められている。
【0003】
このため、量子通信チャネル及びワンタイムパッド等の暗号化方式を用いることで、情報理論的安全性を実現できる量子鍵配送ネットワーク(QKDN:Quantum Key Distribution Network)技術が注目されている(例えば特許文献1)。QKDN技術は、たとえ無限の計算能力を持つ盗聴者が居ても元データを解読不可能であることが理論的に証明されている量子暗号鍵を生成し、送受信間で安全に共有することを可能とする。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、QKDは、光子の量子状態の不安定性といった量子特有の物理的な特徴があり、鍵の生成速度や光子の通信距離が制限されてしまうという問題がある。このため、量子鍵を転送する中継ノードを配備する等の技術によって、互いに地理的距離が遠いQKDNノード間で鍵の共有を可能とする仕組みが必要である。
【0006】
一般に、QKDNは、(1)トラステッドノードQKDNと、(2)量子中継QKDNの2種類に分類できる。トラステッドノードQKDNでは、各々の隣接ノード間(すなわち各々のリンク)において、BB84方式のような量子暗号通信プロトコルによって、鍵が生成及び共有される。そのうえで、複数の中継ノードを経由する必要がある送受信間では、QKDの鍵リレー技術を用いて各中継ノードで量子鍵を安全に転送していくことによって、鍵を共有する。一方、量子中継QKDNでは、各中継ノードにおいて単一光子通信を終端せず、量子状態を維持したまま転送していくことによって、送受信間で単一光子通信を実現し、鍵を共有する。ただし、現状、量子中継QKDNを実現するためのデバイス技術(例えば量子メモリ)が実用化レベルに達していないため、早期実用化は困難とされている。従って、現在は、トラステッドノードQKDNの実用化に向けた研究が先行して進められている。
【0007】
前述の通り、トラステッドノードQKDNでは、鍵生成速度や光子の通信距離の制約が厳しく、各中継ノードに蓄積される量子鍵の量に厳しい制限がある。すなわち、トラステッドノードQKDNには、不安定な量子通信により暗号鍵の生成速度が非常に遅いため、各ネットワークノードに蓄積された鍵の量が極めて少なく、送信端末と受信端末の間で鍵を共有するための鍵リレー要求の棄却が問題視されている。このように、鍵不足に起因する鍵リレー要求棄却が問題となることから、現在は、ネットワーク全体において限られた量の暗号鍵を有効利用(暗号鍵の浪費を抑制)し、鍵リレー要求の棄却率や鍵消費量を低減するための技術が求められている。
【0008】
また、QKDN全体の鍵残量が時々刻々と変動する環境下において、鍵リレー要求棄却率や鍵提供失敗率といったQKDN性能を考慮すると、アプリケーション毎に最適な経路を常時自動選択できるとは限らず、QKDN性能が劣化する可能性がある。具体的には、大規模かつ複雑なトポロジー下では、最適経路の選択が困難であるかその選択に長時間要することとなるため、比較的短期に変動する状況(鍵蓄積量や障害等)には対応できず、何らかのポリシーで決定した経路が必ずしも最適な経路になるとは限らない。このため、トラステッドノードQKDNの大規模化や、時々刻々と変動するリソース状況(各ノードにおける暗号鍵の残量等)や障害発生等に迅速に対応するため、鍵リレー経路計算を自動化する技術が求められている。
【0009】
そこで、本発明は、主にトラステッドノードQKDNを対象として、鍵リレー要求の棄却率や鍵消費量等を低減しつつ、鍵リレー経路計算を自動化し、QKDNサービスの品質の維持及び向上を図ることを目的とする。
【課題を解決するための手段】
【0010】
本発明の発明者らは、上記課題を解決する手段について鋭意検討した結果、QKDシステムにおいて、ユーザからの鍵リレー要求を基に、アプリケーション動作時間後の未来におけるQKDN全体のリンク毎の鍵消費量及び/又は鍵生成量を予測し、その予測結果と現在の鍵残量とを踏まえて鍵リレー経路の自動選択を行うことにより、鍵リレー要求の棄却率や鍵消費量等を低減のための鍵リレー経路の自動計算を実現できるという知見を得た。そして、本発明者らは、上記知見に基づけば従来技術の課題を解決できることに想到し、本発明を完成させた。以下、具体的に説明する。
【0011】
本発明の第1の側面は、量子鍵配送ネットワーク(QKDN)を構成するノードに関する。量子鍵配送ネットワークでは、複数の他のノードとの間で量子鍵が送受信され、当該量子鍵に基づいて当該他のノードと共有される暗号鍵が生成される。本発明では、始端のノードと終端のノードの間に複数の中継用のノードが介在する量子鍵配送ネットワークを想定している。
【0012】
本発明に係るノードは、暗号鍵記憶部、鍵リレー部、及び鍵リレー経路計算部を有する。暗号鍵記憶部は、ノードが生成した暗号鍵を記憶する記憶装置であり、不揮発性メモリや揮発性メモリによって構成される。鍵リレー部は、始端のノードと終端のノードとの間で共有される第1の暗号鍵を、自己のノードと中継先のノードとの間で共有している第2の暗号鍵を用いて暗号化して、当該中継先のノードに供給するための演算処理を行う。リレー経路計算部は、中継先のノードとなり得る複数の候補の中から、中継先のノードを決定するための演算処理を行う。鍵リレー部とリレー経路計算部は、ノードに搭載されたCPUやGPUといったプロセッサで構成される。
【0013】
具体的には、ノードの鍵リレー経路計算部は、以下に記載したA)の情報に加え、B)とC)の情報の両方又はいずれか一方の情報に基づいて、中継先のノードとなり得る複数の候補の中から、一つの中継先のノードを決定する。
A)中継元のノードと中継先のノードとなり得る複数の候補との間の各リンクについて暗号鍵記憶部に記憶されている暗号鍵の残量値
B)中継元のノードと中継先のノードとなり得る複数の候補との間の各リンクにおける暗号鍵の消費量の予測値
C)中継元のノードと中継先のノードとなり得る複数の候補との間の各リンクにおける暗号鍵の生成量の予測値
【0014】
上記構成のように、本発明に係るノードは、暗号鍵の残量値だけでなく、機械学習等の技術を用いて暗号鍵の消費量及び/又は生成量を予測し、暗号鍵の残量値とこれらの予測値に基づいて最適な鍵リレー経路計算を自動的かつリアルタイムに決定する。これにより、限られた量の暗号鍵を有効利用しつつ、ネットワーク全体における鍵消費の時変動に対応することが可能となる。従って、鍵リレー要求の棄却率や鍵消費量等を低減することができ、量子鍵配送ネットワークの品質を維持及び向上させることができる。
【0015】
本発明に係るノードにおいて、鍵リレー経路計算部は、上記したA)、B)、及びC)のすべての情報に基づいて中継先のノード、つまり鍵リレー経路を決定することが好ましい。これにより、鍵リレー経路計算の精度を向上させることができる。
【0016】
本発明に係るノードにおいて、B)暗号鍵の消費量の予測値は、自己ノードと複数の候補との間の各リンクにおけるt時間の鍵消費量の予測値であり、C)暗号鍵の生成量の予測値は、自己ノードと複数の候補との間の各リンクにおけるt時間の鍵生成量の予測値であることが好ましい。なお、ここにいう「t時間」とは、始端のノードから第1の暗号鍵の供給を受ける送信端末と終端のノードから第1の暗号鍵の供給を受ける受信端末との間で行われる暗号通信の動作時間である。例えば、送信端末と受信端末の間の暗号通信が10秒間(t時間)行われる場合、この10秒間で、自己ノードと各候補との間で消費される暗号鍵の消費量や、自己ノードと各候補との間で生成される暗号鍵の生成量を予測すればよい。これにより、比較的短期に変動する状況(暗号鍵の蓄積量や障害等)に対応した適切な鍵リレー経路を自動的に求めることができる。
【0017】
本発明の第2の側面は、量子鍵配送システムに関する。本発明に係る量子鍵配送システムは、前述した第1の側面に係るノードと、このノードが生成した暗号鍵の供給先を管理する管理サーバとを備える。ここで、管理サーバは、予測部を有する。予測部は、ノード間のリンクごとの暗号鍵の消費量の予測値を求める。このとき、予測部は、過去の暗号鍵の消費量に関するデータを教師データとして機械学習を実行することにより得られた学習済みモデルを用いて、暗号鍵の消費量の予測値を求めることとしてもよい。また、管理サーバの予測部は、ノード間のリンクごとの暗号鍵の生成量の予測値をさらに求めることとしてもよい。管理サーバは、暗号鍵の消費量及び/又は生成量の予測値をノードに提供する。
【0018】
本発明に係る量子鍵配送システムにおいて、管理サーバの予測部は、過去の暗号鍵の消費量に関するデータを教師データとして機械学習を実行することにより得られた学習モデルを用いて、暗号鍵を利用した送信端末と受信端末との間で行われる暗号通信の需要を予測することとしてもよい。このように暗号通信の需要予測を行うことで、例えば、QKDNを運営する事業者は、アプリケーション毎の鍵の需要(=鍵の必要量)を機械学習(AI)を活用して予測し、その予測結果をユーザに事前提供することができる。この場合、ユーザは、各ユーザのアプリケーション毎の予測結果に応じて、例えばQKDNサービス課金契約やサービスレベル合意(SLA)も踏まえ、QKDN事業者に鍵リレー要求を行うことができる。
【0019】
本発明の第3の側面は、量子鍵配送方法に関する。本発明に係る量子鍵配送方法では、複数のノードの間で量子鍵が送受信され、当該量子鍵に基づいて複数のノードの間で共有される暗号鍵が生成される。この量子鍵配送方法は、始端のノードと終端のノードの間に複数の中継用のノードが介在するネットワークにおいて実行される。量子鍵配送方法は、鍵リレー工程と、鍵リレー経路計算工程を含む。鍵リレー工程では、中継用のノードが、始端のノードと終端のノードとの間で共有される第1の暗号鍵を、自己と中継先のノードとの間で共有している第2の暗号鍵を用いて暗号化して、当該中継先のノードに供給する。鍵リレー経路計算工程は、中継用のノードが、中継先のノードとなり得る複数の候補の中から、中継先のノードを決定する。ここで、鍵リレー経路計算工程では、以下に記載したA)の情報に加え、B)とC)の情報の両方又はいずれか一方の情報に基づいて、中継先のノードとなり得る複数の候補の中から、一つの中継先のノードが決定される。
A)中継元のノードと中継先のノードとなり得る複数の候補との間の各リンクについて暗号鍵記憶部に記憶されている暗号鍵の残量値
B)中継元のノードと中継先のノードとなり得る複数の候補との間の各リンクにおける暗号鍵の消費量の予測値
C)中継元のノードと中継先のノードとなり得る複数の候補との間の各リンクにおける暗号鍵の生成量の予測値
【0020】
本発明の第4の側面は、鍵リレー経路計算エンジンに関する。本発明に係る鍵リレー経路計算エンジンは、複数の他のノードとの間で量子鍵を送受信し、当該量子鍵に基づいて当該他のノードと共有される暗号鍵を生成するノードに具備される。ここで、ノードは、前述した第1の側面に係るノードと同様に、暗号鍵記憶部と鍵リレー部を有している。ここで、本発明に係る鍵リレー経路計算エンジンは、以下に記載したA)の情報に加え、B)とC)の情報の両方又はいずれか一方の情報に基づいて、中継先のノードとなり得る複数の候補の中から、一つの中継先のノードを決定する。
A)中継元のノードと中継先のノードとなり得る複数の候補との間の各リンクについて暗号鍵記憶部に記憶されている暗号鍵の残量値
B)中継元のノードと中継先のノードとなり得る複数の候補との間の各リンクにおける暗号鍵の消費量の予測値
C)中継元のノードと中継先のノードとなり得る複数の候補との間の各リンクにおける暗号鍵の生成量の予測値
【0021】
本発明の第5の側面は、コンピュータを、前述した第4の側面に係る鍵リレー経路計算エンジンとして機能させるためのプログラムである。このプログラムは、インターネット等の通信回線を介してコンピュータにダウンロード可能なものであってもよいし、CD-ROM等の記憶媒体に非一時的に記憶されたものであってもよい。
【発明の効果】
【0022】
本発明によれば、主にトラステッドノードQKDNを対象として、鍵リレー要求の棄却率や鍵消費量等を低減しつつ、鍵リレー経路計算を自動化し、QKDNサービスの品質の維持及び向上を図ることができる。
【図面の簡単な説明】
【0023】
【
図1】
図1は、本発明における量子鍵配送ネットワーク(QKDN)のアーキテクチャの一例を示している。
【
図2】
図2は、本発明の一実施形態に係る量子鍵配送(QKD)システムのブロック図を示している。
【
図3】
図3は、暗号鍵の生成方法の一例を示している。
【
図6】
図6は、本発明の一実施形態について、鍵リレー経路計算を含む制御処理のシーケンス図を示している。
【発明を実施するための形態】
【0024】
以下、図面を用いて本発明を実施するための形態について説明する。本発明は、以下に説明する形態に限定されるものではなく、以下の形態から当業者が自明な範囲で適宜変更したものも含む。
【0025】
図1は、本発明におけるQKDNのアーキテクチャの例を示している。このアーキテクチャは、基本的にITU-T(国際電気通信連合電気通信標準化部門)により量子鍵配送をサポートするネットワークのフレームワークとして承認された国際標準規格(Y.3800)を踏襲したものである。ただし、本発明に係るアーキテクチャは、QKDN制御レイヤが鍵リレー経路計算エンジン14を備える点、及び、QKDN管理レイヤがAIエンジン22を備える点を特徴の一つとしており、これらの点において上記の国際標準規格(Y.3800)とは異なる。また、
図2は、このアーキテクチャに従って構成されたQKDシステム100を構成する各要素の機能ブロックを示している。これらの図を参照して、QKDシステム100の機能について説明する。
【0026】
図1は、QKDNからユーザネットワークに提供された暗号鍵(K
1)を利用して、送信端末30と受信端末40のアプリケーション間で実行される暗号通信の例を示している。このように、QKDNは、主にOTP(ワンタイムパッド暗号)で暗号通信を行うユーザ向けに量子鍵の配送サービスを提供する。つまり、QKDNは、暗号通信を行う送信端末30と受信端末40の各拠点に、共有化された暗号鍵(K
1)を供給するものである。
【0027】
QKDNを構成する量子鍵配送システム100は、複数のQKDノード10と、QKDNを管理するための管理サーバ20を有している。QKDノード10は、それぞれ一又は複数の他のQKDノード10と光ファイバを介して接続されており、この光ファイバ網によってQKDノード10同士を接続するネットワークが構成されている。QKDノード10は、例えば各地に点在する量子鍵配送センターにそれぞれ配備されることとなる。また、管理サーバ20は、主に暗号鍵の供給を適応的に管理する役割を担う。管理サーバ20は、一台のサーバ装置によって構成されていてもよいが、インターネット等で接続された複数のサーバ装置を含むクラウドサーバによって構成されていてもよい。
【0028】
QKDノード10は、それぞれ、他のQKDノード10と光ファイバを介して光子を送受信することにより、互いにペアとなる量子鍵を共有し、この量子鍵に基づいて暗号鍵を生成し蓄積する。また、QKDノード10は、量子鍵を中継する中継装置としても機能する。つまり、QKDノード10は、それぞれ、光ファイバで直接的に接続されているQKDノード10との間だけでなく、一又は複数のQKDノード10を超えて光ファイバ網によって間接的に接続されている他のQKDノード10との間でも量子鍵を共有することができる。
【0029】
図1に示されるように、複数のQKDノード10と管理サーバ20によって構成されるQKDNは、量子レイヤ、暗号鍵管理レイヤ、QKDN制御レイヤ、及びQKDN管理レイヤを有するものと観念できる。複数のQKDノード10のそれぞれは、量子レイヤ、暗号鍵管理レイヤ、及びQKDN制御レイヤを有しており、つまりこれらのレイヤは複数のQKDノード10を横断するものであるといえる。また、QKDN管理レイヤは、管理サーバ20によって構成されており、量子レイヤ、暗号鍵管理レイヤ、及びQKDN制御レイヤとそれぞれ情報の授受を行うことができるように接続されている。
【0030】
量子レイヤは、各QKDノード10の量子鍵配送モジュール11と、これらを接続する光ファイバ(QKDリンク)によって構成される。量子鍵配送モジュール11は、基本的に他の同モジュールと一対一で接続されており、量子鍵配送モジュール11の各ペアは、独自の方法で対称的なランダムビット列を生成し、これを量子鍵として共有する。量子鍵配送モジュール11は、ここで生成した量子鍵を同じノード内に設けられた暗号鍵マネージャ12(KM:Key Managerともいう。)へと送る。また、量子鍵配送モジュール11は、光ファイバ(QKDリンク)のパラメータ(量子ビット誤り率等)を、管理サーバ20のQKDNマネージャ21に送信することとしてもよい。
【0031】
図1に示した例では、始端となるQKDノード10(A)と終端となるQKDノード10(C)の間に中継用のQKDノード10(B)が介在している。中継用のQKDノード10(B)には、始端となるQKDノード10(A)と接続される第1の量子鍵配送モジュール11(B1)と、終端となるQKDノード10(C)と接続される第2の量子鍵配送モジュール11(B2)がそれぞれ設けられている。このとき、始端となるQKDノード10(A)の量子鍵配送モジュール11(A)と中継用のQKDノード10(B)の第1の量子鍵配送モジュール11(B1)の間で暗号鍵(K
AB)が共有され、中継用のQKDノード10(B)の第2の量子鍵配送モジュール11(B2)と終端となるQKDノード10(C)の量子鍵配送モジュール11(C)の間で別の暗号鍵(K
BC)が共有される。
【0032】
暗号鍵管理レイヤは、各QKDノード10の暗号鍵マネージャ12と、これらを接続するリンク(KMリンク)によって構成される。このKMリンクには、インターネットや、電話回線、衛星通信回線等の汎用的な通信回線を利用することができる。各暗号鍵マネージャ12は、これと同じノードに設けられた量子鍵配送モジュール11から量子鍵(ランダムなビット列)を受け取ると、この量子鍵を再フォーマットして、暗号鍵としてストレージに格納する。また、暗号鍵マネージャ12には、送信端末30又は受信端末40の間で利用される各種暗号通信用のアプリケーションのインタフェースが搭載されている。暗号鍵マネージャ12は、暗号アプリケーションから暗号鍵の要求を受けると、ストレージから必要な量の暗号鍵を読み出すとともに、送信側と受信側とで同期をとりながら、暗号アプリケーションに適切な形式で送信端末30又は受信端末40に供給する。また、暗号鍵マネージャ12、量子鍵配送モジュール11及び光ファイバ(QKDリンク)にアクセスし、それらの活性化、非活性化、パラメータ制御、及び較正を行うこともできる。さらに、暗号鍵マネージャ12は、暗号鍵のライフサイクル管理も実行する。
【0033】
また、送信端末30に対応するQKDノード10と受信端末40に対応するQKDノード10を暗号鍵管理レイヤのKMリンクで直接接続することができない場合には、この暗号鍵管理レイヤにて暗号鍵を中継することにより、送信端末30と受信端末40に暗号鍵を共有させる。この場合、暗号鍵マネージャ12は、QKDN制御レイヤのQKDNコントローラ13に適切な中継経路を問い合わせる。QKDNコントローラ13の制御に基づいて、各暗号鍵マネージャ12は、KMリンクを介して始端と終端のQKDノード10の間で供給されるべき暗号鍵を受け取ると、中継元と中継先のQKDノード10で共有している別の暗号鍵を用いて安全性の高い暗号化(OTPなど)を行い、中継先のQKDノード10へと送信していく。その結果、暗号鍵が中継され、最終的に暗号化アプリケーションへと供給される。
【0034】
図1では、中継用のQKDノード10(B)を経由して始端となるQKDノード10(A)と終端となるQKDノード10(C)と間で暗号鍵(K
1)を共有する鍵リレーを例示している。この場合、暗号鍵(K
1)は、例えばQKDノード10(A)とQKDノード10(C)の間で生成された量子鍵(K
AB)(ケース1)から生成したもの、又は、QKDノード10(A)でローカルに生成されたランダムなビット列(例えば量子鍵K
RN)(ケース2)から生成されたもののいずれかとすることができる。ケース1では、暗号鍵(K
AB)は、QKDノード10(B)とQKDノード10(C)の間で共有する量子鍵(K
BC)から生成された暗号鍵によるOTP暗号化によって、QKDノード10(B)からQKDノード10(C)に中継され、最後にQKDノード10(C)で復号される。また、ケース2では、暗号鍵(K
RN)は、まず、量子鍵(K
AB)から生成された暗号鍵によるによるOTP暗号化によってQKDノード10(A)からQKDノード10(B)に送信され、QKDノード10(B)で復号される。次に、暗号鍵(K
RN)は、量子鍵(K
BC)から生成された暗号鍵によるOTP暗号化され、QKDノード10(B)からQKDノード10(C)に送信され、最後にQKDノード10(C)で復号される。したがって、暗号鍵K
1は、QKDノード10(A)とQKDノード10(C)の間で共有される。
【0035】
QKDN制御レイヤは、QKDノード10のQKDNコントローラ13と鍵リレー経路計算エンジン14によって構成される。このQKDN制御レイヤは、QKDN全体の制御に関わるものであり、QKDNコントローラ13の機能には、例えば、暗号鍵中継のルーティング制御、QKDリンク及びKMリンクの制御、QKDサービスのセッション制御、認証及び認可制御、並びに、QoS(Quality of Service)及び課金ポリシー制御が含まれる。なお、集中型アーキテクチャでは、
図1のQKDノード10(B)に示されるように、単一のQKDNコントローラ13がQKDN制御機能を実行すればよい。この場合、一つのQKDノード10(B)に設けられたQKDNコントローラ13が、ある暗号鍵の鍵リレーを実行するQKDノード10全体の制御を行う。一方、分散型アーキテクチャでは、実線と点線で囲まれたQKDNコントローラ13のように、各QKDノード10(A,B,C)のそれぞれにQKDNコントローラ13が設けられた、それぞれのQKDNコントローラ13がQKDノード10の制御を行う。
【0036】
鍵リレー経路計算エンジン14は、本発明特有の要素である。鍵リレー経路計算エンジン14は、始端のQKDノード10から終端のQKDノード10までの暗号鍵の適切なリレー経路を自動的に計算する。詳細については後述するが、鍵リレー経路計算エンジン14は、各KMリンクにおける暗号鍵の残量値や、暗号鍵の消費量の予測値に基づいて、各KMリンクにおけるコスト値を算出する。そして、鍵リレー経路計算エンジン14は、始端のQKDノード10から終端のQKDノード10までに経由するKMリンクのコスト値が最小限となるように、暗号鍵のリレー経路を求める。鍵リレー経路計算エンジン14が自動的に求めたリレー経路は、QKDNコントローラ13に伝達される。各QKDノード10の暗号鍵マネージャ12は、QKDNコントローラ13の制御に従って暗号鍵と中継することとなる。
【0037】
QKDN管理レイヤは、管理サーバ20のQKDNマネージャ21とAIエンジン22によって構成される。QKDN管理レイヤでは、QKDN全体の管理と監視が行われる。具体的には、管理サーバ20のQKDNマネージャ21は、例えば、量子レイヤのQKDモジュール11とQKDリンク(中継点を含む)の性能に関する情報と、暗号鍵管理レイヤにおける暗号鍵の管理情報を収集し、これら2層の監視を行う。暗号鍵管理レイヤにおける暗号鍵の管理情報には、暗号鍵のライフサイクルに関する情報、具体的には、暗号鍵の現在の蓄積量や、蓄積量の推移に関する情報の他、暗号鍵の消費日時や消費量の推移に関する情報や、暗号鍵の生成日時や生成量の推移に関する情報が含まれる。QKDNマネージャ21が収集した暗号鍵の管理情報は、AIエンジン22に提供される。
【0038】
AIエンジン22(予測部)は、本発明特有の要素である。AIエンジン22は、主に暗号鍵の実際のライフサイクルに関する情報を教師データとして機械学習を実行し、アプリケーション毎の暗号鍵の需要予測や、鍵管理レイヤのKMリンク毎の暗号鍵の消費量の予測に利用される学習済みモデルを生成する。AIエンジン22は、QKDNマネージャ21から暗号鍵のライフサイクルに関する情報を常時又は定期的に受信し、機械学習を実行することで学習済みモデルの精度向上や更新を行うとよい。
【0039】
アプリケーション毎の暗号鍵の需要予測としては、QKDNを運営するサービス事業者が、将来発生し得るアプリケーションの各々について、AI技術(機械学習)を活用して暗号鍵の需要(=必要量)の予測を行い、エンドユーザに提供する。エンドユーザとしては、例えば、金融分野における暗号通信であれば銀行や証券会社等が想定され、医療分野における暗号通信であれば病院や薬局等が想定される。具体的には、AIエンジン22は、過去のアプリケーションごとの暗号鍵の消費日時や消費変動に関するデータに対して教師有り学習を実行し、将来の同じアプリケーションについて暗号鍵の鍵の需要(=必要量)の予測を行うための学習済みモデルを生成する。教師有り学習のアルゴリズムは、特に限定されず、主に時系列データを扱う公知の学習アルゴリズムを用いることができる。例えば、学習アルゴリズムとしては、ディープラーニングモデルの1種である長・短期記憶(LSTM:Long Short Term Memory)や、回帰型ニューラルネットワーク(RNN:Recurrent Neural Network)を用いてもよい。なお、過去の同アプリケーションのデータセットが少ない場合には、類似のアプリケーションの過去のデータセットを教師データとして使用してもよい。また、データセットが少ない場合においても有効な学習アルゴリズム、例えば転移学習等を利用してもよい。
【0040】
上記の暗号鍵の需要の予測結果に基づいて、QKDNサービスの提供を受けるエンドユーザは、QKDNサービスの課金契約やSLA(Service Level Agreement)等も踏まえて、QKDNサービス事業者(具体的にはQKDNマネージャ21)に対して、暗号鍵の提供を依頼する。その際、エンドユーザは、必ずしも全ての暗号鍵をワンタイムパッド(OTP)方式で依頼する必要はなく、状況に応じて、一部もしくは全てをAES(Advanced Encryption Standard)等の他方式で依頼することとしてもよい。例えば、あるエンドユーザのあるアプリケーションについて1ヶ月間の暗号鍵の需要予測を行った結果、月ごと契約容量(GB)を超えていた場合、エンドユーザは、一部をAES方式にすることなどを検討する。このような方式の切り替えも考慮に入れつつ、エンドユーザは、QKDNサービス事業者に対して、適切なサイズの暗号鍵の提供を依頼する。そして、その依頼を基に、QKDNサービス事業者(主に管理サーバ20の運営事業者)は、QKDNインフラ事業者(主にQKDノードの運営事業者)に対して、送信端末と受信端末の間の鍵リレー要求を行う。
【0041】
鍵管理レイヤのKMリンク毎の暗号鍵の消費量の予測としては、QKDNインフラ事業者が、QKDNの鍵管理レイヤのKMリンク毎に、AI技術(機械学習)を活用して、過去の鍵消費量の時間変動データに対して教師有り学習を実行し、各リンクにおける未来(t時間後)の暗号鍵の消費量を予測する学習済みモデルを構築する。この学習済みモデルを利用して取得した暗号鍵の消費量の予測値は、管理サーバ20のQKDNマネージャ21からQKDノード10の鍵リレー経路計算エンジン14に提供され、この鍵リレー経路計算エンジン14による暗号鍵のリレー経路を算出するための一つの要素として利用される。また、ここに記載した「t時間後」の変数tは、正の整数であり、アプリケーションの動作時間、すなわち、送信端末30と受信端末40との間で行われる暗号通信の動作時間である。このため、変数tはアプリケーション毎に異なる数値となる。すなわち、アプリケーション毎にt時間内で消費されるリンク毎の鍵消費量を予測することで、当該予測値に基づいて各アプリケーションに適した鍵リレー経路選択が可能となる。
【0042】
具体的には、AIエンジン22は、QKDNの鍵管理レイヤを構成するKMリンク毎に、過去の暗号鍵の消費日時や鍵消費量の時間変動データに対して教師有り学習を実行し、各KMリンクにおける未来の鍵消費量を予測するための学習済みモデルを生成する。教師有り学習のアルゴリズムは、特に限定されず、主に時系列データを扱う公知の学習アルゴリズムを用いることができる。例えば、学習アルゴリズムとしては、ディープラーニングモデルの1種である長・短期記憶(LSTM:Long Short Term Memory)や、回帰型ニューラルネットワーク(RNN:Recurrent Neural Network)を用いてもよい。なお、過去の同アプリケーションのデータセットが少ない場合には、擬似的なデータを生成して教師データとして使用してもよい。また、データセットが少ない場合においても有効な学習アルゴリズム、例えば転移学習等を利用してもよい。
【0043】
また、AIエンジン22は、前述した暗号鍵の消費量の予測と同様の手法を用いて、鍵管理レイヤのKMリンク毎の暗号鍵の未来(t時間後)の生成量を予測するための学習済みモデルを構築することとしてもよい。ただし、暗号鍵の生成量は、リンクを構成するQKDノード10の処理性能に依存するものであり、基本的には単位時間あたり一定の暗号鍵の生成量が見込めることから、AI技術(機械学習)を用いなくても、ある程度確度の高い予測が可能である。このため、暗号鍵の生成量の予測値については、AIエンジン22を利用せずに、QKDNマネージャ21又はQKDNコントローラ13にて所定の演算によって求めることとしてもよい。
【0044】
図1に示されるように、量子レイヤ、暗号鍵管理レイヤ、QKDN制御レイヤ、及びQKDN管理レイヤを含むQKDNは、ユーザネットワークに対して暗号鍵(K
1)を提供する。ユーザネットワークは、サービスレイヤ及びユーザネットワーク管理レイヤを有するものと観念できる。サービスレイヤには、送信端末30と受信端末40の暗号アプリケーションが配置される。送信端末30と受信端末40は、QKDNから暗号鍵の供給を受けて、インターネット等のアプリケーションリンクを介して安全な通信を行う。ユーザネットワーク管理レイヤは、ネットワークマネージャ23により構成される。ネットワークマネージャ23は、ユーザネットワーク内の仮想化と非仮想化リソースの管理及びオーケストレーション(管理の自動化)を実行する。
図1に示した例では、ネットワークマネージャ23は、管理サーバ20に備えられている。ただし、管理サーバ20とは別のサーバ装置にネットワークマネージャ23を設けることとしてもよい。
【0045】
図2は、QKDシステム100,送信端末30,及び受信端末40を構成する機能ブロックを示している。QKDシステム100は、前述した通り、主に複数のQKDノード10と管理サーバ20を含む。各QKDノード10は、前述した量子鍵配送モジュール11を備え、これは光ファイバを介した量子鍵配送のための専用のハードウェアである。また、各QKDノード10は、前述した暗号鍵マネージャ12、QKDNコントローラ13、及び鍵リレー経路計算エンジン14を備え、これらの要素はコンピュータが備えるプロセッサ、メモリ、及びストレージといったハードウェアによって実現される。プロセッサとしては、CPU及び/又はGPUを採用すればよい。プロセッサは、メモリに記憶されているプログラムやデータに従って所定の演算処理を行い、その演算結果をメモリやストレージに書き出しながら各種の制御処理を実行する。メモリは、例えばRAM等の揮発性メモリや、フラッシュメモリ等の不揮発性メモリから構成され、上記したプロセッサによる演算処理に利用される。ストレージは、例えばHDD及びSDDといった不揮発性メモリによって実現され、プロセッサにより処理される前のデータや、プロセッサにより処理された後のデータを蓄積する用途で用いられる。また、各QKDノード10は、インターネット等の汎用的な通信回線を通じて管理サーバ20や送信端末30,受信端末40と通信するための通信部15を有する。通信部15は、例えば有線LANや無線LANで通信回線に接続するためのインタフェースを含む。無線LANでの接続である場合、通信部13は、例えば3G(W-CDMA)、4G(LTE/LTE-Advanced)、5Gといった公知の移動通信規格や、Wi-Fi(登録商標)等の公知の通信モジュールを採用すればよい。
【0046】
また、管理サーバ20は、前述したQKDNマネージャ21、AIエンジン22、及びネットワークマネージャ23を備え、これらの要素はコンピュータが備えるプロセッサ、メモリ、及びストレージといったハードウェアによって実現される。なお、AIエンジン22によって生成された学習済みモデル22aは、管理サーバ20のストレージに記憶されている。また、管理サーバ20は、インターネット等の汎用的な通信回線を通じてQKDノード10や送信端末30,受信端末40と通信するための通信部24を有する。通信部24は、例えば有線LANや無線LANで通信回線に接続するためのインタフェースを含む。
【0047】
また、送信端末30及び受信端末40は、それぞれ汎用的なコンピュータで構成されている。送信端末30及び受信端末40の各端末は、例えば、制御部31,41、記憶部32,42、通信部33,43、出力部34,44、及び入力部35,45を有する。制御部31,41は、CPU又はGPUといったプロセッサで構成される。記憶部32,42のメモリ機能は、RAM等の揮発性メモリやフラッシュメモリ等の不揮発性メモリによって実現され、ストレージ機能はHDD及びSDDといった不揮発性メモリによって実現される。通信部33,43は、有線LANや無線LANで通信回線に接続するためのインタフェースを含む。出力部34,44としては、液晶ディスプレイや有機ELディスプレイ等の表示装置、及びスピーカ等の音出力装置を採用できる。また、入力部35,45としては、キーボード、マウス、タッチパネル、マイクロフォン等の公知の入力装置を採用できる。
【0048】
図2に示されるように、QKDノード10の暗号鍵マネージャ12は、暗号鍵生成部12a及び暗号鍵記憶部12bを有する。QKDノード10の暗号鍵生成部12aは、量子鍵配送モジュール11を介して対となる他のQKDノード10と共有している量子鍵に基づいて、暗号鍵を生成する。暗号鍵記憶部12bには暗号鍵生成部12aが生成した暗号鍵が蓄積されており、暗号通信や鍵リレーによって消費された暗号鍵はこの暗号鍵記憶部12bから消去されることとなる。
【0049】
図3は、暗号鍵生成部12aによる暗号鍵の生成方法の好ましい例を示している。
図3に示した例では、送信端末30に暗号鍵を供給する第1のQKDノード10(A)と受信端末40に暗号鍵を供給する第2のQKDノード10(B)とで共通する暗号鍵(K4)を生成する方法を示している。まず、第1のQKDノード10(A)と第2のQKDノード10(B)のそれぞれの量子鍵配送モジュール11は、量子鍵配送により乱数列の量子鍵を共有する。この量子鍵配送では、各QKDノード10(A,B)の量子鍵配送モジュール11の間で、光ファイバを介して光子パルスを送受信し、安全かつ誤りのない予め定めたデータ長の乱数列を鍵蒸留により取り出すことで、量子鍵(K0)を共有する。なお、この量子鍵K0の鍵長は、送信端末30と受信端末40とで使用される暗号鍵K4よりも長い。量子鍵配送モジュール11は、量子鍵を順次生成し、これを暗号鍵生成部12aに出力する。
【0050】
暗号鍵生成部12aは、量子鍵配送モジュール11で生成された量子鍵から、暗号通信でやり取りされるデータの暗号化及び復号を行うための暗号鍵K4を生成する。本実施形態における暗号方式は、量子暗号により一度使用した暗号鍵を使用しないOTP暗号方式であるため、暗号鍵生成部12aは、生成した暗号鍵K4を複数蓄積しつつ、要求に応じて暗号鍵K4を各端末30,40に出力する。
【0051】
具体例について説明すると、暗号鍵生成部12aは、まず、量子鍵配送モジュール11により順次生成される量子鍵K0を、第1鍵K1と第2鍵K2とに分離する。なお、第1鍵K1の鍵長は、送信端末30と受信端末40で使用する暗号鍵K4と同じ長さである。また、暗号鍵記憶部12bは、例えば、不揮発性メモリ12b1(SRAM、SSD等)と揮発性メモリ12b2(DRAM等)を含む。暗号鍵生成部12aは、例えば、第1鍵K1を不揮発性メモリ12b1(SRAM、SSD等)に記憶し、第2鍵K2を揮発性メモリ12b2(DRAM等)に記憶する。次に、暗号鍵生成部12aは、第2鍵K2から鍵長が第1鍵K1と同じになるように拡張した第3鍵K3を生成し、再び揮発性メモリ12b2に記憶する。さらに、暗号鍵生成部12aは、第1鍵K1と第3鍵K3とで排他的論理和演算を行うことで暗号鍵K4を生成して、再び揮発性メモリ12b2に記憶しておく。そして、第1のQKDノード(A)と第2のQKDノード(B)の暗号鍵生成部12aは、ユーザネットワークからの要求に応じて、ワンタイムパッドとして暗号鍵K4を送信端末30と受信端末40のそれぞれに出力する。また、暗号鍵生成部12aは、暗号鍵K4を出力した後、暗号鍵K4と、これを生成するために使用した第1鍵K1、第2鍵K2、及び第3鍵K3とをそれぞれ不揮発性メモリ12b1及び揮発性メモリ12b2から削除する。このようして、送信端末30と受信端末40のそれぞれに共通する暗号鍵K4を供給することができる。なお、暗号鍵の生成方式は、
図3に例示された方法だけでなく、その他公知の方式を採用することが可能である。
【0052】
図2に示されるように、QKDノード10の暗号鍵マネージャ12は、鍵リレー部12cを有する。鍵リレーの方式は前述したとおりであるが、
図4を参照して、始端となるQKDノード10(A)から終端となるQKDノード10(D)の間に、2以上の中継用のQKDノード10(B,C)が介在する場合の例について説明する。
図4に示した例では、始端ノード10(A)の量子鍵配送モジュール11(A)と第1の中継ノード10(B)の第1の量子鍵配送モジュール11(B1)との間で生成された第1の量子鍵(K
AB)に基づいて、第1の暗号鍵(K
1)を生成し、この第1の暗号鍵(K
1)を始端ノード10(A)と終端ノード10(D)とで共有することを想定している。
【0053】
まず、始端ノード10(A)と第1の中継ノード10(B)は、前述のように共通する第1の量子鍵(KAB)を生成し、これに基づいて暗号鍵(K1)を生成する。次に、第1の中継ノード10(B)の第2の量子鍵配送モジュール11(B2)と第2の中継ノード10(C)の第1の量子鍵配送モジュール11(C1)との間で第2の量子鍵(KBC)を生成する。また、第1の中継ノード10(B)と第2の中継ノード10(C)は、第2の量子鍵(KBC)に基づいて第2の暗号鍵(K2)を生成する。第1の中継ノード10(B)は、第1の暗号鍵(K1)を第2の暗号鍵(K2)によって暗号化して、通信部15(B)により通信回線を介して第2の中継ノード10(C)へと送信する。第2の中継ノード10(C)は、通信部15(C)によって暗号化された暗号鍵(K1)を受け取ると、第2の暗号鍵(K2)でこれを復号化する。これにより第2の暗号鍵(K2)は消費され、第1の中継ノード10(B)と第2の中継ノード10(C)から消去される。
【0054】
また、第2の中継ノード10(C)の第2の量子鍵配送モジュール11(C2)と終端ノード10(D)の量子鍵配送モジュール11(D)との間で第3の量子鍵(KCD)を生成する。また、第2の中継ノード10(C)と終端ノード10(D)は、第3の量子鍵(KCD)に基づいて第3の暗号鍵(K3)を生成する。第2の中継ノード10(C)は、第1の暗号鍵(K1)を第3の暗号鍵(K3)によって暗号化して、通信部15(C)により通信回線を介して終端ノード10(D)へと送信する。終端ノード10(D)は、通信部15(D)によって暗号化された第1の暗号鍵(K1)を受け取ると、第3の暗号鍵(K3)でこれを復号化する。これにより第3の暗号鍵(K3)は消費され、第2の中継ノード10(C)と終端ノード10(D)から消去される。
【0055】
このように鍵リレーを行うことで、始端ノード10(A)と終端ノード10(D)は互いに光ファイバによって直接的に接続されていなくても、第1の暗号鍵(K
1)を共有することができる。これにより、始端ノード10(A)と終端ノード10(D)は、それぞれ第1の暗号鍵(K
1)を送信端末や受信端末に提供することができる。また、
図4に始端ノード10(A)と終端ノード10(D)の間に2つの中継ノード10(C,D)が介在している例を示したが、中継ノード10(C,D…)がさらに増えた場合であっても、上記の暗号鍵のリレーを繰り返し行うことで、各リンクにおいて暗号鍵を消費しながら、光ファイバによって直接的に接続されていない始端ノード10(A)と終端ノード10(D)の間で暗号鍵を共有することができる。
【0056】
次に、
図5と
図6を参照して、送信端末30に対応する始端ノードから受信端末40に対応する終端ノードまでの鍵リレー経路の自動計算方法について具体的に説明する。
図5に示した例では、始端ノード10(A)と終端ノード10(F)の間で暗号鍵(K
1)を共有し、この暗号鍵(K
1)をそれぞれ送信端末30と受信端末40に供給する。このとき、始端ノード10(A)と終端ノード10(F)の間には複数の中継ノード(B~E)が介在しており、これらの中継ノード(B~E)を介して始端ノード10(A)と終端ノード10(F)を繋ぐ鍵リレー経路が複数存在する場合を想定している。
【0057】
図6は、ユーザから暗号鍵の需要予測や鍵リレーの要求を受けてQKDNを構成するQKDシステム100が鍵リレーを実行するまでの処理の一例を示したシーケンス図である。
図6に示したシーケンスは、主に、ユーザに暗号鍵の需要予測結果を提供する第1工程(S1-1~S1-4)と、ユーザからの要求を受けて鍵リレーを実行する第2工程(S2-1~S2-11)に分けられる。なお、ここに記載のユーザは、QKDNネットワークを利用した暗号通信サービスを提供するQKDN事業者と契約(課金、SLA)している者であることを想定している。
【0058】
まず、第1工程について説明する。まず、ユーザは、送信端末30、受信端末40、又はこれらの端末を管理するサーバ装置(不図示)を利用して、QKDシステム100のQKDNマネージャ21に、送信端末30と受信端末40の間で動作するアプリケーションの情報を送信する(S1-1)。このアプリケーション情報には、例えば送信端末30と受信端末40の間で行われる暗号通信の内容や、暗号通信の動作時間に関する情報が含まれる。なお、暗号通信の内容としては、どのような分野(金融、医療、国家関連等)のデータであるのか、送信されるデータの予定容量、データの種類(静止画、動画、音声、テキスト等)が挙げられる。QKDNマネージャ21は、このようなアプリケーション情報を受信すると、このアプリケーション情報に基づく暗号鍵の需要予測要求をAIエンジン22に伝達する(S1-2)。AIエンジン22は、過去の鍵消費変動等を対象とした機械学習により生成した学習済みモデル22aに、このアプリケーション情報を入力して、このアプリケーションにおける暗号鍵の将来の需要予測を行う(ステップS1-3)。AIエンジン22にて得られた需要予測結果は、QKDNマネージャ21を介して、ユーザ(端末やサーバ装置)に対して提供される(ステップS1-4)。
【0059】
ユーザは、QKDシステム100から提供を受けた暗号鍵の需要予測結果に基づいて、QKDNサービスの課金契約やSLA等も踏まえて、QKDNサービス事業者に対し、鍵提供を依頼することができる。例えば、必ずしも全ての暗号鍵をワンタイムパッド(OTP)方式とする必要はなく、状況に応じて、提供を受ける暗号鍵の一部もしくは全てをAES等の他方式とする選択を行うこともできる。例えば、鍵の需要予測の結果、契約容量(GB)/月を超えていた場合、ユーザは一部をAES方式にするなどの対応を行う。このような方式の切り替えも考慮に入れつつ、ユーザは、QKDNサービス事業者に対して、適切なサイズの暗号鍵の提供を依頼する。
【0060】
次に、第2工程について説明する。ユーザは、第1工程で提供を受けた暗号鍵の需要予測結果などを踏まえて、送信端末30、受信端末40、又はこれらの端末を管理するサーバ装置(不図示)を利用して、QKDシステム100のQKDNマネージャ21に、暗号鍵の発行や鍵リレーの要求を行う(S2-1)。この暗号鍵の発行等の要求には、例えば、送信端末30と受信端末40の所在地域に関する情報が含まれる。QKDNマネージャ21は、これらの所在地域に関する情報を基に、送信端末30と受信端末40のそれぞれに最寄りのQKDノード10を割り当てることとしてもよい。
図5に示した例では、送信端末30に暗号鍵(K
1)を供給するQKDノード10が始端ノード10(A)となり、受信端末40に暗号鍵(K
1)を供給するQKDノード10が終端ノード10(F)となる。なお、ユーザは、QKDNマネージャ21に、送信端末30と受信端末40のそれぞれに対応するQKDノード10を直接指定することもできる。また、暗号鍵の発行等の要求には、前述したアプリケーション情報と同様に、例えば送信端末30と受信端末40の間で行われる暗号通信の内容や、暗号通信の動作時間(t時間)に関する情報が含まれていてもよい。
【0061】
QKDNマネージャ21は、ユーザから暗号鍵の発行等の要求を受信すると、始端ノード10(A)から終端ノード10(F)までのリンク毎の将来の鍵消費量の予測処理を、AIエンジン22に要求する(S2-2)。すなわち、
図5に示されるように、始端ノード10(A)と終端ノード10(F)が決定すると、これらを繋ぐ中継ノード10(B~E)の候補が決定する。このため、QKDNマネージャ21は、始端ノード10(A)から終端ノード10(F)までの間に介在する候補となる中継ノード10(B~E)を接続するすべてのリンクについて、将来の鍵消費量の予測処理をAIエンジン22に要求する。
【0062】
AIエンジン22は、QKDNマネージャ21から要求を受信すると、過去の鍵消費量の時間変動データ等を対象とした機械学習により生成した学習済みモデル22aを利用して、QKDNマネージャ21からの指定を受けた各リンクについて、将来のt時間分の鍵消費量の予測処理を実行する(ステップS2-3)。「t時間」とは、始端ノード10(A)から暗号鍵(K1)の供給を受ける送信端末30と終端ノード10(F)から暗号鍵(K1)の供給を受ける受信端末40との間で行われる暗号通信の動作時間である。AIエンジン22がリンク毎に求めたt時間分の鍵消費量の予測結果は、QKDNマネージャ21を介して、QKDノード10のQKDN制御レイヤに属する鍵リレー経路計算エンジン14へ伝達される(ステップS2-4)。
【0063】
鍵リレー経路計算エンジン14は、始端ノード10(A)から終端ノード10(F)までの最適な鍵リレー経路を自動的に求めるための要素である。具体的には、まず、鍵リレー経路計算エンジン14は、AIエンジン22が求めたリンク毎のt時間分の鍵消費量の予測値を利用して、リンク毎のコスト値を計算する(ステップS2-5)。このコスト値は、1/xで表される値であり、鍵リレー経路計算エンジン14は、例えば以下の計算式にてxの値を算出する。
【0064】
[式]
x=A-B×α+C×β
[変数]
A)各リンクにおける暗号鍵の残量値
B)t時間内の各リンクにおける暗号鍵の消費量の予測値
C)t時間内の各リンクにおける暗号鍵の生成量の予測値
[定数]
αはBの重みを表すパラメータであり、βはCの重みを表すパラメータである。
【0065】
上記A)各リンクにおける暗号鍵の残量値については、各ノード10の暗号鍵マネージャ12が各リンクの暗号鍵の残量をモニタリングしており、常時、鍵リレー経路計算エンジン14に通知している。このため、鍵リレー経路計算エンジン14は、各リンクの暗号鍵の残量をリアルタイムで把握できる。上記B)t時間内の各リンクにおける暗号鍵の消費量の予測値については、前述した通り、AIエンジン22により算出されて、鍵リレー経路計算エンジン14に通知されている。上記C)t時間内の各リンクにおける暗号鍵の生成量の予測値については、鍵リレー経路計算エンジン14が、各ノード10の暗号鍵生成の処理性能等に基づいて、所定の演算によって求めることができる。あるいは、AIエンジン22を利用して、各リンクにおける暗号鍵の生成量の予測値を求めて、鍵リレー経路計算エンジン14に通知することも可能である。このように、鍵リレー経路計算エンジン14は、各リンクの現在の暗号鍵の残量値(A)から、将来の暗号鍵の消費量の予測値(B)を減算し、さらにこれに将来の暗号鍵の生成量の予測値(C)を加算した値をxとして、その逆数をコスト値1/xとすることが好ましい。
【0066】
なお、α及びβの変数は、それぞれB)及びC)の値をコスト値にどの程度反映させるかを表したパラメータであり、QKDNインフラ事業者等が自由に設定できる。また、このα及びβの変数は、すべてのリンクに共通するパラメータを設定することとしてもよいし、リンク毎に異なるパラメータを設定することともしてもよい。
【0067】
図5に示されるように、xの値が大きいリンクについてはアプリケーションの動作時間(t時間)内において暗号鍵の残量に余裕があることを意味するため、そのリンクにおけるコスト値1/xは小さな値となる。反対に、xの値が小さいリンクについてはアプリケーションの動作時間(t時間)内において暗号鍵の残量に余裕がないことを意味するため、そのリンクにおけるコスト値1/xは大きくなる。
【0068】
ただし、B)及びC)の値としては、QKDNインフラ事業者等が、コストメトリック要素として、コスト値1/xの計算に「反映する」(オン)又は「反映しない」(オフ)を選択することもできる。具体的には、x=A-B×αの計算式にてコスト値1/xを求めることとしてもよいし、x=A+C×βの計算式にてコスト値1/xを求めることとしてもよい。また、B)及びC)をコストメトリックとして設定する場合、前述したα及びβの変数をリンク毎に動的に設定できるようにすれば、各ノードを運営するQKDNインフラ事業者が各ノードの利用頻度を自由に決定したり変更したりすることができるようになる。例えば、C)の値に関して、鍵生成速度の遅いリンクについては、希少価値が高くてコスト高になることから、βのパラメータを調整して、このような鍵生成速度の遅いリンクはなるべく回避するように設定することも可能である。
【0069】
鍵リレー経路計算エンジン14は、始端ノード10(A)から終端ノード10(F)までの間のすべてのリンクについてコスト値1/xを求めた後、送受信間の鍵リレー経路の自動計算を実行する(ステップS2-6)。経路選択アルゴリズムについては、例えばダイクストラ法、ベルマン-フォード法、ワーシャル-フロイド法など、スタートからゴール地点までの最短経路問題を解くための既存のアルゴリズムを適用すればよい。これにより、経由するリンクのコスト値が最小となるように鍵リレー経路が決定される。鍵リレー経路計算エンジン14は、ここで決定した鍵リレー経路の計算結果をQKDNコントローラ13に通知する(ステップS2-7)。集中型アーキテクチャの場合、
図1のQKDノード10(B)に示されるように、鍵リレー経路計算エンジン14は、単一のQKDNコントローラ13に対して鍵リレー経路の計算結果を通知すればよい。一方、分散型アーキテクチャの場合には、鍵リレー経路計算エンジン14は、各QKDノード10(A,B,C)のそれぞれに設けられたQKDNコントローラ13に対して鍵リレー経路の計算結果を通知すればよい。
【0070】
QKDNコントローラ13は、鍵リレー経路計算エンジン14の計算結果に基づいて、最適な鍵リレー経路として選択された各ノード10のリソースの予約要求と、最適な各ノード10を繋ぐリンク(具体的には暗号鍵管理レイヤのKMリンク)のスイッチ切替要求を生成し(ステップS2-8)、これらを制御要求として暗号鍵マネージャ12に通知する(ステップS2-9)。リソースの予約要求としては、暗号鍵マネージャ12に鍵リレーで消費される暗号鍵を確保するように要求が行われる。なお、複数の鍵リレーの予約要求が通知されている暗号鍵マネージャ12は、順次行われるそれぞれの鍵リレーについて暗号鍵を確保する。また、スイッチ切替要求としては、あるノード10が複数のKMリンクを持つ場合に、鍵リレーに用いられるリンクに接続するように当該ノード10に要求する。集中型アーキテクチャの場合、
図1のQKDノード10(B)に示されるように、QKDN全体を制御する単一のQKDNコントローラ13が、鍵リレー経路として選択されたノード10の暗号鍵マネージャ12に対してのみ制御要求(リソース予約、スイッチ切替)を通知する。一方、分散型アーキテクチャの場合には、各QKDノード10(A,B,C)に設けられたそれぞれのQKDNコントローラ13が、自己ノード10が鍵リレー経路として選択されている場合には自己ノード10内の暗号鍵マネージャ12に制御要求(リソース予約、スイッチ切替)を通知し、鍵リレー経路として選択されていない場合にはこのような制御要求は生成しないこととなる。
【0071】
QKDNコントローラ13より制御要求を受けた暗号鍵マネージャ12は、鍵リレーで消費する暗号鍵を確保するとともに、スイッチの切り替えにより鍵リレーで利用するKMリンクを構成又は再構成する(ステップS2-10)。その後、鍵リレー経路に選定されたノード10の暗号鍵マネージャ12は、ユーザにより指定されたタイミングにて、暗号鍵の鍵リレーを実行する(ステップS2-11)。つまり、
図5に示されるように、始端ノード10(A)は送信端末30に暗号鍵(K
1)を供給し、中継ノード10(B~E)のうち鍵リレー経路として選定されたノードはこの暗号鍵(K
1)を暗号化及び復号しながら終端ノード10(F)まで送信し、終端ノード10(F)はこの暗号鍵(K
1)を受信端末40に供給する。これにより、送信端末30と受信端末40はQKDNから供給された暗号鍵(K
1)を利用して暗号通信を実行することができる。
【0072】
なお、QKDシステム100は、複数の鍵リレー要求が競合した場合には、各鍵リレー要求に優先度を設け、優先度が高い鍵リレー要求から順番に鍵リレーを実行することとしてもよい。鍵リレー要求が競合する場合とは、同時間帯に同じQKDノード10を経由する鍵リレー要求が発生した場合である。この場合、例えば、QKDNマネージャ21は、ユーザとの契約内容や課金額等に応じて、競合状態にある鍵リレー要求に優先度を設定し、優先度の高い順にQKDNコントローラ13に鍵リレーを実行するように命令すればよい。
【0073】
また、QKDシステム100は、QKDNの鍵リレーの可用性を維持向上するため、各リンクのコスト値が常に正の整数となるように調整してもよい。具体的には、暗号鍵の残量値が少ないリンクについては、前述した計算式(x=A-B×α+C×β)で求められるxの値が負の値となる場合がある。この場合、例えば、QKDNマネージャ21は、暗号鍵の残量値が所定値以下となったリンク、あるいはxの値が所定値以下(例えば0以下)となったリンクについては、鍵リレーに利用することを一時的に停止させることとしてもよい。このようなリンクの鍵リレー利用を停止させる手段は特に制限されないが、例えば、暗号鍵の残量値が少なくなってきたリンクについては、上記計算式の定数α及び/又はβを調整してxの値を極端に高く設定することで、鍵リレーによる鍵消費を一時的に回避すればよい。これにより、このようなリンクは、暗号鍵の消費が一時的に止まることになるため、その間に暗号鍵の生成を行って暗号鍵の残量値を増やすことができる。
【0074】
以上、本願明細書では、本発明の内容を表現するために、図面を参照しながら本発明の実施形態の説明を行った。ただし、本発明は、上記実施形態に限定されるものではなく、本願明細書に記載された事項に基づいて当業者が自明な変更形態や改良形態を包含するものである。
【産業上の利用可能性】
【0075】
本発明は、量子鍵配送システムやそれを構成するQKDノード等に関するものである。特に、本発明は、QKDN全体の鍵残量が限られている中で、鍵消費が時々刻々と変動する環境において、極めて機密性の高い情報をやり取りする場合に効果を発揮する。例えば、金融分野では株式市場の急な変化時、医療分野ではパンデミック等の緊急事態発生時、国家関連では国民の安全・安心に関わるような事象の発生時など、重要機関間で極めて機密性の高い情報をやり取りする必要がある場合に、送受信間で暗号鍵を量子鍵配送で情報理論的安全に共有するための鍵リレーを、本発明によれば高度化できる。従って、本発明は、鍵リレー要求棄却率や鍵提供失敗率の低減等、QKDNサービスの品質の維持及び向上に貢献できる。
【符号の説明】
【0076】
10…QKDノード 11…量子鍵配送モジュール
12…暗号鍵マネージャ 13…QKDNコントローラ
12a…暗号鍵生成部 12b…暗号鍵記憶部
12c…鍵リレー部 14…鍵リレー経路計算エンジン
15…通信部 20…管理サーバ
21…QKDNマネージャ 22…AIエンジン(予測部)
22a…学習済みモデル 23…ネットワークマネージャ
24…通信部 30…送信端末
31…制御部 32…記憶部
33…通信部 34…出力部
35…入力部 40…受信端末
41…制御部 42…記憶部
43…通信部 44…出力部
45…入力部 100…QKDシステム