(57)【要約】【課題】通信ネットワークに接続されている安価な組込み機器などにおいて、生成した乱数の精度が低い場合や、乱数自体を生成する機能を有しない場合や、種々処理を実行していることにより乱数を生成することが困難な場合においても、精度の高い乱数を取得することができるネットワークシステムを提供する。【解決手段】ネットワークシステムＡは、クライアント装置１とサーバ装置２が通信接続されるものであって、クライアント装置１は、乱数Ｎの生成を要求するリクエスト信号Ｒを生成するリクエスト信号生成部１１を備え、サーバ装置２は、乱数Ｎを生成するサーバ側乱数生成部２４を備え、クライアント装置１は、リクエスト信号Ｒをサーバ装置２へ送信し、サーバ装置２は、リクエスト信号Ｒを受信し、サーバ側乱数生成部２４において生成した乱数Ｎをクライアント装置１へ送信し、クライアント装置１は、乱数Ｎを受信して利用するものである。【選択図】図２
2008203581.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置とサーバ装置がネットワークを介して通信接続されるネットワークシステムであって、クライアント装置は、乱数の生成を要求するリクエスト信号を生成するリクエスト信号生成部を備え、サーバ装置は、乱数を生成するサーバ側乱数生成部を備え、クライアント装置は、前記リクエスト信号をサーバ装置へ送信し、サーバ装置は、前記リクエスト信号を受信し、サーバ側乱数生成部において生成した乱数をクライアント装置へ送信し、クライアント装置は、前記乱数を受信して利用するものであることを特徴とするネットワークシステム。
【請求項２】
サーバ装置は、クライアント装置へ送信する乱数を暗号化する暗号化部をさらに備え、クライアント装置は、前記暗号化された乱数を復号化する復号化部をさらに備えて、前記復号化された乱数を利用することを特徴とする請求項１記載のネットワークシステム。
【請求項３】
クライアント装置は、乱数を生成するクライアント側乱数生成部と、サーバ装置から受信した乱数とクライアント側乱数生成部で生成した乱数とに基づいて新たな乱数を生成する乱数処理部とをさらに備えて、前記新たな乱数を利用することを特徴とする請求項１又は２記載のネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、クライアント装置とサーバ装置がネットワークを介して通信接続されるネットワークシステムに関する。
【背景技術】
【０００２】
互いに通信可能な通信機器に基づく通信ネットワークにおいて、被認証機器と認証機器との間で通信確立を行い、実際にデータの送受信を実施するにあたり、相手の通信機器が信頼関係を保証する機器であるか否かを確認した上で通信を行うことが、安全な通信ネットワークを構築するためには非常に重要である。そこで、安全な通信システムを実現するために、従来から乱数を用いた認証プロトコルや鍵配布プロトコルが用いられている。
【０００３】
例えば、特表２００４−５２５５５８号公報に示されるように、暗号的に強力なランダム数生成装置によって生成される乱数を使用することによって、データのレコード暗号化と暗号解読のための一意的な識別子としての役割を果たすことができることが知られている。
【０００４】
また、特開２００３−２６４５５２号公報に示されるように、通信手段によりネットワークを用いて通信が可能であるホストとクライアントとの間のネットワークシステムにおいて、クライアントは設定した乱数を暗号化した暗号化乱数を本人認証手段による署名付きでホストへ送信し、ホストは設定した乱数を暗号化した暗号化乱数を本人認証手段による署名付きでクライアントへ送信する。これを受けたホストおよびクライアントはそれぞれ相手から入手した乱数を検証するために検証用暗号化乱数を生成し、この生成した検証用暗号化乱数とそれぞれ相手から入手した暗号化乱数とを比較して検証する。さらに、ホストおよびクライアントが呈示する乱数のビットごとの排他的論理和である公平な乱数を生成する乱数生成方法を用いたネットワークシステムが知られている。
【特許文献１】特表２００４−５２５５５８号公報
【特許文献２】特開２００３−２６４５５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記従来例であるネットワークシステムにあっては、いずれにあっても、乱数を用いて安全な通信システムを実現するためには、通信ネットワークに接続される各通信機器が、自ら乱数を生成する機能を備えておく必要がある。しかし、通信機器に安価な組込み機器を用いる場合などでは、スペース又はコストの制約などによって、処理能力の低い演算装置を用いる必要があるなどの理由により、精度の高い乱数を生成することは、非常に困難であるという問題があった。
【０００６】
本願発明は、上記背景技術に鑑みて発明されたものであり、その目的は、通信ネットワークに接続されている安価な組込み機器などにおいて、生成した乱数の精度が低い場合や、乱数自体を生成する機能を有しない場合や、種々処理を実行していることにより乱数を生成することが困難な場合においても、精度の高い乱数を取得することができるネットワークシステムを提供することを課題とするものである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本願請求項１記載の発明では、クライアント装置とサーバ装置がネットワークを介して通信接続されるネットワークシステムであって、クライアント装置は、乱数の生成を要求するリクエスト信号を生成するリクエスト信号生成部を備え、サーバ装置は、乱数を生成するサーバ側乱数生成部を備え、クライアント装置は、前記リクエスト信号をサーバ装置へ送信し、サーバ装置は、前記リクエスト信号を受信し、サーバ側乱数生成部において生成した乱数をクライアント装置へ送信し、クライアント装置は、前記乱数を受信して利用するものであることを特徴としている。
【０００８】
本願請求項２記載の発明では、上記請求項１記載のネットワークシステムにおいて、サーバ装置は、クライアント装置へ送信する乱数を暗号化する暗号化部をさらに備え、クライアント装置は、前記暗号化された乱数を復号化する復号化部をさらに備えて、前記復号化された乱数を利用することを特徴としている。
【０００９】
本願請求項３記載の発明では、上記請求項１又は２記載のネットワークシステムにおいて、クライアント装置は、乱数を生成するクライアント側乱数生成部と、サーバ装置から受信した乱数とクライアント側乱数生成部で生成した乱数とに基づいて新たな乱数を生成する乱数処理部とをさらに備えて、前記新たな乱数を利用することを特徴としている。
【発明の効果】
【００１０】
本願請求項１記載の発明のネットワークシステムにおいては、クライアント装置は、乱数の生成を要求するリクエスト信号をリクエスト信号生成部によって生成し、前記リクエスト信号をサーバ装置へ送信するものであり、サーバ装置は、前記リクエスト信号を受信し、サーバ側乱数生成部によって乱数を生成し、前記乱数をクライアント装置へ送信するものであり、クライアント装置は、前記乱数を受信して利用するものであるので、クライアント装置が種々処理を実行していることにより乱数を生成することが困難な場合や、クライアント装置の生成した乱数の精度が低い場合や、クライアント装置が乱数自体を生成する機能を有さない場合でも、サーバ装置で生成した精度の高い乱数を、ネットワークを介して取得して様々な用途に利用することができる。
【００１１】
本願請求項２記載の発明のネットワークシステムにおいては、特に、サーバ装置は、クライアント装置へ送信する乱数を暗号化する暗号化部を備え、クライアント装置は、前記暗号化された乱数を復号化する復号化部を備えているので、サーバ装置とクライアント装置との間で送受信される乱数を暗号化することができる。このことによって、信頼関係を構築していない他の装置に読み取られる危険性を低減することができるので、安全なネットワークシステムを構築することができる。
【００１２】
本願請求項３記載の発明のネットワークシステムにおいては、特に、クライアント装置は、乱数を生成するクライアント側乱数生成部と、サーバ装置から受信した乱数とクライアント側乱数生成部で生成した乱数とに基づいて新たな乱数を生成する乱数処理部とを備えているので、サーバ装置から受信する乱数とクライアント装置で利用する乱数とが同値とはならない。このことによって、信頼関係を構築していない他の装置に送受信される乱数を解読された場合においても、クライアント装置が利用する乱数は、送受信した乱数とは別の値であるので、他の装置にクライアント装置が利用する乱数を解読することは非常に困難となり、さらに安全なネットワークシステムを構築することができる。また、クライアント装置で生成する乱数の精度が低い場合でも、サーバ装置で生成した乱数を用いて新たな乱数を生成するので、精度の高い乱数を取得することが可能となる。
【発明を実施するための最良の形態】
【００１３】
図１〜図３は、本願発明の第１の実施形態であるネットワークシステムを示している。図１及び図２に示すように、ネットワークシステムＡは、クライアント装置１とサーバ装置２がネットワーク３を介して通信接続されるものであって、クライアント装置１は、乱数Ｎの生成を要求するリクエスト信号Ｒを生成するリクエスト信号生成部１１と、前記リクエスト信号Ｒをサーバ装置２へネットワーク３を介して送信するクライアント側データ送信部１２と、サーバ装置２で生成した乱数Ｎをサーバ装置２からネットワーク３を介して受信するクライアント側データ受信部１３とを備え、サーバ装置２は、前記リクエスト信号Ｒをクライアント装置１からネットワーク３を介して受信するサーバ側データ受信部２３と、乱数Ｎを生成するサーバ側乱数生成部２４と、前記乱数Ｎをクライアント装置１へネットワーク３を介して送信するサーバ側データ送信部２２とを備えている。また、クライアント装置１は、前記リクエスト信号Ｒをサーバ装置２へクライアント側データ送信部１２によって送信し、サーバ装置２は、サーバ側データ受信部２３によって前記リクエスト信号Ｒを受信し、サーバ側乱数生成部２４において生成した乱数Ｎをクライアント装置１へサーバ側データ送信部２２によって送信し、クライアント装置１は、前記乱数Ｎをクライアント側データ受信部１３によって受信して利用するものである。さらに、サーバ装置２は、クライアント装置１へ送信する乱数Ｎを暗号化する暗号化部２５を備え、クライアント装置１は、前記暗号化された乱数Ｎを復号化する復号化部１５を備えて、前記復号化された乱数Ｎを利用するものである。
【００１４】
以下、この実施形態のネットワークシステムをより具体的詳細に説明する。図１及び図２に示すように、同一のネットワーク３に複数のクライアント装置１及びサーバ装置２が接続されている。また、クライアント装置１には、電源１０１、中央処理装置１０２、通信モジュール１０３が搭載され、サーバ装置２には、電源２０１、中央処理装置２０２、通信モジュール２０３が搭載されている。
【００１５】
電源１０１、２０１は、それぞれクライアント装置１及びサーバ装置２の電源を管理するものである。
【００１６】
クライアント装置１の中央処理装置１０２は、リクエスト信号生成部１１と、クライアント側データ送信部１２と、クライアント側データ受信部１３と、復号化部１５とを備えるものである。また、サーバ装置２の中央処理装置２０２は、サーバ側データ送信部２２と、サーバ側データ受信部２３と、サーバ側乱数生成部２４と、暗号化部２５とを備えるものである。この中央処理装置１０２、２０２は、それぞれ電源１０１、２０１より電力が供給されて起動するものである。
【００１７】
通信モジュール１０３、２０３は、中央処理装置１０２、２０２より命令を受けて、ネットワーク３を介してクライアント装置１又はサーバ装置２との通信を行うものである。
【００１８】
次に、クライアント装置１とサーバ装置２との間で行われる通信内容を図３に基づいて説明する。クライアント装置１は、例えば、種々処理を実行していることにより乱数Ｎを生成することが困難な場合や、生成した乱数Ｎの精度が低い場合や、乱数Ｎ自体を生成する機能を有さない場合がある。このような状況下において、乱数Ｎを取得する必要がある場合、リクエスト信号生成部１１は、サーバ装置２に対して乱数Ｎの生成を要求するリクエスト信号Ｒを生成するステップＳ１を実行する。次のステップＳ２において、生成されたリクエスト信号Ｒは、暗号通信に必要な公開鍵Ｋと共にサーバ装置２へ通信モジュール１０３を介して送信される。
【００１９】
次に、サーバ装置２は、通信モジュール２０３を介し、サーバ側データ受信部２３によって、クライアント装置１より送信されたリクエスト信号Ｒ及び公開鍵Ｋを受信するステップＳ３を実行する。このようにリクエスト信号Ｒ及び公開鍵Ｋを受信した場合、サーバ装置２は、サーバ側乱数生成部２４によって、乱数Ｎを生成するステップＳ４を実行する。
【００２０】
ここで、乱数Ｎを生成する方法として、例えば、電気回路の熱雑音（ジョンソンノイズ）などの物理現象を利用した物理乱数を用いることができる。このことによって、周期性が無く、予測できない精度の高い乱数を乱数Ｎとして生成することができる。
【００２１】
なお、乱数Ｎを生成する方法は、上記の方法に限定されるものではなく、他の方法によって乱数Ｎを生成してもよい。
【００２２】
次に、サーバ装置２は、生成した乱数Ｎを暗号化部２５によって、公開鍵Ｋを用いて暗号化するステップＳ５を実行する。ここで、サーバ装置２は、クライアント装置１より受信した公開鍵Ｋを用いて暗号化を行う。さらに、サーバ装置２は、暗号化部２５で暗号化した乱数Ｅ（Ｎ）をサーバ側データ送信部２２によりクライアント装置１へ通信モジュール２０３を介して送信するステップＳ６を実行する。
【００２３】
次に、クライアント装置１は、サーバ装置２のサーバ側データ送信部２２により送信された暗号化された乱数Ｅ（Ｎ）を、通信モジュール１０３を介し、クライアント側データ受信部１３によって受信するステップＳ７を実行する。さらに、クライアント装置１は、復号化部１５により公開鍵Ｋと対となる秘密鍵Ｋ’を用いて、暗号化された乱数Ｅ（Ｎ）の復号化を行うステップＳ８を実行し、乱数Ｎを取得する。クライアント装置１は、ステップＳ９によって、取得した乱数Ｎをメモリ部１０４へ格納する。クライアント装置１は、この取得した乱数Ｎを独自の機能や、他のクライアント装置１などとの安全性を確保した暗号化通信を行う際に用いられるナンスなどに利用する。
【００２４】
なお、上記のクライアント装置１とサーバ装置２で行われる暗号化及び復号化の方法は、本実施形態で示した暗号化及び復号化の方法に限定されるものではなく、他の暗号化及び復号化の方法を用いて乱数Ｎの送受信を行ってもよい。さらに、ネットワークシステムＡの安全性が確保されているなどの環境下においては、暗号化を行わずに乱数Ｎを送受信するものであってもよい。
【００２５】
したがって、クライアント装置１は、乱数Ｎの生成を要求するリクエスト信号Ｒをリクエスト信号生成部１１によって生成し、前記リクエスト信号Ｒをサーバ装置２へ送信するものであり、サーバ装置２は、前記リクエスト信号Ｒを受信し、サーバ側乱数生成部２４によって乱数Ｎを生成し、前記乱数Ｎをクライアント装置１へ送信するものであり、クライアント装置１は、前記乱数Ｎを受信して利用するものであるので、クライアント装置１が種々処理を実行していることにより乱数Ｎを生成することが困難な場合や、クライアント装置１の生成した乱数Ｎの精度が低い場合や、クライアント装置１が乱数Ｎ自体を生成する機能を有さない場合でも、サーバ装置２で生成した精度の高い乱数Ｎを、ネットワーク３を介して取得して様々な用途に利用することができる。
【００２６】
さらに、サーバ装置２は、クライアント装置１へ送信する乱数Ｎを暗号化する暗号化部２５を備え、クライアント装置１は、前記暗号化された乱数Ｅ（Ｎ）を復号化する復号化部１５を備えているので、クライアント装置１とサーバ装置２との間で送受信される乱数Ｎを暗号化することができる。このことによって、信頼関係を構築していない他の装置に読み取られる危険性を低減することができるので、安全なネットワークシステムＡを構築することができる。
【００２７】
図４及び図５は、本願発明の第２の実施形態であるネットワークシステムを示している。ここでは、上記第１の実施形態と相違する事項についてのみ説明し、その他の事項（構成、作用効果等）については、上記第１の実施形態と同様であるのでその説明を省略する。
【００２８】
図４に示すように、クライアント装置１は、乱数Ｎｃを生成するクライアント側乱数生成部１４と、サーバ装置２から受信した乱数Ｎｓとクライアント側乱数生成部１４で生成した乱数Ｎｃとに基づいて新たな乱数Ｎｎを生成する乱数処理部１６とをさらに備えたものである。
【００２９】
次に、クライアント装置１とサーバ装置２との間で行われる通信内容を図５に基づいて説明する。クライアント装置１は、精度の高い乱数Ｎを取得する必要がある場合、リクエスト信号生成部１１によって、サーバ装置２に対して乱数Ｎの生成を要求するリクエスト信号Ｒを生成するステップＳ１１を実行する。次のステップＳ１２において、生成されたリクエスト信号Ｒは、暗号通信に必要な公開鍵Ｋと共にサーバ装置２へ通信モジュール１０３を介して送信される。また、クライアント装置１は、クライアント側乱数生成部１４により乱数Ｎｃを生成し、メモリ部１０４へ格納するステップＳ１７及び１８を実行する。
【００３０】
ここで、乱数Ｎｃを生成する方法として、例えば、クライアント装置１が起動してから最初にパケットを受信するまでに要した時間を基に乱数Ｎｃの初期値を生成することができる。クライアント装置１が起動した時刻をメモリ部１０４に保存し、最初にパケットを受信した時刻との差分によって、上記時間を算出することができる。
【００３１】
また、乱数Ｎｃを生成する他の方法として、例えば、カウンタ変数を予め用意しておき、カウンタ変数の値を基に乱数Ｎｃを生成することができる。カウンタ変数の演算については、ソフトウェアの割り込みの発生があった場合に、カウンタ変数に１を加算するものとし、クライアント装置１が起動してから最初にパケットを受信するまで繰り返すことでカウンタ変数の演算を行う。ここで、ソフトウェアの割り込み発生間隔は一定時間でなくても構わない。
【００３２】
さらに、乱数Ｎｃを生成する他の方法として、例えば、線形合同法を用いて行うことができる。線形合同法は、漸化式Ｎｃ（ｎ＋１）＝（ａ×Ｎｃ（ｎ）＋ｂ）ｍｏｄＭを用いることによって乱数を生成する方法である。
【００３３】
なお、上記のクライアント装置１のクライアント側乱数生成部１４によって行われる乱数Ｎｃの生成方法は、上記の生成方法に限定されるものではなく、他の生成方法を用いて乱数Ｎｃの生成を行ってもよい。
【００３４】
次に、サーバ装置２は、通信モジュール２０３を介し、サーバ側データ受信部２３によって、クライアント装置１より送信されたリクエスト信号Ｒ及び公開鍵Ｋを受信するステップＳ１３を実行する。このようにリクエスト信号Ｒ及び公開鍵Ｋを受信した場合、サーバ装置２は、サーバ側乱数生成部２４によって、乱数Ｎｓを生成するステップＳ１４を実行する。
【００３５】
さらに、サーバ装置２は、生成した乱数Ｎｓを暗号化部２５によって、公開鍵Ｋを用いて暗号化するステップＳ１５を実行する。ここで、サーバ装置２は、クライアント装置１より受信した公開鍵Ｋを用いて暗号化を行う。さらに、サーバ装置２は、暗号化部２５で暗号化した乱数Ｅ（Ｎｓ）をサーバ側データ送信部２２によりクライアント装置１へ通信モジュール２０３を介して送信するステップＳ１６を実行する。
【００３６】
次に、クライアント装置１は、通信モジュール１０３を介し、サーバ装置２のサーバ側データ送信部２２により送信された暗号化された乱数Ｅ（Ｎｓ）を、クライアント側データ受信部１３によって受信するステップＳ１９を実行する。さらに、クライアント装置１は、復号化部１５により公開鍵Ｋと対となる秘密鍵Ｋ’を用いて、暗号化された乱数Ｅ（Ｎｓ）の復号化を行うステップＳ２０を実行し、乱数Ｎｓを取得する。クライアント装置１は、ステップＳ２１によって、取得した乱数Ｎｓをメモリ部１０４へ格納する。
【００３７】
クライアント装置１は、メモリ部１０４に格納されているクライアント側乱数生成部１４により生成した乱数Ｎｃと、サーバ装置２より受信した乱数Ｎｓとを用いて、乱数処理部１６によって、新たな乱数Ｎｎを生成するステップＳ２２を実行する。
【００３８】
ここで、新たな乱数Ｎｎを生成する方法として、例えば、２つの乱数を加算する方法（ｆ（Ｎｃ、Ｎｓ）＝Ｎｃ＋Ｎｓ）や、重み付け加算する方法（ｆ（Ｎｃ、Ｎｓ）＝Ｎｃ＋ａＮｓ（ａは整数））や、論理演算する方法（ｆ（Ｎｃ、Ｎｓ）＝（Ｎｃ）ＸＯＲ（Ｎｓ）（ＸＯＲはビットごとの排他的論理和））によって、新たな乱数Ｎｎを生成することができる。
【００３９】
なお、上記のクライアント装置１の乱数処理部１６によって行われる新たな乱数Ｎｎの生成方法は、本実施形態で示した生成方法に限定されるものではなく、他の生成方法を用いて乱数Ｎｎの生成を行ってもよい。
【００４０】
したがって、クライアント装置１は、乱数Ｎｃを生成するクライアント側乱数生成部１４と、サーバ装置２から受信した乱数Ｎｓとクライアント側乱数生成部１４で生成した乱数Ｎｃとに基づいて新たな乱数Ｎｎを生成する乱数処理部１６とを備えているので、サーバ装置２から受信する乱数Ｎｓとクライアント装置１で利用する新たな乱数Ｎｎとが同値とはならない。このことによって、信頼関係を構築していない他の装置に送受信される乱数Ｎｓを解読された場合においても、クライアント装置１が利用する新たな乱数Ｎｎは、送受信した乱数Ｎｓとは別の値であるので、他の装置にクライアント装置１が利用する新たな乱数Ｎｎを解読することは非常に困難となり、さらに安全なネットワークシステムＡを構築することができる。また、クライアント装置１で生成する乱数Ｎｃの精度が低い場合でも、サーバ装置２で生成した乱数Ｎｓを用いて新たな乱数Ｎｎを生成するので、精度の高い乱数Ｎを取得することが可能となる。
【図面の簡単な説明】
【００４１】
【図１】本願発明の第1の実施形態であるネットワークシステムの概略システム構成図である。
【図２】同ネットワークシステムの構成を示すブロック構成図である。
【図３】同ネットワークシステムにおけるクライアント装置とサーバ装置との間の通信内容を示すフローチャート及びシーケンス図である。
【図４】本願発明の第２の実施形態であるネットワークシステムの構成を示すブロック構成図である。
【図５】同ネットワークシステムにおけるクライアント装置とサーバ装置との間の通信内容を示すフローチャート及びシーケンス図である。
【符号の説明】
【００４２】
１  クライアント装置
２  サーバ装置
３  ネットワーク
１１  リクエスト信号生成部
１２  クライアント側データ送信部
１３  クライアント側データ受信部
１４  クライアント側乱数生成部
１５  復号化部
１６  乱数処理部
２２  サーバ側データ送信部
２３  サーバ側データ受信部
２４  サーバ側乱数生成部
２５  暗号化部
Ａ  ネットワークシステム
Ｎ  乱数
Ｒ  リクエスト信号
【図１】
2008203581.tif 000003
【図２】
2008203581.tif 000004
【図３】
2008203581.tif 000005
【図４】
2008203581.tif 000006
【図５】
2008203581.tif 000007