(57)【要約】本発明は、実時間にて乱数発生器により発生された乱数を検査するための方法及び装置である。乱数発生器により発生された乱数ビットのストリームは、±１の２進ビットに変換され予め規定されたブロックのベクトルビットに分割され、これらのベクトルはアダマール変換演算が施される。アダマール変換出力値は、所定範囲の値の各々において計算され、指数周波数演算にかけられてアダマール変換の各出力が所定の時間期間において対応する所定範囲の値に入る平均回数を計算し更新する。更新された周波数値は、少なくとも１つの所定許容範囲と比較されるので、更新された周波数値の少なくとも１つが所定回数より多く所定の許容範囲を繰り返し超えた場合は、発生した乱数ビットは十分な不規則性を有してないものと判定する。
2005523497.tif 000002
【特許請求の範囲】
【請求項１】
乱数のストリームの不規則性を検査する方法であって、
・乱数２進ビットの連続的ストリームを供給するステップと、
・所定ブロックの前記乱数２進ビットにアダマール変換計算を施すステップと、
・前記アダマール変換計算の出力に指数周波数計算を施し前記アダマール変換の出力が
所定時間期間にわたり所定範囲の値に入る平均回数を計算し更新するステップと、
・前記指数周波数計算の出力を所定の許容範囲と比較することにより、当該発生乱数２進ビットが十分に不規則なものかどうかを判定するステップと、
を有する、
方法。
【請求項２】
請求項１に記載の方法であって、前記指数周波数計算は、
・前記所定範囲の値を有するアキュムレータのアレイを前記アダマール変換計算の出力
に割り当てるステップと、
・前記アダマール変換各々の出力が前記所定時間期間において対応する前記所定範囲の値に入る回数をカウントするステップと、
により行われる、方法。
【請求項３】
請求項２に記載の方法であって、前記指数周波数計算は、Ｚｎｅｗ＝α・Ｚｏｌｄ＋ｈ（ｔ）なる式により計算され、ここでのαは０から１の間（０＜α＜１）に入り、Ｚｏｌｄはオペレータにより最初に割り当てらされ、ｈ（ｔ）は前記アダマール変換の出力が前記所定時間期間において対応する前記所定範囲の値に入る回数を表す、方法。
【請求項４】
請求項１に記載の方法であって、前記所定の許容範囲は、シミュレーションにより得られる、方法。
【請求項５】
請求項１に記載の方法であって、前記指数周波数計算の出力が所定回数よりも多く前記所定許容範囲を繰り返し超えた場合に当該発生乱数ビットの不規則性は不十分であると判定するステップをさらに有する、方法。
【請求項６】
請求項１に記載の方法であって、前記指数周波数計算の出力が所定回数よりも多く前記所定許容範囲を繰り返し超えた場合に当該発生乱数ビットの不規則性は不十分であることを知らせるステップをさらに有する、方法。
【請求項７】
請求項１に記載の方法であって、前記指数周波数計算の出力が所定回数よりも多く前記所定許容範囲を繰り返し超えた場合に新しいセットの乱数ビットを発生するステップをさらに有する、方法。
【請求項８】
請求項１に記載の方法であって、前記指数周波数計算の出力が所定回数よりも多く前記所定許容範囲を繰り返し超えた場合に後のアプリケーションに対し当該発生乱数ビットを拒否するステップをさらに有する、方法。
【請求項９】
乱数のストリームの不規則性を検査する方法であって、
（ａ）乱数２進ビットの連続的ストリームを供給するステップと、
（ｂ）所定ブロックの前記乱数２進ビットにアダマール変換計算を施すステップと、
（ｃ）所定範囲の値を有するアキュムレータのアレイを前記アダマール変換計算の各出
力に割り当て、前記アダマール変換計算の各出力がそれぞれのアキュムレータにおける前
記所定範囲の値の１つに入る回数をカウントするステップと、
（ｄ）前記アキュムレータのアレイの値に指数周波数計算を施し前記アダマール変換計
算の各出力が所定時間期間にわたり当該それぞれのアキュムレータにおける前記所定範囲
の値の１つに入る平均回数を更新するステップと、
（ｅ）前記指数周波計算の出力を所定許容範囲と比較するステップと、
を有する、
方法。
【請求項１０】
請求項９に記載の方法であって、前記指数周波数計算は、Ｚｎｅｗ＝α・Ｚｏｌｄ＋ｈ（ｔ）なる式により計算され、ここでのαは０から１の間（０＜α＜１）に入り、Ｚｏｌｄはオペレータにより最初に指定され、ｈ（ｔ）は前記アダマール変換の各出力が前記それぞれのアキュムレータにおける前記所定範囲の値の１つに入る回数を表す、方法。
【請求項１１】
請求項９に記載の方法であって、前記所定許容範囲は、シミュレーションにより得られる、方法。
【請求項１２】
請求項９に記載の方法であって、前記指数周波数計算の出力が所定回数よりも多く前記所定許容範囲を繰り返し超えた場合に当該発生乱数ビットの不規則性は不十分であると判定するステップをさらに有する、方法。
【請求項１３】
請求項９に記載の方法であって、前記指数周波数計算の各々が前記所定許容範囲内に入る場合に前記指数周波数計算出力の少なくとも１つが前記所定許容範囲外になるまで前記ステップ（ａ）ないし（ｅ）を繰り返すステップをさらに有する、方法。
【請求項１４】
請求項１３に記載の方法であって、前記ステップ（ａ）ないし（ｅ）が所定回数を超えて繰り返されたときに不規則性の不十分な乱数が発生されたことを知らせるステップをさらに有する、方法。
【請求項１５】
請求項１３に記載の方法であって、前記ステップ（ａ）ないし（ｅ）が所定回数を超えて繰り返されたときに新しいセットの乱数を発生するステップをさらに有する、方法。
【請求項１６】
不規則性を検査するシステムであって、
・２進ビットを有する乱数列を発生する乱数発生器と、
・指数周波数演算に基づいて当該発生乱数列が十分に不規則であるかどうかを検出する検出器と、
・前記指数周波数演算の結果に基づいて後のアプリケーションのために前記発生乱数列の流れを制御するスイッチと、
を有し、
前記乱数２進ビットの所定ブロックにアダマール変換計算を施しその後に指数周波数計算を施し所定時間期間にわたり前記アダマール変換計算の各出力が所定範囲の値の１つに入る平均回数を更新し、前記指数周波数計算出力のいずれかの出力が所定回数を超えて繰り返し所定許容範囲外にある場合に前記発生乱数列の不規則性が不十分であると判定する、システム。
【請求項１７】
請求項１６に記載のシステムであって、前記指数周波数計算の出力が繰り返し前記所定回数を超えて前記所定許容範囲外にあるときに前記発生乱数列の不規則性が不十分である旨の警報信号を伝送する手段をさらに有する、システム。
【請求項１８】
請求項１６に記載のシステムであって、前記指数周波数計算の出力が繰り返し前記所定回数を超えて前記所定許容範囲外にあるときに新しいセットの乱数ビットを発生する手段をさらに有する、システム。
【請求項１９】
命令シーケンスを表すデータを記憶する機械的読取可能媒体であって、前記命令シーケンスは、プロセッサにより実行されると、
・乱数２進ビットの連続的ストリームを処理し、
・所定ブロックの前記乱数２進ビットにアダマール変換計算を施し、
・前記アダマール変換計算の出力に対し指数周波数計算を行い前記アダマール変換の各出力が所定時間期間にわたり所定範囲の値の１つに入る平均回数を更新し、
・前記指数周波数計算の出力を所定の許容範囲と比較することにより、当該発生乱数２進ビットが十分に不規則なものかどうかを判定する、
を有する、ように前記プロセッサを動作させる、機械的読取可能媒体。
【請求項２０】
請求項１９に記載の機械的読取可能媒体であって、前記指数周波数計算は、Ｚｎｅｗ＝α・Ｚｏｌｄ＋ｈ（ｔ）なる式により更新され、ここでのαは０から１の間（０＜α＜１）に入り、Ｚｏｌｄはオペレータにより最初に割り当てられ、ｈ（ｔ）は前記アダマール変換の各出力が前記所定時間期間において対応する範囲の値に入る回数を表す、機械的読取可能媒体。
【請求項２１】
請求項１９に記載の機械的読取可能媒体であって、前記所定の許容範囲は、シミュレーションにより得られる、機械的読取可能媒体。
【請求項２２】
請求項１９に記載の機械的読取可能媒体であって、前記プロセッサはさらに、前記指数周波数計算の出力が繰り返し前記所定許容範囲を超えた場合に当該発生乱数ビットの不規則性は不十分であると判定するよう動作可能である、機械的読取可能媒体。
【請求項２３】
請求項１９に記載の機械的読取可能媒体であって、前記プロセッサはさらに、前記指数周波数計算の出力が繰り返し前記所定許容範囲を超えた場合に当該発生乱数ビットの不規則性は不十分であることを報知するよう動作可能である、機械的読取可能媒体。
【請求項２４】
請求項１９に記載の機械的読取可能媒体であって、前記プロセッサはさらに、前記指数周波数計算の出力が所定回数よりも多く繰り返し前記所定許容範囲を超えた場合に新しいセットの乱数ビットを処理するよう動作可能である、機械的読取可能媒体。
【請求項２５】
請求項１９に記載の機械的読取可能媒体であって、前記指数周波数計算の出力が繰り返し前記所定許容範囲を超えた場合に後のアプリケーションに対し当該発生乱数ビットを拒否するよう動作可能である、機械的読取可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、乱数発生器の分野に関し、特に、乱数発生器により発生された乱数が十分不規則かどうかを評価することに関する。
【背景技術】
【０００２】
真にランダムな数列を実際のアプリケーションにおいて発生させるのは難しい。例えば、乱数発生器がある時間にわたり１及び０の列を発生する場合、乱数発生器のハードウェア部品には熱が発生するのが普通である。ある状況においては、１のビットを発生することは、０のビットを発生するよりも大きな電力を消費してしまう。１のビットの長い数列が生成される場合、乱数発生器の電子回路は熱くなる傾向がある。したがって、この回路は熱くなったときに１のビットを発生すると、当該回路は「ラッチアップ」することになる。その結果、この回路は殆どが１のビットで稀に０のビットを発生することになる。前述の偏った０／１周波数エラーは、乱数が安全性に厳しい用途に用いられる場合、破滅的結果を生むことになる。
【０００３】
したがって、不規則性の検査を行う場合、ハードウェアの変更及び部品故障双方の検出が必要である。これまでの不規則性検査は、発生した乱数の数列に対しカイ２乗テスト、デルタテストなどの広く統計的な検査によって行われている。しかし、このような検査は、多大な計算処理電力を必要とするので、実時間において行うのには非常に高価である。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、上述した問題を解消するものであり、発生した乱数が十分に不規則であることを確実にするためにオンライン不規則性検査をなす方法及び装置を提供することによって付加的効果を奏しようとするものである。
【課題を解決するための手段】
【０００５】
本発明の一態様によれば、乱数のストリームの不規則性を検査する方法が提供される。この方法は、・乱数２進ビットの連続的ストリームを供給するステップと、・所定ブロックの前記乱数２進ビットにアダマール変換計算を施すステップと、・前記アダマール変換計算の出力に指数周波数計算（Ｚ）を施し前記アダマール変換の出力が所定時間期間にわたり所定範囲の値に入る平均回数を計算し更新するステップと、・前記指数周波数計算（Ｚ）の出力を所定の許容範囲と比較することにより、当該発生乱数２進ビットが十分に不規則なものかどうかを判定するステップと、を含み、前記指数周波数計算（Ｚ）は、・前記所定範囲の値を有するアキュムレータのアレイを前記アダマール変換計算の出力に割り当てるステップと、・前記アダマール変換各々の出力が前記所定時間期間において対応する前記所定範囲の値に入る回数をカウントするステップと、により行われる。
【０００６】
本発明の他の態様によれば、乱数のストリームの不規則性を検査する方法が、  （ａ）乱数２進ビットの連続的ストリームを供給するステップと、（ｂ）所定ブロックの前記乱数２進ビットにアダマール変換計算を施すステップと、（ｃ）所定範囲の値を有するアキュムレータのアレイを前記アダマール変換計算の各出力に割り当て、前記アダマール変換計算の各出力がそれぞれのアキュムレータにおける前記所定範囲の値の１つに入る回数をカウントするステップと、（ｄ）前記アキュムレータのアレイの値に指数周波数計算（Ｚ）を施し前記アダマール変換計算の各出力が所定時間期間にわたり当該それぞれのアキュムレータにおける前記所定範囲の値の１つに入る平均回数を更新するステップと、（ｅ）前記指数周波計算（Ｚ）の出力を所定許容範囲と比較するステップと、を含む。
【０００７】
この実施例において、前記指数周波数計算（Ｚ）は、Ｚｎｅｗ＝α・Ｚｏｌｄ＋ｈ（ｔ）なる式により更新され、ここでのαは０から１の間（０＜α＜１）に入り、Ｚｏｌｄはオペレータにより最初に指定され、ｈ（ｔ）は前記アダマール変換の出力が当該所定時間期間において当該対応の前記所定範囲の値に入る回数を表すものとしている。また、前記所定許容範囲は、シミュレーションにより得られる。
【０００８】
本発明のまた別の態様によれば、前記指数周波数計算の出力が所定回数よりも多く前記所定許容範囲を繰り返し超えた場合に当該発生乱数ビットの不規則性は不十分であると推定する。このような場合において、新しいセットの乱数ビットが発生可能となり、或いは発生した乱数ビットを後のアプリケーションのために拒否することができる。
【０００９】
本発明のさらに他の態様によれば、不規則性を検査するシステムが提供される。このシステムは、・２進ビットを有する乱数列を発生する乱数発生器と、・指数周波数演算に基づいて当該発生乱数列が十分に不規則であるかどうかを検出する検出器と、・前記指数周波数演算の結果に基づいて後のアプリケーションのために前記発生乱数列の流れを制御するスイッチと、を有し、前記乱数２進ビットの所定ブロックにアダマール変換計算を施しその後に指数周波数計算（Ｚ）を施し所定時間期間にわたり前記アダマール変換計算の各出力が所定範囲の値の１つに入る平均回数を更新し、前記指数周波数計算出力のいずれかの出力が所定回数を超えて繰り返し所定許容範囲外にある場合に前記発生乱数列の不規則性が不十分であると判定する。この装置は、前記指数周波数計算の出力が繰り返し前記所定回数を超えて前記所定許容範囲外にあるときに前記発生乱数列の不規則性が不十分である旨の警報信号を伝送する手段、及び前記指数周波数計算の出力が繰り返し前記所定回数を超えて前記所定許容範囲外にあるときに新しいセットの乱数ビットを発生する手段をさらに有する。
【００１０】
またさらに別の態様は、本発明が特定の用途に対し求められるようなハードウェア、ソフトウェア又はハードウェアとソフトウェアとの組み合わせにより実現可能であることである。
【００１１】
さらに、本発明は、簡単で信頼性の高い廉価な実施により実現可能である。
【００１２】
これらの効果及びその他の効果は、添付図面に関係づけて次の詳細な説明を読むことにより当業者に明らかなものとなる。
【発明を実施するための最良の形態】
【００１３】
以下の説明では、限定ではなく説明することを目的として、本発明の十分な理解をなすために特定のアーキテクチャ、インターフェース、技術などの具体的な事項を述べたものである。但し、当業者であれば、これら具体的事項から外れる他の実施例においても本発明が実施されうることが明らかとなる。簡単かつ明解にするため、周知の装置、回路及び方法の詳しい説明を省略し必要のない事項により本発明の説明を不明確にしないようにしている。
【００１４】
図１は、本発明の典型的実施例による乱数発生システム１０の簡単化されたブロック図を示している。システム１０は、乱数列を発生する乱数発生器（ＲＧ）１２と検出器１４とスイッチ１６とを含んでいる。ここで開示するＲＧ１２は、２進ビットの数列又は慣例的又は非慣例的な態様で所望の不規則性を含む他の形式に変換することのできる信号を生成するデバイスを意味する。検出器１４は、発生した乱数が所定の基準（後述される）により真に不規則（ランダム）な数列であるかどうかを検出する。スイッチ１６は、暗号システム、オーディオ若しくはビデオノイズ発生器、コンピュータプログラム又は他の装置及びプロセスへの入力を呈しうる。
【００１５】
動作において、乱数発生器１２により乱数が発生されると、検出器１４は、その発生した乱数が十分に不規則な数列を形成しているかどうかを検出する。明確に許容可能とされる範囲内において十分不規則なものであると判定されると、スイッチ１６は、当該発生乱数を回路、システム、プロセス、ギャンブル用途、シミュレーション、統計上のサンプリング、ディフィ−ヘルマン鍵交換（Diffie-Hellman key exchange）などの後続する適当なアプリケーションに送ることを可能とし、ＲＧ１２により供給された乱数を用いる。発生した乱数が所定の基準（後述する）により十分不規則なものではないとみなされると、スイッチ１６は、当該発生乱数が検出器１４によって不規則性が不十分であるとみなされたときにその発生乱数の流れを止めることが可能となる。或いは、当該発生乱数列が十分不規則ではないと判定されると、新しいセットの乱数が乱数発生器１２によって発生可能となる。
【００１６】
次に、図２及び図３を参照して発生乱数が十分に不規則なものかどうかを判定する点に関して詳しく説明する。
【００１７】
背景事項として、２のべき乗のためにｎ個の直交２進数列（各々が長さｎ）のセットを作ることができるのは当業界では周知である。実際、直交２進数列のセットは殆どの長さについて知られており、４及び２００未満の数の倍数である。直交符号に有用で比較的に発生もしやすい直交２進数列の１つの類型は、ウォルシュ（Walsh）関数と呼ばれる。ウォルシュ関数は、ウォルシュ関数行列から派生したものであり、アダマール行列（Hadamard
matrix）としても知られている。アダマール行列の行は、正弦波の±１の近似値とみなすことができるので、アダマール行列（時としてウォルシュ変換と称される）との乗算は、離散フーリエ変換の２進形態のものである。
【００１８】
図２を参照すると、ＲＧ１２により乱数のストリームが発生されると、その発生乱数は先ず２進の±１ビットに変換され、その後に所定サイズ（ｎ）のブロックに分割されベクトル（ｖ）の列を形成する。ｎビットの各ベクトルｖは、その行の当該ベクトルに対する相関を計算するために連続してサイズ（ｎ×ｎ）のアダマール行列と掛けられる。なお、当該ベクトルｖの長さとしてのｎ＝１６ビットのブロックは例証する目的で示したものであり、本発明は、どんな２の累乗ベクトル長（これはアダマール行列の行の長さでもある）も支持することができる点に留意すべきである。したがって、図中の単一ベクトルにおける１６ビットのグルーピングは、本発明の範囲に限定を課すべきものではない。
【００１９】
サイズを２ｎとする（正規化された）アダマール行列Ｈｎは、次のような帰納的な方法で規定される。
【数１】
2005523497.tif 000003
【００２０】
ここで、全部Ｈｎの第１行は全て１であり、他の全ての行は等しい数の＋１及び−１のエントリからなる。アダマール行列は直交しており、Ｈｎ×Ｈｎ′＝Ｈｎ′×Ｈｎ＝２ｎ・Ｉ２ｎである。この場合、Ｉ２ｎは、サイズを２ｎとする恒等行列を表す。ここで、行と列は対の形で直交している。かかる正規化されたアダマール行列の定義から、次のような帰納が得られる。
【数２】
2005523497.tif 000004
【００２１】
図２に示されるように、アダマール行列をｖの移項部と掛け、当該アダマール変換された数列ｗの値を得るようにしている。別言すれば、ｗ＝（ｈ１，ｈ２，・・・，ｈ２ｎ）T＝Ｈｎ×ｖである。ｖの全てのエントリが＋１であれば、ｈ１＝２ｎで他の全てはｈｉ＝０である。ｖの１つのエントリが−１に転じると、全てのｈｉは２だけ変化する。したがって、全てｈｉ≡２ｍｏｄ４か又は全てｈｉ≡０ｍｏｄ４であり、これはｖが奇数又は偶数個の−１エントリを有するかどうかによる。
【００２２】
アダマール変換を施した後は、その回数だけｗにおけるアダマール変換エントリの起こりうる値がアキュムレータのアレイにおいてカウントされ、ベクトルのｗにおける起こりうる値の各々がある時間にわたり現れる平均回数を得るようにする。用いるアキュムレータの数を減らすため、１より多い起こりうる値が単一のアキュムレータにカウントされるようにしてもよい。すなわちベクトルｗのエントリの起こりうる値の各々につきアキュムレータが設けられ、新しいブロックのビットが発生されアダマール変換に付されるたびに、アダマール変換出力が各アキュムレータの範囲内に入る回数を数えるようにしている。こうしてアキュムレータは、所定の期間中ベクトルのｗの起りうる値の各々が生じる平均回数を示すヒストグラムｈ（ｔ）を示すように機能する。
【００２３】
なお、本発明は実時間において乱数列を検査するために適用可能なので、アキュムレータは常に更新されなければならない。そのため、古い周波数値は減少又は無効のものとならなければならない。すなわち、乱数列の統計的品質を評価する検査は連続的に実行され、アキュムレータは周期的にクリアされてオーバフローを回避するようにしなければならない。本発明の技術に従って実施することのできるカウント方法は色々あるが、指数化平均は、以下に説明するように周波数カウント動作中に用いられるのが好ましい。
【００２４】
かかる指数化平均演算において、アキュムレータはｗの各変換値範囲の周波数又は平均発生回数を更新するので、ｎの乱数ビットが発生されるたびに、０から１の間に入る係数α（０＜α＜１）は、アキュムレータに対し乗算され、その後にアキュムレータにおいて現在の値ｈ（ｔ）に加えられる。すなわち、Ｚｎｅｗ＝α・Ｚｏｌｄ＋ｈ（ｔ）であり、この場合初期の指数化平均値Ｚｏｌｄは演算器又はオペレータにより最初に初期化される。有益な平均化作用を奏するために、αの値は１に近いものに選択され、α＝１−１／Ｎ（Ｎ＞＞１）とされる。この場合、log
α≒−１／Ｎであり、平均化された値の半分の期間はｋ≒Ｎ・log ２≒０．３０１０３・Ｎである。Ｎステップの後、最も古い平均値の重みは、（１−１／Ｎ）Ｎ≒１／ｅ≒０．３６７８７９となる。ここでｅは、自然対数の基（オイラー定数）であり、項Ｎは１ビットの「自然期間」となる。平均化された値の全てが１であれば、アキュムレータの値は１＋α＋α２＋・・・＝１／（１−α）＝Ｎであり、平均化された値の全てが０であれば、アキュムレータ値は０である。なお、当該指数化平均の期待値は個々の値の期待値の指数化平均である。これら平均化された値が均等に分布した２進ビットである場合、指数化平均の期待値は、１／２＋（１／２）α＋（１／２）α２＋・・・＝Ｎ／２である。
【００２５】
上述したように、アキュムレータが所定の０＜α＜１の率で減少すると、指数化平均はカウンタをクリアするように動作する。したがって、アキュムレータは、当該演算モードにおいて過大にならない。指数化平均が各アキュムレータに対して行われると、各指数化平均の値は、所定の許容範囲と比較される。いずれかのアキュムレータの値が指数化平均カウント動作中に所定の範囲を超えた場合は、本発明の実施例により発生乱数は十分不規則なものではないと推測される。ここで当該検査が繰り返し異常を呈した場合にユーザに知らせるよう閾値を設定してもよい。
【００２６】
厳密な許容限界は、理想的ヒストグラム分布を得ることができる既知の適切な乱数源による広範なシミュレーションから得られるデータに基づいて選択的に調整可能である。このような乱数列は商業的に入手可能であり、例えば“www.fourmilab.ch/hotbits”及び“lavarand.sgi.com”を含む色々なウェブソースからダウンロード可能である。したがって、当該検査に用いられる実際の範囲はオペレータにより選択的に設定され、発生乱数列が十分に不規則であるとみなされるかどうかについて種々の感度の中から選択をなすことができる。代替実施例では、異なる許容範囲を各アキュムレータに割り当てることができる。
【００２７】
図３は、本発明により乱数列の統計的品質を検査するための動作ステップを示すフローチャートである。四角い構成要素はコンピュータソフトウェアの命令を表し、菱形の構成要素は、四角のブロックにより表されたコンピュータソフトウェア命令の実行をなすコンピュータソフトウェア命令を表す。また、これら処理及び決定ブロックは、ディジタル信号処理回路又は用途特定の集積回路（ＡＳＩＣ）のような機能的に等価な回路によって行われるステップを表す。なお、ループ及び変数の初期化や仮の変数の使用などの多くのルーチンプログラムの要素は図示していない。なお、ここで別のことを示さない限り、説明したステップの特定のシーケンスは例証するためのものに過ぎず、本発明の精神から逸脱することなく変形することができることは当業者により明らかとなる。
【００２８】
図３に示されるように、ステップ１００において乱数発生器１２により乱数２進ビットの連続ストリームを発生すると、不規則性検査が開始される。同時にカウンタがリセットされる。ステップ１２０において、発生乱数は１セットの符号付きビットのベクトルに分割され、アダマール変換係数ベクトルｗを得るようアダマール行列に乗算される。その後、予め初期化されたアキュムレータのアレイはヒストグラムベクトルｈ（ｔ）に掛けられて周波数検査を行い、ベクトルｗにおける各値範囲の周波数が計算されステップ１３０において平均ヒストグラムベクトルｗを発生する。その後、これらヒストグラムベクトルは、ステップ１４０において指数化平均演算を用いて各アキュムレータにおいて更新される。更新モードにおいて、前の指数周波数値の全てが係数α（０＜α＜１）で減ぜられ、古い周波数値が減少効果を呈することになる。指数化平均演算が行われた後は、ステップ１６０において、更新された周波数値が所定の許容範囲又はそれぞれの所定許容範囲と比較される。各アキュムレータＡにおける値のいずれかが所定の許容範囲外にあれば、ステップ２００において不規則でないパターンが検出されたものと判定され、カウンタが１だけ増加する。或いは、ステップ１８０においてカウンタがリセットされ、乱数処理のステップ１００に戻る。ステップ２２０では、カウンタの値が閾値より大なる場合にステップ２４０において当該発生乱数が十分に不規則ではない旨の通知が送られる。これに代えて、スイッチ１６が非アクティブ化されて後続のアプリケーションのために乱数の流れを止めるようにすることができる。そして、発生した乱数は破棄され、新しい乱数を発生する処理全体を開始することができる。カウンタの値がステップ２２０において閾値を超えないと、乱数を発生する処理は繰り返される。
【００２９】
上述した各種ステップは、アプリケーションプログラム内に組み込まれる機能にそれらをプログラムすることによって実施することができ、当業界の通常のスキルのプログラマであれば、Ｃやビジュアルベーシック、Ｊａｖａ、Ｐｅｒｌ、Ｃ＋＋などの言語による慣例的プログラム作成技術を用いて実現することができる。典型的実施例においては、図４において説明した方法は次のように（Ｃのプログラム言語を用いて）構築することができる。簡明とするために、浮動小数点演算を用いてこの検査を実現している。
【００３０】
【表１】
2005523497.tif 000005
2005523497.tif 000006
【００３１】
以上、本発明の好適実施例を図示し説明してきたが、本発明の真の範囲から逸脱することなく様々な変更や改変をなすことができさらにはその各要素に等価なものに代替することができることは当業者には理解されるところとなる。また、当該中心的範囲を逸脱することなく多くの改変例を特定の状況や本発明の教示内容に適合させることも可能である。したがって、本発明は、本発明を実施するために熟慮されたベストモードとして開示された特定の実施例に限定をすべきものではなく、本発明は添付の請求項の範囲に入る全ての実施例を含むものであることを意図されている。
【図面の簡単な説明】
【００３２】
【図１】本発明の一実施例による乱数発生モジュールの簡単化されたブロック図。
【図２】本発明の実施例により乱数の数列に対しどのようにしてアダマール変換がなされるかを示す図。
【図３】本発明の実施例により発生乱数の統計情報を検査する動作ステップを示すフローチャート。
【図１】
2005523497.tif 000007
【図２】
2005523497.tif 000008
【図３】
2005523497.tif 000009
【国際調査報告】
2005523497.tif 000010
2005523497.tif 000011
2005523497.tif 000012
2005523497.tif 000013
2005523497.tif 000014