JP2017139728A - 通信装置、暗号通信システム、暗号通信方法およびプログラム - Google Patents

通信装置、暗号通信システム、暗号通信方法およびプログラム Download PDF

Info

Publication number
JP2017139728A
JP2017139728A JP2016179874A JP2016179874A JP2017139728A JP 2017139728 A JP2017139728 A JP 2017139728A JP 2016179874 A JP2016179874 A JP 2016179874A JP 2016179874 A JP2016179874 A JP 2016179874A JP 2017139728 A JP2017139728 A JP 2017139728A
Authority
JP
Japan
Prior art keywords
data
communication
unit
dummy
encryption
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
JP2016179874A
Other languages
English (en)
Inventor
佳道 谷澤
Yoshimichi Tanizawa
佳道 谷澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to US15/266,628 priority Critical patent/US20170222803A1/en
Publication of JP2017139728A publication Critical patent/JP2017139728A/ja
Abandoned legal-status Critical Current

Links

Images

Abstract

【課題】量子暗号技術による暗号データ通信に対する効果的な通信の隠蔽機能を実現することができる通信装置、暗号通信システム、暗号通信方法およびプログラムを提供する。【解決手段】実施形態の通信装置は、他の通信装置と、量子鍵配送により暗号鍵を共有する通信装置であって、通信手段と、暗号化手段と、第1確認手段と、通信制御手段と、を備える。通信手段は、データの通信を行う。暗号化手段は、データを暗号鍵により暗号化する。第1確認手段は、暗号鍵の蓄積量を確認する。通信制御手段は、通信手段を介して、暗号化手段で暗号化された正規のデータを送信すると共に、第1確認手段の確認結果に基づいて、正規のデータとは異なるダミーデータの送信を制御する。【選択図】図3

Description

本発明の実施形態は、通信装置、暗号通信システム、暗号通信方法およびプログラムに関する。
量子鍵配送システムは、送信ノードと、受信ノードと、それを接続する光ファイバリンクとを含んで構成される。送信ノードは、光ファイバの通信路である光ファイバリンク(量子通信路)を介して、単一光子を連続的に受信ノードに送信する。その後、送信ノードと受信ノードとが相互に制御情報を交換することによって、送信ノードと受信ノードとの間で安全に暗号鍵を共有する。この技術は、一般に量子鍵配送(QKD:Quantum Key Distribution)と呼ばれる技術により実現される。
また、量子鍵配送では、暗号鍵を共有するために利用される光子は、観測されることで物理的な状態が変化するという量子力学の基本原理の一つである不確定性原理を有する。この原理により、送信ノードが送信した暗号鍵の情報を含む光子を量子通信路上で盗聴者が観測すると、光子の物理的な状態が変化し、光子を受け取った受信ノードは、盗聴者に光子を観測されたことを検出することができる。この結果、送信ノードで得られた光子列、および受信ノードで検出された光子列を基にして、送信ノードと受信ノードとの相互間で制御情報を交換することにより、最終的に安全な暗号鍵が得られる。
2つのノード(例えば、上述の送信ノードおよび受信ノード)に接続された、またはそれぞれのノードが含む各アプリケーションは、2つのノードで共有された上述の暗号鍵を使用して暗号化および復号化を行い、ワンタイムパッドと呼ばれる暗号通信方式を利用して暗号データ通信を行う。ワンタイムパッドとは、データ1バイトを暗号鍵1バイトで暗号化して送信し、受信時には同じ1バイトの暗号鍵を利用して復号化し、一度利用した暗号鍵は破棄する暗号通信方式である。このワンタイムパッドによる暗号データ通信では、盗聴者によっても解読できないことが情報理論により保証されている。また、Universalクラスのハッシュ関数を用いることによって、データ認証機能も提供することが可能である。このように、量子鍵配送により共有された暗号鍵を用いて暗号データ通信を行う技術を量子暗号技術という。
ここで、一般の暗号データ通信を行う装置間において、実際のデータの通信だけではなく、ダミーデータの通信を行うことによって、通信内容だけではなく、通信データ量を隠蔽する(わかりにくくする)技術が提案されている。
しかしながら、上述の技術では、ダミーデータを送信するタイミングの決定方法、データ受信側においてダミーデータと実際のデータとを識別する方法、および量子暗号通信システムへの適用方法については明らかにされていない。
特開2004−260508号公報
本発明は、上記に鑑みてなされたものであって、量子暗号技術による暗号データ通信に対する効果的な通信の隠蔽機能を実現することができる通信装置、暗号通信システム、暗号通信方法およびプログラムを提供することを目的とする。
実施形態の通信装置は、他の通信装置と、量子鍵配送により暗号鍵を共有する通信装置であって、通信手段と、暗号化手段と、第1確認手段と、通信制御手段と、を備える。通信手段は、データの通信を行う。暗号化手段は、データを暗号鍵により暗号化する。第1確認手段は、暗号鍵の蓄積量を確認する。通信制御手段は、通信手段を介して、暗号化手段で暗号化された正規のデータを送信すると共に、第1確認手段の確認結果に基づいて、正規のデータとは異なるダミーデータの送信を制御する。
図1は、量子暗号通信システムの全体構成の一例を示す図である。 図2は、ノードのハードウェア構成の一例を示す図である。 図3は、ノードの機能ブロックの構成の一例を示す図である。 図4は、実際のデータを通信する動作を説明する図である。 図5は、ダミーデータを通信する動作を説明する図である。 図6は、ダミーデータを通信する動作を説明する図である。 図7は、ダミーデータの通信量を決定するために用いるテーブルである。 図8は、第1の実施形態における通信するフレームの構成を示す図である。 図9は、第1の実施形態の暗号データ通信の動作を示すシーケンス図である。 図10は、第2の実施形態のエンコード方式について説明する図である。 図11は、第2の実施形態の量子暗号通信の動作を示すシーケンス図である。
以下に、図面を参照しながら、本発明の実施形態に係る通信装置、暗号通信システム、暗号通信方法およびプログラムを詳細に説明する。ただし、図面は模式的なものであるため、具体的な構成は以下の説明を参酌して判断すべきものである。
(第1の実施形態)
図1は、量子暗号通信システムの全体構成の一例を示す図である。図1を参照しながら、量子暗号通信システム100の構成について説明する。
図1に示すように、量子暗号通信システム100(暗号通信システム)は、ノード1(通信装置)と、ノード2(通信装置)と、光ファイバリンク3と、通信ケーブル4と、を含んで構成されている。
ノード1は、レーザ等により発生した、暗号鍵を生成する基となる単一光子から構成される光子列を、光ファイバリンク3を介して、ノード2へ送信する送信機である。ノード1は、送信した光子列を基に、後述する鍵蒸留処理(シフティング処理、誤り訂正処理および秘匿性増強処理)等を実行して、暗号鍵を生成する。また、鍵蒸留処理の際、ノード1は、ノード2との間で、通信ケーブル4を介して制御データ(単一光子ではなく一般のデジタルデータであり、以下、「鍵蒸留処理データ」と称する場合がある)の交換を行う。ここで、鍵蒸留処理データの他、後述するようにアプリケーション(後述の図3に示すアプリケーション部107、207)が通信するデータ(以下、「実際のデータ」と称する場合がある)(正規のデータ)、およびダミーデータの通信経路となる通信ケーブル4を、「古典通信路」と称する場合がある。なお、鍵蒸留処理データは、通信ケーブル4ではなく、ノード1とノード2との間の光ファイバリンク3を介して転送されてもよく、または、これ以外の通信経路(例えば、一般のインターネット回線等)を用いて転送されてもよい。
ノード2は、暗号鍵を生成する基となる単一光子から構成される光子列を、光ファイバリンク3を介して、ノード1から受信する受信機である。ノード2は、受信した光子列を基に、後述する鍵蒸留処理(シフティング処理、誤り訂正処理および秘匿性増強処理)等を実行して、ノード1が生成した暗号鍵と同一の暗号鍵を生成する。また、鍵蒸留処理の際、ノード2は、ノード1との間で、通信ケーブル4を介して制御データ(鍵蒸留処理データ)の交換を行う。
光ファイバリンク3は、ノード1が出力した単一光子の送信路となる量子通信路として機能する光ファイバケーブルである。通信ケーブル4は、ノード1とノード2との間で、鍵蒸留処理データの他、後述するようにアプリケーションの実際のデータ、およびダミーデータを通信するために古典通信路として機能するケーブルである。
このようなノード1とノード2とを含む量子暗号通信システム100においては、ノード1が送信した光子列を光ファイバリンク3上で盗聴者が観測すると、光子の物理的状態が変化し、光子を受信したノード2は、盗聴者に光子を観測されたことを認識することができる。
図2は、ノードのハードウェア構成の一例を示す図である。図2を参照しながら、ノードのハードウェア構成について説明する。なお、以下では、ノード1を例にして説明をする。
図2に示すように、ノード1は、CPU(Central Processing Unit)301と、ROM(Read Only Memory)302と、RAM(Random Access Memory)303と、通信I/F304と、補助記憶装置305と、光学処理装置306と、を備えている。
CPU301は、ノード1全体の動作を制御する演算装置である。ROM302は、CPU301が各機能を制御するために実行するBIOS(Basic Input/Output System)またはファームウェア等のプログラムを記憶する不揮発性記憶装置である。RAM303は、CPU301のワークメモリ等として機能する揮発性記憶装置である。
通信I/F304は、古典通信路(通信ケーブル4等)を介してデータ通信を行うためのインターフェースである。通信I/F304は、例えば、10Base−T、100Base−TXもしくは1000Base−T等のEthernet(登録商標)に対応したインターフェースであってもよいし、光ファイバ用インターフェースであってもよい。
補助記憶装置305は、CPU301で実行される各種プログラム、ならびに暗号鍵の共有動作の過程で生成したデータおよび暗号鍵等を記憶して蓄積する不揮発性記憶装置である。補助記憶装置305は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリまたは光ディスク等の電気的、磁気的または光学的に記憶可能な記憶装置である。
光学処理装置306は、量子通信路を介して、光子列を送信または受信する光学装置である。ノード1の光学処理装置306は、例えば、乱数によって発生させたビット情報であるビット列(光子ビット列)を基に、ランダムに選択した基底により生成した基底情報に基づく偏光状態となるように生成した単一光子から構成される光子列を、量子通信路(図1に示す光ファイバリンク3)を介して、ノード2の光学処理装置306に送信する。すなわち、ノード1の光学処理装置306により発生された光子列の各光子は、「0」から「1」かの1ビットの情報を有する。ノード2の光学処理装置306は、量子通信路を介して、ノード1の光学処理装置306から光子列を受信し、受信した光子列を、ランダムに選択した基底により生成した基底情報に基づいて読み取ることによってビット情報である光子ビット列を得る。
上述のCPU301、ROM302、RAM303、通信I/F304、補助記憶装置305、および光学処理装置306は、アドレスバスおよびデータバス等のバス307によって互いに通信可能に接続されている。
図3は、ノードの機能ブロックの構成の一例を示す図である。図3を参照しながら、ノード1およびノード2の機能ブロックの構成について説明する。
図3に示すように、ノード1は、共有部101と、鍵蒸留部102と、鍵蓄積部103(蓄積手段)と、通信部104(通信手段)と、鍵監視部105(第1確認手段)と、通信監視部106(第2確認手段)と、アプリケーション部107と、ダミー生成部108(生成手段)と、データ処理部109(データ処理手段)と、暗号化部110(暗号化手段)と、通信制御部111(通信制御手段)と、復号化部112(復号化手段)と、を有する。なお、共有部101および鍵蒸留部102は、本発明の「暗号鍵共有手段」に相当する。共有部101および鍵蒸留部102をノード1以外の装置(鍵共有装置など)に備え、この装置から暗号鍵を取得するように構成してもよい。
共有部101は、例えば、乱数によって発生させたビット情報である光子ビット列を基に、ランダムに選択した基底により生成した基底情報に基づく偏光状態となるように生成した単一光子から構成される光子列を、量子通信路(図1に示す光ファイバリンク3)を介して、ノード2の共有部201に送信する機能部である。共有部101は、図2に示す光学処理装置306によって実現される。
鍵蒸留部102は、ノード2の鍵蒸留部202との間で、古典通信路を介して、鍵蒸留処理データの通信を行うことによって、光子ビット列から暗号鍵を生成する鍵蒸留処理(シフティング処理、誤り訂正処理および秘匿性増強処理)を実行する機能部である。鍵蒸留部102は、鍵蒸留部202との鍵蒸留処理の結果、同一の暗号鍵を共有する。
鍵蓄積部103は、鍵蒸留部102により生成された暗号鍵を蓄積(記憶)する機能部である。鍵蓄積部103は、図2に示す補助記憶装置305によって実現される。
通信部104は、古典通信路(図1に示す通信ケーブル4)を介して、ノード2とデータを通信する機能部である。通信部104は、図2に示す通信I/F304によって実現される。
鍵監視部105は、鍵蓄積部103に蓄積された暗号鍵の蓄積状況を監視する機能部である。具体的には、鍵監視部105は、鍵蓄積部103での暗号鍵の蓄積量、鍵蒸留部102による暗号鍵の共有速度、および鍵蓄積部103での暗号鍵の減少量等を監視する。鍵監視部105は、監視結果を、ダミー生成部108に送る。
通信監視部106は、通信部104を介して古典通信路上を通信する実際のデータの通信状況を監視する機能部である。具体的には、通信監視部106は、これから通信される実際のデータの通信タイミングおよび頻度、ならびに、実際のデータの過去の通信タイミング、履歴および頻度等を監視する。通信監視部106は、監視結果を、ダミー生成部108に送る。
アプリケーション部107は、実際のデータの通信を行うアプリケーションであって、暗号化の対象となる実際のデータを生成する機能部である。アプリケーション部107は、送信するために生成した実際のデータを、データ処理部109に送る。
ダミー生成部108は、鍵監視部105により確認された暗号鍵の蓄積状況、および通信監視部106により確認された実際のデータの通信状況に応じて、ダミーデータを生成する機能部である。ダミー生成部108は、生成したダミーデータを、データ処理部109に送る。
データ処理部109は、アプリケーション部107により生成された実際のデータ、およびダミー生成部108により生成されたダミーデータに対して、ヘッダの付加および除去のデータ処理を行う機能部である。ヘッダの付加および除去については、図7で後述する。
暗号化部110は、鍵蓄積部103に蓄積された暗号鍵を利用して、実際のデータおよびダミーデータに対して暗号化を行う機能部である。暗号化部110による暗号化は、一般的にワンタイムパッドによって行う。具体的な暗号化の動作については、後述する。
通信制御部111は、通信部104のデータ通信の制御を行う機能である。特に、通信制御部111は、通信部104を介した、暗号化された実際のデータの通信制御の他、暗号化されたダミーデータを送信する場合の送信タイミング、およびダミーデータの通信(送信)量を制御する。
復号化部112は、鍵蓄積部103に蓄積された暗号鍵を利用して、通信部104を介して受信した暗号データを復号化する機能部である。ここで、暗号データとは、暗号化されたデータを示し、暗号化された実際のデータ、および暗号化されたダミーデータの双方を含む。復号化部112による復号化は、一般的にワンタイムパッドによって行う。具体的な復号化の動作については、後述する。
上述の鍵蒸留部102、鍵監視部105、通信監視部106、アプリケーション部107、ダミー生成部108、データ処理部109、暗号化部110、通信制御部111、および復号化部112は、図2に示すCPU301が補助記憶装置305等に記憶されたプログラムをRAM303に読み出して実行することによって実現される。なお、鍵蒸留部102、鍵監視部105、通信監視部106、アプリケーション部107、ダミー生成部108、データ処理部109、暗号化部110、通信制御部111、および復号化部112のすべてがプログラムの実行により実現されることに限定されるものではなく、少なくともいずれかが、例えば、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)またはその他の集積回路等のハードウェア回路によって実現されるものとしてもよい。
なお、図3に示す共有部101、鍵蒸留部102、鍵蓄積部103、通信部104、鍵監視部105、通信監視部106、アプリケーション部107、ダミー生成部108、データ処理部109、暗号化部110、通信制御部111、および復号化部112は、機能を概念的に示したものであって、このような構成に限定されるものではない。例えば、図3に示すノード1で、独立した機能部として図示した複数の機能部を、1つの機能部として構成してもよい。一方、図3に示すノード1で、1つの機能部が有する機能を複数に分割し、複数の機能部として構成するものとしてもよい。
図3に示すように、ノード2は、共有部201と、鍵蒸留部202と、鍵蓄積部203(蓄積手段)と、通信部204(通信手段)と、鍵監視部205(第1確認手段)と、通信監視部206(第2確認手段)と、アプリケーション部207と、ダミー生成部208(生成手段)と、データ処理部209(データ処理手段)と、暗号化部210(暗号化手段)と、通信制御部211(通信制御手段)と、復号化部212(復号化手段)と、を有する。なお、共有部201および鍵蒸留部202は、本発明の「暗号鍵共有手段」に相当する。
共有部201は、量子通信路を介して、ノード1の共有部101から光子列を受信し、受信した光子列を、ランダムに選択した基底により生成した基底情報に基づいて読み取ることによってビット情報である光子ビット列を得る機能部である。共有部201は、図2に示す光学処理装置306によって実現される。
鍵蒸留部202は、ノード1の鍵蒸留部102との間で、古典通信路を介して、鍵蒸留処理データの通信を行うことによって、光子ビット列から暗号鍵を生成する鍵蒸留処理(シフティング処理、誤り訂正処理および秘匿性増強処理)を実行する機能部である。鍵蒸留部202は、鍵蒸留部102との鍵蒸留処理の結果、同一の暗号鍵を共有する。
鍵蓄積部203は、鍵蒸留部202により生成された暗号鍵を蓄積(記憶)する機能部である。鍵蓄積部203は、図2に示す補助記憶装置305によって実現される。
通信部204は、古典通信路(図1に示す通信ケーブル4)を介して、ノード1とデータを通信する機能部である。通信部204は、図2に示す通信I/F304によって実現される。
鍵監視部205は、鍵蓄積部203に蓄積された暗号鍵の蓄積状況を監視する機能部である。具体的には、鍵監視部205は、鍵蓄積部203での暗号鍵の蓄積量、鍵蒸留部202による暗号鍵の共有速度、および鍵蓄積部203での暗号鍵の減少量等を監視する。鍵監視部205は、監視結果を、ダミー生成部208に送る。
通信監視部206は、通信部204を介して古典通信路上を通信する実際のデータの通信状況を監視する機能部である。具体的には、通信監視部206は、これから通信される実際のデータの通信タイミングおよび頻度、ならびに、実際のデータの過去の通信タイミング、履歴および頻度等を監視する。通信監視部206は、監視結果を、ダミー生成部208に送る。
アプリケーション部207は、実際のデータの通信を行うアプリケーションであって、暗号化の対象となる実際のデータを生成する機能部である。アプリケーション部207は、送信するために生成した実際のデータを、データ処理部209に送る。
ダミー生成部208は、鍵監視部205により確認された暗号鍵の蓄積状況、および通信監視部206により確認された実際のデータの通信状況に応じて、ダミーデータを生成する機能部である。ダミー生成部208は、生成したダミーデータを、データ処理部209に送る。
データ処理部209は、アプリケーション部207により生成された実際のデータ、およびダミー生成部208により生成されたダミーデータに対して、ヘッダの付加および除去を行う機能部である。ヘッダの付加および除去については、図8で後述する。
暗号化部210は、鍵蓄積部203に蓄積された暗号鍵を利用して、実際のデータおよびダミーデータに対して暗号化を行う機能部である。暗号化部210による暗号化は、一般的にワンタイムパッドによって行う。具体的な暗号化の動作については、後述する。
通信制御部211は、通信部204のデータ通信の制御を行う機能である。特に、通信制御部211は、通信部204を介した、暗号化された実際のデータの通信制御の他、暗号化されたダミーデータを送信する場合の送信タイミングを制御する。
復号化部212は、鍵蓄積部203に蓄積された暗号鍵を利用して、通信部204を介して受信した暗号データを復号化する機能部である。復号化部212による復号化は、一般的にワンタイムパッドによって行う。具体的な復号化の動作については、後述する。
上述の鍵蒸留部202、鍵監視部205、通信監視部206、アプリケーション部207、ダミー生成部208、データ処理部209、暗号化部210、通信制御部211、および復号化部212は、図2に示すCPU301が補助記憶装置305等に記憶されたプログラムをRAM303に読み出して実行することによって実現される。なお、鍵蒸留部202、鍵監視部205、通信監視部206、アプリケーション部207、ダミー生成部208、データ処理部209、暗号化部210、通信制御部211、および復号化部212のすべてがプログラムの実行により実現されることに限定されるものではなく、少なくともいずれかが、例えば、ASIC、FPGAまたはその他の集積回路等のハードウェア回路によって実現されるものとしてもよい。
なお、図3に示す共有部201、鍵蒸留部202、鍵蓄積部203、通信部204、鍵監視部205、通信監視部206、アプリケーション部207、ダミー生成部208、データ処理部209、暗号化部210、通信制御部211、および復号化部212は、機能を概念的に示したものであって、このような構成に限定されるものではない。例えば、図3に示すノード2で、独立した機能部として図示した複数の機能部を、1つの機能部として構成してもよい。一方、図3に示すノード2で、1つの機能部が有する機能を複数に分割し、複数の機能部として構成するものとしてもよい。
また、図3に示すノード1、2の機能ブロック構成は、暗号データを互いに通信する場合を想定した構成であるが、これに限定されるものではなく、ノード1、2のうち一方が暗号データの送信機能のみを有し、他方が暗号データの受信機能のみを有するものとしてもよい。例えば、ノード1が、暗号データの送信機能のみを有する場合、暗号データを受信することがないので、復号化部112を含まなくてもよい。また、ノード2が、暗号データの受信機能のみを有する場合、暗号データを送信することがない(ダミーデータを生成する必要がない)ので、鍵監視部205、通信監視部206、ダミー生成部208、および暗号化部210を含まなくてもよい。
図4は、実際のデータを通信する動作を説明する図である。図5および図6は、ダミーデータを通信する動作を説明する図である。図4〜図6を参照しながら、暗号データを通信する動作の概要について説明する。
まず、図4を参照しながら、暗号データのうち、実際のデータを暗号化したデータを、ノード1からノード2へ送信する動作の例を説明する。
ノード1の共有部101は、量子通信路を介して、光子列をノード2の共有部201に送信し、鍵蒸留部102は、ノード2の鍵蒸留部202との間で、古典通信路を介して、鍵蒸留処理データ(量子鍵配送用制御データ)の通信を行うことによって、光子ビット列から暗号鍵を生成する。この結果、ノード1とノード2との間で共有された暗号鍵が、鍵蓄積部103に蓄積される。この共有部101および鍵蒸留部102による暗号鍵の共有動作(量子鍵配送)、および鍵蓄積部103への暗号鍵の蓄積動作は、繰り返し実行される。なお、この暗号鍵の共有動作および蓄積動作は、後述する図5および図6のダミーデータの通信動作においても、同様である。
次に、アプリケーション部107において通信イベントが発生したものとする。通信イベントは、例えば、アプリケーション部107により、外部(ここでは、ノード2)へ送信すべきデータ(実際のデータ)が生成されること、および、外部からデータを受信すること等に対応する。ここでは、アプリケーション部107において、外部へ送信すべきデータ(実際のデータ)が生成されるという通信イベントが発生したものとする。
アプリケーション部107により生成された実際のデータは、データ処理部109に送られ、データ処理部109によってデータ処理(一例として、実際のデータを示すヘッダの付加)が行われる。データ処理部109によりデータ処理されたデータは、暗号化部110によって、鍵蓄積部103に蓄積された暗号鍵を利用して暗号化される。鍵蓄積部103により暗号化された実際のデータの暗号データは、通信制御部111によって、通信部104および古典通信路を介して、ノード2へ送信される。
ノード2では、通信部204を介して受信された暗号データは、鍵蓄積部203により蓄積された暗号鍵により復号化され、復号化された実際のデータが、アプリケーション部207へ送られる。
次に、図5を参照しながら、暗号データのうち、ダミーデータを暗号化したデータを、ノード1からノード2へ送信する動作の例を説明する。
図4の例と同様に、共有部101および鍵蒸留部102による暗号鍵の共有動作(量子鍵配送)、および鍵蓄積部103への暗号鍵の蓄積動作は、繰り返し実行される。
次に、ダミー生成部108は、鍵監視部105により確認された暗号鍵の蓄積状況に応じて、異なる制御方式でダミーデータを生成する。このダミーデータを生成する制御方式については、後述する。
ダミー生成部108により生成されたダミーデータは、データ処理部109に送られ、データ処理部109によってデータ処理(一例として、ダミーデータを示すヘッダの付加)が行われる。データ処理部109によりデータ処理されたデータは、暗号化部110によって、鍵蓄積部103に蓄積された暗号鍵を利用して、データ全体またはヘッダ部のみが暗号化される。鍵蓄積部103により暗号化されたダミーデータの暗号データは、通信制御部111によって、通信部104および古典通信路を介して、ノード2へ送信される。なお、暗号化する対象はデータ全体またはヘッダ部のみに限定されず、少なくともヘッダ部を含む部分等を対象とするものとしてもよい。
ノード2では、通信部204を介して受信された暗号データは、鍵蓄積部203により蓄積された暗号鍵により少なくともヘッダ部が復号化され、復号化されたヘッダ部によりデータがダミーデータだと判断されると、このダミーデータは破棄される。
次に、図6を参照しながら、暗号データのうち、ダミーデータを暗号化したデータを、ノード1からノード2へ送信する動作のその他の例を説明する。
図6の例では、ダミー生成部108は、鍵監視部105により確認された暗号鍵の蓄積状況だけでなく、通信監視部106により確認された実際のデータの通信状況、に応じて、異なる制御方式でダミーデータを生成する。
なお、図3〜6に示すように、ノード1は、光子列をノード2へ送信する光子列の送信機能を有し、ノード2は、光子列の受信機能を有するが、古典通信路を介した暗号データの通信については、ノード1およびノード2は、それぞれ送信側にも受信側にもなり得る。
図7は、第1の実施形態においてダミーデータの通信量を決定するために用いるテーブルである。図7を参照しながら、ダミーデータの通信量を決定する動作の一例を説明する。なお、ここでは、ノード1を例にして説明する。
ダミー生成部108は、上述のように、鍵監視部105により確認された暗号鍵の蓄積状況、および通信監視部106により確認された実際のデータの通信状況に応じて、ダミーデータを生成する。具体的には、ダミー生成部108は、例えば、図7に示すように、鍵蓄積部103に蓄積された暗号鍵の蓄積量、および、通信部104の実際のデータの通信(送信)回数の多寡に応じて、ダミーデータの通信量を決定する。ここで、鍵蓄積部103に蓄積された暗号鍵の蓄積量の多寡については、例えば、蓄積量が所定量以上である場合、蓄積量は「多い」と判断し、所定値未満である場合、蓄積量は「少ない」と判断するものとすればよい。また、通信部104の実際のデータの通信(送信)回数の多寡については、例えば、直近の所定時間における通信回数が所定回数以上である場合、通信回数は「多い」と判断し、所定回数未満である場合、通信回数は「少ない」と判断するものとすればよい。なお、通信監視部106は、実際のデータの通信回数の多寡について判断するものとしたが、実際のデータの通信データ量の多寡について判断するものとしてもよい。
まず、図7において、実際のデータの通信回数が多く、かつ、暗号鍵の蓄積量が少ない場合について説明する。この場合、ダミー生成部108は、実際のデータの通信のために暗号鍵をほとんど使いきってしまい、鍵蓄積部103に暗号鍵がほとんど余っていないため、ダミーデータの通信に利用できる暗号鍵はないと判断する。このため、ダミー生成部108は、ダミーデータを生成しないものとする。すなわち、ダミーデータの通信量を0とする。
次に、実際のデータの通信回数が少なく、かつ、暗号鍵の蓄積量が多い場合について説明する。なお、鍵蓄積部103において暗号鍵が所定サイズのファイルで管理されている場合、鍵監視部105は、鍵蓄積部103に所定数以上の暗号鍵がある場合、蓄積量が「多い」と判断するものとすればよい。この場合、ダミー生成部108は、鍵蓄積部103に蓄積された暗号鍵が使用されずに余っている状態であると判断する。したがって、ダミー生成部108は、ダミーデータを多数回生成し、通信制御部111は、通信部104を介して、ダミーデータの通信を多数回行うものとすればよい。また、通信制御部111は、通信部104を介して、ダミーデータを送信する場合には、実際のデータの送信を行う準備がなされていないことを確認したうえで、ダミーデータの送信を行う。なお、このように、鍵蓄積部103に実際のデータの通信に使用しない暗号鍵がある場合、ダミー生成部108は、常時、ダミーデータを生成し、通信制御部111は、通信部104を介して、ダミーデータの通信を常時行うものとしてもよい。
なお、実際のデータの通信回数が少なく、かつ、暗号鍵の蓄積量が多い場合、ダミー生成部108は、ダミーデータを生成して準備しておき、通信制御部111は、鍵蒸留部102により暗号鍵が生成されたことを鍵監視部105により確認されたら、鍵蓄積部103に蓄積させずに、その暗号鍵をそのまま利用してダミーデータを、通信部104を介して送信するものとしてもよい。この場合、通信制御部111は、鍵蒸留部102により暗号鍵が生成されると、このときに、暗号鍵を用いて暗号化すべき実際のデータをアプリケーション部107が保持しているか否か、または、暗号鍵を用いて復号化すべき実際のデータが受信されているか否かを判断し、暗号化すべき、または復号化すべき実際のデータがある場合は、実際のデータに対する処理を行う。一方、暗号化すべき、または復号化すべき実際のデータがない場合、データ処理部109は、ダミーデータを生成し、通信制御部111は、暗号化部110により暗号化されたダミーデータを、通信部104を介して送信する。
次に、実際のデータの通信回数が少なく、かつ、暗号鍵の蓄積量が少ない場合、および、実際のデータの通信回数が多く、かつ、暗号鍵の蓄積量が多い場合について説明する。この場合、ダミー生成部108によるダミーデータの生成、および、通信制御部111によるダミーデータの通信量は、ダミーデータの通信による隠蔽機能の効果と、暗号鍵の減少に伴う実際のデータの通信への影響とのバランスを取りながら調整される。ここで、通信制御部111が、上述のバランスをとりながら、ダミーデータの通信(送信)量を決定する動作の一例について説明する。まず、量子暗号通信システム100に対する要求として、通信隠蔽率Rを定義する。通信隠蔽率Rは、実際のデータの通信量に対して、何倍の量のダミーデータを含む全体のデータの通信を行うかを示す割合を示す。すなわち、実際のデータの通信量に対して、ダミーデータを含む全体のデータの通信を行うことで通信量をR倍とする場合の通信隠蔽率がRとなる。通信隠蔽率Rが大きいほど、実際のデータに対するダミーデータの通信量が多くなるので、実際のデータの通信を隠蔽する効果が高くなると考えることができる。
ここで、暗号鍵の共有動作(量子鍵配送)による暗号鍵の生成速度をT[ビット/秒]であるとする。このとき、通信隠蔽率をRに維持するためには、実際のデータの通信量は、T/R[ビット/秒]まで可能となり、このとき、ダミーデータ通信量は、(T−T/R)[ビット/秒]とする必要がある。具体例として、例えば、通信隠蔽率Rを10に維持し、暗号鍵の生成速度を1[Mビット/秒]とする場合、実際のデータの通信量は、100[Kビット/秒]まで可能となり、ダミーデータの通信量は、900[Kビット/秒]とする必要がある。
鍵監視部105により鍵蓄積部103での暗号鍵の蓄積量が不足していることが確認された場合、または、通信監視部106により通信部104の実際のデータの通信量が増加していることが確認された場合は、要求する通信隠蔽率Rを減少させ、ダミーデータの通信量を減少させることで対応することができる。ただし、この場合、暗号データ通信を隠蔽する効果が低減する。一方、実際のデータの通信量に対し、鍵蓄積部103での暗号鍵の蓄積量、および、暗号鍵の生成速度Tが十分大きいことが鍵監視部105により確認された場合、または、通信監視部106により通信部104の実際のデータの通信量が減少していることが確認された場合は、通信隠蔽率Rを増加させる、すなわち、ダミーデータの通信量の割合を増加させることにより、暗号データ通信を隠蔽する効果を向上させることができる。
なお、通信隠蔽率Rを要求される値に維持するためには、通信制御部111により通信部104から送信されるダミーデータの通信量が制御されればよく、ダミー生成部108のダミーデータの生成動作は、必ずしもそれに連動させる必要はない。例えば、ダミー生成部108は、予めダミーデータを生成しておいて、鍵蓄積部103等に蓄積しておくものとし、必要の場合は適宜取り出すものとすればよい。
次に、ダミー生成部108により生成されるダミーデータのサイズについて説明する。
ダミー生成部108により生成され、通信制御部111により通信部104を介して1回に送信されるダミーデータのサイズは、実際のデータの通信内容、通信データ量、および送信タイミング等を隠蔽する目的から、1回に送信される実際のデータのサイズと一致していることが望ましい。実際には、実際のデータにサイズが常に一定とは限らないため、ダミー生成部108は、例えば、少なくとも、実際のデータのサイズの平均値、実際のデータのサイズの中央値、または、実際のデータのサイズのパターンのいずれかに一致するサイズのダミーデータを生成することが望ましい。
なお、上記では、実際のデータの通信回数に応じてダミーデータの送信を制御する様子を示したが、実際のデータの通信量に応じてダミーデータの送信を制御するようにしてもよい。また、上記では、実際データの通信回数と、暗号鍵の蓄積量の両方に応じてダミーデータの送信を制御する方法を示したが、暗号鍵の蓄積量のみに応じてダミーデータの送信を制御してもよいし、実際データの通信回数(または通信量)のみに応じてダミーデータの送信を制御してもよい。
図8は、第1の実施形態(ヘッダ方式)において送受信されるフレームの構成の一例を示す図である。図8を参照しながら、ヘッダ方式によりデータ処理したデータ(実際のデータおよびダミーデータ)を暗号化および復号化する動作の一例を説明する。
ヘッダ方式のデータ処理として、データ処理部109は、実際のデータおよびダミーデータが送信されるに際して、図8に示すように、共通フォーマットであるヘッダを付加してフレームの形式にする。図8では、ヘッダ方式によりデータ処理されて送受信されるフレームの例が示されている。図8に示すフレーム400は、ヘッダ部401と、データ部402とで構成される。ヘッダ部401は、データ(実際のデータまたはダミーデータ)に付加するヘッダに相当し、データ部402に含まれるデータが実際のデータかダミーデータかを示す1ビットのダミーフラグ(識別情報)と、データのサイズを表す情報であるフレームデータサイズと、を含む。データ部402は、実際のデータまたはダミーデータを含む。
実際のデータが送信される場合、データ処理部109は、例えば、ダミーフラグに「0」を、フレームデータサイズにフレームのデータ部に格納される実際のデータのサイズの情報を設定してヘッダ部を生成し、データ部としての実際のデータに、生成したヘッダ部を付加してフレームを生成する。次に、暗号化部110は、データ処理部109により生成されたフレーム全体を、鍵蓄積部103に蓄積された暗号鍵によって、一般的にはワンタイムパッドで暗号化する。そして、通信制御部111は、暗号化された実際のデータを含むフレームを、通信部104を介して、ノード2に送信する。
一方、ダミーデータが送信される場合、データ処理部109は、例えば、ダミーフラグに「1」を、フレームデータサイズにフレームのデータ部に格納されるダミーデータのサイズの情報を設定してヘッダ部を生成し、データ部としてのダミーデータに、生成したヘッダ部を付加してフレームを生成する。次に、暗号化部110は、データ処理部109により生成されたフレーム全体、または、ヘッダ部のみを、鍵蓄積部103に蓄積された暗号鍵によって、一般的にはワンタイムパッドで暗号化する。そして、通信制御部111は、少なくとも一部が暗号化された、ダミーデータを含むフレームを、通信部104を介して、ノード2に送信する。
なお、ダミーデータを含むフレームに対して暗号化する際に、フレームのヘッダ部のみを暗号化する場合、ダミーデータの送受信時にワンタイムパッドで消費される暗号鍵の量を削減することができる。ただし、この場合、ダミー生成部108により生成されるダミーデータそのものが、暗号鍵によって実際のデータを暗号化した暗号データと同程度の質を有する乱数ビット列として、用意されることが前提である。これは、乱数ビット列の質が、ダミーデータと、実際のデータを暗号鍵によって暗号化したものとで異なる場合、フレームを盗聴する盗聴者によって、実際のデータを含むフレームであるか、ダミーデータを含むフレームであるかを見破られるおそれがあるためである。
また、ダミーデータを含むフレームに対して暗号化する際に、フレームのヘッダ部だけでなく、フレーム全体を暗号化する場合、ダミーデータの送受信時に、実際のデータの送受信する場合と同程度に暗号鍵を消費することになる。ただし、この場合、データ部であるダミーデータ自体も暗号化されるため、ダミー生成部108は、ダミーデータを乱数ビット列として生成する必要はなく、例えば、すべてが「0」のような単純なパターンのビット列であってもよい。
上述のようにヘッダ方式によるデータ処理がなされたデータ(実際のデータおよびダミーデータ)について暗号化されたフレームを受信するノード(ここでは、ノード2)は、まず、復号化部212で、鍵蓄積部203に蓄積された暗号鍵により、暗号化されたフレームのヘッダ部に相当する部分を復号化する。
復号化されたヘッダ部のダミーフラグが「0」を示す場合、復号化部212は、フレームのデータ部は実際のデータであると判断し、暗号化されたデータ部についても暗号鍵により復号化する。そして、データ処理部209は、復号化されたフレームのうちヘッダ部を除去して、データ部のみ、すなわち、実際のデータを、アプリケーション部207へ送る。
復号化されたヘッダ部のダミーデータが「1」を示す場合、復号化部212は、フレームのデータ部はダミーデータであると判断し、暗号化されたダミーデータについても復号化した上で破棄する。なお、復号化部212は、ダミーデータについては復号化せずに、ダミーデータのサイズ分の暗号鍵を破棄するものとしてもよい。いずれにしても、データを暗号化する送信側のノードと、データを復号化する受信側のノードとで、同数の暗号鍵が利用および消費されるように制御される必要がある。
以上のように、ヘッダ方式によるデータ処理により、ノードは、実際のデータおよびダミーデータをそれぞれ送受信し、受信側のノードは、ヘッダ部のダミーフラグに基づいて、受信したフレームから実際のデータを取り出し、または、ダミーデータを破棄することができる。
なお、上述では、ダミーデータであるか否かを区別するために、ヘッダ部に1ビットのダミーフラグを用いる例を示したが、これに限定されるものではない。例えば、一般的な通信プロトコルの技術として、送受信されるデータに付加するヘッダ部に、アプリケーションのポート番号またはプロトコル番号(以下、「プロトコル番号」と総称する)等の情報を含むことで、プロトコル番号によって識別される複数のプロトコルの通信を同時に実現する手法がある。ここで、例えば、ダミーデータを送受信するための特別なプロトコル番号を設ける方法も可能である。この場合、送信側のノードは、ダミーデータを送信する際、ヘッダ部に含まれるプロトコル番号に、データ部がダミーデータであることを示す特別なプロトコル番号(以下、「ダミーデータプロトコル番号」という)を指定して送信する。そして、受信側のノードは、ヘッダ部を復号化し、プロトコル番号がダミーデータプロトコル番号であった場合は、ダミーデータを破棄し、その他のプロトコル番号であれば実際のデータであると判断して、その実際のデータをアプリケーションに送るといった実現方法も可能となる。この方法によれば、TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)、IP(Internet Protocol)、およびEthernet(登録商標)等に代表されるようなプロトコル番号またはポート番号によって複数の種類の通信を識別することが可能な標準的なフレームフォーマットを用い、ダミーデータの送受信を担うダミーデータ送受信用の上位プロトコル処理機能またはダミーデータ送受信アプリケーションをシステムに追加することにより、上述の動作が実現できる。
次に、通信制御部111によるダミーデータの送信タイミングについて説明する。
通信制御部111によってダミーデータが送信されるタイミングは、実際のデータが送信されるタイミングに基づいて、そのタイミングが隠蔽されるように選択されることが望ましい。例えば、上述のように、ダミー生成部108により生成されるダミーデータのサイズ、および、通信制御部111により通信されるダミーデータの通信量(ダミー生成部108によるダミーデータの生成量)が定まると、通信制御部111は、ダミーデータを、定められたサイズで送信できる時間間隔が決定できる。例えば、実際のデータが送信されるタイミングを基にして、周期的にダミーデータを送信するようにする方法が考えられる。ただし、実際のデータは、次にどのタイミングで送信されるかは正確には分からない。また、厳密な周期間隔でダミーデータの送信を行うと、その厳密な周期から外れたデータが、実際のデータであると認識されるおそれがある。そこで、通信制御部111は、周期的にダミーデータを送信する場合であっても、その周期な各時刻からランダムな時間だけ前後に変化させる等の対策を行うことが望ましい。これによって、実際のデータの送信タイミングを隠蔽する効果を向上させることができる。
図9は、第1の実施形態に係る量子暗号通信システムでの暗号データ通信の動作の一例を示すシーケンス図である。図9を参照しながら、本実施形態に係る量子暗号通信システム100における暗号データ通信の動作の流れを説明する。なお、図9では、ノード1からノード2へ暗号データを送信する動作を例にして説明する。
<ステップS31>
ノード1の鍵監視部105は、鍵蓄積部103に蓄積された暗号鍵の蓄積状況を確認する。またこのとき、ノード1の通信監視部106が、通信部104を介して古典通信路上を通信する実際のデータの通信状況を確認してもよい。鍵監視部105および通信監視部106は、それぞれ確認結果をダミー生成部108に送る。そして、ステップS32へ移行する。
<ステップS32>
ノード1のダミー生成部108は、鍵監視部105により確認された暗号鍵の蓄積状況、および通信監視部106により確認された実際のデータの通信状況に応じて、ダミーデータを生成する。ダミー生成部108により生成されるダミーデータの量は、例えば、図7に示すように、鍵蓄積部103に蓄積された暗号鍵の蓄積量、および、通信部104の実際のデータの通信(送信)回数の多寡に応じて決定される。ダミー生成部108は、生成したダミーデータをデータ処理部109に送る。
また、アプリケーション部107により送信されるべき実際のデータも、データ処理部109に送られる。そして、ステップS33へ移行する。
<ステップS33>
ノード1のデータ処理部109は、実際のデータおよびダミーデータが送信されるに際して、例えば、図8に示すように、共通フォーマットであるヘッダを付加してフレームの形式にする。実際のデータが送信される場合、データ処理部109は、例えば、ダミーフラグに「0」を、フレームデータサイズにフレームのデータ部に格納される実際のデータのサイズの情報を設定してヘッダ部を生成し、データ部としての実際のデータに、生成したヘッダ部を付加してフレームを生成する。一方、ダミーデータが送信される場合、データ処理部109は、例えば、ダミーフラグに「1」を、フレームデータサイズにフレームのデータ部に格納されるダミーデータのサイズの情報を設定してヘッダ部を生成し、データ部としてのダミーデータに、生成したヘッダ部を付加してフレームを生成する。データ処理部109は、生成したフレームを暗号化部110に送る。そして、ステップS34へ移行する。
<ステップS34>
ノード1の暗号化部110は、データ処理部109により実際のデータのフレームが生成された場合、フレーム全体を、鍵蓄積部103に蓄積された暗号鍵によって、一般的にはワンタイムパッドで暗号化する。また、暗号化部110は、データ処理部109によりダミーデータのフレームが生成された場合、フレーム全体、または、ヘッダ部のみを、鍵蓄積部103に蓄積された暗号鍵によって、一般的にはワンタイムパッドで暗号化する。暗号化部110は、暗号化したフレーム(暗号データ)を、通信制御部111に送る。そして、ステップS35へ移行する。
<ステップS35>
ノード1の通信制御部111は、通信部104および古典通信路を介して、実際のデータの暗号データを必要なタイミングで送信すると共に、ダミーデータの暗号データを特定のタイミングで送信する。例えば、上述のように、ダミー生成部108により生成されるダミーデータのサイズ、および、通信制御部111により通信されるダミーデータの通信量が定まると、通信制御部111は、ダミーデータを、定められたサイズで送信できる時間間隔が決定できる。そして、通信制御部111は、通信部104および古典通信路を介して、例えば、周期的な各時刻からランダムな時間分だけ遅延させながら周期的にダミーデータを送信する。そして、ステップS36へ移行する。
<ステップS36>
ノード2の通信制御部211は、古典通信路および通信部204を介して、ノード1からの暗号データを受信する。通信制御部211は、受信した暗号データを、復号化部212に送る。そして、ステップS37へ移行する。
<ステップS37>
ノード2の復号化部212は、鍵蓄積部203に蓄積された暗号鍵により、暗号化されたフレーム(暗号データ)のヘッダ部に相当する部分を復号化する。そして、ステップS38へ移行する。
<ステップS38>
復号化されたヘッダ部のダミーフラグが「0」を示す場合、復号化部212は、フレームのデータ部は実際のデータであると判断し(ステップS38:No)、暗号化されたデータ部についても暗号鍵により復号化し、復号化したフレームをデータ処理部209に送る。そして、ステップS39へ移行する。
一方、復号化されたヘッダ部のダミーデータが「1」を示す場合、復号化部212は、フレームのデータ部はダミーデータであると判断し(ステップS38:Yes)、ステップS40へ移行する。
<ステップS39>
ノード2のデータ処理部209は、復号化されたフレームのうちヘッダ部を除去して、データ部のみ、すなわち、実際のデータを、アプリケーション部207へ送る。
<ステップS40>
復号化部212は、フレームのデータ部はダミーデータであると判断した場合、ダミーデータについても復号化した上で破棄する。なお、復号化部212は、ダミーデータについては復号化せずに、ダミーデータのサイズ分の暗号鍵を破棄するものとしてもよい。ただし、データを暗号化する送信側のノードと、データを復号化する受信側のノードとで、同数の暗号鍵が利用および消費されるように制御する。
以上のようなステップS31〜S40が繰り返されることによって、実際のデータの暗号データ通信を隠蔽する暗号データ通信が実行される。
以上のように、鍵監視部105(205)により確認された暗号鍵の蓄積状況、および通信監視部106(206)により確認された古典通信路上の実際のデータの通信状況に基づいて、ダミーデータの通信量(ダミーデータの生成量)、ダミーデータのサイズ、および送信タイミング等を決定することにより、量子暗号技術による実際のデータの暗号データ通信に対する効果的な通信の隠蔽機能を実現することができる。
また、データ処理部109(209)によるデータ処理として、データ(実際のデータおよびダミーデータ)に実際のデータであるかダミーデータであるかを示すダミーフラグを含むヘッダ部を付加することによって、受信側のノードでは、受信した暗号データ(暗号化されたフレーム)が実際のデータを含むのか、ダミーデータを含むのかを把握ことができる。
(第2の実施形態)
第2の実施形態に係る量子暗号通信システム100について、第1の実施形態に係る量子暗号通信システム100と相違する点を中心に説明する。第1の実施形態では、データ処理部109(209)によるデータ処理として、データ(実際のデータおよびダミーデータ)に対してヘッダを付加する動作(ヘッダ方式)について説明した。本実施形態では、データ処理部109(209)によるデータ処理として、所定の方法によりデータをエンコードする動作(エンコード方式)について説明する。なお、本実施形態に係る量子暗号通信システム100の構成、ノードのハードウェア構成、ノードの機能ブロックの構成、および暗号鍵の共有動作は、第1の実施形態と同様である。
上述のように、本実施形態のノードの機能ブロックの構成は、図3に示すノード1、2の機能ブロックの構成と同様であるが、第1の実施形態と異なる動作を中心に説明する。
ノード1のデータ処理部109は、データ処理として、通信制御部111により実際のデータとダミーデータとが送信される場合に、実際のデータの通信とダミーデータの通信との切り替わりのタイミングを示す制御ビット列を付加した送信データを生成する。また、この際、データ処理部109は、実際のデータおよびダミーデータを、所定の方法によりエンコードする。データ処理部109のデータ処理としての制御ビット列の付加およびエンコードの動作については、後述する。
ノード2のデータ処理部209は、データ処理として、通信制御部211により実際のデータとダミーデータとが送信される場合に、実際のデータの通信とダミーデータの通信との切り替わりのタイミングを示す制御ビット列を付加した送信データを生成する。また、この際、データ処理部209は、実際のデータおよびダミーデータを、所定の方法によりエンコードする。データ処理部209のデータ処理としての制御ビット列の付加およびエンコードの動作については、後述する。
なお、ノード1、2のその他の機能部は、図3の第1の実施形態で説明した動作と同様の動作を行う。
図10は、第2の実施形態のエンコード方式について説明する図である。図10を参照しながら、エンコード方式によりデータ処理したデータ(実際のデータおよびダミーデータ)を暗号化および復号化する動作の一例を説明する。
データ処理部109は、まず、データ処理として、通信制御部111により実際のデータとダミーデータとが送信される場合に、実際のデータの通信とダミーデータの通信との切り替わりのタイミングを示す制御ビット列(制御データ)を配置して送信データを生成する。制御ビット列として、例えば、連続する10ビットの「1」であるものとする。データ処理部109は、例えば、図10に示すダミーデータをエンコードしたデータ503の直前に、実際のデータの送信を終了してダミーデータの送信を開始することを示す制御ビット列(制御データ)を配置する。または、データ処理部109は、例えば、図10に示す実際のデータをエンコードしたデータ501の直前に、ダミーデータの送信を終了して実際のデータの送信を開始することを示す制御ビット列(制御データ)を配置する。なお、図10に示すデータ502のように、例えば、直前に送信した実際のデータに続いて、実際のデータを送信する場合、制御ビット列(制御データ)は必要ないので、実際のデータに続いて送信データとして送信される場合もあり得る。これは、ダミーデータについても同様である。
ここで、例えば、送信する実際のデータに中に、上述の制御ビット列(制御データ)と同じ並びのビット列が出現すると、これを、制御ビット列だと判断され、後続する実際のデータがダミーデータとして取り扱われてしまうことが想定される。これを回避するために、データ処理部109は、データ処理として、実際のデータのビット列に、制御ビット列(ここでは、「1111111111」)が出現しないように、実際のデータを所定の方法によりエンコードする。
このようなエンコードの方法として、例えば、8b10bの方式が利用できる。8b10bでは、8ビットのデータを10ビットのデータに変換(エンコード)する。具体的には、データ処理部109は、まず、送信すべきデータを8ビット毎に区切り、それぞれの8ビットのデータ列を対応する10ビットのデータ列に変換(エンコード)する。制御ビット列は、変換後の10ビットのデータ列には存在しないビットパターンの10ビットを採用する。データ処理部109は、8ビットのデータを10ビットのデータに変換し、かつ、適切な箇所に制御ビット列を挿入する。そして、暗号化部110は、エンコードした実際のデータと、それに挿入した制御ビット列とを暗号化する。
受信側のノード2の復号化部212は、受信したデータを復号化し、データ処理部209は、復号化したデータに対して、10ビットのデータを8ビットのデータに変換(デコード)し、かつ、制御ビット列が含まれる場合にはそれを取り出す。
一方、ダミーデータの場合、ダミー生成部108によって、すべてが「0」のビット列のように、制御ビット列が出願しない既知のビット列を生成させる方法と、ダミー生成部108により生成された乱数ビット列に、制御ビット列が出現しないように、上述の実際のデータと同様にエンコードする方法とが、考えられる。ここで、ダミーデータとして既知のビット列を生成させる方法を用いた場合、暗号化部110は、ダミーデータに対して、暗号鍵を用いて(一般的には)ワンタイムパッドによって暗号化を行う必要がある。一方、ダミーデータとして乱数ビット列を用いてエンコードする場合、乱数ビット列の質が十分であれば、暗号化部110は、エンコードされたダミーデータについて、暗号化が不要である。
以上のように、データ処理部209は、デコード後のデータとして、ダミーデータまたは実際のデータを取り出すことができる。
図11は、第2の実施形態に係る量子暗号通信システムの量子暗号通信の動作の一例を示すシーケンス図である。図11を参照しながら、本実施形態に係る量子暗号通信システム100における暗号データ通信(量子暗号通信)の動作の流れを説明する。なお、図11では、ノード1からノード2へ暗号データを送信する動作を例にして説明する。
<ステップS51、S52>
ステップS51、S52の処理は、それぞれ、図9に示す第1の実施形態のS31、S32と同様である。そして、ステップS53へ移行する。
<ステップS53>
ノード1のデータ処理部109は、データ処理として、実際のデータのビット列に、制御ビット列が出現しないように、実際のデータを所定の方法(例えば、8b10b)によりエンコードする。また、データ処理部109は、データ処理として、ダミー生成部108により生成された乱数ビット列に、制御ビット列が出現しないように、上述の実際のデータと同様にエンコードする。なお、データ処理部109は、ダミー生成部108によりすべてが「0」のビット列のように、制御ビット列が出願しない既知のビット列が生成された場合は、特にエンコードをする必要がない。そして、ステップS54へ移行する。
<ステップS54>
データ処理部109は、データ処理として、通信制御部111により、エンコードされた実際のデータとダミーデータとが送信される場合に、実際のデータの通信とダミーデータの通信との切り替わりのタイミングを示す制御ビット列(制御データ)を付加(挿入)する。データ処理部109は、エンコードされた実際のデータおよびダミーデータに、制御ビットが挿入されたデータを暗号化部110に送る。そして、ステップS55へ移行する。
<ステップS55>
ノード1の暗号化部110は、データ処理部109によりエンコードされた実際のデータおよびダミーデータ、ならびに挿入された制御ビット列を、鍵蓄積部103に蓄積された暗号鍵によって、一般的にはワンタイムパッドで暗号化する。なお、ダミーデータとして乱数ビット列を用いてエンコードされた場合、暗号化部110は、乱数ビット列の質が十分であれば、エンコードされたダミーデータについて、暗号化が不要である。そして、ステップS56へ移行する。
<ステップS56>
ノード1の通信制御部111は、通信部104および古典通信路を介して、実際のデータの暗号データを必要なタイミングで送信されるようにし、ダミーデータの暗号データを特定のタイミングで送信されるようにする。例えば、上述のように、ダミー生成部108により生成されるダミーデータのサイズ、および、通信制御部111により通信されるダミーデータの通信量が定まると、通信制御部111は、ダミーデータを、定められたサイズで送信できる時間間隔が決定できる。ここで、通信制御部111は、周期的な各時刻からランダムな時間分だけ遅延させながら周期的にダミーデータが送信される動作となるように、ステップS54において、データ処理部109に対して、実際のデータの通信とダミーデータの通信との切り替わりのタイミングを示す制御ビット列(制御データ)を付加(挿入)させることによって、ダミーデータの暗号データについての特定のタイミングにおける送信が実現される。そして、ステップS57へ移行する。
<ステップS57>
ノード2の通信制御部211は、古典通信路および通信部204を介して、ノード1からの暗号データを受信する。通信制御部211は、受信した暗号データを、復号化部212に送る。そして、ステップS58へ移行する。
<ステップS58>
ノード2の復号化部212は、鍵蓄積部203に蓄積された暗号鍵により、暗号データを復号化し、復号化したデータをデータ処理部209に送る。そして、ステップS59へ移行する。
<ステップS59>
ノード2のデータ処理部209は、復号化されたデータに制御ビット列(制御データ)が存在するか否か確認する。制御データが確認された場合(ステップS59:Yes)、ステップS60へ移行し、確認されない場合(ステップS59:No)、ステップS61へ移行する。
<ステップS60>
データ処理部209は、実際のデータを受信する動作モードと、ダミーデータを受信する動作モードと、を切り替える。すなわち、データ処理部209は、現在の動作モードが、実際のデータを受信する動作モードである場合、ダミーデータを受信する動作モードに切り替える。一方、データ処理部209は、現在の動作モードが、ダミーデータを受信する動作モードである場合、実際のデータを受信する動作モードに切り替える。なお、データ処理部209は、一種類の制御データを受信することによって、これら2つの動作モードを切り替えるように制御してもよい。また、実際のデータを受信する動作モードに移行するための制御データと、ダミーデータを受信する動作モードに移行するための制御データとは、それぞれ異なる複数の制御データがあってもよい。また、これら2つの動作モード以外の動作モードがあってもよい。また、実際のデータを受信する動作モードにおける処理、およびダミーデータを受信する動作モードにおける処理は、それぞれステップS62およびS63で詳述する。
<ステップS61>
データ処理部209は、現在の動作モードが、実際のデータを受信する動作モードであるか、ダミーデータを受信する動作モードであるかを判定する。現在の動作モードが、実際のデータを受信する動作モードである場合(ステップS61:実際のデータ受信)、ステップS62へ移行し、ダミーデータを受信する動作モードである場合(ステップS61:ダミーデータ受信)、ステップS63へ移行する。
<ステップS62>
データ処理部209は、復号化されたデータは実際のデータであると判定し、そのデータをデコードしてアプリケーション部207へ送る。
<ステップS63>
データ処理部209は、復号化されたデータはダミーデータであると判定し、そのデータを破棄する。この場合、データ処理209は、デコードを行っても行わなくてもよい。
以上のように、鍵監視部105(205)により確認された暗号鍵の蓄積状況、および通信監視部106(206)により確認された古典通信路上の実際のデータの通信状況に基づいて、ダミーデータの通信量(ダミーデータの生成量)、ダミーデータのサイズ、および送信タイミング等を決定することにより、量子暗号技術による実際のデータの暗号データ通信に対する効果的な通信の隠蔽機能を実現することができる。
また、データ処理部109(209)によるデータ処理として、実際のデータとダミーデータとが送信される場合に、実際のデータの通信とダミーデータの通信との切り替わりのタイミングを示す制御ビット列(制御データ)を付加し、実際のデータおよびダミーデータに制御ビット列が出現しないように、それぞれ必要に応じてエンコードするものとしている。これによって、受信側のノードでは、復号化したデータに制御ビット列の有無を確認することによって、制御ビット列の後に続くデータが実際のデータであるのか、ダミーデータであるのかを把握することができる。
なお、上述の第1の実施形態および第2の実施形態において、実際のデータおよびダミーデータに対するデータ処理として、それぞれヘッダ方式およびエンコード方式を例として説明したが、これに限定されるものではなく、実際のデータとダミーデータとを判別することができる方式であれば、その他の方式によってデータ処理をするものとしてもよい。
なお、上述の各実施形態に係るノード(通信装置)で実行されるプログラムは、例えば、ROM302等に予め組み込まれて提供されるものとしてもよい。
また、上述の各実施形態に係るノードで実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
さらに、上述の各実施形態に係るノードで実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上述の各実施形態に係るノードで実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
また、上述の各実施形態に係るノードで実行されるプログラムは、コンピュータを上述したノードの各機能部として機能させ得る。このコンピュータは、CPU301がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
本発明の実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、および変更を行うことができる。これらの実施形態は、発明の範囲および要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1、2 ノード
3 光ファイバリンク
4 通信ケーブル
100 量子暗号通信システム
101 共有部
102 鍵蒸留部
103 鍵蓄積部
104 通信部
105 鍵監視部
106 通信監視部
107 アプリケーション部
108 ダミー生成部
109 データ処理部
110 暗号化部
111 通信制御部
112 復号化部
201 共有部
202 鍵蒸留部
203 鍵蓄積部
204 通信部
205 鍵監視部
206 通信監視部
207 アプリケーション部
208 ダミー生成部
209 データ処理部
210 暗号化部
211 通信制御部
212 復号化部
301 CPU
302 ROM
303 RAM
304 通信I/F
305 補助記憶装置
306 光学処理装置
307 バス
400 フレーム
401 ヘッダ部
402 データ部
501〜503 データ
R 通信隠蔽率

Claims (17)

  1. 他の通信装置と、量子鍵配送により共有する暗号鍵を用いて通信する通信装置であって、
    前記他の通信装置と、データの通信を行う通信手段と、
    前記データを前記暗号鍵により暗号化する暗号化手段と、
    前記暗号鍵の蓄積量を確認する第1確認手段と、
    前記通信手段を介して、前記暗号化手段で暗号化された正規のデータを送信すると共に、前記第1確認手段の確認結果に基づいて、正規のデータとは異なるダミーデータの送信を制御する通信制御手段と、
    を備えた通信装置。
  2. 前記通信制御手段は、前記ダミーデータの送信量、前記ダミーデータのデータサイズ、および、前記ダミーデータの送信タイミングの少なくともいずれか1つを制御する、
    請求項1に記載の通信装置。
  3. データが前記ダミーデータであるか否かを識別する識別情報を含むヘッダを、前記正規のデータおよび前記ダミーデータに付加するデータ処理手段と、
    前記通信手段により受信された暗号化されたデータを、前記暗号鍵により復号化する復号化手段と、
    を、さらに備え、
    前記暗号化手段は、前記正規のデータおよび該正規のデータに付加された前記ヘッダの全体を暗号化し、前記ダミーデータおよび該ダミーデータに付加された前記ヘッダのうち少なくとも該ヘッダを暗号化し、
    前記復号化手段は、暗号化されたデータのうち、少なくとも前記ヘッダに相当する部分を復号化して、該ヘッダがダミーデータであることを示す場合、該ヘッダが付加されたデータをダミーデータであるものとして破棄する請求項1に記載の通信装置。
  4. 前記ダミーデータを乱数列として生成する生成手段をさらに備え
    前記暗号化手段は、前記ダミーデータ、および該ダミーデータに付加された前記ヘッダのうち該ヘッダを暗号化する請求項3に記載の通信装置。
  5. 前記データ処理手段は、前記ダミーデータに付加する前記ヘッダにおいて、前記識別情報として、ダミーデータであることを示す特定のプロトコル番号または特定のポート番号を、フレームフォーマットにおけるプロトコル番号またはポート番号に設定する請求項3または4に記載の通信装置。
  6. 送信されるデータが前記正規のデータから前記ダミーデータに切り替わる際に、または、前記ダミーデータから前記正規のデータに切り替わる際に、切り替わることを示す制御データを挿入し、かつ、前記制御データと同じビット列が出現しないように前記正規のデータおよび前記ダミーデータのうち少なくとも前記正規のデータをエンコードするデータ処理手段と、
    前記通信手段により受信された暗号化されたデータを、前記暗号鍵により復号化する復号化手段と、
    を、さらに備え、
    前記暗号化手段は、前記制御データ、ならびに、前記正規のデータおよび前記ダミーデータのうち少なくとも前記正規のデータがエンコードされたデータを暗号化し、
    前記データ処理手段は、
    前記復号化手段により復号化されたデータが前記制御データである場合、前記正規のデータとして受信する動作モード、および前記ダミーデータとして受信する動作モードのうち、現在の動作モードと異なる動作モードに切り替え、
    前記復号化手段により復号化されたデータが前記制御データではなく、かつ、現在の動作モードが前記正規のデータとして受信する動作モードである場合、前記復号化手段により復号化されたデータをデコードし、
    前記復号化手段により復号化されたデータが前記制御データではなく、かつ、現在の動作モードが前記ダミーデータとして受信する動作モードである場合、前記復号化手段により復号化されたデータを破棄する請求項1に記載の通信装置。
  7. 前記制御データと同じビット列が出現しないように前記ダミーデータを生成する生成手段をさらに備え、
    前記データ処理手段は、前記正規のデータまたは前記ダミーデータのうち前記正規のデータをエンコードし、
    前記暗号化手段は、前記制御データ、前記ダミーデータ、および、エンコードされた前記正規のデータを暗号化する請求項6に記載の通信装置。
  8. 前記ダミーデータを乱数列として生成する生成手段をさらに備え、
    前記データ処理手段は、前記正規のデータおよび前記ダミーデータをエンコードし、
    前記暗号化手段は、エンコードされた前記正規のデータおよびエンコードされた前記ダミーデータのうちのエンコードされた前記正規のデータ、ならびに、前記制御データを暗号化する請求項6に記載の通信装置。
  9. 前記通信制御手段は、前記第1確認手段によって前記暗号鍵が生成されたことが検出された場合、かつ、前記通信手段により送信する前記正規のデータおよび受信したデータがない場合、前記通信手段を介して前記ダミーデータを送信する請求項1に記載の通信装置。
  10. 前記通信制御手段は、
    前記第1確認手段により確認される、前記暗号鍵の蓄積量の増加に従って、または、前記暗号鍵の生成量の増加に従って、前記ダミーデータの送信量を増加させ、
    前記第1確認手段により確認される、前記暗号鍵の蓄積量の減少に従って、または、前記暗号鍵の生成量の減少に従って、前記ダミーデータの送信量を減少させる請求項1に記載の通信装置。
  11. 前記通信手段を介した前記正規のデータの通信量を確認する第2確認手段をさらに備え、
    前記通信制御手段は、
    前記第2確認手段により確認される前記通信手段を介した前記正規のデータの通信量の増加に従って、前記ダミーデータの送信量を減少させ、
    前記第2確認手段により確認される前記通信手段を介した前記正規のデータの通信量の減少に従って、前記ダミーデータの送信量を増加させる請求項1に記載の通信装置。
  12. 前記通信制御手段は、所定の通信隠蔽率に維持されるように、前記暗号鍵の生成速度に応じた通信量で前記ダミーデータを送信する請求項1に記載の通信装置。
  13. 前記通信制御手段は、前記通信隠蔽率をRとし、前記暗号鍵の生成速度をTとした場合、(T−T/R)で算出される通信量で前記ダミーデータを送信する請求項12に記載の通信装置。
  14. 前記通信制御手段は、1回に送信される前記正規のデータのサイズ、および、前記ダミーデータの通信量に基づいて決定される周期において、該周期の各時刻からランダムな時間だけ前後に変化させたタイミングで前記ダミーデータを送信する請求項1に記載の通信装置。
  15. 複数の通信装置が、量子鍵配送により共有する暗号鍵を用いて通信する暗号通信システムであって、
    前記複数の通信装置のうち少なくともいずれか1つの通信装置は、
    他の通信装置と、データの通信を行う通信手段と、
    前記データを前記暗号鍵により暗号化する暗号化手段と、
    前記暗号鍵の蓄積量を確認する第1確認手段と、
    前記通信手段を介して、前記暗号化手段で暗号化された正規のデータを送信すると共に、前記第1確認手段の確認結果に基づいて、正規のデータとは異なるダミーデータの送信を制御する通信制御手段と、
    を備えた暗号通信システム。
  16. 他の通信装置と、量子鍵配送により共有する暗号鍵を用いて通信する通信装置の暗号通信方法であって、
    データを前記暗号鍵により暗号化する暗号化ステップと、
    前記暗号鍵の蓄積量を確認する第1確認ステップと、
    通信手段を介して、暗号化された正規のデータを送信すると共に、前記第1確認ステップの確認結果に基づいて、正規のデータとは異なるダミーデータの送信を制御する送信ステップと、
    を有する暗号通信方法。
  17. 他の通信装置と、量子鍵配送により共有する暗号鍵を用いて通信するコンピュータを、
    データを前記暗号鍵により暗号化する暗号化手段と、
    前記暗号鍵の蓄積量を確認する第1確認手段と、
    通信手段を介して、前記暗号化手段で暗号化された正規のデータを送信すると共に、前記第1確認手段の確認結果に基づいて、正規のデータとは異なるダミーデータの送信を制御する通信制御手段と、
    して機能させるためのプログラム。
JP2016179874A 2016-02-02 2016-09-14 通信装置、暗号通信システム、暗号通信方法およびプログラム Abandoned JP2017139728A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/266,628 US20170222803A1 (en) 2016-02-02 2016-09-15 Communication device, cryptographic communication system, cryptographic communication method, and computer program product

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016018299 2016-02-02
JP2016018299 2016-02-02

Publications (1)

Publication Number Publication Date
JP2017139728A true JP2017139728A (ja) 2017-08-10

Family

ID=59565232

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016179874A Abandoned JP2017139728A (ja) 2016-02-02 2016-09-14 通信装置、暗号通信システム、暗号通信方法およびプログラム

Country Status (1)

Country Link
JP (1) JP2017139728A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019205152A (ja) * 2018-03-30 2019-11-28 エスアーペー エスエー オフライン暗号文単独攻撃の緩和

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019205152A (ja) * 2018-03-30 2019-11-28 エスアーペー エスエー オフライン暗号文単独攻撃の緩和

Similar Documents

Publication Publication Date Title
JP6478749B2 (ja) 量子鍵配送装置、量子鍵配送システムおよび量子鍵配送方法
EP3185463B1 (en) Apparatus and method for quantum key distribution with enhanced security and reduced trust requirements
US20170222803A1 (en) Communication device, cryptographic communication system, cryptographic communication method, and computer program product
US8983061B2 (en) Method and apparatus for cryptographically processing data
JP5936618B2 (ja) 量子鍵配送
US8275997B2 (en) Method of encrypting and transmitting data and system for transmitting encrypted data
EP3157225B1 (en) Encrypted ccnx
US10623180B2 (en) Communication device, communication method, and communication system
CN112398651B (zh) 一种量子保密通信方法、装置、电子设备以及存储介质
JP2007041223A (ja) データ配信装置及びデータ通信システム
JP2018033079A (ja) 通信装置、通信システム及び通信方法
JP2008533910A (ja) QKDをIPSecと統合する方法
EP3721579B1 (en) Secure content routing using one-time pads
US20220070153A1 (en) One-time pads encryption hub
JP2020520617A (ja) フレームのプロパティを活用する設定可能なサービスパケットエンジン
CN112332940B (zh) 一种基于时间同步网络的数据传输方法及相关设备
JP2017139728A (ja) 通信装置、暗号通信システム、暗号通信方法およびプログラム
KR102481024B1 (ko) 데이터 암호화를 위해 수행되는 데이터 처리 방법, 장치, 시스템 및 컴퓨터 프로그램
JP2016136673A (ja) 量子鍵配送装置、量子鍵配送システムおよびプログラム
JP4664692B2 (ja) 暗号化方法、復号方法、暗号化装置、復号装置、暗号装置、およびプログラム
US7526643B2 (en) System for transmitting encrypted data
JP2008281832A (ja) 共通鍵暗号通信システム及び方法とこれに使用するponの送信機及び受信機
JP2008501253A (ja) データを暗号化し送信する方法および暗号化されたデータを送信するためのシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180904

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20190125