/dev/random

読み:デヴ・ランダム
外語:/dev/random 英語
品詞:名詞

乱数生成器を表わすスペシャルファイル。

目次

実装によって異なるが、疑似一様乱数または真性乱数を返す。

このスペシャルファイルは、ハードウェアにより生成された乱数、またはエントロピープールにため込んだ環境ノイズへのアクセスを提供している。

この機能はLinuxで最初に実装され、他のUNIX系OSにも実装されるようになった。従って、全てのUNIX系OSに実装されているわけではない。

Linux

処理

Linuxでは、drivers/char/random.cで定義されている。

処理の簡単な内容としては、環境ノイズをエントロピープールに溜め込んで、そこから乱数を生成している。Linuxの実装の精神は、特定のソースに依存することなく、様々な乱数ソースを用いて乱数を生成することにある。何らかの乱数ソースに大きい偏りがあったとしても、品質のよい乱数が生成されると期待される。

ブロック

起動直後などで、まだエントロピープールに環境ノイズがない時に/dev/randomにアクセスすると、ノイズが溜まるまでブロックされるような実装である。

ブロックされない、unlockedなデバイスとして/dev/urandomも用意されており、こちらは内部プールを利用し計算によって乱数を算出する。ブロックされないが、代わりに乱数としての質は悪いことになる。

RDRANDの問題

Intelは、Ivy Bridgeからはハードウェアの乱数生成器と新命令RDRANDを搭載した。

これに伴いLinuxの/dev/randomに対し、IntelからはRDRANDに依存した実装にするよう要請されたというが、開発者のTheodore Y. "Ted" Ts'oはこれを拒否した。

その後「IntelはNSAからの要求を飲んでRDRANDに何かを仕込んだようだ」という噂が立ち、Theodore Ts'oは、「Intelの要求を蹴飛ばして置いて良かった。監査しようのない、チップ内に封入されたハードウェア乱数生成器に頼るなんて、最悪だよね。」と安堵している。

FreeBSD

FreeBSD(OS Xを含む)では、/usr/src/sys/dev/random以下にソースがある。

古いFreeBSDの実装は現在のLinuxと似たような方法を用いていたが、現在はYarrow algorithmと呼ばれる疑似乱数生成器の実装を用いている。

全て計算から得ているFreeBSDの実装では/dev/randomがブロックされることはない。また、Linuxとの互換性のため/dev/urandomも用意されているが、これは/dev/randomへのシンボリックリンクとなっている。

用語の所属
/dev

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club