(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024132522
(43)【公開日】2024-10-01
(54)【発明の名称】鍵管理装置、量子暗号通信システム、QKDN制御装置、情報処理装置、鍵管理方法、QKDN制御方法、情報処理方法及びプログラム
(51)【国際特許分類】
H04L 9/12 20060101AFI20240920BHJP
【FI】
H04L9/12
【審査請求】有
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2023043319
(22)【出願日】2023-03-17
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和4年度、総務省「グローバル量子暗号通信網構築のための研究開発」に関する委託研究、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】兪 ユ
(72)【発明者】
【氏名】谷澤 佳道
(57)【要約】
【課題】QKDNの規模に関わらず、アプリと、当該アプリへ暗号鍵を送信する鍵管理装置とを容易に対応付けることができるようにする。
【解決手段】実施形態の鍵管理装置は、QKD装置と接続される鍵管理装置であって、通信インターフェースと処理部とを備える。通信インターフェースは、送信元アプリから、第1識別情報と、第2識別情報と、アプリ鍵の要求量と、を含むアプリ鍵の要求情報を受信する。処理部は、前記第2識別情報から、前記アプリ鍵の共有先の鍵管理装置を特定し、前記アプリ鍵の要求量から前記アプリ鍵の共有量を決定し、前記リンク鍵を使用して暗号化され、前記共有量を満たす前記アプリケーション鍵を、前記共有先の鍵管理装置へ前記通信インターフェースに送信させ、前記通信インターフェースに前記要求量のアプリ鍵を、前記第1識別情報により識別される送信元アプリへ送信させる。
【選択図】
図3
【特許請求の範囲】
【請求項1】
QKD(Quantum Key Distribution)によって、リンク鍵を生成するQKD装置と接続される鍵管理装置であって、
ユーザネットワークの送信元アプリケーションから、前記送信元アプリケーションを識別する第1識別情報と、宛先アプリケーションを識別する第2識別情報と、前記ユーザネットワークにおける通信の暗号化又は復号に使用されるアプリケーション鍵の要求量と、を含むアプリケーション鍵の要求情報を受信する通信インターフェースと、
前記第2識別情報から前記アプリケーション鍵の共有先の鍵管理装置を特定し、
前記アプリケーション鍵の要求量から前記アプリケーション鍵の共有量を決定し、
前記リンク鍵を使用して暗号化され、前記共有量を満たす前記アプリケーション鍵を、前記共有先の鍵管理装置へ前記通信インターフェースに送信させ、
前記通信インターフェースに前記要求量のアプリケーション鍵を、前記第1識別情報により識別される送信元アプリケーションへ送信させる処理部と、
を備える鍵管理装置。
【請求項2】
前記アプリケーション鍵の要求情報は、前記アプリケーション鍵を送信する提供時刻を更に含み、
前記通信インターフェースは、前記提供時刻までに、前記要求量のアプリケーション鍵を前記送信元アプリケーションへ送信する、
請求項1に記載の鍵管理装置。
【請求項3】
前記通信インターフェースは、前記宛先アプリケーションを識別する第2識別情報と、前記宛先アプリケーションにアプリケーション鍵を送信する鍵管理装置を識別する第3識別情報と、が対応付けられたマッピング情報を記憶するQKDN(Quantum Key Distribution Network)制御装置と通信し、
前記通信インターフェースは、前記QKDN制御装置から前記マッピング情報を取得し、
前記処理部は、前記マッピング情報から前記アプリケーション鍵の共有先の鍵管理装置を特定する、
請求項1又は2に記載の鍵管理装置。
【請求項4】
前記QKDN制御装置は、前記送信元アプリケーションに接続される鍵管理装置と、宛先アプリケーションに接続される鍵管理装置との間で既に共有されているアプリケーション鍵の量を示す状態情報を更に記憶し、
前記処理部は、前記アプリケーション鍵の要求量と、前記状態情報とから前記アプリケーション鍵の共有量を決定する、
請求項3に記載の鍵管理装置。
【請求項5】
請求項3に記載の鍵管理装置である、第1鍵管理装置及び第2鍵管理装置を備え、
前記第1及び第2鍵管理装置により構成される鍵共有ネットワークと、
前記第1及び第2鍵管理装置と通信する前記QKDN制御装置と、
前記送信元アプリケーションと前記宛先アプリケーションとを含む複数のアプリケーションと、
前記複数のアプリケーションが前記アプリケーション鍵を使用して暗号化通信をする前記ユーザネットワークと、
を備える量子暗号通信システム。
【請求項6】
QKDによって、前記リンク鍵を生成する前記QKD装置である、第1QKD装置及び第2QKD装置を更に備え、
前記第1QKD装置は前記第1鍵管理装置に前記リンク鍵を送信し、
前記第2QKD装置は前記第2鍵管理装置に前記リンク鍵を送信する、
請求項5に記載の量子暗号通信システム。
【請求項7】
ユーザネットワークにおけるアプリケーション間で通信の暗号化又は復号に使用されるアプリケーション鍵を、アプリケーションに送信する複数の鍵管理装置と接続されるQKDN(Quantum Key Distribution Network)制御装置であって、
通信インターフェースに、前記アプリケーションを識別する識別情報と、前記アプリケーションにアプリケーション鍵を送信する鍵管理装置を識別する識別情報と、が対応付けられたマッピング情報と、前記アプリケーション鍵の状態情報と、を前記複数の鍵管理装置から取得させ、前記マッピング情報と前記状態情報とを記憶装置に記憶させる処理部、
を備えるQKDN制御装置。
【請求項8】
前記状態情報は、送信元アプリケーションに接続される第1鍵管理装置と、宛先アプリケーションに接続される第2鍵管理装置との間で既に共有されているアプリケーション鍵の量を示す、
請求項7に記載のQKDN制御装置。
【請求項9】
前記第1鍵管理装置と前記第2鍵管理装置との間で既に共有されているアプリケーション鍵は、前記第1鍵管理装置に接続される送信元QKD(Quantum Key Distribution)装置と、前記第1鍵管理装置に接続される宛先QKD装置との間のQKDNで、QKDにより生成されたリンク鍵で暗号化通信されることによって共有される、
請求項8に記載のQKDN制御装置。
【請求項10】
QKD(Quantum Key Distribution)によって、リンク鍵を生成するQKD装置と接続される鍵管理装置に、ユーザネットワークの送信元アプリケーションを識別する第1識別情報と、宛先アプリケーションを識別する第2識別情報と、前記ユーザネットワークにおける通信の暗号化又は復号に使用されるアプリケーション鍵の要求量と、を含むアプリケーション鍵の要求情報を送信し、前記第2識別情報から特定された前記アプリケーション鍵の共有先の鍵管理装置との間で、前記要求量を満たすように共有されたアプリケーション鍵を受信する通信インターフェースと、
前記送信元アプリケーションを動作させることによって、前記ユーザネットワークにおける通信を暗号化する処理部と、
を備える情報処理装置。
【請求項11】
QKD(Quantum Key Distribution)によって、リンク鍵を生成するQKD装置と接続される鍵管理装置の鍵管理方法であって、
通信インターフェースが、ユーザネットワークの送信元アプリケーションから、前記送信元アプリケーションを識別する第1識別情報と、宛先アプリケーションを識別する第2識別情報と、前記ユーザネットワークにおける通信の暗号化又は復号に使用されるアプリケーション鍵の要求量と、を含むアプリケーション鍵の要求情報を受信するステップと、
処理部が、前記第2識別情報から、前記アプリケーション鍵の共有先の鍵管理装置を特定するステップと、
前記処理部が、前記アプリケーション鍵の要求量から前記アプリケーション鍵の共有量を決定するステップと、
前記処理部が、前記リンク鍵を使用して暗号化され、前記共有量を満たす前記アプリケーション鍵を、前記共有先の鍵管理装置へ前記通信インターフェースに送信させるステップと、
前記処理部が、前記通信インターフェースに前記要求量のアプリケーション鍵を、前記第1識別情報により識別される送信元アプリケーションへ送信させるステップと、
を含む鍵管理方法。
【請求項12】
ユーザネットワークにおけるアプリケーション間で通信の暗号化又は復号に使用されるアプリケーション鍵を、アプリケーションに送信する複数の鍵管理装置と接続されるQKDN(Quantum Key Distribution Network)制御装置のQKDN制御方法であって、
処理部が、通信インターフェースに、前記アプリケーションを識別する識別情報と、前記アプリケーションにアプリケーション鍵を送信する鍵管理装置を識別する識別情報と、が対応付けられたマッピング情報と、前記アプリケーション鍵の状態情報と、を前記複数の鍵管理装置から取得させるステップと、
前記処理部が、前記マッピング情報と前記状態情報とを記憶装置に記憶させるステップと、
を含むQKDN制御方法。
【請求項13】
通信インターフェースが、QKD(Quantum Key Distribution)によって、リンク鍵を生成するQKD装置と接続される鍵管理装置に、ユーザネットワークの送信元アプリケーションを識別する第1識別情報と、宛先アプリケーションを識別する第2識別情報と、前記ユーザネットワークにおける通信の暗号化又は復号に使用されるアプリケーション鍵の要求量と、を含むアプリケーション鍵の要求情報を送信するステップと、
前記通信インターフェースが、前記第2識別情報から特定された前記アプリケーション鍵の共有先の鍵管理装置との間で、前記要求量を満たすように共有されたアプリケーション鍵を受信するステップと、
処理部が、前記送信元アプリケーションを動作させることによって、前記ユーザネットワークにおける通信を暗号化するステップと、
を備える情報処理方法。
【請求項14】
QKD(Quantum Key Distribution)によって、リンク鍵を生成するQKD装置と接続される鍵管理装置を、
ユーザネットワークの送信元アプリケーションから、前記送信元アプリケーションを識別する第1識別情報と、宛先アプリケーションを識別する第2識別情報と、前記ユーザネットワークにおける通信の暗号化又は復号に使用されるアプリケーション鍵の要求量と、を含むアプリケーション鍵の要求情報を受信する通信インターフェースと、
前記第2識別情報から、前記アプリケーション鍵の共有先の鍵管理装置を特定し、
前記アプリケーション鍵の要求量から前記アプリケーション鍵の共有量を決定し、
前記リンク鍵を使用して暗号化され、前記共有量を満たす前記アプリケーション鍵を、前記共有先の鍵管理装置へ前記通信インターフェースに送信させ、
前記通信インターフェースに前記要求量のアプリケーション鍵を、前記第1識別情報により識別される送信元アプリケーションへ送信させる処理部、
として機能させるためのプログラム。
【請求項15】
ユーザネットワークにおけるアプリケーション間で通信の暗号化又は復号に使用されるアプリケーション鍵を、アプリケーションに送信する複数の鍵管理装置と接続されるQKDN(Quantum Key Distribution Network)制御装置を、
通信インターフェースに、前記アプリケーションを識別する識別情報と、前記アプリケーションにアプリケーション鍵を送信する鍵管理装置を識別する識別情報と、が対応付けられたマッピング情報と、前記アプリケーション鍵の状態情報と、を前記複数の鍵管理装置から取得させ、前記マッピング情報と前記状態情報とを記憶装置に記憶させる処理部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は鍵管理装置、量子暗号通信システム、QKDN制御装置、情報処理装置、鍵管理方法、QKDN制御方法、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
アプリケーションが、量子鍵配送(QKD:Quantum Key Distribution)を利用して別のアプリケーションとの間で共有された乱数を、鍵管理装置から取得し、この乱数を暗号鍵として利用して、別のアプリケーションとの間で暗号通信を行う技術が従来から知られている。このアプリケーションによる暗号通信は、QKDネットワークとは異なる、インターネットなどのユーザネットワークで行われる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第6426477号公報
【特許文献2】特許第5784562号公報
【非特許文献】
【0004】
【非特許文献1】ITU-T, Y.3800, “Overview on networks supporting quantum key distribution,” 2019.
【非特許文献2】ETSI GS QKD 014, “Quantum Key Distribution (QKD); Protocol and data format of REST-based key delivery API,” 2019.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら従来の技術では、QKDネットワークの規模が大きくなるほど、アプリケーションと、当該アプリケーションへ暗号鍵を送信する鍵管理装置とを対応付けることが困難だった。
【課題を解決するための手段】
【0006】
実施形態の鍵管理装置は、QKD(Quantum Key Distribution)によって、リンク鍵を生成するQKD装置と接続される鍵管理装置であって、通信インターフェースと処理部とを備える。通信インターフェースは、ユーザネットワークの送信元アプリケーションから、前記送信元アプリケーションを識別する第1識別情報と、宛先アプリケーションを識別する第2識別情報と、前記ユーザネットワークにおける通信の暗号化又は復号に使用されるアプリケーション鍵の要求量と、を含むアプリケーション鍵の要求情報を受信する。処理部は、前記第2識別情報から、前記アプリケーション鍵の共有先の鍵管理装置を特定し、前記アプリケーション鍵の要求量から前記アプリケーション鍵の共有量を決定し、前記リンク鍵を使用して暗号化され、前記共有量を満たす前記アプリケーション鍵を、前記共有先の鍵管理装置へ前記通信インターフェースに送信させ、前記通信インターフェースに前記要求量のアプリケーション鍵を、前記第1識別情報により識別される送信元アプリケーションへ送信させる。
【図面の簡単な説明】
【0007】
【
図1】第1実施形態の量子暗号通信システムの構成の例を示す図。
【
図2】第1実施形態の量子暗号通信ネットワークの例を示す図。
【
図3】第1実施形態の鍵管理装置の機能構成の例を示す図。
【
図4】第1実施形態のQKDN制御装置の機能構成の例を示す図。
【
図5】第1実施形態の情報処理装置の機能構成の例を示す図。
【
図6】第1実施形態のセキュア通信方法の例を示すシーケンス図。
【
図7】第1実施形態のマッピング情報の例を示す図。
【
図8A】第2実施形態のKSNドメインの例1を示す図。
【
図8B】第2実施形態のKSNドメインの例2を示す図。
【
図9】第2実施形態のKMを識別するID体系の例を示す図。
【
図10】第2実施形態の量子暗号通信ネットワークの例を示す図。
【
図11】第2実施形態のセキュア通信方法の例を示すシーケンス図。
【
図12】第2実施形態のマッピング情報の例を示す図。
【
図14】第2実施形態のマッピング情報の共有に関する問い合わせメッセージのフォーマットの例を示す図。
【
図15】第2実施形態のマッピング情報の共有に関する応答メッセージのフォーマットの例を示す図。
【
図16】第2実施形態の分散管理の構成の例を示す図。
【
図17】第2実施形態の集中管理の構成の例を示す図。
【
図18】第1及び第2実施形態のKM、QKDN制御装置及び情報処理装置のハードウェア構成の例を示す図。
【発明を実施するための形態】
【0008】
以下に添付図面を参照して、鍵管理装置、量子暗号通信システム、QKDN(Quantum Key Distribution Network)制御装置、情報処理装置、鍵管理方法、QKDN制御方法、情報処理方法及びプログラムの実施形態を詳細に説明する。
【0009】
従来は、例えば暗号通信ネットワークの暗号機能を利用するためのアドレス登録処理を自動化できるが、各KM10に専用のライブラリを設置する必要があった。QKDネットワークが大規模化される場合、例えば、KM10の数が千個以上になると、各KM10のアドレス登録ライブラリが膨大になり、処理の効率が低下する。また、暗号機能を利用するための鍵の必要量に応じて、KM10間の鍵蓄積状態に基づく鍵共有量の決定処理を行うことが望ましい。
【0010】
図1は第1実施形態の量子暗号通信システムの構成の例を示す図である。横から見ると、QKDネットワークアーキテクチャは下から量子レイヤ、鍵管理レイヤ、QKDネットワーク制御レイヤ、さらにこれら3レイヤを管理するためのQKDネットワーク管理レイヤで構成されている。これらの4レイヤによって、アプリケーション5のデータ通信の暗号化及び復号に用いられるアプリケーション鍵(以下、「アプリ鍵」という。)が生成されて、最上位のユーザネットワークにおけるサービスレイヤへ供給される。縦から見ると、QKDネットワークとユーザネットワークとを含む3つのノード1(QKDノード/トラステッドノード)がそれぞれ拠点A、拠点B、拠点Cに設置される。
【0011】
量子レイヤはQKDモジュール2と、QKDリンク3とから構成される。量子レイヤの主な機能は、別拠点にあるQKDモジュール2との間で光子と、古典情報(QKDリンクとは異なる通常の制御リンクで送受信される制御情報)と、をやり取りして、リンク鍵(乱数列)を共有することである。さらに、量子レイヤは、鍵管理装置(KM:Key manager)10(10a~10c)へ乱数列を供給する機能を有する。QKDリンク3で共有されるリンク鍵(量子暗号鍵)は、量子力学の原理に基づいて、盗聴されていないことが保証されている。共有されたリンク鍵を用いて、ワンタイムパッドと呼ばれる暗号通信方式を利用して暗号データ通信を行うと、送受信されるデータは、いかなる知識を有する盗聴者によっても解読できないことが情報理論によって保証されている。QKDモジュール2(2a、2b―1、2b-2及び2c)は、それぞれ光ファイバーなどによるQKDリンク3によって接続される。
【0012】
ただし、QKD技術でリンク鍵を共有する方式は、単一光子をメディアとして利用することに起因する、リンク鍵を共有可能な距離の制約がある。例えば
図1の量子レイヤの例に示すように、QKDモジュール2は基本的には1対1となるが、中継する場合、中継を行う拠点Bには少なくとも2つのQKDモジュール2b-1及び2b-2が必要となる。
図1の例は、拠点Aと拠点Cにアプリ鍵K
A
ACを供給する場合を示す。拠点Bでは、QKDモジュール2b-1が拠点Aで暗号化されたアプリ鍵を、拠点Aと同じリンク鍵K
L
AB(すなわち、暗号鍵と復号鍵とが同じである共通鍵)で復号する。そして、QKDモジュール2b-2が、復号されたアプリ鍵をリンク鍵K
L
BCでもう一回暗号化し、暗号化されたアプリ鍵K
A
ACを拠点Cへリレーする。
【0013】
QKDは、無条件安全性を保証するために、距離及び速度などの通信性能はある程度犠牲にならざるを得ない。一般的には、敷設ファイバー50km圏でリンク鍵生成レートが毎秒20万~30万ビット(200~300kbps)程度である。QKDの鍵蒸留処理をハードウェア化・最適化すると、短距離の場合には、QKDの鍵生成速度は最大10Mbpsに達する。
【0014】
鍵生成速度をMbpsに保持するためには、Mbpsを保持可能な距離間隔で中継ノードを設置し、中継を行う拠点間で鍵リレーを行う必要がある。一方、中継を行う拠点では、暗号化・復号の処理時間がかかる。
【0015】
鍵管理レイヤは鍵管理装置(KM)10a~10c及びKMリンクから構成される。鍵管理レイヤの主な機能には、実際にデータの暗号化を行うアプリケーション5a及び5cへのアプリ鍵の供給、及び、KMリンクを介した他の拠点への鍵リレーなどがある。鍵管理装置(KM)10a~10cは、これらに付随して、アプリケーション5a及び5cからの鍵要求の受信やインターフェースの格納など鍵管理全般を担う。
【0016】
QKDネットワーク制御レイヤは、QKDネットワークコントローラ4及びリンクから構成される。QKDネットワーク制御レイヤはQKDネットワーク全般のサービスの制御を行う。QKDネットワークコントローラは拠点ごとにあってもよいし、
図1に示すように、量子暗号通信システム全体で1つ(あるいは複数)でもよい。また、QKDネットワークコントローラ4とKM10とが一体として実現されていてもよい。
【0017】
QKDネットワーク管理レイヤにはQKDN制御装置6が含まれる。QKDネットワーク管理レイヤは、各レイヤからパフォーマンス情報を収集し、サービスが適切に稼働しているかを監視して、必要に応じて制御をQKDネットワーク制御レイヤへ命じる機能を持つ。また、QKDN制御装置6はQKDネットワークの構成に応じて、複数存在してもよい。また、QKDN制御装置6の機能が、KM10で実現・実施されてもよい。
【0018】
サービスレイヤはユーザによって構成が異なるが、暗号化通信を実現するためのアプリケーション5a及び5cや、コンピュータモジュールなどで構成される。また、サービスレイヤは、アプリ鍵をリンク鍵で暗号化して隣接ノードに転送する機能を有する。なお、サービスレイヤのアプリケーション5が、QKDとは無関係に、別途、乱数情報等から、リンク鍵とは別の暗号鍵(アプリ鍵)を生成してもよい。
【0019】
サービスレイヤにおいて、アプリ鍵は、主に共通暗号方式による暗号化に利用される。共通暗号方式は、いわゆる、送信側及び受信側で事前に共有されていた同じアプリ鍵を利用して、通信データ・メッセージの暗号化・復号を行う暗号方式である。具体的には、アプリ鍵は、Advanced Encryption Standard(AES)暗号、及び、ワンタイムパッド(One Time PAD:OTP)暗号などで使われる。
【0020】
ユーザネットワーク管理レイヤにはユーザネットワーク制御装置7が含まれる。ユーザネットワーク管理レイヤは、サービスレイヤからパフォーマンス情報を収集し、サービスが適切に稼働しているかを監視する。
【0021】
なお、
図1に示すアーキテクチャは基本の要素を示す。実際には状況により、アーキテクチャの構成が変わることがある。例えば、拠点の個数は3個に限られない。また例えば、アプリケーション5の個数は2個に限られない。また例えば、QKDネットワーク管理レイアにおけるQKDN制御装置6の個数は、1個に限られない。
【0022】
上述のユーザネットワークはパブリックなネットワークであり、アプリケーション5によって暗号通信が行われるネットワークである。アプリケーション5は、例えばパーソナルコンピュータ及びスマートデバイス等の情報処理装置8で動作する。ユーザネットワークは、例えば、インターネット及びセルラー通信ネットワークなどのデータ通信ネットワークである。
【0023】
一方、上述のQKDネットワーク(量子暗号通信ネットワーク)はプライベートなネットワークとなり、実際のニーズによりノード(QKDノード/ノード)が設置される。ノードは、ユーザネットワークに暗号通信用の暗号鍵を送信する。
【0024】
ユーザネットワーク及びQKDネットワークは疎結合である。そのため、アプリケーション5は、QKDネットワークの構成についての情報を持たない。QKDネットワークの構成についての情報は、例えば、どのアプリケーション5がどのKM10に接続されているのかを示すマッピング情報である。
【0025】
図2は第1実施形態の量子暗号通信ネットワーク100の例を示す図である。
図2の例は、KMの数が8個と少ないため、小規模のQKDNの例である。ユーザネットワークにおけるアプリケーションA及びD間は、データ通信ネットワーク103を経由し、セキュア通信を行う。
【0026】
鍵管理レイヤにおける鍵共有ネットワーク(KSN:Key sharing network)102は、KM10、及び、KM10間のリンクから構成される。QKDN管理レイヤには、鍵共有ネットワーク102のKM10と通信するQKDN制御装置6が設置される。
【0027】
量子レイヤでは、複数のQKDモジュール2、及び、QKDモジュール2間の複数のQKDリンク3を含むネットワーク101が構成される。QKDモジュール2間の接続は1対1のため、上位のKM10に対応するQKDモジュール2は、上位のKM10に接続されるリンクの数に応じて設置される。
【0028】
なお、KM10の数、QKDモジュール2の数、アプリケーションの数は
図2の例に限られない。
【0029】
KM10及びQKDモジュール2のマッピング情報は、各KM10に管理・共有する分散型の方式と、専用な仕組みで管理(例えば、唯一の権威ルートサーバ装置で管理)する集中型の方式がある。本実施形態では、マッピング情報がQKDN制御装置6で管理される場合について説明する。
【0030】
[KMの機能構成の例]
図3は第1実施形態の鍵管理装置(KM)10の機能構成の例を示す図である。第1実施形態の鍵管理装置(KM)10は、通信部11、記憶部12及び処理部13を備える。
【0031】
通信部11は、無線方式又は有線方式の少なくとも一方で通信する通信インターフェースによって実現される。通信部11は、KM通信部111、制御通信部112及びアプリ通信部113を備える。KM通信部111は、QKDNの鍵管理レイアにおける1以上のKM10との間で暗号鍵(アプリ鍵)を共有するための通信を行う。制御通信部112は、QKDネットワーク管理レイヤにおけるQKDN制御装置6と、例えば、マッピング情報などの情報を共有するための通信を行う。アプリ通信部113は、最上位のサービスレイアであるユーザネットワークのアプリケーション5と、例えば、ID情報や、アプリ鍵要求に関する情報などを共有するための通信を行う。
【0032】
なお、通信部11は上記3つの機能構成に分割せずに実現されてもよい。
【0033】
記憶部12は、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの記憶媒体により実現される。
【0034】
記憶部12は、各種の情報、及び、KM10間で共有されたアプリ鍵を記憶する。記憶部12に記憶される情報は、ユーザネットワークにおけるアプリケーション5のID情報、鍵要求に関する情報、QKDN制御装置6から宛先KMのID情報、及び宛先KMとの鍵蓄積状態などである。
【0035】
処理部13は、少なくとも1つの処理装置によって実現され、KM10の処理を実行する。この処理装置は、例えば制御装置及び演算装置を含み、アナログまたはデジタル回路等で実現される。処理装置は、中央処理装置(CPU:Central Processing Unit)であってもよいし、汎用目的プロセッサ、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)及びこれらの組み合わせであってもよい。
【0036】
処理部13は、取得部131、実行部132、鍵処理部133、提供部134,制御部135、管理部136及びプラットフォーム部137を備える。
【0037】
取得部131は、通信部11からの情報を取得する。
【0038】
実行部132は、ユーザネットワークのアプリケーション5からの鍵要求に応じて、記憶部12から情報を読み出し、処理を実行する。例えば、実行部132は、宛先のKM10に対応するアプリ鍵の量を計算し、アプリ鍵が不足している場合には鍵共有処理を実行する。また例えば、実行部132は、要求量を満たすアプリ鍵が記憶部12に保持されている場合には、アプリケーション5にアプリ鍵を送信する処理を実行する。
【0039】
鍵処理部133は、アプリケーション5からの鍵要求に従い、アプリ鍵を提供部134に渡す。具体的には、鍵処理部133は、アプリケーション5からの要求に応じて、アプリ鍵の要求量と、アプリケーション5にアプリ鍵を送信する提供時刻と、アプリ鍵の送信先を示す宛先とを決定する。
【0040】
提供部134は、鍵処理部133からアプリ鍵を受け付けると、上記サービスレイアのユーザネットワークのアプリケーション5にアプリ鍵を送信する。例えば、提供部134は、鍵処理部133により決定された要求量のアプリ鍵を、鍵処理部133により決定された提供時刻までに、鍵処理部133により決定された送信先に送信する。なお、提供部134の機能は、通信部11に含まれていてもよい。
【0041】
制御部135は、KM10で行われる処理の制御を行う。例えば、制御部135は、KM10の各機能の起動及び動作の制御を担う。
【0042】
管理部136は、KM10に接続されているリンクの鍵生成速度や鍵保有量などの鍵リソースを管理する。
【0043】
プラットフォーム部137は、KM10上の機能の管理と動作に必要なコンピュータのオペレーティングシステム機能、基本的なネットワーク機能、および、セキュリティ機能等を提供する。
【0044】
[QKDN制御装置の機能構成の例]
図4は第1実施形態のQKDN制御装置6の機能構成の例を示す図である。第1実施形態のQKDN制御装置6は、通信部61、記憶部62及び処理部63を備える。なお、通信部61、記憶部62及び処理部63のハードウェアによる実現方法は、KM10の通信部11、記憶部12及び処理部13と同様である。
【0045】
第1実施形態のQKDN制御装置6は、ユーザネットワークにおけるアプリケーション5間で通信の暗号化又は復号に使用されるアプリ鍵を、アプリケーション5に送信する複数のKM10と接続される。
【0046】
通信部61は、KM通信部611と制御通信部612とを備える。
【0047】
KM通信部611は、上記1以上のKM10と通信する。例えば、KM通信部611は、KM10のID情報、KM10と接続されるアプリケーションのID情報、及び、宛先のKM10とのアプリ鍵の蓄積状態などを共有するための通信を行う。
【0048】
制御通信部612は、QKDN制御装置6間で、上述のマッピング情報、及び、KM10間の鍵蓄積状態などの情報を共有するための通信を行う。また、制御通信部612は、上述のマッピング情報が、権威ルートサーバ装置によって集中管理されている場合には、権威ルートサーバ装置と通信する。
【0049】
なお、通信部61は上記2つの構成に分割せずに実現されてもよい。
【0050】
記憶部62は、マッピング情報及び鍵蓄積状態を記憶する。マッピング情報は、例えばKM10のID情報と、当該KM10によってアプリ鍵が送信されるアプリケーションのID情報とが関連付けて記憶される。マッピング情報によって、例えば、宛先のアプリケーション5を識別する第2識別情報と、宛先のアプリケーション5にアプリ鍵を送信するKM10を識別する第3識別情報とを特定できる。
【0051】
鍵蓄積状態は、KM10間で共有されているアプリ鍵の蓄積状態を示す。例えば、鍵蓄積状態は、送信元のアプリケーション5に接続されるKM10と、宛先のアプリケーション5に接続されるKM10との間で既に共有されているアプリ鍵の量を示す。
【0052】
処理部63は、取得部631、制御部632、管理部633及びプラットフォーム部634を備える。
【0053】
取得部631は、通信部61からの情報を取得する。
【0054】
制御部632は、QKDN制御装置6で行われる処理の制御を行う。例えば、制御部632は、各機能の起動及び動作の制御を担う。例えば、制御部632は、通信部61(通信インターフェースの一例)に、アプリケーション5を識別する識別情報と、アプリケーション5にアプリ鍵を送信するKM10を識別する識別情報と、が対応付けられたマッピング情報と、アプリ鍵の状態情報と、を複数のKM10から取得させ、マッピング情報と状態情報とを記憶部62に記憶させる。
【0055】
管理部633は、QKDN制御装置6に接続されているKM10の情報、およびKM10の数などを管理する。
【0056】
プラットフォーム部634は、QKDN制御装置6上の機能の管理と動作に必要なコンピュータのオペレーティングシステム機能、基本的なネットワーク機能、および、セキュリティ機能等を提供する。
【0057】
[情報処理装置の機能構成の例]
図5は第1実施形態の情報処理装置8の機能構成の例を示す図である。第1実施形態の情報処理装置8は、通信部81、記憶部82及び処理部83を備える。なお、通信部81、記憶部82及び処理部83のハードウェアによる実現方法は、KM10の通信部11、記憶部12及び処理部13と同様である。
【0058】
通信部81は、QKDによって、リンク鍵を生成するQKDモジュール2(QKD装置の一例)と接続されるKM10に、ユーザネットワークの送信元アプリケーション(例えば、
図1のアプリケーション5a)を識別する第1識別情報と、宛先アプリケーション(例えば、
図1のアプリケーション5c)を識別する第2識別情報と、ユーザネットワークにおける通信の暗号化又は復号に使用されるアプリ鍵の要求量と、を含むアプリ鍵の要求情報を送信する。また、通信部81は、第2識別情報から特定されたアプリ鍵の共有先のKM10との間で、要求量を満たすように共有されたアプリケーション鍵を受信する。
【0059】
記憶部82は、例えばアプリケーション5の通信の宛先毎のアプリケーション鍵を記憶する。
【0060】
処理部83は、上述のアプリケーション5を動作させることによって、ユーザネットワークにおける通信を暗号化する。
【0061】
なお、本実施形態におけるKM10、QKDN制御装置6及び情報処理装置8の構成は一例であり、適宜、構成に変更が加えられてもよい。
【0062】
図6は第1実施形態のセキュア通信方法の例を示すシーケンス図である。
図6のセキュア通信方法の例は、ID登録処理、ID変換処理、および、アプリ鍵共有・送信処理を含む。
【0063】
はじめに、アプリケーション(ソース)5aが、KM(ソース)10aと接続する際に、アプリケーション5aのID情報(例えば、IPアドレスなど)をKM10aに通知する(ステップS1)。次に、KM10aが、ステップS1で通知されたアプリケーション5aのID情報と、KM10aのID情報とを、QKDN制御装置6に登録する(ステップS2)。
【0064】
同様に、アプリケーション(宛先)5dが、KM(宛先)10dと接続する際に、アプリケーション5dのID情報(例えば、IPアドレスなど)をKM10dに通知する(ステップS3)。次に、KM10dが、ステップS3で通知されたアプリケーション5dのID情報と、KM10dのID情報とを、QKDN制御装置6に登録する(ステップS4)。
【0065】
ステップS2及びS4で登録された情報から、QKDN制御装置6によって上述のマッピング情報が生成される。マッピング情報は、QKDN制御装置6により集中管理される。また、マッピング情報は周期的に更新される。
【0066】
アプリケーション5aは、セキュア通信を行う前に、KM10aにアプリ鍵を要求する(ステップS5)。その際に、アプリケーション5aは、アプリケーション5aのセキュア通信宛先がアプリケーション5dであることを示す情報(例えば宛先のアプリケーション5dのID情報)と、アプリ鍵の要求量もKM10aに通知する。
【0067】
次に、KM10aは、宛先であるアプリケーション5dと接続している宛先KM10dの情報を持ってないため、QKDN制御装置6にアプリケーション5dのID情報からKM10dのID情報の変換を要求する(ステップS6)。
【0068】
次に、QKDN制御装置6が、マッピング情報を参照し、アプリケーション5dと接続しているKM10dのID情報をKM10aに通知する(ステップS7)。
【0069】
その後、KM10a及び10dは、KM10aからKM10dまでアプリ鍵の共有を行う(ステップS8)。具体的には、KM10aは、アプリ鍵の要求量からアプリ鍵の共有量を決定し、リンク鍵を使用して暗号化されたアプリ鍵を、KM10dへ送信することによって、当該共有量を満たすようにアプリ鍵の共有を行う。
【0070】
次に、KM10a及び10dは、ステップS8で共有されたアプリ鍵をアプリケーション5a及び5dに提供(送信)する(ステップS9及びS10)。
【0071】
アプリケーション5aは、ステップS9で提供されたアプリ鍵を利用して通信データを暗号化し、暗号化通信データを、データ通信ネットワーク103を経由してアプリケーション5dまで送信する。そして、アプリケーション5dが、ステップS11で受信された暗号化通信データを、ステップS10で提供されたアプリ鍵(ステップS9で提供されたアプリ鍵と同一のアプリ鍵)で復号することによって、セキュア通信が行われる(ステップS11)。
【0072】
なお、ステップS8で行われるアプリ鍵の共有処理では、例えば、KM10aが、QKDモジュール2aにより生成されたリンク鍵を蓄積する。そして、KM10aが、リンク鍵を用いてアプリ鍵を暗号化し、隣接するKM10bとの間で暗号化アプリ鍵をリレーする。同様に、KM10bが、隣接するKM10cとの間で暗号化アプリ鍵をリレーし、KM10cが、隣接するKM10dとの間で暗号化アプリ鍵をリレーする。
【0073】
各KM10は、アプリ鍵をリンク鍵で暗号化して交換する際、リンク鍵を消費する。各KM10は、リンク鍵をワンタイムパッドで利用し、一度利用されたリンク鍵を捨てる。また、各KM10は、任意のKM10との間でアプリ鍵を共有するための鍵リレー経路の決定を行う。そして、各KM10は決定された経路に従い、各リンクでリンク鍵を用いて暗号化・復号を繰り返しながらアプリ鍵を宛先のKM10まで共有(転送)する。
【0074】
各拠点のノード1は、上述のように、対向のQKDモジュール2との間で乱数を生成して共有する機能(QKDモジュール2の機能)と、生成された乱数をリンク鍵として利用して、鍵共有ネットワーク102上で暗号通信を行う機能(KM10の機能)とを備える。KM10は、リンク鍵とは独立に乱数を生成する機能と、別のノード1(KM10)に、リンク鍵とは独立に生成された乱数を送信する機能とを備えてもよい。
【0075】
図7は第1実施形態のマッピング情報の例を示す図である。マッピング情報は、アプリケーションのID情報と、そのアプリケーションが接続するKM10のID情報との対応関係を示す。KM10は、アプリケーション5のID情報をKM10のID情報に変換する際に、
図7に示すようなマッピング情報を参照する。
【0076】
図7のマッピング情報は、IPベースのテーブルで管理される場合の例である。このテーブルは、ペアインデックス番号、アプリケーションID及びKM IDを含む。
【0077】
ペアインデックス番号は、テーブルのデータを識別する番号である。ペアインデックス番号は、例えば、データがテーブルに追加される際に自動的に振られる番号である。
【0078】
アプリケーションIDは、例えば、IPアドレスの場合、アプリケーションDが192.168.11.36(IPv4)あるいは2001:db8:20:3:10:1c:11:8(IPv6)である。KMのIDは、例えば、KM10dが16.10.11.7(IPv4)である。
【0079】
KM10のIPアドレスは、KM10に接続されるアプリケーションのIPアドレスに従い、あるルールで変換・生成することが可能である。また、KM10のIPアドレスは、QKDN制御装置6から指定されることも可能である。一般的には、ノード1をQKDNに追加する場合(鍵共有ネットワーク102に新たなKM10を追加する場合)、KM10のIDはQKDN制御装置6から指定されることが多い。また、QKDNはプライベートなネットワークであり、パブリックのネットワークと接続することはない。そのため、QKDNのKM10のIPアドレスが、KM10に接続されているアプリケーション5のIPアドレスと一致することも可能である。
【0080】
KM10は、アプリケーション5と接続する際に、KM10のID情報とアプリケーション5のID情報とをQKDN制御装置6に通知する。QKDN制御装置6は、KM10から通知された情報を受信すると、マッピング情報に追加する。また、マッピング情報の更新は、変更がある時のみ更新するケースと、定期的に更新するケースがある。
【0081】
なお、アプリケーション5は、例えばアプリケーション5が動作する情報処理装置8が、移動する等の影響により、割り当てられるIPアドレス等のID情報が変更される場合がある。この場合、アプリケーション5は、変更されたID情報を、新たに接続されるKM10に通知し、新たに接続されるKM10からQKDN制御装置6にマッピング情報を変更する通知がされてもよい。また、アプリケーション5が、サービスを停止する際も、アプリケーション5に接続されているKM10にサービスを停止する旨を通知し、KM10からQKDN制御装置6に、サービスが停止されるアプリケーション5のマッピング情報を削除する通知がされてもよい。
【0082】
なお、QKDN制御装置6が設置されることにより、マッピング情報が統一で管理され、周期的に更新される。マッピング情報が統一で管理される利点として、KM10の数が増えても、各KM10のマッピング情報を保存する記憶領域を、各KM10で記憶される場合に比べて節約できる。また、各KM10のマッピング情報の冗長・重複問題も改善できる。また、QKDN制御装置6が設置されることにより、マッピング情報に関する問い合わせの返答も効率的に行うことができる。
【0083】
以上、説明したように、第1実施形態のKM10は、QKDによって、リンク鍵を生成するQKDモジュール2(QKD装置の一例)と接続される鍵管理装置である。通信部11(通信インターフェースの一例)は、ユーザネットワークの送信元アプリケーションから、送信元アプリケーションを識別する第1識別情報と、宛先アプリケーションを識別する第2識別情報と、ユーザネットワークにおける通信の暗号化又は復号に使用されるアプリケーション鍵の要求量と、を含むアプリケーション鍵の要求情報を受信する。そして、処理部13が、第2識別情報から、アプリケーション鍵の共有先の鍵管理装置を特定し、アプリケーション鍵の要求量からアプリケーション鍵の共有量を決定する。処理部13は、リンク鍵を使用して暗号化され、共有量を満たすアプリケーション鍵を、共有先の鍵管理装置へ通信部11に送信させる。処理部13は、通信部11に要求量のアプリケーション鍵を、第1識別情報により識別される送信元アプリケーションへ送信させる。
【0084】
これにより第1実施形態によれば、QKDNの規模に関わらず、アプリケーション5と、当該アプリケーション5へ暗号鍵を送信する鍵管理装置とを容易に対応付けることができる。
【0085】
(第2実施形態)
次に第2実施形態について説明する。第2実施形態の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。
【0086】
QDKNが大規模化され、KM10の数も多くなると、鍵共有ネットワーク(KSN)102の管理を効率的かつ容易にするため、鍵共有ネットワーク102が複数のKSNドメインに分割されることが一般的である。KSNドメインでは、例えば、KM10の数、またはKM10間のリンクの数等がある制限値(例えば、1000)以内に制限される。
【0087】
図8Aは第2実施形態のKSNドメインの例1を示す図である。
図8Aは、同種類(
図8Aの例では、IPベース)の5つの鍵共有ネットワーク102a~102e(同種類の5つのKSNドメイン)が存在する場合を示す。なお、鍵共有ネットワーク102の数、QKDN制御装置6の数は任意でよく、
図8Aの例に限られない。
【0088】
図8Aに示す5つのKSNドメインは、IPベースのID体系を有する。鍵管理レイヤにおける各鍵共有ネットワーク102a~102eに対して、QKDネットワーク管理レイヤにおける専用のQKDN制御装置6a~6eが設置される。
【0089】
各QKDN制御装置6は、各鍵共有ネットワーク102のKM10から、マッピング情報などの情報を収集し、収集された情報を管理する。
【0090】
鍵共有ネットワーク102間はドメイン間境界に設置されたKM10(以下、BKM(Boarder KM)という。)で接続される。ドメイン間境界のBKMは、物理的に同じ場所(ノード)に置かれる。また、BKM間の情報共有は、リンク鍵の共有に使用されるQKDリンク3に依存しない。
【0091】
鍵共有ネットワーク102aにおけるKM10aに接続しているアプリケーション5a(ソース)から、鍵共有ネットワーク102dにおけるKM10dに接続しているアプリケーション5d(宛先)までセキュア通信を行う場合、KM10dのマッピング情報が、QKDN制御装置6aに存在しない。そのため、KM10dのマッピング情報が、QKDN制御装置6dからQKDN制御装置6aへ共有されることが望ましい。
【0092】
なお、各KSNドメインが、同じ規格、同じ規模、同じ量子プロトコルであるとは限らない。また、KSNドメイン(鍵共有ネットワーク102)もIPベースのID体系に限られない。例えば、IPベースの鍵共有ネットワーク102と、non-IPベースの鍵共有ネットワーク102とが混在する場合がある。
【0093】
図8Bは第2実施形態のKSNドメインの例2を示す図である。
図8Bは、異なる種類の鍵共有ネットワーク102が混在する例を示す。
図8Bの例では、5つの鍵共有ネットワーク102a~102eが存在する。鍵共有ネットワーク102a、102c及び102dは、IPベースの鍵共有ネットワーク102であり、鍵共有ネットワーク102b及び102eはnon-IPベースの鍵共有ネットワーク102である。なお、鍵共有ネットワーク102の数、QKDN制御装置6の数は任意でよく、
図8Bの例に限られない。
【0094】
異なる種類の鍵共有ネットワーク102が混在する場合、宛先のマッピング情報が効率的に共有されることが望ましい。
【0095】
図9は第2実施形態のKM10を識別するID体系の例を示す図である。
図9に示すように、KM10のID体系は、一般的にはQKD識別子、KSN識別番号及びKM識別番号を含む。
【0096】
QKD識別子は、QKDNであることを識別する識別子である。さらに、QKD識別子は、QKDNの種類を識別する識別子を含むこともある。
【0097】
KSN識別番号は、鍵共有ネットワーク102を識別するIDを示す。
【0098】
KM識別番号は、KM10を識別するIDを示す。
【0099】
KM10のID体系は、例えば現存のID体系に従うことができる。例えば、IP(Internet Protocol)ベースのID体系に従い、ネットワーク部分(サブネットを含む)をQKD識別子とKSN識別番号として、ホスト部分をKM識別番号とする。なお、IPv4(32ビット)とIPv6(128ビット)のどちらが使用されてもよい。IPベースのID体系を利用する利点は、IPネットワークのプロトコルをそのまま利用可能であり、KM10間の鍵リレーに関するルーティングの実装が容易であることである。
【0100】
なお、KSN識別番号が別だが、KMの識別番号が同一であることがある。そのため、KSN識別番号とKM識別番号とを合わせて、KM10を特定する体系はTree型とも言う。
【0101】
また例えば、KM10のID体系は、UUID:Universally Unique IDentifierベースのID体系(128ビット)に従うこともある。UUIDに従う場合、タイムスタンプ(60ビット)とクロックシーケンス(14ビット)とを利用せずに、MAC:Media Access Control addressアドレスベースのID体系(48ビット)だけを利用できる。ID体系(48ビット)の中のOUI:Organizationally Unique IDentifier(24ビット)部分をQKD識別子とKSN識別番号として、独自に重複しないように割り当てる。残りのOUI(24ビット)部分をKM識別番号に割り当てる。KMの識別番号が重複しないため、このような体系を分散型とも言う。
【0102】
一方、KM10のID体系として、そのほかのオリジナルのID体系も可能である。オリジナルのID体系は、少なくともKSN識別番号とKM識別番号とがあり、鍵共有ネットワーク102内部で、オリジナルのID体系ベースの鍵リレーが実現できればよい。
【0103】
図10は第2実施形態の量子暗号通信ネットワークの例を示す図である。
図10の例は、異なる種類の鍵共有ネットワーク102a及び102bを含むQKDNの場合を示す。アプリケーションAとアプリケーションB間は、データ通信ネットワーク103を経由してセキュア通信を行う。アプリケーションAが、鍵共有ネットワーク102aにおけるKM10a-1に接続する。アプリケーションBが、鍵共有ネットワーク102bにおけるKM10b-1に接続する。
【0104】
鍵共有ネットワーク102a及び102bは物理的に同じ場所に置かれているBKM10a-2とBKM10b-2との間のLink#1により接続される。Link#1は、QKDリンク3のネットワーク101a及び101bに依存しない。
【0105】
また、鍵共有ネットワーク102a及び102bに、それぞれQKDN制御装置6a及び6bが設置され、QKDN制御装置6a及び6b間は別のリンク(Link#2)で接続される。
【0106】
Link#2は、QKDリンク3のネットワーク101a及び101bを利用してもよいし、QKD以外の方式で守られる普通のリンクでもいい。なお、このLink#2が存在しない場合もある。Link#2が存在しない場合。BKM10a-2及び10b-2間のLink#1を経由して情報共有することも考えられる。
【0107】
なお、
図10の例では、簡略化のため、鍵共有ネットワーク102内のKM10と、QKDリンク3のネットワーク101a及び101b内のQKDモジュール2は省略されている。
【0108】
図11は第2実施形態のセキュア通信方法の例を示すシーケンス図である。
図11の例は、
図10の構成におけるマッピング情報、及び、鍵蓄積状態に基づくアプリ鍵のリレー・送信のシーケンスを示す。アプリケーション5a(ソース)は、
図10のアプリケーションAに対応する。アプリケーション5b(宛先)は、
図10のアプリケーションBに対応する。
【0109】
はじめに、アプリケーション5aが、KM10a-1に接続する際に、アプリケーション5aのID情報をKM10a-1に通知する(ステップS21)。次に、KM10a-1が、ステップS21で通知されたアプリケーション5aのID情報と、KM10a-1のID情報とをQKDN制御装置6aに記憶されたマッピング情報のテーブルに登録する(ステップS22)。
【0110】
同様に、アプリケーション5bが、KM10b-1に接続する際に、アプリケーション5bのID情報をKM10b-1に通知し(ステップS23)、アプリケーション5bのID情報と、KM10b-1のID情報とをQKDN制御装置6bのマッピング情報のテーブルに登録する(ステップS24)。
【0111】
アプリケーション5aは、セキュア通信を行う前に、KM10a-1にアプリ鍵を要求する(ステップS25)。その際に、アプリケーション5aは、アプリケーション5aのセキュア通信宛先がアプリケーション5bであることを示す情報(例えば宛先のアプリケーション5bのID情報)、及び、にアプリ鍵の要求量もKM10a-1に通知する。
【0112】
次に、KM10a-1は、QKDN制御装置6aに、アプリケーション5bのIDを、アプリケーション5bに接続しているKM10のIDへ変換する要求を行う(ステップS26)。
【0113】
次に、QKDN制御装置6aは、マッピング情報のテーブルを参照し、アプリケーション5bが接続しているKM10を探す。QKDN制御装置6aは、アプリケーション5bが接続しているKM10の情報が見つからない場合、QKDN制御装置6bにアプリケーション5bが接続しているKM10のID情報を問い合わせる(ステップS27)。QKDN制御装置6bは、マッピング情報のテーブルを参照し、アプリケーション5bが接続しているKM10がKM10b-1であることと、KM10b-1のID情報とを特定する。
【0114】
QKDN制御装置6aは、アプリケーション5bが接続しているKM10が、KM10b-1であることを示すマッピング情報をQKDN制御装置6bから受信すると(ステップS28)、KM10b-1のID情報をKM10a-1に返答する(ステップS29)。
【0115】
また、QKDN制御装置6bは、KM10b-1に、KM10a-1との間で共有されたアプリ鍵蓄積状態を問い合わせ、アプリ鍵蓄積状態を受信すると(ステップS30)、アプリ鍵蓄積状態をQKDN制御装置6aに通知する(ステップS31)。
【0116】
次に、QKDN制御装置6aは、ステップS27で通知されたマッピング情報と、ステップS30で通知されたアプリ鍵蓄積情報とに基づき、QKDN制御装置6aの記憶部62に記憶されたマッピング情報及び鍵蓄積状態を更新する。QKDN制御装置6aは、アプリ鍵の要求量と、KM10a-1とKM10b-1との間で共有されたアプリ鍵蓄積状態とから、追加で必要になるアプリ鍵の必要量(共有量)を計算し、アプリ鍵の必要量をKM10a-1に通知する(ステップS32)。
【0117】
次に、KM10a-1は、追加で必要になるアプリ鍵の必要量が0でない場合(アプリ鍵蓄積量がアプリ鍵要求量より少ない場合)、KM10a-1からKM10b-1までにアプリ鍵の鍵リレーを行うことによって、アプリ鍵の共有を行う(ステップS33)。
【0118】
KM10a-1及び10b-1は、アプリ鍵の共有が終わると、アプリケーション5a及び5bにアプリ鍵を提供(送信)する(ステップS34及びS35)。
【0119】
ステップS36のセキュア通信は、第1実施形態のステップS11のセキュア通信(
図6)と同じなので説明を省略する。
【0120】
なお、上述のステップS31において、追加で必要になるアプリ鍵の必要量が0である場合(アプリ鍵蓄積量がアプリ鍵要求量以上である場合)、KM10a-1は、すぐにKM10a-1からアプリケーション5aへアプリ鍵を提供する。また、KM10a-1は、アプリケーション5bへすぐにアプリ鍵を提供する指示を、KM10b-1に送信する。
【0121】
また、追加で必要になるアプリ鍵の必要量(共有量)は、KM10の処理部13によって、計算されてもよい。この場合、KM10の通信部11が、QKDN制御装置6aからアプリ鍵の状態情報を受信し、処理部13が、アプリ鍵の要求量と状態情報とからアプリ鍵の共有量を決定する。
【0122】
図12は第2実施形態のマッピング情報の例を示す図である。
図12は、QKDN制御装置6a及び6bの間で共有されたマッピング情報のテーブルの例である。
図12のテーブルは、QKDN制御装置6aで記憶されるテーブルを示す。第1実施形態の
図7と比べ、種別とKSN IDが追加されている。
【0123】
種別は、「i」及び「o」の2種類がある。「i」は、inside情報であることを示し、各KSNドメイン内におけるKM10から収集されたID情報であることを示す。「o」は、outside情報であることを示し、他のQKDN制御装置6から共有されたID情報(他のKSNドメインに属するKM10のID情報)であることを示す。
【0124】
KSN IDは、例えばKSNの識別番号である。KM IDは、単独にKM10の識別番号だけを登録してもいい、KSNの識別番号とKMの識別番号と合わせたIDでもよい。
【0125】
図12の例では、KM10a-1はIPベースのID体系となり、KM10b-1は非IPベースのID体系となる。アプリケーションID(例えば、IPアドレス)はアプリケーション5が属するデータ通信ネットワーク103から割り当てられる。複数のアプリケーション5が同じKM10に接続することがある。逆に、一つのアプリケーション5は複数のKM10に接続することはない。
【0126】
図12のマッピング情報のテーブルにおいて、KSNドメイン内の各KM10からの情報は、周期的(定期的)に更新される。周期は実際の状況に従い設定される。また、新たなアプリケーションがKM10に接続される時、KM10がアプリケーション5との接続を中止する時、又は、アプリケーション5からアプリ鍵が要求される時に、マッピング情報のテーブルに記憶されたデータの追加、削除又は更新が行われる。
【0127】
図13は第2実施形態の状態情報の例を示す図である。
図13は、QKDN制御装置6a及び6bの間で共有された状態情報のテーブルの例である。
図13のテーブルは、QKDN制御装置6aで記憶されるテーブルを示す。
図13のテーブルは、種別、シーケンス番号、送信元KM ID、宛先KM ID、暗号化用アプリ鍵及び復号用アプリ鍵を含む。
【0128】
【0129】
シーケンス情報は、データが記憶された順に付与される識別情報である。シーケンス番号は、例えば、時間順で付与される番号である。送信元KM IDは、送信元のKM10を識別する識別情報である。宛先KM IDは、宛先のKM10を識別する識別情報である。暗号化用アプリ鍵と復号用アプリ鍵情報は、現在蓄積されているアプリ鍵の残量を示す。
【0130】
図13の1行目のデータ、及び、3行目のデータの例は、アプリ鍵の蓄積状態を共有したため、シーケンス番号が一致している場合を示す。この場合、KM10a-1の暗号化用アプリ鍵残量と、KM10b-1の復号用アプリ鍵残量とは一致する。また、KM10a-1の復号用アプリ鍵残量と、KM10b-1の暗号化用アプリ鍵残量も一致する。
【0131】
図13の2行目のデータ、及び、4行目のデータの例は、アプリ鍵の蓄積状態がしばらく共有されていないため、シーケンス番号が不一致である場合を示す。QKDN制御装置6aが管理するKSNドメインに属するKM10a-1のアプリ鍵の蓄積状態が新しく、KM10b-xが属するKSNドメインを管理する他のQKDN制御装置6から共有されたアプリ鍵の蓄積状態が古くなっている。そのため、KM10a-1の暗号化用アプリ鍵と、KM10b-xの復号用アプリ鍵とが不一致になっている。
【0132】
アプリ鍵の状態情報のテーブルにおいて、QKDN制御装置6が管理するKSNドメイン内のKM10のアプリ鍵の蓄積状態は、周期的(定期的)に更新されてもよいし、周期的に更新されなくてもよい。周期は実際の状況に従い、設定される。また、アプリケーション5からアプリ鍵が要求される時に、当該アプリ鍵の蓄積状態の更新が行われてもよい。
【0133】
なお、ノード1(QKDモジュール2及びKM10)がQKDNに追加されてから、QKDモジュール2間におけるリンク鍵は、ある速度で中断せずに生成され続けている。生成されたリンク鍵はKM10で蓄積され、アプリ鍵が共有される際の暗号鍵及び復号鍵に使われる。アプリケーション5間のセキュア通信はニーズにより発生し、アプリケーション5からのアプリ鍵要求に従い、KM10間でアプリ鍵が共有される。
【0134】
また、蓄積されたアプリ鍵が事前に使われることもある。つまり、各KM10が、アプリ鍵の要求の有無にかかわらず、事前にある程度の量のアプリ鍵を共有することがある。これにより、送信元のKM10と宛先のKM10とは、要求されるアプリ鍵の鍵量が、事前に共有されているアプリ鍵の蓄積量(現在の蓄積量)以下の場合、新たなアプリ鍵の共有処理をせずに、アプリケーション5にアプリ鍵を送信できる。
【0135】
また、要求されるアプリ鍵の鍵量が、事前に共有されているアプリ鍵の蓄積量より多い場合、QKDN制御装置6、又は、QKDN制御装置6からアプリ鍵蓄積状態の通知を受けたKM10が、追加で必要なアプリ鍵の量を計算し、必要に応じてアプリ鍵の共有処理を実施する。
図13に示すように、アプリ鍵蓄積状態が、複数のQKDN制御装置6の間で共有されることにより、アプリケーション5へのアプリ鍵の送信を柔軟かつ効率的に行うことができる。
【0136】
図14は第2実施形態のマッピング情報の共有に関する問い合わせメッセージのフォーマットの例を示す図である。問い合わせメッセージのヘッダ部分は、6つのフィールドを含む。
【0137】
Version of Applicationは、アプリケーション5のバージョンを示すフィールドである。例えば、IPv4の場合、Version of Applicationに0x04が格納される。また例えば、IPv6の場合、Version of Applicationに0x06が格納される。また例えば、非IPの場合、Version of Applicationに0x10が格納される。
【0138】
Version of KMは、KM10のバージョンを示すフィールドである。例えば、IPv4の場合、Version of KMに0x04が格納される。また例えば、IPv6の場合、Version of KMに0x06が格納される。また例えば、非IPの場合、Version of KMに0x10が格納される。
【0139】
Typeは、メッセージの種類を示すフィールドである。例えば、問い合わせの場合、Typeに0x00が格納される。また例えば、応答の場合、Typeに0x10が格納される。また例えば、エラーの場合、Typeに0x20が格納される。
【0140】
Codeは、メッセージの目的を示すフィールドである。例えば、Type=0x00の場合(問い合わせの場合)、KSNドメインのIDの問い合わせなら、Codeに0x01が格納される。また例えば、KM10のIDの問い合わせなら、Codeに0x02が格納される。また例えば、シーケンス番号の問い合わせなら、Codeに0x03が格納される。また例えば、アプリ鍵の問い合わせなら、Codeに0x04が格納される。
【0141】
同様に、例えば、Type=0x10の場合(応答の場合)、KSNドメインのIDの応答なら、Codeに0x11が格納される。また例えば、KM10のIDの応答なら、Codeに0x12が格納される。また例えば、シーケンス番号の応答なら、Codeに0x13が格納される。また例えば、アプリ鍵の応答なら、Codeに0x14が格納される。
【0142】
また例えば、Type=0x20の場合(エラーの場合)、KSNドメインのIDが未知なら、Codeに0x21が格納される。また例えば、KM10のIDが未知なら、Codeに0x22が格納される。また例えば、シーケンス番号のエラーなら、Codeに0x23が格納される。また例えば、アプリ鍵のエラーなら、Codeに0x24が格納される。
【0143】
Lengthは、メッセージの長さを示すフィールドである。
【0144】
Checksumは、メッセージのエラーチェックのフィールドである。
【0145】
問い合わせメッセージのデータ部分は、4つのフィールドを含む。
【0146】
Source Application IDは、送信元のアプリケーション5の情報を示すフィールドである。例えば、IPv4の場合、Source Application IDの長さは32ビット、IPv6の場合、Source Application ID長さは128ビットとなる。
【0147】
Destination Application IDは、宛先のアプリケーション5の情報を示すフィールドである。例えば、IPv4の場合、Destination Application IDの長さは32ビット、IPv6の場合、Destination Application IDの長さは128ビットとなる。
【0148】
Source KM IDは、送信元のKM10の情報を示すフィールドである。
【0149】
Source KSN IDは、送信元のKM10が属するKSNドメインの情報を示すフィールドである。
【0150】
図15は第2実施形態のマッピング情報の共有に関する応答メッセージのフォーマットの例を示す図である。応答メッセージのヘッダ部分は、6つのフィールドを含む。応答メッセージのヘッダ部分は、問い合わせフォーマットのヘッダ部分と同じである。
【0151】
応答メッセージのデータ部分は、8つのフィールドを含む。はじめの4フィールドは問い合わせメッセージのデータ部分と一致する。応答メッセージのデータ部分では、マッピング情報の2フィールドと、アプリ鍵の蓄積状態の2フィールドとが追加されている。
【0152】
Destination KM IDは、宛先のKM10のID情報を示すフィールドである。
【0153】
Destination KSN IDは、宛先のKSNドメインのID情報を示すフィールドである。
【0154】
Sequence Numberは、シーケンス番号を示すフィールドである。
【0155】
Available Amount of Application Keyは、送信元のKM10と宛先のKM10との間で既に共有されているアプリ鍵の蓄積状態を示すフィールドである。
【0156】
なお、メッセージのフィールド長は実際の要求に従って定義される。上述の
図12及び
図13により示されるメッセージのフィールド長は一例である。
【0157】
図8A及び7Bの構成例では、例えば、鍵共有ネットワーク102aにおけるKM10aに接続するアプリケーション5からアプリ鍵が要求され、鍵共有ネットワーク102dにおけるKM10dに接続するアプリケーションとセキュア通信を行う際の動作は、基本的には
図10と同じである。しかし、QKDN制御装置6a~6d間の情報共有が1本のリンクで繋がっているわけではないため、少し複雑になる。
【0158】
QKDN制御装置6a~6d間で情報を共有するための形態として、分散管理により共有する形態と、集中管理により共有する形態とがある。分散管理では、QKDN制御装置6の専用ネットワークが構築される。集中管理では、権威ルートサーバ装置が設置され、全てのQKDN制御装置6が権威ルートサーバ装置に接続する。
【0159】
図16は第2実施形態の分散管理の構成の例を示す図である。
図16の例では、QKDN制御装置6は専用ネットワークを構築し、各QKDN制御装置6が、マッピング情報、及び、アプリ鍵の状態情報を記憶する。また、各QKDN制御装置6が、マッピング情報、及び、アプリ鍵の状態情報の作成、更新及び削除を行う。
【0160】
ユーザネットワークにおけるアプリケーション5からアプリ鍵が要求される際に、各QKDN制御装置6間で関連情報(例えば、マッピング情報及びアプリ鍵の鍵状態情報)が共有される。
【0161】
各QKDN制御装置6は、宛先の情報を見つけるために、例えば、ブロードキャスト(Broadcast)の方式で、同じ問い合わせメッセージを専用ネットワーク内の他のQKDN制御装置6に同時に転送する。
【0162】
他のQKDN制御装置6が問い合わせメッセージを受信し、Destination Application IDのフィールドを参照し、マッピング情報を確認し、応答メッセージを返す。
【0163】
問い合わせメッセージを送信したQKDN制御装置6は、他のQKDN制御装置6から応答メッセージが来ると、Type及びCodeのフィールドを確認する。QKDN制御装置6は、Type及びCodeのフィールドを確認した結果、エラーの場合、宛先のアプリケーション5の関連情報がないので、アプリケーション5間とのセキュア通信が不可能と判断する。また、QKDN制御装置6は、TypeとCodeのフィールドを確認した結果、エラーではない場合、Destination KM IDフィールドから4つのフィールド情報に基づく鍵送信・鍵リレー処理を実施する。
【0164】
図16の例では、分散管理のため、関連情報にシーケンス番号(例えば、時間順)を付けて、常に最新の情報を利用する。なお、QKDN制御装置6間のリンクはQKDリンク3でもよいし、QKD以外の方式で守られる普通のリンクでもよい。
【0165】
図17は第2実施形態の集中管理の構成の例を示す図である。
図17の例では、QKDN制御装置6は権威ルートサーバ装置9に接続する。マッピング情報及びアプリ鍵の状態情報などの関連情報は、権威ルートサーバ装置9で統一管理される。QKDN制御装置6は、ユーザネットワークにおけるアプリケーション5からアプリ鍵が要求される際に、権威ルートサーバ装置9に関連情報を問い合わせる。QKDN制御装置6は、権威ルートサーバ装置9から受信された応答メッセージに含まれるType及びCodeのフィールドを確認した結果、エラーではない場合、マッピング情報及びアプリ鍵の状態情報に基づく鍵送信・鍵リレー処理を実施する。
【0166】
QKDN制御装置6は、権威ルートサーバ装置9から受信された応答メッセージに含まれるType及びCodeのフィールドを確認した結果、エラーの場合、宛先のアプリケーション5の関連情報がないので、アプリケーション5間のセキュア通信が不可能とKM10にフィードバックする。
【0167】
権威ルートサーバ装置9の情報更新については、情報が常に更新される場合、権威ルートサーバ装置9とQKDN制御装置6とが一致するシーケンス番号を付ける。マッピング情報、及び、アプリ鍵の状態情報を問い合わせる時だけ、権威ルートサーバ装置9の情報が更新される場合、関連するQKDN制御装置6が、問い合わせがあったときに、権威ルートサーバ装置9へ最新の情報を通知する。
【0168】
なお、権威ルートサーバ装置9とQKDN制御装置6との間のリンクはQKDリンク3でもよいし、QKD以外の方式で守られる普通のリンクでもよい。
【0169】
最後に、本実施形態にかかるKM10、QKDN制御装置6及び情報処理装置8のハードウェア構成の例について説明する。
[ハードウェア構成の例]
図18は第1及び第2実施形態のKM10、QKDN制御装置6及び情報処理装置8のハードウェア構成の例を示す図である。KM10、QKDN制御装置6及び情報処理装置8は、CPU201などの制御装置、ROM(Read Only Memory)202、RAM203などの記憶装置、及び、ネットワークに接続して通信を行う通信I/F204を備える。CPU201、ROM202、RAM203及び通信I/F204は、バス205により接続される。
【0170】
例えば、KM10、QKDN制御装置6及び情報処理装置8で実行されるプログラムは、ROM202等に予め組み込まれて提供される。
【0171】
また例えば、KM10、QKDN制御装置6及び情報処理装置8で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD-R(Compact Disk Recordable)、及び、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【0172】
さらに、KM10、QKDN制御装置6及び情報処理装置8で実行されるプログラムを、インターネット等のネットワークに接続されるコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、KM10、QKDN制御装置6及び情報処理装置8で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0173】
KM10、QKDN制御装置6及び情報処理装置8で実行されるプログラムは、コンピュータを上述したKM10、QKDN制御装置6及び情報処理装置8の各部として機能させうる。このコンピュータは、CPU201がコンピュータ読取可能な記憶媒体からプログラムをRAM203などの主記憶装置上に読み出して実行することができる。
【0174】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0175】
1 ノード
2 QKDモジュール
3 QKDリンク
4 QKDネットワークコントローラ
5 アプリケーション
6 QKDN制御装置
7 ユーザネットワーク制御装置
8 情報処理装置
9 権威ルートサーバ装置
10 鍵管理装置(KM)
11 通信部
12 記憶部
13 処理部
61 通信部
62 記憶部
63 処理部
100 量子暗号通信ネットワーク
101 QKDリンクのネットワーク
102 鍵共有ネットワーク
103 データ通信ネットワーク
111 KM通信部
112 制御通信部
113 アプリ通信部
131 取得部
132 実行部
133 鍵処理部
134 提供部
135 制御部
136 管理部
137 プラットフォーム部
611 KM通信部
612 制御通信部
631 取得部
632 制御部
633 管理部
634 プラットフォーム部