(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023157174
(43)【公開日】2023-10-26
(54)【発明の名称】暗号通信システム、暗号通信装置および暗号通信方法
(51)【国際特許分類】
H04L 9/08 20060101AFI20231019BHJP
H04L 9/12 20060101ALI20231019BHJP
【FI】
H04L9/08 A
H04L9/12
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022066918
(22)【出願日】2022-04-14
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】301063496
【氏名又は名称】東芝デジタルソリューションズ株式会社
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】尾崎 恭平
(72)【発明者】
【氏名】松尾 正克
(72)【発明者】
【氏名】小林 学
(72)【発明者】
【氏名】安藤 晃規
(57)【要約】
【課題】ユーザとの間で暗号鍵に関するデータを送受信するノードの1つに侵入されても暗号鍵が窃取されることを防ぐことができる暗号通信システムを提供する。
【解決手段】実施形態によれば、暗号通信システムは、第1ネットワークを介して暗号通信を実行する第1機器と第2機器とが、複数のノードで構成される第2ネットワークを介して、暗号通信に使用する暗号鍵を共有化する。第1機器は、暗号鍵の生成に使用するn個の第1データを生成し、n個の第1データを、複数のノードの中のn個のノードに振り分けて第2ネットワーク上に送出することによって第2機器へ送信し、n個の第1データを使用して暗号鍵を生成する。第2機器は、複数のノードの中のn個のノードからn個の第1データを受信し、n個の第1データを使用して暗号鍵を生成する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
第1ネットワークを介して暗号通信を実行する第1機器と第2機器とが、複数のノードで構成される第2ネットワークを介して、前記暗号通信に使用する暗号鍵を共有化する暗号通信システムであって、
前記第1機器は、
前記暗号鍵の生成に使用するn個の第1データを生成し、
前記n個の第1データを、前記複数のノードの中のn個のノードに振り分けて前記第2ネットワーク上に送出することによって前記第2機器へ送信し、
前記n個の第1データを使用して前記暗号鍵を生成し、
前記第2機器は、
前記複数のノードの中のn個のノードから前記n個の第1データを受信し、
前記n個の第1データを使用して前記暗号鍵を生成する、
暗号通信システム。
【請求項2】
前記複数のノード間の前記第1データの送受信は、前記複数のノードのそれぞれが有する第1通信装置を介して実行され、
前記第1機器または前記第2機器と、前記複数のノードの中の前記第1機器または前記第2機器と接続されているノードとの間の前記第1データの送受信は、前記第1機器と、前記第2機器と、前記第1機器または前記第2機器と接続されているノードとのそれぞれが有する第2通信装置を介して実行され、
前記第1機器または前記第2機器と接続されているノードは、前記第1通信装置と前記第2通信装置との間の前記第1データの受け渡しを内部的に実行する、
請求項1に記載の暗号通信システム。
【請求項3】
前記第1機器および前記第2機器は、前記n個の第1データを分散データと見なした秘密分散法による復元処理によって得られる第2データを基に前記暗号鍵を生成する請求項1に記載の暗号通信システム。
【請求項4】
前記秘密分散法は、完全秘密分散法を含むランプ型秘密分散法である請求項3に記載の暗号通信システム。
【請求項5】
前記第1機器および前記第2機器は、前記n個の第1データを重ね合わせて前記暗号鍵を生成する請求項1に記載の暗号通信システム。
【請求項6】
前記n個の第1データの重ね合わせは、前記n個の第1データの排他的論理和を算出することである請求項5に記載の暗号通信システム。
【請求項7】
前記第2ネットワークは、前記複数のノード間が光ファイバで接続される構成を有し、
前記複数のノードのそれぞれは、前記第2ネットワーク上において隣接するノードとの間で前記光ファイバを媒体として光子によりデータを送受信する、
請求項1に記載の暗号通信システム。
【請求項8】
各々が第1量子鍵配送装置と第2量子鍵配送装置とを有し、前記第1量子鍵配送装置によって相互に接続されている第1通信装置および第2通信装置と、
2つの前記第2量子鍵配送装置を有し、一方の前記第2量子鍵配送装置によって前記第1通信装置と接続され、かつ、他方の前記第2量子鍵配送装置によって前記第2通信装置と接続されている第3通信装置と、
を具備し、
前記第3通信装置は、前記2つの第2量子鍵配送装置によって前記第1通信装置および前記第2通信装置から取得したデータを用いて、暗号化されているデータを復号するための乱数鍵を生成する乱数鍵生成手段を有する、
暗号通信システム。
【請求項9】
第1ネットワークを介して他の暗号通信装置との間で暗号通信を実行する暗号通信装置であって、複数のノードで構成される第2ネットワークを介して、前記暗号通信に使用する暗号鍵を前記他の暗号通信装置との間で共有化する暗号通信装置において、
前記暗号鍵の生成に使用するn個の第1データを生成する手段と、
前記n個の第1データを、前記複数のノードの中のn個のノードに振り分けて前記第2ネットワーク上に送出することによって前記他の暗号通信装置へ送信する手段と、
前記n個の第1データを使用して前記暗号鍵を生成する手段と、
を具備する暗号通信装置。
【請求項10】
第1ネットワークからデータを受信するデータ受信手段と、
第2ネットワークの第1ノードとの間で量子暗号通信を実行する第1量子暗号通信手段と、
前記第2ネットワークの第2ノードとの間で量子暗号通信を実行する第2量子暗号通信手段と、
前記第1量子暗号通信手段によって取得された第1データと、前記第2量子暗号通信手段によって取得された第2データとを用いて、暗号化されているデータを復号するための乱数鍵を生成する乱数鍵生成手段と、
前記乱数鍵生成手段によって生成された乱数鍵を用いて、前記データ受信手段によって受信された暗号データを復号する復号手段と、
を具備する暗号通信装置。
【請求項11】
第1ネットワークを介して暗号通信を実行する第1機器と第2機器とが、複数のノードで構成される第2ネットワークを介して、前記暗号通信に使用する暗号鍵を共有化する暗号通信方法であって、
前記第1機器は、
前記暗号鍵の生成に使用するn個の第1データを生成し、
前記n個の第1データを、前記複数のノードの中のn個のノードに振り分けて前記第2ネットワーク上に送出することによって前記第2機器へ送信し、
前記n個の第1データを使用して前記暗号鍵を生成し、
前記第2機器は、
前記複数のノードの中のn個のノードから前記n個の第1データを受信し、
前記n個の第1データを使用して前記暗号鍵を生成する、
暗号通信方法。
【請求項12】
各々が第1量子鍵配送装置と第2量子鍵配送装置とを有する第1通信装置および第2通信装置を前記第1量子鍵配送装置によって相互に接続し、
2つの前記第2量子鍵配送装置を有する第3通信装置を、一方の前記第2量子鍵配送装置によって前記第1通信装置と接続し、かつ、他方の前記第2量子鍵配送装置によって前記第2通信装置と接続し、
前記第3通信装置が、前記2つの第2量子鍵配送装置によって前記第1通信装置および前記第2通信装置から取得したデータを用いて、暗号化されているデータを復号するための乱数鍵を生成する、
暗号通信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、暗号通信システム、暗号通信装置および暗号通信方法に関する。
【背景技術】
【0002】
現在普及している公開鍵暗号方式は、既存のコンピュータ、アルゴリズムでは有効な時間内に解読できないという計算量的安全性に依拠している。将来、量子コンピュータの運用が始まると、計算量的安全性が保証されなくなり、従来の暗号方式ではセキュアな通信を担保することができなくなる。そこで、計算的安全性に依らない、情報理論的安全性をもつ暗号方式として量子暗号が期待されている。量子暗号では、光ケーブルを用いる性質上、直接鍵を共有できる距離に制約がある。そのため、セキュリティ上信用できる中継ノードを用いて量子暗号鍵を中継することによって、遠隔地に離れたユーザ同士でも、量子暗号により暗号鍵(乱数鍵)を共有して暗号通信することを可能としている。
【0003】
たとえば、通信相手と接続する際、複数の異なる経路をそれぞれ通して複数の独立な暗号鍵を配布し、暗号鍵を用いて多重暗号化および復号することで、中継局の信頼性劣化に対して暗号化通信の劣化を抑制する暗号通信システムが提案されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、
図12に示すように、前述の暗号通信システムにおいては、中継ノード部A5およびA6の信頼性は担保されているものの、末端ノード[1]A3や末端ノード[2]A4から、暗号通信の通信元であるユーザ[1]A1や暗号通信の通信先であるユーザ[2]A2へ、QKD装置(量子鍵配送装置)A7,A8によって暗号鍵を配送する際に、インターネット上で暗号鍵が盗聴されるリスクがあるという問題が存在する。これはラストワンマイル問題として認知されている。
【0006】
ラストワンマイル問題の解決手法として、
図13に示すように、末端ノード[1]B3や末端ノード[2]B4に、中継ノード[1]B5や中継ノード[2]B6との間で量子鍵配送を行うQKD装置B7,B8(たとえば、BB84)に加えて、ユーザ[1]B1やユーザ[2]B2との間で量子鍵配送を行うQKD装置(異なるQKD装置)B15,B16(たとえば、CVQKD)を配置することが検討されている。つまり、ユーザ[1]B1やユーザ[2]B2と、末端ノード[1]B3や末端ノード[2]B4との間の通信にも、量子鍵で情報(配送対象の暗号鍵)を暗号する量子暗号を適用することが検討されている。
【0007】
しかしながら、この手法においても、不正者が、末端ノード[1]B3や末端ノード[2]B4に侵入し、QKD装置B7とQKDB装置(異なるQKD装置)B15との間のデータ転送や、QKD装置B8とQKDB装置(異なるQKD装置)B16との間のデータ転送を盗聴することで、情報(配送対象の量子鍵)が窃取されるリスクがあるという問題が残存する。
【0008】
本発明の1つの実施形態は、ユーザとの間で暗号鍵に関するデータを送受信するノードの1つに侵入されても暗号鍵が窃取されることを防ぐことができる暗号通信システム、暗号通信装置および暗号通信方法を提供する。
【課題を解決するための手段】
【0009】
実施形態によれば、暗号通信システムは、第1ネットワークを介して暗号通信を実行する第1機器と第2機器とが、複数のノードで構成される第2ネットワークを介して、暗号通信に使用する暗号鍵を共有化する。第1機器は、暗号鍵の生成に使用するn個の第1データを生成し、n個の第1データを、複数のノードの中のn個のノードに振り分けて第2ネットワーク上に送出することによって第2機器へ送信し、n個の第1データを使用して暗号鍵を生成する。第2機器は、複数のノードの中のn個のノードからn個の第1データを受信し、n個の第1データを使用して暗号鍵を生成する。
【図面の簡単な説明】
【0010】
【
図1】第1実施形態の暗号通信システムの全体像を概略的に示す図。
【
図2】第1実施形態の暗号通信システムの一構成例を示すブロック図。
【
図3】第1実施形態の暗号通信システムが実行する暗号通信方法の処理手順を表すシーケンスチャート。
【
図4】第1実施形態の暗号通信システムにおけるユーザ(ユーザの通信機器)の一機能構成例を示すブロック図。
【
図5】第1実施形態の暗号通信システムの量子暗号通信網内のノードが末端ノードの役割を担う場合における一機能構成例を示すブロック図。
【
図6】第1実施形態の暗号通信システムの量子暗号通信網内のノードが中継ノードの役割を担う場合における一機能構成例を示すブロック図。
【
図7】第1実施形態の暗号通信システムの量子暗号通信網内のノードが中間ノードの役割を担う場合における一機能構成例を示すブロック図。
【
図8】第1実施形態の暗号通信システムにおける、分散数3、閾値3のランプ型秘密分散による乱数鍵の生成方法の一例を示す第1図。
【
図9】第1実施形態の暗号通信システムにおける、分散数3、閾値3のランプ型秘密分散による乱数鍵の生成方法の一例を示す第2図。
【
図10】第1実施形態の暗号通信システムにおけるユーザによる平文データの暗号化の一例を示す図。
【
図11】第2実施形態の暗号通信システムにおける乱数鍵の生成方法および平文データの暗号化の一例を示す図。
【
図12】第1比較例の暗号通信システムの一構成例を示すブロック図。
【
図13】第2比較例の暗号通信システムの一構成例を示すブロック図。
【発明を実施するための形態】
【0011】
以下、実施の形態について、図面を参照して説明する。
【0012】
(第1実施形態)
まず、第1実施形態について説明する。
【0013】
第1実施形態の暗号通信システムは、インターネット網を介して暗号通信を実行する2ユーザの中の一方のユーザが、ノード間で量子暗号通信が行われる量子暗号通信網を介して他方のユーザとの間で暗号鍵を共有化する際、暗号鍵(以下、インターネット網で利用される暗号鍵を乱数鍵とも称する)の生成に必須の情報を複数のノードに振り分けて他方のユーザ宛てに量子暗号通信網へ送出する。他方のユーザは、当該暗号鍵の生成に必須の情報を複数のノードから受信する。これにより、第1実施形態の暗号通信システムは、ユーザとの間で暗号鍵の生成に必須の情報を送受信するノード(QKD装置間でのデータ転送が内部的に発生するノード)の1つに侵入されても暗号鍵が窃取されることを防ぐことができる。
【0014】
図1は、第1実施形態の暗号通信システムの全体像を概略的に示す図である。第1実施形態の暗号通信システムは、インターネット網105を介して暗号データ103を送受信するユーザ[1]107(ユーザ[1]107の通信機器)とユーザ[2]115(ユーザ[2]115の通信機器)とが、量子暗号通信網(一部区間、または全区間がメッシュ)120を介して、暗号通信のための乱数鍵102を共有化する。量子暗号通信網120は、各々が量子鍵配送機能を有する複数のノードが一部区間、または全区間でメッシュ状に接続されている。メッシュ状の接続と言っても、隣接するノード間がすべて接続されているとは限らない。一部の隣接するノード間は接続されていなくても構わない。量子鍵配送は、光子など量子の挙動を利用する技術であり、たとえば、光ファイバを媒体としてノード間で光子を送受信することで量子鍵を生成・共有する。なお、この量子鍵は、乱数鍵102とは別の、量子暗号通信網120上において隣接する2つのノード間で暗号通信(量子暗号通信)を実行するためのものである。この暗号通信には、たとえば、暗号データだけでは解読不可能なOTP(ワンタイムパッド暗号)が使用される。
【0015】
ユーザ[1]107は、乱数鍵102を使って平文データ101を暗号化し、この暗号化によって生成された暗号データ103をインターネット網105でユーザ[2]115に送信する。ユーザ[2]115は、乱数鍵102を使って、インターネット網105経由でユーザ[1]107から受信した暗号データ103を復号し、平文データ101を取得する。
【0016】
ユーザ[1]107は、ユーザ[2]115との間で量子暗号通信網120を介して乱数鍵102を共有化するにあたって、乱数鍵102の生成に必須の複数のデータ(分散データ106)を生成する(108:分割)。分散データ106は、たとえば、単なる乱数である。なお、ユーザ[1]107は、量子暗号通信網120内のノード(末端ノード[1]109、中継ノード[1]111)との間で量子鍵配送を行うためのQKD装置を有しており、このQKD装置によって生成される暗号鍵を分散データ106として流用してもよい。QKD装置によって生成される暗号鍵は、ユーザ[1]107が、量子暗号通信網120内のノードとの間の暗号通信に使用するものであって、ユーザ[2]115との間の暗号通信に使用する乱数鍵102ではない。
【0017】
ユーザ[1]107が有するQKD装置は、たとえば、量子暗号通信網120内の各ノードが他のノードとの間で実行する量子鍵配送のためのQKD装置よりも低スペックの安価なQKD装置である。ユーザ[2]115も、ユーザ[1]107と同様、量子暗号通信網120内のノード(末端ノード[2]113、中継ノード[2]114)との間で量子鍵配送を行うためのQKD装置を有している。
【0018】
ユーザ[1]107は、複数の分散データ106を、複数のノード(末端ノード[1]109、中継ノード[1]111)に振り分けて、量子暗号通信網120へ送出する。当該複数の分散データ106は、中間ノード112を経由した後、複数のノード(末端ノード[2]113、中継ノード[2]114)に分かれて、分岐先のそれぞれから、ユーザ[2]115へと送信される。
【0019】
なお、量子暗号通信網120内の各ノードは、末端ノードにもなり得るし、中継ノードにもなり得るし、中間ノードにもなり得る。
【0020】
分散データ106の送信元であるユーザ[1]107と、分散データ106の送信先であるユーザ[2]115とは、それぞれ、実際は単なる乱数である当該複数の分散データ106を、たとえば秘密分散法による分散処理で生成されたデータと見なして、排他的論理和などを用いる秘密分散法による復元処理を実行する(108:復元)。ユーザ[1]107とユーザ[2]115とは、この復元処理で得られたデータを乱数鍵102として取得し、あるいは、そのデータを基に乱数鍵102を生成する。分散データ106を使った乱数鍵102の生成の詳細については後述する。ユーザ[1]107で生成される乱数鍵102と、ユーザ[2]115で生成される乱数鍵102とは同一である。つまり、この乱数鍵102は、ユーザ[1]107とユーザ[2]115との間で量子暗号通信網120を介して共有化された暗号鍵である。
【0021】
次に、
図2を参照して、第1実施形態の暗号通信システムが、ユーザ[1]107とユーザ[2]115との間で実行される暗号通信に使用される乱数鍵102の窃取を防止する仕組みについて詳述する。
【0022】
ここでは、ユーザ[1]107上のアプリケーションプログラムがユーザ[2]115上のアプリケーションプログラムへデータを送信する場合を想定する。ユーザ[1]107上のアプリケーションプログラムが出力するデータおよびユーザ[2]115上のアプリケーションプログラムが入力するデータは、前述の平文データ101である。
【0023】
ユーザ[1]107上のアプリケーションプログラムが出力する平文データ101は、暗号モジュールによって暗号データ103へと暗号化され、インターネット網105を介してユーザ[2]114に転送される。この暗号データ103を受け取ったユーザ[2]114では、逆に、暗号モジュールが暗号データ103を平文データ101へ復号し、当該平文データ101がアプリケーションプログラムへ入力される。
【0024】
ユーザ[1]107での暗号モジュールによる暗号化と、ユーザ[2]115での暗号モジュールによる復号には、同一の乱数鍵102が使用される。ユーザ[1]107とユーザ[2]114とは、量子暗号通信網120を介して、この乱数鍵102の共有化を実行する。
【0025】
量子暗号通信網120内の各ノード(末端ノード[1]109、中継ノード[1]111、中継ノード[2]114、末端ノード[2]113)は、他のノードとの間で量子鍵配送を行うためのQKD装置(207、209、210、211、212、208)を有している。つまり、量子暗号通信網120内の2ノード間の暗号通信は安全性が確保されている。
【0026】
また、ユーザ[1]107と、ユーザ[1]107との間で暗号通信を行う末端ノード[1]109とは、量子鍵配送を行うためのQKD装置(異なるQKD装置)213、215を有している。従って、ユーザ[1]107と末端ノード[1]109との間の暗号通信も安全性が確保されている。
【0027】
しかし、末端ノード[1]109内において、異なるQKD装置215とQKD装置207との間でデータの受け渡しが行われているので、末端ノード[1]109内に侵入されると、当該異なるQKD装置215とQKD装置207との間でのデータの受け渡しの際にデータが窃取されるおそれがある。そのため、仮に、ユーザ[1]107が乱数鍵102そのものをユーザ[2]115へ向けて末端ノード[1]109経由で量子暗号通信網120に送出する場合、乱数鍵102が窃取されるおそれがある。この問題は、QKD装置208と、異なるQKD装置216との間でデータの受け渡しが行われる末端ノード[2]113においても同様に存在する。
【0028】
そこで、第1実施形態の通信システムにおいては、ユーザ[1]107は、たとえば乱数鍵102の生成に必須の2つのデータ(分散データ106)を生成し、これらを末端ノード[1]109と中継ノード[1]111とに振り分けて、ユーザ[2]115へ向けて量子暗号通信網120に送出する。または、ユーザ[1]107は、実際は単なる乱数である当該2つの分散データ106を、秘密分散法による分散処理によって得られたデータと見なして、これらを末端ノード[1]109と中継ノード[1]111とに振り分けて、ユーザ[2]115へ向けて量子暗号通信網120に送出する。この場合、分散/復元部108は秘密分散法による復元処理を実行して乱数鍵102を取得し、あるいは、復元処理により得られたデータを基に乱数鍵102を生成する。
【0029】
なお、たとえば中継ノード[1]111内のQKD装置209とQKD装置210との間のデータの受け渡しのような、量子暗号通信網120内での量子鍵配送のための各ノードにおけるQKD装置間の内部的なデータの受け渡しについては、別途、何らかの機密保護対策が施されていることを前提とする。ここでは、その方法については問わない。
【0030】
ユーザ[1]107は、ユーザ[2]115との間の量子暗号通信網120を介した乱数鍵102の共有化を開始する際、量子暗号通信網120内の2つのノードから2つの分散データ106が別々にユーザ[2]115へ渡るように、量子暗号通信網120上に経路(ルート)を形成する。なお、あるノードが2つの分散データ106のルート上に重複して介在していても構わない(中継ノード[1]111から中継ノード[1]114までの間)。
【0031】
一方、2つの分散データ106をユーザ[1]107から量子暗号通信網120を介して受け取ったユーザ[2]115は、当該2つの分散データ106を、秘密分散法による復元処理を実行して乱数鍵102を取得し、あるいは、復元処理により得られたデータを基に乱数鍵102を生成する。
【0032】
これにより、たとえば末端ノード[1]109に侵入され、異なるQKD装置215とQKD装置207との間で受け渡しされる分散データ106が窃取されたとしても、中継ノード[1]111側に送信した分散データ106がなければ乱数鍵102の生成は不可能であるので、乱数鍵102は防衛される。また、ユーザ[2]115側の中継ノード[2]114と末端ノード[2]113とにおいても同様である。
【0033】
つまり、第1実施形態の通信システムは、ユーザ(107,115)との間で乱数鍵102の生成に必須の情報を送受信する隣接するノード(109,113)に侵入されても暗号鍵が窃取されることを防ぐことができる。
【0034】
図3は、第1実施形態の暗号通信システムが実行する暗号通信方法の処理手順を表すシーケンスチャートである。
【0035】
ユーザ[1]107の暗号モジュールは、分散/復元部108へ乱数鍵102を要求する(301)。この要求を受けた分散/復元部108は、1つ目の乱数鍵[1](分散データ106)を生成して末端ノード[1]109に量子鍵配送する(302)。なお、ここでの量子鍵配送とは、異なるQKD装置213と異なるQKD装置215との間で共有化した量子鍵を使った暗号通信により分散データ106を送受信することである。なお、乱数鍵の生成は、量子鍵配送機能による量子鍵の生成であってもよい。
【0036】
末端ノード[1]109は、ユーザ[1]107の分散/復元部108から受信した乱数鍵[1]を、中継ノード[1]111に量子鍵配送する(303)。中継ノード[1]111は、乱数鍵[1]を中間ノード112(量子暗号通信網120上で隣接する中間ノード112)に量子鍵配送する(304)。乱数鍵[1]は、中間ノード112の区間を量子鍵配送されて、中継ノード[2]114を経て(305)、末端ノード[2]113まで量子鍵配送される(306)。末端ノード[2]113は、この乱数鍵[1]を、ユーザ[2]115の分散/復元部116に量子鍵配送する(307)。
【0037】
また、ユーザ[1]107の分散/復元部108は、2つ目の乱数鍵[2](分散データ106)を生成して(末端ノード[1]109ではなく)中継ノード[1]111に量子鍵配送する(308)。中継ノード[1]111は、乱数鍵[2]を中間ノード112に量子鍵配送する(309)。乱数鍵[1]は、中間ノード112の区間を量子鍵配送されて、(末端ノード[2]113までではなく)中継ノード[2]114まで量子鍵配送される(310)。中継ノード[2]114は、この乱数鍵[2]を、ユーザ[2]115の分散/復元部116に量子鍵配送する(311)。
【0038】
ユーザ[1]107の分散/復元部108は、2つの乱数鍵[1,2]を、たとえば秘密分散による分散処理によって得られたデータと見なし、当該2つの乱数鍵[1,2]を使って秘密分散による復元処理を実行して乱数鍵を取得し、または、復元処理で得られたデータを基に乱数鍵を生成する(312)。この乱数鍵は、ユーザ[1]107の暗号モジュールが平文データ101の暗号データ103への暗号化に使用する、前述の乱数鍵102である。
【0039】
一方、ユーザ[2]115の分散/復元部116も、2つの乱数鍵[1,2]を、秘密分散による復元処理を実行して乱数鍵を取得し、または、復元処理で得られたデータを基に乱数鍵を生成する(313)。この乱数鍵は、ユーザ[2]115の暗号モジュールが暗号データ103の平文データ101への復号に使用する、前述の乱数鍵102である。ユーザ[1]107側の乱数鍵102とユーザ[2]115側の乱数鍵102とは同一である。
【0040】
ユーザ[1]107の分散/復元部108は、生成した、または取得した乱数鍵102を暗号モジュールに配送し(314)、一方、ユーザ[2]115の分散/復元部108も、生成した乱数鍵102を暗号モジュールに配送する。(315)。ユーザ[1]107の暗号モジュールは、受け取った乱数鍵102を使って平文データ101を暗号化し、暗号データ103をインターネット網105経由でユーザ[2]115に送信する(316)。一方、ユーザ[2]115の暗号モジュールは、インターネット網105経由でユーザ[1]107から受信した暗号データ103を、分散/復元部108から受け取った乱数鍵102を使って平文データ101に復号する(317)。
【0041】
図4は、第1実施形態の暗号通信システムにおけるユーザ(107,115)の一機能構成例を示すブロック図である。
【0042】
ユーザは、アプリケーション部401、データ暗号化部402、データ送信部403、データ受信部404、乱数鍵分散部405、乱数鍵復元部406、乱数生成部407、量子鍵送信部408および量子鍵受信部409のデータ処理機能部と、記憶部410のストレージ機能部とを備える。データ処理機能部は、プログラムをCPU(Central Processing Unit)が実行することによって実現されるものであってもよいし、たとえば電気回路といったハードウェアとして実現されるものであってもよい。ストレージ機能部は、HDD(hard Disk Drive)やSSD(Solid State Drive)といった様々なストレージ装置を適用することができる。
【0043】
アプリケーション部401は、対向のユーザのアプリケーション部401との間で平文データ101を送受信するプログラムである。
【0044】
データ暗号化部402は、アプリケーション部401から受け取った平文データ101を、乱数鍵復元部406によって生成した暗号鍵を用いて暗号化して暗号データ103を生成し、または、データ受信部404によって受信された暗号データ103を復号して平文データ101を取得する。
【0045】
データ送信部403は、データ暗号化部402の暗号化によって生成された暗号データ103を対向のユーザに送信する。一方、データ受信部404は、暗号データ103を対向のユーザから受信する。
【0046】
乱数鍵分散部405は、乱数鍵102の生成に必須の情報である複数の分散データ106を生成する。なお、乱数鍵分散部405によって生成される分散データ106は、たとえば量子鍵など単なる乱数である場合もある。したがって、乱数鍵分散部405の役割は、乱数生成部407や量子鍵送信部408、量子鍵受信部409が担ってもよい。
【0047】
乱数鍵復元部406は、乱数鍵分散部405によって生成された、分散データ106を、秘密分散法による復元処理を実行する。乱数鍵復元部606は、この復元処理によって乱数鍵102を取得し、または、復元処理によって得られたデータを基に乱数鍵102を生成する。
【0048】
乱数生成部407は、末端ノード(109,113)や中継ノード(111,114)との間の量子鍵配送に使用する乱数(量子鍵)を生成する。なお、乱数(量子鍵)の生成は、量子鍵送信部408や量子鍵受信部409が実行するとしても良い。
【0049】
量子鍵送信部408は、分散データ106を、末端ノード(109)と中継ノード(111)とに送信する。一方、量子鍵受信部409は、この分散データ106を、末端ノード(113)と中継ノード(114)とから受信する。
【0050】
記憶部410は、平文データ101、乱数鍵102、暗号データ103、分散データ106、乱数(量子鍵)を含む各種データを記憶する。各種データは、記憶部410から適時消去される。
【0051】
図5は、第1実施形態の暗号通信システムの量子暗号通信網120内のノードが末端ノード(109,113)の役割を担う場合における一機能構成例を示すブロック図である。
【0052】
末端ノードは、乱数生成部501、分割鍵受け渡し部502、量子鍵送信部503および量子鍵受信部504のデータ処理機能部と、記憶部505のストレージ機能部とを備える。
【0053】
乱数生成部501は、量子鍵配送に使用する乱数(量子鍵)を生成する。末端ノードの場合、ユーザとの間の暗号通信のための乱数(量子鍵)と、中継ノードとの間の暗号通信のための量子鍵とが生成される。なお、乱数(量子鍵)の生成は、量子鍵送信部503や量子鍵受信部504が実行するとしても良い。
【0054】
分割鍵受け渡し部502は、ユーザとの間の暗号通信のためのQKD装置[異なるQKD装置](215,216)と、中継ノードとの間の暗号通信のためのQKD装置(207,208)との間における分散データ106の内部的な受け渡しを実行する。
【0055】
量子鍵送信部503は、ユーザまたは中継ノードへ分散データ106を送信する。ユーザへの分散データ106の送信は、QKD装置[異なるQKD装置](216)によって実行され、中継ノードへの分散データ106の送信は、QKD装置(207)によって実行される。
【0056】
量子鍵受信部504は、ユーザまたは中継ノードから分散データ106を受信する。ユーザからの分散データ106の受信は、QKD装置[異なるQKD装置](215)によって実行され、中継ノードからの分散データ106の受信は、QKD装置(208)によって実行される。
【0057】
記憶部505は、分散データ106、乱数(量子鍵)を含む各種データを記憶する。各種データは、記憶部505から適時消去される。
【0058】
図6は、第1実施形態の暗号通信システムの量子暗号通信網120内のノードが中継ノード(111,114)の役割を担う場合における一機能構成例を示すブロック図である。
【0059】
中継ノードは、乱数生成部601、分割鍵受け渡し部602、量子鍵送信部603および量子鍵受信部604のデータ処理機能部と、記憶部605のストレージ機能部とを備える。
【0060】
乱数生成部601は、量子鍵配送に使用する乱数(量子鍵)を生成する。中継ノードの場合、ユーザとの間の暗号通信のための乱数(量子鍵)と、末端ノードとの間の暗号通信のための乱数(量子鍵)と、中間ノードとの間の暗号通信のための乱数(量子鍵)とが生成される。なお、乱数(量子鍵)の生成は、量子鍵送信部603や量子鍵受信部604が実行するとしても良い。
【0061】
分割鍵受け渡し部602は、ユーザとの間の暗号通信のためのQKD装置[異なるQKD装置](219,220)と、末端ノードとの間の暗号通信のためのQKD装置(209,208)との間における分散データ106の内部的な受け渡しを実行する。また、分割鍵受け渡し部602は、末端ノードとの間の暗号通信のためのQKD装置(209,212)と、中間ノードとの間の暗号通信のためのQKD装置(210,211)との間における分散データ106の内部的な受け渡しを実行する。
図2では、簡略化のために、2つの中継ノード間に介在する中間ノードの表記を省略している。
【0062】
量子鍵送信部603は、ユーザ、末端ノードまたは中間ノードへ分散データ106を送信する。ユーザへの分散データ106の送信は、QKD装置[異なるQKD装置](220)によって実行され、末端ノードまたは中間ノードドへの分散データ106の送信は、QKD装置(212,210)によって実行される。
【0063】
量子鍵受信部604は、ユーザ、末端ノードまたは中間ノードから分散データ106を受信する。ユーザからの分散データ106の受信は、QKD装置[異なるQKD装置](219)によって実行され、末端ノードまたは中間ノードからの分散データ106の受信は、QKD装置(209,211)によって実行される。
【0064】
記憶部605は、分散データ106、乱数(量子鍵)を含む各種データを記憶する。各種データは、記憶部605から適時消去される。
【0065】
図7は、第1実施形態の暗号通信システムの量子暗号通信網120内のノードが中間ノード(112)の役割を担う場合における一機能構成例を示すブロック図である。
【0066】
中間ノードは、乱数生成部701、分割鍵受け渡し部702、量子鍵送信部703および量子鍵受信部704のデータ処理機能部と、記憶部705のストレージ機能部とを備える。
【0067】
乱数生成部701は、量子鍵配送に使用する乱数(量子鍵)を生成する。中間ノードの場合、中継ノードとの間の暗号通信のための乱数(量子鍵)と、他の中間ノードとの間の暗号通信のための乱数(量子鍵)とが生成される。なお、乱数(量子鍵)の生成は、量子鍵送信部703や量子鍵受信部704が実行するとしても良い。
【0068】
分割鍵受け渡し部702は、中継ノードまたは他の中間ノードとの間の暗号通信のための2つのQKD装置間における分散データ106の内部的な受け渡しを実行する。
【0069】
量子鍵送信部703は、中継ノードまたは他の中間ノードへ分散データ106を送信する。一方、量子鍵受信部704は、中継ノードまたは他の中間ノードから分散データ106を受信する。
【0070】
記憶部705は、分散データ106、乱数(量子鍵)を含む各種データを記憶する。各種データは、記憶部705から適時消去される。
【0071】
ここで、
図8および
図9を参照して、第1実施形態の暗号通信システムでのユーザ(107,115)による乱数鍵102の生成方法について説明する。
【0072】
図8は、第1実施形態の暗号通信システムにおけるユーザ(107,115)による乱数鍵102の生成方法の一例を示す第1図である。ここでは、分散数3、閾値3のランプ型秘密分散(この例は(閾値K=3,L=2,分散数N=3)のランプ型秘密分散)によって乱数鍵102を生成する場合を一例として挙げる。この場合、ユーザ107は、3つの分散データ106を各々異なるノード経由で量子暗号通信網120へ送出することが好ましい。また、ユーザ115は、この3つの分散データを、各々異なるノード経由で受信することが好ましい。
【0073】
このランプ型秘密分散の場合、3つの分散データ106の中の1つが盗聴されても復元を行うことができない。また、ここでは、乱数(ダミーデータ、つまり使い捨てる物理乱数)と平文(ここでは共通鍵、つまり乱数鍵102として利用する物理乱数)との割合が「1:2」であることを想定する。ランプ型とは、乱数と平文との割合を変更可能としたものであり、乱数と平文との割合が「(閾値-1):1」の場合、特に、完全秘密分散と称される。
【0074】
ユーザ[1]107に、まず、ある物理乱数があったと仮定する。そして、ユーザ[1]107は、その物理乱数を元データとして考えて、閾値3のランプ型秘密分散による分散処理を実施したと仮定する。そして、ユーザ[1]107は、任意に生成した乱数(乱数鍵[1],乱数鍵[2],乱数鍵[3])を、この分散で得られたものであると見なす。つまり、ユーザ[1]107は、実際には、ここでは秘密分散による分散データ106の生成を実施していない。したがって、分散データ106は、量子鍵配送機能によって生成された量子鍵を流用したものとすることも可能で、物理乱数生成の効率がよくなる。このように本発明は、単純な秘密分散を利用したデータ転送にはない特徴を有する。なお、ここで任意に生成した乱数(乱数鍵[1],乱数鍵[2],乱数鍵[3])を秘密分散法による分散処理して分散データ106を生成するものとしても良いが、しかし、この場合、ユーザ[1]107では、量子鍵配送機能によって生成された量子鍵(物理乱数)とは別に、元データとなるための物理乱数も余計に生成しなくてはならず、物理乱数生成の効率が悪くなる。
【0075】
閾値3のランプ型秘密分散の分散処理について、より詳しく説明すると、まず、元データを閾値の数に振り分ける。たとえば、元データが「1~15」であるとすると、「1,4,7,10,13」と、「2,5,8,11,14」と、「3,6,9,12,15」とに振り分ける。
図8では、振り分け後の各グループを行で表している。
【0076】
続いて、3つの分散データを生成するにあたり、分散(2)については2行目を1列分ずらし、分散(3)については3行目を1列分ずらした上で、分散(1)~分散(3)のそれぞれについて、たとえば排他的論理和による畳み込みを実行する。なお、この畳み込みは、排他的論理和に限らず、多項式による計算であってもよいし、加算や減算などであってもよい。
【0077】
ユーザ[1]107は、乱数を生成すると、この乱数を、以上の手順(閾値3のランプ型秘密分散による分散処理)で得られた分散データであるものと見なす。つまり、ユーザ[1]107は複数の乱数列(乱数鍵[1],乱数鍵[2],乱数鍵[3])を生成し、それぞれの乱数列を分散データであるものと見なす。ユーザ[1]107は、この乱数(分散データ106)を乱数列毎に別ルートに振り分けてユーザ[2]115に転送する。
【0078】
図9は、第1実施形態の暗号通信システムにおけるユーザ[1]107による乱数鍵102の生成方法の一例を示す第2図である。
【0079】
ユーザ[1]107は、3つの分散データ106(実際には、単なる乱数)を使って、分散数3、閾値3のランプ型秘密分散(この例は(閾値K=3,L=2,分散数N=3)のランプ型秘密分散)による復元処理を実行する(
図9の「計算」)。この復元によって、前述の、仮定上の物理乱数の元データ「1~15」が得られる。
【0080】
なお、秘密分散法による分散処理を実施せずに、このように復元処理を実施すると一部の分散データの一部レイヤ(行)のデータ(元データ)は、不整合(すべての分散データを元データに復元した場合、いくつかの分散データで元データが一致しない)を起こす。不整合を起こさないためには、一部の分散データに別の乱数(x1~x5)が排他的論理和されていると見なせば良い。これはユーザ[1]107とユーザ[2]115との間で事前共有されていたものと考えれば良い。なお、ユーザ[1]107とユーザ[2]115との間でどの分散データから元データを生成するのかを事前、または動的に決定すれば、少なくともユーザ[1]107とユーザ[2]115とで生成する元データは一致するので、この不整合は問題にならない。なお、一部不整合はあるものの、物理乱数(乱数鍵[1],乱数鍵[2],乱数鍵[3])を分散データと見なして、秘密分散法による復元処理を実施しているので、安全性は十分に確保される。
【0081】
ここでは、乱数と平文との割合が「1:2」であることを想定しているので、ユーザ[1]107は、復元された元データ「1~15」の中から、たとえば、「1,4,7,10,13」(あらかじめ定められた1行分)をダミーデータ(使い捨てる物理乱数)として取り除き、「2,3,5,6,8,9,11,12,14,15」(あらかじめ定められた2行分)を抜き出すことにより、乱数鍵102を生成する。
【0082】
完全秘密分散の場合には、乱数と平文との割合が「閾値-1:1」(「2:1」)であるので、ユーザ[1]107は、たとえば、「1,2,4,5,7,8,10,11,13、14」(あらかじめ定められた2行分)をダミーデータ(使い捨てる物理乱数)として取り除き、「3,6,9,12,15」(あらかじめ定められた1行分)を抜き出すことにより、乱数鍵102を生成する。
【0083】
一方、ユーザ[1]107から分散データ106を受け取ったユーザ[2]115においても、ユーザ[1]107と同じ計算を行って、乱数鍵102を生成する。ユーザ[1]107で生成される乱数鍵102と、ユーザ[2]115で生成される乱数鍵102とは同一である。換言すれば、この乱数鍵102は、ユーザ[1]107とユーザ[2]115との間で共有化された乱数鍵102である。
【0084】
図10は、ユーザ[1]107における平文データ101の暗号化の一例を示す図である。
【0085】
ユーザ[1]107は、
・乱数鍵102 XOR 平文データ101
を計算することで、暗号データ103を得る。
【0086】
このように、第1実施形態の暗号通信システムは、ランプ型秘密分散法で分散したものと見なした複数の分散データ106(実際は、単なる乱数)を配送することで、不正な盗聴者が、ユーザとの間で分散データ106を送受信するノードの1つに侵入し、分散データ106の一部を窃取したとしても、乱数鍵102の情報は漏洩しない。したがって、ユーザ[1]107とユーザ[2]115とがインターネット網105で通信する暗号データ103の一部ですら復号化することはできない。
【0087】
以上のように、第1実施形態の暗号通信システムにおいては、ユーザ間において、秘密分散法による復元処理を前提として、乱数鍵102の生成に必須の複数の分散データ106を複数のノードへ振り分けて量子暗号通信網120へ送出し、かつ、当該複数の分散データ106を量子暗号通信網120の複数のノードから受信して乱数鍵102(共通鍵)を共有することにより、不正な盗聴者により、ユーザとの間で分散データ106を送受信する1つノードに侵入されて、乱数鍵102の生成に必須の複数の分散データ106の一部を窃取されたとしても、不正な盗聴者は、乱数鍵102を復号することはできず、ユーザの通信の安全性を保つことができる。
【0088】
ところで、以上の説明では、ある元データの存在を仮定して、分散数3、閾値3のランプ型秘密分散による復元を実行し、乱数と平文との割合が「1:2」であるならば、復元によって得られるデータの中から(3行分中の)1行分を乱数(ダミーデータ)として取り除き、2行分のデータを乱数鍵102として使用した。ここで、情報理論的安全性をあきらめれば、復元によって得たデータのすべてを平文(乱数鍵102)として使用することもできるし、あるいは、1行分のすべてではなく、その行の一部のみを乱数とすることもできる。この場合においても、情報理論的安全性は確保できないものの、元データを得るための演算子の組み合わせは膨大であり、ユーザの暗号通信の安全性は十分に確保できる。そして、この場合には、乱数の消費量を大幅に削減することができる。したがって、転送レートもそれに伴い向上する。
【0089】
閾値2とした場合、情報理論的安全性を確保するためには、乱数と平文との割合は「1:1」とするしかないが、前述のように、情報理論的安全性をあきらめれば、復元によって得たデータのすべてを平文として使用することもできるし、あるいは、(2行分中の)1行分のすべてではなく、その行の一部のみを乱数とすることもできる。この場合においても、情報理論的安全性は確保できないものの、元データを得るための演算子の組み合わせは膨大であり、ユーザの暗号通信の安全性は十分に確保できる。よって、乱数の消費量を大幅に削減することができる。なお、ここでは説明を簡単にするために、
図8、および
図9の秘密分散方式で説明したが、利用できる秘密分散方式はこれに限られるものではなく、例えば他の排他的論理和により秘密分散方式や多項式による秘密分散方式なども利用可能である。
【0090】
(第2実施形態)
次に、第2実施形態について説明する。
【0091】
第1実施形態の暗号通信システムでは、暗号通信を実行する2ユーザの一方が、複数の乱数を分散データ106として生成し、それらを秘密分散法により分散し生成したデータとみなして、秘密分散法による復元処理を実行し、乱数鍵102を取得する。また、2ユーザの一方は、複数の分散データ106を複数のノードに振り分けて2ユーザの他方へ向けて量子暗号通信網120へ送出する。一方、2ユーザの他方は、複数のノードから複数の分散データ106を受信して、秘密分散法による復元処理を実行し、乱数鍵102を取得する。
【0092】
これに対して、第2実施形態の暗号通信システムでは、暗号通信を実行する2ユーザの一方が、複数の乱数を分散データ106として生成した後、それらを秘密分散法により分散し生成したデータとみなして、秘密分散法による復元処理を実行するのではなく、それらを排他的論理和などで重ね合わせて乱数鍵102を生成する。一方、2ユーザの他方においても、量子暗号通信網120の複数のノードから受信する複数の分散データ106を排他的論理和などで重ね合わせて乱数鍵102を生成する。なお、重ね合わせは、排他的論理和の代わりに、または、排他的論理和と共に、多数存在する別の手法、たとえば加算や減算を使用してもよい。
【0093】
この場合においても、第1実施形態の暗号通信システムと比較して、通信の冗長度(分散数を閾値より大きくすること)はないものの、ユーザ間において、排他的論理和などの重ね合わせを前提として、乱数鍵102の生成に必須の複数の分散データ106を複数のノードに振り分けて量子暗号通信網120へ送出し、かつ、当該複数の分散データ106を量子暗号通信網120の複数のノードから受信して乱数鍵102(共通鍵)を共有することにより、不正な盗聴者により、ユーザとの間で分散データ106を送受信する1つノードに侵入されて、乱数鍵102の生成に必須の複数の分散データ106の一部を窃取されたとしても、不正な盗聴者は、乱数鍵102を復号することはできず、ユーザの通信の安全性を保つことができる。
【0094】
図11は、第2実施形態の暗号通信システムにおける乱数鍵102の生成方法および平文データ101の暗号化の一例を示す図である。
【0095】
ここでは、生成した2つの乱数鍵(分散データ106)を、それぞれ乱数鍵[1]、乱数鍵[2]とする。送信側のユーザ(ユーザ[1]107)において、
・乱数鍵[1] XOR 乱数鍵[2]
を計算することで、乱数鍵102を得る。
【0096】
また、ユーザ[1]A11は、
・乱数鍵102 XOR 平文データ101
を計算することで、暗号データ103を得る。
【0097】
なお、受信側のユーザ(ユーザ[2]115)においては、
乱数鍵[1] XOR 乱数鍵[2]
を計算することで、乱数鍵102を得る。
【0098】
そして、ユーザ[2]115は、
・乱数鍵102 XOR 暗号データ103
を計算することで、平文データ101を得る。
【0099】
このように、第2実施形態の暗号通信システムは、複数の分散データ106のバーナム暗号の重ね合わせで乱数鍵102を生成しているため、不正な盗聴者が、ユーザとの間で分散データ106を送受信する1つノードに侵入し、分散データ106の一部を窃取したとしても、2ユーザがインターネット網105で通信する暗号データ103の一部ですら復号化することはできない。
【0100】
以上のように、第2実施形態の暗号通信システムにおいても、ユーザ間において、排他的論理和などの重ね合わせを前提として、乱数鍵102の生成に必須の複数の分散データ106を複数のノードに振り分けて量子暗号通信網120へ送出し、かつ、当該複数の分散データ106を量子暗号通信網120の複数のノードから受信して乱数鍵102(共通鍵)を共有することにより、不正な盗聴者により、ユーザとの間で分散データ106を送受信する1つノードに侵入されて、乱数鍵102の生成に必須の複数の分散データ106の一部を窃取されたとしても、不正な盗聴者は、乱数鍵102を復号することはできず、ユーザの通信の安全性を保つことができる。
【0101】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0102】
101…平文データ、102…乱数鍵、103…暗号データ、105…インターネット網、106…分散データ、107,115…ユーザ(ユーザの通信機器)、109,113…末端ノード、112…中間ノード、120…量子暗号通信網、213~220…QKD装置(異なるQKD装置)、207~212…QKD装置、401…アプリケーション部、402…データ暗号化部、403…データ送信部、404…データ受信部、405…乱数鍵分散部、406…乱数鍵復元部、407…乱数生成部、408…量子鍵送信部、409…量子鍵受信部、410…記憶部、501…乱数生成部、502…分散データ受け渡し部、503…量子鍵送信部、504…量子鍵受信部、505…記憶部、601…乱数生成部、602…分散データ受け渡し部、603…量子鍵送信部、604…量子鍵受信部、605…記憶部、606…乱数鍵復元部、701…乱数生成部、702…分散データ受け渡し部、703…量子鍵送信部、704…量子鍵受信部、705…記憶部。