0

たとえば、プレーヤーの次のトラックやブラウザの次のページをランダムに選択する場合、時間を「自然現象」として使用できる可能性があると思いました。たとえば、まともなRPNGは、プログラムの要求なしに次の乱数を継続的に取得できます(たとえば、スレッドでは数ミリ秒ごと、またはイベントがより頻繁に発生します)、その時が来ると(ユーザーの決定に基づいて)、選択はこのユーザーの遅延の影響を自然に受けます。

このアプローチは十分に優れており、どのようにテストできますか?手動でテストする場合の問題は、実際の世界では、いくつかのテストプログラムにそれらを供給するのに十分な乱数を保存するのにそれほど長く待つことができないということです。これを人為的に高速化しようとすると、メソッド自体が無効になります。

ありがとう

4

3 に答える 3

2

優れた乱数ジェネレーターは実際には改善する必要はありません。改善したとしても、ユーザー入力のタイミングが役立つかどうかは明らかではありません。

ユーザーは、LCG によって選択されたトラックでパターンを検出できますか? プラットフォームが何であれ、組み込みrandom()関数で十分である可能性があります (つまり、ユーザーには完全にランダムに見えます)。

ただし、それでも心配な場合は、システムのランダム性の専用ソースからのデータがシードされた暗号品質の RNG を使用してください。現在、これらのシステム RNG の多くは、ハードウェアの量子イベントによって生成された真にランダムなビットを使用しています。ただし、ビットの生成が遅くなる可能性があるため、高速なアルゴリズム PRNG のシードとして使用することをお勧めします。

さて、これらのアプローチが十分に優れていると確信できない場合は、ユーザーが入力するタイミングが適切な情報源であることに非常に懐疑的である必要があります。ユーザーが押すキーは、使用される語彙が限られていることと、その限られた単語セット内に出現する傾向があるパターンを考えると、非常に予測しやすいものです。文字シーケンスにおけるこの予測可能性は、キーを押す間のタイミングの高度な予測可能性につながります。

多くのセキュリティ プログラムがキーの生成中にこの手法を使用していることを知っています。純粋なヘビ油だとは思いませんが、ユーザーをなだめるためのプラセボかもしれません. 良い製品は、システム RNG に依存します。

于 2011-01-30T16:29:47.860 に答える
1

記述した時間情報を取得すると、実際に PRNG にエントロピーを追加できます。ただし、意図したアプリケーションの説明からすると、必要ないと思います。「プレーヤーの次のトラックやブラウザの次のページなどのランダムな選択」の場合、単純で変更されていないPRNGで問題ありません。nonce などのセキュリティ アプリケーションでは、これははるかに重要です。

とにかく、PRNG エントロピー ソースについて読む必要があります。

于 2011-01-30T16:37:03.770 に答える
0

ユーザーの遅延を伴う PRNG は改善しません。主な理由は、ユーザーの遅延が非常に規則的であるためです。入力速度はほぼ同じであり、クリックと別のクリックの間の遅延を測定するには時間がかかりすぎます (通常の使用を想定)。ユーザーがトリガーする他のイベントを使用したいと思います: 押されたキー、各クリック間の距離、特定の瞬間のマウスの位置。

于 2012-09-06T22:41:30.187 に答える