Tải bản đầy đủ (.docx) (44 trang)

Khoá luận tốt nghiệp phân tích thừa số nguyên tố và ứng dụng trong mật mã

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (436.9 KB, 44 trang )

TRƯỜNG ĐẠI HỌC sư PHẠM HÀ NỘI 2 KHOA TOÁN
------0O0----------------

KHÓA LUẬN TỐT NGHIỆP

PHÂN TÍCH THỪA SỐ NGUYÊN Tố VÀ ỨNG DỤNG TRONG
MẬT MÃ

Chuyên ngành: TOÁN ỨNG DỤNG

Giảng viên hướng dẫn: Sinh viên: Lớp:

Trần Vĩnh Đức Đặng

Kiều Trang K37-sp

Toán

HÀ NỘI, 5/2015


Bài khóa luận này được hoàn thành dưới sự hướng dẫn nhiệt tình của thầy giáo

T.s Trần Vĩnh Đức. Qua đây em xin

LỜI CẢM ƠN
gửi lời cảm ơn sâu sắc tới các thầv cô trong tổ Toán ứng dụng và các thầy cô trong khoa Toán trường ĐHSP Hà Nội 2 đã
giúp đỡ em trong quá trình học tập đổ thuận lợi cho việc nghiên cứu. Đặc biệt, em xin gửi lời cảm

ƠI1 chân


thành tới thầv giáo

T.s Trần Vĩnh Đức người đã dành cho em sự hướng dẫn nhiệt tình, chu đáo và chỉ bảo cho em trong suốt quá trình học tập
nghiên cứu và thực liiệĩi khóa hiận.

DÌ1 đã hết sức cố gắng, nhưng do dây là lần đầu tiên làm quen với viộc nghiên cứu klioa học và do năng lực còn hạn chế
nên khó tránh khỏi những sai sót. Em mong muốn nhận được sự chỉ bảo, đóng góp của quí thầy cô để cho bài khóa luận được
tốt hơn.

Em xin chân thành cảm ơn!
H à N ộ i , t há ng 0 5 nă m 2 0 í 5 Sinh viên

Đặng Kiều Trang

Sau một thời gian nghiên cứu với sự cố gắng, nỗ lực của bản thân cùng sự hướng dẫn nhiệt tình chỉ bảo của thầv giáo T.s
Trần Vĩnh Đức em đã hoàn thành bài khóa luận của mình.

Em xin cam đoan bài khóa luận là do bản thân nghiên cứu cùng với sự hướng dẫn của thầy giáo T.s Trần Vĩnh Đức
không hồ trùng với bất cứ đồ tài nào.


H à N ộ i , t há ng 0 5 nă m 2 0 í 5 Sinh viên
LỜI CAM ĐOAN

Dặng Kiều Trang

MỤC LỤC

Lời cảm ớn
Lời cam đoan

1 Phân tích thừa số nguvẽn tố và ứng dung trong mât mã RSA
1.1 Cônư thức Eulor
1.2 Hê mât mã khóa công khai RSA
1.3 Kiểm tra tính nguyện tố
L á __Thuât toán phép nhân tử hóa Pollard p-1
1.5 Phân tích thừa số qua hiôu của các bình phương
2 Số t r ơ n , sà n e v à x âv d ưn e a ua n h ê c ho Dh é D nh â n t ử ho á
?,
1?,
?.
2.
3
Tài liêu

Số
tSà
r ưĩ nml b. âc
. .
ha i
Sà n Q ' t r ư ờ ng
số
tham khảo


C HƯ Ơ NG 1

LỜI CẢM ƠN

PHÂN TÍCH THỪA SỐ NGUYÊN Tố VÀ ỨNG DỤNG TRONG MẬT MÃ RSA


1.1 Công thức Euler
Phương pháp thay đổi khóa Diffie-Hellman và hệ thống mật mã khóa công khai
ElGamal đã nghiên cứu dựa trên thực tế thì nó rất dễ để tính lũy thừa a n m o d p ,
n h ư n g r ấ t k h ó đ ể t ì m l ạ i c á c s ố I I 1Ũ n n ế u t a c h ỉ b i ế t g i á t r ị c ủ a
a và A N mod p. Một kết quả quan trọng mà chúng ta sử dụng đe phân tích tính đúng

đắn của Diffie-Hellman và ElGamal là Định lý Fermat nhỏ,
AP

~ L = l(mod p) với mọi а Ф 0 (mod p).

Định lý Fermat nhỏ thể hiện ruột tính chất tốt của các số nguyên tố. Nó cho ta biết
điều gì sẽ xảy ra nếu thay

P

bằng số

M

không phải là số nguyên tố, tức là

A

M-Ì

=




( moc [ p) c5 đúng không? Ta thấy câu trả lời là không. Trong phần này ta đi tìm hiểu
khái quát tính đúng đắn của Định lý Fermat nhỏ khi 1 7 1 — P Q là tích của hai số
nguyên tố phân biệt, vì đây là trường hợp quan trụng nhất trong các ứng dụng mã
hóa.
Ta bắt đầu với một ví dụ. Với lũy thừa modun 15 sẽ làm như thế nào? Nếu ta
thựchiện bảng của lũy thừa bậc 2 và bậc 3 mod 15, chúng trông

không thật

thú vị, nhưng nhiều lũy thừa bậc 4 đồng dư với 1 mod 15. Cụ thề, ta thấy

rằng

a 4 = 1 (mod 15) với a = 1,2, 4, 7, 8,11,13 và 14; a A
Ф 1 (mod 15) với a = 3, 5, 6, 9,10 và 12.
Vậy sự khác nhau giữa dãy các số 1, 2, 4, 7, 8, 11,13, 14 với dãy các số 3, 5, 6, 9, 10,12, 15
là gì? Ta thấy, mỗi số 3, 5, 6, 9, 10,12,15 đều có một bội chung 15, còn các số
1, 2,4, 7, 8, 11, 13, 14 là các số nguyên tố cùng nhau với 15. Điều này cho thấy rằng một
số phiên bản của Định lý nhỏ Fermat cũng đúng nếu số

A

là số nguyên t ố c ù n g

nhau với modun 772, nhưng số mũ không nhất thiết phải là 777, —
1.

Cho

M


= 15 ta thấy số mũ đúng là 4. Tại sao là 4? Ta có the dễ dàng kiểm tra với mỗi giá

trị của a, nhưng có một thuật toán cụ thể sẽ tốt hơn. Để chứng minh a 4 = 1 (mod 15) ta cần
kiểm tra 2 đồng dư thức
A

A

= 1 ( M O D 3) và A A = 1 (mod 5).

Từ íll.lỊ) ta thấy
a 4 - 1 : 3 và fl 4 - 1 : 5

(1.1)


Do đó a 4 — 1 : 15.

CAM
ĐOAN
Hai đồng dư thức trong (ỊTTTỊ)LỜI
là nguyên
tố theo
modim nên ta có thể sử dụng Định lý

Fermat nhỏ để kiểm tra chúng là đúng. Thật vậy
a 4 = (a 2)2 = (ứ/3-1))2 = l 2 = 1 (mod 3), a 4 = a 5-1 = 1 (mod
5).
Nếu quan sát hai đồng dư thức này, ta sẽ thấy các tính chất thiết yếu của lũy thừa 4 đó là

1 là bội của 4 với

P

P



= 3 và P = 5. Bằng việc quan sát này, ta sẽ có các công thức cơ bản làm

nền tảng cho các hệ thống mật mã khóa công khai RSA.
Định lí 1.1.1 (Công thức Euler cho pq). Cho p và q là 2 số nguyên tố khác nhau và cho
=

9

UCLN(p — l,q — 1).

Khỉ đó
a

(p-i)(9-i)/ỡ = I (mod pq) Va

THỎA MÃN

ƯCLN(a, pq) = 1.

Đặc biệt, nếu p và q là các số nguyên tố lẻ, thì
a


(p-i)(íf-i)/2 = I ( mo d pq) Va

THỎA MÃN

ƯCLN(a, pq) = 1.

C H Ứ N G M I N H . Theo giả thiết ta thấy P ' / . A và G : Q — 1, nên ta có thể tính ữ (p-i)(9-

i)/ơ — ^ ữ (p-i)^(9-i)/ơ Y - Ị Ị ^ Q _ L ) / G là một số nguyên,
(mod p) vì a p_1 = 1 (móc! p) theo Định lý Fermat nhỏ,

=

= 1 (mod p) vì 1 lũy thừa luôn bằng 1!
Tương tự, thay đổi vai trò của P và ợ, ta có
a

Như vậy

(p-i)(?-i)/0 = I ( mo d q).

— 1 chia hết cho cả

P

và ợ, do đó nó chia hết cho

được điều phải chứng minh.

PQ


. Ta



Phương pháp thay đối khóa Diffie-Hellman và hệ thống mật mã khóa công khai ElGamal
phụ thuộc vào những khó khăn khi giải phương trình dạng
A

Trong đó a,

B



P

X

= B (mod p).

là các số đã biết,

P

là số nguyên tố, và X là ẩn. Hệ thống mật mã khóa

công khai RSA mà chúng ta nghiên cứu trong phần tiếp theo phụ thuộc vào độ khó của việc
giải phường trình dạng
X


E

= C (mod N),

Với e, c và N là các số đã biết và X là ẩn. Nói cách khác, việc bảo mật của RSA dựa trên giả
thiết là nó rất khó để tính căn bậc e modun N .


Đây có phải là một giả thuyết hợp lý? Nếu modun N là số nguyên tố thì sẽ tương đối dễ

LỜI
CẢM
dàng trong việc để tính căn bậc e modun
N , như
được ƠN
trình bày trong các mệnh đề dưới đây.

Mệnh đề 1.1.2. Cho p là một số nguyên tố và e > 1 là một số nguyên thỏa mẫn ƯCLN(c, p
— 1) = 1. Ta thấy rằng e có modun nghịch đảo p — 1, ta nói
DE

— 1 (mod p — 1).

Khỉ đó đồng dư thức
x e = c (mod p). có nghiệm duy
nhất X = c d (mod p).
Chứng minh. Nếu c = 0 (mod p), thì X = 0 (mod p) là nghiệm duy nhất
m à ta cần tìm. Giả sử C ^ 0 (mod p). Đồng dư thức D E = 1 (mod p — 1) có nghĩa là tồn tại


một số nguyên

K

sao cho
de = 1 + k(p — 1).


Bây giờ ta kiểm tra C D là một nghiệm của phương trình
X

E

LỜI CAM ĐOAN
= C (mod p) :

( C Ý Y = C D E (mod p)

=

C

=

C(C

L

+


K

P

luật số mũ,

^ ~ ^ (modp) vì D E = 1 +
P

1

~ L ) K (mod p)

= C • L K (mod p)

=
Như vậy X =

C

D

C

— 1),

K(P

luật số Ĩ11Ũ,
từ Định lý Fermat nhỏ,


(mod p).

là một nghiệm của

X

E

= C (mod p).

Để chứng minh nghiệm đó là duy nhất, ta giả sử X Ị và X 2 là hai nghiệm của đồng dư thức
11.1.21 Ta chỉ cần chứng minh

Z

D E

= Z (mod z) với Z bất kỳ, ta



1 58
3

Vậy Mệnh đề 11.1.21 cỏ nghiệm duy nhất. Ví dụ 1.1.3. Giải
đồng dư thức sau
X

4714 (mod 7919),

Với modun p = 7919 là số nguyên tố. Theo Mệnh đề 11.1.21 đầu tiên ta cần giải đồng
dư thức 1583 D = 1 (mod 7918).
Để tìm

D

ta sử dụng thuật toán Euclide mở rộng, ta tìm được

D

, = 5277 (mod 7981).

Từ Mệnh đề 11.1.21 ta thấy
X = 47 1 4 5277 = 60 59 (mod 7919) là

nghiệm của .T 1583 = 47 1 4 (mod 7919).
Mệnh đề I1.1.2Ỉ cho thấy rằng rất dễ để tính nghệm nếu modun

P

là một số nguyên

tố. Trong trường hợp cho modun N là một hợp số thì sẽ có một sự khác biệt rất quan
trọng. Nếu chúng ta biết phân tích N thì lại dễ dàng để tính nghiệm. Các mệnh đề sau
đây trình bày phương pháp làm trong trường hợp N —

PQ

\ H tích của hai số nguyên


tố. Các trường hợp tổng quát được để lại xem như Bài tập.
Mệnh đề 1.1.4. Cho p và q là các số nguyên tố khác nhau và e > 1 thỏa mẫn
UCLN(c, (p — l)(q — 1)) = 1.
Ta thấy e có modun nghịch đảo ỉ,à (p — l)(q — 1), ta nói
DE

= 1 (mod (p — l)(q — 1)).


Khi đó đồng dư thức
X

E

=

LỜI
CẢM ƠN
(mod pq),

C

có nghiệm duy nhất
X = C D (mod pq).

(1.2)

C H Ứ N G M I N H . Giả sử UCLN(c, pq) = 1, (làm tương tự cho các trường hợp khác). Chứng

minh của Mệnh đề 11.1.41 tương tự như phần chứng minh của Mệnh đề

11. 1.21 nhưng thay vì sử dụng định lý Fermat nhỏ, ta sử dụng công thức Euler (Định ly
ITTTTTI) ■ Các đồng dư thức
nguyên

K

DE

= 1 (mod (p — l)(q — 1)) có nghĩa là tồn tại số

sao cho
de = 1 + k(p — 1 )(q — 1).

Bây giờ ta kiểm tra

C

D

là nghiệm của

X

E

= C (mod pq) :

( C D ) E = C D E (mod pq)

luật số mũ,

= c +k{p-\){q-\) ^mocỊ pq^ de — 1 + k(p — 1 )(q — 1),
l

Do đó X =

=

C(CP~1

=

C.L

=

C

C

D

K

) K (mod pq)

luật số mũ,

(mod pq)

từ công thức Euler (Định lý ỊTTTTTỊ),


(mod pq).
là nghiệm của đồng dư thức (11.21) . Ta đi chứng minh nghiệm này l à d u y

nhất. Giả sử X = II cũng là nghiệm của (Ị1.2Ị). khi đó

u = u^-k{p-i)(g-i)



de=l + k(p - 1 ){q - 1).

= ( U E ) D . L ~ K (mod pq) sử dụng công thức Euler (Định lỳ ỊTỊTỊTỊ)
=

CD

(mod pq) vì

U

là nghiệm của (II.2Ị)

Do đó, tất cả nghiệm của (11.2p đều đồng dư với

CD

(mod pq), như vậy đó là nghiệm duy

nhất.




Nhận xét 1.1.5. Mệnh đềII. 1.41 đưa ra một thuật toán để giải X E = c(mod pq). Đầu tiên là
giải

DE

— l(mod (p — l)(q — 1)), rồi tính c rf (mod pq). Ta có thể làm cho các tính toán nhanh

hơn bằng cách sử dụng một giá trị nhỏ hơn
giải đồng dư thức sau với

D

D.

Cho

G

= UCLN(p — 1, q — 1) và giả sử ta

:
DE

= 1 (mod (p ~ 1 ^ (q - 1) ) .

Từ công thức Euler (Định ly ỊTỊTỊTỊ) ta có ( Ạ P ~ L ^ Q ~ L ^ G = 1 (mod pq). Do đó như trong
chứng minh của Mệnh đề 11-1.41 nếu ta viết


DE

= 1 + K ( P — l)(ợ — 1 ) / G , thì

(c d Ỵ = c d e = c 1 + k ( p - l ) { q ~ 1 ) / g = c.(c { p - l ) { q - l ) ) k = с (mod pq).


Vì vậy sử dụng giá trị nhỏ hơn này của (i, ta vẫn thấy rằng

C

D

LỜI CAM ĐOAN

(mod pq).

mod pq là nghiệm c ủ a X е = с

Ví dụ 1.1.6. Giải đồng dư thức
^17389 ^

43927

( mod 64349)5

với modun = 64 • 349 = 229 -281 là tích của hai số nguyên tố

P


= 229 và Q = 281. Bước đầu

tiên là giải đồng dư thức
17389 = 1 (mod 63840),
với 63840 = (p — l)(ợ — 1) = 228 • 280. Giải đồng dư thức, ta được d = 53509

(mod

63840). Sau đó, từ Mệnh đề 11.1.41 ta có
của Ж

17389

X = 43 9 1 2 53509 = 144 5 8 (mod 64349), là nghiệm
= 43 9 2 7 (mod 64349).

Ta có thể giảm đi một chút công việc bằng cách sử dụng các ý tưỏng được trình bày trong
Nhận xét 11.1.51 Ta có
g = UCLN(p - l)(q - 1) = UCLN(228, 280) =
Dó đó

(p - 1 )(q- 1 )/g = (228)(280)/4 = 15960, từ đây

4.
ta

có thể tìm được

một giá trị của D bằng cách giải đồng dư thứ c


17389 = 1 (mod 15960),
có nghiệm là

D

= 5629 (mod 15960), và do đó
X = 43927 5629 = 14458 (mod 64349), là nghiệm

của X 17389 = 14458 (mod 64349).
Chú ý rằng ta cũng có những nghiệm tương tự, nhưng ta chỉ cần nâng 43927 lên hìy thừa
5629^, trong khi sử dụng Mệnh đề 11.1.41 yẽu cầu trực tiếp ta nâng 43927 lên lũy thừa
53509^. Cách làm này tiết kiệm thời gian, mặc dù không phải là nhiều.


Bob

Plice

LỜI
TạoCẢM
khóa ƠN

Chọn số nguyên tố bí mật



P

Q


.

Chọn số mũ mã hóa e với ƯCLN(e,
(p- l)(q — 1)) = 1. Cho biết N =
PQ



E

.

Mã hóa
Chọn bản rõ 77?,.
Sử dụng khóa công khai của Bob (N,e) để
tính

= M E (mod N).

C

Gửi bản mã cho Bob.
Giải mã
Tính

D

thỏa mãn


— l)(q — 1)). Tính
N) khi đó

M'

= 1 (mod (p

ED

M'

là bản rõ

=

(mod

D

C

M.

Bảng 1.1: Thành lập khóa RSA, mã hóa và giải mã

1.2

Hệ mật mã khóa công khai RSA

Bob và Alice có những vấn đề thông thường của việc trao đói thông tin bí mật trên một

đường dây thông tin liên lạc an toàn. Bob và Alice có nhiều cách khác nhau thực hiện công
việc này, phụ thuộc vào độ khó của việc giải quyết các bài toán logarit rời rạc. Trong phần
này chúng ta trình bày các hệ thống mật mã khóa công khai RSA là hệ thống phát minh đầu
tiên và tất nhiên được biết đến nhiều nhất. RSA được đặt tên theo những nhà phát minh ra nó
là Ron Rivest, Adi Shamir và Leonard Adleman.
Việc bảo mật RSA phụ thuộc vào phép lưỡng phân sau
• Thiết lập. Cho


P



Q

là số nguyên tố lớn, cho N =

Bài toán. Giải đồng dư thức X

PQ

, và cho e và

С

là các số nguyên.

= С (mod N) với ẩn X .

Е


Thuận lợi. Bob, người biết được các giá trị của

P

và ợ, có thể dễ dàng tìm X như trình bày

trong Mệnh đề I1.1.4Ỉ .
Khó khăn. Eve, người không biết giá trị của
Phép lưỡng phân. Giải X

E

=

С

P

và ợ, không thể dễ dàng tìm X .

(mod N) là dễ dàng cho người có thêm thông tin bổ sung,

nhưng nó dường như là khó khăn cho tất cả những người khác.
Hệ thống mật mã khóa công khai RSA được tóm tắt trong Bảng 1.1. Khóa bí mật của Bob
là một cặp số nguyên tố lớn

P




Q.

Khóa công khai của ông l à c ặ p ( 7 V , e ) g ồ m t í c h N


= p q v à m ộ t s ố m ũ m ã h ó a e n g u y ê n t ố c ù n g n h a u . Alice có bản rõ của mình và

biến đói nó thành số nguyên

M

LỜI
CAM
trong
khoảng
từ 1 ĐOAN
đến N . Cô mã hóa

M

bằng cách tính đại

lượng
С

Số nguyên

С


là bản mã của cô, mà cô gửi cho Bob. Bob dễ dàng giải đồng dư thức X Е —

(móc! N) để phục hồi thông tin

M

của Alice, vì Bob đã biết phân tích thừa

khác, Eve có thể chặn được bản mã
khi giải X Е =

— 777 е (mod N).

С

С

SỐ

С

N = P Q . Mặt

nếu cô ấy biết phân tích N , cô có lẽ đã gặp khó khăn

(mod N).

Ví dụ 1.2.1. Có thể minh họa hệ mật khóa công khai RSA với một ví dụ bằng số nhỏ. Tất
nhiên, ví dụ này là không an toàn, vì con số này là quá nhỏ nên Eve sẽ dễ phân tích được N .
Việc triền khai an toàn của RSA sử dụng modun N với hàng trăm chữ số. S ự T h à n h L ậ p


Khóa к
• Bob chọn hai số nguyên tố bí mật

P

= 1223 và Q = 1987. Bob tính modun chung của

chúng
N = p.q = 1223.1987 = 2430101.


Bob chọn một số mũ mã hóa công khai 6 = 948.047 với tính chất
UCLN(c, (p - 1), (q - 1)) = UCLN(94807, 2426892) = 1.

Mã Hóa RSA


Alice chuyến đói bản rõ cô thành một số nguyên
m = 1070777 thỏa mãn 1 < m < N.



Alice sử dụng khóa công khai của Bob (iV, e) = (2430101,948047) để tính
С



= M E (mod N), с = 107 0 7 77 9481’7 = 1473513 (mod 2430101).


Alice gửi bản mã с = 1473513 đến Bob.
Giải Mã RSA
Bob có (p - 1 ){q - 1) = 1222.1986 = 2426892, giải ed = 1 (mod (p - l)(q - 1)),

94807 = 1 (mod 2426892), với d và thấy rằng d = 1051235. Bob lấy bản mã с =
1473513 và tính
CD

(mod N), 1473513 1 " 51235 = 107 0 7 77 (mod 2430101).

Giá trị mà ông tính chính là thông điệp

M

= 1070777 của Alice.


Nhận xét 1.2.2. С ác
với modun và

SỐ

N V H E hình thành khóa công khai của Bob được gọi tương đương

SỐ MŨ MÃ HÓA.

Số

LỜI
CẢM

mà Bod
sử dụngƠN
giải mã thông tin của Alice mà D

D

thỏa

mãn
= 1 (mod (p — l)(q — 1)),

ED

(1.3)

được gọi là chỉ số mã hóa. Rõ ràng là mã hóa sẽ hiệu quả hơn nếu chỉ số mã hóa e là một số
nhỏ và tương tự như vậy thì giải mã sẽ hiệu quả hơn nếu chỉ số giải mã

D

là số nhỏ. Tất nhiên,

Bob không thể chọn cả mã hóa và giải mã đều là giá trị nhỏ vì khi một trong hai được lựa
chọn thì cái còn lại sẽ được coi là đồng dư thức (OỊ).
Chú ý rằng Bob không thể lấy e = 2 vì ông cần e là số nguyên tố cùng nhau với ( P — 1 )
( Q — 1). Do đó, giá trị nhỏ nhất có thể của e là e = 3. Như chúng ta biết, khi lấy e = 3 thì an

toàn như là lấy giá trị lớn hơn của e dù cho vẫn có một số điềm không thỏa đáng. Những ai
muốn nhanh chóng mã hóa nhưng lại lo ngại với e = 3 quá nhỏ, khi đó thường lấy e = 2 16 + 1 =
65537, vì nó chỉ

mất bốn phép bình phương và một phép nhân để tính 777,65537
Một cách khác cho Bob là sử dụng một giá trị nhỏ cho

D

và sử dụng đồng dư thức (CH) để

xác định e, nên e sẽ lớn. Tuy nhiên, điều này lại có thể dẫn đến phiên bản không an toàn của
RSA. Chính xác hơn là nếu

D

nhỏ hơn ./V 1 / 4 , thì lý thuyết liên phân số cho phép Eve phá vỡ

RSA.
Nhận xét 1.2.3. Thuật toán mã hóa công khai số N —

PQ

, là tích của hai số nguyên tố bí mật

P



С

(mod N), và dó đó có thể mã hóa những thông tin được gửi cho Bob.

Q.


Mệnh đềII. 1.41 cho biết nếu Eve biết giá trị ( P —

Khai triển hệ thức ( P —

L

L

) ( Q — 1), thì bà có thể giải X E =

) ( Q — 1) ta được

(p — 1 )(q — 1) = pq — p — q + 1 = N — (p — ợ) + 1.

(1.4)

Bob đã công bố giá trị N , vì vậy Eve bây giờ đã biết N . Do đó, nếu Eve có thể xác định giá
trị của tổng

P

+

Q

thì (11.4P sẽ cho bà biết giá trị ( P — 1 ) { Q — 1) có thể giúp bà mã hóa

những thông tin.
Thực tế, nếu Eve biết các giá trị


P

+

Q



PQ

, thì sẽ rất dễ để tính giá trị của P và Q . Bà

chỉ cần sử dụng công thức bậc hai để tìm ra những nghiệm của đa thức
X 2 - (p- q)X + pq,
vì phân tích đa thức thành nhân tử bằng ( X —
Do đó, khi Bob đưa ra giá trị N =

PQ

P

) ( X — ợ), nên các nghiệm của nó là P và Q .

thì sẽ chẳng dễ dàng cho Eve khi tìm ra giá trị của ( P

— L ) ( Q — 1) hơn là khi tìm P và Q .

Chúng ta minh họa bằng ví dụ sau. Giả sử Eve biết rằng:



N = pq = 66240912547 và (p - l)(q - 1) = 66240396760.

LỜI CAM ĐOAN

Đầu tiên bà sử dụng (QUỊ) để tính
p + q = N + l-{p- 1 ){q - 1) = 515788.
Sau đó bà sử dụng công thức bậc hai để phân tích đa thức thành nhân tử:
X 2 - ( P + Q ) X + N = X 2 - 515788X + 66240912547 = ( X -

241511)(X - 274277).

Phép tính này cho bà phân tích thừa số N = 66240912547 = 241511 • 274277.
Nhận xét 1.2.4. Chúng ta có đã cho thấy rằng Eve sẽ chẳng thấy dễ dàng khi xác định ( P — 1
) ( Q — 1) hơn là bà phân tích N . Nhưng lại không chứng minh được Eve buộc phải phân tích
N để giải mã những thông tin của Bob. vấn đề là những gì Eve cần làm để giải những đồng dư

thức dạng X E =

С

(mod N), và nhận thức được rằng có thuật toán hiệu quả để giải những

đồng dư thức như vậy mà không cần tìm giá trị của ( P — 1 ) ( Q — 1). Không ai tìm ra
phương pháp nào như vậy tồn tại dù gợi ý rằng tính những nghiệm modun N có thể đơn giản
hơn phân tích N .

1.3

Kiểm tra tính nguyên tố

Bob đã đọc xong các phần trên và bây giờ sẵn sàng truyền thông tin cho Alice bằng cách

dùng cặp khóa công khai/bí mật RSA của ông. Đe tạo ra cặp khóa mã hóa RSA, Bob cần chọn
hai số n g u y ê n tố



P



Q.

có thẻ là hợp số, đó là những số

P



Q

RẤT LỚN

Ông không chọn được hai số nguyên tố đủ lớn nhưng

. Trước hết, nếu P và Q không phải là số nguyên tố thì

Bob sẽ cần phải biết cách phân tích chúng để giải mã thông tin của Alice. Nhưng thậm chí tệ
hơn, nếu


P



Q

là những số nguyên tố nhỏ, thì Eve có thể sẽ phân tích được

PQ

và phá vỡ hệ

thống của Bob.
Do đó, Bob cần phải tìm ra những số nguyên tố lớn hơn. Chính xác hơn là ông cần một
cách nào đó để phân biệt số nguyên tố và hợp số vì nếu ông tìm ra cách làm này, thì ông có
thể chọn ngẫu nhiên những số cho tới khi ông thấy nó là số nguyên tố. Chúng ta sẽ thảo luận
về vấn đề khả năng số được chọn ngẫu nhiên là số nguyên tố sau này, nhưng bây giờ thì ông
đã có cơ hội tốt để thành công. Do đó, những gì Bob thực sự cần là một cách hiệu quả để xác
định một số rất lớn là số nguyên tố.
Ví dụ, giả sử như Bob chọn số lớn có giá trị:
n = 31987937737479355332620068643713101490952335301
và ông muốn biết số

N

có là số nguyên tố hay không. Đầu tiên Bob tìm những phép phân tích

nhỏ nhưng ông lại thấy

N


không chia hết cho bất kì số nguyên tố nào nhỏ hơn 1000000. Vì


vậy, ông bắt đầu nghi ngờ liệu

N

là số nguyên tố hay không. Tiếp theo, ông tính 2 N ~ L mod n

LỜI CẢM ƠN

và ông thấy rằng

2"_1 ЕЕ 1281265953551359064133601216247151836053160074 (mod n). (1.5)
Đồng dư thức ill .51) cho Bob biết rằng
nào về cách phân tích

N.

N

là hợp số dù cho nó không cho ông bất kỳ dấu hiệu

Tại sao? Xem lại định lý Fermat, nếu

1 (mod p) (trừ trương hợp

chia hết cho


A

P).

Do đó, nếu

N

P

là số nguyên tố thì

A

P~L =

là số nguyên tố, thì vế phải của

( 11.5 h có thể đồng dư với 1, vì nếu không đồng dư với 1 thì Bob kết luận

N

không là số

nguyên tố.
Trước khi tiếp tục phần trước đây liên quan đến sự tìm kiếm của Bob về những số nguyên
tố lớn, chúng ta phát biểu phiên bản thuận tiện của Định lý Fermat nhỏ, mà không có điều
kiện nào ở

A


.

Định lí 1.3.1 (Đinh lý Fermat, phiên bản 2). C H O

P LÀ SỐ NGUYÊN TỐ

Từ (11.81) kết hợp với Định lý Fermat (11.3.11) có chứng minh được

N

. KHI ĐÓ

là số nguyên tố hay

không? Câu trả lời là không! Định lý Fermat chỉ làm việc theo một chiều:
Nếu

P

là số nguyên tố, thì

A

=

P

A


(mod p).

Chẳng có gì để cản trở tính đồng dư (Ị1.8Ị) là đúng với các giá trị hợp số của 77-, và thực tế
nghiên cứu cơ bản đưa ra những ví dụ như:
2 341 = 2 (mod 341) với 341 = 11.31.
Tuy nhiên, khi 2 N = 2 (mod n) sẽ có nhiều khả năng
mod n ra khác thì

N

N

là số nguyên tố, vì nếu giá trị của 2 N

là hợp số. Điều này dẫn đến định nghĩa sau đây.

Định nghĩa 1.3.2. số nguyên n cố định.

Ta nói số nguyên a ỉàchứng thực

(cho tính hợp số) của n nếu
A

1 1

^

A

(mod n).


Mệnh đề 1.3.3. Cho p là số nguyên tố lẻ và viết:
p — 1 = 2k q với q lẻ.
Cho a là số bất kì không chia hết cho p, khi đó một trong hai điều kiện sau đây ỉà
đúng:
(i) a q đồng dư với 1 modun p.
(ii) Một trong những a q ,

a2

q

,

a

4 ợ

, «

2

đồng dư với 1

m o đ u n

p .

C H Ứ N G M I N H . Định lý Fermat nhỏ cho ta biết rằng A P ~ L = 1 (mod p). Quan sát dãy số:



A

q

, A 2 q , 0A q , ...,

A

2

q

, a2 q,

LỜI CAMđồng
ĐOAN
dư với1 modun p.

ta biết rằng số cuối cùng trong dãy số là

Hơn nữa,

mỗi số trong dãy trên là bình phương của số trước. Do đó, một trong những khả năng sau đây
buộc phải xảy ra:
(i) Số đầu tiên trong dãy đồng dư với 1 mocluri p.
(ii) Vài số trong dãy không đồng dư với 1 modun p nhưng

khinó đượcbình


phương, nó sẽ đồng dư với 1 modun p. Nhưng số duy

nhất thỏamãn cả hai

điều kiện:
B

^ 1 (mod p) và b 2 = 1 (móc! p)

là —1, vì vậy một trong những số trong dãy là đồng dư với —1 moclun p. Điều này hoàn tất
chứng minh của Mệnh đề 11.3.31
Đưa vào. S ố nguyên N đượ c ki ềm tra, số nguyên A như là chứng thự c

tiềm năng.
1.Nếu

N

2.Viết

N

3.Đặt
4.Nếu

A
A

chẵn hoặc 1 < UCLN(a, n) < n, trả lại Hợp số.
— 1 = 2 K Q với Q lẻ.

= A Q (mod n).
= 1 (mod n), trả lại Kiểm tra thất bại.

5.Vòng lặp ỉ = 0, 1, 2,k — 1.
6. Nếu
7. Đặt
8.Tăng dần

= — 1 (mod n), trả lại Kiểm tra thất bại.

A
A


= A 2 mod n.

và lặp lại từ Bước 5.

9.Trả lại HỢp số.
Bảng 1.2: Kiểm tra Miller-Rabin cho hợp số


Định nghĩa 1.3.4. Cho n là số lẻ và viết n — 1 = 2k q với q lẻ. số nguyên a mà thỏa mẫn
UCLN(a, n) = 1 được gọi là chứng thục Miller-Rabin cho hợp số của n nếu cả hai điều
kiện sau đây đều đúng:
(a) A Q ^ 1 (mod n).
(b) a 2 ' q ^ —1 (mod n) với mọi ỉ = 0,1, 2,k — ì.
Nó tuân theo Mệnh đề 11.3.31 đó là nếu tồn tại một số
77/ thì


N

A

mà chứng thực Miller- Rabin với

chắc chắn là hợp số. Phương pháp kiểm tra Miller-Rabin cho hợp số được trình bày

ỏ Bảng 1.2.
Bây giờ, giả sử rằng Bob muốn kiểm tra số lớn

N

có thể là số nguyên tố không? Để làm điều

này, ông đã làm phương pháp kiểm tra Miller-Rabin sử dụng một loạt những giá trị được lựa


chọn ngẫu nhiên của

A

. Tại sao điều này lại tốt hơn việc dùng phương pháp kiềm tra định lí

CẢM
Fermat nhỏ? Câu trả lời là không có LỜI
số nào giống
nhưƠN
Carmichael cho phương pháp kiểm tra
Miller-Rabin và thực tế mỗi hợp số đều có rất nhiều chứng thực Miller-Rabin như được trình

bày ở mệnh đề sau đây.
Mệnh đề 1.3.5. Cho n là hợp số lẻ. Khi đó ít nhất 75% những số giữa 1 và n — 1 là chứng
thực cho n.
C H Ứ N G M I N H . Việc chứng minh này không khó, chúng ta sẽ không chứng minh ở đây.



Bây giờ hãy xem xét những tìm kiếm của Bob đế tìm những số nguyên tố lớn. Ông lấy số
nguyên tố
của
ra

N

A

N

và thực hiện phương pháp kiểm tra Miller-Rabin cho

N

với 10 giá trị khác nhau

. Nếu bất kỳ giá trị A nào là phương pháp chứng minh Miller-Rabin với N thì Bob suy

là hợp số. Mệnh đề 11.3.51 cho thấy nếu

N


là hợp số thì mỗi lẫn Bob thử một giá trị cho

a, ít nhất ông đã có 75% cơ hội chứng minh được nó. Vì Bob không tìm được chứng minh nào
trong 10 lần thử đó, nên hợp lý khi kết luận rằng xác suất

N

là hợp số có ít nhất (25%) 10 , xấp

xỉ với 10 -6 . Và nếu không đủ thì Bob có thề sử dụng 100 giá trị khác nhau của
giá trị nào chứng minh

N

là hợp số thì xác suất

N

là hợp số sẽ ít hơn (25%)

Ví dụ 1.3.6. Chúng ta minh họa phương pháp kiểm tra Miller-Rabin với

100

A

A

và nếu không


« 1CT 60 .

= 2 và N — 561

trong đó, bạn có thể nhớ lại định nghĩa về số Carmichael.Ta phân tích
n - 1 = 560 = 2 4 .35

và sau đó tính
2 35 = 263 (mod 561), 2 2'35 = 263 2 = 166
(mod 561), 2 4 ' 35 EE 166 2 EE 67 (mod 561),
= L ( mod 561 )_
28.35 =
số đầu tiên 2 35 modun 561 không đồng dư với 1 hoặc —1 và những Hố khác
trong dãy này cũng không đồng dư với —1, vì vậy, 2 là chứng thực Miller-Rabin so với thực
tế là 561 là hợp số.
Ví dụ 1.3.7. Ta thực hiện ví dụ thứ hai, lấy

N

= 172947529 và phân tích

n - 1 = 172947528 = 2 3 .21618441.
Áp dụng phương pháp kiểm tra Miller-Rabin với A = 17 và tìm được:
2y21618441 = l (mod 172947529).

Do đó, 17 không phải là phương pháp chứng thực Miller-Rabin cho
3 nhưng:
321018441 _ _J ( mod 172947529),

N.


Tiếp theo, ta thử

A

, =


VÌ vậy 3 cũng lại không phải là phương pháp Miller-Rabin. Từ đây ta có thể nghi ngờ 77, là

LỜI
CAM
ĐOAN
số nguyên tố nhưng nếu ta thử với một
giá trị
khác, cho
A = 23, thấy rằng
23 21618441 = 40063806 (mod 172947529), 23 21618441 =
2257065 (mod 172947529),
2021618441 = 1 ( mod 172947529).
Do đó, 23 là witness Miller-rabin và

N

thực sự là hợp số.

1.4 Thuật toán phép nhân tử hóa Pollard p-1
Chúng ta đã thấy là tương đối dễ để kiểm tra một số lớn liệu có phải là số nguyên tố
không. Điều này là tốt vì hệ thống mã hóa RSA cần những số nguyên tố lớn để thực hiện.
Ngược lại, tính bảo mật của RSA dựa trên độ khó rõ ràng trong việc tính toán với những số

lớn. Nghiên cứu về phép nhân tử hóa đã có từ thời kỳ Hy Lạp cổ đại nhưng nó chỉ dành cho
máy tính k h i mà mọi người bắt đầu phát triển những thuật toán có khả năng phân tích những
số lớn. Nghịch lý RSA là để khiến RSA hoạt động hiệu quả hơn, chúng ta muốn dùng modun
N — P Q càng nhỏ càng tốt. Mặt khác, nếu nếu đối phương có thể có phân tích N thì thông

tin được mã hóa của chúng ta sẽ không còn bảo mật. Do vậy rất quan trọng khi hiểu được khó
khăn như thế nào đề phân tích những số lớn, và đặc biệt là để hiểu được tiềm năng của những
thuật toán khác nhau mà hiện nay được dùng để phân tích thừa số.
Trong vài phần tiếp theo chúng ta sẽ thảo luận một cách chi tiết hơn về một số phương
pháp được biết đến để phân tích những số nguyên lớn.
Chúng ta bắt đầu với thuật toán có tên gọi

PHƯƠNG

PHÁP

P O L L A R D P — 1. Mặc dù

phương pháp này không có ích với mọi số nhưng vẫn có vài số mà chắc chắn nó có hiệu quả.
Phương pháp của Pollard chứng minh rằng có những modun RSA không an toàn mà thoạt nhìn
có vẻ là bảo mậ.
Chúng ta đang xét

N = P Q và nhiệm vụ là xác định các số nguyên tố P và Q . Giả sử

SỐ

ta tìm ra số nguyên L có tính chất
P


— 1 chia hết L và Q — 1 không chia hết L .

Điều này có nghĩa là có vài số nguyên z,

J



K

với

K

7^ 0 thỏa mãn

L = i(p — l)và L = j(q — 1) + k.
Xét chuyện gì sẽ xảy ra nếu chúng ta lấy những số nguyên
A

L

A

được chọn ngẫu nhiên và tính

. Định lý Fermat nhỏ cho biết
a

L


= a

i(p-D

=

( a p-1 )< = 1’ = 1 (mod p),

a L = a i { “- 1 ) + k = a k (a q - 1 ý = a k • V = a k (mod q).
Số mũ

K

không bằng 0, vì vậy

A

sẽ không đồng diĩ với 1 modun q. Dơ đó, với


những lựa chọn tối ưu của a, ta thấy
P

chia hết

A

Từ đây ta có thể khôi phục


LỜI CẢM ƠN

L

— lvà Q — Ikhông chia hết

P

qua phép tính UCLN đơn giản

L

0

— 1.

p = UCLN(a L - 1, N).
Đây là một cách tối ưu nhưng trong đó ta có thể hỏi, liệu ta có thể tìm được số mũ L mà chia
hết cho

P

— 1 và không chia hết cho Q — 1? Quan sát của Pollard l à n ế u p — 1 l à t í c h

c ủ a n h ữ n g s ố n g u y ê n t ố n h ỏ t h ì n ó s ẽ c h i a h ế t c h o n \ v ớ i v à i giá trị không

quá lớn của

Vì vậy đây coi là ý tưỏng. Với mỗi số


N.

N

= 2, 3, 4. .. ta chọn một giá trị A và

tính
ƯCLN(a n! - 1, N).
(Để đơn giản ta có thể lấy

= 2). Nếu ƯCLN bằng 1 thì ta tiếp tục giá trị tiếp theo của N .

A

Nếu ƯCLN bằng N thì ta thật không may mắn, nhưng một giá trị

A

khác có thể sẽ đúng. Và

nếu ta lấy số nằm trong khoảng từ 1 đến N thì ta có thừa số không tầm thường của N và ta sẽ
thực hiện được.
Nhận xét 1.4.1. Có hai nhận xét quan trọng cần làm trước khi chúng ta đưa ý tưởng của
Pollard vào thực hành, vấn đề đầu tiên liên quan đến giá trị
với những giá trị trưng bình của n, cho

N

ANL


— 1. Thậm chí với A = 2 và

=100 và sẽ không khả thi để tính chính xác được

A

N

]

— 1. Thực chất, số 2 100! có hơn 10 157 chữ số, con số mà lớn hơn số lượng các hạt cơ bản trong

vũ trụ được biết đến! May mắn là không cần phải tính toán nó một cách chính xác. Chúng ta
chỉ quan tâm đến ƯCLN của

A

N L

— 1 và 7V, vì vậy chỉ cần thoản mãn việc tính

a" ! — 1 (mod N).
sau đó thì lấy UCLN với N . Như vậy chúng ta chưa bao giờ phải làm việc với các con số lớn
hơn N .
Thứ hai, chúng ta thậm chí không cần tính số mũ n\. Thay vào đó, giả sử rằng ta đã tính

AN' Ồ

bước


trư ớc, chúng ta có thể tính giá trị ti ếp theo như sau

a (n+1)! = (a”!)”+1 (mod N).
Điều này dẫn đến thuật toán được trình bày ỏ Bảng 1.3.
Đưa vào. Số nguyên N để phân tích.
1. Đặt

A

= 2 (hoặc một số giá trị khác thuận tiện).

2. Vòng lặp
3. Đặt

— 2, 3, 4,... lên đến một giới hạn nhất định.

— A I mod n.

A

4. Tính

J

D

= UCLN(a- l,N)t.


5. Nếu 1 <


D

6. Tăng dần

, < N thì thành công, trả lại D .

J

LỜI
và lặp lại từ
Bước CAM
2.

í Để hiệu quả hơn chọn
mỗi lần lặp thứ

ĐOAN

thích hợp và tính UCLN trong Bước 4 chỉ có

K

K.

Bảng 1.3: Thuật toán phân tích thừa số Pollard p — 1
Ví dụ 1.4.2. Ta sử dụng phương pháp Pollard P — 1 cho N = 13927189. Bắt
đầu với UCLN(2 — 1, N) và lấy giai thừa lớn dần ở số mũ, chúng ta
thấy rằng
2


9! _
_

2M
2

11! _

2 12 !

=

13867883

(mod

13927189),

=

-

1 13927189)=

5129508 (mod 13927189), = 4405233

UCLN(2 10!

-


1 13927189)=

(mod 13927189), = 6680550 (mod

UCLN(2 n!

-

1 13927189)=

13927189),

s

13927189),

EE

_

013!
2 14!_

UCLN(2

6161077

(mod


UCLN(212!

-

1 13927189)=

879290

(mođ

UCLN(2 13!

-

1 13927189)=

UCLN(2 14! - 1

13927189),

Dòng cuối cùng cho ta một thừa số không tầm thường
nguyên tố, và thừa số

Q

P

13927189) = 3823.
= 3823 của N . Thừa số này là số


= N / P = 13927189/3823 = 3643 cũng là số nguyên tố. Lý do số mũ

14! được làm trong ví dụ này là thừa số p — 1 phân tích được thành tích của các số nguyên tố
nhỏ,
P

Các thừa số khác thỏa mãn

- 1 = 3822 =
P

2 • 3 • 7 2 • 13.

— L = 3642= 2 * 3 * 607,

mà không phải là tích

của các số nguyên tố nhỏ.

V í d ụ 1 . 4 . 3 . Chúng ta trình bày một ví dụ khác sử dụng các số lớn. Cho N
168441398857. Khi đó
2 50! - 1 = 114787431143 (mod N),

UCLN(2 50! -

1,

N) =

1,


2 51! - 1 = 36475745067 (mođ N),

UCLN(2 51! -

1,

N) =

1,

,52!

2

53!

1 E E 67210629098 (mođ N),

- 1 = 8182353513 (mod N),

Vì vậy, sử dụng 2

UCLN(2 52! - 1,N) = 1, UCLN(2 53!
- 1,N) = 350437.

— 1 ta được kết quả thừa số nguyên tố p = 350437 của N ,

và thừa số (nguyên tố) khác là 480661. Tất nhiên,
P


P

— 1 là tích của các thừa số nhỏ,

- 1 = 350436 = 2 2 • 3 • 19 • 29 • 53.

=


1.5 Phân tích thừa số qua hiệu của các bình phương
Phương pháp phân tích thừa số có ảnh hưởng lớn được biết đến ngày nay dựa
trên một trong những đồng nhất thức đơn giản của toán học,

X2 - Y 2 = ( X + Y ) ( X - Y ) .

(1.9)

Công thức này nói rằng hiệu của các bình phương bằng tích số. Áp dụng trực tiếp
công thức này để phân tích thừa số. Để phân tích thừa số N , ta tìm số nguyên
cho N +

B2

là số chính phương và bằng

A?

B


sao

. Khi đó N + B 2 = a 2 , do vậy

N = a2 = b2 = (a + b)(a — 6), và ta
đã thực hi ện phân tích nhân tử N.

Ví dụ 1.5.1. Ta phân tích thừa số N = 25217 bằng cách đi tìm số nguyên
N

+

không
chính

B2

25217+ l

2

= 25218

25217
Nếu N
nhiên

số chính phương:

phương không chính phương không chính


= 25226

phương không chính phương không chính

25217 + 4 2 = 25233
Khi

sao cho

chính phương không chính phương không

25217 + 2 2 = 25221
25217+ 3 2

B

phương Đã thấy! **chính phương**.

25217 + 5 2 = 25242

đó ta tính được

25217 + 62 = 25218

= 159 2 - 82 = (159 + 8)(159 - 8) = 167 • 151.

25217+ 7 2

= 25266


25217+ 82

= 25281 = 159

ta cần

là lớn, thì khó có thể chọn được giá trị ngẫu
của

B

để N +

B2

là số chính phương. Chúng

tìm một phương pháp thông minh để chọn

B.

Tuy nhiên, ta không nhất thiết phải viết N bằng hiệu của hai số bình phương. Ta
cũng có thể viết ruột số bội số

KN

của N bằng hiệu của hai số bình phương, vì nếll

kN = a 2 - b 2 = (a + b)(a - 6),



thì đó là một cách hợp lý đề phân tích N bởi vế phải của đẳng
t h ứ c , n g h ĩ a là, N có một nhân tử không tầm thường cùng với A + B và A — B .

Sau đó ta có thể dễ dàng tìm lại được các nhân tử bằng cách tính UCLN(N,a+ b) và
ƯCLN(N, a — b). Ta minh hoạ với ví dụ phía sau.
Ví dụ 1.5.2. Cho N = 203299. Nếu ta lập một dãy
B

các giá trị của N +

B

2

, với

= 1, c h o tới B = 100, ta sẽ không tìm được bất kỳ giá trị bìnhphương nào.

Vì vậy chúng ta sẽ liệt kê các giá trị của 3 N +

B

2



ta tìm được


3 • 203299 + l 2 = 609898 3 •

không

chính

phương

203299 + 2 2 = 609901 3 •

không

chính

phương

3-

không

chính

phương

203299+ 4 2 = 609913 3 • 203299

không

chính


phương

+ 5 2 = 609922 3 • 203299 + 62 =

không

chính

phương

609933 3 • 203299 + 7 2 =

không chính phương

203299

609946

+

32

không

=

609906

chính


phương

3 • 203299 + 82 = 609961 = 781 2 Đã thấy! **chính phương**. Do đó
3 • 203299 = 781 2 - 82 = (781 + 8) (781 - 8) = 789 • 773,
sau đó khi ta tính
UCLN(203299, 789) = 263 và ƯCLN(203299, 773) = 773,
ta tìm đã tìm được thừa số không tầm thường của N . Các số 263 và 773 là các số
nguyên tố, như vậy, phân tích thừa số đầy đủ của N là 203299 = 263 • 773.
Nhận xét 1.5.3. Trong Ví du 11.5.21
B2

chúng

ta đã lập một dãy các giá trị của 3 N +

. Tại sao chúng ta không thử với 2 N + B 2 đầu tiên? Câu trả lời là nếu N là lẻ, thì

2 N + B 2 không bao giờ là một bình phương, cho nên ta sẽ lãng phí thời gian để thử

nó. Lý do mà 2 N +

B

2

không bao giờ là một bình phương được thể hiện như sau

Chúng ta tính toán với modun 4,
12+0=


2N + B 2 = 2 + B 2 = •!

2 (mod 4) nếu
B

lẻ.

B

chẵn, ^2 + 1 = 3 (mod 4) nếu


Như vậy 2 N +

B

2

đồng dư với 2 hoặc 3 modun 4. Nhưng bình phương phải

đồng dư với 0 hoặc 1 modun 4. Do đó nếu N là lẻ, thì 2 N +

B2

không là ruột

là một bình phương.
Các bội số của N đồng dư với 0 modun N, nên thay vì tìm hiệu của các
bình phương


A

2



B

2

là một bội số của JV, chúng ta có thể tìm các số

A



B

khác nhau, thoả mãn
A2

=

B

2

(mod N).

(1-10)


Trong thực tế nó không cho phép để tìm trực tiếp các số nguyên

A



B

thoả

mãn (11.10ỈL Thay vào đó, chúng ta dùng quy trình bước như đã được mô tả
trong Bảng 1.4. Quy trình này, dưới hình thức này hay hình thức khác, làm cơ
sở sỏ cho hầu hết các phương pháp của phân tích thừa số.
1. Xây dựng quan hệ: Tìm những số nguyên a!,a 2,r/3, ...,a r với tính chất
C Ị = À Ị (mod N) là tích của các số nguyên tố

nhỏ.
2. Phép khử: L ấy tích C Ị 1 C Ị 2 • • • C Ị S của một số

D

để tất cả các sô

nguyên tố xuất hiện trong tích đều phải có số mũ chẵn. Khi đó
C Ị C Ị . 2 • • • C Ị S — B 2 là một số chính phương.

3. Tính UCLN: Cho a =

o,ịlaị2 '''


a i s và tính ƯCLN

d

b).
A

2

= UCLN(N, a —

Từ
= ( A I L A Ì 2 • • • A I S ) 2 = A Ị A Ị • • • À \ = c ?;i c ?;2• • • C Ị S = B 2 (mod N),

có một trư ờng hơp ngẫu nhi ên hợp lý rằng D là ruột nhân tử k hông
tầm thường của N.
Bảng 1.4: Quy trình 3 bước phân tích thừa số

Ví dụ 1.5.4. Cho N = 914387 sử dụng quy trình được trình bày trong Bảng
1.4.Đầu tiên, ta tìm

A

nguyên có tính chất

nguyên tố nhỏ. Đối với ví dụ này, ta cần
nguyên
tập {2, 3, 5, 7, 11}. Ta thấy


A

? mo (ì N là tích của các số

A2

mod N là tích của các số
tố trong


1869 2 = 750000)

(mod 914387)

và 750000 = 2 4 • 3 • 5 6 ,

1909 2 = 901120)

(mod 914387)

và 901120 = 2 14 • 5 • 11,

3387 2 = 499125)

(mod 914387)

và 499125 = 3 • 5 3 • ll 3 .

Không một số nào ở bên phải là bình phương, nhưng nếu ta nhân chúng với nhau,
thì sẽ được một bình phương. Do đó

1869 2 • 1909 2 • 3387 2 = 750000 • 901120 • 499125 (mod 914387) = (2 4 • 3 • 5 6)
(2 14 • 5 • 11)(3 • 5 3 • II 3 ) (mod 914387) = (2 9 - 3- 5 5 • II 2)2
= 580800000 2 = 164255 2 (mod 914387).
Lưu ý là 1869 • 1909 • 3387 = 9835 (mod 914387), VÌ thế ta tính
ƯCLN(914387,9835 - 164255) = UCLN(914387,154420) = 1103. Vậy
914387 = 1103-829.
Ví dụ 1.5.5. Ta làm ví dụ thứ hai để minh hoạ sự khó khăn trong phương pháp này.
Cho N = 636683. Ta tìm được
1387 2 =

13720 (mod 636683) và 13720 = 2 3.5.7 3 ,

2774 2 ЕЕ

54880 (mod 636683) và 54800 = 2 5 .5.7 3 .

Nhân hai giá trị này ta được một bình phương, tuy nhiên, khi ta tính ƯCLN, ta
thấy
ƯCLN(636683,1387 • 2774 - 27440) = ƯCLN(636683,3820098) = 636683.
Như vậy sau khi tính

xong vẫn không có tiến triển gì! Tuy nhiên, ta có thể

được nhiềuhơn các giá trị

A

và tìm các mối quan hệ khác nhau. Mở

ỏ trên, ta thấy rằng

33 59 2 = 4592 70 (mod 636683) và 459270 = 2 • 3 8 • 5 • 7.

Nhân 13872 2 và 33592 2 , ta được
13872 2 • 33592 2 = 13720 • 459270 = (2 2 • 3 4 • 5 • 7 2 )' 2 ,
bây giờ tính ƯCLN, ta được
ƯCLN(636683,1387 • 3359 - 79380) = ƯCLN(636683,4579553) = 787.
Từ đây ta có phép nhân tử hoá N — 787 • 809.

tìm

rộng dãy


Bây giờ chúng ta sẽ nghiên cứu có hệ thống hơn. Quy trình phân tích thừa số
được trình bày trong Bảng 1.4 gồm ba bước:
1. Xây dựng quan hệ
2. Phép khử
3. Tính ƯCLN
Ta giả sử mỗi số ữi, ...,ữ r tìm được trong Bước 1 thỏa mãn tính chất C Ị = c i ị 2
(mod m) phân tích thành tích của các số nguyên tố nhỏ - ta nói
r ằ n g m õ i C Ị là tích của các số nguyên tố được chọn từ tập hợp các số nguyên tố
T

là { P I

1P 21P 35

Điều này có nghĩa là tồn tại các số mũ

EỊJ


sao cho

Ci = P i p 2 P Ĩ ' " P t ,
02 = P T P T P T "

cr =PĨ1PĨ2PỈ*---Ptrl,
Mục đích của chúng ta là để có tích số của ruột số C Ị để làm mỗi số nguyên tố
trong vế phải của đắng thức trên phải có số mũ chẵn. Nói cách khác, bài toán của
chúng ta quy về để tìm Ui, U2, ^3, U R
CỊL

• C2'2 • • •

E

CU

R

{0,1} sao cho
T

là số chính phương.

0 đ â y c hú n g t a l ấ y l í ị = 1 n ế u t í n h c ả C ị t r o n g t í c h s ố, v à l ấy U ị = 0 n ế u k h ô n g

tính Cị

trong tích số.

Viết tích số dưới dạng của phép phân tích thừa số nguyên tố của Ci, ...,c r cho
biểu thức khá cồng kềnh

cĩ‘• c:;2 — < ? = ( P V ' P T P T ■ ■ ■ P t ư T ' ■ ( P T P T P T ■ ■ ■ P T T 2 ■ ■ ■
{P\'1PTPT ■ ■■Ptr‘)Ur
2t

__ p€ nU i + €- 2 l U 2 - ị--------------------------------herJMr p G i 2 U i + € 22 U 2 - ỉ---Her 2 u r ^ e \ t u I + e H___h e r t u r

Biểu thức này sẽ dễ nhìn hơn nếu nó được viết bằng cách sử dụng tổng và tích, kí
hiệu
Ú C T = Úpf u ' e i l U i i =1 j = l

(L12)


Trong mọi trường hợp, mục tiêu của chúng ta là chọn U i , ..., u r sao cho tất cả số mũ
trong (ìl.llíì hay trong (I1.12Ị) . là chẵn Tóm lại, chúng ta có được các số nguyên
611,
62í,eri,

er2,

612,e2i,

•••,

e rt

và ta


622,
đi

•••,

tìm các số nguyên Ui,

u2..., ur sao cho

eniii + e 2iW 2 + • • • +
612U 1

ERIUR

= 0 (mod 2),

+ ^ 22 2 + • • • + € r 2U R — 0 (mod 2),
u

i

:

(1.13)

e u Ui + e 2 t u 2 +--------h e r t u r = 0 (mod 2).
Hệ đồng dư (Ì1.13Ị) chỉ là hệ phương trình tuyến tính trên trường hữu hạn F2. Do
đó sử dụng tiêu chuẩn từ đại số tuyến tính, như phép khử Gauss để giải hệ phương
trình này.

Ví dụ 1.5.6. Chúng ta minh hoạ bước phép khử đại số tuyến tính bằng cách phân
tích số
N = 9788111.
Ta tìm số

A

có tính chất

A?

là 50—trơn, tức là, tìm số

A

sao cho a 2 mod N bằng

tích của các số nguyên tố trong tập hợp
{2, 3, 5, 7,11,13,17,19, 23, 29, 31, 37, 41, 43, 47}.
Phần trên của Bảng 1.5 liệt kê 20 số <7,1, a2,0-20 từ 3129 đến 4700 có tính chất
này, cùng với phép phân tích thừa số của mỗi
C Ị = A Ị (mod N).

Phần dưới của Bảng 1.5 chuyển điều kiện rằng tích

C^2

• • -^20° phải là một bình

phương thành hệ phương trình tuyến tính cho (ui, u 2,M20) như đã trình b à y b ở i

(03!). Đe thuận tiện kí hiệu, chúng ta đã viết hệ phương trình
t u y ế n tính trong Bảng 1.5 dưới dạng ma trận

Bước tiếp theo là giải hệ phương trình tuyến tính trong Bảng 1.5. Việc này có
thể được thực hiện bằng phép khử Gauss, luôn lưu ý rằng toàn bộ phép tính


×