.\" Copyright (c) 1997 John S. Kallal (kallal@voicenet.com)
.\"
+.\" %%%LICENSE_START(GPLv2+_DOC_ONEPARA)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
+.\" %%%LICENSE_END
.\"
.\" Some changes by tytso and aeb.
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
-.TH RANDOM 4 2010\-08\-29 Linux "Linux Programmer's Manual"
+.TH RANDOM 4 2013\-03\-15 Linux "Linux Programmer's Manual"
.SH 名前
random, urandom \- カーネル乱数ソースデバイス
+.SH 書式
+#include <linux/random.h>
+.sp
+\fBint ioctl(\fP\fIfd\fP\fB, RND\fP\fIrequest\fP\fB, \fP\fIparam\fP\fB);\fP
.SH 説明
(Linux 1.3.30 から提供されている) \fI/dev/random\fP 、 \fI/dev/urandom\fP キャラクタスペシャルファイルは
カーネル乱数ジェネレータへのインタフェースを提供する。 \fI/dev/random\fP ファイルはメジャーデバイス番号 1 マイナーデバイス番号 8
論理的には弱くなることになる。 この攻撃をどのように行うかという事については、現在研究論文などの
形で入手できる資料はない、しかし、そのような攻撃は論理的に存在可能である。 もし、この事が心配なら、(\fI/dev/urandom\fP ではなく)
\fI/dev/random\fP を利用すればいい。
+.LP
+\fI/dev/random\fP や \fI/dev/urandom\fP に書き込みを行うと、 書き込まれたデータでエントロピー・プールが更新される。 しかし、
+エントロピー・カウントが増えるわけではない。 つまり、 \fI/dev/random\fP と \fI/dev/urandom\fP
+の両方のファイルから読み出される内容に影響があるが、 \fI/dev/random\fP からの読み出しが早くなるわけではないということだ。
.SS 使い方
\fI/dev/random\fP と \fI/dev/urandom\fP のどちらを使うべきか迷った場合、たいていは \fI/dev/urandom\fP
の方を使いたいと思っているはずだろう。 一般に、長期に渡って使われる GPG/SSL/SSH のキー以外の全てのものに \fI/dev/urandom\fP
.LP
読み込み専用のファイル \fIuuid\fP と \fIboot_id\fP は 6fd5a44b\-35f4\-4ad4\-a9b9\-6b9be13e1fe9 のような
ランダムな文字列を保持している。 前者は読み込みの度に新たに生成され、 後者は 1 度だけ生成される。
+.SS "ioctl(2) インタフェース"
+以下の \fBioctl\fP(2) 要求が \fI/dev/random\fP や \fI/dev/urandom\fP
+に接続されたファイルディスクリプタに対して定義されている。 実行されたすべての要求は、 \fI/dev/random\fP と \fI/dev/urandom\fP
+に影響を与える入力エントロピー・プールとやり取りを行う。 \fBRNDGETENTCNT\fP 以外のすべての要求には \fBCAP_SYS_ADMIN\fP
+ケーパビリティが必要である。
+.TP
+\fBRNDGETENTCNT\fP
+入力エントロピー・プールのカウントを取得する。 取得される内容は proc の \fIentropy_avail\fP ファイルと同じである。
+結果は引き数が指す整数 (int) に格納される。
+.TP
+\fBRNDADDTOENTCNT\fP
+入力エントロピー・プールのカウントを引き数が指す値だけ加算または減算する。
+.TP
+\fBRNDGETPOOL\fP
+Linux 2.6.9 で削除された。
+.TP
+\fBRNDADDENTROPY\fP
+入力プールに追加のエントロピーを追加し、エントロピー・カウントを増やす。 この要求は \fI/dev/random\fP や \fI/dev/urandom\fP
+への書き込みとは異なる。 \fI/dev/random\fP や \fI/dev/urandom\fP への書き込みでは、 何らかのデータが追加されるだけで、
+エントロピー・カウントは増やされない。 以下の構造体が使用される。
+.IP
+.nf
+ struct rand_pool_info {
+ int entropy_count;
+ int buf_size;
+ __u32 buf[0];
+ };
+.fi
+.IP
+\fIentropy_count\fP はエントロピー・カウントに加算 (または減算) する値である。 \fIbuf\fP は大きさが \fIbuf_size\fP
+のバッファで、この内容がエントロピー・プールに追加される。
+.TP
+\fBRNDZAPENTCNT\fP, \fBRNDCLEARPOOL\fP
+すべてのプールのエントロピー・カウントを 0 にし、何らかのシステムデータ (現在の時刻など) をプールに追加する。
.SH ファイル
/dev/random
.br
.\" Theodore Ts'o (tytso@athena.mit.edu).
/dev/urandom
.SH 関連項目
-mknod (1)
+\fBmknod\fP(1)
.br
RFC\ 1750, "Randomness Recommendations for Security"
.SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.40 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.53 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man\-pages/ に書かれている。