辞書: 乱数

投稿日:

乱数とは

次に何が出るか予測できない数値です。

/dev/random vs /dev/urandom/

Linuxでは/dev/random と /dev/urandom の2つがあって、 前者は環境ノイズを使った乱数ですが、後者は暗号論的擬似乱数生成器です。

前者の方が「真の乱数」のようですが、以下の2つの問題があります。

  • インストールした直後などに、エントロピー不足でブロックされることがある。
  • 「環境ノイズ」が予測される可能性がある(仮想マシンなど)

manページには以下のように書かれています。 理論上は環境ノイズを用いた乱数より弱いが、 (一般向けに)現実的に弱いという話は見ていません。

/dev/urandom デバイスから読み出しでは、 エントロピーがより高くなるのを待つためのブロックは行われない。 十分なエントロピーがない場合、 要求されたバイトを作成するのに疑似乱数生成器が使用される。 その結果、この場合の返り値はこのドライバで使われている アルゴリズムに基づく暗号攻撃に対して、論理的には弱くなることになる。 この攻撃をどのように行うかという事については、 現在研究論文などの形で入手できる資料はない、 しかし、そのような攻撃は論理的に存在可能である。

なので、ほとんどの場合は /dev/urandom でいいんじゃないかなぁと思います。

外部サイト