(57)【要約】  暗号通信装置（１１１）は、メモリ（１５５）と、管理部（１６７）と、暗号化部（１６８）と、データ送信部（１６９）とを備える。暗号化部（１６８）は、通信データの入力を受ける度に、メモリ（１５５）の内部の領域であるバッファに格納された暗号鍵のうち１つの暗号鍵を取得し、取得した暗号鍵を使用して通信データを暗号化することで暗号化データを生成するとともに、取得した暗号鍵をバッファから削除する。データ送信部（１６９）は、暗号化部（１６８）により生成された暗号化データを送信することで暗号通信を行う。管理部（１６７）は、データ送信部（１６９）による暗号通信が継続している間、バッファ内の暗号鍵の数が減る速さに応じて、新たな暗号鍵をバッファに追加する。
2016147340.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、
通信データの入力を受ける度に、前記メモリの内部の領域であるバッファに格納された暗号鍵のうち１つの暗号鍵を取得し、取得した暗号鍵を使用して前記通信データを暗号化することで暗号化データを生成するとともに、取得した暗号鍵を前記バッファから削除する暗号化部と、
前記暗号化部により生成された暗号化データを送信することで暗号通信を行うデータ送信部と、
前記データ送信部による暗号通信が継続している間、前記バッファ内の暗号鍵の数が減る速さに応じて、新たな暗号鍵を前記バッファに追加する管理部と
を備える暗号通信装置。
【請求項２】
前記管理部は、前記バッファ内の暗号鍵の数が減る速さと前記バッファに残っている暗号鍵の数とから、前記バッファ内の暗号鍵がなくなるまでの時間を推測し、推測した時間が閾値を下回った場合に、前記新たな暗号鍵を前記バッファに追加する請求項１に記載の暗号通信装置。
【請求項３】
前記暗号化部により使用される暗号鍵は、前記暗号通信の相手との通信により決定される請求項１又は２に記載の暗号通信装置。
【請求項４】
請求項１から３のいずれか１項に記載の暗号通信装置と、
前記通信データを前記暗号通信装置に入力するプログラムを実行する処理装置と
を備える暗号通信端末。
【請求項５】
前記バッファは、前記プログラムである複数のアプリケーションのそれぞれに対して個別に割り当てられ、
前記管理部は、前記複数のアプリケーションのうち、前記暗号通信が継続しているアプリケーションに割り当てられた前記バッファ内の暗号鍵の数が減る速さに応じて、前記新たな暗号鍵を当該アプリケーションに割り当てられた前記バッファに追加する請求項４に記載の暗号通信端末。
【請求項６】
メモリと、
暗号化データを受信することで暗号通信を行うデータ受信部と、
前記データ受信部により前記暗号化データが受信される度に、前記メモリの内部の領域であるバッファに格納された暗号鍵のうち１つの暗号鍵を取得し、取得した暗号鍵を使用して前記暗号化データを復号することで通信データを生成するとともに、取得した暗号鍵を前記バッファから削除する復号部と、
前記データ受信部による暗号通信が継続している間、前記バッファ内の暗号鍵の数が減る速さに応じて、新たな暗号鍵を前記バッファに追加する管理部と
を備える暗号通信装置。
【請求項７】
前記管理部は、前記バッファ内の暗号鍵の数が減る速さと前記バッファに残っている暗号鍵の数とから、前記バッファ内の暗号鍵がなくなるまでの時間を推測し、推測した時間が閾値を下回った場合に、前記新たな暗号鍵を前記バッファに追加する請求項６に記載の暗号通信装置。
【請求項８】
前記復号部により使用される暗号鍵は、前記暗号通信の相手との通信により決定される請求項６又は７に記載の暗号通信装置。
【請求項９】
請求項６から８のいずれか１項に記載の暗号通信装置と、
前記通信データの入力を前記暗号通信装置から受けるプログラムを実行する処理装置と
を備える暗号通信端末。
【請求項１０】
前記バッファは、前記プログラムである複数のアプリケーションのそれぞれに対して個別に割り当てられ、
前記管理部は、前記複数のアプリケーションのうち、前記暗号通信が継続しているアプリケーションに割り当てられた前記バッファ内の暗号鍵の数が減る速さに応じて、前記新たな暗号鍵を当該アプリケーションに割り当てられた前記バッファに追加する請求項９に記載の暗号通信端末。
【請求項１１】
メモリを備えるコンピュータが、通信データの入力を受ける度に、前記メモリの内部の領域であるバッファに格納された暗号鍵のうち１つの暗号鍵を取得し、取得した暗号鍵を使用して前記通信データを暗号化することで暗号化データを生成するとともに、取得した暗号鍵を前記バッファから削除し、
前記コンピュータが、前記暗号化データを送信することで暗号通信を行い、
前記コンピュータが、前記暗号通信が継続している間、前記バッファ内の暗号鍵の数が減る速さに応じて、新たな暗号鍵を前記バッファに追加する暗号通信方法。
【請求項１２】
メモリを備えるコンピュータが、暗号化データを受信することで暗号通信を行い、
前記コンピュータが、前記暗号化データが受信される度に、前記メモリの内部の領域であるバッファに格納された暗号鍵のうち１つの暗号鍵を取得し、取得した暗号鍵を使用して前記暗号化データを復号することで通信データを生成するとともに、取得した暗号鍵を前記バッファから削除し、
前記コンピュータが、前記暗号通信が継続している間、前記バッファ内の暗号鍵の数が減る速さに応じて、新たな暗号鍵を前記バッファに追加する暗号通信方法。
【請求項１３】
メモリを備えるコンピュータに、
通信データの入力を受ける度に、前記メモリの内部の領域であるバッファに格納された暗号鍵のうち１つの暗号鍵を取得し、取得した暗号鍵を使用して前記通信データを暗号化することで暗号化データを生成するとともに、取得した暗号鍵を前記バッファから削除する処理と、
前記暗号化データを送信することで暗号通信を行う処理と、
前記暗号通信が継続している間、前記バッファ内の暗号鍵の数が減る速さに応じて、新たな暗号鍵を前記バッファに追加する処理と
を実行させる暗号通信プログラム。
【請求項１４】
メモリを備えるコンピュータに、
暗号化データを受信することで暗号通信を行う処理と、
前記暗号化データが受信される度に、前記メモリの内部の領域であるバッファに格納された暗号鍵のうち１つの暗号鍵を取得し、取得した暗号鍵を使用して前記暗号化データを復号することで通信データを生成するとともに、取得した暗号鍵を前記バッファから削除する処理と、
前記暗号通信が継続している間、前記バッファ内の暗号鍵の数が減る速さに応じて、新たな暗号鍵を前記バッファに追加する処理と
を実行させる暗号通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号通信装置及び暗号通信端末及び暗号通信方法及び暗号通信プログラムに関するものである。
【背景技術】
【０００２】
ワンタイムパッド暗号は、送信側と受信側とで鍵を共有する共通鍵暗号の一方式である。ワンタイムパッド暗号では、通信データと同一ビット数の暗号鍵を用いて暗号化が行われる。ワンタイムパッド暗号では、一度暗号化に使用された暗号鍵は再利用されない。即ち、暗号鍵は使い捨てにされる。【０００３】
ワンタイムパッド暗号の典型的な例としては、バーナム暗号がある。バーナム暗号では、通信データと暗号鍵とについて１ビットずつ排他的論理和等が計算され、計算結果が暗号化データとして送信される。通信データと暗号鍵とに１ビットでもズレが生じていると、暗号化データは正しく復号できない。そのため、通信データに対して、どの部分の暗号鍵を利用するかをどのような手段で調整するかが重要である。【０００４】
ワンタイムパッド暗号を用いた従来の通信システムでは、暗号通信前に通信端末間で互いに持っている暗号鍵が確認され、暗号化に利用する暗号鍵が調整される。これにより、暗号鍵に部分的な抜け又はズレ等があった場合でも暗号通信が可能になっている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１２／０２５９８７号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来の通信システムでは、一定の時間分の通信データを暗号化できるだけの暗号鍵が事前に用意される。しかし、前述したように、暗号鍵は使い捨てにされるため、暗号通信中に暗号鍵が枯渇する場合がある。その場合、暗号鍵が枯渇してから暗号鍵が補充されるまでに遅延が生じる。なお、暗号鍵が「枯渇」するというのは、暗号鍵の残数が０個になるという意味である。【０００７】
本発明は、暗号鍵が枯渇してから暗号鍵が補充されるまでに生じる遅延を解消することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一の態様に係る暗号通信装置は、
メモリと、
通信データの入力を受ける度に、前記メモリの内部の領域であるバッファに格納された暗号鍵のうち１つの暗号鍵を取得し、取得した暗号鍵を使用して前記通信データを暗号化することで暗号化データを生成するとともに、取得した暗号鍵を前記バッファから削除する暗号化部と、
前記暗号化部により生成された暗号化データを送信することで暗号通信を行うデータ送信部と、
前記データ送信部による暗号通信が継続している間、前記バッファ内の暗号鍵の数が減る速さに応じて、新たな暗号鍵を前記バッファに追加する管理部とを備える。
【発明の効果】
【０００９】
本発明では、暗号通信が継続している間、バッファ内の暗号鍵の数が減る速さに応じて、新たな暗号鍵がバッファに追加される。このため、暗号鍵が枯渇してから暗号鍵が補充されるまでに生じる遅延を解消することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係る通信システムの構成を示すブロック図。
【図２】実施の形態１に係る通信システムの動作を示す図。
【図３】実施の形態１に係る暗号通信装置の構成を示すブロック図。
【図４】実施の形態１に係る暗号通信装置の構成を示すブロック図。
【図５】実施の形態１に係る暗号通信装置の動作を示すフローチャート。
【図６】実施の形態１に係る暗号通信装置の動作を示す詳細フローチャート。
【図７】実施の形態１に係る暗号通信装置の動作を示す詳細フローチャート。
【図８】実施の形態１に係る暗号通信装置の処理の具体例を示す図。
【図９】実施の形態１に係る暗号通信装置の処理の具体例を示す図。
【図１０】実施の形態１に係る暗号通信装置の処理の具体例を示す図。
【図１１】実施の形態１に係る暗号通信装置の処理の具体例を示す図。
【図１２】実施の形態１に係る暗号通信装置の処理の具体例を示す図。
【図１３】実施の形態１に係る暗号通信装置の処理の具体例を示す図。
【図１４】実施の形態１に係る暗号通信装置の処理の具体例を示す図。
【図１５】本発明の実施の形態に係る暗号通信装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一又は相当する部分には、同一符号を付している。実施の形態の説明において、同一又は相当する部分については、その説明を適宜省略又は簡略化する。
【００１２】
実施の形態１．
まず、本実施の形態の概要として、本実施の形態に係るシステムの構成、本実施の形態に係るシステムの動作、本実施の形態の効果を順番に説明する。
【００１３】
＊＊＊構成の説明＊＊＊
図１を参照して、本実施の形態に係るシステムである通信システム１００の構成を説明する。
【００１４】
通信システム１００は、複数の暗号通信端末１１０，１２０を備える。
【００１５】
本実施の形態において、暗号通信端末１１０，１２０は、それぞれスマートフォン、タブレット、携帯電話機といった携帯端末である。なお、暗号通信端末１１０，１２０は、それぞれパーソナルコンピュータ等、携帯端末以外の端末であってもよい。
【００１６】
送信側の暗号通信端末１１０である端末Ａは、暗号通信装置１１１と、処理装置１１２とを備える。
【００１７】
暗号通信装置１１１は、通信データの入力を受ける度に、使い捨ての暗号鍵を使用して通信データを暗号化することで暗号化データを生成する。暗号通信装置１１１は、生成した暗号化データを送信することで暗号通信を行う。
【００１８】
処理装置１１２は、通信データを暗号通信装置１１１に入力するプログラム１１３を実行する。本実施の形態において、プログラム１１３は、複数のアプリケーション１１４である。処理装置１１２は、具体的には、ＣＰＵ（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）等のプロセッサである。
【００１９】
端末Ａには、鍵共有装置１１５を接続することができる。暗号通信装置１１１は、端末Ａに鍵共有装置１１５が接続されている場合に、鍵共有装置１１５から暗号鍵を取得することができる。暗号通信装置１１１は、端末Ａに鍵共有装置１１５が接続されていない場合には、予め暗号鍵を記憶しておくか、独自に暗号鍵を生成する。
【００２０】
受信側の暗号通信端末１２０である端末Ｂは、暗号通信装置１２１と、処理装置１２２とを備える。
【００２１】
暗号通信装置１２１は、暗号化データを受信することで暗号通信を行う。暗号通信装置１２１は、暗号化データを受信する度に、使い捨ての暗号鍵を使用して暗号化データを復号することで通信データを生成する。
【００２２】
処理装置１２２は、通信データの入力を暗号通信装置１２１から受けるプログラム１２３を実行する。本実施の形態において、プログラム１２３は、複数のアプリケーション１２４である。処理装置１２２は、具体的には、ＣＰＵ等のプロセッサである。
【００２３】
端末Ｂには、鍵共有装置１２５を接続することができる。暗号通信装置１２１は、端末Ｂに鍵共有装置１２５が接続されている場合に、鍵共有装置１２５から暗号鍵を取得することができる。暗号通信装置１２１は、端末Ｂに鍵共有装置１２５が接続されていない場合には、予め暗号鍵を記憶しておくか、独自に暗号鍵を生成する。
【００２４】
端末Ａと端末Ｂは、インターネット等のネットワーク１３０に接続されている。
【００２５】
本実施の形態では、暗号通信端末１１０，１２０同士の暗号通信が、ネットワーク１３０を介して、暗号通信端末１１０，１２０のそれぞれに内蔵された暗号通信装置１１１，１２１により行われる。暗号通信装置１１１，１２１は、暗号通信端末１１０，１２０のそれぞれで実行されるアプリケーション１１４，１２４とは独立した暗号通信モジュールである。よって、本実施の形態では、暗号通信機能を持たないアプリケーション１１４，１２４でも暗号通信を利用することが可能となる。
【００２６】
暗号通信装置１１１，１２１は、後述するように、各アプリケーション１１４，１２４用に暗号鍵を一時保有するバッファを持つ。暗号通信端末１１０において、各アプリケーション１１４が他の暗号通信端末１２０との通信を行う場合には、該当するバッファにある暗号鍵を用いて暗号通信が行われる。暗号通信端末１２０においても同じである。
【００２７】
暗号通信装置１１１，１２１は、各アプリケーション１１４，１２４用のバッファを管理する。暗号通信によりバッファ内の暗号鍵が減少した場合には、暗号通信装置１１１，１２１が、暗号通信により消費される暗号鍵の量とバッファ内の暗号鍵の残量とを基に、必要であればバッファに暗号鍵を追加する。
【００２８】
なお、暗号通信端末１１０，１２０のうちいずれか１台又は両方に、送信側の暗号通信モジュールと受信側の暗号通信モジュールとの両方が搭載されていてもよい。即ち、端末Ａの暗号通信装置１１１が、送信側と受信側との両方の機能を有していてもよい。その場合、暗号通信装置１１１は、送信側と受信側との２つの暗号通信モジュールで構成されてもよいし、送信側と受信側とが統合された１つの暗号通信モジュールで構成されてもよい。端末Ｂの暗号通信装置１２１についても、端末Ａの暗号通信装置１１１と同じである。
【００２９】
通信システム１００が備える暗号通信端末の台数は、２台に限らず、３台以上でもよい。３台以上の暗号通信端末のうち、少なくとも１台の暗号通信端末に送信側の暗号通信モジュールが搭載され、他の少なくとも１台の暗号通信端末に受信側の暗号通信モジュールが搭載されていれば、残りの暗号通信端末には、送信側の暗号通信モジュールと受信側の暗号通信モジュールとのうち少なくともいずれかが搭載されていればよい。
【００３０】
＊＊＊動作の説明＊＊＊
図２を参照して、通信システム１００の動作を説明する。具体的には、端末Ａのアプリケーション１１４と端末Ｂのアプリケーション１２４とで、通信が行われる場合の動作の概要を説明する。この動作では、端末Ａのアプリケーション１１４から送られた通信データが、端末Ａの暗号通信装置１１１で暗号化される。暗号化された通信データが、端末Ｂの暗号通信装置１２１で復号される。復号された通信データが、端末Ｂのアプリケーション１２４で受け取られる。
【００３１】
まず、端末Ａのアプリケーション１１４は、端末Ｂの宛先情報Ｔ１を端末Ａの暗号通信装置１１１に送る。暗号通信装置１１１は、宛先情報Ｔ１から端末Ｂを特定する。暗号通信装置１１１は、自身の保有する暗号鍵群Ｇ１から鍵リストＬ１を作成する。暗号鍵群Ｇ１には、暗号鍵Ｋ１が含まれる。暗号通信装置１１１は、端末Ｂの暗号通信装置１２１に鍵リストＬ１を送信する。
【００３２】
端末Ｂのアプリケーション１２４は、端末Ａの宛先情報Ｔ２を端末Ｂの暗号通信装置１２１に送る。暗号通信装置１２１は、宛先情報Ｔ２から端末Ａを特定する。暗号通信装置１２１は、端末Ａの暗号通信装置１１１から鍵リストＬ１を受信する。暗号通信装置１２１は、自身の保有する暗号鍵群Ｇ２から鍵リストＬ２を作成する。暗号鍵群Ｇ２には、暗号鍵Ｋ１が含まれる。ただし、暗号鍵群Ｇ２に含まれる暗号鍵の全てが暗号鍵群Ｇ１に含まれる暗号鍵と一致している必要はない。暗号通信装置１２１は、鍵リストＬ１と鍵リストＬ２とから、暗号通信で利用する暗号鍵Ｋ１を特定する。暗号通信装置１２１は、暗号鍵Ｋ１の識別情報である鍵情報Ｉ１を端末Ａの暗号通信装置１１１に送信する。
【００３３】
端末Ａの暗号通信装置１１１は、鍵情報Ｉ１を受信する。暗号通信装置１１１は、鍵情報Ｉ１が指す暗号鍵Ｋ１のデータを、端末Ａのアプリケーション１１４に割り当てられたバッファＭ１に展開する。端末Ｂの暗号通信装置１２１においても、鍵情報Ｉ１が指す暗号鍵Ｋ１のデータを、端末Ｂのアプリケーション１２４に割り当てられたバッファＭ２に展開する。
【００３４】
その後、端末Ａのアプリケーション１１４から端末Ａの暗号通信装置１１１に通信データＤ１が送られたとすると、暗号通信装置１１１は、バッファＭ１にある暗号鍵Ｋ１を使って通信データＤ１を暗号化し、暗号化データＥ１を作成する。暗号通信装置１１１は、端末Ｂの暗号通信装置１２１に暗号化データＥ１を送信する。
【００３５】
端末Ｂの暗号通信装置１２１は、暗号化データＥ１を受信する。暗号通信装置１２１は、バッファＭ２にある暗号鍵Ｋ１を使って暗号化データＥ１を復号し、通信データＤ１を得る。暗号通信装置１２１は、通信データＤ１を端末Ｂのアプリケーション１２４に送る。
【００３６】
以降、端末Ａのアプリケーション１１４から端末Ａの暗号通信装置１１１に送られる通信データがなくなるまで、同様の処理が繰り返される。なお、「同様の処理」とは、処理ごとに異なる暗号鍵を使って上記と同じ手順で行われる処理のことである。
【００３７】
ここで、バッファＭ１及びバッファＭ２にある暗号鍵が暗号通信により消費されることで、暗号鍵が不足し、暗号通信が行えない場合が想定される。そのため、端末Ａの暗号通信装置１１１と端末Ｂの暗号通信装置１２１は、それぞれバッファＭ１及びバッファＭ２の暗号鍵の減少速度を監視する。
【００３８】
端末Ａの暗号通信装置１１１と端末Ｂの暗号通信装置１２１は、それぞれバッファＭ１及びバッファＭ２の暗号鍵がなくなる前に、バッファＭ１及びバッファＭ２に暗号鍵を追加する。追加する暗号鍵を特定するために、端末Ａの暗号通信装置１１１は、自身の保有する暗号鍵群Ｇ３から鍵リストＬ３を作成する。暗号鍵群Ｇ３には、暗号鍵Ｋ３が含まれる。暗号通信装置１１１は、端末Ｂの暗号通信装置１２１に鍵リストＬ３を送信する。
【００３９】
端末Ｂの暗号通信装置１２１は、鍵リストＬ３を受信する。暗号通信装置１２１は、自身の保有する暗号鍵群Ｇ４から鍵リストＬ４を作成する。暗号鍵群Ｇ４には、暗号鍵Ｋ３が含まれる。ただし、暗号鍵群Ｇ４に含まれる暗号鍵の全てが暗号鍵群Ｇ３に含まれる暗号鍵と一致している必要はない。暗号通信装置１２１は、鍵リストＬ３と鍵リストＬ４とから、暗号通信で利用する暗号鍵Ｋ２を特定する。暗号通信装置１２１は、暗号鍵Ｋ２の識別情報である鍵情報Ｉ２を端末Ａの暗号通信装置１１１に送信する。
【００４０】
端末Ａの暗号通信装置１１１は、鍵情報Ｉ２を受信する。暗号通信装置１１１は、鍵情報Ｉ２が指す暗号鍵Ｋ２のデータを、端末Ａのアプリケーション１１４に割り当てられたバッファＭ１に展開する。端末Ｂの暗号通信装置１２１においても、鍵情報Ｉ２が指す暗号鍵Ｋ２のデータを、端末Ｂのアプリケーション１２４に割り当てられたバッファＭ２に展開する。
【００４１】
＊＊＊効果の説明＊＊＊
本実施の形態では、上記のように、特定のアプリケーション１１４，１２４の暗号通信中に暗号鍵が枯渇する前に暗号鍵を追加することで、暗号鍵が枯渇してから暗号鍵が追加されるまでに生じる遅延を解消することができる。
【００４２】
また、本実施の形態では、同一の暗号通信端末１１０，１２０内で、複数のアプリケーション１１４，１２４がワンタイムパッド暗号通信を行う場合に、それぞれのアプリケーション１１４，１２４で専用の暗号鍵を保有する必要がない。よって、暗号通信端末１１０，１２０内のデータ容量を削減することができる。
【００４３】
また、本実施の形態では、暗号鍵を取得するための通信路を、暗号通信を行う通信路とは別に用意する必要がない。
【００４４】
次に、本実施の形態の詳細として、暗号通信装置１１１，１２１の構成、暗号通信装置１１１，１２１の動作、本実施の形態の効果を順番に説明する。
【００４５】
＊＊＊構成の説明＊＊＊
図３を参照して、端末Ａの暗号通信装置１１１の構成を説明する。
【００４６】
暗号通信装置１１１は、有線インタフェース１５１と、内部インタフェース１５２と、通信インタフェース１５３と、記憶媒体１５４と、メモリ１５５とを備える。また、暗号通信装置１１１は、取得部１６１と、データ受け付け部１６２と、要求受け付け部１６３と、リスト生成部１６４と、リスト送信部１６５と、情報受信部１６６と、管理部１６７と、暗号化部１６８と、データ送信部１６９とを備える。
【００４７】
有線インタフェース１５１は、外部装置と通信を行うためのインタフェースである。有線インタフェース１５１は、鍵共有装置１１５から暗号鍵を取得するために用いられる。なお、有線インタフェース１５１は、無線インタフェースに置き換えることができる。
【００４８】
内部インタフェース１５２は、端末Ａ内のアプリケーション１１４と通信を行うためのインタフェースである。内部インタフェース１５２は、アプリケーション１１４と宛先情報及び通信データのやり取りを行うために用いられる。
【００４９】
通信インタフェース１５３は、他の端末と通信を行うためのインタフェースである。通信インタフェース１５３は、端末Ｂと通信を行うために用いられる。
【００５０】
記憶媒体１５４は、取得部１６１で取得された暗号鍵群を記憶する。
【００５１】
メモリ１５５は、端末Ａのアプリケーション１１４に関連付けられたバッファを有する。
【００５２】
取得部１６１は、有線インタフェース１５１を介して、鍵共有装置１１５から暗号鍵を取得する。取得部１６１は、取得した暗号鍵を記憶媒体１５４に保存する。
【００５３】
データ受け付け部１６２は、内部インタフェース１５２を介して、端末Ａのアプリケーション１１４から通信データを受け取る。データ受け付け部１６２は、受け取った通信データを暗号化部１６８に渡す。
【００５４】
要求受け付け部１６３は、内部インタフェース１５２を介して、端末Ａのアプリケーション１１４から宛先情報を受け取る。要求受け付け部１６３は、リスト生成部１６４に鍵リストの生成を指示する。
【００５５】
リスト生成部１６４は、要求受け付け部１６３から宛先情報を受け取る。リスト生成部１６４は、記憶媒体１５４にある暗号鍵群から鍵リストを生成する。リスト生成部１６４は、生成した鍵リストを、宛先情報とともにリスト送信部１６５に渡す。
【００５６】
リスト送信部１６５は、リスト生成部１６４から鍵リストと宛先情報とを受け取る。リスト送信部１６５は、宛先情報に記載されている宛先である端末Ｂに、通信インタフェース１５３を介して鍵リストを送信する。
【００５７】
情報受信部１６６は、リスト送信部１６５が鍵リストを送信した相手である端末Ｂから、通信インタフェース１５３を介して、暗号鍵の識別情報である鍵情報を受信する。情報受信部１６６は、受信した鍵情報を管理部１６７に渡す。
【００５８】
管理部１６７は、情報受信部１６６から受け取った鍵情報に合致する暗号鍵を記憶媒体１５４から取得する。管理部１６７は、記憶媒体１５４にある暗号鍵に使用中であることを示すフラグを設定する。そして、管理部１６７は、メモリ１５５の端末Ａのアプリケーション１１４に関連付けたバッファに暗号鍵を展開する。ここで、メモリ１５５に、端末Ａのアプリケーション１１４に関連付けたバッファがない場合には、管理部１６７は、メモリ１５５に、そのバッファを設定する。管理部１６７は、バッファに展開した暗号鍵を記憶媒体１５４から削除する。
【００５９】
暗号化部１６８は、データ受け付け部１６２から通信データを受け取る。暗号化部１６８は、メモリ１５５にある端末Ａのアプリケーション１１４に関連付けられたバッファから暗号鍵のビット列を取得する。暗号化部１６８は、取得した暗号鍵のビット列を使って通信データをワンタイムパッド暗号により暗号化し、暗号化データを生成する。暗号化部１６８は、生成した暗号化データをデータ送信部１６９に渡す。
【００６０】
データ送信部１６９は、通信インタフェース１５３を介して、暗号化部１６８から受け取った暗号化データを送信する。
【００６１】
図４を参照して、端末Ｂの暗号通信装置１２１の構成を説明する。
【００６２】
暗号通信装置１２１は、有線インタフェース１７１と、内部インタフェース１７２と、通信インタフェース１７３と、記憶媒体１７４と、メモリ１７５とを備える。また、暗号通信装置１２１は、取得部１８１と、データ送出部１８２と、要求受け付け部１８３と、情報生成部１８４と、リスト受信部１８５と、情報送信部１８６と、管理部１８７と、復号部１８８と、データ受信部１８９とを備える。
【００６３】
有線インタフェース１７１は、外部装置と通信を行うためのインタフェースである。有線インタフェース１７１は、鍵共有装置１２５から暗号鍵を取得するために用いられる。なお、有線インタフェース１７１は、無線インタフェースに置き換えることができる。
【００６４】
内部インタフェース１７２は、端末Ｂ内のアプリケーション１２４と通信を行うためのインタフェースである。内部インタフェース１７２は、アプリケーション１２４と宛先情報及び通信データのやり取りを行うために用いられる。
【００６５】
通信インタフェース１７３は、他の端末と通信を行うためのインタフェースである。通信インタフェース１７３は、端末Ａと通信を行うために用いられる。
【００６６】
記憶媒体１７４は、取得部１８１で取得された暗号鍵群を記憶する。
【００６７】
メモリ１７５は、端末Ｂのアプリケーション１２４に関連付けられたバッファを有する。
【００６８】
取得部１８１は、有線インタフェース１７１を介して、鍵共有装置１２５から暗号鍵を取得する。取得部１８１は、取得した暗号鍵を記憶媒体１７４に保存する。
【００６９】
要求受け付け部１８３は、内部インタフェース１７２を介して、端末Ｂのアプリケーション１２４から宛先情報を受け取る。要求受け付け部１８３は、リスト受信部１８５に鍵リストの受信待機を指示する。
【００７０】
リスト受信部１８５は、通信インタフェース１７３を介して鍵リストを受信する。リスト受信部１８５は、受信した鍵リストを情報生成部１８４に渡す。
【００７１】
情報生成部１８４は、リスト受信部１８５から鍵リストを受け取る。情報生成部１８４は、記憶媒体１７４にある暗号鍵群から鍵リストを生成する。情報生成部１８４は、リスト受信部１８５から受け取った鍵リストと、生成した鍵リストとから、暗号鍵の識別情報である鍵情報を生成する。情報生成部１８４は、生成した鍵情報を情報送信部１８６に渡す。
【００７２】
情報送信部１８６は、通信インタフェース１７３を介して、リスト受信部１８５が鍵リストを受信した相手である端末Ａに、情報生成部１８４から受け取った鍵情報を送信する。情報送信部１８６は、送信した鍵情報を管理部１８７に渡す。
【００７３】
管理部１８７は、情報送信部１８６から受け取った鍵情報に合致する暗号鍵を記憶媒体１７４から取得する。管理部１８７は、記憶媒体１７４にある暗号鍵に使用中であることを示すフラグを設定する。そして、管理部１８７は、メモリ１７５の端末Ｂのアプリケーション１２４に関連付けたバッファに暗号鍵を展開する。ここで、メモリ１７５に、端末Ｂのアプリケーション１２４に関連付けたバッファがない場合には、管理部１８７は、メモリ１７５に、そのバッファを設定する。管理部１８７は、バッファに展開した暗号鍵を記憶媒体１７４から削除する。
【００７４】
データ受信部１８９は、通信インタフェース１７３を介して、暗号化データを受信する。データ受信部１８９は、受信した暗号化データを復号部１８８に渡す。
【００７５】
復号部１８８は、データ受信部１８９から暗号化データを受け取る。復号部１８８は、メモリ１７５にある端末Ｂのアプリケーション１２４に関連付けられたバッファから暗号鍵のビット列を取得する。復号部１８８は、取得した暗号鍵のビット列を使って暗号化データをワンタイムパッド暗号により復号し、通信データを生成する。復号部１８８は、生成した通信データをデータ送出部１８２に渡す。
【００７６】
データ送出部１８２は、通信データを復号部１８８から受け取る。データ送出部１８２は、受け取った通信データを、内部インタフェース１７２を介して、端末Ｂのアプリケーション１２４に渡す。
【００７７】
＊＊＊動作の説明＊＊＊
図５から図７を参照して、端末Ａの暗号通信装置１１１及び端末Ｂの暗号通信装置１２１の動作を説明する。具体的には、端末Ａの暗号通信装置１１１が端末Ａのアプリケーション１１４の暗号通信要求を受け取ってから、端末Ｂのアプリケーション１２４に通信データが届くまでの動作について説明する。暗号通信装置１１１，１２１の動作は、本実施の形態に係る暗号通信方法に相当する。暗号通信装置１１１，１２１の動作は、本実施の形態に係る暗号通信プログラムの処理手順に相当する。
【００７８】
図５は、端末Ａの暗号通信装置１１１及び端末Ｂの暗号通信装置１２１の大まかな処理の流れを示している。
【００７９】
ステップＳ１１において、端末Ａのアプリケーション１１４と端末Ｂのアプリケーション１２４との間で任意の方法により暗号通信を利用することが決定される。端末Ａの暗号通信装置１１１は、端末Ａのアプリケーション１１４から暗号通信要求を受け取る。この暗号通信要求には、端末Ｂを指定する宛先情報Ｔ１が含まれる。端末Ｂの暗号通信装置１２１も、端末Ｂのアプリケーション１２４から暗号通信要求を受け取る。この暗号通信要求には、端末Ａを指定する宛先情報Ｔ２が含まれる。
【００８０】
ステップＳ１２において、端末Ａの暗号通信装置１１１と端末Ｂの暗号通信装置１２１は、互いに鍵確認処理を行う。
【００８１】
ステップＳ１３において、端末Ａの暗号通信装置１１１は、送信側の暗号通信処理を行う。端末Ｂの暗号通信装置１２１は、受信側の暗号通信処理を行う。
【００８２】
図６は、図５のステップＳ１２における鍵確認処理の流れを示している。なお、鍵確認処理は通信データの送受信に直接関与していないため、端末Ａの暗号通信装置１１１と端末Ｂの暗号通信装置１２１との役割は入れ替わってもよい。
【００８３】
ステップＳ２１において、端末Ａの暗号通信装置１１１は、記憶媒体１５４にある暗号鍵群Ｇ１から鍵リストＬ１を作成する。
【００８４】
ステップＳ２２において、端末Ａの暗号通信装置１１１は、ステップＳ２１で作成した鍵リストＬ１を端末Ｂの暗号通信装置１２１に送信する。
【００８５】
ステップＳ２３において、端末Ｂの暗号通信装置１２１は、ステップＳ２２で送信された鍵リストＬ１を受信する。また、端末Ｂの暗号通信装置１２１は、記憶媒体１７４にある暗号鍵群Ｇ２から鍵リストＬ２を作成する。
【００８６】
ステップＳ２４において、端末Ｂの暗号通信装置１２１は、ステップＳ２３で受信した鍵リストＬ１と、ステップＳ２３で作成した鍵リストＬ２とから、暗号通信に用いる暗号鍵Ｋ１を確定する。
【００８７】
ステップＳ２５において、端末Ｂの暗号通信装置１２１は、記憶媒体１７４にある、ステップＳ２４で確定した暗号鍵Ｋ１に対して、使用中であることを示すフラグを設定する。
【００８８】
ステップＳ２６において、端末Ｂの暗号通信装置１２１は、ステップＳ２４で確定した暗号鍵Ｋ１の鍵情報Ｉ１を端末Ａの暗号通信装置１１１に送信する。
【００８９】
ステップＳ２７において、端末Ａの暗号通信装置１１１は、ステップＳ２６で送信された鍵情報Ｉ１を受信する。
【００９０】
ステップＳ２８において、端末Ａの暗号通信装置１１１は、記憶媒体１５４にある、ステップＳ２７で受信した鍵情報Ｉ１に対応する暗号鍵Ｋ１に対して、使用中であることを示すフラグを設定する。
【００９１】
ステップＳ２９において、端末Ａの暗号通信装置１１１は、ステップＳ２７で受信した鍵情報Ｉ１に対応する暗号鍵Ｋ１をメモリ１５５にあるバッファＭ１に展開し、元の暗号鍵Ｋ１を記憶媒体１５４から削除する。
【００９２】
ステップＳ３０において、端末Ａの暗号通信装置１１１は、暗号通信の開始を通知する。
【００９３】
ステップＳ３１において、端末Ｂの暗号通信装置１２１は、暗号通信の開始の通知を受ける。
【００９４】
ステップＳ３２において、端末Ｂの暗号通信装置１２１は、ステップＳ２５でフラグを設定した暗号鍵Ｋ１をメモリ１７５にあるバッファＭ２に展開し、元の暗号鍵Ｋ１を記憶媒体１７４から削除する。
【００９５】
なお、ステップＳ２４からＳ２９及びステップＳ３２の処理は、暗号鍵Ｋ１だけでなく、送信側の鍵リストＬ１と受信側の鍵リストＬ２とで共通する全ての暗号鍵について行われる。
【００９６】
図７は、図５のステップＳ１３における暗号通信処理の流れを示している。
【００９７】
ステップＳ４１において、端末Ａの暗号通信装置１１１は、端末Ａのアプリケーション１１４から通信データＤ１を受け取る。
【００９８】
ステップＳ４２において、端末Ａの暗号通信装置１１１は、メモリ１５５のバッファＭ１にある暗号鍵Ｋ１を用いて、ステップＳ４１で受け取った通信データＤ１をワンタイムパッド暗号により暗号化し、暗号化データＥ１を得る。
【００９９】
ステップＳ４３において、端末Ａの暗号通信装置１１１は、ステップＳ４２で得た暗号化データＥ１を端末Ｂの暗号通信装置１２１に送信する。ここで通信終了であれば、暗号通信処理が終了する。
【０１００】
通信終了でない場合は、ステップＳ４４において、端末Ａの暗号通信装置１１１は、バッファＭ１にある暗号鍵の残量をチェックし、バッファＭ１に暗号鍵を追加する必要があるか判定する。暗号鍵を追加する必要がなければ、端末Ａの暗号通信装置１１１は、次の通信データについてステップＳ４１以降の処理を繰り返す。
【０１０１】
ステップＳ４４の判定の結果、バッファＭ１に暗号鍵を追加する場合には、ステップＳ４５において、端末Ａの暗号通信装置１１１は、鍵確認処理を行う。鍵確認処理については、図６を用いて説明した通りであるが、ステップＳ３０及びＳ３１における暗号通信の開始を通知する処理は不要である。
【０１０２】
ステップＳ４６において、端末Ｂの暗号通信装置１２１は、端末Ａの暗号通信装置１１１から、ステップＳ４３で送信された暗号化データＥ１を受信する。
【０１０３】
ステップＳ４７において、端末Ｂの暗号通信装置１２１は、メモリ１７５のバッファＭ２にある暗号鍵Ｋ１を用いて、ステップＳ４６で受信した暗号化データＥ１をワンタイムパッド暗号により復号し、通信データＤ１を得る。端末Ｂの暗号通信装置１２１は、通信データＤ１を端末Ｂのアプリケーション１２４に渡す。ここで通信終了であれば、暗号通信処理が終了する。
【０１０４】
通信終了でない場合は、ステップＳ４８において、端末Ｂの暗号通信装置１２１は、バッファＭ２にある暗号鍵の残量をチェックし、バッファＭ２に暗号鍵を追加する必要があるか判定する。暗号鍵を追加する必要がなければ、端末Ｂの暗号通信装置１２１は、次の暗号化データについてステップＳ４６以降の処理を繰り返す。
【０１０５】
ステップＳ４８の判定の結果、バッファＭ２に暗号鍵を追加する場合には、ステップＳ４９において、端末Ｂの暗号通信装置１２１は、鍵確認処理を行う。鍵確認処理については、図６を用いて説明した通りであるが、ステップＳ３０及びＳ３１における暗号通信の開始を通知する処理は不要である。
【０１０６】
ここで、暗号通信処理において、端末Ａの暗号通信装置１１１の管理部１６７と暗号化部１６８とデータ送信部１６９とが行う処理について説明する。
【０１０７】
ステップＳ４１及びＳ４２では、暗号化部１６８が、通信データの入力を受ける度に、メモリ１５５の内部の領域であるバッファに格納された暗号鍵のうち１つの暗号鍵を取得し、取得した暗号鍵を使用して通信データを暗号化することで暗号化データを生成するとともに、取得した暗号鍵をバッファから削除する。
【０１０８】
ステップＳ４３では、データ送信部１６９が、暗号化部１６８により生成された暗号化データを送信することで暗号通信を行う。
【０１０９】
ステップＳ４４及びＳ４５では、管理部１６７が、データ送信部１６９による暗号通信が継続している間、バッファ内の暗号鍵の数が減る速さに応じて、新たな暗号鍵をバッファに追加する。具体的には、管理部１６７は、バッファ内の暗号鍵の数が減る速さとバッファに残っている暗号鍵の数とから、バッファ内の暗号鍵がなくなるまでの時間を推測し、推測した時間が閾値を下回った場合に、新たな暗号鍵をバッファに追加する。この閾値は、任意に調整することができるが、バッファ内の暗号鍵が枯渇してからバッファに暗号鍵が補充されるまでに生じる遅延よりも長い時間に設定されることが望ましい。即ち、閾値は、端末Ａの暗号通信装置１１１において鍵確認処理の実行にかかる時間よりも長く設定されることが望ましい。なお、バッファ内の暗号鍵の数が減る速さは、任意の方法で計測することができる。
【０１１０】
暗号通信処理において、端末Ｂの暗号通信装置１２１の管理部１８７と復号部１８８とデータ受信部１８９とが行う処理についても説明する。
【０１１１】
ステップＳ４６では、データ受信部１８９が、暗号化データを受信することで暗号通信を行う。
【０１１２】
ステップＳ４７では、復号部１８８が、データ受信部１８９により暗号化データが受信される度に、メモリ１７５の内部の領域であるバッファに格納された暗号鍵のうち１つの暗号鍵を取得し、取得した暗号鍵を使用して暗号化データを復号することで通信データを生成するとともに、取得した暗号鍵をバッファから削除する。
【０１１３】
ステップＳ４８及びＳ４９では、管理部１８７が、データ受信部１８９による暗号通信が継続している間、バッファ内の暗号鍵の数が減る速さに応じて、新たな暗号鍵をバッファに追加する。具体的には、管理部１８７は、バッファ内の暗号鍵の数が減る速さとバッファに残っている暗号鍵の数とから、バッファ内の暗号鍵がなくなるまでの時間を推測し、推測した時間が閾値を下回った場合に、新たな暗号鍵をバッファに追加する。この閾値は、端末Ａの場合と同じように、任意に調整することができるが、バッファ内の暗号鍵が枯渇してからバッファに暗号鍵が補充されるまでに生じる遅延よりも長い時間に設定されることが望ましい。即ち、閾値は、端末Ｂの暗号通信装置１２１において鍵確認処理の実行にかかる時間よりも長く設定されることが望ましい。なお、バッファ内の暗号鍵の数が減る速さは、任意の方法で計測することができる。
【０１１４】
本実施の形態では、端末Ａの暗号通信装置１１１及び端末Ｂの暗号通信装置１２１のいずれのバッファも、複数のアプリケーション１１４，１２４のそれぞれに対して個別に割り当てられる。そのため、管理部１６７，１８７は、複数のアプリケーション１１４，１２４のうち、暗号通信が継続しているアプリケーション１１４，１２４に割り当てられたバッファ内の暗号鍵の数が減る速さに応じて、新たな暗号鍵を当該アプリケーション１１４，１２４に割り当てられたバッファに追加する。具体的には、管理部１６７，１８７は、当該アプリケーション１１４，１２４に割り当てられたバッファ内の暗号鍵の数が減る速さと、そのバッファに残っている暗号鍵の数とから、そのバッファ内の暗号鍵がなくなるまでの時間を推測し、推測した時間が閾値を下回った場合に、新たな暗号鍵を、そのバッファに追加する。この閾値は、一律に設定されてもよいが、アプリケーション１１４ごとに異なる時間に設定されてもよい。例えば、閾値は、音声通話等、遅延による影響の度合いが比較的大きいアプリケーション１１４ほど長く設定され、メール通信等、遅延による影響の度合いが比較的小さいアプリケーション１１４ほど短く設定されてもよい。
【０１１５】
本実施の形態では、端末Ａの暗号通信装置１１１の暗号化部１６８及び端末Ｂの暗号通信装置１２１の復号部１８８により使用される暗号鍵が、それぞれの暗号通信の相手との通信により決定される。具体的には、どの暗号鍵をどのような順番で使うかが、通信により決定される。しかし、どの暗号鍵をどのような順番で使うかは、事前に決定されていてもよい。その場合、ステップＳ３０及びＳ３１における暗号通信の開始を通知する処理を除く、鍵確認処理の大部分を省略することができる。
【０１１６】
以下では、図８から図１４を参照して、前述した鍵情報、フラグ、暗号鍵群、鍵リスト、通信データ、暗号化データと、これらに関する処理との具体例について説明する。
【０１１７】
図８は、端末Ａの暗号通信装置１１１のリスト生成部１６４が行う処理の具体例を示している。
【０１１８】
記憶媒体１５４の暗号鍵データベース２１０には、暗号鍵群Ｇ１に含まれる複数の暗号鍵が記録されている。各暗号鍵は、鍵情報、フラグ、鍵データで構成されている。例えば、暗号鍵Ｋ１は、鍵情報Ｉ１「００２」、フラグ「未使用」、鍵データ「１０１１１０１１０１０・・・」で構成されている。
【０１１９】
リスト生成部１６４は、暗号鍵データベース２１０からフラグが「未使用」になっている暗号鍵の鍵情報を抽出する。リスト生成部１６４は、抽出した鍵情報のリストを鍵リストＬ１として生成する。
【０１２０】
図９は、端末Ｂの暗号通信装置１２１の情報生成部１８４が行う処理の具体例を示している。
【０１２１】
記憶媒体１７４の暗号鍵データベース２２０には、暗号鍵群Ｇ２に含まれる複数の暗号鍵が記録されている。各暗号鍵の構成については、端末Ａの暗号鍵データベース２１０と同じである。
【０１２２】
情報生成部１８４は、リスト受信部１８５から鍵リストＬ１を受け取ると、暗号鍵データベース２２０からフラグが「未使用」になっている暗号鍵の鍵情報を抽出する。情報生成部１８４は、抽出した鍵情報のリストを鍵リストＬ２として生成する。情報生成部１８４は、鍵リストＬ１と鍵リストＬ２とを比較する。情報生成部１８４は、比較の結果、どちらのリストにもある鍵情報を選択する。例えば、鍵情報Ｉ１は、どちらのリストにもある鍵情報である。情報生成部１８４は、選択した鍵情報を情報送信部１８６に渡す。このとき、情報生成部１８４は、暗号鍵データベース２２０に対して、選択した鍵情報に合致する暗号鍵のフラグを「使用中」に設定する。なお、情報生成部１８４が選択した鍵情報は、情報生成部１８４が生成した鍵情報に相当する。
【０１２３】
図１０は、端末Ａの暗号通信装置１１１の管理部１６７が鍵情報Ｉ１を受け取った際に行う処理の具体例を示している。
【０１２４】
管理部１６７は、情報受信部１６６から鍵情報Ｉ１を受け取ると、同じ鍵情報Ｉ１を持つ暗号鍵Ｋ１を記憶媒体１５４の暗号鍵データベース２１０から探す。管理部１６７は、暗号鍵Ｋ１のフラグを「使用中」に設定する。
【０１２５】
図１１は、端末Ａの暗号通信装置１１１の管理部１６７がバッファＭ１に暗号鍵を展開する際に行う処理の具体例を示している。
【０１２６】
管理部１６７は、情報受信部１６６から受け取ったものと同じ鍵情報Ｉ１を持つ暗号鍵Ｋ１の鍵データを読み込む。管理部１６７は、読み込んだ暗号鍵Ｋ１の鍵データをメモリ１５５のバッファＭ１に展開する。このとき、管理部１６７は、バッファＭ１に展開した暗号鍵Ｋ１を記憶媒体１５４の暗号鍵データベース２１０から削除する。
【０１２７】
同じように、端末Ｂの暗号通信装置１２１の管理部１８７は、情報生成部１８４が生成したものと同じ鍵情報Ｉ１を持つ暗号鍵Ｋ１の鍵データを読み込む。管理部１８７は、読み込んだ暗号鍵Ｋ１の鍵データをメモリ１７５のバッファＭ２に展開する。このとき、管理部１８７は、バッファＭ２に展開した暗号鍵Ｋ１を記憶媒体１７４の暗号鍵データベース２２０から削除する。
【０１２８】
図１２は、端末Ａの暗号通信装置１１１の暗号化部１６８が行う処理の具体例を示している。
【０１２９】
暗号化部１６８は、データ受け付け部１６２から通信データＤ１を受け取ると、メモリ１５５のバッファＭ１から暗号鍵Ｋ１の鍵データを読み出す。暗号化部１６８は、読み出した暗号鍵Ｋ１の鍵データと通信データＤ１との排他的論理和を計算する。暗号化部１６８は、計算結果を暗号化データＥ１としてデータ送信部１６９に渡す。
【０１３０】
図１３は、端末Ｂの暗号通信装置１２１の復号部１８８が行う処理の具体例を示している。
【０１３１】
復号部１８８は、データ受信部１８９から暗号化データＥ１を受け取ると、メモリ１７５のバッファＭ２から暗号鍵Ｋ１の鍵データを読み出す。復号部１８８は、読み出した暗号鍵Ｋ１の鍵データと暗号化データＥ１との排他的論理和を計算する。復号部１８８は、計算結果を通信データＤ１としてデータ送出部１８２に渡す。
【０１３２】
図１４は、端末Ａの暗号通信装置１１１の管理部１６７がバッファＭ１にある暗号鍵の鍵データが減少したことを検知した際に行う処理の具体例を示している。
【０１３３】
管理部１６７は、暗号通信が継続されている間、暗号通信で使われているバッファＭ１を監視する。管理部１６７は、暗号鍵の鍵データの減少する速さと現在の暗号鍵の鍵データの残量とから暗号鍵の鍵データが枯渇するまでの時間を推測する。管理部１６７は、推測した時間が一定値を下回った場合に、鍵確認処理を呼び出すことで、バッファＭ１の暗号鍵が枯渇しない状態を維持する。
【０１３４】
同じように、端末Ｂの暗号通信装置１２１の管理部１８７は、暗号通信が継続されている間、暗号通信で使われているバッファＭ２を監視する。管理部１８７は、暗号鍵の鍵データの減少する速さと現在の暗号鍵の鍵データの残量とから暗号鍵の鍵データが枯渇するまでの時間を推測する。管理部１８７は、推測した時間が一定値を下回った場合に、鍵確認処理を呼び出すことで、バッファＭ２の暗号鍵が枯渇しない状態を維持する。
【０１３５】
＊＊＊効果の説明＊＊＊
上記のように構成された端末Ａ及び端末Ｂにおいては、暗号通信装置１１１，暗号通信装置１２１が暗号鍵を管理することで、各アプリケーション１１４，１２４が個別に暗号鍵を管理することによる、データ容量の増加を回避することができる。また、アプリケーション１１４，１２４ごとに個別のバッファを設け、バッファが枯渇する前に暗号鍵を供給することで、暗号通信時に遅延が生じないシステムを実現することができる。
【０１３６】
つまり、本実施の形態では、複数のアプリケーション１１４，１２４が同時にワンタイムパッド暗号通信を利用することが想定される場合に、暗号通信端末１１０，１２０内のデータ容量を削減することと、暗号通信に遅延を生じさせないことを両立できる。
【０１３７】
以上のように、本実施の形態では、暗号通信が継続している間、バッファ内の暗号鍵の数が減る速さに応じて、新たな暗号鍵がバッファに追加される。このため、暗号鍵が枯渇してから暗号鍵が補充されるまでに生じる遅延を解消することができる。
【０１３８】
以下では、図１５を参照して、本発明の実施の形態に係る暗号通信装置１１１，１２１のハードウェア構成例を説明する。
【０１３９】
暗号通信装置１１１，１２１は、それぞれコンピュータである。暗号通信装置１１１，１２１は、それぞれプロセッサ９０１、補助記憶装置９０２、メモリ９０３、通信装置９０４、入力インタフェース９０５、ディスプレイインタフェース９０６といったハードウェアを備える。プロセッサ９０１は、信号線９１０を介して他のハードウェアと接続され、これら他のハードウェアを制御する。入力インタフェース９０５は、入力装置９０７に接続されている。ディスプレイインタフェース９０６は、ディスプレイ９０８に接続されている。
【０１４０】
プロセッサ９０１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ・Ｃｉｒｃｕｉｔ）である。プロセッサ９０１は、例えば、ＣＰＵ、ＤＳＰ（Ｄｉｇｉｔａｌ・Ｓｉｇｎａｌ・Ｐｒｏｃｅｓｓｏｒ）、又は、ＧＰＵ（Ｇｒａｐｈｉｃｓ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）である。
【０１４１】
補助記憶装置９０２は、例えば、ＲＯＭ（Ｒｅａｄ・Ｏｎｌｙ・Ｍｅｍｏｒｙ）、フラッシュメモリ、又は、ＨＤＤ（Ｈａｒｄ・Ｄｉｓｋ・Ｄｒｉｖｅ）である。暗号通信装置１１１の記憶媒体１５４と、暗号通信装置１２１の記憶媒体１７４は、それぞれ補助記憶装置９０２に相当する。
【０１４２】
メモリ９０３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ・Ａｃｃｅｓｓ・Ｍｅｍｏｒｙ）である。暗号通信装置１１１のメモリ１５５と、暗号通信装置１２１のメモリ１７５は、それぞれメモリ９０３に相当する。
【０１４３】
通信装置９０４は、データを受信するレシーバ９２１及びデータを送信するトランスミッタ９２２を含む。通信装置９０４は、例えば、通信チップ又はＮＩＣ（Ｎｅｔｗｏｒｋ・Ｉｎｔｅｒｆａｃｅ・Ｃａｒｄ）である。暗号通信装置１１１の有線インタフェース１５１及び通信インタフェース１５３と、暗号通信装置１２１の有線インタフェース１７１及び通信インタフェース１７３は、それぞれ通信装置９０４に相当する。なお、暗号通信装置１１１の内部インタフェース１５２と、暗号通信装置１２１の内部インタフェース１７２は、それぞれバスインタフェース等である。
【０１４４】
入力インタフェース９０５は、入力装置９０７のケーブル９１１が接続されるポートである。入力インタフェース９０５は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ・Ｓｅｒｉａｌ・Ｂｕｓ）端子である。
【０１４５】
ディスプレイインタフェース９０６は、ディスプレイ９０８のケーブル９１２が接続されるポートである。ディスプレイインタフェース９０６は、例えば、ＵＳＢ端子又はＨＤＭＩ（登録商標）（Ｈｉｇｈ・Ｄｅｆｉｎｉｔｉｏｎ・Ｍｕｌｔｉｍｅｄｉａ・Ｉｎｔｅｒｆａｃｅ）端子である。
【０１４６】
入力装置９０７は、例えば、マウス、タッチペン、キーボード、又は、タッチパネルである。
【０１４７】
ディスプレイ９０８は、例えば、ＬＣＤ（Ｌｉｑｕｉｄ・Ｃｒｙｓｔａｌ・Ｄｉｓｐｌａｙ）である。
【０１４８】
補助記憶装置９０２には、暗号通信装置１１１の取得部１６１、データ受け付け部１６２、要求受け付け部１６３、リスト生成部１６４、リスト送信部１６５、情報受信部１６６、管理部１６７、暗号化部１６８、データ送信部１６９、或いは、暗号通信装置１２１の取得部１８１、データ送出部１８２、要求受け付け部１８３、情報生成部１８４、リスト受信部１８５、情報送信部１８６、管理部１８７、復号部１８８、データ受信部１８９といった「部」の機能を実現するプログラムが記憶されている。このプログラムは、メモリ９０３にロードされ、プロセッサ９０１に読み込まれ、プロセッサ９０１によって実行される。補助記憶装置９０２には、ＯＳ（Ｏｐｅｒａｔｉｎｇ・Ｓｙｓｔｅｍ）も記憶されている。ＯＳの少なくとも一部がメモリ９０３にロードされ、プロセッサ９０１はＯＳを実行しながら、「部」の機能を実現するプログラムを実行する。
【０１４９】
図１５では、１つのプロセッサ９０１が示されているが、暗号通信装置１１１，１２１がそれぞれ複数のプロセッサ９０１を備えていてもよい。そして、複数のプロセッサ９０１が「部」の機能を実現するプログラムを連携して実行してもよい。
【０１５０】
「部」の処理の結果を示す情報やデータや信号値や変数値は、補助記憶装置９０２、メモリ９０３、又は、プロセッサ９０１内のレジスタ又はキャッシュメモリに記憶される。
【０１５１】
「部」を「サーキットリ」で提供してもよい。また、「部」を「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。「回路」及び「サーキットリ」は、プロセッサ９０１だけでなく、ロジックＩＣ、ＧＡ（Ｇａｔｅ・Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ・Ｓｐｅｃｉｆｉｃ・Ｉｎｔｅｇｒａｔｅｄ・Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ・Ｇａｔｅ・Ａｒｒａｙ）といった他の種類の処理回路をも包含する概念である。
【０１５２】
以上、本発明の実施の形態について説明したが、この実施の形態を部分的に実施しても構わない。例えば、この実施の形態の説明において「部」として説明するもののうち、いずれか１つのみを採用してもよいし、いくつかの任意の組み合わせを採用してもよい。なお、本発明は、この実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【０１５３】
１００  通信システム、１１０  暗号通信端末、１１１  暗号通信装置、１１２  処理装置、１１３  プログラム、１１４  アプリケーション、１１５  鍵共有装置、１２０  暗号通信端末、１２１  暗号通信装置、１２２  処理装置、１２３  プログラム、１２４  アプリケーション、１２５  鍵共有装置、１３０  ネットワーク、１５１  有線インタフェース、１５２  内部インタフェース、１５３  通信インタフェース、１５４  記憶媒体、１５５  メモリ、１６１  取得部、１６２  データ受け付け部、１６３  要求受け付け部、１６４  リスト生成部、１６５  リスト送信部、１６６  情報受信部、１６７  管理部、１６８  暗号化部、１６９  データ送信部、１７１  有線インタフェース、１７２  内部インタフェース、１７３  通信インタフェース、１７４  記憶媒体、１７５  メモリ、１８１  取得部、１８２  データ送出部、１８３  要求受け付け部、１８４  情報生成部、１８５  リスト受信部、１８６  情報送信部、１８７  管理部、１８８  復号部、１８９  データ受信部、２１０  暗号鍵データベース、２２０  暗号鍵データベース、９０１  プロセッサ、９０２  補助記憶装置、９０３  メモリ、９０４  通信装置、９０５  入力インタフェース、９０６  ディスプレイインタフェース、９０７  入力装置、９０８  ディスプレイ、９１０  信号線、９１１  ケーブル、９１２  ケーブル、９２１  レシーバ、９２２  トランスミッタ。
【図１】
2016147340.tif 000003
【図２】
2016147340.tif 000004
【図３】
2016147340.tif 000005
【図４】
2016147340.tif 000006
【図５】
2016147340.tif 000007
【図６】
2016147340.tif 000008
【図７】
2016147340.tif 000009
【図８】
2016147340.tif 000010
【図９】
2016147340.tif 000011
【図１０】
2016147340.tif 000012
【図１１】
2016147340.tif 000013
【図１２】
2016147340.tif 000014
【図１３】
2016147340.tif 000015
【図１４】
2016147340.tif 000016
【図１５】
2016147340.tif 000017
【手続補正書】
【提出日】平成29年2月14日(2017.2.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリと、
通信データの入力を受ける度に、前記メモリの内部の領域であるバッファに格納された暗号鍵のうち１つの暗号鍵を取得し、取得した暗号鍵を使用して前記通信データを暗号化することで暗号化データを生成するとともに、取得した暗号鍵を前記バッファから削除する暗号化部と、
前記暗号化部により生成された暗号化データを送信することで暗号通信を行うデータ送信部と、
前記データ送信部による暗号通信が継続している間、前記バッファ内の暗号鍵の数が減る速さと前記バッファに残っている暗号鍵の数とから、前記バッファ内の暗号鍵がなくなるまでの時間を推測し、推測した時間が閾値を下回った場合に、新たな暗号鍵を前記バッファに追加する管理部と
を備える暗号通信装置。
【請求項２】
前記暗号化部により使用される暗号鍵は、前記暗号通信の相手との通信により決定される請求項１に記載の暗号通信装置。
【請求項３】
請求項１または２に記載の暗号通信装置と、
前記通信データを前記暗号通信装置に入力するプログラムを実行する処理装置と
を備える暗号通信端末。
【請求項４】
前記バッファは、前記プログラムである複数のアプリケーションのそれぞれに対して個別に割り当てられ、
前記管理部は、前記複数のアプリケーションのうち、前記暗号通信が継続しているアプリケーションに割り当てられた前記バッファ内の暗号鍵の数が減る速さに応じて、前記新たな暗号鍵を当該アプリケーションに割り当てられた前記バッファに追加する請求項３に記載の暗号通信端末。
【請求項５】
メモリと、
暗号化データを受信することで暗号通信を行うデータ受信部と、
前記データ受信部により前記暗号化データが受信される度に、前記メモリの内部の領域であるバッファに格納された暗号鍵のうち１つの暗号鍵を取得し、取得した暗号鍵を使用して前記暗号化データを復号することで通信データを生成するとともに、取得した暗号鍵を前記バッファから削除する復号部と、
前記データ受信部による暗号通信が継続している間、前記バッファ内の暗号鍵の数が減る速さと前記バッファに残っている暗号鍵の数とから、前記バッファ内の暗号鍵がなくなるまでの時間を推測し、推測した時間が閾値を下回った場合に、新たな暗号鍵を前記バッファに追加する管理部と
を備える暗号通信装置。
【請求項６】
前記復号部により使用される暗号鍵は、前記暗号通信の相手との通信により決定される請求項５に記載の暗号通信装置。
【請求項７】
請求項５または６に記載の暗号通信装置と、
前記通信データの入力を前記暗号通信装置から受けるプログラムを実行する処理装置と
を備える暗号通信端末。
【請求項８】
前記バッファは、前記プログラムである複数のアプリケーションのそれぞれに対して個別に割り当てられ、
前記管理部は、前記複数のアプリケーションのうち、前記暗号通信が継続しているアプリケーションに割り当てられた前記バッファ内の暗号鍵の数が減る速さに応じて、前記新たな暗号鍵を当該アプリケーションに割り当てられた前記バッファに追加する請求項７に記載の暗号通信端末。
【請求項９】
メモリを備えるコンピュータが、通信データの入力を受ける度に、前記メモリの内部の領域であるバッファに格納された暗号鍵のうち１つの暗号鍵を取得し、取得した暗号鍵を使用して前記通信データを暗号化することで暗号化データを生成するとともに、取得した暗号鍵を前記バッファから削除し、
前記コンピュータが、前記暗号化データを送信することで暗号通信を行い、
前記コンピュータが、前記暗号通信が継続している間、前記バッファ内の暗号鍵の数が減る速さと前記バッファに残っている暗号鍵の数とから、前記バッファ内の暗号鍵がなくなるまでの時間を推測し、推測した時間が閾値を下回った場合に、新たな暗号鍵を前記バッファに追加する暗号通信方法。
【請求項１０】
メモリを備えるコンピュータが、暗号化データを受信することで暗号通信を行い、
前記コンピュータが、前記暗号化データが受信される度に、前記メモリの内部の領域であるバッファに格納された暗号鍵のうち１つの暗号鍵を取得し、取得した暗号鍵を使用して前記暗号化データを復号することで通信データを生成するとともに、取得した暗号鍵を前記バッファから削除し、
前記コンピュータが、前記暗号通信が継続している間、前記バッファ内の暗号鍵の数が減る速さと前記バッファに残っている暗号鍵の数とから、前記バッファ内の暗号鍵がなくなるまでの時間を推測し、推測した時間が閾値を下回った場合に、新たな暗号鍵を前記バッファに追加する暗号通信方法。
【請求項１１】
メモリを備えるコンピュータに、
通信データの入力を受ける度に、前記メモリの内部の領域であるバッファに格納された暗号鍵のうち１つの暗号鍵を取得し、取得した暗号鍵を使用して前記通信データを暗号化することで暗号化データを生成するとともに、取得した暗号鍵を前記バッファから削除する処理と、
前記暗号化データを送信することで暗号通信を行う処理と、
前記暗号通信が継続している間、前記バッファ内の暗号鍵の数が減る速さと前記バッファに残っている暗号鍵の数とから、前記バッファ内の暗号鍵がなくなるまでの時間を推測し、推測した時間が閾値を下回った場合に、新たな暗号鍵を前記バッファに追加する処理と
を実行させる暗号通信プログラム。
【請求項１２】
メモリを備えるコンピュータに、
暗号化データを受信することで暗号通信を行う処理と、
前記暗号化データが受信される度に、前記メモリの内部の領域であるバッファに格納された暗号鍵のうち１つの暗号鍵を取得し、取得した暗号鍵を使用して前記暗号化データを復号することで通信データを生成するとともに、取得した暗号鍵を前記バッファから削除する処理と、
前記暗号通信が継続している間、前記バッファ内の暗号鍵の数が減る速さと前記バッファに残っている暗号鍵の数とから、前記バッファ内の暗号鍵がなくなるまでの時間を推測し、推測した時間が閾値を下回った場合に、新たな暗号鍵を前記バッファに追加する処理と
を実行させる暗号通信プログラム。
【国際調査報告】
2016147340.tif 000018
2016147340.tif 000019
2016147340.tif 000020
2016147340.tif 000021