web-dev-qa-db-ja.com

2つの同一のLinux仮想マシンイメージがある場合、それらは同一の乱数を生成しますか?

本当に初心者向けの質問ですが、今朝は何か疑問に思いました。これが事実である場合、それらは同じように物事を暗号化しますか?

または、誰かがLinuxがどのようにエントロピーを生成し、物事を暗号化するかについての有用な研究に私を導くかもしれませんか?グーグルは私に正接結果を与えていますが、特に役立つものは何もありません。

15
user1209326

非常に無菌のセットアップで一度に1クロックサイクルずつ同期して移動しない限り、同一のシステムイメージはランダム性プールからプルするときに異なるデータを生成します。

システムのアクティビティは、ハードウェア割り込みを含むイベントに基づいて、ランダム性プールに影響を与えます。現実には、ディスクドライブ、ネットワークカード、および電源ボタンを押した瞬間はすべて異なると言われています。よく訓練された時計でさえ、マシン間でいくらかの差異があり、それは時間とともに成長します。

Linux RNGに関する学術論文 と、現在のカーネルソースからのrandom.cファイル(意図的にリンク解除)が含まれています。

17
Jeff Ferland

番号。

Linux RNGは、外部ハードウェア(ハードディスク、マウス、ネットワークなど)によってトリガーされる割り込みタイミングなどのソースからノイズを収集することにより、実際のエントロピーの環境ソースを使用します。実際、Linuxは「真の乱数ジェネレータ」を使用していると主張できます。 「疑似乱数ジェネレータ」ではありません。他のTRNGの場合と同様に、エントロピーソースを覗くことができない限り、出力は本当に予測できません。

ただし、マシンが既知の状態から起動してから、/dev/urandomの出力が予測可能な環境からエントロピーを収集する機会が得られる前に、しばらく時間がかかります。

http://en.wikipedia.org/wiki//dev/random#Linux は有益で理解しやすいものです。

0
tylerl

問題は、2つの同一のシステムを使用できるという誤った仮定に基づいています。それはこの宇宙では不可能です。たとえば、少なくとも、異なる場所に配置する必要があります。それらの異なる場所は、異なる微視的ゾーンの温度変化を持っています。また、これらの変動は、CPUクロックとネットワーククロックを駆動する水晶発振器間の位相関係に影響を与えます。

同様に、ディスクプラッターおよびハードドライブケースの内部の微視的な表面欠陥は、空気の乱流せん断に影響します。これは、プラッターの回転速度に影響します。同じ乱流せん断特性を持つ2つのハードドライブを使用する方法はありません。

同じクロックと同じハードドライブを使用しても、それぞれが独自の要求を発行します。それらはそれぞれ独自のネットワークパケットを受信します。それらはそれぞれ独自の個別のパスを実行します。

質問されるためには、私たちとは非常に異なる宇宙を想像する必要があります。そして、はい、Linux RNGアルゴリズムはこれらの種類のものを使用します。

0
David Schwartz