±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚ¼òÊ飬±¾ÎÄÖ÷Òª½²Á˱ÈÌØ±Ò±³ºóµÄÃÜÂëѧÔÀí£¬±¾ÖÊÉÏÀ´Ëµ£¬±ÈÌØ±ÒºÍÃÜÂëѧÊÇÈÚΪһÌåµÄ£¬±ÈÌØ±ÒÊÇ×Ô´ø°²È«ÊôÐÔµÄÊý×Ö»õ±Ò¡£ |
|
©–¡¢ÐòÑÔ
»õ±ÒÓÉÓÚÆäÌìÈ»ÊôÐÔ¾ö¶¨ÁËÆäÓ밲ȫ²»¿É·Ö¸îµÄÁªÏµ£¬´Ó×îÔçµÄ½ð¿â¡¢±£ÏÕ¹ñ¡¢ïÚ¾Öµ½ºóÀ´µÄATM»ú¡¢Ô˳®³µ£»´Ó´æÕÛµ½ÒøÐп¨£¬´Ó¿ÚÁµ½ÓŶܣ¬°²È«¼¼ÊõµÄ½ø²½Ò»²½²½Íƶ¯×ŽðÈÚ·À»¤ÁìÓòµÄ¸üС£
´«Í³µÄ»õ±ÒµÄ°²È«ÐèÇó£¬ÃÜÂëѧÊǰ²È«ÊֶΣ¬ÊÇ´Ó¡°¿ÉÓá±µ½¡°°²ÐÄÓá±µÄÉý¼¶¡£¶ø¶Ô±ÈÌØ±ÒÀ´Ëµ£¬ÃÜÂëѧ±¾Éí¾ÍÊDZÈÌØ±ÒÌåϵµÄÒ»²¿·Ö£¬Ã»ÓÐÃÜÂëѧ֧³ÅµÄ±ÈÌØ±ÒÌåϵ»áÍêÈ«±ÀËú£¬³¹µ×¡°²»¿ÉÓᱡ£±¾ÖÊÉÏÀ´Ëµ£¬±ÈÌØ±ÒºÍÃÜÂëѧÊÇÈÚΪһÌåµÄ£¬±ÈÌØ±ÒÊÇ×Ô´ø°²È«ÊôÐÔµÄÊý×Ö»õ±Ò¡£Òò´Ë£¬¶Ô±ÈÌØ±ÒÓû§À´Ëµ£¬Á˽â±ÈÌØ±Ò±³ºóµÄÃÜÂëѧÀíÂÛ£¬ÓÐÖúÓÚ¸üºÃµÄÀí½â±ÈÌØ±Ò£»Í¬Ê±£¬Í¨¹ýÃÜÂëѧÀíÂ۵ķÖÏí£¬Ò²¿ÉÒÔ˳±ã¸ÐÊÜÒ»ÏÂÈËÀàÖǻ۵Äΰ´ó¡£±Ï¾¹£¬ÔÚÎÒÑÛÀÃÜÂëѧÀíÂÛÊÇ´óÁ¿´Ï»ÛµÄÍ·ÄÔÉóÉ÷˼¿¼µÄ½á¹û£¬¾«Ö¶øÓÖÇÉÃîÖ®´¦±È±È½ÔÊÇ¡£
Ò»¡¢ÃÜÂëѧÀíÂÛ
±ÈÌØ±Ò±¾Éí²¢Ã»Óд´ÔìеÄÃÜÂëѧ³É¹û£¬µ«±ÈÌØ±ÒÀûÓÃÏÖÓÐÃÜÂëѧ³É¹û¹¹½¨ÁËÒ»¸öÁîÈ˾ªÆæµÄȫеÄÊý×Ö»õ±ÒÊÀ½ç£ºÈ¥ÖÐÐÄ»¯¡¢Çø¿éÁ´¡¢¿É±à³Ì»õ±ÒµÈ³É¹û¼´Ê¹Å׿ª±ÈÌØ±Ò±¾Éí¶øÑÔÒ²ÊÇÖµµÃÔÞÉ͵Ķ´¼û¡£
Ê×ÏÈ£¬ÏÖ´úÃÜÂëѧÀíÂ۵Ĺ²Ê¶×ñÑ¡°¿Â¿Ë»ô·òÔÔò¡±£º
¿Â¿Ë»ô·òÔÔòÓɰ¹ÅË¹ÌØ¡¤¿Â¿Ë»ô·òÔÚ19ÊÀ¼ÍÌá³ö£ºÃÜÂëϵͳӦ¸Ã¾ÍËã±»ËùÓÐÈËÖªµÀϵͳµÄÔË×÷²½Ö裬ÈÔÈ»Êǰ²È«µÄ¡£
Õâ¸öÊÇʲôÒâË¼ÄØ£¬ÄÃÔ¿³×ºÍËøµÄÀý×ÓÀ´Ëµ£¬ÑÐÖÆºÍÉú²úËø¾ß£¨°üÀ¨Ô¿³×£©µÄ¹¤ÒÕÊÇÍêÈ«¹«¿ªµÄ£¬Ëø¾ß±»¹¥ÆÆÖ»ÓÐÁ½ÖÖ¿ÉÄÜ£ºÒ»ÊÇÖ¤Ã÷¹¤ÒÕÓЩ¶´£¬²»ÐèÒªÄõ½Ô×°Ô¿³×Ò²ÄÜ´ò¿ª¡£¶þÊÇÇ¸÷ÖÖÔ¿³×¿ÉÄÜ£¬ÔڿɽÓÊܵÄʱ¼äÀïÄܹ»´Ó¸ÅÂÊÒâÒåÉÏÊÔ³öÀ´£¨±©Á¦ÆÆ½â£©¡£
Ëã·¨Êǹ«¿ªµÄ£¬Î¨Ò»ÐèÒª±£»¤µÄÊÇÃÜÔ¿£¬ÕâÊÇÎÒÃÇÏÂÎÄÌÖÂ۵Ļù´¡¡£
1.·Ç¶Ô³Æ¼ÓÃÜ
ÏÈ¿´¶Ô³Æ¼ÓÃܺܺÃÀí½âÒ²·ûºÏÖ±¾õ£º
¶Ô³Æ¼ÓÃÜ£º¶Ôͬһ·ÝÃô¸ÐÊý¾Ý£¬¼ÓÃܽâÃÜÃÜÔ¿ÊÇÏàͬµÄ¡£
·Ç¶Ô³Æ¼ÓÃÜÄØ£º
·Ç¶Ô³Æ¼ÓÃÜËã·¨ÐèÒªÁ½¸öÃÜÔ¿£º¹«¿ªÃÜÔ¿£¨publickey£©ºÍ˽ÓÐÃÜÔ¿£¨privatekey£©¡£¹«¿ªÃÜÔ¿Óë˽ÓÐÃÜÔ¿ÊÇÒ»¶Ô£¬Èç¹ûÓù«¿ªÃÜÔ¿¶ÔÊý¾Ý½øÐмÓÃÜ£¬Ö»ÓÐÓöÔÓ¦µÄ˽ÓÐÃÜÔ¿²ÅÄܽâÃÜ£»Èç¹ûÓÃ˽ÓÐÃÜÔ¿¶ÔÊý¾Ý½øÐмÓÃÜ£¬ÄÇôֻÓÐÓöÔÓ¦µÄ¹«¿ªÃÜÔ¿²ÅÄܽâÃÜ¡£ÒòΪ¼ÓÃܺͽâÃÜʹÓõÄÊÇÁ½¸ö²»Í¬µÄÃÜÔ¿£¬ËùÒÔÕâÖÖËã·¨½Ð×÷·Ç¶Ô³Æ¼ÓÃÜËã·¨¡£ ·Ç¶Ô³Æ¼ÓÃÜË㷨ʵÏÖ»úÃÜÐÅÏ¢½»»»µÄ»ù±¾¹ý³ÌÊÇ£º¼×·½Éú³ÉÒ»¶ÔÃÜÔ¿²¢½«ÆäÖеÄÒ»°Ñ×÷Ϊ¹«ÓÃÃÜÔ¿ÏòÆäËü·½¹«¿ª£»µÃµ½¸Ã¹«ÓÃÃÜÔ¿µÄÒÒ·½Ê¹ÓøÃÃÜÔ¿¶Ô»úÃÜÐÅÏ¢½øÐмÓÃܺóÔÙ·¢Ë͸ø¼×·½£»¼×·½ÔÙÓÃ×Ô¼º±£´æµÄÁíÒ»°ÑרÓÃÃÜÔ¿¶Ô¼ÓÃܺóµÄÐÅÏ¢½øÐнâÃÜ¡£
ÎÒÃÇÓÃÒ»·ùͼÀ´ËµÃ÷£º

ÔÚÉÏÎĵķǶԳƼÓÃܲ¿·Ö£¬ÃÜÔ¿A¾ÍÊǹ«¿ªÃÜÔ¿£¨¼ò³Æ¹«Ô¿£©£¬ÃÜÔ¿B¾ÍÊÇ˽ÓÐÃÜÔ¿£¨¼ò³ÆË½Ô¿£©¡£µÀÀí¶¼¶®£¬ÎÊÌâÓÐÒâ˼ÔÚʲôµØ·½ÄØ£¿·Ç¶Ô³Æ¼ÓÃÜ·½Ê½ÏÂÃÜÔ¿AºÍÃÜÔ¿BÊÇÔõôÕÒµ½µÄÒÔ¼°ÔõôʵÏֵģ¿ÎÒÃǾÙÀý˵Ã÷£º
¼ÙÉèÎÒÃÇÏÖÔÚÒѾÕÒµ½ÁË£¨¾ßÌåÔõôÕҵĺóÃæ»á½²£©¹«Ô¿£¨3233,17£©ºÍ˽Կ(3233, 2753)¡£
×¢Ò⣬¹«Ô¿ºÍ˽Կ²»Ò»¶¨Ö»ÓÐÒ»¸öÊý×Ö£¬ÊÇ¿ÉÒÔÓжà¸öµÄ£¬¾ßÌ弸¸öÊý×ÖÒÀÀµÓڷǶԳƼÓÃÜËã·¨¡£
¼ÙÉèÏÖÔÚÃ÷ÎÄ´ý¼ÓÃÜÐÅÏ¢ÊÇÊý×Ö65£¬ÎÒÃÇÊ×Ïȸø³ö¼ÓÃܹ«Ê½£º

½âÊÍһϣ¬c´ú±í¼ÓÃܺóÊý×Ö£¬£¨n£¬e£©¶ÔÓ¦ÎÒÃǵĹ«Ô¿¶Ô£¬m´ú±íÃ÷ÎÄ£¬¡ÔµÄÒâ˼ÊÇͬģÔËË㣬±ÈÈç60¡Ô4£¨mod 7£©,60¶Ô4ȡģºóµÈÓÚ4¡£ºÃÁËÎÒÃÇ¿ªÊ¼¼ÆËãÃÜÎÄ£º

ÃÜÎÄÊÇ2790£¬ÈçºÎ½âÃÜÄØ£¬½âÃܹ«Ê½£º

d¶ÔӦ˽ԿµÄ2753£¬ÆäÓà×ÖĸºÍ¼ÓÃܹý³ÌÏàͬ£¬ÓÚÊǽâÃÜÔËËãΪ£º

ÎÒÃǵõ½ÁËÔÀ´µÄÃ÷ÎÄÊý¾Ý65£¬Õâ¸öÀý×Ó¿ÉÒÔ¿´µ½¼ÓÃܺͽâÃÜÊý¾ÝÊDz»Í¬µÄ¡£
ÒÔÉÏÎÒÃǾÙÀýʹÓõÄËã·¨ÊÇ´óÃû¶¦¶¦µÄµØÇòÖ÷Á÷·Ç¶Ô³Æ¼ÓÃÜËã·¨RSA£¬ÓйØRSAµÄ½éÉܲο¼ÈîÒ»·åÀÏʦµÄÎÄÕ¡£Êµ¼ÊÉÏÎÒÉÏÃæÓõ½µÄÊý×ÖÒ²³ö×Ô¸ÃÎÄ£¬ÊµÔÚÊÇʱ¼äÓÐÏÞÎÞ·¨ÉîÈë½²½âRSAµÄϸ½Ú´ó¼Ò¿ÉÒÔ×ÔÐÐѧϰ¡£±ÈÌØ±ÒÌåϵʵ¼ÊʹÓõķǶԳÆËã·¨ÊÇÍÖÔ²ÇúÏß¼ÓÃÜ£¨ECC£©£¬¿ÉÒÔµ½ÕâÀïÏêϸÁ˽⡣
´ÓÉÏÃæµÄÀý×ÓÎÒÃÇÖªµÀÂú×ã·Ç¶Ô³Æ¼ÓÃܵÄÃÜÔ¿¶ÔÊÇ´æÔڵģ¬Í¬Ê±ÎÒÃÇÒ²×öÁ˼ӽâÃܳ¢ÊÔ¡£Êµ¼ÊÉÏ£¬·Ç¶Ô³Æ¼ÓÃÜËã·¨µÄºËÐÄÒÀÀµÓÚÌØ¶¨µÄÊýѧÄÑÌ⣬±ÈÈçÉÏÎĵÄRSAÒÀÀµÓÚ´óÊý·Ö½âÄÑÌ⣬Èç¹û¸ÃÄÑÌâ±»ÆÆ½âÁË£¬Ëã·¨±¾ÉíÒ²¾Í±»¹¥ÆÆÁË¡£ÁíÍ⣬ÎÒ¶ÁÑеÄʱºò»¹×öÁËRSA¾ØÕóÀ©Õ¹£¬½«ÆäËã·¨»ù´¡´ÓËØÊýÀ©Õ¹µ½¾ØÕó£¬ÓÐÐËȤµÄ¿ÉÒÔ¼ÌÐø½»Á÷¡£
·Ç¶Ô³ÆË㷨ͨ¹ý¹«Ë½â_·Ö±ð¼Ó½âÃÜ·½Ê½¸øÐÅÏ¢½»»»´øÀ´Á˾޴óµÄ±ä»¯£¬¾ßÌå±íÏÖÔÚ£º
1£©ÔÚ²»°²È«µÄ»·¾³Öд«µÝÃô¸ÐÐÅÏ¢³ÉΪ¿ÉÄÜ¡£´ÓÉÏÎÄ¿ÉÒÔÖªµÀ£¬¹«Ô¿ÊÇÍêÈ«¹«¿ªÈÎÒâ´«²¥µÄ£¬Í¨¹ý¹«Ô¿ÊÇÎÞ·¨£¨»ò¼«ÆäÀ§ÄÑ£©ÍÆËã³ö˽ԿµÄ£¬Ë½Ô¿ÊDz»¹«¿ª²»·¢ËͲ»´«²¥µÄ£¬½ö½öÏûÏ¢½ÓÊÕ·½ÖªµÀ¾Í¿ÉÒÔ£¬ÆäËûÈκÎÈ˶¼²»ÐèÒªÖªµÀ¡£
2£©¶à·½Í¨ÐÅËùÐèÃÜÔ¿ÊýÁ¿¼±¾ç¼õÉÙ£¬ÃÜԿά»¤¹¤×÷±äµÃÒì³£¼ò»¯¡£±ÈÈçN¸ö»¥²»ÐÅÈÎÇÒ»¥ÓÐͨÐÅÐèÇóµÄÈË£¬Èç¹ûʹÓöԳƼÓÃÜËã·¨£¬ÔòÐèÒªN£¡/2¸öÃÜÔ¿£¬Èç¹ûʹÓ÷ǶԳƼÓÃܽöÐèÒªN¸ö¼´¿É£¨Ã¿¸öÈËÖ»ÐèҪά»¤×Ô¼ºµÄ¹«Ë½â_¶Ô£¬ÎÞÂۺͶàÉÙÈËͨÐÅ£©¡£
3£©»ùÓڷǶԳƼÓÃÜ·¢Õ¹ÆðÀ´µÄÊý×ÖÇ©Ãû¼¼Êõ£¨¼ûÏÂÎÄÏêÊö£©´ÓÊýѧÒâÒåÉϽâ¾öÁË×ÔÖ¤Éí·ÝÎÊÌ⣬ʹµÃÐÅÏ¢½ÓÊÕÕß¿ÉÒÔÈ·ÈÏÏûÏ¢·¢ËÍ·½Éí·ÝÐÅÏ¢ÇÒ²»¿É¸ü¸Ä¡£
4£©ÃÜÂëѧÎÊÌâ¶ÔÊýѧÎÊÌâµÄÒÀÀµ¿ÕǰÌá¸ß¡£Ö®Ç°¿´ËÆÎÞÓõÄÉõÖÁ¹ÅÀϵÄÊýѧÄÑÌâ±ÈÈçÊýÂÛ¡¢ÀëÉ¢¶ÔÊýµÈÔÚ´Ë´ó·ÅÒì²Ê£¬ÆÄÓÐЩЦÀ´ÀÏʦÔÚ¡¶°Ñʱ¼äµ±×öÅóÓÑ¡·ÀïÃæ±í´ïµÄ"¼¼²»Ñ¹Éí"µÄÏÖʵӳÉä¡£
2.É¢ÁУ¨¹þÏ££©Ëã·¨
ÎÒÃÇʹÓø÷ÖÖÔÆÅÌ¡¢ÐéÄâ´æ´¢¿Õ¼äÓ¦ÓõÄʱºòÒ»¶¨¶¼ÓÐÀàËÆµÄÌå»á£¬ÉÏ´«Ò»¸öÃ÷Ã÷ºÜ´óµÄÎļþ£¬¿ÉÊÇËÙ¶ÈÈ´·Ç³£¿ì£¬¶øÓÐʱÉÏ´«Ò»¸öСµÃ¶àµÄÎļþÈ´ËÆºõ½ø¶ÈÌõÒª×ߺܾá£ÕâÖÖÏÖÏóµÄ¿ÉÄܵÄÒ»¸öÃØÃܾÍÊǽÓÏÂÀ´Òª½²µÄÉ¢ÁÐËã·¨£¨Ò²½ÐÊý¾ÝÕªÒª»òÕß¹þÏ£Ëã·¨£¬¹þÏ£ÊÇHASHµÄÒôÒ룩¡£
ʵ¼ÊÉÏ£¬ÔÆÅÌÀà²úÆ·¶ÔÏàͬÎļþÖ»»á±£ÁôÒ»·ÝÕæÊµµÄ´æ´¢£¬¶à¸öʹÓÃÏàͬÎļþµÄÓû§Ö»Ðè¡°Ë÷Òý¡±µ½¸Ã´æ´¢Î»Öü´¿É¡£ÅжÏÁ½¸öÎļþÊÇ·ñÏàͬÓõ½µÄ¾ÍÊÇÉ¢ÁÐËã·¨£º
É¢ÁÐËã·¨½«ÈÎÒⳤ¶ÈµÄ¶þ½øÖÆÖµÓ³ÉäΪ½Ï¶ÌµÄ¹Ì¶¨³¤¶ÈµÄ¶þ½øÖÆÖµ£¬Õâ¸öСµÄ¶þ½øÖÆÖµ³ÆÎª¹þÏ£Öµ¡£¹þÏ£ÖµÊÇÒ»¶ÎÊý¾ÝΨһÇÒ¼«Æä½ô´ÕµÄÊýÖµ±íʾÐÎʽ¡£Èç¹ûÉ¢ÁÐÒ»¶ÎÃ÷ÎĶøÇÒÄÄÅÂÖ»¸ü¸Ä¸Ã¶ÎÂäµÄÒ»¸ö×Öĸ£¬ËæºóµÄÉ¢ÁÐÖµ¶¼½«²úÉú²»Í¬µÄÖµ¡£ÒªÕÒµ½É¢ÁÐΪͬһ¸öÖµµÄÁ½¸ö²»Í¬µÄÊäÈ룬ÔÚ¼ÆËãÉÏÊDz»¿ÉÄܵģ¬ËùÒÔÊý¾ÝµÄÉ¢ÁÐÖµ¿ÉÒÔ¼ìÑéÊý¾ÝµÄÍêÕûÐÔ¡£Ò»°ãÓÃÓÚ¿ìËÙ²éÕҺͼÓÃÜËã·¨¡£
±¾ÖÊÉÏ£¬É¢ÁÐËã·¨µÄÄ¿µÄ²»ÊÇΪÁË¡°¼ÓÃÜ¡±¶øÊÇΪÁ˳éÈ¡¡°Êý¾ÝÌØÕ÷¡±£¬ÄãÒ²¿ÉÒ԰Ѹø¶¨Êý¾ÝµÄÉ¢ÁÐÖµÀí½âΪ¸ÃÊý¾ÝµÄ¡°Ö¸ÎÆÐÅÏ¢¡±£¬Ò»¸ö¿É¿¿µÄÉ¢ÁÐËã·¨FÐèÒªÂú×㣺
1. ¶ÔÓÚ¸ø¶¨µÄÊý¾ÝM£¬ºÜÈÝÒ×Ëã³ö¹þÏ£ÖµX=F£¨M£©£»
2. ¸ù¾ÝXÎÞ·¨Ëã³öM£»
3. ºÜÄÑÕÒµ½MºÍNÁîF£¨M£©=F£¨N£©¡£
ÎÒÀ´½âÊÍһϣº
¶ÔÓÚµÚÒ»µã£¬Í¨³£¹þÏ£ÖµµÄ³¤¶ÈÊǹ̶¨µÄ£¨ÎªÊ²Ã´¹Ì¶¨£¬Ò»¸öºÜÖØÒªµÄÔÒòÊDZãÓÚ¹¹ÔìͨÐŰü½á¹¹£¬É¢ÁеÄÓ¦Ó󡾰ͨ³£ÊDz»¿É¿¿µÄÍøÂç´«Êä¶ø·Ç±¾µØ´æ´¢£©£¬±ÈÈç±ÈÌØ±ÒʹÓõÄSHA256ÕªÒªËã·¨¶ÔÈÎÒⳤ¶ÈµÄÊäÈë¸ø³öµÄÊÇ256bitµÄÊä³ö¡£
¶ÔÓÚµÚ¶þµã£¬É¢ÁÐËã·¨ÊDz»¿ÉÄæµÄ£¬ÉõÖÁÊÇÒÔ¶ªÊ§²¿·ÖÔʼÐÅÏ¢×÷Ϊ´ú¼Û£¬Òò´ËÎÒ¸öÈËÈÏΪɢÁмÓÃÜËã·¨µÄÌá·¨ÊÇÓÐÎÊÌâµÄ£¬¼ÓÃÜÒâζ×Å¿ÉÒÔ½âÃÜ£¬µ¥´¿µÄÈÅÂÒ³ÆÎª¼ÓÃܲ¢²»ºÏÊÊ¡£Ò²ÐíËùνµÄÉ¢ÁмÓÃÜÊǺÍÉ¢ÁÐУÑé¶ÔÓ¦µÄ£¬Ò²¾Í˵Á½ÖÖÓ¦Óõij¡¾°²»Í¬£¬É¢ÁмÓÃܵĺËÐÄÊÇÈÅÂÒ£¬É¢ÁÐУÑéµÄºËÐÄÊÇУÑé¡£
¶ÔÓÚµÚÈýµã£¬ÕâÊÇÉ¢Áк¯ÊýÕæÕýµÄÌôÕ½¡£¼ÙÉèÕÒµ½ÁËÒ»¶Ô£¨M,N£©Ê¹µÃµÈʽ³ÉÁ¢¾Í³ÉΪ¸ÃËã·¨ÕÒµ½ÁËÒ»´ÎÅöײ£¬¶ÔÉ¢ÁÐËã·¨½¡×³ÐԵķÖÎö¾ÍÊÇ·ÖÎöÆä¿¹Ç¿ÅöײÄÜÁ¦¡£¿ÉÒÔÀí½âµÄÊÇ£¬ÅöײµÄ³öÏÖ½«Ê¹µÃÉ¢ÁÐËã·¨±¾Éí´æÔÚµÄÒâÒåÏûʧÁË£¬ÒòΪ·¢ÏÖÁ˲»Í¬µÄÈËÓµÓÐÏàͬµÄÖ¸ÎÆ¡£
±ÈÌØ±ÒʹÓõÄÉ¢ÁÐËã·¨ÊÇSHA256£¬ËûÊǰ²È«É¢ÁÐËã·¨SHA£¨Secure Hash Algorithm£©ÏµÁÐËã·¨µÄÒ»ÖÖ£¨ÁíÍ⻹ÓÐSHA-1¡¢SHA-224¡¢SHA-384 ºÍ SHA-512 µÈ±äÌ壩£¬SHAÊÇÃÀ¹ú¹ú¼Ò°²È«¾Ö £¨NSA£© Éè¼Æ£¬ÃÀ¹ú¹ú¼Ò±ê×¼Óë¼¼ÊõÑо¿Ôº£¨NIST£© ·¢²¼µÄ£¬Ö÷ÒªÊÊÓÃÓÚÊý×ÖÇ©Ãû±ê×¼£¨DigitalSignature Standard DSS£©ÀïÃæ¶¨ÒåµÄÊý×ÖÇ©ÃûËã·¨£¨Digital Signature Algorithm DSA£©¡£¿ÉÒÔµ½ÕâÀïÏêϸÁ˽⡣
×îºó£¬ÎÒÒª½âÊÍһ϶þ´ÎÉ¢ÁÐÎÊÌ⣬¿´¹ý±ÈÌØ±ÒÐÒéµÄ¶ÁÕß¿ÉÄÜ×¢Òâµ½¹¤×÷Á¿Ö¤Ã÷ºÍÃÜÔ¿±àÂë¹ý³ÌÖжà´ÎʹÓÃÁ˶þ´Î¹þÏ££¬ÈçSHA256£¨SHA256£¨k£©£©»òÕßRIPEMD160(SHA256(K))£¬ÕâÖÖ·½Ê½´øÀ´µÄºÃ´¦ÊÇÔö¼ÓÁ˹¤×÷Á¿»òÕßÔÚ²»Çå³þÐÒéµÄÇé¿öÏÂÔö¼ÓÆÆ½âÄѶȣ¬´Ó°²È«ÐԽǶȲ¢Ã»ÓÐÏÔÖøÔö¼Ó£¨Èç¹ûÊDZ©Á¦Çî¾ÙÆÆ½âµÄ»°£¬ÐèÒªÔö¼ÓÒ»±¶ÆÆ½âʱ¼ä£©¡£ÕæÕýµÄ¶þ´Î¹þÏ£ÊÇ»ùÓÚ¼ÓÑεĹþÏ££¬Ê²Ã´ÒâË¼ÄØ£¿¶ÔÓÚÌØ¶¨µÄ´ýÉ¢ÁÐÊý¾ÝºÍÌØ¶¨µÄÉ¢ÁÐËã·¨£¬¿ÉÒÔÖªµÀÉ¢ÁÐÖµÊÇÒ»¶¨µÄ£¬ÕâÖÖÇé¿öÏÂÈç¹ûÓÃÉ¢Áб£»¤Ãô¸ÐÊý¾Ý£¨ÀíÂÛÉÏÊDz»ºÏÊʵ쬵«ÊǹúÄÚÍâ´æÔÚ´óÁ¿µÄʹÓÃÉ¢ÁÐÀ´±£»¤Óû§ÃÜÂëµÄÇé¿ö£©£¬ÄǾͺÜÈÝÒ×ʹÓÃ×ֵ乥»÷·´ÏòÍÆË㣬±ÈÈçÎÒ¼ÆËã123456µÄSHA256Öµ¾Í¿ÉÒÔ·´ÍÆÁË£¬½â¾ö°ì·¨¾ÍÊÇÏÈ×öÒ»´ÎÉ¢ÁУ¬ÔÙ¼ÓÒ»´ÎËæ»úÊý¾ÝÒÔºóÔÙ×öÒ»´ÎÉ¢ÁУ¬Ëæ»úÊý¾Ý¾ÍÊÇËùνµÄÑΡ£
3.Êý×ÖÇ©Ãû
ÓÐÁ˷ǶԳƼÓÃܺÍÉ¢ÁÐËã·¨µÄ×¼±¸£¬ÎÒÃÇÏÖÔÚ¿ÉÒÔ½øÒ»²½ÈÏʶÊý×ÖÇ©ÃûÁË¡£¹ËÃû˼Ò壬Êý×ÖÇ©Ãû¾ÍÊÇÔÚÊý×ÖÊÀ½çÀïÓÃÓÚÉí·Ý±æÊ¶µÄÒ»ÖÖ½â¾ö·½°¸¡£²»ÐèÒªÆï·ìÕ£¬Æï·ìÇ©Ãû£¬Ò²²»ÐèÒª±Ê¼£×¨¼Ò£¬Êý×ÖÇ©Ãû¼´¾ßÓв»¿ÉµÖÀµÐÔ¡£
¼òµ¥µØËµ,ËùνÊý×ÖÇ©Ãû¾ÍÊǸ½¼ÓÔÚÊý¾Ýµ¥ÔªÉϵÄһЩÊý¾Ý,»òÊǶÔÊý¾Ýµ¥ÔªËù×÷µÄÃÜÂë±ä»»¡£ÕâÖÖÊý¾Ý»ò±ä»»ÔÊÐíÊý¾Ýµ¥ÔªµÄ½ÓÊÕÕßÓÃÒÔÈ·ÈÏÊý¾Ýµ¥ÔªµÄÀ´Ô´ºÍÊý¾Ýµ¥ÔªµÄÍêÕûÐÔ²¢±£»¤Êý¾Ý,·ÀÖ¹±»ÈË(ÀýÈç½ÓÊÕÕß)½øÐÐαÔì¡£ËüÊǶԵç×ÓÐÎʽµÄÏûÏ¢½øÐÐÇ©ÃûµÄÒ»ÖÖ·½·¨,Ò»¸öÇ©ÃûÏûÏ¢ÄÜÔÚÒ»¸öͨÐÅÍøÂçÖд«Êä¡£»ùÓÚ¹«Ô¿ÃÜÂëÌåÖÆºÍ˽ԿÃÜÂëÌåÖÆ¶¼¿ÉÒÔ»ñµÃÊý×ÖÇ©Ãû,Ö÷ÒªÊÇ»ùÓÚ¹«Ô¿ÃÜÂëÌåÖÆµÄÊý×ÖÇ©Ãû¡£
ÉÏÊö½âÊÍÉÔÏÔѧÊõ£¬ÎÒÃÇ»»ÖÖ˵·¨±íÊö£ºËùνÊý×ÖÇ©Ãû¾ÍÊÇÇ©ÃûÈËÓÃ×Ô¼ºµÄ˽Կ¶Ô´ýÇ©ÃûÊý¾ÝµÄÕªÒª½øÐмÓÃܵõ½µÄÖµ¾ÍÊÇÇ©ÃûÖµ¡£Ç©ÃûÕß·¢ËÍÊý¾ÝÇ©ÃûʱÐèÒª°Ñ´ýÇ©ÃûÊý¾ÝºÍÇ©ÃûÖµÒ»Æð·¢Ë͸ø¶Ô·½¡£
×¢Ò⣬ǩÃû¶ÔÏó²¢·Ç´ýÇ©ÃûÊý¾Ý¶øÊÇ´ýÇ©ÃûÊý¾ÝµÄÕªÒª£¬ÎªÊ²Ã´ÄØ£¿ÒòΪ·Ç¶Ô³Æ¼ÓÃܵÄËÙ¶Èͨ³£¶¼±È½ÏÂý£¬Ö±½Ó¶ÔÔʼÊý¾Ý˽Կ¼ÓÃÜÊǺÜÂýµÄ¶øÇÒҲûÓбØÒª¡£
ÈçºÎÑé֤ǩÃûÄØ£¿½ÓÊÕ·½Ê×ÏÈʹÓÃÇ©ÃûÕߵĹ«Ô¿¶ÔÇ©ÃûÖµ½âÃܼ´¿ÉµÃµ½ÕªÒªÖµ£¬È»ºóʹÓÃÔ¼¶¨µÄËã·¨¶Ô´ýÇ©ÃûÊý¾Ý½øÐÐÉ¢ÁÐÔËËãºóºÍ½âÃܵõ½µÄÕªÒªÖµ½øÐбȽϼ´¿ÉÑéÖ¤¡£
ÕâÀïÓÐÒ»¸öͼÐλ¯µÄÊý×ÖÇ©Ãû¹ý³ÌÓÐÖúÓÚÀí½âÊý×ÖÇ©ÃûµÄÕû¸ö¹ý³Ì¡£
´ÓÒÔÉÏÊý×ÖÇ©ÃûµÄÕû¸ö¹ý³ÌÃèÊöÀ´¿´£¬Êý×ÖÇ©ÃûµÄºËÐÄÔÚÓÚÇ©Ãû£¬ÔÚÓÚÖ¤Ã÷Õâ·ÝÊý¾ÝÊÇÇ©ÃûÕß·¢³öµÄ¡¢²»¿ÉµÖÀµµÄ¡£´ýÇ©ÃûÊý¾Ý±¾ÉíµÄ±£Ãܲ»ÊÇÊý×ÖÇ©Ãû·½°¸Òª¿¼ÂǵÄÎÊÌâ¡£
4.¿É¶ÁÐÔ±àÂë
ÑϸñÀ´½²£¬±àÂ벿·Ö²»ÊÇÃÜÂëѧÀíÂ۵ĺËÐÄÄÚÈÝ£¬²»¹ýΪÁ˱ãÓÚÏÂÎÄÄÜ˵Çå³þ£¬ÎҾͰѿɶÁÐÔ±àÂë·Åµ½ÕâÀï¼òµ¥ËµËµ¡£
¿É¶ÁÐÔ±àÂëºÜºÃÀí½â£¬¾ÍÊDz»¸Ä±äÐÅÏ¢ÄÚÈݽö¸Ä±äÄÚÈݵıíÏÖÐÎʽ£¬²¿·Ö±àÂ뷽ʽ»¹¼ÓÈëÁËÈÝ´íУÑ鹦ÄÜ£¬Í¨³£ÊÇΪÁ˱£Ö¤¸üºÃµÄͨÐÅ´«Êä¡£
±ÈÈç¶þ½øÖƵÄ1111¶ÔӦʮ½øÖƵÄ15Õâ¾ÍÊÇÒ»´Î±àÂë¡£ÊÇÓÃÊ®½øÖƶԶþ½øÖƽøÐбàÂ룬ÏÖÔÚÓиöÎÊÌ⣬ÎÒÄõ½Ò»¸ö±àÂëºóµÄÊý¾Ý£¬ÈçºÎÖªµÀ¸ÃÊý¾ÝÊÇʹÓÃÁËÄÄÖÖÐÎʽµÄ±àÂëÄØ£¿Õâ¸öÊÇͨ¹ýǰ׺À´ÊµÏֵģ¬ÀýÈ磬±ÈÌØ±ÒµØÖ·µÄǰ׺ÊÇ0£¨Ê®Áù½øÖÆÊÇ0x00£©£¬¶ø¶Ô˽Կ±àÂëʱǰ׺ÊÇ128£¨Ê®Áù½øÖÆÊÇ0x80£©¡£
¶þ¡¢±ÈÌØ±Òʵ¼ù
´ÓÏÖÔÚ¿ªÊ¼£¬ÎÒÃÇ¿ªÊ¼Õ浶ʵǹÁË£¬ÏÈ¿´¿´±ÈÌØ±ÒµÄ±àÂëÊÀ½ç¡£
1.Base58ºÍBase58Check±àÂë
ÕâÀïÇëÔÊÐíÎÒÄÃÀ´Ö÷Ò壬ÎÒ¾õµÃÍõÃëµÈ¶àλÀÏʦ·ÒëµÄAndreas M. AntonopoulosËùÖø¡¶¾«Í¨±ÈÌØ±Ò¡·¶ÔÕâ¸öÎÊÌâÒѾ½âÊ͵ĺÜÇå³þÁË£¬¸üÏêϸµÄÃèÊö»¹¿ÉÒÔ¿´¿´ÕâÀï¡£
ΪÁ˸ü¼ò½à·½±ãµØ±íʾ³¤´®µÄÊý×Ö£¬Ðí¶à¼ÆËã»úϵͳ»áʹÓÃÒ»ÖÖÒÔÊý×ÖºÍ×Öĸ×é³ÉµÄ´óÓÚÊ®½øÖƵıíʾ·¨¡£ÀýÈ磬´«Í³µÄÊ®½øÖƼÆÊýϵͳʹÓÃ0-9Ê®¸öÊý×Ö£¬¶øÊ®Áù½øÖÆÏµÍ³Ê¹ÓÃÁ˶îÍâµÄ A-F Áù¸ö×Öĸ¡£Ò»¸öͬÑùµÄÊý×Ö£¬ËüµÄÊ®Áù½øÖƱíʾ¾Í»á±ÈÊ®½øÖƱíʾ¸ü¶Ì¡£¸ü½øÒ»²½£¬Base64ʹÓÃÁË26¸öСд×Öĸ¡¢26¸ö´óд×Öĸ¡¢10¸öÊý×ÖÒÔ¼°Á½¸ö·ûºÅ£¨ÀýÈç¡°+¡±ºÍ¡°/¡±£©£¬ÓÃÓÚÔÚµç×ÓÓʼþÕâÑùµÄ»ùÓÚÎı¾µÄý½éÖд«Êä¶þ½øÖÆÊý¾Ý¡£Base64ͨ³£ÓÃÓÚ±àÂëÓʼþÖеĸ½¼þ¡£Base58ÊÇÒ»ÖÖ»ùÓÚÎı¾µÄ¶þ½øÖƱàÂë¸ñʽ£¬ÓÃÔÚ±ÈÌØ±ÒºÍÆäËüµÄ¼ÓÃÜ»õ±ÒÖС£ÕâÖÖ±àÂë¸ñʽ²»½öʵÏÖÁËÊý¾ÝѹËõ£¬±£³ÖÁËÒ×¶ÁÐÔ£¬»¹¾ßÓдíÎóÕï¶Ï¹¦ÄÜ¡£Base58ÊÇBase64±àÂë¸ñʽµÄ×Ó¼¯£¬Í¬ÑùʹÓôóСд×ÖĸºÍ10¸öÊý×Ö£¬µ«ÉáÆúÁËһЩÈÝÒ×´í¶ÁºÍÔÚÌØ¶¨×ÖÌåÖÐÈÝÒ×»ìÏýµÄ×Ö·û¡£¾ßÌ嵨£¬Base58²»º¬Base64ÖеÄ0£¨Êý×Ö0£©¡¢O£¨´óд×Öĸo£©¡¢l£¨Ð¡Ð´×ÖĸL£©¡¢I£¨´óд×Öĸi£©£¬ÒÔ¼°¡°+¡±ºÍ¡°/¡±Á½¸ö×Ö·û¡£¼ò¶øÑÔÖ®£¬Base58¾ÍÊÇÓɲ»°üÀ¨£¨0£¬O£¬l£¬I£©µÄ´óСд×ÖĸºÍÊý×Ö×é³É¡£
ÐèҪעÒâµÄÊÇ£¬Base58±àÂëÊDz»º¬Ð£ÑéÐÅÏ¢µÄ£¬Base58CheckÊÇÒ»ÖÖ³£ÓÃÔÚ±ÈÌØ±ÒÖеÄBase58±àÂë¸ñʽ£¬Ôö¼ÓÁË´íÎóУÑéÂëÀ´¼ì²éÊý¾ÝÔÚת¼ÖгöÏֵĴíÎó¡£Ð£ÑéÂ볤4¸ö×Ö½Ú£¬Ìí¼Óµ½ÐèÒª±àÂëµÄÊý¾ÝÖ®ºó¡£
ΪÁËʹÓÃBase58Check±àÂë¸ñʽ¶ÔÊý¾Ý£¨Êý×Ö£©½øÐбàÂ룬Ê×ÏÈÎÒÃÇÒª¶ÔÊý¾ÝÌí¼ÓÒ»¸ö³Æ×÷¡°°æ±¾×Ö½Ú¡±µÄǰ׺£¬Õâ¸öǰ׺ÓÃÀ´Ã÷È·ÐèÒª±àÂëµÄÊý¾ÝµÄÀàÐÍ¡£ÀýÈ磬±ÈÌØ±ÒµØÖ·µÄǰ׺ÊÇ0£¨Ê®Áù½øÖÆÊÇ0x00£©£¬¶ø¶Ô˽Կ±àÂëʱǰ׺ÊÇ128£¨Ê®Áù½øÖÆÊÇ0x80£©¡£ ±í4-1»áÁгöһЩ³£¼û°æ±¾µÄǰ׺¡£
½ÓÏÂÀ´£¬ÎÒÃǼÆËã¡°Ë«¹þÏ£¡±Ð£ÑéÂ룬Òâζ×ÅÒª¶Ô֮ǰµÄ½á¹û£¨Ç°×ººÍÊý¾Ý£©ÔËÐÐÁ½´ÎSHA256¹þÏ£Ëã·¨£º
checksum = SHA256(SHA256(prefix+data))
ÔÚ²úÉúµÄ³¤32¸ö×ֽڵĹþÏ£Öµ£¨Á½´Î¹þÏ£ÔËË㣩ÖУ¬ÎÒÃÇֻȡǰ4¸ö×Ö½Ú¡£Õâ4¸ö×Ö½Ú¾Í×÷ΪУÑéÂ롣УÑéÂë»áÌí¼Óµ½Êý¾ÝÖ®ºó¡£½á¹ûÓÉÈý²¿·Ö×é³É£ºÇ°×º¡¢Êý¾ÝºÍУÑéÂë¡£
2.ÃÜÔ¿¡¢µØÖ·ÓëÇ®°ü
ÏÈ˵½áÂÛ£º
1.ÃÜԿͨ³£Ö¸µÄÊDZ£»¤±ÈÌØ±Ò×ʲúµÄ¶ÔÓ¦ÓÚËùÓÐȨÓû§µÄ˽Կ£¬¸ö±ðʱºòÒ²»áÄ£ºýµÄͳ³ÆË½Ô¿ºÍ¹«Ô¿ÎªÃÜÔ¿£¬ÕâÀïÎÒÃÇÒÔÏÁÒåµÄ˽Կ½âÊÍΪ׼¡£
2.µØÖ·´ó²¿·ÖÇé¿öÏÂÊÇÖ¸¶Ô¹«Ô¿µÄ·â×°£¨¸ö±ðʱºò³ýÁ˹«Ô¿»¹Óнű¾£©¡£
3.Ç®°üÊÇ˽ԿµÄÈÝÆ÷£¬Í¨³£Í¨¹ýÓÐÐòÎļþ»òÕß¼òµ¥µÄÊý¾Ý¿âʵÏÖ¡£±ÈÌØ±ÒÇ®°ü°üº¬Ë½Ô¿ºÍ¹«Ô¿Êý¾Ý£¬¾¡¹Ü¹«Ô¿Êý¾ÝÀíÂÛÊÇÊDz»ÐèÒª´æ´¢µÄ¡£
2.1˽Կ±£»¤
˽Կ±ØÐë±£ÃÜ¡£Ë½Ô¿µÄ»úÃÜÐÔÐèÇóÊÂʵÇé¿öÊÇ£¬ÔÚʵ¼ùÖÐÏ൱ÄÑÒÔʵÏÖ£¬ÒòΪ¸ÃÐèÇóÓëͬÑùÖØÒªµÄ°²È«¶ÔÏó¿ÉÓÃÐÔÏ໥ì¶Ü¡£µ±ÄãÐèҪΪÁ˱ÜÃâ˽Կ¶ªÊ§¶ø´æ´¢±¸·Ýʱ£¬»á·¢ÏÖά»¤Ë½Ô¿Ë½ÃÜÐÔÊÇÒ»¼þÏ൱À§ÄѵÄÊÂÇ顣ͨ¹ýÃÜÂë¼ÓÃÜÄÚÓÐ˽ԿµÄÇ®°ü¿ÉÄÜÒª°²È«Ò»µã£¬µ«ÄǸöÇ®°üÒ²ÐèÒª±¸·Ý¡£ÓÐʱ£¬ÀýÈçÓû§ÒòΪҪÉý¼¶»òÖØ×°Ç®°üÈí¼þ£¬¶øÐèÒª°ÑÃÜÔ¿´ÓÒ»¸öÇ®°ü×ªÒÆµ½ÁíÒ»¸ö¡£Ë½Ô¿±¸·ÝÒ²¿ÉÄÜÐèÒª´æ´¢ÔÚÖ½ÕÅÉÏ£¨²Î¼û¡°4.5.4 ֽǮ°ü¡±Ò»½Ú£©»òÕßÍⲿ´æ´¢½éÖÊÀ±ÈÈçUÅÌ¡£µ«Èç¹ûÒ»µ©±¸·ÝÎļþʧÇÔ»ò¶ªÊ§ÄØ£¿ÕâЩì¶ÜµÄ°²È«Ä¿±êÍÆ½øÁ˱ãЯ¡¢·½±ã¡¢¿ÉÒÔ±»Öڶ಻ͬǮ°üºÍ±ÈÌØ±Ò¿Í»§¶ËÀí½âµÄ¼ÓÃÜ˽Կ±ê×¼BIP0038µÄ³ǫ̈¡£
BIP0038Ìá³öÁËÒ»¸öͨÓñê×¼£¬Ê¹ÓÃÒ»¸ö¿ÚÁî¼ÓÃÜ˽Կ²¢Ê¹ÓÃBase58Check¶Ô¼ÓÃܵÄ˽Կ½øÐбàÂ룬ÕâÑù¼ÓÃܵÄ˽Կ¾Í¿ÉÒÔ°²È«µØ±£´æÔÚ±¸·Ý½éÖÊÀ°²È«µØÔÚÇ®°ü¼ä´«Ê䣬±£³ÖÃÜÔ¿ÔÚÈκοÉÄܱ»±©Â¶Çé¿öϵݲȫÐÔ¡£Õâ¸ö¼ÓÃܱê׼ʹÓÃÁËAES£¬Õâ¸ö±ê×¼ÓÉNIST½¨Á¢£¬²¢¹ã·ºÓ¦ÓÃÓÚÉÌÒµºÍ¾üÊÂÓ¦ÓõÄÊý¾Ý¼ÓÃÜ¡£
2.2¹«Ô¿ÓëµØÖ·
ÎÒÃÇÖªµÀ±ÈÌØ±ÒÐÒéµÄÇø¿éÁ´Êµ¼ÊÉÏÊǶԽ»Ò×µÄά»¤¶ø²»ÊǶÔÕË»§µÄά»¤£¬½»Ò×Êý¾Ý±¾Éí²¢²»ÐèҪ˽Կ£¬Òò´Ë¶Ô¹«Ô¿µÄ·â×°Ò²¾ÍÊǵØÖ·¾ÍÏԵøñÍâÖØÒª£¬ÐèÒª¼æ¹Ë°²È«£¬Ð§ÂʺÍÀ©Õ¹¡£
´Ó¹«Ô¿µ½µØÖ·¾ÀúÁËÈçϹý³Ì£º

A = RIPEMD160(SHA256(K))
¹«Ê½ÖУ¬KÊǹ«Ô¿£¬AÊÇÉú³ÉµÄ±ÈÌØ±ÒµØÖ·¡£±ÈÌØ±ÒµØÖ·Ó빫Կ²»Í¬¡£±ÈÌØ±ÒµØÖ·ÊÇÓɹ«Ô¿¾¹ýµ¥ÏòµÄ¹þÏ£º¯ÊýÉú³ÉµÄ
ÒÔ¹«Ô¿ K ΪÊäÈ룬¼ÆËãÆäSHA256¹þÏ£Öµ£¬²¢ÒԴ˽á¹û¼ÆËãRIPEMD160 ¹þÏ£Öµ£¬µÃµ½Ò»¸ö³¤¶ÈΪ160±ÈÌØ£¨20×Ö½Ú£©µÄÊý×Öºó½øÐÐBase58Check±àÂë¼´¿ÉµÃµ½±ÈÌØ±ÒµØÖ·¡£´Ó±àÂëÊý¾Ý½á¹¹µÄÊӽǿ´£¬ÊÇÏÂͼ£º

ÐèҪעÒâµÄÊÇ£¬´ÓµØÖ·ÒѾÎÞ·¨·´Íƹ«Ô¿ÐÅÏ¢£¬Òò´Ë£¬ÐèÒª½«Ë½Ô¿ÒÔ¼°¶ÔÓ¦µÄ¹«Ô¿¡¢µØÖ·Ò»Æð´æ´¢¡£
2.3±ÈÌØ±ÒÇ®°ü
±ÈÌØ±ÒÇ®°üÒª½â¾öµÄºËÐÄÎÊÌâÊÇ˽Կ¹ÜÀí£¬ÔçÆÚµÄ·½Ê½ÊÇËæ»úÉú³É˽Կ³Ø²¢Ò»´ÎÒ»ÃÜ£¬Õ⵱ȻÊǰ²È«ÐԺܸߵķ½°¸¡£µ«ÊǶԴ洢£¬µ¼Èëµ¼³ö±¸·Ý´øÀ´Á˼«´óµÄÌôÕ½£¬±Ï¾¹Ë½Ô¿¶ªÁËËҲûÓа취¡£¸Ä½øµÄ˽Կ¹ÜÀí°ì·¨½«Ë½Ô¿Á´Ê½¹ÜÀíÆðÀ´ÁË£¬¼ûÏÂͼ£º

Éú³ÉÁ´Ê½½á¹¹µÄ¹ý³ÌÈçÏ£º

3.Çø¿éÁ´
Çø¿éÁ´¿ÉÒÔÀí½âΪÊý¾Ý½á¹¹¸ÅÄîÖеÄÁ´±í£¨ºÍÏßÐÔ±íÂÔÓв»Í¬µÄÊÇ¿ÉÄÜÓзֲ棩£¬ÕâÀïÎÒÃÇÖ»ÐèÒª´óÖÂÁ˽âÇø¿éÊý¾Ý½á¹¹ÒÔ¼°Ã¿Ò»¿é´óÖµÄÒâ˼£¬ÕâЩ½á¹¹ÐÅÏ¢½«»áÔÚ½»Ò׺ÍÍڿ󲿷ֽøÐÐÏêϸ½²½â¡£
Çø¿éÁ´¿ÉÒÔÀí½âΪÔËÐÐÔÚÈ¥ÖÐÐÄ»¯ÍøÂçÖеģ¬ËùÓнڵ㣨ÍÚ¿ó½Úµã£©¹²Í¬Î¬»¤µÄ½»Ò×Êý¾Ý¿â£¬Õâ¸öÊý¾Ý¿âÊÇÒÔÁ´Ê½µÄÐÎʽ×éÖ¯½»Ò×Êý¾ÝµÄ£¬Ã¿Ò»¸öÁ´±íµÄ¿é±»³ÆÎªÇø¿é»òÕßblock¡£
3.1 Çø¿é½á¹¹
Çø¿éÊÇÒ»ÖÖ±»°üº¬ÔÚ¹«¿ªÕ˲¾£¨Çø¿éÁ´£©ÀïµÄ¾ÛºÏÁ˽»Ò×ÐÅÏ¢µÄÈÝÆ÷Êý¾Ý½á¹¹¡£ËüÓÉÒ»¸ö°üº¬ÔªÊý¾ÝµÄÇø¿éÍ·ºÍ½ô¸úÆäºóµÄ¹¹³ÉÇø¿éÖ÷ÌåµÄÒ»³¤´®½»Ò××é³É¡£

ÉϱíÖеÄ1-9Ó¦¸ÃÊÇ1-9¸ö×Ö½Ú£¬·ñÔò»áÒýÆðÆçÒå¡£
3.2 Çø¿éÍ·
Çø¿éÍ·ÓÉÈý×éÇø¿éÔªÊý¾Ý×é³É¡£Ê×ÏÈÊÇÒ»×éÒýÓø¸Çø¿é¹þÏ£ÖµµÄÊý¾Ý£¬Õâ×éÔªÊý¾ÝÓÃÓÚ½«¸ÃÇø¿éÓëÇø¿éÁ´ÖÐÇ°Ò»Çø¿éÏàÁ¬½Ó¡£µÚ¶þ×éÔªÊý¾Ý£¬¼´ÄѶȡ¢Ê±¼ä´ÁºÍnonce£¬ÓëÍÚ¿ó¾ºÕùÏà¹Ø¡£µÚÈý×éÔªÊý¾ÝÊÇmerkleÊ÷¸ù£¨Ò»ÖÖÓÃÀ´ÓÐЧµØ×ܽáÇø¿éÖÐËùÓн»Ò×µÄÊý¾Ý½á¹¹£©¡£

Nonce¡¢ÄѶÈÄ¿±êºÍʱ¼ä´Á»áÓÃÓÚÍÚ¿ó¹ý³Ì£¬Merkle¸ùÓÃÀ´Ë÷ÒýºÍ×éÖ¯¸ÃÇø¿éËùÓеĽ»Ò×ÐÅÏ¢£¬Æä½á¹¹¼ûÏÂÒ»½Ú¡£
Òò´ËÇø¿éÍ·Ö®¼äµÄÁ¬½Ó´óÔ¼ÏñÏÂͼËùʾ£º

´ÓÉÏͼÎÒÃÇ¿ÉÒÔÖªµÀÈçºÎ±ÜÃâË«ÖØÖ§¸¶ÎÊÌ⣬ÒòΪÊÕ¿îÈËÓа취¶ÔÕâ±ÊÖ§¸¶Ö®Ç°µÄËùÓÐÏûÏ¢½øÐмìË÷Ö±ÖÁ×·Ëݵ½ÔʼµÄÍÚ¿óÇø¿é£¬Êµ¼ÊÉϱÈÌØ±ÒÊÀ½çÀïµÄÿһö±ÈÌØ±Ò¶¼ÊDZ»±ê¼Ç¿ÉËÝÔ´£¬Ë«ÖØÖ§¸¶ÊÇ¿ÉÒÔ±ÜÃâµÄ¡£
3.3 Merkle Tree
Merkle Tree£¬ÊÇÒ»ÖÖÊ÷£¨Êý¾Ý½á¹¹ÖÐËù˵µÄÊ÷£©£¬ÍøÉÏ´ó¶¼³ÆÎªMerkle Hash Tree,ÕâÊÇÒòΪ ËüËù¹¹ÔìµÄMerkle TreeµÄËùÓнڵ㶼ÊÇHashÖµ¡£Merkle Tree¾ßÓÐÒÔÏÂÌØµã£º
1. ËüÊÇÒ»ÖÖÊ÷£¬¿ÉÒÔÊǶþ²æÊ÷£¬Ò²¿ÉÒÔ¶à²æÊ÷£¬ÎÞÂÛÊǼ¸²æÊ÷£¬Ëü¶¼¾ßÓÐÊ÷½á¹¹µÄËùÓÐÌØµã£»
2. MerkleÊ÷µÄÒ¶×Ó½ÚµãÉϵÄvalue£¬ÊÇÓÉÄãÖ¸¶¨µÄ£¬ÕâÖ÷Òª¿´ÄãµÄÉè¼ÆÁË£¬ÈçMerkle Hash Tree»á½«Êý¾ÝµÄHashÖµ×÷ΪҶ×Ó½ÚµãµÄÖµ£»
3 ·ÇÒ¶×Ó½ÚµãµÄvalueÊǸù¾ÝËüÏÂÃæËùÓеÄÒ¶×Ó½ÚµãÖµ£¬È»ºó°´ÕÕÒ»¶¨µÄËã·¨¼ÆËã¶øµÃ³öµÄ¡£ÈçMerkle Hash TreeµÄ·ÇÒ¶×Ó½ÚµãvalueµÄ¼ÆËã·½·¨Êǽ«¸Ã½ÚµãµÄËùÓÐ×Ó½Úµã½øÐÐ×éºÏ£¬È»ºó¶Ô×éºÏ½á¹û½øÐÐhash¼ÆËãËùµÃ³öµÄhash value¡£
ÀýÈ磬ÏÂͼ¾ÍÊÇÒ»¸öMerkle Hash TreeÐÎ×´£¬Èç¹ûËüÊÇMerkle Hash Tree£¬Ôò½Úµã7µÄhash value±ØÐëÊÇͨ¹ý½Úµã15¡¢16ÉϵÄvalue¼ÆËã¶øµÃµ½.

ÔÚ´¦Àí±È¶Ô»òÑéÖ¤µÄÓ¦Óó¡¾°ÖÐʱ£¬ÌرðÊÇÔÚ·Ö²¼Ê½»·¾³Ï½øÐбȶԻòÑé֤ʱ£¬Merkle Tree»á´ó´ó¼õÉÙÊý¾ÝµÄ´«ÊäÁ¿ÒÔ¼°¼ÆËãµÄ¸´ÔÓ¶È¡£ÀýÈ磬¾ÍÄÃͼһ¾ÙÀý£¬¼ÙÈçÊÇ 15,16.......30ÊÇÒ»¸ö¸öÊý¾Ý¿éµÄhashÖµ£¬ÎÒ°ÑÕâЩÊý¾Ý´ÓA´«Êäµ½B£¬Êý¾Ý´«Êäµ½Bºó£¬ÎÒÏëÑé֤ϴ«Êäµ½BÉϵÄÊý¾ÝµÄÓÐЧÐÔÐÍ£¨ÑéÖ¤Êý¾ÝÊÇ·ñÔÚ´«Êä¹ý³ÌÖз¢Éú±ä»¯£©£¬Ö»ÐèÒªÑéÖ¤A ºÍ BÉÏËù¹¹ÔìµÄMerkle
TreeµÄroot½ÚµãÖµÊÇ·ñÒ»Ö¼´¿É£¬Èç¹ûÒ»Ö£¬±íʾÊý¾ÝÊÇÓÐЧµÄ£¬´«Êä¹ý³ÌÖÐûÓз¢Éú¸Ä±ä¡£¼ÙÈçÔÚ´«Êä¹ý³ÌÖУ¬15¶ÔÓ¦µÄÊý¾Ý±»È˴۸ģ¬Í¨¹ýMerkle TreeºÜÈÝÒ×¶¨Î»ÕÒµ½£¨ÒòΪ´Ëʱ£¬½Úµã0,1,3,7,15¶ÔÓ¦µÄhashÖµ¶¼·¢ÉúÁ˱仯£©
ÐèÒª½âÊ͵ÄÊǽ»Ò×Êý¾ÝÊÇÔõô¹¹½¨³ÉÊýµÄÄØ£¬ÆäʵºÜ¼òµ¥£ºÊ×ÏȽ«ËùÓн»Ò××÷ΪҶ×ӽڵ㣬Á½Á½ÏàÁÚ·Ö×飨×ܵĽ»Ò×ÊýÁ¿Èç¹ûÊÇÆæÊý¾Í°Ñµ¥¸öµÄÄǸö¸´ÖÆÒ»·Ý£©£¬È»ºó¶Ôÿһ¶Ô½»Ò×·Ö±ð¼ÆËã¹þÏ£²¢ÒÀ´ËÏòÉϹ¹½¨Ê÷Ö±ÖÁ¸ù½Úµã£¬ÈçÏÂͼËùʾ£º
4.½»Ò×
ÔÙ´ÎÇ¿µ÷µÄÊÇ£¬±ÈÌØ±ÒÍøÂçÖÐÁ÷תµÄÊǽ»Ò×ÐÅÏ¢£¬Ã¿¸öÕË»§µÄÓà¶îÊÇͨ¹ý½»Ò×ÐÅÏ¢ÍÆËã³öÀ´µÄ£¬½»Ò×ÐÅÏ¢ÊÇË«ÏòµÄ£¬ÓÐÒ»¸öÊäÈë±Ø¶¨¶ÔÓ¦Ò»¸öÊä³ö¡£
3.1½»Ò×ÊäÈëÊä³ö
ÿһ±Ê½»Ò×,outµÄ×ܶîÓ¦¸ÃµÈÓÚinµÄ×ܶµ«ÊÇ,ÔÚÕâ¸ö½»Ò×µ¥Àï,Ö»»áÓÐoutµÄValue,ûÓÐinµÄValue,¶øÊÇͨ¹ýinµÄPerviousÓëindex,×·Ëݵ½ÉÏÒ»¸ö½»Ò×µ¥µÄijһ¸öout,»ñµÃValue¡£
Ò»´Îsend bitcoin,ʣϵÄÇ®,Ó¦¸Ãout¸ø×Ô¼º,·ñÔòÕâ¸öÇ®¾Í¶ªÁË¡£
Çé¿öÁоÙ:
ÎÒÓÐ10¸öBTC,ÊÇijһ´Î½»Ò×»ñµÃµÄ,ÎÒÒªË͸øÅóÓÑA,10¸öBTC¡£Õâʱºò,ÓÐÒ»¸öin,Ò»¸öout¡£
ÎÒÓÐ10¸öBTC,ÊÇijһ´Î½»Ò×»ñµÃµÄ,ÎÒÒªË͸øÅóÓÑA,5¸öBTC,Õâʱºò,ÓÐÒ»¸öin,Á½¸öout,Ò»¸öÖ¸ÏòÅóÓÑ5¸öBTC,Ò»¸öÖ¸ÏòÎÒ×Ô¼º,µÃµ½Ê£ÏµÄ5¸öBTC¡£
ÎÒÓÐ10¸öBTC,ÊÇÒÔǰµÄÁ½´Î½»Ò×»ñµÃµÄ,ÎÒÒªË͸øÅóÓÑA,10¸öBTC,Õâʱºò,ÓÐÁ½¸öin,Ò»¸öout¡£
ÎÒÓÐ10¸öBTC,ÊÇÒÔǰµÄÁ½´Î½»Ò×»ñµÃµÄ,ÆäÖÐÒ»´Î»ñµÃÁË6¸öBTC,ÁíÒ»´Î»ñµÃÁË4¸öBTC,ÎÒÒªË͸øÎÒµÄÅóÓÑ7¸öBTC,Õâʱºò,ÓÐÁ½¸öin,Á½¸öout¡£
±ÈÌØ±Ò½»Ò׵Ļù±¾µ¥Î»ÊÇδ¾Ê¹ÓõÄÒ»¸ö½»Ò×Êä³ö£¬¼ò³ÆUTXO¡£UTXOÊDz»ÄÜÔٷָ±»ËùÓÐÕßËø×¡»ò¼Ç¼ÓÚÇø¿éÁ´ÖеIJ¢±»Õû¸öÍøÂçʶ±ð³É»õ±Òµ¥Î»µÄÒ»¶¨Á¿µÄ±ÈÌØ±Ò»õ±Ò¡£Õâ¾ä»°Ê²Ã´ÒâË¼ÄØ£¿±ÈÌØ±Ò½»Ò׳ýÁËÍÚ¿ó»ñÈ¡ÒÔÍ⣬¶¼ÊÇÁãºÍµÄ£¬ÒòÎªÇø¿éÁ´²»Î¬»¤Óà¶îÐÅϢҲûÓÐÓà¶î¸ÅÄî£¬Çø¿éÁ´Ö»Óн»Ò×ÐÅÏ¢¡£¾Ù¸öÀý×Ó£¬ÄãÓÐ10¸ö±ÈÌØ±ÒÏÖÔÚÐèÒªÖ§¸¶2¸ö³öÈ¥£¬ÄÇô½»Ò×Êý¾Ýά»¤µÄÊÇÒ»¸öÊäÈ루δ¾Ê¹ÓõÄ10¸ö±ÈÌØ±Ò£©ºÍ2¸öÊä³ö£¨Ò»¸öÊÇ2¸ö±Ò¶ÔÓ¦µÄµØÖ·£©£¬»¹ÓÐÒ»¸öÊÇ8¸ö±Ò¶ÔÓ¦µØÖ·ÊÇÄã×Ô¼ºµÄµØÖ·¡£
3.2½»Ò×¹ý³Ì
½»Ò׵Ļù±¾ËßÇó£¬ÊǸ¶¿îÈË£¨payer£©»ã¿î¸øÊÕ¿îÈË£¨payee£©¡£¼¼ÊõÌôÕ½ÊǼÓÃÜ£¨cryptography£©£¬Ä¿µÄÊDz»ÈõÚÈýÕ߽ػñÉõÖÁ´Û¸Ä»ã¿î½ð¶î¡£
ÏÂͼ½âÊÍÁË Owner0 ¸ø Owner1ÒÔ¼°ºóÐø »ã¿îµÄ½»Ò×»úÖÆ£¬½ØÍ¼ÈçÏ¡£

1. Owner0 ÏȲ鵽 Owner1 µÄ¹«Ô¿¡£Óà Owner1 µÄ¹«Ô¿£¨Public Key£©°Ñ»ã¿îÏêÇé¼ÓÃÜ¡£ÕâÑù£¬Ö»ÓÐ Owner1 ±¾ÈËÓÃ×Ô¼ºµÄ˽Կ£¨Private Key£©£¬²ÅÄÜ´ò¿ª¼ÓÁËÃܵĻã¿îÏêÇé¡£ÔÚͼÀýÖУ¬Ã»Óл»ã¿îÏêÇé¡£²»¹ýÕâ¸öССµÄÐðÊöµÄÊèºöÎÞ·Á´óÑÅ¡£
2. ΪÁË·½±ã Owner1 ÑéÖ¤Õâ±Ê»ã¿îµÄÈ·À´×Ô Owner0£¬¶ø²»ÊDZðÈË£¬Owner0 ·¢³öµÄ»ã¿îµ¥À³ýÁËÓмÓÁËÃܵĻã¿îÏêÇ飬»¹ÓÐ Owner0 µÄÊý×ÖÇ©Ãû£¨Signature£©¡£Owner1 Äõ½»ã¿îʱ£¬ÎªÁËÑéÖ¤Õâ±Ê»ã¿îµÄÈ·À´×Ô Owner0£¬Ëû¿ÉÒÔÓà Owner0 µÄ¹«Ô¿£¬À´ÑéÖ¤»ã¿îµ¥ÖÐ Owner0 µÄÊý×ÖÇ©Ãû¡£
3. Owner0 ·¢³ö»ã¿îµ¥Ê±£¬»ã¿îµ¥²»½ö½öͶµÝµ½ Owner1£¬¶øÇÒ»¹Òª¹ã¶ø¸æÖ®£¬ÈκÎÈËÖ»ÒªÔ¸Òâ²ÎÓë BitCoin É󼯣¬¶¼¿ÉÒÔÊÕµ½È«ÇòËùÓÐÈË·¢³öµÄËùÓлã¿îµ¥¡£
4. ÑØÓà 1¡¢2¡¢3 µÄÔÀí£¬Owner1 ¸ø Owner2 »ã¿î£¬È»ºó Owner2 ¸ø Owner3 »ã¿î¡£BitCoin ͨ¹ý Hash »úÖÆ£¬°ÑÉæ¼°Í¬Ò»Ã¶ BitCoin µÄËùÓлã¿î½»Ò×£¨Tranaction£©´®Á¬ÆðÀ´£¬Ä¿µÄÊÇΪÁË×·²éÖØ¸´¸¶¿î£¨double spending£©µÄÆÛÕ©ÐÐΪ¡£
µ¥¶ÀÀ´¿´½»Ò×´´½¨¹ý³Ì£º

ÊÕ¿î·½¶Ô½»Ò×½øÐÐÑéÖ¤£º

4.ÍÚ¿óÔÀí
ÍÚ¿óµÄ±¾ÖÊÒâÒåÊÇÍÚ¿ó½ÚµãÕù¶á¼ÇÕËȨ£¡Ö÷¹ÛÉÏÀ´Ëµ£¬ÍÚ¿ó½Úµã»ñµÃÁËÍÚ¿ó½±Àø¼°½»Ò×·Ñ£¬¿Í¹ÛÉÏÀ´Ëµ£¬Õâ±£Ö¤ÁËÇø¿éÁ´°´ÕÕÌØ¶¨¹æÔò³ÖÐøÎȶ¨µÄ±»Î¬»¤¡£
ÍÚ¿óµÄ¾ßÌåʵÏÖ¾ÍÊÇÔÚÄѶÈÒ»¶¨µÄÇé¿öÏÂͨ¹ý±©Á¦Ë«SHA256¹þÏ£ÔËËã»ñÈ¡Âú×ãÄѶÈtagetµÄNonceÖµ£¬ËùνµÄ¹¤×÷Á¿Ö¤Ã÷¾ÍÊÇÎÞÊý´Î¹þÏ£ÔËËãÇî¾Ù²¢±È¶ÔµÄ¹ý³Ì¡£
¡°ÍÚ¿ó¡±Ëã·¨ÎÒÃÇ¿ÉÒԲο¼Çø¿éÍ·½á¹¹½â˵ÈçÏ£º

µÚÒ»²½£ºÕÒµ½Çø¿é°æ±¾ºÅversion¡£
µÚ¶þ²½£ºÕÒµ½ÉÏÒ»¸öÇø¿éµÄhashÖµ£¨¸¸Çø¿é¹þÏ£Öµ£©£ºprev_hash¡£
µÚÈý²½£ºÊäÈë¼Ç¼½»Ò×µÄhashÊ÷µÄ¸ù½ÚµãhashÖµ£¨Merkle¸ù£©£ºroot_hash¡£
µÚËIJ½£º¸üеÄʱ¼ä£¨Ê±¼ä´Á£©:time¡£
µÚÎå²½£ºÈ«Íøµ±Ç°ÄѶȣ¨ÄѶÈÄ¿±ê£©:difficulty
Õë¶ÔÄѶÈÄ¿±êÐèҪ˵Ã÷£º
ÄѶÈÔÚÇø¿éÖÐÒÔ¡°Î²Êý-Ö¸Êý¡±µÄ¸ñʽ£¬±àÂë²¢´æ´¢£¬ÕâÖÖ¸ñʽ³Æ×÷¡°ÄѶÈλ¡±¡£ÕâÖÖ±àÂëµÄÊ××Ö½Ú±íʾָÊý£¬ºóÃæµÄ3×Ö½Ú±íʾβÊý(ϵÊý)¡£ÒÔÇø¿é277316ΪÀý£¬ÄѶÈλµÄֵΪ0x1903a30c£¬0x19ÊÇÖ¸Êý£¨exponent£©µÄÊ®Áù½øÖƸñʽ£¬ºó°ë²¿0x03a30cÊÇϵÊý£¨coefficient£©¡£
µÚÁù²½£º×Ô¼ºÕÒÒ»¸öËæ»úÊýNonce£ºÕâ¸ö¾ÍÊÇ·´¸´ÊԵIJ¿·Ö£¬²»¶ÏµÝÔö¸ÃÊý×Ö²¢×ö¹þÏ£ÔËËãÖ±µ½¶ÔÓ¦¹þϣֵСÓÚÄѶÈÖ¸¶¨µÄtagetÖµ¡£
°ÑÒÔÉÏ6¸ö²ÎÊý×÷ΪÊäÈ룬×ö¶þ´ÎSHA256ÔËË㣬ÐÎËÆÓÚ
SHA256(SHA256(version , prev_hash , root_hash , time , difficulty, random))
×îÖյõ½½á¹ûresult¡£×îºó°Ñ½á¹ûresultÌá½»¸øÏµÍ³£¬ÓÉϵͳÅжÏÕâ¸ö¼ÆËã½á¹ûÊÇ·ñÓÐЧ£¨result<targetΪÓÐЧ)¡£ÈôÅж¨½á¹ûΪÓÐЧ£¬Äã¾Í²úÉúÁËÒ»¸öеÄÇø¿é£¬²¢»á¸æÖªÈ«Íø¡£
targetͨ¹ýdifficulty¿ÉÒÔ¼ÆËãµÃµ½£º
target = coefficient * 2^(8 * (exponent ¨C 3))
Ëã·¨¹æ¶¨£ºÒ»¸öеÄÇø¿éµÄµÚÒ»±Ê½»Ò×±ØÐë½«ÌØ¶¨ÊýÄ¿µÄ±ÈÌØ±Ò·¢µ½Ä³¸öµØÖ·£¬µ±È»Õâ¸öµØÖ·¿Ï¶¨»áÉè³ÉÍÚ¿óÈË×Ô¼ºµÄ±ÈÌØ±ÒµØÖ·£¬´Ó¶ø»ñµÃϵͳµÄ±ÈÌØ±Ò½±Àø¡£
5.×ܽá
±ÈÌØ±ÒÀíÂÛÒÔÃÜÂëѧΪ֧³Å£¬¹¹½¨ÁËÒ»¸öÍ걸¡¢°²È«¡¢È¥ÖÐÐÄ»¯µÄÊý×Ö»õ±ÒÌåϵ£¬½â¾öÁËÊý×Ö×ʲúËùÓÐȨÎÊÌâ¡¢Ë«ÖØÖ§¸¶ÎÊÌâ¡¢ÏÖʵÊÀ½çµÄͨ»õÅòÕÍÎÊÌâÉõÖÁ»¹Ô¤ÁôÁË»úÖÆÊ¹µÃ¹¹½¨ÔÚ×ʲú×ªÒÆÖ®ÉϵÄÖÇÄܺÏͬ³ÉΪ¿ÉÄÜ¡£±ÈÌØ±Òµ±È»ÊÇΰ´óµÄ´´Ô죬ÆÚ´ý±ÈÌØ±ÒÓиüºÃµÄδÀ´¡£
ÁíÍ⣬±¾Êé³ÉÎĹý³ÌÖвο¼ÁËÍõÃëµÈÀÏʦ·ÒëµÄ¡¶¾«Í¨±ÈÌØ±Ò¡·£¬Àî¾ûµÈÀÏʦµÄ¡¶±ÈÌØ±Ò¡·ÒÔ¼°°Í±ÈÌØÉçÇøµÄ´óÁ¿ÖªÊ¶£¬¸ÐлËûÃÇ¡£
×îºó£¬¸Ðл´ó¼ÒºÍÎÒÒ»Æð²ÎÓëÕâ´Î·ÖÏí£¬»¶Ó´ó¼ÒÌí¼Ó»òɨÃèÏÂÃæµÄ¶þάÂë¼ÓÎҵĸöÈË΢ÐźŠzbren_im¼ÌÐø½»Á÷¡£
|