Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Çø¿éÁ´-ÃÜÂëѧÓ밲ȫ¼¼Êõ
 
  2582  次浏览      27
 2018-8-29
 

 

±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚCSDN£¬ÎÄÕ½éÉÜÃÜÂëѧÁìÓòÖиúÇø¿éÁ´Ïà¹ØµÄһЩ»ù´¡ÖªÊ¶£¬°üÀ¨HashËã·¨ÓëÊý×ÖÕªÒª¡¢¼ÓÃÜËã·¨¡¢Êý×ÖÇ©Ãû¡¢Êý×ÖÖ¤Êé¡¢PKIÌåϵ¡¢MerkleÊ÷¡¢²¼Â¡¹ýÂËÆ÷¡¢Í¬Ì¬¼ÓÃܵȡ£

ÃÜÂëѧÓ밲ȫ¼¼Êõ

¹¤³ÌÁìÓò´ÓÀ´Ã»ÓкڿƼ¼£»ÃÜÂëѧ²»½öÊǹ¤³Ì¡£

ÃÜÂëѧÏà¹ØµÄ°²È«¼¼ÊõÔÚÕû¸öÐÅÏ¢¼¼ÊõÁìÓòµÄÖØÒªµØÎ»ÎÞÐè¶àÑÔ¡£Èç¹ûûÓÐÏÖ´úÃÜÂëѧºÍÐÅÏ¢°²È«µÄÑо¿³É¹û£¬ÈËÀàÉç»á¸ù±¾ÎÞ·¨½øÈëÐÅϢʱ´ú¡£Çø¿éÁ´¼¼Êõ´óÁ¿ÒÀÀµÁËÃÜÂëѧºÍ°²È«¼¼ÊõµÄÑо¿³É¹û¡£

ʵ¼ÊÉÏ£¬ÃÜÂëѧºÍ°²È«ÁìÓòËùÉæ¼°µÄ֪ʶÌåϵʮ·Ö·±ÔÓ£¬±¾Õ½«½éÉÜÃÜÂëѧÁìÓòÖиúÇø¿éÁ´Ïà¹ØµÄһЩ»ù´¡ÖªÊ¶£¬°üÀ¨HashËã·¨ÓëÊý×ÖÕªÒª¡¢¼ÓÃÜËã·¨¡¢Êý×ÖÇ©Ãû¡¢Êý×ÖÖ¤Êé¡¢PKIÌåϵ¡¢MerkleÊ÷¡¢²¼Â¡¹ýÂËÆ÷¡¢Í¬Ì¬¼ÓÃܵȡ£¶ÁÕßͨ¹ýÔĶÁ±¾Õ¿ÉÒÔÁ˽âÈçºÎʹÓÃÕâЩ¼¼Êõ±£»¤ÐÅÏ¢µÄ»úÃÜÐÔ¡¢ÍêÕûÐÔ¡¢ÈÏÖ¤ÐԺͲ»¿ÉµÖÀµÐÔ¡£

Ò»¡¢HashËã·¨ÓëÊý×ÖÕªÒª

1.1¡¢Hash¶¨Òå

Hash£¨¹þÏ£»òÉ¢ÁУ©Ëã·¨ÊǷdz£»ù´¡Ò²·Ç³£ÖØÒªµÄ¼ÆËã»úËã·¨£¬ËüÄܽ«ÈÎÒⳤ¶ÈµÄ¶þ½øÖÆÃ÷ÎÄ´®Ó³ÉäΪ½Ï¶ÌµÄ£¨Í¨³£Êǹ̶¨³¤¶ÈµÄ£©¶þ½øÖÆ´®£¨HashÖµ£©£¬²¢ÇÒ²»Í¬µÄÃ÷ÎĺÜÄÑÓ³ÉäΪÏàͬµÄHashÖµ¡£

ÀýÈç¼ÆËãÒ»¶Î»°¡°hello blockchain world£¬this is yeasy@github¡±µÄSHA-256 HashÖµ¡£

$ echo "hello blockchain world, this is
yeasy@github"|shasum -a 256

db8305d71a9f2f90a3e118a9b49a4c381d2b80c
f7bcef81930f30ab1832a3c90

ÕâÒâζ×ŶÔÓÚij¸öÎļþ£¬ÎÞÐè²é¿´ÆäÄÚÈÝ£¬Ö»ÒªÆäSHA-256 Hash¼ÆËãºó½á¹ûͬÑùΪdb8305d71a9f2f90a3e
118a9b49a4c381d2b80cf7bcef81930f30ab1832a3c90 £¬Ôò˵Ã÷ÎļþÄÚÈݼ«´ó¸ÅÂÊÉϾÍÊÇ¡°hello blockchain world£¬this is yeasy@github¡±¡£

HashÖµÔÚÓ¦ÓÃÖÐÓÖ³£±»³ÆÎªÖ¸ÎÆ£¨fingerprint£©»òÕªÒª£¨digest£©¡£HashËã·¨µÄºËÐÄ˼ÏëÒ²¾­³£±»Ó¦Óõ½»ùÓÚÄÚÈݵıàÖ·»òÃüÃûËã·¨ÖС£

Ò»¸öÓÅÐãµÄHashËã·¨½«ÄÜʵÏÖÈçϹ¦ÄÜ£º

ÕýÏò¿ìËÙ£º¸ø¶¨Ã÷ÎĺÍHashËã·¨£¬ÔÚÓÐÏÞʱ¼äºÍÓÐÏÞ×ÊÔ´ÄÚÄܼÆËãµÃµ½HashÖµ£»

ÄæÏòÀ§ÄÑ£º¸ø¶¨£¨Èô¸É£©HashÖµ£¬ÔÚÓÐÏÞʱ¼äÄÚºÜÄÑ£¨»ù±¾²»¿ÉÄÜ£©ÄæÍƳöÃ÷ÎÄ£»

ÊäÈëÃô¸Ð£ºÔ­Ê¼ÊäÈëÐÅÏ¢·¢ÉúÈκθı䣬вúÉúµÄHashÖµ¶¼Ó¦¸Ã³öÏֺܴó²»Í¬£»

³åÍ»±ÜÃ⣺ºÜÄÑÕÒµ½Á½¶ÎÄÚÈݲ»Í¬µÄÃ÷ÎÄ£¬Ê¹µÃËüÃǵÄHashÖµÒ»Ö£¨·¢ÉúÅöײ£©¡£

³åÍ»±ÜÃâÓÐʱºòÓÖ³ÆÎª¡°¿¹ÅöײÐÔ¡±£¬·ÖΪ¡°Èõ¿¹ÅöײÐÔ¡±ºÍ¡°Ç¿¿¹ÅöײÐÔ¡±¡£Èç¹û¸ø¶¨Ã÷ÎÄǰÌáÏ£¬ÎÞ·¨ÕÒµ½ÓëÖ®ÅöײµÄÆäËûÃ÷ÎÄ£¬ÔòËã·¨¾ßÓС°Èõ¿¹ÅöײÐÔ¡±£»Èç¹ûÎÞ·¨ÕÒµ½ÈÎÒâÁ½¸ö·¢ÉúHashÅöײµÄÃ÷ÎÄ£¬Ôò³ÆËã·¨¾ßÓС°Ç¿¿¹ÅöײÐÔ¡±¡£

ºÜ¶à³¡¾°Ï£¬Ò²ÍùÍùÒªÇóËã·¨¶ÔÓÚÈÎÒⳤµÄÊäÈëÄÚÈÝ£¬¿ÉÒÔÊä³ö¶¨³¤µÄHashÖµ½á¹û¡£

1.2¡¢³£¼ûËã·¨

Ŀǰ³£¼ûµÄHashËã·¨°üÀ¨MD5ºÍSHAϵÁÐËã·¨¡£

MD4£¨RFC 1320£©ÊÇMITµÄRonald L.RivestÔÚ1990ÄêÉè¼ÆµÄ£¬MDÊÇMessage DigestµÄËõд¡£ÆäÊä³öΪ128λ¡£MD4Òѱ»Ö¤Ã÷²»¹»°²È«¡£

MD5£¨RFC 1321£©ÊÇRivestÓÚ1991Äê¶ÔMD4µÄ¸Ä½ø°æ±¾¡£Ëü¶ÔÊäÈëÈÔÒÔ512λ½øÐзÖ×飬ÆäÊä³öÊÇ128λ¡£MD5±ÈMD4¸ü¼Ó°²È«£¬µ«¹ý³Ì¸ü¼Ó¸´ÔÓ£¬¼ÆËãËÙ¶ÈÒªÂýÒ»µã¡£MD5Òѱ»Ö¤Ã÷²»¾ß±¸¡°Ç¿¿¹ÅöײÐÔ¡±¡£

SHA£¨Secure Hash Algorithm£©²¢·ÇÒ»¸öËã·¨£¬¶øÊÇÒ»¸öHashº¯Êý×å¡£NIST£¨National Institute of Standards and Technology£©ÓÚ1993Äê·¢²¼ÆäÊ׸öʵÏÖ¡£Ä¿Ç°ÖªÃûµÄSHA-1Ëã·¨ÔÚ1995ÄêÃæÊÀ£¬ËüµÄÊä³öΪ³¤¶È160λµÄHashÖµ£¬¿¹Çî¾ÙÐÔ¸üºÃ¡£SHA-1Éè¼ÆÊ±Ä£·ÂÁËMD4Ëã·¨£¬²ÉÓÃÁËÀàËÆÔ­Àí¡£SHA-1Òѱ»Ö¤Ã÷²»¾ß±¸¡°Ç¿¿¹ÅöײÐÔ¡±¡£

ΪÁËÌá¸ß°²È«ÐÔ£¬NIST»¹Éè¼Æ³öÁËSHA-224¡¢SHA-256¡¢SHA-384ºÍSHA-512Ëã·¨£¨Í³³ÆÎªSHA-2£©£¬¸úSHA-1Ëã·¨Ô­ÀíÀàËÆ¡£SHA-3Ïà¹ØËã·¨Ò²Òѱ»Ìá³ö¡£

Ŀǰ£¬MD5ºÍSHA1ÒѾ­±»ÆÆ½â£¬Ò»°ãÍÆ¼öÖÁÉÙʹÓÃSHA2-256»ò¸ü°²È«µÄËã·¨¡£

Ìáʾ£ºMD5ÊÇÒ»¸ö¾­µäµÄHashËã·¨£¬ºÍSHA-1Ëã·¨Ò»Æð¶¼±»ÈÏΪ°²È«ÐÔÒѲ»×ãÓ¦ÓÃÓÚÉÌÒµ³¡¾°¡£

1.3¡¢ÐÔÄÜ

HashËã·¨Ò»°ã¶¼ÊǼÆËãÃô¸ÐÐ͵ġ£Òâζ׿ÆËã×ÊÔ´ÊÇÆ¿¾±£¬Ö÷ƵԽ¸ßµÄCPUÔËÐÐHashËã·¨µÄËÙ¶ÈÒ²Ô½¿ì¡£Òò´Ë¿ÉÒÔͨ¹ýÓ²¼þ¼ÓËÙÀ´ÌáÉýHash¼ÆËãµÄÍÌÍÂÁ¿¡£ÀýÈç²ÉÓÃFPGAÀ´¼ÆËãMD5Öµ£¬¿ÉÒÔÇáÒ×´ïµ½ÊýÊ®GbpsµÄÍÌÍÂÁ¿¡£

Ò²ÓÐһЩHashËã·¨²»ÊǼÆËãÃô¸ÐÐ͵ġ£ÀýÈçscryptËã·¨£¬¼ÆËã¹ý³ÌÐèÒª´óÁ¿µÄÄÚ´æ×ÊÔ´£¬½Úµã²»ÄÜͨ¹ý¼òµ¥µØÔö¼Ó¸ü¶àCPUÀ´»ñµÃHashÐÔÄܵÄÌáÉý¡£ÕâÑùµÄHashËã·¨¾­³£ÓÃÔÚ±ÜÃâËãÁ¦¹¥»÷µÄ³¡¾°¡£

1.4¡¢Êý×ÖÕªÒª

¹ËÃû˼Ò壬Êý×ÖÕªÒªÊǶÔÊý×ÖÄÚÈݽøÐÐHashÔËË㣬»ñȡΨһµÄÕªÒªÖµÀ´Ö¸´úԭʼÍêÕûµÄÊý×ÖÄÚÈÝ¡£Êý×ÖÕªÒªÊÇHashËã·¨×îÖØÒªµÄÒ»¸öÓÃ;¡£ÀûÓÃHashº¯ÊýµÄ¿¹ÅöײÐÔÌØµã£¬Êý×ÖÕªÒª¿ÉÒÔ½â¾öÈ·±£ÄÚÈÝδ±»´Û¸Ä¹ýµÄÎÊÌâ¡£

ϸÐĵĶÁÕß¿ÉÄÜ»á×¢Òâµ½£¬´ÓÍøÕ¾ÏÂÔØÈí¼þ»òÎļþʱ£¬ÓÐʱ»áÌṩһ¸öÏàÓ¦µÄÊý×ÖÕªÒªÖµ¡£Óû§ÏÂÔØÔ­Ê¼Îļþºó¿ÉÒÔÔÚ±¾µØ×ÔÐмÆËãÕªÒªÖµ£¬²¢ÓëÌṩµÄÕªÒªÖµ½øÐбȶԣ¬¿É¼ì²éÎļþÄÚÈÝÊÇ·ñ±»´Û¸Ä¹ý¡£

1.5¡¢Hash¹¥»÷Óë·À»¤

HashËã·¨²¢²»ÊÇÒ»ÖÖ¼ÓÃÜËã·¨£¬²»ÄÜÓÃÓÚ¶ÔÐÅÏ¢µÄ±£»¤¡£µ«HashËã·¨³£ÓÃÓÚ¶Ô¿ÚÁîµÄ±£´æÉÏ¡£ÀýÈçÓû§µÇÂ¼ÍøÕ¾ÐèҪͨ¹ýÓû§ÃûºÍÃÜÂëÀ´½øÐÐÑéÖ¤¡£Èç¹ûÍøÕ¾ºǫֱ́½Ó±£´æÓû§µÄ¿ÚÁîÃ÷ÎÄ£¬Ò»µ©Êý¾Ý¿â·¢Éúй¶ºó¹û²»¿°ÉèÏë¡£´óÁ¿Óû§ÇãÏòÓÚÔÚ¶à¸öÍøÕ¾Ñ¡ÓÃÏàͬ»ò¹ØÁªµÄ¿ÚÁî¡£

ÀûÓÃHashµÄÌØÐÔ£¬ºǫ́¿ÉÒÔ½ö±£´æ¿ÚÁîµÄHashÖµ£¬ÕâÑùÿ´Î±È¶ÔHashÖµÒ»Ö£¬Ôò˵Ã÷ÊäÈëµÄ¿ÚÁîÕýÈ·¡£¼´±ãÊý¾Ý¿âй¶ÁË£¬Ò²ÎÞ·¨´ÓHashÖµ»¹Ô­»Ø¿ÚÁֻÓнøÐÐÇî¾Ù²âÊÔ¡£

È»¶ø£¬ÓÉÓÚÓÐʱÓû§ÉèÖÿÚÁîµÄÇ¿¶È²»¹»£¬Ö»ÊÇһЩ³£¼ûµÄ¼òµ¥×Ö·û´®£¬Èçpassword¡¢123456µÈ¡£ÓÐÈËרÃÅËѼ¯ÁËÕâЩ³£¼û¿ÚÁ¼ÆËã¶ÔÓ¦µÄHashÖµ£¬ÖÆ×÷³É×ֵ䡣ÕâÑùͨ¹ýHashÖµ¿ÉÒÔ¿ìËÙ·´²éµ½Ô­Ê¼¿ÚÁî¡£ÕâÒ»ÀàÐÍÒԿռ任ʱ¼äµÄ¹¥»÷·½·¨°üÀ¨×ֵ乥»÷ºÍ²Êºç±í¹¥»÷£¨Ö»±£´æÒ»ÌõHashÁ´µÄÊ×βֵ£¬Ïà¶Ô×ֵ乥»÷¿ÉÒÔ½ÚÊ¡´æ´¢¿Õ¼ä£©µÈ¡£

ΪÁË·À·¶ÕâÒ»À๥»÷£¬Ò»°ã²ÉÓüÓÑΣ¨salt£©µÄ·½·¨¡£±£´æµÄ²»ÊÇ¿ÚÁîÃ÷ÎĵÄHashÖµ£¬¶øÊÇ¿ÚÁîÃ÷ÎÄÔÙ¼ÓÉÏÒ»¶ÎËæ»ú×Ö·û´®£¨¼´¡°ÑΡ±£©Ö®ºóµÄHashÖµ¡£Hash½á¹ûºÍ¡°ÑΡ±·Ö±ð´æ·ÅÔÚ²»Í¬µÄµØ·½£¬ÕâÑùÖ»Òª²»ÊÇÁ½Õßͬʱй¶£¬¹¥»÷Õ߾ͺÜÄÑÆÆ½âÁË¡£

¶þ¡¢¼ÓÃÜËã·¨

¼Ó½âÃÜËã·¨ÊÇÃÜÂëѧµÄºËÐļ¼Êõ£¬´ÓÉè¼ÆÀíÄîÉÏ¿ÉÒÔ·ÖΪÁ½´ó»ù±¾ÀàÐÍ£¬Èç±í5-1Ëùʾ¡£

±í5-1¡¡¼Ó½âÃÜËã·¨µÄÀàÐÍ

2.1¡¢¼Ó½âÃÜϵͳ»ù±¾×é³É

ÏÖ´ú¼Ó½âÃÜϵͳµÄµäÐÍ×é¼þÒ»°ã°üÀ¨£º¼Ó½âÃÜËã·¨¡¢¼ÓÃÜÃÜÔ¿¡¢½âÃÜÃÜÔ¿¡£ÆäÖУ¬¼Ó½âÃÜËã·¨×ÔÉíÊǹ̶¨²»±äµÄ£¬²¢ÇÒÒ»°ãÊǹ«¿ª¿É¼ûµÄ£»ÃÜÔ¿ÔòÊÇ×î¹Ø¼üµÄÐÅÏ¢£¬ÐèÒª°²È«µØ±£´æÆðÀ´£¬ÉõÖÁͨ¹ýÌØÊâÓ²¼þ½øÐб£»¤¡£Ò»°ãÀ´Ëµ£¬¶ÔͬһÖÖËã·¨£¬ÃÜÔ¿ÐèÒª°´ÕÕÌØ¶¨Ë㷨ÿ´Î¼ÓÃÜÇ°Ëæ»úÉú³É£¬³¤¶ÈÔ½³¤£¬Ôò¼ÓÃÜÇ¿¶ÈÔ½´ó¡£¼Ó½âÃܵĻù±¾¹ý³ÌÈçͼ5-1Ëùʾ¡£

ͼ5-1¡¡¼Ó½âÃܵĻù±¾¹ý³Ì

¼ÓÃܹý³ÌÖУ¬Í¨¹ý¼ÓÃÜËã·¨ºÍ¼ÓÃÜÃÜÔ¿£¬¶ÔÃ÷ÎĽøÐмÓÃÜ£¬»ñµÃÃÜÎÄ¡£

½âÃܹý³ÌÖУ¬Í¨¹ý½âÃÜËã·¨ºÍ½âÃÜÃÜÔ¿£¬¶ÔÃÜÎĽøÐнâÃÜ£¬»ñµÃÃ÷ÎÄ¡£

¸ù¾Ý¼Ó½âÃܹý³ÌÖÐËùʹÓõÄÃÜÔ¿ÊÇ·ñÏàͬ£¬Ëã·¨¿ÉÒÔ·ÖΪ¶Ô³Æ¼ÓÃÜ£¨symmetric cryptography£¬Óֳƹ«¹²ÃÜÔ¿¼ÓÃÜ£¬common-key cryptography£©ºÍ·Ç¶Ô³Æ¼ÓÃÜ£¨asymmetric cryptography£¬Óֳƹ«Ô¿¼ÓÃÜ£¬public-key cryptography£©¡£Á½ÖÖģʽÊÊÓÃÓÚ²»Í¬µÄÐèÇó£¬Ç¡ºÃÐγɻ¥²¹¡£Ä³Ð©Ê±ºò¿ÉÒÔ×éºÏʹÓã¬ÐγɻìºÏ¼ÓÃÜ»úÖÆ¡£

²¢·ÇËùÓмÓÃÜËã·¨µÄ°²È«ÐÔ¶¼¿ÉÒÔ´ÓÊýѧÉϵõ½Ö¤Ã÷¡£¹«ÈϵĸßÇ¿¶ÈµÄ¼ÓÃÜËã·¨ºÍʵÏÖÍùÍù¾­¹ý³¤Ê±¼ä¸÷·½Ãæ³ä·Öʵ¼ùÂÛÖ¤ºó£¬²Å±»´ó¼ÒËùÈϿɣ¬µ«Ò²²»´ú±íÆä¾ø¶Ô²»´æÔÚ©¶´¡£Òò´Ë£¬×ÔÐÐÉè¼ÆºÍ·¢Ã÷δ¾­¹ý´ó¹æÄ£ÑéÖ¤µÄ¼ÓÃÜËã·¨ÊÇÒ»ÖÖ²»Ì«Ã÷ÖǵÄÐÐΪ¡£¼´±ã²»¹«¿ªËã·¨¼ÓÃܹý³Ì£¬Ò²ºÜÈÝÒ×±»¹¥ÆÆ£¬ÎÞ·¨ÔÚ°²È«ÐÔÉϵõ½±£ÕÏ¡£

ʵ¼ÊÉÏ£¬ÃÜÂëѧʵÏֵݲȫÍùÍùÊÇͨ¹ýËã·¨ËùÒÀÀµµÄÊýѧÎÊÌâÀ´Ìṩ£¬¶ø²¢·Çͨ¹ý¶ÔËã·¨µÄʵÏÖ¹ý³Ì½øÐб£ÃÜ¡£

2.2¡¢¶Ô³Æ¼ÓÃÜËã·¨

¶Ô³Æ¼ÓÃÜËã·¨£¬¹ËÃû˼Ò壬¼ÓÃܺͽâÃܹý³ÌµÄÃÜÔ¿ÊÇÏàͬµÄ¡£¸ÃÀàËã·¨ÓŵãÊǼӽâÃÜЧÂÊ£¨Ëٶȿ죬¿Õ¼äÕ¼ÓÃС£©ºÍ¼ÓÃÜÇ¿¶È¶¼ºÜ¸ß¡£È±µãÊDzÎÓë·½¶¼ÐèÒªÌáǰ³ÖÓÐÃÜÔ¿£¬Ò»µ©ÓÐÈËй¶Ôò°²È«ÐÔ±»ÆÆ»µ£»ÁíÍâÈçºÎÔÚ²»°²È«Í¨µÀÖÐÌáǰ·Ö·¢ÃÜÔ¿Ò²ÊǸöÎÊÌ⣬ÐèÒª½èÖúDiffie¨CHellmanЭÒé»ò·Ç¶Ô³Æ¼ÓÃÜ·½Ê½À´ÊµÏÖ¡£

¶Ô³ÆÃÜÂë´ÓʵÏÖÔ­ÀíÉÏ¿ÉÒÔ·ÖΪÁ½ÖÖ£º·Ö×éÃÜÂëºÍÐòÁÐÃÜÂ롣ǰÕß½«Ã÷ÎÄÇзÖΪ¶¨³¤Êý¾Ý¿é×÷Ϊ»ù±¾¼ÓÃܵ¥Î»£¬Ó¦ÓÃ×îΪ¹ã·º¡£ºóÕßÔòÿ´ÎÖ»¶ÔÒ»¸ö×Ö½Ú»ò×Ö·û½øÐмÓÃÜ´¦Àí£¬ÇÒÃÜÂë²»¶Ï±ä»¯£¬Ö»ÓÃÔÚÒ»Ð©ÌØ¶¨ÁìÓò£¬ÈçÊý×Öý½éµÄ¼ÓÃܵȡ£

·Ö×é¶Ô³Æ¼ÓÃÜ´ú±íËã·¨°üÀ¨DES¡¢3DES¡¢AES¡¢IDEAµÈ£º

DES£¨Data Encryption Standard£©£º¾­µäµÄ·Ö×é¼ÓÃÜËã·¨£¬1977ÄêÓÉÃÀ¹úÁª°îÐÅÏ¢´¦Àí±ê×¼£¨FIPS£©²ÉÓÃFIPS-46-3£¬½«64λÃ÷ÎļÓÃÜΪ64λµÄÃÜÎÄ£¬ÆäÃÜÔ¿³¤¶ÈΪ64루°üº¬8λУÑé룩¡£ÏÖÔÚÒѾ­ºÜÈÝÒ×±»±©Á¦ÆÆ½â¡£

3DES£ºÈýÖØDES²Ù×÷£º¼ÓÃÜ¡ú½âÃÜ¡ú¼ÓÃÜ£¬´¦Àí¹ý³ÌºÍ¼ÓÃÜÇ¿¶ÈÓÅÓÚDES£¬µ«ÏÖÔÚÒ²±»ÈÏΪ²»¹»°²È«£»

AES£¨Advanced Encryption Standard£©£ºÓÉÃÀ¹ú¹ú¼Ò±ê×¼Ñо¿Ëù£¨NIST£©²ÉÓã¬È¡´úDES³ÉΪ¶Ô³Æ¼ÓÃÜʵÏֵıê×¼£¬1997¡«2000ÄêNIST´Ó15¸öºòÑ¡Ëã·¨ÖÐÆÀÑ¡RijndaelËã·¨£¨ÓɱÈÀûʱÃÜÂëѧ¼ÒJoan DaemonºÍVincent Rijmen·¢Ã÷£©×÷ΪAES£¬±ê׼ΪFIPS-197¡£AESÒ²ÊÇ·Ö×éËã·¨£¬·Ö×鳤¶ÈΪ128¡¢192¡¢256λÈýÖÖ¡£AESµÄÓÅÊÆÔÚÓÚ´¦ÀíËٶȿ죬Õû¸ö¹ý³Ì¿ÉÒÔÓÃÊýѧÃèÊö£¬Ä¿Ç°ÉÐδÓÐÓÐЧµÄÆÆ½âÊֶΡ£

IDEA£¨International Data Encryption Algorithm£©£º1991ÄêÓÉÃÜÂëѧ¼ÒJames MasseyÓëÀ´Ñ§¼ÎÁªºÏÌá³ö¡£Éè¼ÆÀàËÆÓÚ3DES£¬ÃÜÔ¿³¤¶ÈÔö¼Óµ½128룬¾ßÓиüºÃµÄ¼ÓÃÜÇ¿¶È¡£

ÐòÁÐÃÜÂ룬ÓÖ³ÆÁ÷ÃÜÂë¡£1949Ä꣬Claude Elwood Shannon£¨ÐÅÏ¢ÂÛ´´Ê¼ÈË£©Ê×´ÎÖ¤Ã÷£¬ÒªÊµÏÖ¾ø¶Ô°²È«µÄÍêÉÆ±£ÃÜÐÔ£¨perfect secrecy£©£¬¿ÉÒÔͨ¹ý¡°Ò»´ÎÐÔÃÜÂë±¾¡±µÄ¶Ô³Æ¼ÓÃÜ´¦Àí¡£¼´Í¨ÐÅË«·½Ã¿´ÎʹÓøúÃ÷Îĵȳ¤µÄËæ»úÃÜÔ¿´®¶ÔÃ÷ÎĽøÐмÓÃÜ´¦Àí¡£ÐòÁÐÃÜÂë²ÉÓÃÁËÀàËÆµÄ˼Ï룬ÿ´Îͨ¹ýÎ±Ëæ»úÊýÉú³ÉÆ÷À´Éú³ÉÎ±Ëæ»úÃÜÔ¿´®¡£´ú±íËã·¨°üÀ¨RC4µÈ¡£

¶Ô³Æ¼ÓÃÜËã·¨ÊÊÓÃÓÚ´óÁ¿Êý¾ÝµÄ¼Ó½âÃܹý³Ì£»²»ÄÜÓÃÓÚÇ©Ãû³¡¾°£»²¢ÇÒÍùÍùÐèÒªÌáǰ·Ö·¢ºÃÃÜÔ¿¡£

×¢Ò⣺·Ö×é¼ÓÃÜÿ´ÎÖ»ÄÜ´¦Àí¹Ì¶¨³¤¶ÈµÄÃ÷ÎÄ£¬Òò´Ë¶ÔÓÚ¹ý³¤µÄÄÚÈÝÐèÒª²ÉÓÃÒ»¶¨Ä£Ê½½øÐзָÀí£¬¡¶ÊµÓÃÃÜÂëѧ¡·Ò»ÊéÖÐÍÆ¼öʹÓÃÃÜÎÄ·Ö×éÁ´£¨Cipher Block Chain£¬CBC£©¡¢¼ÆÊýÆ÷£¨Counter£¬CTR£©µÈģʽ¡£

2.3¡¢·Ç¶Ô³Æ¼ÓÃÜËã·¨

·Ç¶Ô³Æ¼ÓÃÜÊÇÏÖ´úÃÜÂëѧÀúÊ·ÉÏÒ»Ïîΰ´óµÄ·¢Ã÷£¬¿ÉÒԺܺõؽâ¾ö¶Ô³Æ¼ÓÃÜÖÐÌáǰ·Ö·¢ÃÜÔ¿µÄÎÊÌâ¡£

¹ËÃû˼Ò壬·Ç¶Ô³Æ¼ÓÃÜËã·¨ÖУ¬¼ÓÃÜÃÜÔ¿ºÍ½âÃÜÃÜÔ¿ÊDz»Í¬µÄ£¬·Ö±ð³ÆÎª¹«Ô¿£¨public key£©ºÍ˽Կ£¨private key£©¡£Ë½Ô¿Ò»°ãÐèҪͨ¹ýËæ»úÊýËã·¨Éú³É£¬¹«Ô¿¿ÉÒÔ¸ù¾Ý˽ԿÉú³É¡£¹«Ô¿Ò»°ãÊǹ«¿ªµÄ£¬ËûÈ˿ɻñÈ¡µÄ£»Ë½Ô¿Ò»°ãÊǸöÈ˳ÖÓУ¬ËûÈ˲»ÄÜ»ñÈ¡¡£

·Ç¶Ô³Æ¼ÓÃÜËã·¨µÄÓŵãÊǹ«Ë½Ô¿·Ö¿ª£¬²»°²È«Í¨µÀÒ²¿ÉʹÓá£È±µãÊÇ´¦ÀíËÙ¶È£¨ÌرðÊÇÉú³ÉÃÜÔ¿ºÍ½âÃܹý³Ì£©ÍùÍù±È½ÏÂý£¬Ò»°ã±È¶Ô³Æ¼Ó½âÃÜËã·¨Âý2¡«3¸öÊýÁ¿¼¶£»Í¬Ê±¼ÓÃÜÇ¿¶ÈÒ²ÍùÍù²»Èç¶Ô³Æ¼ÓÃÜËã·¨¡£

·Ç¶Ô³Æ¼ÓÃÜËã·¨µÄ°²È«ÐÔÍùÍùÐèÒª»ùÓÚÊýѧÎÊÌâÀ´±£ÕÏ£¬Ä¿Ç°Ö÷ÒªÓлùÓÚ´óÊýÖÊÒò×ӷֽ⡢ÀëÉ¢¶ÔÊý¡¢ÍÖÔ²ÇúÏߵȾ­µäÊýѧÄÑÌâ½øÐб£»¤¡£

´ú±íËã·¨°üÀ¨£ºRSA¡¢ElGamal¡¢ÍÖÔ²ÇúÏߣ¨Elliptic Curve Crytosystems£¬ECC£©¡¢SM2µÈϵÁÐËã·¨¡£

RSA£º¾­µäµÄ¹«Ô¿Ëã·¨£¬1978ÄêÓÉRon Rivest¡¢Adi Shamir¡¢Leonard Adleman¹²Í¬Ìá³ö£¬ÈýÈËÓÚ2002ÄêÒò´Ë»ñµÃͼÁé½±¡£Ëã·¨ÀûÓÃÁ˶ԴóÊý½øÐÐÖÊÒò×Ó·Ö½âÀ§ÄѵÄÌØÐÔ£¬µ«Ä¿Ç°»¹Ã»ÓÐÊýѧ֤Ã÷Á½ÕßÄѶȵȼۣ¬»òÐí´æÔÚδ֪Ëã·¨ÔÚ²»½øÐдóÊý·Ö½âµÄǰÌáϽâÃÜ¡£

Diffie-HellmanÃÜÔ¿½»»»£º»ùÓÚÀëÉ¢¶ÔÊýÎÞ·¨¿ìËÙÇó½â£¬¿ÉÒÔÔÚ²»°²È«µÄͨµÀÉÏ£¬Ë«·½Ð­ÉÌÒ»¸ö¹«¹²ÃÜÔ¿£»

ElGamal£ºÓÉTaher ElGamalÉè¼Æ£¬ÀûÓÃÁËÄ£ÔËËãÏÂÇóÀëÉ¢¶ÔÊýÀ§ÄѵÄÌØÐÔ¡£±»Ó¦ÓÃÔÚPGPµÈ°²È«¹¤¾ßÖУ»

ÍÖÔ²ÇúÏßËã·¨£¨Elliptic Curve Cryptography£¬ECC£©£ºÏÖ´ú±¸ÊܹØ×¢µÄË㷨ϵÁУ¬»ùÓÚ¶ÔÍÖÔ²ÇúÏßÉÏÌØ¶¨µã½øÐÐÌØÊâ³Ë·¨ÄæÔËËãÄÑÒÔ¼ÆËãµÄÌØÐÔ¡£×îÔçÔÚ1985ÄêÓÉNeal KoblitzºÍVictor Miller·Ö±ð¶ÀÁ¢Ìá³ö¡£ECCϵÁÐËã·¨Ò»°ã±»ÈÏΪ¾ß±¸½Ï¸ßµÄ°²È«ÐÔ£¬µ«¼Ó½âÃܼÆËã¹ý³ÌÍùÍù±È½Ï·Ñʱ£»

SM2£¨ShangMi 2£©£º¹ú¼ÒÉÌÓÃÃÜÂëËã·¨£¬Óɹú¼ÒÃÜÂë¹ÜÀí¾ÖÓÚ2010Äê12ÔÂ17ÈÕ·¢²¼£¬Í¬Ñù»ùÓÚÍÖÔ²ÇúÏßËã·¨£¬¼ÓÃÜÇ¿¶ÈÓÅÓÚRSAϵÁÐËã·¨¡£

·Ç¶Ô³Æ¼ÓÃÜËã·¨Ò»°ãÊÊÓÃÓÚÇ©Ãû³¡¾°»òÃÜԿЭÉÌ£¬µ«²»ÊÊÓÚ´óÁ¿Êý¾ÝµÄ¼Ó½âÃÜ¡£

ĿǰÆÕ±éÈÏΪRSAÀàËã·¨¿ÉÄÜÔÚ²»Ô¶µÄ½«À´±»ÆÆ½â£¬Ò»°ãÍÆ¼ö¿É²ÉÓð²È«Ç¿¶È¸ü¸ßµÄÍÖÔ²ÇúÏßϵÁÐËã·¨¡£

2.4¡¢Ñ¡ÔñÃ÷ÎĹ¥»÷

ϸÐĵĶÁÕß¿ÉÄÜ»áÒâʶµ½£¬ÔڷǶԳƼÓÃÜÖУ¬ÓÉÓÚ¹«Ô¿Êǹ«¿ª¿ÉÒÔ»ñÈ¡µÄ£¬Òò´ËÈκÎÈ˶¼¿ÉÒÔ¸ø¶¨Ã÷ÎÄ£¬»ñÈ¡¶ÔÓ¦µÄÃÜÎÄ£¬Õâ¾Í´øÀ´Ñ¡ÔñÃ÷ÎĹ¥»÷µÄ·çÏÕ¡£

ΪÁ˹æ±ÜÕâÖÖ·çÏÕ£¬ÏÖÓеķǶԳƼÓÃÜËã·¨£¨ÈçRSA¡¢ECC£©¶¼ÒýÈëÁËÒ»¶¨µÄ±£»¤»úÖÆ¡£¶ÔͬÑùµÄÃ÷ÎÄʹÓÃͬÑùÃÜÔ¿½øÐжà´Î¼ÓÃÜ£¬µÃµ½µÄ½á¹ûÍêÈ«²»Í¬£¬Õâ¾Í±ÜÃâÁËÑ¡ÔñÃ÷ÎĹ¥»÷µÄÆÆ»µ¡£

ÔÚʵÏÖÉÏ¿ÉÒÔÓжàÖÖ˼·¡£Ò»ÖÖÊǶÔÃ÷ÎÄÏȽøÐбäÐΣ¬Ìí¼ÓËæ»úµÄ×Ö·û´®»ò±ê¼Ç£¬ÔÙ¶ÔÌí¼Óºó½á¹û½øÐд¦Àí¡£ÁíÍâÒ»ÖÖÊÇÏÈÓÃËæ»úÉú³ÉµÄÁÙʱÃÜÔ¿¶ÔÃ÷ÎĽøÐжԳƼÓÃÜ£¬È»ºóÔÙ¶Ô¶Ô³ÆÃÜÔ¿½øÐмÓÃÜ£¬¼´»ìºÏÀûÓöàÖÖ¼ÓÃÜ»úÖÆ¡£

2.5¡¢»ìºÏ¼ÓÃÜ»úÖÆ

»ìºÏ¼ÓÃÜ»úÖÆÍ¬Ê±½áºÏÁ˶ԳƼÓÃܺͷǶԳƼÓÃܵÄÓŵ㡣

ÏÈÓüÆË㸴ÔӶȸߵķǶԳƼÓÃÜЭÉ̳öÒ»¸öÁÙʱµÄ¶Ô³Æ¼ÓÃÜÃÜÔ¿£¨Ò²³ÆÎª»á»°ÃÜÔ¿£¬Ò»°ãÏà¶ÔËù¼ÓÃÜÄÚÈÝÀ´ËµÒª¶ÌµÃ¶à£©£¬È»ºóË«·½ÔÙͨ¹ý¶Ô³Æ¼ÓÃÜËã·¨¶Ô´«µÝµÄ´óÁ¿Êý¾Ý½øÐпìËٵļӽâÃÜ´¦Àí¡£

µäÐ͵ÄÓ¦Óð¸ÀýÊÇÏÖÔÚ´ó¼Ò³£ÓõÄHTTPSЭÒé¡£HTTPSЭÒéÕýÔÚÌæ»»µô´«Í³µÄ²»°²È«µÄHTTPЭÒ飬³ÉΪ×îÆÕ±éµÄWebͨÐÅЭÒé¡£

HTTPSÔÚ´«Í³µÄHTTP²ãºÍTCP²ãÖ®¼äͨ¹ýÒýÈëTransport Layer Security/Secure Socket Layer£¨TLS/SSL£©¼ÓÃܲãÀ´ÊµÏÖ¿É¿¿µÄ´«Êä¡£

SSLЭÒé×îÔçÊÇNetscapeÓÚ1994ÄêÉè¼Æ³öÀ´ÊµÏÖÔçÆÚHTTPSµÄ·½°¸£¬SSL 3.0¼°Ö®Ç°°æ±¾´æÔÚ©¶´£¬±»ÈÏΪ²»¹»°²È«¡£TLSЭÒéÊÇIETF»ùÓÚSSLЭÒéÌá³öµÄ°²È«±ê×¼£¬Ä¿Ç°×îеİ汾Ϊ1.2£¨2008Äê·¢²¼£©¡£ÍƼöʹÓõİ汾ºÅÖÁÉÙΪTLS 1.0£¬¶ÔÓ¦µ½SSL 3.1°æ±¾¡£³ýÁËWeb·þÎñÍ⣬TLSЭÒéÒ²¹ã·ºÓ¦ÓÃÓÚEmail¡¢ÊµÊ±ÏûÏ¢¡¢ÒôÊÓÆµÍ¨»°µÈÁìÓò¡£

²ÉÓÃHTTPS½¨Á¢°²È«Á¬½Ó£¨TLSÎÕÊÖЭÉ̹ý³Ì£©µÄ»ù±¾²½ÖèÈçÏ£¨¿É²Î¼ûͼ5-2£©£º

ͼ5-2¡¡TLSÎÕÊÖЭÉ̹ý³Ì

¿Í»§¶Ëä¯ÀÀÆ÷·¢ËÍÐÅÏ¢µ½·þÎñÆ÷£¬°üÀ¨Ëæ»úÊýR1¡¢Ö§³ÖµÄ¼ÓÃÜËã·¨ÀàÐÍ¡¢Ð­Òé°æ±¾¡¢Ñ¹ËõËã·¨µÈ¡£×¢Òâ¸Ã¹ý³ÌΪÃ÷ÎÄ¡£

·þÎñ¶Ë·µ»ØÐÅÏ¢£¬°üÀ¨Ëæ»úÊýR2¡¢Ñ¡¶¨¼ÓÃÜËã·¨ÀàÐÍ¡¢Ð­Òé°æ±¾ÒÔ¼°·þÎñÆ÷Ö¤Êé¡£×¢Òâ¸Ã¹ý³ÌΪÃ÷ÎÄ¡£

ä¯ÀÀÆ÷¼ì²é´øÓиÃÍøÕ¾¹«Ô¿µÄÖ¤Êé¡£¸ÃÖ¤ÊéÐèÒªÓɵÚÈý·½CAÀ´Ç©·¢£¬ä¯ÀÀÆ÷ºÍ²Ù×÷ϵͳ»áÔ¤ÖÃȨÍþCAµÄ¸ùÖ¤Êé¡£Èç¹ûÖ¤Êé±»´Û¸Ä×÷¼Ù£¨ÖмäÈ˹¥»÷£©£¬ºÜÈÝÒ×ͨ¹ýCAµÄÖ¤ÊéÑéÖ¤³öÀ´¡£

Èç¹ûÖ¤ÊéûÎÊÌ⣬Ôò¿Í»§¶ËÓ÷þÎñ¶ËÖ¤ÊéÖеĹ«Ô¿¼ÓÃÜËæ»úÊýR3£¨ÓÖ½ÐPre-MasterSecret£©£¬·¢Ë͸ø·þÎñÆ÷¡£´Ëʱ£¬Ö»Óпͻ§¶ËºÍ·þÎñÆ÷¶¼ÓµÓÐR1¡¢R2ºÍR3ÐÅÏ¢£¬»ùÓÚËæ»úÊýR1¡¢R2ºÍR3£¬Ë«·½Í¨¹ýÎ±Ëæ»úÊýº¯ÊýÀ´Éú³É¹²Í¬µÄ¶Ô³Æ»á»°ÃÜÔ¿MasterSecret¡£

ºóÐø¿Í»§¶ËºÍ·þÎñ¶ËµÄͨÐŶ¼Í¨¹ý¶Ô³Æ¼ÓÃÜËã·¨£¨ÈçAES£©½øÐб£»¤¡£

¿ÉÒÔ¿´³ö£¬¸Ã¹ý³ÌµÄÖ÷Òª¹¦ÄÜÊÇÔÚ·ÀÖ¹ÖмäÈËÇÔÌýºÍ´Û¸ÄµÄǰÌáÏÂÍê³É»á»°ÃÜÔ¿µÄЭÉÌ¡£ÎªÁ˱£ÕÏǰÏò°²È«ÐÔ£¨perfect forward secrecy£©£¬TLS¶Ôÿ¸ö»á»°Á¬½Ó¶¼¿ÉÒÔÉú³É²»Í¬µÄÃÜÔ¿£¬±ÜÃâij´Î»á»°ÃÜԿй¶֮ºóÓ°ÏìÁËÆäËû»á»°Á¬½ÓµÄ°²È«ÐÔ¡£ÐèҪעÒ⣬TLSЭÉ̹ý³ÌÖ§³Ö¼ÓÃÜËã·¨·½°¸½Ï¶à£¬ÒªºÏÀíµØÑ¡Ôñ°²È«Ç¿¶È¸ßµÄËã·¨£¬ÈçDHE-RSA¡¢ECDHE-RSAºÍECDHE-ECDSA¡£

ʾÀýÖжԳÆÃÜÔ¿µÄЭÉ̹ý³Ì²ÉÓÃÁËRSA·Ç¶Ô³Æ¼ÓÃÜËã·¨£¬Êµ¼ùÖÐÒ²¿ÉÒÔͨ¹ýDiffie¨CHellmanЭÒéÀ´Íê³É¡£

2.6¡¢ÀëÉ¢¶ÔÊýÓëDiffie¨CHellmanÃÜÔ¿½»»»Ð­Òé

Diffie¨CHellman£¨DH£©ÃÜÔ¿½»»»Ð­ÒéÊÇÒ»¸ö¾­µäµÄЭÒ飬×îÔç·¢±íÓÚ1976Ä꣬ӦÓÃÊ®·Ö¹ã·º¡£Ê¹ÓøÃЭÒé¿ÉÒÔÔÚ²»°²È«ÐŵÀÍê³É¶Ô³ÆÃÜÔ¿µÄЭÉÌ£¬ÒÔ±ãºóÐøÍ¨ÐŲÉÓöԳƼÓÃÜ¡£

DHЭÒéµÄÉè¼Æ»ùÓÚÀëÉ¢¶ÔÊýÎÊÌ⣨Discrete Logarithm Problem£¬DLP£©¡£ÀëÉ¢¶ÔÊýÎÊÌâÊÇÖ¸¶ÔÓÚÒ»¸öºÜ´óµÄËØÊýp£¬ÒÑÖªgΪpµÄģѭ»·ÈºµÄÔ­¸ù£¬¸ø¶¨ÈÎÒâx£¬Çó½âX=g^x mod pÊÇ¿ÉÒԺܿì»ñÈ¡µÄ¡£µ«ÔÚÒÑÖªp¡¢gºÍXµÄǰÌáÏ£¬ÄæÏòÇó½âxĿǰûÓжàÏîʽʱ¼äʵÏÖµÄËã·¨¡£¸ÃÎÊÌâͬʱҲÊÇECCÀà¼ÓÃÜËã·¨µÄ»ù´¡¡£

DHЭÒéµÄ»ù±¾½»»»¹ý³ÌÈçÏ£º

AliceºÍBobÁ½¸öÈËЭÉÌÃÜÔ¿£¬Ïȹ«¿ªÉ̶¨p£¬g£»

Alice×ÔÐÐѡȡ˽ÃܵÄÕûÊýx£¬¼ÆËãX=g^x mod p£¬·¢ËÍX¸øBob£»

Bob×ÔÐÐѡȡ˽ÃܵÄÕûÊýy£¬¼ÆËãY=g^y mod p£¬·¢ËÍY¸øA£»

Alice¸ù¾ÝxºÍY£¬Çó½â¹²Í¬ÃÜÔ¿Z_A=Y^x mod p£»

Bob¸ù¾ÝXºÍy£¬Çó½â¹²Í¬ÃÜÔ¿Z_B=X^y mod p¡£

ʵ¼ÊÉÏ£¬AliceºÍBob¼ÆËã³öÀ´µÄ½á¹û½«ÍêÈ«Ïàͬ£¬ÒòΪÔÚmod pµÄǰÌáÏ£¬Y^x=£¨g^y£©^x=g^£¨xy£©=£¨g^x£©^y=X^y¡£¶øÐŵÀ¼àÌýÕßÔÚÒÑÖªp¡¢g¡¢X¡¢YµÄǰÌáÏ£¬ÎÞ·¨ÇóµÃZ¡£

Èý¡¢ÏûÏ¢ÈÏÖ¤ÂëÓëÊý×ÖÇ©Ãû

ÏûÏ¢ÈÏÖ¤ÂëºÍÊý×ÖÇ©Ãû¼¼Êõͨ¹ý¶ÔÏûÏ¢µÄÕªÒª½øÐмÓÃÜ£¬¿ÉÓÃÓÚÏûÏ¢·À´Û¸ÄºÍÉí·ÝÖ¤Ã÷ÎÊÌâ¡£

3.1¡¢ÏûÏ¢ÈÏÖ¤Âë

ÏûÏ¢ÈÏÖ¤ÂëÈ«³ÆÊÇ¡°»ùÓÚHashµÄÏûÏ¢ÈÏÖ¤Â롱£¨Hash-based Message Authentication Code£¬HMAC£©¡£ÏûÏ¢ÑéÖ¤Âë»ùÓڶԳƼÓÃÜ£¬¿ÉÒÔÓÃÓÚ¶ÔÏûÏ¢ÍêÕûÐÔ£¨integrity£©½øÐб£»¤¡£

»ù±¾¹ý³ÌΪ£º¶Ôij¸öÏûÏ¢ÀûÓÃÌáǰ¹²ÏíµÄ¶Ô³ÆÃÜÔ¿ºÍHashËã·¨½øÐмÓÃÜ´¦Àí£¬µÃµ½HMACÖµ¡£¸ÃHMACÖµ³ÖÓз½¿ÉÒÔÖ¤Ã÷×Ô¼ºÓµÓй²ÏíµÄ¶Ô³ÆÃÜÔ¿£¬²¢ÇÒÒ²¿ÉÒÔÀûÓÃHMACÈ·±£ÏûÏ¢ÄÚÈÝδ±»´Û¸Ä¡£

µäÐ͵ÄHMAC£¨K£¬H£¬Message£©Ëã·¨°üÀ¨Èý¸öÒòËØ£¬KΪÌáǰ¹²ÏíµÄ¶Ô³ÆÃÜÔ¿£¬HΪÌáǰÉ̶¨µÄHashËã·¨£¨Ò»°ãΪ¹«Èϵľ­µäËã·¨ÈçSHA-256£©£¬MessageΪҪ´¦ÀíµÄÏûÏ¢ÄÚÈÝ¡£Èç¹û²»ÖªµÀK»òHµÄÈκÎÒ»¸ö£¬ÔòÎÞ·¨¸ù¾ÝMessageµÃµ½ÕýÈ·µÄHMACÖµ¡£

ÏûÏ¢ÈÏÖ¤ÂëÒ»°ãÓÃÓÚÖ¤Ã÷Éí·ÝµÄ³¡¾°¡£ÈçAlice¡¢BobÌáǰ¹²ÏíºÍHMCAµÄÃÜÔ¿ºÍHashËã·¨£¬AliceÐèÒªÖªÏþ¶Ô·½ÊÇ·ñΪBob£¬¿É·¢ËÍËæ»úÏûÏ¢¸øBob¡£BobÊÕµ½ÏûÏ¢ºó½øÐмÆË㣬°ÑÏûÏ¢HMACÖµ·µ»Ø¸øAlice£¬Aliceͨ¹ý¼ìÑéÊÕµ½HMACÖµµÄÕýÈ·ÐÔ¿ÉÒÔÖªÏþ¶Ô·½ÊÇ·ñÊÇBob¡£×¢ÒâÕâÀﲢûÓп¼ÂÇÖмäÈ˹¥»÷µÄÇé¿ö£¬¼Ù¶¨ÐŵÀÊǰ²È«µÄ¡£

ÏûÏ¢ÈÏÖ¤ÂëʹÓùý³ÌÖÐÖ÷ÒªÎÊÌâÊÇÐèÒª¹²ÏíÃÜÔ¿¡£µ±ÃÜÔ¿¿ÉÄܱ»¶à·½ÓµÓеij¡¾°Ï£¬ÎÞ·¨Ö¤Ã÷ÏûÏ¢À´×Ôij¸öÈ·ÇеÄÉí·Ý¡£·´Ö®£¬Èç¹û²ÉÓ÷ǶԳƼÓÃÜ·½Ê½£¬Ôò¿ÉÒÔ×·Ëݵ½À´Ô´Éí·Ý£¬¼´Êý×ÖÇ©Ãû¡£

3.2¡¢Êý×ÖÇ©Ãû

ÓëÔÚÖ½ÖʺÏͬÉÏÇ©ÃûÈ·ÈϺÏͬÄÚÈݺÍÖ¤Ã÷Éí·ÝÀàËÆ£¬Êý×ÖÇ©Ãû»ùÓڷǶԳƼÓÃÜ£¬¼È¿ÉÒÔÓÃÓÚ֤ʵijÊý×ÖÄÚÈݵÄÍêÕûÐÔ£¬ÓÖͬʱ¿ÉÒÔÈ·ÈÏÀ´Ô´£¨»ò²»¿ÉµÖÀµ£¬Non-Repudiation£©¡£

Ò»¸öµäÐ͵ij¡¾°ÊÇ£¬Aliceͨ¹ýÐŵÀ·¢¸øBobÒ»¸öÎļþ£¨Ò»·ÝÐÅÏ¢£©£¬BobÈçºÎ»ñÖªËùÊÕµ½µÄÎļþ¼´ÎªAlice·¢³öµÄԭʼ°æ±¾£¿Alice¿ÉÒÔÏȶÔÎļþÄÚÈݽøÐÐÕªÒª£¬È»ºóÓÃ×Ô¼ºµÄ˽Կ¶ÔÕªÒª½øÐмÓÃÜ£¨Ç©Ãû£©£¬Ö®ºóͬʱ½«ÎļþºÍÇ©Ãû¶¼·¢¸øBob¡£BobÊÕµ½ÎļþºÍÇ©Ãûºó£¬ÓÃAliceµÄ¹«Ô¿À´½âÃÜÇ©Ãû£¬µÃµ½Êý×ÖÕªÒª£¬ÓëÊÕµ½Îļþ½øÐÐÕªÒªºóµÄ½á¹û½øÐбȶԡ£Èç¹ûÒ»Ö£¬ËµÃ÷¸ÃÎļþȷʵÊÇAlice·¢¹ýÀ´µÄ£¨±ðÈËÎÞ·¨ÓµÓÐAliceµÄ˽Կ£©£¬²¢ÇÒÎļþÄÚÈÝûÓб»Ð޸Ĺý£¨ÕªÒª½á¹ûÒ»Ö£©¡£

ÖªÃûµÄÊý×ÖÇ©ÃûËã·¨°üÀ¨DSA£¨Digital Signature Algorithm£©ºÍ°²È«Ç¿¶È¸ü¸ßµÄECSDA£¨Elliptic Curve Digital Signature Algorithm£©µÈ¡£

³ýÆÕͨµÄÊý×ÖÇ©ÃûÓ¦Óó¡¾°Í⣬Õë¶ÔÒ»Ð©ÌØ¶¨µÄ°²È«ÐèÇ󣬲úÉúÁËÒ»Ð©ÌØÊâÊý×ÖÇ©Ãû¼¼Êõ£¬°üÀ¨Ã¤Ç©Ãû¡¢¶àÖØÇ©Ãû¡¢ÈºÇ©Ãû¡¢»·Ç©ÃûµÈ¡£

3.2.1¡¢Ã¤Ç©Ãû

äǩÃû£¨blind signature£©ÊÇÔÚ1982ÄêÓÉDavid ChaumÔÚÂÛÎÄ¡¶Blind Signatures for Untraceable Payment¡·ÖÐÌá³ö¡£Ç©ÃûÕßÐèÒªÔÚÎÞ·¨¿´µ½Ô­Ê¼ÄÚÈݵÄǰÌá϶ÔÐÅÏ¢½øÐÐÇ©Ãû¡£

äǩÃû¿ÉÒÔʵÏÖ¶ÔËùÇ©ÃûÄÚÈݵı£»¤£¬·ÀֹǩÃûÕß¿´µ½Ô­Ê¼ÄÚÈÝ£»ÁíÒ»·½Ã棬äǩÃû»¹¿ÉÒÔʵÏÖ·ÀÖ¹×·×Ù£¨unlinkability£©£¬Ç©ÃûÕßÎÞ·¨½«Ç©ÃûÄÚÈݺÍÇ©Ãû½á¹û½øÐжÔÓ¦¡£µäÐ͵ÄʵÏÖ°üÀ¨RSAäǩÃûËã·¨µÈ¡£

3.2.2¡¢¶àÖØÇ©Ãû

¶àÖØÇ©Ãû£¨multiple signature£©¼´n¸öÇ©ÃûÕßÖУ¬ÊÕ¼¯µ½ÖÁÉÙm¸ö£¨n>=m>=1£©µÄÇ©Ãû£¬¼´ÈÏΪºÏ·¨¡£ÆäÖУ¬nÊÇÌṩµÄ¹«Ô¿¸öÊý£¬mÊÇÐèҪƥÅ乫ԿµÄ×îÉÙµÄÇ©Ãû¸öÊý¡£

¶àÖØÇ©Ãû¿ÉÒÔÓÐЧµØ±»Ó¦ÓÃÔÚ¶àÈËͶƱ¹²Í¬¾ö²ßµÄ³¡¾°ÖС£ÀýÈçË«·½½øÐÐЭÉÌ£¬µÚÈý·½×÷ΪÉóºË·½¡£Èý·½ÖÐÈκÎÁ½·½´ï³ÉÒ»Ö¼´¿ÉÍê³ÉЭÉÌ¡£

±ÈÌØ±Ò½»Ò×ÖоÍÖ§³Ö¶àÖØÇ©Ãû£¬¿ÉÒÔʵÏÖ¶à¸öÈ˹²Í¬¹ÜÀíij¸öÕË»§µÄ±ÈÌØ±Ò½»Òס£

3.2.3¡¢ÈºÇ©Ãû

ȺǩÃû£¨group signature£©¼´Ä³¸öȺ×éÄÚÒ»¸ö³ÉÔ±¿ÉÒÔ´ú±íȺ×é½øÐÐÄäÃûÇ©Ãû¡£Ç©Ãû¿ÉÒÔÑéÖ¤À´×ÔÓÚ¸ÃȺ×飬ȴÎÞ·¨×¼È·×·×Ùµ½Ç©ÃûµÄÊÇÄĸö³ÉÔ±¡£

ȺǩÃûÐèÒª´æÔÚÒ»¸öȺ¹ÜÀíÔ±À´Ìí¼ÓеÄȺ³ÉÔ±£¬Òò´Ë´æÔÚȺ¹ÜÀíÔ±¿ÉÄÜ×·×Ùµ½Ç©Ãû³ÉÔ±Éí·ÝµÄ·çÏÕ¡£

ȺǩÃû×îÔçÓÚ1991ÄêÓÉDavid ChaumºÍEugene van HeystÌá³ö¡£

3.2.4¡¢»·Ç©Ãû

»·Ç©Ãû£¨ring signature£©£¬ÓÉRivest¡¢ShamirºÍTaumanÈýλÃÜÂëѧ¼ÒÔÚ2001ÄêÊ×´ÎÌá³ö¡£»·Ç©ÃûÊôÓÚÒ»ÖÖ¼ò»¯µÄȺǩÃû¡£

Ç©ÃûÕßÊ×ÏÈÑ¡¶¨Ò»¸öÁÙʱµÄÇ©ÃûÕß¼¯ºÏ£¬¼¯ºÏÖаüÀ¨Ç©ÃûÕß×ÔÉí¡£È»ºóÇ©ÃûÕßÀûÓÃ×Ô¼ºµÄ˽ԿºÍÇ©Ãû¼¯ºÏÖÐÆäËûÈ˵Ĺ«Ô¿¾Í¿ÉÒÔ¶ÀÁ¢µØ²úÉúÇ©Ãû£¬¶øÎÞÐèËûÈ˵İïÖú¡£Ç©ÃûÕß¼¯ºÏÖÐµÄÆäËû³ÉÔ±¿ÉÄܲ¢²»ÖªµÀ×Ô¼º±»°üº¬ÔÚ×îÖÕµÄÇ©ÃûÖС£

»·Ç©ÃûÔÚ±£»¤ÄäÃûÐÔ·½ÃæÓкܶàµÄÓÃ;¡£

3.3¡¢°²È«ÐÔ

Êý×ÖÇ©ÃûËã·¨×ÔÉíµÄ°²È«ÐÔÓÉÊýѧÎÊÌâ½øÐб£ÕÏ£¬µ«ÔÚʹÓÃÉÏ£¬ÏµÍ³µÄ°²È«ÐÔҲʮ·Ö¹Ø¼ü¡£Ä¿Ç°³£¼ûµÄÊý×ÖÇ©ÃûËã·¨ÍùÍùÐèҪѡȡºÏÊʵÄËæ»úÊý×÷ΪÅäÖòÎÊý£¬ÅäÖòÎÊý²»ºÏÀíµÄʹÓûòй¶¶¼»áÔì³É°²È«Â©¶´£¬ÐèÒª½øÐа²È«±£»¤¡£

2010Ä꣬SONY¹«Ë¾ÒòΪÆäPS3²úÆ·ÉϲÉÓð²È«µÄECDSA½øÐÐÇ©Ãûʱ£¬²»É÷²ÉÓÃÁËÖØ¸´µÄËæ»ú²ÎÊý£¬µ¼ÖÂ˽Կ±»×îÖÕÆÆ½â£¬Ôì³ÉÖØ´ó¾­¼ÃËðʧ¡£

ËÄ¡¢Êý×ÖÖ¤Êé

¶ÔÓڷǶԳƼÓÃÜËã·¨ºÍÊý×ÖÇ©ÃûÀ´Ëµ£¬ºÜÖØÒªµÄÒ»µã¾ÍÊǹ«Ô¿µÄ·Ö·¢¡£ÀíÂÛÉÏÈκÎÈË¿ÉÒÔ¹«¿ª»ñÈ¡µ½¶Ô·½µÄ¹«Ô¿¡£È»¶øÕâ¸ö¹«Ô¿ÓÐûÓпÉÄÜÊÇαÔìµÄÄØ£¿´«Êä¹ý³ÌÖÐÓÐûÓпÉÄܱ»´Û¸ÄµôÄØ£¿Ò»µ©¹«Ô¿×ÔÉí³öÁËÎÊÌ⣬ÔòÕû¸ö½¨Á¢ÔÚÆäÉϵݲȫÌåϵµÄ°²È«ÐÔ½«²»¸´´æÔÚ¡£

Êý×ÖÖ¤Êé»úÖÆÕýÊÇΪÁ˽â¾öÕâ¸öÎÊÌ⣬Ëü¾ÍÏñÈÕ³£Éú»îÖеÄÒ»¸öÖ¤ÊéÒ»Ñù£¬¿ÉÒÔÖ¤Ã÷Ëù¼Ç¼ÐÅÏ¢µÄºÏ·¨ÐÔ¡£±ÈÈçÖ¤Ã÷ij¸ö¹«Ô¿ÊÇij¸öʵÌ壨Èç×éÖ¯»ò¸öÈË£©µÄ£¬²¢ÇÒÈ·±£Ò»µ©ÄÚÈݱ»´Û¸ÄÄܱ»Ì½²â³öÀ´£¬´Ó¶øÊµÏÖ¶ÔÓû§¹«Ô¿µÄ°²È«·Ö·¢¡£

¸ù¾ÝËù±£»¤¹«Ô¿µÄÓÃ;£¬¿ÉÒÔ·ÖΪ¼ÓÃÜÊý×ÖÖ¤Ê飨Encryption Certificate£©ºÍÇ©ÃûÑéÖ¤Êý×ÖÖ¤Ê飨Signature Certificate£©¡£Ç°ÕßÍùÍùÓÃÓÚ±£»¤ÓÃÓÚ¼ÓÃÜÐÅÏ¢µÄ¹«Ô¿£»ºóÕßÔò±£»¤ÓÃÓÚ½øÐнâÃÜÇ©Ãû½øÐÐÉí·ÝÑéÖ¤µÄ¹«Ô¿¡£Á½ÖÖÀàÐ͵Ĺ«Ô¿Ò²¿ÉÒÔͬʱ·ÅÔÚͬһ֤ÊéÖС£

Ò»°ãÇé¿öÏ£¬Ö¤ÊéÐèÒªÓÉÖ¤ÊéÈÏÖ¤»ú¹¹£¨Certification Authority£¬CA£©À´½øÐÐÇ©·¢ºÍ±³Ê顣ȨÍþµÄÖ¤ÊéÈÏÖ¤»ú¹¹°üÀ¨DigiCert¡¢GlobalSign¡¢VeriSignµÈ¡£Óû§Ò²¿ÉÒÔ×ÔÐд±¾µØCAϵͳ£¬ÔÚ˽ÓÐÍøÂçÖнøÐÐʹÓá£

4.1¡¢X.509Ö¤Ê鹿·¶

Ò»°ãÀ´Ëµ£¬Ò»¸öÊý×ÖÖ¤ÊéÄÚÈÝ¿ÉÄܰüÀ¨»ù±¾Êý¾Ý£¨°æ±¾¡¢ÐòÁкţ©¡¢ËùÇ©Ãû¶ÔÏóÐÅÏ¢£¨Ç©ÃûËã·¨ÀàÐÍ¡¢Ç©·¢ÕßÐÅÏ¢¡¢ÓÐЧÆÚ¡¢±»Ç©·¢ÈË¡¢Ç©·¢µÄ¹«¿ªÃÜÔ¿£©¡¢CAµÄÊý×ÖÇ©Ãû£¬µÈµÈ¡£

ĿǰʹÓÃ×î¹ã·ºµÄ±ê׼ΪITUºÍISOÁªºÏÖÆ¶¨µÄX.509µÄv3°æ±¾¹æ·¶£¨RFC 5280£©£¬ÆäÖж¨ÒåÁËÈçÏÂÖ¤ÊéÐÅÏ¢Óò£º

°æ±¾ºÅ£¨Version Number£©£º¹æ·¶µÄ°æ±¾ºÅ£¬Ä¿Ç°Îª°æ±¾3£¬ÖµÎª0x2£»

ÐòÁкţ¨Serial Number£©£ºÓÉCAά»¤µÄΪËüËù°ä·¢µÄÿ¸öÖ¤Êé·ÖÅäµÄΨһµÄÐòÁкţ¬ÓÃÀ´×·×ٺͳ·ÏúÖ¤Êé¡£Ö»ÒªÓµÓÐÇ©·¢ÕßÐÅÏ¢ºÍÐòÁкţ¬¾Í¿ÉÒÔΨһ±êʶһ¸öÖ¤Ê飬×î´ó²»Äܳ¬¹ý20¸ö×Ö½Ú£»

Ç©ÃûËã·¨£¨Signature Algorithm£©£ºÊý×ÖÇ©ÃûËù²ÉÓõÄËã·¨£¬Èçsha256WithRSAEncryption»òecdsa-with-SHA256£»

°ä·¢Õߣ¨Issuer£©£º°ä·¢Ö¤Ê鵥λµÄ±êʶÐÅÏ¢£¬Èç¡°C=CN£¬ST=Beijing£¬L=Beijing£¬O=org.example.com£¬CN=ca.org.example.com¡±£»

ÓÐЧÆÚ£¨Validity£©£ºÖ¤ÊéµÄÓÐЧÆÚÏÞ£¬°üÀ¨Æðֹʱ¼ä£»

Ö÷Ì壨Subject£©£ºÖ¤ÊéÓµÓÐÕߵıêʶÐÅÏ¢£¨Distinguished Name£©£¬Èç¡°C=CN£¬ST=Beijing£¬L=Beijing£¬CN=person.org.example.com¡±£»

Ö÷ÌåµÄ¹«Ô¿ÐÅÏ¢£¨Subject Public Key Info£©£ºËù±£»¤µÄ¹«Ô¿Ïà¹ØµÄÐÅÏ¢£»

¹«Ô¿Ëã·¨£¨Public Key Algorithm£©£º¹«Ô¿²ÉÓõÄËã·¨£»

Ö÷Ì幫Կ£¨Subject Public Key£©£º¹«Ô¿µÄÄÚÈÝ£»

°ä·¢ÕßΨһºÅ£¨Issuer Unique Identifier£©£º´ú±í°ä·¢ÕßµÄΨһÐÅÏ¢£¬½ö2¡¢3°æ±¾Ö§³Ö£¬¿ÉÑ¡£»

Ö÷ÌåΨһºÅ£¨Subject Unique Identifier£©£º´ú±íÓµÓÐÖ¤ÊéʵÌåµÄΨһÐÅÏ¢£¬½ö2¡¢3°æ±¾Ö§³Ö£¬¿ÉÑ¡£»

À©Õ¹£¨Extensions£¬¿ÉÑ¡£©£º¿ÉÑ¡µÄһЩÀ©Õ¹¡£v3ÖпÉÄܰüÀ¨£º

Subject Key Identifier£ºÊµÌåµÄÃÜÔ¿±êʶ·û£¬Çø·ÖʵÌåµÄ¶à¶ÔÃÜÔ¿£»

Basic Constraints£ºÒ»°ãÖ¸Ã÷ÊÇ·ñÊôÓÚCA£»

Authority Key Identifier£ºÖ¤Êé°ä·¢ÕߵĹ«Ô¿±êʶ·û£»

CRL Distribution Points£º³·ÏúÎļþµÄ·¢²¼µØÖ·£»

Key Usage£ºÖ¤ÊéµÄÓÃ;»ò¹¦ÄÜÐÅÏ¢¡£

´ËÍ⣬֤ÊéµÄ°ä·¢Õß»¹ÐèÒª¶ÔÖ¤ÊéÄÚÈÝÀûÓÃ×Ô¼ºµÄ¹«Ô¿Ìí¼ÓÇ©Ãû£¬ÒÔ·ÀÖ¹±ðÈ˶ÔÖ¤ÊéÄÚÈݽøÐд۸ġ£

4.2¡¢Ö¤Êé¸ñʽ

X.509¹æ·¶ÖÐÒ»°ãÍÆ¼öʹÓÃPEM£¨Privacy Enhanced Mail£©¸ñʽÀ´´æ´¢Ö¤ÊéÏà¹ØµÄÎļþ¡£Ö¤ÊéÎļþµÄÎļþÃûºó׺һ°ãΪ.crt»ò.cer£¬¶ÔӦ˽ԿÎļþµÄÎļþÃûºó׺һ°ãΪ.key£¬Ö¤ÊéÇëÇóÎļþµÄÎļþÃûºó׺Ϊ.csr¡£ÓÐʱºòҲͳһÓÃ.pem×÷ΪÎļþÃûºó׺¡£

PEM¸ñʽ²ÉÓÃÎı¾·½Ê½½øÐд洢£¬Ò»°ã°üÀ¨Ê×β±ê¼ÇºÍÄÚÈݿ飬ÄÚÈÝ¿é²ÉÓÃBase64½øÐбàÂë¡£

ÀýÈ磬һ¸öPEM¸ñʽµÄʾÀýÖ¤ÊéÎļþÈçÏÂËùʾ£º

-----BEGIN CERTIFICATE-----
MIICMzCCAdmgAwIBAgIQIhMiRzqkCljq3ZXnsl6EijAKBggqhk
jOPQQDAjBmMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1
UEBxMNU2FuIEZy
YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFDASBgNVBA
MTC2V4YW1wbGUu
Y29tMB4XDTE3MDQyNTAzMzAzN1oXDTI3MDQyMzAzMzAzN1owZj
ELMAkGA1UEBhMC
VVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbi
BGcmFuY2lzY28x
FDASBgNVBAoTC2V4YW1wbGUuY29tMRQwEgYDVQQDEwtleGFtcG
xlLmNvbTBZMBMG
ByqGSM49AgEGCCqGSM49AwEHA0IABCkIHZ3mJCEPbIbUdh/Kz3
zWW1C9wxnZOwfy
yrhr6aHwWREW3ZpMWKUcbsYup5kbouBc2dvMFUgoPBoaFYJ9D0S
jaTBnMA4GA1Ud
DwEB/wQEAwIBpjAZBgNVHSUEEjAQBgRVHSUABggrBgEFBQcDAT
APBgNVHRMBAf8E
BTADAQH/MCkGA1UdDgQiBCBIA/DmemwTGibbGe8uWjt5hnlE63
SUsXuNKO9iGEhV
qDAKBggqhkjOPQQDAgNIADBFAiEAyoMO2BAQ3c9gBJOk1oSyXP7
0XRk4dTwXMF7q
R72ijLECIFKLANpgWFoMoo3W91uzJeUmnbJJt8Jlr00ByjurfAvv
-----END CERTIFICATE-----

¿ÉÒÔͨ¹ýOpenSSL¹¤¾ßÀ´²é¿´ÆäÄÚÈÝ£º

# openssl x509 -in example.com-cert.pem -noout -text
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
22:13:22:47:3a:a4:0a:58:ea:dd:95:e7:b2:5e:84:8a
Signature Algorithm: ecdsa-with-SHA256
Issuer: C=US, ST=California, L=San Francisco, O=example.com,
CN=example.com
Validity
Not Before: Apr 25 03:30:37 2017 GMT
Not After : Apr 23 03:30:37 2027 GMT
Subject: C=US, ST=California, L=San Francisco, O=example.com,
CN=example.com
Subject Public Key Info:
Public Key Algorithm: id-ecPublicKey
Public-Key: (256 bit)
pub:
04:29:08:1d:9d:e6:24:21:0f:6c:86:d4:76:1f:ca:
cf:7c:d6:5b:50:bd:c3:19:d9:3b:07:f2:ca:b8:6b:
e9:a1:f0:59:11:16:dd:9a:4c:58:a5:1c:6e:c6:2e:
a7:99:1b:a2:e0:5c:d9:db:cc:15:48:28:3c:1a:1a:
15:82:7d:0f:44
ASN1 OID: prime256v1
X509v3 extensions:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment, Certificate Sign,
CRL Sign
X509v3 Extended Key Usage:
Any Extended Key Usage, TLS Web Server Authentication
X509v3 Basic Constraints: critical
CA:TRUE
X509v3 Subject Key Identifier:
48:03:F0:E6:7A:6C:13:1A:26:DB:19:EF:2E:5A:3B:79:86:
79:44:EB:74:94:B1:7B:8D:28:EF:62:18:48:55:A8
Signature Algorithm: ecdsa-with-SHA256
30:45:02:21:00:ca:83:0e:d8:10:10:dd:cf:60:04:93:a4:d6:
84:b2:5c:fe:f4:5d:19:38:75:3c:17:30:5e:ea:47:bd:a2:8c:
b1:02:20:52:8b:00:da:60:58:5a:0c:a2:8d:d6:f7:5b:b3:25:
e5:26:9d:b2:49:b7:c2:65:af:4d:01:ca:3b:ab:7c:0b:ef

´ËÍ⣬»¹ÓÐDER£¨Distinguished Encoding Rules£©¸ñʽ£¬ÊDzÉÓöþ½øÖƶÔÖ¤Êé½øÐб£´æ£¬¿ÉÒÔÓëPEM¸ñʽ»¥Ïàת»»¡£

4.3¡¢Ö¤ÊéÐÅÈÎÁ´

Ö¤ÊéÖмǼÁË´óÁ¿ÐÅÏ¢£¬ÆäÖÐ×îÖØÒªµÄ°üÀ¨¡°Ç©·¢µÄ¹«¿ªÃÜÔ¿¡±ºÍ¡°CAÊý×ÖÇ©Ãû¡±Á½¸öÐÅÏ¢¡£Òò´Ë£¬Ö»ÒªÊ¹ÓÃCAµÄ¹«Ô¿ÔٴζÔÕâ¸öÖ¤Êé½øÐÐÇ©Ãû±È¶Ô£¬¾ÍÄÜÖ¤Ã÷ij¸öʵÌåµÄ¹«Ô¿ÊÇ·ñÊǺϷ¨µÄ¡£

¶ÁÕß¿ÉÄÜ»áÏëµ½£¬Ôõô֤Ã÷ÓÃÀ´ÑéÖ¤¶ÔʵÌåÖ¤Êé½øÐÐÇ©ÃûµÄCA¹«Ô¿×ÔÉíÊÇ·ñºÏ·¨ÄØ£¿±Ï¾¹ÔÚ»ñÈ¡CA¹«Ô¿µÄ¹ý³ÌÖУ¬ËüÒ²¿ÉÄܱ»´Û¸Äµô¡£

ʵ¼ÊÉÏ£¬ÒªÏëÖªµÀCAµÄ¹«Ô¿ÊÇ·ñºÏ·¨£¬Ò»·½Ãæ¿ÉÒÔͨ¹ý¸üÉϲãµÄCA°ä·¢µÄÖ¤ÊéÀ´½øÐÐÈÏÖ¤£»ÁíÒ»·½ÃæÄ³Ð©¸ùCA£¨Root CA£©¿ÉÒÔͨ¹ýÔ¤ÏÈ·Ö·¢Ö¤ÊéÀ´ÊµÏÖÐÅÈλù´¡¡£ÀýÈ磬Ö÷Á÷²Ù×÷ϵͳºÍä¯ÀÀÆ÷ÀïÃæ£¬ÍùÍù»áÌáǰԤÖÃһЩȨÍþCAµÄÖ¤Ê飨ͨ¹ý×ÔÉíµÄ˽ԿǩÃû£¬ÏµÍ³³ÐÈÏÕâЩÊǺϷ¨µÄÖ¤Ê飩¡£Ö®ºóËùÓлùÓÚÕâЩCAÈÏÖ¤¹ýµÄÖмä²ãCA£¨Intermediate CA£©ºÍºó¼ÌCA¶¼»á±»ÑéÖ¤ºÏ·¨¡£ÕâÑù¾Í´ÓÔ¤ÏÈÐÅÈεĸùÖ¤Ê飬¾­¹ýÖмä²ãÖ¤Ê飬µ½×îµ×ϵÄʵÌåÖ¤Ê飬¹¹³ÉÒ»ÌõÍêÕûµÄÖ¤ÊéÐÅÈÎÁ´¡£

ijЩʱºòÓû§ÔÚʹÓÃä¯ÀÀÆ÷·ÃÎÊÄ³Ð©ÍøÕ¾Ê±£¬¿ÉÄܻᱻÌáʾÊÇ·ñÐÅÈζԷ½µÄÖ¤Êé¡£Õâ˵Ã÷¸ÃÍøÕ¾Ö¤ÊéÎÞ·¨±»µ±Ç°ÏµÍ³ÖеÄÖ¤ÊéÐÅÈÎÁ´½øÐÐÑéÖ¤£¬ÐèÒª½øÐжîÍâ¼ì²é¡£ÁíÍ⣬µ±ÐÅÈÎÁ´ÉÏÈÎÒ»Ö¤Êé²»¿É¿¿Ê±£¬ÔòÒÀÀµËüµÄËùÓкó¼ÌÖ¤Êé¶¼½«Ê§È¥±£ÕÏ¡£

¿É¼û£¬Ö¤Êé×÷Ϊ¹«Ô¿ÐÅÈεĻù´¡£¬¶ÔÆäÉúÃüÖÜÆÚ½øÐа²È«¹ÜÀíÊ®·Ö¹Ø¼ü¡£Ï½ڽ«½éÉܵÄPKIÌåϵÌṩÁËÒ»Ì×ÍêÕûµÄÖ¤Êé¹ÜÀíµÄ¿ò¼Ü£¬°üÀ¨Éú³É¡¢°ä·¢¡¢³·Ïú¹ý³ÌµÈ¡£

Îå¡¢PKIÌåϵ

ÔڷǶԳƼÓÃÜÖУ¬¹«Ô¿¿ÉÒÔͨ¹ýÖ¤Êé»úÖÆÀ´½øÐб£»¤£¬µ«Ö¤ÊéµÄÉú³É¡¢·Ö·¢¡¢³·ÏúµÈ¹ý³Ì²¢Ã»ÓÐÔÚX.509¹æ·¶ÖнøÐж¨Òå¡£

ʵ¼ÊÉÏ£¬°²È«µØ¹ÜÀíºÍ·Ö·¢Ö¤Êé¿ÉÒÔ×ñÑ­PKI£¨Public Key Infrastructure£©ÌåϵÀ´Íê³É¡£PKIÌåϵºËÐĽâ¾öµÄÊÇÖ¤ÊéÉúÃüÖÜÆÚÏà¹ØµÄÈÏÖ¤ºÍ¹ÜÀíÎÊÌ⣬ÔÚÏÖ´úÃÜÂëѧӦÓÃÁìÓò´¦ÓÚÊ®·Ö»ù´¡ºÍÖØÒªµÄµØÎ»¡£

ÐèҪעÒ⣬PKIÊǽ¨Á¢ÔÚ¹«Ë½Ô¿»ù´¡ÉÏʵÏÖ°²È«¿É¿¿´«µÝÏûÏ¢ºÍÉí·ÝÈ·ÈϵÄÒ»¸öͨÓÿò¼Ü£¬²¢²»´ú±íij¸öÌØ¶¨µÄÃÜÂëѧ¼¼ÊõºÍÁ÷³Ì¡£ÊµÏÖÁËPKI¹æ·¶µÄƽ̨¿ÉÒÔ°²È«¿É¿¿µØ¹ÜÀíÍøÂçÖÐÓû§µÄÃÜÔ¿ºÍÖ¤Ê顣Ŀǰ°üÀ¨¶à¸öʵÏֺ͹淶£¬ÖªÃûµÄÓÐRSA¹«Ë¾µÄPKCS£¨Public Key Cryptography Standards£©±ê×¼ºÍX.509Ïà¹Ø¹æ·¶µÈ¡£

5.1¡¢PKI»ù±¾×é¼þ

Ò»°ãÇé¿öÏ£¬PKIÖÁÉÙ°üÀ¨ÈçϺËÐÄ×é¼þ£º

CA£¨Certification Authority£©£º¸ºÔðÖ¤ÊéµÄ°ä·¢ºÍ×÷·Ï£¬½ÓÊÕÀ´×ÔRAµÄÇëÇó£¬ÊÇ×îºËÐĵIJ¿·Ö£»

RA£¨Registration Authority£©£º¶ÔÓû§Éí·Ý½øÐÐÑéÖ¤£¬Ð£ÑéÊý¾ÝºÏ·¨ÐÔ£¬¸ºÔðµÇ¼Ç£¬ÉóºË¹ýÁ˾ͷ¢¸øCA£»

Ö¤ÊéÊý¾Ý¿â£º´æ·ÅÖ¤Ê飬¶à²ÉÓÃX.500ϵÁбê×¼¸ñʽ¡£¿ÉÒÔÅäºÏLDAPĿ¼·þÎñ¹ÜÀíÓû§ÐÅÏ¢¡£

ÆäÖУ¬CAÊÇ×îºËÐĵÄ×é¼þ£¬Ö÷ÒªÍê³É¶ÔÖ¤ÊéÐÅÏ¢µÄά»¤¡£

³£¼ûµÄ²Ù×÷Á÷³ÌΪ£¬Óû§Í¨¹ýRAµÇ¼ÇÉêÇëÖ¤Ê飬ÌṩÉí·ÝºÍÈÏÖ¤ÐÅÏ¢µÈ£»CAÉóºËºóÍê³ÉÖ¤ÊéµÄÖÆÔ죬°ä·¢¸øÓû§¡£Óû§Èç¹ûÐèÒª³·ÏúÖ¤ÊéÔòÐèÒªÔÙ´ÎÏòCA·¢³öÉêÇë¡£

5.2¡¢Ö¤ÊéµÄÇ©·¢

CA¶ÔÓû§Ç©·¢Ö¤Êéʵ¼ÊÉÏÊǶÔij¸öÓû§¹«Ô¿£¬Ê¹ÓÃCAµÄ˽Կ¶ÔÆä½øÐÐÇ©Ãû¡£ÕâÑùÈκÎÈ˶¼¿ÉÒÔÓÃCAµÄ¹«Ô¿¶Ô¸ÃÖ¤Êé½øÐкϷ¨ÐÔÑéÖ¤¡£ÑéÖ¤³É¹¦ÔòÈϿɸÃÖ¤ÊéÖÐËùÌṩµÄÓû§¹«Ô¿ÄÚÈÝ£¬ÊµÏÖÓû§¹«Ô¿µÄ°²È«·Ö·¢¡£

Óû§Ö¤ÊéµÄÇ©·¢¿ÉÒÔÓÐÁ½ÖÖ·½Ê½¡£Ò»°ã¿ÉÒÔÓÉCAÖ±½ÓÀ´Éú³ÉÖ¤Ê飨ÄÚº¬¹«Ô¿£©ºÍ¶ÔÓ¦µÄ˽Կ·¢¸øÓû§£»Ò²¿ÉÒÔÓÉÓû§×Ô¼ºÉú³É¹«Ô¿ºÍ˽Կ£¬È»ºóÓÉCAÀ´¶Ô¹«Ô¿ÄÚÈݽøÐÐÇ©Ãû¡£

ºóÕßÇé¿öÏ£¬Óû§Ò»°ã»áÊ×ÏÈ×ÔÐÐÉú³ÉÒ»¸ö˽ԿºÍÖ¤ÊéÉêÇëÎļþ£¨Certificate Signing Request£¬¼´csrÎļþ£©£¬¸ÃÎļþÖаüÀ¨ÁËÓû§¶ÔÓ¦µÄ¹«Ô¿ºÍһЩ»ù±¾ÐÅÏ¢£¬ÈçͨÓÃÃû£¨common name£¬¼´cn£©¡¢×éÖ¯ÐÅÏ¢¡¢µØÀíλÖõȡ£CAÖ»ÐèÒª¶ÔÖ¤ÊéÇëÇóÎļþ½øÐÐÇ©Ãû£¬Éú³ÉÖ¤ÊéÎļþ£¬°ä·¢¸øÓû§¼´¿É¡£Õû¸ö¹ý³ÌÖУ¬Óû§¿ÉÒÔ±£³Ö˽ԿÐÅÏ¢µÄ˽ÃÜÐÔ£¬²»»á±»ÆäËû·½»ñÖª£¨°üÀ¨CA·½£©¡£

Éú³ÉÖ¤ÊéÉêÇëÎļþµÄ¹ý³Ì²¢²»¸´ÔÓ£¬Óû§¿ÉÒÔºÜÈÝÒ×µØÊ¹ÓÿªÔ´Èí¼þopensslÀ´Éú³ÉcsrÎļþºÍ¶ÔÓ¦µÄ˽ԿÎļþ¡£

ÀýÈ磬°²×°OpenSSLºó¿ÉÒÔÖ´ÐÐÈçÏÂÃüÁîÀ´Éú³É˽ԿºÍ¶ÔÓ¦µÄÖ¤ÊéÇëÇóÎļþ£º

$ openssl req -new -keyout private.key -out for_request.csr
Generating a 1024 bit RSA private key
...........................++++++
............................................++++++
writing new private key to 'private.key'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:Beijing
Locality Name (eg, city) []:Beijing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Blockchain
Organizational Unit Name (eg, section) []:Dev
Common Name (e.g. server FQDN or YOUR name) []:example.com
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Éú³É¹ý³ÌÖÐÐèÒªÊäÈëµØÀíλÖá¢×éÖ¯¡¢Í¨ÓÃÃûµÈÐÅÏ¢¡£Éú³ÉµÄ˽ԿºÍcsrÎļþĬÈÏÒÔPEM¸ñʽ´æ´¢£¬ÄÚÈÝΪBase64±àÂë¡£

ÈçÉú³ÉµÄcsrÎļþÄÚÈÝ¿ÉÄÜΪ£º

$ cat for_request.csr
1
-----BEGIN CERTIFICATE REQUEST-----
MIIBrzCCARgCAQAwbzELMAkGA1UEBhMCQ04xEDAOBgNVBAgTB0JlaWpp
bmcxEDAO
BgNVBAcTB0JlaWppbmcxEzARBgNVBAoTCkJsb2NrY2hhaW4xDDAKBgNV
BAsTA0Rl
djEZMBcGA1UEAxMQeWVhc3kuZ2l0aHViLmNvbTCBnzANBgkqhkiG9w0B
AQEFAAOB
jQAwgYkCgYEA8fzVl7MJpFOuKRH+BWqJY0RPTQK4LB7fEgQFTIotO264
ZlVJVbk8
Yfl42F7dh/8SgHqmGjPGZgDb3hhIJLoxSOI0vJweU9v6HiOVrFWE7BZE
vhvEtP5k
lXXEzOewLvhLMNQpG0kBwdIh2EcwmlZKcTSITJmdulEvoZXr/DHXnyUC
AwEAAaAA
MA0GCSqGSIb3DQEBBQUAA4GBAOtQDyJmfP64anQtRuEZPZji/7G2+y3L
bqWLQIcj
IpZbexWJvORlyg+iEbIGno3Jcia7lKLih26lr04W/7DHn19J6Kb/CeXr
jDHhKGLO
I7s4LuE+2YFSemzBVr4t/g24w9ZB4vKjN9X9i5hc6c6uQ45rNlQ8UK5n
AByQ/TWD
OxyG
-----END CERTIFICATE REQUEST-----

openssl¹¤¾ßÌṩÁ˲鿴PEM¸ñʽÎļþÃ÷ÎĵŦÄÜ£¬ÈçʹÓÃÈçÏÂÃüÁî¿ÉÒԲ鿴Éú³ÉµÄcsrÎļþµÄÃ÷ÎÄ£º

$ openssl req -in for_request.csr -noout -text
Certificate Request:
Data:
Version: 0 (0x0)
Subject: C=CN, ST=Beijing, L=Beijing, O=Blockchain, OU=Dev,
CN=yeasy.github.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:f1:fc:d5:97:b3:09:a4:53:ae:29:11:fe:05:6a:
89:63:44:4f:4d:02:b8:2c:1e:df:12:04:05:4c:8a:
2d:3b:6e:b8:66:55:49:55:b9:3c:61:f9:78:d8:5e:
dd:87:ff:12:80:7a:a6:1a:33:c6:66:00:db:de:18:
48:24:ba:31:48:e2:34:bc:9c:1e:53:db:fa:1e:23:
95:ac:55:84:ec:16:44:be:1b:c4:b4:fe:64:95:75:
c4:cc:e7:b0:2e:f8:4b:30:d4:29:1b:49:01:c1:d2:
21:d8:47:30:9a:56:4a:71:34:88:4c:99:9d:ba:51:
2f:a1:95:eb:fc:31:d7:9f:25
Exponent: 65537 (0x10001)
Attributes:
a0:00
Signature Algorithm: sha1WithRSAEncryption
eb:50:0f:22:66:7c:fe:b8:6a:74:2d:46:e1:19:3d:98:e2:ff:
b1:b6:fb:2d:cb:6e:a5:8b:40:87:23:22:96:5b:7b:15:89:bc:
e4:65:ca:0f:a2:11:b2:06:9e:8d:c9:72:26:bb:94:a2:e2:87:
6e:a5:af:4e:16:ff:b0:c7:9f:5f:49:e8:a6:ff:09:e5:eb:8c:
31:e1:28:62:ce:23:bb:38:2e:e1:3e:d9:81:52:7a:6c:c1:56:
be:2d:fe:0d:b8:c3:d6:41:e2:f2:a3:37:d5:fd:8b:98:5c:e9:
ce:ae:43:8e:6b:36:54:3c:50:ae:67:00:1c:90:fd:35:83:3b:
1c:86

ÐèҪעÒ⣬Óû§×ÔÐÐÉú³É˽ԿÇé¿öÏ£¬Ë½Ô¿ÎļþÒ»µ©¶ªÊ§£¬CA·½ÓÉÓÚ²»³ÖÓÐ˽ԿÐÅÏ¢£¬ÎÞ·¨½øÐлָ´£¬Òâζ×Åͨ¹ý¸ÃÖ¤ÊéÖй«Ô¿¼ÓÃܵÄÄÚÈݽ«ÎÞ·¨±»½âÃÜ¡£

5.3¡¢Ö¤ÊéµÄ³·Ïú

Ö¤Ê鳬³öÓÐЧÆÚºó»á×÷·Ï£¬Óû§Ò²¿ÉÒÔÖ÷¶¯ÏòCAÉêÇë³·Ïúij֤ÊéÎļþ¡£

ÓÉÓÚCAÎÞ·¨Ç¿ÖÆÊÕ»ØÒѾ­°ä·¢³öÈ¥µÄÊý×ÖÖ¤Ê飬Òò´ËΪÁËʵÏÖÖ¤ÊéµÄ×÷·Ï£¬ÍùÍù»¹ÐèҪά»¤Ò»¸ö³·ÏúÖ¤ÊéÁÐ±í£¨Certificate Revocation List£¬CRL£©£¬ÓÃÓڼǼÒѾ­³·ÏúµÄÖ¤ÊéÐòºÅ¡£

Òò´Ë£¬Í¨³£Çé¿öÏ£¬µ±µÚÈý·½¶Ôij¸öÖ¤Êé½øÐÐÑé֤ʱ£¬ÐèÒªÊ×Ïȼì²é¸ÃÖ¤ÊéÊÇ·ñÔÚ³·ÏúÁбíÖС£Èç¹û´æÔÚ£¬Ôò¸ÃÖ¤ÊéÎÞ·¨Í¨¹ýÑéÖ¤¡£Èç¹û²»ÔÚ£¬Ôò¼ÌÐø½øÐкóÐøµÄÖ¤ÊéÑéÖ¤¹ý³Ì¡£

Áù¡¢MerkleÊ÷½á¹¹

Merkle£¨Ä¬¿Ë¶û£©Ê÷£¬ÓֽйþÏ£Ê÷£¬ÊÇÒ»ÖÖµäÐ͵Ķþ²æÊ÷½á¹¹£¬ÓÉÒ»¸ö¸ù½Úµã¡¢Ò»×éÖмä½ÚµãºÍÒ»×éÒ¶½Úµã×é³É¡£ÔÚÇø¿éÁ´ÏµÍ³³öÏÖ֮ǰ£¬¹ã·ºÓÃÓÚÎļþϵͳºÍP2PϵͳÖУ¬Èçͼ5-3Ëùʾ¡£

ͼ5-3¡¡MerkleÊ÷ʾÀý

ÆäÖ÷ÒªÌØµãΪ£º

×îÏÂÃæµÄÒ¶½Úµã°üº¬´æ´¢Êý¾Ý»òÆä¹þÏ£Öµ£»

·ÇÒ¶×ӽڵ㣨°üÀ¨Öмä½ÚµãºÍ¸ù½Úµã£©¶¼ÊÇËüµÄÁ½¸öº¢×Ó½ÚµãÄÚÈݵĹþÏ£Öµ¡£

½øÒ»²½µØ£¬Ä¬¿Ë¶ûÊ÷¿ÉÒÔÍÆ¹ãµ½¶à²æÊ÷µÄÇéÐΣ¬´Ëʱ·ÇÒ¶×Ó½ÚµãµÄÄÚÈÝΪËüËùÓеĺ¢×Ó½ÚµãÄÚÈݵĹþÏ£Öµ¡£

Ĭ¿Ë¶ûÊ÷Öð²ã¼Ç¼¹þÏ£ÖµµÄÌØµã£¬ÈÃËü¾ßÓÐÁËһЩ¶ÀÌØµÄÐÔÖÊ¡£ÀýÈ磬µ×²ãÊý¾ÝµÄÈκα䶯£¬¶¼»á´«µÝµ½Æä¸¸½Úµã£¬Ò»²ã²ãÑØ×Å·¾¶Ò»Ö±µ½Ê÷¸ù¡£ÕâÒâζÊ÷¸ùµÄֵʵ¼ÊÉÏ´ú±íÁ˶ԵײãËùÓÐÊý¾ÝµÄ¡°Êý×ÖÕªÒª¡±¡£

Ŀǰ£¬Ä¬¿Ë¶ûÊ÷µÄµäÐÍÓ¦Óó¡¾°Óкܶ࣬ÏÂÃæ·Ö±ð½éÉÜ¡£

6.1¡¢¿ìËٱȽϴóÁ¿Êý¾Ý

¶Ôÿ×éÊý¾ÝÅÅÐòºó¹¹½¨Ä¬¿Ë¶ûÊ÷½á¹¹¡£µ±Á½¸öĬ¿Ë¶ûÊ÷¸ùÏàͬʱ£¬ÔòÒâζ×ÅÁ½×éÊý¾Ý±ØÈ»Ïàͬ¡£·ñÔò£¬±ØÈ»´æÔÚ²»Í¬¡£

ÓÉÓÚHash¼ÆËãµÄ¹ý³Ì¿ÉÒÔÊ®·Ö¿ìËÙ£¬Ô¤´¦Àí¿ÉÒÔÔÚ¶Ìʱ¼äÄÚÍê³É¡£ÀûÓÃĬ¿Ë¶ûÊ÷½á¹¹ÄÜ´øÀ´¾Þ´óµÄ±È½ÏÐÔÄÜÓÅÊÆ¡£

6.2¡¢¿ìËÙ¶¨Î»ÐÞ¸Ä

ÀýÈçͼ5-3ÖУ¬Èç¹ûD1ÖÐÊý¾Ý±»Ð޸쬻áÓ°Ïìµ½N1¡¢N4ºÍRoot¡£

Òò´Ë£¬Ò»µ©·¢ÏÖij¸ö½ÚµãÈçRootµÄÊýÖµ·¢Éú±ä»¯£¬ÑØ×ÅRoot¡úN4¡úN1£¬×î¶àͨ¹ýO£¨logn£©Ê±¼ä¼´¿É¿ìËÙ¶¨Î»µ½Êµ¼Ê·¢Éú¸Ä±äµÄÊý¾Ý¿éD1¡£

6.3¡¢Áã֪ʶ֤Ã÷

ÈÔÒÔͼ5-3ΪÀý£¬ÈçºÎÏòËûÈËÖ¤Ã÷ÓµÓеÄij×éÊý¾Ý£¨D0¡­¡­D3£©ÖаüÀ¨¸ø¶¨Ä³¸öÄÚÈÝD0¶ø²»±©Â¶ÆäËûÈκÎÄÚÈÝ¡£

ºÜ¼òµ¥£¬¹¹ÔìÈçͼËùʾµÄÒ»¸öĬ¿Ë¶ûÊ÷£¬¹«²¼N1¡¢N5¡¢Root¡£D0ÓµÓÐÕßͨ¹ýÑéÖ¤Éú³ÉµÄRootÊÇ·ñ¸úÌṩµÄÖµÒ»Ö£¬¼´¿ÉºÜÈÝÒ×¼ì²âD0´æÔÚ¡£Õû¸ö¹ý³ÌÖÐÑéÖ¤ÕßÎÞ·¨»ñÖªÆäËûÄÚÈÝ¡£

Æß¡¢²¼Â¡¹ýÂËÆ÷

²¼Â¡¹ýÂËÆ÷£¨Bloom Filter£©ÓÚ1970ÄêÓÉBurton Howard BloomÔÚÂÛÎÄ¡¶Space/Time Trade-offs in Hash Coding with Allowable Errors¡·ÖÐÌá³ö¡£²¼Â¡¹ýÂËÆ÷ÊÇÒ»ÖÖ»ùÓÚHashµÄ¸ßЧ²éÕҽṹ£¬Äܹ»¿ìËÙ£¨³£Êýʱ¼äÄÚ£©»Ø´ð¡°Ä³¸öÔªËØÊÇ·ñÔÚÒ»¸ö¼¯ºÏÄÚ¡±µÄÎÊÌâ¡£

²¼Â¡¹ýÂËÆ÷ÒòΪÆä¸ßЧÐÔ´óÁ¿Ó¦ÓÃÓÚÍøÂçºÍ°²È«ÁìÓò£¬ÀýÈçÐÅÏ¢¼ìË÷£¨BigTableºÍHBase£©¡¢À¬»øÓʼþ¹æÔò¡¢×¢²á¹ÜÀíµÈ¡£

7.1¡¢»ùÓÚHashµÄ¿ìËÙ²éÕÒ

ÔÚ²¼Â¡¹ýÂËÆ÷֮ǰ£¬ÏÈÀ´¿´»ùÓÚHashµÄ¿ìËÙ²éÕÒËã·¨¡£ÔÚÇ°ÃæµÄ½²½âÖÐÎÒÃÇÌáµ½£¬Hash¿ÉÒÔ½«ÈÎÒâÄÚÈÝÓ³Éäµ½Ò»¸ö¹Ì¶¨³¤¶ÈµÄ×Ö·û´®£¬¶øÇÒ²»Í¬ÄÚÈÝÓ³Éäµ½Ïàͬ´®µÄ¸ÅÂʺܵ͡£Òò´Ë£¬Õâ¾Í¹¹³ÉÁËÒ»¸öºÜºÃµÄ¡°ÄÚÈÝ¡úË÷Òý¡±µÄÉú³É¹ØÏµ¡£

ÊÔÏ룬Èç¹û¸ø¶¨Ò»¸öÄÚÈݺʹ洢Êý×飬ͨ¹ý¹¹ÔìHashº¯Êý£¬ÈÃÓ³ÉäºóµÄHashÖµ×ܲ»³¬¹ýÊý×éµÄ´óС£¬Ôò¿ÉÒÔʵÏÖ¿ìËٵĻùÓÚÄÚÈݵIJéÕÒ¡£ÀýÈ磬ÄÚÈÝ¡°hello world¡±µÄHashÖµÈç¹ûÊÇ¡°100¡±£¬Ôò´æ·Åµ½Êý×éµÄµÚ100¸öµ¥ÔªÉÏÈ¥¡£Èç¹ûÐèÒª¿ìËÙ²éÕÒÈÎÒâÄÚÈÝ£¬Èç¡°hello world¡±×Ö·û´®ÊÇ·ñÔڴ洢ϵͳÖУ¬Ö»ÐèÒª½«ÆäÔÚ³£Êýʱ¼äÄÚ¼ÆËãHashÖµ£¬²¢ÓÃHashÖµ²é¿´ÏµÍ³ÖжÔÓ¦ÔªËØ¼´¿É¡£¸Ãϵͳ¡°ÍêÃÀµØ¡±ÊµÏÖÁ˳£Êýʱ¼äÄڵIJéÕÒ¡£

È»¶ø£¬ÁîÈËÒź¶µÄÊÇ£¬µ±Ó³ÉäºóµÄÖµÏÞÖÆÔÚÒ»¶¨·¶Î§£¨Èç×ÜÊý×éµÄ´óС£©ÄÚʱ£¬»á·¢ÏÖHash³åÍ»µÄ¸ÅÂÊ»á±ä¸ß£¬¶øÇÒ·¶Î§Ô½Ð¡£¬³åÍ»¸ÅÂÊÔ½´ó¡£ºÜ¶àʱºò£¬´æ´¢ÏµÍ³µÄ´óСÓÖ²»ÄÜÎÞÏÞÀ©Õ¹£¬Õâ¾ÍÔì³ÉË㷨ЧÂʵÄϽµ¡£ÎªÁËÌá¸ß¿Õ¼äÀûÓÃÂÊ£¬ºóÀ´ÈËÃÇ»ùÓÚHashËã·¨µÄ˼ÏëÉè¼Æ³öÁ˲¼Â¡¹ýÂËÆ÷½á¹¹¡£

7.2¡¢¸ü¸ßЧµÄ²¼Â¡¹ýÂËÆ÷

²¼Â¡¹ýÂËÆ÷²ÉÓÃÁ˶à¸öHashº¯ÊýÀ´Ìá¸ß¿Õ¼äÀûÓÃÂÊ¡£¶Ôͬһ¸ö¸ø¶¨ÊäÈëÀ´Ëµ£¬¶à¸öHashº¯Êý¼ÆËã³ö¶à¸öµØÖ·£¬·Ö±ðÔÚλ´®µÄÕâЩµØÖ·Éϱê¼ÇΪ1¡£½øÐвéÕÒʱ£¬½øÐÐͬÑùµÄ¼ÆËã¹ý³Ì£¬²¢²é¿´¶ÔÓ¦ÔªËØ£¬Èç¹û¶¼Îª1£¬Ôò˵Ã÷½Ï´ó¸ÅÂÊÊÇ´æÔÚ¸ÃÊäÈë¡£Èçͼ5-4Ëùʾ¡£

ͼ5-4¡¡²¼Â¡¹ýÂËÆ÷

²¼Â¡¹ýÂËÆ÷Ïà¶Ôµ¥¸öHashËã·¨²éÕÒ£¬´ó´óÌá¸ßÁ˿ռäÀûÓÃÂÊ£¬¿ÉÒÔʹÓýÏÉٵĿռäÀ´±íʾ½Ï´ó¼¯ºÏµÄ´æÔÚ¹ØÏµ¡£

ʵ¼ÊÉÏ£¬ÎÞÂÛÊÇHashËã·¨£¬»¹ÊDz¼Â¡¹ýÂËÆ÷£¬»ù±¾Ë¼ÏëÊÇÒ»Öµģ¬¶¼ÊÇ»ùÓÚÄÚÈݵıàÖ·¡£Hashº¯Êý´æÔÚ³åÍ»£¬²¼Â¡¹ýÂËÆ÷Ò²´æÔÚ³åÍ»¡£Õâ¾ÍÔì³ÉÁËÁ½ÖÖ·½·¨¶¼´æÔÚ×ÅÎ󱨣¨false positive£©µÄÇé¿ö£¬µ«¾ø¶Ô²»»á©±¨£¨false negative£©¡£

²¼Â¡¹ýÂËÆ÷ÔÚÓ¦ÓÃÖÐÎó±¨ÂÊÍùÍùºÜµÍ£¬ÀýÈ磬ÔÚʹÓÃ7¸ö²»Í¬Hashº¯ÊýµÄÇé¿öÏ£¬¼Ç¼100Íò¸öÊý¾Ý£¬²ÉÓÃ2 MB´óСµÄλ´®£¬ÕûÌåµÄÎóÅÐÂʽ«µÍÓÚ1%¡£¶ø´«Í³µÄHash²éÕÒËã·¨µÄÎó±¨Âʽ«½Ó½ü10%¡£

°Ë¡¢Í¬Ì¬¼ÓÃÜ

8.1¡¢¶¨Òå

̬ͬ¼ÓÃÜ£¨homomorphic encryption£©ÊÇÒ»ÖÖÌØÊâµÄ¼ÓÃÜ·½·¨£¬ÔÊÐí¶ÔÃÜÎĽøÐд¦ÀíµÃµ½ÈÔÈ»ÊǼÓÃܵĽá¹û¡£¼´¶ÔÃÜÎÄÖ±½Ó½øÐд¦Àí£¬¸ú¶ÔÃ÷ÎĽøÐд¦ÀíºóÔÙ¶Ô´¦Àí½á¹û¼ÓÃÜ£¬µÃµ½µÄ½á¹ûÏàͬ¡£´Ó³éÏó´úÊýµÄ½Ç¶È½²£¬±£³ÖÁË̬ͬÐÔ¡£

̬ͬ¼ÓÃÜ¿ÉÒÔ±£Ö¤ÊµÏÖ´¦ÀíÕßÎÞ·¨·ÃÎʵ½Êý¾Ý×ÔÉíµÄÐÅÏ¢¡£

Èç¹û¶¨ÒåÒ»¸öÔËËã·û¦¤£¬¶Ô¼ÓÃÜËã·¨EºÍ½âÃÜËã·¨D£¬Âú×㣺

E£¨X¦¤Y£©=E£¨X£©¦¤E£¨Y£©

ÔòÒâζ×ŶÔÓÚ¸ÃÔËËãÂú×ã̬ͬÐÔ¡£

̬ͬÐÔÀ´×Ô´úÊýÁìÓò£¬Ò»°ã°üÀ¨ËÄÖÖÀàÐÍ£º¼Ó·¨Í¬Ì¬¡¢³Ë·¨Í¬Ì¬¡¢¼õ·¨Í¬Ì¬ºÍ³ý·¨Í¬Ì¬¡£Í¬Ê±Âú×ã¼Ó·¨Í¬Ì¬ºÍ³Ë·¨Í¬Ì¬£¬ÔòÒâζ×ÅÊÇ´úÊý̬ͬ£¬³ÆÎªÈ«Í¬Ì¬£¨full homomorphic£©¡£Í¬Ê±Âú×ãËÄÖÖ̬ͬÐÔ£¬Ôò³ÆÎªËãÊý̬ͬ¡£

¶ÔÓÚ¼ÆËã»ú²Ù×÷À´½²£¬ÊµÏÖÁËȫ̬ͬÒâζ×ŶÔÓÚËùÓд¦Àí¶¼¿ÉÒÔʵÏÖ̬ͬÐÔ¡£Ö»ÄÜʵÏÖ²¿·ÖÌØ¶¨²Ù×÷µÄ̬ͬÐÔ£¬³ÆÎªÌض¨Í¬Ì¬£¨somewhat homomorphic£©¡£

8.2¡¢ÎÊÌâÓëÌôÕ½

̬ͬ¼ÓÃܵÄÎÊÌâ×îÔçÊÇÓÉRon Rivest¡¢Leonard AdlemanºÍMichael L.DertouzosÔÚ1978ÄêÌá³ö£¬Í¬ÄêÌá³öÁËRSA¼ÓÃÜËã·¨¡£µ«µÚÒ»¸ö¡°È«Í¬Ì¬¡±µÄËã·¨Ö±µ½2009Äê²Å±»¿ËÀ׸ñ¡¤½ðÌØÀCraig Gentry£©ÔÚÂÛÎÄ¡¶Fully Homomorphic Encryption Using Ideal Lattices¡·ÖÐÌá³ö²¢½øÐÐÊýѧ֤Ã÷¡£

½öÂú×ã¼Ó·¨Í¬Ì¬µÄËã·¨°üÀ¨PaillierºÍBenalohËã·¨£»½öÂú×ã³Ë·¨Í¬Ì¬µÄËã·¨°üÀ¨RSAºÍElGamalËã·¨¡£

̬ͬ¼ÓÃÜÔÚÔÆ¼ÆËãºÍ´óÊý¾ÝµÄʱ´úÒâÒåÊ®·ÖÖØ´ó¡£Ä¿Ç°£¬ËäÈ»ÔÆ¼ÆËã´øÀ´Á˰üÀ¨µÍ³É±¾¡¢¸ßÐÔÄܺͱã½ÝÐÔµÈÓÅÊÆ£¬µ«´Ó°²È«½Ç¶È½²£¬Óû§»¹²»¸Ò½«Ãô¸ÐÐÅÏ¢Ö±½Ó·Åµ½µÚÈý·½ÔÆÉϽøÐд¦Àí¡£Èç¹ûÓÐÁ˱ȽÏʵÓõÄ̬ͬ¼ÓÃܼ¼Êõ£¬Ôò´ó¼Ò¾Í¿ÉÒÔ·ÅÐĵØÊ¹Óø÷ÖÖÔÆ·þÎñÁË£¬Í¬Ê±¸÷ÖÖÊý¾Ý·ÖÎö¹ý³ÌÒ²²»»áй¶Óû§Òþ˽¡£¼ÓÃܺóµÄÊý¾ÝÔÚµÚÈý·½·þÎñ´¦ÀíºóµÃµ½¼ÓÃܺóµÄ½á¹û£¬Õâ¸ö½á¹ûÖ»ÓÐÓû§×ÔÉí¿ÉÒÔ½øÐнâÃÜ£¬Õû¸ö¹ý³ÌµÚÈý·½Æ½Ì¨ÎÞ·¨»ñÖªÈκÎÓÐЧµÄÊý¾ÝÐÅÏ¢¡£

ÁíÒ»·½Ã棬¶ÔÓÚÇø¿éÁ´¼¼Êõ£¬Í¬Ì¬¼ÓÃÜÒ²ÊǺܺõĻ¥²¹¡£Ê¹ÓÃ̬ͬ¼ÓÃܼ¼Êõ£¬ÔËÐÐÔÚÇø¿éÁ´ÉϵÄÖÇÄܺÏÔ¼¿ÉÒÔ´¦ÀíÃÜÎÄ£¬¶øÎÞ·¨»ñÖªÕæÊµÊý¾Ý£¬¼«´óµØÌá¸ßÁËÒþ˽°²È«ÐÔ¡£

Ŀǰȫ̬ͬµÄ¼ÓÃÜ·½°¸Ö÷Òª°üÀ¨ÈçÏÂÈýÖÖÀàÐÍ£º

»ùÓÚÀíÏë¸ñ£¨ideal lattice£©µÄ·½°¸£ºGentryºÍHaleviÔÚ2011ÄêÌá³öµÄ»ùÓÚÀíÏë¸ñµÄ·½°¸¿ÉÒÔʵÏÖ72 bitµÄ°²È«Ç¿¶È£¬¶ÔÓ¦µÄ¹«Ô¿´óСԼΪ2.3 GB£¬Í¬Ê±Ë¢ÐÂÃÜÎĵĴ¦Àíʱ¼äÐèÒª¼¸Ê®·ÖÖÓ£»

»ùÓÚÕûÊýÉϽüËÆGCDÎÊÌâµÄ·½°¸£ºDijkµÈÈËÔÚ2010ÄêÌá³öµÄ·½°¸£¨¼°ºóÐø·½°¸£©²ÉÓÃÁ˸ü¼ò»¯µÄ¸ÅÄîÄ£ÐÍ£¬¿ÉÒÔ½µµÍ¹«Ô¿´óСÖÁ¼¸Ê®MBÁ¿¼¶£»

»ùÓÚ´øÈŶ¯Ñ§Ï°£¨Learning With Errors£¬LWE£©ÎÊÌâµÄ·½°¸£ºBrakerskiºÍVaikuntanathanµÈÔÚ2011Äê×óÓÒÌá³öÁËÏà¹Ø·½°¸£»Lopez-Alt AµÈÔÚ2012ÄêÉè¼Æ³ö¶àÃÜԿȫ̬ͬ¼ÓÃÜ·½°¸£¬½Ó½üʵʱ¶à·½°²È«¼ÆËãµÄÐèÇó¡£

Ŀǰ£¬ÒÑÖªµÄ̬ͬ¼ÓÃܼ¼ÊõÍùÍùÐèÒª½Ï¸ßµÄ¼ÆËãʱ¼ä»ò´æ´¢³É±¾£¬Ïà±È´«Í³¼ÓÃÜËã·¨µÄÐÔÄܺÍÇ¿¶È»¹Óвî¾à£¬µ«¸ÃÁìÓò±»¹Ø×¢¶ÈÒ»Ö±ºÜ¸ß£¬±ÊÕßÏàÐÅ£¬ÔÚ²»Ô¶µÄ½«À´»á³öÏÖ½Ó½üʵÓõķ½°¸¡£

8.3¡¢º¯Êý¼ÓÃÜ

Óë̬ͬ¼ÓÃÜÏà¹ØµÄÒ»¸öÎÊÌâÊǺ¯Êý¼ÓÃÜ¡£

̬ͬ¼ÓÃܱ£»¤µÄÊÇÊý¾Ý±¾Éí£¬¶øº¯Êý¼ÓÃܱ£»¤µÄÊÇ´¦Àíº¯Êý±¾Éí£¬¼´ÈõÚÈý·½¿´²»µ½´¦Àí¹ý³ÌµÄǰÌáÏ£¬¶ÔÊý¾Ý½øÐд¦Àí¡£

¸ÃÎÊÌâÒѱ»Ö¤Ã÷²»´æÔÚ¶Ô¶à¸öͨÓú¯ÊýµÄÈÎÒâ¶àÃÜÔ¿µÄ·½°¸£¬Ä¿Ç°½öÄÜ×öµ½¶Ôij¸öÌØ¶¨º¯ÊýµÄÒ»¸öÃÜÔ¿µÄ·½°¸¡£

¾Å¡¢ÆäËûÎÊÌâ

ÃÜÂëѧÁìÓòÉæ¼°µÄÎÊÌ⻹ÓÐÐí¶à£¬ÕâÀïÁгöһЩ»¹ÔÚ·¢Õ¹ºÍ̽ÌÖÖеÄÏà¹Ø¼¼Êõ¡£

9.1¡¢Áã֪ʶ֤Ã÷

Áã֪ʶ֤Ã÷£¨zero knowledge proof£©ÊÇÕâÑùµÄÒ»¸ö¹ý³Ì£¬Ö¤Ã÷ÕßÔÚ²»ÏòÑéÖ¤ÕßÌṩÈκζîÍâÐÅÏ¢µÄǰÌáÏ£¬Ê¹ÑéÖ¤ÕßÏàÐÅij¸öÂÛ¶ÏÊÇÕýÈ·µÄ¡£

ÀýÈ磬AliceÏòBobÖ¤Ã÷×Ô¼ºÖªµÀij¸öÊý×Ö£¬ÔÚÖ¤Ã÷¹ý³ÌÖÐBob¿ÉÒÔ°´ÕÕij¸ö˳ÐòÌá³öÎÊÌ⣨±ÈÈçÊý×Ö¼ÓÉÏÄ³Ð©Ëæ»úÊýºóµÄ±ä»»£©ÓÉAlice»Ø´ð£¬²¢Í¨¹ý»Ø´ðÈ·ÐÅAlice½Ï´ó¸ÅÂÊȷʵ֪µÀijÊý×Ö¡£Ö¤Ã÷¹ý³ÌÖУ¬Bob³ýÁËÖªµÀAliceȷʵ֪µÀ¸ÃÊý×ÖÍ⣬×Ô¼ºÎÞ·¨»ñÖª»òÍÆÀí³öÈκζîÍâÐÅÏ¢£¨°üÀ¨¸ÃÊý×Ö±¾Éí£©£¬Ò²ÎÞ·¨ÓÃAliceµÄÖ¤Ã÷È¥Ïò±ðÈËÖ¤Ã÷£¨AliceÈç¹ûÌáǰ²Â²â³öBobÎÊÌâµÄ˳Ðò£¬´æÔÚ×÷¼ÙµÄ¿ÉÄÜÐÔ£©¡£

Áã֪ʶ֤Ã÷µÄÑо¿Ê¼ÓÚ1985ÄêShafi GoldwasserµÈÈ˵ÄÂÛÎÄ¡¶The Knowledge Complexity of Interactive Proof-Systems¡·£¬Ä¿Ç°Ò»°ãÈÏΪÖÁÉÙÒªÂú×ãÈý¸öÌõ¼þ£º

ÍêÕûÐÔ£¨Completeness£©£ºÕæÊµµÄÖ¤Ã÷¿ÉÒÔÈÃÑéÖ¤Õ߳ɹ¦ÑéÖ¤£»

¿É¿¿ÐÔ£¨Soundness£©£ºÐé¼ÙµÄÖ¤Ã÷ÎÞ·¨ÈÃÑéÖ¤Õß±£Ö¤Í¨¹ýÑéÖ¤£¬µ«ÔÊÐí´æÔÚС¸ÅÂÊÀýÍ⣻

Áã֪ʶ£¨Zero-Knowledge£©£ºÈç¹ûµÃµ½Ö¤Ã÷£¬ÎÞ·¨´ÓÖ¤Ã÷¹ý³ÌÖлñÖª³ýÁËËùÖ¤Ã÷ÐÅÏ¢Ö®ÍâµÄÈκÎÐÅÏ¢¡£

9.2¡¢Á¿×ÓÃÜÂëѧ

Á¿×ÓÃÜÂëѧ£¨quantum cryptography£©Ëæ×ÅÁ¿×Ó¼ÆËãºÍÁ¿×ÓͨÐŵÄÑо¿¶øÊܵ½Ô½À´Ô½¶àµÄ¹Ø×¢£¬½«»á¶ÔÒÑÓеÄÃÜÂëѧ°²È«»úÖÆ²úÉú½Ï´óµÄÓ°Ïì¡£

Á¿×Ó¼ÆËãµÄ¸ÅÄî×îÔçÊÇÎïÀíѧ¼Ò·ÑÂüÓÚ1981ÄêÌá³ö£¬»ù±¾Ô­ÀíÊÇÀûÓÃÁ¿×Ó±ÈÌØ¿ÉÒÔͬʱ´¦ÓÚ¶à¸öÏà¸Éµþ¼Ó̬£¬ÀíÂÛÉÏ¿ÉÒÔͬʱÓÃÉÙÁ¿Á¿×Ó±ÈÌØÀ´±í´ï´óÁ¿µÄÐÅÏ¢£¬²¢Í¬Ê±½øÐд¦Àí£¬´ó´óÌá¸ß¼ÆËãËÙ¶È¡£Èç1994ÄêÌá³öµÄ»ùÓÚÁ¿×Ó¼ÆËãµÄShorËã·¨£¬ÀíÂÛÉÏ¿ÉÒÔʵÏÖÔ¶³¬¾­µä¼ÆËãËٶȵĴóÊýÒò×ӷֽ⡣ÕâÒâζ×Å´óÁ¿¼ÓÃÜËã·¨°üÀ¨RSA¡¢DES¡¢ÍÖÔ²ÇúÏßËã·¨µÈ¶¼½«ºÜÈÝÒ×±»ÆÆ½â¡£µ«Á¿×Ó¼ÆËãĿǰÀëʵ¼Ê¿ÉÓõÄͨÓüÆËã»ú»¹ÓÐÒ»¶¨¾àÀë¡£

Á¿×ÓͨÐÅÔòÌṩ¶ÔÃÜÔ¿½øÐа²È«·Ö·¢µÄ»úÖÆ£¬ÓÐÍûʵÏÖÎÞÌõ¼þ°²È«µÄ¡°Ò»´ÎÐÔÃÜÂ롱¡£Á¿×ÓͨÐÅ»ùÓÚÁ¿×Ó¾À²øÐ§Ó¦£¬Á½¸ö·¢Éú¾À²øµÄÁ¿×Ó¿ÉÒÔ½øÐÐÔ¶¾àÀëµÄʵʱ״̬ͬ²½¡£Ò»µ©ÐŵÀ±»ÇÔÌý£¬ÔòͨÐÅË«·½»á»ñÖª¸ÃÇé¿ö£¬¶ªÆú´Ë´Î´«ÊäµÄй¶ÐÅÏ¢¡£¸ÃÐÔÖÊÊ®·ÖÊʺϽøÐдóÁ¿µÄÃÜÔ¿·Ö·¢£¬Èç1984ÄêÌá³öµÄBB84ЭÒ飬½áºÏÁ¿×ÓͨµÀºÍ¹«¿ªÐŵÀ£¬¿ÉÒÔʵÏÖ°²È«µÄÃÜÔ¿·Ö·¢¡£

Ìáʾ£ºÒ»´ÎÐÔÃÜÂ룺×îÔçÓÉÏãÅ©Ìá³ö£¬ÊµÏÖÀíÂÛÉϾø¶Ô°²È«µÄ¶Ô³Æ¼ÓÃÜ¡£ÆäÌØµãΪÃÜÔ¿ÕæËæ»úÇÒֻʹÓÃÒ»´Î£»ÃÜÔ¿³¤¶È¸úÃ÷ÎÄÒ»Ö£¬¼ÓÃܹý³ÌΪÁ½Õß½øÐжþ½øÖÆÒì»ò²Ù×÷¡£

9.3¡¢Éç½»¹¤³Ìѧ

ÃÜÂëѧÓ밲ȫÎÊÌ⣬һֱÊÇѧÊõ½çºÍ¹¤Òµ½ç¶¼Ê®·Ö¹ØÐĵÄÖØÒª»°Ì⣬Ïà¹ØµÄ¼¼ÊõÒ²Ò»Ö±ÔÚ²»¶Ï·¢Õ¹ºÍÍêÉÆ¡£È»¶ø£¬¼´±ã´æÔÚÀíÂÛÉÏÍêÃÀµÄ¼¼Êõ£¬Ò²²»´æÔÚÍêÃÀµÄϵͳ¡£ÎÞÊýÀý×Ó֤ʵ£¬¿´ÆðÀ´Éè¼ÆÊ®·ÖÍêÉÆµÄϵͳ×îºó±»¹¥ÆÆ£¬²¢·ÇÊÇÒòΪÉè¼ÆÉϳöÏÖÁËÉî²ã´ÎµÄ©¶´£¬¶øÎÊÌâÍùÍù³öÔÚʺó¿´À´Ê®·ÖdzÏÔµÄijЩ·½Ãæ¡£

ÀýÈ磬ϵͳ¹ÜÀíÔ±½«µÇ¼ÃÜÂëÌùµ½µçÄÔǰ£»²ÆÎñÈËÔ±Ôڵ绰Àïй¶Óû§µÄ¸öÈËÃô¸ÐÐÅÏ¢£»¹«Ë¾Ö°Ô±ËæÒâÔËÐÐÀ´×Ô²»Ã÷ÓʼþµÄ¸½¼þ£»²»Ã÷ÈËÔ±½èÍÆÏú»òµ÷²éÎʾíµÄÃûÒå½øÈë°ì¹«³¡ËùÇÔÈ¡ÐÅÏ¢¡­¡­

ÖøÃû¼ÆËã»úºÚ¿ÍºÍ°²È«¹ËÎÊKevin David MitnickÔøÔÚ15Ëêʱ³É¹¦ÈëÇÖ±±ÃÀ¿ÕÖзÀÎñÖ¸»Óϵͳ£¬ÆäÖø×÷¡¶The Art of Deception¡·´óÁ¿½ÒʾÁËÈçºÎͨ¹ýÉç½»¹¤³ÌѧµÄÊÖ¶ÎÇáÒ×»ñÈ¡¸÷ÖÖ°²È«ÐÅÏ¢µÄ°¸Àý¡£

Ê®¡¢Ð¡½á

±¾ÕÂÖ÷Òª×ܽáÁËÃÜÂëѧÓ밲ȫÁìÓòÖеÄһЩºËÐÄÎÊÌâºÍ¾­µäËã·¨¡£

ͨ¹ýÔĶÁ±¾ÕÂÄÚÈÝ£¬ÏàÐŶÁÕßÒѾ­¶ÔÏÖ´úÃÜÂëѧµÄ·¢Õ¹×´¿öºÍ¹Ø¼ü¼¼ÊõÓÐÁ˳õ²½ÁË½â¡£ÕÆÎÕÕâЩ֪ʶ£¬¶ÔÓÚ°ïÖúÀí½âÇø¿éÁ´ÏµÍ³ÈçºÎʵÏÖÒþ˽±£»¤ºÍ°²È«·À»¤¶¼ºÜÓкô¦¡£

ÏÖ´úÃÜÂëѧ°²È«¼¼ÊõÔÚÉè¼ÆÉÏ´óÁ¿Ó¦ÓÃÁËÊ®·ÖרҵµÄÏÖ´úÊýѧ֪ʶ£¬Èç¹û¶ÁÕßÏ£Íû³ÉΪÕâ·½ÃæµÄר¼Ò£¬ÔòÐèÒª½øÒ»²½Ñ§Ï°²¢ÉîÈëÕÆÎÕ½üÏÖ´úµÄÊýѧ¿ÆÑ§£¬ÌرðÊÇÊýÂÛ¡¢³éÏó´úÊýµÈÏà¹ØÄÚÈÝ¡£¿ÉÒÔ˵£¬ÃÜÂëѧ°²È«Ñ§¿ÆÊÇûÓнݾ¶¿É×ߵġ£

ÁíÍ⣬´ÓÓ¦ÓõĽǶÈÀ´¿´£¬Ò»Ì×ÍêÕûµÄ°²È«ÏµÍ³³ýÁ˺ËÐÄËã·¨Í⣬»¹°üÀ¨Ð­Òé¡¢»úÖÆ¡¢ÏµÍ³¡¢ÈËÔ±µÈ¶à¸ö·½Ãæ¡£ÈκÎÒ»¸ö»·½Ú³öÏÖ©¶´¶¼½«´øÀ´¾Þ´óµÄ°²È«·çÏÕ¡£Òò´Ë£¬ÒªÊµÏָ߰²È«¿É¿¿µÄϵͳÊÇÊ®·ÖÀ§Äѵġ£

Çø¿éÁ´¼¼ÊõÖдóÁ¿ÀûÓÃÁËÏÖ´úÃÜÂëѧµÄÒÑÓгɹû£¬°üÀ¨¹þÏ£¡¢¼Ó½âÃÜ¡¢Ç©Ãû¡¢MerkleÊ÷Êý¾Ý½á¹¹µÈ¡£ÁíÒ»·½Ãæ£¬Çø¿éÁ´ÏµÍ³ºÍÖî¶àеij¡¾°Ò²¶ÔÃÜÂëѧºÍ°²È«¼¼ÊõÌá³öÁ˺ܶàеÄÐèÇ󣬷´¹ýÀ´Ò²½«´Ù½øÏà¹ØÑ§¿ÆµÄ½øÒ»²½·¢Õ¹¡£

   
2582 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

iOSÓ¦Óð²È«¿ª·¢£¬Äã²»ÖªµÀµÄÄÇЩÊÂÊõ
Web°²È«Ö®SQL×¢Èë¹¥»÷
ÒÆ¶¯APP°²È«ÔÚÉøÍ¸²âÊÔÖеÄÓ¦ÓÃ
´ÓGoogle±¸·Ý»¥ÁªÍø¿´¡°Êý¾Ý°²È«¡±
 
Ïà¹ØÎĵµ

web°²È«Éè¼ÆÓë·À»¤
»¥ÁªÍøº£Á¿ÄÚÈݰ²È«´¦Àí¼¼Êõ
ºÚ¿Í¹¥»÷Óë·À·¶¼¼Êõ
WEBºÚºÐ°²È«¼ì²â
 
Ïà¹Ø¿Î³Ì

WEBÍøÕ¾ÓëÓ¦Óð²È«Ô­ÀíÓëʵ¼ù
webÓ¦Óð²È«¼Ü¹¹Éè¼Æ
´´½¨°²È«µÄJ2EE WebÓ¦ÓôúÂë
ÐÅÏ¢°²È«ÎÊÌâÓë·À·¶