【新規性喪失の例外の表示】特許法第30条第2項適用 2019年9月6日、アドリアーン・ペーテルマンス、ヴラジーミル・ロジック、およびイングリッド・フェルバウヘーデにより、ベルギー、ルーヴァンのカトリーケ・ユニフェルシテイト・ルーヴァンにて行われたCOSIC(The Computer Security and Industrial Cryptography research group)セミナーにおいて発表。
(58)【調査した分野】(Int.Cl.,DB名)
前記第1及び第2のデジタルデバイス(11,12)のうちの少なくとも1つは、1つ以上のさらなるステージ(15)を備え、当該ステージはそれぞれ少なくとも2つの多重化手段を備え、ここで、前記少なくとも2つの多重化手段は先行ステージの前記少なくとも2つの多重化手段にそれぞれ接続される、
請求項1に記載の乱数発生器。
【背景技術】
【0002】
乱数は様々な分野に応用されている。重要な応用分野の1つに暗号技術がある。乱数はセキュリティシステムにおいて秘密鍵を生成するために、チャレンジ・レスポンス・プロトコルのパラメータ、パディング値、マスク等として用いられ得る。他の応用分野としては、ゲーム(ダイスロール、カードシャッフル、ルーレット等)、信号処理及び画像処理、金融及び科学システムのモデリング等がある。乱数発生器はこのような応用分野で用いられる。真乱数は、ランダム性の源として機能する物理的なノイズ源から生成され、予測不可能であり、従って周期性を持たない。
【0003】
例えばフィールドプログラマブルゲートアレイ(FPGA)等の再構成可能ハードウェアデバイスにおいて真乱数発生器(TRNG)を実装することは、設計者が利用可能なTRNG固有のリソース及び技術が限られているため、困難である。FPGA等のハードウェアデバイスにおいてはデジタルリソースのみが利用可能のため、このようなTRNGの設計は通常、メモリエレメントのメタスタビリティ、又はフリーランニングオシレータのタイミングジッタの、2つの可能なノイズ生成プロセスのうちの1つに基づいて行われる。メタスタビリティは確率的特性が良好だが、メタスタビリティ状態に至るイベントのタイミングにおける正確な制御が求められる。この要件により、この種類のTRNGは設計が難しく、実世界への応用は実用的ではない。
【0004】
従って、再構成可能ハードウェアデバイス上における実装のために調整されたTRNGの設計は、ほとんどの場合、エントロピ源としてタイミングジッタを用いる。しかしながら、このアプローチを採用する場合も、設計者は実装の実質的な課題に直面する。TRNG設計者は、異なるFPGAファミリ又はベンダ間におけるエントロピ源の移植性、さらに重要なこととして、同一の再構成可能ハードウェアデバイス間における設計の再現性等、追加の設計制約に対処する必要がある。すべてのディープサブマイクロメーターCMOS技術に存在するプロセスバリエーションのため、製造されたデバイスはそれぞれ独自の特性を持つ。ジッタベースのTRNGの場合、これらのプロセスのばらつきは、主にロジックのタイミング遅延のばらつきで表現される。出力で最小レベルのエントロピ密度を実現するために、特定のTRNG設計では、タイミング遅延のばらつきをある上限値以内に抑える必要がある。例えばFPGA実装等では、TRNG回路を構成するプリミティブ(基本的な構造ブロック)の物理的な配置及び配線を設計者が非常に限定的に制御できるため、低タイミング遅延変動を実現することは容易ではない。
【0005】
TRNGは通常、手動でのセットアップ又は配置及び配線の制約を要求する。例えば、自己時限リングオシレータ(STR)又は遅延チェーンをベースにした設計では、FPGAファミリ毎にセットアップを行わねばならない配置制約を必要とし、これらの設計の移植性が制限される。加えて、一部のエントロピ源は、FPGA上のすべての場所で正しく動作するわけではない。従って、適切な配置が見つかるまで、個々のデバイス毎に検索手順が必要となる。
【0006】
従って、良好な移植性を達成するために、TRNG設計は、好ましくは、任意の最高性可能なハードウェアデバイスで利用可能な基本的なハードウェアプリミティブのみを用いて構築される。従って、これらの設計は、好ましくは、ロジックとメモリの実装にそれぞれルックアップテーブル(LUT)及びフリップフロップ(FF)といったコンポーネントのみを必要とする。これらの制約を満たす設計が利用可能である。そのような設計の1つに、コヒーレントサンプリングリングオシレータベースTRNG(COSO−TRNG)がある。COSO−TRNG実装は、最小限のチップ面積で1メガビット毎秒のスループットを達成できると説明されている。このようなTRNG設計のエントロピ源は、2つの同一設計されたリングオシレータ(RO)から構成される。しかしながら、プロセス及びインターコネクトの遅延にはばらつきがあるため、FPGAのような再構成可能デバイスの2つのROの周期を一致させることは非常に難しい。このため、2つのよく一致したROが偶然見つかるまで、検索手続きを適用する必要がある。この手続は同じFPGAファミリからのデバイスであったとしても各デバイスに対して繰り返されねばならず、この手間のため最新のCOSO−TRNG実装は実用的ではない。
【0007】
従って、良好な移植性及び再現性を確保するために基本的な構成要素のみが採用される乱数発生器が必要とされている。
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明の実施形態の目的は、生成器の設計労力を大幅に削減することを可能にするエントロピ源からなる真乱数発生器を提供することである。
【課題を解決するための手段】
【0009】
上記の目的は、本発明に係る解決手段により達成される。
【0010】
第1の態様において、本発明は、乱数発生器であって、
第1の遅延値を入力信号に適用して第1の信号を得るように配置された第1のデジタルデバイス、並びに、第1の遅延値から独立した第2の遅延値を入力信号に適用して第2の信号を得るように配置された第2のデジタルデバイスを備えるエントロピ源と、
第1及び第2の信号のうちの一方を基準クロックとして用いて他方の信号をサンプリングし、それによりサンプリングされた信号を得るように構成されたサンプリングユニットと、
基準クロックに対するサンプリングされた信号の遅延差の測定を実行する測定手段と、
サンプリングされた信号の測定された遅延差を監視し、計測された遅延差の値をチェックし、計測された遅延差に関する所与の条件が満たされたときに、構成信号を出力するように配置されたコントローラ回路と、
を備え、
第1及び第2のデジタルデバイスは、複数の連続するステージをそれぞれ備え、ステージの各々は、それぞれ第1及び第2の遅延を用いて第1及び第2の信号を生成するのに貢献し、ここで、各デジタルデバイスには、少なくとも2つの並列な多重化手段を備える少なくとも1つのステージ、第1及び第2の信号をそれぞれ出力する1つの多重化手段を備える出力ステージであって、第1及び第2の信号は対応する先行ステージの少なくとも2つの並列な多重化手段のうちの1つにより出力された信号である、出力ステージ、並びに、少なくとも2つのイネーブル回路を備える1つのステージが存在し、イネーブル回路は、外部のイネーブル信号及び入力信号を受け取って少なくとも少なくとも2つの多重化手段を有するステージに入力信号を転送するように配置され、少なくとも2つの多重化手段の各々は少なくとも2つのイネーブル回路の各々に接続されかつ先行ステージからの入力信号を選択するための構成信号をコントローラ回路から受け取るように配置されている、
乱数発生器に関する。
【0011】
提案された解決手段により、コントローラ回路が2つのデジタルデバイス間の「良好な」マッチングを得るための検索を操作するため、設計の労力を大幅に削減することが可能となる。コントローラ回路は、デジタルデバイスのマッチングを監視し、監視された遅延差の値をチェックし、例えばそれらが所定の境界値の間にあるか否かを確認する。例えばサンプリングされた信号の基準クロック信号と比較した遅延差の値が所定の数だけ連続して所定の境界値の外にあるのが発見されて所与の条件が満たされると、コントローラ回路は、適用された構成を変更、即ちデジタルデバイスのマルチプレクサ構造を介して他の利用可能なパスを活性化するために、エントロピ源中のデジタルデバイスの少なくとも1つに構成信号を送信する。その後、乱数を導出するために、周期長の測定値の最下位ビットを用いることができる。
【0012】
好適な実施形態において、第1及び第2のデジタルデバイス(11,12)のうちの少なくとも1つは、1つ以上のさらなるステージ(15)を備え、当該ステージはそれぞれ少なくとも2つの多重化手段を備え、ここで、少なくとも2つの多重化手段は先行ステージの少なくとも2つの多重化手段にそれぞれ接続される。好ましくは、第1及び第2のデジタルデバイスの両方が、1つ以上のさらなるステージを備える。
【0013】
本発明の実施形態において、第1及び第2のデジタルデバイスはオシレータであり、第1及び第2の信号は異なる周波数を有する。有利には、オシレータはリングオシレータである。
【0014】
好適な実施形態において、構成信号は、少なくとも2つの並列な多重化手段を備える少なくとも1つのステージの複数の多重化手段に適用される。
【0015】
別の実施形態において、上記の値に関する所与の条件は、所定の範囲外の値が所与の数だけ連続して得られたことである。
【0016】
一実施形態において、サンプリングユニットは、データフリップフロップを備える。
【0017】
好適な実施形態において、イネーブル回路は論理NANDゲートを備える。
【0018】
一実施形態において、多重化手段は組み合わせ論理回路を備える。
【0019】
ある実施形態において、コントローラは、前記計測された遅延差の前記値が所与の範囲内にあるか否かをチェックするのに適合している。
【0020】
いくつかの実施形態において、先述の乱数発生器は、再構成可能なハードウェアデバイス上で実装される。有利には、当該再構成可能なハードウェアデバイスは、フィールドプログラマブルゲートアレイである。
【0021】
他の実施形態において、先述の乱数発生器は、特定用途向け集積回路として実装される。
【0022】
本発明と、先行技術に対して達成された利点とを要約する目的で、本発明の特定の目的及び利点が上述の本明細書に記載される。当然ながら、必ずしも全ての目的又は利点が、本発明の任意の特定の実施形態に従って達成され得るわけではないことは理解される。従って、例えば、当業者は、本明細書で教示又は示唆される他のオブジェクト又は利点を必ずしも達成することなく、本明細書で教示された1つ以上の利点を達成又は最適化するようなやり方で本発明を具体化又は実施し得ることが認識される。
【0023】
本発明の上記及び他の態様は、以下に記載の実施形態を参照することで明らかになり、解明される。
【0024】
本発明は、例示的なやり方で、添付の図面を参照しながら説明される。ここで、様々な図において、同様の参照番号は同様の要素を指す。
【発明を実施するための形態】
【0026】
本発明は、特定の実施形態について、特定の図面を参照しながら記載される。しかしながら、発明はそれにより限定されず、請求項によってのみ限定される。
【0027】
さらに、本明細書及び特許請求の範囲における「第1の」「第2の」等の用語は、類似の要素を区別するために用いられており、時間的、空間的、順位的、又は他のどのようにも、必ずしも順序を記述するために用いられているわけではない。そのように用いられる用語は、適切な状況下で交換可能であり、本明細書に記載された本発明の実施形態は、本明細書に記載又は図示された実施形態とは異なる順序で動作可能であることが理解される。
【0028】
特許請求の範囲で用いられる「含む(備える)」という用語は、その後に記載された手段に限定されると解釈されるべきではなく、他の要素又はステップを除外しないことには注目すべきである。従って、それは、言及されているような記載された特徴、整数、ステップ又は構成要素の存在を特定していると解釈されるべきであるが、1つ以上の他の特徴、整数、ステップ若しくは構成要素、又はそれらのグループの存在若しくは追加を除外しない。従って、「手段A及びBを含む(備える)デバイス」の表現の保護範囲は、構成要素Aのみ、及び構成要素Bのみから構成されるデバイスに限定されるべきではない。それは、本発明に関して、デバイスの関連する構成要素がA及びBのみであることを意味する。
【0029】
本明細書全体を通して、「一実施形態」又は「ある実施形態」の記載は、実施形態に関連して記載された特定の特徴、構造又は特性が、本発明の少なくとも1つの実施形態に含まれていることを意味する。従って、本明細書中の様々な箇所における「一実施形態において」又は「ある実施形態において」の記述の出現は、必ずしもすべてが同じ実施形態を指すわけではないが、同じ実施形態を指すこともあり得る。さらに、特定の特徴、構造、又は特性は、本開示から当業者に明らかとなるように、1つ以上の実施形態において、任意の適切なやり方で組み合わせられ得る。
【0030】
同様に、本発明の例示的な実施形態の説明において、開示を合理的なものとし、様々な発明の形態の1つ以上の理解を助ける目的で、本発明の様々な特徴を単独の実施形態、図面、又はその説明にまとめて記載することがあることは理解されるべきである。しかしながら、この開示のやり方は、請求項の発明が、各請求項で明示的に記述されているよりも多くの特徴を必要とするという意図を反映していると解釈されるべきではない。むしろ、以下の請求項に反映されているように、発明の形態は、開示された単一の実施形態のすべての特徴よりも少ない特徴の中に存在する。従って、詳細な説明に続く請求項は、各請求項が本発明の別個の実施形態として独立しているものとして、ここに明示的に本明細書に組み込まれる。
【0031】
さらに、本明細書に記載のいくつかの実施形態は、他の実施形態に含まれるいくつかの(ただし他の特徴ではない)特徴を含むが、異なる実施形態の特徴の組み合わせは、当業者に理解されるように、発明の保護範囲に含まれ、異なる実施形態を形成することが意図されている。例えば、以下の請求項において、請求された実施形態のいずれかを任意の組み合わせで用いることができる。
【0032】
本発明の特定の特徴又は態様を記載する際の特定の用語の使用は、本明細書において、その用語に関連する本発明の特徴又は態様の任意の特定の特性を含めるよう限定されるように用語が再定義されていることを示唆すると取られるべきではない。
【0033】
本明細書で提供される説明において、多数の具体的な詳細が記載される。しかしながら、本発明の実施形態は、これらの特定の詳細なしに実施され得ることは理解される。他の実施例では、本明細書の理解を曖昧にしないために、周知の方法、構造及び技術は詳細には示されていない。
【0034】
本発明は、特にエントロピ源の設計が様々な興味深い利点を提供する真乱数発生器を提案する。これにより、複雑なシステムにエントロピ源を簡単に統合することが可能になる。さらに、これにより再構成可能ハードウェアデバイス上における自動配置を行うことが可能となり、ある再構成可能ハードウェアデバイスのファミリから別の再構成可能ハードウェアデバイスのファミリに容易に移植することができる。また、これは乱数発生器のASIC実装にも適用できる。
【0035】
図1は、本発明に係る乱数発生器(1)の高レベルスキームを示す。エントロピ源(3)は、第1の信号(17)及び第2の信号(19)を出力する。エントロピ源の設計では、真のランダム性を達成するために、2つの出力信号の動的タイミング遅延変動が利用される。エントロピ源は、エントロピ源から出力される信号のうちの1つをそれぞれ生成する2つのデジタルデバイス(11,12)を備える。ある実施形態において、デジタルデバイスは、デジタル遅延ラインとして実装される。各デジタルデバイスは、例えば入力クロック信号等の信号エッジを受信する。これはその後、遅延ライン内で所定量の時間(サンプルの対応する数(整数か否かに関わらず)としても表され得る)にわたり遅延される。しかしながら、クロック信号及びデジタル遅延ラインに存在する非決定性ジッタのため、各デジタルデバイスにより出力される信号は、非決定性遅延を有する。
【0036】
図2は、エントロピ源のデジタルデバイスのある実施形態を示す。構成可能デジタルデバイスは、連続する複数のステージを用いて構築される。最小セットアップにおいて、デバイスは即ち、複数のイネーブル回路を備えるステージ(14)と、それに続いて複数の多重化手段を含むステージ(15)と、及び、先行ステージのマルチプレクサにより出力された信号から1つをデジタルデバイスの最終出力信号として選択する1つの多重化手段を含む出力ステージ(16)と、を含む。好適な実施形態において、複数の多重化手段を含むステージは複数存在する。最終ステージ(16)を除き、デジタルデバイスの各ステージは、並列に配置された複数のブロック(即ち、イネーブルステージではイネーブル回路、多重化ステージでは多重化手段)を含む。各イネーブル回路は、その出力が、後続のステージの様々な多重化手段の入力に接続されている。所与のあるステージにおける各多重化手段は、その入力が、先行ステージの異なるマルチプレクサの出力(又はイネーブル回路の出力)に接続される。好適な実施形態において、多重化手段は、組み合わせ論理回路として実装される。
【0037】
図2に示す実施例において、各ステージは複数の並列ブロック(例えば4ブロック)を含む。複数の並列多重化コンポーネントを含む多重化手段のステージ(15)はn個あり、従って、イネーブル回路のステージ(14)及び、1つの多重化手段を含む出力ステージ(16)と合わせて、1つのデジタルデバイスは合計n+2個のステージを有する。先述の通り、nの最小値は1に等しい。例えば4つの並列ブロックを持つトポロジの例は、エントロピ源の単一のデジタルデバイスにおける多重化ステージの構造を通る4
n+1通りのパスを実現する。各遅延ライン要素は、いくつかの追加のジッタを導入する。これにより、各パスは、ジッタにより生じる変動性のため、わずかに異なる量の遅延を有する信号に帰結する。
図2のようなアーキテクチャを有するエントロピ源には2つのそのようなデジタルデバイスが2つあるため、合計(4
n・4)
2個の組み合わせが可能である。従って、2m個のブロックを並列に配置した一般化したケースでは、(2
m(n+1))
2通りのパスがある。
【0038】
より一般化したケースにおいて、同じステージにおける異なるマルチプレクサへの入力が同一の構成信号に接続されている必要はない。2
m個のイネーブルゲートの各々は異なる入力を受け取ることができ、最後の多重化ステージからの2
m個の出力の各々が、出力ステージ(図示なし)により出力され得る。これが、
図3に示すようなスキームとなる。この構成により、2
nm2^m個の固有構成が可能となり、それらは2
m個の固有遅延ラインを構成し得る。
【0039】
エントロピ源がどのように構成されるかを説明するために、先に
図1の高レベルスキームの残りの部分を議論する必要がある。サンプリングユニット(5)において、エントロピ源から出力された遅延クロック信号のうちの1つが、基準クロックとしての他の遅延クロック信号を用いてサンプリングされる。これは
図4に示される。結果のサンプリングされた信号は、低周波信号となる。サンプリングされた信号の基準クロック信号に対する遅延の差異が、測定手段(7)により測定される。エントロピ源の2つのデジタルデバイスにおける独立したランダムジッタのため、測定手段の結果(即ち測定された遅延差)は離散ランダム変数である。いくつかの実施形態において、測定手段は、サンプリングユニットにより用いられるのと同じクロック信号を用いるカウンタである。得られた離散ランダム変数は、可能な限り高い分散を有することが望ましい。一方で、分散はスループットに悪影響を及ぼすため、高すぎてはならない。その後、測定された周期長のうち最も小さいビットを、ランダムデータを生成するために用いることができる。
図4は、上側のグラフが不一致デバイスを有するシナリオを示し、下側のグラフが一致デバイスを有するシナリオを示す。
図4Aの例において、信号はそれぞれ255MHz及び400MHzの周波数を有するが、サンプリングされた信号は依然比較的高い周波数を有し、測定された値は小さい。対して
図4Bでは、第1の信号の周波数は385MHzまで増加している。このよりよい一致により、サンプリングされた信号(Sbeat)がより低い周波数を有し、測定手段により得られた測定された遅延差(周期長)measがより大きくなっていることが容易に見て取れる。しかしながら、サンプリングされた信号の1周期あたり1つのランダムビットのみが出力されるため、よりよい一致によりスループットが低下する。従って、スループットはエントロピとのトレードオフになり、これら2つの量の間のバランスを見つけねばならない。
【0040】
基準クロック信号と比較して、サンプリングされた信号の遅延差は、測定値に対するサンプリングされた信号の周期長における変化としても見て取れる。従って、以下の説明において量measは、遅延差ではなく周期長として解釈され得る。
【0041】
十分に高い分散を得るためには、一致したデジタルデバイスが必要であり、従ってそれらの遅延タイミング値の比率を正確に制御できる必要がある。ここに例を示す。デバイスを一致させると、測定された信号の周期長が増加し、測定値も高くなる。ランダム変数measの平均及び分散は、以下の式で示される。
【0044】
ここで、T
dev0及びT
dev1は、エントロピ源から出力される信号の周期長を示す。これら2つの信号の間の周期差Δの平均及び分散は、以下の式で示される。
【0047】
生成されたビットあたりのエントロピを計算するために、測定手段からの信号の統計的分布を知る必要がある。この分布を計算するために、サンプリングされた信号の平均周期長E[Tdev0]、平均周期長差E[Δ]、ジッタ強度Var[Tdev0]/E[Tdev0]が変数として用いられる。ランダム変数Tdev0及びTdev1は独立かつガウス分布であると仮定する。さらに、両方の信号の分散は等しいと仮定する(Var[Tdev0]=Var[Tdev1])。これは、これらが同じ技術で実装されており(同じジッタ強度を持つ)、周期差E[Δ]が小さいからである。計算された分布から、ゼロ/ワン(p0/p1)の確率は、以下の式で推定される。
【0049】
最小エントロピは、以下のように計算される。
【数6】
【0050】
スループットTは、以下の式と等しい。
【数7】
【0051】
既に示した通り、スループットは、2つのデジタルデバイスが厳密に一致したとき、エントロピとトレードオフとなる。従って、最小エントロピ−スループット積(HTP)を、良好なエントロピ/スループットペアを見つけるための指標として用いることができる。上述の式により、HTPを推定することができる。
図5はその例を示す。上側の曲線は、最小エントロピを示す。TRNGのためのAIS 31規格によると、この最小エントロピは0.91より高くあるべきである。これに適合する領域が、図中で陰付きになっている。この条件を満たす最小周期長の値の点を縦線で示す。測定された周期長の全ての値、又は、下の曲線においてその右側の周期長Δの全ての値が、AIS−31規格に適合した構成を提供する。しかし、下側の図にも反映されているように、さらに右にある構成はスループットが低下し、従ってあまり望ましくはない。スループットを最大化するためには、縦線に近い構成、好適にはそれに可能な限り近づけた構成が望ましい。
図5のHTP曲線ではE[Δ]の特定の値に対して、最大HTP値が達成され、これは、一方では十分なエントロピを提供するための長い蓄積時間と、他方では高いスループットの維持との間の、最良のトレードオフを示す。米国NIST 800−90B規格は、AIS−31規格のように生成される最小エントロピに厳密な制限を定義してはいない。最小エントロピの限定は、むしろアプリケーションにより用いられる後処理に依存する。本発明に係る解決策は、コントローラ入力L及びHを変更することにより、この境界の柔軟な調整を提供する。
【0052】
図1に示すように、コントローラ(9)は、測定手段により出力された信号measを監視する。測定値は、例えば、所定の境界L,Hの範囲兄に収まっているかどうかがチェックされる。下界Lは、例えばAIS−31規格で設定された上述の最小エントロピ値0.91に対応する値であり得る。上界Hは、想定されるアプリケーションの最小スループット要件により決定され得る。このチェックが真であった場合、エントロピ源内のデジタルデバイスの同じ構成が維持される。他の場合、即ちLとHとの間の範囲内の値が見つからない場合、外れ値の数を数えるカウンタがインクリメントされる。所与の長さの連続した外れ値の列が見つかった場合、コントローラは更新された構成を選択し、対応する選択信号は、2つのデジタルデバイスの様々なマルチプレクサに送信されるか、又は、デバイスの構成設定のうちの1つだけを適合させる必要がある場合は、デジタルデバイスのうちの少なくとも1つに送信される。
【0053】
図6は、コントローラ内で実行されるアルゴリズムの可能な実施形態を記載する単純化された擬似コードを示す。同一の目的を達成するための他のアルゴリズムが用いられ得ることは明白である。コントローラは、測定された信号が予め定義された境界L,Hの間の範囲にまだあるかどうかを監視し、必要に応じて新しいマルチプレクサの組み合わせ(Select)を選択する。E[meas]は、上述の式E[meas]=E[Tdev0]/E[Δ]を通じて、2つのデジタルデバイスのマッチング(E[Δ])に直接関連する。この特定の例において、構成設定を変更するための条件は、所与の長さ連続している境界L,Hの外側の値の列であることが仮定される。従って、127個の連続した「悪い」値が発生した場合、コントローラは、様々なステージの多重化手段の新しい設定を選択する。コントローラは、適切な構成が見つかるまで、可能な構成を順次実行していく。
図5から、理想的な境界L,Hは、スループットを最大化して十分なエントロピを提供するように選択されねばならない。より小さい範囲[L;H)は、より精密な制御を可能にするが、適切な構成を見つけるためのコントローラの遅延を増加させる。
【0054】
コントローラ内で実行されるアルゴリズムの他の実施形態において、新しい構成信号が選択される条件は、より厳密であってもよいし、より厳密でなくともよい。より肝要なアプリケーションは、上述の範囲外の値が1つ観測された後に新しい設定を要求し得る。他のアプリケーションでは、所定の範囲の外のより多くの値が許容され得る。新しい構成を選択する手順もまた、最適化され得る。コントローラは、可能性のある全ての構成を順次試すのではなく、それまでに観測された測定値に基づいて、望まないマッチングの発生が予測される特定の構成をスキップすることができる。
【0055】
コントローラは、上述のように確率モデルを検証する構成を見つけるために、スタートアップ時に起動される。スタートアップの後、コントローラは測定手段の出力値を能動的にチェックし、必要に応じてデジタルデバイスを動的に再較正する。従って、本発明は、生成された値が所定の条件を満たすか否か(例えば所与のエントロピ範囲内に収まるか否か)をチェックするために、安価かつ簡単なテストを即座に実行することを可能にする。
【0056】
図2又は
図3に提案される乱数発生器におけるエントロピ源の構成可能な設計は、2つのデジタルデバイスのタイミング遅延(周期長)のマッチングを、例えばピコ秒オーダーの精度で制御することを可能にする。精度は、デジタルデバイスのステージ数及びゲート数に依存する。好適な実施形態において、遅延線を有するデジタルデバイスは、発振器として実装される。最も好適な実施形態において、デジタルデバイスはリングオシレータである。リングオシレータは、論理ゲートのカスケードのゲート遅延から形成される遅延線を用いる。
【0057】
本発明の実施形態において、サンプリングユニットは、データフリップフロップとして実装され得る。他の実施形態において、サンプリングブロックは、トグルフリップフロップ(TFF)を用いて実装され得る。この場合、どの信号が最初に受信されたかを判断できるようにするために、フリップフロップ/ラッチが必要となる。
【0058】
コントローラは、様々なやり方で実装され得る。一実施形態において、コントローラは有限状態機械として実現される。他の実施形態において、コントローラは、例えばマイクロコントローラ上で実装され得る。いずれにせよ、コントローラにより導入される遅延を確実に低く保たねばならない。
【0059】
有利な実施形態において、デジタルデバイスの第1のステージのイネーブル回路は、NANDゲートを用いて実装される。1つのNANDゲート入力は、外部信号であり得る。別の実施形態において、信号は外部ではなくコントローラからの信号である。第2の入力信号は、遅延信号である。いくつかの実施形態において、この遅延信号は、外部制御ロジック(例えば乱数発生器が使用されるアプリケーション)から来る信号であり得る。他の実施形態において、例えば後述のリングオシレータを用いる実装では、遅延信号は、複数の多重化手段を用いて、最終ステージの出力からフィードバックされる。さらに他の実施形態において、例えば遷移効果リングオシレータの設計では、遅延信号は、同様のデバイスの出力から来る信号である。いくつかの実施形態において、NANDゲートは、それぞれ1つのルックアップテーブル(LUT)により実装される。
【0060】
サンプリングされた信号の遅延差(周期長)を測定するための測定手段は、サンプリングユニットが用いるクロック信号と同じクロック信号を受信するカウンタであり得る。例えば、8ビット又は16ビットの非同期カウンタが用いられ得る。カウンタは、新たなランダムビットが生成されるたびにリセットされる。
【0061】
デジタルデバイスに多重化ステージをいくつ提供するかは、設計上の選択である。ステージ数が多いと、可能性のある構成の数が増え、十分なマッチングを見つける可能性が増加する。一部のFPGAデバイスにおける実験において、1つ又は2つの多重化ステージのみでは、
図5の斜線領域(最小エントロピ要件を満たす領域)内に収まる測定周期長を得るのが困難な場合があることが示されている。多重化ステージが3つ以上あれば、当該領域内でより多くの測定値が得られる。さらに、多重化ステージが多ければ多いほど、より多くの領域が消費される。従って、特定のFPGAデバイスにおいて、3つの多重化ステージを備えるデジタルデバイスが最も好適であり得る。
【0062】
本発明の真乱数発生器のいくつかの実施形態において、エントロピ源の2つのデジタルデバイスは同じステージ数を有する。これは、望まれる遅延比率が1に近い場合に有利である。しかしながら、目標とする比率の一致が1と異なる他の実施形態において、2つのデジタルデバイスの数は異なる。
【0063】
本発明に係る乱数発生器は、好ましくは、フィールドプログラマブルゲートアレイ(FPGA)等の再構成可能なハードウェアデバイス上で実現される。本発明に係る解決手段は、乱数発生器の実装に必要となるのがLUT及びフリップフロップ等の基本的な構成ブロックのみであるという利点を提供する。従って、この解決手段は、再構成可能なハードウェアデバイスの1つのファミリから別のファミリへと容易に移植可能である。
【0064】
また、FPGAに基づく有利な実施形態において、マルチプレクサはLUTで実装され得る。例えば、
図2又は
図3に示すように、4入力のマルチプレクサの場合、6入力のLUTが用いられ得る。いくつかの実施形態において、マルチプレクサは組み合わせ回路として実現され得る。
【0065】
有利な実施形態において、FPGAベースの設計は、リングオシレータを用いる。得られた実施例として、コヒーレントサンプリングリングオシレータベースのTRNG(COSO−TRNG)、エレメンタリーリングオシレータベースのTRNG(ERO−TRNG)、遷移効果リングオシレータベースのTRNG(TERO−TRNG)、又は、セルフタイミングリングオシレータベースのTRNG(STR−TRNG)等がある。
【0066】
さらに、提案された解決手段は、チップ状の乱数発生器の広域配置(システム内の他の機能ブロックに対する位置)にかなりの柔軟性を提供する。チップ状の様々な位置において、エントロピ源のデジタルデバイスは一致され得る。これは、デジタルデバイス間で十分に一致するFPGAの位置を手動で見つけるために大規模な設計努力を必要としていた従来の解決手段と比較して、大きな利点である。製造されたデバイス毎に繰り返さねばならなかった当該設計努力は、提案された乱数発生器では不要となる。
【0067】
提案された解決手段の利点の1つは、局所的な配置制約が不要、即ちエントロピ源を構成する個々のコンポーネントの相対的な位置及びルーティングが不要という点である。これにより、標準的なデジタル設計フローを用いて、最終的なアプリケーションを構成するデジタルロジックの残りの部分と一緒に提案された解決手段を実装することが可能となる。これにより、乱数生成の専門家でない設計者は、ランダム性生成回路の設計と広汎に関係する実装詳細から切り分けられる。この特性は、必要なマッチング結果を得るために回路を手動で配置及び配線していた従来の解決手段とは対照的である。
【0068】
本発明に係る真乱数発生器は、必ずしも再構成可能なハードウェアデバイス上で実現される必要はない。特定の実施形態において、デバイスはASIC上で実装され得る。フルカスタムASIC設計及び標準セルASIC設計の両方が考えられる。フルカスタムASIC設計において、提案された回路は完全にデジタルであり、さらなるCMOSスケーリングの恩恵を受けることができる。これは、面積/エネルギー比率の点でより最適な他の解決手段とは対照的である。
【0069】
本質的に、本発明の乱数発生器は、例えばFPGAファブリックに実装された2つのデジタルデバイスの自動遅延マッチング(又は周波数マッチング(これらは同じ意味))を可能にする。オンチップのコントローラアルゴリズムは、タイミング遅延の点で厳密に一致する2つのデジタルデバイスが得られる構成を見つけるまで、上述のように、様々な構成を順次試行する。構成設定が多数存在するため、パス伝搬遅延は最低で数ピコセカンド分解能で制御され得る。
【0070】
本発明は、図面及び上述の説明において詳細に図示及び説明されてきたが、これらの図示及び説明は、例示又は例示的とみなされるべきであり、限定的ではない。上述の説明は、本発明の特定の実施形態を詳述する。しかしながら、上述の説明が文面でどれだけ詳細に示されていても、本発明は多くの方法で実施され得ることは理解される。本発明は、開示された実施形態に限定されない。
【0071】
開示された実施形態に対する他の変形例は、図面、開示、及び添付の特許請求の範囲の検討から、当業者により理解され、効果を得られる。特許請求の範囲において、「構成する」「備える」の語は、他の要素又はステップを除外せず、「ある」「1つの」は、複数を除外しない。単一のプロセッサ又は他のユニットは、特許請求の範囲に引用された複数の物品の機能を果たし得る。特定の手段が互いに異なる従属請求項で引用されているというだけの事実は、これらの手段の組み合わせが有利に用いられ得ないことを示さない。コンピュータプログラムは、光記憶媒体又は他のハードウェアとともに、又は他のハードウェアの一部として提供される個体媒体等の適切な媒体に保存/配布され得るが、インターネット又は他の有線/無線の通信システムを介して配布されるような他の形態でも配布され得る。特許請求の範囲に記載の参照符号は、その範囲を限定すると解釈されるべきではない。
【0072】
本願につながる本プロジェクト欧州連合(EU)のERCアドバンスドグラントカセドラルプロジェクト(Advanced Grant Cathedral project)から、グラント契約番号第ERC−2015−AdG 695305号の元で資金提供を受けている。