Êý¾Ý¼ÓÃܼ¼Êõ |
|
|
×÷ÕߣºÎ´Öª À´Ô´£ºÓ¦ÓÃÎÄд×÷Íø ¼ÓÈëʱ¼ä£º2005-12-29¡¡Ô¹âÈí¼þÕ¾ |
Êý¾Ý¼ÓÃܼ¼Êõ ·¢²¼Ê±¼ä£º 2003-11-3 ×÷ÕߣºØýÃû ÎÒÃǾ³£ÐèÒªÒ»ÖÖ´ëÊ©À´±£»¤ÎÒÃǵÄÊý¾Ý£¬·ÀÖ¹±»Ò»Ð©»³Óв»Á¼ÓÃÐĵÄÈËËù¿´µ½»òÕßÆÆ»µ¡£ÔÚÐÅϢʱ´ú£¬ÐÅÏ¢¿ÉÒÔ°ïÖúÍÅÌå»ò¸öÈË£¬Ê¹ËûÃÇÊÜÒæ£¬Í¬Ñù£¬ÐÅÏ¢Ò²¿ÉÒÔÓÃÀ´¶ÔËûÃǹ¹³ÉÍþв£¬Ôì³ÉÆÆ»µ¡£ÔÚ¾ºÕù¼¤ÁҵĴó¹«Ë¾ÖУ¬¹¤Òµ¼äµý¾³£»á»ñÈ¡¶Ô·½µÄÇ鱨¡£Òò´Ë£¬Ôڿ͹ÛÉϾÍÐèÒªÒ»ÖÖÇ¿ÓÐÁ¦µÄ°²È«´ëÊ©À´±£»¤»úÃÜÊý¾Ý²»±»ÇÔÈ¡»ò´Û¸Ä¡£Êý¾Ý¼ÓÃÜÓë½âÃÜ´Óºê¹ÛÉϽ²ÊǷdz£¼òµ¥µÄ£¬ºÜÈÝÒ×Àí½â¡£¼ÓÃÜÓë½âÃܵÄһЩ·½·¨ÊǷdz£Ö±½ÓµÄ£¬ºÜÈÝÒ×ÕÆÎÕ£¬¿ÉÒԺܷ½±ãµÄ¶Ô»úÃÜÊý¾Ý½øÐмÓÃܺͽâÃÜ¡£
Ò»£ºÊý¾Ý¼ÓÃÜ·½·¨
ÔÚ´«Í³ÉÏ£¬ÎÒÃÇÓм¸ÖÖ·½·¨À´¼ÓÃÜÊý¾ÝÁ÷¡£ËùÓÐÕâЩ·½·¨¶¼¿ÉÒÔÓÃÈí¼þºÜÈÝÒ×µÄʵÏÖ£¬µ«Êǵ±ÎÒÃÇÖ»ÖªµÀÃÜÎĵÄʱºò£¬ÊDz»ÈÝÒׯÆÒëÕâЩ¼ÓÃÜËã·¨µÄ£¨µ±Í¬Ê±ÓÐÔÎĺÍÃÜÎÄʱ£¬ÆÆÒë¼ÓÃÜËã·¨ËäȻҲ²»ÊǺÜÈÝÒ×£¬µ«ÒѾÊÇ¿ÉÄܵÄÁË£©¡£×îºÃµÄ¼ÓÃÜËã·¨¶ÔϵͳÐÔÄܼ¸ºõûÓÐÓ°Ï죬²¢ÇÒ»¹¿ÉÒÔ´øÀ´ÆäËûÄÚÔÚµÄÓŵ㡣ÀýÈ磬´ó¼Ò¶¼ÖªµÀµÄpkzip£¬Ëü¼ÈѹËõÊý¾ÝÓÖ¼ÓÃÜÊý¾Ý¡£ÓÖÈ磬dbmsµÄһЩÈí¼þ°ü×ÜÊǰüº¬Ò»Ð©¼ÓÃÜ·½·¨ÒÔʹ¸´ÖÆÎļþÕâÒ»¹¦ÄܶÔһЩÃô¸ÐÊý¾ÝÊÇÎÞЧµÄ£¬»òÕßÐèÒªÓû§µÄÃÜÂë¡£ËùÓÐÕâЩ¼ÓÃÜËã·¨¶¼ÒªÓиßЧµÄ¼ÓÃܺͽâÃÜÄÜÁ¦¡£
ÐÒÔ˵ÄÊÇ£¬ÔÚËùÓеļÓÃÜËã·¨ÖÐ×î¼òµ¥µÄÒ»ÖÖ¾ÍÊÇ¡°Öû»±í¡±Ëã·¨£¬ÕâÖÖËã·¨Ò²Äܺܺôﵽ¼ÓÃܵÄÐèÒª¡£Ã¿Ò»¸öÊý¾Ý¶Î£¨×ÜÊÇÒ»¸ö×Ö½Ú£©¶ÔÓ¦×Å¡°Öû»±í¡±ÖеÄÒ»¸öÆ«ÒÆÁ¿£¬Æ«ÒÆÁ¿Ëù¶ÔÓ¦µÄÖµ¾ÍÊä³ö³ÉΪ¼ÓÃܺóµÄÎļþ¡£¼ÓÃܳÌÐòºÍ½âÃܳÌÐò¶¼ÐèÒªÒ»¸öÕâÑùµÄ¡°Öû»±í¡±¡£ÊÂʵÉÏ£¬80x86 cpuϵÁоÍÓÐÒ»¸öÖ¸Áî¡®xlat¡¯ÔÚÓ²¼þ¼¶À´Íê³ÉÕâÑùµÄ¹¤×÷¡£ÕâÖÖ¼ÓÃÜËã·¨±È½Ï¼òµ¥£¬¼ÓÃܽâÃÜËٶȶ¼ºÜ¿ì£¬µ«ÊÇÒ»µ©Õâ¸ö¡°Öû»±í¡±±»¶Ô·½»ñµÃ£¬ÄÇÕâ¸ö¼ÓÃÜ·½°¸¾ÍÍêÈ«±»Ê¶ÆÆÁË¡£¸ü½øÒ»²½½²£¬ÕâÖÖ¼ÓÃÜËã·¨¶ÔÓÚºÚ¿ÍÆÆÒëÀ´½²ÊÇÏ൱ֱ½ÓµÄ£¬Ö»ÒªÕÒµ½Ò»¸ö¡°Öû»±í¡±¾Í¿ÉÒÔÁË¡£ÕâÖÖ·½·¨ÔÚ¼ÆËã»ú³öÏÖ֮ǰ¾ÍÒѾ±»¹ã·ºµÄʹÓá£
¶ÔÕâÖÖ¡°Öû»±í¡±·½Ê½µÄÒ»¸ö¸Ä½ø¾ÍÊÇʹÓÃ2¸ö»òÕ߸ü¶àµÄ¡°Öû»±í¡±£¬ÕâЩ±í¶¼ÊÇ»ùÓÚÊý¾ÝÁ÷ÖÐ×Ö½ÚµÄλÖõ쬻òÕß»ùÓÚÊý¾ÝÁ÷±¾Éí¡£Õâʱ£¬ÆÆÒë±äµÄ¸ü¼ÓÀ§ÄÑ£¬ÒòΪºÚ¿Í±ØÐëÕýÈ·µÄ×ö¼¸´Î±ä»»¡£Í¨¹ýʹÓøü¶àµÄ¡°Öû»±í¡±£¬²¢ÇÒ°´Î±Ëæ»úµÄ·½Ê½Ê¹ÓÃÿ¸ö±í£¬ÕâÖָĽøµÄ¼ÓÃÜ·½·¨ÒѾ±äµÄºÜÄÑÆÆÒë¡£±ÈÈ磬ÎÒÃÇ¿ÉÒÔ¶ÔËùÓеÄżÊýλÖõÄÊý¾ÝʹÓÃa±í£¬¶ÔËùÓÐµÄÆæÊýλÖÃʹÓÃb±í£¬¼´Ê¹ºÚ¿Í»ñµÃÁËÃ÷ÎĺÍÃÜÎÄ£¬ËûÏëÆÆÒëÕâ¸ö¼ÓÃÜ·½°¸Ò²ÊǷdz£À§Äѵ쬳ý·ÇºÚ¿ÍÈ·ÇеÄÖªµÀÓÃÁËÁ½ÕÅ±í¡£
ÓëʹÓá°Öû»±í¡±ÏàÀàËÆ£¬¡°±ä»»Êý¾ÝλÖá±Ò²ÔÚ¼ÆËã»ú¼ÓÃÜÖÐʹÓᣵ«ÊÇ£¬ÕâÐèÒª¸ü¶àµÄÖ´ÐÐʱ¼ä¡£´ÓÊäÈëÖжÁÈëÃ÷Îķŵ½Ò»¸öbufferÖУ¬ÔÙÔÚbufferÖжÔËûÃÇÖØÅÅÐò£¬È»ºó°´Õâ¸ö˳ÐòÔÙÊä³ö¡£½âÃܳÌÐò°´Ïà·´µÄ˳Ðò»¹ÔÊý¾Ý¡£ÕâÖÖ·½·¨×ÜÊǺÍһЩ±ðµÄ¼ÓÃÜËã·¨»ìºÏʹÓã¬Õâ¾ÍʹµÃÆÆÒë±äµÄÌØ±ðµÄÀ§ÄÑ£¬¼¸ºõÓÐЩ²»¿ÉÄÜÁË¡£ÀýÈ磬ÓÐÕâÑùÒ»¸ö´Ê£¬±ä»»Æð×ÖĸµÄ˳Ðò£¬slient ¿ÉÒÔ±äΪlisten£¬µ«ËùÓеÄ×Öĸ¶¼Ã»Óб仯£¬Ã»ÓÐÔö¼ÓҲûÓмõÉÙ£¬µ«ÊÇ×Öĸ֮¼äµÄ˳ÐòÒѾ±ä»¯ÁË¡£
µ«ÊÇ£¬»¹ÓÐÒ»ÖÖ¸üºÃµÄ¼ÓÃÜËã·¨£¬Ö»ÓмÆËã»ú¿ÉÒÔ×ö£¬¾ÍÊÇ×Ö/×Ö½ÚÑ»·ÒÆÎ»ºÍxor²Ù×÷¡£Èç¹ûÎÒÃǰÑÒ»¸ö×Ö»ò×Ö½ÚÔÚÒ»¸öÊý¾ÝÁ÷ÄÚ×öÑ»·ÒÆÎ»£¬Ê¹Óöà¸ö»ò±ä»¯µÄ·½Ïò£¨×óÒÆ»òÓÒÒÆ£©£¬¾Í¿ÉÒÔѸËٵIJúÉúÒ»¸ö¼ÓÃܵÄÊý¾ÝÁ÷¡£ÕâÖÖ·½·¨ÊǺܺõ쬯ÆÒëËü¾Í¸ü¼ÓÀ§ÄÑ£¡¶øÇÒ£¬¸ü½øÒ»²½µÄÊÇ£¬Èç¹ûÔÙʹÓÃxor²Ù×÷£¬°´Î»×öÒì»ò²Ù×÷£¬¾Í¾ÍÊ¹ÆÆÒëÃÜÂë¸ü¼ÓÀ§ÄÑÁË¡£Èç¹ûÔÙʹÓÃÎ±Ëæ»úµÄ·½·¨£¬ÕâÉæ¼°µ½Òª²úÉúһϵÁеÄÊý×Ö£¬ÎÒÃÇ¿ÉÒÔʹÓÃfibbonaciÊýÁС£¶ÔÊýÁÐËù²úÉúµÄÊý×öÄ£ÔËË㣨ÀýÈçÄ£3£©£¬µÃµ½Ò»¸ö½á¹û£¬È»ºóÑ»·ÒÆÎ»Õâ¸ö½á¹ûµÄ´ÎÊý£¬½«Ê¹ÆÆÒë´ÎÃÜÂë±äµÄ¼¸ºõ²»¿ÉÄÜ£¡µ«ÊÇ£¬Ê¹ÓÃfibbonaciÊýÁÐÕâÖÖÎ±Ëæ»úµÄ·½Ê½Ëù²úÉúµÄÃÜÂë¶ÔÎÒÃǵĽâÃܳÌÐòÀ´½²ÊǷdz£ÈÝÒ׵ġ£
ÔÚһЩÇé¿öÏ£¬ÎÒÃÇÏëÄܹ»ÖªµÀÊý¾ÝÊÇ·ñÒѾ±»´Û¸ÄÁË»ò±»ÆÆ»µÁË£¬Õâʱ¾ÍÐèÒª²úÉúһЩУÑéÂ룬²¢ÇÒ°ÑÕâЩУÑéÂë²åÈëµ½Êý¾ÝÁ÷ÖС£ÕâÑù×ö¶ÔÊý¾ÝµÄ·ÀαÓë³ÌÐò±¾Éí¶¼ÊÇÓкô¦µÄ¡£µ«ÊǸÐȾ¼ÆËã»ú³ÌÐòµÄ²¡¶¾²Å²»»áÔÚÒâÕâЩÊý¾Ý»ò³ÌÐòÊÇ·ñ¼Ó¹ýÃÜ£¬ÊÇ·ñÓÐÊý×ÖÇ©Ãû¡£ËùÒÔ£¬¼ÓÃܳÌÐòÔÚÿ´Îloadµ½ÄÚ´æÒª¿ªÊ¼Ö´ÐÐʱ£¬¶¼Òª¼ì²éһϱ¾ÉíÊÇ·ñ±»²¡¶¾¸ÐȾ£¬¶ÔÓëÐèÒª¼Ó¡¢½âÃܵÄÎļþ¶¼Òª×öÕâÖÖ¼ì²é£¡ºÜ×ÔÈ»£¬ÕâÑùÒ»ÖÖ·½·¨ÌåÖÆÓ¦¸Ã±£Ãܵģ¬ÒòΪ²¡¶¾³ÌÐòµÄ±àдÕß½«»áÀûÓÃÕâЩÀ´ÆÆ»µ±ðÈ˵ijÌÐò»òÊý¾Ý¡£Òò´Ë£¬ÔÚһЩ·´²¡¶¾»òɱ²¡¶¾Èí¼þÖÐÒ»¶¨ÒªÊ¹ÓüÓÃܼ¼Êõ¡£
Ñ»·ÈßÓàУÑéÊÇÒ»ÖÖµäÐ͵ÄУÑéÊý¾ÝµÄ·½·¨¡£¶ÔÓÚÿһ¸öÊý¾Ý¿é£¬ËüʹÓÃλѻ·ÒÆÎ»ºÍxor²Ù×÷À´²úÉúÒ»¸ö16λ»ò32λµÄУÑéºÍ £¬ÕâʹµÃ¶ªÊ§Ò»Î»»òÁ½¸öλµÄ´íÎóÒ»¶¨»áµ¼ÖÂУÑéºÍ³ö´í¡£ÕâÖÖ·½Ê½ºÜ¾ÃÒÔÀ´¾ÍÓ¦ÓÃÓÚÎļþµÄ´«Ê䣬ÀýÈç xmodem-crc¡£ ÕâÊÇ·½·¨ÒѾ³ÉΪ±ê×¼£¬¶øÇÒÓÐÏêϸµÄÎĵµ¡£µ«ÊÇ£¬»ùÓÚ±ê×¼crcËã·¨µÄÒ»ÖÖÐÞ¸ÄËã·¨¶ÔÓÚ·¢ÏÖ¼ÓÃÜÊý¾Ý¿éÖеĴíÎóºÍÎļþÊÇ·ñ±»²¡¶¾¸ÐȾÊǺÜÓÐЧµÄ¡£
¶þ£®»ùÓÚ¹«Ô¿µÄ¼ÓÃÜËã·¨
Ò»¸öºÃµÄ¼ÓÃÜËã·¨µÄÖØÒªÌØµãÖ®Ò»ÊǾßÓÐÕâÖÖÄÜÁ¦£º¿ÉÒÔÖ¸¶¨Ò»¸öÃÜÂë»òÃÜÔ¿£¬²¢ÓÃËüÀ´¼ÓÃÜÃ÷ÎÄ£¬²»Í¬µÄÃÜÂë»òÃÜÔ¿²úÉú²»Í¬µÄÃÜÎÄ¡£ÕâÓÖ·ÖΪÁ½ÖÖ·½Ê½£º¶Ô³ÆÃÜÔ¿Ëã·¨ºÍ·Ç¶Ô³ÆÃÜÔ¿Ëã·¨¡£Ëùν¶Ô³ÆÃÜÔ¿Ëã·¨¾ÍÊǼÓÃܽâÃܶ¼Ê¹ÓÃÏàͬµÄÃÜÔ¿£¬·Ç¶Ô³ÆÃÜÔ¿Ëã·¨¾ÍÊǼÓÃܽâÃÜʹÓò»Í¬µÄÃÜÔ¿¡£·Ç³£ÖøÃûµÄpgp¹«Ô¿¼ÓÃÜÒÔ¼°rsa¼ÓÃÜ·½·¨¶¼ÊǷǶԳƼÓÃÜËã·¨¡£¼ÓÃÜÃÜÔ¿£¬¼´¹«Ô¿£¬Óë½âÃÜÃÜÔ¿£¬¼´Ë½Ô¿£¬ÊǷdz£µÄ²»Í¬µÄ¡£´ÓÊýѧÀíÂÛÉϽ²£¬¼¸ºõûÓÐÕæÕý²»¿ÉÄæµÄËã·¨´æÔÚ¡£ÀýÈ磬¶ÔÓÚÒ»¸öÊäÈë¡®a¡¯Ö´ÐÐÒ»¸ö²Ù×÷µÃµ½½á¹û¡®b¡¯,ÄÇôÎÒÃÇ¿ÉÒÔ»ùÓÚ¡®b¡¯£¬×öÒ»¸öÏà¶ÔÓ¦µÄ²Ù×÷£¬µ¼³öÊäÈë¡®a¡¯¡£ÔÚһЩÇé¿öÏ£¬¶ÔÓÚÿһÖÖ²Ù×÷£¬ÎÒÃÇ¿ÉÒԵõ½Ò»¸öÈ·¶¨µÄÖµ£¬»òÕ߸òÙ×÷ûÓж¨Ò壨±ÈÈ磬³ýÊýΪ0£©¡£¶ÔÓÚÒ»¸öûÓж¨ÒåµÄ²Ù×÷À´½²£¬»ùÓÚ¼ÓÃÜËã·¨£¬¿ÉÒԳɹ¦µØ·ÀÖ¹°ÑÒ»¸ö¹«Ô¿±ä»»³ÉΪ˽Կ¡£Òò´Ë£¬ÒªÏëÆÆÒë·Ç¶Ô³Æ¼ÓÃÜËã·¨£¬ÕÒµ½ÄǸöΨһµÄÃÜÔ¿£¬Î¨Ò»µÄ·½·¨Ö»ÄÜÊÇ·´¸´µÄÊÔÑ飬¶øÕâÐèÒª´óÁ¿µÄ´¦Àíʱ¼ä¡£
rsa¼ÓÃÜË㷨ʹÓÃÁËÁ½¸ö·Ç³£´óµÄËØÊýÀ´²úÉú¹«Ô¿ºÍ˽Կ¡£¼´Ê¹´ÓÒ»¸ö¹«Ô¿ÖÐͨ¹ýÒòÊý·Ö½â¿ÉÒԵõ½Ë½Ô¿£¬µ«Õâ¸öÔËËãËù°üº¬µÄ¼ÆËãÁ¿ÊǷdz£¾Þ´óµÄ£¬ÒÔÖÁÓÚÔÚÏÖʵÉÏÊDz»¿ÉÐеġ£¼ÓÃÜËã·¨±¾ÉíÒ²ÊǺÜÂýµÄ£¬ÕâʹµÃʹÓÃrsaËã·¨¼ÓÃÜ´óÁ¿µÄÊý¾Ý±äµÄÓÐЩ²»¿ÉÐС£Õâ¾ÍʹµÃһЩÏÖʵÖмÓÃÜËã·¨¶¼»ùÓÚrsa¼ÓÃÜËã·¨¡£pgpËã·¨(ÒÔ¼°´ó¶àÊý»ùÓÚrsaËã·¨µÄ¼ÓÃÜ·½·¨)ʹÓù«Ô¿À´¼ÓÃÜÒ»¸ö¶Ô³Æ¼ÓÃÜËã·¨µÄÃÜÔ¿£¬È»ºóÔÙÀûÓÃÒ»¸ö¿ìËٵĶԳƼÓÃÜËã·¨À´¼ÓÃÜÊý¾Ý¡£Õâ¸ö¶Ô³ÆËã·¨µÄÃÜÔ¿ÊÇËæ»ú²úÉúµÄ£¬ÊDZ£Ãܵģ¬Òò´Ë£¬µÃµ½Õâ¸öÃÜÔ¿µÄΨһ·½·¨¾ÍÊÇʹÓÃ˽ԿÀ´½âÃÜ¡£
ÎÒÃǾÙÒ»¸öÀý×Ó£º¼Ù¶¨ÏÖÔÚÒª¼ÓÃÜһЩÊý¾ÝʹÓÃÃÜÔ¿¡®12345¡¯¡£ÀûÓÃrsa¹«Ô¿£¬Ê¹ÓÃrsaËã·¨¼ÓÃÜÕâ¸öÃÜÔ¿¡®12345¡¯£¬²¢°ÑËü·ÅÔÚÒª¼ÓÃܵÄÊý¾ÝµÄÇ°Ãæ£¨¿ÉÄܺóÃæ¸ú×ÅÒ»¸ö·Ö¸î·û»òÎļþ³¤¶È£¬ÒÔÇø·ÖÊý¾ÝºÍÃÜÔ¿£©£¬È»ºó£¬Ê¹ÓöԳƼÓÃÜËã·¨¼ÓÃÜÕýÎÄ£¬Ê¹ÓõÄÃÜÔ¿¾ÍÊÇ¡®12345¡¯¡£µ±¶Ô·½ÊÕµ½Ê±£¬½âÃܳÌÐòÕÒµ½¼ÓÃܹýµÄÃÜÔ¿£¬²¢ÀûÓÃrsa˽Կ½âÃܳöÀ´£¬È»ºóÔÙÈ·¶¨³öÊý¾ÝµÄ¿ªÊ¼Î»Öã¬ÀûÓÃÃÜÔ¿¡®12345¡¯À´½âÃÜÊý¾Ý¡£ÕâÑù¾ÍʹµÃÒ»¸ö¿É¿¿µÄ¾¹ý¸ßЧ¼ÓÃܵÄÊý¾Ý°²È«µØ´«ÊäºÍ½âÃÜ¡£
һЩ¼òµ¥µÄ»ùÓÚrsaËã·¨µÄ¼ÓÃÜËã·¨¿ÉÔÚÏÂÃæµÄÕ¾µãÕÒµ½£º
ftp://ftp.funet.fi/pub/crypt/cryptography/asymmetric/rsa
Èý£®Ò»¸öոеĶಽ¼ÓÃÜËã·¨
ÏÖÔÚÓÖ³öÏÖÁËÒ»ÖÖеļÓÃÜËã·¨£¬¾Ý˵ÊǼ¸ºõ²»¿ÉÄܱ»ÆÆÒëµÄ¡£Õâ¸öËã·¨ÔÚ1998Äê6ÔÂ1ÈÕ²ÅÕýʽ¹«²¼µÄ¡£ÏÂÃæÏêϸµÄ½éÉÜÕâ¸öËã·¨:
ʹÓÃһϵÁеÄÊý×Ö£¨±ÈÈç˵128λÃÜÔ¿£©£¬À´²úÉúÒ»¸ö¿ÉÖØ¸´µÄµ«¸ß¶ÈËæ»ú»¯µÄÎ±Ëæ»úµÄÊý×ÖµÄÐòÁС£Ò»´ÎʹÓÃ256¸ö±íÏʹÓÃËæ»úÊýÐòÁÐÀ´²úÉúÃÜÂëת±í£¬ÈçÏÂËùʾ£º
°Ñ256¸öËæ»úÊý·ÅÔÚÒ»¸ö¾àÕóÖУ¬È»ºó¶ÔËûÃǽøÐÐÅÅÐò£¬Ê¹ÓÃÕâÑùÒ»ÖÖ·½Ê½£¨ÎÒÃÇÒª¼Çס×î³õµÄλÖã©Ê¹ÓÃ×î³õµÄλÖÃÀ´²úÉúÒ»¸ö±í£¬ËæÒâÅÅÐòµÄ±í£¬±íÖеÄÊý×ÖÔÚ0µ½255Ö®¼ä¡£Èç¹û²»ÊǺÜÃ÷°×ÈçºÎÀ´×ö£¬¾Í¿ÉÒÔ²»¹ÜËü¡£µ«ÊÇ£¬ÏÂÃæÒ²ÌṩÁËһЩÔÂ루ÔÚÏÂÃæ£©ÊÇÎÒÃÇÃ÷°×ÊÇÈçºÎÀ´×öµÄ¡£ÏÖÔÚ£¬²úÉúÁËÒ»¸ö¾ßÌåµÄ256×Ö½ÚµÄ±í¡£ÈÃÕâ¸öËæ»úÊý²úÉúÆ÷½Ó×ÅÀ´²úÉúÕâ¸ö±íÖÐµÄÆäÓàµÄÊý£¬ÒÔÖÁÓÚÿ¸ö±íÊDz»Í¬µÄ¡£ÏÂÒ»²½£¬Ê¹ÓÃ"shotgun technique"¼¼ÊõÀ´²úÉú½âÂë±í¡£»ù±¾ÉÏ˵£¬Èç¹û aÓ³Éäµ½b£¬ÄÇôbÒ»¶¨¿ÉÒÔÓ³Éäµ½a£¬ËùÒÔb[a[n]] = n.£¨nÊÇÒ»¸öÔÚ0µ½255Ö®¼äµÄÊý£©¡£ÔÚÒ»¸öÑ»·Öи³Öµ£¬Ê¹ÓÃÒ»¸ö256×ֽڵĽâÂë±íËü¶ÔÓ¦ÓÚÎÒÃǸղÅÔÚÉÏÒ»²½²úÉúµÄ256×ֽڵļÓÃÜ±í¡£
ʹÓÃÕâ¸ö·½·¨£¬ÒѾ¿ÉÒÔ²úÉúÕâÑùµÄÒ»¸ö±í£¬±íµÄ˳ÐòÊÇËæ»ú£¬ËùÒÔ²úÉúÕâ256¸ö×Ö½ÚµÄËæ»úÊýʹÓõÄÊǶþ´ÎÎ±Ëæ»ú,ʹÓÃÁËÁ½¸ö¶îÍâµÄ16λµÄÃÜÂë.ÏÖÔÚ£¬ÒѾÓÐÁËÁ½ÕÅת»»±í£¬»ù±¾µÄ¼ÓÃܽâÃÜÊÇÈçÏÂÕâÑù¹¤×÷µÄ¡£Ç°Ò»¸ö×Ö½ÚÃÜÎÄÊÇÕâ¸ö256×ֽڵıíµÄË÷Òý¡£»òÕߣ¬ÎªÁËÌá¸ß¼ÓÃÜЧ¹û£¬¿ÉÒÔʹÓöàÓà8λµÄÖµ£¬ÉõÖÁʹÓÃУÑéºÍ»òÕßcrcËã·¨À´²úÉúË÷Òý×Ö½Ú¡£¼Ù¶¨Õâ¸ö±íÊÇ256*256µÄÊý×é,½«»áÊÇÏÂÃæµÄÑù×Ó:
crypto1 = a[crypto0][value]
±äÁ¿'crypto1'ÊǼÓÃܺóµÄÊý¾Ý£¬'crypto0'ÊÇǰһ¸ö¼ÓÃÜÊý¾Ý£¨»ò×ÅÊÇÇ°Ãæ¼¸¸ö¼ÓÃÜÊý¾ÝµÄÒ»¸öº¯ÊýÖµ£©¡£ºÜ×ÔÈ»µÄ£¬µÚÒ»¸öÊý¾ÝÐèÒªÒ»¸ö¡°ÖÖ×Ó¡±£¬Õâ¸ö¡°ÖÖ×Ó¡± ÊÇÎÒÃDZØÐë¼ÇסµÄ¡£Èç¹ûʹÓÃ256*256µÄ±í£¬ÕâÑù×ö½«»áÔö¼ÓÃÜÎĵij¤¶È¡£»òÕߣ¬¿ÉÒÔʹÓÃÄã²úÉú³öËæ»úÊýÐòÁÐËùÓõÄÃÜÂ룬Ҳ¿ÉÄÜÊÇËüµÄcrcУÑéºÍ¡£Ë³±ãÌá¼°µÄÊÇÔø×÷¹ýÕâÑùÒ»¸ö²âÊÔ: ʹÓÃ16¸ö×Ö½ÚÀ´²úÉú±íµÄË÷Òý,ÒÔ128λµÄÃÜÔ¿×÷ΪÕâ16¸ö×ֽڵijõʼµÄ"ÖÖ×Ó"¡£È»ºó£¬ÔÚ²úÉú³öÕâÐ©Ëæ»úÊýµÄ±íÖ®ºó£¬¾Í¿ÉÒÔÓÃÀ´¼ÓÃÜÊý¾Ý£¬ËٶȴﵽÿÃëÖÓ100k¸ö×Ö½Ú¡£Ò»¶¨Òª±£Ö¤ÔÚ¼ÓÃÜÓë½âÃÜʱ¶¼Ê¹ÓüÓÃܵÄÖµ×÷Ϊ±íµÄË÷Òý£¬¶øÇÒÕâÁ½´ÎÒ»¶¨ÒªÆ¥Åä¡£
¼ÓÃÜʱËù²úÉúµÄÎ±Ëæ»úÐòÁÐÊǺÜËæÒâµÄ£¬¿ÉÒÔÉè¼Æ³ÉÏëÒªµÄÈκÎÐòÁС£Ã»ÓйØÓÚÕâ¸öËæ»úÐòÁеÄÏêϸµÄÐÅÏ¢£¬½âÃÜÃÜÎÄÊDz»ÏÖʵµÄ¡£ÀýÈ磺һЩasciiÂëµÄÐòÁУ¬Èç¡°eeeeeeee"¿ÉÄܱ»×ª»¯³ÉÒ»Ð©Ëæ»úµÄûÓÐÈκÎÒâÒåµÄÂÒÂ룬ÿһ¸ö×Ö½Ú¶¼ÒÀÀµÓÚÆäǰһ¸ö×Ö½ÚµÄÃÜÎÄ£¬¶ø²»ÊÇʵ¼ÊµÄÖµ¡£¶ÔÓÚÈÎÒ»¸öµ¥¸öµÄ×Ö·ûµÄÕâÖֱ任À´Ëµ£¬Òþ²ØÁ˼ÓÃÜÊý¾ÝµÄÓÐЧµÄÕæÕýµÄ³¤¶È¡£
Èç¹ûȷʵ²»Àí½âÈçºÎÀ´²úÉúÒ»¸öËæ»úÊýÐòÁУ¬¾Í¿¼ÂÇfibbonacciÊýÁУ¬Ê¹ÓÃ2¸öË«×Ö£¨64룩µÄÊý×÷Ϊ²úÉúËæ»úÊýµÄÖÖ×Ó£¬ÔÙ¼ÓÉϵÚÈý¸öË«×ÖÀ´×öxor²Ù×÷¡£ Õâ¸öËã·¨²úÉúÁËһϵÁеÄËæ»úÊý¡£Ëã·¨ÈçÏ£º
unsigned long dw1, dw2, dw3, dwmask;
int i1;
unsigned long arandom[256];
dw1 = {seed #1};
dw2 = {seed #2};
dwmask = {seed #3};
// this gives you 3 32-bit "seeds", or 96 bits total
for(i1=0; i1 < 256; i1++)
{
dw3 = (dw1 + dw2) ^ dwmask;
arandom[i1] = dw3;
dw1 = dw2;
dw2 = dw3;
}
Èç¹ûÏë²úÉúһϵÁеÄËæ»úÊý×Ö£¬±ÈÈç˵£¬ÔÚ0ºÍÁбíÖÐËùÓеÄËæ»úÊýÖ®¼äµÄһЩÊý£¬¾Í¿ÉÒÔʹÓÃÏÂÃæµÄ·½·¨£º
int __cdecl mysortproc(void *p1, void *p2)
{
unsigned long **pp1 = (unsigned long **)p1;
unsigned long **pp2 = (unsigned long **)p2;
if(**pp1 < **pp2)
return(-1);
else if(**pp1 > *pp2)
return(1);
return(0);
}
...
int i1;
unsigned long *aprandom[256];
unsigned long arandom[256]; // same array as before, in this case
int aresult[256]; // results go here
for(i1=0; i1 < 256; i1++)
{
aprandom[i1] = arandom + i1;
}
// now sort it
qsort(aprandom, 256, sizeof(*aprandom), mysortproc);
// final step - offsets for pointers are placed into output array
for(i1=0; i1 < 256; i1++)
{
aresult[i1] = (int)(aprandom[i1] - arandom);
}
...
±äÁ¿'aresult'ÖеÄÖµÓ¦¸ÃÊÇÒ»¸öÅŹýÐòµÄΨһµÄһϵÁеÄÕûÊýµÄÊý×飬ÕûÊýµÄÖµµÄ·¶Î§¾ùÔÚ0µ½255Ö®¼ä¡£ÕâÑùÒ»¸öÊý×éÊǷdz£ÓÐÓõģ¬ÀýÈ磺¶ÔÒ»¸ö×Ö½Ú¶Ô×Ö½ÚµÄת»»±í£¬¾Í¿ÉÒÔºÜÈÝÒײ¢Çҷdz£¿É¿¿µÄÀ´²úÉúÒ»¸ö¶ÌµÄÃÜÔ¿£¨¾³£×÷ÎªÒ»Ð©Ëæ»úÊýµÄÖÖ×Ó£©¡£ÕâÑùÒ»¸ö±í»¹ÓÐÆäËûµÄÓô¦£¬±ÈÈç˵£ºÀ´²úÉúÒ»¸öËæ»úµÄ×Ö·û£¬¼ÆËã»úÓÎÏ·ÖÐÒ»¸öÎïÌåµÄËæ»úµÄλÖõȵȡ£ÉÏÃæµÄÀý×Ó¾ÍÆä±¾Éí¶øÑÔ²¢Ã»Óй¹³ÉÒ»¸ö¼ÓÃÜËã·¨£¬Ö»ÊǼÓÃÜËã·¨Ò»¸ö×é³É²¿·Ö¡£
×÷Ϊһ¸ö²âÊÔ£¬¿ª·¢ÁËÒ»¸öÓ¦ÓóÌÐòÀ´²âÊÔÉÏÃæËùÃèÊöµÄ¼ÓÃÜËã·¨¡£³ÌÐò±¾Éí¶¼¾¹ýÁ˼¸´ÎµÄÓÅ»¯ºÍÐ޸ģ¬À´Ìá¸ßËæ»úÊýµÄÕæÕýµÄËæ»úÐԺͷÀÖ¹»á²úÉúһЩ¶ÌµÄ¿ÉÖØ¸´µÄÓÃÓÚ¼ÓÃܵÄËæ»úÊý¡£ÓÃÕâ¸ö³ÌÐòÀ´¼ÓÃÜÒ»¸öÎļþ£¬ÆÆ½âÕâ¸öÎļþ¿ÉÄÜ»áÐèÒª·Ç³£¾Þ´óµÄʱ¼äÒÔÖÁÓÚÔÚÏÖʵÉÏÊDz»¿ÉÄܵġ£
ËÄ£®½áÂÛ£º
ÓÉÓÚÔÚÏÖʵÉú»îÖУ¬ÎÒÃÇҪȷ±£Ò»Ð©Ãô¸ÐµÄÊý¾ÝÖ»Äܱ»ÓÐÏàӦȨÏÞµÄÈË¿´µ½£¬ÒªÈ·±£ÐÅÏ¢ÔÚ´«ÊäµÄ¹ý³ÌÖв»»á±»´Û¸Ä£¬½ØÈ¡£¬Õâ¾ÍÐèÒªºÜ¶àµÄ°²È«ÏµÍ³´óÁ¿µÄÓ¦ÓÃÓÚÕþ¸®¡¢´ó¹«Ë¾ÒÔ¼°¸öÈËϵͳ¡£Êý¾Ý¼ÓÃÜÊǿ϶¨¿ÉÒÔ±»ÆÆ½âµÄ£¬µ«ÎÒÃÇËùÏëÒªµÄÊÇÒ»¸öÌØ¶¨Ê±ÆÚµÄ°²È«£¬Ò²¾ÍÊÇ˵£¬ÃÜÎÄµÄÆÆ½âÓ¦¸ÃÊÇ×ã¹»µÄÀ§ÄÑ£¬ÔÚÏÖʵÉÏÊDz»¿ÉÄܵģ¬ÓÈÆäÊǶÌʱ¼äÄÚ¡£
²Î¿¼ÎÄÏ×£º
1 . pgp! http://www.pgpi.com/
cyber knights(new link) http://members.tripod.com/cyberkt/
(old link: http://netnet.net/~merlin/knights/ )
2 . crypto chamber http://www.jyu.fi/~paasivir/crypt/
3 . ssh cryptograph a-z (includes info on ssl and https) http://www.ssh.fi/tech/crypto/
4 . funet' cryptology ftp (yet another finland resource) ftp://ftp.funet.fi/pub/crypt/
a great enigma article, how the code was broken by polish scientists
http://members.aol.com/nbrass/1enigma.htm
5 . ftp site in uk ftp://sable.ox.ac.uk/pub/crypto/
6 . australian ftp site ftp://ftp.psy.uq.oz.au/pub/
7 . replay associates ftp archive ftp://utopia.hacktic.nl/pub/replay/pub/crypto/
8 . rsa data security (why not include them too!) http://www.rsa.com/
netscape's whitepaper on ssl
http://developer1.netscape.com/docs/manuals/security/sslin/contents.htm

|
|
Ïà¹ØÎÄÕ£ºÏà¹ØÈí¼þ£º |
|