プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

真の乱数生成とは何ですか?


真の乱数ジェネレーター(TRNG)は、非決定論的なソースを使用してランダム性を作成します。ほとんどの機能は、電離放射線活動のパルス検出器、ガス放電管、漏れのあるコンデンサなど、予測できない自然のプロセスを測定することによって機能します。

Intelは、非駆動抵抗の両端で測定された電圧を開発することにより、熱雑音をサンプリングする市販のチップを開発しました。 TRNGは真の乱数を生成し、通常はハードウェア方式で生成されます。

TRNGは、ランダム値の予測が複雑な物理ソースに基づいて生成されるため、TRNGによって生成される乱数の予測は複雑です。したがって、TRNGから生成される乱数は、等しい値を作成するのが複雑であるため、安全なアプローチです。

ランダム性の原因として考えられるものは次のとおりです。注意すれば、コンピューターで簡単に使用して、真のランダムシーケンスを生成できます。

音声/ビデオ入力 −多くのコンピューターは、マイクからの音声やカメラからのビデオ入力など、実際のアナログソースをデジタル化する入力で構成されています。

権限が接続されていないサウンドデジタイザーからの「入力」、またはレンズキャップがオンになっているカメラからの「入力」は、基本的に熱雑音です。システムに何かを識別するのに十分なゲインがある場合、そのような入力は適度に高品質のランダムビットをサポートできます。

ディスクドライブ −ディスクドライブは、乱気流のために回転速度に小さなランダムな変動があることが知られています。低レベルのディスクシークタイムインストルメンテーションの拡張により、このランダム性を含む一連の測定が作成されます。

このようなデータは一般に相関性が高いため、かなりの処理が必要です。それにもかかわらず、10年前の実験では、そのような処理を使用すると、その日の低速のコンピューターで低速のディスクドライブを使用しても、1分あたり100ビット以上の優れたランダム情報を簡単に作成できることが示されました。

TRNGは、ゼロよりも1が多い、またはその逆を含む、何らかの方法でバイアスされた出力を生成できます。バイアスを低減または除去するためにビットストリームを変更するさまざまな方法が開発されています。これらは、スキューイング解除アルゴリズムとして定義されています。

スキューを解除する1つの方法は、ビットストリームをハッシュ関数に渡すことです。ハッシュ関数は、任意の長さの入力からnビットの出力を作成します。デスキューイングの場合、m≥nのm個の入力ビットのブロックをハッシュ関数で確認できます。

TRNGは単調すぎて、複雑な疑似乱数生成器(式)に十分にアクセスできます。 TRNGは、物理的または非物理的なノイズ源などを使用できます。

ロジックデバイスでは、ロジックデバイスは常にクリアな状態であると想定されているため、物理的なノイズ源は完全に制限されています。乱数を生成する可能性があり、制御できないランダムな現象が必要です。

論理デバイスで乱数を生成するために一般的に使用される物理現象は次のとおりです-

  • クロックジッター −これは理想的な位置からのクロックエッジの変更です。

  • 準安定 −漠然とした期間、無限の状態を維持する回路の機能です。

  • カオス −これは決定論的システムの予測不可能な動作であり、初期条件に非常に敏感です。

  • アナログ信号 −アナログ信号では、ダイオードのショットノイズ、熱雑音などが含まれます。


  1. Pythonのさまざまな基本演算子は何ですか?

    Pythonの演算子は-に分類されます 算術演算子 +追加 -減算用 *乗算用 /除算用 //フロア分割用 モジュロまたは剰余の% 関係演算子 以上の場合 =以上の場合 <未満の場合 <=以下の場合 ==forは等しい !=forはと等しくありません 論理演算子 および-両方のオペランドがtrueの場合にのみtrue または-1つのオペランドがtrueの場合でもtrue not-オペランドがfalseの場合はtrue、その逆の場合 ビット演算子 &ビット単位のAND |ビットごとのOR 〜ビット単位ではない ^ビット単位のXORの場合 ビット単位の右シフト <<ビット単位の

  2. 乱数ジェネレーターまたは RNG とは?

    乱数ジェネレーターまたは RNG とは? 乱数ジェネレーターは、その名前が示すように、必要なたびに乱数を取得するプロセスであり、以前に生成された数値からパターンを確立することはできません。この数値は、アルゴリズムまたはハードウェア デバイスによって生成される可能性があり、予測可能な結果を​​回避するために非常に重要です。これは、RNG コントローラーがどこに配置されているか誰も知らないため、次の瞬間に何が起こるかわからない地球上の私たちの生活に似ています。 乱数ジェネレーター アルゴリズムは、ビデオ ゲームで一般的に使用され、誰もがプレイするたびに異なる結果を確立します。ゲームで同じレベル