DANH MỤC CÁC KÝ HIỆU TRONG LUẬN VĂN... DANH MỤC CÁC BẢNG TRONG LUẬN VĂNBảng Một s1.3... DANH MỤC CÁC KÝ HIỆU TRONG LUẬN VĂN .... DANH MỤC CÁC BẢNG TRONG LUẬN VĂN .... TỔNG QUAN VỀ SỐ NGU
Trang 1ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Trang 2LỜI CAM ĐOAN
T i xin m o n y l ng tr nh nghi n u ri ng t i, s liệu vkết quả nghi n u trong luận v n n y l trung th v kh ng tr ng l p với
t i kh T i ng xin m o n r ng mọi s gi p cho việ thhiện luận v n n y ã ƣợ ảm ơn v th ng tin trí h dẫn trong luận v n ã
ƣợ hỉ rõ nguồn g
T giả
Nguyễn Thị Mỵ
\
Trang 4DANH MỤC CÁC KÝ HIỆU TRONG LUẬN VĂN
Trang 5iii
Trang 6DANH MỤC CÁC BẢNG TRONG LUẬN VĂN
Bảng
Một s1.3
Trang 7MỤC LỤC
LỜI CẢM ƠN
DANH MỤC CÁC KÝ HIỆU TRONG LUẬN VĂN .
DANH MỤC CÁC BẢNG TRONG LUẬN VĂN .
MỞ ĐẦU
CHƯƠNG1 TỔNG QUAN VỀ SỐ NGUYÊN TỐ .
1.1 Các định nghĩa và khái niệm mở đầu .
1.2 Một số tính chất của số nguyên tố
1.3 Sự phân bổ của số nguyên tố
1.4 Số giả nguyên tố
1.5 Số Mersenne 1.6 Số Fermat
1.7 Các số nguyên tố lớn
1 7 1 1 7 2 1 7 3 1 7 4 1.8 Ứng dụng của số nguyên tố
1 8 1 1 8 2 CHƯƠNG 2 CÁC THUẬT TOÁN KIỂM ĐỊNH SỐ NGUYÊN TỐ .
2.1 Các lớp P và NP
2.2 Thuật toán kiểm định theo√ 2.3 Sàng Eratosthenes
2.4 Thuật toán kiểm định theo xác suất MILLER-RABIN .
2 4 1
2 4 2
Trang 82 4 3 Thuật to n Miller-Rabin 36
2 4 4 C trường hợp biệt 37
2.5 Kiểm định theo giả thuyết Riemann 38
2.6 Thuật toán kiểm định tính nguyên tố AKS 39
2.6 1 Giới thiệu hung 39
2.6 2 Định lí AKS 40
2.6 3 Thuật to n 41
2.6 4 Một s kiến th to n họ 42
2.7 Thuật toán Bernstein 46
2.7 1 Định lí Bernstein 46
2.7 2 Thuật to n Bernstein 47
CHƯƠNG 3 CÀI ĐẶT VÀ ỨNG DỤNG 48
3 1 Lớp BI 49
3 1 1 Nhận xét hung 49
3 1 2 C trường dữ liệu 49
3 1 3 C phương th 49
3.2 Lớp ARITHM 55
3 2 1 Ướ hung lớn nhất 55
3 2 2 H m phi Euler 55
3 2 3 S hính n 56
3 2 4 Bậ theo modulo 58
3 2 5 C n nguy n th y 59
3 2 6 S nguy n t s t s u 61
3 2 7 Kiểm tr ướ nguy n t 62
3 2 8 Ướ nguy n t lớn nhất 64
Trang 93.3 Lớp BIPOL 67
3 3 1 C trường dữ liệu 67
3 3 2 C phương th 67
3.4 Lớp MR 72
3.5 Lớp AKS 72
3.6 Ứng dụng 72
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 73
TÀI LIỆU THAM KHẢO 79
vii
Trang 11Đối tượng và phạm vi nghiên cứu
Luận v n tập trung t m hiểu v s
Chương 1 Tổng quan về số nguyên tố và các khái niệm liên quan
Trong hương n y họ vi n tr nh b y v tổng qu n s nguy n t : Giới
thiệu hung v s nguy n t , ịnh lý qu n trọng v một v i lớp s nguy n t qu n trọngtrong lị h sử to n họ
Chương 2 Giới thiệu một số thuật toán kiểm định số nguyên tố
Trong hương n y, luận v n tập trung tr nh b y thuật to n kiểm ịnh s nguy
n t lớn d tr n tiếp ận kh nh u: phương ph p tất ịnh v phương ph p x suất
2
Trang 12Chương 3 Thiết kế và cài đặt các lớp đối tượng phục vụ cho việc
quản lí các số nguyên tố và sinh khóa cho hệ mật mã RSA.
Phương pháp nghiên cứu
rạ , lí thuyết thiết kế thuật to
Trang 13CHƯƠNG 1 TỔNG QUAN VỀ SỐ NGUYÊN TỐ
1.1 Các định nghĩa và khái niệm mở đầu
Trang 14q = a / b
r = a mod b
T thấy a l ướ b khi v hỉ khi b mod a = 0.
Nếu a kh ng phải l ướ b t viết a | b.
T ng qui ướ thương a / b l s nguy n khi v
thời l h i s nguy n Như vậy, khi một trong h i s l l s th
hỉ khi a v b ồng s
th th thương sẽ
Số nguyên tố và hợp số
S nguy n dương n ượ gọi l s nguyên tố nếu n có đúng hai ước.
Phân loại các số tự nhiên
∀a, b ∈ ℕ:
U1 (a,b) = (b,a).
U2 (a,0) = a (qui ướ )
U3 (a,b) = (a mod b, b): ước chung lớn nhất của hai số không thay đổi nếu ta thay một trong hai số bằng số dư của số đó chia cho số kia.
U4 (a,b) = a khi v hỉ khi a | b.
Trang 15(a, p) = 1
6
Trang 18Thí dụ, s 72 = 2332 v 20 = 225 cho ta :
(72, 20) = 22 = 4
[72, 20] = 23325 = 360
Định lí đồng dư Trung Hoa [3]
Cho k s nguy n dương lớn hơn 1 v i một nguy n t ng nh u, n1,
i u kiện 0≤ ai <n i, 1 ≤ i≤k Khi ó tồn tại duy nhất một s nguy n x, 0
trong khi một tr m s s t s u 10000000 hỉ ó h i s nguy n t l
Legendre v G uss ã tính to n mật ộ s nguy n t G uss ãnói r ng bất khi n o ng ó ít ph t rảnh rỗi ng sẽ d nh thời gi n ó hoviệ tính s nguy n t Đến u i ời ng ho biết m nh ã tính ượ tất ả
s nguy n t trong giới hạn khoảng 3000000 (b triệu) Cả Legendre vGauss ng kết luận r ng, i với n lớn, mật ộ s nguy n t nhỏ hơn
Trang 22th t nói
Thí dụ (F S rrus, 1820), p = 341 = 11 × 31 lThật vậy, vận dụng
Từ ó suy rTương t
Mọi s
Trang 23Cho s nguy n dương k Khi
Mersenne bậc k Nếu p l s nguy n t
s ố
l s nguy n t Mersenne, trong khi ó M 11 = 2 11 − 1 = 2047 = 23 × 89 l
hợp s Có nhi u ịnh lý kh nh u ể x ịnh s nguy n t Mersenne Chẳng hạn nhờ v o ịnh lý s u y, t ó thể kiểm ịnh nhanh hóng s nguy n t Mersenne d v o dạng ướ nó
s Mersenne
Trang 25Robinson tính to n tr n m y tính Western US National Bureau of Standards
(SWAC) tại Instute for Numeri
Trang 26Mersenne 44 Mersenne 46 Mersenne 47 Mersenne 45
Trang 271.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 ƣợ
Trang 28Bảng 1.4 Một số số nguyên tố Sophie Germain
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
Trang 291.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#=23#=2⋅3= 6
5# = 2⋅3⋅5 = 30
T qui ƣớ 0# = 1
Nếu pn l s nguy n t th n trong dãy tích các
số nguyên tố đầu tiên trong dãy nguy n t s nguy n
Trang 319 10
20
Trang 34v 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)
Trang 35Tr 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
24
Trang 36KẾT LUẬN CHƯƠNG 1
Trong
biệt trong lý thuyết mật mã
nghệ th ng tin nói
Trang 37CHƯƠNG 2: CÁC THUẬT TOÁN KIỂM ĐỊNH
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.
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ỳ
Định dạng
26
Trang 38Algorithm <tên thuật toán>
Trang 392.2 Thuật toán kiểm định theo √
Thuật to n kiểm
nhƣ s u [7]:
NT1nhỏ hơn nó
NT2nhỏ hơn ho
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 EndPrime.
28
Trang 40Algorithm Prime2(p, k, n)
Ch n ng: Kiểm ịnh tính nguy n t
c a s t nhi n n Input:
for each e in p with e ≤ ⌊√ ⌋ do
if n mod e = 0 then return false endif
endfor return true EndPrime2.
Trang 411 set 2 n as true
2 set 1 as false // delete 1
3 for i := 2 to √
if i is true then // i hƣ for j := i to (n div i) do set i*j
// c a i kể từ i ⋅ i endfor j
endif endfor i EndSieve.
30
Trang 4251 61
71
81 91
2.4 Thuật toán kiểm định theo xác suất MILLER-RABIN
2.4.1 Cơ sở toán học
Kiểm ịnh Miller-Rabin l một thuật to n x suất ể kiểm ịnh tính một s
Trang 43thuật to n Miller th nh phi n bản x
Thuật to n Miller-R bin kiểm
2.4.1.1 Số chính căn
S nguy n dương n ượ gọi l
ho số chính lũy (perfect power)
s dạng lũy thừa, h y l số chính căn,
nếu tồn tại một s nguy n b > 1 thỏ
Trang 44Thí dụ
27 l s
28 kh
32
Trang 452.4.1.2 Căn bậc 2 mod n
Cho s t nhi n n > 1 Xét phương tr nh
x2≡ 1 (mod n) Phương tr nh tr n lu n ó h i nghiệm x = ±1 Ngo i r ,
Nếu n l s hính n ó dạng n = p k trong ó p l s nguy n t , k > 0
Như ã tr nh b y trong Chương 1, ịnh lí Ferm t nhỏ khẳng ịnh r ng, nếu
n l s nguy n t th với mọi s nguy n dương a ∈ Set(1, n − 1) nguy n
− 1) t ó
Trang 46Nếu a d≡ ±1 (mod n) th t
Giả sử a d mod n = x ≠ ±1 Để ý r ng s > 1, tNếu
Trang 47ho tồn tại hỉ s
i ∈
Set(1, s −
1) thỏ
i u kiện
st
nhi
n a
> 0 Ta
Nếu n l hợp s v
quƣợMiller Test ơ sở b th
Trang 48số gi ả nguyên
tố mạnh
cơ sở b
[7]
35
Trang 492.4.2 Thuật toán Miller Test
Algorithm MillerTest(b, d, s, n)
Ch n ng: Kiểm
c a s Input: S t nhi n lẻ n > 2
n − 1 = d2s, d lẻ, s ≥ 1 Output: true nếu n pass Miller Test b
f lse: ngo i r Method
EndMillerTest.
2.4.3 Thuật toán Miller-Rabin
Thuật to n Miller-R bin kiểm ịnh x suất tính nguy n t ho một s
t nhi n lẻ n > 2 Thuật to n hoạt ộng nhƣ s u:
Th hiện k lần test, mỗi lần họn ngẫu nhi n một s b ∈ Set(2, n − 2)
l m ơ sở ho h m Miller Test Nếu một trong s k lần test nhận kết quả f lse thuật to n ho r kết quả f lse: n l hợp s Nếu ả k lần test u nhận ƣợkết quả true th thuật to n ho r gi trị true: n ó thể l s nguy n t với x
suất s i l 4−k
36
Trang 50Algorithm MilleRabin(n, k)
Ch n ng: Kiểm
Input: S
S Output: true (với x Method
Let n − 1 = d2s // d lẻ, s ≥ 1
loop k times
r ndomly hoi e b between 2…n-2;
if not MillerTest(b, d, s, n) then return false;
endif endloop return true;
Trang 512.5 Kiểm định theo giả thuyết Riemann
Giả thuyết Riem nn tổng qu t li n qu n
trong những hệ quả
(RC) Với mỗi hợp số nguyên dương n, tồn tại một cơ sở b < 2(log n)2
để n không qua được Miller Test b.
EndMillerRiemann.
38
Trang 522.6 Thuật toán kiểm định tính nguyên tố AKS
2.6.1 Giới thiệu chung
Ng y 8 Th ng 8 n m 2002 bnghệ Ấn Độ l
“Thuật toán này quá đẹp !” (C rl Pomer n e)
“Đây là kết quả tốt nhất mà trong mười năm nay tôi mới được chiêm ngưỡng.” (Sh fi Goldw sser)
Trang 53thuật to n n y phải hịu trả gi b ng ộ tin ậy: Nếu ầu v o n l hợp s th
thuật to n ho ầu r hắ hắn r ng n l hợp s ; nhưng nếu ầu v o n l s
nguy n t th ó một s trường hợp thuật to n trả lời kh ng hính x
Phương n b n ầu thuật to n AKS ó ộ ph tạp O(L12) S u n y
nh to n họ ã giảm ộ ph tạp xu ng òn O(L7)
Như vậy, với s nguy n 64 bit th thuật to n AKS sẽ ần khoảng 647 =
242 lần tính to n
2.6.2 Định lí AKS
Thuật to n AKS sử dụng những kiến th kh sơ ấp với ý tưởng kh
mạ h lạ , rõ r ng Thuật to n xuất ph t từ ý tưởng s u [4]
S nguy n p l nguy n t khi v hỉ khi ẳng th s u ng với mọi s
nguy n a nguy n t ng nh u với p
Trang 54Cho số nguyên dương n ≥ 2 Đ t L = ⌈log n⌉ Giả sử r là số nguyên dương < n, và n có bậc > L modulo r Khi đó n là
số nguyên tố khi và chỉ khi
(i) n không có dạng lũy thừa (n không phải là số chính căn),
(ii) n không có ước nguyên tố ≤ r,
1 ≤ a ≤ s = ⌊√ ( ) ⌋.
2.6.3 Thuật toán
Algorithm AKS
Ch n ng: Kiểm ịnh tính nguy n t c a s nguy n dương lẻ n > 2
Input: s nguy n dương lẻ n > 2
Output: true nếu n l s nguy n t ; f lse: ngo i r
3 Kiểm tr n ó ướ nguy n t ≤ r: nếu ó th return f lse for b ≔ 2 to min(r,n-1) do
if u ln(b,n) ≠ 1 return f lse endif // n là hợp số
Trang 56∃ −a ∈ R: a + (−a) = 0.
2 R l monoid với phép ⋅, ụ thể l :
∀ a, b, c ∈ R
Tiên đề về phần tử đơn vị cho phép nhân: ∃ 1 ∈ R a · 1 = 1 · a = a
o Phân phối trái: a⋅(b+c) = (a·b) + (a·c).
oPhân phối phải: (b + c) · a = (b · a) + (c · a).
Với mỗi s nguy n n > 1, kí hiệu ℤ/n ho mod n l một vành với R = Set(0, n − 1) v phép + v ⋅ ho kết quả l s dƣ trong phép hi ho n.
Trang 5743
Trang 58Trong luận v n hỉ xét th (nguy n) một biến x với hệ snguy n kh ng m Để tiện tr nh b y, th f với hệ s nguy n kh ng m
ượ biểu diễn dưới dạng
Trang 59i
u kiện
t f
h o
t g
hot
t thươn
g
q
v
t dư
r
( ) ( )
trong
ó
de g(
Trang 60ượ tính trong v nh ℤ[x]/(7, x2− 1).
2.7 Thuật toán Bernstein
Bernstein ã óng góp nhi u ải tiến ho thuật to n AKS v thu ượ
một thuật to n với ộ ph tạp O(L7) [5]
Hướng ải tiến thuật to n ượ tập trung v o iểm s u y:B1 Giảm kí h thướ r tại bướ 2 v kí h thướ s tại bướ 5trong thuật to n AKS
Như vậy, khi i u kiện ịnh lí Bernstein ượ thỏ v n l s t
nhi n lẻ > 2 v kh ng phải l một s hính n th t kết luận n l s nguy n t
ϕ(r) l h m phi Euler, s lượng s nguy n trong khoảng 1 ến r−1
v nguy n t ng nh u với r,
Trang 61true nếu n l s nguy n t
2.5 Chọn s ≥ 0 thỏa
( )()(
Xét tập S = {2 ,…, s+1}
6.Kiểm tra với mọi a trong S:
7.Kiểm tra với mọi a trong S:
endAKSB.
47
Trang 6348
Trang 64CHƯƠNG 3.CÀI ĐẶT VÀ ỨNG DỤNG
Chương tr nh kiểm ịnh tính nguy n t ượ viết b ng ng n ngữ thuộ họ
mã nguồn mở Dev C++ Ver 5 11 hạy tr n bộ xử lí Intel i3 1/70 GHz Chương
Lớp n y i t kiểu s nguy n BI (Big Integer) với s bit MAXLEN = 2M với
M do người sử dụng ịnh trướ Thí dụ, t ó thể họn MAXLEN l một trong gi trị
128, 256, 512 ho 1024… Nếu họn MAXLEN = k th lớp BI xử lí ượ s nguy n
Trang 66Ch Input: x,y: BI Output: z Method
if c > 0 then //
n ≔ n + 1; // kết quả d i th m 1 bit
z[n] ≔ c;
endif return z;
Trang 67Operator
= x-y, x ≥ y Input: x,y: BI Output: z Method
z ≔ x + (~y) + 1;
Reduce(z) return z;
Trang 68Operator *
Ch Input: x,y: BI Output: z = x*y Method
// Th m // Len(x) = Len(y) = 2k // T
Thuật to n hi ể trị ó ộ ph tạp O(L1.58), trong ó L = 2k l s bit
biểu diễn s ầu v o
Trang 69Algorithm DivMod(x, y, q, r)
r Input: x,y: BI Output: q, r : BI Method
Trang 70Thuật to n DivMod òi hỏi d = len(x)-len(y) phép to n xử lí bit tr n s nguy n L bit.
3.2 Lớp ARITHM
Lớp n y i t h m v th tụ s u y
3.2.1 Ước chung lớn nhất
D v o tính hất Eu lid ướ hung lớn nhất t ó ng y h m ệqui s u y [6] [7]
Thí dụ,
Gcd(44,12) = Gcd(12, 44 mod 12) = Gcd(12, 8) = Gcd(8, 12 mod 8) = Gcd(8, 4) = Gcd(4, 8 mod 4) = Gcd(4, 0) = 4
Trường hợp xấu nhất thuật to n G d( ,b) ần | −b| phép to n trừ h i s
nguy n L bit nếu phép hi dư mod ượ th y b ng phép trừ li n tiếp
3.2.2 Hàm phi Euler
H m phi Euler s nguy n dương n ho r s lượng
dương nhỏ thu n v nguy n t ng nh u với n.
Trang 71Thuật to n tính h m Phi Euler
Cho hàm số f(x) liên tục, đồng biến và cắt trục hoành, tức là
phương trình f(x) = 0 có nghiệm Nếu tại điểm x, f(x) > 0 thì
tại điểm x − d , ( ) ta sẽ có 0 ≤ f(x − d) ≤ f(x).
( )
56
Trang 72Với s nguy n dương n v
Nếu phương tr nh f(x) = 0 ho t
s nguy n dương b, xét h m f(x) = x b− n nghiệm th t ó x = n 1/b, t l x l n bậ
⌊
√
M e t h d
x = (1≪BitLen(n) div b) + 1 ; // x div b)
while (true) do y
= (
Trang 73e n d i f
Trang 74for b ≔ 2 to BitLen(n) do
if (Root(n,b))^b = n then return true endif;
endfor;
return false endPerfectPower.
Với n, a v
nhau, n n t ó thể kiểm tr bit 0
lẻ Dưới dạng biểu diễn nhị ph n, s
Cho h i s nguy n dương nguy n t ng nh u, n v r Bậ n theo
modulo r, kí hiệu lOrdr (n), l s nguy n dương k nhỏ nhất thỏ [7]
Trang 75thủy modulo r nếu Ordr(n) =
n nguy n th y modulo r khi v
59
Trang 76C n nguy n th y g òn gọi l phần tử sinh (generator) v g k mod r, k =
1 r sẽ sinh r to n bộ s i một kh nh u 1 r-1, t l sinh r tập s dƣ theo mod r [7]
for g ≔ 2 to r − 1 do
endfor return 0;
endGenerator.
Trong thuật
n n ϕ(r) = r−1
Trang 773.2.6 Số nguyên tố sát sau
Thuật to n Bernstein ó b ơ t m s nguy n t s t s u s nguy n t hiện
ó T viết một h m tổng qu t NextPrime(x) ho r s nguy n t s t s u x
if d[i] > 100 then i ≔ i-1;
H m NextPrime(x) duyệt s x+1, x+2,… ến khi g p s nguy n t x + k
Vinogr dovnguy n t
Trang 783.2.7 Kiểm tra ƣớc nguyên tố
Trang 80Mụ n y tr nh b y thuật to n tính z = xy mod n Nếu t tính trướ ó thể
xảy r hiện tượng tr n s Để tr nh hiện tượng n y t ó h i ận s u [6] [7] [9]
tí hh
Tiếp cận 1: Tái sử dụng thuật toán nhân nhanh
Ta ải tiến thuật tho n t m tí h 2 s t nhi n xy th nh thuật to n nh n
nh nh tính xy mod n như s u
T ã biết
xy = ( ’+b)( ’+d) = ( )’’ + ’d + b ’ + bd = ( )’’ + bd + ( d + b )’
v d + b = ( +b)( +d) – ac – bd
Đến y hỉ việ hi dư kết quả trung gian cho n
Tổng hợp lại t tính ượ z = xy mod n theo bướ s u:
Tính t1 = ac mod n
Tính t = bd mod n