説明

ネットワークシステム

【課題】通信ネットワークに接続されている安価な組込み機器などにおいて、生成した乱数の精度が低い場合や、乱数自体を生成する機能を有しない場合や、種々処理を実行していることにより乱数を生成することが困難な場合においても、精度の高い乱数を取得することができるネットワークシステムを提供する。
【解決手段】ネットワークシステムAは、クライアント装置1とサーバ装置2が通信接続されるものであって、クライアント装置1は、乱数Nの生成を要求するリクエスト信号Rを生成するリクエスト信号生成部11を備え、サーバ装置2は、乱数Nを生成するサーバ側乱数生成部24を備え、クライアント装置1は、リクエスト信号Rをサーバ装置2へ送信し、サーバ装置2は、リクエスト信号Rを受信し、サーバ側乱数生成部24において生成した乱数Nをクライアント装置1へ送信し、クライアント装置1は、乱数Nを受信して利用するものである。

【発明の詳細な説明】
【技術分野】
【0001】
本願発明は、クライアント装置とサーバ装置がネットワークを介して通信接続されるネットワークシステムに関する。
【背景技術】
【0002】
互いに通信可能な通信機器に基づく通信ネットワークにおいて、被認証機器と認証機器との間で通信確立を行い、実際にデータの送受信を実施するにあたり、相手の通信機器が信頼関係を保証する機器であるか否かを確認した上で通信を行うことが、安全な通信ネットワークを構築するためには非常に重要である。そこで、安全な通信システムを実現するために、従来から乱数を用いた認証プロトコルや鍵配布プロトコルが用いられている。
【0003】
例えば、特表2004−525558号公報に示されるように、暗号的に強力なランダム数生成装置によって生成される乱数を使用することによって、データのレコード暗号化と暗号解読のための一意的な識別子としての役割を果たすことができることが知られている。
【0004】
また、特開2003−264552号公報に示されるように、通信手段によりネットワークを用いて通信が可能であるホストとクライアントとの間のネットワークシステムにおいて、クライアントは設定した乱数を暗号化した暗号化乱数を本人認証手段による署名付きでホストへ送信し、ホストは設定した乱数を暗号化した暗号化乱数を本人認証手段による署名付きでクライアントへ送信する。これを受けたホストおよびクライアントはそれぞれ相手から入手した乱数を検証するために検証用暗号化乱数を生成し、この生成した検証用暗号化乱数とそれぞれ相手から入手した暗号化乱数とを比較して検証する。さらに、ホストおよびクライアントが呈示する乱数のビットごとの排他的論理和である公平な乱数を生成する乱数生成方法を用いたネットワークシステムが知られている。
【特許文献1】特表2004−525558号公報
【特許文献2】特開2003−264552号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
上記従来例であるネットワークシステムにあっては、いずれにあっても、乱数を用いて安全な通信システムを実現するためには、通信ネットワークに接続される各通信機器が、自ら乱数を生成する機能を備えておく必要がある。しかし、通信機器に安価な組込み機器を用いる場合などでは、スペース又はコストの制約などによって、処理能力の低い演算装置を用いる必要があるなどの理由により、精度の高い乱数を生成することは、非常に困難であるという問題があった。
【0006】
本願発明は、上記背景技術に鑑みて発明されたものであり、その目的は、通信ネットワークに接続されている安価な組込み機器などにおいて、生成した乱数の精度が低い場合や、乱数自体を生成する機能を有しない場合や、種々処理を実行していることにより乱数を生成することが困難な場合においても、精度の高い乱数を取得することができるネットワークシステムを提供することを課題とするものである。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本願請求項1記載の発明では、クライアント装置とサーバ装置がネットワークを介して通信接続されるネットワークシステムであって、クライアント装置は、乱数の生成を要求するリクエスト信号を生成するリクエスト信号生成部を備え、サーバ装置は、乱数を生成するサーバ側乱数生成部を備え、クライアント装置は、前記リクエスト信号をサーバ装置へ送信し、サーバ装置は、前記リクエスト信号を受信し、サーバ側乱数生成部において生成した乱数をクライアント装置へ送信し、クライアント装置は、前記乱数を受信して利用するものであることを特徴としている。
【0008】
本願請求項2記載の発明では、上記請求項1記載のネットワークシステムにおいて、サーバ装置は、クライアント装置へ送信する乱数を暗号化する暗号化部をさらに備え、クライアント装置は、前記暗号化された乱数を復号化する復号化部をさらに備えて、前記復号化された乱数を利用することを特徴としている。
【0009】
本願請求項3記載の発明では、上記請求項1又は2記載のネットワークシステムにおいて、クライアント装置は、乱数を生成するクライアント側乱数生成部と、サーバ装置から受信した乱数とクライアント側乱数生成部で生成した乱数とに基づいて新たな乱数を生成する乱数処理部とをさらに備えて、前記新たな乱数を利用することを特徴としている。
【発明の効果】
【0010】
本願請求項1記載の発明のネットワークシステムにおいては、クライアント装置は、乱数の生成を要求するリクエスト信号をリクエスト信号生成部によって生成し、前記リクエスト信号をサーバ装置へ送信するものであり、サーバ装置は、前記リクエスト信号を受信し、サーバ側乱数生成部によって乱数を生成し、前記乱数をクライアント装置へ送信するものであり、クライアント装置は、前記乱数を受信して利用するものであるので、クライアント装置が種々処理を実行していることにより乱数を生成することが困難な場合や、クライアント装置の生成した乱数の精度が低い場合や、クライアント装置が乱数自体を生成する機能を有さない場合でも、サーバ装置で生成した精度の高い乱数を、ネットワークを介して取得して様々な用途に利用することができる。
【0011】
本願請求項2記載の発明のネットワークシステムにおいては、特に、サーバ装置は、クライアント装置へ送信する乱数を暗号化する暗号化部を備え、クライアント装置は、前記暗号化された乱数を復号化する復号化部を備えているので、サーバ装置とクライアント装置との間で送受信される乱数を暗号化することができる。このことによって、信頼関係を構築していない他の装置に読み取られる危険性を低減することができるので、安全なネットワークシステムを構築することができる。
【0012】
本願請求項3記載の発明のネットワークシステムにおいては、特に、クライアント装置は、乱数を生成するクライアント側乱数生成部と、サーバ装置から受信した乱数とクライアント側乱数生成部で生成した乱数とに基づいて新たな乱数を生成する乱数処理部とを備えているので、サーバ装置から受信する乱数とクライアント装置で利用する乱数とが同値とはならない。このことによって、信頼関係を構築していない他の装置に送受信される乱数を解読された場合においても、クライアント装置が利用する乱数は、送受信した乱数とは別の値であるので、他の装置にクライアント装置が利用する乱数を解読することは非常に困難となり、さらに安全なネットワークシステムを構築することができる。また、クライアント装置で生成する乱数の精度が低い場合でも、サーバ装置で生成した乱数を用いて新たな乱数を生成するので、精度の高い乱数を取得することが可能となる。
【発明を実施するための最良の形態】
【0013】
図1〜図3は、本願発明の第1の実施形態であるネットワークシステムを示している。図1及び図2に示すように、ネットワークシステムAは、クライアント装置1とサーバ装置2がネットワーク3を介して通信接続されるものであって、クライアント装置1は、乱数Nの生成を要求するリクエスト信号Rを生成するリクエスト信号生成部11と、前記リクエスト信号Rをサーバ装置2へネットワーク3を介して送信するクライアント側データ送信部12と、サーバ装置2で生成した乱数Nをサーバ装置2からネットワーク3を介して受信するクライアント側データ受信部13とを備え、サーバ装置2は、前記リクエスト信号Rをクライアント装置1からネットワーク3を介して受信するサーバ側データ受信部23と、乱数Nを生成するサーバ側乱数生成部24と、前記乱数Nをクライアント装置1へネットワーク3を介して送信するサーバ側データ送信部22とを備えている。また、クライアント装置1は、前記リクエスト信号Rをサーバ装置2へクライアント側データ送信部12によって送信し、サーバ装置2は、サーバ側データ受信部23によって前記リクエスト信号Rを受信し、サーバ側乱数生成部24において生成した乱数Nをクライアント装置1へサーバ側データ送信部22によって送信し、クライアント装置1は、前記乱数Nをクライアント側データ受信部13によって受信して利用するものである。さらに、サーバ装置2は、クライアント装置1へ送信する乱数Nを暗号化する暗号化部25を備え、クライアント装置1は、前記暗号化された乱数Nを復号化する復号化部15を備えて、前記復号化された乱数Nを利用するものである。
【0014】
以下、この実施形態のネットワークシステムをより具体的詳細に説明する。図1及び図2に示すように、同一のネットワーク3に複数のクライアント装置1及びサーバ装置2が接続されている。また、クライアント装置1には、電源101、中央処理装置102、通信モジュール103が搭載され、サーバ装置2には、電源201、中央処理装置202、通信モジュール203が搭載されている。
【0015】
電源101、201は、それぞれクライアント装置1及びサーバ装置2の電源を管理するものである。
【0016】
クライアント装置1の中央処理装置102は、リクエスト信号生成部11と、クライアント側データ送信部12と、クライアント側データ受信部13と、復号化部15とを備えるものである。また、サーバ装置2の中央処理装置202は、サーバ側データ送信部22と、サーバ側データ受信部23と、サーバ側乱数生成部24と、暗号化部25とを備えるものである。この中央処理装置102、202は、それぞれ電源101、201より電力が供給されて起動するものである。
【0017】
通信モジュール103、203は、中央処理装置102、202より命令を受けて、ネットワーク3を介してクライアント装置1又はサーバ装置2との通信を行うものである。
【0018】
次に、クライアント装置1とサーバ装置2との間で行われる通信内容を図3に基づいて説明する。クライアント装置1は、例えば、種々処理を実行していることにより乱数Nを生成することが困難な場合や、生成した乱数Nの精度が低い場合や、乱数N自体を生成する機能を有さない場合がある。このような状況下において、乱数Nを取得する必要がある場合、リクエスト信号生成部11は、サーバ装置2に対して乱数Nの生成を要求するリクエスト信号Rを生成するステップS1を実行する。次のステップS2において、生成されたリクエスト信号Rは、暗号通信に必要な公開鍵Kと共にサーバ装置2へ通信モジュール103を介して送信される。
【0019】
次に、サーバ装置2は、通信モジュール203を介し、サーバ側データ受信部23によって、クライアント装置1より送信されたリクエスト信号R及び公開鍵Kを受信するステップS3を実行する。このようにリクエスト信号R及び公開鍵Kを受信した場合、サーバ装置2は、サーバ側乱数生成部24によって、乱数Nを生成するステップS4を実行する。
【0020】
ここで、乱数Nを生成する方法として、例えば、電気回路の熱雑音(ジョンソンノイズ)などの物理現象を利用した物理乱数を用いることができる。このことによって、周期性が無く、予測できない精度の高い乱数を乱数Nとして生成することができる。
【0021】
なお、乱数Nを生成する方法は、上記の方法に限定されるものではなく、他の方法によって乱数Nを生成してもよい。
【0022】
次に、サーバ装置2は、生成した乱数Nを暗号化部25によって、公開鍵Kを用いて暗号化するステップS5を実行する。ここで、サーバ装置2は、クライアント装置1より受信した公開鍵Kを用いて暗号化を行う。さらに、サーバ装置2は、暗号化部25で暗号化した乱数E(N)をサーバ側データ送信部22によりクライアント装置1へ通信モジュール203を介して送信するステップS6を実行する。
【0023】
次に、クライアント装置1は、サーバ装置2のサーバ側データ送信部22により送信された暗号化された乱数E(N)を、通信モジュール103を介し、クライアント側データ受信部13によって受信するステップS7を実行する。さらに、クライアント装置1は、復号化部15により公開鍵Kと対となる秘密鍵K’を用いて、暗号化された乱数E(N)の復号化を行うステップS8を実行し、乱数Nを取得する。クライアント装置1は、ステップS9によって、取得した乱数Nをメモリ部104へ格納する。クライアント装置1は、この取得した乱数Nを独自の機能や、他のクライアント装置1などとの安全性を確保した暗号化通信を行う際に用いられるナンスなどに利用する。
【0024】
なお、上記のクライアント装置1とサーバ装置2で行われる暗号化及び復号化の方法は、本実施形態で示した暗号化及び復号化の方法に限定されるものではなく、他の暗号化及び復号化の方法を用いて乱数Nの送受信を行ってもよい。さらに、ネットワークシステムAの安全性が確保されているなどの環境下においては、暗号化を行わずに乱数Nを送受信するものであってもよい。
【0025】
したがって、クライアント装置1は、乱数Nの生成を要求するリクエスト信号Rをリクエスト信号生成部11によって生成し、前記リクエスト信号Rをサーバ装置2へ送信するものであり、サーバ装置2は、前記リクエスト信号Rを受信し、サーバ側乱数生成部24によって乱数Nを生成し、前記乱数Nをクライアント装置1へ送信するものであり、クライアント装置1は、前記乱数Nを受信して利用するものであるので、クライアント装置1が種々処理を実行していることにより乱数Nを生成することが困難な場合や、クライアント装置1の生成した乱数Nの精度が低い場合や、クライアント装置1が乱数N自体を生成する機能を有さない場合でも、サーバ装置2で生成した精度の高い乱数Nを、ネットワーク3を介して取得して様々な用途に利用することができる。
【0026】
さらに、サーバ装置2は、クライアント装置1へ送信する乱数Nを暗号化する暗号化部25を備え、クライアント装置1は、前記暗号化された乱数E(N)を復号化する復号化部15を備えているので、クライアント装置1とサーバ装置2との間で送受信される乱数Nを暗号化することができる。このことによって、信頼関係を構築していない他の装置に読み取られる危険性を低減することができるので、安全なネットワークシステムAを構築することができる。
【0027】
図4及び図5は、本願発明の第2の実施形態であるネットワークシステムを示している。ここでは、上記第1の実施形態と相違する事項についてのみ説明し、その他の事項(構成、作用効果等)については、上記第1の実施形態と同様であるのでその説明を省略する。
【0028】
図4に示すように、クライアント装置1は、乱数Ncを生成するクライアント側乱数生成部14と、サーバ装置2から受信した乱数Nsとクライアント側乱数生成部14で生成した乱数Ncとに基づいて新たな乱数Nnを生成する乱数処理部16とをさらに備えたものである。
【0029】
次に、クライアント装置1とサーバ装置2との間で行われる通信内容を図5に基づいて説明する。クライアント装置1は、精度の高い乱数Nを取得する必要がある場合、リクエスト信号生成部11によって、サーバ装置2に対して乱数Nの生成を要求するリクエスト信号Rを生成するステップS11を実行する。次のステップS12において、生成されたリクエスト信号Rは、暗号通信に必要な公開鍵Kと共にサーバ装置2へ通信モジュール103を介して送信される。また、クライアント装置1は、クライアント側乱数生成部14により乱数Ncを生成し、メモリ部104へ格納するステップS17及び18を実行する。
【0030】
ここで、乱数Ncを生成する方法として、例えば、クライアント装置1が起動してから最初にパケットを受信するまでに要した時間を基に乱数Ncの初期値を生成することができる。クライアント装置1が起動した時刻をメモリ部104に保存し、最初にパケットを受信した時刻との差分によって、上記時間を算出することができる。
【0031】
また、乱数Ncを生成する他の方法として、例えば、カウンタ変数を予め用意しておき、カウンタ変数の値を基に乱数Ncを生成することができる。カウンタ変数の演算については、ソフトウェアの割り込みの発生があった場合に、カウンタ変数に1を加算するものとし、クライアント装置1が起動してから最初にパケットを受信するまで繰り返すことでカウンタ変数の演算を行う。ここで、ソフトウェアの割り込み発生間隔は一定時間でなくても構わない。
【0032】
さらに、乱数Ncを生成する他の方法として、例えば、線形合同法を用いて行うことができる。線形合同法は、漸化式Nc(n+1)=(a×Nc(n)+b)modMを用いることによって乱数を生成する方法である。
【0033】
なお、上記のクライアント装置1のクライアント側乱数生成部14によって行われる乱数Ncの生成方法は、上記の生成方法に限定されるものではなく、他の生成方法を用いて乱数Ncの生成を行ってもよい。
【0034】
次に、サーバ装置2は、通信モジュール203を介し、サーバ側データ受信部23によって、クライアント装置1より送信されたリクエスト信号R及び公開鍵Kを受信するステップS13を実行する。このようにリクエスト信号R及び公開鍵Kを受信した場合、サーバ装置2は、サーバ側乱数生成部24によって、乱数Nsを生成するステップS14を実行する。
【0035】
さらに、サーバ装置2は、生成した乱数Nsを暗号化部25によって、公開鍵Kを用いて暗号化するステップS15を実行する。ここで、サーバ装置2は、クライアント装置1より受信した公開鍵Kを用いて暗号化を行う。さらに、サーバ装置2は、暗号化部25で暗号化した乱数E(Ns)をサーバ側データ送信部22によりクライアント装置1へ通信モジュール203を介して送信するステップS16を実行する。
【0036】
次に、クライアント装置1は、通信モジュール103を介し、サーバ装置2のサーバ側データ送信部22により送信された暗号化された乱数E(Ns)を、クライアント側データ受信部13によって受信するステップS19を実行する。さらに、クライアント装置1は、復号化部15により公開鍵Kと対となる秘密鍵K’を用いて、暗号化された乱数E(Ns)の復号化を行うステップS20を実行し、乱数Nsを取得する。クライアント装置1は、ステップS21によって、取得した乱数Nsをメモリ部104へ格納する。
【0037】
クライアント装置1は、メモリ部104に格納されているクライアント側乱数生成部14により生成した乱数Ncと、サーバ装置2より受信した乱数Nsとを用いて、乱数処理部16によって、新たな乱数Nnを生成するステップS22を実行する。
【0038】
ここで、新たな乱数Nnを生成する方法として、例えば、2つの乱数を加算する方法(f(Nc、Ns)=Nc+Ns)や、重み付け加算する方法(f(Nc、Ns)=Nc+aNs(aは整数))や、論理演算する方法(f(Nc、Ns)=(Nc)XOR(Ns)(XORはビットごとの排他的論理和))によって、新たな乱数Nnを生成することができる。
【0039】
なお、上記のクライアント装置1の乱数処理部16によって行われる新たな乱数Nnの生成方法は、本実施形態で示した生成方法に限定されるものではなく、他の生成方法を用いて乱数Nnの生成を行ってもよい。
【0040】
したがって、クライアント装置1は、乱数Ncを生成するクライアント側乱数生成部14と、サーバ装置2から受信した乱数Nsとクライアント側乱数生成部14で生成した乱数Ncとに基づいて新たな乱数Nnを生成する乱数処理部16とを備えているので、サーバ装置2から受信する乱数Nsとクライアント装置1で利用する新たな乱数Nnとが同値とはならない。このことによって、信頼関係を構築していない他の装置に送受信される乱数Nsを解読された場合においても、クライアント装置1が利用する新たな乱数Nnは、送受信した乱数Nsとは別の値であるので、他の装置にクライアント装置1が利用する新たな乱数Nnを解読することは非常に困難となり、さらに安全なネットワークシステムAを構築することができる。また、クライアント装置1で生成する乱数Ncの精度が低い場合でも、サーバ装置2で生成した乱数Nsを用いて新たな乱数Nnを生成するので、精度の高い乱数Nを取得することが可能となる。
【図面の簡単な説明】
【0041】
【図1】本願発明の第1の実施形態であるネットワークシステムの概略システム構成図である。
【図2】同ネットワークシステムの構成を示すブロック構成図である。
【図3】同ネットワークシステムにおけるクライアント装置とサーバ装置との間の通信内容を示すフローチャート及びシーケンス図である。
【図4】本願発明の第2の実施形態であるネットワークシステムの構成を示すブロック構成図である。
【図5】同ネットワークシステムにおけるクライアント装置とサーバ装置との間の通信内容を示すフローチャート及びシーケンス図である。
【符号の説明】
【0042】
1 クライアント装置
2 サーバ装置
3 ネットワーク
11 リクエスト信号生成部
12 クライアント側データ送信部
13 クライアント側データ受信部
14 クライアント側乱数生成部
15 復号化部
16 乱数処理部
22 サーバ側データ送信部
23 サーバ側データ受信部
24 サーバ側乱数生成部
25 暗号化部
A ネットワークシステム
N 乱数
R リクエスト信号

【特許請求の範囲】
【請求項1】
クライアント装置とサーバ装置がネットワークを介して通信接続されるネットワークシステムであって、クライアント装置は、乱数の生成を要求するリクエスト信号を生成するリクエスト信号生成部を備え、サーバ装置は、乱数を生成するサーバ側乱数生成部を備え、クライアント装置は、前記リクエスト信号をサーバ装置へ送信し、サーバ装置は、前記リクエスト信号を受信し、サーバ側乱数生成部において生成した乱数をクライアント装置へ送信し、クライアント装置は、前記乱数を受信して利用するものであることを特徴とするネットワークシステム。
【請求項2】
サーバ装置は、クライアント装置へ送信する乱数を暗号化する暗号化部をさらに備え、クライアント装置は、前記暗号化された乱数を復号化する復号化部をさらに備えて、前記復号化された乱数を利用することを特徴とする請求項1記載のネットワークシステム。
【請求項3】
クライアント装置は、乱数を生成するクライアント側乱数生成部と、サーバ装置から受信した乱数とクライアント側乱数生成部で生成した乱数とに基づいて新たな乱数を生成する乱数処理部とをさらに備えて、前記新たな乱数を利用することを特徴とする請求項1又は2記載のネットワークシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2008−203581(P2008−203581A)
【公開日】平成20年9月4日(2008.9.4)
【国際特許分類】
【出願番号】特願2007−40249(P2007−40249)
【出願日】平成19年2月21日(2007.2.21)
【出願人】(000005832)松下電工株式会社 (17,916)
【Fターム(参考)】