(57)【要約】  乱数を発生させるためのシステムを説明する。システムは、複数の情報源及び情報源の各々に結合された１つ又はそれよりも多くのサンプリングデバイスを含むことができる。各情報源は、いずれの他の情報源の特性とも異なることができる特性を有することができる。サンプリングデバイスは、何らかのサンプリング間隔で情報源をサンプリングすることができる。サンプル値は、このサンプリング間隔で情報源の各々からそれに結合されたサンプリングデバイスによって取り込むことができる。実質的な乱数を表す出力は、このサンプリング間隔で取り込まれたサンプル値から導出することができる。【選択図】図１【特許請求の範囲】
【請求項１】
乱数を発生させるためのシステムであって、
各々が特性を含む複数の情報源であって、各情報源の特性がいずれの他の情報源の特性とも異なる前記複数の情報源と、
前記複数の情報源の各々に結合され、１つ又はそれよりも多くのサンプリング間隔で該複数の情報源をサンプリングする１つ又はそれよりも多くのサンプリングデバイスと、
を含み、
サンプル値が、前記情報源の各々からそれに結合された前記１つ又はそれよりも多くのサンプリングデバイスによって前記１つ又はそれよりも多くのサンプリング間隔で取り込まれ、実質的な乱数を表す出力が、該１つ又はそれよりも多くのサンプリング間隔で取り込まれた該サンプル値に基づいて判断される、
ことを特徴とするシステム。
【請求項２】
前記複数の情報源の各々の前記特性は、該複数の情報源の各々が情報を収集又は供給する周波数を含むことを特徴とする請求項１に記載のシステム。
【請求項３】
前記複数の情報源の各々の前記特性は、該複数の情報源の各々が情報を収集又は供給する位相を含むことを特徴とする請求項１に記載のシステム。
【請求項４】
前記複数の情報源の各々の前記特性は、該複数の情報源の各々が情報を収集又は供給する時間を含むことを特徴とする請求項１に記載のシステム。
【請求項５】
前記複数の情報源の各々の前記特性は、該複数の情報源の各々が情報を収集又は供給する場所を含むことを特徴とする請求項１に記載のシステム。
【請求項６】
前記複数の情報源の各々の前記特性は、該複数の情報源の各々が情報を収集又は供給する電圧を含むことを特徴とする請求項１に記載のシステム。
【請求項７】
前記複数の情報源の各々の前記特性は、情報を収集又は供給するのに該複数の情報源の各々によって使用される方法を含むことを特徴とする請求項１に記載のシステム。
【請求項８】
前記複数の情報源の各々の前記特性は、情報を収集又は供給するのに該複数の情報源の各々によって使用される同じ測定の態様を含むことを特徴とする請求項１に記載のシステム。
【請求項９】
前記複数の情報源の少なくとも１つが、ゲート遅延、相対位相、又は応答時間のうちの少なくとも１つの測定に基づいて情報を収集又は供給することを特徴とする請求項１に記載のシステム。
【請求項１０】
前記１つ又はそれよりも多くのサンプリングデバイスの少なくとも１つが、フリップフロップを含むことを特徴とする請求項１に記載のシステム。
【請求項１１】
ステータス信号が、システムが正しく機能しているか否かを判断するために出力されることを特徴とする請求項１に記載のシステム。
【請求項１２】
乱数を発生させるためのシステムであって、
各々が複数のサイクルを含む複数の発振器であって、該複数の発振器の各々が、該複数の発振器の別のものが作動する周波数又は位相とは異なる周波数又は位相で作動する前記複数の発振器と、
各々が前記複数の発振器のうちの１つに結合された複数の擬似ランダム発生器であって、該複数の擬似ランダム発生器の各々が、それに結合された該発振器の前記複数のサイクルの各々で変化する状態を含み、かつ該複数の擬似ランダム発生器の各々が、該状態の変化とは独立して変化する擬似ランダム出力を含む前記複数の擬似ランダム発生器と、
前記複数の発振器の１つに結合されたクロック信号を各々が含み、かつ前記複数の擬似ランダム発生器のうちの１つの前記擬似ランダム出力に結合された有効化信号を各々が含む複数の第１のフリップフロップであって、該複数のフリップフロップの各々の状態が、それに結合された該発振器の前記複数のサイクルの各々で、該複数の第１のフリップフロップの各々の該有効化信号がアサートされた場合に変化し、かつ該複数のフリップフロップの各々の該状態が、それに結合された該発振器の該複数のサイクルの各々で、該複数の第１のフリップフロップの各々の該有効化信号がアサート解除された場合に変化しない前記複数の第１のフリップフロップと、
複数の第２のフリップフロップであって、該複数の第２のフリップフロップの各々の入力が、前記複数の第１のフリップフロップの１つに結合され、かつ該複数の第２のフリップフロップの各々のクロック入力が、前記複数の発振器の１つに結合される前記複数の第２のフリップフロップと、
を含み、
第１の信号をそれに結合された前記発振器から受け取ると、前記複数の擬似ランダム発生器の各々が、それに結合された前記複数の第１のフリップフロップの各々の前記有効化信号に前記擬似ランダム出力を出力し、該複数の第１のフリップフロップの各々が、それに結合された前記複数の第２のフリップフロップの各々の前記入力に該複数の第１のフリップフロップの各々の前記状態を示す値を出力し、かつ第２の信号をそれに結合された該発振器から受け取ると、該複数の第２のフリップフロップの各々が、それに結合された該複数の第１のフリップフロップの各々によって出力された該値に基づいて第２の値を出力し、
更に、実質的にランダムな出力が、前記複数の第２のフリップフロップの各々によってそれに結合された前記複数の発振器のうちの発振器によって判断された時間に出力された前記第２の値に基づいて判断される、
ことを特徴とするシステム。
【請求項１３】
前記複数の発振器の各々が、周期的発振器又は非周期的発振器を含むことを特徴とする請求項１２に記載のシステム。
【請求項１４】
前記複数の発振器の各々が、前記複数の擬似ランダム発生器の１つ、前記複数の第１のフリップフロップの１つ、又は前記複数の第２のフリップフロップの１つだけに結合されることを特徴とする請求項１２に記載のシステム。
【請求項１５】
前記複数の第１のフリップフロップは、複数のトグル型フリップフロップを含むことを特徴とする請求項１２に記載のシステム。
【請求項１６】
前記複数の第２のフリップフロップは、複数のＤ型フリップフロップを含むことを特徴とする請求項１２に記載のシステム。
【請求項１７】
前記複数の擬似乱数発生器の少なくとも１つが、それに結合された前記発振器を変調することを特徴とする請求項１２に記載のシステム。
【請求項１８】
乱数を発生させる方法であって、
複数の情報源を１つ又はそれよりも多くのサンプリング間隔でサンプリングして複数のサンプル値を取得する段階であって、各情報源が特性を含み、各情報源の特性がいずれの他の情報源の特性とも異なる前記取得する段階と、
前記１つ又はそれよりも多くのサンプリング間隔で得られた前記複数のサンプル値に基づいて実質的な乱数を表す出力を判断する段階と、
を含むことを特徴とする方法。
【請求項１９】
各情報源の前記特性は、各情報源が情報を収集又は供給する周波数、各情報源が情報を収集又は供給する位相、各情報源が情報を収集又は供給する時間、各情報源が情報を収集又は供給する場所、各情報源が情報を収集又は供給する電圧、情報を収集又は供給するのに各情報源によって使用される方法、又は情報を収集又は供給するのに該情報源の各々によって使用される同じ測定の態様のうちの少なくとも１つを含むことを特徴とする請求項１８に記載の方法。
【請求項２０】
前記複数の情報源の少なくとも１つが、ゲート遅延、相対位相、又は応答時間のうちの少なくとも１つに基づいていることを特徴とする請求項１８に記載の方法。
【請求項２１】
乱数を発生させるためのシステムであって、
複数の情報源を１つ又はそれよりも多くのサンプリング間隔でサンプリングして複数のサンプル値を取得するための手段であって、各情報源が、特性を含み、各情報源の特性が、いずれの他の情報源の特性とも異なる前記取得するための手段と、
前記１つ又はそれよりも多くのサンプリング間隔で得られた前記複数のサンプル値に基づいて実質的な乱数を表す出力を判断するための手段と、
を含むことを特徴とするシステム。
【請求項２２】
各情報源の前記特性は、各情報源が情報を収集又は供給する周波数、各情報源が情報を収集又は供給する位相、各情報源が情報を収集又は供給する時間、各情報源が情報を収集又は供給する場所、各情報源が情報を収集又は供給する電圧、情報を収集又は供給するのに各情報源によって使用される方法、又は情報を収集又は供給するのに該情報源の各々によって使用される同じ測定の態様のうちの少なくとも１つを含むことを特徴とする請求項２１に記載のシステム。
【請求項２３】
前記複数の情報源の少なくとも１つが、ゲート遅延、相対位相、又は応答時間のうちの少なくとも１つに基づいていることを特徴とする請求項２１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、一般的に、乱数を発生させるための全体的にシステムと呼ぶシステム及び方法に関し、より具体的にではあるが排他的にではなく、ゲート遅延、応答時間、又は相対位相のような複数の実イベントから乱数を導出することに関する。
【背景技術】
【０００２】
乱数発生は、暗号システム、電子ゲームデバイス、スマートカード認証デバイス、及び音声／映像スクランブルデバイスのような様々な技術に対して利用されている。暗号システムでは、データ暗号化規格（ＤＥＳ）のような対称鍵暗号は、ランダムに選択された暗号化鍵を必要とする。「Ｒｉｖｅｓｔ  Ｓｈａｍｉｒ  Ａｄｅｌｍａｎ（ＲＳＡ）」、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ、及びデジタル署名アルゴリズム（ＤＳＡ）のような公開鍵アルゴリズムは、ランダムに発生させた鍵対を必要とする。更に、セキュアソケットレイヤ（ＳＳＬ）及び他の暗号プロトコルは、攻撃を阻むために認証処理においてランダムチャレンジを使用する。
【０００３】
広く普及した乱数の使用に起因して、乱数発生器は、乱数発生器の設計が既知である場合でも乱数発生器によって発生させた乱数を予測することができないように十分にロバストでなければならない。典型的には、乱数発生器は、後で混合関数（例えば、ＳＨＡ−１、ＭＤ５等）内に入力されるシードを発生させるエントロピー発生器を含む。しかし、多くの乱数発生器は、初期シードから出力を発生させる上で確定的過程、すなわち、結果が予測可能な処理を利用する。これは、乱数発生器の殆どのソフトウエア実施形態の場合に真であると考えられる。そのような乱数発生器（擬似乱数発生器とも呼ぶ）は、特に擬似乱数発生器のシードが既知であるか又は予測することができる場合には容易に損なわれることがある。
【０００４】
真の乱数発生器は、抵抗器に関連付けられた熱又はショットノイズ、大気ノイズ、原子核崩壊、又は何らかのそのような予測不能な自然過程のような非確定的な発生源を使用して乱数を発生させる。一部の乱数発生器は、自然過程、すなわち、電子が抵抗器を通って流れる時に存在する熱又はショットノイズ、放射性崩壊などを使用する。しかし、これらの回路の乱数発生器は、少なくとも演算増幅器及び電圧制御発振器を含む場合があるアナログ回路を使用する。乱数発生器の設計におけるアナログ回路の使用は、乱数発生器の製造を困難にする。例えば、熱又はショットノイズを増幅するのに必要な高い電圧利得に起因して、演算増幅器の出力は、乱数発生器を作動不能にする永続的な飽和状態になる可能性があると考えられる。更に、これらの乱数発生器は、高価である場合があり、携帯型ではないと考えられる。
【０００５】
他の乱数発生器は、乱数を発生させるランダムな周波数変動を有する高周波自励発振器によって駆動される線形フィードバックシフトレジスタ（ＬＦＳＲ）の出力をサンプリングする低周波クロック回路を使用する場合がある。しかし、線形フィードバックシフトレジスタ出力シーケンスは、本質的に周期的であり、これは、シフトレジスタの出力を真にランダムではなく単に擬似ランダムにする。ＬＦＳＲの周期の持続時間は、ＬＦＳＲ内で有意に大きいステージ数を使用することによって増大させることができる。例えば、１メガヘルツのクロック周波数で作動する６４ビット線形ＬＦＳＲは、５８５，０００年にわたって自らを繰り返さないであろう。しかし、ＬＦＳＲは、確定的であるので、ＬＦＳＲの現在の状態を把握すると、未来及び過去の状態を予測することができる。
【発明の概要】
【課題を解決するための手段】
【０００６】
乱数を発生させるためのシステムを説明する。システムは、複数の情報源及び情報源の各々に結合された１つ又はそれよりも多くのサンプリングデバイスを含むことができる。各情報源は、いずれの他の情報源の特性とも異なる場合がある特性を有することができる。サンプリングデバイスは、何らかのサンプリング間隔で情報源をサンプリングすることができる。情報源の各々からそれに結合されたサンプリングデバイスによってこのサンプリング間隔でサンプル値を取り込むことができる。実質的な乱数を表す出力は、このサンプリング間隔で取り込まれたサンプル値から導出することができる。
【０００７】
以下に続く図及び詳細説明の吟味により、当業者には、他のシステム、方法、特徴、及び利点が明らであるか又は明らかになるであろう。全てのそのような付加的なシステム、方法、特徴、及び利点は、本説明内に含まれ、実施形態の範囲にあり、以下の特許請求の範囲によって保護され、かつ以下の特許請求の範囲によって定められるように意図している。以下に本説明に関連して更に別の態様及び利点を解説する。
【０００８】
以下の図面及び説明を参照することにより、システム及び／又は方法をより明快に理解することができるであろう。以下の図面を参照して非限定的かつ非網羅的な説明を行う。図内の構成要素は必ずしも正確な縮尺のものではなく、むしろ原理を示すことに重点を置いている。図では、別途指定しない限り、異なる図を通して類似の参照番号は類似の部分を指すことができる。
【図面の簡単な説明】
【０００９】
【図１】乱数発生器のブロック図である。
【図２】図１の乱数発生器又は乱数を発生させるための他のシステムに対して使用することができるビット源のブロック図である。
【図３】図１の乱数発生器又は乱数を発生させるための他のシステムの機能を検証するのに使用することができる作動検証システムのブロック図である。
【図４】複数のサンプリング信号発生器を有する図１の乱数発生器又は乱数を発生させるための他のシステムの作動を示すブロック図である。
【図５】１つのサンプリング発振器を有する図１の乱数発生器又は乱数を発生させるための他のシステムを示すブロック図である。
【図６】図２のビット源又は乱数を発生させるための他のシステムの作動を示すブロック図である。
【図７】図１の乱数発生器の実施を示すブロック図である。
【図８】図２のビット源の実施を示すブロック図である。
【図９】図８のビット源実施の例示的な作動を示すタイミング図である。
【図１０】図１の乱数発生器の実質的なランダム性を明らかにする試験結果値の表である。
【発明を実施するための形態】
【００１０】
開示する実施形態では、発振器内の要素のゲート遅延、フリップフロップ応答時間、クロックの相対位相、又は測定することができるほぼあらゆる実イベントのような複数の実イベントから実質的な乱数を導出するための乱数発生器を呈示する。これらの実イベントは、サンプリング間隔で測定することができる。実イベントは量子化することができるので、正確に表されない場合がある。一態様では、本発明は、各実イベントの測定における誤差を増幅することができる。誤差ベクトルはランダムであるので、各サンプリング間隔でエントロピー源が取り込まれ、このエントロピー源から乱数を導出することができる。
【００１１】
一実施形態では、乱数発生器は、２つ又はそれよりも多くの非確定的情報源と、情報源に結合された１つ又はそれよりも多くのサンプリングデバイスとを含むことができる。情報源は、互いに独立して作動させることができる。各情報源は、いずれの２つの情報源も実質的に類似の情報を収集又は供給しないように、各情報源によって収集又は供給される情報に影響を及ぼすことができる固有の特性を有することができる。例えば、この特性は、情報源が情報を収集又は供給する周波数、情報源が情報を収集又は供給する位相、情報源が情報を収集又は供給する時間、情報源が情報を収集又は供給する場所、情報を収集又は供給するのに情報源によって使用される方法、又は情報を収集又は供給するのに情報源によって使用される同じ測定の態様とすることができる。１つ又はそれよりも多くのサンプリングデバイスは、いくつかのサンプリング間隔で情報源をサンプリングすることができる。情報源は、値をサンプリングデバイスに出力することができ、この値から、上述のサンプリング間隔でサンプル値を取り込むことができる。サンプリング間隔の各々で取り込まれたサンプル値に基づいて、実質的な乱数を表す出力を判断することができる。
【００１２】
別の実施形態では、乱数発生器は、廉価で携帯型の電子構成要素を用いて実質的な乱数を発生させることができる。乱数発生器は、製造変動性、使用時間、及び環境ファクタに起因する電子構成要素変動、電子構成要素の電圧レベルに対する感度、及び回路応答に影響を及ぼす可能性があるノイズのような構成要素内で発生する実イベントに影響を及ぼす可能性がある１つ又はそれよりも多くの構成要素態様を利用することにより、各サンプリング間隔でエントロピー源を取り込むことができる。これらのファクタの全ての正確な制御が不能であることより、第三者が乱数発生を制御するのを阻止することができる。乱数発生器は、これらの性質が実質的な乱数を導出するのに支配的なファクタであり、それによって回路の残りの部分が実質的な乱数の導出において有する場合があるあらゆる可能なバイアスに打ち勝つように、これらの性質の各々を増幅することができる。
【００１３】
以下に続く図及び詳細説明の吟味により、当業者には、他のシステム、方法、特徴、及び利点が明らであるか又は明らかになるであろう。全てのそのような付加的なシステム、方法、特徴、及び利点は、本説明内に含まれ、実施形態の範囲にあり、以下の特許請求の範囲によって保護され、かつ以下の特許請求の範囲によって定められるように意図している。以下に本説明に関連して更に別の態様及び利点を解説する。
【００１４】
ここで図面を参照すると、図１は、一実施形態による乱数発生器のブロック図を提供している。しかし、図示の構成要素の全てが必要であるというわけではなく、一部の実施は、付加的な構成要素を含むことができる。本明細書に公開する特許請求の範囲の精神又は範囲から逸脱することなく、配置及び構成要素の種類における変更を加えることができる。付加的な構成要素、異なる構成要素、又はより少ない構成要素を設けることができる。
【００１５】
乱数発生器１００は、排他的ｏｒ（ＸＯＲ）ゲート１０５、ビット源２００Ａ〜２００Ｂ、Ｄ型フリップフロップ１３０Ａ〜１３０Ｂ、サンプリング発振器１２５、及びサンプリング回路１４０を含むことができる。ビット源２００Ａ〜２００Ｂは非確定的とすることができ、かつ互いにかつシステム内のいずれの他のビット源からも非同期で独立しているとすることができる。一例では、ビット源２００Ａ〜２００Ｂは、情報を収集及び／又は供給するために発振器によって駆動されるフリップフロップを含むことができ、フリップフロップの作動に及び従って収集及び／又は供給される情報に摂動を発生させることができる擬似ランダム源を含むことができる。例示的なビット源を下記の図２でより詳細に説明する。
【００１６】
サンプリング発振器１２５は、周期的又は非周期的な電子信号を生成する電子回路とすることができる。例示的な発振器は、高調波発振器、弛張発振器、又は周期的又は非周期的な信号を生成することができるほぼあらゆる電子デバイス又は機械デバイスを含むことができる。例えば、高調波発振器は、結晶発振器、ＲＣ発振器、又はほぼあらゆる高調波発振器のうちの１つ又はそれよりも多くとすることができ、それに対して弛張発振器は、リング発振器、遅延線発振器、マルチバイブレータ、又はほぼあらゆる弛張発振器のうちの１つ又はそれよりも多くとすることができる。Ｄ型フリップフロップ１３０Ａ〜１３０Ｂは、２つの安定した状態を有し、それによって１ビットのメモリとして機能することができる電子回路とすることができる。代替的又は追加的に、Ｄ型フリップフロップ１３０Ａ〜１３０Ｂは、ＳＲ型フリップフロップ、Ｔ型フリップフロップ、ＪＫ型フリップフロップ、又は２つの安定した状態を有するほぼあらゆる電子回路のような他の型のフリップフロップとすることができる。
【００１７】
ビット源Ａ（２００Ａ）は、Ｄ型フリップフロップＡ（１３０Ａ）に結合することができ、ビット源Ｂ（２００Ｂ）は、Ｄ型フリップフロップＢ（１３０Ｂ）に結合することができる。Ｄ型フリップフロップ１３０Ａ〜１３０Ｂは、ＸＯＲゲート１０５に結合することができ、ＸＯＲゲート１０５は、サンプリング回路１４０に結合される。サンプリング発振器１２５は、Ｄ型フリップフロップ１３０Ａ〜１３０Ｂ及びサンプリング回路１４０に結合され、そこに周期的又は非周期的なクロック信号を供給する。乱数発生器１００の例示的な実施に対しては、下記の図７で説明する。
【００１８】
ビット源Ａ（２００Ａ）とビット源Ｂ（２００Ｂ）は、ビット源２００Ａ〜２００Ｂを互いに非同期で独立して作動させることができる１つ又はそれよりも多くの固有の特性を有することができる。これらの特性は、ビット源２００Ａ〜２００Ｂに非確定的な出力を生成させることができる。例えば、ビット源２００Ａ〜２００Ｂは、固有の周波数、位相、時間、又は場所において作動させることができる。ビット源２００Ａ〜２００Ｂは、サンプリング発振器１２５の位相及び周波数とは異なる周波数及び位相で作動させることができる。サンプリング発振器１２５は、ビット源２００Ａ〜２００Ｂの周波数の約４分の１で作動する低周波発振器とすることができる。代替的に、サンプリング発振器１２５は、ビット源２００Ａ〜２００Ｂと位相同期又は周波数同期化されないが、クロックサイクルが少なくとも４で割算された高周波発振器とすることができる。サンプリング発振器１２５の各クロックサイクルをサンプリング間隔と呼ぶことができる。
【００１９】
作動時には、ビット源２００Ａ〜２００Ｂは、Ｄ型フリップフロップ１３０Ａ〜１３０Ｂに入力を供給することができる。Ｄ型フリップフロップ１３０Ａ〜１３０Ｂの出力（Ｑ）は、ビット源２００Ａ〜２００Ｂから受け取った入力（Ｄ）が１であった場合には、各クロックサイクルで０から１に反転することができる。代替的に、ビット源２００Ａ〜２００Ｂから受け取った入力が０であった場合には、Ｄ型フリップフロップ１３０Ａ〜１３０Ｂの出力は変動しないとすることができる。Ｄ型フリップフロップ１３０Ａ〜１３０Ｂは、サンプリング発振器１２５の各クロックサイクルでＸＯＲゲート１０５に出力値又はサンプル値を供給することができる。ＸＯＲゲート１０５は、サンプル値に対して排他的ｏｒ演算を実行することができ、すなわち、サンプル値の両方がゼロ又は１であった場合にＸＯＲゲート１０５はゼロを出力し、他の場合にＸＯＲゲート１０５は１を出力する。ＸＯＲゲートの出力は、サンプリング回路１４０に供給される。サンプリング回路１４０は、サンプリング発振器１２５の各クロックサイクルでＸＯＲゲート１０５の出力を供給することができる。ビット源２００Ａ〜２００Ｂ及びサンプリング発振器１２５は、独立した非同期のクロック信号で作動するので、ビット源２００Ａ〜２００Ｂは、サンプリング回路１４０によってＤ型フリップフロップ１３０Ａ〜１３０Ｂからサンプリングされる各値に対してＤ型フリップフロップ１３０Ａ〜１３０Ｂに複数の値を出力することができる。
【００２０】
図２は、図１の乱数発生器又は乱数を発生させるための他のシステムに対して使用することができるビット源２００Ａのブロック図である。しかし、図示の構成要素の全てが必要であるというわけではなく、一部の実施は、図に示していない付加的な構成要素を含むことができる。本明細書に公開する特許請求の範囲の精神又は範囲から逸脱することなく、配置及び構成要素の種類における変更を加えることができる。付加的な構成要素、異なる構成要素、又はより少ない構成要素を設けることができる。
【００２１】
ビット源２００Ａは、上述の図１の乱数発生器１００におけるビット源Ａ（２００Ａ）に対応することができ、及び／又は上述の図１の乱数発生器１００におけるビット源Ｂ（２００Ｂ）に対応することができる。ビット源２００Ａは、擬似ランダム源Ａ（２１０Ａ）、擬似ランダム源Ａの発振器２２０Ａ、ビット源Ａの発振器２２５Ａ、及びビット源ＡのＴ型フリップフロップ２３０Ａを含むことができる。擬似ランダム源Ａの発振器２２０Ａは、周期的又は非周期的なものとすることができ、擬似ランダム源Ａ（２１０Ａ）に結合して、そこにクロック信号を供給することができる。ビット源Ａの発振器２２５Ａは、周期的又は非周期的なものとすることができ、ビット源ＡのＴ型フリップフロップ２３０Ａに結合して、そこにクロック信号を供給することができる。発振器２２０Ａ、２２５Ａは、周期的又は非周期的な電子信号を生成する電子回路とすることができる。一部の例示的な発振器は、高調波発振器、弛張発振器、又は信号を生成することができるほぼあらゆる電子回路を含むことができる。ビット源ＡのＴ型フリップフロップ２３０Ａは、トグルフリップフロップとすることができる。トグルフリップフロップは、有効化（ＥＮＡ）入力がアサートされた場合に、各クロックサイクルと共に出力（Ｑ）を０から１へ、又は１から０にトグルすることができる。トグルフリップフロップは、有効化入力がアサートされなかった場合に、各クロックサイクルで出力（Ｑ）を保持することができる。ビット源ＡのＴ型フリップフロップ２３０ＡのＴ入力は、高に保持することができる。
【００２２】
一例では、擬似ランダム源Ａ（２１０Ａ）は、「Ｆｉｂｏｎａｃｃｉ  ＬＦＳＲ」、「Ｇａｌｏｉｓ  ＬＦＳＲ」、非バイナリ「Ｇａｌｏｉｓ  ＬＦＳＲ」、又はほぼあらゆるシフトレジスタのような１つ又はそれよりも多くの線形フィードバックシフトレジスタ（ＬＦＳＲ）を含むことができる。ＬＦＳＲは、その入力ビットが、線形フィードバック関数又はフィードバック関数と呼ばれるその以前の状態の線形関数であるシフトレジスタとすることができる。言い換えれば、ＬＦＳＲは、その入力ビットが、タップと呼ばれる全体のシフトレジスタ値のビットの少なくとも一部分の排他的ｏｒ（ＸＯＲ）によって駆動されるシフトレジスタである。ＬＦＳＲ内のフィードバックに対するタップの配列は、有限フィールド演算で２を法とした多項式として表すことができる。これは、多項式の係数が１又は０でなければならないことを意味する。この多項式をＬＦＳＲのフィードバック多項式、特性多項式、又はフィードバック関数と呼ぶ。例えば、タップが１６番目、１４番目、１３番目、及び１１番目のビットにある場合には、フィードバック関数は、ｘ１６＋ｘ１４＋ｘ１３＋ｘ１１＋１である。ＬＦＳＲの初期値をシード値と呼ぶことができる。各ＬＦＳＲの線形フィードバック関数は、ＬＦＳＲが、実質的にランダムで非常に長い周期を有するビットのシーケンスを生成するように選ばなければならない。例えば、ＬＦＳＲの周期は、少なくとも２４８とすることができる。ビット源２００Ａ〜２００Ｂが１つ又はそれよりも多くのＬＦＳＲを含む例では、ＬＦＳＲのフィードバック関数は、同じ場合があり、又は異なる場合がある。
【００２３】
擬似ランダム源Ａの発振器２２０Ａとビット源Ａの発振器２２５Ａは、周波数と位相の両方において互いに独立したものとすることができ、従って、非同期のものとすることができる。擬似ランダム源Ａの発振器２２０Ａは、ビット源Ａの発振器２２５Ａよりも高速に作動させることができ、又はその逆も同様である。発振器２２０Ａ、２２５Ａの内在的な不安定性は、発振器２２０Ａ、２２５Ａが同期して作動することを阻止することができる。例えば、外部の無線周波数エネルギ、電源のノイズ及び変動、熱作用、使用時間などのようないくつかのファクタは、発振器２２０Ａ、２２５Ａに影響を及ぼす可能性がある。代替的又は追加的に、発振器２２０Ａ、２２５Ａに対するこれらのファクタの影響のあらゆる不変性を補償するために、付加的な独立擬似ランダム源をビット源Ａ（２００Ａ）に追加することができる。代替的又は追加的に、擬似ランダム源Ａ（２１０Ａ）は、ビット源Ａの発振器２２５Ａを変調することができる。この例では、１００パーセントの変調により、ビット源２００Ａは、開始及び停止することができる。しかし、１００パーセントに満たない変調では、ビット源２００Ａは、周波数及び／又は位相において変動する場合がある。
【００２４】
作動時には、擬似ランダム源Ａ（２１０Ａ）は、擬似ランダム源Ａの発振器２２０Ａの各クロックサイクルでビット源ＡのＴ型フリップフロップ２３０Ａの有効化（ＥＮＡ）に出力を供給するように構成することができ、それに対してビット源ＡのＴ型フリップフロップ２３０Ａは、ビット源Ａの発振器２２５Ａの各クロックサイクルで値を出力するように構成することができる。擬似ランダム源Ａ（２１０Ａ）の出力が１であった場合には、ビット源ＡのＴ型フリップフロップ２３０Ａは、ビット源Ａの発振器２２５Ａの各クロックサイクルで出力（Ｑ）を０から１へ、又は１から０に反転させる。擬似ランダム源Ａ（２１０Ａ）の出力が０であった場合には、ビット源ＡのＴ型フリップフロップ２３０Ａは、出力（Ｑ）を直近の出力状態に保持する。従って、擬似ランダム源Ａ（２１０Ａ）は、ビット源ＡのＴ型フリップフロップ２３０がいつ状態をトグルしなくてはならないか、又はしてはならないかを判断することにより、ビット源ＡのＴ型フリップフロップＡ（２３０Ａ）の作動を摂動させることができる。発振器２２０Ａ、２２５Ａ、擬似ランダム源Ａ（２１０Ａ）、及び擬似ランダム源ＡのＴ型フリップフロップＡ（２３０Ａ）の出力を示す波形図に関して下記の図９において解説する。
【００２５】
図３は、図１の乱数発生器又は乱数を発生させるための他のシステムの機能を検証するのに使用することができる作動検証システム３００のブロック図である。しかし、図示の構成要素の全てが必要であるわけではなく、一部の実施は、図に示していない付加的な構成要素を含むことができる。本明細書に公開する特許請求の範囲の精神又は範囲から逸脱することなく、配置及び構成要素の種類における変更を加えることができる。付加的な構成要素、異なる構成要素、又はより少ない構成要素を設けることができる。
【００２６】
システム３００は、ビット源２００Ａ〜２００Ｂ、Ｄ型フリップフロップ１３０Ａ〜１３０Ｂ、サンプリング発振器１２５、及びサンプリング回路１４０のような図１の構成要素を含むことができる。更に、システム３００は、Ｔ型フリップフロップ３１０、マルチプレクサ３２０、及び作動検証回路３３０を含むことができる。ビット源２００Ａ〜２００Ｂは、Ｄ型フリップフロップ１３０Ａ〜１３０Ｂに個々に結合することができる。Ｄ型フリップフロップ１３０Ａ〜１３０Ｂの各々は、マルチプレクサ３２０に入力を供給することができる。マルチプレクサ３２０は、Ｄ型フリップフロップＡ（１３０Ａ）から１つの入力を受け取り、Ｄ型フリップフロップＢ（１３０Ｂ）から１つの入力を受け取る２：１のマルチプレクサとすることができる。マルチプレクサ３２０は、Ｔ型フリップフロップ３１０に起因して、クロック速度の半分で駆動される。
【００２７】
作動時には、マルチプレクサ３２０は、Ｔ型フリップフロップ３１０から受け取った入力（Ｓｅｌ）に基づいて作動検証回路３３０に出力を供給する。作動検証回路３３０は、Ｄ型フリップフロップ１３０Ａ〜１３０Ｂの各々から一度に１つのビットを出力する。マルチプレクサ３２０は、サンプリング発振器１２５のクロック速度の半分で駆動されるので、作動検証回路３３０は、Ｄ型フリップフロップ１３０Ａ〜１３０Ｂのうちのいずれからも全体のストリームを出力することができない。従って、第三者観察者は、Ｄ型フリップフロップ１３０Ａ〜１３０Ｂの出力の組合せ値を判断することができないと考えられる。しかし、作動検証回路３３０によって出力される１つおきのビットが０又は１のいずれかであった場合には、第三者観察者は、ビット源２００Ａ〜２００Ｂのうちの少なくとも一方が同じ値を出力していると判断することができる場合があり、従って、システムは、もはや実質的な乱数を供給することができない。
【００２８】
図４は、複数のサンプリング信号発生器を有する図１の乱数発生器又は乱数を発生させるための他のシステムの作動を示すブロック図４００である。しかし、図示の構成要素の全てが必要であるわけではなく、一部の実施は、図に示していない付加的な構成要素を含むことができる。本明細書に公開する特許請求の範囲の精神又は範囲から逸脱することなく、配置及び構成要素の種類における変更を加えることができる。付加的な構成要素、異なる構成要素、又はより少ない構成要素を設けることができる。
【００２９】
ブロック図４００は、情報源４１０Ａ〜４１０Ｂ、サンプリング信号発生器４２０Ａ〜４２０Ｂ、サンプリングデバイス４３０Ａ〜４３０Ｂ、及び出力導出器４４０を含むことができる。情報源４１０Ａ〜４１０Ｂの各々は、情報源４１０Ａ〜４１０Ｂが実質的に類似の方式で情報を収集又は供給しないように、各情報源４１０Ａ〜４１０Ｂによって収集又は供給される情報に影響を及ぼすことができる固有の特性を有することができる。固有の特性は、情報源４１０Ａ〜４１０Ｂが互いに非同期で独立して作動することを保証することができる。例えば、特性は、情報源が情報を収集又は供給する周波数、情報源が情報を収集又は供給する位相、情報源が情報を収集又は供給する時間、場所源が情報を収集又は供給する場所、情報を収集又は供給するのに情報源によって使用される方法、又は情報を収集又は供給するのに情報源によって使用される同じ測定の態様とすることができる。サンプリング信号発生器４２０Ａ〜４２０Ｂは、周期的又は非周期的なものとすることができ、互いに異なる周波数及び／又は位相で作動させることができる。
【００３０】
情報源４１０Ａ〜４１０Ｂは、サンプリングデバイス４３０Ａ〜４３０Ｂに周期的又は非周期的な間隔で値を供給することができる。サンプリングデバイス４３０Ａ〜４３０Ｂは、情報源４１０Ａ〜４１０Ｂから取得したサンプル値をサンプリング信号発生器４２０Ａ〜４２０Ｂによって判断された間隔で出力することができる。出力導出器４４０は、サンプリングデバイス４３０Ａ〜４３０Ｂから受け取ったサンプル値から実質的な乱数を導出することができる。例えば、出力導出器４４０は、サンプル値に対して排他的ｏｒ演算を実行することができる。一般的に、出力導出器は、実質的な乱数を導出するためにあらゆる演算をサンプル値に対して実行することができる。出力導出器は、２つの明確に異なるエントロピー源から導出されるので、導出された出力は、実質的な乱数又は真の乱数とすることができる。
【００３１】
図５は、１つのサンプリング発振器を有する図１の乱数発生器又は乱数を発生させるための他のシステムを示すブロック図５００である。しかし、図示の構成要素の全てが必要であるわけではなく、一部の実施は、図に示していない付加的な構成要素を含むことができる。本明細書に公開する特許請求の範囲の精神又は範囲から逸脱することなく、配置及び構成要素の種類における変更を加えることができる。付加的な構成要素、異なる構成要素、又はより少ない構成要素を設けることができる。
【００３２】
ブロック図５００は、情報源５１０Ａ〜５１０Ｂ、データレジスタ５３０Ａ〜５３０Ｂ、サンプリング発振器５２５、及び出力導出器５４０を含むことができる。情報源５１０Ａ〜５１０Ｂの各々は、上述のように１つ又はそれよりも多くの固有の特性を有することができる。情報源５１０Ａ〜５１０Ｂは、非確定的なものとすることができ、互いに非同期で独立して作動させることができる。情報源５１０Ａ〜５１０Ｂは、サンプリング発振器５２５とは異なる周波数及び／又は位相で作動させることができる。サンプリング発振器５２５は、周期的又は非周期的なものとすることができる。作動時には、情報源５１０Ａ〜５１０Ｂは、データレジスタ５３０Ａ〜５３０Ｂに結果を供給することができる。結果は、固有の周波数及び／又は位相で供給することができる。データレジスタ５３０Ａ〜５３０Ｂは、これらの結果に基づいて、サンプリング発振器５２５によって判断された間隔で出力導出器５４０にサンプル値を供給することができる。出力導出器は、サンプリング発振器５２５によって判断された間隔で実質的な乱数を導出するために、データレジスタ５３０Ａ〜５３０Ｂによって供給されたサンプルに対して演算を実行することができる。
【００３３】
図６は、図２のビット源又は乱数を発生させるための他のシステムの作動を示すブロック図６００である。しかし、図示の構成要素の全てが必要であるわけではなく、一部の実施は、図に示していない付加的な構成要素を含むことができる。本明細書に公開する特許請求の範囲の精神又は範囲から逸脱することなく、配置及び構成要素の種類における変更を加えることができる。付加的な構成要素、異なる構成要素、又はより少ない構成要素を設けることができる。
【００３４】
ブロック図６００は、発振器１（６２０）、発振器２（６２５）、ランダム発生器６１０、及びトグルフリップフロップ６３０を含むことができる。発振器１（６２０及び発振器２（６２５）は、固有の周波数及び／又は位相で作動させることができ、周期的又は非周期的なものとすることができる。発振器１（６２０）は、次の値を発生させるためにランダム発生器６１０に信号を供給することができる。発振器１（６２０）から信号を受け取ると、ランダム発生器６１０は、トグルフリップフロップ６３０に状態変更信号を出力することができる。次に、トグルフリップフロップ６３０は、ランダム発生器６１０から信号を受け取ると、状態を変更することができる。トグルフリップフロップ６３０は、発振器２（６２５）から次の値を発生させる信号を受け取ると、自体の状態を出力することができる。従って、トグルフリップフロップ６３０は、連続的にその状態を変更することができるが、発振器２（６２５）から次の値を発生させる信号を受け取った時にのみ自体の状態を出力することができる。
【００３５】
代替的又は追加的に、ランダム発生器６１０は、トグルフリップフロップ６３０に有効化信号を出力することができる。この例では、トグルフリップフロップ６３０は、ランダム発生器６１０からの入力が１であった場合に、発振器２（６２５の各サイクルで自体の状態をトグルすることができる。ランダム発生器６１０から受け取る入力が０であった場合には、トグルフリップフロップ６３０は、その状態を保持することができる。トグルフリップフロップ６３０は、発振器２（６２５から次の値を発生させる信号を受け取ると、自体の状態を出力することができる。
【００３６】
図７は、図１の乱数発生器の実施を示すブロック図７００である。しかし、図示の構成要素の全てが必要であるわけではなく、一部の実施は、図に示していない付加的な構成要素を含むことができる。本明細書に公開する特許請求の範囲の精神又は範囲から逸脱することなく、配置及び構成要素の種類における変更を加えることができる。付加的な構成要素、異なる構成要素、又はより少ない構成要素を設けることができる。
【００３７】
ブロック図７００は、入力信号７０４、７０６、ビット源７２０Ａ〜７２０Ｂ、ＬＦＳＲ表７１０Ａ〜７１０Ｂ、Ｄ型フリップフロップ７３０Ａ〜７３０Ｂ、ＸＯＲゲート７０５、Ｄ型フリップフロップ７１０、及び出力７４０を含むことができる。ＬＦＳＲ表７１０Ａ〜７１０Ｂは、ビット源７２０Ａ〜７２０Ｂによって利用されるＬＦＳＲの長さ及びタップを説明することができる。タップは、ＬＦＳＲの次の状態に影響を及ぼすＬＦＳＲ内ビット位置とすることができ、一方、ＬＦＳＲの最も右のビットをＬＦＳＲの出力ビットと呼ぶことができる。ＬＦＳＲは、出力及びタップに対して排他的ｏｒ演算を実行することができ、その結果をＬＦＳＲの最も左のビット内に供給し戻すことができる。ＬＦＳＲの最も左のビット内に供給されるビットを入力ビットと呼ぶ。例えば、ビット源Ａ（７２０Ａ）によって利用されるＬＦＳＲは、４１という長さを有することができ、タップ３及び０を使用することができ、それに対してビット源Ｂ（７２０Ｂ）によって使用されるＬＦＳＲは、４７という長さを有することができ、タップ５及び０を使用することができる。ビット源７２０Ａ〜７２０Ｂは、非確定的なものとすることができ、互いに非同期で独立して作動させることができる。ビット源７２０Ａ〜７２０Ｂの非確定的な出力に対して、下記の図８においてより詳細に解説する。
【００３８】
作動時には、入力信号７０４は、ビット源７２０Ａ〜７２０Ｂに実行信号を供給することができる。ビット源７２０Ａ〜７２０Ｂは、Ｄ型フリップフロップ７３０Ａ〜７３０Ｂに非同期的に値を供給することができる。入力信号７０６は、Ｄ型フリップフロップ７３０Ａ〜７３０Ｂにクロック信号を供給することができる。Ｄ型フリップフロップ７３０Ａ〜７３０Ｂは、入力信号７０６によって判断された間隔でＸＯＲゲートに値を出力することができる。ＸＯＲゲート７０５は、フリップフロップ７３０Ａ〜７３０Ｂから受け取った値に対して排他的ｏｒ演算を実行することができ、その結果をＤ型フリップフロップ７１０に出力することができる。Ｄ型フリップフロップ７１０は、入力信号７０６によって判断された間隔で値を出力することができる。実質的な乱数を表すＤ型フリップフロップ７１０の出力は、出力７４０で検査することができる。
【００３９】
図８は、図２のビット源の実施を示すブロック図８００である。しかし、図示の構成要素の全てが必要であるわけではなく、一部の実施は、図に示していない付加的な構成要素を含むことができる。本明細書に公開する特許請求の範囲の精神又は範囲から逸脱することなく、配置及び構成要素の種類における変更を加えることができる。付加的な構成要素、異なる構成要素、又はより少ない構成要素を設けることができる。
【００４０】
ブロック図８００は、入力信号８０５、擬似ランダム源８１０、擬似ランダム源の発振器８２０、ビット源の発振器８２５、ビット源のトグルフリップフロップ８３０、ＮＯＴゲート８２７、及び出力８４２、８４４、８４６、８４８を含むことができる。擬似ランダム源８１０は、ＬＦＳＲ８１２及びＸＯＲゲート８１５を含むことができる。擬似ランダム源の発振器８２０は、ＮＯＴゲート８２７、Ｄ型フリップフロップ８２２、ＬＣＥＬＬ８２６又は論理セル８２６、及びＡＮＤゲート８２８を含むことができる。ビット源の発振器８２５は、ＬＣＥＬＬ８２６、ＮＯＴゲート８２７、及びＡＮＤゲート８２８を含むことができる。
【００４１】
作動時には、入力信号８０５は、ビット源の発振器８２５及び擬似ランダム源の発振器８２０に信号を供給することができる。ビット源の発振器８２５は、擬似ランダム源の発振器８２０内へのＤ型フリップフロップ８２２の包含に起因して、擬似ランダム源の発振器８２０よりも４倍高速に作動させることができる。ビット源の発振器８２５は、ビット源のトグルフリップフロップ８３０に信号を送ることができる。ビット源のトグルフリップフロップ８３０は、擬似ランダム源８１０から有効化信号（ＥＮＡ）を受け取るまで最初に１を出力することができる。擬似ランダム源の発振器８２０は、擬似ランダム源８１０に信号を供給することができる。受け取られた信号は、ＬＦＳＲ８１２に状態を変更させることができる。上述のように、ＬＦＳＲ８１２における状態変更は、その長さに基づくことができ、ＬＦＳＲ８１２のタップは、４１及び３８とすることができる。ＬＦＳＲ８１２は、ＬＦＳＲ８１２が実質的に長い期間にわたって状態を繰り返さないように、実質的に大きい状態数を有することができる。
【００４２】
タップ４１及び３８の出力は、ＸＯＲゲート８１５に供給される。ＸＯＲゲート８１５は、タップに対して排他的ｏｒ演算を実行し、その出力をＬＦＳＲにシフトイン入力として、更にビット源のトグルフリップフロップ８３０に有効化（ＥＮＡ）入力として供給する。有効化（ＥＮＡ）入力が１であった場合には、ビット源のトグルフリップフロップ８３０は、ビット源の発振器８２５の各クロックサイクルで自体の出力を１から０へ、又は０から１にトグルし始めることができる。例えば、ビット源のトグルフリップフロップ８３０は、有効化にされた時に、その出力を１秒当たり数百万回トグルすることができる。有効化（ＥＮＡ）入力が０であった場合には、ビット源のトグルフリップフロップ８３０は、その現在の出力を０又は１に保持することができる。
【００４３】
ビット源のトグルフリップフロップ８３０の有効化（ＥＮＡ）入力は、出力８４６で検査することができ、それに対してビット源のトグルフリップフロップ８３０の出力は、出力８４４で検査することができる。ビット源の発振器８２５の出力は、出力８４２で検査することができ、それに対して擬似ランダム源の発振器８２０の出力は、出力８４８で検査することができる。出力８４２、８４４、８４６、８４８の例示的な値は、下記の図９に示している。
【００４４】
別の実施形態では、ＬＦＳＲ８１２は、２つの別々のビット源の発振器８２５の一方を選択することができる。別々のビット源の発振器８２５は、異なる周波数及び／又は位相で作動させることができる。代替的又は追加的に、ＬＦＳＲ８１２は、ビット源の発振器８２５に対して２つの異なる速度の一方を選択することができ、又はそうでなければビット源の発振器８２５を変調することができる。
【００４５】
図９は、図８のビット源実施の例示的な作動を示すタイミング図である。タイミング図の「ビット源発振器」波形は、図８のビット源の発振器８２５の出力８４２を表している。「ＬＦＳＲ発振器」波形は、図８の擬似ランダム源の発振器８２０の出力８４８を表している。「トグル有効化」波形は、ビット源のトグルフリップフロップ８３０の有効化（ＥＮＡ）入力でもある擬似ランダム源８１０の出力８４６を表している。「ビット源」波形は、図８のビット源のトグルフリップフロップ８３０の出力８４４を表している。
【００４６】
タイミング図は、ビット源の発振器８２５が擬似ランダム源の発振器８２０の速度の４倍で作動することを示している。また、タイミング図は、「トグル有効化」の値が、ビット源のトグルフリップフロップ８３０がいつトグルを開始又は停止し、各クロックサイクルで自体の状態を０から１へ、又は１から０にトグルするかを判断することも例示している。「トグル有効化」の値が１であった時には、ビット源のトグルフリップフロップ８３０は、各クロックサイクルで自体の状態を０から１へ、又は１から０に変更する。しかし、「トグル有効化」の値が０であった時には、ビット源のトグルフリップフロップ８３０は、その直近の出力値を保持する。試験は、入力信号８０５が低で得られ、次に、再度高で得られる度に、ビット源のトグルフリップフロップ８３０の出力８４４が実質的に異なることを示している。従って、トグルフリップフロップ８３０の出力８４４は非確定的であり、システム内のいずれの他のビット源のトグルフリップフロップとも非同期で独立したものとすることができる。更に、システムの位相が１ピコ秒のような実質的に小さい時間量だけ変更された場合には、「トグル有効化」及び「ビット源」の出力は、実質的に変動する場合がある。従って、システムは、高レベルの臨界性を有することができる。
【００４７】
図１０は、図１の乱数発生器の実質的なランダム性を明らかにする試験結果値の表である。図１０の表は、乱数の品質を判断する試験結果を列挙している。図１０の試験結果は、更に下記で説明するように乱数発生器１００の実質的なランダム性を明らかにしている。
【００４８】
乱数発生器１００によって発生させた数の品質は、様々な方式で測定することができる。１つの方法は、乱数発生器１００によって発生させた数列における情報密度又はエントロピーを計算することとすることができる。数列におけるエントロピーが高くなる程、数列内で先行する数に基づいて所定の数を予測することが困難になると考えられる。良好な乱数のシーケンスは、高レベルのエントロピーを有する場合があるが、高レベルのエントロピーは、ランダム性を保証するわけではない。
【００４９】
図１０のエントロピー値は、１文字当たりのビット数として表した乱数発生器１００によって発生させた乱数の情報密度を表している。図１０の誕生日間隔試験の結果は、乱数発生器１００によって発生させたランダムビットのシーケンスに対して誕生日間隔試験を実施することによって判断される。多くの場合に、誕生日間隔試験は、乱数発生器１００によって発生させたランダムビットシーケンスの大きい間隔上のランダム点を選択することによって実施される。実質的にランダムなシーケンスに対して、点の間の間隔は、漸近的にポアソン分布になるはずである。
【００５０】
図１０の行列階数及び６×８行列階数試験結果は、乱数発生器１００によって発生させたランダムビットシーケンスに対して１つ又はそれよりも多くのランダムバイナリ行列階数試験を実施することによって判断される。多くの場合に、行列階数試験は、乱数シーケンスからある一定数のビットを選択して｛０，１｝上の行列を形成することによって実施される。次に、行列の階数が判断され、階数が計数される。ランダムバイナリ行列試験の着目点は、全体のビットシーケンスのうちで互いに素な部分行列の階数である。ランダムバイナリ行列階数試験の目的は、乱数発生器１００によって発生させた元のビットシーケンスの固定長の部分列の中で線形依存性に対して検査を行うことである。
【００５１】
図１０の最小距離試験結果は、乱数発生器１００によって発生させたランダムビットシーケンスに対して最小距離試験を実施することによって判断される。多くの場合に、最小距離試験は、１０，０００×１０，０００の正方形内に８，０００個の点をランダムに置き、次に、対の間の最小距離を求めることによって実施される。距離の二乗は、実質的にランダムなビットシーケンスに対してある一定の平均を有して指数的に分布するはずである。
【００５２】
図１０のランダム球体試験結果は、乱数発生器１００によって発生させたランダムビットシーケンスに対してランダム球体試験を実施することによって判断される。多くの場合に、ランダム球体試験は、１，０００の辺から構成される立方体内で４，０００個の点をランダムに選択することによって実施される。各点に対して球体がその中心に置かれ、その半径は、別の点までの最小距離である。最も小さい球体の体積は、数の実質的なランダムシーケンスに対してある一定の平均を有して指数的に分布するはずである。
【００５３】
図１０の絞り込み試験結果は、乱数発生器１００によって発生させた乱数シーケンスに対して絞り込み試験を実施することによって判断される。多くの場合に、絞り込み試験は、１に達するまで２31に［０，１）上のランダムな浮動小数点数を乗算することによって実施される。この乗算は１００，０００回繰り返される。１に達するのに必要とされる浮動小数点数の個数は、数の実質的なランダムシーケンスに対してある一定の分布に従うはずである。
【００５４】
図１０の重ね合わせ和試験結果は、乱数発生器１００によって発生させた乱数シーケンスに対して重ね合わせ和試験を実施することによって判断される。多くの場合に、重ね合わせ和試験は、［０，１）上にランダムな浮動小数点数の長いシーケンスを発生させて、１００個の連続する浮動小数点数を加算することによって実施される。得られる和は、数の実質的なランダムシーケンスに対して特徴的な平均及び全和を有する正規分布になるはずである。
【００５５】
本明細書に説明する方法は、コンピュータシステムによって実行可能なソフトウエアプログラムによって実施することができる。更に、実施は、分散処理、構成要素／オブジェクト分散処理、及び並列処理を含むことができる。代替的又は追加的に、本明細書に説明する方法又は機能のうちの１つ又はそれよりも多くを実施するのに、仮想コンピュータシステム処理を構成することができる。
【００５６】
本明細書に説明する図は、様々な実施形態の構造の一般的な理解をもたらすように意図したものである。これらの図は、本明細書に説明する構造又は方法を利用する装置、プロセッサ、及びシステムの要素及び特徴の全ての完全な説明として機能するように意図したものではない。当業者には、本発明の開示を考察した上で多くの他の実施形態が明らかであろう。本発明の開示の範囲から逸脱することなく構造的及び論理的な置換及び変更を行うことができるように、本発明の開示から他の実施形態を利用及び導出することができる。更に、これらの図は代表的なものであり、正確な縮尺のものではない場合がある。図内のある一定の寸法比率は、誇張している場合があり、一方、他の寸法比率は、最小にしている場合がある。従って、本発明の開示及び図は、限定的ではなく例示的なものと捉えるべきである。
【００５７】
上記に開示した内容は例示的であって限定的ではないと考えるものとし、添付の特許請求の範囲は、本説明の真の精神及び範囲に収まる全てのそのような修正、改良、及び他の実施形態を網羅するように意図している。すなわち、この範囲は、法律によって許容される最大範囲に対して、以下の特許請求の範囲及びその均等物の最も広義に許容される解釈によって判断されるものとし、上述の詳細説明によって制限又は限定されてはならない。
【符号の説明】
【００５８】
１２５  サンプリング発振器
１３０Ａ  Ｄ型フリップフロップＡ
１４０  サンプリング回路
２００Ａ  ビット源Ａ
【図１】
2013512466.tif 000002
【図２】
2013512466.tif 000003
【図３】
2013512466.tif 000004
【図４】
2013512466.tif 000005
【図５】
2013512466.tif 000006
【図６】
2013512466.tif 000007
【図７】
2013512466.tif 000008
【図８】
2013512466.tif 000009
【図９】
2013512466.tif 000010
【図１０】
2013512466.tif 000011