スポンサーリンク

/dev/random は、 Unix 系オペレーティングシステムのスペシャルファイルの1つです。擬似乱数生成機として使われます。
/dev/random をはじめて実装したのは、Linuxのようです。

/dev/random は、エントロピープールにノイズのビット数を保持しています。/dev/randomを読み出すと、エントロピープールからノイズビット数予測から乱数のバイト列を返します。乱数をたくさん読み出すとエントロピープールが空にになります。この状態で/dev/randomを読み出そうとするとブロックされ、ノイズが集まるまで待たされます。
ブロックする目的は、真の乱数生成機として機能することで、暗号鍵の生成などにも安全に利用できることを意図しています。

/dev/random に対して、 /dev/urandom があります。 urandom は unlocked random source の意味で、ノンブロッキングなデバイスファイルとして動作します。
エントロピープールを再利用することで、擬似乱数的な乱数ビット列を生成できます。
/dev/random とは異なり、安全性を要求されない条件で、高速に動作させたいときに urandom を使います。

FreeBSDなら /usr/src/sys/dev/random/ このあたりにデバイスのソースがあります。

FreeBSD の /dev/random では Yarrow アルゴリズムを使っています。
Yarrow アルゴリズムは、暗号的セキュア擬似乱数生成器です。

ソースはここらへん。
/usr/src/sys/dev/random/yarrow.c

FreeBSD では /dev/urandom は random へのシンボリックリンクです。
% ls -ls /dev/*random*
0 crw-rw-rw-  1 root  wheel    0,  28  5  6  2010 /dev/random
0 lrwxr-xr-x  1 root  wheel         6  5  5  2010 /dev/urandom@ -> random

スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

はてなの人気のブックマーク

スポンサーリンク
 

過去ログ

2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー