Hình 4.14. Phân tích modulus c a rabin v i m t ch ng trình ươ
con gi i mã cho tr c. ướ
B i v y giá tr x s thu đ c b c 3. Ti p theo xét b c 4. ượ ướ ế ướ
Nh n th y r ng x 12 = r2 (mod n). Đi u đó d n t i x 1 ±r (mod n)
ho c x1 ±wr (mod n), trong đó w là m t trong các căn b c hai
không t m th ng c a 1 modulo n. Trong tr ng h p th hai ta ườ ườ
có :
n(x1-r )(x1+r)
song n không ph i là c c a m t th a s nào v ph i. B i v y, ướ ế
vi c tính UCLN(x1 +r,n)(ho c UCLN(x1-r, n)) ph i d n t i ho c p
ho c q, và nh v y phép phân tích n đ c hoàn thành. ư ượ
Ta s tính xác su t thành công c a thu t toán này trên t t c
(n-1) phép ch n ng u nhiên r. V i hai th ng d khác không r ư 1
r2 , đ nh nghĩa:
r1 ~ r2 r12 r22 (mod n)
D dàng th y r ng r ~ r v i m i r, r 1 ~ r2 cũng có nghĩa là r2 ~
r1; r1 ~ r2 và r2 ~ r3 thì r1 ~ r3 . Đi u đó cho ta th y r ng quan h ~ là
m t quan h t ng đ ng. Các l p t ng đ ng c a Z ươ ươ ươ ươ n\{0} đ u
có b n ph n t , l p t ng đ ng ch a r là t p ươ ươ
[r] = {±r, ±wr (mod n)}
trong đó w là căn b c hai không t m th ng c a 1 modulo n. ườ
1. Ch n m t s ng u nhiên r , 1 r n-1
2. Tính y = r2 - B2/4 mod n
3. G i ch ng trình con A(y) đ tìm b n ươ
gi i mã x
4. Tính x1 = x+B/2
5. If x1 ± r (mod n) then quit (không
thành công)
Else UCLN(x1+r,n)=p ho c q (thành
công)
Trong thu t toán đ c trình bày hình 4.14, hai giá tr r b t ượ
kỳ trong cùng m t l p t ng đ ng s d n t i cùng m t giá tr y. ươ ươ
Bây gi xét giá tr x thu đ c t ch ng trình con A khi đã bi t y. ượ ươ ế
Ta có:
[y]={±y, ±wy}
N u r=ế±y thì thu t toán không thành công;
trong khi n u r=ế±wy thì thu t toán s thành
công. Vì r c ch n ng u nhiên, nên m t giáđượ
tr b t k trong b n giá tr có th u cùng đề
kh n ng. Ta k t lu n r ng xác su t thành công ă ế
c a thu t toán là 1/2.
i u thú v là h m t rabin là an toàn iĐ đố
v i ph ng pháp t n công b n rõ ch n l c, ươ
mh mg h này l i hoàn toàn không an toàn iư đố
v i ph ng pháp t n công b m mã ch n l c. ươ
Thu t toán hình 4.14, ph n dùng ch ng để
minh s an toàn i v i phép t n công b n rõ đố
ch n l c c ng có th c dùng phá h m t ũ đượ để
Rabin khi th c hi n t n công b n mã ch n l c!.
Trong ph ng pháp t n công b n mã ch n l c,ươ
ch ng trình con A c thay b ng thu t toánươ đượ
gi i mã c a Bob.
4.8. Các thu t toán phân tích th a s .
Đã có m t kh i l ng kh ng l các tìa li u v các thu t ượ
toán phân tích th a s và vi c nghiên c u k l ng s đòi h i ưỡ
ph i có m t cu n sách dày h n quy n sách này. đây ch c g ng ơ
đ a ra m t cái nhìn khái quát bao g m vi c th o lu n s l c vư ơ ượ
các thu t toán phân tichs th a s t t nh t hi n th i và cách s
d ng chúng trong th c t . Ba thu t toán hi u qu nh t trên các s ế
th t l n là sàng b c hai, thu t toán đ ng cong elliptic và sàng ườ
tr ng s . Các thu t toán n i ti ng khác (nh ng thu t toán toán cóườ ế
tr c) bao g m ph ng pháp ướ ươ ρ và thu t toán p-1 c a Pollard,
thu t toán p+1 c a Williams, thu t toán liên phân s và dĩ nhiên c
nh ng phép chia th .
Trong toàn b ph n này, xchúng ta c ìng s nguyên n c n
phân tích ra th a s là m t s l . Phép chia th bao g m vi c chia
n
cho t ng s nguyên l cho t i . N u n < 10 ế 12 thì đây là m t
ph ng pháp phân tích th a s h p lý m t cáchươ
hoàn h o, tuy nhiên v i n l n h n nói chung ta ơ
ph i dùng các k thu t tinh t h n. ế ơ
4.8.1. Ph ng pháp p-1ươ
Thu t toán p-1 c a Pollar (đ a ra vào năm 1947) là m t thí ư
d v m t thu t toán đ n gi n đ n khi đ c áp d ng v i các s ơ ơ ượ
nguyên l n. Thu t toán này (trình bày trên hình 4.15) có hai đ u
vào: s nguyên l n c n đ c phân tích và m t c n B. Có th ượ
t thu t toán nh sau: ư
Hình 4.15. Thu t toán phân tích th a s p-1.
Gi s p là c mhuyên t c a n và q ướ B , v i m i mũ
nguyên t p(p-1). Khi đó
(p-1)B!
cu i vòng l p for (b c 2) ướ
[ ]
n
Đ u vào: n và B
1. a=2
2. For j=2 to B do
a = aj mod n
3. d = UCLN(a-1,n)
4. if 1 < d < n then
d là m t th a s c a n
else
không tìm đ c th a s c a n ượ
(không thành công)
a 2B! (mod n)
nên a 2B! (mod p)
vì pn. nên theo đ nh ý Fermat ta có :
135979 × 115979
Trong tr ng h p này, phép phân tích s thànhườ
công do 135978 ch g m các th a s nguyên t
nh :
Vì th ế
135978 = 2 × 3 ×131 × 173
n u l y B ế 173 thì ch c ch n r ng 135978 ă B!
nh mong mu n.ư
Trong thu t toán có (B-1) lu th a theo modulo, m i lu c n
nhi u nh t là 2log 2B phép nhân modulo dùng thu t toán bình
ph ng và nhân. Vi c tính c chung l n nh t có th th c hi nươ ướ
trong th i gian O((log n)3) b ng thu t toán Euclide. B i v y, đ
ph c t p c a thu t toán là O(B logB (log n) 2 +(log n)3). N u B làế
O((log n)i) v i m t s nguyên i xác đ nh nào đó thì thu t toán th c
s là thu t toán th i gian đa th c, tuy nhiên v i phép ch n B nh ư
v y, xác su t thành công s r t nh . M t khác, n u tăng kích ế
th c c a B lên th t l n (ch ng h n t i ?????????????? ) thìướ
thu t toán s thành công nh ng nó s không th c hi n nhanh h n ư ơ
phép chia th .
Nh v y, đi m b t l i c a thu t toán này là nó yêu c u nư
ph i có c nguyên t p sao cho (p-1) ch các th a s nguyên t ướ
bé. Ta có th d dàng xây d ng đ c h m t RSA v i modulus n= ượ
pq h n ch đ c vi c phân tích theo ph ng pháp này. Tr c tiên ế ượ ươ ướ
tìm m t s nguyên t l n p 1 sao cho p= 2p1+1 cũng là m t s
nguyên t và m t s nguyên t l n q 1 sao cho q= 2q1+1 cũng là m t
s nguyên t (nh dùng m t trong các thu t toán ki m tra tính
nguyên t Monte-Carlo nêu trong ph n 4.5). Khi đó modulo c a
RSA n= pq s ch ng đ c cách phân tích theo ph ng pháp p-1. ượ ươ
Thu t toán đ ng cong elliptic m nh h n (đ c Lenstra xây ườ ơ ượ
d ng vào nh ng năm 1980) trên th c t là s t ng quát hoá c a ế
ph ng pháp p-1. Ta s không th o lu n v lý thuy t đây mà chươ ế
nh n m nh r ng, thành công c a ph ng pháp đ ng cong elliptic ươ ườ
tuỳ thu c vào tình hu ng t ng t : m t s nguyên “g n v i” p ch ươ
có các th a s nguyên t bé. Trong khi ph ng pháp p-1 ph thu c ươ
vào quan h trong Zp thì ph ng pháp đ ng cong elliptic phươ ườ
thu c vào các nhóm xác đ nh trên các đ ng cong elliptic theo ườ
modulo n.
4.8.2. Thu t toán Dixon và sàng b c hai
Thu t toán Dixon c xây d ng trên ý đượ
t ng n gi n mà ta ã th y trong h m tưở đơ đ
Rabin. ý t ng ó là: n u tìm c x ưở đ ế đượ ±y
(mod n) sao cho x2y2 (mod n) thì UCLN(x-y,n)
c không t m th ng c a n.ướ ườ
Ph ng pháp này s d ng ươ c s nhân t ơ
m t t p b ch a các s nguyên t bé. Tr c tiên ướ
ta nh n c m t vài s nguyên x sao cho t t đượ
c các th a s nguyên t c a x 2 (mod n) n m
trong c s b (cách th c hi n i u này sơ đ
c th o lu n sau). ý t ng th c hiên âyđượ ưở đ
là l y tích c a m t vài giá tr sao cho m i s ĩ
nguyên t trong c s c s d ng m t s ơ đượ
ch n l n. i u này d n n m t ng d th c Đ đế đồ ư
d ng mong mu n x 2 y2 (mod n) mà ta hy v ng
s a n vi c phân tích n. đư đế
Ta s minh ho b ng m t ví d ã c d đ đượ
tính k l ng. ưỡ
Ví d 4.15
Gi s n=15770708441(giá tr n này ã dùng đ
trong ví d 4.14). Gi s b = {2,3,5,7,11,13}.
Xét ba ng th c sau:đồ
83409341562 3 × 7 (mod n)
120449429442 1 × 7 × 13 (mod n)
27737000112 =2 × 3 × 13 (mod n)
N u l y tích c a ba đ ng d th c trên:ế ư