説明

乱数発生器

乱数を発生させるためのシステムを説明する。システムは、複数の情報源及び情報源の各々に結合された1つ又はそれよりも多くのサンプリングデバイスを含むことができる。各情報源は、いずれの他の情報源の特性とも異なることができる特性を有することができる。サンプリングデバイスは、何らかのサンプリング間隔で情報源をサンプリングすることができる。サンプル値は、このサンプリング間隔で情報源の各々からそれに結合されたサンプリングデバイスによって取り込むことができる。実質的な乱数を表す出力は、このサンプリング間隔で取り込まれたサンプル値から導出することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、一般的に、乱数を発生させるための全体的にシステムと呼ぶシステム及び方法に関し、より具体的にではあるが排他的にではなく、ゲート遅延、応答時間、又は相対位相のような複数の実イベントから乱数を導出することに関する。
【背景技術】
【0002】
乱数発生は、暗号システム、電子ゲームデバイス、スマートカード認証デバイス、及び音声/映像スクランブルデバイスのような様々な技術に対して利用されている。暗号システムでは、データ暗号化規格(DES)のような対称鍵暗号は、ランダムに選択された暗号化鍵を必要とする。「Rivest Shamir Adelman(RSA)」、Diffie−Hellman、及びデジタル署名アルゴリズム(DSA)のような公開鍵アルゴリズムは、ランダムに発生させた鍵対を必要とする。更に、セキュアソケットレイヤ(SSL)及び他の暗号プロトコルは、攻撃を阻むために認証処理においてランダムチャレンジを使用する。
【0003】
広く普及した乱数の使用に起因して、乱数発生器は、乱数発生器の設計が既知である場合でも乱数発生器によって発生させた乱数を予測することができないように十分にロバストでなければならない。典型的には、乱数発生器は、後で混合関数(例えば、SHA−1、MD5等)内に入力されるシードを発生させるエントロピー発生器を含む。しかし、多くの乱数発生器は、初期シードから出力を発生させる上で確定的過程、すなわち、結果が予測可能な処理を利用する。これは、乱数発生器の殆どのソフトウエア実施形態の場合に真であると考えられる。そのような乱数発生器(擬似乱数発生器とも呼ぶ)は、特に擬似乱数発生器のシードが既知であるか又は予測することができる場合には容易に損なわれることがある。
【0004】
真の乱数発生器は、抵抗器に関連付けられた熱又はショットノイズ、大気ノイズ、原子核崩壊、又は何らかのそのような予測不能な自然過程のような非確定的な発生源を使用して乱数を発生させる。一部の乱数発生器は、自然過程、すなわち、電子が抵抗器を通って流れる時に存在する熱又はショットノイズ、放射性崩壊などを使用する。しかし、これらの回路の乱数発生器は、少なくとも演算増幅器及び電圧制御発振器を含む場合があるアナログ回路を使用する。乱数発生器の設計におけるアナログ回路の使用は、乱数発生器の製造を困難にする。例えば、熱又はショットノイズを増幅するのに必要な高い電圧利得に起因して、演算増幅器の出力は、乱数発生器を作動不能にする永続的な飽和状態になる可能性があると考えられる。更に、これらの乱数発生器は、高価である場合があり、携帯型ではないと考えられる。
【0005】
他の乱数発生器は、乱数を発生させるランダムな周波数変動を有する高周波自励発振器によって駆動される線形フィードバックシフトレジスタ(LFSR)の出力をサンプリングする低周波クロック回路を使用する場合がある。しかし、線形フィードバックシフトレジスタ出力シーケンスは、本質的に周期的であり、これは、シフトレジスタの出力を真にランダムではなく単に擬似ランダムにする。LFSRの周期の持続時間は、LFSR内で有意に大きいステージ数を使用することによって増大させることができる。例えば、1メガヘルツのクロック周波数で作動する64ビット線形LFSRは、585,000年にわたって自らを繰り返さないであろう。しかし、LFSRは、確定的であるので、LFSRの現在の状態を把握すると、未来及び過去の状態を予測することができる。
【発明の概要】
【課題を解決するための手段】
【0006】
乱数を発生させるためのシステムを説明する。システムは、複数の情報源及び情報源の各々に結合された1つ又はそれよりも多くのサンプリングデバイスを含むことができる。各情報源は、いずれの他の情報源の特性とも異なる場合がある特性を有することができる。サンプリングデバイスは、何らかのサンプリング間隔で情報源をサンプリングすることができる。情報源の各々からそれに結合されたサンプリングデバイスによってこのサンプリング間隔でサンプル値を取り込むことができる。実質的な乱数を表す出力は、このサンプリング間隔で取り込まれたサンプル値から導出することができる。
【0007】
以下に続く図及び詳細説明の吟味により、当業者には、他のシステム、方法、特徴、及び利点が明らであるか又は明らかになるであろう。全てのそのような付加的なシステム、方法、特徴、及び利点は、本説明内に含まれ、実施形態の範囲にあり、以下の特許請求の範囲によって保護され、かつ以下の特許請求の範囲によって定められるように意図している。以下に本説明に関連して更に別の態様及び利点を解説する。
【0008】
以下の図面及び説明を参照することにより、システム及び/又は方法をより明快に理解することができるであろう。以下の図面を参照して非限定的かつ非網羅的な説明を行う。図内の構成要素は必ずしも正確な縮尺のものではなく、むしろ原理を示すことに重点を置いている。図では、別途指定しない限り、異なる図を通して類似の参照番号は類似の部分を指すことができる。
【図面の簡単な説明】
【0009】
【図1】乱数発生器のブロック図である。
【図2】図1の乱数発生器又は乱数を発生させるための他のシステムに対して使用することができるビット源のブロック図である。
【図3】図1の乱数発生器又は乱数を発生させるための他のシステムの機能を検証するのに使用することができる作動検証システムのブロック図である。
【図4】複数のサンプリング信号発生器を有する図1の乱数発生器又は乱数を発生させるための他のシステムの作動を示すブロック図である。
【図5】1つのサンプリング発振器を有する図1の乱数発生器又は乱数を発生させるための他のシステムを示すブロック図である。
【図6】図2のビット源又は乱数を発生させるための他のシステムの作動を示すブロック図である。
【図7】図1の乱数発生器の実施を示すブロック図である。
【図8】図2のビット源の実施を示すブロック図である。
【図9】図8のビット源実施の例示的な作動を示すタイミング図である。
【図10】図1の乱数発生器の実質的なランダム性を明らかにする試験結果値の表である。
【発明を実施するための形態】
【0010】
開示する実施形態では、発振器内の要素のゲート遅延、フリップフロップ応答時間、クロックの相対位相、又は測定することができるほぼあらゆる実イベントのような複数の実イベントから実質的な乱数を導出するための乱数発生器を呈示する。これらの実イベントは、サンプリング間隔で測定することができる。実イベントは量子化することができるので、正確に表されない場合がある。一態様では、本発明は、各実イベントの測定における誤差を増幅することができる。誤差ベクトルはランダムであるので、各サンプリング間隔でエントロピー源が取り込まれ、このエントロピー源から乱数を導出することができる。
【0011】
一実施形態では、乱数発生器は、2つ又はそれよりも多くの非確定的情報源と、情報源に結合された1つ又はそれよりも多くのサンプリングデバイスとを含むことができる。情報源は、互いに独立して作動させることができる。各情報源は、いずれの2つの情報源も実質的に類似の情報を収集又は供給しないように、各情報源によって収集又は供給される情報に影響を及ぼすことができる固有の特性を有することができる。例えば、この特性は、情報源が情報を収集又は供給する周波数、情報源が情報を収集又は供給する位相、情報源が情報を収集又は供給する時間、情報源が情報を収集又は供給する場所、情報を収集又は供給するのに情報源によって使用される方法、又は情報を収集又は供給するのに情報源によって使用される同じ測定の態様とすることができる。1つ又はそれよりも多くのサンプリングデバイスは、いくつかのサンプリング間隔で情報源をサンプリングすることができる。情報源は、値をサンプリングデバイスに出力することができ、この値から、上述のサンプリング間隔でサンプル値を取り込むことができる。サンプリング間隔の各々で取り込まれたサンプル値に基づいて、実質的な乱数を表す出力を判断することができる。
【0012】
別の実施形態では、乱数発生器は、廉価で携帯型の電子構成要素を用いて実質的な乱数を発生させることができる。乱数発生器は、製造変動性、使用時間、及び環境ファクタに起因する電子構成要素変動、電子構成要素の電圧レベルに対する感度、及び回路応答に影響を及ぼす可能性があるノイズのような構成要素内で発生する実イベントに影響を及ぼす可能性がある1つ又はそれよりも多くの構成要素態様を利用することにより、各サンプリング間隔でエントロピー源を取り込むことができる。これらのファクタの全ての正確な制御が不能であることより、第三者が乱数発生を制御するのを阻止することができる。乱数発生器は、これらの性質が実質的な乱数を導出するのに支配的なファクタであり、それによって回路の残りの部分が実質的な乱数の導出において有する場合があるあらゆる可能なバイアスに打ち勝つように、これらの性質の各々を増幅することができる。
【0013】
以下に続く図及び詳細説明の吟味により、当業者には、他のシステム、方法、特徴、及び利点が明らであるか又は明らかになるであろう。全てのそのような付加的なシステム、方法、特徴、及び利点は、本説明内に含まれ、実施形態の範囲にあり、以下の特許請求の範囲によって保護され、かつ以下の特許請求の範囲によって定められるように意図している。以下に本説明に関連して更に別の態様及び利点を解説する。
【0014】
ここで図面を参照すると、図1は、一実施形態による乱数発生器のブロック図を提供している。しかし、図示の構成要素の全てが必要であるというわけではなく、一部の実施は、付加的な構成要素を含むことができる。本明細書に公開する特許請求の範囲の精神又は範囲から逸脱することなく、配置及び構成要素の種類における変更を加えることができる。付加的な構成要素、異なる構成要素、又はより少ない構成要素を設けることができる。
【0015】
乱数発生器100は、排他的or(XOR)ゲート105、ビット源200A〜200B、D型フリップフロップ130A〜130B、サンプリング発振器125、及びサンプリング回路140を含むことができる。ビット源200A〜200Bは非確定的とすることができ、かつ互いにかつシステム内のいずれの他のビット源からも非同期で独立しているとすることができる。一例では、ビット源200A〜200Bは、情報を収集及び/又は供給するために発振器によって駆動されるフリップフロップを含むことができ、フリップフロップの作動に及び従って収集及び/又は供給される情報に摂動を発生させることができる擬似ランダム源を含むことができる。例示的なビット源を下記の図2でより詳細に説明する。
【0016】
サンプリング発振器125は、周期的又は非周期的な電子信号を生成する電子回路とすることができる。例示的な発振器は、高調波発振器、弛張発振器、又は周期的又は非周期的な信号を生成することができるほぼあらゆる電子デバイス又は機械デバイスを含むことができる。例えば、高調波発振器は、結晶発振器、RC発振器、又はほぼあらゆる高調波発振器のうちの1つ又はそれよりも多くとすることができ、それに対して弛張発振器は、リング発振器、遅延線発振器、マルチバイブレータ、又はほぼあらゆる弛張発振器のうちの1つ又はそれよりも多くとすることができる。D型フリップフロップ130A〜130Bは、2つの安定した状態を有し、それによって1ビットのメモリとして機能することができる電子回路とすることができる。代替的又は追加的に、D型フリップフロップ130A〜130Bは、SR型フリップフロップ、T型フリップフロップ、JK型フリップフロップ、又は2つの安定した状態を有するほぼあらゆる電子回路のような他の型のフリップフロップとすることができる。
【0017】
ビット源A(200A)は、D型フリップフロップA(130A)に結合することができ、ビット源B(200B)は、D型フリップフロップB(130B)に結合することができる。D型フリップフロップ130A〜130Bは、XORゲート105に結合することができ、XORゲート105は、サンプリング回路140に結合される。サンプリング発振器125は、D型フリップフロップ130A〜130B及びサンプリング回路140に結合され、そこに周期的又は非周期的なクロック信号を供給する。乱数発生器100の例示的な実施に対しては、下記の図7で説明する。
【0018】
ビット源A(200A)とビット源B(200B)は、ビット源200A〜200Bを互いに非同期で独立して作動させることができる1つ又はそれよりも多くの固有の特性を有することができる。これらの特性は、ビット源200A〜200Bに非確定的な出力を生成させることができる。例えば、ビット源200A〜200Bは、固有の周波数、位相、時間、又は場所において作動させることができる。ビット源200A〜200Bは、サンプリング発振器125の位相及び周波数とは異なる周波数及び位相で作動させることができる。サンプリング発振器125は、ビット源200A〜200Bの周波数の約4分の1で作動する低周波発振器とすることができる。代替的に、サンプリング発振器125は、ビット源200A〜200Bと位相同期又は周波数同期化されないが、クロックサイクルが少なくとも4で割算された高周波発振器とすることができる。サンプリング発振器125の各クロックサイクルをサンプリング間隔と呼ぶことができる。
【0019】
作動時には、ビット源200A〜200Bは、D型フリップフロップ130A〜130Bに入力を供給することができる。D型フリップフロップ130A〜130Bの出力(Q)は、ビット源200A〜200Bから受け取った入力(D)が1であった場合には、各クロックサイクルで0から1に反転することができる。代替的に、ビット源200A〜200Bから受け取った入力が0であった場合には、D型フリップフロップ130A〜130Bの出力は変動しないとすることができる。D型フリップフロップ130A〜130Bは、サンプリング発振器125の各クロックサイクルでXORゲート105に出力値又はサンプル値を供給することができる。XORゲート105は、サンプル値に対して排他的or演算を実行することができ、すなわち、サンプル値の両方がゼロ又は1であった場合にXORゲート105はゼロを出力し、他の場合にXORゲート105は1を出力する。XORゲートの出力は、サンプリング回路140に供給される。サンプリング回路140は、サンプリング発振器125の各クロックサイクルでXORゲート105の出力を供給することができる。ビット源200A〜200B及びサンプリング発振器125は、独立した非同期のクロック信号で作動するので、ビット源200A〜200Bは、サンプリング回路140によってD型フリップフロップ130A〜130Bからサンプリングされる各値に対してD型フリップフロップ130A〜130Bに複数の値を出力することができる。
【0020】
図2は、図1の乱数発生器又は乱数を発生させるための他のシステムに対して使用することができるビット源200Aのブロック図である。しかし、図示の構成要素の全てが必要であるというわけではなく、一部の実施は、図に示していない付加的な構成要素を含むことができる。本明細書に公開する特許請求の範囲の精神又は範囲から逸脱することなく、配置及び構成要素の種類における変更を加えることができる。付加的な構成要素、異なる構成要素、又はより少ない構成要素を設けることができる。
【0021】
ビット源200Aは、上述の図1の乱数発生器100におけるビット源A(200A)に対応することができ、及び/又は上述の図1の乱数発生器100におけるビット源B(200B)に対応することができる。ビット源200Aは、擬似ランダム源A(210A)、擬似ランダム源Aの発振器220A、ビット源Aの発振器225A、及びビット源AのT型フリップフロップ230Aを含むことができる。擬似ランダム源Aの発振器220Aは、周期的又は非周期的なものとすることができ、擬似ランダム源A(210A)に結合して、そこにクロック信号を供給することができる。ビット源Aの発振器225Aは、周期的又は非周期的なものとすることができ、ビット源AのT型フリップフロップ230Aに結合して、そこにクロック信号を供給することができる。発振器220A、225Aは、周期的又は非周期的な電子信号を生成する電子回路とすることができる。一部の例示的な発振器は、高調波発振器、弛張発振器、又は信号を生成することができるほぼあらゆる電子回路を含むことができる。ビット源AのT型フリップフロップ230Aは、トグルフリップフロップとすることができる。トグルフリップフロップは、有効化(ENA)入力がアサートされた場合に、各クロックサイクルと共に出力(Q)を0から1へ、又は1から0にトグルすることができる。トグルフリップフロップは、有効化入力がアサートされなかった場合に、各クロックサイクルで出力(Q)を保持することができる。ビット源AのT型フリップフロップ230AのT入力は、高に保持することができる。
【0022】
一例では、擬似ランダム源A(210A)は、「Fibonacci LFSR」、「Galois LFSR」、非バイナリ「Galois LFSR」、又はほぼあらゆるシフトレジスタのような1つ又はそれよりも多くの線形フィードバックシフトレジスタ(LFSR)を含むことができる。LFSRは、その入力ビットが、線形フィードバック関数又はフィードバック関数と呼ばれるその以前の状態の線形関数であるシフトレジスタとすることができる。言い換えれば、LFSRは、その入力ビットが、タップと呼ばれる全体のシフトレジスタ値のビットの少なくとも一部分の排他的or(XOR)によって駆動されるシフトレジスタである。LFSR内のフィードバックに対するタップの配列は、有限フィールド演算で2を法とした多項式として表すことができる。これは、多項式の係数が1又は0でなければならないことを意味する。この多項式をLFSRのフィードバック多項式、特性多項式、又はフィードバック関数と呼ぶ。例えば、タップが16番目、14番目、13番目、及び11番目のビットにある場合には、フィードバック関数は、x16+x14+x13+x11+1である。LFSRの初期値をシード値と呼ぶことができる。各LFSRの線形フィードバック関数は、LFSRが、実質的にランダムで非常に長い周期を有するビットのシーケンスを生成するように選ばなければならない。例えば、LFSRの周期は、少なくとも248とすることができる。ビット源200A〜200Bが1つ又はそれよりも多くのLFSRを含む例では、LFSRのフィードバック関数は、同じ場合があり、又は異なる場合がある。
【0023】
擬似ランダム源Aの発振器220Aとビット源Aの発振器225Aは、周波数と位相の両方において互いに独立したものとすることができ、従って、非同期のものとすることができる。擬似ランダム源Aの発振器220Aは、ビット源Aの発振器225Aよりも高速に作動させることができ、又はその逆も同様である。発振器220A、225Aの内在的な不安定性は、発振器220A、225Aが同期して作動することを阻止することができる。例えば、外部の無線周波数エネルギ、電源のノイズ及び変動、熱作用、使用時間などのようないくつかのファクタは、発振器220A、225Aに影響を及ぼす可能性がある。代替的又は追加的に、発振器220A、225Aに対するこれらのファクタの影響のあらゆる不変性を補償するために、付加的な独立擬似ランダム源をビット源A(200A)に追加することができる。代替的又は追加的に、擬似ランダム源A(210A)は、ビット源Aの発振器225Aを変調することができる。この例では、100パーセントの変調により、ビット源200Aは、開始及び停止することができる。しかし、100パーセントに満たない変調では、ビット源200Aは、周波数及び/又は位相において変動する場合がある。
【0024】
作動時には、擬似ランダム源A(210A)は、擬似ランダム源Aの発振器220Aの各クロックサイクルでビット源AのT型フリップフロップ230Aの有効化(ENA)に出力を供給するように構成することができ、それに対してビット源AのT型フリップフロップ230Aは、ビット源Aの発振器225Aの各クロックサイクルで値を出力するように構成することができる。擬似ランダム源A(210A)の出力が1であった場合には、ビット源AのT型フリップフロップ230Aは、ビット源Aの発振器225Aの各クロックサイクルで出力(Q)を0から1へ、又は1から0に反転させる。擬似ランダム源A(210A)の出力が0であった場合には、ビット源AのT型フリップフロップ230Aは、出力(Q)を直近の出力状態に保持する。従って、擬似ランダム源A(210A)は、ビット源AのT型フリップフロップ230がいつ状態をトグルしなくてはならないか、又はしてはならないかを判断することにより、ビット源AのT型フリップフロップA(230A)の作動を摂動させることができる。発振器220A、225A、擬似ランダム源A(210A)、及び擬似ランダム源AのT型フリップフロップA(230A)の出力を示す波形図に関して下記の図9において解説する。
【0025】
図3は、図1の乱数発生器又は乱数を発生させるための他のシステムの機能を検証するのに使用することができる作動検証システム300のブロック図である。しかし、図示の構成要素の全てが必要であるわけではなく、一部の実施は、図に示していない付加的な構成要素を含むことができる。本明細書に公開する特許請求の範囲の精神又は範囲から逸脱することなく、配置及び構成要素の種類における変更を加えることができる。付加的な構成要素、異なる構成要素、又はより少ない構成要素を設けることができる。
【0026】
システム300は、ビット源200A〜200B、D型フリップフロップ130A〜130B、サンプリング発振器125、及びサンプリング回路140のような図1の構成要素を含むことができる。更に、システム300は、T型フリップフロップ310、マルチプレクサ320、及び作動検証回路330を含むことができる。ビット源200A〜200Bは、D型フリップフロップ130A〜130Bに個々に結合することができる。D型フリップフロップ130A〜130Bの各々は、マルチプレクサ320に入力を供給することができる。マルチプレクサ320は、D型フリップフロップA(130A)から1つの入力を受け取り、D型フリップフロップB(130B)から1つの入力を受け取る2:1のマルチプレクサとすることができる。マルチプレクサ320は、T型フリップフロップ310に起因して、クロック速度の半分で駆動される。
【0027】
作動時には、マルチプレクサ320は、T型フリップフロップ310から受け取った入力(Sel)に基づいて作動検証回路330に出力を供給する。作動検証回路330は、D型フリップフロップ130A〜130Bの各々から一度に1つのビットを出力する。マルチプレクサ320は、サンプリング発振器125のクロック速度の半分で駆動されるので、作動検証回路330は、D型フリップフロップ130A〜130Bのうちのいずれからも全体のストリームを出力することができない。従って、第三者観察者は、D型フリップフロップ130A〜130Bの出力の組合せ値を判断することができないと考えられる。しかし、作動検証回路330によって出力される1つおきのビットが0又は1のいずれかであった場合には、第三者観察者は、ビット源200A〜200Bのうちの少なくとも一方が同じ値を出力していると判断することができる場合があり、従って、システムは、もはや実質的な乱数を供給することができない。
【0028】
図4は、複数のサンプリング信号発生器を有する図1の乱数発生器又は乱数を発生させるための他のシステムの作動を示すブロック図400である。しかし、図示の構成要素の全てが必要であるわけではなく、一部の実施は、図に示していない付加的な構成要素を含むことができる。本明細書に公開する特許請求の範囲の精神又は範囲から逸脱することなく、配置及び構成要素の種類における変更を加えることができる。付加的な構成要素、異なる構成要素、又はより少ない構成要素を設けることができる。
【0029】
ブロック図400は、情報源410A〜410B、サンプリング信号発生器420A〜420B、サンプリングデバイス430A〜430B、及び出力導出器440を含むことができる。情報源410A〜410Bの各々は、情報源410A〜410Bが実質的に類似の方式で情報を収集又は供給しないように、各情報源410A〜410Bによって収集又は供給される情報に影響を及ぼすことができる固有の特性を有することができる。固有の特性は、情報源410A〜410Bが互いに非同期で独立して作動することを保証することができる。例えば、特性は、情報源が情報を収集又は供給する周波数、情報源が情報を収集又は供給する位相、情報源が情報を収集又は供給する時間、場所源が情報を収集又は供給する場所、情報を収集又は供給するのに情報源によって使用される方法、又は情報を収集又は供給するのに情報源によって使用される同じ測定の態様とすることができる。サンプリング信号発生器420A〜420Bは、周期的又は非周期的なものとすることができ、互いに異なる周波数及び/又は位相で作動させることができる。
【0030】
情報源410A〜410Bは、サンプリングデバイス430A〜430Bに周期的又は非周期的な間隔で値を供給することができる。サンプリングデバイス430A〜430Bは、情報源410A〜410Bから取得したサンプル値をサンプリング信号発生器420A〜420Bによって判断された間隔で出力することができる。出力導出器440は、サンプリングデバイス430A〜430Bから受け取ったサンプル値から実質的な乱数を導出することができる。例えば、出力導出器440は、サンプル値に対して排他的or演算を実行することができる。一般的に、出力導出器は、実質的な乱数を導出するためにあらゆる演算をサンプル値に対して実行することができる。出力導出器は、2つの明確に異なるエントロピー源から導出されるので、導出された出力は、実質的な乱数又は真の乱数とすることができる。
【0031】
図5は、1つのサンプリング発振器を有する図1の乱数発生器又は乱数を発生させるための他のシステムを示すブロック図500である。しかし、図示の構成要素の全てが必要であるわけではなく、一部の実施は、図に示していない付加的な構成要素を含むことができる。本明細書に公開する特許請求の範囲の精神又は範囲から逸脱することなく、配置及び構成要素の種類における変更を加えることができる。付加的な構成要素、異なる構成要素、又はより少ない構成要素を設けることができる。
【0032】
ブロック図500は、情報源510A〜510B、データレジスタ530A〜530B、サンプリング発振器525、及び出力導出器540を含むことができる。情報源510A〜510Bの各々は、上述のように1つ又はそれよりも多くの固有の特性を有することができる。情報源510A〜510Bは、非確定的なものとすることができ、互いに非同期で独立して作動させることができる。情報源510A〜510Bは、サンプリング発振器525とは異なる周波数及び/又は位相で作動させることができる。サンプリング発振器525は、周期的又は非周期的なものとすることができる。作動時には、情報源510A〜510Bは、データレジスタ530A〜530Bに結果を供給することができる。結果は、固有の周波数及び/又は位相で供給することができる。データレジスタ530A〜530Bは、これらの結果に基づいて、サンプリング発振器525によって判断された間隔で出力導出器540にサンプル値を供給することができる。出力導出器は、サンプリング発振器525によって判断された間隔で実質的な乱数を導出するために、データレジスタ530A〜530Bによって供給されたサンプルに対して演算を実行することができる。
【0033】
図6は、図2のビット源又は乱数を発生させるための他のシステムの作動を示すブロック図600である。しかし、図示の構成要素の全てが必要であるわけではなく、一部の実施は、図に示していない付加的な構成要素を含むことができる。本明細書に公開する特許請求の範囲の精神又は範囲から逸脱することなく、配置及び構成要素の種類における変更を加えることができる。付加的な構成要素、異なる構成要素、又はより少ない構成要素を設けることができる。
【0034】
ブロック図600は、発振器1(620)、発振器2(625)、ランダム発生器610、及びトグルフリップフロップ630を含むことができる。発振器1(620及び発振器2(625)は、固有の周波数及び/又は位相で作動させることができ、周期的又は非周期的なものとすることができる。発振器1(620)は、次の値を発生させるためにランダム発生器610に信号を供給することができる。発振器1(620)から信号を受け取ると、ランダム発生器610は、トグルフリップフロップ630に状態変更信号を出力することができる。次に、トグルフリップフロップ630は、ランダム発生器610から信号を受け取ると、状態を変更することができる。トグルフリップフロップ630は、発振器2(625)から次の値を発生させる信号を受け取ると、自体の状態を出力することができる。従って、トグルフリップフロップ630は、連続的にその状態を変更することができるが、発振器2(625)から次の値を発生させる信号を受け取った時にのみ自体の状態を出力することができる。
【0035】
代替的又は追加的に、ランダム発生器610は、トグルフリップフロップ630に有効化信号を出力することができる。この例では、トグルフリップフロップ630は、ランダム発生器610からの入力が1であった場合に、発振器2(625の各サイクルで自体の状態をトグルすることができる。ランダム発生器610から受け取る入力が0であった場合には、トグルフリップフロップ630は、その状態を保持することができる。トグルフリップフロップ630は、発振器2(625から次の値を発生させる信号を受け取ると、自体の状態を出力することができる。
【0036】
図7は、図1の乱数発生器の実施を示すブロック図700である。しかし、図示の構成要素の全てが必要であるわけではなく、一部の実施は、図に示していない付加的な構成要素を含むことができる。本明細書に公開する特許請求の範囲の精神又は範囲から逸脱することなく、配置及び構成要素の種類における変更を加えることができる。付加的な構成要素、異なる構成要素、又はより少ない構成要素を設けることができる。
【0037】
ブロック図700は、入力信号704、706、ビット源720A〜720B、LFSR表710A〜710B、D型フリップフロップ730A〜730B、XORゲート705、D型フリップフロップ710、及び出力740を含むことができる。LFSR表710A〜710Bは、ビット源720A〜720Bによって利用されるLFSRの長さ及びタップを説明することができる。タップは、LFSRの次の状態に影響を及ぼすLFSR内ビット位置とすることができ、一方、LFSRの最も右のビットをLFSRの出力ビットと呼ぶことができる。LFSRは、出力及びタップに対して排他的or演算を実行することができ、その結果をLFSRの最も左のビット内に供給し戻すことができる。LFSRの最も左のビット内に供給されるビットを入力ビットと呼ぶ。例えば、ビット源A(720A)によって利用されるLFSRは、41という長さを有することができ、タップ3及び0を使用することができ、それに対してビット源B(720B)によって使用されるLFSRは、47という長さを有することができ、タップ5及び0を使用することができる。ビット源720A〜720Bは、非確定的なものとすることができ、互いに非同期で独立して作動させることができる。ビット源720A〜720Bの非確定的な出力に対して、下記の図8においてより詳細に解説する。
【0038】
作動時には、入力信号704は、ビット源720A〜720Bに実行信号を供給することができる。ビット源720A〜720Bは、D型フリップフロップ730A〜730Bに非同期的に値を供給することができる。入力信号706は、D型フリップフロップ730A〜730Bにクロック信号を供給することができる。D型フリップフロップ730A〜730Bは、入力信号706によって判断された間隔でXORゲートに値を出力することができる。XORゲート705は、フリップフロップ730A〜730Bから受け取った値に対して排他的or演算を実行することができ、その結果をD型フリップフロップ710に出力することができる。D型フリップフロップ710は、入力信号706によって判断された間隔で値を出力することができる。実質的な乱数を表すD型フリップフロップ710の出力は、出力740で検査することができる。
【0039】
図8は、図2のビット源の実施を示すブロック図800である。しかし、図示の構成要素の全てが必要であるわけではなく、一部の実施は、図に示していない付加的な構成要素を含むことができる。本明細書に公開する特許請求の範囲の精神又は範囲から逸脱することなく、配置及び構成要素の種類における変更を加えることができる。付加的な構成要素、異なる構成要素、又はより少ない構成要素を設けることができる。
【0040】
ブロック図800は、入力信号805、擬似ランダム源810、擬似ランダム源の発振器820、ビット源の発振器825、ビット源のトグルフリップフロップ830、NOTゲート827、及び出力842、844、846、848を含むことができる。擬似ランダム源810は、LFSR812及びXORゲート815を含むことができる。擬似ランダム源の発振器820は、NOTゲート827、D型フリップフロップ822、LCELL826又は論理セル826、及びANDゲート828を含むことができる。ビット源の発振器825は、LCELL826、NOTゲート827、及びANDゲート828を含むことができる。
【0041】
作動時には、入力信号805は、ビット源の発振器825及び擬似ランダム源の発振器820に信号を供給することができる。ビット源の発振器825は、擬似ランダム源の発振器820内へのD型フリップフロップ822の包含に起因して、擬似ランダム源の発振器820よりも4倍高速に作動させることができる。ビット源の発振器825は、ビット源のトグルフリップフロップ830に信号を送ることができる。ビット源のトグルフリップフロップ830は、擬似ランダム源810から有効化信号(ENA)を受け取るまで最初に1を出力することができる。擬似ランダム源の発振器820は、擬似ランダム源810に信号を供給することができる。受け取られた信号は、LFSR812に状態を変更させることができる。上述のように、LFSR812における状態変更は、その長さに基づくことができ、LFSR812のタップは、41及び38とすることができる。LFSR812は、LFSR812が実質的に長い期間にわたって状態を繰り返さないように、実質的に大きい状態数を有することができる。
【0042】
タップ41及び38の出力は、XORゲート815に供給される。XORゲート815は、タップに対して排他的or演算を実行し、その出力をLFSRにシフトイン入力として、更にビット源のトグルフリップフロップ830に有効化(ENA)入力として供給する。有効化(ENA)入力が1であった場合には、ビット源のトグルフリップフロップ830は、ビット源の発振器825の各クロックサイクルで自体の出力を1から0へ、又は0から1にトグルし始めることができる。例えば、ビット源のトグルフリップフロップ830は、有効化にされた時に、その出力を1秒当たり数百万回トグルすることができる。有効化(ENA)入力が0であった場合には、ビット源のトグルフリップフロップ830は、その現在の出力を0又は1に保持することができる。
【0043】
ビット源のトグルフリップフロップ830の有効化(ENA)入力は、出力846で検査することができ、それに対してビット源のトグルフリップフロップ830の出力は、出力844で検査することができる。ビット源の発振器825の出力は、出力842で検査することができ、それに対して擬似ランダム源の発振器820の出力は、出力848で検査することができる。出力842、844、846、848の例示的な値は、下記の図9に示している。
【0044】
別の実施形態では、LFSR812は、2つの別々のビット源の発振器825の一方を選択することができる。別々のビット源の発振器825は、異なる周波数及び/又は位相で作動させることができる。代替的又は追加的に、LFSR812は、ビット源の発振器825に対して2つの異なる速度の一方を選択することができ、又はそうでなければビット源の発振器825を変調することができる。
【0045】
図9は、図8のビット源実施の例示的な作動を示すタイミング図である。タイミング図の「ビット源発振器」波形は、図8のビット源の発振器825の出力842を表している。「LFSR発振器」波形は、図8の擬似ランダム源の発振器820の出力848を表している。「トグル有効化」波形は、ビット源のトグルフリップフロップ830の有効化(ENA)入力でもある擬似ランダム源810の出力846を表している。「ビット源」波形は、図8のビット源のトグルフリップフロップ830の出力844を表している。
【0046】
タイミング図は、ビット源の発振器825が擬似ランダム源の発振器820の速度の4倍で作動することを示している。また、タイミング図は、「トグル有効化」の値が、ビット源のトグルフリップフロップ830がいつトグルを開始又は停止し、各クロックサイクルで自体の状態を0から1へ、又は1から0にトグルするかを判断することも例示している。「トグル有効化」の値が1であった時には、ビット源のトグルフリップフロップ830は、各クロックサイクルで自体の状態を0から1へ、又は1から0に変更する。しかし、「トグル有効化」の値が0であった時には、ビット源のトグルフリップフロップ830は、その直近の出力値を保持する。試験は、入力信号805が低で得られ、次に、再度高で得られる度に、ビット源のトグルフリップフロップ830の出力844が実質的に異なることを示している。従って、トグルフリップフロップ830の出力844は非確定的であり、システム内のいずれの他のビット源のトグルフリップフロップとも非同期で独立したものとすることができる。更に、システムの位相が1ピコ秒のような実質的に小さい時間量だけ変更された場合には、「トグル有効化」及び「ビット源」の出力は、実質的に変動する場合がある。従って、システムは、高レベルの臨界性を有することができる。
【0047】
図10は、図1の乱数発生器の実質的なランダム性を明らかにする試験結果値の表である。図10の表は、乱数の品質を判断する試験結果を列挙している。図10の試験結果は、更に下記で説明するように乱数発生器100の実質的なランダム性を明らかにしている。
【0048】
乱数発生器100によって発生させた数の品質は、様々な方式で測定することができる。1つの方法は、乱数発生器100によって発生させた数列における情報密度又はエントロピーを計算することとすることができる。数列におけるエントロピーが高くなる程、数列内で先行する数に基づいて所定の数を予測することが困難になると考えられる。良好な乱数のシーケンスは、高レベルのエントロピーを有する場合があるが、高レベルのエントロピーは、ランダム性を保証するわけではない。
【0049】
図10のエントロピー値は、1文字当たりのビット数として表した乱数発生器100によって発生させた乱数の情報密度を表している。図10の誕生日間隔試験の結果は、乱数発生器100によって発生させたランダムビットのシーケンスに対して誕生日間隔試験を実施することによって判断される。多くの場合に、誕生日間隔試験は、乱数発生器100によって発生させたランダムビットシーケンスの大きい間隔上のランダム点を選択することによって実施される。実質的にランダムなシーケンスに対して、点の間の間隔は、漸近的にポアソン分布になるはずである。
【0050】
図10の行列階数及び6×8行列階数試験結果は、乱数発生器100によって発生させたランダムビットシーケンスに対して1つ又はそれよりも多くのランダムバイナリ行列階数試験を実施することによって判断される。多くの場合に、行列階数試験は、乱数シーケンスからある一定数のビットを選択して{0,1}上の行列を形成することによって実施される。次に、行列の階数が判断され、階数が計数される。ランダムバイナリ行列試験の着目点は、全体のビットシーケンスのうちで互いに素な部分行列の階数である。ランダムバイナリ行列階数試験の目的は、乱数発生器100によって発生させた元のビットシーケンスの固定長の部分列の中で線形依存性に対して検査を行うことである。
【0051】
図10の最小距離試験結果は、乱数発生器100によって発生させたランダムビットシーケンスに対して最小距離試験を実施することによって判断される。多くの場合に、最小距離試験は、10,000×10,000の正方形内に8,000個の点をランダムに置き、次に、対の間の最小距離を求めることによって実施される。距離の二乗は、実質的にランダムなビットシーケンスに対してある一定の平均を有して指数的に分布するはずである。
【0052】
図10のランダム球体試験結果は、乱数発生器100によって発生させたランダムビットシーケンスに対してランダム球体試験を実施することによって判断される。多くの場合に、ランダム球体試験は、1,000の辺から構成される立方体内で4,000個の点をランダムに選択することによって実施される。各点に対して球体がその中心に置かれ、その半径は、別の点までの最小距離である。最も小さい球体の体積は、数の実質的なランダムシーケンスに対してある一定の平均を有して指数的に分布するはずである。
【0053】
図10の絞り込み試験結果は、乱数発生器100によって発生させた乱数シーケンスに対して絞り込み試験を実施することによって判断される。多くの場合に、絞り込み試験は、1に達するまで231に[0,1)上のランダムな浮動小数点数を乗算することによって実施される。この乗算は100,000回繰り返される。1に達するのに必要とされる浮動小数点数の個数は、数の実質的なランダムシーケンスに対してある一定の分布に従うはずである。
【0054】
図10の重ね合わせ和試験結果は、乱数発生器100によって発生させた乱数シーケンスに対して重ね合わせ和試験を実施することによって判断される。多くの場合に、重ね合わせ和試験は、[0,1)上にランダムな浮動小数点数の長いシーケンスを発生させて、100個の連続する浮動小数点数を加算することによって実施される。得られる和は、数の実質的なランダムシーケンスに対して特徴的な平均及び全和を有する正規分布になるはずである。
【0055】
本明細書に説明する方法は、コンピュータシステムによって実行可能なソフトウエアプログラムによって実施することができる。更に、実施は、分散処理、構成要素/オブジェクト分散処理、及び並列処理を含むことができる。代替的又は追加的に、本明細書に説明する方法又は機能のうちの1つ又はそれよりも多くを実施するのに、仮想コンピュータシステム処理を構成することができる。
【0056】
本明細書に説明する図は、様々な実施形態の構造の一般的な理解をもたらすように意図したものである。これらの図は、本明細書に説明する構造又は方法を利用する装置、プロセッサ、及びシステムの要素及び特徴の全ての完全な説明として機能するように意図したものではない。当業者には、本発明の開示を考察した上で多くの他の実施形態が明らかであろう。本発明の開示の範囲から逸脱することなく構造的及び論理的な置換及び変更を行うことができるように、本発明の開示から他の実施形態を利用及び導出することができる。更に、これらの図は代表的なものであり、正確な縮尺のものではない場合がある。図内のある一定の寸法比率は、誇張している場合があり、一方、他の寸法比率は、最小にしている場合がある。従って、本発明の開示及び図は、限定的ではなく例示的なものと捉えるべきである。
【0057】
上記に開示した内容は例示的であって限定的ではないと考えるものとし、添付の特許請求の範囲は、本説明の真の精神及び範囲に収まる全てのそのような修正、改良、及び他の実施形態を網羅するように意図している。すなわち、この範囲は、法律によって許容される最大範囲に対して、以下の特許請求の範囲及びその均等物の最も広義に許容される解釈によって判断されるものとし、上述の詳細説明によって制限又は限定されてはならない。
【符号の説明】
【0058】
125 サンプリング発振器
130A D型フリップフロップA
140 サンプリング回路
200A ビット源A

【特許請求の範囲】
【請求項1】
乱数を発生させるためのシステムであって、
各々が特性を含む複数の情報源であって、各情報源の特性がいずれの他の情報源の特性とも異なる前記複数の情報源と、
前記複数の情報源の各々に結合され、1つ又はそれよりも多くのサンプリング間隔で該複数の情報源をサンプリングする1つ又はそれよりも多くのサンプリングデバイスと、
を含み、
サンプル値が、前記情報源の各々からそれに結合された前記1つ又はそれよりも多くのサンプリングデバイスによって前記1つ又はそれよりも多くのサンプリング間隔で取り込まれ、実質的な乱数を表す出力が、該1つ又はそれよりも多くのサンプリング間隔で取り込まれた該サンプル値に基づいて判断される、
ことを特徴とするシステム。
【請求項2】
前記複数の情報源の各々の前記特性は、該複数の情報源の各々が情報を収集又は供給する周波数を含むことを特徴とする請求項1に記載のシステム。
【請求項3】
前記複数の情報源の各々の前記特性は、該複数の情報源の各々が情報を収集又は供給する位相を含むことを特徴とする請求項1に記載のシステム。
【請求項4】
前記複数の情報源の各々の前記特性は、該複数の情報源の各々が情報を収集又は供給する時間を含むことを特徴とする請求項1に記載のシステム。
【請求項5】
前記複数の情報源の各々の前記特性は、該複数の情報源の各々が情報を収集又は供給する場所を含むことを特徴とする請求項1に記載のシステム。
【請求項6】
前記複数の情報源の各々の前記特性は、該複数の情報源の各々が情報を収集又は供給する電圧を含むことを特徴とする請求項1に記載のシステム。
【請求項7】
前記複数の情報源の各々の前記特性は、情報を収集又は供給するのに該複数の情報源の各々によって使用される方法を含むことを特徴とする請求項1に記載のシステム。
【請求項8】
前記複数の情報源の各々の前記特性は、情報を収集又は供給するのに該複数の情報源の各々によって使用される同じ測定の態様を含むことを特徴とする請求項1に記載のシステム。
【請求項9】
前記複数の情報源の少なくとも1つが、ゲート遅延、相対位相、又は応答時間のうちの少なくとも1つの測定に基づいて情報を収集又は供給することを特徴とする請求項1に記載のシステム。
【請求項10】
前記1つ又はそれよりも多くのサンプリングデバイスの少なくとも1つが、フリップフロップを含むことを特徴とする請求項1に記載のシステム。
【請求項11】
ステータス信号が、システムが正しく機能しているか否かを判断するために出力されることを特徴とする請求項1に記載のシステム。
【請求項12】
乱数を発生させるためのシステムであって、
各々が複数のサイクルを含む複数の発振器であって、該複数の発振器の各々が、該複数の発振器の別のものが作動する周波数又は位相とは異なる周波数又は位相で作動する前記複数の発振器と、
各々が前記複数の発振器のうちの1つに結合された複数の擬似ランダム発生器であって、該複数の擬似ランダム発生器の各々が、それに結合された該発振器の前記複数のサイクルの各々で変化する状態を含み、かつ該複数の擬似ランダム発生器の各々が、該状態の変化とは独立して変化する擬似ランダム出力を含む前記複数の擬似ランダム発生器と、
前記複数の発振器の1つに結合されたクロック信号を各々が含み、かつ前記複数の擬似ランダム発生器のうちの1つの前記擬似ランダム出力に結合された有効化信号を各々が含む複数の第1のフリップフロップであって、該複数のフリップフロップの各々の状態が、それに結合された該発振器の前記複数のサイクルの各々で、該複数の第1のフリップフロップの各々の該有効化信号がアサートされた場合に変化し、かつ該複数のフリップフロップの各々の該状態が、それに結合された該発振器の該複数のサイクルの各々で、該複数の第1のフリップフロップの各々の該有効化信号がアサート解除された場合に変化しない前記複数の第1のフリップフロップと、
複数の第2のフリップフロップであって、該複数の第2のフリップフロップの各々の入力が、前記複数の第1のフリップフロップの1つに結合され、かつ該複数の第2のフリップフロップの各々のクロック入力が、前記複数の発振器の1つに結合される前記複数の第2のフリップフロップと、
を含み、
第1の信号をそれに結合された前記発振器から受け取ると、前記複数の擬似ランダム発生器の各々が、それに結合された前記複数の第1のフリップフロップの各々の前記有効化信号に前記擬似ランダム出力を出力し、該複数の第1のフリップフロップの各々が、それに結合された前記複数の第2のフリップフロップの各々の前記入力に該複数の第1のフリップフロップの各々の前記状態を示す値を出力し、かつ第2の信号をそれに結合された該発振器から受け取ると、該複数の第2のフリップフロップの各々が、それに結合された該複数の第1のフリップフロップの各々によって出力された該値に基づいて第2の値を出力し、
更に、実質的にランダムな出力が、前記複数の第2のフリップフロップの各々によってそれに結合された前記複数の発振器のうちの発振器によって判断された時間に出力された前記第2の値に基づいて判断される、
ことを特徴とするシステム。
【請求項13】
前記複数の発振器の各々が、周期的発振器又は非周期的発振器を含むことを特徴とする請求項12に記載のシステム。
【請求項14】
前記複数の発振器の各々が、前記複数の擬似ランダム発生器の1つ、前記複数の第1のフリップフロップの1つ、又は前記複数の第2のフリップフロップの1つだけに結合されることを特徴とする請求項12に記載のシステム。
【請求項15】
前記複数の第1のフリップフロップは、複数のトグル型フリップフロップを含むことを特徴とする請求項12に記載のシステム。
【請求項16】
前記複数の第2のフリップフロップは、複数のD型フリップフロップを含むことを特徴とする請求項12に記載のシステム。
【請求項17】
前記複数の擬似乱数発生器の少なくとも1つが、それに結合された前記発振器を変調することを特徴とする請求項12に記載のシステム。
【請求項18】
乱数を発生させる方法であって、
複数の情報源を1つ又はそれよりも多くのサンプリング間隔でサンプリングして複数のサンプル値を取得する段階であって、各情報源が特性を含み、各情報源の特性がいずれの他の情報源の特性とも異なる前記取得する段階と、
前記1つ又はそれよりも多くのサンプリング間隔で得られた前記複数のサンプル値に基づいて実質的な乱数を表す出力を判断する段階と、
を含むことを特徴とする方法。
【請求項19】
各情報源の前記特性は、各情報源が情報を収集又は供給する周波数、各情報源が情報を収集又は供給する位相、各情報源が情報を収集又は供給する時間、各情報源が情報を収集又は供給する場所、各情報源が情報を収集又は供給する電圧、情報を収集又は供給するのに各情報源によって使用される方法、又は情報を収集又は供給するのに該情報源の各々によって使用される同じ測定の態様のうちの少なくとも1つを含むことを特徴とする請求項18に記載の方法。
【請求項20】
前記複数の情報源の少なくとも1つが、ゲート遅延、相対位相、又は応答時間のうちの少なくとも1つに基づいていることを特徴とする請求項18に記載の方法。
【請求項21】
乱数を発生させるためのシステムであって、
複数の情報源を1つ又はそれよりも多くのサンプリング間隔でサンプリングして複数のサンプル値を取得するための手段であって、各情報源が、特性を含み、各情報源の特性が、いずれの他の情報源の特性とも異なる前記取得するための手段と、
前記1つ又はそれよりも多くのサンプリング間隔で得られた前記複数のサンプル値に基づいて実質的な乱数を表す出力を判断するための手段と、
を含むことを特徴とするシステム。
【請求項22】
各情報源の前記特性は、各情報源が情報を収集又は供給する周波数、各情報源が情報を収集又は供給する位相、各情報源が情報を収集又は供給する時間、各情報源が情報を収集又は供給する場所、各情報源が情報を収集又は供給する電圧、情報を収集又は供給するのに各情報源によって使用される方法、又は情報を収集又は供給するのに該情報源の各々によって使用される同じ測定の態様のうちの少なくとも1つを含むことを特徴とする請求項21に記載のシステム。
【請求項23】
前記複数の情報源の少なくとも1つが、ゲート遅延、相対位相、又は応答時間のうちの少なくとも1つに基づいていることを特徴とする請求項21に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公表番号】特表2013−512466(P2013−512466A)
【公表日】平成25年4月11日(2013.4.11)
【国際特許分類】
【出願番号】特願2012−541117(P2012−541117)
【出願日】平成22年11月18日(2010.11.18)
【国際出願番号】PCT/US2010/057245
【国際公開番号】WO2011/102866
【国際公開日】平成23年8月25日(2011.8.25)
【出願人】(512136282)アクララ・アールエフ・システムズ・インコーポレイテッド (2)
【氏名又は名称原語表記】ACLARA RF SYSTEMS INC.
【Fターム(参考)】