乱数生成
乱数生成、すなわち乱数列の生成には主に2つの方法がある。1つ目の方法は、ランダムであることが予想される物理現象を測定し、測定過程で起こりうる偏りを補正する方法である。例えば、大気による電気回路の乱れ、熱による電気回路の乱れ、その他外部からの電磁現象や量子現象の測定が挙げられる。例えば、短い時間スケールで測定される宇宙背景放射や放射性崩壊は、自然エントロピーの発生源となる。
自然発生源からエントロピーが得られる速度は、測定される根本的な物理現象に依存する。したがって、自然に発生する「真の」エントロピーの発生源は、妨害していると言われるつまり、需要を満たすのに十分なエントロピーが採取されるまで、速度が制限されることになる。ほとんどのLinuxディストリビューションを含むいくつかのUnix系システムでは、擬似デバイスファイル/dev/randomは、環境から十分なエントロピーが採取されるまでブロックする。このブロック動作のため、ハードディスクドライブをランダムビットで満たすような/dev/randomからの大規模な一括読み込みは、このタイプのエントロピーソースを使用するシステムでは、よく遅くなることがあるが決して不具合ではない。
2つ目の方法は、一見ランダムな結果の長いシーケンスを生成できる計算アルゴリズムを使用するもので、その乱数列は擬似乱数列と呼ばれる。擬似乱数列は、シード値またはキーとして知られる短い初期値によって完全に決定される。