2n ·å¤Î¿ô u¡¤v¤Î¾è»»¤ò¹Ô¤¦¤³¤È¤ò¹Í¤¨¤ë¡¥u¡¤v ¤ò´ð¿ô b ¤ÎÑÑ x = bn ¤òÍѤ¤¤Æ
u = u1x + u0¡¤¡¡v = v1x + v0
¤Î¤è¤¦¤Ë¾åȾʬ¤È²¼È¾Ê¬¤Ëʬ¤±¤ì¤Ð¡¤x ¤ò´ð¿ô¤È¤·¤¿¾è»»¤È¹Í¤¨¤ë¤³¤È¤¬¤Ç¤¤ë¡¥
¤³¤Î¤È¤Ã±½ã¤Ë w = u v ¤òµá¤á¤ë¤È¡¤
w = u1v1x2 + (u0v1 + u1v0)x + u0v0
¤Î¤è¤¦¤Ë n ·å ¡ß n ·å¤Î¾è»»¤¬ 4²óɬÍפǤ¢¤ë¡¥¤·¤«¤·
u0v1 + u1v0 = (u1 + u0)(v1 + v0) - (u1v1 + u0v0)
¤Þ¤¿¤Ï
u0v1 + u1v0 = u1v1 + u0v0 - (u1 - u0)(v1 - v0)
¤È¤¤¤¦´Ø·¸¤ò»È¤¨¤Ð n ·å¡ßn ·å¤Î¾è»»¤Ï 3²ó¤ÇºÑ¤à¤³¤È¤¬Ê¬¤«¤ë¡¥¤³¤³¤Ç¡¤¤µ¤é¤Ë u1,u0,v1,v0 ¤Î¾å°Ì¤Î·å¤ò 0 ¤ÇËä¤á¤Æ·å¿ô¤ò¶ö¿ô¤Ë¤¹¤ë¤«¡¤¤¢¤ë¤¤¤Ï»Ï¤á¤«¤é u¡¤v ¤Î·å¿ô¤ò 2¤ÎÑѤˤ·¤Æ¤ª¤±¤Ð¡¤3²ó¤Î¾è»»¤ËƱ¤¸¥¢¥ë¥´¥ê¥º¥à¤òºÆµ¢Åª¤ËŬÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤ë¡¥¤³¤Î¾è»»¥¢¥ë¥´¥ê¥º¥à¤ò Karatsuba¾è»»(Karatsuba Multiplication)¤È¤¤¤¦¡¥ ¤¹¤Ê¤ï¤Á¡¤ b ¿ÊË¡¤Çɽ¸½¤·¤¿¤È¤ 2·å¤Ë¤Ê¤ëÀ°¿ôƱ»Î¤Î¾è»»¤Ï¡¤b ¿ÊË¡¤Ç 1·å¤ÎÀ°¿ôƱ»Î¤Î¾è»»¤ò 3²ó¤È¡¤¤½¤ì¤è¤ê¤â¥³¥¹¥È¤Î½½Ê¬¤Ë¾®¤µ¤¤²Ã¸º»»¤òÍѤ¤¤Æ¹Ô¤¦¤³¤È¤¬¤Ç¤¤ë¡¥
n = 2k¤È²¾Äꤷ¤¿¤È¤¡¤b ¿ÊË¡¤Ç n ·å¤ÎÀ°¿ôƱ»Î¤Î¾è»»¤òKaratsuba¾è»»¤Ç¹Ô¤¦¤È¡¤b ¿ÊË¡¤Ç1·å¤ÎÀ°¿ôƱ»Î¤Î¾è»»¤¬ 3k ²óɬÍפȤʤ롥k = log2 n ¤è¤ê¡¤¤³¤ÎÊýË¡¤Ç¤Î b ¿ÊË¡¤Ç n ·å¤ÎÀ°¿ôƱ»Î¤Î¾è»»¤Î¥³¥¹¥È¤Ï¡¤3k = 3log2 n = nlog2 3 ¢â n1.585 ÄøÅ٤ǺѤळ¤È¤Ë¤Ê¤ë¡¥¼ÂºÝ¤Ë¤Ï n ¤¬ 2k ¤Çɽ¸½¤Ç¤¤ë¤È¤Ï¸Â¤é¤Ê¤¤¤Î¤Ç¡¤ 2k ¤Çɽ¸½¤Ç¤¤Ê¤¤¤È¤¤Ï n1.585 ¤è¤ê¤â¾¯¤·Í¾·×¤Ë¤«¤«¤ë¡¥
¿¹à¼°¤ÎÊÑ¿ô x ¤Î·¸¿ô¤ò·×»»¤¹¤ë¤È¤¤Ë¡¤x0 ¤ä x2 ¤Î·¸¿ô¤òºÆÍøÍѤ¹¤ë¤³¤È¤Ë¤è¤ê¡¤²Ã¸º»»¤è¤êÃÙ¤¤¾è»»¤Î²ó¿ô¤òºï¸º¤Ç¤¹â®²½¤¬¿Þ¤ì¤ë¡Êai ¤ä bi ¤¬Â¿¹à¼°¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï¸ú²Ì¤¬¤¢¤ë¡Ë¡¥
(a0 + a1 x)(b0 + b1 x) = a0b0 + (a0b1 + a1b0) x + a1b1 x2
¡¡= a0b0 + {(a0 + a1)(b0 + b1) - a0b0 - a1b1} x + a1b1 x2
(a0 + a1 x + a2 x2)(b0 + b1 x + b2 x2)
¡¡= a0b0 + [{(a0 + a1)(b0 + b1) - a1b1} - a0b0] x + [(a0 + a1 + a2)(b0 + b1 + b2)
¡¡ - {(a0 + a1)(b0 + b1) - a1b1} - {(a1 + a2)(b1 + b2) - a1b1}]
x2
¡¡ + [{(a1 + a2)(b1 + b2) - a1b1} - a2b2] x3 + a2b2 x4
x ¢á a1 (mod p1)
x ¢á a2 (mod p2)
¡¦¡¦¡¦
x ¢á am (mod pm)
¤«¤é¤Ê¤ëϢΩ°ì¼¡¹çƱ¼°¤Ï¡¤Ë¡ n = p1p2¡¦¡¦¡¦pm ¤Î¤â¤È¤Ç¼¡¤Î°ì°Õ¤Ê²ò¤ò¤â¤Ä¡¥x = a1n1x1 + a2n2x2 + ¡¦¡¦¡¦ + amnmxm (mod n)
nixi ¢á 1 (mod pi), ¡¡ni = n/pi
¡¡x ¢á 1 (mod 4)
¡¡x ¢á 3 (mod 5)
¡¡x ¢á 2 (mod 7)
¤Ï¡¤¼¡¤Î¤è¤¦¤Ë²ò¤±¤ë¡¥¡¡4¡¦5¡¦7 = 35¡¦4 = 28¡¦5 = 20¡¦7 = 140
¡¡35¡¦3 ¢á 1 (mod 4)
¡¡28¡¦2 ¢á 1 (mod 5)
¡¡20¡¦6 ¢á 1 (mod 7)
¡¡x = 35¡¦3¡¦1 + 28¡¦2¡¦3 + 20¡¦6¡¦2 = 93 (mod 140)
N ¤¬¹çÀ®¿ô¤Î¾ì¹ç¡¤N ¤Î°ø¿ôʬ²ò¤ÈÃæ¹ñ¿Í¾ê;ÄêÍý¤òÍѤ¤¤Æ¤Ù¤¾è¾ê;±é»»¤ò¹â®²½¤Ç¤¤ë¡¥
N = ¦° pi, GCD(pi, pj) = 1 (i ¡â j) ¤È°ø¿ôʬ²ò¤Ç¤¤¿¾ì¹ç¡¤
Y = Xe mod N ¤Ï¤¹¤Ù¤Æ¤Î i ¤ËÂФ·¤Æ Y = Xe mod pi ¤òËþ¤¿¤¹¿ô¤Ç¤¢¤ë¡¥
Y ¤Ï¡¤Yi = Xe mod pi ¤ò·×»»¤¹¤ì¤ÐÃæ¹ñ¿Í¾ê;ÄêÍý¤òÍѤ¤¤Æ¡¤
Y = ô (N / pi)diYi mod N
¤Çµá¤á¤é¤ì¤ë¡¥ ¤³¤³¤Ç¡¤ di ¤Ï di¡¦N / pi = 1 mod pi¤òËþ¤¿¤¹¿ô¤Ç¤¢¤ë¡¥
¾åµ¤ÎÃæ¹ñ¿Í¤Î¾ê;ÄêÍý¤Ï¡¤RSA°Å¹æ¤ÎÉü¹æ¤Ë¼¡¤Î¤è¤¦¤ËÍøÍѤµ¤ì¤ë¡¥
M = Cd mod n¡¡(n = pq¡§p¡¤q ¤Ï¸ß¤¤¤ËÁǤÊÀ°¿ô)¤ò·×»»¤¹¤ë¾ì¹ç¡¤
c1 = C mod p,¡¡ c2 = C mod q
d1 = d mod p - 1,¡¡d2 = d mod q - 1
m1 = Cd mod p = c1d mod p = c1d1 mod p
m2 = Cd mod q = c2d mod q = c2d2 mod q
¤è¤ê¡¤¼¡¤ÎϢΩÊýÄø¼°¤ò²ò¤±¤Ð¤è¤¤¡¥
M ¢á m1 (mod p)
M ¢á m2 (mod q)
= a1a2 + (a1b2 + a2b1)p mod p2
= a' + (a1b2 + a2b1 + b')p mod p2
= a' + a''p¡¡ (< p2)
a-1 = (ab)-1¡¦b
b-1 = (ab)-1¡¦a
¤Ë¤è¤ê¡¤£±²ó¤ÎµÕ¸µ¤È 3²ó¤Î¾è»»¤Ç¹Ô¤¦¤³¤È¤¬¤Ç¤¤ë¡¥(ab)-1 = (ab¡¦cd)-1¡¦cd
(cd)-1 = (ab¡¦cd)-1¡¦ab
R =bt > p
¤Ë¤è¤ê¡¤R ¤È t ¤òÄêµÁ¤¹¤ë¡¥ ¤³¤Î¤È¤¡¤ GF(p) ¤Î¸µ x ¤ËÂФ·¤ÆxR (mod p)
¤ò x ¤Î Montgomeryɽ¸½¤È¤¤¤¦¡¥¤³¤Îɽ¸½¤ÈÄ̾ï¤Îɽ¸½¤È¤Ï1ÂÐ1Âбþ¤Ç¤¢¤ë¡¥MR(y) = yR-1 (mod p)
Montgomery´Ô¸µ¤Ï¡¤°Ê²¼¤Î¥¢¥ë¥´¥ê¥º¥à¤ÇÍ¿¤¨¤é¤ì¤ë¡¥x, y ¢º GF(p)
z = xy (mod p)
X = xR (mod p)
Y = yR (mod p)
Z = xyR (mod p)
Z = XYR-1 = (xyR2)R-1 = xyR (mod p)
MR(Z) = (xyR)R-1 = xy (mod p)
x ¢º GF(p)
z = x-1 (mod p)
X = xR (mod p)
Z = x-1R (mod p)
Z = X-1R2 = (xR)-1R2 = x-1R (mod p)
MR(Z) = (x-1R)R-1 = x-1 (mod p)
x, e ¢º GF(p)
z = xe (mod p)