.\" FreeSec: libcrypt for NetBSD .\" .\" Copyright (c) 1994 David Burren .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 4. Neither the name of the author nor the names of other contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" %FreeBSD: src/lib/libcrypt/crypt. 3, v 1.6. 2.12 2001/12/17 10:08:29 ru Exp % .\" $FreeBSD: doc/ja_JP.eucJP/man/man3/crypt. 3, v 1.5 2002/05/18 07:12:53 horikawa Exp $ .\" .\" Manual page, using -mandoc macros .\" .Dd January 19, 1997 .Dt CRYPT 3 .Os .Sh ¸íĪ .Nm crypt .Nd Æ®·¦ ¹® ¾Ïȣȭ .Sh ÇÁ·Î±×·¥ ¶óÀ̺귯¸® .Lb libcrypt .Sh ¼­½Ä .In unistd.h .Ft char * .Fn crypt "const char *key" "const char *salt" .Ft const char * .Fn crypt_get_format "void" .Ft int .Fn crypt_set_format "const char *string" .Sh ÇØ¼³ .Fn crypt ÇÔ¼ö´Â, ÆÐ½º¿öµåÀÇ ÇØ½ÃÈ­¸¦ ÇàÇØ, Ű °Ë»öÀÇ ½Ãµµ¸¦ ´Ü³äÇÏ°Ô Çϱâ À§ÇÑ Äڵ带 ºÎ°¡ÇÕ´Ï´Ù. ÇØ½ÃÈ­¿¡´Â ´Ù¸¥ ¾Ë°í¸®ÁòÀ» »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. .\" .\" NOTICE: .\" If you add more algorithms, make sure to update this list .\" and the default used for the Traditional format, below. .\" ÇöÀç Æ÷ÇԵǴ ¾Ë°í¸®ÁòÀº, .Tn NBS .Tn Data Encryption Standard (DES) , .Tn MD5 , .Tn Blowfish ÀÔ´Ï´Ù. .Tn DES (ÀÌ)³ª .Tn Blowfish ÇÏÁö¸¸ ÀνºÅç µÇ°í ÀÖ´ÂÁö ¾î¶²Áö, ¶Ç, µðÆúÆ®¸¦ º¯°æÇϱâ À§Çؼ­ .Fn crypt_set_format ÇÏÁö¸¸ ¹ú½á ºÒ·Á °¡°í ÀÖ´ÂÁö ¾î¶²Áö¿¡ ÀÇÇØ, »ç¿ëµÇ´Â ¾Ë°í¸®ÁòÀº salt (¸ðµâÈ­ ¾ÏÈ£ Æ÷¸Ë (Modular Crypt Format (MCF))¿¡ µû¸¨´Ï´Ù) ÀÇ Æ÷¸Ë¿¡ ÀÇÁ¸ÇÕ´Ï´Ù. .Pp .Nm ÀÇ ÃÖÃÊÀÇ Àμö´Â ÇØ½ÃÈ­¸¦ À§ÇÑ µ¥ÀÌÅÍ (Åë»óÀº ÆÐ½º¿öµåÀÔ´Ï´Ù)·Î, ´­ ij¸¯ÅÍ·Î Á¾·áÇϴ ij¸¯ÅÍ ¶óÀÎÀÔ´Ï´Ù. 2 ¹øÂ°ÀÇ Àμö´Â salt ·Î, ´ÙÀ½ÀÇ 3 °³ Áß ¸î°³ÀÇ Çü½ÄÀÔ´Ï´Ù. .Pp .Bl -tag -width Traditional -compact -offset indent .It Extended ¾ð´õ ½ºÄÚ¾Æ .Pq Dq _ ±×¸®°í ½ÃÀ۵Ǵ °æ¿ì, ¿­¼èÀÇ ÇØ¼®µµ salt ÀÇ ÇØ¼®µµ ÇÔ²², ´ÙÀ½¿¡ °³¿ä¸¦ ¼³¸íÇÑ´Ù .Tn DES È®Àå Çü½ÄÀ» »ç¿ëÇÕ´Ï´Ù. .It Modular ij¸¯ÅÍ ¶óÀÎ .Dq $digit$ ±×¸®°í ½ÃÀ۵Ǵ °æ¿ì, ´ÙÀ½¿¡ °³¿ä¸¦ ¼³¸íÇÑ´Ù ¸ðµâÈ­ ¾ÏÈ£ Æ÷¸Ë (MCF)À» »ç¿ëÇÕ´Ï´Ù. .It Traditional À§ÀÇ ¾î´À °Í¿¡µµ ÇØ´çÇÏÁö ¾Ê´Â °æ¿ì, ÀüÅëÀûÀÎ Æ÷¸Ë (Traditional Format) (À»)¸¦ »óÁ¤ÇØ, ij¸¯ÅÍ ¶óÀÎ Àüü (¶Ç´Â ÃÖÃÊÀÇ ºÎºÐ)¸¦ salt ·Î¼­ »ç¿ëÇÕ´Ï´Ù. .El .Pp ¾î´À routineµµ °è»ê¿¡ ½Ã°£ÀÌ °É¸®´Â ¼³°è°¡ µÇ¾î ÀÖ½À´Ï´Ù. .Tn Pentium 166/MMX ·Î °£´ÜÇÑ Å×½ºÆ®¸¦ Çϸé(ÀÚ), .Tn DES ¾Ïȣȭ¿¡¼­´Â, 1 CPU ÃÊ ´ç ¾Ïȣȭ¸¦ ¾à 2640 ȸ ÇàÇØ, MD5 ¾Ïȣȭ¿¡¼­´Â, 1 CPU ÃÊ ´ç ¾Ïȣȭ¸¦ ¾à 62 ȸ ÇàÇß½À´Ï´Ù. .Ss DES È®Àå Çü½Ä: .Pp °Ç .Ar key (Àº)´Â 8 ij¸¯ÅͷκÎÅÍ µÇ´Â ±×·ì¿¡ ºÐÇҵ˴ϴ٠(¸¶Áö¸· ±×·ì¿¡´Â ³Î ¹ÙÀÌÆ®°¡ ä¿ï ¼ö ÀÖ½À´Ï´Ù). °¢ ij¸¯ÅÍÀÇ ÇÏÀ§ 7 ºñÆ® (±×·ì ¸¶´Ù 56 ºñÆ®)°¡, ´ÙÀ½¿¡ ¼³¸íÇϵµ·Ï(µíÀÌ) ÇØ, .Tn DES ۸¦ ¸¸µé±â À§Çؼ­(¶§¹®¿¡) ÀÌ¿ëµË´Ï´Ù. ÃÖÃÊÀÇ ±×·ìÀÇ 56 ºñÆ®´Â, .Tn DES ¿­¼èÀÇ ÃʱâÄ¡ÀÔ´Ï´Ù. ±× ÈÄÀÇ ±×·ì ¸¶´Ù, ÇöÀçÀÇ .Tn DES ¿­¼è ±×°Í ÀڽŰú ±× ±×·ìÀÇ ºñÆ®¸¦ XOR ÇÏ´Â °ÍÀ¸·Î ¾ÏÈ£È­ÇØ, ´ÙÀ½ÀÇ .Tn DES ¿­¼è·Î ÇÕ´Ï´Ù. .Pp salt ´Â 9 ij¸¯ÅÍÀÇ ¹è¿­À̸ç, ¾ð´õ ½ºÄÚ¾ÆÀÇ µÚ·Î 4 ¹ÙÀÌÆ®ÀÇ ¹Ýº¹ ȸ¼ö¿Í 4 ¹ÙÀÌÆ®ÀÇ salt ·ÎºÎÅÍ µË´Ï´Ù. À̰͵éÀº ÀÎÀÚ °¡´É ij¸¯ÅÍ·Î encode µË´Ï´Ù. 6 ºñÆ® ¸¶´Ù 1 ij¸¯Å͸¦ ´ëÀÀ½ÃÄÑ, ÃÖÇÏÁ¤µµ ij¸¯Å͸¦ ÃÖÃÊ·Î ÇØ, encode µË´Ï´Ù. 0 ¿¡¼­ 63 ±îÁöÀÇ °ªÀº ``. /0-9A-Za-z''·Î¼­ encode µË´Ï´Ù. À̰Ϳ¡ ÀÇÇØ .Fa count (¿Í)°ú .Fa salt ÀÇ °¢°¢ 24 ºñÆ®¸¦ »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. .Pp .Fa salt ÇÏ .Tn DES ¾Ë°í¸®Áò¿¡ ´ëÇØ, 16777216 ¹æ¹ý ¶Ç´Â 4096 ¹æ¹ý (Áï, 24 ºñÆ® ¶Ç´Â 12 ºñÆ®) ¾ÈÀÇ 1 ¹æ¹ýÀ̶ó°í ÇÏ´Â ºÒ±ÔÄ¢¼ºÀ» µµÀÔÇÕ´Ï´Ù ( .Ar salt ÀÇ ºñÆ® .Em i ÇÏÁö¸¸ ¼³Á¤µÇ¾î ÀÖ´Â °æ¿ì, .Tn DES E-Box Ãâ·ÂÁßÀÇ ºñÆ® .Em i (¿Í)°ú ºñÆ® .Em i+24 (ÀÌ)°¡ ±³È¯µË´Ï´Ù) . .Pp .Tn DES ¿­¼è¸¦ »ç¿ëÇØ, 64ºñÆ®ÀÇ Á¤¼ö¿¡ .Ar count ȸ DES ¸¦ ¹Ýº¹ÇØ Àû¿ëÇØ ¾ÏȣȭÇÕ´Ï´Ù. µ¹·ÁÁÖ¾îÁö´Â °ªÀº, .Dv ´­ ij¸¯ÅÍ·Î Á¾·áÇѴ٠ij¸¯ÅÍ ¶óÀÎÀ¸·Î, ±æÀÌ´Â 20 ¹ÙÀÌÆ® ¶Ç´Â 13 ¹ÙÀÌÆ® (¿¡ ´­ ij¸¯ÅͰ¡ ´õÇØÁý´Ï´Ù)·Î, .Ar salt ÀÇ ÈÄ¿¡, encode µÈ 64 ºñÆ®ÀÇ ¾Ïȣȭ¸¦ °è¼ÓµÈ °ÍÀ¸·Î ±¸¼ºµË´Ï´Ù. .Ss ¸ðµâÈ­ ¾ÏÈ£: .Pp salt °¡ ij¸¯ÅÍ ¶óÀÎ .Fa $digit$ (À¸)·ÎºÎÅÍ ½ÃÀ۵Ǵ °æ¿ì´Â, ¸ðµâÈ­ ¾ÏÈ£ Æ÷¸Ë (MCF)ÀÌ »ç¿ëµË´Ï´Ù. .Fa digit (Àº)´Â ¾Ïȣȭ ½Ã¿¡ ¾î´À ¾Ë°í¸®ÁòÀÌ »ç¿ëµÇ´ÂÁö¸¦ ³ªÅ¸³À´Ï´Ù. ±× µÚÀÇ ÅäÅ«ÀÌ ½ÇÁ¦ÀÇ salt ·Î¼­ ¾Ïȣȭ¿¡ ÀÌ¿ëµË´Ï´Ù. salt ÀÇ ±æÀÌ´Â 16 ij¸¯ÅÍ¿¡ Á¦Çѵǰí ÀÖ½À´Ï´Ù. À̰ÍÀº, µ¹·ÁÁÖ´Â Ãâ·ÂÀÇ ±æÀ̵µ _PASSWORD_LEN ·Î Á¦Çѵǰí Àֱ⠶§¹®ÀÔ´Ï´Ù. salt ´Â ´­ ij¸¯Åͳª ´Þ·¯ ±âÈ£¸¦ ¸»¹Ì¿¡ µÑ Çʿ䰡 ÀÖ½À´Ï´Ù. ´Þ·¯ ±âÈ£ÀÇ µÚÀÇ Ä³¸¯ÅÍ´Â ¾î°¼­ Àú°Í ¹«½ÃµË´Ï´Ù. .Pp ÇöÀç ¼­Æ÷Æ®ÇÏ´Â ¾Ë°í¸®ÁòÀº, .Pp .Bl -enum -compact -offset indent .It MD5 .It Blowfish .El .Pp ÀÌ¿ÜÀÇ ¾Ïȣȭ Æ÷¸ËÀº ¿ëÀÌÇÏ°Ô Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. salt ÀÇ ¿¹·Î¼­ ´ÙÀ½ÀÇ °ÍÀÌ ÀÖ½À´Ï´Ù. .Bl -tag -offset indent .It Cm "$3$thesalt$rest" .El .Pp .Ss "Traditional" ¾Ïȣȭ: .Pp .\"X The algorithm used will depend upon whether »ç¿ëµÇ´Â ¾Ë°í¸®ÁòÀº, .Fn crypt_set_format .\"X has been called and whether a global default format has been specified. ÇÏÁö¸¸ ¹ú½á ºÒ·Á °¡°í ÀÖ´ÂÁö ¾Æ´ÑÁö, ±Û·Î¹ú µðÆúÆ® Æ÷¸ËÀÌ ¹ú½á ÁöÁ¤µÇ¾î ÀÖ´ÂÁö ¾Æ´ÑÁö¿¡ ÀÇÁ¸ÇÕ´Ï´Ù. .\"X Unless a global default has been specified or ±Û·Î¹ú µðÆúÆ®°¡ ¹Ì¸® ÁöÁ¤µÇ¾î ÀÖ´ÂÁö, .Fn crypt_set_format .\"X has set the format to something else, the built-in default format is .\"X used. ±×¸®°í ¹«¾ùÀΰ¡ ´Ù¸¥ Æ÷¸ËÀ» ¼³Á¤µÇ¾î ÀÖ´ÂÁö, ±× ¾î´À Âʵµ ¾Æ´Ñ °æ¿ì, ÆíÀÔÀÇ µðÆúÆ® Æ÷¸ËÀÌ »ç¿ëµË´Ï´Ù. .\"X This is currently ÇöÀç·Î¼­´Â, À̰ÍÀº, .\"X .\" .\"X .\" NOTICE: Also make sure to update this .\"X .\" .\"X DES .\"X if it is available, or MD5 if not. DES ¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù¸é DES ¿¡, ±×·¸Áö ¾ÊÀ¸¸é MD5 °¡ µË´Ï´Ù. .Pp .\"X How the salt is used will depend upon the algorithm for the hash. For .\"X best results, specify at least two characters of salt. salt ¸¦ ¾î¶»°Ô ÀÌ¿ëÇÒ±î´Â ÇØ½ÃÈ­ÀÇ ¾Ë°í¸®Áò¿¡ ÀÇÁ¸ÇÕ´Ï´Ù. ÃÖ°íÀÇ °á°ú¸¦ ¾ò±â À§Çؼ­(¶§¹®¿¡), Àû¾îµµ 2 ij¸¯ÅÍÀÇ salt ¸¦ ÁöÁ¤ÇØ ÁÖ¼¼¿ä. .Pp .Fn crypt_get_format .\"X function returns a constant string that represents the name of the .\"X algorithm currently used. ÇÔ¼ö´Â ÇöÀç »ç¿ëÇϰí ÀÖ´Â ¾Ë°í¸®ÁòÀ» ³ªÅ¸³»´Â Á¤¼ö ij¸¯ÅÍ ¶óÀÎÀ» µ¹·ÁÁÝ´Ï´Ù. À¯È¿ÇÑ °ªÀº, .\"X Valid values are .\"X .\" .\"X .\" NOTICE: Also make sure to update this, too, as well .\"X .\" .Ql des , .Ql blf , .Ql md5 ÀÔ´Ï´Ù. .Pp .Fn crypt_set_format ÇÔ¼ö´Â ÁöÁ¤ÇÑ´Ù .Fa string ¿¡ µû¶ó, µðÆúÆ® encode Æ÷¸ËÀ» ¼³Á¤ÇÕ´Ï´Ù. .Pp ±Û·Î¹ú µðÆúÆ® Æ÷¸ËÀº, .Pa /etc/auth.conf ÆÄÀÏ·Î, .Va crypt_default ¼Ó¼ºÀ» »ç¿ëÇØ ¼³Á¤ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. .Sh ¹Ýȯ°ª .Fn crypt (Àº)´Â, 󸮰¡ ¼º°øÇßÀ» °æ¿ì, ¾ÏȣȭµÈ °ªÀ» °¡¸®Å°´Â Æ÷ÀÎÅ͸¦ µ¹·ÁÁÝ´Ï´Ù. 󸮰¡ ½ÇÆÐÇßÀ» °æ¿ì, NULL ¸¦ µ¹·ÁÁÝ´Ï´Ù. ÁÖÀÇ: À̰ÍÀº Åë»óÀÇ °Åµ¿ÀÌ ¾Æ´Õ´Ï´Ù. AT&T ÀÇ .Fn crypt (Àº)´Â Ç×»ó ij¸¯ÅÍ ¶óÀÎÀ» °¡¸®Å°´Â Æ÷ÀÎÅ͸¦ µ¹·ÁÁÝ´Ï´Ù. .Pp .Fn crypt_set_format .\"X will return 1 if the supplied encoding format was valid. (Àº)´Â, ÁÖ¾îÁø encode Æ÷¸ËÀÌ Á¤´çÇϸé, 1 À» µ¹·ÁÁÝ´Ï´Ù. .\"X Otherwise, a value of 0 is returned. ±× ÀÌ¿ÜÀÇ °æ¿ì, °ª 0 ÀÌ µ¹·ÁÁÖ¾îÁý´Ï´Ù. .Sh °ü·Ã Ç׸ñ .Xr login 1 , .Xr passwd 1 , .Xr auth_getval 3 , .Xr cipher 3 , .Xr getpass 3 , .Xr auth.conf 5 , .Xr passwd 5 .Sh ¹ö±× .Fn crypt ÇÔ¼ö´Â Á¤Àû µ¥ÀÌÅÍ¿¡ÀÇ Æ÷ÀÎÅ͸¦ µ¹·ÁÁÝ´Ï´Ù. ±×¸®°í, ÀÌÈÄÀÇ .Fn crypt ÀÇ È£ÃâÀº °°Àº µ¥ÀÌÅ͸¦ º¯°æÇÕ´Ï´Ù. .Fn crypt_set_format µµ ÀÌ¿Í °°ÀÌ Á¤Àû µ¥ÀÌÅ͸¦ º¯°æÇÕ´Ï´Ù. .Sh ¿ª»ç ·ÎÅ͸¦ ä¿ëÇß´Ù .Fn crypt ÇÔ¼ö´Â, .At v6 ±×¸®°í µîÀåÇß½À´Ï´Ù. ÇöÀçÀÇ ½ºÅ¸ÀÏÀÇ .Fn crypt (Àº)´Â, .At v7 ±×¸®°í óÀ½ µîÀåÇß½À´Ï´Ù. .Pp .Tn DES ¼½¼ÇÀÇ ÄÚµå (FreeSec 1.0)´Â, ¾Æ¸Þ¸®Ä« ÇÕÁß±¹¸¸À¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù .Nx libcrypt ¾Ïȣȭ ÇÁ·Î±×·¥ ¶óÀ̺귯¸®¿¡ ´ëÇØ¼­, ±×·¯ÇÑ ÀåÇØ°¡ ¾ø´Â ġȯÀ¸·Î¼­ ¾Æ¸Þ¸®Ä« ÇÕÁß±¹ÀÇ ¹Û¿¡¼­ °³¹ßµÇ¾ú½À´Ï´Ù. .Sh ÀúÀÚ .An -nosplit ¿ø·¡´Â .An David Burren Aq davidb@werj.com.au ¿¡ ÀÇÇØ ¾²¿©Á³½À´Ï´Ù. ±× ÈÄÀÇ Ãß°¡, °»½ÅÀº, .An Poul-Henning Kamp , .An Mark R V Murray , .An Kris Kennaway , .An Brian Feldman , .An Paul Herman .\"X and .An Niels Provos ¿¡ ÀÇÇØ ÇàÇØÁ³½À´Ï´Ù.