(57)【要約】電子機器１の電源が投入されてから、最初に発生したネットワークイベントがネットワーク３を介して受信されるまでの時間を計測するカウンタ１１と、カウンタ１１により計測された時間情報をもとに乱数初期値を決定する乱数初期値決定部１２とを設けることにより、カウンタ１１や乱数初期値決定部１２のＣＰＵなど電子機器１に一般的に備えられている既存のハードウェア構成を用いて、電子機器１の電源オンから最初のイベント受信までの時間が一定でないことを利用してランダムな乱数初期値を発生することができるようにする。
2003096181.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上に接続される電子機器において乱数初期値を発生するための装置であって、
上記電子機器の電源が投入されてから、ネットワークイベントが上記ネットワークを介して受信されるまでの時間を計測する計時手段と、
上記計時手段により計測された時間情報をもとに上記乱数初期値を決定する乱数初期値決定手段とを備えたことを特徴とする乱数初期値発生装置。
【請求項２】
上記計時手段は、上記電子機器の電源が投入されてから、最初に発生したネットワークイベントが上記ネットワークを介して受信されるまでの時間を計測することを特徴とする請求の範囲第１項に記載の乱数初期値発生装置。
【請求項３】
上記乱数初期値決定手段は、上記計時手段により計測された時間情報に対して所定の演算を行うことにより上記乱数初期値を求める演算手段を含むことを特徴とする請求の範囲第１項に記載の乱数初期値発生装置。
【請求項４】
上記演算手段により求められた乱数初期値を、上記演算手段が次回の電源投入時に上記乱数初期値の演算に用いるために記憶しておく記憶手段を備えることを特徴とする請求の範囲第３項に記載の乱数初期値発生装置。
【請求項５】
ネットワーク上に接続される電子機器において乱数初期値を発生するための方法であって、
上記電子機器の電源が投入されてから、ネットワークイベントが上記ネットワークを介して受信されるまでの時間を計測し、その時間情報をもとに上記乱数初期値を決定するようにしたことを特徴とする乱数初期値発生方法。
【請求項６】
ネットワーク上に接続される電子機器において、
上記電子機器の電源が投入されてから、ネットワークイベントが上記ネットワークを介して受信されるまでの時間を計測する計時手段、および
上記計時手段により計測された時間情報をもとに上記乱数初期値を決定する乱数初期値決定手段としてコンピュータを機能させるための乱数初期値発生用プログラム。
【発明の詳細な説明】
技術分野
本発明は乱数初期値発生装置および方法、乱数初期値発生用プログラムに関し、特に、ネットワーク上に接続される電子機器で、キーボードやマウス等の入力デバイスおよび絶対時刻を計測する時計などを持たない電子機器の乱数初期値を決定するための装置および方法に用いて好適なものである。
背景技術
第三者の不正な攻撃によりデータが盗聴、改ざん、破壊等されることから守るために、可変パスワードの設定、データの暗号化、電子署名などのセキュリティ技術が用いられる。これらのセキュリティ技術では、ランダムなパスワードや暗号鍵をその都度発生するために、乱数が利用される。乱数を発生するためには、まずは乱数の初期値を決定する必要がある。そして、乱数が真にランダムな値をとるためには、この乱数初期値自体がランダムな値をとることが要求される。
従来、例えばパーソナルコンピュータ（以下、パソコン）において乱数初期値を決める際には、キーボードやマウス等のユーザインタフェースを利用する方法が採られてきた。例えば、ユーザが無作為に所定数のキー入力を行ったり、無作為にマウスを移動させたりすることにより、これらの入力データを用いてランダムな乱数初期値を発生していた。また、パソコンの起動時に、その起動時刻に基づいて乱数初期値を発生するものもあった。
ところが、このような手法は、キーボードやマウス等のユーザインタフェース、絶対時刻を計測する時計などが存在しない電子機器では採用することができない。例えば、ネットワーク上に接続される電子機器には上述のユーザインタフェースや時計が備えられていないことが多い。そのため、そのような電子機器に対して乱数を発生することが必要なシステムの場合には、これ以外の手法を用いる必要がある。
そこで従来は、乱数初期値発生用の専用ＬＳＩを電子機器に搭載する方法や、電子機器が備える揮発性メモリの値を利用して乱数初期値を決定する方法などが採られてきた。揮発性メモリの値を利用する方法は、電子機器の電源が投入されたときに揮発性メモリの値は不定となっているので、その不定値に基づき乱数初期値を発生する方法である。
しかしながら、専用ＬＳＩを用いる方法では、その分コストが高くなってしまうという問題があった。一方、揮発性メモリの値を利用する方法では、その値は確かに不定値ではあるが、ランダムな値ではない。そのため、同じような傾向の乱数初期値が発生されることが多く、真にランダムな乱数を発生することができないという問題があった。
本発明は、このような問題を解決するために成されたものであり、ユーザインタフェースや時計を持たない電子機器において、専用ＬＳＩを用いるなどしてコストアップを招くことなく、ランダムな乱数初期値を発生することができるようにすることを目的とする。
発明の開示
本発明の乱数初期値発生装置は、ネットワーク上に接続される電子機器において乱数初期値を発生するための装置であって、上記電子機器の電源が投入されてから、ネットワークイベントが上記ネットワークを介して受信されるまでの時間を計測する計時手段と、上記計時手段により計測された時間情報をもとに上記乱数初期値を決定する乱数初期値決定手段とを備えたことを特徴とする。
本発明の他の態様では、上記計時手段は、上記電子機器の電源が投入されてから、最初に発生したネットワークイベントが上記ネットワークを介して受信されるまでの時間を計測することを特徴とする。
本発明の他の態様では、上記乱数初期値決定手段は、上記計時手段により計測された時間情報に対して所定の演算を行うことにより上記乱数初期値を求める演算手段を含むことを特徴とする。
また、上記演算手段により求められた乱数初期値を、上記演算手段が次回の電源投入時に上記乱数初期値の演算に用いるために記憶しておく記憶手段を備えるようにしても良い。
また、本発明の乱数初期値発生方法は、ネットワーク上に接続される電子機器において乱数初期値を発生するための方法であって、上記電子機器の電源が投入されてから、ネットワークイベントが上記ネットワークを介して受信されるまでの時間を計測し、その時間情報をもとに上記乱数初期値を決定するようにしたことを特徴とする。
また、本発明の乱数初期値発生用プログラムは、ネットワーク上に接続される電子機器において、上記電子機器の電源が投入されてから、ネットワークイベントが上記ネットワークを介して受信されるまでの時間を計測する計時手段、および上記計時手段により計測された時間情報をもとに上記乱数初期値を決定する乱数初期値決定手段としてコンピュータを機能させるためのものである。
発明を実施するための最良の形態
以下、本発明の一実施形態を図面に基づいて説明する。
図１は、本実施形態の乱数初期値発生装置を適用した電子機器の要部構成例を示すブロック図である。また、図２は、上記図１に示す電子機器を適用したネットワークシステムの全体構成例を示す図である。
図２に示すように、本実施形態の乱数初期値発生装置２ａ，２ｂ，２ｃは、ネットワーク３上に接続された電子機器１ａ，１ｂ，１ｃに各々搭載されている。ネットワーク３上に存在する複数の電子機器１ａ〜１ｃは、ルータ４を介して互いにデータの送受信を行うことができるようになっている。
図１に示すように、本実施形態の電子機器１は、乱数初期値発生装置２の他に乱数発生部１４および通信処理部１５を備えている。また、乱数初期値発生装置２は、カウンタ１１、乱数初期値決定部１２およびメモリ１３を備えている。通信処理部１５は、ネットワーク３上に接続されている他の電子機器１との間で、ルータ４を介して互いにデータの送受信を行うための処理を実行する。
カウンタ１１は、電子機器１の電源が投入されたときにカウント値を“０”にリセットしてカウント動作を開始し、ネットワークイベントがネットワーク３上から通信処理部１５を介して受信されるまでの時間（例えば、パケットやトークン等の意味のあるデータの他、特別な意味を持たない信号を受信するまでの時間）を計測する。
ここで、カウンタ１１がカウント動作停止のトリガとして用いるネットワークイベントは、電子機器１の電源が投入された後で何番目に発生するイベントでも良いが、カウント動作を開始してから早いタイミングで発生したネットワークイベントであることが望ましい。特に、最初に発生したネットワークイベントであることが好ましい。できるだけ早いタイミングで発生したネットワークイベントを用いて乱数を決定することにより、電源投入から乱数が利用できるようになるまでの応答時間を短くすることができる。
乱数初期値決定部１２は、カウンタ１１により計測されたカウント値をもとに乱数初期値を決定する。カウント値そのものを乱数初期値として決定しても良いし、カウント値をもとに所定の演算を行うことによって乱数初期値を求めるようにしても良い。この乱数初期値決定部１２は、所定の演算を行う場合にはＣＰＵ（本発明の演算手段に相当）を備えて構成される。なお、乱数初期値演算のアルゴリズムについては様々なパターンが考えられる。本実施形態では、この演算のアルゴリズムについては特に限定せず、どのような演算内容を用いても良い。
メモリ１３は、乱数初期値決定部１２により求められた乱数初期値を記憶しておくものである。このメモリ１３は、例えば不揮発性の記録媒体で構成される。また、メモリ１３を揮発性の記録媒体で構成するとともに、電源がオフとされても記憶内容が消えないように電池等でバックアップしておくようにしても良い。
このメモリ１３に記憶される情報は、乱数初期値決定部１２が次回の電源投入時に新たな乱数初期値を演算するために用いる。すなわち、最初の電源投入時はカウンタ１１により計測されたカウント値をもとに乱数初期値を決定する。２回目以降は、前回の演算によってメモリ１３に記憶された乱数初期値をもとに演算を行い、新たな乱数初期値を求めて再度メモリ１３に格納する。
なお、このようなメモリ１３は設けず、電源が投入される都度、カウンタ１１により計測されるカウント値をもとに乱数初期値を決定するようにしても良い。
乱数発生部１４は、以上のようにして求められた乱数初期値を用いて所定の演算を行うことにより、乱数を発生する。この乱数発生のアルゴリズムについては様々なパターンが考えられ、種々の手法が提供されている。本実施形態では、公知の何れも手法も適用することが可能である。
次に、上記のように構成した本実施形態の乱数初期値発生装置による乱数初期値発生の動作を、図３のフローチャートを参照しながら説明する。
図３において、電子機器１の電源が投入されると、カウンタ１１のカウント値を“０”にリセットした後（ステップＳ１）、カウント動作を開始する（ステップＳ２）。
そして、ネットワーク３上から通信処理部１５を介して最初のネットワークイベント（例えば、パケット等のデータ）が受信されたかどうかを判定する（ステップＳ３）。ネットワークイベントを受信していない場合は、カウンタ１１によるカウント動作を継続し、カウント値をカウントアップしていく。
一方、最初のネットワークイベントを受信した場合は、その時点でカウンタ１１のカウント動作を停止し（ステップＳ４）、そのときのカウント値をもとに乱数初期値決定部１２により乱数初期値を決定する（ステップＳ５）。
以上詳しく説明したように、本実施形態では、電子機器１の電源オンから最初のイベント受信までの時間が一定でなく、ランダムとなることを利用して乱数初期値を決定している。これにより、キーボードやマウス等のユーザインタフェースおよび絶対時刻を計測する時計などがない電子機器においても、専用ＬＳＩを用いるなどしてコストアップを招くことなく、ランダムな乱数初期値を発生することができるようになる。すなわち、カウンタ１１や乱数初期値決定部１２のＣＰＵは電子機器１に一般的に備えられているものであるから、既存のハードウェア構成を利用してランダムな乱数初期値を発生することができる。
本実施形態の乱数初期値発生装置は、様々なシステムに適用することが可能である。例えば、可変のパスワードや暗号鍵などを発生するために乱数を利用するネットワーク上の電子機器に適用することが可能である。なお、ネットワーク上に接続された外部サーバなどにより電子機器の乱数初期値を設定することも可能であるが、暗号化通信を始める前の乱数初期値の通信が平文で行われるため、これが盗聴されて暗号鍵を解読される可能性が高くなる。これに対して本実施形態では、乱数初期値発生装置を搭載した電子機器が内部で乱数初期値を自己発生するので、乱数初期値が盗聴される危険性は殆どなく、暗号化通信の安全性を高めることができる。
また、本実施形態の乱数初期値発生装置は、ネットワーク上に接続された複数のスレーブ機器のアドレスをマスタ機器において設定するようなシステムにも適用することが可能である。例えば、マスタとなるＤＳＵ（Ｄｉｇｉｔａｌ  Ｓｅｒｖｉｃｅ  Ｕｎｉｔ）がスレーブとなる複数のＴＡ（Ｔｅｒｍｉｎａｌ  Ａｄａｐｔｅｒ）に対して異なるアドレスを設定する際には、各ＴＡがランダムな値を発生してＤＳＵに申告する必要がある。その際に、それぞれのＴＡに対して本実施形態の乱数初期値発生装置を適用することが可能である。
ＤＳＵとＴＡとの通信の場合、複数のＴＡがたとえ同じアドレスを申告しても、そのことをＤＳＵからＴＡにフィードバックして再度申告をやり直すことにより、最終的には全てのＴＡに異なるアドレスを設定することが可能である。しかし、従来のように揮発性メモリの値を用いて乱数初期値を発生すると、複数のＴＡが同じアドレスを申告する可能性が高くなり、申告を何度も繰り返し行う必要が生じる。これに対して本実施形態によれば、一度の申告で複数のＴＡに異なるアドレスを設定できる確率が高まり、電源オンからシステムが動き出すまでの時間を短縮することができる。
以上に説明した本実施形態による乱数初期値発生の手法は、ハードウェア構成、ＤＳＰ、ソフトウェアの何れによっても実現することが可能である。例えばソフトウェアによって実現する場合、本実施形態の乱数初期値発生装置は、実際には電子機器１内に存在するコンピュータのＣＰＵあるいはＭＰＵ、ＲＡＭ、ＲＯＭなどを備えて構成され、ＲＡＭやＲＯＭに記憶された乱数初期値発生用プログラムが動作することによって実現できる。
したがって、上記乱数初期値発生用プログラムを例えばＣＤ−ＲＯＭのような記録媒体に記録し、これを電子機器１に読み込ませることによって実現できるものである。上記乱数初期値発生用プログラムを記録する記録媒体としては、ＣＤ−ＲＯＭ以外に、フレキシブルディスク、ハードディスク、磁気テープ、光ディスク、光磁気ディスク、ＤＶＤ、不揮発性メモリカード等を用いることができる。また、上記乱数初期値発生用プログラムをインターネット等のネットワークを介して電子機器１にダウンロードすることによっても実現できる。
なお、以上に説明した実施形態は、本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明は上述したように、電子機器の電源が投入されてからネットワークイベントが受信されるまでの時間を計測し、その時間情報をもとに乱数初期値を決定するようにしたので、ユーザインタフェースや時計を持たない電子機器において、専用ＬＳＩを用いるなどしてコストアップを招くことなく、ランダムな乱数初期値を発生することができる。
産業上の利用可能性
本発明は、ユーザインタフェースや時計を持たない電子機器において、専用ＬＳＩを用いるなどしてコストアップを招くことなく、ランダムな乱数初期値を発生することができるようにするのに有用である。
【図面の簡単な説明】
図１は、本実施形態の乱数初期値発生装置を適用した電子機器の要部構成例を示すブロック図である。
図２は、図１に示す電子機器を適用したネットワークシステムの全体構成例を示す図である。
図３は、本実施形態による乱数初期値発生動作を示すフローチャートである。
【図１】
2003096181.tif 000003
【図２】
2003096181.tif 000004
【図３】
2003096181.tif 000005
【国際調査報告】
2003096181.tif 000006
2003096181.tif 000007
2003096181.tif 000008
2003096181.tif 000009