Re: いつも使う shell script
乱数の話なので、fj.comp.securityに振っちゃいます。
kono@ie.u-ryukyu.ac.jp (Shinji KONO) writes:
> 河野真治 @ 琉球大学情報工学です。
>
> In article <86ver9j4z2.fsf@bsd2.4bn.ne.jp>, Yoshitaka Ikeda <ikeda@4bn.ne.jp> writes
> > /dev/randomって実際にどう実装されているのか興味があります。
> > pgpみたいに、キーボードのタイプ間隔とかをりようしてるんですかね?
>
> そういう時は、source でしょ!
>
> http://www.intel.com/design/chipsets/manuals/298029.htm
>
> つう感じでハードウェアで生成することも出来るようです。熱雑音
> かなんかを使うんじゃなかったかな。
とりあえず、FreeBSDのサーバのmanあたりからつらつらと探してみました。
/dev/randomの初期化の部分で、ident_hardware()という関数を呼んでます。
/usr/src/sys/dev/randomを呼んでみると、
1.とりあえずデフォルトはYarrow(PRNG)を使う。
2.CyrixのC3(Nehemiahコア)ならCPUのハードウェア乱数発生機能を使う。
という感じになってます。(ちゃんと読みきってはいませんが。)
ところで、上記のintelのURLですが、82802というチップのプログラミング
マニュアルにみえますが、82802はi820系チップセット用のFirmware Hub
だそうです。(i810Eでも乱数生成器は積んでいるようですが)
http://www.linux.or.jp/JF/JFdocs/kernel-docs-2.6/hw_random.txt
には、いくつかのハードウェア乱数生成器に対応したドライバがある
みたいですね。
#Linuxマシンも1台くらい用意しておいた方がいいかなぁ。
#FreeBSDなら4台もあるんですが。
> Fedora core だと、/etc/rc.sysinit に、
> # Initialize pseudo-random number generator
> if [ -f "/var/lib/random-seed" ]; then
> cat /var/lib/random-seed > /dev/urandom
> else
> touch /var/lib/random-seed
> fi
> chmod 600 /var/lib/random-seed
> dd if=/dev/urandom of=/var/lib/random-seed count=1 bs=512 2>/dev/null
> とかいうのが...
/dev/urandomデバイスは、入力を元に新しい乱数値をデバイス出力として持つ、
でいいんですよね?
インストール時に/var/lib/random-seedを適切に作らないと、
途中、他からの入力が無い限り、起動した回数で決まった値に
なりそうな気がするんですが。
> おいおい〜 shutdown 時にも書き込んで欲しいぞ...
他になんかのタイミングで書き込んでるとか...
--
I LOVE SNOOPY! でつ
Yoshitaka Ikeda mailto:ikeda@4bn.ne.jp
My Honeypot: honey@4bn.ne.jp <-don't send this address
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735