ガベージコレクションは非決定的であるため、なぜ安全な乱数生成に使用されないのですか?


13

/ dev / randomはエントロピーの優れたソースであり、通常使用されるものです-少なくともJavaでGCを読んでいるように、ガベージコレクションデーモンが非決定的に実行されることは受け入れられているようです。これが正しい場合、変数/ dev / randomの代わりに、ガベージコレクションのタイミングをエントロピーのソースとして使用しないのはなぜですか?


7
標準Cライブラリのrand()関数のドキュメントをご覧ください。彼らは、乱数のように見えるものを提供しますが、セキュリティのために使用することはできないと明確に述べています。通常のガベージコレクタは、おそらく同じカテゴリに分類されます。セキュリティに使用する場合は、暗号的に安全なガベージコレクターを使用する必要があります。
DXM

15
非決定的何かは依然として非常に予測可能です
ラチェットフリーク

7
この場合、「非決定論的」は不十分な説明です。ガベージコレクタは完全に決定的なシステムであり、その状態とそれを使用するプログラムの状態を完全に把握している場合、結果を決定的に予測できます。
ロボットをゲット

4
@DXM暗号的に安全なガベージコレクターの適切な実装を知っていますか?;)
AJMansfield

7
「ランダムな数字を生成する算術的方法を考えている人は、もちろん、罪の状態にあります。」-ジョン・フォン・ノイマン
マークアドラー

回答:


58

「指定なし」と「ランダム」は、まったく異なる2つの概念です。

ガベージコレクタの正確な動作は指定されておらず、ガベージコレクタ次第です(通常は一種のVMによって実装されますが、必ずしもそうではありません)。

したがって、ガベージが収集される指定された(決定的な)時間はありません。

しかしながら、特定の実装はいくつかのルールに従い、同じプログラムを2回実行するとガベージコレクションパターンが非常に似ている可能性が高くなります。

そのため、実際のエントロピーガベージコレクタによって提供さは非常に低い(と見つけるだろうどのあなたが実際にできる部品を使用エントロピーはトリッキーになるように)。

比較として:HashMapJavaのA は、そのメンバーの取得の順序を保証しません(基本的に、ほとんどの場合、支払う価値のないオーバーヘッドが追加されるためです)。ただし特定の実装および特定の挿入/削除のセットでは、結果の順序を確実に計算できます。特定の順序が保証されていないからといって、順序がランダムであることを意味するわけではありません。


20
コンピューターが実際に非決定的である何かをした場合、そのコンピューターは壊れていると言うのは公平な声明だと思います。
シルコート

非決定的とは、プログラム外部の何らかの状態に依存することを意味する場合があり、それ自体は決定的である場合がありますが、プログラム自体とはまったく関係がないため、プログラムが実行されるたびに異なる可能性があります
asmeurer

@asmeurerこのような文脈でこれらの用語を聞いたことはないと思います。実際、私はあなたが何を意味するのかさえ分かりません:外部入力を受け取るすべてのプログラム(つまり、最も有用なプログラム)は「何らかの外部状態に依存します」が、それは非決定的ではありません。
us2012

2
@Schilcote:一部の最新のCPUには、ハードウェアに実装された非決定的(真)RNGがあります。これらは、量子レベルの物理学に至るまで真に非決定的です。
–MSalters

2
@Schilcote特殊なRNG命令(IntelのRDRANDおよびRDSEED)がなくても、コンピューターは完全に決定論的ではありません。一部のタイミングは完全に指定されておらず、温度などの外部要因に依存する場合があります。
CodesInChaos

8

まず、単なる言葉の操作によって推論のtrapに陥らないように注意する必要があります。たとえば、NFAは「非決定的有限オートマトン」であるため、それを使用して乱数を取得しないのはなぜでしょうか。その場合、それはNFAで「非決定的」が意味するものではないためです。実際、特定の入力でNFAをシミュレートする場合、シミュレーションの動作は完全に決定的です。

「確定的」はロードされたフレーズです。コンピュータープログラマーまたはコンピューターサイエンティストにとって、非決定論的な動作とは、「正確な動作を判断するのは複雑である」ことを意味し、プログラム入力などの多くの要因に依存します。

ただし、だからと言って、暗号システムを攻撃しようとする誰かにとって決定論的ではないというわけではありません。場合によっては、環境要因と入力がピンダウンされることがあり、「非決定的」動作から再現可能なパターンが現れます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.