random(4) - wariua/manpages-ko GitHub Wiki

NAME

random, urandom - 컀널 λ‚œμˆ˜ μ›μ²œ μž₯치

SYNOPSIS

#include <linux/random.h>

int ioctl(fd, RNDrequest, param);

DESCRIPTION

(λ¦¬λˆ…μŠ€ 1.3.30λΆ€ν„° μ‘΄μž¬ν•˜λŠ”) 문자 특수 파일 /dev/randomκ³Ό /dev/urandom은 μ»€λ„μ˜ λ‚œμˆ˜ 생성기에 λŒ€ν•œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•œλ‹€. /dev/random νŒŒμΌμ€ μž₯치 μ£Όλ²ˆν˜Έκ°€ 1이고 μž₯치 λΆ€λ²ˆν˜Έκ°€ 8이닀. /dev/urandom νŒŒμΌμ€ μž₯치 μ£Όλ²ˆν˜Έκ°€ 1이고 μž₯치 λΆ€λ²ˆν˜Έκ°€ 9이닀.

λ‚œμˆ˜ μƒμ„±κΈ°λŠ” μž₯치 λ“œλΌμ΄λ²„ 및 기타 μ›μ²œλ“€λ‘œλΆ€ν„° ν™˜κ²½ μž‘μŒμ„ μˆ˜μ§‘ν•˜μ—¬ μ—”νŠΈλ‘œν”Ό 풀에 λ„£λŠ”λ‹€. μƒμ„±κΈ°λŠ” λ˜ν•œ μ—”νŠΈλ‘œν”Ό ν’€ λ‚΄μ˜ 작음 λΉ„νŠΈ 수 μΆ”μ •μΉ˜λ₯Ό μœ μ§€ν•œλ‹€. 이 μ—”νŠΈλ‘œν”Ό ν’€λ‘œλΆ€ν„° λ‚œμˆ˜λ“€μ„ μƒμ„±ν•œλ‹€.

λ¦¬λˆ…μŠ€ 3.17 및 이후 λ²„μ „μ—μ„œλŠ” 더 λ‹¨μˆœν•˜κ³  μ•ˆμ „ν•œ getrandom(2) μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•œλ‹€. μ—¬κΈ°μ—λŠ” μ–΄λ–€ 특수 νŒŒμΌλ„ ν•„μš”ν•˜μ§€ μ•Šλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ getrandom(2) 맀뉴얼 νŽ˜μ΄μ§€λ₯Ό 보라.

/dev/urandom μž₯치λ₯Ό 읽어듀이면 μ—”νŠΈλ‘œν”Ό 풀을 μ‹œλ“œλ‘œ μ“°λŠ” μœ μ‚¬ λ‚œμˆ˜ 생성기λ₯Ό μ΄μš©ν•˜μ—¬ λ‚œμˆ˜ λ°”μ΄νŠΈλ₯Ό λ°˜ν™˜ν•œλ‹€. 이 μž₯치λ₯Ό μ½λŠ” 것은 블둝 ν•˜μ§€ μ•ŠλŠ”λ‹€. (즉, CPUλ₯Ό μ–‘λ³΄ν•˜μ§€ μ•ŠλŠ”λ‹€.) ν•˜μ§€λ§Œ λ§Žμ€ μ–‘μ˜ 데이터λ₯Ό μš”μ²­ν•  λ•Œμ—λŠ” μ£Όλͺ©ν•  λ§Œν•œ 지연이 λ°œμƒν•  수 μžˆλ‹€.

λΆ€νŒ… μ΄ˆλ°˜μ—λŠ” μ—”νŠΈλ‘œν”Ό 풀이 μ΄ˆκΈ°ν™” 되기 전에 /dev/urandom이 데이터λ₯Ό λ°˜ν™˜ν•  μˆ˜λ„ μžˆλ‹€. μ‘μš©μ—μ„œ 이 점이 μ—Όλ €λœλ‹€λ©΄ λŒ€μ‹  getrandom(2)μ΄λ‚˜ /dev/random을 μ‚¬μš©ν•˜λΌ.

/dev/random μž₯μΉ˜λŠ” /dev/urandom κ΅¬ν˜„μ— μ“°λŠ” μ•”ν˜Έν•™μ  μš”μ†Œλ₯Ό 널리 μ‹ λ’°ν•˜μ§€ μ•Šλ˜ μ‹œκΈ°κΉŒμ§€ 거슬러 μ˜¬λΌκ°€λŠ” ꡬ식 μΈν„°νŽ˜μ΄μŠ€μ΄λ‹€. μ—”νŠΈλ‘œν”Ό ν’€ λ‚΄μ˜ μ‹ μ„ ν•œ 작음 λΉ„νŠΈ μΆ”μ •λŸ‰ λ‚΄μ—μ„œλ§Œ λ‚œμˆ˜ λ°”μ΄νŠΈλ₯Ό λ°˜ν™˜ν•˜κ²Œ 되며 ν•„μš”ν•˜λ©΄ 블둝 ν•œλ‹€. /dev/random은 ν’ˆμ§ˆ 높은 λ‚œμˆ˜μ„±μ΄ ν•„μš”ν•˜λ©΄μ„œ λΆˆν™•μ •ν•œ 지연을 κ°μˆ˜ν•  수 μžˆλŠ” μ‘μš©λ“€μ— μ ν•©ν•˜λ‹€.

μ—”νŠΈλ‘œν”Ό 풀이 λΉ„μ–΄ μžˆμ„ λ•Œ /dev/random을 읽으면 μΆ”κ°€λ‘œ ν™˜κ²½ μž‘μŒμ„ μˆ˜μ§‘ν•  λ•ŒκΉŒμ§€ 블둝 ν•˜κ²Œ λœλ‹€. /dev/random에 λŒ€ν•œ open(2)을 O_NONBLOCK ν”Œλž˜κ·Έμ™€ ν•¨κ»˜ ν˜ΈμΆœν•˜λ©΄ 후속 read(2)μ—μ„œ μš”μ²­ν•œ 수만큼의 λ°”μ΄νŠΈκ°€ μ‚¬μš© κ°€λŠ₯ν•˜μ§€ μ•Šμ€ κ²½μš°μ— 블둝 ν•˜μ§€ μ•Šκ²Œ λœλ‹€. λŒ€μ‹  μ‚¬μš© κ°€λŠ₯ν•œ λ°”μ΄νŠΈλ“€μ„ λ°˜ν™˜ν•œλ‹€. μ‚¬μš© κ°€λŠ₯ν•œ λ°”μ΄νŠΈκ°€ μ—†μœΌλ©΄ read(2)κ°€ -1을 λ°˜ν™˜ν•˜λ©° errnoλ₯Ό EAGAIN으둜 μ„€μ •ν•˜κ²Œ λœλ‹€.

/dev/urandom을 μ—΄ λ•ŒλŠ” O_NONBLOCK ν”Œλž˜κ·Έμ˜ νš¨κ³Όκ°€ μ—†λ‹€. /dev/urandom μž₯μΉ˜μ— read(2)λ₯Ό ν˜ΈμΆœν•  λ•Œ 256κ°œκΉŒμ§€μ˜ λ°”μ΄νŠΈλ₯Ό 읽으면 μš”μ²­ν•œ 만큼의 λ°”μ΄νŠΈλ“€μ„ λ°˜ν™˜ν•˜λ©° μ‹œκ·Έλ„ ν•Έλ“€λŸ¬μ— μ˜ν•΄ μ€‘λ‹¨λ˜μ§€ μ•Šκ²Œ λœλ‹€. 이 μ œν•œμ„ λ„˜λŠ” λ²„νΌλ‘œ 읽기λ₯Ό ν•˜λ©΄ μ‹œκ·Έλ„ ν•Έλ“€λŸ¬μ— μ˜ν•΄ μ€‘λ‹¨λ˜λŠ” 경우 μš”μ²­ν•œ λ°”μ΄νŠΈ μˆ˜λ³΄λ‹€ 적게 λ°˜ν™˜ν•˜κ±°λ‚˜ EINTR 였λ₯˜λ‘œ μ‹€νŒ¨ν•  μˆ˜λ„ μžˆλ‹€.

λ¦¬λˆ…μŠ€ 3.16λΆ€ν„°λŠ” /dev/urandomμ—μ„œ read(2) ν•˜λŠ” 것이 μ΅œλŒ€ 32MBλ₯Ό λ°˜ν™˜ν•˜κ²Œ λœλ‹€. /dev/randomμ—μ„œ read(2) ν•˜λŠ” 것은 μ΅œλŒ€ 512λ°”μ΄νŠΈλ₯Ό (λ¦¬λˆ…μŠ€ 컀널 버전 2.6.12 μ „μ—μ„œλŠ” 340λ°”μ΄νŠΈλ₯Ό) λ°˜ν™˜ν•˜κ²Œ λœλ‹€.

/dev/randomμ΄λ‚˜ /dev/urandom에 μ“°κΈ°λ₯Ό ν•˜λ©΄ 써넣은 λ°μ΄ν„°λ‘œ μ—”νŠΈλ‘œν”Ό 풀을 κ°±μ‹ ν•˜κ²Œ λ˜μ§€λ§Œ μ—”νŠΈλ‘œν”Ό 양이 μ˜¬λΌκ°€μ§€λŠ” μ•ŠλŠ”λ‹€. 즉, 두 νŒŒμΌμ—μ„œ 읽게 λ˜λŠ” λ‚΄μš©λ¬Όμ—λŠ” 영ν–₯을 μ£Όμ§€λ§Œ /dev/randomμ—μ„œ μ½λŠ” 것이 더 λΉ¨λΌμ§€μ§€λŠ” μ•ŠλŠ”λ‹€.

μ‚¬μš©λ²•

/dev/random μΈν„°νŽ˜μ΄μŠ€λŠ” ꡬ식 μΈν„°νŽ˜μ΄μŠ€λ‘œ λ³Έλ‹€. λͺ¨λ“  μš©λ„μ— /dev/urandom이 μ’‹κ³  또 μΆ©λΆ„ν•˜λ‹€. 이에 λŒ€ν•œ μ˜ˆμ™Έκ°€ λΆ€νŒ… 초기 λ™μ•ˆ λ‚œμˆ˜μ„±μ΄ ν•„μš”ν•œ μ‘μš©λ“€μΈλ°, 그런 μ‘μš©λ“€μ—μ„œλŠ” λŒ€μ‹  getrandom(2)을 μ‚¬μš©ν•΄μ•Ό ν•œλ‹€. κ·Έ ν•¨μˆ˜λŠ” μ—”νŠΈλ‘œν”Ό 풀이 μ΄ˆκΈ°ν™” 될 λ•ŒκΉŒμ§€ 블둝 ν•˜κ²Œ λœλ‹€.

μ•„λž˜μ—μ„œ ꢌμž₯ν•˜λ“― μž¬λΆ€νŒ…μ„ κ±°μΉ  λ•Œ μ‹œλ“œ νŒŒμΌμ„ μ €μž₯ν•˜λ©΄ (μ΅œμ†Œ 2000λ…„λΆ€ν„° λͺ¨λ“  μ£Όμš” λ¦¬λˆ…μŠ€ λ°°ν¬νŒλ“€μ΄ μ΄λ ‡κ²Œ ν•œλ‹€.) λΆ€νŒ… κ³Όμ •μ—μ„œ μž¬μ μž¬ν•˜λŠ” μ¦‰μ‹œ 둜컬 루트 μ ‘κ·ΌκΆŒ μ—†λŠ” κ³΅κ²©μžμ— λŒ€ν•΄ 좜λ ₯이 μ•”ν˜Έν•™μ μœΌλ‘œ μ•ˆμ „ν•΄μ§„λ‹€. λ„€νŠΈμ›Œν¬ μ•”ν˜Έν™” μ„Έμ…˜ 킀에 더할 λ°” 없이 μ ν•©ν•˜λ‹€. /dev/random 읽기가 블둝 ν•  μˆ˜λ„ μžˆμœΌλ―€λ‘œ 일반적으둜 μ‚¬μš©μžλŠ” λ…ΌλΈ”λ‘œν‚Ή λͺ¨λ“œλ‘œ μ—΄κ³ μ„œ (λ˜λŠ” νƒ€μž„μ•„μ›ƒμ„ μ£Όμ–΄ 읽기λ₯Ό μˆ˜ν–‰ν•˜κ³ μ„œ) μ›ν•˜λŠ” μ—”νŠΈλ‘œν”Όκ°€ μ¦‰μ‹œ μ‚¬μš© κ°€λŠ₯ν•˜μ§€ μ•ŠμœΌλ©΄ μ–΄λ–€ μ’…λ₯˜μ˜ μ‚¬μš©μž μ•Œλ¦Όμ„ μ œκ³΅ν•˜κΈ°λ₯Ό λ°”λž„ 것이닀.

ꡬ성

μ‹œμŠ€ν…œμ— /dev/random 및 /dev/urandom이 이미 μƒμ„±λ˜μ–΄ μžˆμ§€ μ•Šλ‹€λ©΄ λ‹€μŒ λͺ…λ ΉμœΌλ‘œ 생성할 수 μžˆλ‹€.

mknod -m 666 /dev/random c 1 8
mknod -m 666 /dev/urandom c 1 9
chown root:root /dev/random /dev/urandom

μš΄μš©μžμ™€μ˜ μƒν˜Έμž‘μš©μ΄ 크게 없이 λ¦¬λˆ…μŠ€ μ‹œμŠ€ν…œμ΄ μ‹œμž‘ν•  λ•ŒλŠ” μ—”νŠΈλ‘œν”Ό 풀이 κ½€ 예츑 κ°€λŠ₯ν•œ μƒνƒœμΌ μˆ˜λ„ μžˆλ‹€. μ΄λ ‡κ²Œ 되면 μ—”νŠΈλ‘œν”Ό ν’€ λ‚΄μ˜ μ‹€μ œ 작음 양이 μΆ”μ‚°μΉ˜λ³΄λ‹€ λ‚΄λ €κ°„λ‹€. 이 νš¨κ³Όμ— λŒ€μ‘ν•˜λ €λ©΄ μ‹œμŠ€ν…œ 정지와 μ‹œμž‘μ— κ±Έμ³μ„œ μ—”νŠΈλ‘œν”Ό ν’€ 정보가 μ΄μ–΄μ§€κ²Œ ν•˜λŠ” 것이 도움이 λœλ‹€. λ¦¬λˆ…μŠ€ μ‹œμŠ€ν…œ μ‹œμž‘ 과정에 μ‹€ν–‰λ˜λŠ” μ μ ˆν•œ μŠ€ν¬λ¦½νŠΈμ— λ‹€μŒ 행듀을 μΆ”κ°€ν•˜λ©΄ λœλ‹€.

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 ] && bits=$(cat $poolfile) || bits=4096
bytes=$(expr $bits / 8)
dd if=/dev/urandom of=$random_seed count=1 bs=$bytes

그리고 λ¦¬λˆ…μŠ€ μ‹œμŠ€ν…œ μ •μ§€ 과정에 μ‹€ν–‰λ˜λŠ” μ ˆμ ν•œ μŠ€ν¬λ¦½νŠΈμ— λ‹€μŒ 행듀을 μΆ”κ°€ν•˜λ©΄ λœλ‹€.

# μ •μ§€μ—μ„œ μ‹œμž‘μœΌλ‘œ λ‚œμˆ˜ μ‹œλ“œ μ΄μ›”ν•˜κΈ°
# μ—”νŠΈλ‘œν”Ό ν’€ 전체λ₯Ό μ €μž₯
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 ] && bits=$(cat $poolfile) || bits=4096
bytes=$(expr $bits / 8)
dd if=/dev/urandom of=$random_seed count=1 bs=$bytes

μœ„ μ˜ˆμ‹œλ“€μ—μ„œλŠ” λ¦¬λˆ…μŠ€ 2.6.0 λ‚΄μ§€ 이후 버전을 κ°€μ •ν•œλ‹€. κ·Έ λ²„μ „λ“€μ—μ„œλŠ” /proc/sys/kernel/random/poolsize이 μ—”νŠΈλ‘œν”Ό ν’€μ˜ 크기λ₯Ό λΉ„νŠΈ λ‹¨μœ„λ‘œ λ°˜ν™˜ν•œλ‹€ (μ•„λž˜ μ°Έκ³ ).

/proc μΈν„°νŽ˜μ΄μŠ€

(2.3.16λΆ€ν„° μžˆλŠ”) /proc/sys/kernel/random 디렉터리 λ‚΄μ˜ νŒŒμΌλ“€μ΄ /dev/random μž₯μΉ˜μ— λŒ€ν•œ μΆ”κ°€ 정보λ₯Ό μ œκ³΅ν•œλ‹€.

entropy_avail
이 읽기 μ „μš© νŒŒμΌμ€ μ‚¬μš© κ°€λŠ₯ μ—”νŠΈλ‘œν”Όμ˜ 양을 λΉ„νŠΈ λ‹¨μœ„λ‘œ μ•Œλ € μ€€λ‹€. 0μ—μ„œ 4096κΉŒμ§€ λ²”μœ„μ˜ 숫자일 것이닀.
poolsize

이 νŒŒμΌμ€ μ—”νŠΈλ‘œν”Ό ν’€μ˜ 크기λ₯Ό μ•Œλ € μ€€λ‹€. 컀널 버전에 따라 이 파일의 해석 방식이 λ‹€λ₯΄λ‹€.

λ¦¬λˆ…μŠ€ 2.4:
이 νŒŒμΌμ€ λ°”μ΄νŠΈ λ‹¨μœ„λ‘œ μ—”νŠΈλ‘œν”Ό ν’€μ˜ 크기λ₯Ό μ•Œλ € μ€€λ‹€. 보톡은 512 값을 κ°€μ§€κ²Œ λ˜λŠ”λ°, 파일이 μ“°κΈ° κ°€λŠ₯ν•˜λ―€λ‘œ κ°€μš© μ•Œκ³ λ¦¬λ“¬μ΄ μžˆλŠ” μ–΄λ–€ κ°’μœΌλ‘œλ„ λ°”κΏ€ 수 μžˆλ‹€. 선택 κ°€λŠ₯ν•œ 값은 32, 64, 128, 256, 512, 1024, 2048이닀.
λ¦¬λˆ…μŠ€ 2.6 및 이후:
이 νŒŒμΌμ€ 읽기 μ „μš©μ΄λ©° λΉ„νŠΈ λ‹¨μœ„λ‘œ μ—”νŠΈλ‘œν”Ό ν’€μ˜ 크기λ₯Ό μ•Œλ € μ€€λ‹€. 4096 값을 λ‹΄κ³  μžˆλ‹€.
read_wakeup_threshold
이 νŒŒμΌμ€ /dev/randomμ—κ²Œμ„œ μ—”νŠΈλ‘œν”Όλ₯Ό 기닀리며 μž λ“€μ–΄ μžˆλŠ” ν”„λ‘œμ„ΈμŠ€λ“€μ„ 깨우기 μœ„ν•΄ ν•„μš”ν•œ μ—”νŠΈλ‘œν”Ό λΉ„νŠΈ 수λ₯Ό λ‹΄κ³  μžˆλ‹€. 기본값은 64이닀.
write_wakeup_threshold
이 νŒŒμΌμ€ /dev/random μ“°κΈ° 접근을 select(2) λ‚΄μ§€ poll(2) ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€λ“€μ„ κΉ¨μš°λŠ” μ—”νŠΈλ‘œν”Ό λΉ„νŠΈ 수 기쀀을 λ‹΄κ³  μžˆλ‹€. 이 κΈ°μ€€ μ•„λž˜μ΄λ©΄ κΉ¨μš΄λ‹€. νŒŒμΌμ— μ“°κΈ°λ₯Ό ν•΄μ„œ 이 값듀을 λ°”κΏ€ 수 μžˆλ‹€.
uuid 및 boot_id
이 읽기 μ „μš© νŒŒμΌλ“€μ€ 6fd5a44b-35f4-4ad4-a9b9-6b9be13e1fe9 같은 λ‚œμˆ˜μ—΄μ„ λ‹΄κ³  μžˆλ‹€. μ „μžλŠ” 읽을 λ•Œλ§ˆλ‹€ μƒˆλ‘œ μƒμ„±ν•˜λ©° ν›„μžλŠ” ν•œ 번만 μƒμ„±ν•œλ‹€.

ioctl(2) μΈν„°νŽ˜μ΄μŠ€

/dev/random λ‚΄μ§€ /dev/urandom에 μ—°κ²°λœ 파일 λ””μŠ€ν¬λ¦½ν„°μ—μ„œ λ‹€μŒ ioctl(2) μš”μ²­λ“€μ΄ μ •μ˜λ˜μ–΄ μžˆλ‹€. λͺ¨λ“  μˆ˜ν–‰ μš”μ²­λ“€μ€ /dev/randomκ³Ό /dev/urandom λͺ¨λ‘μ— 영ν–₯을 μ£ΌλŠ” μž…λ ₯ μ—”νŠΈλ‘œν”Ό ν’€κ³Ό μƒν˜Έμž‘μš© ν•˜κ²Œ λœλ‹€. RNDGETENTCNTλ₯Ό μ œμ™Έν•œ λͺ¨λ“  μš”μ²­μ—λŠ” CAP_SYS_ADMIN μ—­λŠ₯이 ν•„μš”ν•˜λ‹€.

RNDGETENTCNT
μž…λ ₯ ν’€μ˜ μ—”νŠΈλ‘œν”Ό 양을 κ°€μ Έμ˜¨λ‹€. κ·Έ λ‚΄μš©λ¬Όμ€ proc μ•„λž˜μ˜ entropy_availκ³Ό κ°™κ²Œ λœλ‹€. μΈμžκ°€ κ°€λ¦¬ν‚€λŠ” int에 κ²°κ³Όκ°€ μ €μž₯λœλ‹€.
RNDADDTOENDCNT
μΈμžκ°€ κ°€λ¦¬ν‚€λŠ” κ°’λ§ŒνΌ μž…λ ₯ ν’€μ˜ μ—”νŠΈλ‘œν”Ό 양을 μ˜¬λ¦¬κ±°λ‚˜ λ‚΄λ¦°λ‹€.
RNDGETPOOL
λ¦¬λˆ…μŠ€ 2.6.9μ—μ„œ 제거됨.
RNDADDENTROPY

μž…λ ₯ 풀에 μ–΄λ–€ μΆ”κ°€ μ—”νŠΈλ‘œν”Όλ₯Ό λ”ν•˜μ—¬ μ—”νŠΈλ‘œν”Ό 양을 λŠ˜μΈλ‹€. /dev/randomμ΄λ‚˜ /dev/urandom에 μ“°κΈ°λ₯Ό ν•˜λŠ” κ²ƒκ³ΌλŠ” λ‹€λ₯Έλ°, κ±°κΈ°μ„  μ–΄λ–€ 데이터λ₯Ό μΆ”κ°€ν•˜μ§€λ§Œ μ—”νŠΈλ‘œν”Ό 양을 λŠ˜μ΄μ§€λŠ” μ•ŠλŠ”λ‹€. λ‹€μŒ ꡬ쑰체λ₯Ό μ‚¬μš©ν•œλ‹€.

struct rand_pool_info {
    int    entropy_count;
    int    buf_size;
    __u32  buf[0];
};

μ—¬κΈ°μ„œ entropy_countλŠ” μ—”νŠΈλ‘œν”Ό 양에 λ”ν•˜λŠ” (λ˜λŠ” λΉΌλŠ”) 값이고, bufλŠ” μ—”νŠΈλ‘œν”Ό 풀에 μΆ”κ°€λ˜λŠ” buf_size 크기 버퍼이닀.

RNDZAPENTCNT, RNDCLEARPOOL
λͺ¨λ“  ν’€μ˜ μ—”νŠΈλ‘œν”Ό 양을 0으둜 λ§Œλ“€κ³  κ·Έ 풀듀에 μ–΄λ–€ (μ‹œκ³„ μ‹œκ°„ 같은) μ‹œμŠ€ν…œ 데이터λ₯Ό μΆ”κ°€ν•œλ‹€.

FILES

  • /dev/random
  • /dev/urandom

NOTES

λ‚œμˆ˜λ₯Ό μ–»λŠ” 데 μ‚¬μš©ν•  수 μžˆλŠ” λ‹€μ–‘ν•œ μΈν„°νŽ˜μ΄μŠ€λ“€μ˜ μ†Œκ°œμ™€ λΉ„κ΅λŠ” random(7)을 보라.

BUGS

λΆ€νŒ… μ΄ˆλ°˜μ—λŠ” μ—”νŠΈλ‘œν”Ό 풀이 μ΄ˆκΈ°ν™” 되기 전에 /dev/urandom 읽기가 데이터λ₯Ό λ°˜ν™˜ν•  μˆ˜λ„ μžˆλ‹€.

SEE ALSO

mknod(1), getrandom(2), random(7)

RFC 1750, "λ³΄μ•ˆμ„ μœ„ν•œ λ‚œμˆ˜μ„± μš”κ΅¬ 사항"


2017-09-15

⚠️ **GitHub.com Fallback** ⚠️