(57)【要約】【課題】共有鍵の生成処理を遅らせることを抑制して、暗号化通信のセキュリティの低下を防止することを可能とする暗号化通信システム等を提供する。【解決手段】鍵センタ装置が、各クライアント装置からの依頼に応じて暗号鍵を生成する共有鍵生成部１０２と、生成された暗号鍵を当該クライアント装置に送信する共有鍵配送部１０３とを備え、クライアント装置が、記憶されている暗号鍵が有効期限内であるか否かを判定する暗号鍵判定部２０１と、暗号化通信を行う暗号化通信部２０２と、鍵センタ装置に暗号鍵の生成を依頼する鍵生成依頼部２０３と、生成された暗号鍵を受信する共有鍵受信部２０４とを備えると共に、鍵センタ装置が、暗号鍵の生成にかかる自らの処理負荷が高いか否かを判定する負荷検出部１０１と、処理負荷が高い場合にシフト量を生成して当該クライアント装置に送信するシフト量決定部１０４とを備える。【選択図】図１
2014007514.tif 000002
【特許請求の範囲】
【請求項１】
相互間で暗号化通信を行う多数のクライアント装置と、前記暗号化通信に使用される暗号鍵を前記各クライアント装置からの依頼に応じて生成して当該クライアント装置に配送する鍵センタ装置とが相互に接続されてなる暗号化通信システムであって、
前記鍵センタ装置が、前記各クライアント装置からの依頼に応じて前記暗号鍵を生成する共有鍵生成部と、生成された前記暗号鍵を当該クライアント装置に送信する共有鍵配送部とを備え、
前記クライアント装置が、予め備えられた暗号鍵記憶部に記憶されている前記暗号鍵が有効期限内であるか否かを判定する暗号鍵判定部と、有効期限内であると判定された前記暗号鍵を利用して前記暗号化通信を行う暗号化通信部と、前記暗号鍵が有効期限を経過した場合に前記鍵センタ装置に前記暗号鍵の生成を依頼する鍵生成依頼部と、生成された前記暗号鍵を前記鍵センタ装置から受信する共有鍵受信部とを備えると共に、
前記鍵センタ装置が、
前記暗号鍵の生成にかかる自らの処理負荷を検出してこの処理負荷が高いか否かを判定する負荷検出部と、
前記処理負荷が高い場合に、前記クライアント装置に記憶されている前記暗号鍵を改変するための数値であるシフト量を生成して当該クライアント装置に送信するシフト量決定部と
を備えることを特徴とする暗号化通信システム。
【請求項２】
前記クライアント装置が、
前記鍵センタ装置から受信した前記シフト量に等しい桁数だけ前記暗号鍵のビット列データを移動させることによって当該暗号鍵を改変する共有鍵シフト部
を備えることを特徴とする、請求項１に記載の暗号化通信システム。
【請求項３】
前記クライアント装置が、
前記鍵センタ装置に送信した前記暗号鍵の生成依頼に対する返答が時間内にあったか否かを判定する鍵生成依頼タイムアウト検出部と、
前記生成依頼に対する返答が時間内になかった場合に、前記シフト量を生成してこれを前記共有鍵シフト部に与える第２のシフト量決定部と
を備えることを特徴とする、請求項２に記載の暗号化通信システム。
【請求項４】
相互間で暗号化通信を行う多数のクライアント装置と相互に接続され、前記暗号化通信に使用される暗号鍵を前記各クライアント装置からの依頼に応じて生成して当該クライアント装置に配送する鍵センタ装置であって、
前記各クライアント装置からの依頼に応じて前記暗号鍵を生成する共有鍵生成部と、
生成された前記暗号鍵を当該クライアント装置に送信する共有鍵配送部と、
前記暗号鍵の生成にかかる自らの処理負荷を検出してこの処理負荷が高いか否かを判定する負荷検出部と、
前記処理負荷が高い場合に、前記クライアント装置に記憶されている前記暗号鍵を改変するための数値であるシフト量を生成して当該クライアント装置に送信するシフト量決定部と
を備えることを特徴とする鍵センタ装置。
【請求項５】
暗号化通信を行うための暗号鍵を記憶する暗号鍵記憶部を予め備え、これによって他装置と相互間で暗号化通信を行うクライアント装置であって、
前記暗号鍵記憶部に記憶されている前記暗号鍵が有効期限内であるか否かを判定する暗号鍵判定部と、
有効期限内であると判定された前記暗号鍵を利用して前記暗号化通信を行う暗号化通信部と、
前記暗号鍵が有効期限を経過した場合に外部に接続された鍵センタ装置に前記暗号鍵の生成を依頼する鍵生成依頼部と、
生成された前記暗号鍵を前記鍵センタ装置から受信する共有鍵受信部と、
前記鍵センタ装置にかかる処理負荷が高い場合にこの鍵センタ装置から送信される数値であるシフト量を受信し、このシフト量に等しい桁数だけ前記暗号鍵のビット列データを移動させることによって当該暗号鍵を改変する共有鍵シフト部
を備えることを特徴とするクライアント装置。
【請求項６】
前記鍵センタ装置に送信した前記暗号鍵の生成依頼に対する返答が時間内にあったか否かを判定する鍵生成依頼タイムアウト検出部と、
前記生成依頼に対する返答が時間内になかった場合に、前記シフト量を生成してこれを前記共有鍵シフト部に与える第２のシフト量決定部と
を備えることを特徴とする、請求項５に記載のクライアント装置。
【請求項７】
相互間で暗号化通信を行う多数のクライアント装置と、前記暗号化通信に使用される暗号鍵を前記各クライアント装置からの依頼に応じて生成して当該クライアント装置に配送する鍵センタ装置とが相互に接続されてなる暗号化通信システムにあって、
前記クライアント装置に予め備えられた暗号鍵記憶部に記憶されている前記暗号鍵が有効期限内であるか否かを前記クライアント装置の暗号鍵判定部が判定し、
前記暗号鍵が有効期限を経過した場合に前記クライアント装置の鍵生成依頼部が前記鍵センタ装置に前記暗号鍵の生成を依頼し、
前記各クライアント装置からの前記暗号鍵の生成依頼に応じて、前記鍵センタ装置の負荷検出部が前記暗号鍵の生成にかかる自らの処理負荷を検出してこの処理負荷が高いか否かを判定し、
前記処理負荷が低い場合に、前記鍵センタ装置の共有鍵生成部が前記暗号鍵を生成すると共に前記鍵センタ装置の共有鍵配送部がこの暗号鍵を当該クライアント装置に送信し、
前記処理負荷が高い場合に、前記鍵センタ装置のシフト量決定部が前記クライアント装置に記憶されている前記暗号鍵を改変するための数値であるシフト量を生成して当該クライアント装置に送信する
ことを特徴とする暗号化通信方法。
【請求項８】
前記鍵センタ装置から前記シフト量を前記クライアント装置の共有鍵シフト部が受信し、
このシフト量に等しい桁数だけ前記暗号鍵のビット列データを前記クライアント装置の前記共有鍵シフト部が移動させることによって当該暗号鍵を改変する
ことを特徴とする、請求項７に記載の暗号化通信方法。
【請求項９】
相互間で暗号化通信を行う多数のクライアント装置と、前記暗号化通信に使用される暗号鍵を前記各クライアント装置からの依頼に応じて生成して当該クライアント装置に配送する鍵センタ装置とが相互に接続されてなる暗号化通信システムにあって、
前記鍵センタ装置が備えるプロセッサに、
前記各クライアント装置からの前記暗号鍵の生成依頼に応じて、前記暗号鍵の生成にかかる自らの処理負荷を検出してこの処理負荷が高いか否かを判定する手順、
前記処理負荷が低い場合に、前記暗号鍵を生成すると共にこの暗号鍵を当該クライアント装置に送信する手順、
および前記処理負荷が高い場合に、前記クライアント装置に記憶されている前記暗号鍵を改変するための数値であるシフト量を生成して当該クライアント装置に送信する手順
を実行させることを特徴とする暗号化プログラム。
【請求項１０】
相互間で暗号化通信を行う多数のクライアント装置と、前記暗号化通信に使用される暗号鍵を前記各クライアント装置からの依頼に応じて生成して当該クライアント装置に配送する鍵センタ装置とが相互に接続されてなる暗号化通信システムにあって、
前記クライアント装置が備えるプロセッサに、
予め備えられた暗号鍵記憶部に記憶されている前記暗号鍵が有効期限内であるか否かを判定する手順、
前記暗号鍵が有効期限を経過した場合に前記鍵センタ装置に前記暗号鍵の生成を依頼する手順、
前記鍵センタ装置から前記暗号鍵を改変するための数値であるシフト量を受信する手順、
およびこのシフト量に等しい桁数だけ前記暗号鍵のビット列データを移動させることによって当該暗号鍵を改変する手順
を実行させることを特徴とする暗号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は暗号化通信システム、鍵センタ装置、クライアント装置、暗号化方法およびプログラムに関し、特に鍵センタ装置において一括して暗号鍵を生成する構成で、暗号化にかかる負荷を軽減しうる暗号化通信システム等に関する。
【背景技術】
【０００２】
企業の機密情報や個人情報などがデータ通信において送受信の対象となることが珍しくなくなった昨今では、データを暗号化してから送受信することの必要性はますます高まっていると言える。しかしながら、ブルートフォースアタック（総当たり攻撃）などのような手法によってコンピュータの計算能力と時間をかければ、暗号化に必要な暗号鍵は外部からの攻撃者にいつか探り当てられてしまうものである。
【０００３】
そのため、暗号鍵には通常、生成された時点で有効期限が設定され、この期限を経過した暗号鍵の利用を続けることはできない。時間をかけて暗号鍵が解明されるよりも前にその暗号鍵を変更することが、その暗号のセキュリティを保つ上で重要である。
【０００４】
また、たとえばセンサネットワークなどのように、各々の端末装置が潤沢な計算機資源（リソース）を持つことのできない環境においても、データの暗号化が必要となる場合もある。このような環境では、計算量を少なく抑えるために、共通鍵方式によるデータの暗号化が行われることが一般的である。公開鍵方式と比べて、共通鍵方式は一般的に暗号強度が低いと言われるので、暗号鍵の有効期限を短く設定することが必要である。
【０００５】
そのため、たとえば後述の特許文献１などに記載されているように、一つのネットワークの中で使用される暗号鍵を一手に作成する鍵センタ装置と呼ばれるコンピュータを当該ネットワーク内に設けた構成の暗号化通信システムが知られている。
【０００６】
この場合、同一ネットワーク内の他の各装置は、その鍵センタ装置から定期的に暗号鍵の配送を受けるようにしてもよい。あるいは、クライアント装置間で暗号化通信を開始する時に鍵センタ装置に暗号鍵の作成を依頼し、それに応じて鍵センタ装置で作成されて送られてきた暗号鍵を受信して、この暗号鍵を利用して通信を行うようにしてもよい。
【０００７】
図９は、特許文献１などに記載されている既存技術に係る暗号化通信システム９０１の構成について示す説明図である。暗号化通信システム９０１は、鍵センタ装置９１０と、多数のクライアント装置９２０ａ、９２０ｂ、…がネットワーク９３０を介して相互に接続されて構成される。全てのクライアント装置９２０ａ、９２０ｂ、…は同一の構成を備えるので、以後総称してクライアント装置９２０という。
【０００８】
鍵センタ装置９１０は、一般的なコンピュータ装置としての構成を備える。即ち、鍵センタ装置９１０は、コンピュータプログラムを実行する主体となるプロセッサ９１１と、データを記憶する記憶手段９１２と、他のコンピュータとの間でネットワーク９３０を介してデータ通信を行う通信手段９１３とを備える。
【０００９】
クライアント装置９２０もまた、一般的なコンピュータ装置としての構成を備える。即ち、クライアント装置９２０は、コンピュータプログラムを実行する主体となるプロセッサ９２１と、データを記憶する記憶手段９２２と、他のコンピュータとの間でネットワーク３０を介してデータ通信を行う通信手段９２３とを備える。
【００１０】
鍵センタ装置９１０のプロセッサ９１１は、暗号鍵生成プログラムが動作することにより、共有鍵生成部９３１、および共有鍵配送部９３２として機能する。そして、鍵センタ装置９１０の記憶手段９１２には、各クライアント装置９２０の公開鍵を予め記憶している公開鍵記憶部９３３が存在する。
【００１１】
また、クライアント装置９２０のプロセッサ９２１は、暗号化通信プログラムが動作することにより、暗号鍵判定部９４１、暗号化通信部９４２、鍵生成依頼部９４３、共有鍵受信部９４４の各々として機能する。さらに、クライアント装置９２０の記憶手段９２２には、他のコンピュータとの暗号化通信に使用される暗号鍵、および鍵センタ装置９１０の公開鍵を記憶している記憶域である暗号鍵記憶部９４５が存在する。
【００１２】
図１０は、図９に示した暗号化通信システム９０１で行われる暗号化通信の動作について示すフローチャートである。まずクライアント装置９２０のうちの１台であるクライアント装置９２０ａで、暗号化通信部９４２が他のクライアント装置９２０であるクライアント装置９２０ｂとの暗号化通信を行おうとする。
【００１３】
その際、クライアント装置９２０ａの暗号鍵判定部９４１は、暗号鍵記憶部９４５の中にクライアント装置９２０ｂとの間の暗号化通信のための有効な暗号鍵が記憶されているか否かについて判定する（ステップＳ９５１）。有効な暗号鍵が記憶されていれば、暗号化通信部９４２がその暗号鍵を利用して通信を行う（ステップＳ９５２）。
【００１４】
暗号鍵記憶部９４５にクライアント装置９２０ｂとの間の暗号化通信のための暗号鍵が記憶されていない、または記憶されていても既に有効期限を過ぎている場合には（ステップＳ９５１がノー）、暗号鍵判定部９４１は鍵生成依頼部９４３を介して、鍵センタ装置９１０に新たな暗号鍵の作成を依頼する（ステップＳ９５３）。
【００１５】
この依頼を受けた鍵センタ装置９１０の共有鍵生成部９３１は、クライアント装置９２０ａおよびクライアント装置９２０ｂで使用されるべき新たな共有鍵を生成して（ステップＳ９６１）、これを共有鍵配送部９３２がクライアント装置９２０ａおよびクライアント装置９２０ｂに送信する（ステップＳ９６２）。クライアント装置９２０ａおよびクライアント装置９２０ｂでは、共有鍵受信部９４４がこの共有鍵を受信する（ステップＳ９５４〜５）。そして、クライアント装置９２０ａとクライアント装置９２０ｂとの間で、暗号化通信部９４２がその暗号鍵を利用して通信を行う（ステップＳ９５６）。
【００１６】
ステップＳ９６２およびステップＳ９５４〜５の処理で、鍵センタ装置９１０とクライアント装置９２０ａとの間のやりとりについて説明する。ハッシュ関数などのような一方向性関数をｆとし、そのｆの定義領域の任意の元ｘが与えられた場合、ｙ＝ｆ（ｘ）を計算してｙを求めることは容易であるが、逆にｙのみが与えられた場合に以下の数１が成立するｘを求めることは、非現実的な計算量が必要とされるので、事実上極めて困難である。
【００１７】
【数１】
2014007514.tif 000003
【００１８】
即ち、公開鍵をＫｅ、これに対応する秘密鍵をｒ、原子根をα、素数をＰとして各々定義すると、以下の数２に示す関係が成立するが、Ｋｅ、α、Ｐの値が外部に漏洩したとしても、これらの値からｒを求めることは事実上極めて困難である。このαおよびＰの値は、暗号化通信システム９０１全体で予め決定され、鍵センタ装置９１０の公開鍵記憶部９３３、およびクライアント装置９２０ａの暗号鍵記憶部９４５に予め記憶されているものとする。
【００１９】
【数２】
2014007514.tif 000004
【００２０】
ここで、鍵センタ装置９１０の公開鍵記憶部９３３に予め記憶されている自らの秘密鍵をｒ１、クライアント装置９２０ａの公開鍵をＫｅ２とする。また、クライアント装置９２０ａの暗号鍵記憶部９４５に予め記憶されている自らの秘密鍵をｒ２、鍵センタ装置９１０の公開鍵をＫｅ１とする。ここで、ｒ１およびＫｅ１、ｒ２およびＫｅ２には、各々以下の数３および数４で示す関係が成立する。
【００２１】
【数３】
2014007514.tif 000005
【００２２】
【数４】
2014007514.tif 000006
【００２３】
鍵センタ装置９１０では、共有鍵配送部９３２が、受信した公開鍵Ｋｅ２と、公開鍵記憶部９３３に記憶されているｒ１、α、Ｐの値から、共通鍵Ｋ１の値を、以下の数５によって算出する。
【００２４】
【数５】
2014007514.tif 000007
【００２５】
同様に、クライアント装置９２０ａでも、共有鍵受信部９４４が、受信した公開鍵Ｋｅ１と、公開鍵記憶部９４５に記憶されているｒ２、α、Ｐの値から、共通鍵Ｋ２の値を、以下の数６によって算出する。
【００２６】
【数６】
2014007514.tif 000008
【００２７】
以上の処理によって、Ｋ１＝Ｋ２となる共通の鍵が、鍵センタ装置９１０とクライアント装置９２０ａとの間で共有されたこととなる。この状態で、鍵センタ装置９１０の共有鍵生成部９３１で生成された共有鍵（上記Ｋ１およびＫ２のいずれとも異なる）が、共通鍵Ｋ１＝Ｋ２によって暗号化されて共有鍵配送部９３２からクライアント装置９２０ａに向けて送信される。クライアント装置９２０ａでは共有鍵受信部９４４がこれを受信して同一の共有鍵Ｋ１＝Ｋ２によって解読し、暗号鍵記憶部９４５に記憶する。
【００２８】
同様の送受信処理を、鍵センタ装置９１０はクライアント装置９２０ｂとの間でも行う。これによって、クライアント装置９２０ａおよびクライアント装置９２０ｂは、同一の有効な共有鍵を持つことができるので、これを利用した暗号化通信が可能となる。
【００２９】
以上で説明した手法は、ＤＨ（Diffie-Hellman）型公開鍵配送法とも呼ばれ、暗号鍵の配送のために一般的に利用されている公知技術である。この構成を利用すれば、各クライアント装置９２０が、有効期限の過ぎた暗号鍵を利用することはなく、常に有効な暗号鍵によって安全な通信を行うことが可能である。
【００３０】
一般的に秘密鍵暗号と比べて共通鍵暗号は暗号強度が低いと言われるが、その強度が低い分だけ暗号鍵の有効期限を短く設定しておけば実用上特に問題はないし、有効期限を短く設定することによってユーザの操作が煩雑になることもない。従って、前述のセンサネットワークなどのように各端末装置が潤沢な計算機資源を持つことのできない環境でも、共通鍵暗号を特に問題なく使用することが可能である。
【００３１】
特許文献１以外でこれに関連する技術文献として、以下の各々がある。その中でも特許文献２には、平文データと暗号鍵データとを多次元に配列してシフトさせて、処理の負荷を少なくして堅牢な暗号方式を提供するという技術が記載されている。特許文献３には、前述のＤＨ型公開鍵配送法と同様に、公開鍵と秘密鍵とから共通鍵を生成して通信を行うという技術が記載されている。
【００３２】
特許文献４には、１回目の鍵交換でＤＨ型公開鍵配送法を利用して鍵交換を行い、そこからさらに２回目以降の鍵交換を行うという共通鍵交換方法が記載されている。特許文献５には、暗号装置と復号装置との間で異なる共通鍵が導出されることを防止するという共通鍵の共有システムが記載されている。特許文献６には、鍵管理サーバから配信された鍵データを更新する技術について記載されている。
【００３３】
非特許文献１には、ＤＨ型公開鍵配送法の基本原理が記載されている。非特許文献２には、これを含めた各暗号方式の紹介と、それら各方式の安全性についての考察が記載されている。
【先行技術文献】
【特許文献】
【００３４】
【特許文献１】特開２００１−１４４７４５号公報
【特許文献２】特開２００８−２５２２９８号公報
【特許文献３】特開２００６−１４０７４３号公報
【特許文献４】特開２０００−２７８２５８号公報
【特許文献５】特開２００４−２０１２９３号公報
【特許文献６】特開２００２−３１４５２７号公報
【非特許文献】
【００３５】
【非特許文献１】ＩＰＵＳＩＲＯＮ、「ＤＨ鍵共有プロトコル（セキュリティアカデメイアより）」、［平成２４年６月８日検索］、インターネット＜URL：http://akademeia.info/index.php?DH%B8%B0%B6%A6%CD%AD%A5%D7%A5%ED%A5%C8%A5%B3%A5%EB＞
【非特許文献２】楠田浩二・櫻井幸一、「公開鍵暗号方式の安全性評価に関する現状と課題」、西暦１９９７年１１月、日本銀行金融研究所、［平成２４年６月８日検索］、インターネット＜URL：http://www.imes.boj.or.jp/jdps/97-J-11.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【００３６】
図９に示した暗号化通信システム９０１によれば、有効期限の過ぎた暗号鍵を利用することをなくし、常に有効な暗号鍵によって安全な通信を行うことが可能である。しかしながら、ここで問題となるのは、鍵センタ装置９１０にかかる共有鍵生成処理の負荷である。前述の構成では、全てのクライアント装置９２０が、暗号化通信を行おうとするたびに鍵センタ装置９１０に共有鍵の生成を依頼することになる。
【００３７】
たとえば、１台の鍵センタ装置９１０に対して、１０００台のクライアント装置９２０が接続されているとする。この場合、１回の共有鍵生成処理のたびに５００ｍｓの処理時間が必要であるとすると、１０００台のクライアント装置９２０が同時に共有鍵の生成を依頼した場合には、その全てを処理するには５００ｓ＝８分２０秒の処理時間が必要となる。
【００３８】
共有鍵の生成が遅れると、暗号化および復号化処理もその分遅延し、暗号化通信システム全体のセキュリティを低下させることとなる。暗号鍵の有効期限を短く設定する必要のある共通鍵暗号なら、この点は特に問題となる。前述のセンサネットワークの例では、膨大な数の端末装置を設置する必要があり、その数は前述の「１０００台」という数字をも大きく上回るものである。この問題点を解決しうる技術は、前述の特許文献１〜６、および非特許文献１〜２のいずれにも記載されていない。
【００３９】
本発明の目的は、多くの台数のクライアント装置から同時に共有鍵の生成依頼を受けた場合にも、その生成処理を遅らせることを抑制して、暗号化通信のセキュリティの低下を防止することを可能とする暗号化通信システム、鍵センタ装置、クライアント装置、暗号化方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００４０】
上記目的を達成するため、本発明に係る暗号化通信システムは、相互間で暗号化通信を行う多数のクライアント装置と、暗号化通信に使用される暗号鍵を各クライアント装置からの依頼に応じて生成して当該クライアント装置に配送する鍵センタ装置とが相互に接続されてなる暗号化通信システムであって、鍵センタ装置が、各クライアント装置からの依頼に応じて暗号鍵を生成する共有鍵生成部と、生成された暗号鍵を当該クライアント装置に送信する共有鍵配送部とを備え、クライアント装置が、予め備えられた暗号鍵記憶部に記憶されている暗号鍵が有効期限内であるか否かを判定する暗号鍵判定部と、有効期限内であると判定された暗号鍵を利用して暗号化通信を行う暗号化通信部と、暗号鍵が有効期限を経過した場合に鍵センタ装置に暗号鍵の生成を依頼する鍵生成依頼部と、生成された暗号鍵を鍵センタ装置から受信する共有鍵受信部とを備えると共に、鍵センタ装置が、暗号鍵の生成にかかる自らの処理負荷を検出してこの処理負荷が高いか否かを判定する負荷検出部と、処理負荷が高い場合に、クライアント装置に記憶されている暗号鍵を改変するための数値であるシフト量を生成して当該クライアント装置に送信するシフト量決定部とを備えることを特徴とする。
【００４１】
上記目的を達成するため、本発明に係る鍵センタ装置は、相互間で暗号化通信を行う多数のクライアント装置と相互に接続され、暗号化通信に使用される暗号鍵を各クライアント装置からの依頼に応じて生成して当該クライアント装置に配送する鍵センタ装置であって、各クライアント装置からの依頼に応じて暗号鍵を生成する共有鍵生成部と、生成された暗号鍵を当該クライアント装置に送信する共有鍵配送部と、暗号鍵の生成にかかる自らの処理負荷を検出してこの処理負荷が高いか否かを判定する負荷検出部と、処理負荷が高い場合に、クライアント装置に記憶されている暗号鍵を改変するための数値であるシフト量を生成して当該クライアント装置に送信するシフト量決定部とを備えることを特徴とする。
【００４２】
上記目的を達成するため、本発明に係るクライアント装置は、暗号化通信を行うための暗号鍵を記憶する暗号鍵記憶部を予め備え、これによって他装置と相互間で暗号化通信を行うクライアント装置であって、暗号鍵記憶部に記憶されている暗号鍵が有効期限内であるか否かを判定する暗号鍵判定部と、有効期限内であると判定された暗号鍵を利用して暗号化通信を行う暗号化通信部と、暗号鍵が有効期限を経過した場合に外部に接続された鍵センタ装置に暗号鍵の生成を依頼する鍵生成依頼部と、生成された暗号鍵を鍵センタ装置から受信する共有鍵受信部と、鍵センタ装置にかかる処理負荷が高い場合にこの鍵センタ装置から送信される数値であるシフト量を受信し、このシフト量に等しい桁数だけ暗号鍵のビット列データを移動させることによって当該暗号鍵を改変する共有鍵シフト部を備えることを特徴とする。
【００４３】
上記目的を達成するため、本発明に係る暗号化方法は、相互間で暗号化通信を行う多数のクライアント装置と、暗号化通信に使用される暗号鍵を各クライアント装置からの依頼に応じて生成して当該クライアント装置に配送する鍵センタ装置とが相互に接続されてなる暗号化通信システムにあって、クライアント装置に予め備えられた暗号鍵記憶部に記憶されている暗号鍵が有効期限内であるか否かをクライアント装置の暗号鍵判定部が判定し、暗号鍵が有効期限を経過した場合にクライアント装置の鍵生成依頼部が鍵センタ装置に暗号鍵の生成を依頼し、各クライアント装置からの暗号鍵の生成依頼に応じて、鍵センタ装置の負荷検出部が暗号鍵の生成にかかる自らの処理負荷を検出してこの処理負荷が高いか否かを判定し、処理負荷が低い場合に、鍵センタ装置の共有鍵生成部が暗号鍵を生成すると共に鍵センタ装置の共有鍵配送部がこの暗号鍵を当該クライアント装置に送信し、処理負荷が高い場合に、鍵センタ装置のシフト量決定部がクライアント装置に記憶されている暗号鍵を改変するための数値であるシフト量を生成して当該クライアント装置に送信することを特徴とする。
【００４４】
上記目的を達成するため、本発明に係る暗号化プログラムは、相互間で暗号化通信を行う多数のクライアント装置と、暗号化通信に使用される暗号鍵を各クライアント装置からの依頼に応じて生成して当該クライアント装置に配送する鍵センタ装置とが相互に接続されてなる暗号化通信システムにあって、鍵センタ装置が備えるプロセッサに、各クライアント装置からの暗号鍵の生成依頼に応じて、暗号鍵の生成にかかる自らの処理負荷を検出してこの処理負荷が高いか否かを判定する手順、処理負荷が低い場合に、暗号鍵を生成すると共にこの暗号鍵を当該クライアント装置に送信する手順、および処理負荷が高い場合に、クライアント装置に記憶されている暗号鍵を改変するための数値であるシフト量を生成して当該クライアント装置に送信する手順を実行させることを特徴とする。
【００４５】
上記目的を達成するため、本発明に係る他の暗号化プログラムは、相互間で暗号化通信を行う多数のクライアント装置と、暗号化通信に使用される暗号鍵を各クライアント装置からの依頼に応じて生成して当該クライアント装置に配送する鍵センタ装置とが相互に接続されてなる暗号化通信システムにあって、クライアント装置が備えるプロセッサに、予め備えられた暗号鍵記憶部に記憶されている暗号鍵が有効期限内であるか否かを判定する手順、暗号鍵が有効期限を経過した場合に鍵センタ装置に暗号鍵の生成を依頼する手順、鍵センタ装置から暗号鍵を改変するための数値であるシフト量を受信する手順、およびこのシフト量に等しい桁数だけ暗号鍵のビット列データを移動させることによって当該暗号鍵を改変する手順を実行させることを特徴とする。
【発明の効果】
【００４６】
本発明は、上記したように、鍵センタ装置の暗号鍵の生成にかかる処理負荷が高い場合に、暗号鍵を新規生成せず、シフト量を生成してクライアント装置に送信するように構成したので、クライアント装置はこのシフト量によって暗号鍵を改変し、その使用を継続することができる。
【００４７】
これによって、共有鍵の生成処理を遅らせることを抑制して、暗号化通信のセキュリティの低下を防止することが可能であるという、優れた特徴を持つ暗号化通信システム、鍵センタ装置、クライアント装置、暗号化方法およびプログラムを提供することができる。
【図面の簡単な説明】
【００４８】
【図１】本発明の第１の実施形態に係る暗号化通信システムの構成について示す説明図である。
【図２】図１に示したクライアント装置の暗号鍵記憶部に記憶されている内容について示す説明図である。
【図３】図１に示した鍵センタ装置の公開鍵記憶部に記憶されている内容について示す説明図である。
【図４】図１に示した暗号化通信システムで行われる暗号化通信の動作について示すフローチャートである。
【図５】図１に示した暗号化通信システムで、図４のステップＳ３０７〜３０８に示した共有鍵シフト部による処理の詳細について示す説明図である。図５（ａ）には、改変される前の共有鍵を示している。図５（ｂ）には、この共有鍵をリング状にした状態を示している。図５（ｃ）には、図５（ｂ）に示したリング状にした共有鍵の先頭位置を移動させた状態を示している。そして図５（ｄ）には、先頭位置を移動させて改変された後の共有鍵を示している。
【図６】図１に示した暗号化通信システムで、共有鍵生成に係る処理負荷の変化に伴う鍵センタ装置およびクライアント装置の動作の変化を示す説明図である。
【図７】本発明の第２の実施形態に係る暗号化通信システムの構成について示す説明図である。
【図８】図７に示した暗号化通信システムで行われる暗号化通信の動作について示すフローチャートである。
【図９】特許文献１などに記載されている既存技術に係る暗号化通信システムの構成について示す説明図である。
【図１０】図９に示した暗号化通信システムで行われる暗号化通信の動作について示すフローチャートである。
【発明を実施するための形態】
【００４９】
（第１の実施形態）
以下、本発明の第１の実施形態の構成について添付図１に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係る暗号化通信システム１は、相互間で暗号化通信を行う多数のクライアント装置２０と、暗号化通信に使用される暗号鍵を各クライアント装置からの依頼に応じて生成して当該クライアント装置に配送する鍵センタ装置１０とが相互に接続されてなる暗号化通信システムである。鍵センタ装置１０は、各クライアント装置からの依頼に応じて暗号鍵を生成する共有鍵生成部１０２と、生成された暗号鍵を当該クライアント装置に送信する共有鍵配送部１０３とを備え、クライアント装置２０は、予め備えられた暗号鍵記憶部２１１に記憶されている暗号鍵が有効期限内であるか否かを判定する暗号鍵判定部２０１と、有効期限内であると判定された暗号鍵を利用して暗号化通信を行う暗号化通信部２０２と、暗号鍵が有効期限を経過した場合に鍵センタ装置に暗号鍵の生成を依頼する鍵生成依頼部２０３と、生成された暗号鍵を鍵センタ装置から受信する共有鍵受信部２０４とを備える。これと共に、鍵センタ装置１０は、暗号鍵の生成にかかる自らの処理負荷を検出してこの処理負荷が高いか否かを判定する負荷検出部１０１と、処理負荷が高い場合に、クライアント装置に記憶されている暗号鍵を改変するための数値であるシフト量を生成して当該クライアント装置に送信するシフト量決定部１０４とを備える。
【００５０】
また、クライアント装置２０は、鍵センタ装置１０から受信したシフト量に等しい桁数だけ暗号鍵のビット列データを移動させることによって当該暗号鍵を改変する共有鍵シフト部２０５を備える。
【００５１】
以上の構成を備えることにより、暗号化通信システム１は、共有鍵の生成処理を遅らせることを抑制して、暗号化通信のセキュリティの低下を防止することが可能となる。
以下、これをより詳細に説明する。
【００５２】
図１は、本発明の第１の実施形態に係る暗号化通信システム１の構成について示す説明図である。暗号化通信システム１は、鍵センタ装置１０と、多数のクライアント装置２０ａ、２０ｂ、…がネットワーク３０を介して相互に接続されて構成される。全てのクライアント装置２０ａ、２０ｂ、…は同一の構成を備えるので、以後総称してクライアント装置２０という。
【００５３】
鍵センタ装置１０は、一般的なコンピュータ装置としての構成を備える。即ち、鍵センタ装置１０は、コンピュータプログラムを実行する主体となるプロセッサ１１と、データを記憶する記憶手段１２と、他のコンピュータとの間でネットワーク３０を介してデータ通信を行う通信手段１３とを備える。
【００５４】
クライアント装置２０もまた、一般的なコンピュータ装置としての構成を備える。即ち、クライアント装置２０は、コンピュータプログラムを実行する主体となるプロセッサ２１と、データを記憶する記憶手段２２と、他のコンピュータとの間でネットワーク３０を介してデータ通信を行う通信手段２３とを備える。
【００５５】
鍵センタ装置１０のプロセッサ１１は、暗号鍵生成プログラムが動作することにより、負荷検出部１０１、共有鍵生成部１０２、共有鍵配送部１０３、およびシフト量決定部１０４として機能する。そして、鍵センタ装置１０の記憶手段１２には、各クライアント装置２０の公開鍵を予め記憶している公開鍵記憶部１１１が存在する。
【００５６】
負荷検出部１０１は、鍵センタ装置１０自らの共有鍵生成に係る処理負荷を検出して、その負荷が高いか低いかを判定する。処理負荷の検出は、たとえばプロセッサ１１の負荷率を直接検出する公知技術を利用してもよいし、またクライアント装置２０から届いている共有鍵の生成依頼の件数やそのための予想所要時間から検出してもよい。
【００５７】
共有鍵生成部１０２は、検出された処理負荷が低い場合に、前述の既存技術と同様にして各クライアント装置２０のための共有鍵を生成する。共有鍵配送部１０３は、生成された共有鍵を各クライアント装置２０に配送する。
【００５８】
シフト量決定部１０４は、検出された処理負荷が高い場合に、既存の共有鍵に対するシフト量を決定して、これを共有鍵配送部１０３を介して各クライアント装置２０に送信する。この処理については後述する。
【００５９】
また、クライアント装置２０のプロセッサ２１は、暗号化通信プログラムが動作することにより、暗号鍵判定部２０１、暗号化通信部２０２、鍵生成依頼部２０３、共有鍵受信部２０４、および共有鍵シフト部２０５の各々として機能する。さらに、クライアント装置２０の記憶手段２２には、他のコンピュータとの暗号化通信に使用される暗号鍵、および鍵センタ装置１０の公開鍵を記憶している記憶域である暗号鍵記憶部２１１が存在する。
【００６０】
暗号鍵判定部２０１は、通信相手のクライアント装置２０ごとに暗号鍵記憶部２１１に記憶された共有鍵が有効期限内であるか否かを判定する。暗号化通信部２０２は、有効期限内であると判定された共有鍵を利用して暗号化通信を行う。鍵生成依頼部２０３は、共有鍵が有効期限を過ぎていると判断された場合に、新たな共有鍵の生成を鍵センタ装置１０に依頼する。共有鍵受信部２０４は、この依頼に応じて鍵センタ装置１０から送られてきた新たな共有鍵を受信して暗号鍵記憶部２１１の記憶内容を更新する。
【００６１】
共有鍵シフト部２０５は、鍵センタ装置１０の共有鍵生成に係る処理負荷が高いと判定され、既存の共有鍵に対するシフト量が返信されてきた場合に、このシフト量を既存の共有鍵に適用して、これによって暗号鍵記憶部２１１の記憶内容を更新する。
【００６２】
図２は、図１に示したクライアント装置２０の暗号鍵記憶部２１１に記憶されている内容について示す説明図である。暗号鍵記憶部２１１は、通信相手の識別子２１１ａ（ＩＰアドレス、もしくはホスト名など）と、当該通信相手に対して使用される共有鍵２１１ｂ、およびその共有鍵２１１ｂの有効期限２１１ｃが、対応づけられて記憶されている。それらとは別個に、暗号化通信システム１全体で予め決定された共通パラメータである原子根２１１ｄ＝α、素数２１１ｅ＝Ｐ、さらに自らの秘密鍵２１１ｆ＝ｒ２、鍵センタ装置１０の公開鍵２１１ｇ＝Ｋｅ１も予め記憶されている。
【００６３】
図３は、図１に示した鍵センタ装置１０の公開鍵記憶部１１１に記憶されている内容について示す説明図である。公開鍵記憶部１１１は、前述の共通パラメータである原子根１１１ａ＝α、素数１１１ｂ＝Ｐ、さらに自らの秘密鍵１１１ｃ＝ｒ１、および各クライアント装置２０の識別子１１１ｄとこれに対応する公開鍵１１１ｅ＝Ｋｅ２が記憶されている。
【００６４】
図４は、図１に示した暗号化通信システム１で行われる暗号化通信の動作について示すフローチャートである。ここでは、クライアント装置２０のうちの１台であるクライアント装置２０ａで、暗号化通信部２０２が他のクライアント装置２０であるクライアント装置２０ｂとの暗号化通信を行おうとする。
【００６５】
その際、クライアント装置２０ａの暗号鍵判定部２０１は、暗号鍵記憶部２１１の記憶内容で、クライアント装置２０ｂを示す識別子２１１ａに対応する共有鍵２１１ｂが記憶されていて、かつ共有鍵２１１ｂの有効期限２１１ｃがまだ経過していない、即ち「クライアント装置２０ｂとの間の暗号化通信のための有効な暗号鍵が記憶されている」か否かについて判定する（ステップＳ３０１）。有効な暗号鍵が記憶されていれば、暗号化通信部２０２がその暗号鍵を利用して通信を行う（ステップＳ３０２）。
【００６６】
暗号鍵記憶部２１１にクライアント装置２０ｂを示す識別子２１１ａに対応する共有鍵２１１ｂが記憶されていない、または記憶されていても有効期限２１１ｃが既に経過している場合には（ステップＳ３０１がノー）、暗号鍵判定部２０１は鍵生成依頼部２０３を介して、鍵センタ装置１０に新たな暗号鍵の作成を依頼する（ステップＳ３０３）。
【００６７】
この依頼を受けた鍵センタ装置１０の負荷検出部１０１は、自らの共有鍵生成に係る処理負荷を検出して、この負荷が高いか否かを判定する（ステップＳ３５１）。処理負荷が低いと判定されたら（ステップＳ３５１がノー）、共有鍵生成部１０２がクライアント装置２０ａおよびクライアント装置２０ｂで使用されるべき新たな共有鍵を生成して（ステップＳ３５２）、これを共有鍵配送部１０３がクライアント装置２０ａおよびクライアント装置２０ｂに送信する（ステップＳ３５３）。
【００６８】
図４のステップＳ３５２〜３５３に示した共有鍵配送の処理は、前述の既存技術と同様に行われる。即ち、鍵センタ装置１０の公開鍵記憶部１１１に予め記憶されている自らの秘密鍵を１１１ｃ＝ｒ１、クライアント装置２０ａの識別子１１１ｄとこれに対応する公開鍵１１１ｅ＝Ｋｅ２とする。また、クライアント装置２０ａの暗号鍵記憶部２１１に予め記憶されている自らの秘密鍵２１１ｆ＝ｒ２、鍵センタ装置１０の公開鍵２１１ｇ＝Ｋｅ１とする。
【００６９】
ここで、ｒ１およびＫｅ１、ｒ２およびＫｅ２には、各々以下の数７および数８で示す関係が成立する。
【００７０】
【数７】
2014007514.tif 000009
【００７１】
【数８】
2014007514.tif 000010
【００７２】
鍵センタ装置１０では、共有鍵配送部１０３が、受信した公開鍵Ｋｅ２と、公開鍵記憶部１１１に記憶されているｒ１、α、Ｐの値から、共通鍵Ｋ１の値を、以下の数９によって算出する。
【００７３】
【数９】
2014007514.tif 000011
【００７４】
同様に、クライアント装置２０ａでも、共有鍵受信部２０４が、受信した公開鍵Ｋｅ１と、暗号鍵記憶部２１１に記憶されているｒ２、α、Ｐの値から、共通鍵Ｋ２の値を、以下の数１０によって算出する。
【００７５】
【数１０】
2014007514.tif 000012
【００７６】
以上の処理によって、Ｋ１＝Ｋ２となる共通の鍵が、鍵センタ装置１０とクライアント装置２０ａとの間で共有されたこととなる。この状態で、鍵センタ装置１０の共有鍵生成部１０２で生成された共有鍵Ｋ（上記Ｋ１およびＫ２のいずれとも異なる）が、共通鍵Ｋ１＝Ｋ２によって暗号化されて共有鍵配送部１０３からクライアント装置２０ａに向けて送信される。
【００７７】
クライアント装置２０ａでは共有鍵受信部２０４がこれを受信して同一の共有鍵Ｋ１＝Ｋ２によって解読し、暗号鍵記憶部２１１に、クライアント装置２０ｂを示す識別子２１１ａに対応する共有鍵２１１ｂ＝Ｋとして記憶する（ステップＳ３０４）。同時に、共有鍵配送部１０３は共有鍵受信部２０４に有効期限２１１ｃを通知するので、これも暗号鍵記憶部２１１に記憶する。
【００７８】
同様の送受信処理を、クライアント装置２０ｂも行う（ステップＳ３０５）。これによって、クライアント装置２０ａおよびクライアント装置２０ｂは、同一の有効な共有鍵Ｋを持つことができるので、これを利用して暗号化通信を行う（ステップＳ３０６）。
【００７９】
ステップＳ３５１で、負荷が高いと判定された場合（ステップＳ３５１がイエス）の処理について説明する。この判定を受けたシフト量決定部１０４は、乱数などによって、既存の共有鍵に対するシフト量を決定し（ステップＳ３５４）、これを共有鍵配送部１０３を介して各クライアント装置２０に送信する（ステップＳ３５５）。同時に、シフト量決定部１０４は新たな有効期限２１１ｃを通知するので、これも暗号鍵記憶部２１１に記憶する。この「新たな有効期限」は、共有鍵が新規に生成された場合と比べて短く設定することも可能である。
【００８０】
クライアント装置２０ａおよび２０ｂでは、これを受信した共有鍵シフト部２０５が、暗号鍵記憶部２１１に記憶された通信相手を示す識別子２１１ａに対応する共有鍵２１１ｂ＝Ｋに対してこのシフト量を適用して、改変された共有鍵２１１ｂ＝Ｋ’を作成して暗号鍵記憶部２１１に記憶し（ステップＳ３０７〜３０８）、これを利用して暗号化通信を行う（ステップＳ３０６）。
【００８１】
図５は、図１に示した暗号化通信システム１で、図４のステップＳ３０７〜３０８に示した共有鍵シフト部２０５による処理の詳細について示す説明図である。図５（ａ）には、改変される前の共有鍵２１１ｂ＝Ｋを示している。図５（ｂ）には、この共有鍵２１１ｂ＝Ｋをリング状にした状態を示している。図５（ｃ）には、図５（ｂ）に示したリング状にした共有鍵２１１ｂ＝Ｋの先頭位置を移動させた状態を示している。そして図５（ｄ）には、先頭位置を移動させて改変された後の共有鍵２１１ｂ＝Ｋ’を示している。
【００８２】
図５（ａ）に示したように、共有鍵２１１ｂ＝Ｋは５１２ビットなどの鍵長のビット列として表される。シフト量決定部１０４によって決定されたシフト量を受信した共有鍵シフト部２０５は、この共有鍵２１１ｂ＝Ｋを最初のビットと最後のビットをつなぎ合わせたリングに見立てて図５（ｂ）に示した状態にし、その先頭位置を受信したシフト量だけ移動させて図５（ｃ）に示した状態にし、これによって図５（ｄ）に示す改変された共有鍵Ｋ’が得られる。図５ではシフト量を「＋５」として、「時計回り方向に」５桁移動させた例を示している。その際、移動させる方向は、暗号化通信システム１全体で予め決めておく。
【００８３】
図６は、図１に示した暗号化通信システム１で、共有鍵生成に係る処理負荷の変化に伴う鍵センタ装置１０およびクライアント装置２０の動作の変化を示す説明図である。この図６では、紙面の都合で５台のクライアント装置２０ａ〜ｅについてのみ示しているが、実際には数千〜数万台、もしくはそれ以上の台数のクライアント装置２０の共有鍵の生成を鍵センタ装置１０が一手に担うものである。
【００８４】
まずクライアント装置２０ｅから鍵生成の依頼があった（ステップＳ４０１）。この段階では鍵センタ装置１０にかかる処理負荷は低いので、鍵センタ装置１０は共有鍵を生成して返送する（ステップＳ４０２）。続いてクライアント装置２０ｅから鍵生成の依頼があり（ステップＳ４０３）、鍵センタ装置１０は共有鍵を生成して返送する（ステップＳ４０４）。
【００８５】
これに引き続いてクライアント装置２０ｃから鍵生成の依頼があり（ステップＳ４０５）、鍵センタ装置１０は共有鍵を生成して返送する（ステップＳ４０６）。さらにクライアント装置２０ｂから鍵生成の依頼があり（ステップＳ４０７）、鍵センタ装置１０は共有鍵を生成して返送する（ステップＳ４０８）が、ここで処理負荷が高くなり、負荷検出部１０１が「高負荷」と判定する状態になる。
【００８６】
この状態でクライアント装置２０ａから鍵生成の依頼がある（ステップＳ４０９）と、鍵センタ装置１０は共有鍵を新規に生成せず、シフト量を決定して通知する動作となる。クライアント装置２０ａでは、既存の共有鍵にこのシフト量を適用して改変された共有鍵Ｋ’を作成し、これで通信を行う（ステップＳ４１０）。
【００８７】
それから少しの時が経過し、再び処理負荷が低い状態に戻る。この状態で、クライアント装置２０ａから再び鍵生成の依頼がある（ステップＳ４１１）と、鍵センタ装置１０は今度は新規に共有鍵を生成して返送する（ステップＳ４１２）。
【００８８】
（第１の実施形態の全体的な動作）
次に、上記の実施形態の全体的な動作について説明する。
本実施形態に係る暗号化通信方法は、相互間で暗号化通信を行う多数のクライアント装置と、暗号化通信に使用される暗号鍵を各クライアント装置からの依頼に応じて生成して当該クライアント装置に配送する鍵センタ装置とが相互に接続されてなる暗号化通信システムにあって、クライアント装置に予め備えられた暗号鍵記憶部に記憶されている暗号鍵が有効期限内であるか否かをクライアント装置の暗号鍵判定部が判定し（図４・ステップＳ３０１）、暗号鍵が有効期限を経過した場合にクライアント装置の鍵生成依頼部が鍵センタ装置に暗号鍵の生成を依頼し（図４・ステップＳ３０３）、各クライアント装置からの暗号鍵の生成依頼に応じて、鍵センタ装置の負荷検出部が暗号鍵の生成にかかる自らの処理負荷を検出してこの処理負荷が高いか否かを判定し（図４・ステップＳ３５１）、処理負荷が低い場合に、鍵センタ装置の共有鍵生成部が暗号鍵を生成すると共に鍵センタ装置の共有鍵配送部がこの暗号鍵を当該クライアント装置に送信し（図４・ステップＳ３５２〜３５３）、処理負荷が高い場合に、鍵センタ装置のシフト量決定部がクライアント装置に記憶されている暗号鍵を改変するための数値であるシフト量を生成して当該クライアント装置に送信する（図４・ステップＳ３５４〜３５５）。
【００８９】
そして、鍵センタ装置からシフト量をクライアント装置の共有鍵シフト部が受信し、このシフト量だけ暗号鍵のデータをクライアント装置の共有鍵シフト部がビットシフトして当該暗号鍵を改変する（図４・ステップＳ３０７〜３０８）。
【００９０】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行する鍵センタ装置のプロセッサ１１、およびクライアント装置のプロセッサ２１に実行させるようにしてもよい。本プログラムは、非一時的な記録媒体、例えば、ＤＶＤ、ＣＤ、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
この動作により、本実施形態は以下のような効果を奏する。
【００９１】
本実施形態によれば、鍵センタ装置１０の処理負荷が高い場合に、共有鍵の新規生成を行わず、シフト量を決定して通知するのみの動作となる。この動作は、ただ乱数を１個生成して通知するのみでよいので、共有鍵の新規生成と比べて大幅に処理負荷は少なくて済む。従って、鍵センタ装置１０にかかる負荷を大きく低減させることが可能となる。
【００９２】
この与えられたシフト量によって共有鍵を改変するという動作によって、クライアント装置２０は暗号化通信を継続することができる。シフト量を与えられて改変された共有鍵は、新規に生成された共有鍵と比べて暗号強度が若干劣る面もあることは否定できない。しかしながら、改変された共有鍵の有効期限を新規の共有鍵と比べて短く設定し、かつ鍵センタ装置１０が「高負荷」ではない状態に戻ってから再び新規の共有鍵を受信して使用すれば、セキュリティ面において特に問題はない。
【００９３】
（第２の実施形態）
本発明の第２の実施形態は、前述した第１の実施形態の構成に加えて、クライアント装置５２０が、鍵センタ装置に送信した暗号鍵の生成依頼に対する返答が時間内にあったか否かを判定する鍵生成依頼タイムアウト検出部６０６と、生成依頼に対する返答が時間内になかった場合に、シフト量を生成してこれを共有鍵シフト部に与える第２のシフト量決定部６０７とを備える構成とした。
【００９４】
この構成によっても、第１の実施形態と同一の効果が得られることに加えて、鍵センタ装置１０に対してさらに処理負荷がかかってクライアント装置に対して返信すること自体が不可能になった場合でも、クライアント装置相互間でシフト量を決定して暗号化通信を続行することが可能となるとして効果を得ることが可能となる。
以下、これをより詳細に説明する。
【００９５】
図７は、本発明の第２の実施形態に係る暗号化通信システム５０１の構成について示す説明図である。暗号化通信システム５０１は、第１の実施形態と同一の鍵センタ装置１０と、第１の実施形態とは別の多数のクライアント装置５２０ａ、５２０ｂ、…（以後総称してクライアント装置５２０という）がネットワーク３０を介して相互に接続されて構成される。
【００９６】
クライアント装置５２０は、ハードウェアとしての構成は第１の実施形態のクライアント装置２０と同一であり、ソフトウェアとしての構成も、暗号化通信プログラムによってプロセッサ２１上に実現される各機能部に、鍵生成依頼タイムアウト検出部６０６および第２のシフト量決定部６０７が追加されている点以外は、第１の実施形態のクライアント装置２０と同一である。従って、共通する構成要素については、同一の呼称および参照番号でいう。
【００９７】
図８は、図７に示した暗号化通信システム５０１で行われる暗号化通信の動作について示すフローチャートである。このフローチャートにも、図４に示した第１の実施形態と同一の動作が多く含まれるので、同一の動作は同一の参照番号でいい、また一部動作ステップの記載を省略している部分もある。
【００９８】
まず、クライアント装置５２０ｂとの間で暗号化通信を行おうとしているクライアント装置５２０ａが行う動作は、図４に示したステップＳ３０１〜３０３と同一である。これに対して、鍵センタ装置１０が共有鍵を生成して送信する、またはシフト量を決定して送信する動作も、図４に示したステップＳ３５１〜３５５と同一である。クライアント装置５２０が共有鍵もしくはシフト量を受信した場合の動作も、図４に示したステップＳ３０４〜３０８と同一である。
【００９９】
しかしながら、図４に示した第１の実施形態では、鍵センタ装置１０の処理負荷がさらに高い、もしくは動作に不具合が生じた結果、共有鍵の生成はおろか、シフト量を決定して返信する動作すらできないという場合は想定されていない。それに対して、この第２の実施形態では、ステップＳ３０３で鍵センタ装置１０に暗号鍵の作成を依頼した後、鍵生成依頼タイムアウト検出部６０６が鍵センタ装置１０からの反応の有無を検出する（ステップＳ７０１）。反応があればステップＳ３０４〜３０８に進む。
【０１００】
ステップＳ７０１で、鍵センタ装置１０からの反応が一定時間なければタイムアウトとなり、その場合第２のシフト量決定部６０７が、鍵センタ装置１０のシフト量決定部１０４と同様に、乱数などを利用して既存の共有鍵に対するシフト量を決定する（ステップＳ７０２）。その際、暗号化通信の相手であるクライアント装置５２０ａおよび５２０ｂの相互間でシフト量を交換し、必ず同一のシフト量を適用するようにする。
【０１０１】
シフト量が決定したら、クライアント装置５２０ａおよび５２０ｂではこの決定されたシフト量が第２のシフト量決定部６０７から共有鍵シフト部２０５に渡され、以後はステップＳ３０７〜３０８と同一の処理となる。
【０１０２】
この構成によって、鍵センタ装置１０がクライアント装置５２０に対して返信すること自体が不可能になった場合でも、暗号化通信を行っているクライアント装置５２０ａおよび５２０ｂが相互間でシフト量を決定して、第１の実施形態と同様の共有鍵の改変を行って、暗号化通信を継続することが可能となる。この場合も、鍵センタ装置１０の動作が復旧すれば、すぐに新規に暗号鍵を生成して配送するという動作に戻ることができる。
【０１０３】
（実施形態の拡張）
上記した第１および第２の実施形態は、以上で説明した本発明の趣旨を改変しない範囲で、様々な拡張が可能である。以下、これについて説明する。
まず、共有鍵の改変の処理は、決定されたシフト量に基づいてその共有鍵のデータをビットシフトするという動作例を説明したが、この動作に限ったものではない。同一の暗号鍵に同一のシフト量を適用すれば装置に関係なく必ず同一の改変結果を得られるものであれば、どのような方法でもよい。たとえば、共有鍵の特定のビットとそのシフト量に対して特定の論理演算を行うというような方式でもよい。
【０１０４】
また、クライアント装置のうちのいずれかが鍵センタ装置としての機能を兼ね備えるものであってもよいし、さらに鍵センタ装置が複数台のコンピュータによって仮想的に構成されてもよい。通信プロトコルの種類、および暗号化方式については任意のものを適用できるし、共通鍵方式でなく秘密鍵方式の暗号について本発明の方式を適用することももちろん可能である。
【０１０５】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【０１０６】
上述した実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
【０１０７】
（付記１）  相互間で暗号化通信を行う多数のクライアント装置と、前記暗号化通信に使用される暗号鍵を前記各クライアント装置からの依頼に応じて生成して当該クライアント装置に配送する鍵センタ装置とが相互に接続されてなる暗号化通信システムであって、
前記鍵センタ装置が、前記各クライアント装置からの依頼に応じて前記暗号鍵を生成する共有鍵生成部と、生成された前記暗号鍵を当該クライアント装置に送信する共有鍵配送部とを備え、
前記クライアント装置が、予め備えられた暗号鍵記憶部に記憶されている前記暗号鍵が有効期限内であるか否かを判定する暗号鍵判定部と、有効期限内であると判定された前記暗号鍵を利用して前記暗号化通信を行う暗号化通信部と、前記暗号鍵が有効期限を経過した場合に前記鍵センタ装置に前記暗号鍵の生成を依頼する鍵生成依頼部と、生成された前記暗号鍵を前記鍵センタ装置から受信する共有鍵受信部とを備えると共に、
前記鍵センタ装置が、
前記暗号鍵の生成にかかる自らの処理負荷を検出してこの処理負荷が高いか否かを判定する負荷検出部と、
前記処理負荷が高い場合に、前記クライアント装置に記憶されている前記暗号鍵を改変するための数値であるシフト量を生成して当該クライアント装置に送信するシフト量決定部と
を備えることを特徴とする暗号化通信システム。
【０１０８】
（付記２）  前記クライアント装置が、
前記鍵センタ装置から受信した前記シフト量に等しい桁数だけ前記暗号鍵のビット列データを移動させることによって当該暗号鍵を改変する共有鍵シフト部
を備えることを特徴とする、付記１に記載の暗号化通信システム。
【０１０９】
（付記３）  前記クライアント装置が、
前記鍵センタ装置に送信した前記暗号鍵の生成依頼に対する返答が時間内にあったか否かを判定する鍵生成依頼タイムアウト検出部と、
前記生成依頼に対する返答が時間内になかった場合に、前記シフト量を生成してこれを前記共有鍵シフト部に与える第２のシフト量決定部と
を備えることを特徴とする、付記１もしくは２に記載の暗号化通信システム。
【０１１０】
（付記４）  相互間で暗号化通信を行う多数のクライアント装置と相互に接続され、前記暗号化通信に使用される暗号鍵を前記各クライアント装置からの依頼に応じて生成して当該クライアント装置に配送する鍵センタ装置であって、
前記各クライアント装置からの依頼に応じて前記暗号鍵を生成する共有鍵生成部と、
生成された前記暗号鍵を当該クライアント装置に送信する共有鍵配送部と、
前記暗号鍵の生成にかかる自らの処理負荷を検出してこの処理負荷が高いか否かを判定する負荷検出部と、
前記処理負荷が高い場合に、前記クライアント装置に記憶されている前記暗号鍵を改変するための数値であるシフト量を生成して当該クライアント装置に送信するシフト量決定部と
を備えることを特徴とする鍵センタ装置。
【０１１１】
（付記５）  暗号化通信を行うための暗号鍵を記憶する暗号鍵記憶部を予め備え、これによって他装置と相互間で暗号化通信を行うクライアント装置であって、
前記暗号鍵記憶部に記憶されている前記暗号鍵が有効期限内であるか否かを判定する暗号鍵判定部と、
有効期限内であると判定された前記暗号鍵を利用して前記暗号化通信を行う暗号化通信部と、
前記暗号鍵が有効期限を経過した場合に外部に接続された鍵センタ装置に前記暗号鍵の生成を依頼する鍵生成依頼部と、
生成された前記暗号鍵を前記鍵センタ装置から受信する共有鍵受信部と、
前記鍵センタ装置にかかる処理負荷が高い場合にこの鍵センタ装置から送信される数値であるシフト量を受信し、このシフト量に等しい桁数だけ前記暗号鍵のビット列データを移動させることによって当該暗号鍵を改変する共有鍵シフト部
を備えることを特徴とするクライアント装置。
【０１１２】
（付記６）  前記鍵センタ装置に送信した前記暗号鍵の生成依頼に対する返答が時間内にあったか否かを判定する鍵生成依頼タイムアウト検出部と、
前記生成依頼に対する返答が時間内になかった場合に、前記シフト量を生成してこれを前記共有鍵シフト部に与える第２のシフト量決定部と
を備えることを特徴とする、付記５に記載のクライアント装置。
【０１１３】
（付記７）  相互間で暗号化通信を行う多数のクライアント装置と、前記暗号化通信に使用される暗号鍵を前記各クライアント装置からの依頼に応じて生成して当該クライアント装置に配送する鍵センタ装置とが相互に接続されてなる暗号化通信システムにあって、
前記クライアント装置に予め備えられた暗号鍵記憶部に記憶されている前記暗号鍵が有効期限内であるか否かを前記クライアント装置の暗号鍵判定部が判定し、
前記暗号鍵が有効期限を経過した場合に前記クライアント装置の鍵生成依頼部が前記鍵センタ装置に前記暗号鍵の生成を依頼し、
前記各クライアント装置からの前記暗号鍵の生成依頼に応じて、前記鍵センタ装置の負荷検出部が前記暗号鍵の生成にかかる自らの処理負荷を検出してこの処理負荷が高いか否かを判定し、
前記処理負荷が低い場合に、前記鍵センタ装置の共有鍵生成部が前記暗号鍵を生成すると共に前記鍵センタ装置の共有鍵配送部がこの暗号鍵を当該クライアント装置に送信し、
前記処理負荷が高い場合に、前記鍵センタ装置のシフト量決定部が前記クライアント装置に記憶されている前記暗号鍵を改変するための数値であるシフト量を生成して当該クライアント装置に送信する
ことを特徴とする暗号化通信方法。
【０１１４】
（付記８）  前記鍵センタ装置から前記シフト量を前記クライアント装置の共有鍵シフト部が受信し、
このシフト量に等しい桁数だけ前記暗号鍵のビット列データを前記クライアント装置の前記共有鍵シフト部が移動させることによって当該暗号鍵を改変する
ことを特徴とする、付記７に記載の暗号化通信方法。
【０１１５】
（付記９）  相互間で暗号化通信を行う多数のクライアント装置と、前記暗号化通信に使用される暗号鍵を前記各クライアント装置からの依頼に応じて生成して当該クライアント装置に配送する鍵センタ装置とが相互に接続されてなる暗号化通信システムにあって、
前記鍵センタ装置が備えるプロセッサに、
前記各クライアント装置からの前記暗号鍵の生成依頼に応じて、前記暗号鍵の生成にかかる自らの処理負荷を検出してこの処理負荷が高いか否かを判定する手順、
前記処理負荷が低い場合に、前記暗号鍵を生成すると共にこの暗号鍵を当該クライアント装置に送信する手順、
および前記処理負荷が高い場合に、前記クライアント装置に記憶されている前記暗号鍵を改変するための数値であるシフト量を生成して当該クライアント装置に送信する手順
を実行させることを特徴とする暗号化プログラム。
【０１１６】
（付記１０）  相互間で暗号化通信を行う多数のクライアント装置と、前記暗号化通信に使用される暗号鍵を前記各クライアント装置からの依頼に応じて生成して当該クライアント装置に配送する鍵センタ装置とが相互に接続されてなる暗号化通信システムにあって、
前記クライアント装置が備えるプロセッサに、
予め備えられた暗号鍵記憶部に記憶されている前記暗号鍵が有効期限内であるか否かを判定する手順、
前記暗号鍵が有効期限を経過した場合に前記鍵センタ装置に前記暗号鍵の生成を依頼する手順、
前記鍵センタ装置から前記暗号鍵を改変するための数値であるシフト量を受信する手順、
およびこのシフト量に等しい桁数だけ前記暗号鍵のビット列データを移動させることによって当該暗号鍵を改変する手順
を実行させることを特徴とする暗号化プログラム。
【産業上の利用可能性】
【０１１７】
本発明は、暗号化通信を行うデータ通信システムにおいて広く適用可能である。特に、前述のセンサネットワークなどのように、各々の端末装置が潤沢な計算機資源（リソース）を持つことはできないが暗号化通信は必要であるという環境において適している。
【符号の説明】
【０１１８】
１、５０１  暗号化通信システム
１０  鍵センタ装置
１１、２１  プロセッサ
１２、２２  記憶手段
１３、２３  通信手段
２０、５２０  クライアント装置
３０  ネットワーク
１０１  負荷検出部
１０２  共有鍵生成部
１０３  共有鍵配送部
１０４  シフト量決定部
１１１  公開鍵記憶部
２０１  暗号鍵判定部
２０２  暗号化通信部
２０３  鍵生成依頼部
２０４  共有鍵受信部
２０５  共有鍵シフト部
２１１  暗号鍵記憶部
６０６  鍵生成依頼タイムアウト検出部
６０７  第２のシフト量決定部
【図１】
2014007514.tif 000013
【図２】
2014007514.tif 000014
【図３】
2014007514.tif 000015
【図４】
2014007514.tif 000016
【図５】
2014007514.tif 000017
【図６】
2014007514.tif 000018
【図７】
2014007514.tif 000019
【図８】
2014007514.tif 000020
【図９】
2014007514.tif 000021
【図１０】
2014007514.tif 000022