(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024061970
(43)【公開日】2024-05-09
(54)【発明の名称】暗号通信システム、暗号通信装置、暗号通信方法および暗号通信プログラム
(51)【国際特許分類】
H04L 9/08 20060101AFI20240430BHJP
H04L 9/12 20060101ALI20240430BHJP
【FI】
H04L9/08 A
H04L9/12
H04L9/08 E
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022169651
(22)【出願日】2022-10-24
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】301063496
【氏名又は名称】東芝デジタルソリューションズ株式会社
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】長嶋 悠貴
(72)【発明者】
【氏名】澤崎 武
(72)【発明者】
【氏名】鹿目 洋志
(57)【要約】
【課題】鍵IDの通知用の通信プロトコルを必要とせずに、鍵の先読みによる通信の高速化を実現することができる暗号通信システムを提供する。
【解決手段】実施形態によれば、送信装置は、暗号鍵先読み部と暗号チャンク生成部とを備える。暗号鍵先読み部は、平文データの入力前に平文データの暗号化用の暗号鍵を鍵管理システムから取得する。暗号チャンク生成部は、第1暗号鍵を用いて第1平文データを暗号化して得られた第1暗号データと、第1暗号鍵の第1鍵IDとが格納される、第1平文データよりも後に送信される第2平文データの暗号化に用いられる第2暗号鍵の第2鍵IDを埋め込んだパケットを生成する。受信装置は、暗号チャンク解析部と復号鍵先読み部とを備える。暗号チャンク解析部は、パケットを解析して第2鍵IDを読み取る。復号鍵先読み部は、暗号チャンク解析部が読み取った第2鍵IDに対応する第2暗号鍵を鍵管理システムから取得する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
暗号鍵の提供時に鍵IDを通知し、かつ、鍵IDが指定された暗号鍵の要求に応じて前記鍵IDに対応する暗号鍵を返送するインターフェースを有し、量子鍵配送技術によって第1拠点と第2拠点との間で暗号鍵を共有化する鍵管理システムを用いて、前記鍵管理システムで管理される暗号鍵を前記第1拠点から取得する送信装置と、前記鍵管理システムで管理される暗号鍵を前記第2拠点から取得する受信装置とが暗号通信を実行する暗号通信システムであって、
前記送信装置は、
前記鍵管理システムから取得される暗号鍵を用いて平文データを暗号化する暗号化ロジックと、
平文データの入力前に前記平文データを暗号化するための暗号鍵を前記鍵管理システムから取得する暗号鍵先読み部と、
前記暗号鍵先読み部が取得した暗号鍵を鍵IDと共に記憶する暗号鍵記憶部と、
前記暗号化ロジックが第1暗号鍵を用いて第1平文データを暗号化して得られた第1暗号データと、前記第1暗号鍵の第1鍵IDとが格納されるパケットであって、前記第1平文データよりも後に送信される第2平文データの暗号化に用いられる、前記暗号鍵記憶部に記憶されている第2暗号鍵の第2鍵IDを埋め込んだパケットを生成する暗号チャンク生成部と、
を具備し、
前記受信装置は、
前記鍵管理システムから取得される暗号鍵を用いて暗号データを復号する復号ロジックと、
前記パケットを解析して前記第2鍵IDを読み取る暗号チャンク解析部と、
前記暗号チャンク解析部が読み取った前記第2鍵IDに対応する前記第2暗号鍵を前記鍵管理システムから取得する復号鍵先読み部と、
前記復号鍵先読み部が取得した暗号鍵を鍵IDと共に記憶する復号鍵記憶部と、
を具備する暗号通信システム。
【請求項2】
前記暗号チャンク生成部は、
前記パケットの生成時、前記パケットで送信される平文データよりも後に送信される平文データの暗号化に用いられる暗号鍵の鍵IDを前記パケットに複数埋め込み、
第1タイミングで送信される前記パケットに埋め込む複数の鍵IDと、前記第1タイミングに後続する第2タイミングで送信される前記パケットに埋め込む複数の鍵IDとの一部を重複させ、
前記復号鍵先読み部は、前記暗号チャンク解析部が読み取った鍵IDに対応する暗号鍵が前記復号鍵記憶部に記憶されている場合、前記暗号チャンク解析部が読み取った鍵IDを破棄する、
請求項1に記載の暗号通信システム。
【請求項3】
前記インターフェースは、ETSI GS QKD014仕様に準拠するインターフェースである請求項1または2に記載の暗号通信システム。
【請求項4】
暗号鍵の提供時に鍵IDを通知し、かつ、鍵IDが指定された暗号鍵の要求に応じて前記鍵IDに対応する暗号鍵を返送するインターフェースを有し、量子鍵配送技術によって2拠点間で暗号鍵を共有化する鍵管理システムから暗号鍵を取得して、送信対象の平文データを暗号化し、前記暗号化によって得られた暗号データを送信する暗号通信装置であって、
前記鍵管理システムから取得される暗号鍵を用いて平文データを暗号化する暗号化ロジックと、
平文データの入力前に前記平文データを暗号化するための暗号鍵を前記鍵管理システムから取得する暗号鍵先読み部と、
前記暗号鍵先読み部が取得した暗号鍵を鍵IDと共に記憶する暗号鍵記憶部と、
前記暗号化ロジックが第1暗号鍵を用いて第1平文データを暗号化して得られた第1暗号データと、前記第1暗号鍵の第1鍵IDとが格納されるパケットであって、前記第1平文データよりも後に送信される第2平文データの暗号化に用いられる、前記暗号鍵記憶部に記憶されている第2暗号鍵の第2鍵IDを埋め込んだパケットを生成する暗号チャンク生成部と、
を具備する暗号通信装置。
【請求項5】
前記暗号チャンク生成部は、
前記パケットの生成時、前記パケットで送信される平文データよりも後に送信される平文データの暗号化に用いられる暗号鍵の鍵IDを前記パケットに複数埋め込み、
第1タイミングで送信される前記パケットに埋め込む複数の鍵IDと、前記第1タイミングに後続する第2タイミングで送信される前記パケットに埋め込む複数の鍵IDとの一部を重複させる、
請求項4に記載の暗号通信装置。
【請求項6】
暗号鍵の提供時に鍵IDを通知し、かつ、鍵IDが指定された暗号鍵の要求に応じて前記鍵IDに対応する暗号鍵を返送するインターフェースを有し、量子鍵配送技術によって2拠点間で暗号鍵を共有化する鍵管理システムから暗号鍵を取得して、受信した暗号データを復号する暗号通信装置であって、
前記鍵管理システムから取得される暗号鍵を用いて暗号データを復号する復号ロジックと、
第1暗号鍵を用いて復号可能な第1暗号データと、前記第1暗号鍵の第1鍵IDとが格納されるパケットであって、前記第1暗号データよりも後に送信されてくる第2暗号データを復号可能な第2暗号鍵の第2鍵IDが埋め込まれたパケットを解析して、前記第2鍵IDを読み取る暗号チャンク解析部と、
前記暗号チャンク解析部が読み取った前記第2鍵IDに対応する前記第2暗号鍵を前記鍵管理システムから取得する復号鍵先読み部と、
前記復号鍵先読み部が取得した暗号鍵を鍵IDと共に記憶する復号鍵記憶部と、
を具備する暗号通信装置。
【請求項7】
前記復号鍵先読み部は、前記暗号チャンク解析部が読み取った鍵IDに対応する暗号鍵が前記復号鍵記憶部に記憶されている場合、前記暗号チャンク解析部が読み取った鍵IDを破棄する請求項6に記載の暗号通信装置。
【請求項8】
前記インターフェースは、ETSI GS QKD014仕様に準拠するインターフェースである請求項4~7のいずれか1項に記載の暗号通信装置。
【請求項9】
暗号鍵の提供時に鍵IDを通知し、かつ、鍵IDが指定された暗号鍵の要求に応じて前記鍵IDに対応する暗号鍵を返送するインターフェースを有し、量子鍵配送技術によって第1拠点と第2拠点との間で暗号鍵を共有化する鍵管理システムを用いて、前記鍵管理システムで管理される暗号鍵を前記第1拠点から取得する送信装置と、前記鍵管理システムで管理される暗号鍵を前記第2拠点から取得する受信装置とが暗号通信を実行する暗号通信システムにおいて実行される暗号通信方法であって、
前記送信装置が、
前記鍵管理システムから取得される暗号鍵を用いて平文データを暗号化することと、
平文データの入力前に前記平文データを暗号化するための暗号鍵を前記鍵管理システムから取得することと、
前記取得した暗号鍵を鍵IDと共に記憶することと、
第1暗号鍵を用いて第1平文データを暗号化して得られた第1暗号データと、前記第1暗号鍵の第1鍵IDとが格納されるパケットであって、前記第1平文データよりも後に送信される第2平文データの暗号化に用いられる、前記記憶している第2暗号鍵の第2鍵IDを埋め込んだパケットを生成することと、
を具備し、
前記受信装置が、
前記鍵管理システムから取得される暗号鍵を用いて暗号データを復号することと、
前記パケットを解析して前記第2鍵IDを読み取ることと、
前記読み取った前記第2鍵IDに対応する前記第2暗号鍵を前記鍵管理システムから取得することと、
前記取得した暗号鍵を鍵IDと共に記憶することと、
を具備する暗号通信方法。
【請求項10】
暗号鍵の提供時に鍵IDを通知し、かつ、鍵IDが指定された暗号鍵の要求に応じて前記鍵IDに対応する暗号鍵を返送するインターフェースを有し、量子鍵配送技術によって第1拠点と第2拠点との間で暗号鍵を共有化する鍵管理システムを用いて、前記鍵管理システムで管理される暗号鍵を前記第1拠点から取得する送信装置と、前記鍵管理システムで管理される暗号鍵を前記第2拠点から取得する受信装置とが暗号通信を実行する暗号通信システムにおいて適用されるプログラムであって、
前記送信装置を、
前記鍵管理システムから取得される暗号鍵を用いて平文データを暗号化する暗号化ロジック、
平文データの入力前に前記平文データを暗号化するための暗号鍵を前記鍵管理システムから取得する暗号鍵先読み部、
前記暗号鍵先読み部が取得した暗号鍵を鍵IDと共に記憶する暗号鍵記憶部、
前記暗号化ロジックが第1暗号鍵を用いて第1平文データを暗号化して得られた第1暗号データと、前記第1暗号鍵の第1鍵IDとが格納されるパケットであって、前記第1平文データよりも後に送信される第2平文データの暗号化に用いられる、前記暗号鍵記憶部に記憶されている第2暗号鍵の第2鍵IDを埋め込んだパケットを生成する暗号チャンク生成部、
として機能させ、
前記受信装置を、
前記鍵管理システムから取得される暗号鍵を用いて暗号データを復号する復号ロジック、
前記パケットを解析して前記第2鍵IDを読み取る暗号チャンク解析部、
前記暗号チャンク解析部が読み取った前記第2鍵IDに対応する前記第2暗号鍵を前記鍵管理システムから取得する復号鍵先読み部、
前記復号鍵先読み部が取得した暗号鍵を鍵IDと共に記憶する復号鍵記憶部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、暗号通信システム、暗号通信装置、暗号通信方法および暗号通信プログラムに関する。
【背景技術】
【0002】
量子鍵配送技術(QKD:Quantum Key Distribution)を利用して2拠点間で共有化した乱数を共通鍵(暗号鍵、復号鍵)として利用し、ワンタイムパッド(OTP)等の安全な暗号通信を行う方法が知られている。
【0003】
このQKDを利用した暗号通信アプリケーション(暗号通信装置)の通信を高速化する方法として、平文を受け付ける前の暗号鍵の先読みと、暗号文を受け付ける前の復号鍵の先読みとを行う方法が提案されている。
【0004】
また、暗号通信アプリケーションに対して、QKDを利用して共有化した鍵を提供する方法として、鍵管理システムを設置する方法が知られている。この鍵管理システムと暗号通信アプリケーションとの間の鍵のやり取りを定めた代表的なインターフェース仕様として、「ETSI GS QKD014」がある。
【0005】
このインターフェースでは、まず、暗号鍵と共に鍵IDが発番され、復号鍵を取得する際には、同じ鍵IDを指定することで、対応する復号鍵を得られる仕組みである。そのため、暗号化を行う装置は、鍵管理システムから鍵を取得した後、何らかの方法で、復号を行う装置に鍵IDを通知する必要がある。
【先行技術文献】
【特許文献】
【0006】
【非特許文献】
【0007】
【非特許文献1】欧州電気通信標準化機構:ETSI GS QKD 014 V1.1.1,2022-02,p.10
【発明の概要】
【発明が解決しようとする課題】
【0008】
「ETSI GS QKD014」準拠の鍵取得インターフェースには、復号鍵を得るためには鍵IDが必要という特徴がある。従って、同インターフェース(または同様の特徴を持つ鍵取得インターフェース)を採用する鍵管理システムとの組み合わせで鍵の先読みを実現しようとすると、暗号化を行う側の通信アプリケーションから復号を行う側の通信アプリケーションへ事前に鍵IDを通知することが必要である。
【0009】
そのため、「ETSI GS QKD014」準拠の鍵取得インターフェースを採用する鍵管理システムとの組み合わせで鍵を先読みする手法には、鍵IDの通知用の通信プロトコルが必要となることや、追加のネットワーク要件(通信ポートをファイアウォールで許可するなど)が生まれる等のデメリットがあり、本手法の通信アプリケーションでの活用が難しかった。
【0010】
本発明の1つの実施形態は、鍵IDの通知用の通信プロトコル等を必要とせずに、鍵の先読みによる通信の高速化を実現することができる暗号通信システム、暗号通信装置、暗号通信方法および暗号通信プログラムを提供する。
【課題を解決するための手段】
【0011】
実施形態によれば、暗号通信システムは、暗号鍵の提供時に鍵IDを通知し、かつ、鍵IDが指定された暗号鍵の要求に応じて前記鍵IDに対応する暗号鍵を返送するインターフェースを有し、量子鍵配送技術によって第1拠点と第2拠点との間で暗号鍵を共有化する鍵管理システムを用いて、鍵管理システムで管理される暗号鍵を第1拠点から取得する送信装置と、鍵管理システムで管理される暗号鍵を第2拠点から取得する受信装置とが暗号通信を実行する。送信装置は、暗号化ロジックと、暗号鍵先読み部と、暗号鍵記憶部と、暗号チャンク生成部と、を具備する。暗号化ロジックは、鍵管理システムから取得される暗号鍵を用いて平文データを暗号化する。暗号鍵先読み部は、平文データの入力前に平文データを暗号化するための暗号鍵を鍵管理システムから取得する。暗号鍵記憶部は、暗号鍵先読み部が取得した暗号鍵を鍵IDと共に記憶する。暗号チャンク生成部は、暗号化ロジックが第1暗号鍵を用いて第1平文データを暗号化して得られた第1暗号データと、第1暗号鍵の第1鍵IDとが格納されるパケットであって、第1平文データよりも後に送信される第2平文データの暗号化に用いられる、暗号鍵記憶部に記憶されている第2暗号鍵の第2鍵IDを埋め込んだパケットを生成する。受信装置は、復号ロジックと、暗号チャンク解析部と、復号鍵先読み部と、復号鍵記憶部と、を具備する。復号ロジックは、鍵管理システムから取得される暗号鍵を用いて暗号データを復号する。暗号チャンク解析部は、パケットを解析して第2鍵IDを読み取る。復号鍵先読み部は、暗号チャンク解析部が読み取った第2鍵IDに対応する第2暗号鍵を鍵管理システムから取得する。復号鍵記憶部は、復号鍵先読み部が取得した暗号鍵を鍵IDと共に記憶する。
【図面の簡単な説明】
【0012】
【
図1】実施形態の暗号通信システムの一構成例を示す図。
【
図3】
図1の暗号鍵記憶部が記憶するデータテーブルの一例を示す図。
【
図5】実施形態の暗号通信システムの処理を表すフローチャート。
【
図6】
図2の暗号鍵先読み部による暗号鍵先読み処理の詳細を表すフローチャート。
【
図7】
図2の暗号鍵先読み部が鍵管理システムから取得する暗号鍵および鍵IDのデータ形式の一例を示す図。
【
図8】実施形態の暗号通信システムの送信処理の詳細を表すフローチャート。
【
図9】
図1の暗号化処理部による暗号化処理の詳細を表すフローチャート。
【
図10】実施形態の暗号通信システムの受信処理の詳細を表すフローチャート。
【
図11】
図1の復号処理部による復号処理の詳細を表すフローチャート。
【
図12】
図1の暗号化処理部が生成する暗号チャンクのデータテーブルの一例を示す図。
【発明を実施するための形態】
【0013】
以下、実施の形態について、図面を参照して説明する。
【0014】
図1は、実施形態の暗号通信システム100の一構成例を示す図である。
【0015】
暗号通信アプリケーション[1]1と暗号通信アプリケーション[2]1とは、それぞれ異なるコンピュータ上で実行されるプログラムであり、入力されたデータを暗号化して互いに送信し合うプログラムである。ここでは、拠点[1]と拠点[2]とを結んだリモート会議が開催されており、拠点[1]のコンピュータ上で動作する暗号通信アプリケーション[1]1は、入力された音声(拠点[1]での発声音)および映像(拠点[1]での撮画像またはコンピュータ上の表示画像)を暗号化して暗号データとして拠点[2]のコンピュータ上で動作する暗号通信アプリケーション[2]1へ送信し、一方、この暗号データを受信した暗号通信アプリケーション[1]1は、その暗号データを復号して原形の音声および映像を出力し、また、これと並行して、暗号通信アプリケーション[2]1は、入力された音声および映像を暗号化して暗号データとして暗号通信アプリケーション[1]1へ送信し、一方、この暗号データを受信した暗号通信アプリケーション[1]1は、その暗号データを復号して原形の音声および映像を出力する状況を想定する。なお、音声および映像を暗号通信の対象として想定するが、これらに限らず、実施形態の暗号通信システム100は、文書ファイルやCSVファイルのデータなど、様々な種類のデータを対象とすることができる。
【0016】
また、ここでは、暗号通信を実行する主体である暗号通信装置として、コンピュータ上で実行される一プログラムである暗号通信アプリケーション1を例示するが、暗号通信装置は、専用のハードウェア機器として実現されるものであってもよい。
【0017】
暗号通信アプリケーション1は、音声および映像を暗号化するための暗号鍵および暗号データを復号するための復号鍵を鍵管理システム2から取得する。より具体的には、暗号通信アプリケーション[1]1は、暗号鍵および復号鍵を鍵管理システム[1]2から取得し、また、暗号通信アプリケーション[2]1は、暗号鍵および復号鍵を鍵管理システム[2]2から取得する。ここで、たとえば暗号通信アプリケーション[1]1が音声および映像の暗号化のために用いる暗号鍵と、この暗号鍵を用いて暗号化されている暗号データを暗号通信アプリケーション[2]1が復号するために用いる復号鍵とは、同一の鍵である。つまり、暗号通信アプリケーション[1]1と暗号通信アプリケーション[2]1とは、共通鍵暗号方式で暗号化および復号を行う。以下、暗号通信アプリケーション1が暗号データの復号に用いる鍵(復号鍵)を、共通鍵とも称することがあるかもしれないし、また、(音声および映像の暗号化に用いられた)暗号鍵とも称することがあるかもしれない。
【0018】
鍵管理システム2は、量子鍵配送を実行するQKD装置3を介して他の鍵管理システム2との間で共通鍵を共有し、この共通鍵を暗号鍵と復号鍵とに振り分けて暗号通信アプリケーション1に提供する。量子鍵配送は、光子の挙動を利用する技術であり、QKD装置3は、他のQKD装置3との間で光ファイバ(または真空)を媒体として光子により共通鍵生成用の乱数等の情報を送受信する。光子の伝搬路(媒体)上で盗聴が行われると、光子の挙動が変化するので、QKD装置3は、盗聴を検知することができる。
【0019】
鍵管理システム2は、たとえば「ETSI GS QKD014」準拠の、復号鍵の取得時に鍵IDの指定が必要な鍵取得インターフェースを有する。たとえば、暗号通信アプリケーション[1]1から暗号通信アプリケーション[2]1へ(音声および映像を暗号化した)暗号データを送信する場合、暗号通信アプリケーション[1]1は、鍵管理システム[1]2に暗号鍵を要求する。この要求を受けた鍵管理システム[1]2は、暗号鍵を当該暗号鍵の鍵IDと共に暗号通信アプリケーション[1]1に提供する。暗号通信アプリケーション[1]1は、提供された暗号鍵を用いて音声および映像を暗号化し、得られた暗号データを暗号通信アプリケーション[2]1へ送信する。
【0020】
一方、暗号通信アプリケーション[2]1は、暗号通信アプリケーション[1]1から受信した暗号データを復号するための復号鍵を鍵管理システム[2]2から取得する。この復号鍵の取得時、暗号通信アプリケーション[2]1は、鍵IDを指定して、鍵管理システム[2]2に対して当該鍵IDに対応する復号鍵を要求する。従って、暗号通信アプリケーション[1]1は、音声および映像の暗号化に用いた暗号鍵の鍵IDを、暗号通信アプリケーション[2]1へ何らかの方法で通知する必要がある。これは、逆方向の、暗号通信アプリケーション[2]1から暗号通信アプリケーション[1]1へ(音声および映像を暗号化した)暗号データを送信する場合も同様である。
【0021】
そこで、実施形態の暗号通信システム100は、復号鍵の取得に鍵IDを必要とするインターフェースを有する鍵管理システムを利用しつつ、通信の高速化のための鍵の先読みを実現するにあたり、鍵IDの通知用の通信プロトコル等を必要としない仕組みを備えたものであり、以下、この点について詳述する。
【0022】
まず、暗号通信アプリケーション1の構成について説明する。
図1に示すように、暗号通信アプリケーション1は、入力部11、暗号化処理部12、送信部13、出力部14、復号処理部15および受信部16を有する。
【0023】
入力部11は、コンピュータのマイクロフォンやカメラから入力された音声や映像を符号化する。なお、前述のように、実施形態の暗号通信システム100は、様々な種類のデータを暗号通信の対象とすることができるので、音声や映像に限らず、入力部11には、文書ファイルやCSVファイルのデータなど、様々な種類のデータが入力され得る。
【0024】
暗号化処理部12は、入力部11が符号化した映像・音声信号(平文データ)に対して暗号化を施す。
【0025】
送信部13は、暗号化処理部12が暗号化した映像・音声信号を、他の暗号通信アプリケーション1に送信する。
【0026】
出力部14は、復号処理部15が復号した映像・音声信号を、コンピュータのスピーカやディスプレイから出力する。
【0027】
復号処理部15は、受信部16が受信した映像・音声信号を復号する。
【0028】
受信部16は、他の暗号通信アプリケーション1から、暗号化された映像・音声信号を受信する。
【0029】
【0030】
図2に示すように、暗号化処理部12は、暗号化ロジック121、暗号チャンク生成部122、暗号鍵記憶部123および暗号鍵先読み部124を有する。また、暗号化処理部12は、入力部11、送信部13および鍵管理システム2と接続される。
【0031】
暗号化ロジック121は、暗号鍵記憶部123に記憶されている暗号鍵を用いて、入力部11が入力する音声や映像を暗号化する。
【0032】
暗号チャンク生成部122は、暗号化ロジック121から出力される暗号データを暗号チャンク(パケット)として整形する。暗号チャンク生成部122の詳細については後述する。暗号チャンク生成部122は、暗号チャンクを送信部13へ入力する。
【0033】
暗号鍵記憶部123は、暗号化ロジック121から高速にアクセスできるメインメモリ等の領域である。暗号鍵記憶部123は、
図3に示すようなデータテーブル1231を記憶する。
【0034】
図3に示すように、データテーブル1231は、鍵IDフィールド、鍵データフィールド、オフセット情報フィールドを有する。
【0035】
鍵IDは、鍵管理システム2が管理する暗号鍵を一意に特定するための識別子である。
【0036】
鍵データは、(後述する暗号鍵先読み部124が)鍵IDと共に鍵管理システム2から取得した暗号鍵であり、たとえば乱数列である。
【0037】
オフセット情報は、鍵データから必要サイズ分のバイト列だけ取り出して暗号化処理に使用し、余ったバイト列は次回の暗号化処理で使用する場合に、使用済みのバイト位置を示す情報である。
【0038】
暗号鍵先読み部124は、入力部11から音声や映像が入力される前に当該音声や映像を暗号化するための暗号鍵を鍵IDと共に鍵管理システム2から取得する。暗号鍵先読み部124の詳細については後述する。暗号鍵先読み部124が取得した暗号鍵および鍵IDは、暗号鍵記憶部123のデータテーブル1231に格納される。
【0039】
【0040】
図4に示すように、復号処理部15は、暗号チャンク解析部151、復号ロジック152、復号鍵先読み部153および復号鍵記憶部154を有する。また、復号処理部15は、受信部16、出力部14および鍵管理システム2と接続される。
【0041】
暗号チャンク解析部151は、受信部16が受信する暗号チャンクを解析して、その暗号チャンクで送られてきた暗号データを復号するための復号鍵の鍵IDと、当該暗号データよりも後に送られてくる予定の暗号データを復号するための、先読みしておくべき復号鍵の鍵IDとを取得する。暗号チャンク解析部151の詳細については後述する。暗号チャンク解析部151は、解析対象の暗号チャンクで送られてきた暗号データおよび当該暗号データを復号するための復号鍵の鍵IDを復号ロジック152へ転送し、当該暗号データよりも後に送られてくる予定の暗号データを復号するための、先読みしておくべき復号鍵の鍵IDを復号鍵先読み部153へ転送する。
【0042】
復号ロジック152は、暗号チャンク解析部151から受け取った鍵IDに対応する復号鍵を復号鍵記憶部154から取得し、その復号鍵を用いて、同じく暗号チャンク解析部151から受け取った暗号データを復号する。復号ロジック152は、暗号データを復号することで得られた音声や映像を出力部14へ転送する。
【0043】
復号鍵先読み部153は、暗号チャンク解析部151から受け取った鍵IDに対応する復号鍵を鍵管理システム2から取得する。復号鍵先読み部153が取得した復号鍵は、鍵IDと共に復号鍵記憶部154内の後述するデータテーブル1541に格納される。
【0044】
復号鍵記憶部154は、復号ロジック152から高速にアクセスできるメインメモリ等の領域である。復号鍵記憶部154は、復号鍵先読み部153が取得した復号鍵を鍵IDと共に格納するデータテーブル1541を記憶する。なお、データテーブル1541の構成は、前述のデータテーブル1231(
図3参照)と共通である。
【0045】
図5は、暗号通信アプリケーション1の処理を表すフローチャートである。
【0046】
暗号通信アプリケーション1は、起動時に、通信先の暗号通信アプリケーション1と鍵管理システム2の指定をユーザから受け付ける(S101)。
【0047】
続いて、暗号通信アプリケーション1では、暗号化処理部12の暗号鍵先読み部124が、指定された鍵管理システム2からの鍵の先読みを開始する(S102)。この暗号鍵先読み部124による鍵管理システム2からの鍵の先読みは、暗号通信アプリケーション1が稼働している間、継続的に実行される。
【0048】
以降、暗号通信アプリケーション1は、入力部11または受信部16にデータが入力されるまで待機状態となり(S103)、入力部11にコンピュータのマイクやカメラから音声や映像が入力されれば(S104:YES)、送信処理を実行し(S105)、受信部16が他の暗号通信アプリケーション1から暗号データを受信すれば(S106:YES)、受信処理(S107)と、出力部14による出力を行う(S108)。暗号通信アプリケーション1は、送信処理(S105)、または、受信処理(S107)および出力部14による出力(S108)を完了すると、待機状態(S103)に戻る。
【0049】
続いて、以下に、S102で開始する暗号鍵先読み処理、S105の送信処理、S107の受信処理の詳細について説明する。
【0050】
図6は、暗号鍵先読み部124による暗号鍵先読み処理の詳細を表すフローチャートである。
【0051】
暗号鍵先読み部124は、まず、ETSI GS QKD014を例とする通信プロトコルを用いて、鍵管理システム2から暗号鍵と鍵IDを取得する(S201)。この際に必要となる接続先などの情報は、
図5に示した暗号通信アプリケーションのフローチャートのステップS101で入力済みである。
【0052】
暗号鍵先読み部124は、暗号鍵と鍵IDを、たとえば
図7に示すデータ形式で鍵管理システム2から取得し、
図3に示すデータ形式で暗号鍵記憶部123に追加(データテーブル1231に格納)する(S202)。この時、暗号鍵先読み部124は、鍵データをBase64形式から元のバイト列へデコードし、オフセット情報は0とする。また、暗号鍵先読み部124は、鍵IDをUUID形式から整数値に変換しても良い。
【0053】
この時点で、暗号鍵先読み部124は、暗号鍵記憶部123に格納されている鍵の個数を確認し、あらかじめ定められた上限個数と比較する(S203)。鍵の個数が上限に達している場合(S203:YES)、暗号鍵先読み部124は、処理を一時停止し、一定時間待機した後(S204)、S203に戻って再度鍵の個数を確認する。鍵の個数が上限に達していない場合は(S203:NO)、暗号鍵先読み部124は、S201以降を再び実施する。
【0054】
図8は、暗号通信アプリケーション1の送信処理(
図5:S105)の詳細を表すフローチャートである。
【0055】
まず、入力部11が、音声や映像を入力すると、これを符号化して、映像・音声ストリームを生成する(S301)。さらに、入力部11は、ストリームを時間やフレーム等の単位で細切れ(チャンク)に分割する(S302)。これは、ストリーミング処理と呼ばれ、映像・音声の転送をリアルタイムに行う際に一般的な処理である。
【0056】
続いて、入力部11は、チャンクに分割された音声・映像を、暗号化処理部12へと入力する(S303)。
【0057】
暗号化処理部12は、後述する暗号化処理(
図8)を行った後、後述する暗号チャンク(
図12)として整形する(S304)。
【0058】
その後、送信部13が、当該暗号チャンクを送信する(S305)。この際の通信プロトコルは任意だが、たとえば、RTP(Real-time Transport Protocol)やSRTP(Secure Real-time Transport Protocol)を使用してもよい。
【0059】
図9は、暗号化処理部12による暗号化処理の詳細を表すフローチャートである。
【0060】
まず、暗号化処理部12は、音声・映像チャンクの入力を受けると、暗号化に必要な長さの鍵データが暗号鍵記憶部123に蓄積されているかどうか調べる(S401)。
【0061】
暗号鍵記憶部123に十分な鍵データがある場合(S401:YES)、暗号化処理部12は、暗号鍵記憶部123から暗号鍵を取得し(S402)、取得した暗号鍵を暗号鍵記憶部123から削除するか、あるいは、暗号鍵中の一部のバイト列のみを取得した場合にはオフセット情報を更新する(S403)。
【0062】
続いて、暗号化処理部12は、暗号化ロジック121により、音声・映像チャンクを暗号化する(S404)。また、暗号化ロジック121は、暗号鍵記憶部123にある鍵ISの一覧を取得する(S405)。これは、後続の、詳細は後述する暗号チャンク生成部122による処理(S406)において後述する暗号チャンク(
図12)を整形する際に先読み用鍵IDとして付加する(埋め込む)ためである。暗号化処理部12は、暗号チャンク生成部122により、暗号チャンクを整形し(S406)、最後に、暗号チャンクを送信部13へ出力し(S407)、暗号化処理を終了する。
【0063】
一方、暗号鍵記憶部123に十分な鍵データがない場合(S401:NO)は、暗号化処理部12は、入力データを捨てて(S408)、暗号化処理を終了する(S448)。ただし、暗号化処理による遅延時間が問題にならない場合は、鍵データが蓄積されるのを待ってから、S401を再試行しても良い 。
【0064】
図10は、暗号通信アプリケーション1の受信処理(
図5:S107)の詳細を表すフローチャートである。
【0065】
まず、受信部16が、暗号チャンクを受信すると、これを復号処理部15に入力する(S501)。復号処理部15は、入力された暗号チャンクの復号処理を行い、音声・映像チャンクを生成する(S502)。
【0066】
続いて、復号処理部15は、音声・映像チャンクから、ストリームを生成する(S503)。復号処理部15は、生成したストリームを出力部14へ転送する。
【0067】
出力部14は、復号処理部15からストリームを受け取ると、スピーカから音声を出力し、また、映像をディスプレイに表示する(S504)。
【0068】
図11は、復号処理部15による復号処理の詳細を表すフローチャートである。
【0069】
まず、復号処理部15は、暗号チャンクの入力を受けると、暗号チャンク解析部151により、その暗号チャンクを解析し、復号用鍵IDと先読み用鍵IDとを取得する(S601)。
【0070】
続いて、復号処理部15は、取得した先読み用鍵IDを復号鍵先読み部153に通知し、復号鍵の先読みを要求する(S602)。これを受けて、復号鍵先読み部153は、先読み用鍵IDに一致する復号鍵を鍵管理システム2から取得する(S651)。取得した復号鍵を復号鍵記憶部154に格納する手順は、暗号鍵先読み部124による暗号鍵先読み処理の詳細で説明した手順と同一である(
図6参照)。
【0071】
この復号鍵の先読み処理(S651、S652)は、復号処理部15の復号処理とは非同期に実行される。すなわち、復号処理部15は、先読み処理の完了を待つことなく次の処理に遷移し、復号用鍵IDと一致する復号鍵を復号鍵記憶部154から取得する(S603。
【0072】
復号鍵記憶部154からの復号鍵の取得に成功した場合(S604:YES)、復号処理部15は、取得した復号鍵を復号鍵記憶部154から削除(復号鍵中の一部のバイト列のみを取得した場合はオフセット情報を更新)し(S605)、復号ロジック152により、暗号チャンクの暗号ペイロード部分を復号する(S606)。復号処理部15は、復号された音声・映像チャンクを出力部14へ出力し(S607)、復号処理を終了する。
【0073】
一方、復号鍵記憶部154から復号鍵が取得できなかった場合(S604:NO)は、復号処理部15は、入力データを捨てて(S608)、復号処理を終了する。
【0074】
図12は、暗号化処理部が生成する暗号チャンクのデータテーブルの一例を示す図である。
【0075】
暗号化ペイロードは、暗号鍵の乱数列を使用して音声・映像チャンクを暗号化したものに相当する。
【0076】
復号用鍵IDとオフセット情報は、いずれも暗号化ペイロードを復号するために必要な情報である。復号用鍵IDは、暗号化に使用した暗号鍵の暗号鍵IDと同一であり、オフセット情報は、暗号化に使用した乱数列の暗号鍵中の開始位置を指定する。また、暗号化ペイロードが複数の暗号鍵を連結した乱数列を使用して暗号化されるという場合も発生し得るため、復号用鍵IDおよびオフセット情報は複数指定可能とし、暗号チャンクのデータテーブルは、これらの個数情報(復号用鍵IDの個数)を持つ。
【0077】
先読み用鍵IDは、送信側の暗号通信アプリケーション1の暗号鍵記憶部123に先読みされた暗号鍵であり、受信側の暗号通信アプリケーション1がこれから先読みすべき復号鍵のIDの一覧である。この時、先読み用鍵ID一覧は可変長となるため、暗号チャンクのデータテーブルは、その長さを特定するために、個数情報(先読み用鍵IDの個数)を持つ。
【0078】
以上のように、実施形態の暗号通信システム100においては、鍵の先読みによる通信速度向上の恩恵を受けつつも、暗号通信アプリケーション1間(暗号通信アプリケーション[1]1と暗号通信アプリケーション[2]1との間)で特別な通信プロトコルを用いる必要がないため、様々な通信アプリケーションで量子鍵配送技術(QKD)により共有された暗号鍵・復号鍵を利用した暗号化を活用することができる。
【0079】
つまり、実施形態の暗号通信システム100は、鍵IDの通知用の通信プロトコル等を必要とせずに、鍵の先読みによる通信の高速化を実現することができる。
【0080】
ところで、実施形態の暗号通信システム100においては、送信側の暗号通信アプリケーション1が、暗号データおよび当該暗号データの暗号化に用いた暗号鍵のIDを受信側の暗号通信アプリケーション1へ送信するための暗号チャンクを整形する際、受信側の暗号通信アプリケーション1が先読みすべき復号鍵のIDを埋め込む。この暗号チャンクに埋め込む先読みすべき復号鍵のIDについては、たとえば、時系列的に連続して送受信される暗号チャンク間で一部の先読みすべき復号鍵のIDが重複するように暗号チャンクへの先読みすべき復号鍵のIDの埋め込みを行うようにしてもよい。
【0081】
たとえば、送信側の暗号通信アプリケーション1において、暗号鍵IDが1~6の暗号鍵が先読みされたとき、1個目の暗号チャンクに1~4のIDを埋め込み、2個目の暗号チャンクに3~6のIDを埋め込むようにしてもよい。この場合、1~6の中の3,4が重複して2つの暗号チャンクに埋め込まれている、
この場合、仮に、1個目または2個目の暗号チャンクにパケットロスが起きると、その暗号チャンクに含まれる先読みすべき復号鍵のIDのすべてが不達となるところ、一部のIDについては他の暗号チャンクでリカバリーされることになる。
【0082】
すなわち、実施形態の暗号通信システム100は、埋め込む鍵IDの範囲や個数を調整し、複数の暗号チャンクに同一の先読み用鍵IDを埋め込むことで、暗号通信アプリケーションが再送制御を行わない場合に先読み用鍵IDが不達となる可能性を低減できる。
【0083】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0084】
1…暗号通信アプリケーション、2…鍵管理システム、3…QKD装置、11…入力部、12…暗号化処理部、13…送信部、14…出力部、15…復号処理部、16…受信部、100…暗号通信システム、121…暗号化ロジック、122…暗号チャンク生成部、123…暗号鍵記憶部、124…処理部、151…暗号チャンク解析部、152…復号ロジック、154…復号鍵記憶部、1231、1541…データテーブル。