¡¾ÍƼö¡¿RSAËã·¨
RSAËã·¨¡¡¡¡ËüÊǵÚÒ»¸ö¼ÈÄÜÓÃÓÚÊý¾Ý¼ÓÃÜÒ²ÄÜÓÃÓÚÊý×ÖÇ©ÃûµÄËã·¨¡£ËüÒ×ÓÚÀí½âºÍ²Ù
×÷£¬Ò²ºÜÁ÷ÐС£Ëã·¨µÄÃû×ÖÒÔ·¢Ã÷ÕßµÄÃû×ÖÃüÃû£ºRon Rivest, Adi Shamir ºÍLeonard
Adleman¡£µ«RSAµÄ°²È«ÐÔһֱδÄܵõ½ÀíÂÛÉϵÄÖ¤Ã÷¡£Ëü¾ÀúÁ˸÷ÖÖ¹¥»÷£¬ÖÁ½ñδ±»Íê
È«¹¥ÆÆ¡£
Ò»¡¢RSAËã·¨ :
Ê×ÏÈ, ÕÒ³öÈý¸öÊý, p, q, r,
ÆäÖÐ p, q ÊÇÁ½¸öÏàÒìµÄÖÊÊý, r ÊÇÓë (p-1)(q-1) »¥ÖʵÄÊý......
p, q, r ÕâÈý¸öÊý±ãÊÇ private key
½ÓÖø, ÕÒ³ö m, ʹµÃ rm == 1 mod (p-1)(q-1).....
Õâ¸ö m Ò»¶¨´æÔÚ, ÒòΪ r Óë (p-1)(q-1) »¥ÖÊ, ÓÃշתÏà³ý·¨¾Í¿ÉÒԵõ½ÁË
.....
ÔÙÀ´, ¼ÆËã n = pq.......
m, n ÕâÁ½¸öÊý±ãÊÇ public key
±àÂë¹ý³ÌÊÇ, Èô×ÊÁÏΪ a, ½«Æä¿´³ÉÊÇÒ»¸ö´óÕûÊý, ¼ÙÉè a < n....
Èç¹û a >= n µÄ»°, ¾Í½« a ±í³É s ½øÎ» (s <= n, ͨ³£È¡ s = 2^t),
ÔòÿһλÊý¾ùÐ¡ì¶ n, È»áá·Ö¶Î±àÂë......
½ÓÏÂÀ´, ¼ÆËã b == a^m mod n, (0 <= b < n),
b ¾ÍÊDZàÂëááµÄ×ÊÁÏ......
½âÂëµÄ¹ý³ÌÊÇ, ¼ÆËã c == b^r mod pq (0 <= c < pq),
ì¶ÊǺõ, ½âÂëÍê±Ï...... µÈ»á»áÖ¤Ã÷ c ºÍ a ÆäʵÊÇÏàµÈµÄ?:)
Èç¹ûµÚÈýÕß½øÐÐÇÔÌýʱ, Ëû»áµÃµ½¼¸¸öÊý: m, n(=pq), b......
ËûÈç¹ûÒª½âÂëµÄ»°, ±ØÐëÏë°ì·¨µÃµ½ r......
ËùÒÔ, Ëû±ØÐëÏÈ¶Ô n ×÷ÖÊÒòÊý·Ö½â.........
Òª·ÀÖ¹Ëû·Ö½â, ×îÓÐЧµÄ·½·¨ÊÇÕÒÁ½¸ö·Ç³£µÄ´óÖÊÊý p, q,
ʹµÚÈýÕß×÷ÒòÊý·Ö½âʱ·¢ÉúÀ§ÄÑ.........
<¶¨Àí>
Èô p, q ÊÇÏàÒìÖÊÊý, rm == 1 mod (p-1)(q-1),
a ÊÇÈÎÒâÒ»¸öÕýÕûÊý, b == a^m mod pq, c == b^r mod pq,
Ôò c == a mod pq
Ö¤Ã÷µÄ¹ý³Ì, »áÓõ½·ÑÂíС¶¨Àí, ÐðÊöÈçÏÂ:
m ÊÇÈÎÒ»ÖÊÊý, n ÊÇÈÎÒ»ÕûÊý, Ôò n^m == n mod m
(»»ÁíÒ»¾ä»°Ëµ, Èç¹û n ºÍ m »¥ÖÊ, Ôò n^(m-1) == 1 mod m)
ÔËÓÃһЩ»ù±¾µÄȺÂÛµÄ֪ʶ, ¾Í¿ÉÒÔºÜÈÝÒ×µØÖ¤³ö·ÑÂíС¶¨ÀíµÄ........
<Ö¤Ã÷>
ÒòΪ rm == 1 mod (p-1)(q-1), ËùÒÔ rm = k(p-1)(q-1) + 1, ÆäÖÐ k ÊÇÕûÊý
ÒòΪÔÚ modulo ÖÐÊÇ preserve ³Ë·¨µÄ
(x == y mod z?and?u == v mod z?=>?xu == yv mod z),
ËùÒÔ, c == b^r == (a^m)^r == a^(rm) == a^(k(p-1)(q-1)+1) mod pq
1. Èç¹û a ²»ÊÇ p µÄ±¶Êý, Ò²²»ÊÇ q µÄ±¶Êýʱ,
? Ôò a^(p-1) == 1 mod p (·ÑÂíС¶¨Àí)?=>?a^(k(p-1)(q-1)) == 1 mod p
???a^(q-1) == 1 mod q (·ÑÂíС¶¨Àí)?=>?a^(k(p-1)(q-1)) == 1 mod q
? ËùÒÔ p, q ¾ùÄÜÕû³ý a^(k(p-1)(q-1)) - 1?=>?pq | a^(k(p-1)(q-1)) -
1
? ¼´ a^(k(p-1)(q-1)) == 1 mod pq
? =>?c == a^(k(p-1)(q-1)+1) == a mod pq
2. Èç¹û a ÊÇ p µÄ±¶Êý, µ«²»ÊÇ q µÄ±¶Êýʱ,
? Ôò a^(q-1) == 1 mod q (·ÑÂíС¶¨Àí)
? =>?a^(k(p-1)(q-1)) == 1 mod q
? =>?c == a^(k(p-1)(q-1)+1) == a mod q
? =>?q | c - a
? Òò p | a
? =>?c == a^(k(p-1)(q-1)+1) == 0 mod p
? =>?p | c - a
? ËùÒÔ, pq | c - a?=>?c == a mod pq
3. Èç¹û a ÊÇ q µÄ±¶Êý, µ«²»ÊÇ p µÄ±¶Êýʱ, Ö¤Ã÷ͬÉÏ
4. Èç¹û a ͬʱÊÇ p ºÍ q µÄ±¶Êýʱ,
? Ôò pq | a
? =>?c == a^(k(p-1)(q-1)+1) == 0 mod pq
? =>?pq | c - a
? =>?c == a mod pq
????????????????????Q.E.D.
Õâ¸ö¶¨Àí˵Ã÷ a ¾¹ý±àÂëΪ b ÔÙ¾¹ý½âÂëΪ c ʱ, a == c mod n?(n =
pq)....
µ«ÎÒÃÇÔÚ×ö±àÂë½âÂëʱ, ÏÞÖÆ 0 <= a < n, 0 <= c < n,
ËùÒÔÕâ¾ÍÊÇ˵ a µÈì¶ c, ËùÒÔÕâ¸ö¹ý³ÌȷʵÄÜ×öµ½±àÂë½âÂëµÄ¹¦ÄÜ.....
¶þ¡¢RSA µÄ°²È«ÐÔ
RSAµÄ°²È«ÐÔÒÀÀµÓÚ´óÊý·Ö½â£¬µ«ÊÇ·ñµÈͬÓÚ´óÊý·Ö½âһֱδÄܵõ½ÀíÂÛÉϵÄÖ¤
Ã÷£¬ÒòΪûÓÐÖ¤Ã÷ÆÆ½â RSA¾ÍÒ»¶¨ÐèÒª×÷´óÊý·Ö½â¡£¼ÙÉè´æÔÚÒ»ÖÖÎÞÐë·Ö½â´óÊýµÄËã
·¨£¬ÄÇËü¿Ï¶¨¿ÉÒÔÐ޸ijÉΪ´óÊý·Ö½âËã·¨¡£Ä¿Ç°£¬ RSA µÄһЩ±äÖÖËã·¨Òѱ»Ö¤Ã÷µÈ¼Û
ÓÚ´óÊý·Ö½â¡£²»¹ÜÔõÑù£¬·Ö½ânÊÇ×îÏÔÈ»µÄ¹¥»÷·½·¨¡£ÏÖÔÚ£¬ÈËÃÇÒÑÄÜ·Ö½â¶à¸öÊ®½øÖÆ
λµÄ´óËØÊý¡£Òò´Ë£¬Ä£Êýn ±ØÐëÑ¡´óһЩ£¬Òò¾ßÌåÊÊÓÃÇé¿ö¶ø¶¨¡£
Èý¡¢RSAµÄËÙ¶È
ÓÉÓÚ½øÐеͼÊÇ´óÊý¼ÆË㣬ʹµÃRSA×î¿ìµÄÇé¿öÒ²±ÈDESÂýÉϱ¶£¬ÎÞÂÛÊÇÈí¼þ»¹ÊÇ
Ó²¼þʵÏÖ¡£ËÙ¶ÈÒ»Ö±ÊÇRSAµÄȱÏÝ¡£Ò»°ãÀ´ËµÖ»ÓÃÓÚÉÙÁ¿Êý¾Ý¼ÓÃÜ¡£
ËÄ¡¢RSAµÄÑ¡ÔñÃÜÎĹ¥»÷
RSAÔÚÑ¡ÔñÃÜÎĹ¥»÷ÃæÇ°ºÜ´àÈõ¡£Ò»°ã¹¥»÷ÕßÊǽ«Ä³Ò»ÐÅÏ¢×÷Ò»ÏÂαװ(
Blind)£¬ÈÃÓµÓÐ˽ԿµÄʵÌåÇ©Êð¡£È»ºó£¬¾¹ý¼ÆËã¾Í¿ÉµÃµ½ËüËùÏëÒªµÄÐÅÏ¢¡£Êµ¼Ê
ÉÏ£¬¹¥»÷ÀûÓõͼÊÇͬһ¸öÈõµã£¬¼´´æÔÚÕâÑùÒ»¸öÊÂʵ£º³ËÃݱ£ÁôÁËÊäÈëµÄ³Ë·¨½á¹¹£º
( XM )^d = X^d *M^d mod n
?Ç°ÃæÒѾÌáµ½£¬Õâ¸ö¹ÌÓеÄÎÊÌâÀ´×ÔÓÚ¹«Ô¿ÃÜÂëϵͳµÄ×îÓÐÓõÄÌØÕ÷--ÿ¸öÈË
¶¼ÄÜʹÓù«Ô¿¡£µ«´ÓËã·¨ÉÏÎÞ·¨½â¾öÕâÒ»ÎÊÌ⣬Ö÷Òª´ëÊ©ÓÐÁ½Ìõ£ºÒ»ÌõÊDzÉÓúõĹ«Ô¿
ÐÒ飬±£Ö¤¹¤×÷¹ý³ÌÖÐʵÌå²»¶ÔÆäËûʵÌåÈÎÒâ²úÉúµÄÐÅÏ¢½âÃÜ£¬²»¶Ô×Ô¼ºÒ»ÎÞËùÖªµÄÐÅ
ϢǩÃû£»ÁíÒ»ÌõÊǾö²»¶ÔİÉúÈËËÍÀ´µÄËæ»úÎĵµÇ©Ãû£¬Ç©ÃûʱÊ×ÏÈʹÓÃOne-Way
HashFunction ¶ÔÎĵµ×÷HASH´¦Àí£¬»òͬʱʹÓò»Í¬µÄÇ©ÃûËã·¨¡£ÔÚÖÐÌáµ½Á˼¸ÖÖ²»Í¬
ÀàÐ͵Ĺ¥»÷·½·¨¡£
Îå¡¢RSAµÄ¹«¹²Ä£Êý¹¥»÷
Èôϵͳ****ÓÐÒ»¸öÄ£Êý£¬Ö»ÊDz»Í¬µÄÈËÓµÓв»Í¬µÄeºÍd£¬ÏµÍ³½«ÊÇΣÏյġ£×îÆÕ
±éµÄÇé¿öÊÇͬһÐÅÏ¢Óò»Í¬µÄ¹«Ô¿¼ÓÃÜ£¬ÕâЩ¹«Ô¿¹²Ä£¶øÇÒ»¥ÖÊ£¬ÄÇÄ©¸ÃÐÅÏ¢ÎÞÐè˽Կ
¾Í¿ÉµÃµ½»Ö¸´¡£ÉèPΪÐÅÏ¢Ã÷ÎÄ£¬Á½¸ö¼ÓÃÜÃÜԿΪe1ºÍe2£¬¹«¹²Ä£ÊýÊÇn£¬Ôò£º
C1 = P^e1 mod n
C2 = P^e2 mod n
ÃÜÂë·ÖÎöÕßÖªµÀn¡¢e1¡¢e2¡¢C1ºÍC2£¬¾ÍÄܵõ½P¡£
ÒòΪe1ºÍe2»¥ÖÊ£¬¹ÊÓÃEuclideanËã·¨ÄÜÕÒµ½rºÍs£¬Âú×㣺
r * e1 + s * e2 = 1
¼ÙÉèrΪ¸ºÊý£¬ÐèÔÙÓÃEuclideanËã·¨¼ÆËãC1^(-1)£¬Ôò
( C1^(-1) )^(-r) * C2^s = P mod n
?ÁíÍ⣬»¹ÓÐÆäËü¼¸ÖÖÀûÓù«¹²Ä£Êý¹¥»÷µÄ·½·¨¡£×ÜÖ®£¬Èç¹ûÖªµÀ¸ø¶¨Ä£ÊýµÄÒ»
¶ÔeºÍd£¬Ò»ÊÇÓÐÀûÓÚ¹¥»÷Õß·Ö½âÄ£Êý£¬Ò»ÊÇÓÐÀûÓÚ¹¥»÷Õß¼ÆËã³öÆäËü³É¶ÔµÄe¡¯ºÍd¡¯£¬
¶øÎÞÐè·Ö½âÄ£Êý¡£½â¾ö°ì·¨Ö»ÓÐÒ»¸ö£¬ÄǾÍÊDz»Òª¹²ÏíÄ£Êýn¡£
? RSAµÄСָÊý¹¥»÷¡£ ÓÐÒ»ÖÖÌá¸ß RSAËٶȵĽ¨ÒéÊÇʹ¹«Ô¿eÈ¡½ÏСµÄÖµ£¬ÕâÑù
»áʹ¼ÓÃܱäµÃÒ×ÓÚʵÏÖ£¬ËÙ¶ÈÓÐ
ËùÌá¸ß¡£µ«ÕâÑù×÷ÊDz»°²È«µÄ£¬¶Ô¸¶°ì·¨¾ÍÊÇeºÍd¶¼È¡½Ï´óµÄÖµ¡£
? RSAËã·¨ÊǵÚÒ»¸öÄÜͬʱÓÃÓÚ¼ÓÃܺÍÊý×ÖÇ©ÃûµÄËã·¨£¬Ò²Ò×ÓÚÀí½âºÍ²Ù×÷¡£
RSAÊDZ»Ñо¿µÃ×î¹ã·ºµÄ¹«Ô¿Ëã·¨£¬´ÓÌá³öµ½ÏÖÔÚÒѽü¶þÊ®Ä꣬¾ÀúÁ˸÷ÖÖ¹¥»÷µÄ¿¼
Ñ飬Öð½¥ÎªÈËÃǽÓÊÜ£¬ÆÕ±éÈÏΪÊÇĿǰ×îÓÅÐãµÄ¹«Ô¿·½°¸Ö®Ò»¡£RSAµÄ°²È«ÐÔÒÀÀµÓÚ´ó
ÊýµÄÒò×ӷֽ⣬µ«²¢Ã»ÓдÓÀíÂÛÉÏÖ¤Ã÷ÆÆÒëRSAµÄÄѶÈÓë´óÊý·Ö½âÄѶȵȼۡ£¼´RSAµÄÖØ
´óȱÏÝÊÇÎÞ·¨´ÓÀíÂÛÉϰÑÎÕËüµÄ±£ÃÜÐÔÄÜÈçºÎ£¬¶øÇÒÃÜÂëѧ½ç¶àÊýÈËÊ¿ÇãÏòÓÚÒò×Ó·Ö½â
²»ÊÇNPCÎÊÌâ¡£ RSAµÄȱµãÖ÷ÒªÓУºA)²úÉúÃÜÔ¿ºÜÂé·³£¬Êܵ½ËØÊý²úÉú¼¼ÊõµÄÏÞÖÆ£¬Òò
¶øÄÑÒÔ×öµ½Ò»´ÎÒ»ÃÜ¡£B)·Ö×鳤¶ÈÌ«´ó£¬Îª±£Ö¤°²È«ÐÔ£¬n ÖÁÉÙÒ²Òª 600 bits ÒÔÉÏ£¬
ʹÔËËã´ú¼ÛºÜ¸ß£¬ÓÈÆäÊÇËٶȽÏÂý£¬½Ï¶Ô³ÆÃÜÂëËã·¨Âý¼¸¸öÊýÁ¿¼¶£»ÇÒËæ×Å´óÊý·Ö½â¼¼
ÊõµÄ·¢Õ¹£¬Õâ¸ö³¤¶È»¹ÔÚÔö¼Ó£¬²»ÀûÓÚÊý¾Ý¸ñʽµÄ±ê×¼»¯¡£Ä¿Ç°£¬SET( Secure
Electronic Transaction )ÐÒéÖÐÒªÇóCA²ÉÓñÈÌØ³¤µÄÃÜÔ¿£¬ÆäËûʵÌåʹÓñÈÌØµÄÃÜ
Ô¿¡£
Ò³:
[1]