(57)【要約】本発明は乱数発生器によって生成された乱数をリアルタイムにてテストするための方法及び装置に係る。一連の乱数が生成される際に、ある特定の指定された範囲の区間内において所定の論理値の値を有するビットの数が決定され、これに指数平均演算（Ａ）が施される。その後、これら全ての指数演算の出力がそれらに対する所定の許容範囲と比較され、生成された乱数が予測可能であるか否か決定される。
2005517998.tif 000002
【特許請求の範囲】
【請求項１】
乱数発生器によって生成された乱数を評価する方法であって、
乱数のストリームを生成するステップと、
ある特定の指定された範囲の区間内において所定の論理値の値を有する平均ビット数を決定するステップと、
前記所定の論理値を示す各平均ビット数に指数平均演算を施すステップと、
前記指数平均演算の出力を所定の許容範囲と比較することで、前記生成された乱数が予測不能であるか否か決定するステップと、
を含むことを特徴とする方法。
【請求項２】
前記所定の論理値の値は、−１或いは＋１のいずれかであることを特徴とする請求項１記載の方法。
【請求項３】
更に、前記指数平均演算の出力が前記所定の許容範囲から外れた場合、前記生成された乱数は予測可能であると決定するステップを含むことを特徴とする請求項１記載の方法。
【請求項４】
更に、前記指数平均演算の出力が前記所定の許容範囲の外にある場合、前記生成されたランダムシーケンスは予測可能である旨通告するステップを含むことを特徴とする請求項１記載の方法。
【請求項５】
更に、新たなビットが生成される度に、全ての前記指数平均演算を更新するステップを含むことを特徴とする請求項１記載の方法。
【請求項６】
前記指数平均演算は式：
Ａｎｅｗ  ＝  α・Ａｏｌｄ  ＋  ｂ
に従って更新され、
ここで、α＝１−１／ｎであり、αは０と１の間の値（０＜α＜１）であり、ｂは平均ビット数が得られた場合は１であり得られなかった場合は０であることを特徴とする請求項５記載の方法。
【請求項７】
更に、前記指数平均演算の出力が前記所定の許容範囲の外にある場合、新たなシーケンスのランダムシーケンスを生成するステップを含むことを特徴とする請求項１記載の方法。
【請求項８】
前記所定の許容範囲は
［ｎ／２−ｃ・√ｎ、ｎ／２＋ｃ・√ｎ］
として定義され、ｃは所望のセキュリティ閾値レベルが達成されるように選択されることを特徴とする請求項６記載の方法。
【請求項９】
乱数発生器によって生成された乱数を評価する方法であって、
（ａ）前記乱数発生器を用いて二進ビットの乱数のストリームを生成するステップと、
（ｂ）ある特定の指定された範囲の区間内において所定の論理値の値を有する平均ビット数を決定するステップと、
（ｃ）前記所定の論理値を示す各平均ビット値に関して指数平均演算を計算するステップと、
（ｄ）前記指数平均演算の出力をある所定の許容範囲と比較するステップと、
（ｅ）前記計算された指数平均演算の出力が前記所定の許容範囲の外にある場合、前記生成された乱数は予測可能であると決定するステップとを含むことを特徴とする方法。
【請求項１０】
更に、前記計算された指数平均演算が前記所定の許容範囲から所定の回数より多く外れるまで前記ステップ（ａ）から（ｅ）を繰り返すステップを含むことを特徴とする請求項９記載の方法。
【請求項１１】
更に、前記計算された指数平均演算が前記所定の許容範囲から所定の回数より多く繰返して外れた場合、非ランダムな数が生成された旨通知するステップを含むことを特徴とする請求項９記載の方法。
【請求項１２】
更に、前記計算された指数平均演算が前記所定の許容範囲の外に所定の回数より多く繰返してある場合、乱数の新たな組を生成するステップを含むことを特徴とする請求項９記載の方法。
【請求項１３】
さらに、前記指数平均演算（Ａ）を式：
Ａｎｅｗ  ＝  α・Ａｏｌｄ  ＋  ｂ
に従って更新するステップを含み、
ここで、α＝１−１／ｎであり、αは０と１の間の値（０＜α＜１）であり、ｂは平均ビット数が得られた場合は１であり得られなかった場合は０であることを特徴とする請求項９記載の方法。
【請求項１４】
前記所定の許容範囲は
［ｎ／２−ｃ・√ｎ、ｎ／２＋ｃ・√ｎ］
として定義され、ｃは所望のセキュリティ閾値レベルが達成されるように選択されることを特徴とする請求項１３記載の方法。
【請求項１５】
乱数発生器によって生成された乱数を評価する装置であって、
二進ビットの実質的にランダムなシーケンスを生成するためのランダム発生器ユニットと、
前記ダンダム発生器ユニットの出力に結合された、前記生成されたランダムシーケンスが予測不能であるか否かを検出するための検出器ユニットと、
前記ランダム発生器ユニットと前記検出器ユニットの出力に結合され、前記生成されたランダムシーケンスが予測可能であると決定された場合、前記生成されたランダムシーケンスの下流アプリケーションへの供給を停止するためのスイッチングユニットと、を備え、
ある特定の指定された範囲の区間内において所定の論理値の値を有する平均ビット数が決定され、
前記平均ビット数に指数平均演算が施され、
前記指数平均演算の出力がある所定の許容範囲の外にある場合、前記生成されたランダムシーケンスは予測可能であると決定することを特徴とする装置。
【請求項１６】
更に、前記指数平均演算の出力が前記所定の許容範囲の外にある場合、警告信号を送信するための手段を備えることを特徴とする請求項１５記載の装置。
【請求項１７】
前記指数平均演算（Ａ）は式：
Ａｎｅｗ  ＝  α・Ａｏｌｄ  ＋  ｂ
に従って遂行され、
ここで、α＝１−１／ｎであり、αは０と１の間の値（０＜α＜１）であり、ｂは平均ビット数が得られた場合は１であり得られなかった場合は０であることを特徴とする請求項１５記載の装置。
【請求項１８】
前記所定の許容範囲は：
［ｎ／２−ｃ・√ｎ、ｎ／２＋ｃ・√ｎ］
として定義され、ｃは所望のセキュリティ閾値レベルが達成されるように選択される、ことを特徴とする請求項１７記載の装置。
【請求項１９】
その上に格納されたインストラクションのシーケンスを表すデータを含むマシーンにて読出し可能な媒体であって、前記インストラクションのシーケンスが、プロセッサによって実行された場合、そのプロセッサに対して：
ランダムビットのストリームを生成させ、
ある特定の指定された範囲の区間内において所定の論理値の値を有する平均ビット数を決定させ、
前記所定の論理値を示す前記ビット数に関して指数平均演算を遂行させ、
前記指数平均演算の出力を所定の許容範囲と比較させることを特徴とするマシーンにて読出し可能な媒体。
【請求項２０】
前記計算された前記指数平均演算が前記所定の許容範囲の外にある場合、前記生成された乱数は予測可能であると決定されることを特徴とする請求項１９記載のマシーンにて読出し可能な媒体。
【請求項２１】
前記指数平均演算（Ａ）は式：
Ａｎｅｗ  ＝  α・Ａｏｌｄ  ＋  ｂ
に従って遂行され、
ここで、α＝１−１／ｎであり、αは０と１の間の値（０＜α＜１）であり、ｂは平均ビット数が得られた場合は１であり、得られなかった場合は０であることを特徴とする請求項１９記載のマシーンにて読出し可能な媒体。
【請求項２２】
前記所定の許容範囲は
［ｎ／２−ｃ・√ｎ、ｎ／２＋ｃ・√ｎ］
として定義され、ｃは所望のセキュリティ閾値レベルが達成されるように選択される、ことを特徴とする請求項２１記載のマシーンにて読出し可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、乱数発生器の分野、より詳細には、生成された乱数の統計的特性をリアルタイムにて分析するためのデジタルデータ処理装置及び方法に係る。
【背景技術】
【０００２】
乱数は多くの電子システムにおいて様々な用途に用いられている。暗号用途においては、幾つかの形態の暗号法において乱数発生器がメッセージの伝送にセキュリティを提供するために用いられており、意図された受信端のみが正当な送信端によって送信されたメッセージ（つまり、音声或いはデータ）を理解することができるように工夫されている。ただし、メッセージの暗号化において用いられる乱数の生成プロセスの不当な受信者及び不当な送信者による破壊（breaking）はより巧妙化しており、安全な通信のために予測不能な乱数を生成することの要請は一層大きくなっている。
【０００３】
不正者によるセキュリティの破壊に加えて、乱数発生器は動作の最中に非ランダムな数（non-random numbers）を生成することがある。乱数発生器がある時間に渡って一連の１及び０を生成する場合、典型的には、乱数発生器のハードウェア要素内には、熱が生成される。例えば、１なるビットを生成するためには、０なるビットよりも多くの電力が消費される。１なるビットの長いシーケンスが生成された場合、この電気回路は熱くなる。この回路がそれが熱いときに１なるビットを生成した場合、この回路は、”ラッチアップ（latch up）”し、１なるビットのみを生成することとなる。この回路が熱いとき、０なるビットが生成された場合は、異なる効果が発生する。この場合は、１なるビットの長いサブシーケンスは極めて稀れとなり、これは非ランダム性（non-random property）を与える。暗号アプリケーションの場合、これらの任意の非ランダム性は致命的な結果、つまりセキュリティの破壊をもたらしかねない。
【０００４】
従って、ランダム性のテスト（randomness tests ）を行うときは、ハードウェアの不正な変更（hardware tampering）と要素の故障（component failure）の両方を検出することが必要となる。従来のランダム性のテストは、生成された乱数のシーケンスに関して、カイ二乗テスト（chi-squared test）、デルタテスト（delta test）、その他の大掛かりな統計的テストを通じて遂行される。ただし、これらテストはリアルタイムにて遂行するためには、これらは非常に多くの計算処理パワーが要求され非常に高価なものとなる。
【０００５】
本発明は、生成された乱数が十分にランダムであるようにオンラインランダム性テスト（on-line randomness test）を行う方法及び装置を提供することによって上述の問題を克服するとともに特別の利点を提供する。
【発明の開示】
【０００６】
本発明の一つの態様によると、乱数発生器（random number generator）によって生成された乱数（random number）を評価する方法が提供される。この方法は、乱数のストリームを生成するステップと、ある特定の指定されたレンジの区間内において所定の論理値の値を有するビットの数を決定するステップと、これら所定の論理値を示すビットの数に指数平均演算（Ａ）を施すステップと、これら全ての指数平均演算（Ａ）の出力を所定の許容範囲と比較することで生成された乱数が十分にランダムであることを決定するステップと、を含む。これら指数平均演算（Ａ）の全ての出力が所定の許容範囲内に収まる場合は、生成された乱数は十分にランダム（予測不能）であると決定される。これら指数平均演算（Ａ）は新たなビットが生成される度に更新される。この方法は、更に、これら指数平均演算（Ａ）のいずれかの出力が所定の許容範囲にある場合、生成されたランダムシーケンスは十分にランダムではない旨通知するステップと、この事象が発生した場合、ランダムシーケンスの新たな組を生成するステップとを含む。
【０００７】
本発明のもう一つの態様によると、乱数発生器によって生成された乱数を評価する方法は、（ａ）乱数発生器を用いてランダムビットのストリームを生成するステップと、（ｂ）ある特定の指定された範囲の区間内において所定の論理値の値を有するビットの数を決定するステップと、（ｃ）これら所定の論理値を示すビットの数に関して指数平均演算（Ａ）を遂行するステップと、（ｄ）これら指数平均演算（Ａ）の出力をある所定の許容範囲と比較するステップと、（ｅ）計算された指数平均演算（Ａ）のいずれかが所定の許容範囲外にある場合、生成された乱数は十分にランダムではないと決定するステップと、を含む。この方法は、更に、計算された指数平均演算（Ａ）が所定の許容範囲外となるまで上述のステップ（ａ）から（ｅ）を繰り返すステップと、上述のステップ（ｅ）の下でのテストが所定の閾値より多く繰返されて不合格になった場合、十分にランダムでない数が生成された旨通知するステップを含む。上述のステップ（ｅ）の下でのテストが所定の回数より多く繰返して不合格となった場合、乱数の新たな組が生成される。
【０００８】
本発明のもう一つの態様においては、乱数発生器によって生成された乱数を評価する装置が提供される。この装置は、実質的にランダムなシーケンスを生成するためのランダム発生器ユニットと、このダンダム発生器ユニットの出力に結合され、生成されたランダムシーケンスが十分にランダムであるか否かを検出するための検出器ユニットと、これらランダム発生器と検出器ユニットの出力に結合され、生成されたランダムシーケンスが十分にランダムであると決定された場合、生成されたランダムシーケンスを不能にするスイッチングユニットとを備える。ある特定の指定された範囲の区間内において所定の論理値の値を有するビットの数が決定され、これらに複数の指数平均演算（Ａ）が施され、これら指数平均演算（Ａ）のいずれかの出力がある所定の許容範囲外にある場合、生成されたランダムシーケンスは十分にランダムではないと決定される。この装置は、更に、これら複数の指数平均演算（Ａ）のいずれかの出力が所定の許容範囲外にある場合、警告信号を送信するための手段を備える。
【０００９】
これら及び更なる長所が以下の詳細な説明を添付の図面を参照しながら読むことで一層明白となるものである。
【発明を実施するための最良の形態】
【００１０】
以下の説明においては、本発明の完全な理解が得られるように、制限ではなく解説の目的で、特定のアーキテクチャ、インタフェース、技術等が具体的に詳細に説明される。ただし、当業者においては明らかなように、本発明は、これら個々の細部とは離れた他の態様として実現することもできる。単純かつ明快さの目的で、公知のデバイス、回路、及び方法の詳細な説明は、不要な詳細のためにかえって本発明の説明が妨げられないように省かれている。
【００１１】
図１は、本発明の一つの実施例による生成された乱数の統計量をリアルタイムにてテストすることが可能なシステム１０のブロック図である。システム１０は、乱数発生器（RG）１２、検出器１４、及びスイッチ１６を備える。乱数発生器（RG）１２は、一連の乱数を出力する。乱数発生器（RG）１２は、乱数をありふれた方法或いは型にはまらない方法で生成し、これら乱数は、一連の二進ビット（binary bits）として表されることに注意する。
【００１２】
検出器１４は、乱数発生器（RG）１２によって出力された乱数を、それらのランダム性について所定の基準（後に説明する）に従ってテストし、それらが合格した場合は、スイッチ１６は、それら生成された乱数が、下流アプリケーション、例えば、乱数発生器（RG）１２によって供給されたこれら乱数を用いる、任意の回路、システム、プロセス、ギャンブリングアプリケーション、シミュレーション、統計的サンプリング、Diffie-Hellmanキー交換等に送られることを許す。例えば、スイッチ１６は、暗号（cryptography ）システム、オーディオ或いはビデオ雑音発生器、コンピュータプログラム、或いは他のデバイス及びプロセスへの入力を表す。こうして、スイッチ１６は、検出器１４の制御下で、生成された乱数が十分にランダムではないと思われる場合は、これら生成された乱数の送信を停止するために、不活性化される。
【００１３】
以下では、乱数シーケンスの統計的品質（ランダム性）のテストに関して図２及び図３を参照しながら詳細に説明する。
【００１４】
図２の説明に移るが、これら乱数は、本発明の一つの実施例に従って、乱数発生器（RG）１２が動作している最中に、それら生成された乱数が十分にランダムであることを確保するためにリアルタイムにてテストされる。当業者においては明らかなように、乱数発生器は、１つ或いは複数の乱数が与えられたとき、生成されたランダムシーケンスの任意の他のビットが５０％以上の確率にて予測することが不可能な場合は、安全であると見なされる。こうして、本発明の基本的な原理は、乱数発生器（RG）１２によって生成された一つ或いは複数の乱数をテストすることで、それら生成された乱数パターンが十分にランダムであることを保証することを伴う。
【００１５】
図２に示すように、乱数発生器（RG）１２によって生成されたランダムな値の一連のストリームは、指数平均演算（exponential averaging operation）を受け、この演算において、ある異なるセットのサブシーケンスにおいて発生する二進０或いは１の平均頻度（average frequency）が得られ、次に、これらが、それぞれの所定の許容範囲と比較される。本発明の技術によると、こうして計算された指数平均が、各平均アキュムレータ（average accumulator）に対するある特定の時間において、全てのサブシーケンスについてこの所定の許容範囲内に収まる場合は、これらサンプルは十分にランダムであるものと決定される。
【００１６】
上述のランダム性のテストは、指数平均アキュムレータ（exponential average accumulator ）Aijを初期化することから開始される。初期値が各アキュムレータに対して割当てられる。インデックスiは区間スキップカウント（interval skip count）を表し、インデックスｊはカウントの開始位置を表し、これは０からi−１の間とされる。図２に示されるように、区間サブシーケンス（interval subsequence）の異なる組合せに対する０の発生の平均数が更新される。例えば、ランダムシーケンス（0,1,0,1,1,0,0,1）に対して、アキュムレータA2,0内に現れる０の頻度は2/3となり、アキュムレータA2,１内に現れる０の頻度は１/3となり、アキュムレータA３,0内に現れる０の頻度は１/２となる。このように、０或いは１の各二進値に対して発生の数がカウントされる。かくして、各乱数が生成される度に、サブシーケンスの異なる組合せにおける０の発生の頻度が得られ、更新される。ここでは解説の目的で０なる二進ビットがカウントされるが、ただし、このカウンティングは、１なる二進ビットに対して行うこともできることに注意する。
【００１７】
この実施例においては、毎回、対応する二進値の頻度カウントが各アキュムレータＡ内で計算され、古い平均ビットカウント値は、より低減された寄与を有する。こうして、ランダムシーケンスの統計的特性を評価するためのテストは、絶えず実行され、このため、これらカウンタを定期的にクリアすることが必要となる。ただし、本発明の教示から逸脱することなく用いることができる様々なカウンティング方法が存在し、好ましくは、後の説明するように、オーバラッピングカウンティング（overlapping counting）の際には、指数平均法（exponential averaging）が用いられる。
【００１８】
ビットｂが読み出されたびに、０と１との間の係数α（０＜α＜１）がアキュムレータＡに乗算され、次に、これに新たなビットｂが加えられる。つまり、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となり、他方、全てのビットが０の場合は、アキュムレータ値は０となる。指数平均（exponential average）の期待値（expected value）は、個々のビットの期待値の指数平均つまり、1/2+1/2α+1/2α2+...＝n/2となることに注意する。１が１ビットおきに現れた場合は、アキュムレータ値は、1+α2+α4+...=1/(1-α2)とα＋α3+α5+...=α/(1-α2)との間で交互し、これらは、1/2アパート[n/(2n-1)]に非常に接近するが、この平均値も、(1+α)/2(1-α2)=n/2となることに注意する。
【００１９】
上述のように、指数平均化は、アキュムレータはある０＜α＜１なる係数で低減するため、カウンタをクリアする働きを有し、このため、アキュムレータは動作モードの際に決して大きくなりすぎることはない。各アキュムレータに対していったん指数平均が遂行されると、指数平均の値が所定の許容範囲と比較される。説明の実施例においては、生成された乱数パターンが予測不能であるか否か、各アキュムレータの値を所定の許容範囲の値と比較することで決定される。任意のアキュムレータの値がカウンティングの際にこの所定の範囲の値から外れた場合、生成された乱数は予測可能であると推論される。
【００２０】
ランダムシーケンスのテストにおいて求められる最も単純な特性は、０なるビットと１なるビットの数が大体同一であることである。ここで”大体（roughly）”とは、ｎ個のサンプルを考えた場合、それらビットの総和が[n/2−c・√n、n/2＋c・√n]の範囲内に入ることを意味する。ここで、定数ｃは、全てのシーケンスの内のなんパーセントがその区間に入るかをコントロールし、c/2=1とした場合は68.3％が、c/2=2とした場合は95.5％が、そしてc/2=3とした場合は99.7%が、その区間内に入ることが期待される。ｃ及びｎの値は、オペレータによって選択することも、或いは複雑さとテストの強力さとの間の良好なトレードオフが得られるように予め固定することもできる。仮に、ｃ/2＝１０と選択された場合は、ｎ個のステップを遂行した後、平均的に、1.7百万個のランダムシーケンスの内の１個のみが、上述の区間から外れる総和を与えることとなる。もし我々がこのテストを選択した場合（つまり、平均テストにおいて、ｃ＝２０を選択した場合）は、かなりの非ランダム性（significant non-randomness）が検出されないままとなる（つまり、この値では小さ過ぎる）。従って、非ランダム性をテストするために用いられる[n/2−c・√n、n/2＋c・√n]の所定の範囲は、乱数の良好な既知のソースを用いての厳密なシミュレーションに基づいて決定される。
【００２１】
指数平均アキュムレータが所定の範囲の外にある場合、これは、そのシーケンスは0/1なるビットの不規則な分布（irregular distribution）を示すことを示唆する。この場合は、ユーザに、そのシーケンスがランダムではないこと、或いは無許可の者による不当な暗号解読を受け易いことを知らせる警告が送られる。代替的に、テストに繰返して何度失敗したらユーザに通知を送るかの閾値を設定することもできる。こうして、指数平均が限界に入るか否かのテストが、ランダムシーケンスの組に関して、生成されたランダムシーケンスが許容範囲内に収まるか否を決定するために開始される。この許容範囲は、オペレータによって生成されたランダムシーケンスが無許可の者にとって予測不能であるか否かを決定できるように制御可能である。加えて、ランダム性をテストするための更なるステップを、計算された指数平均値の所定の許容範囲内の分布に基づいて達成（遂行）することもできる。これは、指数平均値は、所定の許容範囲内に一様に分布することを必要とされることに依拠する。指数平均値が計算される度に、それが、許容範囲のどの部分に落ちるか、例えば、それが、許容範囲の左半分に落ちるか、或いは右半分に落ちるか、監視される。左半分内に落ちる頻度が右半分に落ちる頻度と大きく異なる場合、このパラメータは、生成された乱数が予測不能ではないことの指標として用いることができる。
【００２２】
図３は、本発明によるランダムシーケンスの統計的特性をテストするための動作ステップを解説する流れ図である。長方形の要素は、コンピュータソフトウェアインストラクションを示し、菱形の要素は、長方形のブロックによって表されるコンピュータソフトウェアインストラクションの実行に影響を与えるコンピュータソフトウェアインストラクションを表す。代替として、これら処理及び判定ブロックは、機能的に等価な回路、例えば、デジタル信号プロセッサ回路或いは特定用途向け集積回路（ASIC）によって遂行されるステップを表すものと考えることもできる。多くのお決まりのプログラム要素、例えば、ループ及び変数の初期化及び一時的数値変数（temporary variables）の使用は示されていないことに注意する。当業者においては理解できるように、特に示されてない限り、ここで説明されるこれらステップの特定の順番は単に解説のためのものであり、本発明の精神から逸脱することなく変更することが可能である。
【００２３】
最初に、ステップ１００において、許容範囲に対するｎ及びｃに対する値が事前に固定されか、或いはオペレータによって予め選択される。ステップ１２０において、一連の乱数が生成される。新たなランダムビットが生成される度に図２に示すようなサブシーケンスの組が得られ、ステップ１４０において、これに対する指数平均計算（exponential average counting）が遂行される。次に、区間のサブシーケンス（interval sub-sequences）の異なる組み合わせに対応する各アキュムレータに対する頻度カウントが、所定の許容範囲と比較される。この頻度カウントが所定の許容範囲の外にある場合は、ステップ１８０において、不規則なパターン（irregular patterns）が検出されたことが決定され、カウンタが１だけ増分される。他方、頻度カウントが所定の許容範囲にある場合は、ステップは乱数を生成するステップ１２０に戻り、カウンタがリセットされる。ステップ２００においてカウンタの値が閾値より大きな場合は、ステップ２２０において、生成された乱数が非ランダム（non-random）である旨の通知が行なわれるか、或いはスイッチ１６を不能にすることで、それら乱数の下流アプリケーションへの送信が停止される。代替的に、これら生成された乱数を破棄し、新たな乱数を生成するためのプロセス全体を開始することもできる。カウンタの値が閾値を超えない場合は、このステップはステップ１００に戻る。
【００２４】
上述の様々なステップは、これらをアプリケーションプログラム内に組み込まれたファンクション内にプログラミングすることで実現することができる。当分野において通常の知識を有するプログラマであれば、これらは、通常のプログラミング技術を用いて、C、Visual Basic、Java（登録商標）、Perl、C++等の言語にて、実現できるものである。一つの実施例においては、図３に示される方法は、（Cプログラミング言語を用いて）実現される：
【表１】
2005517998.tif 000003
【表２】
2005517998.tif 000004
【００２５】
上では本発明の幾つかの好ましい実施例について解説されたが、当業者においては理解できるように、本発明の真の範囲から逸脱することなく、様々な変更及び修正や、説明された要素の、同等物での置換が可能である。加えて、多くの修正を、本発明の中心範囲から逸脱することなく、本発明の教示に従って、特定の状況に合わせて、行うことも可能である。従って、本発明は、本発明を実施するために考えられる最良の形態として開示された上述の特定の実施例に限定されるものでなく、本発明は、添付の請求の範囲に入る全ての形態を包含するものである。
【図面の簡単な説明】
【００２６】
【図１】本発明の一つの実施例による、生成された乱数のランダム性をテストする能力を有するモジュールの略ブロック図である。
【図２】本発明の一つの実施例による、乱数のシーケンスに関して遂行されるランダム性テストを示す図である。
【図３】本発明の一つの実施例による、生成された乱数の統計量をテストする動作ステップを解説する流れ図である。
【符号の説明】
【００２７】
１０：システム
１２：乱数発生器（RG）
１４：検出器
１６：スイッチ
【図１】
2005517998.tif 000005
【図２】
2005517998.tif 000006
【図３】
2005517998.tif 000007
【国際調査報告】
2005517998.tif 000008
2005517998.tif 000009
2005517998.tif 000010
2005517998.tif 000011
2005517998.tif 000012