Home :: International :: Manuals :: Howto :: FAQ :: Man Pages :: Email Login

 
 

 

RANDOM

Section: Linux Programmer's Manual (4)
Updated: August 1, 1997
Index Return to Main Contents
 

̾Á°

random, urandom - ¥«¡¼¥Í¥ëÍð¿ô¥½¡¼¥¹¥Ç¥Ð¥¤¥¹  

ÀâÌÀ

(Linux 1.3.30 ¤«¤éÄ󶡤µ¤ì¤Æ¤¤¤ë) /dev/random ¡¢ /dev/urandom ¥­¥ã¥é¥¯¥¿¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤Ï¥«¡¼¥Í¥ëÍð¿ô¥¸¥§¥Í¥ì¡¼ ¥¿¤Ø¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤¹¤ë¡£ /dev/random ¥Õ¥¡¥¤¥ë¤Ï¥á¥¸¥ã¡¼¥Ç¥Ð¥¤¥¹¥Ê¥ó¥Ð¡¼ 1 ¥Þ¥¤¥Ê¡¼¥Ç¥Ð¥¤ ¥¹ÈÖ¹æ 8 ¤Ç¤¢¤ë¡£/dev/urandom ¤Ï¥á¥¸¥ã¡¼¥Ç¥Ð¥¤¥¹¥Ê¥ó¥Ð¡¼ 1 ¥Þ¥¤ ¥Ê¡¼¥Ç¥Ð¥¤¥¹¥Ê¥ó¥Ð¡¼ 9 ¤Ç¤¢¤ë¡£

Íð¿ô¥¸¥§¥Í¥ì¡¼¥¿¤Ï¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤ä¤½¤Î¾¤Î¸»¤«¤é¤Î´Ä¶­¥Î¥¤¥º¤ò ¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤Ø½¸¤á¤ë¡£ ¤Þ¤¿¡¢¥¸¥§¥Í¥ì¡¼¥¿¤Ï¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ëÆâ¤Î¥Î¥¤¥º¥Ó¥Ã¥È¤Î¿ô¤Î¸«ÀѤê¤ò Êݸ¤¹¤ë¡£ ¤³¤Î¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤«¤éÍð¿ô¤¬À¸À®¤µ¤ì¤ë¡£

ÆÉ¤ß¹þ¤ß¤¬¹Ô¤ï¤ì¤ë¤È¡¢ /dev/random ¥Ç¥Ð¥¤¥¹¤Ï¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤Î¥Î¥¤¥º¥Ó¥Ã¥È¤Î¿ô¤Îɾ²ÁÃͤ«¤é¡¢¥é¥ó¥À¥à ¥Ð¥¤¥È¤Î¤ß¤òÊÖ¤¹¡£ /dev/random ¤Ï¥ï¥ó¥¿¥¤¥à¥Ñ¥Ã¥É(one-time pad) ¤ä¸°¤ÎÀ¸À®¤Î¤è¤¦¤Ê Èó¾ï¤Ë¹â¤¤ÉʼÁ¤ò»ý¤Ã¤¿Ìµºî°ÙÀ­¤¬É¬Íפˤʤë¾ì¹ç¤ËŬÀڤǤ¢¤í¤¦¡£ ¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤¬¶õ¤Î»þ¤Ï¡¢/dev/random ¤«¤é¤ÎÆÉ¤ß¤À¤·¤Ï¡¢¹¹ ¤Ê¤ë´Ä¶­¥Î¥¤¥º¤¬ÆÀ¤é¤ì¤ë¤Þ¤Ç¡¢¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¡£

¤Þ¤¿¡¢/dev/urandom ¥Ç¥Ð¥¤¥¹¤«¤éÆÉ¤ß½Ð¤·¤¬¹Ô¤ï¤ì¤¿¾ì¹ç¤Ï¡¢Í×µá ¤µ¤ì¤¿Î̤ΥХ¤¥È¤òÊÖ¤¹¡£¤½¤Î·ë²Ì¡¢¤â¤·¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤Ë½½Ê¬¤Ê¥¨¥ó¥È ¥í¥Ô¡¼¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¡¢ÊÖ¤êÃͤϤ³¤Î¥É¥é¥¤¥Ð¤Ç»È¤ï¤ì¤Æ¤¤¤ë¥¢¥ë¥´¥ê¥º ¥à¤Ë´ð¤Å¤¯°Å¹æ¹¶·â¤ËÂФ·¤Æ¡¢ÏÀÍýŪ¤Ë¤Ï¼å¤¯¤Ê¤ë¤³¤È¤Ë¤Ê¤ë¡£ ¤³¤Î¹¶·â¤ò¤É¤Î¤è¤¦¤Ë¹Ô¤¦¤«¤È¤¤¤¦»ö¤Ë¤Ä¤¤¤Æ¤Ï¡¢¸½ºß¸¦µæÏÀʸ¤Ê¤É¤Î ·Á¤ÇÆþ¼ê¤Ç¤­¤ë»ñÎÁ¤Ï¤Ê¤¤¡¢¤·¤«¤·¡¢¤½¤Î¤è¤¦¤Ê¹¶·â¤ÏÏÀÍýŪ¤Ë¸ºß²Äǽ¤Ç¤¢¤ë¡£ ¤â¤·¡¢¤³¤Î»ö¤¬¿´Çۤʤ顢(/dev/urandom ¤Ç¤Ï¤Ê¤¯) /dev/random ¤òÍøÍѤ¹¤ì¤Ð¤¤¤¤¡£  

ÀßÄê

¥·¥¹¥Æ¥à¤Ë¤¢¤é¤«¤¸¤áºîÀ®¤µ¤ì¤¿ /dev/random ¤È /dev/urandom ¤¬Â¸ºß¤·¤Ê¤¤¤Ê¤é¡¢¼¡¤Î¤è¤¦¤Ê¥³¥Þ¥ó¥É¤ÇºîÀ®¤Ç¤­¤ë¡£
        mknod -m 644 /dev/random c 1 8
        mknod -m 644 /dev/urandom c 1 9
        chown root:root /dev/random /dev/urandom

  ¥ª¥Ú¥ì¡¼¥¿¤ÎÁàºî¤Ê¤·¤Ë Linux ¥·¥¹¥Æ¥à¤Ç¤¬µ¯Æ°¤·¤¿Ä¾¸å¤Ï¡¢¥¨¥ó¥È¥í¥Ô¡¼¡¦ ¥×¡¼¥ë¤Ï°Õ³°À­¤Î˳¤·¤¤¶Ñ°ì¤Ê¾õÂ֤ˤ¢¤ë¤À¤í¤¦¡£ ¤³¤ì¤Ë¤è¤ê¡¢¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤Î¼ÂºÝ¤Î¥Î¥¤¥ºÎ̤Ïɾ²ÁÃͤè¤ê¾¯¤Ê¤¯¤Ê¤ë¡£ ¤³¤Î¸ú²Ì¤òÂǤÁ¾Ã¤¹¤¿¤á¤Ë¡¢¥·¥ã¥Ã¥È¥À¥¦¥ó¤«¤é(¼¡¤Î)µ¯Æ°»þ¤Þ¤Ç»ý¤Á±Û¤·¤¿ ¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤Î¾ðÊ󤬽õ¤±¤Ë¤Ê¤ë¡£ ¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤ò»ý¤Á±Û¤¹¤¿¤á¤Ë¤Ï¡¢Linux ¥·¥¹¥Æ¥à¤Îµ¯Æ°Æ°ºî¤Î´Ö¤Ë Áö¤ë¥¹¥¯¥ê¥×¥È¤ÎŬÀÚ¤ÊÉôʬ¤Ë¡¢¼¡¤Î¤è¤¦¤Ê¹Ô¤òÉÕ¤±²Ã¤¨¤ì¤ÐÎɤ¤¡£
        echo "Initializing kernel random number generator..."
        # Á°²ó¤Î¥·¥ã¥Ã¥È¥À¥¦¥ó (¤Þ¤¿¤Ï¡¢¥¹¥¿¡¼¥È¥¢¥Ã¥×)¤«¤éº£²ó¤Î
        # ¥¹¥¿¡¼¥È¥¢¥Ã¥×¤Ë»ý¤Á±Û¤·¤¿Íð¿ô¼ï¤òÍøÍѤ·¤¿¥«¡¼¥Í¥ëÍð¿ô¥¸¥§¥Í
        # ¥ì¡¼¥¿¤Î½é´ü²½¡£
        # ¥í¡¼¥É¤ò¹Ô¤¤¡¢¤½¤Î¸å¡¢512 ¥Ð¥¤¥È¤Î¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤ò
        # ¥»¡¼¥Ö¤¹¤ë¡£
        if [ -f /var/random-seed ]; then
                cat /var/random-seed >/dev/urandom
        fi
        dd if=/dev/urandom of=/var/random-seed count=1

¤Þ¤¿¡¢Linux ¥·¥¹¥Æ¥à¤Î¥·¥ã¥Ã¥È¥À¥¦¥ó»þ¤ËÁö¤ë¥¹¥¯¥ê¥×¥È¤ÎŬÀÚ¤ÊÉôʬ¤Ë ¼¡¤Î¤è¤¦¤Ê¹Ô¤ò²Ã¤¨¤ë¡£

        # Íð¿ô¥¸¥§¥Í¥ì¡¼¥¿¤ÇÍѤ¤¤ë¤¿¤á¤Ë¡¢º£²ó¤Î¥·¥ã¥Ã¥È¥À¥¦¥ó¤«¤é¡¢¼¡
        # ²ó¤Îµ¯Æ°»þ¤Þ¤ÇÍð¿ô¼ï¤ò»ý¤Á±Û¤¹¡£
        # 512 ¥Ð¥¤¥È¤ÎÍð¿ô¥¸¥§¥Í¥ì¡¼¥¿¤Î¥¨¥ó¥È¥í¥Ô¡¼¡¦¥×¡¼¥ë¤òÊݸ¤¹¤ë¡£
        echo "Saving random seed..."
        dd if=/dev/urandom of=/var/random-seed count=1
 

¥Õ¥¡¥¤¥ë

/dev/random
/dev/urandom  

Ãø¼Ô

¥«¡¼¥Í¥ë¡¦¥é¥ó¥À¥à¥Ê¥ó¥Ð¡¼¡¦¥¸¥§¥Í¥ì¡¼¥¿¤Ï Theodora Ts'o (tytso@athena.mit.edu) ¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿¡£  

´ØÏ¢¹àÌÜ

mknod (1)
RFC 1750, "Randomness Recommendations for Security"  

ËÝÌõ¼Ô

ÀÐÀî ËÓ <ishikawa@linux.or.jp>


 

Index

̾Á°
ÀâÌÀ
ÀßÄê
¥Õ¥¡¥¤¥ë
Ãø¼Ô
´ØÏ¢¹àÌÜ
ËÝÌõ¼Ô

 
 
 
 
Google
  Web Linuxinfor   
 

Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account

Document on this page is part of "Linuxinfor Man Pages in HTML Format: man4". See Index Page for more info about Authorship and Copyright.

1999-2008 Linuxinfor.com. No rights reserved.