(57)【要約】【課題】有限なリソースを用いて、できる限りセキュアな通信システムを実現する。【解決手段】通信装置は、提供部と、フロー制御部と、暗号処理部と、を備える。提供部は、量子鍵配送技術によって生成された暗号鍵を提供する。フロー制御部は、暗号処理の対象とするデータを受け付けたときに暗号鍵が提供されていない場合に、データを廃棄する第１処理、データを保持させる第２処理、または、暗号鍵が提供されていないことを示す情報を付してデータを出力する第３処理、のうち選択された処理を、受け付けたデータに対して実行する。暗号処理部は、フロー制御部から出力されたデータに対して暗号鍵を用いて暗号処理を実行する。【選択図】図３
2018029302.tif 000002
【特許請求の範囲】
【請求項１】
量子鍵配送技術によって生成された暗号鍵を提供する提供部と、
暗号処理の対象とするデータを受け付けたときに前記暗号鍵が提供されていない場合に、前記データを廃棄する第１処理、前記データを保持させる第２処理、または、前記暗号鍵が提供されていないことを示す情報を付して前記データを出力する第３処理、のうち選択された処理を、受け付けたデータに対して実行するフロー制御部と、
前記フロー制御部から出力されたデータに対して前記暗号鍵を用いて前記暗号処理を実行する暗号処理部と、
を備える通信装置。
【請求項２】
前記提供部から提供された暗号鍵を記憶する記憶部をさらに備え、
前記フロー制御部は、前記記憶部に対する前記暗号鍵の記憶量が閾値を超えた場合、記憶した暗号鍵のいずれかを前記記憶部から削除する、
請求項１に記載の通信装置。
【請求項３】
前記暗号処理部は、前記第３処理が選択された場合、過去に使用した暗号鍵を用いて、前記フロー制御部から出力されたデータに対して前記暗号処理を実行する、または、前記フロー制御部から出力されたデータに対して前記暗号処理を実行せずに出力する、
請求項１に記載の通信装置。
【請求項４】
前記フロー制御部は、前記暗号鍵が提供されたときに暗号処理の対象とするデータが受け付けられていない場合に、提供された前記暗号鍵を廃棄する第４処理、前記暗号鍵を保持させる第５処理、または、前記データが受け付けられていないことを示す情報を付して前記暗号鍵を出力する第６処理、のうち選択された処理を、提供された前記暗号鍵に対して実行する、
請求項１に記載の通信装置。
【請求項５】
前記暗号処理部は、前記第６処理が選択された場合、ダミーデータに対して前記暗号処理を実行する、または、提供された前記暗号鍵に基づき新たな暗号鍵を生成する、
請求項４に記載の通信装置。
【請求項６】
前記フロー制御部は、前記量子鍵配送技術による前記暗号鍵の生成速度に応じたトークンを用いたトークンバケット方式のトラフィックコントロールを、前記データに対して実行する、
請求項１に記載の通信装置。
【請求項７】
前記フロー制御部は、前記量子鍵配送技術による前記暗号鍵の生成速度に応じて漏れ量を調整するリーキーバケット方式のトラフィックコントロールを、前記データに対して実行する、
請求項１に記載の通信装置。
【請求項８】
量子鍵配送技術によって生成された暗号鍵を提供する提供ステップと、
暗号処理の対象とするデータを受け付けたときに前記暗号鍵が提供されていない場合に、前記データを廃棄する第１処理、前記データを保持させる第２処理、または、前記暗号鍵が提供されていないことを示す情報を付して前記データを出力する第３処理、のうち選択された処理を、受け付けたデータに対して実行するフロー制御ステップと、
前記フロー制御ステップから出力されたデータに対して前記暗号鍵を用いて前記暗号処理を実行する暗号処理ステップと、
を含む通信方法。
【請求項９】
量子鍵配送技術によって暗号鍵を生成する生成装置と、通信装置と、を備える通信システムであって、
前記通信装置は、
前記生成装置により生成された暗号鍵を提供する提供部と、
暗号処理の対象とするデータを受け付けたときに前記暗号鍵が提供されていない場合に、前記データを廃棄する第１処理、前記データを保持させる第２処理、または、前記暗号鍵が提供されていないことを示す情報を付して前記データを出力する第３処理、のうち選択された処理を、受け付けたデータに対して実行するフロー制御部と、
前記フロー制御部から出力されたデータに対して前記暗号鍵を用いて前記暗号処理を実行する暗号処理部と、を備える
通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、通信装置、通信方法および通信システムに関する。
【背景技術】
【０００２】
量子鍵配送技術（Quantum  Key  Distribution、ＱＫＤ）とは、光ファイバーで接続された、単一光子を連続的に送信する送信ノード（量子鍵配送システム送信器）と、単一光子を受信する受信ノード（量子鍵配送システム受信器）と、の間で、安全に暗号データ通信用の鍵を共有する手法である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４０１５３８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
量子暗号を用いた通信システムでは、鍵の生成速度および送受信データの到着速度などが変動する場合がある。このような状況であっても、有限なリソース（記憶リソースおよび通信リソース等）を用いて、できる限りセキュアな通信システムを構成することが求められる。
【課題を解決するための手段】
【０００５】
実施形態の通信装置は、提供部と、フロー制御部と、暗号処理部と、を備える。提供部は、量子鍵配送技術によって生成された暗号鍵を提供する。フロー制御部は、暗号処理の対象とするデータを受け付けたときに暗号鍵が提供されていない場合に、データを廃棄する第１処理、データを保持させる第２処理、または、暗号鍵が提供されていないことを示す情報を付してデータを出力する第３処理、のうち選択された処理を、受け付けたデータに対して実行する。暗号処理部は、フロー制御部から出力されたデータに対して暗号鍵を用いて暗号処理を実行する。
【図面の簡単な説明】
【０００６】
【図１】実施形態の通信システムの装置構成の例を示す図。
【図２】実施形態の共有鍵の生成方法の例を説明するための図。
【図３】第１の実施形態にかかる通信装置のブロック図。
【図４】第１の実施形態の制御方法を説明するための図。
【図５】第１の実施形態における暗号処理のフローチャート。
【図６】第２の実施形態にかかる通信装置のブロック図。
【図７】第２の実施形態の制御方法を説明するための図。
【図８】第２の実施形態における暗号処理のフローチャート。
【図９】第３の実施形態にかかる通信装置のブロック図。
【図１０】第３の実施形態の制御方法を説明するための図。
【図１１】第４の実施形態にかかる通信装置のブロック図。
【図１２】第４の実施形態の制御方法を説明するための図。
【図１３】実施形態にかかる通信装置のハードウェア構成図。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、この発明にかかる通信装置の好適な実施形態を詳細に説明する。
【０００８】
最初に、ＱＫＤを適用したシステムについて説明する。ＱＫＤで鍵を共有するためには、光子の転送に引き続き、鍵蒸留と呼ばれる古典通信路を介した制御データ交換が、送信ノード（量子鍵配送システム送信器）と受信ノード（量子鍵配送システム受信器）との間で行われる必要がある。ここで鍵とは、送信ノードと受信ノードとの間で共有される共有情報であり、また、デジタルデータからなる乱数列である。送信ノードおよび受信ノードを、ノードと総称する。量子鍵配送技術（ＱＫＤ）によって共有される鍵は、量子力学の原理に基づいて、盗聴されていないことが保証されている。
【０００９】
量子鍵配送システムによって共有した鍵を用いて暗号通信を行うシステムを、以後、量子暗号通信システムと呼ぶ。
【００１０】
図１は、量子暗号通信システムである、実施形態の通信システム１００の装置構成の例を示す図である。通信システム１００は、通信装置１０ａ、通信装置１０ｂ、生成装置２０ａおよび生成装置２０ｂを備える。通信装置１０ａおよび生成装置２０ａは、拠点Ａに設置される。通信装置１０ｂおよび生成装置２０ｂは、拠点Ｂに設置される。実施形態の通信システム１００は、暗号化されたデータにより、拠点Ａと拠点Ｂとの間で通信するシステムである。
【００１１】
実施形態の説明では、通信装置１０ａがデータを暗号化し、通信装置１０ｂが暗号化されたデータを復号する場合を例にして説明する。なお通信装置１０ｂがデータを暗号化し、通信装置１０ａが暗号化されたデータを復号してもよい。
【００１２】
通信装置１０ａは、生成装置２０ａにより生成された共有鍵を使用してデータを暗号化し、暗号化されたデータを、通信装置１０ｂに送信する。暗号化されたデータの通信方式は、有線でも無線でもよいし、有線と無線とを組み合わせてもよい。暗号化されたデータの通信方式は、例えばＥｔｈｅｒｎｅｔ（登録商標）である。通信装置１０ｂは、暗号化されたデータを、生成装置２０ｂにより生成された共有鍵を使用して復号する。
【００１３】
生成装置２０ａおよび生成装置２０ｂは、互いに共有する共有鍵を、量子鍵配送により生成する。
【００１４】
以下、通信装置１０ａおよび通信装置１０ｂを区別しない場合は、単に通信装置１０という。同様に、生成装置２０ａおよび生成装置２０ｂを区別しない場合は、単に生成装置２０という。
【００１５】
量子鍵配送システムによって共有された鍵は、盗聴されていないことが保証された、非常に安全性の高い鍵である。そのため、この鍵データを用いて暗号通信を行うことで、高セキュリティ通信を実現することができる。ここで用いる暗号アルゴリズムはＡＥＳ（Advanced  Encryption  Standard）やワンタイムパッド（ＯＴＰ）等、どのようなものであっても構わない。
【００１６】
ＯＴＰと呼ばれる暗号通信方式を利用して暗号データ通信を行うと、このときの暗号データは、いかなる知識を有する盗聴者によっても解読できないことが情報理論によって保証される。ＯＴＰとは、送受信するデータと同じ長さの鍵を用いて暗号化および復号を行い、一度用いた鍵は以後使わずに捨ててゆく方式である。ＯＴＰでは、一方のノードで暗号鍵として用いた鍵を、他方では復号鍵として用いる必要がある。送信ノードから受信ノードへの暗号データ送信と、受信ノードから送信ノードへの暗号データ送信の両方を行うこと、すなわち、全二重での暗号データ通信を考える。この場合、ノード間で共有された鍵のうち、一方のノードで暗号鍵として利用する鍵を他方のノードでは復号鍵として利用するように、また、一方のノードで復号鍵として利用する鍵を他方のノードでは暗号鍵として利用するように、システム全体を制御する必要がある。この制御を、以後鍵割当と呼ぶ。
【００１７】
ＡＥＳのようなブロック暗号を用いる場合、情報論的な安全性は満たさないが、暗号鍵の更新頻度を高くすることで、実質的な通信セキュリティを非常に高く保つことができる。ＡＥＳでは、暗号化して送信する側も受信して復号する側も、同一の鍵データに基づいて行うことが一般的であることから、上述したような鍵割当は必ずしも必要ではない。
【００１８】
次に量子鍵配送により共有鍵を生成する方法の例について説明する。
【００１９】
図２は、実施形態の共有鍵の生成方法の例を説明するための図である。実施形態の生成装置２０ａおよび生成装置２０ｂは、量子通信路１０１および古典通信路１０２により接続される。
【００２０】
量子通信路１０１は、０または１を示す単一光子から構成される光子列を送信する。量子通信路１０１は、例えば光ファイバリンクである。
【００２１】
古典通信路１０２はデータを送信する。古典通信路１０２を介して送信されるデータは、例えば生成装置２０ａおよび２０ｂにより実行される鍵蒸留処理（シフティング処理、誤り訂正処理および秘匿性増強処理）の制御データである。古典通信路１０２は、有線でも無線でもよいし、有線と無線とを組み合わせて実現されていてもよい。古典通信路１０２は、例えばＥｔｈｅｒｎｅｔ（登録商標）である。
【００２２】
生成装置２０ａおよび２０ｂは、互いに共有する共有鍵を、量子鍵配送により生成する。共通鍵は、０または１を示すデジタルデータの列により表される乱数である。例えば、生成装置２０ａは、レーザのパルスにより単一光子を発生させ、当該単一光子から構成される光子列を、量子通信路１０１を介して、生成装置２０ｂに送信する。生成装置２０ａおよび生成装置２０ｂは、鍵蒸留処理を実行することにより、光子列から共通鍵を生成する。
【００２３】
量子通信路１０１上の光子列の送受信には、例えばＢＢ８４プロトコルが使用される。ＢＢ８４プロトコルが使用される場合、量子通信路１０１上の光子列が盗聴されると、量子力学の原理により、光子の量子状態（光子の偏光方向等）が変化する。これにより受信側で検出される量子ビット誤り率（ＱＢＥＲ：Quantum  Bit  Error  Rate）が上昇する。したがって生成装置２０ａおよび生成装置２０ｂは、量子通信路１０１上の光子列が盗聴されている場合、量子通信路１０１上の光子列が盗聴されていることを、量子ビット誤り率の異常から検出することができる。これにより生成装置２０ａおよび２０ｂは、光子列から安全に共有鍵を生成することができる。
【００２４】
量子鍵配送システムにおける暗号鍵の生成速度は、拠点Ａと拠点Ｂとの間の距離や光ファイバーの品質にも依存するが、数ｋｂｐｓ〜数百ｋｂｐｓと遅い。また、量子鍵配送システムにおける暗号鍵の生成速度は、光ファイバーの外部環境および外乱、並びに、量子鍵配送システムの設置環境等に応じて変動する。さらに、盗聴と疑われる攻撃がある場合、暗号鍵の生成速度が急激に減少したり、停止したりする可能性がある。
【００２５】
一方で、アプリケーションの通信頻度は、事前に予測することが困難である。バースト的にデータを連続送信することもあれば、データを送受信しない期間が長時間となる場合もある。
【００２６】
このように、量子暗号通信システムは、生成速度が遅くかつ変動する暗号鍵を利用する一方、暗号通信を行うアプリケーションの側も、暗号通信したいデータ量は変動し、事前に予測できない。
【００２７】
このような状況において、ＯＴＰや鍵交換を頻繁に行うＡＥＳを用いて暗号化を行う場合、通信頻度が高ければ、暗号鍵が枯渇し、必要なときに全く通信できなくなるおそれがある。この場合、データをバッファリングしておくことも可能であるが、バッファリングできるデータ量には記憶容量に起因する上限がある。
【００２８】
逆に、通信頻度が低く、ほとんど暗号通信を行わない場合は、暗号鍵は蓄積され続ける。暗号鍵を蓄積部に蓄積しておくことも可能であるが、鍵を蓄積する記憶容量に起因する上限がある。
【００２９】
このように、量子暗号通信システムでは、有限なリソースを用いて、できる限りセキュアな通信システムを構成することが求められる。
【００３０】
以下、各実施形態について説明する。各実施形態では、変動するデータを用いて、有限なリソースを制御する仕組みとして、トラフィックコントロールのメカニズムを導入する。トラフィックコントロールの仕組みとして、第１の実施形態はトークンバケット方式を適用する。第２の実施形態はリーキーバケット方式を適用する。第３の実施形態は、トークンバケット方式を導入した量子暗号通信システム、および、トークンバケット方式の通信システムを統合する。第４の実施形態は、リーキーバケット方式を導入した量子暗号通信システム、および、リーキーバケット方式の通信システムを統合する。
【００３１】
（第１の実施形態）
まず、第１の実施形態について説明する。基本的な考え方は以下の通りである。
（Ａ）暗号鍵の生成速度が、送受信データの到着速度より大きい場合が続くと、暗号鍵を記憶する記憶部の記憶領域が不足する。これに対処するため、例えば暗号鍵の記憶量が閾値を超えた場合に、生成される暗号鍵または過去に蓄積された暗号鍵を廃棄（削除）する制御を行う。
（Ｂ）一方、暗号鍵の生成速度が、送受信データの到着速度より小さい場合が続くと、送受信データを記憶する記憶部の記憶領域が不足する。これに対処するため、例えば到着する送受信データまたは過去に蓄積された送受信データを廃棄する制御を行う。
【００３２】
すなわち、生成された暗号鍵を、トークンバケット方式のトークンとして捉え、トークンが存在しているときに限り送受信データの暗号化および復号を行う。トークンが存在しない場合は、送受信データを廃棄する等の対応を行う。
【００３３】
生成される暗号鍵を用いる暗号方式は、例えば、ＯＴＰおよびＡＥＳなどを適用できる。適用できる暗号方式はこれらに限られるものではない。例えば、量子鍵配送システムによって生成される暗号鍵を用いて暗号化を行い、所定の期間（または所定のデータ量の転送の間）該当する暗号鍵を使用した後に廃棄し、暗号鍵を更新する他の暗号方式を適用してもよい。
【００３４】
上記（Ｂ）では、送受信データを廃棄するとしている。一般的に送受信データを廃棄することは、通信システムの挙動として望ましくない。ただし、アプリケーションの種類によっては、一部の送受信データを廃棄しても動作することがある（映像伝送アプリケーション、音声伝送アプリケーション等）。また、仮に、データの廃棄が許されないシステムであったとしても、送受信データが廃棄された場合、上位レイヤの通信プロトコル（例えばＴＣＰ（Transmission  Control  Protocol）等）によって、廃棄されたデータの再送を実行する等して、廃棄された送受信データを復元することも可能である。このような上位レイヤの通信プロトコルの存在を想定してもよい。
【００３５】
次に、第１の実施形態の通信装置１０の機能構成例について説明する。図３は、第１の実施形態にかかる通信装置１０ａ、１０ｂの構成の一例を示すブロック図である。なお、図３では、通信装置１０ａがデータを送信する送信装置として機能し、通信装置１０ｂがデータを受信する受信装置として機能する場合を例に説明する。双方向で通信する場合は、両者の機能を備えるように通信装置１０を構成してもよい。通信装置１０が両者の機能を備える場合、または、下記の各部の機能を受信側および送信側で区別する必要がない場合、「ａ」および「ｂ」の符号を省略して説明する場合がある。
【００３６】
図３に示すように、通信装置１０ａは、アプリ部１５ａ、受付部１１ａ、提供部１２ａ、フロー制御部１３ａ、暗号処理部１７ａ、通信制御部１８ａ、および、記憶部１９ａを備える。
【００３７】
記憶部１９ａは、通信装置１０ａの各種処理で使用される各種データを記憶する。例えば記憶部１９ａは、送信するデータ、および、暗号鍵を一時的に記憶するバッファとして機能する。
【００３８】
アプリ部１５ａは、通信装置１０ａで動作する任意のアプリケーションである。受付部１１ａは、アプリ部１５ａなどから、送信するデータを受け付ける。
【００３９】
提供部１２ａは、量子鍵配送システムによって生成された暗号鍵を提供する。生成装置２０ａ、２０ｂは、通信路４２を介して接続され、量子鍵配送技術により暗号鍵を生成する。提供部１２ａは、このようにして生成された暗号鍵を、生成装置２０ａから受け取り、フロー制御部１３ａ等に提供する。生成装置２０ａの機能を通信装置１０ａが備えるように構成してもよい。
【００４０】
フロー制御部１３ａは、受け付けたデータおよび暗号鍵のフローを、例えば上記（Ａ）、（Ｂ）のように制御する。例えばフロー制御部１３ａは、暗号処理の対象とするデータを受け付けたときに、暗号鍵が提供されていない場合に、以下の処理のうち選択された処理を、受け付けたデータに対して実行する。
（Ｐ１）データを廃棄する処理（第１処理）
（Ｐ２）データを上限値を限度として保持させる処理（第２処理）
（Ｐ３）暗号鍵が提供されていないことを示す情報（マーク）を付してデータを出力する処理（第３処理）
【００４１】
暗号処理部１７ａは、フロー制御部１３ａから出力されたデータに対して、暗号鍵を用いて暗号処理（暗号化、復号）を実行する。例えば暗号処理部１７ａは、ＡＥＳやＯＴＰ等に従いデータを暗号化する機能を提供する。なお、図３では便宜上、フロー制御部と暗号処理部は別々の部として示されているが、実際には後述するように一体となって動作する。
【００４２】
通信制御部１８ａは、通信装置１０ｂなどの外部装置との間の通信を制御する。例えば通信制御部１８ａは、暗号処理部１７ａによって暗号化された暗号文を、通信路４１を介して通信装置１０ｂなどへ送信する。
【００４３】
次に、受信装置として機能する通信装置１０ｂについて説明する。通信装置１０ｂは、アプリ部１５ｂ、受付部１１ｂ、提供部１２ｂ、フロー制御部１３ｂ、暗号処理部１７ｂ、通信制御部１８ｂ、および、記憶部１９ｂを備える。
【００４４】
記憶部１９ｂは、通信装置１０ｂの各種処理で使用される各種データを記憶する。例えば記憶部１９ｂは、受信されたデータ、および、暗号鍵を一時的に記憶するバッファとして機能する。
【００４５】
通信制御部１８ｂは、通信装置１０ａなどの外部装置との間の通信を制御する。例えば通信制御部１８ｂは、暗号化されたデータを通信装置１０ａから受信する。
【００４６】
提供部１２ｂは、量子鍵配送システムによって生成された暗号鍵を提供する。例えば提供部１２ｂは、生成装置２０ａと生成装置２０ｂとの間で生成された暗号鍵を、生成装置２０ｂから受け取り、フロー制御部１３ｂ等に提供する。生成装置２０ｂの機能を通信装置１０ｂが備えるように構成してもよい。
【００４７】
フロー制御部１３ｂは、フロー制御部１３ａと同様に、受け付けたデータおよび暗号鍵のフローを、例えば上記（Ａ）、（Ｂ）のように制御する。
【００４８】
暗号処理部１７ｂは、フロー制御部１３ｂから出力されたデータに対して、暗号鍵を用いて暗号処理（暗号化、復号）を実行する。例えば暗号処理部１７ｂは、ＡＥＳやＯＴＰ等に従いデータを復号する機能を提供する。
【００４９】
受付部１１ｂは、暗号処理部１７ｂによって復号された平文を受け付け、アプリ部１５ｂへ渡す。アプリ部１５ｂは、通信装置１０ｂで動作する任意のアプリケーションである。
【００５０】
なお提供部１２ａ、１２ｂは、暗号鍵を、送信時の暗号化用暗号鍵、および、受信時の復号用復号鍵、のいずれかに割り当ててもよい。割り当てられた暗号鍵は、各拠点で対応する暗号処理部（暗号処理部１７ａまたは暗号処理部１７ｂ）に提供される。
【００５１】
アプリ部１５ａは、例えば、暗号処理部１７ａによってデータを暗号化して暗号データ通信を行うアプリケーションである。アプリ部１５ｂは、例えば、受信したデータを暗号処理部１７ｂによって復号するアプリケーションである。アプリ部１５ａが、データを受信して復号する機能を備えてもよいし、暗号化および復号の両方の機能を備えてもよい。アプリ部１５ｂについても同様である。
【００５２】
また、各拠点に複数のアプリケーション（アプリ部１５）が備えられてもよい。この場合、提供部１２ａ、１２ｂは、暗号鍵を、送信用の暗号鍵および受信用の暗号鍵、の２種類だけでなく、いずれのアプリケーションが使用する暗号鍵か、も考慮した鍵割当機能を提供してもよい。
【００５３】
量子鍵配送システム（生成装置２０）と鍵割当機能（提供部１２）との間、または、鍵割当機能（提供部１２）内、または、鍵割当機能（提供部１２）と暗号処理機能（暗号処理部１７）との間、などに、暗号鍵のデータを保持する記憶部を備えてもよい。
【００５４】
なお、通信装置１０の各部（アプリ部、受付部、フロー制御部、提供部、暗号処理部、通信制御部）は、例えば、ＣＰＵ（Central  Processing  Unit）などの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、ＩＣ（Integrated  Circuit）などのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。
【００５５】
記憶部１９ａ、１９ｂは、ＨＤＤ（Hard  Disk  Drive）、光ディスク、メモリカード、ＲＡＭ（Random  Access  Memory）などの一般的に利用されているあらゆる記憶媒体により構成することができる。
【００５６】
図４は、第１の実施形態の制御方法を説明するための図である。暗号処理部１７は、到着した送信データ４０２を、暗号鍵４０１により暗号化し、暗号化したデータ（暗号化データ４０３）を出力する。
【００５７】
暗号処理部１７には、量子鍵配送システムによって生成された暗号鍵４０１が入力される。暗号鍵は、トークンバケット方式のトークンとして扱われる。例えば記憶部１９は、暗号鍵を記憶する有限サイズのバッファとして用いられる。
【００５８】
アプリ部１５などのアプリケーションから、送信データ４０２が入力される。送信データ４０２を記憶する有限サイズのバッファが備えられてもよい。暗号鍵４０１によって送信データ４０２が暗号化された暗号化データ４０３が出力される。暗号化データ４０３は、通信装置１０から外部装置に送信される送信データとなる。
【００５９】
なお、図４では、送信データを暗号化して送信する例を示しているが、データを受信して復号する場合も同様の制御方法を適用できる。すなわち、通信制御部１８などの外部インタフェース経由で受信する暗号化データと、量子鍵配送システムによって生成された暗号鍵と、が入力され、暗号化データを暗号鍵で復号したデータ（平文データ）が出力となる。
【００６０】
図４に示すようなデータおよび暗号鍵（トークン）のフローの制御が、フロー制御部１３によって実現される。
【００６１】
次に、本実施形態における制御方法の基本ルールを説明する。
（Ｒ１−１）暗号鍵（トークン）が存在するときだけ、到着したデータを暗号化して送出する。すなわち、暗号鍵の生成速度がトークンの到着速度に対応付けられる。
（Ｒ１−２）単位データを暗号化すると、暗号化に用いたトークン（暗号鍵）は喪失する。この処理は、暗号鍵を廃棄し、鍵を更新することに相当する。
（Ｒ１−３）暗号化の単位、暗号鍵の単位、および、データの単位は任意とする。すなわち、暗号鍵の入力をビットストリームとして捉えてもよい。ビットストリームとして暗号鍵の入力を捉える場合、暗号方式はＯＴＰが適当である。この場合、入力されるデータもビットストリームとなる。また、暗号鍵の入力を、ある一定の長さのブロックとして取り扱ってもよい。例えば、１２８ビットをブロックとして暗号鍵の入力を取り扱うことを想定すると、ＡＥＳの鍵を１２８ビットで更新するシステムに適する。ここで、一度のＡＥＳ暗号化で暗号化するデータのサイズは任意である。また、ＡＥＳ暗号化を何度実行した場合に鍵の更新を行うかも任意である。暗号鍵の入力をブロックとして取り扱う場合のサイズは１２８ビットに限らず２５６ビット等でもよいし、より大きく、例えば１メガビット等でもよい。この場合、暗号処理部１７ａの内部にて、入力された暗号鍵の入力ブロックから適切なサイズの暗号鍵を切り出して、これを用いてデータの暗号化を行い、規定の回数だけデータの暗号化を行った場合、入力ブロックから次の暗号鍵を切り出して鍵を交換して、次のデータの暗号化を行う、といった制御を行う。
（Ｒ１−４）暗号鍵を蓄積できる最大量（バケットのサイズ）は決まっており、最大量以上の暗号鍵が到着した場合、いずれかの暗号鍵を廃棄する。暗号鍵を廃棄するとき、通信する複数の通信装置１０間で同期して、同一の鍵を廃棄する必要がある。このため複数の通信装置１０は、廃棄する暗号鍵を特定するための制御通信を行う。
（Ｒ１−５）暗号鍵が存在しないときに、データが到着した場合の振る舞いは、トークンバケット方式に基づき様々なオプションが考えられる。
【００６２】
暗号鍵が存在しないときに、データが到着した場合の振る舞いのオプションについて、以下に３つの例を示す。これらは、トークンバケット方式のオプションである、「Ｄｒｏｐ」、「Ｓｈａｐｅｄ」、および、「Ｍａｒｋｅｄ」に相当する。
【００６３】
まず「Ｄｒｏｐ」に相当する方式について説明する。本方式では、暗号鍵が存在しないときに到着したデータは即時廃棄される。上述のように、上位レイヤの通信プロトコルによって再送がなされることを想定してもよい。
【００６４】
次に、「Ｓｈａｐｅｄ」に相当する方式について説明する。本方式では、暗号鍵が存在しないときに到着したデータは、最大Ｎ個（Ｎは１以上の正数で事前に設定される）まで蓄積される。暗号鍵が生成され次第、蓄積されたデータが処理（すなわち暗号化して送信）される。Ｎ個以上のデータを蓄積することはできず、Ｎ個のデータが蓄積されている状況で新たに到着したデータは、廃棄される。
【００６５】
最後に、「Ｍａｒｋｅｄ」に相当する方式について説明する。本方式では、トークンが存在しないときに到着したデータは、トークンが存在しないことを示す情報（マーク）が付加されて送信される。マークが付されたデータの取り扱いとして、２つの方法が考えられる。
【００６６】
１つは、暗号処理部１７が、過去に使用した暗号鍵をそのまま用いてデータを暗号化する方法である。本方式では、同じ暗号鍵を何度も繰り返して利用し続けると、通信セキュリティの強度が低下する可能性がある点に注意が必要である。もう１つは、暗号処理部１７が、暗号化せずに平文のままデータを送信する方法である。暗号化されていないので、セキュリティは保証されない点に注意が必要である。
【００６７】
なお、上述した暗号化の単位、暗号鍵の単位、および、データの単位、並びに、暗号鍵が存在しないときにデータが到着した場合の振る舞いのオプション等の、本実施形態におけるバリエーションは、複数の通信装置１０間でいずれのバリエーションを採用するか事前に決定しておく。採用するバリエーションは、状況に応じて変更してもよい。この場合、複数の通信装置１０間で、いずれの方式に変更するか、といった制御メッセージを交換する必要がある。また、複数の通信装置１０間で動作する複数のチャネルおよび複数のアプリケーションが存在する場合、それぞれのチャネルおよびアプリケーションに対して、異なるバリエーションを用いるように設定してもよい。
【００６８】
次に、このように構成された第１の実施形態にかかる通信装置１０による暗号処理について図５を用いて説明する。図５は、第１の実施形態における暗号処理の一例を示すフローチャートである。
【００６９】
受付部１１は、処理対象とするデータを受け付ける（ステップＳ１０１）。フロー制御部１３は、受け付けたデータに用いる暗号鍵が存在するか否かを判断する（ステップＳ１０２）。暗号鍵は、データの暗号化に用いる暗号鍵、および、データの復号に用いる暗号鍵のいずれでもよい。
【００７０】
暗号鍵が存在しない場合（ステップＳ１０２：Ｎｏ）、フロー制御部１３は、暗号鍵が存在しないときにデータが到着した場合のオプションの設定が「Ｄｒｏｐ」であるか否かを判断する（ステップＳ１０３）。なお、ここでは、設定が「Ｄｒｏｐ」、「Ｓｈａｐｅｄ」、および、「Ｍａｒｋｅｄ」のいずれかであるものとする。
【００７１】
設定が「Ｄｒｏｐ」である場合（ステップＳ１０３：Ｙｅｓ）、フロー制御部１３は、受け付けたデータを廃棄する（ステップＳ１０４）。設定が「Ｄｒｏｐ」でない場合（ステップＳ１０３：Ｎｏ）、フロー制御部１３は、さらに設定が「Ｓｈａｐｅｄ」であるか否かを判断する（ステップＳ１０５）。設定が「Ｓｈａｐｅｄ」である場合（ステップＳ１０５：Ｙｅｓ）、フロー制御部１３は、受け付けたデータを記憶部１９などのバッファに保持する（ステップＳ１０６）。設定が「Ｓｈａｐｅｄ」でない場合、すなわち、設定が「Ｍａｒｋｅｄ」の場合（ステップＳ１０５：Ｎｏ）、フロー制御部１３は、受け付けたデータにマークを付して出力する（ステップＳ１０７）。
【００７２】
ステップＳ１０２で暗号鍵が存在すると判断された場合（ステップＳ１０２：Ｙｅｓ）、および、ステップＳ１０４、Ｓ１０６、Ｓ１０７の後、暗号処理部１７は、指定に応じて、データに対する暗号処理を実行する（ステップＳ１０８）。
【００７３】
例えば暗号鍵が存在する場合は、暗号処理部１７は、この暗号鍵を用いてデータに対する暗号処理を実行する。なお、データが廃棄された場合は（ステップＳ１０４）、暗号処理部１７は、暗号処理を行う必要はない。データがバッファ等に保持されている場合は（ステップＳ１０６）、暗号処理部１７は、暗号鍵が提供され次第、保持されたデータに対する暗号処理を実行する。データにマークが付されている場合、例えば暗号処理部１７は、過去に使用した暗号鍵を用いてデータに対する暗号処理を実行する。暗号化しない方式が指定されている場合は、暗号処理部１７は、データに対する暗号処理を実行せずに出力してもよい。
【００７４】
このように、第１の実施形態にかかる通信装置では、暗号鍵をトークンと見做したトークンバケット方式を導入することにより、有限なリソースを用いて、できる限りセキュアな通信システムを実現可能となる。
【００７５】
（第２の実施形態）
第２の実施形態では、リーキーバケット方式を適用した例を説明する。図６は、第２の実施形態にかかる通信装置１０−２ａ、１０−２ｂの構成の一例を示すブロック図である。なお、図６では、通信装置１０−２ａがデータを送信する送信装置として機能し、通信装置１０−２ｂがデータを受信する受信装置として機能する例を記載している。上述のように、通信装置１０−２が、受信装置および送信装置の両方の機能を備えるように構成してもよい。以下では、送信側と受信側を区別せずに説明する。
【００７６】
図６に示すように、通信装置１０−２は、アプリ部１５、受付部１１、提供部１２、フロー制御部１３−２、暗号処理部１７−２、および、通信制御部１８を備える。
【００７７】
第２の実施形態では、フロー制御部１３−２および暗号処理部１７−２の機能と、記憶部１９を削除したことが第１の実施形態と異なっている。その他の構成および機能は、第１の実施形態にかかる通信装置１０のブロック図である図３と同様であるので、同一符号を付し、ここでの説明は省略する。
【００７８】
フロー制御部１３−２は、受け付けたデータおよび暗号鍵のフローを制御する。暗号処理の対象とするデータを受け付けたときに暗号鍵が提供されていない場合は、フロー制御部１３−２は、第１の実施形態の（Ｐ１）〜（Ｐ３）と同様の処理を行う。暗号鍵が提供されたときに、暗号処理の対象とするデータが受け付けられていない場合、フロー制御部１３−２は、さらに以下の処理のうち選択された処理を、提供された暗号鍵に対して実行する。
（Ｐ４）提供された暗号鍵を廃棄する処理（第４処理）
（Ｐ５）暗号鍵を上限値を限度として保持させる処理（第５処理）
（Ｐ６）データが受け付けられていないことを示す情報（マーク）を付して暗号鍵を出力する処理（第６処理）
【００７９】
暗号処理部１７−２は、第１の実施形態の暗号処理部１７と同様に、フロー制御部１３−２から出力されたデータに対して、暗号鍵を用いて暗号処理（暗号化、復号）を実行する。本実施形態の暗号処理部１７−２は、さらに、上記（Ｐ４）〜（Ｐ６）のうち選択された処理に応じた処理を実行する（詳細は後述）。
【００８０】
図７は、第２の実施形態の制御方法を説明するための図である。第２の実施形態は、リーキーバケット方式に基づく量子暗号通信システムの制御方法である。
【００８１】
最初に、トークンバケット方式とリーキーバケット方式の一般的な違いについて説明する。トークンバケット方式とは、データ転送レートの平均を制限するトラフィックシェーピング手法である。トークンバケット方式では、バケットサイズ（例えば“Ｎ個”分の暗号鍵で送信できるデータサイズ）までのバースト転送が許されるが、長期的に見れば、データ通信速度は、トークンの到着速度に律速される。これに対し、リーキーバケット方式とは、データ転送レートを制限する手法である。リーキーバケット方式は、データ転送のバースト性を平準化し、バースト転送を許さない方式である。
【００８２】
以下、図７を参照して第２の実施形態の制御方法を説明する。暗号処理部１７−２は、到着した送信データ７０２を、暗号鍵７０１により暗号化し、暗号化したデータ（暗号化データ７０３）を出力する。
【００８３】
暗号処理部１７−２には、量子鍵配送システムによって生成された暗号鍵７０１が入力される。生成速度に応じてリーキーバケットから暗号鍵７０１が漏れ出て、暗号処理部１７−２に入力されると解釈することができる。漏れ出た暗号鍵７０１を記憶するための、有限サイズのバッファが存在していてもよい（後述のオプションに依存）。
【００８４】
暗号処理部１７−２には、さらに、アプリ部１５などのアプリケーションによって生成される送信データ７０２が入力される。送信データ７０２を記憶する有限サイズのバッファが備えられてもよい。暗号鍵７０１によって送信データ７０２が暗号化された暗号化データ７０３が出力される。暗号化データ７０３は、通信装置１０−２から外部装置に送信される送信データとなる。
【００８５】
なお、図７では、送信データを暗号化して送信する例を示しているが、データを受信して復号する場合も同様の制御方法を適用できる。すなわち、通信制御部１８などの外部インタフェース経由で受信する暗号化データと、量子鍵配送システムによって生成された暗号鍵と、が入力され、暗号化データを暗号鍵で復号したデータ（平文データ）が出力となる。
【００８６】
図７に示すようなデータおよび暗号鍵のフローの制御が、フロー制御部１３−２によって実現される。
【００８７】
次に、本実施形態における制御方法の基本ルールを説明する。
（Ｒ２−１）暗号鍵が存在するときだけ、到着したデータを暗号化して送出する。すなわち、暗号鍵の生成速度が、バケットから漏れ出てくる暗号鍵の速度に対応付けられる。
（Ｒ２−２）単位データを暗号化すると、暗号化に用いた暗号鍵は喪失する。この処理は、暗号鍵を廃棄し、鍵を更新することに相当する。
（Ｒ２−３）暗号化の単位、暗号鍵の単位、および、データの単位は任意とする。
（Ｒ２−４）暗号鍵が存在しないときに、データが到着した場合の振る舞いは、第１の実施形態と同様で、「Ｄｒｏｐ」、「Ｓｈａｐｅｄ」、「Ｍａｒｋｅｄ」などのオプションが考えられる。
（Ｒ２−５）データが到着していないときに、暗号鍵が漏れ出てきた（暗号鍵が生成された）場合の振る舞いには、トークンバケット方式と同様の概念を当てはめ、様々なオプションが考えられる。
【００８８】
データが到着していないときに、暗号鍵が生成された場合の振る舞いのオプションについて、以下に３つの例を示す。これらは、トークンバケット方式のオプションである、「Ｄｒｏｐ」、「Ｓｈａｐｅｄ」、および、「Ｍａｒｋｅｄ」に相当する。
【００８９】
まず「Ｄｒｏｐ」に相当する方式について説明する。本方式では、データが到着していないときに生成された暗号鍵は即時廃棄される。この方式は、暗号鍵を蓄積するバッファが存在しない方式に相当する。
【００９０】
次に、「Ｓｈａｐｅｄ」に相当する方式について説明する。本方式では、データが到着していないときに生成された暗号鍵は、最大Ｎ個（事前に設定される）まで蓄積される。データが到着し次第、蓄積されたデータが処理（すなわち暗号化して送信）される。Ｎ個以上の暗号鍵を蓄積することはできず、Ｎ個の暗号鍵が蓄積されている状況で新たに到着した暗号鍵は、廃棄される。この方式は、トークンバケット方式（第１の実施形態）と一致する方式となる。この方式の場合、通信装置１０−２は、第１の実施形態と同様に、暗号鍵を蓄積するための記憶部１９などのバッファを備える必要がある。
【００９１】
最後に、「Ｍａｒｋｅｄ」に相当する方式について説明する。本方式では、データが到着していないときに生成された暗号鍵は、データが到着していないことを示す情報（マーク）が付加されて出力される。マークが付された暗号鍵の取り扱いとして、２つの方法が考えられる。
【００９２】
１つは、暗号処理部１７−２が、暗号化すべきデータがないので、代わりにダミーデータを生成し、ダミーデータを暗号鍵で暗号化して送信する方法である。ダミーデータとしてどのようなデータを用いるかは、予め通信相手であるノードと合意しておく必要がある。例えばダミーデータとして、すべて０のデータ、または、すべて１のデータを用いることができる。ダミーデータであるか否かを示す情報が送信パケット内に存在し、受信側がダミーデータであることを検出できることが望ましい。
【００９３】
もう１つの方法は、提供された暗号鍵に基づき新たな暗号鍵を生成する方法である。例えば暗号処理部１７−２は、既に存在する暗号鍵と、新たに生成された暗号鍵とのＸＯＲを行う等の演算を行って、暗号鍵を置き換えてもよい。
【００９４】
次に、このように構成された第２の実施形態にかかる通信装置１０−２による暗号処理について図８を用いて説明する。図８は、第２の実施形態における暗号処理の一例を示すフローチャートである。なお図８の暗号処理は、暗号鍵が提供されたときに実行される処理を示している。処理対象とするデータが受け付けられたときに実行される処理は、第１の実施形態の図５と同様であるため説明を省略する。
【００９５】
フロー制御部１３−２は、暗号鍵の提供を受け付ける（ステップＳ２０１）。フロー制御部１３−２は、暗号鍵を使用する対象となるデータが存在するか否かを判断する（ステップＳ２０２）。
【００９６】
データが存在しない場合（ステップＳ２０２：Ｎｏ）、フロー制御部１３−２は、データが存在しないときに暗号鍵が生成された場合のオプションの設定が「Ｄｒｏｐ」であるか否かを判断する（ステップＳ２０３）。なお、ここでは、設定が「Ｄｒｏｐ」、「Ｓｈａｐｅｄ」、および、「Ｍａｒｋｅｄ」のいずれかであるものとする。
【００９７】
設定が「Ｄｒｏｐ」である場合（ステップＳ２０３：Ｙｅｓ）、フロー制御部１３−２は、提供された暗号鍵を廃棄する（ステップＳ２０４）。設定が「Ｄｒｏｐ」でない場合（ステップＳ２０３：Ｎｏ）、フロー制御部１３−２は、さらに設定が「Ｓｈａｐｅｄ」であるか否かを判断する（ステップＳ２０５）。設定が「Ｓｈａｐｅｄ」である場合（ステップＳ２０５：Ｙｅｓ）、フロー制御部１３−２は、提供された暗号鍵をバッファ（記憶部１９など）に保持する（ステップＳ２０６）。設定が「Ｓｈａｐｅｄ」でない場合、すなわち、設定が「Ｍａｒｋｅｄ」の場合（ステップＳ２０５：Ｎｏ）、フロー制御部１３−２は、受け付けた暗号鍵にマークを付して出力する（ステップＳ２０７）。
【００９８】
ステップＳ２０２でデータが存在すると判断された場合（ステップＳ２０２：Ｙｅｓ）、および、ステップＳ２０４、Ｓ２０６、Ｓ２０７の後、暗号処理部１７−２は、指定に応じて、データに対する暗号処理、または、暗号鍵に対する処理を実行する（ステップＳ２０８）。
【００９９】
例えばデータが存在する場合は、暗号処理部１７−２は、このデータに対して、提供された暗号鍵を用いて暗号処理を実行する。なお、暗号鍵が廃棄された場合は（ステップＳ２０４）、暗号処理部１７−２は、暗号処理を行う必要はない。暗号鍵がバッファ等に保持されている場合は（ステップＳ２０６）、暗号処理部１７−２は、データが提供され次第、保持された暗号鍵を用いた暗号処理を実行する。暗号鍵にマークが付されている場合、例えば暗号処理部１７−２は、ダミーデータを生成し、ダミーデータを暗号鍵で暗号化して送信する。新たな暗号鍵を生成する方法が指定されている場合は、暗号処理部１７−２は、提供された暗号鍵を用いて新たな暗号鍵を生成してもよい。
【０１００】
このように、第２の実施形態にかかる通信装置では、リーキーバケット方式を導入することにより、有限なリソースを用いて、できる限りセキュアな通信システムを実現可能となる。
【０１０１】
（第３の実施形態）
第３の実施形態は、第１の実施形態で述べた方式に、トークンバケット方式によるデータのトラフィックコントロールを組み合わせた例である。
【０１０２】
図９は、第３の実施形態にかかる通信装置１０−３ａ、１０−３ｂの構成の一例を示すブロック図である。なお、図９では、通信装置１０−３ａがデータを送信する送信装置として機能し、通信装置１０−３ｂがデータを受信する受信装置として機能する例を記載している。上述のように、通信装置１０−３が、受信装置および送信装置の両方の機能を備えるように構成してもよい。以下では、送信側と受信側を区別せずに説明する。
【０１０３】
図９に示すように、通信装置１０−３は、アプリ部１５、受付部１１、提供部１２、フロー制御部１３−３、暗号処理部１７、通信制御部１８、および、記憶部１９を備える。
【０１０４】
第３の実施形態では、フロー制御部１３−３の機能が第１の実施形態と異なっている。その他の構成および機能は、第１の実施形態にかかる通信装置１０のブロック図である図３と同様であるので、同一符号を付し、ここでの説明は省略する。
【０１０５】
フロー制御部１３−３は、受け付けたデータおよび暗号鍵のフローを制御する。本実施形態では、到着したデータに対しても、トークンバケット方式によるトラフィックコントロールを実行する点が、第１の実施形態のフロー制御部１３と異なっている。
【０１０６】
図１０は、第３の実施形態の制御方法を説明するための図である。本実施形態では、データが到着した時点（例えば受付部１１ａがデータを受け付けたとき、または、通信制御部１８ｂがデータを受信したとき）で、トークンバケット方式によるデータのトラフィックコントロールが実行される。
【０１０７】
すなわち、データ１００２が到着すると、まず、トークンバケット方式によるトラフィックコントロールが行われ、トークン１００１（通信許可のためのトークン）がある場合にデータ１００２が通過する。
【０１０８】
次に通過した送信データ４０２は、第１の実施形態で述べた方式によって、暗号鍵による暗号化が行われ、最終的に暗号化されたデータ（暗号化データ４０３）が送出される。フロー制御１０２０は、第１の実施形態と同様の方式が実行されることを示している。
【０１０９】
なお、データに対するトラフィックコントロール（トークンバケット方式）でも、第１の実施形態と同様に、暗号鍵の生成速度に応じてトークン（トークン１００１）の量を制御してもよい（矢印１０３０）。これにより、データに対するトラフィックコントロールと、第１の実施形態で述べた暗号鍵をトークンとみなすトラフィックコントロールとを連携して動作させることができる。
【０１１０】
なお、図１０では、データが到着すると、まずデータに対するトラフィックコントロールが実行された後、第１の実施形態と同様の暗号鍵をトークンとみなすトラフィックコントロールが実行されるものとして説明した。逆に、データが到着すると、まず第１の実施形態と同様の暗号鍵をトークンとみなすトラフィックコントロールを実行し、その後、暗号化されたデータに対するトラフィックコントロールを実行するように構成してもよい。また、暗号鍵の生成速度に応じたトークンを用いて、到着したデータに対するトラフィックコントロールのみを実行するように構成してもよい。
【０１１１】
（第４の実施形態）
第４の実施形態は、第２の実施形態で述べた方式に、リーキーバケット方式によるデータのトラフィックコントロールを組み合わせた例である。
【０１１２】
図１１は、第４の実施形態にかかる通信装置１０−４ａ、１０−４ｂの構成の一例を示すブロック図である。なお、図１１では、通信装置１０−４ａがデータを送信する送信装置として機能し、通信装置１０−４ｂがデータを受信する受信装置として機能する例を記載している。上述のように、通信装置１０−４が、受信装置および送信装置の両方の機能を備えるように構成してもよい。以下では、送信側と受信側を区別せずに説明する。
【０１１３】
図１１に示すように、通信装置１０−４は、アプリ部１５、受付部１１、提供部１２、フロー制御部１３−４、暗号処理部１７−２、および、通信制御部１８を備える。
【０１１４】
第４の実施形態では、フロー制御部１３−４の機能が第２の実施形態と異なっている。その他の構成および機能は、第２の実施形態にかかる通信装置１０−２のブロック図である図６と同様であるので、同一符号を付し、ここでの説明は省略する。
【０１１５】
フロー制御部１３−４は、受け付けたデータおよび暗号鍵のフローを制御する。本実施形態では、到着したデータに対しても、リーキーバケット方式によるトラフィックコントロールを実行する点が、第２の実施形態のフロー制御部１３−２と異なっている。
【０１１６】
図１２は、第４の実施形態の制御方法を説明するための図である。本実施形態では、データが到着した時点（例えば受付部１１ａがデータを受け付けたとき、または、通信制御部１８ｂがデータを受信したとき）で、リーキーバケット方式によるデータのトラフィックコントロールが実行される。
【０１１７】
すなわち、データ１２０１が到着すると、まず、リーキーバケット方式によるトラフィックコントロールが行われる。
【０１１８】
次にリーキーバケットから漏れ出た送信データ７０２は、第２の実施形態で述べた方式によって、暗号鍵による暗号化が行われ、最終的に暗号化されたデータ（暗号化データ７０３）が送出される。フロー制御１２２０は、第２の実施形態と同様の方式が実行されることを示している。
【０１１９】
なお、データに対するトラフィックコントロール（リーキーバケット方式）で、暗号鍵の生成速度に応じて漏れ出るデータの量を制御してもよい（矢印１２３０）。これにより、データに対するトラフィックコントロールと、第２の実施形態で述べたトラフィックコントロールとを連携して動作させることができる。
【０１２０】
なお、図１２では、データが到着すると、まずデータに対するトラフィックコントロールが実行された後、第２の実施形態と同様のトラフィックコントロールが実行されるものとして説明した。逆に、データが到着すると、まず第２の実施形態と同様のトラフィックコントロールを実行し、その後、暗号化されたデータに対するトラフィックコントロール（リーキーバケット方式）を実行するように構成してもよい。また、暗号鍵の生成速度に応じたトークンを用いて、到着したデータに対するトラフィックコントロール（リーキーバケット方式）のみを実行するように構成してもよい。
【０１２１】
（変形例）
第３の実施形態で、到着したデータに対してトークンバケット方式のトラフィックコントロールを実行する代わりに、第４の実施形態と同様に到着したデータに対してリーキーバケット方式のトラフィックコントロールを実行してもよい。すなわち、データに対するリーキーバケット方式のトラフィックコントロールと、第１の実施形態と同様の暗号鍵をトークンとみなすトラフィックコントロールとを組み合わせてもよい。
【０１２２】
同様に、第４の実施形態で、到着したデータに対してリーキーバケット方式のトラフィックコントロールを実行する代わりに、第３の実施形態と同様に到着したデータに対してトークンバケット方式のトラフィックコントロールを実行してもよい。すなわち、データに対するトークンバケット方式のトラフィックコントロールと、第２の実施形態と同様のトラフィックコントロールとを組み合わせてもよい。
【０１２３】
以上説明したとおり、第１から第４の実施形態によれば、有限なリソースを用いて、できる限りセキュアな通信システムを実現可能となる。
【０１２４】
次に、第１から第４の実施形態にかかる通信装置のハードウェア構成について図１３を用いて説明する。図１３は、第１から第４の実施形態にかかる通信装置のハードウェア構成例を示す説明図である。
【０１２５】
第１から第４の実施形態にかかる通信装置は、ＣＰＵ５１などの制御装置と、ＲＯＭ（Read  Only  Memory）５２やＲＡＭ５３などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５４と、各部を接続するバス６１を備えている。
【０１２６】
第１から第４の実施形態にかかる通信装置で実行されるプログラムは、ＲＯＭ５２等に予め組み込まれて提供される。
【０１２７】
第１から第４の実施形態にかかる通信装置で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact  Disk  Recordable）、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【０１２８】
さらに、第１から第４の実施形態にかかる通信装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第１から第４の実施形態にかかる通信装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【０１２９】
第１から第４の実施形態にかかる通信装置で実行されるプログラムは、コンピュータを上述した通信装置の各部として機能させうる。このコンピュータは、ＣＰＵ５１がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【０１３０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１３１】
１０、１０−２、１０−３、１０−４  通信装置
１１  受付部
１２  提供部
１３  フロー制御部
１５  アプリ部
１７  暗号処理部
１８  通信制御部
１９  記憶部
２０  生成装置
１００  通信システム
【図１】
2018029302.tif 000003
【図２】
2018029302.tif 000004
【図３】
2018029302.tif 000005
【図４】
2018029302.tif 000006
【図５】
2018029302.tif 000007
【図６】
2018029302.tif 000008
【図７】
2018029302.tif 000009
【図８】
2018029302.tif 000010
【図９】
2018029302.tif 000011
【図１０】
2018029302.tif 000012
【図１１】
2018029302.tif 000013
【図１２】
2018029302.tif 000014
【図１３】
2018029302.tif 000015