Tải bản đầy đủ (.pdf) (84 trang)

luận văn: nghiên cứu sự an toàn của một số hệ mật mã hiện đại

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 (3.38 MB, 84 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ



PHẠM THỊ LƯƠNG





NGHIÊN CỨU SỰ AN TOÀN CỦA MỘT SỐ
HỆ MẬT MÃ HIỆN ĐẠI

Ngành: Công nghệ thông tin
Chuyên ngành: Kỹ thuật phần mềm
Mã số: 60480103





LUẬN VĂN THẠC SĨ KỸ THUẬT PHẦN MỀM

Người hướng dẫn khoa học: TS Lê Phê Đô









Hà Nội – 2014



1
LỜI CAM ĐOAN

Tôi xin cam đoan kết quả đạt được trong luận văn là sản phẩm của riêng của cá
nhân tôi, nếu trích dẫn thì có ghi chú rõ ràng. Trong toàn bộ nội dung của luận văn,
những điều được trình bày hoặc là của cá nhân hoặc là được tổng hợp từ nhiều nguồn
tài liệu. Tất cả các tài liệu tham khảo đều có xuất xứ rõ ràng và được trích dẫn hợp
pháp.
Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định
cho lời cam đoan của mình.
Hà Nội, ngày 02 tháng 12 năm 2014



Phạm Thị Lương



2
MỤC LỤC

LỜI CAM ĐOAN 1
DANH MỤC CÁC TỪ VIẾT TẮT 4
DANH MỤC HÌNH VẼ 4

MỞ ĐẦU 5
Lý do chọn đề tài: 5
Đối tượng và phạm vi nghiên cứu: 5
Mục đích nghiên cứu của luận văn: 5
Bố cục luận văn: 5
CHƯƠNG I. CƠ SỞ TOÁN HỌC CỦA MẬT MÃ HIỆN ĐẠI 7
I.1 Tổng quan về số nguyên tố: 7
1.1 Số nguyên tố 7
1.2 Một số định lý cơ bản 11
1.3 Thuật toán kiểm định số nguyên tố Miller – Selfridge – Rabin (MSR). 12
1.4 Các tiêu chuẩn đường cong Elliptic 13
1.5 Thuật toán AKS 15
I.2 Các phương pháp phân tích nhân tử số nguyên 16
2.1 Các phương pháp phân tích nhân tử cổ điển 16
2.2 Phương pháp phân số liên tục 17
2.3 Thuật toán Pollard 19
2.4 Sàng bậc 2 21
2.5 Phương pháp đường cong Elliptic 23
I.3 Logarit rời rạc 25
3.1 Các khái niệm cơ sở 25
3.2 Thuật toán bước Baby và bước Giant của Shank 25
3.3 Thuật toán Pollig – Hellman 26
CHƯƠNG 2: NGHIÊN CỨU SỰ AN TOÀN CỦA MỘT SỐ HỆ MẬT MÃ HIỆN ĐẠI
30
II.1 Mật mã RSA 30



3
2.1 Các cuộc tấn công vào RSA 30

2.1.1 Factoring RSA-768 31
2.1.2 Tấn công Fault-Base : 41
II.2 Mật mã Elgamal 51
2.2 Các cuộc tấn công vào hệ mật mã Elgamal : 51
2.2.1 Phương pháp phân rã số nguyên: 51
2.2.2 Tấn công gặp nhau ở giữa( MEET-IN-THE-MIDDLE ATTACK) 56
2.2.3 Tấn công hai bảng 58
II.3 Mật mã đường cong Elliptic 59
2.3 Các cuộc tấn công vào mật mã dựa trên đường cong Elliptic 60
2.3.1 Tấn công ECC2K-130 61
2.3.2 Tấn công logarit rời rạc trên đường cong 66
2.3.3 Tấn công dựa vào nguồn điện đơn giản- Simple power attacks (SPA): 70
2.3.4 Tấn công phân tích nguồn điện vi phân DPA: 71
2.3.5 Tấn công không điểm(Zero-point attacks): 72
2.3.7 Đánh giá sự an toàn của mật mã dựa trên đường cong Elliptic thông qua
các cuộc tấn công : 76
CHƯƠNG 3: CÀI ĐẶT 78
Một số hình ảnh 79
TỔNG KẾT 80
KẾT LUẬN 80
HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 81
TÀI LIỆU THAM KHẢO 82




4
DANH MỤC CÁC TỪ VIẾT TẮT

NGHĨA CỦA TỪ TỪ GỐC


TỪ TIẾNG ANH
Mật mã đường cong Elliptic ECC Elliptic Curve Cryptography
Định lý đồng dư Trung Hoa CRT Chinese Remainder Theorem
Bài toán logarit rời rạc DLP Discrete Logarithm Problem
Mảng cổng lập trình được dạng trường. FPGA Field Programmable Gate Array
Cửa sổ mũ cố định FWE Fixed- window exponetion
Tầng các ổ cắm bảo mật SSL Secure Sockets Layer
ECDBL Elliptic curve dou-bling
ECADD Elliptic curve addition
Ước chung lớn nhất ƯCLN
Phân tích nguồn điện vi phân DPA Differential Power Analysis
Phân tích nguồn điện đơn giản SPA Simply Power Analysis
Không điểm ZVP Zero- Value Point
Thuật toán Eculid EEA Extended Euclidean Algorithm
Định lý Fermat nhỏ FLT Fermat’s Little Theorem

DANH MỤC HÌNH VẼ

HÌNH NỘI DUNG
Hình 2.1 Lược đồ tấn công Fault-Base
Hình 2.2 Ví dụ về khôi phục khóa theo các bit của cửa sổ
Hình 2.3 Tỷ lệ bit lỗi thu được trong OpenSSL khi điều chỉnh điện thế
Hình 2.4 Phần trăm tích lũy các bits của khóa bí mật khi khôi phục
Hình 3.1 Chọn số cần phân tích
Hình 3.2 Kết quả phân tích
Bảng 2.1 Độ dài của khóa giữa RSA và ECC khi ở cùng mức an toàn









5
MỞ ĐẦU
Lý do chọn đề tài:
Cùng với sự phát triển của khoa học và công nghệ, các hệ mật mã hiện đại được
ứng dụng trong nhiều lĩnh vực của cuộc sống. Trong các hệ mật mã hiện đại, ba hệ mật
mã RSA, Elgamal và hệ mật trên đường cong Elliptic được sử dụng phổ biến nhất
hiện nay. Để có thể yên tâm sử dụng, chúng ta cần phải đánh giá sự an toàn của các hệ
mật trên. Đây chính là lý do để tôi quyết định chọn đề tài “Nghiên cứu sự an toàn
của một số hệ mật mã hiện đại” làm luận văn tốt nghiệp.
Trong luận văn tôi đã tổng hợp các kết quả nghiên cứu mới nhất ở Việt Nam và
trên thế giới về ba hệ mật mã trên. Từ đó người sử dụng có thể đảm bảo an toàn cho dữ
liệu của mình.
Tôi xin chân thành cảm ơn thầy Lê Phê Đô đã tận tình hướng dẫn tôi hoàn
thành luận văn này.
Đối tượng và phạm vi nghiên cứu:
Đối tượng nghiên cứu:
 Các khái niệm, thuật toán và độ phức tạp của các thuật toán liên quan.
 Độ phức tạp và hiệu quả của một số phương pháp tấn công.
 Xây dựng và cài đặt một phương pháp tấn công RSA
Phạm vi nghiên cứu của luận văn:
 Các khái niệm và thuật toán từ cổ điển đến hiện đại liên quan đến các hệ mật
mã RSA, Elgamal, và các hệ mật trên đường cong Elliptic
 Các vấn đề mới xuất hiện liên quan đến độ an toàn của các hệ mật mã hiện đại
 Những kết quả mới trong các lĩnh vực liên quan
Mục đích nghiên cứu của luận văn:

Dựa trên kết quả tổng hợp được đề xuất những phương án sử dụng các hệ mật
mã RSA, Elgamal và hệ mật trên đường cong Elliptic một cách an toàn trong điều kiện
hiện nay
Bố cục luận văn:
Luận văn gồm 3 chương cùng với phần mở đầu, kết luận và các danh mục.
Chương 1: Cơ sở toán học của mật mã hiện đại
Trình bày các khái niệm cơ bản của đại số và số học, các thuật toán và bài toán
liên quan đến các hệ mật mã
Chương 2: Nghiên cứu sự an toàn của một sô hệ mật mã hiện đại
Chương này trình bày tổng quan về các hệ mật mã RSA, Elgemal, mật mã dựa
trên đường cong Elliptic. Nội dung chính của chương là trình bày các tấn công và đánh
giá sự an toàn thông qua các tấn công đó.
Chương 3: Cài đặt



6
Cài đặt một tấn công vào RSA sử dụng phương pháp phân tích Fermat số N



7
CHƯƠNG I. CƠ SỞ TOÁN HỌC CỦA MẬT MÃ HIỆN ĐẠI
I.1 Tổng quan về số nguyên tố:
1.1 Số nguyên tố
a, Số lượng số nguyên tố
Số nguyên tố là số nguyên dương chỉ chia hết cho 1 và chính nó.
Ví dụ, 2, 3, 7 là ba số nguyên tố đầu tiên.
Ba số nguyên tố lớn nhất được tìm ra cho đến nay là


STT

Số nguyên tố Số chữ số Ngày tìm ra Người/Tổ
chức tìm ra
1 2
42.643.801
-1 12.837.064 12 tháng 4
năm 2009
GIMPS /
Odd M.
Strindmo
2 2
43.112.609
-1 12.978.189 23 tháng 8
năm 2008
GIMPS /
Edson Smith

3 2
57.805.161
-1 17.425.170 25 tháng 1
năm 2013
GIMPS /
Curtis
Coope

Các số nguyên tố lớn đóng vai trò cốt yếu trong việc xây dựng các hệ mật mã
hiện đại, như hệ mật RSA, ElGamal và hệ mật trên đường cong Eliptic. Vì vậy, việc
tìm ra các số nguyên tố lớn luôn giành được sự quan tâm đặc biệt của cộng đồng toán
học và công nghệ thông tin.

Câu hỏi đặt ra là số các số nguyên tố có đủ nhiều cho các ứng dụng của chúng
ta hay không? Hơn 2.000 năm trước Euclid đã chứng minh được tính vô hạn của các
số nguyên tố. Cụ thể hơn, các nhà toán học sau đó đã tìm ra được phân bố của các số
nguyên tố trong định lý sau:
Định lý 1.1. Định lý về số các số nguyên tố
Giả sử
( )x

là số các số nguyên tố nhỏ hơn hoặc bằng x, khi đó
( )
ln
x
x
x


theo
nghĩa
( ) / ( / ln ) 1
x x x


khi x.
Tôi không đưa ra chứng minh định lý này ở đây vì ra ngoài nội dung của luận văn, mà
tôi đưa ra bảng sau để chứng tỏ số nguyên tố quả thực là đủ dùng cho các ứng dụng
của chúng ta.



8

Bảng một số giá trị của π(x)
x π(x)
10
15
29844570422669

10
16
279238341033925

10
17
2623557157654233

10
18
24739954287740860

10
19
234057667276344607

10
20
2220819602560918840

10
21
211272694860018731928


10
22
201467286689315906290

10
23
1925320391606803968923

10
24
18435599767349200867866

Hơn nữa, nếu giả thiết Riemann đúng, khi đó ta có đánh giá số các số nguyên tố như
sau:
log
2
( ) ( )
ln
x
c x
dt
x O xe
t


 

(1.1)
hay công thức hiệu quả hơn:
2

( ) ( ln )
ln
x
dt
x O x x
t

 

(1.2)
Tuy nhiên cho đến nay chúng ta chưa biết giả thiết Riemann đúng hay không.
Đây là một trong bảy bài toán được Viện toán cao cấp Clay treo giải 1 triệu USD vào
năm 2000.
Một số nguyên dương n > 1 bất kỳ luôn có biểu diễn duy nhất dưới dạng:

1 2
1 2

k
k
n p p p

 

(1.3)
ở đây p
1
<p
2
< …<p

k
là các số nguyên tố và 
1
, 
2
, …, 
k
là các số nguyên dương.
Sau đây là các số nguyên tố lớn được tham khảo từ trang


b, Mười số nguyên tố lớn nhất thuộc lớp Mersenne:
rank

prime Digits who

when

Reference
1

2
57885161
-1

17425170

G13

2013


Mersenne 48??

2

2
43112609
-1

12978189

G10

2008

Mersenne 47??

3

2
42643801
-1

12837064

G12

2009

Mersenne 46??


4

2
37156667
-1

11185272

G11

2008

Mersenne 45?



9
5

2
32582657
-1

9808358

G9

2006


Mersenne 44?
6

2
30402457
-1

9152052

G9

2005

Mersenne 43?
7

2
25964951
-1

7816230

G8

2005

Mersenne 42
8

2

24036583
-1

7235733

G7

2004

Mersenne 41
9

2
20996011
-1

6320430

G6

2003

Mersenne 40
10

2
13466917
-1

4053946


G5

2001

Mersenne 39
Các số nguyên tố không thuộc lớp Mersenne
Số nguyên tố lớn nhất không thuộc dạng số Mersenne được phát hiện là số
19.249x2
13.018.586
+1, gồm 3.918.990 chữa số. Ngày được kiểm định là 26 tháng 3 năm
2007.
c, Số nguyên tố dạng n!+1
Số nguyên tố lớn nhất dạng n!+1 là số 150.209!+1 gồm 712.355 chữ số, được chứng
minh vào tháng 10 năm 2011. Mười số nguyên tố lớn nhất dạng n!+1
rank

prime Digits Who

When

reference

1

150209!+1

712355

p3


2011 Factorial
2

147855!-1

700177

p362

2013 Factorial
3
110059!+1

507082

p312 2011 Factorial
4

103040!-1

471794

p301

2010 Factorial
5

94550!-1
429390


p290

2010 Factorial
6

34790!-1
142891

p85

2002 Factorial
7

26951!+1
107707

p65

2002 Factorial
8

21480!-1
83727 p65

2001 Factorial
9

6917!-1
23560 g1


1998 Factorial
10

6380!+1
21507 g1

1998 Factorial
d, Các số nguyên tố dạng p#±1
Số nguyên tố lớn nhất dạng p#±1 (tích của các số nguyên tố nhỏ hơn hoặc bằng p cộng
trừ 1) là số 1.098.133#-1 gồm 476.311 chữ số, được phát hiện ra vào tháng 3 năm
2012. Mười số nguyên tố lớn nhất dạng p#±1:
rank

Prime Digits who

when

Reference

1

1098133#-1

476311

p346

2012


Primorial
2

843301#-1
365851

p302

2010

Primorial
3

392113#+1

169966

p16

2001

Primorial



10
4

366439#+1


158936

p16

2001

Primorial
5

145823#+1

63142 p21

2000

Primorial
6

42209#+1
18241 p8

1999

Primorial
7

24029#+1
10387 C

1993


Primorial
8

23801#+1
10273 C

1993

Primorial
9

18523#+1
8002 D

1989

Primorial
10
15877#-1
6845 CD 1992

Primorial
e, Cặp số nguyên tố sinh đôi n±1:
Cặp số nguyên tố sinh đôi lớn nhất là cặp 3756801695685x2
666669
±1, được tìm ra vào
tháng 12 năm 2011. Mười số nguyên tố dạng sinh đôi lớn nhất:
rank


Prime digits Who when

Reference
1

3756801695685·2666669+1

200700

L1921

2011

Twin (p+2)

2

3756801695685·2666669-1

200700

L1921

2011

Twin (p)
3

65516468355·2
333333

+1
100355

L923

2009

Twin (p+2)

4

65516468355·2
333333
-1
100355

L923

2009

Twin (p)
5

2003663613·2
195000
+1
58711 L202

2007


Twin (p+2)

6

2003663613·2
195000
-1
58711 L202

2007

Twin (p)
7

38529154785·2
173250
+1
52165 L3494

2014

Twin (p+2)

8

38529154785·2
173250
-1
52165 L3494


2014

Twin (p)
9

194772106074315·2
171960
+1

51780 x24

2007

Twin (p+2)

10

194772106074315·2
171960
-1

51780 x24

2007

Twin (p)
g, Các số nguyên tố dạng Sophie German:
Số nguyên tố p được gọi là số nguyên tố dạng Sophie German nếu 2p+1 cũng là số
nguyên tố. Mười số nguyên tố dạng Sophie German lớn nhất là:
rank


Prime digits who when

reference
1

18543637900515·2
666667
-1
200701

L2429

2012

Sophie Germain (p)

2

183027·2
265440
-1
79911 L983

2010

Sophie Germain (p)

3


648621027630345·2
253824
-1

76424 x24

2009

Sophie Germain (p)

4

620366307356565·2
253824
-1

76424 x24

2009

Sophie Germain (p)

5

607095·2
176311
-1
53081 L983

2009


Sophie Germain (p)

6

48047305725·2
172403
-1
51910 L99

2007

Sophie Germain (p)




11
7

137211941292195·2
171960
-1

51780 x24

2006

Sophie Germain (p)


8

31737014565·2
140003
-1
42156 L95

2010

Sophie Germain (p)

9

14962863771·2
140001
-1
42155 L95

2010

Sophie Germain (p)

10

33759183·2
123458
-1
37173 L527

2009


Sophie Germain (p)

1.2 Một số định lý cơ bản
Định nghĩa 1.1
Giả sử
a
 Z
và n
n
 
. Phần tử nghịch đảo của số nguyên a theo modulo n là
số nguyên x thỏa mãn ax ≡ 1(modn). Nếu x là số nguyên dương nhỏ nhất thỏa mãn là
phần tử nghịch đảo của a, ta ký hiệu x=a
-1
.
Định lý 1.2 Định lý Wilson
Nếu p là số nguyên tố, khi đó
(p - 1) !≡ -1(modp).
Chứng minh
Kết quả là tầm thường với p≤3, bởi vậy ta xét với p>3. Theo định nghĩa 1.1,
với số nguyên
a
 Z
bất kỳ với 2≤a≤p-2 ta có duy nhất
1
a

Z
với 2≤ a

-1
≤p-2.
Ngoài ra, ta nhận thấy a=a
-1
nếu và chỉ nếu a=1 hoặc a=p-1, do đó tích của các
số a
-1
với 2≤ a
-1
≤p-2 cũng chính là tích của các số a=2, 3, …, p-2 được săp theo 1 thứ
tự nào đó. Bới vậy, sau khi hoán vị các phần tử một cách thích hợp, ta có :
(p – 2) ! ≡ 1(modn).
Như vậy,
(p - 1) !≡(p – 1)(modp).≡ -1(modn).
Ví dụ 1.1 Nếu p=17, khi đó với mỗi
a
 
, với 2≤a≤15 ta có
2.9 ≡ 3.6 ≡ 4.13 ≡ 5.7 ≡ 8.15 ≡ 10.12 ≡ 11.14 ≡ 1(mod17).
Định lý 1. 3 Định lý ngược của định lý Wilson
Nếu n thuộc N và
(n-1) !≡-1(modn), khi đó n là số nguyên tố.
Định lý 1. 4 Định lý nhỏ Fermat
Nếu a thuộc Z, và p là số nguyên tố sao cho gcd(a, p)=1, khi đó :
a
p-1
≡1(modp)
Định nghĩa 1. 2 Hàm Ф-Euler
Cho n bất kỳ thuộc N, hàm Ф-Euler của n là số phần tử m thuộc N và nhỏ hơn n và
gcd(m, n)=1.

Định lý 1. 5 Tính chất số học của hàm Ф-Euler
Nếu
1
j
a
k
j j
n p

 
ở đây p
j
là các số nguyên tố khác nhau, khi đó



12
1
1 1
( ) ( ) ( ).
j j j
a a a
k k
j j j j j
n p p p

 
      

Định lý 1. 6 Tổng quát hóa Định lý nhỏ Fermat

Nếu n thuộc N và m thuộc Z sao cho gcd(m, n) = 1, khi đó
m
Ф(n)
≡1(modn).
1.3 Thuật toán kiểm định số nguyên tố Miller – Selfridge – Rabin (MSR).
Bài toán là kiểm định số n>1 lẻ xem có phải là số nguyên tố hay không.
Chúng ta giả sử n-1=2
t
m, ở đây m là số nguyên lẻ thuộc N và t thuộc N.
Số n được sử dụng trong các bước tính toán sau, trong đó ta sử dụng “thuật toán bình
phương và nhân”
Bước 1: Chọn ngẫu nhiên số a thỏa 2≤a≤n-2.
Bước 2 : Tính x
0
≡a
m
(modn)
Nếu
0
1(mod )x n
 

Khi đó ta kết thúc thuật toán và kết luận n có thể là số nguyên tố.
Nếu
0
1(mod )x n 
và t=1, ta cũng kết thúc thuật toán và kết luận n là hợp số.
Nếu khác, ta đặt j=1 và đi đến bước (3).
Bước 3: Tính
2

(mod )
j
m
j
x a n

.
Nếu x
j
≡1(modn) thì ta kết thúc thuật toán và kết luận “n là hợp số”.
Nếu x
j
≡ -1(modn), ta kết thúc thuật toán với kết luận “n có thể là số nguyên tố”.
Nếu khác, đặt j=j+1 và đi đến bước (4).
Bước 4: Nếu j=t-1, khi đó đi tới bước (5). Nếu khác, quay lại bước (3).
Bước 5: Tính
1
2
1
(mod )
t
m
t
x a n




Nếu x
t-1

≠-1(modn), khi đó kết thúc thuật toán với kết luận “n là hợp số”.
Nếu x
t-1
≡-1(modn), khi đó kết thúc thuật toán với kết luận “n có thể là số nguyên tố”.
Ví dụ, xét n=1729. Từ đó,
n-1=2
6
.27, với t=6 và m=27. Lấy a=2. Khi đó
x
0
≡2
27
≡645(modn),
bởi vậy, ta đặt j=1 và tính
x
1
≡2
2.27
≡1065(modn),
bởi vậy, ta đặt j=2 và tính
x
2
≡2
4.27
≡1(modn).
Như vậy, theo bước (3) của Tiêu chuẩn MRS chúng ta có thể kết luận n là hợp
số. Thực vậy, n = 1729 = 7. 13. 19.
Nhận xét:
Nếu n là hợp số nhưng theo cở sở a và thuật toán Miller – Selfrdge - Rabin lại
được tuyên bố là “nguyên tố theo xác suất” thì n được gọi là số giả nguyên tố mạnh




13
theo cơ sở a. Khi n là hợp số nhưng thuật toán lại tuyên bố n là số nguyên tố với xác
suất sai nhiều nhất là 25%.
1.4 Các tiêu chuẩn đường cong Elliptic
Trước hết, chúng ta giới thiệu một số kiến thức cơ sở.
Định nghĩa 6.1 Đường cong Elliptic
Giả sử F là trường hữu hạn với các chỉ số đặc trưng không bằng 2 và 3. Nếu a
và b thuộc F được cho sao cho 4a
3
+27b
2
≠0 trong F, khi đó đường cong Elliptic E được
cho trên F được xác định bởi phương trình y
2
=x
3
+ax+b thuộc F[x]. Tập tất cả các
nghiệm (x, y) thuộc F của phương trình y
2
=x
3
+ax+b cùng với 1 điểm O, được gọi là
điểm vô hạn, được ký hiệu là E(F), được gọi là tập các điểm =-hữu tỷ trên E.
Ví dụ: ( E) y
2
= x
3

+2x+9
a= 2; b=9 và xác định trên R.
Bây giờ ta xét E trên trường F=(Z
19
; +, * theo md19)
4a
3
+27b
2
= 4*8+27*81(mod19)=15
Giá trị Δ( E) = -16(4a
3
+27b
2
) được gọi là biệt số của đường cong E.
Ví dụ: Δ( E) = 7.
Các tính chất của đường cong Elliptic
Chúng ta giả sử E(Q) là là đường cong elliptic trên Q được cho bởi y
2
=x
3
+ax+b,
ở đây a và b thuộc Z, và O được ký hiểu là điểm vô hạn.
Tính chất cộng:
Với 2 điểm P(x
1
, y
1
) , Q(x
2

, y
2
) bất kỳ trên E, với P, Q khác O và P≠-Q, ta xác định:
P+Q=(x
3
, y
3
)
Với x
3
=m
2
-x
1
-x
2

y
3
= m(x
1
-x
3
)-y
1

ở đây
1 2 2 1 2 1
2
1 2 1 1

/ ( ) / ( ),
/ (3 ) / (2 ),
m m y y x x khi P Q
m
m m x a y khi P Q
   



  



P+O=P, O+Q=Q với mọi P, Q.
Nếu P=-Q, khi đó P+Q=O.
Quy về theo modulo n :
GS n>1 đã được chọn và cố định với gcd(n, 6)=1 và gcd(4a
3
+27b
2
, n)=1. Khi đó ta nói
rằng E được quy về modulo n nếu các hệ số a, b được quy về modulo n và mỗi điểm P
trên E được quy về modulo n theo cách như sau:
Nếu P=(r
1
/r
2
; s
1
/s

2
) ở đây
gcd(r
1
;r
2
)=gcd(s
1
;s
2
)=gcd(r
2
s
2
;n)=1; khi đó
P=(t
1
, t
2
), ở đây



14
t
1
=r
1
(r
2

)
-1
(modn),
t
2
=s
1
(s
2
)
-1
(modn)
Luật nhóm modulo
GS rằng P
1
và P
2
là các điểm trên E(Q) với P
1
+P
2
≠O và có mẫu số nguyên tố cùng
nhau với n. Trong đó, P
1
+P
2
được gọi là có mẫu số nguyên tố cùng nhau với n nếu và
chỉ nếu không tồn tại số nguyên tố p|n sao cho P
1
+P

2
= O trên đường cong elliptic
E(Z
p
).
Sau đây ta giới thiệu thuật toán phân tích nhân tử theo phương pháp đường cong
Elliptic :
Giả sử n là hợp số, nguyên tố cùng nhau với 6 và không là lũy thừa của số nguyên tố
nào.
Chọn đường cong Elliptic
Chọn ngẫu nhiên cặp (E, P), ở đây E=E(Z
n
) là một đường cong Elliptic
y
2
=x
3
+ax+b
và P là một điểm trên E.
Kiểm tra g=gcd(n, 4a
3
+27b
2
)=1.
Nếu không thỏa, chúng ta có thể phân tích n nếu 1<g<n chúng ta có thể kết thúc thuật
toán.Nếu không, ta chuyển sang (2).
Chọn các cận
Lấy M thuộc N và các cận A, B sao cho M có thể phân tích thành tích của các số
nguyên tố nhỏ hơn hoặc bằng B:
1

p
j
l
a
j
j
M p



và lũy thừa của các số nguyên tố trong khai
triển của M nhỏ hơn hoặc bằng phần nguyên dưới của ln(A)/ln(p
j
):
ln( ) / ln( )
j
p j
a A p
 

 
.
Dùng công tức tính P+Q để tính p
j
P.
Tìm gcd:
Nếu p
j
P≠O (modn) khi đó đặt P= p
j

P và lặp lại với k bằng k+1.
Nếu k≤a
pj
, thì quay lại bước 3.
Nếu k>a
pj
thay j bởi j+1, và đặt k=1. Nếu j≤l, ta quay lại (3). Nếu khác, ta đi đến (5).
Khi p
j
P=O(modn), ta tính gcd(m
2
, n). Nếu n>g, thuật toán hoàn thành. Nếu g=n ta
cũng đến (5).
Chọn cặp ( E, P) mới.
Thay r=r-1. Nếu r>0 ta quay lại (1).
Nếu khác ta kết luận thuật toán thất bại.
Ví dụ, giả sử n=923, và ta chọn (E, P)=(y
2
=x
3
+2x+9 ; (0,3)).
Kiểm tra
gcd(4*2
3
+27*9
2
, 923)=1,




15
Chọn B=4, A=3, M=6=2.3.
Tính p
1
P=2(0, 3)=(718; 373);
Thay P ban đầu bởi (718; 373) và tính
p
2
P=3P=2P+P=(505; 124) + (718; 373)≡O(modn), do vậy n không phải là số nguyên
tố.
Thực vậy , n=13.71.
Nhận xét: Thời gian chạy của thuật toán phụ thuộc nhiều vào ước nguyên tố nhỏ nhất
của n. Thuật toán có hiệu quả nhất khi n có ước nguyên tố nhỏ. Người ta đã chứng
minh được rằng, nếu p là ước nguyên tố nhỏ nhất của n, khi đó thời gian chạy trung
bình là:
2
(exp( (2 (1))ln (lnln )).ln )O o p p n

.
Trong thực tế. điều này được sử dụng để chọn cận B trong bước (2) của thuật toán
theo công thức:
exp( ln (ln ln ) / 2
B p p
.
Khi n là modulo của hệ mật RSA thì trong trường hợp xấu nhất thời gian chạy trung
bình của thuật toán là :
(2 (1))(lnln )/ln
(exp( (2 (1))ln(lnln )) ( )
o n n
O o n O n


 

1.5 Thuật toán AKS
Năm 2002, ba nhà khoa học là Manindra Agrawal, Neeraj Kayal và Nitin
Saxena đã giới thiệu thuật toán AKS chạy trong thời gian đã thức để kiểm định xem
một số tự nhiên lớn hơn 1 có phải là số nguyên tố hay không.
Định lý 1.7 ([2] trang 30)
Nếu thuật toán kết luận n là số nguyên tố thì n thực sự là số nguyên tố.
Thuật toán AKS
Input: n≥1;
STEP 1. If
, 1 ,a b and a b
  
such that n = a
b
, then Output COMPOSITE;
STEP 2. Find the minimal
r
 
such that O
r
(n)>log
2
(n);
STEP 3. For a=1 to r do
If 1<(a, n)<n, then Output COMPOSITE;
STEP 4. If r≥n, then Output PRIME;
STEP 5. For a=1 to
( )logr n

 

 
do
If
( ) mod( 1, )
n n r
x a x a x n
   
then Output COMPOSITE
STEP 6. Output PRIME.
Ở đây, O
r
(n) là bậc của n theo modulo n, hàm log tính theo cơ số 2, và

(r)
làm phi – Euler của r.
Trong thuật toán AKS ta đã sử dụng bổ đề sau:



16
Bổ đề. Giả sử a là 1 số nguyên, khi đó n là số nguyên tố nếu và chỉ nếu”
(X+a)
n
≡ X
n
+a (modn).
Chứng minh
Theo khai triển nhị thức Newton, hệ số của X

i
trong (X+a)
n
- (X
n
+a) là
i n i
n
C a

.
Giả sử n là số nguyên tố.
Khi đó,
0(mod )
i
n
C n

và từ đó tất cả các hệ số là bằng 0.
Giả sử n là một hợp số.
Xét số nguyên tố q là một nhân tử của n và q
k
là ước của n còn q
k+1
thì không. Khi đó,
q
k
không phải là ước của
q
n

C
và gcd(a
n-q
, q
k
)=1, do đó hệ số của X
q
không bằng 0 theo
modulo n.
Đây chính là điều phải chứng minh.
Số nguyên tố lớn nhất được tìm ra bằng AKS cho đến nay là số
Thời gian chạy của thuật toán ([2] trang 35)
Thuật toán chạy trong thời gian đa thức, cụ thể như sau.
STEP 1. Chạy nhiều nhất O(log
3
n) phép toán;
STEP 2. Cần O(log
7
n) phép toán;
STEP 3. O(log
7
n);
STEP 5. O(log
10,5
n);
Nhận xét
Thuật toán AKS không phân tích n thành nhân tử mà chỉ kiểm định xem n có
phải là số nguyên tố hay không mà thôi.
I.2 Các phương pháp phân tích nhân tử số nguyên
2.1 Các phương pháp phân tích nhân tử cổ điển ([1], trang 207-209)

a) Bài toán phân tích nhân tử số nguyên
Bài toán
Cho n thuộc N, hãy tìm các số p
j
với j=1, 2, …, r thuộc N với p
1
<p
2
< …<p
r
và các
e
j
, với j thuộc N, với j=1, 2, …,r thuộc N sao cho :
1
j
r
e
j
j
n p




Phương pháp thử chia:
Đây là phương pháp lâu đời nhất để phân tích 1 số nguyên, để tiến hành ta chia n với
tất cả các số nguyên tố nhỏ hơn hoặc bằng
n
.

Phương pháp phân tích nhân tử Ferma
Chỉ được ứng dụng với các số nguyên dạng
n= x
2
+ay
2
=z
2
+aw
2
,



17
ở đây x≠z và y≠w.
Nghĩa là n có thể biểu diễn bằng 2 cách với điều kiện a≠0 và a thuộc Z.
Khi đó n có 1 nhân tử không tầm thường là
gcd( w , )x yz n
.
b) Phương pháp phân tích Legendre
Phương pháp này còn được gọi là phương pháp phân số liên tục
Nếu tìm được

2 2
2 2
(mod )
w (mod )
x py n
pz n




Là 2 cặp số khác nhau.
Khi đó
(xw)
2
≡(pzy)
2
(modn)
Và ta có nhân tử không tầm thường của n là
w (mod )x pzy n 

c) Phương pháp phân tích nhân tử lũy thừa phổ dụng
Giả sử e là lũy thừa phổ dụng của n thuộc N và e=2
b
m, ở đây b≥0 và m lẻ. Khi đó ta
thực hiện các bước sau :
(1) Chọn ngẫu nhiên 1 số a thỏa 1<a<n-1.
Nếu gcd(a, n)>1, khi đó ta có 1 nhân tử của n và có thể kết thúc thuật toán.
Nếu khác, ta đi đến bước 2.
(2) Tính x
0
≡a
m
(modn). Nếu x
0
≡1

(modn), ta quay lại bước 1. Nếu khác, tính

2
1
(mod )
j j
x x n


với mọi j=1, 2, …, b.
Nếu x
j
≡-1(modn), ta quay lại bước (1).
Nếu x
j
≡1(modn), nhưng x
j-1
không đồng dư với +-1(modn), khi đó gcd(x
j-1
-1,n) là 1
nhân tử không tầm thường của n.
Ví dụ, Cho n= 15841, e=2
5
.405. GS chọn a=2, khi đó 2
405
≡1(modn). Bởi vậy ta quay
lại bước 1.
Chọn a=3. Tính x
0
=3
405
≡2820(modn),

x
1
=2820
2
≡218(modn),
x
2
=218
2
≡1(modn),
do x
1
≠+-1(modn), nên gcd(217, 15841)=217 là nhân tử của n=15841. Thực vậy,
15841=217*73.
2.2 Phương pháp phân số liên tục ([1], trang 211-213):
Giả sử chúng ta cần phân tích n thuộc N và cận trơn B đã được chọn. Khi đó chúng ta
thực hiện các bước sau:
(1) Chọn một nhân tử cơ sở từ tập các số nguyên tố
A={p
1
; p
2
; …; p
k
}



18
Với k thuộc n nào đó được xđ bởi B và chỉ số J.

Từ các kiến thức hiện nay, chúng ta biết k tối ưu là
exp( log( )loglog( ))k n n


(2) Tập Q
0
=1; P
0
=0; A
-2
=0; A
-1
=1; A
0
=
n
 
 
=P
1
.
Với mỗi số tự nhiên j≤J, ta dùng công thức đệ quy sau:
2
1
1 2
1
,
j
j
j

j
n P
j
Q
P n
j
Q
j j j j
j j j j
Q
q
A q A A
P q Q P


 

 
 


 

 
 
 
 

Và thử chia Q
j

cho các số nguyên tố thuộc A để xác định Q
j
là p
k
-trơn
hay không.
Nếu thỏa, sử dụng phân tích nhân tử của nó

,
1
i j
k
a
j i
i
Q p



.
Để tạo ra bộ số nhị phân k+1 bit sau:
v
j
=(v
0,j
;v
1,j
;…;v
k,j
);

ở đây v
0,j
bằng 0 hay 1 phụ thuộc vào j chẵn hay lẻ; còn v
i, j
bằng 0 hay 1
phụ thuộc vào a
i,j
là chẵn hay lẻ. Nếu Q
j
không phải là p
k
-trơn thì bỏ quả
bước này và quay trở lại tính Q
j+1
.
(3) Với mỗi tập S các chỉ số của j, với các véc tơ v
j
xây dựng được ở bước (2),
chúng ta nhận thấy:

,
0(mod2),0 ,
i j
j S
v i k

  


Chúng ta có x

2
≡y
2
(modn), ở đây

1/2
( 1)
j
j
j S
x Q

 
 
 
 


1/2
1
(mod )
j
j S
y A n


 

 
 



Nếu x không đồng dư với +-y thì gcd(x+-y, n) là nhân tử không tầm
thường của n.
Ví dụ 6.2
Cho n=5969, một cách thuận lợi ta lấy
A={2, 5, 23, 43, 71, 103}.
Do
77
n
 

 
, khi đó chúng ta tính bảng sau:
j P
j
q
j
A
j-1
(-1)
j
Q
j
v
j
0 0 77 1 1 (0, 0, 0, 0, 0, 0, 0)
1 77 3 77 -40 (1, 1, 1, 0, 0, 0, 0)




19
2 43 1 232 103 (0, 0, 0, 0, 0, 0, 1)
3 60 5 309 -23 (1, 0, 0, 1, 0, 0, 0)
4 55 1 1777 128 (0, 1, 0, 0, 0, 0, 0)
5 73 30 2086 -5 (1, 0, 1, 0, 0, 0, 0)
6 77 19 64357 8 (0, 1, 0, 0, 0, 0, 0)
7 75 3 1224869

-43 (1, 0, 0, 0, 1, 0, 0)
8 54 1 3738964

71 (0, 0, 0, 0, 0, 1, 0)

Chúng ta có tập S thỏa mãn
,
0(mod 2)
i j
j S
v




với i=0, 1, …, 6.
Tập này chứa các véc tơ j=4, 6:
S={v
4
, v
6

}={(0, 1, 0, 0, 0, 0, 0); (0, 1, 0, 0, 0, 0, 0)}.
Với các véc tơ này ta có Q
4
=2
7
; Q
6
=2
2
; A
4
=1777 ; và A
6
=64357.
Chúng ta tính :
1
2318(mod5969)
j
j S
A




,
Và do
2 2 2 2 2
1
2318 (32) mod( ).
j j

j S j S
y A x Q n

 
    
 

Khi đó ta kiểm tra
gcd(x+-y ;n). Chúng ta tính được cả 2 :
gcd(x-y ;n)=gcd(2318-32 ;5969)=127

gcd(x+y ;n)=gcd(2318+32 ;5969)=47.
Vậy ta có phân tích :
n= 47*127.
2.3 Thuật toán Pollard ([1], trang 214-215)
Năm 1974, Pollard công bố sơ đồ phân tích nhân tử. Ông ta suy luận rằng, nếu (p-1)|n,
ở đây p là số nguyên tố thì p|(t
n
-1) khi p không phải là ước của t (theo định lý nhỏ
Fermat).
Thuật toán Pollard p-1:
Gỉa sử ta mong muốn phân tích
n

, và cận trơn B đã được chọn. Khi đó ta thực
hiện các bước sau:
(1) Chọn số cơ sở
a

, ở đây 2≤a<n và tính g=gcd(a, n). Nếu g>1, khi đó ta có

nhân tử của n. Nếu khác, ta đi đến bước (2).



20
(2) Với tất cả số nguyên tố p≤B, tính
ln( )
ln( )
n
m
p
 

 
 
và thay a bởi
(mod )
m
p
a n
bằng cách áp
dụng thuật toán “bình phương và nhân”.
(3) Tính g=gcd(a-1, n). Nếu g>1, khi đó chúng ta có nhân tử của n, và thuật toán
thành công. Nếu khác, thuật toán thất bại.
Phân tích thuật toán
Đặt
1
j
t
j

j
l p




ở đây
j
j
p

chạy trên lũy thừa của tất cả các số p
j
≤B. Do
j
j
p n


khi đó 
j
ln(p
j
)≤ln(n), bởi vậy
ln( )
ln( )
j
j
n
p


 

 
 
 
. Ta nhận được:

ln( )/ln( )
1
j
t
n p
j
j
l p
 
 



.
Nếu p|n là số nguyên tố sao cho p-1 là B – trơn, khi đó, (p-1)|l. Do đó
với bất kỳ a thuộc N mà p không phải là ước của a ta luôn có
a
l
≡1(modp), theo định lý nhỏ Fermat.
Bởi vậy, nếu g=gcd(a
l
-1, n), khi đó p|g. Nếu g=n thì thuật toán thất bại.

Nếu ngược lại thuật toán thành công.
Ví dụ
Lấy n=44717, và chọn B- trơn là 13, và lấy a=2.
Chúng ta biết a là nguyên tố cùng nhau với n theo kết quả ở bước (1).
Bảng sau cho kết cục ở bước (2):

Ta đi đến bước (3), và kiểm tra gcd(a-1, n)=gcd(4171, 44717)=97.
Từ đây ta có phân tích n=97.461. Nhận thấy rằng, p=97 là B-trơn do p-
1=2
5
.3, nhưng q=461 không phải là B-trơn do q-1=2
2
.5.23.
Pollard’s đã phát triển phương pháp khác để phân tích vào năm 1975,
được gọi là Phương pháp phân tích Monte Carlo cũng được gọi là
Phương pháp Pollard rho.
Cho n thuộc N là 1 hợp số, và p là một ước nguyên tố của n (nhưng ta
không biết), ta tiến hành các bước sau:
(1) Chọn một đa thức f với deg(f)≥2 – thường lấy f(x)=x
2
+1 cho đơn
giản.
(2) Chọn số nguyên ban đầu x=x
0
một cách ngẫu nhiên, làm hạt
giống, và tính x
1
=f(x
0
), x

2
=f(x
1
), …, x
j+1
=f(x
j
) với j=0, 1, 2,
…, B, ở đây cận B được xác định ở bước (3).



21
(3) Sàng qua tất cả các hiệu x
i
-x
j
modulon cho đến khi xác định được
x
B
≠x
j
(modn),
Nhưng x
B
≡x
j
(modn) với số tự nhiên B>j>1. Khi đó,
gcd(x
B

-x
j
, n)
là ước số không tầm thường của n.
Ví dụ
Nếu n=37351, và x
0
=2 là nhân với f(x)=x
2
+1, khi đó x
1
=f(x
0
)=5,
x
2
=f(x
1
)=26,
x
3
=f(x
2
)=677,
x
4
=f(x
3
)=3146,
x

5
=f(x
4
)=36653,
x
6
=f(x
5
)=1642.
Ở đây, ta thấy gcd(x
j
-x
i,
n)=1 với mọi i≠j, cho đến gcd(x
6
-x
0
, n)=41, Thực vậy,
n=37351=41x911.
2.4 Sàng bậc 2 ([1], trang 217-218):
1. Thuật toán sàng bậc 2
(1) Chọn bộ nhân tử cơ sở F={p
1
, p
2
, …, p
k
}, ở đây p
j
, j=1, 2, …, k là các số

nguyên tố.
(2) Với mỗi số nguyên không âm j, đặt t=±j. Tính
2
( )
t
y n t n
 
  
 

Cho đến khi tìm được k+2 giá trị là p
k
-trơn. Với mỗi t,
,
1
i t
k
t j
t
y p


 

(6. 3)
Từ đây ta xây dựng bộ k+1 bit:
v
t
=(v
0,t

, v
1,t
, …, v
k, t
)
ở đây v
i, t
là phần dư nhỏ nhất không âm theo modulo2 của 
i,t
với 1≤i≤k,
còn v
0,t
=0, nếu y
t
>0, và v
0,t
=1, nếu y
t
<0.
(3) Nhận được tập con S của các giá trị của t tìm được ở bước (2) sao cho
,
0(mod2).
i t
t S
v



(6.3)
Khi đó

2 2 2
(mod ),
t t
t S t S
x x y y n
 
  
 
ở đây
t
x n t
 
 
 
, và gcd(x±y, n) sẽ
cho ta ước số không tầm thường của n nếu x≠±y(modn).
Chúng ta tính với tất cả các p mà n không phải là thặng dư bậc 2 theo
modulop.



22
Ví dụ, Lấy n=60377. Từ phương trình xác định k tối ưu ta có
exp( log( )loglog( ))k n n


Ta có k=13, bởi vậy, chọn 13 số nguyên tố đầu tiên mà với nó n có thặng dư bậc 2.
Đó là F={2, 7, 11, 23, 29, 31, 37, 41, 53, 59, 61, 67, 71}.
Và lập được bảng sau:
t x

t
y
t
v
t
-1 244 -29
2
(1,0,0,0,0,0,0,0,0,0,0,0,0,0)
-3 242 -7
2
.37 (1,0,0,0,0,0,0,1,0,0,0,0,0,0)
3 248 7
2
.23 (0,0,0,0,1,0,0,0,0,0,0,0,0,0)
-4 241 -2
3
.7.41 (1,1,1,0,0,0,0,0,1,0,0,0,0,0)
4 249 2
3
.7.29 (0,1,1,0,0,1,0,0,0,0,0,0,0,0)
-6 239 -2
3
.11.37 (1,1,0,1,0,0,0,1,0,0,0,0,0,0)
6 251 2
6
.41 (0,0,0,0,0,0,0,0,1,0,0,0,0,0)
7 252 53.59 (0,0,0,0,0,0,0,0,0,1,1,0,0,0)
-10 235 -2
5
.7.23 (1,1,1,0,1,0,0,0,0,0,0,0,0,0)

11 256 7.11.67 (0,0,1,1,0,0,0,0,0,0,0,0,1,0)
-16 229 -2
8
.31 (1,0,0,0,0,0,1,0,0,0,0,0,0,0)
16 261 2
6
.11
2
(0,0,0,0,0,0,0,0,0,0,0,0,0,0)
-20 225 -2
3
.23.53 (1,1,0,0,1,0,0,0,0,1,0,0,0,0)
-22 223 -2
3
.11
3
(1,1,0,1,0,0,0,0,0,0,0,0,0,0)
22 267 2
5
.11.31 (0,1,0,1,0,0,1,0,0,0,0,0,0,0)

Trong bảng này ta nhận thấy tập S các giá trị của t thỏa mãn là S={-1, -3, -6, -22}.
Ở đây
245
n
 

 
, ta có:
2 2 2 2 2

2 2
244 .242 .239 .223
50885 (mod60377)
t
t S
x
x


 



6 2 4 2 2
2 2
2 .7 .11 .29 .37
25408 (mod60377)
t
t S
y
y


 


Bằng tính toán cả 2 gia trị:
gcd(x-y,n)=gcd(50885-25408, 60377)=349,

gcd(x+y,n)=gcd(50885+25408, 60377)=173.

Kiểm tra, ta nhận thấy 60377=173.349.



23

2.5 Phương pháp đường cong Elliptic ([1], trang 220-221)
Trước hết, chúng ta giới thiệu một số kiến thức cơ sở.
Định nghĩa 6.1 Đường cong Elliptic
Giả sử F là trường hữu hạn với các chỉ số đặc trưng không bằng 2 và 3. Nếu a
và b thuộc F được cho sao cho 4a
3
+27b
2
≠0 trong F, khi đó đường cong Elliptic E được
cho trên F được xác định bởi phương trình y
2
=x
3
+ax+b thuộc F[x]. Tập tất cả các
nghiệm (x, y) thuộc F của phương trình y
2
=x
3
+ax+b cùng với 1 điểm O, được gọi là
điểm vô hạn, được ký hiệu là E(F), được gọi là tập các điểm =-hữu tỷ trên E.
Ví dụ: ( E) y
2
= x
3

+2x+9
a= 2; b=9 và xác định trên R.
Bây giờ ta xét E trên trường F=(Z
19
; +, * theo md19)
4a
3
+27b
2
= 4*8+27*81(mod19)=15
Giá trị Δ( E) = -16(4a
3
+27b
2
) được gọi là biệt số của đường cong E.
Ví dụ: Δ( E) = 7.
Các tính chất của đường cong Elliptic
Chúng ta giả sử E(Q) là là đường cong elliptic trên Q được cho bởi y
2
=x
3
+ax+b, ở đây
a và b thuộc Z, và O được ký hiểu là điểm vô hạn.
(1) Tính chất cộng:
Với 2 điểm P(x
1
, y
1
) , Q(x
2

, y
2
) bất kỳ trên E, với P, Q khác O và P≠-Q,
ta xác định:
P+Q=(x
3
, y
3
)
Với x
3
=m
2
-x
1
-x
2

y
3
= m(x
1
-x
3
)-y
1

ở đây
1 2 2 1 2 1
2

1 2 1 1
/ ( ) / ( ),
/ (3 ) / (2 ),
m m y y x x khi P Q
m
m m x a y khi P Q
   



  



P+O=P, O+Q=Q với mọi P, Q.
Nếu P=-Q, khi đó P+Q=O.
(2) Quy về theo modulo n :
GS n>1 đã được chọn và cố định với gcd(n, 6)=1 và gcd(4a
3
+27b
2
, n)=1.
Khi đó ta nói rằng E được quy về modulo n nếu các hệ số a, b được quy
về modulo n và mỗi điểm P trên E được quy về modulo n theo cách như
sau:
Nếu P=(r
1
/r
2
; s

1
/s
2
) ở đây



24
gcd(r
1
;r
2
)=gcd(s
1
;s
2
)=gcd(r
2
s
2
;n)=1; khi đó
P=(t
1
, t
2
), ở đây
t
1
=r
1

(r
2
)
-1
(modn),
t
2
=s
1
(s
2
)
-1
(modn)
(3) Luật nhóm modulo
GS rằng P
1
và P
2
là các điểm trên E(Q) với P
1
+P
2
≠O và có mẫu số
nguyên tố cùng nhau với n. Trong đó, P
1
+P
2
được gọi là có mẫu số
nguyên tố cùng nhau với n nếu và chỉ nếu không tồn tại số nguyên tố p|n

sao cho P
1
+P
2
= O trên đường cong elliptic E(Z
p
).
Sau đây ta giới thiệu thuật toán phân tích nhân tử theo phương pháp
đường cong Elliptic :
GS n là hợp số, nguyên tố cùng nhau với 6 và không là lũy thừa của số
nguyên tố nào.
(1) Chọn đường cong Elliptic
Chọn ngẫu nhiên cặp (E, P), ở đây E=E(Z
n
) là một đường
cong Elliptic
y
2
=x
3
+ax+b
và P là một điểm trên E.
Kiểm tra
g=gcd(n, 4a
3
+27b
2
)=1.
Nếu không thỏa, chúng ta có thể phân tích n nếu 1<g<n chúng ta có thể kết thúc thuật
toán.Nếu không, ta chuyển sang (2).

(2) Chọn các cận
Lấy M thuộc N và các cận A, B sao cho M có thể phân tích thành tích của các số
nguyên tố nhỏ hơn hoặc bằng B:
1
p
j
l
a
j
j
M p



và lũy thừa của các số nguyên tố trong
khai triển của M nhỏ hơn hoặc bằng phần nguyên dưới của ln(A)/ln(p
j
):
ln( ) / ln( )
j
p j
a A p
 

 
.
(3) Dùng công tức tính P+Q để tính p
j
P.
(4) Tìm gcd:

(a) Nếu p
j
P≠O (modn) khi đó đặt P= p
j
P và lặp lại với k bằng k+1.
(i) Nếu k≤a
pj
, thì quay lại bước 3.
(ii) Nếu k>a
pj
thay j bởi j+1, và đặt k=1. Nếu j≤l, ta quay lại (3). Nếu
khác, ta đi đến (5).
(b) Khi p
j
P=O(modn), ta tính gcd(m
2
, n). Nếu n>g, thuật toán hoàn thành. Nếu g=n
ta cũng đến (5).
(5) Chọn cặp mới.

×