1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177
|
.\" Copyright (c) 1997 John S. Kallal (kallal@voicenet.com)
.\"
.\" 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.
.\"
.\" Some changes by tytso and aeb.
.\"
.\" 2004-12-16, John V. Belmonte/mtk, Updated init and quit scripts
.\" 2004-04-08, AEB, Improved description of read from /dev/urandom
.\"
.\" Japanese Version Copyright (c) 1998
.\" ISHIKAWA Mutsumi, all rights reserved.
.\" Translated into Japanese Mon Jan 12 03:20:27 JST 1998
.\" by ISHIKAWA Mutsumi <ishikawa@linux.or.jp>
.\" Japanese Version Last Modified Thu Feb 5 21:08:33 JST 1998
.\" by ISHIKAWA Mutsumi <ishikawa@linux.or.jp>
.\" Updated & Modified Sun Jun 6 14:48:03 JST 2004
.\" by Yuichi SATO <ysato444@yahoo.co.jp>
.\" Updated & Modified Tue Jan 18 04:21:16 JST 2005 by Yuichi SATO
.\" Updated & Modified Fri Apr 22 03:44:01 JST 2005 by Yuichi SATO
.\"
.TH RANDOM 4 2008-01-10 "Linux" "Linux Programmer's Manual"
.SH ̾
random, urandom \- ͥǥХ
.SH
(Linux 1.3.30 Ƥ) \fI/dev/random\fP
\fI/dev/urandom\fP 饯ڥե
ͥͥ졼ؤΥե롣
\fI/dev/random\fP եϥ㡼ǥХʥС 1
ޥʡǥХֹ 8 Ǥ롣
\fI/dev/urandom\fP ϥ㡼ǥХʥС 1
ޥʡǥХʥС 9 Ǥ롣
.LP
ͥ졼ϥǥХɥ饤Ф䤽¾θδĶΥ
ȥԡסؽ롣
ޤͥ졼ϥȥԡסΥΥӥåȤοθѤ
¸롣
Υȥԡס뤫롣
.LP
ɤ߹ߤԤȡ
\fI/dev/random\fP
ǥХϥȥԡסΥΥӥåȤοɾͤ顢
ХȤΤߤ֤
\fI/dev/random\fP ϥѥå (one-time pad) 丰Τ褦
˹⤤ʼä̵ɬפˤʤŬڤǤ
ȥԡס뤬λϡ\fI/dev/random\fP ɤ߽Фϡ
ʤĶΥޤǡ֥å롣
.LP
\fI/dev/urandom\fP ǥХɤ߽ФǤϡ
ȥԡ⤯ʤΤԤĤΥ֥åϹԤʤ
η̡⤷ȥԡס˽ʬʥȥԡ¸ߤʤ硢
֤ͤϤΥɥ饤ФǻȤƤ륢르ꥺ˴ŤŹ湶Фơ
Ūˤϼ夯ʤ뤳Ȥˤʤ롣
ιɤΤ褦˹ԤȤˤĤƤϡ߸ʸʤɤ
ǤϤʤΤ褦ʹŪ¸߲ǽǤ롣
⤷λۤʤ顢(\fI/dev/urandom\fP ǤϤʤ)
\fI/dev/random\fP ѤФ
.SS
ƥˤ餫줿 \fI/dev/random\fP
\fI/dev/urandom\fP ¸ߤʤʤ顢Τ褦ʥޥɤǺǤ롣
.nf
mknod \-m 644 /dev/random c 1 8
mknod \-m 644 /dev/urandom c 1 9
chown root:root /dev/random /dev/urandom
.fi
ڥ졼ʤ Linux ƥबưľϡ
ȥԡסϰճ˳Ѱʾ֤ˤ
ˤꡢȥԡסμºݤΥΥ̤ɾͤ꾯ʤʤ롣
θ̤Ǥäˡåȥ () ưޤǻۤ
ȥԡסξˤʤ롣
ȥԡסۤˤϡ
Linux ƥεư˼¹ԤŬڤʥץȤˡ
ʲιԤɲäФ褤:
.nf
echo "Initializing random number generator..."
random_seed=/var/run/random-seed
# Υȥåפ鼡Υȥåפޤǻۤ
# ɤԤθ塢ƤΥȥԡס¸롣
if [ \-f $random_seed ]; then
cat $random_seed >/dev/urandom
else
touch $random_seed
fi
chmod 600 $random_seed
poolfile=/proc/sys/kernel/random/poolsize
[ \-r $poolfile ] && bytes=`cat $poolfile` || bytes=512
dd if=/dev/urandom of=$random_seed count=1 bs=$bytes
.fi
ޤLinux ƥΥåȥ˼¹ԤŬڤʥץȤˡ
ʲιԤɲäФ褤:
.nf
# Υåȥ鼡Υȥåפޤǻۤ
# ƤΥȥԡס¸롣
echo "Saving random seed..."
random_seed=/var/run/random-seed
touch $random_seed
chmod 600 $random_seed
poolfile=/proc/sys/kernel/random/poolsize
[ \-r $poolfile ] && bytes=`cat $poolfile` || bytes=512
dd if=/dev/urandom of=$random_seed count=1 bs=$bytes
.fi
.SS "/proc ե"
ǥ쥯ȥ
.I /proc/sys/kernel/random
ˤե (2.3.16 ¸ߤ) ϡ
.I /dev/random
ǥХؤΤ¾Υե롣
.LP
ɤ߹ѤΥե
.I entropy_avail
ϻѲǽʥȥԡɽ
̾ 4096 (ӥå) ˤʤꡢȥԡס뤬դξ֤Ǥ롣
.LP
ե
.I poolsize
ϥȥԡסΥɽ
Υեΰ̣ϥͥСˤۤʤ롣
.RS
.TP 12
Linux 2.4:
ΥեϥȥԡסΥ֥Хȡñ̤ǵꤹ롣
̾Υեͤ 512 ˤʤ뤬߲ǽǤꡢ
르ꥺѲǽǤդͤѹǤ롣
ǽͤ 32, 64, 128, 256, 512, 1024, 2048 Ǥ롣
.TP
Linux 2.6:
Υեɤ߽ФѤǤꡢ
ȥԡסΥ֥ӥåȡñ̤ǵꤹ롣
ͤ 4096 Ǥ롣
.RE
.LP
ե
.I read_wakeup_threshold
.I /dev/random
ΥȥԡԤäƵٻߤƤץΤɬפ
ȥԡΥӥåȿݻƤ롣
ǥեȤ 64 Ǥ롣
ե
.I write_wakeup_threshold
ϥȥԡΥӥåȿݻƤꡢͰʲˤʤä
.I /dev/random
ؤνߥΤ
.BR select (2)
ޤ
.BR poll (2)
¹Ԥץ
ͤϥե˽ߤԤȤˤäѹǤ롣
.LP
ɤ߹ѤΥե
.I uuid
.I boot_id
6fd5a44b-35f4-4ad4-a9b9-6b9be13e1fe9 Τ褦
ʸݻƤ롣
Ԥɤ߹ߤ٤˿졢
Ԥ 1 ٤롣
.SH ե
/dev/random
.br
/dev/urandom
.\" .SH
.\" ͥ롦ʥСͥ졼 Theodora Ts'o
.\" (tytso@athena.mit.edu) ˤäƽ줿
.SH Ϣ
mknod (1)
.br
RFC\ 1750, "Randomness Recommendations for Security"
.\" .SH
.\" <ishikawa@linux.or.jp>
|