JP4234011B2 - フリップフロップ準安定に基づくランダム数発生器に影響を及ぼすノイズを防止するための方法及び装置 - Google Patents

フリップフロップ準安定に基づくランダム数発生器に影響を及ぼすノイズを防止するための方法及び装置 Download PDF

Info

Publication number
JP4234011B2
JP4234011B2 JP2003548191A JP2003548191A JP4234011B2 JP 4234011 B2 JP4234011 B2 JP 4234011B2 JP 2003548191 A JP2003548191 A JP 2003548191A JP 2003548191 A JP2003548191 A JP 2003548191A JP 4234011 B2 JP4234011 B2 JP 4234011B2
Authority
JP
Japan
Prior art keywords
flip
random number
flops
random
flop
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003548191A
Other languages
English (en)
Other versions
JP2005510923A (ja
Inventor
アンドレ、ワイマースキルヒ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP BV
Original Assignee
NXP BV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NXP BV filed Critical NXP BV
Publication of JP2005510923A publication Critical patent/JP2005510923A/ja
Application granted granted Critical
Publication of JP4234011B2 publication Critical patent/JP4234011B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Manipulation Of Pulses (AREA)
  • Pinball Game Machines (AREA)
  • Details Of Television Scanning (AREA)
  • Measurement Of Radiation (AREA)

Description

関連出願の相互参照
本発明は、“Method and Apparatus for Generating Random Numbers Using Flip−Flop Meta−Stability(フリップフロップ準安定を使用してランダム数を発生するための方法及び装置)"と題する、2000年3月6日出願の米国特許出願シリアル番号09/519,549と、“Method and Apparatus for Decorrelating a Random Number Generator Using a Pseudo−Random Sequence(擬似ランダムシーケンスを使用してランダム数発生器を相関解除するための方法及び装置)"と題する、2001年7月25日に出願の米国特許出願シリアル番号09/912,685とに関連し、各出願は、本願発明の譲受人に譲渡され、且つ、ここでの参照によって、組み込まれる。
本発明は、ランダム数発生器に関し、より詳細には、フリップフロップ準安定性を使用してランダム数を発生するための方法と装置に関する。
ポーカー、ルーレット、及びスロットマシンのような、チャンスゲームを含む、多くのアプリケーション及び電子デバイスは、ランダム数を必要とする。特に、多くの暗号化アルゴリズムとプロトコルは、安全な電子通信等を実施するために、ランダム数の予測不能源に依存している。ランダム数発生器は、数の指定範囲において全ての可能な順列を発生すべきである。更に、このランダム数発生器は、偏りをもつべきでなく、あらゆる所与の数とあらゆる数の配列を他の数又は他の数の配列と同じ確率で発生すべきである。また、ランダム数発生器は、先の結果の収集の大きさに関係なく、予測できないランダム数を発生すべきである。このように、ランダム数は、完全に予測不能であり、外部の影響に不感であるべきである。
“Method and Apparatus for Generating Random Numbers Using Flip−Flop Meta−Stability(フリップフロップ準安定を使用してランダム数を発生するための方法及び装置)"と題する、2000年3月6日出願の米国特許出願シリアル番号09/519,549と、“Method and Apparatus for Decorrelating a Random Number Generator Using a Pseudo−Random Sequence(擬似ランダムシーケンスを使用してランダム数発生器を相関解除するための方法及び装置)"と題する、2001年7月25日に出願の米国特許出願シリアル番号09/912,685は、フリップフロップの準安定動作を用いて、ランダム数を発生するための方法と装置を開示している。フリップフロップは、準安定動作を確実にするために、そのフリップフロップのセットアップ時間や保持時間(又はその両方)を故意に乱すような入力でクロックされる。エラーが発生する度に、1ビットが収集される。
準安定性はランダムに発生するが、準安定性の期間と発生は、外部からのノイズによって影響され得ることが解った(一般的に、ランダム要素の動作は、半導体デバイスでみられる熱ノイズのような内部ノイズによって制御される)。従って、外部ノイズは、ランダム数発生器に影響を及ぼすように用いられ、それによって、発生した数のランダム性について妥協してしまうことがある。従って、外部ノイズに影響されない準安定性を用いてランダム数を発生するための方法と装置が必要とされている。
概して、フリップフロップの準安定動作に基づくランダム数発生器に外部ノイズが影響を及ぼすことを防止するための方法と装置が開示される。外部ノイズは、フリップフロップの準安定動作を用いるランダム数発生器の動作に影響を及ぼすアタッカーによって使用され得ることがわかった。本発明は、複数のランダム数発生器回路中の複数のフリップフロップが物理的に近接しているので、外部ノイズが、これらのフリップフロップに同じように影響を及すことを認識している。
従って、本発明の一態様によれば、外部ノイズを使用してランダム数発生器の動作に影響を及ぼす能力は、複数のフリップフロップを単一のランダム数発生器(ここでは、コアランダム要素と呼ばれる)に組み込むことによって低減される。より具体的には、ランダム数発生器中のコアランダム要素の1つがノイズによって影響を受ける場合、これらのコアランダム要素の全て(又はほとんど)がノイズによって影響を受けることを本発明は認識している。従って、コアランダム要素の全て(又はほとんど)が、同時に1ビットを発生すると、ランダム数発生器がノイズの影響を受けた可能性があり、発生されたこれらの1ビットは破棄される。従って、複数のコアランダム要素が同時に1ビットを発生するときにランダムビットを発生しないことを確実にするために1つ又はそれより多くの機構がランダム数発生器に組み込まれる。時として、両コアランダム要素が、単に偶然に、同時にランダムビットを発生するが、これらのビットを破棄することは、このシステムの全体の効率にとって無視できるほどの影響しか与えない。
本発明の更に完全な理解並びに本発明の更なる特徴と利点は、以下の詳細な説明と図面を参照することによって得られる。
本発明は、外部ノイズが、比較的大きなランダム数発生器回路の複数のフリップフロップに同様に影響を及ぼし、この影響は、これらのフリップフロップが物理的に近接しているからであることを認識している。従って、本発明は、コアランダム要素の集合として実施される複数のフリップフロップを、幾つかのフリップフロップから成る各コアランダム要素400に組み込むことによって、外部ノイズを使用するランダム数発生器の動作に影響を及ぼす能力を低減させる。このコアランダム要素は、図4とともに以下で更に検討される。
より具体的には、本発明は、コアランダム要素400の内の1つがノイズによって影響を受ける場合、これらのコアランダム要素400の全て(又は大部分)がそのノイズによって影響を受けることを認識している。従って、多数のコアランダム要素400が同時に1ビットを発生する場合、例えば、排他的論理和ゲート(「XOR」)やその発生されたビットを検出する他のゲートによって検出されるように、ランダム数発生器がノイズによって影響を受け、発生された(単数又は複数の)ビットが破棄される可能性がある。このように、本発明は、コアランダム要素400の全て(又は大部分)が同時に1ビットを発生するときにランダムビットが生成されないことを確実にするために1又はそれ以上の装置を組み込む。
以下の検討は、次のように編成されている。第1に、多数の適切なコアランダム要素は、「準安定フリップフロップを用いたランダム数発生器」と題するセクションで検討される。その後、図4は、例えば、図1乃至図3に関連して検討されるランダム数発生器100、200に基づくコアランダム要素400のより全般的な概念を示す。最後に、本発明のノイズ影響低減技術は、「外部ノイズがランダム数に影響を及ぼすことの防止」と題するセクションで検討される。
(準安定フリップフロップを使用するランダム数発生器)
図1Aは、Method and Apparatus for Generating Random Numbers Using Flip−Flop Meta−Stability(フリップフロップ準安定を使用してランダム数を発生するための方法及び装置)"と題する、2000年3月6日出願の米国特許出願シリアル番号09/519,549の教示に従ったランダム数発生器100を示す。このランダム数発生器100は、複数のゼロの半分を「(複数の)1」として且つ複数のゼロの他方の半分を「(複数の)0」と「マーキング(marking)」することによってランダム出力ビットの均一な分布を提供する。更に、(複数の)1の半分が「(複数の)1」としてマークされ、且つ他の半分が、「(複数の)0」としてマーキングされる。
図1Aに示されるように、ランダム数発生器100は、フリップフロップ110と、遅延回路115、120と、Dタイプのフリップフロップ125、132と、クロック発振器130とを含む。フリップフロップ110は、準安定動作を確実にするためにフリップフロップ110のセットアップ時間または保持時間(又はその両方)を故意に乱すような入力でクロックされる。このセットアップ時間や保持時間は、例えば、遅延回路115、120を用いて乱される。フリップフロップ110は、Dタイプ、Tタイプ又はJKタイプフリップフロップにとして具体化される。更に、フリップフロップ110は、当業者には明白であるように、単純なラッチ回路およびそれと僅かに異なる回路として具体化され得る。
クロック信号は、クロック発振器130と、Qバー出力が自己のD入力にフィードバックされてクロックを2分割するDタイプフリップフロップ125とによって発生される。このように、Dタイプフリップフロップ125は、Tタイプフリップフロップ(トグル出力)と同様に動作し、2分割する機構を提供する。このように、フリップフロップ110のD入力は、交互の1と0によって駆動される。追加の2分割フリップフロップ132は、図1Cで示すように、波形Inputの(複数の)0の半分を「(複数の)1」とし、且つ、(複の)0の他の半分を「(複数の)0」としてマーキングする信号Markを発生する。
図1Aと図1Cに最も明確に示したように、クロック発振器130によって生成される波形Clockは、図1Aの「Clock」とマークされたサンプルポイントで得られる。2分割フリップフロップ125によって生成される波形Inputは、図1Aの「Input」とマークされたサンプルポイントで得られる。遅延回路115によって生成された波形Input_D(フリップフロップに対するセットアップ時間の妨害を有する)と遅延回路120によって生成された波形Input_clockは、図1Aにおける対応するサンプルポイントで得られる。2分割フリップフロップ132によって生成される波形Markは、図1Aにおいて「Mark」と表示されたサンプルポイントで得られる。
図1Cに示されるように、遅延回路115、120によるセットアップや保持期間(又はその両方)への妨害は、波形Meta−stable outによって示されているように、フリップフロップ110が準安定動作を示すことを確実にする。以下で更に検討するように、フリップフロップ110の準安定動作は、ランダム数を発生ための作用を提供する。
遅延回路115、120からの遅延、フリップフロップ110自体における固有の遅延、及び最も重要な準安定動作からの不均一遅延からの遅延の結果として、波形Meta−stable outは、波形Clockに同期されない。従って、図1Aのランダム数発生器100を同期用に適用するようにするために、図1Bに示される構成が、波形Meta−stable outを波形Clockに同期させるために設けられる。図1Aと図1Bの回路は、同じ文字の円を結合することによって接続されている。
図1Bに示される同期回路135は、容易に準安定状態にならないように選択される多数の直列フリップフロップ140〜142を含む。更に、これらのフリップフロップ140〜142の1つが準安定になると、クロック信号の期間が十分に長くなり、準安定フリップフロップの出力は、固定論理値(0か1のいずれか)に設定され、それによって信号が次のフィリップフロップ140〜142でサンプリングされると、そのフリップフロップが安定する。このように、各フリップフロップ140〜142は、準安定性を除去すると共に、波形Meta−stable outを波形Clockに同期させる機会を改善する。実際、このような回路のための不正確な動作の機会が、数十年単位で測定されるであろう。
排他的論理和ゲート(「XOR」)150は、Stable−outと表示されている波形Meta−stable outの同期バージョンを波形Input(2分割フリップフロップ125の出力でサンプリングされる)と比較する。XORゲート150の出力は、2つの入力が異なる場合且つその場合のみハイとなるので、XORゲート150の出力(「Mistake」)は、波形stable_outが、入力信号と合致しない場合にハイとなる。このMistakeは、フリップフロップ110、140、141、142の内の1つが、ミステーク(準安定動作の結果として発生すると考えられる)を生成した場合且つその場合のみに、発生し得るに過ぎない。XORゲート150の出力(「Mistake」)がシフトレジスタ160のシフト入力(Shift_in)に印加され、且つシフトレジスタ160は、Mistakeがある度にMark信号から1ビットをシフトオーバーする。このように、第1の実施の形態は、エラー(mistake)がある度に1ビットを収集する。
シフトレジスタ160の入力ラインは、Mark信号に接続される。このように、Mistakeがある度に、シフトレジスタ160は、Mark信号から1ビットをシフトインする。このように、図1Cに示されるように、ミステーク0に対して、1に等しいビット(Mark信号に基づく)が得られる。同様に、ミステーク1に対して、1に等しいビット(Mark信号に基づく)が得られる。
また、ランダム数発生器100は、フリップフロップ110に入力される(複数の)1を「1」又「0」のいずれかマークで示す。このように、ミステークが入力に対する1つの値で発生すると、ランダムビットの均一な分布は、その1つの値でなされたミステークに起因して得られる。従って、この回路は、1又は0の入力値で発生するエラー同士間の偏り(bias)に対して不感知(insensitive)である。
上述されたように、図1Aから図1Cに関して上で検討したように入力ビットをマークすることは、ランダム出力ビットの均一な分布を提供する。しかしながら、準安定の期間と発生は、ノイズによって影響を受けることがわかった。従って、そのノイズがマーキング信号に相関すると、ランダム数発生器の出力はランダムではなくなる。
このように、((複数の)0と(複数の)1の周期に関して)非バイアス信号源が、マーキング信号として使用される。マーキング信号は、そのシステムのいずれのノイズにも高い確率で相関されない。十分な長さを有する線形フィードバックシフトレジスタ(LFSR)は、LFSR出力におけるあらゆるバイアスを低下させ、且つ、相関の機会を低下させるために用いられる。適切なLFSRは、例えば、Bruce Schneier氏のApplied Cryptography(応用暗号手法)の369〜388頁(Wiley、1994年)に記述されている。
図2は、ランダム数発生器200を示している。図2に示されるように、このランダム数発生器200は、図1Aに関連して上記のように動作するフリップフロップ110と、遅延回路115、120と、Dタイプフリップフロップ125と、クロック発振器130とを含む。更に、ランダム数発生器200は、波形Inputにおける(複数の)0の半分よりもわずかに多くを「(複数の)1」として、且つ(複数の)0のほぼ半分を「(複数の)0」としてマークし、あらゆるノイズに対して高い確率で相関されていないLFSR Mark信号(図3に示されている)を発生する線形フィードバックシフトレジスタ210を含む。nビットLFSRに対して(2−1)個のパターンだけ(全て0のパターンは決して発生しない)あるので、信号は、常に僅かな偏りを有する。この偏りは、nが大きい場合には、微々たるものとなる。
このように、図2のランダム数発生器200は、図1Aのマーキングフリップフロップ132を線形フィードバックシフトレジスタ210で置き換えている。線形フィードバックシフトレジスタ210は、Bruce Schneier氏のApplied Cryptography(応用暗号手法)の369〜388頁(Wiley、1994年)で記述されているように実施化することができる。図2のランダム数発生器200は、ランダム数発生器200の出力をクロック源に同期させるために図1Bの同期回路135を用いることができる。
先に指摘されたように、線形フィードバックシフトレジスタ210は、相関の機会を低下させ且つLFSR出力におけるあらゆる偏りを低減させるために十分な数のビットを供給すべきである。n個のフリップフロップを備える線形フィードバックシフトレジスタ210に対して、数の繰返しを始める前に(2−1)個の2進数がある。従って、線形フィードバックシフトレジスタ210におけるフリップフロップの数が増加すると、(2−1)個の2進表示における−1は、重要ではなくなる。少なくとも、−1の項に帰因し得るあらゆる偏りの方向は既知であるので、その偏りは、適切な回路で除去或いは修正され得る。
このように、線形フィードバックシフトレジスタ210は、出力ビットの半分が0であり、その出力ビットの他の半分が1であって、擬似ランダムであるマーキング出力(LFSRマーク)を提供する。
線形フィードバックシフトレジスタ210が安全でない場合、出力の一部(ランダムな部分さえ)によって、線形フィードバックシフトレジスタ210の状態が知られ得ることが分かった。このように、ランダム数発生器200の出力を予測することは可能であろう。従って、識別可能な統計を持たない線形フィードバックシフトレジスタ210が利用されるべきであり、それによって、線形フィードバックシフトレジスタ210の状態情報を役立たなくする。更なる変形例では、追加の安全性は、収集されたビットをシフトレジスタ160から解放し且つ収集されたビットの幾つかを各収集間隔で失わせることによって達成される。
シフトレジスタ160は、Mistakeがある度に、Mark信号から1ビットをシフトオーバーする。このようにすると、ミステークの到達時が認識されず、そして、誰も、線形フィードバックシフトレジスタ210のどのビットが選択されるか予測できない。
(外部ノイズがランダム数に影響を及ぼすことの防止)
先に指摘されたように、本発明は、外部ノイズが基板上或いは集積回路中の複数のフリップフロップに同様に影響を及ぼすのは、それらが物理的に近接しているからであることを認識している。従って、本発明の一特徴によれば、外部ノイズを使用するランダム数発生器を攻撃する能力は、1つのランダム数発生器中に、ここではコアランダム要素400を呼ばれる2つ又はそれ以上のフリップフロップを使用することによって低減する。より詳細には、本発明は、コアランダム要素400の1つがノイズに影響される場合は、それらの全てが影響されるということを認識している。従って、コアランダム要素400の全て(又は大部分)が、同時にビットを出す場合、例えば、それらのビットが排他的論理和ゲート(「XOR」)(又は、出力されたビットを検出する他のゲート)によって検出されるように、ランダム数発生器がノイズによって影響された可能性があり、発生されたビットは全て破棄される。
例えば、tがゼロ(0)よりも大きな閾値であり、且つnがフリップフロップの数である場合、(n/2+t)以下の同一結果が、準安定フリップフロップによって発生される場合及びその場合にのみ、1ビットが生成される。同様に、(n/2+t)を越える同一結果が準安定フリップフロップによって発生される場合、1ビットは生成されない。従って、nが10個のフリップフロップの数に等しく、且つtが2に等しい場合、8又はそれ以上のフリップフロップが同一結果を有し、そのビットは破棄される。更に、nが2個のフリップフロップの数に等しい場合、そのビットは、(tを0より大きく設定することによって)フリップフロップの全てが同一結果を有する場合に、破棄される。このように、本発明は、フリップフロップが(複数の)1と(複数の)0の発生について均一な分布を有しないときでさえ、ランダム数発生器を提供することができる。準安定フリップフロップが1を発生する確率がpであり、且つ同じ準安定フリップフロップが0を発生する確率が(1−p)である場合、(pn+t)を越える個数の又は(pn―1)未満の個数の1が発生された場合に、1ビットが破棄される。例えば、nが10に等しく、pが0.7に等しく、tが1に等しい場合、そのビットは、9以上又は5以下の個数の1があった場合に、破棄される。
図4は、例えば、図1A、図1B及び図2に関連して上記で検討されたランダム数発生器100、200のコンポーネントを使用して実施されることができるコアランダム要素400を示す。図4に示されるように、コアランダム要素400は、フリップフロップ410と、可変遅延回路415、420と、同期回路430を含む。クロック信号は、クロック源(図示せず)によって発生される。上記で指摘したように、フリップフロップ410は、準安定動作を確実にするためにフリップフロップ410のセットアップ時間や保持時間(又はその両方)を故意に乱す入力によってクロックされる。セットアップ時間や保持時間は、例えば、可変遅延回路415、420を用いて乱され得る。フリップフロップ410は、例えば、Dタイプ、Tタイプ又はJKタイプのフリップフロップとして実施化されることができる。
上記で指摘したように、遅延回路415、420からの遅延、フリップフロップ410自体における固有の遅延、及び最も重要な準安定動作からの不均一遅延からの遅延は、波形Meta−stable outを、波形Clockに同期させないようにすることができる。従って、図4のコアランダム要素400を同期用に適用させるために、図4に示される装置が、波形Meta−stable outを波形Clockに同期するために設けられる。
図4に示される同期回路430は、容易に準安定状態にならないように選択される多数の直列フリップフロップ440〜442を含む。更に、これらのフリップフロップ440〜442の1つが、準安定になると、クロック信号の期間は十分に長くなり、準安定フリップフロップの出力が固定論理値(0か1のいずれか)に設定され、それによって信号が次のフィリップフロップ440〜442でサンプリングされると、そのフリップフロップが安定する。このように、各フリップフロップ440〜442は、あらゆる準安定性を除去する一方、波形Meta−stable outを波形Clockに同期する機会を改善する。出力Meta stable outと入力信号を比較して、それらが一致しないときに1が発生することがわかる。この不一致は、コアランダム要素400中のフリップフロップの1つが準安定になったときに発生し得るに過ぎない。従って、排他的(XOR)ゲートは、最初の記述においてXORゲート150で示されるように、コアランダム要素400によって発生されるビットを検出するように作用する。このコアランダム要素400の動作についての更なる詳細は、上記記載で参照され且つ参照によってここに組み込まれる同時継続中の関連出願を参照されたい。
図5は、本発明に従うランダム数発生器500を示す。先に指摘されたように、本発明は、1つのランダム数発生器に複数のフリップフロップを使用することによって、外部ノイズを用いた攻撃に対するランダム数発生器の感度を低下させるものである。図5に示される例示の実施の形態において、ランダム数発生器500は、図4に関連して上記で議論されたように、直列の2つのコアランダム要素400−1、400−2を含む。
クロック源は、クロック発振器530と、Qバー出力がD入力にフィードバックされるDタイプフリップフロップ525によって発生される。このように、Dタイプフリップフロップ525が、Tタイプフリップフロップ(トグル出力)のように動作して、2分割する機能を提供する。従って、例示のコアランダム要素400−1の入力は、(複数の)1と(複数の)0を交互させることによって駆動される。他の入力信号スキームが、図8に関連して以下で更に検討される。
図5に示されるように、コアランダム要素400−1の出力は、第2のコアランダム要素400−2に入力として印加される。コアランダム要素400−1、400−2の内の一方が、ノイズの影響を受けると、それらの両方が影響を受ける。従って、両方のコアランダム要素400−1、400−2が、同時にビットを出力すると、それらが排他的論理和(XOR)ゲート540、550によって検出されるように、ランダム数発生器500がノイズの影響を受けた可能性があり、出力されたビットは総て破棄される。従って、ランダム数発生器500は、一組の排他的論理和(XOR)回路540、550、560を含む。
第1の排他的論理和ゲート(「XOR」)540は、波形stable_outの同期化バージョンを(2分割フリップフロップ525の出力でサンプリングされた)波形Inputと比較する。XORゲート540の出力は、2つの出力が異なる場合且つその場合のみに、ハイであるので、コアランダム要素400−2からの波形Stable_outが、コアランダム要素のフリップフロップの1つが準安定になるときにのみ生じ得る入力信号に合致しない場合に、XORゲート540の出力はハイである。同様に、XORゲート550の出力は、その2つの入力が異なる場合且つその場合にのみ、ハイであるので、コアランダム要素400−2からの波形Stable_outがコアランダム要素400−1からの波形Stable_outに整合しない場合に、XORゲート550の出力はハイである。
次に、2つのXORゲート540、550の出力は、XORゲート560に印加される。XORゲート560の出力は、その2つの入力が異なる場合且つその場合のみに、ハイであるので、XORゲート560の出力は、両方のコアランダム要素400−1、400−2からの波形Stable_outがハイ又はローの場合には、ハイではない。換言すれば、XORゲート560は、両方のコアランダム要素400−1、400−2がビットを発生したときにのみ、ビットの生成を抑制する。
XORゲート560の出力は、シフトレジスタ570のエネーブル入力に印加される。従って、シフトレジスタ570は、唯一のコアランダム要素400からの波形Stable−outが各コアランダム要素400への入力と合致しない度に(即ち、「ミステーク」があるときに)、LFSR210からのマーキング信号であるLFSRマークから1ビットをシフトオーバーする。次に、発生されたビットは、コンピュータインターフェース580(又は他のアップリケーション)に印加される。
図6は、本発明に従うランダム数発生器600を示す。図6に示される例示の実施の形態において、このランダム数発生器600は、図4に関連して上記で検討された、並列の2つのコアランダム要素400−1、400−2を含む。図6に示される実施の形態は、図5の実施の形態における入力信号が異なる時間に2つのフリップフロップを通過する事実をアタッカーが利用することを防止するために特に有用である。
クロック源は、クロック発振器630と、Qバー出力がD入力にフィードバックされるDタイプフリップフロップ625によって発生される。このように、Dタイプフリップフロップ625が、Tタイプフリップフロップ(トグル出力)のように動作して、2分割機能を提供する。従って、並列の実施形態における両コアランダム要素400−1、400−2の入力は、1と0を交互させることによって駆動される。他の入力信号スキームが、図8に関連して以下で更に検討される。
図6に示されるように、ランダム数発生器600は、一組の排他的論理和(XOR)回路640、650、660を含む。図5の実施の形態と同様に、第1の排他的論理和(「XOR」)640は、波形Stable−outの同期バージョンを(2分割フリップフロップ625の出力でサンプリングされる)波形Inputと比較する。XORゲート640の出力は、2つの入力が異なる場合且つその場合のみに、ハイであるので、XORゲート640の出力は、コアランダム要素400−1からの波形Stable−outが入力信号と合致しない場合に、ハイである。同様に、XORゲート650の出力は、2つの入力が異なる場合且つその場合のみに、ハイであるので、XORゲート650の出力は、コアランダム要素400−2からの波形Stable−outが入力信号と合致しない場合に、ハイである。
次に、2つのXORゲート640、650の出力は、XORゲート660に印加される。XORゲート660の出力は、その2つの入力が異なる場合且つその場合のみに、ハイであるので、XORゲート660の出力は、両方のコアランダム要素400−1、400−2からの波形Stable_outがハイ又はローの場合には、ハイではない。換言すれば、XORゲート660は、両方のコアランダム要素400−1、400−2がビットを発生したときにのみ、ビットの生成を抑制する。
XORゲート660の出力は、シフトレジスタ670のエネーブル入力に印加される。従って、シフトレジスタ670は、唯一のコアランダム要素400からの波形Stable−outが入力信号と合致しない度に(即ち、「ミステーク」があるときに)、LFSR210からのマーキング信号であるLFSRマークから1ビットをシフトする。次に、発生されたビットは、コンピュータインターフェース680(又は他のアップリケーション)に印加される。
図7は、本発明の他の実施の形態に従うランダム数発生器700を示す。図7に示される例示の実施の形態において、ランダム数発生器600は、図4に関連して上記で検討された、並列の2つのコアランダム要素400−1、400−2を含み、第2のコアランダム要素400−2に対する入力信号を切り替えるためにインバータ710を用いる。従って、コアランダム要素400−2は、コアランダム要素400−1と同じ入力信号を有することはない。図7の実施の形態は、ランダム数発生の各ステップでのアタッカーを更に防止することができる。
ランダム数発生器700は、インバータ710に対する動作のほか、図6に関連して上記で検討されたランダム数発生器600と同様に動作する。
図8は、本発明の更に他の実施の形態に従うランダム数発生器800を示す。図8に示される例示の実施の形態において、第1のコアランダム要素400−1は、他のランダムコンポーネント400−2からのランダムビットの発生を起動するために用いられる。より詳細には、第1のコアランダム要素400−1でミステークが検出されたときにはいつでも、第2のコアランダム要素400−2の安定出力が、出力ストリームのために用いられる。そのミステークの検出は、上述のように、即ち、複数のコアランダム要素400を使用することによって、実行され得る。
図8に示されるように、ランダム数発生器800は、図4に関連して上記で検討されたように、2つのコアランダム要素400−1、400−2を含む。更に、クロック源830は、クロック信号を発生する。Qバー出力がそのD入力にフィードバックされるDタイプフリップフロップ825は、2分割機能を提供する。従って、コアランダム要素400−1の入力は、1と0とを交互させることによって駆動される。
ミステークは、排他的論理和(XOR)回路840を使用して第1のランダムコンポーネント400−1で検出される。排他的論理和ゲート(「XOR」)840は、コアランダム要素400−1からの波形Stable−outの同期バージョンを(2分割フリップフロップ825の出力でサンプリングされる)波形Inputと比較する。XORゲート840の出力は、その2つの入力が異なる場合且つその場合だけ、ハイであるので、XORゲート840の出力は、ランダムコンポーネント400−1からの波形Stable−outが、準安定動作に起因して、入力信号と合致しない場合に、ハイである。
XORゲート840の出力は、シフトレジスタ870のイネーブル入力に印加される。従って、シフトレジスタ870は、コアランダム要素400−1からの波形Stable−outが、入力信号に合致しない度に(即ち、「ミステーク」があるときに)、(コアランダム要素400−2によって駆動される)入力信号から1ビットシフトオーバーする。次に、発生されたビットは、コンピュータインターフェース880(又は他のアプリケーション)に印加される。コアランダム要素400−2は、図4に関連して上述の記載と同様に動作する。
ここで示され、記述された実施の形態及びそれらのバリエーションは、本発明の原理を例示しているに過ぎず、且つ種々の変更が、本発明の範囲と精神から逸脱することなく当業者によって実施され得ることを理解すべきである。
“Method and Apparatus for Generating Random Numbers Using Flip−Flop Meta−Stability(フリップフロップ準安定を使用してランダム数を発生するための方法及び装置)"と題する、2000年3月6日出願の米国特許出願シリアル番号09/519,549の教示に従ったランダム数発生器を示す。 図1Aのランダム数発生器の出力をクロック源と同期させるために利用することができる同期回路を示す。 図1Aと1Bの回路によって生成される一組の波形を示す。 “Method and Apparatus for Decorrelating a Random Number Generator Using a Pseudo−Random Sequence(擬似ランダムシーケンスを使用してランダム数発生器を相関解除するための方法及び装置)"と題する、2001年7月25日に出願の米国特許出願シリアル番号09/912,685の教示に従う他のランダム数発生器を示す。 図2と図1Bの回路によって生成される一組の波形を示す。 図1A、図1B及び図2と共に上述された、ランダム数発生器100、200のコンポーネントを使用して実施されるコアランダム要素を示す。 本発明に従うランダム数発生器の実施の形態を示す。 本発明に従うランダム数発生器の実施の形態を示す。 本発明に従うランダム数発生器の実施の形態を示す。 本発明に従うランダム数発生器の実施の形態を示す。

Claims (17)

  1. 準安定動作を確実にするために複数のフリップフロップを動作させるステップと、
    前記複数のフリップフロップのうちの1つのフリップフロップが準安定状態になった場合にはランダムビットを発生するステップと、
    前記複数のフリップフロップのうちの1つより多くのフリップフロップが同時に準安定状態になった場合にはランダムビットの発生を防止するステップとを備えたランダム数を発生する方法。
  2. 前記複数のフリップフロップが並行して駆動されることを特徴とする請求項1に記載の方法。
  3. 前記複数のフリップフロップのうちの少なくとも1つのフリップフロップは、前記複数のフリップフロップのうちの他の少なくとも1つのフリップフロップに接続されていることを特徴とする請求項1に記載の方法。
  4. 前記防止ステップは1つ又はそれ以上の排他的論理和(XOR)回路によって実行されることを特徴とする請求項1に記載の方法。
  5. 前記発生ステップは、前記複数のフリップフロップのうちの1つのフリップフロップの出力が、与えられた入力と合致しない場合、ランダムビットを選択するステップをさらに備えることを特徴とする請求項1に記載の方法。
  6. 前記複数のフリップフロップの各々の出力を局所クロック源に同期させるステップを更に備えることを特徴とする請求項1に記載の方法。
  7. 前記同期ステップを実行する同期回路は、前記フリップフロップよりも準安定になり難いことを特徴とする請求項6に記載の方法。
  8. ランダム数を生成するために複数の前記ランダムビットを収集するステップを更に備えることを特徴とする請求項1に記載の方法。
  9. 前記複数のフリップフロップのうちの第2のフリップフロップが第1のフリップフロップと同じ入力信号を有しないことを確実にするために、前記第2のフリップフロップに対する入力信号を変換するステップを更に備えることを特徴とする請求項1に記載の方法。
  10. 準安定動作を確実にするために動作される複数のフリップフロップであって、前記複数のフリップフロップの内の1つのフリップフロップが準安定状態になった場合にランダムビットを発生する複数のフリップフロップと、
    前記複数のフリップフロップのうちの1つより多くのフリップフロップが同時に準安定状態になった場合に、ランダムビットの発生を防止するための手段とを備えるランダム数発生器。
  11. 前記複数のフリップフロップが並行して駆動されることを特徴とする請求項10に記載のランダム数発生器。
  12. 前記複数のフリップフロップのうちの少なくとも1つのフリップフロップは、前記複数のフリップフロップのうちの他の少なくとも1つのフリップフロップに接続されることを特徴とする請求項10に記載のランダム数発生器。
  13. 前記ランダムビットの発生を防止する手段は、1又はそれ以上の排他的論理和(XOR)回路であることを特徴とする請求項10に記載のランダム数発生器。
  14. 前記複数のフリップフロップのうちの1つのフリップフロップの出力が、与えられた入力に合致しない場合に、前記複数のフリップフロップの前記準安定状態の検出が認められることを特徴とする請求項10に記載のランダム数発生器。
  15. 前記複数のフリップフロップの各々の出力を局所クロック源に同期させる同期回路を更に備えることを特徴とする請求項10に記載のランダム数発生器。
  16. 前記同期回路は、前記複数のフリップフロップよりも準安定に成り難いことを特徴とする請求項15に記載のランダム数発生器。
  17. 複数の前記ランダムビットは、ランダム数を生成するために収集されることを特徴とする請求項10に記載のランダム数発生器。
JP2003548191A 2001-11-29 2002-11-12 フリップフロップ準安定に基づくランダム数発生器に影響を及ぼすノイズを防止するための方法及び装置 Expired - Fee Related JP4234011B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/998,050 US6963888B2 (en) 2001-11-29 2001-11-29 Method and apparatus for preventing noise from influencing a random number generator based on flip-flop meta-stability
PCT/IB2002/004746 WO2003046840A2 (en) 2001-11-29 2002-11-12 Preventing noise influencing a random number generator

Publications (2)

Publication Number Publication Date
JP2005510923A JP2005510923A (ja) 2005-04-21
JP4234011B2 true JP4234011B2 (ja) 2009-03-04

Family

ID=25544690

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003548191A Expired - Fee Related JP4234011B2 (ja) 2001-11-29 2002-11-12 フリップフロップ準安定に基づくランダム数発生器に影響を及ぼすノイズを防止するための方法及び装置

Country Status (10)

Country Link
US (1) US6963888B2 (ja)
EP (1) EP1451676B1 (ja)
JP (1) JP4234011B2 (ja)
KR (1) KR20040063976A (ja)
CN (1) CN100414491C (ja)
AT (1) ATE416417T1 (ja)
AU (1) AU2002365491A1 (ja)
DE (1) DE60230179D1 (ja)
TW (1) TWI289247B (ja)
WO (1) WO2003046840A2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7113966B2 (en) * 2001-07-25 2006-09-26 Koninklijke Philips Electronics N.V. Method and apparatus for decorrelating a random number generator using a pseudo-random sequence
US20030236802A1 (en) * 2002-06-20 2003-12-25 Koninklijke Philips Electronics N.V. Method and apparatus for generating a random number using the meta-stable behavior of latches
WO2004017191A1 (ja) * 2002-08-14 2004-02-26 Institute For Advanced Studies Co., Ltd. 乱数生成装置及び乱数生成方法
US7302458B2 (en) * 2003-03-14 2007-11-27 Nxp B.V. Method and apparatus for choosing a combination of logic for generating random numbers using a difference signal
JP3732188B2 (ja) * 2003-03-31 2006-01-05 Necマイクロシステム株式会社 擬似乱数発生回路
EP1755033B1 (en) * 2004-05-24 2013-12-11 Leisure Electronics Technology Co., Ltd. Random number extraction method and random number generation device using the same
WO2007098095A2 (en) * 2006-02-16 2007-08-30 Lewis Daniel L Random-text display lighter
US8346832B2 (en) * 2006-10-12 2013-01-01 The Regents Of The University Of Michigan Random number generator
CN102662625A (zh) * 2012-04-06 2012-09-12 国网电力科学研究院 一种真随机数发生器及其实现方法
KR102083271B1 (ko) * 2012-07-31 2020-03-02 삼성전자주식회사 플래시 메모리의 물리적 특성을 이용하여 난수를 생성하는 플래시 메모리 시스템 및 그것의 난수 생성 방법
US9047152B2 (en) * 2013-01-16 2015-06-02 Skymedi Corporation Delay device, method, and random number generator using the same
US9335972B2 (en) * 2013-11-29 2016-05-10 The Regents Of The University Of Michigan True random number generator
TWI497409B (zh) * 2014-07-18 2015-08-21 Winbond Electronics Corp 亂數產生器及其亂數產生方法
US10331410B2 (en) * 2016-11-09 2019-06-25 Google Llc Hardened random number generator with ring oscillator collapse time random truncation
KR102652735B1 (ko) 2016-11-24 2024-04-02 삼성전자주식회사 조절 가능한 메타-스테이블 전압을 이용하는 난수 생성기 및 난수 생성 방법
CN111555753B (zh) * 2020-06-08 2020-12-18 上海奥令科电子科技有限公司 信号处理方法和装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5228054A (en) * 1992-04-03 1993-07-13 Qualcomm Incorporated Power-of-two length pseudo-noise sequence generator with fast offset adjustment
US5963104A (en) * 1996-04-15 1999-10-05 Vlsi Technology, Inc. Standard cell ring oscillator of a non-deterministic randomizer circuit
US5706218A (en) * 1996-05-15 1998-01-06 Intel Corporation Random number generator
JP2937919B2 (ja) * 1997-01-16 1999-08-23 日本電気アイシーマイコンシステム株式会社 疑似乱数発生回路
US6631390B1 (en) 2000-03-06 2003-10-07 Koninklijke Philips Electronics N.V. Method and apparatus for generating random numbers using flip-flop meta-stability
US6480072B1 (en) * 2000-04-18 2002-11-12 Advanced Micro Devices, Inc. Method and apparatus for generating random numbers
US7113966B2 (en) * 2001-07-25 2006-09-26 Koninklijke Philips Electronics N.V. Method and apparatus for decorrelating a random number generator using a pseudo-random sequence
US20030236802A1 (en) * 2002-06-20 2003-12-25 Koninklijke Philips Electronics N.V. Method and apparatus for generating a random number using the meta-stable behavior of latches

Also Published As

Publication number Publication date
KR20040063976A (ko) 2004-07-15
WO2003046840A3 (en) 2004-03-18
WO2003046840A2 (en) 2003-06-05
DE60230179D1 (de) 2009-01-15
TW200408922A (en) 2004-06-01
US6963888B2 (en) 2005-11-08
EP1451676A2 (en) 2004-09-01
AU2002365491A8 (en) 2003-06-10
ATE416417T1 (de) 2008-12-15
AU2002365491A1 (en) 2003-06-10
CN100414491C (zh) 2008-08-27
TWI289247B (en) 2007-11-01
CN1596395A (zh) 2005-03-16
JP2005510923A (ja) 2005-04-21
EP1451676B1 (en) 2008-12-03
US20030101205A1 (en) 2003-05-29

Similar Documents

Publication Publication Date Title
KR100847213B1 (ko) 난수 생성 방법 및 난수 생성기
JP4234011B2 (ja) フリップフロップ準安定に基づくランダム数発生器に影響を及ぼすノイズを防止するための方法及び装置
Golic New methods for digital generation and postprocessing of random data
US8150900B2 (en) Random number generation based on logic circuits with feedback
EP1782181B1 (en) Method and apparatus for generating random data
US7860912B1 (en) Random number generator with improved uniformity for networking
US20130346459A1 (en) Method for generating random numbers
EP1518164B1 (en) Method and apparatus for generating a random number using meta-stable latches
US7113966B2 (en) Method and apparatus for decorrelating a random number generator using a pseudo-random sequence
US20090327381A1 (en) True random number generator
US9582249B2 (en) Method for monitoring the output of a random generator
KR100576714B1 (ko) 디지털 로직을 이용한 난수 발생 장치 및 방법
CN214175074U (zh) 一种并行真随机数发生器及其载体
Blaszczyk et al. A novel modelled true random binary number generator for key stream generation in cryptographic applications
ÇİÇEK RANDOM NUMBER GENERATORS
Blaszczyk et al. Experimental validation of a novel chaotic circuit for true random binary digit generation in cryptographic module application

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080708

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081008

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081114

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081210

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121219

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131219

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees