(57)【特許請求の範囲】
【請求項１】
乱数発生器（１）であって、
第１の遅延値を入力信号に適用して第１の信号（１７）を得るのに適合した第１のデジタルデバイス（１１）、並びに、前記第１の遅延値から独立した第２の遅延値を前記入力信号に適用して第２の信号（１９）を得るのに適合した第２のデジタルデバイス（１２）を備えるエントロピ源（３）と、
前記第１及び第２の信号のうちの一方を基準クロックとして用いて他方の信号をサンプリングし、それによりサンプリングされた信号を得るように構成されたサンプリングユニット（５）と、
前記基準クロックに対する前記サンプリングされた信号の遅延差の測定を実行する測定手段（７）と、
前記サンプリングされた信号の前記測定された遅延差を監視し、前記測定された遅延差に関する所与の条件が満たされたときに構成信号を出力するのに適合したコントローラ回路（９）と、
を備え、
前記第１及び第２のデジタルデバイスは、複数の連続するステージをそれぞれ備え、前記ステージの各々は、それぞれ前記第１及び第２の遅延値を用いて前記第１及び第２の信号を生成するのに貢献し、ここで、各デジタルデバイスには、少なくとも２つの並列な多重化手段を備える少なくとも１つのステージ（１５）、先行ステージの前記少なくとも２つの並列な多重化手段のうちの１つにより出力された信号をそれぞれ前記第１又は第２の信号として選択する１つの多重化手段を備える出力ステージ（１６）、並びに、少なくとも２つのイネーブル回路を備える１つのステージ（１４）が存在し、前記イネーブル回路は、イネーブル信号及び前記入力信号を受け取って少なくとも前記少なくとも２つの多重化手段を有する前記ステージに前記入力信号を転送するように配置され、前記少なくとも２つの多重化手段の各々は前記少なくとも２つのイネーブル回路の各々に接続されかつ先行ステージからの入力信号を選択するための前記構成信号を前記コントローラ回路から受け取るように配置されている、
乱数発生器。
【請求項２】
前記第１及び第２のデジタルデバイス（１１，１２）のうちの少なくとも１つは、１つ以上のさらなるステージ（１５）を備え、当該ステージはそれぞれ少なくとも２つの多重化手段を備え、ここで、前記少なくとも２つの多重化手段は先行ステージの前記少なくとも２つの多重化手段にそれぞれ接続される、
請求項１に記載の乱数発生器。
【請求項３】
前記第１及び第２のデジタルデバイスはオシレータであり、前記第１及び第２の信号は異なる周波数を有する、
請求項１に記載の乱数発生器。
【請求項４】
前記オシレータはリングオシレータである、
請求項３に記載の乱数発生器。
【請求項５】
前記構成信号は、前記少なくとも２つの並列な多重化手段を備える前記少なくとも１つのステージの複数の多重化手段に適用される、
請求項１に記載の乱数発生器。
【請求項６】
前記測定された遅延差に関する前記所与の条件は、所定の範囲外の値が所与の数だけ連続して得られたことである、
請求項１に記載の乱数発生器。
【請求項７】
前記サンプリングユニットは、データフリップフロップを備える、
請求項１に記載の乱数発生器。
【請求項８】
前記イネーブル回路は、論理ＮＡＮＤゲートを備える、
請求項１に記載の乱数発生器。
【請求項９】
前記測定手段（７）は、前記コントローラ回路に組み込まれている、
請求項１に記載の乱数発生器。
【請求項１０】
前記多重化手段は、組み合わせ論理回路を備える、
請求項１に記載の乱数発生器。
【請求項１１】
前記コントローラ回路は、前記測定された遅延差の値が所与の範囲内にあるか否かをチェックするのに適合している、
請求項１に記載の乱数発生器。
【請求項１２】
再構成可能なハードウェアデバイス上で実装された、
請求項１に記載の乱数発生器。
【請求項１３】
前記再構成可能なハードウェアデバイスは、フィールドプログラマブルゲートアレイである、
請求項１２に記載の乱数発生器。
【請求項１４】
特定用途向け集積回路として実装された、
請求項１に記載の乱数発生器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、乱数発生器の分野に関し、詳細には、ハードウェア真乱数発生器に関する。
【背景技術】
【０００２】
乱数は様々な分野に応用されている。重要な応用分野の１つに暗号技術がある。乱数はセキュリティシステムにおいて秘密鍵を生成するために、チャレンジ・レスポンス・プロトコルのパラメータ、パディング値、マスク等として用いられ得る。他の応用分野としては、ゲーム（ダイスロール、カードシャッフル、ルーレット等）、信号処理及び画像処理、金融及び科学システムのモデリング等がある。乱数発生器はこのような応用分野で用いられる。真乱数は、ランダム性の源として機能する物理的なノイズ源から生成され、予測不可能であり、従って周期性を持たない。
【０００３】
例えばフィールドプログラマブルゲートアレイ（ＦＰＧＡ）等の再構成可能ハードウェアデバイスにおいて真乱数発生器（ＴＲＮＧ）を実装することは、設計者が利用可能なＴＲＮＧ固有のリソース及び技術が限られているため、困難である。ＦＰＧＡ等のハードウェアデバイスにおいてはデジタルリソースのみが利用可能のため、このようなＴＲＮＧの設計は通常、メモリエレメントのメタスタビリティ、又はフリーランニングオシレータのタイミングジッタの、２つの可能なノイズ生成プロセスのうちの１つに基づいて行われる。メタスタビリティは確率的特性が良好だが、メタスタビリティ状態に至るイベントのタイミングにおける正確な制御が求められる。この要件により、この種類のＴＲＮＧは設計が難しく、実世界への応用は実用的ではない。
【０００４】
従って、再構成可能ハードウェアデバイス上における実装のために調整されたＴＲＮＧの設計は、ほとんどの場合、エントロピ源としてタイミングジッタを用いる。しかしながら、このアプローチを採用する場合も、設計者は実装の実質的な課題に直面する。ＴＲＮＧ設計者は、異なるＦＰＧＡファミリ又はベンダ間におけるエントロピ源の移植性、さらに重要なこととして、同一の再構成可能ハードウェアデバイス間における設計の再現性等、追加の設計制約に対処する必要がある。すべてのディープサブマイクロメーターＣＭＯＳ技術に存在するプロセスバリエーションのため、製造されたデバイスはそれぞれ独自の特性を持つ。ジッタベースのＴＲＮＧの場合、これらのプロセスのばらつきは、主にロジックのタイミング遅延のばらつきで表現される。出力で最小レベルのエントロピ密度を実現するために、特定のＴＲＮＧ設計では、タイミング遅延のばらつきをある上限値以内に抑える必要がある。例えばＦＰＧＡ実装等では、ＴＲＮＧ回路を構成するプリミティブ（基本的な構造ブロック）の物理的な配置及び配線を設計者が非常に限定的に制御できるため、低タイミング遅延変動を実現することは容易ではない。
【０００５】
ＴＲＮＧは通常、手動でのセットアップ又は配置及び配線の制約を要求する。例えば、自己時限リングオシレータ（ＳＴＲ）又は遅延チェーンをベースにした設計では、ＦＰＧＡファミリ毎にセットアップを行わねばならない配置制約を必要とし、これらの設計の移植性が制限される。加えて、一部のエントロピ源は、ＦＰＧＡ上のすべての場所で正しく動作するわけではない。従って、適切な配置が見つかるまで、個々のデバイス毎に検索手順が必要となる。
【０００６】
従って、良好な移植性を達成するために、ＴＲＮＧ設計は、好ましくは、任意の最高性可能なハードウェアデバイスで利用可能な基本的なハードウェアプリミティブのみを用いて構築される。従って、これらの設計は、好ましくは、ロジックとメモリの実装にそれぞれルックアップテーブル（ＬＵＴ）及びフリップフロップ（ＦＦ）といったコンポーネントのみを必要とする。これらの制約を満たす設計が利用可能である。そのような設計の１つに、コヒーレントサンプリングリングオシレータベースＴＲＮＧ（ＣＯＳＯ−ＴＲＮＧ）がある。ＣＯＳＯ−ＴＲＮＧ実装は、最小限のチップ面積で１メガビット毎秒のスループットを達成できると説明されている。このようなＴＲＮＧ設計のエントロピ源は、２つの同一設計されたリングオシレータ（ＲＯ）から構成される。しかしながら、プロセス及びインターコネクトの遅延にはばらつきがあるため、ＦＰＧＡのような再構成可能デバイスの２つのＲＯの周期を一致させることは非常に難しい。このため、２つのよく一致したＲＯが偶然見つかるまで、検索手続きを適用する必要がある。この手続は同じＦＰＧＡファミリからのデバイスであったとしても各デバイスに対して繰り返されねばならず、この手間のため最新のＣＯＳＯ−ＴＲＮＧ実装は実用的ではない。
【０００７】
従って、良好な移植性及び再現性を確保するために基本的な構成要素のみが採用される乱数発生器が必要とされている。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の実施形態の目的は、生成器の設計労力を大幅に削減することを可能にするエントロピ源からなる真乱数発生器を提供することである。
【課題を解決するための手段】
【０００９】
上記の目的は、本発明に係る解決手段により達成される。
【００１０】
第１の態様において、本発明は、乱数発生器であって、
第１の遅延値を入力信号に適用して第１の信号を得るように配置された第１のデジタルデバイス、並びに、第１の遅延値から独立した第２の遅延値を入力信号に適用して第２の信号を得るように配置された第２のデジタルデバイスを備えるエントロピ源と、
第１及び第２の信号のうちの一方を基準クロックとして用いて他方の信号をサンプリングし、それによりサンプリングされた信号を得るように構成されたサンプリングユニットと、
基準クロックに対するサンプリングされた信号の遅延差の測定を実行する測定手段と、
サンプリングされた信号の測定された遅延差を監視し、計測された遅延差の値をチェックし、計測された遅延差に関する所与の条件が満たされたときに、構成信号を出力するように配置されたコントローラ回路と、
を備え、
第１及び第２のデジタルデバイスは、複数の連続するステージをそれぞれ備え、ステージの各々は、それぞれ第１及び第２の遅延を用いて第１及び第２の信号を生成するのに貢献し、ここで、各デジタルデバイスには、少なくとも２つの並列な多重化手段を備える少なくとも１つのステージ、第１及び第２の信号をそれぞれ出力する１つの多重化手段を備える出力ステージであって、第１及び第２の信号は対応する先行ステージの少なくとも２つの並列な多重化手段のうちの１つにより出力された信号である、出力ステージ、並びに、少なくとも２つのイネーブル回路を備える１つのステージが存在し、イネーブル回路は、外部のイネーブル信号及び入力信号を受け取って少なくとも少なくとも２つの多重化手段を有するステージに入力信号を転送するように配置され、少なくとも２つの多重化手段の各々は少なくとも２つのイネーブル回路の各々に接続されかつ先行ステージからの入力信号を選択するための構成信号をコントローラ回路から受け取るように配置されている、
乱数発生器に関する。
【００１１】
提案された解決手段により、コントローラ回路が２つのデジタルデバイス間の「良好な」マッチングを得るための検索を操作するため、設計の労力を大幅に削減することが可能となる。コントローラ回路は、デジタルデバイスのマッチングを監視し、監視された遅延差の値をチェックし、例えばそれらが所定の境界値の間にあるか否かを確認する。例えばサンプリングされた信号の基準クロック信号と比較した遅延差の値が所定の数だけ連続して所定の境界値の外にあるのが発見されて所与の条件が満たされると、コントローラ回路は、適用された構成を変更、即ちデジタルデバイスのマルチプレクサ構造を介して他の利用可能なパスを活性化するために、エントロピ源中のデジタルデバイスの少なくとも１つに構成信号を送信する。その後、乱数を導出するために、周期長の測定値の最下位ビットを用いることができる。
【００１２】
好適な実施形態において、第１及び第２のデジタルデバイス（１１，１２）のうちの少なくとも１つは、１つ以上のさらなるステージ（１５）を備え、当該ステージはそれぞれ少なくとも２つの多重化手段を備え、ここで、少なくとも２つの多重化手段は先行ステージの少なくとも２つの多重化手段にそれぞれ接続される。好ましくは、第１及び第２のデジタルデバイスの両方が、１つ以上のさらなるステージを備える。
【００１３】
本発明の実施形態において、第１及び第２のデジタルデバイスはオシレータであり、第１及び第２の信号は異なる周波数を有する。有利には、オシレータはリングオシレータである。
【００１４】
好適な実施形態において、構成信号は、少なくとも２つの並列な多重化手段を備える少なくとも１つのステージの複数の多重化手段に適用される。
【００１５】
別の実施形態において、上記の値に関する所与の条件は、所定の範囲外の値が所与の数だけ連続して得られたことである。
【００１６】
一実施形態において、サンプリングユニットは、データフリップフロップを備える。
【００１７】
好適な実施形態において、イネーブル回路は論理ＮＡＮＤゲートを備える。
【００１８】
一実施形態において、多重化手段は組み合わせ論理回路を備える。
【００１９】
ある実施形態において、コントローラは、前記計測された遅延差の前記値が所与の範囲内にあるか否かをチェックするのに適合している。
【００２０】
いくつかの実施形態において、先述の乱数発生器は、再構成可能なハードウェアデバイス上で実装される。有利には、当該再構成可能なハードウェアデバイスは、フィールドプログラマブルゲートアレイである。
【００２１】
他の実施形態において、先述の乱数発生器は、特定用途向け集積回路として実装される。
【００２２】
本発明と、先行技術に対して達成された利点とを要約する目的で、本発明の特定の目的及び利点が上述の本明細書に記載される。当然ながら、必ずしも全ての目的又は利点が、本発明の任意の特定の実施形態に従って達成され得るわけではないことは理解される。従って、例えば、当業者は、本明細書で教示又は示唆される他のオブジェクト又は利点を必ずしも達成することなく、本明細書で教示された１つ以上の利点を達成又は最適化するようなやり方で本発明を具体化又は実施し得ることが認識される。
【００２３】
本発明の上記及び他の態様は、以下に記載の実施形態を参照することで明らかになり、解明される。
【００２４】
本発明は、例示的なやり方で、添付の図面を参照しながら説明される。ここで、様々な図において、同様の参照番号は同様の要素を指す。
【図面の簡単な説明】
【００２５】
【図１】本発明に係る乱数発生器のハイレベルブロックスキームを示す図
【図２】エントロピ源に含まれるデジタルデバイスの実施形態を示す図
【図３】エントロピ源に含まれるデジタルデバイスの実施形態を示す図
【図４Ａ】マッチされたデジタルデバイスに対する需要を説明するための、悪いマッチングの場合の図
【図４Ｂ】マッチされたデジタルデバイスに対する需要を説明するための、良いマッチングの場合の図
【図５】タイミング遅延Δに対する最小エントロピ曲線及びＨＴＰ曲線の例を示す図
【図６】コントローラ内で実行されているアルゴリズムの可能な実装の単純化された疑似コードを示す図
【発明を実施するための形態】
【００２６】
本発明は、特定の実施形態について、特定の図面を参照しながら記載される。しかしながら、発明はそれにより限定されず、請求項によってのみ限定される。
【００２７】
さらに、本明細書及び特許請求の範囲における「第１の」「第２の」等の用語は、類似の要素を区別するために用いられており、時間的、空間的、順位的、又は他のどのようにも、必ずしも順序を記述するために用いられているわけではない。そのように用いられる用語は、適切な状況下で交換可能であり、本明細書に記載された本発明の実施形態は、本明細書に記載又は図示された実施形態とは異なる順序で動作可能であることが理解される。
【００２８】
特許請求の範囲で用いられる「含む（備える）」という用語は、その後に記載された手段に限定されると解釈されるべきではなく、他の要素又はステップを除外しないことには注目すべきである。従って、それは、言及されているような記載された特徴、整数、ステップ又は構成要素の存在を特定していると解釈されるべきであるが、１つ以上の他の特徴、整数、ステップ若しくは構成要素、又はそれらのグループの存在若しくは追加を除外しない。従って、「手段Ａ及びＢを含む（備える）デバイス」の表現の保護範囲は、構成要素Ａのみ、及び構成要素Ｂのみから構成されるデバイスに限定されるべきではない。それは、本発明に関して、デバイスの関連する構成要素がＡ及びＢのみであることを意味する。
【００２９】
本明細書全体を通して、「一実施形態」又は「ある実施形態」の記載は、実施形態に関連して記載された特定の特徴、構造又は特性が、本発明の少なくとも１つの実施形態に含まれていることを意味する。従って、本明細書中の様々な箇所における「一実施形態において」又は「ある実施形態において」の記述の出現は、必ずしもすべてが同じ実施形態を指すわけではないが、同じ実施形態を指すこともあり得る。さらに、特定の特徴、構造、又は特性は、本開示から当業者に明らかとなるように、１つ以上の実施形態において、任意の適切なやり方で組み合わせられ得る。
【００３０】
同様に、本発明の例示的な実施形態の説明において、開示を合理的なものとし、様々な発明の形態の１つ以上の理解を助ける目的で、本発明の様々な特徴を単独の実施形態、図面、又はその説明にまとめて記載することがあることは理解されるべきである。しかしながら、この開示のやり方は、請求項の発明が、各請求項で明示的に記述されているよりも多くの特徴を必要とするという意図を反映していると解釈されるべきではない。むしろ、以下の請求項に反映されているように、発明の形態は、開示された単一の実施形態のすべての特徴よりも少ない特徴の中に存在する。従って、詳細な説明に続く請求項は、各請求項が本発明の別個の実施形態として独立しているものとして、ここに明示的に本明細書に組み込まれる。
【００３１】
さらに、本明細書に記載のいくつかの実施形態は、他の実施形態に含まれるいくつかの（ただし他の特徴ではない）特徴を含むが、異なる実施形態の特徴の組み合わせは、当業者に理解されるように、発明の保護範囲に含まれ、異なる実施形態を形成することが意図されている。例えば、以下の請求項において、請求された実施形態のいずれかを任意の組み合わせで用いることができる。
【００３２】
本発明の特定の特徴又は態様を記載する際の特定の用語の使用は、本明細書において、その用語に関連する本発明の特徴又は態様の任意の特定の特性を含めるよう限定されるように用語が再定義されていることを示唆すると取られるべきではない。
【００３３】
本明細書で提供される説明において、多数の具体的な詳細が記載される。しかしながら、本発明の実施形態は、これらの特定の詳細なしに実施され得ることは理解される。他の実施例では、本明細書の理解を曖昧にしないために、周知の方法、構造及び技術は詳細には示されていない。
【００３４】
本発明は、特にエントロピ源の設計が様々な興味深い利点を提供する真乱数発生器を提案する。これにより、複雑なシステムにエントロピ源を簡単に統合することが可能になる。さらに、これにより再構成可能ハードウェアデバイス上における自動配置を行うことが可能となり、ある再構成可能ハードウェアデバイスのファミリから別の再構成可能ハードウェアデバイスのファミリに容易に移植することができる。また、これは乱数発生器のＡＳＩＣ実装にも適用できる。
【００３５】
図１は、本発明に係る乱数発生器（１）の高レベルスキームを示す。エントロピ源（３）は、第１の信号（１７）及び第２の信号（１９）を出力する。エントロピ源の設計では、真のランダム性を達成するために、２つの出力信号の動的タイミング遅延変動が利用される。エントロピ源は、エントロピ源から出力される信号のうちの１つをそれぞれ生成する２つのデジタルデバイス（１１，１２）を備える。ある実施形態において、デジタルデバイスは、デジタル遅延ラインとして実装される。各デジタルデバイスは、例えば入力クロック信号等の信号エッジを受信する。これはその後、遅延ライン内で所定量の時間（サンプルの対応する数（整数か否かに関わらず）としても表され得る）にわたり遅延される。しかしながら、クロック信号及びデジタル遅延ラインに存在する非決定性ジッタのため、各デジタルデバイスにより出力される信号は、非決定性遅延を有する。
【００３６】
図２は、エントロピ源のデジタルデバイスのある実施形態を示す。構成可能デジタルデバイスは、連続する複数のステージを用いて構築される。最小セットアップにおいて、デバイスは即ち、複数のイネーブル回路を備えるステージ（１４）と、それに続いて複数の多重化手段を含むステージ（１５）と、及び、先行ステージのマルチプレクサにより出力された信号から１つをデジタルデバイスの最終出力信号として選択する１つの多重化手段を含む出力ステージ（１６）と、を含む。好適な実施形態において、複数の多重化手段を含むステージは複数存在する。最終ステージ（１６）を除き、デジタルデバイスの各ステージは、並列に配置された複数のブロック（即ち、イネーブルステージではイネーブル回路、多重化ステージでは多重化手段）を含む。各イネーブル回路は、その出力が、後続のステージの様々な多重化手段の入力に接続されている。所与のあるステージにおける各多重化手段は、その入力が、先行ステージの異なるマルチプレクサの出力（又はイネーブル回路の出力）に接続される。好適な実施形態において、多重化手段は、組み合わせ論理回路として実装される。
【００３７】
図２に示す実施例において、各ステージは複数の並列ブロック（例えば４ブロック）を含む。複数の並列多重化コンポーネントを含む多重化手段のステージ（１５）はｎ個あり、従って、イネーブル回路のステージ（１４）及び、１つの多重化手段を含む出力ステージ（１６）と合わせて、１つのデジタルデバイスは合計ｎ＋２個のステージを有する。先述の通り、ｎの最小値は１に等しい。例えば４つの並列ブロックを持つトポロジの例は、エントロピ源の単一のデジタルデバイスにおける多重化ステージの構造を通る４ｎ＋１通りのパスを実現する。各遅延ライン要素は、いくつかの追加のジッタを導入する。これにより、各パスは、ジッタにより生じる変動性のため、わずかに異なる量の遅延を有する信号に帰結する。図２のようなアーキテクチャを有するエントロピ源には２つのそのようなデジタルデバイスが２つあるため、合計（４ｎ・４）２個の組み合わせが可能である。従って、２ｍ個のブロックを並列に配置した一般化したケースでは、（２ｍ（ｎ＋１））２通りのパスがある。
【００３８】
より一般化したケースにおいて、同じステージにおける異なるマルチプレクサへの入力が同一の構成信号に接続されている必要はない。２ｍ個のイネーブルゲートの各々は異なる入力を受け取ることができ、最後の多重化ステージからの２ｍ個の出力の各々が、出力ステージ（図示なし）により出力され得る。これが、図３に示すようなスキームとなる。この構成により、２ｎｍ２＾ｍ個の固有構成が可能となり、それらは２ｍ個の固有遅延ラインを構成し得る。
【００３９】
エントロピ源がどのように構成されるかを説明するために、先に図１の高レベルスキームの残りの部分を議論する必要がある。サンプリングユニット（５）において、エントロピ源から出力された遅延クロック信号のうちの１つが、基準クロックとしての他の遅延クロック信号を用いてサンプリングされる。これは図４に示される。結果のサンプリングされた信号は、低周波信号となる。サンプリングされた信号の基準クロック信号に対する遅延の差異が、測定手段（７）により測定される。エントロピ源の２つのデジタルデバイスにおける独立したランダムジッタのため、測定手段の結果（即ち測定された遅延差）は離散ランダム変数である。いくつかの実施形態において、測定手段は、サンプリングユニットにより用いられるのと同じクロック信号を用いるカウンタである。得られた離散ランダム変数は、可能な限り高い分散を有することが望ましい。一方で、分散はスループットに悪影響を及ぼすため、高すぎてはならない。その後、測定された周期長のうち最も小さいビットを、ランダムデータを生成するために用いることができる。図４は、上側のグラフが不一致デバイスを有するシナリオを示し、下側のグラフが一致デバイスを有するシナリオを示す。図４Ａの例において、信号はそれぞれ２５５ＭＨｚ及び４００ＭＨｚの周波数を有するが、サンプリングされた信号は依然比較的高い周波数を有し、測定された値は小さい。対して図４Ｂでは、第１の信号の周波数は３８５ＭＨｚまで増加している。このよりよい一致により、サンプリングされた信号（Ｓｂｅａｔ）がより低い周波数を有し、測定手段により得られた測定された遅延差（周期長）ｍｅａｓがより大きくなっていることが容易に見て取れる。しかしながら、サンプリングされた信号の１周期あたり１つのランダムビットのみが出力されるため、よりよい一致によりスループットが低下する。従って、スループットはエントロピとのトレードオフになり、これら２つの量の間のバランスを見つけねばならない。
【００４０】
基準クロック信号と比較して、サンプリングされた信号の遅延差は、測定値に対するサンプリングされた信号の周期長における変化としても見て取れる。従って、以下の説明において量ｍｅａｓは、遅延差ではなく周期長として解釈され得る。
【００４１】
十分に高い分散を得るためには、一致したデジタルデバイスが必要であり、従ってそれらの遅延タイミング値の比率を正確に制御できる必要がある。ここに例を示す。デバイスを一致させると、測定された信号の周期長が増加し、測定値も高くなる。ランダム変数ｍｅａｓの平均及び分散は、以下の式で示される。
【００４２】
【数１】
0006960697.tif 000002
【００４３】
【数２】
0006960697.tif 000003
【００４４】
ここで、Ｔｄｅｖ０及びＴｄｅｖ１は、エントロピ源から出力される信号の周期長を示す。これら２つの信号の間の周期差Δの平均及び分散は、以下の式で示される。
【００４５】
【数３】
0006960697.tif 000004
【００４６】
【数４】
0006960697.tif 000005
【００４７】
生成されたビットあたりのエントロピを計算するために、測定手段からの信号の統計的分布を知る必要がある。この分布を計算するために、サンプリングされた信号の平均周期長Ｅ［Ｔｄｅｖ０］、平均周期長差Ｅ［Δ］、ジッタ強度Ｖａｒ［Ｔｄｅｖ０］／Ｅ［Ｔｄｅｖ０］が変数として用いられる。ランダム変数Ｔｄｅｖ０及びＴｄｅｖ１は独立かつガウス分布であると仮定する。さらに、両方の信号の分散は等しいと仮定する（Ｖａｒ［Ｔｄｅｖ０］＝Ｖａｒ［Ｔｄｅｖ１］）。これは、これらが同じ技術で実装されており（同じジッタ強度を持つ）、周期差Ｅ［Δ］が小さいからである。計算された分布から、ゼロ／ワン（ｐ０／ｐ１）の確率は、以下の式で推定される。
【００４８】
【数５】
0006960697.tif 000006
【００４９】
最小エントロピは、以下のように計算される。
【数６】
0006960697.tif 000007
【００５０】
スループットＴは、以下の式と等しい。
【数７】
0006960697.tif 000008
【００５１】
既に示した通り、スループットは、２つのデジタルデバイスが厳密に一致したとき、エントロピとトレードオフとなる。従って、最小エントロピ−スループット積（ＨＴＰ）を、良好なエントロピ／スループットペアを見つけるための指標として用いることができる。上述の式により、ＨＴＰを推定することができる。図５はその例を示す。上側の曲線は、最小エントロピを示す。ＴＲＮＧのためのＡＩＳ  ３１規格によると、この最小エントロピは０．９１より高くあるべきである。これに適合する領域が、図中で陰付きになっている。この条件を満たす最小周期長の値の点を縦線で示す。測定された周期長の全ての値、又は、下の曲線においてその右側の周期長Δの全ての値が、ＡＩＳ−３１規格に適合した構成を提供する。しかし、下側の図にも反映されているように、さらに右にある構成はスループットが低下し、従ってあまり望ましくはない。スループットを最大化するためには、縦線に近い構成、好適にはそれに可能な限り近づけた構成が望ましい。図５のＨＴＰ曲線ではＥ［Δ］の特定の値に対して、最大ＨＴＰ値が達成され、これは、一方では十分なエントロピを提供するための長い蓄積時間と、他方では高いスループットの維持との間の、最良のトレードオフを示す。米国ＮＩＳＴ  ８００−９０Ｂ規格は、ＡＩＳ−３１規格のように生成される最小エントロピに厳密な制限を定義してはいない。最小エントロピの限定は、むしろアプリケーションにより用いられる後処理に依存する。本発明に係る解決策は、コントローラ入力Ｌ及びＨを変更することにより、この境界の柔軟な調整を提供する。
【００５２】
図１に示すように、コントローラ（９）は、測定手段により出力された信号ｍｅａｓを監視する。測定値は、例えば、所定の境界Ｌ，Ｈの範囲兄に収まっているかどうかがチェックされる。下界Ｌは、例えばＡＩＳ−３１規格で設定された上述の最小エントロピ値０．９１に対応する値であり得る。上界Ｈは、想定されるアプリケーションの最小スループット要件により決定され得る。このチェックが真であった場合、エントロピ源内のデジタルデバイスの同じ構成が維持される。他の場合、即ちＬとＨとの間の範囲内の値が見つからない場合、外れ値の数を数えるカウンタがインクリメントされる。所与の長さの連続した外れ値の列が見つかった場合、コントローラは更新された構成を選択し、対応する選択信号は、２つのデジタルデバイスの様々なマルチプレクサに送信されるか、又は、デバイスの構成設定のうちの１つだけを適合させる必要がある場合は、デジタルデバイスのうちの少なくとも１つに送信される。
【００５３】
図６は、コントローラ内で実行されるアルゴリズムの可能な実施形態を記載する単純化された擬似コードを示す。同一の目的を達成するための他のアルゴリズムが用いられ得ることは明白である。コントローラは、測定された信号が予め定義された境界Ｌ，Ｈの間の範囲にまだあるかどうかを監視し、必要に応じて新しいマルチプレクサの組み合わせ（Ｓｅｌｅｃｔ）を選択する。Ｅ［ｍｅａｓ］は、上述の式Ｅ［ｍｅａｓ］＝Ｅ［Ｔｄｅｖ０］／Ｅ［Δ］を通じて、２つのデジタルデバイスのマッチング（Ｅ［Δ］）に直接関連する。この特定の例において、構成設定を変更するための条件は、所与の長さ連続している境界Ｌ，Ｈの外側の値の列であることが仮定される。従って、１２７個の連続した「悪い」値が発生した場合、コントローラは、様々なステージの多重化手段の新しい設定を選択する。コントローラは、適切な構成が見つかるまで、可能な構成を順次実行していく。図５から、理想的な境界Ｌ，Ｈは、スループットを最大化して十分なエントロピを提供するように選択されねばならない。より小さい範囲［Ｌ；Ｈ）は、より精密な制御を可能にするが、適切な構成を見つけるためのコントローラの遅延を増加させる。
【００５４】
コントローラ内で実行されるアルゴリズムの他の実施形態において、新しい構成信号が選択される条件は、より厳密であってもよいし、より厳密でなくともよい。より肝要なアプリケーションは、上述の範囲外の値が１つ観測された後に新しい設定を要求し得る。他のアプリケーションでは、所定の範囲の外のより多くの値が許容され得る。新しい構成を選択する手順もまた、最適化され得る。コントローラは、可能性のある全ての構成を順次試すのではなく、それまでに観測された測定値に基づいて、望まないマッチングの発生が予測される特定の構成をスキップすることができる。
【００５５】
コントローラは、上述のように確率モデルを検証する構成を見つけるために、スタートアップ時に起動される。スタートアップの後、コントローラは測定手段の出力値を能動的にチェックし、必要に応じてデジタルデバイスを動的に再較正する。従って、本発明は、生成された値が所定の条件を満たすか否か（例えば所与のエントロピ範囲内に収まるか否か）をチェックするために、安価かつ簡単なテストを即座に実行することを可能にする。
【００５６】
図２又は図３に提案される乱数発生器におけるエントロピ源の構成可能な設計は、２つのデジタルデバイスのタイミング遅延（周期長）のマッチングを、例えばピコ秒オーダーの精度で制御することを可能にする。精度は、デジタルデバイスのステージ数及びゲート数に依存する。好適な実施形態において、遅延線を有するデジタルデバイスは、発振器として実装される。最も好適な実施形態において、デジタルデバイスはリングオシレータである。リングオシレータは、論理ゲートのカスケードのゲート遅延から形成される遅延線を用いる。
【００５７】
本発明の実施形態において、サンプリングユニットは、データフリップフロップとして実装され得る。他の実施形態において、サンプリングブロックは、トグルフリップフロップ（ＴＦＦ）を用いて実装され得る。この場合、どの信号が最初に受信されたかを判断できるようにするために、フリップフロップ／ラッチが必要となる。
【００５８】
コントローラは、様々なやり方で実装され得る。一実施形態において、コントローラは有限状態機械として実現される。他の実施形態において、コントローラは、例えばマイクロコントローラ上で実装され得る。いずれにせよ、コントローラにより導入される遅延を確実に低く保たねばならない。
【００５９】
有利な実施形態において、デジタルデバイスの第１のステージのイネーブル回路は、ＮＡＮＤゲートを用いて実装される。１つのＮＡＮＤゲート入力は、外部信号であり得る。別の実施形態において、信号は外部ではなくコントローラからの信号である。第２の入力信号は、遅延信号である。いくつかの実施形態において、この遅延信号は、外部制御ロジック（例えば乱数発生器が使用されるアプリケーション）から来る信号であり得る。他の実施形態において、例えば後述のリングオシレータを用いる実装では、遅延信号は、複数の多重化手段を用いて、最終ステージの出力からフィードバックされる。さらに他の実施形態において、例えば遷移効果リングオシレータの設計では、遅延信号は、同様のデバイスの出力から来る信号である。いくつかの実施形態において、ＮＡＮＤゲートは、それぞれ１つのルックアップテーブル（ＬＵＴ）により実装される。
【００６０】
サンプリングされた信号の遅延差（周期長）を測定するための測定手段は、サンプリングユニットが用いるクロック信号と同じクロック信号を受信するカウンタであり得る。例えば、８ビット又は１６ビットの非同期カウンタが用いられ得る。カウンタは、新たなランダムビットが生成されるたびにリセットされる。
【００６１】
デジタルデバイスに多重化ステージをいくつ提供するかは、設計上の選択である。ステージ数が多いと、可能性のある構成の数が増え、十分なマッチングを見つける可能性が増加する。一部のＦＰＧＡデバイスにおける実験において、１つ又は２つの多重化ステージのみでは、図５の斜線領域（最小エントロピ要件を満たす領域）内に収まる測定周期長を得るのが困難な場合があることが示されている。多重化ステージが３つ以上あれば、当該領域内でより多くの測定値が得られる。さらに、多重化ステージが多ければ多いほど、より多くの領域が消費される。従って、特定のＦＰＧＡデバイスにおいて、３つの多重化ステージを備えるデジタルデバイスが最も好適であり得る。
【００６２】
本発明の真乱数発生器のいくつかの実施形態において、エントロピ源の２つのデジタルデバイスは同じステージ数を有する。これは、望まれる遅延比率が１に近い場合に有利である。しかしながら、目標とする比率の一致が１と異なる他の実施形態において、２つのデジタルデバイスの数は異なる。
【００６３】
本発明に係る乱数発生器は、好ましくは、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）等の再構成可能なハードウェアデバイス上で実現される。本発明に係る解決手段は、乱数発生器の実装に必要となるのがＬＵＴ及びフリップフロップ等の基本的な構成ブロックのみであるという利点を提供する。従って、この解決手段は、再構成可能なハードウェアデバイスの１つのファミリから別のファミリへと容易に移植可能である。
【００６４】
また、ＦＰＧＡに基づく有利な実施形態において、マルチプレクサはＬＵＴで実装され得る。例えば、図２又は図３に示すように、４入力のマルチプレクサの場合、６入力のＬＵＴが用いられ得る。いくつかの実施形態において、マルチプレクサは組み合わせ回路として実現され得る。
【００６５】
有利な実施形態において、ＦＰＧＡベースの設計は、リングオシレータを用いる。得られた実施例として、コヒーレントサンプリングリングオシレータベースのＴＲＮＧ（ＣＯＳＯ−ＴＲＮＧ）、エレメンタリーリングオシレータベースのＴＲＮＧ（ＥＲＯ−ＴＲＮＧ）、遷移効果リングオシレータベースのＴＲＮＧ（ＴＥＲＯ−ＴＲＮＧ）、又は、セルフタイミングリングオシレータベースのＴＲＮＧ（ＳＴＲ−ＴＲＮＧ）等がある。
【００６６】
さらに、提案された解決手段は、チップ状の乱数発生器の広域配置（システム内の他の機能ブロックに対する位置）にかなりの柔軟性を提供する。チップ状の様々な位置において、エントロピ源のデジタルデバイスは一致され得る。これは、デジタルデバイス間で十分に一致するＦＰＧＡの位置を手動で見つけるために大規模な設計努力を必要としていた従来の解決手段と比較して、大きな利点である。製造されたデバイス毎に繰り返さねばならなかった当該設計努力は、提案された乱数発生器では不要となる。
【００６７】
提案された解決手段の利点の１つは、局所的な配置制約が不要、即ちエントロピ源を構成する個々のコンポーネントの相対的な位置及びルーティングが不要という点である。これにより、標準的なデジタル設計フローを用いて、最終的なアプリケーションを構成するデジタルロジックの残りの部分と一緒に提案された解決手段を実装することが可能となる。これにより、乱数生成の専門家でない設計者は、ランダム性生成回路の設計と広汎に関係する実装詳細から切り分けられる。この特性は、必要なマッチング結果を得るために回路を手動で配置及び配線していた従来の解決手段とは対照的である。
【００６８】
本発明に係る真乱数発生器は、必ずしも再構成可能なハードウェアデバイス上で実現される必要はない。特定の実施形態において、デバイスはＡＳＩＣ上で実装され得る。フルカスタムＡＳＩＣ設計及び標準セルＡＳＩＣ設計の両方が考えられる。フルカスタムＡＳＩＣ設計において、提案された回路は完全にデジタルであり、さらなるＣＭＯＳスケーリングの恩恵を受けることができる。これは、面積／エネルギー比率の点でより最適な他の解決手段とは対照的である。
【００６９】
本質的に、本発明の乱数発生器は、例えばＦＰＧＡファブリックに実装された２つのデジタルデバイスの自動遅延マッチング（又は周波数マッチング（これらは同じ意味））を可能にする。オンチップのコントローラアルゴリズムは、タイミング遅延の点で厳密に一致する２つのデジタルデバイスが得られる構成を見つけるまで、上述のように、様々な構成を順次試行する。構成設定が多数存在するため、パス伝搬遅延は最低で数ピコセカンド分解能で制御され得る。
【００７０】
本発明は、図面及び上述の説明において詳細に図示及び説明されてきたが、これらの図示及び説明は、例示又は例示的とみなされるべきであり、限定的ではない。上述の説明は、本発明の特定の実施形態を詳述する。しかしながら、上述の説明が文面でどれだけ詳細に示されていても、本発明は多くの方法で実施され得ることは理解される。本発明は、開示された実施形態に限定されない。
【００７１】
開示された実施形態に対する他の変形例は、図面、開示、及び添付の特許請求の範囲の検討から、当業者により理解され、効果を得られる。特許請求の範囲において、「構成する」「備える」の語は、他の要素又はステップを除外せず、「ある」「１つの」は、複数を除外しない。単一のプロセッサ又は他のユニットは、特許請求の範囲に引用された複数の物品の機能を果たし得る。特定の手段が互いに異なる従属請求項で引用されているというだけの事実は、これらの手段の組み合わせが有利に用いられ得ないことを示さない。コンピュータプログラムは、光記憶媒体又は他のハードウェアとともに、又は他のハードウェアの一部として提供される個体媒体等の適切な媒体に保存／配布され得るが、インターネット又は他の有線／無線の通信システムを介して配布されるような他の形態でも配布され得る。特許請求の範囲に記載の参照符号は、その範囲を限定すると解釈されるべきではない。
【００７２】
本願につながる本プロジェクト欧州連合（ＥＵ）のＥＲＣアドバンスドグラントカセドラルプロジェクト（Ａｄｖａｎｃｅｄ  Ｇｒａｎｔ  Ｃａｔｈｅｄｒａｌ  ｐｒｏｊｅｃｔ）から、グラント契約番号第ＥＲＣ−２０１５−ＡｄＧ  ６９５３０５号の元で資金提供を受けている。
【図１】
0006960697.tif 000009
【図２】
0006960697.tif 000010
【図３】
0006960697.tif 000011
【図４Ａ】
0006960697.tif 000012
【図４Ｂ】
0006960697.tif 000013
【図５】
0006960697.tif 000014
【図６】
0006960697.tif 000015