私が理解していることから、PRNGは、真にランダムではない数列を生成するシードを使用します。使用するたびに異なるシードでPRNGを繰り返し再利用することにより、真の乱数ジェネレーターを作成することは可能でしょうか。シードは、dev/randomまたは現在の時刻またはクロックティックから抽出できます。そうでない場合、ソフトウェアに実装されている真の乱数ジェネレーターはありますか?
ありがとう
私が理解していることから、PRNGは、真にランダムではない数列を生成するシードを使用します。使用するたびに異なるシードでPRNGを繰り返し再利用することにより、真の乱数ジェネレーターを作成することは可能でしょうか。シードは、dev/randomまたは現在の時刻またはクロックティックから抽出できます。そうでない場合、ソフトウェアに実装されている真の乱数ジェネレーターはありますか?
ありがとう
乱数が必要になるたびに PRNG を再シードする場合は、中間の人を切り取って、シードを乱数として直接使用できます。
しかし、あなたが話していることは実際に行われています。これらはいわゆる暗号的に安全な PRNG であり、暗号化アプリケーションに乱数を提供するために多くのオペレーティング システムで採用されています。それらはエントロピープールから頻繁に再シードされ、過去の数を知ることから次の数を割り出すのが計算上非常に困難になるように設計されています (たとえば、LCG で行うのは非常に簡単なことです)。数字は現在のものから。
このアプローチの利点は、乱数の生成をブロックしないことです。システム内のエントロピーは限られたリソースであり、外部ソースからしか取得できないため、CSPRNG を使用することで安全に拡張でき、同時にセキュリティを損なうことはありません。
簡単な答えは、そのような実装はないということです。私の知る限り、それは不可能だからです。真の乱数を生成するには、ハードウェア乱数ジェネレーターのようなエントロピーの外部ソースが必要です。
クロックはそれほどランダムではありませんが、/ dev / randomにはある程度のランダム性があります。実際には、ランダム性の生成と消費の速度に応じて枯渇する可能性のあるランダム性のバケツのようなものです。dev / randomを使用する場合、RNGを使用する必要はありません。/ dev/randomからのRNGのシードは冗長です。
インテルは、宣伝どおりに機能する場合、本当に画期的なものに取り組んでいます。ハードウェアの PRNG が実質的に冗長になります。