web-dev-qa-db-ja.com

リングオシレーター:真の乱数ジェネレーター(TRNG)と物理的にクローンできない関数(PUF)

リングオシレーターハードウェアの真の乱数ジェネレーター (TRNG)、および 物理的にクローンできない関数 (PUF)でも使用できます。

デザインはかなり似ているようです:

リングオシレーターに基づくTRNG: TRNG based on oscillator rings

リングオシレーターPUF: Ring Oscillator PUF

PUFの考え方は、すべてのチャレンジに対して同じ定義済みの(ただしランダムに見える)応答を作成することですが、TRNGの考え方は、本当にランダムな出力を作成することです。

私の質問は:

  • リングオシレーターをこれらの機能の両方の主要な要素にするにはどうすればよいですか? 1つは発振器の状態を予測できるという事実に依存しているようですが、もう1つはその反対に依存しています。これは私には矛盾しているようです。
  • これは、TRNGの場合に出力を(半)ランダムに結合するXORと関係がありますが、PUFのマルチプレクサは出力を調整しますか?それとも、オシレーターの稼働時間と関係がありますか?
  • もしそうなら、リングオシレーターTRNGは本当に本当にランダムですか?
5
tim

TRNG構成では、リングに共通のイネーブル信号はありません。リングが同期する唯一の時点は、電源投入時です。次に、それぞれが独自のペースで自由に走ります。これ自体はランダム性を大きく生み出すものではありませんが、フリップフロップ入力で多くのグリッチを生成します。メタ安定性からランダム性を生み出すことが期待されています。 PUFには共通の有効化があるため、リングオシレーターは開始時に共通の同期ポイントで互いに競合しています。チャレンジ入力は、どのインスタンスが競合しているかを選択します。特定のチャレンジと特定のチップでは、各リングの正確な周波数は各ステージの正確な物理的特性に依存するため、レースの結果は常に同じ結果になる傾向があります。

ROが実行されている時間とは関係ありません。これは、出力がどのように使用されるかによって異なります。違いがあります。PUFのenable信号を削除することもできます。重要なのは周波数の違いですが、TRNGの場合、これは重要なサンプリング時の実際の出力値です。

そのTRNGは本当にランダムである可能性がありますが、正しく(高いデータレートを取得するため)するのは難しいです。非同期リングまたはカオスマップに依存する他の構造は、より安全です。

4
acapola

PUFは、デバイスの製造中に原子がどのように配置されたかに依存する発振器周波数を測定します。 RNGは、発振器周波数と位相のランダム性を短期間に使用します。

ランダム性の由来

タイミングデバイス(振り子、水晶振動子、RC発振器など)には、設計者に知られているように、固有の「ノイズ」または「ジッター」があります。出力がパルスのストリームである発振器を構築する場合、パルス間の時間は完全に一貫していません。このノイズは、より一般的なタイプのノイズと同様の特性と動作を持ち、ランダムです。

enter image description here

リングオシレータTRNGでは、サンプルクロックに対する各オシレータの位相は時間とともにドリフトします。ドリフトのほとんどは、発振器とサンプリング周波数の違いによるものですが、ジッタによって引き起こされるものもあります。

言い換えると、イネーブル入力を備えた単一のリングオシレーターを想像してみてください。オンになり、しばらくしてからサンプリングされますT。各期間は(1/f)+jitter続きます。長い間、多くのジッタ値がフェーズに追加されます。出力は、確率が等しい1または0になります。残念ながら、ガウスジッタの場合、Nジッタ値を合わせると、標準偏差はN^0.5倍広くなります。

RNGはランダム性を効率的にキャプチャします

この方式は非効率的で、ビットあたり多くのジッターサンプルを必要とします。位相分布は、ほぼ均一になるほど広くなければなりません。 XORされたNリングオシレーターの出力をサンプリングすると、F/Nで同じNリングオシレーターをサンプリングするよりも多くのランダムビットを生成できます。理由を示す統計分析がいくつかありますが、ジッター値がビットフリップを引き起こすのに十分なだけ発振器の位相を移動する機会の数を考慮することで、直感的に理解できます。オーバーサンプリングにより、発振器ごとに多くの相関ビットが生成されます。 Xoringはそれらを組み合わせて、ホワイトニングされた出力ストリームを作成します。

PUFはランダム性の影響を軽減します

PUFは、ランダムノイズソースが結果に与える影響を減らすように設計されています。理想的なPUFは、デバイスの製造中に原子が着弾した方法にのみ依存します。あなたが示したPUF設計は、ある時点でのリングオシレータの出力値を「予測」していませんT。出力パルスをカウントします。出力はおおよそ:"Is the frequency of the first selected ring oscillator higher than that of the second selected ring oscillator?"です。実行時間がかなり長い場合、これはジッター値の影響をあまり受けません。カウント数が直線的に増加する間、ジッター効果は0.5乗に比例します。実行時間が長くなると、完全な周波数比較に収束します。周波数が非常に近い発振器の場合、ジッタは結果に大きな役割を果たす可能性があります。これが、特定のデバイスで一部のPUFチャレンジ値に明確な1または0回答がない場合がある理由です。

3