(57)【要約】本発明は乱数発生器によって生成された乱数をリアルタイムにてテストするための方法及び装置に係る。一連の乱数が生成され、複数の最後の数が格納され、次に、格納された乱数を所定の量だけシフトすることで、格納された乱数とシフトされた乱数との間のビットシーケンスの特別なタイプのドット積が得られる。新たなランダムビットが生成される度に平均自己相関値が計算される。その後、この平均自己相関値を所定の許容範囲と比較することで、生成された乱数が十分にランダムであるか否かが決定される。
2005518046.tif 000002
【特許請求の範囲】
【請求項１】
乱数発生器によって生成された乱数を評価するための方法であって、
ランダムビットの連続するストリームを生成するステップと、
前記生成されたランダムビットをメモリ媒体内に格納するステップと、
前記格納されたランダムシーケンスを所定の量だけシフトするステップと、
前記格納されたランダムシーケンスと前記シフトされたランダムシーケンスとの間のビットシーケンスの修正された積を計算することで、平均自己相関値を決定するステップと、
前記決定された平均自己相関値を所定の許容範囲と比較することで、前記生成された乱数が十分にランダムであるか否か決定するステップと、
を含むことを特徴とする方法。
【請求項２】
前記修正された積の値は、−１或いは＋１のいずれかであることを特徴とする請求項１記載の方法。
【請求項３】
更に、前記平均自己相関値のいずれかが前記所定の許容範囲内に収まらなかった場合、前記生成された乱数は十分にランダムではないと決定するステップを含むことを特徴とする請求項２記載の方法。
【請求項４】
更に、前記平均自己相関値のいずれかが前記所定の許容範囲外にある場合、前記生成された乱数は十分にランダムではない旨通告するステップを含む、ことを特徴とする請求項２記載の方法。
【請求項５】
更に、前記平均自己相関値のいずれかが前記所定の許容範囲外にある場合、ランダムシーケンスの新たな組を生成するステップを含むことを特徴とする請求項２記載の方法。
【請求項６】
更に、新たなビットが生成される度に、前記複数のドット積に関して複数の指数平均演算を施すステップを含むことを特徴とする請求項１記載の方法。
【請求項７】
前記指数平均演算は式：
Ａｎｅｗ  ＝  α・Ａｏｌｄ  ±１
に従って更新され、
ここで、α＝１−１／ｎとされ、かつ、αは０と１の間の値（０＜α＜１）であることを特徴とする請求項６記載の方法。
【請求項８】
更に、前記指数平均演算のいずれかの出力が前記所定の許容範囲外にある場合、前記生成された乱数は十分にランダムではないと決定するステップを含むことを特徴とする請求項６記載の方法。
【請求項９】
乱数発生器によって生成された乱数を評価するための方法であって、
（ａ）前記乱数発生器を用いてランダムビットのストリームを生成及び格納するステップと、
（ｂ）前記格納されたランダムシーケンスを所定の量だけシフトするステップと、
（ｃ）前記格納された乱数と前記シフトされた乱数との間のビットシーケンスの修正された積を計算するステップと、
（ｄ）前記修正された積に関して指数平均演算を遂行することで、平均自己相関値を得るステップと、
（ｅ）前記平均自己相関値をある所定の許容範囲と比較するステップと、
（ｆ）前記平均自己相関値のいずれかが前記所定の許容範囲外にある場合、前記生成された乱数は十分にランダムでないと決定するステップと、
を含むことを特徴とする方法。
【請求項１０】
更に、前記ステップ（ａ）から（ｅ）を、前記計算された指数平均演算のいずれかが前記所定の許容範囲外となるまで反復するステップを含むことを特徴とする請求項９記載の方法。
【請求項１１】
更に、前記ステップ（ａ）から（ｅ）が、ある所定の回数より多く反復された場合、ランダムでない数が生成された旨通知するステップを含むことを特徴とする請求項９記載の方法。
【請求項１２】
更に、前記ステップ（ａ）から（ｅ）が所定の回数より多く反復された場合、乱数の新たな組を生成するステップを含むことを特徴とする請求項９記載の方法。
【請求項１３】
さらに、前記指数平均演算を式：
Ａｎｅｗ  ＝  α・Ａｏｌｄ  ±１
に従って更新するステップを含み、
ここで、α＝１−１／ｎとされ、かつ、αは０と１の間の値（０＜α＜１）であることを特徴とする請求項９記載の方法。
【請求項１４】
乱数発生器によって生成された乱数を評価する装置であって、
二進ビットから成るランダムシーケンスを生成するランダム発生器ユニットと、
前記ダンダム発生器ユニットの出力に結合され前記生成されたランダムシーケンスが十分にランダムであるか否かを検出する検出器ユニットと、
前記ランダム発生器と前記検出器ユニットの出力に接続され、前記生成されたランダムシーケンスが十分にランダムではないと決定された場合、前記生成されたランダムシーケンスの流れを不能にするスイッチングユニットと、
を備え、
前記生成されたランダムビットを格納し、所定の量だけシフトすることで、前記格納されたランダムシーケンスと前記シフトされたランダムシーケンスとの間のビットシーケンスの修正された積が得られ、
前記修正された積に指数平均演算を施すことで、平均自己相関値が決定され、
前記指数平均演算の出力のいずれかがある所定の許容範囲外にある場合、前記生成されたランダムシーケンスは十分にランダムではないと決定されることを特徴とする装置。
【請求項１５】
更に、前記指数平均演算の出力のいずれかが前記所定の許容範囲外にある場合、警告信号を送信するための手段を備えることを特徴とする請求項１４記載の装置。
【請求項１６】
前記指数平均演算は式：
Ａｎｅｗ  ＝  α・Ａｏｌｄ  ±１
に従って遂行され、
ここで、α＝１−１／ｎとされ、かつ、αは０と１の間の値（０＜α＜１）であることを特徴とする請求項１４記載の装置。
【請求項１７】
その上に格納されたインストラクションのシーケンスを表すデータを含む、マシーン読み取り可能な媒体であって、前記インストラクションのシーケンスが、プロセッサによって実行された場合、そのプロセッサに対して：
二進ビットから成る外部的に生成されたランダムシーケンスの複数のビットを格納し、
前記格納されたランダムシーケンスを所定の量だけシフトさせ、
前記格納されたランダムシーケンスと前記シフトされたランダムシーケンスとの間のビットシーケンスの修正されたドット積を計算することで、平均自己相関値を決定させ、
前記全ての決定された平均自己相関値を所定の許容範囲と比較することで、前記生成された乱数が十分にランダムであるか否か決定させる、
ことを特徴とするマシーン読み取り可能な媒体。
【請求項１８】
前記平均自己相関値のいずれかが前記所定の許容範囲外にある場合、前記生成された乱数は十分にランダムでないと決定されることを特徴とする請求項１７記載のマシーン読み取り可能な媒体。
【請求項１９】
前記プロセッサが更に、前記平均自己相関値のいずれかが前記所定の許容範囲外にある場合、ランダムビットの新たな組を生成することを特徴とする請求項１７記載のマシーン読み取り可能な媒体。
【請求項２０】
前記プロセッサが更に、新たなビットが生成される度に、前記修正された積に関して指数平均演算を施す、ことを特徴とする請求項１７記載のマシーン読み取り可能な媒体。
【請求項２１】
前記指数平均演算は式：
Ａｎｅｗ  ＝  α・Ａｏｌｄ  ±１
に従って計算され、
ここで、α＝１−１／ｎとされ、かつ、αは０と１の間の値（０＜α＜１）であることを特徴とする請求項２１記載のマシーン読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、乱数発生器の分野、より詳細には真の二進ランダムシーケンスを生成する乱数発生器に関する。
【背景技術】
【０００２】
乱数発生器は、コンピュータ時代にあっては基本的に重要である。真にランダムなシーケンスを実際のアプリケーションにおいて生成することは困難である。例えば、乱数発生器がある時間に渡って一連の１及び０を生成する場合、乱数発生器のハードウェア要素内には、典型的には、熱が発生する。１なるビットを生成するためには、０なるビットを生成するよりも多くの電力が消費される。このため、１なるビットの長いシーケンスが生成された場合、電気回路は熱くなる。こうして、この回路が自身が熱いときに１なるビットを生成した場合、この回路は、”ラッチアップ”し、ほとんど１なるビットを生成し、０なるビットは稀にしか生成しなくなる。この回路が熱いとき、０なるビットが生成された場合は、異なる効果が発生する。この場合は、１なるビットの長いサブシーケンスは極めて稀れとなり、このため非ランダム性となる。暗号アプリケーションの場合、これはセキュリティが破られるという致命的な結果をもたらすことがある。
【０００３】
従って、ランダム性のテスト（randomness tests ）を行うときは、ハードウェアの不正な変更（hardware tampering）と要素の故障（component failure）の両方を検出することが必要となる。従来のランダム性のテストは、生成された乱数のシーケンスに関して、カイ二乗テスト（chi-squared test）、デルタテスト、その他の大掛かりな統計的テストを通じて遂行される。ただし、これらのテストは非常に多くの計算処理パワーを必要とするため、これらテストはリアルタイムで遂行されるには、非常に高価なものとなる。
【０００４】
本発明は、生成された乱数が十分にランダムであることを保証するためのオンラインランダム性のテスト（on-line randomness test）を提供するための方法及び装置を提供することで、上述の問題を克服し、追加の長所を提供する。
【発明の開示】
【０００５】
本発明の一つの態様によると、乱数発生器（random number generator）によって生成された乱数（random number）を評価するための方法が提供される。この方法は、  ランダムビット（random bits）の連続するストリームを生成するステップと、生成されたランダムビットをメモリ媒体内に格納するステップと、格納されたランダムシーケンスを所定の量だけシフトするステップと、格納されたランダムシーケンスとシフトされたランダムシーケンスとの間のビットシーケンスの修正された積（modified products）を計算することで、平均相関値（average correlation value）を決定するステップと、決定された平均相関値を所定の許容範囲と比較することで、生成された乱数が十分にランダムであるか否か決定するステップと、を含む。修正された積の値は、−１或いは＋１のいずれかから成る。この方法は、更に、上述の平均自己相関値（average autocorrelation value）のいずれかが所定の許容範囲内に収まらなかった場合、生成された乱数は十分にランダムではないと決定するステップと、平均自己相関値のいずれかが所定の許容範囲外にある場合、生成されたランダムシーケンスは十分にランダムではない旨通知するステップと、平均自己相関値のいずれかが所定の許容範囲外にある場合、ランダムシーケンスの新たな組を生成するステップとを含む。
【０００６】
本発明のもう一の態様によると、乱数発生器によって生成された乱数を評価するための方法は、（ａ）乱数発生器を用いてランダムビットのストリームを生成及び格納するステップと、（ｂ）格納されたランダムシーケンスを所定の量だけシフトするステップと、（ｃ）格納された乱数（random number）とシフトされた乱数との間のビットシーケンスの修正された積を計算するステップと、この修正された積に関して指数平均演算（Ａ）を遂行することで、平均自己相関値を得るステップと、（ｅ）平均自己相関値をある所定の許容範囲と比較するステップと、（ｆ）これら平均自己相関値のいずれかが所定の許容範囲外にある場合、生成された乱数は十分にランダムでないと決定するステップと、を含む。この方法は、更に、上述のステップ（ａ）から（ｅ）を、計算された指数平均演算（Ａ）のいずれかが所定の許容範囲外となるまで反復するステップと、上述のステップ（ａ）から（ｅ）が、ある所定の回数より多く反復された場合、ランダムでない数が生成された旨通知するステップと、そして上述のステップ（ａ）から（ｅ）が所定の回数より多く反復された場合、乱数の新たな組を生成するステップとを含む。
【０００７】
本発明もう一つの態様によると、新たなビットが生成される度に、修正された積を計算し、これらに関して複数の指数平均演算（Ａ）を施すステップと、及び上記指数平均演算（Ａ）のいずれかが所定の許容範囲外にある場合、生成された乱数は十分にランダムではないと決定するステップを含み、これら指数平均演算（Ａ）は式：
Anew  ＝  α・Aold  ±１
に従って更新され、ここで、α＝１−1/nとされ、かつ、αは０と１の間の値（０＜α＜１）とされる。
【０００８】
本発明のさらにもう一つの態様によると、乱数発生器によって生成された乱数を評価するための装置は、二進ビットから成るランダムシーケンスを生成するためのランダム発生器ユニットと、このダンダム発生器ユニットの出力に結合され生成されたランダムシーケンスが予測不能（unpredicable）であるか否かを検出するための検出器ユニットと、ランダム発生器と検出器ユニットの出力に接続され生成されたランダムシーケンスが十分にランダムではないと決定された場合に生成されたランダムシーケンスを不能にするためのスイッチングユニットと、を備え、上述の生成されたランダムビットを格納し、所定の量だけシフトすることで、格納されたランダムシーケンスとシフトされたランダムシーケンスとの間のビットシーケンスの修正された積が得られ、これら修正された積に指数平均演算（Ａ）を施すことで、平均自己相関値が決定され、指数平均演算（Ａ）の出力のいずれかがある所定の許容範囲外にある場合、生成されたランダムシーケンスは十分にランダムではないと決定される。この装置は、更に、これら指数平均演算（Ａ）の出力のいずれかが所定の許容範囲外にある場合、警告信号を送信するための手段を備える。
【０００９】
これら及び更なる長所が以下の詳細な説明を添付の図面を参照しながら読むことで一層明白となるものである。
【発明を実施するための最良の形態】
【００１０】
以下の説明においては、本発明の完全な理解が得られるように、制限ではなく解説の目的で、特定のアーキテクチャ、インタフェース、技術等が具体的に詳細に説明される。ただし、当業者においては明らかなように、本発明は、これら個々の細部とは離れた他の態様として実現することもできる。単純かつ明快さの目的で、公知のデバイス、回路、及び方法の詳細な説明は、本発明の説明が不要な詳細のために不明瞭とならないように省かれている。
【００１１】
図１は、本発明の一つの実施例による、生成された乱数の統計量をリアルタイムでテストすることが可能なシステム１０のブロック図である。システム１０は、乱数発生器（RG）１２、検出器１４、及びスイッチ１６を備える。乱数発生器（RG）１２は、一連の乱数を出力する。この明細書において、”乱数”なる語句は、二進信号、正規分布或いは任意の他の分布を有する信号の任意のシーケンス、０と１との間の数を表す信号のシーケンス、十進数を表す信号のシーケンス、或いは所望のランダム性を含む任意の他の形態を意味する。更に、乱数発生器（RG）１２は、二進ビットのシーケンスに変換することができる信号を生成するための任意の装置を意味する。こうして、乱数発生器（RG）１２は、この明細書においては、二進ランダムビット（binary random bits）を、ありふれた方法或いは型にはまらない方法で生成する。
【００１２】
検出器１４は、乱数発生器（RG）１２が、多くの目的に対して十分にランダムなランダムデータを生成するために正しく動作しているか否かを検出する。こうして、乱数発生器（RG）１２によって出力された乱数は、それらのランダム性について、所定の基準（後に説明する）に従ってテストされ、それらが合格した場合は、スイッチ１６は、それら生成された乱数が、下流アプリケーション、例えば、乱数発生器（RG）１２によって供給されたこれら乱数を用いる、任意の回路、システム、プロセス、ギャンブリングアプリケーション、シミュレーション、統計的サンプリング、Diffie-Hellmanキー交換等に送られることを許す。例えば、スイッチ１６は、暗号システム、オーディオ或いはビデオ雑音発生器、コンピュータプログラム、或いは他のデバイス及びプロセスへの入力を表す。こうして、スイッチ１６は、検出器１４の制御下で、生成された乱数が十分にランダムではないと思われる場合は、これら生成された乱数の送信を停止するために、不能にされる。
【００１３】
以下では、乱数シーケンスの統計的特性のテストに関して図２及び３を参照しながら詳細に説明する。
【００１４】
図２の説明に移るが、これら乱数は、乱数発生器（RG）１２が動作している最中に、それら生成された乱数が十分にランダムであることを確保するために、本発明の一つの実施例に従ってリアルタイムにてテストされる。動作においては、ランダムビットの一連のストリームが乱数発生器（RG）１２によって生成される。これら乱数が乱数発生器（RG）１２から受信されると、生成された乱数パターンが不規則であることを保証するために、自己相関テスト（auto-correlation test）が実行される。図２に示されるように、初期ランダムシーケンス（initial random sequence ）ａが格納され、次に、右にある指定される量だけシフトされる。図２においては、解説の目的で、右への１スロットのシフトが示されるが、本発明から逸脱することなく、これより大きなシフトすることもできることに注意する。こうして、図面中のシフトの数は、本発明の範囲に制限を課すものではないことに注意する。次に、初期シーケンスａを、各スロットについて、この新たにシフトされたシーケンスｂと比較することで、2-ビットシーケンスの修正されたドット積（modified dot product）が得られる。ある与えられたスロット内の、これら二進値が同一（ai=bi）の場合は、総和されるべき対応する項に＋１の値が割当てられ、同一でない（ai≠bi）は、−１が割当てられる。これら項を互いに総和することで、２ビットシーケンスの修正されたドット積が形成される。格納されたバージョンとシフトされたバージョンとの間で、同一のビットの位置がカウントされ、これらら異なるビットの（位置）数が引かれる。生成されたシーケンスが本当にランダムであるためには、本発明のこの実施例によると、−１の項と＋１の項の数が大体同一であることが要求される。ここで、”大体（roughly）”とは、ｎ個のサンプルが考慮された場合、−１と＋１の発生の頻度が、ｎよりも小さな、ある所定の閾値範囲内に収まるべきであることを意味する。
【００１５】
本発明の上述の幾つかの長所のより完全な理解を図るため、以下では数値表現を用いて説明する。b0,b1,b2,b3,...,なるビットシーケンスに対して、b0から始まる長さkの自己相関ベクトルは以下の通りとなる。ここで、我々は、記号Θは、両方の演算（operations）が同一である場合はその結果は＋１となり、異なる場合はその結果は−１となる、ある種の抽象的乗法演算（abstract multiplication operation）を表すものと解釈すると、この自己相関ベクトルの成分（conponents）は、以下の通りとなる：
a1＝b0Θb1 + b1Θb2 + b2Θb3 + ・・・ +bk-1Θbk
a2＝b0Θb2 + b1Θb3 + b2Θb4 + ・・・ +bk-1Θbk+1
・
・
ak＝b0Θbk + b1Θbk+1 + b2Θbk+2 + ・・・ +bk-1Θb2k-1
【００１６】
これらaiの一連の値（consecutive values）は、多くの共通の要素（elements）を有することに注意する。例えば、biから始まり、オフセットmを有する、相関値をiamによって表すものとすると、これらは以下の通りとなる：
0a1＝b0Θb1 + b1Θb2 + b2Θb3 + ・・・ +bk-1Θbk      および
１a1＝b１Θb2 + b２Θb3 + b３Θb4 + ・・・ +bkΘbk+１
【００１７】
0a1の最初の項と、1a1の最後の項のみが反復されてないことに注意する。こうして、過去のビット、つまり、前に計算された2-ビット積biΘbi+１を格納することで、全自己相関ベクトルを、その長さｋに比例する時間内で計算することが可能となる。更に、メモリ及び実行時間を節約するために、本発明においては、この自己相関の計算に指数平均法（exponential averaging）が適用される。ただし、当業者において周知の他のタイプの平均法（averaging techniques）を用いることもできる。指数平均法は、アキュムレータＡ内で平均が更新されるだびに、古い平均値の影響は低減するという特性を有する。ランダムシーケンスの統計的特性を評価するテストは連続的に実行され、このため、指数平均法を用いない場合は、カウンタを定期的にクリアすることが必要となる。
【００１８】
指数平均法は以下のように機能する。つまり、数値bが得られる度に、０と１との間の係数α（０＜α＜１）がアキュムレータＡに乗算され、次に、これにｂが加えられる。つまり、Anew＝α・Aold＋ｂが計算される。有効な平均化効果（averaging effects）を得るためには、αに対する値は、１に接近するように選択される。つまり、α＝１−1/n、ｎ＞＞１とされる。この場合は、logα≒−１/nとなり、平均化されたビットの半減期（half-life）は、k≒n・log2≒0.30103・ｎとなる。nビットの後、最も古いビットの重みは、(1-1/n）ｎ≒1/e≒0.367879となる。ここでｅは、自然対数の底（オイラー定数）であり、このため、この項ｎはビットの自然寿命（natural life）と呼ばれる。仮に、平均化されるべき全ての値が１である場合は、アキュムレータ値は、1+α+α2+...=1/(1-α)=nとなり、他方、全てのビットが０の場合は、アキュムレータ値は０となる。指数平均の期待値は、個々の値の期待値の指数平均となることに注意する。
【００１９】
boから始まる指数自己相関ベクトル（exponentail auto-correlation vector）は以下の無限和（infinite sums）によって定義される：
e1＝b0Θb1 + α・b1Θb2 + α2・b2Θb3 + ・・・ 
e2＝b0Θb2 +α・b1Θb3 + α2・b2Θb4 + ・・・ 
・
・
ek＝b0Θbk + α・b1Θbk+1 + α2・b2Θbk+2 + ・・・ 
【００２０】
指数自己相関の幾つかの長所は、（biから始まり、mだけオフセットされた指数相関値をiemにて表した場合）以下の通りである：
（１）これら自己相関ベクトルの一連の値は計算がより容易である：
iem    ＝  biΘbi+m    +  α・i+1em
（２）最後のｋビットを格納することのみが必要とされる（これに対して通常の相関の場合は２ｋ個を必要とする）
（３）パラメータα＝1-1/n（ｎは相関項の自然寿命を表す）とした場合、相関の有効長を簡単に（必要であれば動的に）変更することができる。
【００２１】
上述のように、指数平均法は、アキュムレータがある０＜α＜１なる係数で低減するために、カウンタをクリアする働きを有し、アキュムレータが動作モード中に大きくなり過ぎることは決してない。各アキュムレータに対していったん指数平均化が遂行されると、指数平均の値が所定の許容範囲と比較される。本実施例においては、生成された乱数パターンが実質的にランダムであるか否は、各アキュムレータの値を所定の許容範囲値と比較することで決定される。任意のアキュムレータの値が平均化プロセスの際にこの所定の範囲値から外れた場合、それら生成された乱数は、予測不能ではないものと推論される。代替的に、閾値は、テストが反復的に不合格となった場合、ユーザに通知するように設定することもできる。前もってセットの既知の良好な品質のランダムなシーケンスを用いて、これら良好なランダムなシーケンスは全て許容範囲に入るように指数平均の限界（exponential averaging limits）が決定される。テストにおいて実際に用いる範囲は、オペレータによって、生成されたランダムシーケンスが無許可の者にとって予測可能であるか否かについての感度が選択できるように選択的に設定される。
【００２２】
図３は、本発明によるランダムシーケンスの統計的特性をテストするための動作ステップを解説する流れ図である。長方形の要素は、コンピュータソフトウェアインストラクションを示し、菱形の要素は、長方形のブロックによって表されるコンピュータソフトウェアインストラクションの実行に影響を与えるコンピュータソフトウェアインストラクションを表す。代替的に、これら処理及び判定ブロックは、機能的に等価な回路、例えば、デジタル信号プロセッサ回路或いは特定用途向け集積回路（ASIC）によって遂行されるステップを表すものと考えることもできる。多くのお決まりのプログラム要素、例えば、ループ及び変数の初期化及び一時的数値変数（temporary variables）の使用は示されていないことに注意する。当業者においては理解できるように、特に示されてない限り、ここで説明されるこれらステップの特定の順番は単に解説のためのものであり、本発明の精神から逸脱することなく変更することが可能である。
【００２３】
動作において、ステップ１００において、二進ビットの一連のランダムストリームが乱数発生器１２によって生成される。ステップ１２０において、生成された最後のランダムビットのある選択された個数ｋのビットがリングバッファ内に格納され、次に、こうして格納された乱数が、比較のために、読み出され、処理される。最後に生成された乱数と全ての格納されている乱数との特別な積（special products）がステップ１４０において計算される。その後、ステップ１６０において、指数平均アキュムレータ（exponential averaging accumulators）が−１或いは＋１のいずれかの値を有するこれら積にて更新され、これらアキュムレータが所定の許容範囲と比較される。これらアキュムレータのいずれかがこの所定の許容範囲から外れる場合は、ステップ１８０において規則的なパターン（regular patterns）が検出されたことが決定され、カウンタが１だけ増分される。他方、これらアキュムレータのいずれも所定の許容範囲から外れない場合は、ステップは、乱数を生成するステップ１００に戻り、カウンタがリセットされる。ステップ２００においてカウンタの値が閾値の値より大きな場合は、ステップ２２０においてスイッチ１６が不能にされ、それら乱数の下流アプリケーションへの流れ（送信）が停止される。この時点でこれら生成された乱数を破棄し、新たな乱数を生成するためのプロセス全体を開始することもできる。代替として、生成された乱数が十分にランダムでないことを示す通知をオペレータに送信することもできる。最後に、ステップ２００においてカウンタの値が閾値の値を超えていない場合は、この処理はステップ１００に戻る。
【００２４】
上述の様々なステップは、これらをアプリケーションプログラム内に組み込まれたファンクション内にプログラミングすることで実現することができる。当分野において通常の知識を有するプログラマであれば、これらは、通常のプログラミング技術を用いて、C、Visual Basic、Java（登録商標）、Perl、C++等の言語にて、実現できるものである。一つの実施例においては、図３に示される方法は、（Cプログラミング言語を用いて）実現される。簡単のためにこのテストを浮動小数点計算を用いて実現した例について以下に示す：
付録  MS Visual Cコード
【表１】
2005518046.tif 000003
【表２】
2005518046.tif 000004
【００２５】
上では本発明の幾つかの好ましい実施例について解説されたが、当業者においては理解できるように、本発明の真の範囲から逸脱することなく、様々な変更及び修正や、説明された要素の、同等物での置換が可能である。加えて、多くの修正を、本発明の中心範囲から逸脱することなく、本発明の教示に従って、特定の状況に合わせて、行うことも可能である。従って、本発明は、本発明を実施するために考えられる最良の形態として開示された上述の特定の実施例に限定されるものでなく、本発明は、添付の請求の範囲に入る全ての形態を包含するものである。
【図面の簡単な説明】
【００２６】
【図１】本発明の一つの実施例による、生成された乱数のランダム性をテストする能力を有するモジュールの略ブロック図である。
【図２】本発明の一つの実施例による、乱数のシーケンスに関して遂行されるランダム性テストを示す図である。
【図３】本発明の一つの実施例による、生成された乱数の統計量をテストする動作ステップを解説する流れ図である。
【符号の説明】
【００２７】
１０：システム
１２：乱数発生器（RG）
１４：検出器
１６：スイッチ
【図１】
2005518046.tif 000005
【図２】
2005518046.tif 000006
【図３】
2005518046.tif 000007
【国際調査報告】
2005518046.tif 000008
2005518046.tif 000009
2005518046.tif 000010