(57)【要約】  フリップフロップの準安定動作に基づくランダム数発生器にノイズが影響を及ぼすことを防止するための方法と装置が開示される。比較的大きなランダム数発生器回路の複数のフリップフロップは物理的に近接しているので、外部ノイズはそれらに等しく影響を及ぼす。従って、外部ノイズを使用するランダム数発生器の動作に影響を及ぼす能力は、ここでは、コアランダム要素と呼ばれる複数のフリップフロップを単一のランダム数発生器中に組み込むことで低減される。ランダム数発生器中のコアランダム要素の１つがノイズで影響されると、これらのコアランダム要素の全てがそのノイズに影響される。従って、コアランダム要素の全て（又は大部分）が同時にランダムビットを出すと、ランダム数発生器がノイズによって影響された可能性があり、出されたビットの全てが破棄される。複数のコアランダム要素が同時に１ビットを発生するときに、ランダムビットを発生しないことを確実にするための１つ又はそれ以上の機構が、ランダム数発生器に組み込まれる。
2005510923.tif 000002
【特許請求の範囲】
【請求項１】
準安定状態で複数のフリップフロップを動作させるステップと、
前記複数のフリップフロップのうちの１つのフリップフロップが前記準安定状態になった場合にはランダムビットを発生するステップと、
前記複数のフリップフロップのうちの１つより多くのフリップフロップが所定の時間間隔内で準安定状態になった場合にはランダムビットの発生を防止するステップとを備えたランダム数を発生する方法。
【請求項２】
前記複数のフリップフロップが並行して駆動されることを特徴とする請求項１に記載の方法。
【請求項３】
前記複数のフリップフロップのうちの少なくとも１つのフリップフロップは、前記複数のフリップフロップのうちの他の少なくとも１つのフリップフロップに接続されていることを特徴とする請求項１に記載の方法。
【請求項４】
前記防止ステップは１つ又はそれ以上の排他的論理和（ＸＯＲ）回路によって実行されることを特徴とする請求項１に記載の方法。
【請求項５】
前記発生ステップは、前記複数のフリップフロップのうちの１つのフリップフロップの出力が、与えられた入力と合致しない場合、ランダムビットを選択するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項６】
前記複数のフリップフロップの各々の出力を局所クロック源に同期させるステップを更に備えることを特徴とする請求項１に記載の方法。
【請求項７】
前記同期ステップを実行する同期回路は、前記フリップフロップよりも準安定になり難いことを特徴とする請求項６に記載の方法。
【請求項８】
ランダム数を生成するために複数の前記ランダムビットを収集するステップを更に備えることを特徴とする請求項１に記載の方法。
【請求項９】
第２のフリップフロップが第１のフリップフロップと同じ入力信号を有しないことを確実にするために、前記第２のフリップフロップに対する入力信号を変換するステップを更に備えることを特徴とする請求項１に記載の方法。
【請求項１０】
準安定状態で動作される複数のフリップフロップであって、前記複数のフリップフロップの内の１つのフリップフロップが前記準安定状態になった場合にランダムビットを発生する複数のフリップフロップと、
前記複数のフリップフロップのうちの１つより多くのフリップフロップが、所定の時間間隔内で準安定状態になった場合に、ランダムビットの発生を防止するための手段とを備えるランダム数発生器。
【請求項１１】
前記複数のフリップフロップが並行して駆動されることを特徴とする請求項１０に記載のランダム数発生器。
【請求項１２】
前記複数のフリップフロップのうちの少なくとも１つのフリップフロップは、前記複数のフリップフロップのうちの他の少なくとも１つのフリップフロップに接続されることを特徴とする請求項１０に記載のランダム数発生器。
【請求項１３】
前記ランダムビットの発生を防止する手段は、１又はそれ以上の排他的論理和（ＸＯＲ）回路であることを特徴とする請求項１０に記載のランダム数発生器。
【請求項１４】
前記複数のフリップフロップのうちの１つのフリップフロップの出力が、与えられた入力に合致しない場合に、前記複数のフリップフロップの前記準安定状態の検出が認められることを特徴とする請求項１０に記載のランダム数発生器。
【請求項１５】
前記複数のフリップフロップの各々の出力を局所クロック源に同期させる同期回路を更に備えることを特徴とする請求項１０に記載のランダム数発生器。
【請求項１６】
前記同期回路は、前記複数のフリップフロップよりも準安定に成り難いことを特徴とする請求項１５に記載のランダム数発生器。
【請求項１７】
複数の前記ランダムビットは、ランダム数を生成するために収集されることを特徴とする請求項１０に記載のランダム数発生器。
【請求項１８】
準安定状態で第１のフリップフロップを動作させるステップと、
前記第１のフリップフロップが前記準安定状態にあるときに、第２のフリップフロップの出力からランダムビットを発生するステップとを備えるランダム数を発生するための方法。
【請求項１９】
前記発生ステップが、少なくとも１つの排他的論理和（ＸＯＲ）回路によって起動されることを特徴とする請求項１８に記載の方法。
【請求項２０】
前記第２のフリップフロップの出力を局所クロック源と同期させるためのステップを更に備えることを特徴とする請求項請求項１８に記載の方法。
【請求項２１】
ランダム数を生成するために複数の前記ランダムビットを収集するステップを更に備えることを特徴とする請求項１８に記載の方法。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本発明は、“Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｇｅｎｅｒａｔｉｎｇ  Ｒａｎｄｏｍ  Ｎｕｍｂｅｒｓ  Ｕｓｉｎｇ  Ｆｌｉｐ−Ｆｌｏｐ  Ｍｅｔａ−Ｓｔａｂｉｌｉｔｙ（フリップフロップ準安定を使用してランダム数を発生するための方法及び装置）"と題する、２０００年３月６日出願の米国特許出願シリアル番号０９／５１９，５４９と、“Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｄｅｃｏｒｒｅｌａｔｉｎｇ  ａ  Ｒａｎｄｏｍ  Ｎｕｍｂｅｒ  Ｇｅｎｅｒａｔｏｒ  Ｕｓｉｎｇ  ａ  Ｐｓｅｕｄｏ−Ｒａｎｄｏｍ  Ｓｅｑｕｅｎｃｅ（擬似ランダムシーケンスを使用してランダム数発生器を相関解除するための方法及び装置）"と題する、２００１年７月２５日に出願の米国特許出願シリアル番号０９／９１２，６８５とに関連し、各出願は、本願発明の譲受人に譲渡され、且つ、ここでの参照によって、組み込まれる。
【技術分野】
【０００２】
本発明は、ランダム数発生器に関し、より詳細には、フリップフロップ準安定性を使用してランダム数を発生するための方法と装置に関する。
【背景技術】
【０００３】
ポーカー、ルーレット、及びスロットマシンのような、チャンスゲームを含む、多くのアプリケーション及び電子デバイスは、ランダム数を必要とする。特に、多くの暗号化アルゴリズムとプロトコルは、安全な電子通信等を実施するために、ランダム数の予測不能源に依存している。ランダム数発生器は、数の指定範囲において全ての可能な順列を発生すべきである。更に、このランダム数発生器は、偏りをもつべきでなく、あらゆる所与の数とあらゆる数の配列を他の数又は他の数の配列と同じ確率で発生すべきである。また、ランダム数発生器は、先の結果の収集の大きさに関係なく、予測できないランダム数を発生すべきである。このように、ランダム数は、完全に予測不能であり、外部の影響に不感であるべきである。
【０００４】
“Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｇｅｎｅｒａｔｉｎｇ  Ｒａｎｄｏｍ  Ｎｕｍｂｅｒｓ  Ｕｓｉｎｇ  Ｆｌｉｐ−Ｆｌｏｐ  Ｍｅｔａ−Ｓｔａｂｉｌｉｔｙ（フリップフロップ準安定を使用してランダム数を発生するための方法及び装置）"と題する、２０００年３月６日出願の米国特許出願シリアル番号０９／５１９，５４９と、“Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｄｅｃｏｒｒｅｌａｔｉｎｇ  ａ  Ｒａｎｄｏｍ  Ｎｕｍｂｅｒ  Ｇｅｎｅｒａｔｏｒ  Ｕｓｉｎｇ  ａ  Ｐｓｅｕｄｏ−Ｒａｎｄｏｍ  Ｓｅｑｕｅｎｃｅ（擬似ランダムシーケンスを使用してランダム数発生器を相関解除するための方法及び装置）"と題する、２００１年７月２５日に出願の米国特許出願シリアル番号０９／９１２，６８５は、フリップフロップの準安定動作を用いて、ランダム数を発生するための方法と装置を開示している。フリップフロップは、準安定動作を確実にするために、そのフリップフロップのセットアップ時間や保持時間（又はその両方）を故意に乱すような入力でクロックされる。エラーが発生する度に、１ビットが収集される。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
準安定性はランダムに発生するが、準安定性の期間と発生は、外部からのノイズによって影響され得ることが解った（一般的に、ランダム要素の動作は、半導体デバイスでみられる熱ノイズのような内部ノイズによって制御される）。従って、外部ノイズは、ランダム数発生器に影響を及ぼすように用いられ、それによって、発生した数のランダム性について妥協してしまうことがある。従って、外部ノイズに影響されない準安定性を用いてランダム数を発生するための方法と装置が必要とされている。
【課題を解決するための手段】
【０００６】
概して、フリップフロップの準安定動作に基づくランダム数発生器に外部ノイズが影響を及ぼすことを防止するための方法と装置が開示される。外部ノイズは、フリップフロップの準安定動作を用いるランダム数発生器の動作に影響を及ぼすアタッカーによって使用され得ることがわかった。本発明は、複数のランダム数発生器回路中の複数のフリップフロップが物理的に近接しているので、外部ノイズが、これらのフリップフロップに同じように影響を及すことを認識している。
【０００７】
従って、本発明の一態様によれば、外部ノイズを使用してランダム数発生器の動作に影響を及ぼす能力は、複数のフリップフロップを単一のランダム数発生器（ここでは、コアランダム要素と呼ばれる）に組み込むことによって低減される。より具体的には、ランダム数発生器中のコアランダム要素の１つがノイズによって影響を受ける場合、これらのコアランダム要素の全て（又はほとんど）がノイズによって影響を受けることを本発明は認識している。従って、コアランダム要素の全て（又はほとんど）が、同時に１ビットを発生すると、ランダム数発生器がノイズの影響を受けた可能性があり、発生されたこれらの１ビットは破棄される。従って、複数のコアランダム要素が同時に１ビットを発生するときにランダムビットを発生しないことを確実にするために１つ又はそれより多くの機構がランダム数発生器に組み込まれる。時として、両コアランダム要素が、単に偶然に、同時にランダムビットを発生するが、これらのビットを破棄することは、このシステムの全体の効率にとって無視できるほどの影響しか与えない。
【０００８】
本発明の更に完全な理解並びに本発明の更なる特徴と利点は、以下の詳細な説明と図面を参照することによって得られる。
【発明を実施するための最良の形態】
【０００９】
本発明は、外部ノイズが、比較的大きなランダム数発生器回路の複数のフリップフロップに同様に影響を及ぼし、この影響は、これらのフリップフロップが物理的に近接しているからであることを認識している。従って、本発明は、コアランダム要素の集合として実施される複数のフリップフロップを、幾つかのフリップフロップから成る各コアランダム要素４００に組み込むことによって、外部ノイズを使用するランダム数発生器の動作に影響を及ぼす能力を低減させる。このコアランダム要素は、図４とともに以下で更に検討される。
【００１０】
より具体的には、本発明は、コアランダム要素４００の内の１つがノイズによって影響を受ける場合、これらのコアランダム要素４００の全て（又は大部分）がそのノイズによって影響を受けることを認識している。従って、多数のコアランダム要素４００が同時に１ビットを発生する場合、例えば、排他的論理和ゲート（「ＸＯＲ」）やその発生されたビットを検出する他のゲートによって検出されるように、ランダム数発生器がノイズによって影響を受け、発生された（単数又は複数の）ビットが破棄される可能性がある。このように、本発明は、コアランダム要素４００の全て（又は大部分）が同時に１ビットを発生するときにランダムビットが生成されないことを確実にするために１又はそれ以上の装置を組み込む。
【００１１】
以下の検討は、次のように編成されている。第１に、多数の適切なコアランダム要素は、「準安定フリップフロップを用いたランダム数発生器」と題するセクションで検討される。その後、図４は、例えば、図１乃至図３に関連して検討されるランダム数発生器１００、２００に基づくコアランダム要素４００のより全般的な概念を示す。最後に、本発明のノイズ影響低減技術は、「外部ノイズがランダム数に影響を及ぼすことの防止」と題するセクションで検討される。
【００１２】
（準安定フリップフロップを使用するランダム数発生器）
図１Ａは、Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｇｅｎｅｒａｔｉｎｇ  Ｒａｎｄｏｍ  Ｎｕｍｂｅｒｓ  Ｕｓｉｎｇ  Ｆｌｉｐ−Ｆｌｏｐ  Ｍｅｔａ−Ｓｔａｂｉｌｉｔｙ（フリップフロップ準安定を使用してランダム数を発生するための方法及び装置）"と題する、２０００年３月６日出願の米国特許出願シリアル番号０９／５１９，５４９の教示に従ったランダム数発生器１００を示す。このランダム数発生器１００は、複数のゼロの半分を「（複数の）１」として且つ複数のゼロの他方の半分を「（複数の）０」と「マーキング（marking）」することによってランダム出力ビットの均一な分布を提供する。更に、（複数の）１の半分が「（複数の）１」としてマークされ、且つ他の半分が、「（複数の）０」としてマーキングされる。
【００１３】
図１Ａに示されるように、ランダム数発生器１００は、フリップフロップ１１０と、遅延回路１１５、１２０と、Ｄタイプのフリップフロップ１２５、１３２と、クロック発振器１３０とを含む。フリップフロップ１１０は、準安定動作を確実にするためにフリップフロップ１１０のセットアップ時間または保持時間（又はその両方）を故意に乱すような入力でクロックされる。このセットアップ時間や保持時間は、例えば、遅延回路１１５、１２０を用いて乱される。フリップフロップ１１０は、Ｄタイプ、Ｔタイプ又はＪＫタイプフリップフロップにとして具体化される。更に、フリップフロップ１１０は、当業者には明白であるように、単純なラッチ回路およびそれと僅かに異なる回路として具体化され得る。
【００１４】
クロック信号は、クロック発振器１３０と、Ｑバー出力が自己のＤ入力にフィードバックされてクロックを２分割するＤタイプフリップフロップ１２５とによって発生される。このように、Ｄタイプフリップフロップ１２５は、Ｔタイプフリップフロップ（トグル出力）と同様に動作し、２分割する機構を提供する。このように、フリップフロップ１１０のＤ入力は、交互の１と０によって駆動される。追加の２分割フリップフロップ１３２は、図１Ｃで示すように、波形Ｉｎｐｕｔの（複数の）０の半分を「（複数の）１」とし、且つ、（複の）０の他の半分を「（複数の）０」としてマーキングする信号Ｍａｒｋを発生する。
【００１５】
図１Ａと図１Ｃに最も明確に示したように、クロック発振器１３０によって生成される波形Ｃｌｏｃｋは、図１Ａの「Ｃｌｏｃｋ」とマークされたサンプルポイントで得られる。２分割フリップフロップ１２５によって生成される波形Ｉｎｐｕｔは、図１Ａの「Ｉｎｐｕｔ」とマークされたサンプルポイントで得られる。遅延回路１１５によって生成された波形Ｉｎｐｕｔ＿Ｄ（フリップフロップに対するセットアップ時間の妨害を有する）と遅延回路１２０によって生成された波形Ｉｎｐｕｔ＿ｃｌｏｃｋは、図１Ａにおける対応するサンプルポイントで得られる。２分割フリップフロップ１３２によって生成される波形Ｍａｒｋは、図１Ａにおいて「Ｍａｒｋ」と表示されたサンプルポイントで得られる。
【００１６】
図１Ｃに示されるように、遅延回路１１５、１２０によるセットアップや保持期間（又はその両方）への妨害は、波形Ｍｅｔａ−ｓｔａｂｌｅ  ｏｕｔによって示されているように、フリップフロップ１１０が準安定動作を示すことを確実にする。以下で更に検討するように、フリップフロップ１１０の準安定動作は、ランダム数を発生ための作用を提供する。
【００１７】
遅延回路１１５、１２０からの遅延、フリップフロップ１１０自体における固有の遅延、及び最も重要な準安定動作からの不均一遅延からの遅延の結果として、波形Ｍｅｔａ−ｓｔａｂｌｅ  ｏｕｔは、波形Ｃｌｏｃｋに同期されない。従って、図１Ａのランダム数発生器１００を同期用に適用するようにするために、図１Ｂに示される構成が、波形Ｍｅｔａ−ｓｔａｂｌｅ  ｏｕｔを波形Ｃｌｏｃｋに同期させるために設けられる。図１Ａと図１Ｂの回路は、同じ文字の円を結合することによって接続されている。
【００１８】
図１Ｂに示される同期回路１３５は、容易に準安定状態にならないように選択される多数の直列フリップフロップ１４０〜１４２を含む。更に、これらのフリップフロップ１４０〜１４２の１つが準安定になると、クロック信号の期間が十分に長くなり、準安定フリップフロップの出力は、固定論理値（０か１のいずれか）に設定され、それによって信号が次のフィリップフロップ１４０〜１４２でサンプリングされると、そのフリップフロップが安定する。このように、各フリップフロップ１４０〜１４２は、準安定性を除去すると共に、波形Ｍｅｔａ−ｓｔａｂｌｅ  ｏｕｔを波形Ｃｌｏｃｋに同期させる機会を改善する。実際、このような回路のための不正確な動作の機会が、数十年単位で測定されるであろう。
【００１９】
排他的論理和ゲート（「ＸＯＲ」）１５０は、Ｓｔａｂｌｅ−ｏｕｔと表示されている波形Ｍｅｔａ−ｓｔａｂｌｅ  ｏｕｔの同期バージョンを波形Ｉｎｐｕｔ（２分割フリップフロップ１２５の出力でサンプリングされる）と比較する。ＸＯＲゲート１５０の出力は、２つの入力が異なる場合且つその場合のみハイとなるので、ＸＯＲゲート１５０の出力（「Ｍｉｓｔａｋｅ」）は、波形ｓｔａｂｌｅ＿ｏｕｔが、入力信号と合致しない場合にハイとなる。このＭｉｓｔａｋｅは、フリップフロップ１１０、１４０、１４１、１４２の内の１つが、ミステーク（準安定動作の結果として発生すると考えられる）を生成した場合且つその場合のみに、発生し得るに過ぎない。ＸＯＲゲート１５０の出力（「Ｍｉｓｔａｋｅ」）がシフトレジスタ１６０のシフト入力（Ｓｈｉｆｔ＿ｉｎ）に印加され、且つシフトレジスタ１６０は、Ｍｉｓｔａｋｅがある度にＭａｒｋ信号から１ビットをシフトオーバーする。このように、第１の実施の形態は、エラー（ｍｉｓｔａｋｅ）がある度に１ビットを収集する。
【００２０】
シフトレジスタ１６０の入力ラインは、Ｍａｒｋ信号に接続される。このように、Ｍｉｓｔａｋｅがある度に、シフトレジスタ１６０は、Ｍａｒｋ信号から１ビットをシフトインする。このように、図１Ｃに示されるように、ミステーク０に対して、１に等しいビット（Ｍａｒｋ信号に基づく）が得られる。同様に、ミステーク１に対して、１に等しいビット（Ｍａｒｋ信号に基づく）が得られる。
【００２１】
また、ランダム数発生器１００は、フリップフロップ１１０に入力される（複数の）１を「１」又「０」のいずれかマークで示す。このように、ミステークが入力に対する１つの値で発生すると、ランダムビットの均一な分布は、その１つの値でなされたミステークに起因して得られる。従って、この回路は、１又は０の入力値で発生するエラー同士間の偏り（bias）に対して不感知(insensitive)である。
【００２２】
上述されたように、図１Ａから図１Ｃに関して上で検討したように入力ビットをマークすることは、ランダム出力ビットの均一な分布を提供する。しかしながら、準安定の期間と発生は、ノイズによって影響を受けることがわかった。従って、そのノイズがマーキング信号に相関すると、ランダム数発生器の出力はランダムではなくなる。
【００２３】
このように、（（複数の）０と（複数の）１の周期に関して）非バイアス信号源が、マーキング信号として使用される。マーキング信号は、そのシステムのいずれのノイズにも高い確率で相関されない。十分な長さを有する線形フィードバックシフトレジスタ（ＬＦＳＲ）は、ＬＦＳＲ出力におけるあらゆるバイアスを低下させ、且つ、相関の機会を低下させるために用いられる。適切なＬＦＳＲは、例えば、Ｂｒｕｃｅ  Ｓｃｈｎｅｉｅｒ氏のＡｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ（応用暗号手法）の３６９〜３８８頁（Ｗｉｌｅｙ、１９９４年）に記述されている。
【００２４】
図２は、ランダム数発生器２００を示している。図２に示されるように、このランダム数発生器２００は、図１Ａに関連して上記のように動作するフリップフロップ１１０と、遅延回路１１５、１２０と、Ｄタイプフリップフロップ１２５と、クロック発振器１３０とを含む。更に、ランダム数発生器２００は、波形Ｉｎｐｕｔにおける（複数の）０の半分よりもわずかに多くを「（複数の）１」として、且つ（複数の）０のほぼ半分を「（複数の）０」としてマークし、あらゆるノイズに対して高い確率で相関されていないＬＦＳＲ  Ｍａｒｋ信号（図３に示されている）を発生する線形フィードバックシフトレジスタ２１０を含む。ｎビットＬＦＳＲに対して（２ｎ−１）個のパターンだけ（全て０のパターンは決して発生しない）あるので、信号は、常に僅かな偏りを有する。この偏りは、ｎが大きい場合には、微々たるものとなる。
【００２５】
このように、図２のランダム数発生器２００は、図１Ａのマーキングフリップフロップ１３２を線形フィードバックシフトレジスタ２１０で置き換えている。線形フィードバックシフトレジスタ２１０は、Ｂｒｕｃｅ  Ｓｃｈｎｅｉｅｒ氏のＡｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ（応用暗号手法）の３６９〜３８８頁（Ｗｉｌｅｙ、１９９４年）で記述されているように実施化することができる。図２のランダム数発生器２００は、ランダム数発生器２００の出力をクロック源に同期させるために図１Ｂの同期回路１３５を用いることができる。
【００２６】
先に指摘されたように、線形フィードバックシフトレジスタ２１０は、相関の機会を低下させ且つＬＦＳＲ出力におけるあらゆる偏りを低減させるために十分な数のビットを供給すべきである。ｎ個のフリップフロップを備える線形フィードバックシフトレジスタ２１０に対して、数の繰返しを始める前に（２ｎ−１）個の２進数がある。従って、線形フィードバックシフトレジスタ２１０におけるフリップフロップの数が増加すると、（２ｎ−１）個の２進表示における−１は、重要ではなくなる。少なくとも、−１の項に帰因し得るあらゆる偏りの方向は既知であるので、その偏りは、適切な回路で除去或いは修正され得る。
【００２７】
このように、線形フィードバックシフトレジスタ２１０は、出力ビットの半分が０であり、その出力ビットの他の半分が１であって、擬似ランダムであるマーキング出力（ＬＦＳＲマーク）を提供する。
【００２８】
線形フィードバックシフトレジスタ２１０が安全でない場合、出力の一部（ランダムな部分さえ）によって、線形フィードバックシフトレジスタ２１０の状態が知られ得ることが分かった。このように、ランダム数発生器２００の出力を予測することは可能であろう。従って、識別可能な統計を持たない線形フィードバックシフトレジスタ２１０が利用されるべきであり、それによって、線形フィードバックシフトレジスタ２１０の状態情報を役立たなくする。更なる変形例では、追加の安全性は、収集されたビットをシフトレジスタ１６０から解放し且つ収集されたビットの幾つかを各収集間隔で失わせることによって達成される。
【００２９】
シフトレジスタ１６０は、Ｍｉｓｔａｋｅがある度に、Ｍａｒｋ信号から１ビットをシフトオーバーする。このようにすると、ミステークの到達時が認識されず、そして、誰も、線形フィードバックシフトレジスタ２１０のどのビットが選択されるか予測できない。
【００３０】
（外部ノイズがランダム数に影響を及ぼすことの防止）
先に指摘されたように、本発明は、外部ノイズが基板上或いは集積回路中の複数のフリップフロップに同様に影響を及ぼすのは、それらが物理的に近接しているからであることを認識している。従って、本発明の一特徴によれば、外部ノイズを使用するランダム数発生器を攻撃する能力は、１つのランダム数発生器中に、ここではコアランダム要素４００を呼ばれる２つ又はそれ以上のフリップフロップを使用することによって低減する。より詳細には、本発明は、コアランダム要素４００の１つがノイズに影響される場合は、それらの全てが影響されるということを認識している。従って、コアランダム要素４００の全て（又は大部分）が、同時にビットを出す場合、例えば、それらのビットが排他的論理和ゲート（「ＸＯＲ」）（又は、出力されたビットを検出する他のゲート）によって検出されるように、ランダム数発生器がノイズによって影響された可能性があり、発生されたビットは全て破棄される。
【００３１】
例えば、ｔがゼロ（０）よりも大きな閾値であり、且つｎがフリップフロップの数である場合、（ｎ／２＋ｔ）以下の同一結果が、準安定フリップフロップによって発生される場合及びその場合にのみ、１ビットが生成される。同様に、（ｎ／２＋ｔ）を越える同一結果が準安定フリップフロップによって発生される場合、１ビットは生成されない。従って、ｎが１０個のフリップフロップの数に等しく、且つｔが２に等しい場合、８又はそれ以上のフリップフロップが同一結果を有し、そのビットは破棄される。更に、ｎが２個のフリップフロップの数に等しい場合、そのビットは、（ｔを０より大きく設定することによって）フリップフロップの全てが同一結果を有する場合に、破棄される。このように、本発明は、フリップフロップが（複数の）１と（複数の）０の発生について均一な分布を有しないときでさえ、ランダム数発生器を提供することができる。準安定フリップフロップが１を発生する確率がｐであり、且つ同じ準安定フリップフロップが０を発生する確率が（１−ｐ）である場合、（ｐ＊ｎ＋ｔ）を越える個数の又は（ｐ＊ｎ―１）未満の個数の１が発生された場合に、１ビットが破棄される。例えば、ｎが１０に等しく、ｐが０．７に等しく、ｔが１に等しい場合、そのビットは、９以上又は５以下の個数の１があった場合に、破棄される。
【００３２】
図４は、例えば、図１Ａ、図１Ｂ及び図２に関連して上記で検討されたランダム数発生器１００、２００のコンポーネントを使用して実施されることができるコアランダム要素４００を示す。図４に示されるように、コアランダム要素４００は、フリップフロップ４１０と、可変遅延回路４１５、４２０と、同期回路４３０を含む。クロック信号は、クロック源（図示せず）によって発生される。上記で指摘したように、フリップフロップ４１０は、準安定動作を確実にするためにフリップフロップ４１０のセットアップ時間や保持時間（又はその両方）を故意に乱す入力によってクロックされる。セットアップ時間や保持時間は、例えば、可変遅延回路４１５、４２０を用いて乱され得る。フリップフロップ４１０は、例えば、Ｄタイプ、Ｔタイプ又はＪＫタイプのフリップフロップとして実施化されることができる。
【００３３】
上記で指摘したように、遅延回路４１５、４２０からの遅延、フリップフロップ４１０自体における固有の遅延、及び最も重要な準安定動作からの不均一遅延からの遅延は、波形Ｍｅｔａ−ｓｔａｂｌｅ  ｏｕｔを、波形Ｃｌｏｃｋに同期させないようにすることができる。従って、図４のコアランダム要素４００を同期用に適用させるために、図４に示される装置が、波形Ｍｅｔａ−ｓｔａｂｌｅ  ｏｕｔを波形Ｃｌｏｃｋに同期するために設けられる。
【００３４】
図４に示される同期回路４３０は、容易に準安定状態にならないように選択される多数の直列フリップフロップ４４０〜４４２を含む。更に、これらのフリップフロップ４４０〜４４２の１つが、準安定になると、クロック信号の期間は十分に長くなり、準安定フリップフロップの出力が固定論理値（０か１のいずれか）に設定され、それによって信号が次のフィリップフロップ４４０〜４４２でサンプリングされると、そのフリップフロップが安定する。このように、各フリップフロップ４４０〜４４２は、あらゆる準安定性を除去する一方、波形Ｍｅｔａ−ｓｔａｂｌｅ  ｏｕｔを波形Ｃｌｏｃｋに同期する機会を改善する。出力Ｍｅｔａ  ｓｔａｂｌｅ  ｏｕｔと入力信号を比較して、それらが一致しないときに１が発生することがわかる。この不一致は、コアランダム要素４００中のフリップフロップの１つが準安定になったときに発生し得るに過ぎない。従って、排他的（ＸＯＲ）ゲートは、最初の記述においてＸＯＲゲート１５０で示されるように、コアランダム要素４００によって発生されるビットを検出するように作用する。このコアランダム要素４００の動作についての更なる詳細は、上記記載で参照され且つ参照によってここに組み込まれる同時継続中の関連出願を参照されたい。
【００３５】
図５は、本発明に従うランダム数発生器５００を示す。先に指摘されたように、本発明は、１つのランダム数発生器に複数のフリップフロップを使用することによって、外部ノイズを用いた攻撃に対するランダム数発生器の感度を低下させるものである。図５に示される例示の実施の形態において、ランダム数発生器５００は、図４に関連して上記で議論されたように、直列の２つのコアランダム要素４００−１、４００−２を含む。
【００３６】
クロック源は、クロック発振器５３０と、Ｑバー出力がＤ入力にフィードバックされるＤタイプフリップフロップ５２５によって発生される。このように、Ｄタイプフリップフロップ５２５が、Ｔタイプフリップフロップ（トグル出力）のように動作して、２分割する機能を提供する。従って、例示のコアランダム要素４００−１の入力は、（複数の）１と（複数の）０を交互させることによって駆動される。他の入力信号スキームが、図８に関連して以下で更に検討される。
【００３７】
図５に示されるように、コアランダム要素４００−１の出力は、第２のコアランダム要素４００−２に入力として印加される。コアランダム要素４００−１、４００−２の内の一方が、ノイズの影響を受けると、それらの両方が影響を受ける。従って、両方のコアランダム要素４００−１、４００−２が、同時にビットを出力すると、それらが排他的論理和（ＸＯＲ）ゲート５４０、５５０によって検出されるように、ランダム数発生器５００がノイズの影響を受けた可能性があり、出力されたビットは総て破棄される。従って、ランダム数発生器５００は、一組の排他的論理和（ＸＯＲ）回路５４０、５５０、５６０を含む。
【００３８】
第１の排他的論理和ゲート（「ＸＯＲ」）５４０は、波形ｓｔａｂｌｅ＿ｏｕｔの同期化バージョンを（２分割フリップフロップ５２５の出力でサンプリングされた）波形Ｉｎｐｕｔと比較する。ＸＯＲゲート５４０の出力は、２つの出力が異なる場合且つその場合のみに、ハイであるので、コアランダム要素４００−２からの波形Ｓｔａｂｌｅ＿ｏｕｔが、コアランダム要素のフリップフロップの１つが準安定になるときにのみ生じ得る入力信号に合致しない場合に、ＸＯＲゲート５４０の出力はハイである。同様に、ＸＯＲゲート５５０の出力は、その２つの入力が異なる場合且つその場合にのみ、ハイであるので、コアランダム要素４００−２からの波形Ｓｔａｂｌｅ＿ｏｕｔがコアランダム要素４００−１からの波形Ｓｔａｂｌｅ＿ｏｕｔに整合しない場合に、ＸＯＲゲート５５０の出力はハイである。
【００３９】
次に、２つのＸＯＲゲート５４０、５５０の出力は、ＸＯＲゲート５６０に印加される。ＸＯＲゲート５６０の出力は、その２つの入力が異なる場合且つその場合のみに、ハイであるので、ＸＯＲゲート５６０の出力は、両方のコアランダム要素４００−１、４００−２からの波形Ｓｔａｂｌｅ＿ｏｕｔがハイ又はローの場合には、ハイではない。換言すれば、ＸＯＲゲート５６０は、両方のコアランダム要素４００−１、４００−２がビットを発生したときにのみ、ビットの生成を抑制する。
【００４０】
ＸＯＲゲート５６０の出力は、シフトレジスタ５７０のエネーブル入力に印加される。従って、シフトレジスタ５７０は、唯一のコアランダム要素４００からの波形Ｓｔａｂｌｅ−ｏｕｔが各コアランダム要素４００への入力と合致しない度に（即ち、「ミステーク」があるときに）、ＬＦＳＲ２１０からのマーキング信号であるＬＦＳＲマークから１ビットをシフトオーバーする。次に、発生されたビットは、コンピュータインターフェース５８０（又は他のアップリケーション）に印加される。
【００４１】
図６は、本発明に従うランダム数発生器６００を示す。図６に示される例示の実施の形態において、このランダム数発生器６００は、図４に関連して上記で検討された、並列の２つのコアランダム要素４００−１、４００−２を含む。図６に示される実施の形態は、図５の実施の形態における入力信号が異なる時間に２つのフリップフロップを通過する事実をアタッカーが利用することを防止するために特に有用である。
【００４２】
クロック源は、クロック発振器６３０と、Ｑバー出力がＤ入力にフィードバックされるＤタイプフリップフロップ６２５によって発生される。このように、Ｄタイプフリップフロップ６２５が、Ｔタイプフリップフロップ（トグル出力）のように動作して、２分割機能を提供する。従って、並列の実施形態における両コアランダム要素４００−１、４００−２の入力は、１と０を交互させることによって駆動される。他の入力信号スキームが、図８に関連して以下で更に検討される。
【００４３】
図６に示されるように、ランダム数発生器６００は、一組の排他的論理和（ＸＯＲ）回路６４０、６５０、６６０を含む。図５の実施の形態と同様に、第１の排他的論理和（「ＸＯＲ」）６４０は、波形Ｓｔａｂｌｅ−ｏｕｔの同期バージョンを（２分割フリップフロップ６２５の出力でサンプリングされる）波形Ｉｎｐｕｔと比較する。ＸＯＲゲート６４０の出力は、２つの入力が異なる場合且つその場合のみに、ハイであるので、ＸＯＲゲート６４０の出力は、コアランダム要素４００−１からの波形Ｓｔａｂｌｅ−ｏｕｔが入力信号と合致しない場合に、ハイである。同様に、ＸＯＲゲート６５０の出力は、２つの入力が異なる場合且つその場合のみに、ハイであるので、ＸＯＲゲート６５０の出力は、コアランダム要素４００−２からの波形Ｓｔａｂｌｅ−ｏｕｔが入力信号と合致しない場合に、ハイである。
【００４４】
次に、２つのＸＯＲゲート６４０、６５０の出力は、ＸＯＲゲート６６０に印加される。ＸＯＲゲート６６０の出力は、その２つの入力が異なる場合且つその場合のみに、ハイであるので、ＸＯＲゲート６６０の出力は、両方のコアランダム要素４００−１、４００−２からの波形Ｓｔａｂｌｅ＿ｏｕｔがハイ又はローの場合には、ハイではない。換言すれば、ＸＯＲゲート６６０は、両方のコアランダム要素４００−１、４００−２がビットを発生したときにのみ、ビットの生成を抑制する。
【００４５】
ＸＯＲゲート６６０の出力は、シフトレジスタ６７０のエネーブル入力に印加される。従って、シフトレジスタ６７０は、唯一のコアランダム要素４００からの波形Ｓｔａｂｌｅ−ｏｕｔが入力信号と合致しない度に（即ち、「ミステーク」があるときに）、ＬＦＳＲ２１０からのマーキング信号であるＬＦＳＲマークから１ビットをシフトする。次に、発生されたビットは、コンピュータインターフェース６８０（又は他のアップリケーション）に印加される。
【００４６】
図７は、本発明の他の実施の形態に従うランダム数発生器７００を示す。図７に示される例示の実施の形態において、ランダム数発生器６００は、図４に関連して上記で検討された、並列の２つのコアランダム要素４００−１、４００−２を含み、第２のコアランダム要素４００−２に対する入力信号を切り替えるためにインバータ７１０を用いる。従って、コアランダム要素４００−２は、コアランダム要素４００−１と同じ入力信号を有することはない。図７の実施の形態は、ランダム数発生の各ステップでのアタッカーを更に防止することができる。
【００４７】
ランダム数発生器７００は、インバータ７１０に対する動作のほか、図６に関連して上記で検討されたランダム数発生器６００と同様に動作する。
【００４８】
図８は、本発明の更に他の実施の形態に従うランダム数発生器８００を示す。図８に示される例示の実施の形態において、第１のコアランダム要素４００−１は、他のランダムコンポーネント４００−２からのランダムビットの発生を起動するために用いられる。より詳細には、第１のコアランダム要素４００−１でミステークが検出されたときにはいつでも、第２のコアランダム要素４００−２の安定出力が、出力ストリームのために用いられる。そのミステークの検出は、上述のように、即ち、複数のコアランダム要素４００を使用することによって、実行され得る。
【００４９】
図８に示されるように、ランダム数発生器８００は、図４に関連して上記で検討されたように、２つのコアランダム要素４００−１、４００−２を含む。更に、クロック源８３０は、クロック信号を発生する。Ｑバー出力がそのＤ入力にフィードバックされるＤタイプフリップフロップ８２５は、２分割機能を提供する。従って、コアランダム要素４００−１の入力は、１と０とを交互させることによって駆動される。
【００５０】
ミステークは、排他的論理和（ＸＯＲ）回路８４０を使用して第１のランダムコンポーネント４００−１で検出される。排他的論理和ゲート（「ＸＯＲ」）８４０は、コアランダム要素４００−１からの波形Ｓｔａｂｌｅ−ｏｕｔの同期バージョンを（２分割フリップフロップ８２５の出力でサンプリングされる）波形Ｉｎｐｕｔと比較する。ＸＯＲゲート８４０の出力は、その２つの入力が異なる場合且つその場合だけ、ハイであるので、ＸＯＲゲート８４０の出力は、ランダムコンポーネント４００−１からの波形Ｓｔａｂｌｅ−ｏｕｔが、準安定動作に起因して、入力信号と合致しない場合に、ハイである。
【００５１】
ＸＯＲゲート８４０の出力は、シフトレジスタ８７０のイネーブル入力に印加される。従って、シフトレジスタ８７０は、コアランダム要素４００−１からの波形Ｓｔａｂｌｅ−ｏｕｔが、入力信号に合致しない度に（即ち、「ミステーク」があるときに）、（コアランダム要素４００−２によって駆動される）入力信号から１ビットシフトオーバーする。次に、発生されたビットは、コンピュータインターフェース８８０（又は他のアプリケーション）に印加される。コアランダム要素４００−２は、図４に関連して上述の記載と同様に動作する。
【００５２】
ここで示され、記述された実施の形態及びそれらのバリエーションは、本発明の原理を例示しているに過ぎず、且つ種々の変更が、本発明の範囲と精神から逸脱することなく当業者によって実施され得ることを理解すべきである。
【図面の簡単な説明】
【００５３】
【図１Ａ】“Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｇｅｎｅｒａｔｉｎｇ  Ｒａｎｄｏｍ  Ｎｕｍｂｅｒｓ  Ｕｓｉｎｇ  Ｆｌｉｐ−Ｆｌｏｐ  Ｍｅｔａ−Ｓｔａｂｉｌｉｔｙ（フリップフロップ準安定を使用してランダム数を発生するための方法及び装置）"と題する、２０００年３月６日出願の米国特許出願シリアル番号０９／５１９，５４９の教示に従ったランダム数発生器を示す。
【図１Ｂ】図１Ａのランダム数発生器の出力をクロック源と同期させるために利用することができる同期回路を示す。
【図１Ｃ】図１Ａと１Ｂの回路によって生成される一組の波形を示す。
【図２】“Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｄｅｃｏｒｒｅｌａｔｉｎｇ  ａ  Ｒａｎｄｏｍ  Ｎｕｍｂｅｒ  Ｇｅｎｅｒａｔｏｒ  Ｕｓｉｎｇ  ａ  Ｐｓｅｕｄｏ−Ｒａｎｄｏｍ  Ｓｅｑｕｅｎｃｅ（擬似ランダムシーケンスを使用してランダム数発生器を相関解除するための方法及び装置）"と題する、２００１年７月２５日に出願の米国特許出願シリアル番号０９／９１２，６８５の教示に従う他のランダム数発生器を示す。
【図３】図２と図１Ｂの回路によって生成される一組の波形を示す。
【図４】図１Ａ、図１Ｂ及び図２と共に上述された、ランダム数発生器１００、２００のコンポーネントを使用して実施されるコアランダム要素を示す。
【図５】本発明に従うランダム数発生器の実施の形態を示す。
【図６】本発明に従うランダム数発生器の実施の形態を示す。
【図７】本発明に従うランダム数発生器の実施の形態を示す。
【図８】本発明に従うランダム数発生器の実施の形態を示す。
【図１Ａ】
2005510923.tif 000003
【図１Ｂ】
2005510923.tif 000004
【図１Ｃ】
2005510923.tif 000005
【図２】
2005510923.tif 000006
【図３】
2005510923.tif 000007
【図４】
2005510923.tif 000008
【図５】
2005510923.tif 000009
【図６】
2005510923.tif 000010
【図７】
2005510923.tif 000011
【図８】
2005510923.tif 000012
【国際調査報告】
2005510923.tif 000013
2005510923.tif 000014
2005510923.tif 000015
2005510923.tif 000016