2

いくつかの目的のために、自然な入力を支持して、アルゴリズムによって生成されたあらゆる種類の乱数をバイパスできると便利です---たとえば、サイコロの目。たとえば、暗号化キーの生成は、必要なランダムデータがほとんどなく、データが本当にランダムであるという要件が十分に高いため、実行可能で望ましいことであると私は思います。

だから、私が行って手を汚す前に知りたいのは、これですか?ランダムな数字の入力から直接エントロピープールを構築するためのソフトウェアはありますか?基数rから基数2に単純に変換するだけでは十分ではないことに注意してください。たとえば、3と2は互いに素であるため、元の入力の最大エントロピーを保持しながら、基数3(または基数6)の数値を2進数に変換するのは完全に簡単ではありません。

4

4 に答える 4

4

デバイス/dev/randomはLinux上でまさにこれを実行します-多分それはソースを見る価値があるでしょうか?

編集:

joeytwiddleが言うように、十分なランダム性が利用できない場合、/dev/random外部デバイス(マウス、ディスクドライブなど)を監視することによってエントロピーが「構築」されるのを待ってブロックします。これはあなたが望むものかもしれないし、そうでないかもしれません。待ちたくなく、おそらく低品質のランダム性に満足している場合は、/dev/urandom代わりに使用してください。これは、利用可能な場合はいつでもランダム性を注入する非ブロッキング擬似乱数ジェネレータで/dev/randomあり、単純な決定論的PRNGよりもランダムになります。(詳細については、を参照man /dev/urandomしてください。)

于 2009-05-03T08:40:44.617 に答える
2

このホワイトペーパーでは、UN*XとWindowsの両方の実装アイデアを使用したさまざまなアプローチを提案します。

于 2009-05-03T08:47:44.727 に答える
2

何を求めているのかわかりません。「エントロピープール」は「いくつかの乱数」の単なる単語なので、サイコロを振ることができます。必要な特性を持つ疑似乱数ジェネレーターに見られるように、それらを使用するだけです。

物理的に生成された乱数は、LavarndHotbitsなどからオンラインで入手できます。

于 2009-05-03T08:49:20.167 に答える
0

プール内のエントロピーの量は必ずしも整数である必要はないことに注意してください。これは主に、素因数が 2 以外の問題に対処する必要があります。

整数の見積もりを必要とする実装を使用することになったとしても、暗号鍵を生成するためにかなりの数のサイコロを振る必要があります。したがって、それらをまとめて要求することができます。ユーザーが 10 回の d6 ロールの結果を返し、エントロピーを 25 ビットと見積もった場合、ダイス ロールごとに 0.08 ビットしか失われません。切り捨てを忘れないでください;-)

ところで、/dev/random のようにハードウェア ソースから TRNG データを引き出すのではなく、ユーザーに TRNG データを求めるのは、改善ではなく楽しいおもちゃとして扱います。専門家が乱数を生成するのは非常に困難です。一般ユーザーを自分のアマチュアリズムに翻弄されたくありません。「乱数の生成は、偶然に任せるにはあまりにも重要です」 -- Robert Coveyou.

別の言い方をすれば、BSD の作成者は、PC ハードウェア上の実際のソースのエントロピー推定は十分に理解されていない (数学の問題ではなく物理の問題である) ため、PRNG を使用することは実際にはそれほど悪いオプションではないと主張しています。 Schneier / Kelsey / Ferguson のYarrow設計に従って十分に再播種されていることを条件とします。あなたのサイコロのアイデアは、/dev/random のエントロピーの一般的なソースよりも少なくとも利点があります。ユーザーが公正なサイコロを見つけて適切に転がすと信頼できる限り、自信を持ってエントロピーの下限を設定できます。優れた双眼鏡やキーボードで盗聴する手段 (たとえば、E/M 放射による) を持つオブザーバーがスキーム全体を破ることができるという欠点があるため、実際にはすべて脅威モデルに依存します。

于 2009-05-03T09:51:36.540 に答える