Giáo trình Số học thuật toán - Chương 4: Thặng dư bình phương

Định lí 4.19. Mọi số giả nguyên tố Euler cơ sở b đều là số giả nguyên tố cơ sở b.

Chứng minh. Chỉ cần bình phương hai vế của đồng dư thức thoả mãn bởi các số giả nguyên tố Euler.

Điều ngược lại không đúng. Chẳng hạn, có thể thấy rằng số 431 là số giả nguyên tố cơ sở 2, nhưng không là số giả nguyên tố Euler cơ sở 2.

pdf25 trang | Chia sẻ: Hải Khánh | Ngày: 22/10/2024 | Lượt xem: 8 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Giáo trình Số học thuật toán - Chương 4: Thặng dư bình phương, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
hiệm hay 
không. Mặc dầu vậy, kí hiệu Jacobi có nhiều tính chất t−ơng tự với kí hiệu 
Legendre. 
Định lí 4.13. Giả sử n là số nguyên d−ơng lẻ, a và b là các số nguyên tố cùng nhau 
với n. Khi đó: 
(i) Nếu a≡ b(mod n) thì a
n
b
n



 =



 . 
(ii) 
ab
n
a
n
b
n



 =







 
(iii)
−



1
n
=(-1)(n-1)/2 
 68
(iv)
2
n



=(-1)
(n
2
-1)/8 
Chứng minh. Hai đẳng thức đầu tiên dễ suy ra từ định nghĩa kí hiệu Jacobi và tính 
chất của kí hiệu Legendre. 
Để chứng minh tính chất thứ 3, ta nhận xét rằng, do (pi-1) chẵn nên 
(1+(pi-1))
t1≡ 1+ti(pi-1)(mod 4), 
(1+ti(pi-1))(1+tj(pj-1)) ≡ 1+ti(pi-1)+ tj(pj-1)(mod 4). 
Từ đó suy ra: 
n≡ 1+t1(p1-1)+t2(p2-1)+...+ tm(pm-1)(mod 4), 
tức là, 
(n-1)/2≡ t1(p1-1)/2+t2(p2-1)/2+...+ tm(pm-1)/2(mod 2) 
Hệ thức này cùng với định nghĩa cho ta đẳng thức (iii). 
Chứng minh (iv). Ta có: 
2 2 2 2
1
1 2
1 8 1 8 1 8
1 2
1 1
2
2 2
2 2
n p p p
t t
m
t
t p t p t p
m
m m



 =











 = −
− + − + + −... ( ) ( )/ ( ) / ... ( ) / 
Lập luận t−ơng tự nh− trong chứng minh phần trên,ta có: 
n2≡ 1+t1(p12-1)+t2(p22-1)+...+ tm(pm2-1)(mod 64), 
và khi đó (iv) suy ra từ định nghĩa. 
Định lí 4.14. (Luật thuận nghịch bình ph−ơng đối với kí hiệu Jacobi). Giả sử m, 
n là các số nguyên d−ơng lẻ, nguyên tố cùng nhau. Khi đó: 
n
m
m
n
m n






 = −
− −
( )1
1
2
1
2 . 
Chứng minh. Giả sử m, n có phân tích ra thừa số nguyên tố dạng: 
m=p1
a 1 p2
a 2 ...ps
a s , n=q1
b 1 q2
b 2 ...qr
b r . Dùng định nghĩa và luật thuận nghịch bình 
ph−ơng của kí hiệu Legendre, ta đ−ợc: 
n
m
m
n j
s
i
r a
p
b qj
j
i
i
a j
p j
bi
qi
j
s
i
r







 = − = −
∑∑
==
− −∏∏
− −
==
11
1
2
1
21 1
1
2
1
2
11( ) ( ) . 
Nh− trong chứng minh định lí 4.13, (iii), ta có: 
 69
a
p m
b q n
j
j
j
s
i
i
i
r
− ≡ −
− ≡ −
=
=
∑
∑
1
2
1
2
2
1
2
1
2
2
1
1
(mod ),
(mod ).
Từ đó suy ra định lí. 
Đ4. Thuật toán tính kí hiệu Jacobi. 
Giả sử a, b là hai số nguyên d−ơng nguyên tố cùng nhau, a>b. Đặt R1=a, R2=b. 
Dùng thuật chia Eulid và tách luỹ thừa cao nhất của 2 trong phần d−, ta đ−ợc: 
 R0 = R1q1 + 2
s 1 R2 
R = R q + 2 R
R = R q + 2 R
R = R q + 2 .1
1 2 2
s
3
n-3 n-2 n-2
s
n-1
n-2 n-1 n-1
s
2
n-2
n-1
................................
trong đó sj là các số nguyên không âm, Rj là số nguyên lẻ bé hơn Rj-1. 
Ta chú ý rằng, số các phép chia đòi hỏi trong thuật toán trên là không v−ợt quá số 
phép chia cần thiết khi dùng thuật toán Euclid để tìm −ớc chung lớn nhất của hai số 
a và b. 
Đặt: 
R a b s R s R s R R R R Rn n n n( , ) ... . ... . .= − + − + + − + − − + + − −− − − −1 1
2
2
2
2
1
1
2
1 2 2 11
8
1
8
1
8
1
2
1
2
1
2
1
2
Ta có định lí sau. 
Định lí 4.15. Giả sử a,b là các số nguyên d−ơng và a>b. Khi đó ta có: 
a
b



=(-1)
R(a,b) 
Chứng minh. Theo các phần (i), (ii), và (iv) của định lí 4.13 ta có: 
a
b
R
R
R
R R
R
R
R
R
s s s R


 =



 =




= 





 = −




−
0
1
2
1 1
2
1
1
8 2
1
2 2
1
1 1
1
1
2
( ) . 
Dùng luật thuận nghịch bình ph−ơng của kí hiệu Jacobita đ−ợc: 
 70
R
R
R
R
R R
2
1
1
2
1
2 1
2
1
1 2


 = −




− −
( ) . 
Nh− vậy, 
a
b
R
R
R R s R


 = −




− − + −
( )1
1 2
1
1
21
2
1
2
1
8 1
2
Tiếp tục quá trình đó, ta đi đến công thức cần chứng minh. 
Hệ quả 4.16. Giả sử a và b là các số nguyên d−ơng nguyên tố cùng nhau, a>b. Khi 
đó, kí hiệu Jacobi 
a
b



 có thể tính đ−ợc với O((log2b)
3) phép tính bit. 
Chứng minh. Nh− ta đã nhận xét, số các phép chia trong thuật toán xác định R(a,b) 
không v−ợt quá số phép chia trong thuật toán Euclid để tính −ớc chung lớn nhất của 
a và b. Theo định lí Lamé, cần có O(log2b) phép chia. Mỗi phép chia cần không 
quá O((log2b)
2) phép tính bit. Sau mỗi phép chia, cặp số Rj, sj tìm đ−ợc bởi O(log2b) 
phép tính bit (chỉ cần là các phép dịch chuyển). Nh− vậy, khi biết a, b, chỉ cần 
O((log2b)
3) phép tính bit để xác định các số Rj, sj. Để nâng (-1) lên luỹ thừa R(a,b) 
nh− trong định lí, ta chỉ cần sử dụng 3 chữ số nhị phân cuối cùng của Rj và chữ số 
nhị phân cuối cùng của sj, vì giá trị luỹ thừa của (-1) chỉ phụ thuộc vào tính chẵn lẻ 
của số mũ. Nh− vậy, khi đã có Rj, sj, ta chỉ cần O(log2b) để xác định 
a
b



 . Hệ quả 
đ−ợc chứng minh. 
Ta có thuật toán sau đây để tính kí hiệu Jacobi dựa vào các định lí vừa chứng minh. 
Thuật toán tính kí hiệu Jacobi 
a
b



 (và do đó, tính kí hiệu Legendre khi b là 
số nguyên tố). 
J1. (Kiểm tra b≠ 0). Nếu b=0, in ra 0 nếu |a|≠ 1, in ra 1 
nếu |a|=1 và kết thúc thuật toán. 
J2. (Tách các luỹ thừa của 2 khỏi b). Nếu a và b đều 
chẵn, in ra 0 và kết thúc thuật toán. Ng−ợc lại, đặt 
v←0, và khi b chẵn, đặt v←v+1, b←b/2. Sau đó, nếu v 
chẵn, đặt k←1, ng−ợc lại, đặt k←(-1)(a 2 -1)/8. Cuối cùng, 
nếu b<0, đặt b←-b, và nếu hơn nữa, a<0, đặt k←-k. 
J3. (Kết thúc?). (ở b−ớc này, ta có b lẻ và b>0). Nếu 
a=0, in ra 0 nếu b>1, in ra k nếu b=1 và kết thuật 
toán. Ng−ợc lại, đặt v←0 và nếu a chẵn, đặt v←v+1, 
a←a/2. Nếu v lẻ, đặt k← (-1) (b2 −1 8)/ k . 
J4. (Sử dụng luật thuận nghịch). Đặt k←(-1)(a-1)(b-1)/4k. 
 71
Nhận xét. ở đây, ta cần l−u ý một điều. Mặc dù trong thuật toán có xuất hiện các 
phép chia (a2-1)/8, (b2-1)/8, (a-1)(b-1)/4, và phép nâng (-1) lên luỹ thừa đó, ta 
không cần làm các phép chia cũng nh− nâng lên luỹ thừa, vì đòi hỏi quá nhiều phép 
tính bit. Vì giá trị luỹ thừa của (-1) chỉ phụ thuộc vào tính chẵn lẻ của các đại l−ợng 
trên, nên chẳng hạn đối với (-1)(a
2
-1)/8, giá trị đó chỉ phụ thuộc a mod 8 và bằng 
một trong những số của dãy sau đây: 
{0,1,0,-1,0,-1,0,1}. 
Thuật toán tính căn bậc 2 modulo p. 
Trong nhiều ứng dụng (chẳng hạn, xem Ch−ơng 7), ta cần phải tính căn bậc 2 
modulo p, khi biết nó tồn tại. Tất nhiên, một trong các ph−ơng pháp để giải ph−ơng 
trình đồng d− x2≡ a(mod p), (a,p)=1 là kiểm tra tất cả các số từ 1 đến p-1. Tuy 
nhiên, khi làm việc với p lớn, ph−ơng pháp này không thể áp dụng đ−ợc (thời gian 
đòi hỏi là O(p)). 
Với những số nguyên tố dạng p≡ 3(mod 4), bài toán khá đơn giản. Ta có: 
x≡ a(p+1)/4(mod p). 
Thật vậy, 
x≡ a(p+1)/2≡ a.a(p-1)/2 ≡ a(mod p) . 
Khi p /≡ 3(mod 4), ta có p≡ 1(mod 8) hoặc p≡ 5(mod 8). Trong tr−ờng hợp 
p≡ 5(mod 8), lời giải cũng có thể tìm đ−ợc không khó khăn. Thật vậy, ta có: 
a(p-1)/2≡ 1(mod p), 
do đó 
a(p-1)/4≡ ± 1(mod p). 
Dễ kiểm tra đ−ợc rằng, trong tr−ờng hợp đồng d− thoả mãn với dấu cộng, nghiệm 
phải tìm là 
x=a(p+3)/8(mod p). 
Nếu đồng d− thoả mãn với dấu trừ, dùng định lí 4.8 ta có: 
a(p-1)/2≡ -1(mod p). 
Từ đó nghiệm phải tìm là: 
x=2a.(4a)(p-5)/8(mod p). 
Nh− vậy chỉ còn phải xét tr−ờng hợp p≡ 1(mod 8). Cho đến nay, mới chỉ có một 
thuật toán (thuật toán Shoof sử dụng đ−ờng cong elliptic) với thời gian đa thức. Tuy 
nhiên, trong thực tế, thuật toán đó rất khó sử dụng. Sau đây chúng ta tìm hiểu thuật 
toán xác suất của Tonelli và Shanks. 
Thuật toán Tonelli-Shanks chính là một mở rộng tự nhiên của các tr−ờng hợp riêng 
đã xét trên đây. 
 72
Ta luôn luôn viết p-1=2e.q, với q lẻ. 
Nếu ta tìm đ−ợc phần tử z và số nguyên chẵn k sao cho 
aqzk ≡ 1(mod p) 
thì nghiệm cần tìm sẽ đ−ợc cho bởi 
x=a(q+1)/2zk/2. 
Ta sẽ tìm phần tử z d−ới dạng z=nq. 
Ta chỉ ra rằng, phần tử z nh− vậy thoả mãn điều kiện đặt ra khi và chỉ khi n là một 
không thặng d− bình ph−ơng modulo p. Ta có: 
(aq)2
e
=a pφ ( )−1 ≡ 1(mod p), 
do đó aq thuộc vào nhóm G các phần tử cấp là một −ớc số của 2e. Nh− vậy, để tồn 
tại k, chỉ cần chọn n là phần tử sinh của nhóm G (khi đó, do a là một không thặng 
d− bình ph−ơng nên số mũ k phải là chẵn). Số nguyên n sẽ là một phần tử sinh của 
G khi và chỉ khi n, n2, n4,...,n2
e
(≡ 1(mod p)) không đồng d− với nhau modulo p. Dễ 
thấy rằng, điều đó xảy ra khi và chỉ khi n là một không thặng d− bình ph−ơng 
modulo p. 
Để xây dựng thuật toán, ta cần giải quyết hai vấn đề: Tìm phần tử z, và tìm số mũ k. 
Phần thứ nhất đ−ợc giải quyết bằng thuật toán xác suất. Ta chọn ngẫu nhiên một số 
n, và tính kí hiệu Legendre 
n
p



 . Khi đó, nếu 
n
p



=-1, ta đặt z=n
q. Trong tr−ờng 
hợp ng−ợc lại, ta tiếp tục làm nh− trên với một số ngẫu nhiên khác cho đến khi tìm 
đ−ợc một số n thích hợp. Vì số các thặng d− bình ph−ơng bằng (p-1)/2 nên mỗi lần 
chọn ngẫu nhiên một số n, xác suất để có 
n
p



=-1 là 1/2. 
Trong thực tế, ta có thể tìm ra một không thặng d− bình ph−ơng rất nhanh. Chẳng 
hạn, xác suất hai m−ơi lần thất bại liên tiếp nhỏ hơn 10-6. 
Số mũ k khó tìm hơn. Thật ra, ta không cần biết số mũ k, mà cần biết a(q+1)/2zk/2. 
Thuật toán. Giả sử p là một số nguyên tố lẻ, n∈Z. Ta viết 
p-1=2e.q với q lẻ. 
1. (Tìm phần tử sinh). Chọn ngẫu nhiên số n cho đến 
khi thoả mãn
n
p



=-1. Sau đó đặt z←n
q(mod p). 
2. (Xuất phát). Đặt y←z, r←e, x←a(p-1)/2(mod p), 
b←ax2(mod p ), x←ax(mod p). 
3. (Tìm số mũ). Nếu b≡ 1(mod p) in ra x và kết thúc 
thuật toán, Trong tr−ờng hợp ng−ợc lại, tìm số m nhỏ 
nhất sao cho m≥1, b m2 ≡ 1(mod p). Nếu m=r, in ra thông 
 73
báo nói rằng a không phải là thặng d− bình ph−ơng 
modulo p. 
4. (Thu hẹp số mũ). Đặt t← y r m2 1− − , y←t2, r←m, x←xt, 
b←by (mọi phép tính đều modulo p)và chuyển sang b−ớc 
3. 
Chú ý rằng từ khi bắt đầu b−ớc 3, ta luôn luôn có các đồng d− modulo p: 
ax≡ x2, y r2 1− ≡ -1, b r2 1− ≡ 1. 
Từ đó suy ra rằng, nếu nhóm con Gr các phần tử cấp là một −ớc của 2r, thì y là phần 
tử sinh của nhóm Gr, b ∈ Gr-1, tức là b chính ph−ơng trong Gr. Vì r thực sự giảm tại 
mỗi b−ớc lặp của thuật toán, nên số b−ớc lặp nhiều nhất bằng e. Khi r ≤1, ta có 
b=1, thuật toán kết thúc, và x là một căn bậc 2 của a mod p. 
Có thể thấy rằng, trung bình, b−ớc 3 và b−ớc 4 đòi h

File đính kèm:

  • pdfgiao_trinh_so_hoc_thuat_toan_chuong_4_thang_du_binh_phuong.pdf
Giáo án liên quan