CHƢƠNG1 TỔNG QUAN VỀ SỐ NGUYÊN TỐ
1.7 Các số nguyên tố lớn
1.7.1 Các số nguyên tố sinh đôi
Nếu h i s p v p + 2 u l nguy n t th t ó cặp số nguyên tố sinh
đôi. Ng y 28 9 2002 D niel P pp ph t hiện r một s nguy n t sinh i ó
51090 hữ s Đó l s 333218925.2169690
1 Bảng dƣới y liệt k một s p nguy n t sinh i
Bảng 1.3 Một số cặp nguyên tố sinh đôi
No S nguy n t Chữ s Thời iểm
1 16869987339975.2171960 1 51779 2005 2 16869987339975.2171960 + 1 51779 2005 3 100314512544015.2171960 1 51780 2006 4 100314512544015.2171960 + 1 51780 2006 5 194772106074315. 2171960 1 51780 2007 6 194772106074315. 2171960 + 1 51780 2007 7 2003663613. 2195000 1 58711 2007 8 2003663613. 2195000 + 1 58711 2007 9 65516468355. 2333333 1 100355 2009 10 65516468355. 2333333 +1 100355 2009
1.7.2 Các số nguyên tố Sophie Germain [13]
Nếu p v 2p + 1 ồng thời nguy n t th p ƣợ gọi l số nguyên tố Sophie Germain.
Ng y 18 1 2003, D vid Underb kko ã ph t hiện r s nguy n t Sophie Germain ó 34547 hữ s (2540041185 2114729 – 1). S n y ƣợ m ng t n ng Bảng dƣới y liệt k một s s nguy n t Sophie Germ in ã biết
Bảng 1.4 Một số số nguyên tố Sophie Germain
No S nguy n t Chữ s Thời iểm
1 18912879.298395 1 29628 2002 2 12886032245.2108000 1 32523 2006 3 11240442913252107999 1 32523 2006 4 25400411852114729 1 34547 2003 5 70685552121301 1 36523 2005 6 337591832123458 1 37173 2009 7 1372119412921952171960 1 51780 2006 8 480473057252171960 1 51910 2007 9 6070952176311 1 53081 2009 10 620366307356565. 2253824 1 76424 2009
1.7.3 Các số giai thừa nguyên tố
S ó dạng n! ± 1 ƣợ gọi l những số giai thừa nguyên tố. Bảng dƣới y liệt k một s s gi i thừ nguy n t
Bảng 1.5 Vài số giai thừa nguyên tố
No S nguy n t S hữ s Khi n o 1 974! 1 2490 1992 2 1477! + 1 4042 1984 3 1963! 1 5614 1992 4 3507! 1 10912 1992 5 3610! 1 11277 1993 6 6380! + 1 21507 1998 7 6917! 1 23560 1998 8 21480! 1 83727 2001 9 26951! + 1 107707 2002 10 34790! 1 142891 2002
1.7.4 Các số nguyên tố giai thủy
Với s t nhi n n, kí hiệu n# l h m ó gi trị là tích của các số nguyên
tố đầu tiên không vượt quá n. Để ph n biệt với gi i thừ (n!, factorial) xin
ƣợ tạm gọi h m n y l giai thủy (n#, primorial) Thí dụ, 2# = 2
3# = 23 = 6. 5# = 235 = 30. T qui ƣớ 0# = 1
Nếu pn l s nguy n t th n trong dãy s nguy n t th pn# cho ta
tích các số nguyên tố đầu tiên trong dãy nguy n t ó gi trị kh ng vƣợt qu
s nguy n t th n l pn.
Bảng 1.7 liệt k 20 s nguy n t ầu ti n (pn) v h m n# v pn# tƣơng ng.
Bảng 1.6 20 số nguyên tố đầu tiên và các hàm n#, pn# n n# pn pn# 0 1 (qui ƣớ ) 1 1 1 2 2 2 2 3 6 3 6 5 30 4 6 7 210 5 30 11 2310 6 30 13 30030 7 210 17 510510 8 210 19 9699690 9 210 23 223092870
Nếu một s nguy n t ó dạng pn# ± 1 th s ó ƣợ gọi l s nguyên
tố giai thủy.
Bảng 1.7 Một số số nguyên tố giai thủy đã biết
No S nguy n t S hữ s Thời iểm
1 13033# 1 5610 1992 2 13649# + 1 5862 1987 3 15877# 1 6845 1992 4 18523#+ 1 8002 1989 5 23801# + 1 10273 1993 6 24029# + 1 10387 1993 7 42209# + 1 18241 1999 8 15877# + 1 63142 2000 9 366439# + 1 158936 2001 10 392113# + 1 169966 2001 10 210 29 6469693230 11 2310 31 200560490130 12 2310 37 7420738134810 13 30030 41 304250263527210 14 30030 43 13082761331670030 15 30030 47 614889782588491410 16 30030 53 32589158477190044730 17 510510 59 1922760350154212639070 18 510510 61 117288381359406970983270 19 9699690 67 7858321551080267055879090 20 9699690 71 557940830126698960967415390
1.8 Ứng dụng của số nguyên tố [3]
1.8.1 Mật mã và số nguyên tố
Hơn b o giờ hết ho ến n y khi m xã hội ng y ng hiện ại th vấn bảo mật th ng tin ng trở n n ấp thiết v l m i qu n t m kh ng hỉ ở ấp qu gi m òn m ng tính to n ầu Mã hó th ng tin ã xuất hiện rất sớm, từ thời ổ ại Ngƣời t ho r ng ngƣời ầu ti n p dụng mật mã một h hệ th ng ể ảm bảo bí mật th ng tin qu n s l nh thi n t i qu n s La Mã ổ ại Julius C es r [10].
Đến khoảng u i những n m 70, ngƣời t vẫn xem việ nghi n u s nguy n t l một trong những ng nh lí thuyết thuần t y to n họ v hầu nhƣ nó kh ng ó ng dụng trong th tiễn Qu n niệm ó th y ổi hẳn s u khi s nguy n t lớn ƣợ p dụng ể x y d ng hệ mật mã khó ng kh i C lý thuyết mới s họ , biệt s họ thuật to n t m thấy những ng dụng tr tiếp v o th tiễn
Dƣới y l thời gi n ghi nhận nh b họ x y d ng bảng s nguy n t từ 1603-1863
- 1603: K t ldi lập bảng s nguy n t từ 2 ến 760. - 1657: Shuten lập bảng s nguy n t từ 2 ến 10.000. - 1811: Tchernak lập bảng s nguy n t từ 2 ến 1 triệu - 1814 - 1816: Doughort lập bảng s nguy n t từ 2 triệu ến 3 triệu - 1865: Crelle lập bảng s nguy n t từ 2 ến 9 triệu
- 1897: Pervushin lập bảng s nguy n t từ 2 ến 10 triệu - (1773 - 1863): Kulik lập bảng s nguy n t từ 2 ến 100 triệu
1.8.2 Các hệ mật mã công khai
Nguyên lý chung
Trong hệ mật mã ổ, khó lập mã u phải ƣợ giữ bí mật, v nếu khó lập mã bị lộ th ngƣời t ó thể t m r ƣợ khó giả mã trong một thời
gi n tƣơng i ngắn Nhƣ vậy nếu trong một hệ th ng ó nhi u p ho nhi u nhóm ngƣời ần tr o ổi th ng tin mật với nh u, s khó mật mã hung ần giữu bí mật l rất lớn v nhƣ vậy khó ó thể ảm bảo ƣợ n to n Hệ mã m h ng t nghi n u dƣới y ƣợ lập theo một nguy n tắ ho n to n mới, trong ó việ biết khó lập mã kh ng ho phép t m r khó giải mã trong một thời thời gi n hấp nhận ƣợ V thế, mỗi th nh vi n hỉ ần giữ bí mật khó giải mã ri ng m nh, trong khi khó lập mã ƣợ th ng b o ng kh i Trong trƣờng hợp một trong th nh vi n bị lộ khó giải mã m nh, bí mật th nh vi n còn lại kh ng h bị ảnh hƣởng
Hệ mật mã RSA
N m 1982 Ron Rivest, Adi Shamir v Len Adleman xuất một hệ mật mã khó ng kh i với ộ bảo mật rất o Độ bảo mật n y phụ thuộ v o hi u d i s nguy n t d ng ể tạo khó
Mỗi ngƣời sử dụng hệ th ng bảo mật, tạm gọi ngƣời ó l A ần ó h i khó : một khó ể công khai ho những i mu n gửi tin ho A, khó th h i ƣợ gọi l khóa mật ƣợ A giữ ri ng ể phụ vụ ho việ kí v n bản ho x ịnh bản quy n v n bản
Qui tr nh sinh khó ho mỗi ngƣời sử dụng b o gồm bƣớ s u: K1 Chọn h i s nguy n t p v q lớn
K2 Tính tí h n = pq v h m phi Euler (n) = (p1)(q1). K3. Chọn h i s nguy n dƣơng d v e thỏ i u kiện
de 1 mod (n)
Giữ khó ri ng (d,n), khó th h i l (e,n) ể ng kh i. Hệ RSA ó tính hất s u y:
(RSA) m ℤ/n: med m (mod n)
A1 Chi bản tin (dƣới dạng dãy bit) th nh oạn bit, mỗi oạn sẽ tạo th nh một s nguy n m trong khoảng 0 ến n1.
A2 D ng khó ng kh i B l eB ể mã hó mỗi s m theo ng th
A3 Gửi c cho B.
Với mỗi s c nhận ƣợ , B lấy khó ri ng m nh l dB ể giải mã theo ng th s u
Hệ th (RSA) ảm bảo ho qui tr nh mã hó v giải mã nói tr n Thật vậy, ( ) Nếu A mu n kí v o một kh i m v n bản th A sử dụng khó ri ng m nh l dA ể mã hó m theo ng th Việ l m n y ƣợ gọi l kí số.
Giải mã hữ kí s ƣợ th hiện theo qui tr nh s u:
( ) Vấn t r trong n to n th ng tin l
Biết khóa công khai (e,n) có thể tính được khóa mật d hay không?
Để tính khó mật d trƣớ hết t ph n tí h n th nh tí h 2 s nguy n t p v q, s u ó d v o qui tr nh tr n ể x ịnh d khi ã biết e. Tuy nhi n, nếu khi sinh khó t họn p v q khoảng 100 hữ s thập ph n th n = pq sẽ ó khoảng 200 hữ s thập ph n Để ph n tí h s nguy n lớn nhƣ thế th với thuật to n nh nh nhất hiện n y hạy tr n những si u m y tính hiện ại nhất ng ần h ng tỉ n m (Bảng 1 9)
Có một i u h ý khi họn s p v q ể tr nh rơi v o trƣờng hợp
bị ph n tí h nh nh nhờ những thuật to n biệt : p v q ần họn s o ho
p1, q – 1 phải ó thừ s nguy n t lớn, ƣớ hung lớn nhất ( p 1,
q – 1) phải nhỏ v p v q phải ó s hữ s thập ph n kh nh u kh ng nhi u.
Bảng 1.8 Thời gian máy tính dùng để phân tích số n ra thừa số nguyên tố [7] S hữ s thập ph n n S phép to n bit Thời gi n 50 1,4 1010 14 gi y 75 9,0 1012 3 giờ 100 2,3 1015 26 ng y 200 1,2 1023 3,8 1015 n m 300 1,5 1029 4,9 1021 n m 500 1,3 1039 4,2 1032 n m Th tế ng dụng ho ến n y ã h ng tỏ r ng hệ mã RSA rất n to n, tuy ó nhƣợ iểm l t ộ mã hó hậm (b ng 1 phần ng n hệ mã i x ng ó ng ấp ộ bảo mật hiện n y), ho n n nó thƣờng xuy n d ng ể mã hó bản tin ngắn, trong gi o th tr o ổi khó hệ mã i x ng
Tr n y l hệ mã ng kh i xuất hiện ầu ti n Từ ó ến n y ó nhi u hệ mã ng kh i r ời Nguy n tắ hung hệ mã ó l sử dụng những b i to n một hi u, t l những b i to n ho phép từ dữ liệu S b n ầu biến ổi th nh dữ liệu E th tƣơng i nhanh, nhƣng việ biết E t m ngƣợ lại S th òi hỏi thời gi n rất lớn
KẾT LUẬN CHƢƠNG 1
Trong hƣơng n y tr nh b y kh i niệm ầu ti n v s nguy n t v một s tính hất qu n trọng s nguy n t C tính hất n y sẽ ƣợ sử dụng ể triển kh i nội dung trong hƣơng h i v hƣơng b C mụ tiếp theo hƣơng sẽ giới thiệu một v i lớp s nguy n t qu n trọng ó v i trò biệt trong lý thuyết mật mã Đó l s nguy n t Ferm t v Mersenne. Phần u i hƣơng sẽ ph n tí h ý nghĩ v i trò s nguy n t trong ng nghệ th ng tin nói hung v hệ mật mã nói ri ng
CHƢƠNG 2: CÁC THUẬT TOÁN KIỂM ĐỊNH SỐ NGUYÊN TỐ SỐ NGUYÊN TỐ
2.1 Các lớp P và NP
Ký hiệu P l lớp b i to n ó thể giải b ng một thuật to n ơn ịnh với thời gi n th , NP l lớp b i to n ó thể giải b ng một thuật to n kh ng ơn ịnh với thời gi n th T ó ng y P NP.
B i to n mở hiện n y l P = NP ? [5] [6]
B i to n T ƣợ gọi l NP-khó (NPH) nếu T P kéo theo P = NP B i to n T ƣợ gọi l NP- ầy (NPC) nếu T l NP-khó v T NP.
Cho ến n y hƣ t m ƣợ thuật to n ơn ịnh với thời gi n th ho bất kỳ b i to n NP-khó ho NP- ầy n o Hơn nữ , nếu ó một thuật to n nhƣ vậy th ó hính l một h ng minh ho ẳng th P = NP.
B i to n kiểm ịnh s nguy n n > 1 l nguy n t h y hợp s l b i to n thuộ lớp P, nghĩ l thuật to n ƣợ th hiện với s bƣớ O(L7), trong ó
L l s bit biểu diễn n, L = ⌈log n⌉ [5] [6]. Thí dụ, s 7 ƣợ biểu diễn b ng 3 bit, 7 = 1112, s 11 = 10112 ƣợ biểu diễn b ng 4 bit
Trong luận v n, lu n lu n kí hiệu L = BitLen(n) l s bít biểu diễn nhị ph n ho s nguy n kh ng m n. T ng qui ƣớ BitLen(0) = 1.
Ngo i r , khi ngữ nghĩ ã rõ r ng, th y ho BitLen, t qui ƣớ L l s bit biểu diễn s t nhi n n.
L = (n = 0) ? 1 : ⌊log n⌋ + 1
Trong phần tr nh b y thuật to n luận v n sử dụng ng n ngữ phỏng tr nh, phần viết trong [ ] l tuỳ họn
Algorithm <tên thuật toán> Ch n ng: Input: Output: Method < u lệnh> end.
(T1) for each t in R [with e] do P endfor
Th hiện to n tử P tr n những i tƣợng t trong R [ t thoả i u kiện e] (T2) for i ≔ d to c do P endfor
Th hiện to n tử P tr n những i tƣợng ƣợ truy xuất theo hỉ s i {d, d+1,…, }
(T3) for i ≔ d to c step k do P endfor
Th hiện to n tử P tr n những i tƣợng ƣợ truy xuất theo hỉ s i {d, d+k,…, }
(T4) while e do P endwhile
Nếu i u kiện e òn thỏ th l p P Vòng l p kết th khi e s i
(T5) if e then P [else Q] endif
Nếu i u kiện e thoả th th hiện P [nếu kh ng, th hiện Q] (T6) return x
output gi trị x v dừng thuật to n (T7) x ≔ e
Tính trị biểu th e rồi g n ho biến x (T8) (e) ? a : b
Nếu e ng th output trị e, nếu kh ng th output trị b (T9) // h thí h
2.2 Thuật toán kiểm định theo √
Thuật to n kiểm ịnh tính nguy n t một s nguy n dƣơng n d tr tiếp v o ịnh nghĩ v một v i tính hất ơ bản s nguy n t Cụ thể nhƣ s u [7]:
NT1 S t nhi n n l nguy n t khi v hỉ khi n kh ng ó ƣớ kh 1
nhỏ hơn nó
NT2 S t nhi n n l nguy n t khi v hỉ khi n kh ng ó ƣớ kh 1
nhỏ hơn ho b ng √ .
NT3 S t nhi n n l nguy n t khi v hỉ khi n kh ng ó ƣớ nguy n
t nhỏ hơn ho b ng √ .
NT4 S t nhi n n l nguy n t khi v hỉ khi n = 2 ho n lẻ v kh ng ó ƣớ nguy n t nhỏ hơn ho b ng √ .
Thuật to n ơ bản v biến thể nó u òi hỏi √ phép to n hi dƣ Thuật to n thƣờng ƣợ d ng khi kiểm ịnh s kh ng lớn ( ó khoảng t i 10 hữ s thập ph n)
Trong thuật to n, h m Even(n) ho gi trị true nếu n l s hẵn Từ khó step 2 ho biết bƣớ t ng biến duyệt l 2 s u mỗi lần
Algorithm Prime(n)
Ch n ng: Kiểm ịnh tính nguy n t c a s t nhi n n
Input: S t nhi n n > 1 Output: true nếu n nguy n t f lse: ngo i r Method
if n < 2 return false endif; if n = 2 return true endif; if Even(n) return false endif;
for d := 3 to ⌊√ ⌋ step 2 do if (n mod d) = 0 then return false endif endfor return true
Độ phức tạp tính toán
√ phép hi dƣ
Giả sử t ó p = (p1, …, pk) l d nh s h k > 1 s nguy n t ầu ti n
trong dãy s nguy n t D v o d nh s h n y t ó thể kiểm ịnh tính nguy n t s từ pk + 1 ến pk2 theo thuật to n Prime2 s u y
Algorithm Prime2(p, k, n) Ch n ng: Kiểm ịnh tính nguy n t c a s t nhi n n Input: p - d nh s h k > 1 s nguy n t ầu ti n S t nhi n n > 1
Output: true nếu n nguy n t f lse: ngo i r Method
for each e in p with e ⌊√ ⌋ do
if n mod e = 0 then return false endif endfor return true EndPrime2. Thí dụ
Giả sử t ã biết k = 7 s nguy n t ầu ti n p[1..7] = (2, 3, 5, 7, 11, 13, 17)
T ó thể kiểm tr tính nguy n t s từ p[7]+2 = 19 ến (p[7])2
1 = 2891 theo thuật to n Prime2 nhƣ s u Giả sử t họn s n = 103 ể kiểm tr
T ó ⌊√ ⌋ = 10, do ó hỉ ần kiểm tr xem 103 ó ƣớ nguy n t n o trong s 2, 3, 5, 7 h y kh ng T ó
103 mod 2 = 1 0 103 mod 3 = 1 0 103 mod 5 = 3 0 103 mod 7 = 5 0
Vậy 103 l s nguy n t
Độ phức tạp tính toán
√ phép hi dƣ.
2.3 Sàng Eratosthenes
Thuật to n s ng do nh to n họ ổ Hy Lạp Er tosthenes x y d ng