UNIX 系 OS では、疑似乱数を生成するためのデバイスとして、 /dev/random が提供されている。 /dev/random から生成される疑似乱数の元ネタは予測不可能な値である必要がある。 ハードウェアによる疑似乱数生成器が存在しない場合、ソフトウェアで何とかしないといけない。 Linux カーネルでは、疑似乱数の元ネタを各種デバイスドライバで生成される値を使用する。 それら生成された値を、/dev/random ドライバで管理するエントロピー・プールに溜め込み、 ユーザ空間から要求があった際に、エントロピー・プールから疑似乱数を生成し、提供される。 疑似乱数の元ネタを生成しているドライバをリストしてみる。(本当はもっとヒットするが、てきとうに割愛) % head -n4 Makefile VERSION = 3 PATCHLEVEL = 19 SUBLEVEL = 0 EXT