Open2

Linux 乱数について

Hidenori@低レイヤHidenori@低レイヤ

基本的に乱数を取得するには、以下の2通りがある。後者の手法はターゲットプラットフォームに依存するのでそのプラットフォームの個別対応になる。

  1. 疑似デバイスファイルを利用する
  • /dev/random
    • 真乱数
    • エントロピーが貯まるまでは結果を返さずにブロックする
  • /dev/urandom
    • 疑似乱数
    • urandom の u は unblock の頭文字。エントロピープールが枯渇しても処理がブロックされることなく乱数を生成し続けることが可能
    • ただし、その反面枯渇すると乱数シードが再利用されるので精度的には /dev/randomに劣る
  1. ハードウェア乱数発生器を利用する

参考文献

Hidenori@低レイヤHidenori@低レイヤ

コマンドラインで乱数を取得

16ビットの値を取得する
$ echo $RANDOM
4629
8バイトを取得する
$ head -c 8 /dev/random
�1}O@�]