10.3. ³­¼ö

¸¹Àº °æ¿ì º¸¾ÈÀûÀÎ ÇÁ·Î±×·¥µéÀº ÀûÀÌ ÃßÃøÇÒ ¼ö ¾ø´Â ÀÓÀÇÀÇ ¼ýÀÚ (³­¼ö) ¸¦ »ý¼ºÇØ¾ß Çϴµ¥ ¿¹·Î´Â ¸¹Àº ÇÁ·ÎÅäÄÝ, salt µî¿¡ »ç¿ëµÇ´Â ¼¼¼ÇÅ°, °ø°³ ¶Ç´Â ºñ¹ÐÅ°, ´ëĪŰ, nonces ¿Í IV µéÀÌ ÀÖ´Ù. ÀÌ·Ð»ó ³­¼ö·Î´Â ¹æ»ç¼± ¼Ò¸ê (°¡ÀÌ°Å Ä«¿îÅÍ Å¬¸¯ÀÇ Á¤È®ÇÑ °è½Ã¸¦ ÅëÇØ), ´ë±â ¼ÒÀ½ ¶Ç´Â Àü¼±¿¡¼­ÀÇ ¿­ ¼ÒÀ½¿¡ ±âÃÊÇÑ °ªµé°ú °°Àº ½ÇÁ¦ ¹«ÀÛÀ§·Î ¾ò¾îÁø µ¥ÀÌŸ¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. ¾î¶² ÄÄÇ»ÅÍ´Â ½ÇÁ¦ ÀÓÀÇÀÇ (random) °ªÀ» »ý¼ºÇÏ´Â ¿ªÇÒÀ» ÇÏ´Â Çϵå¿þ¾î ÄÄÆ÷³ÍÆ®¸¦ °®°í Àִµ¥ °¡´ÉÇÏ´Ù¸é À̸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.

±×·¯³ª ´ëºÎºÐÀÇ ÄÄÇ»Å͵éÀº ½ÇÁ¦ ÀÓÀÇÀÇ °ªµéÀ» »ý¼ºÇÏ´Â Çϵå¿þ¾î¸¦ °®°í ÀÖÁö ¾ÊÀ¸¸ç µû¶ó¼­ ´ëºÎºÐÀÇ °æ¿ì ÀûÀÌ ¿¹ÃøÇÒ ¼ö ¾øÀ» ¸¸Å­ ÃæºÐÈ÷ ÀÓÀÇÀûÀÎ ³­¼ö¸¦ »ý¼ºÇÒ ¹æ¹ýÀÌ ÇÊ¿äÇÏ´Ù. ÀϹÝÀûÀ¸·Î ÀÌ´Â ´ÙÀ½ ¼¼°¡Áö¸¦ ÇÊ¿ä·Î ÇÔÀ» ÀǹÌÇÑ´Ù:

ÀϹÝÀûÀ¸·Î PRNG ´Â »óŸ¦ »ç¿ëÇØ ¾î¶² °ªµéÀ» »ý¼ºÇÑ ÈÄ ÀÌ °ªµéÁßÀÇ ÀÏºÎ¿Í ´Ù¸¥ ÃßÃøÇÒ ¼ö ¾ø´Â ÀÔ·ÂÀ» ÀÌ¿ëÇØ »óŸ¦ °»½ÅÇÑ´Ù. ÀÌ·¯ÇÑ ½Ã½ºÅÛµéÀ» °ø°ÝÇÏ´Â ¸¹Àº ¹æ¹ýµéÀÌ Àִµ¥ ¿¹¸¦ µé¾î °ø°ÝÀÚ°¡ »óÅ¿¡ ´ëÇÑ ÀԷµé (¶Ç´Â À̵é ÁßÀÇ ÀϺÎ) À» Á¦¾îÇϰųª º¼ ¼ö ÀÖ´Ù¸é °ø°ÝÀÚ´Â ¾Æ¸¶ ³­¼ö¸¦ °áÁ¤ÇÒ ¼ö ÀÖÀ» ¼öµµ ÀÖ´Ù.

PRNGs ¸¦ »ç¿ëÇϴµ¥ ÀÖ¾î ÁøÂ¥ À§ÇèÇÑ °ÍÀº ´ëºÎºÐÀÇ ÄÄÇ»ÅÍ ¾ð¾î ¶óÀ̺귯¸®µéÀÌ º¸¾È ¸ñÀû¿¡ ºÎÀûÀýÇÑ ¸¹Àº PRNG ¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù´Â °ÍÀÌ´Ù. ´Ù½Ã Çѹø ¸»ÇÏÀÚ: º¸¾ÈÀ» ¸ñÀûÀ¸·Î ÇÒ ¶§ ÀϹÝÀûÀÎ ³­¼ö ¹ß»ý±â¸¦ »ç¿ëÇÏÁö ¸¶¶ó. ÀϹÝÀûÀ¸·Î ¶óÀ̺귯¸® PRNG ´Â ¸ð»ç, °ÔÀÓ µî¿¡ »ç¿ëÇϱâ À§ÇÑ °ÍÀε¥ À̵éÀº Å° »ý¼º°ú °°Àº º¸¾È ÇÔ¼öµé¿¡ »ç¿ëÇÒ ¼ö ÀÖÀ» Á¤µµ·Î ÃæºÐÈ÷ ÀÓÀÇÀûÀÌÁö ¾Ê´Ù. ´ëºÎºÐÀÇ ºñ¾Ïȣȭ ¶óÀ̺귯¸® PRNG ´Â ¼±Çü ÇÕµ¿ ¹ß»ý±â (linear congruential generator) À» ¾à°£ º¯Çü½ÃŲ °ÍÀ¸·Î ``´ÙÀ½" ÀÓÀÇÀÇ °ªÀÌ (aX+b)) mod) m À¸·Î °è»êµÈ´Ù (X ´Â ÀÌÀü °ªÀÌ´Ù). ÈǸ¢ÇÑ ¼±Çü ÇÕµ¿ ¹ß»ý±â´Â ºü¸£¸ç À¯¿ëÇÑ Åë°èÀûÀÎ ¼ºÁúÀ» °®°í ÀÖ¾î ÀǵµÇÑ »ç¿ë ¸ñÀû¿¡ ÀûÀýÇÏ´Ù. ÀÌ·¯ÇÑ PRNG ¿Í °ü°èµÈ ¹®Á¦´Â Â÷ÈÄÀÇ °ªÀÌ ÀÓÀÇÀÇ °ªÀ¸·Î º¸ÀÓ¿¡µµ ºÒ±¸ÇÏ°í °ø°ÝÀÚ¿¡ ÀÇÇØ ½±°Ô ÃßÁ¤µÉ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. ÀÌÂ÷ (quadratic) ¹× »ïÂ÷ (cubic) ¹ß»ý±â¿Í °°ÀÌ ºü¸£°Ô ³­¼ö¸¦ »ý¼ºÇÏ´Â ´Ù¸¥ ¾Ë°í¸®µëµéµµ Çص¶µÇ¾ú´Ù [Schneier 1996]. ¿ä¾àÇÏ¸é º¸¾ÈÀûÀÎ ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ ³­¼ö¸¦ »ý¼ºÇϱâ À§Çؼ­´Â ¾ÏÈ£ÇÐÀûÀ¸·Î °­·ÂÇÑ PRNG ¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù - º¸ÅëÀÇ ³­¼ö ¶óÀ̺귯¸®µéÀº ÃæºÐÇÏÁö ¾Ê´Ù.

Å°¿¡ ´ëÇØ ½ÇÁ¦·Î ÀÓÀÇÀÇ °ªµéÀ» Á¤È®È÷ »ý¼ºÇÏÁö ¸øÇÔÀ¸·Î½á Kerberos, X À©µµ¿ì ½Ã½ºÅÛ°ú NFS ½Ã½ºÅÛ¿¡¼­ÀÇ º¸¾È ±¸¸ÛÀ» Æ÷ÇÔÇÏ¿© ¸¹Àº ¹®Á¦¸¦ ¾ß±âÇÏ¿´´Ù [Venema 1996].

°¡´ÉÇÏ´Ù¸é ¾ÏÈ£ÇÐÀûÀ¸·Î º¸¾ÈÀûÀÎ ÀÓÀÇÀÇ °ªµéÀ» »ý¼ºÇϵµ·Ï Ưº°È÷ ¼³°èµÈ ÀϹÝÀûÀ¸·Î ¿î¿µÃ¼Á¦¿¡¼­ Á¦°øÇÏ´Â ½Ã½ºÅÛ ¼­ºñ½º¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î ¸®´ª½º Ä¿³Î (1.3.30 ÀÌÈÄ) Àº ³­¼ö ¹ß»ý±â¸¦ Æ÷ÇÔÇÏ°í Àִµ¥ ÀÌ´Â º¸¾ÈÀ» ¸ñÀûÀ¸·Î ÇÑ ¸¹Àº °÷¿¡ ÃæºÐÇÏ´Ù. ÀÌ ³­¼ö ¹ß»ý±â´Â µð¹ÙÀ̽º µå¶óÀ̹ö¿Í ´Ù¸¥ Ãâó·ÎºÎÅÍÀÇ È¯°æ ³ëÀÌÁ ¿£Æ®·ÎÇÇ Ç®·Î ¸ðÀ¸´Âµ¥ /dev/random À¸·Î Á¢±ÙµÉ ¶§ ÀÓÀÇÀÇ ¹ÙÀÌÆ®µé¸¸ÀÌ ¿£Æ®·ÎÇÇ Ç®¿¡¼­ Æò°¡µÈ ³ëÀÌÁî ºñÆ®¼ö ³»¿¡¼­ ¹ÝȯµÈ´Ù (¿£Æ®·ÎÇÇ Ç®ÀÌ ºñ¾îÀÖÀ» ¶§ È£ÃâÀº Ãß°¡ÀûÀΠȯ°æ ³ëÀÌÁî°¡ ¸ð¿©Áú ¶§±îÁö ºí·ÏµÈ´Ù). /dev/urandom À¸·Î Á¢±ÙµÉ ¶§´Â ¿£Æ®·ÎÇÇ Ç®ÀÌ ´Ù °í°¥µÇ¾ú´Ù ÇÏ´õ¶óµµ ¿äûµÈ ¸¸Å­ÀÇ ¹ÙÀÌÆ®µéÀÌ ¹ÝȯµÈ´Ù. ¸®´ª½º¿¡¼­ Å° »ý¼º°ú °°Àº ¾Ïȣȭ ¸ñÀûÀ¸·Î ÀÓÀÇÀÇ °ªµéÀ» »ç¿ëÇÏ·Á¸é /dev/random À» »ç¿ëÇضó. Çϵå¿þ¾î ³­¼ö ¹ß»ý±â¸¦ »ç¿ëÇÒ ¼ö ÀÖ°í ±× µå¶óÀ̹ö°¡ ¼³Ä¡µÇ¾î ÀÖ´Ù¸é ÀÌ°ÍÀÌ ´ë½Å »ç¿ëµÉ °ÍÀÓÀ» ÁÖ¸ñÇضó. ´õ¿í ÀÚ¼¼ÇÑ Á¤º¸´Â ½Ã½ºÅÛ ¹®¼­ random(4) ¿¡¼­ ¾òÀ» ¼ö ÀÖ´Ù.

´Ù¸¥ ½Ã½ºÅÛ¿¡¼­´Â Á¤¸»·Î ÀÓÀÇÀûÀÎ °á°ú¸¦ ¾ò´Â ´Ù¸¥ ¹æ¹ýÀ¸ ã¾Æ¾ß ÇÒ °ÍÀÌ´Ù. ´Ù¸¥ À¯´Ð½º °è¿­ ½Ã½ºÅÛ¿¡ ´ëÇؼ­´Â Entropy Gathering Daemon (EGD) °¡ ÇÑ°¡Áö ¹æ¹ýÀ¸·Î ÀÌ´Â ½Ã½ºÅÛ È°µ¿À» °¨½ÃÇØ À̸¦ ÀÓÀÇÀûÀ¸·Î °ªÀ¸·Î ÇؽÃÇÑ´Ù; ÀÌ´Â http://www.lothar.com/tech/crypto ¿¡¼­ ¾òÀ» ¼ö ÀÖ´Ù. PRNG Ãâ·Â¿¡ ¾Ïȣȭ Çؽà ÇÔ¼ö (¿¹, SHA-1) ÀÇ »ç¿ëÀ» °í·ÁÇÒ ¼öµµ Àִµ¥ Çؽà ¾Ë°í¸®µëÀ» »ç¿ëÇÔÀ¸·Î½á PRNG °¡ ¿¹Ãø°¡´ÉÇÏ´Ù°í ÆǸíµÇ¾úÀ½¿¡µµ ºÒ±¸ÇÏ°í ÀÌ´Â °ø°ÝÀÚ°¡ ¶ÇÇÑ Çؽà ÇÔ¼öµµ Çص¶ÇØ¾ß ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.

°­·ÂÇÑ PRNG ¸¦ ½º½º·Î ±¸ÇöÇØ¾ß ÇÑ´Ù¸é ¾ÏÈ£ÇÐÀûÀ¸·Î °­·ÂÇϸç ƯÇã¿¡ ¾ô¸ÅÀÌÁö ¾ÊÀº PRNG ÀÇ ÁÁÀº ¼±ÅÃÀº Yarrow ¾Ë°í¸®µëÀ¸·Î http://www.counterpane.com/yarrow.html. ¿¡¼­ Yarrow ¿¡ ´ëÇØ ´õ¿í ÀÚ¼¼È÷ ¾Ë ¼ö ÀÖ´Ù. ¾à°£ÀÇ ´Ù¸¥ PRNG µµ À¯¿ëÇÒ ¼ö ÀÖÁö¸¸ ³Î¸® »ç¿ëµÇ°í ÀÖ´Â ¸¹Àº PRNG Àº ¾ÖÇø®ÄÉÀ̼ǿ¡ µû¶ó Áß¿äÇϰųª ±×·¸Áö ¾ÊÀ» ¼öµµ ÀÖ´Â ¾Ë·ÁÁø ¾àÁ¡À» °®°í ÀÖ´Ù. PRNG ¸¦ ½º½º·Î ±¸ÇöÇϱâ Àü¿¡ [Kersey 1998] °ú McGraw [2000a] ¿Í °°Àº ¹®ÇåÀ» ÂüÁ¶Çضó. ¶ÇÇÑIETF RFC 1750 µµ Á¶»çÇØ¾ß ÇÑ´Ù.