Tài liệu Kỹ thuật lập trình - Chương 2: Giới thiệu lý thuyết số

19 1.4K 1
Tài liệu Kỹ thuật lập trình - Chương 2: Giới thiệu lý thuyết số

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tài liệu Kỹ thuật lập trình - Chương 2: Giới thiệu lý thuyết số

CHƯƠNG GIỚI THIỆU VỀ LÝ THUYẾT SỐ Hầu hết thuật tốn mật mã khóa cơng khai xây dựng dựa khái niệm lý thuyết số Trong chương trình bày ngắn gọn kiến thức lý thuyết số, cơng cụ hữu ích để hiểu sâu thuật tốn mật mã 2.1 Các số nguyên tố số nguyên tố 2.1.1 Các ước số Nói rằng, b (một số khác 0) ước số a a = mb, với giá trị m đó, a, b, m số nguyên Như vậy, b ước số a, chia a cho b khơng cịn lại số dư Để kí hiệu b ước số a thường sử dụng cách viết ba Có quan hệ sau: o Nếu a1, a = ± o Nếu ba ab, a = ± b o Số b khác ước số o Nếu bg bh, b(mg + nh) số nguyên m, n Để chứng minh khẳng định cuối cùng, cần ý sau: bg g có dạng g = b * g1, số ngun g1 đó, bh h có dạng h = b * h1, giá trị ngun h1 đó, Vì vậy: mg + nh = mbg1 + nbh1 = b * (mg1+ nh1) Cuối cùng, b ước số mg + nh Ví dụ 2.1: Các số 1, 2, 3, 4, 6, 8, 12 24 ước số 24 Ví dụ 2.2: b = 7, g = 14, h = 63, m = 3, n = 714 763 Yêu cầu chứng minh 7(3 * 14 + * 63) Chúng ta có: ( * 14 + * 63 ) = 7(3 * + * 9) Như vậy, rõ ràng 77(3 * + * 9) 2.1.2 Các số nguyên tố Một số nguyên p > gọi số nguyên tố, có ± ± p ước số Một số nguyên a > phân tích thành thừa số trình bày dạng: α α a = p1 p2 ptαt , đây: p1 < p2 < … < pt số ngun tố, cịn giá trị αi > Ví dụ 2.3: 91 = * 13; 11011 = * 112 * 13 Nếu P kí hiệu tập hợp tất số nguyên tố, số nguyên dương viết dạng: a a = ∏ p p, P tất ap ≥ Trong công thức này, biểu thức vế phải sau dấu bằng, ký hiệu tích theo tất khả số nguyên tố p Đối với giá trị cụ thể a giá trị lớn số ap Ví dụ 2.4: 3600 = 24 * 32 * 52 Các giá trị số nguyên dương liệt kê dạng đơn giản tất số khác khơng theo cơng thức Ví dụ 2.5: Số ngun 12 trình bày {a2 = 2, a3 = 1} Số ngun 18 trình bày {a2 = 1, a3 = 2} Phép nhân hai số nguyên tương đương với phép cộng giá trị số phù hợp: k = m * n → kp = mp + np, tất p Ví dụ 2.6: k = 12 * 18 = 216, k2 = + = 3, k3 = + = 3, 216 = 23 * 33 Bổ đề: Một số nguyên dương dạng pk chia hết cho số nguyên, số bị chia có bậc số nguyên tố p với số không vượt k, nghĩa số pj với j ≤ k Như vậy: ab → ap ≤ bp, tất p Ví dụ 2.7: a = 12 , b = 36 , 1236, 12 = 22 * 3, 36 = 22 * 32 a2 = = b2, a3 = ≤ = b3 2.1.3 Các số nguyên tố Chúng ta sử dụng ký hiệu gcd( a, b) để ước số chung lớn (UCLN) số a b Nói rằng, số nguyên dương c UCLN a b, nếu: o c ước số a b o Ước số a b ước số c Có thể định nghĩa tương đương sau: gcd(a, b) = max [k, ka kb] Bởi vì, đòi hỏi UCLN số dương, có gcd(a, b) = gcd(a, –b ) = gcd(–a, b) = gcd(–a, –b ) Nói chung, gcd(a, b) = gcd(|a|, |b|) Ví dụ 2.8: gcd(60, 24 ) = gcd(60, –24 ) = 12 Bởi tất số nguyên khác không ước số số 0, ln ln có: gcd(a, ) = |a| Dễ dàng xác định UCLN hai số nguyên dương, số trình bày dạng tích thừa số nguyên tố Ví dụ 2.9: 300 = 22 * 31 * 52, 18 = 21 * 32 gcd(18, 300) = 21 × 31 × 50 = Trong trường hợp chung: k = gcd(a, b) → kp = (ap, bp), tất p Việc xác định thừa số nguyên tố số lớn tốn khơng đơn giản, trình bày khơng cho khả thực tiễn để tính UCLN hai số Các số nguyên a b nguyên tố nhau, chúng khơng có ước số ngun tố chung, hay ước số chung chúng Nói cách khác a b hai số nguyên tố gcd(a, b) = Ví dụ 2.10: Số số 15 số nguyên tố nhau, ước số 1, 2, 8, ước số 15 1, 3, 15 Như vậy, ước số chung hai số 2.1.4 Số học lớp số dư Đối với số nguyên dương n số nguyên a bất kỳ, chia a cho n, ta nhận số nguyên q số dư r, phù hợp với quan hệ sau: a = qn + r, ≤ r < n, q = a / n x ký hiệu số nguyên lớn nhất, không lớn x Đối với số dương a số nguyên dương n, ln tìm q r, phù hợp với quan hệ tính tốn Ví dụ 2.11: a = 11; n = 7; 11 = * + 4; r = Nếu a số ngun, cịn n số ngun dương, a mod n, xác định phần dư phép chia a cho n Như vậy, số nguyên a viết : a = a / n * n + (a mod n) Ví dụ 2.12: 11 mod = ; –11 mod = 2.2 Lý thuyết đồng dư Định nghĩa 2.1 (Đồng dư) Cho a, b ∈ Z , n ∈ N Ta nói a đồng dư với b theo modulo n, a b chia cho n có số dư, viết dạng sau: a ≡ b mod n Chứng minh: Giả sử chia a b cho n thu thương nguyên phần dư Các phần dư nằm n – 1, nghĩa a = q1n + r1 b = q2 n + r2 Trong ≤ r1 ≤ n − ≤ r2 ≤ n − Khi dễ dàng thấy a ≡ b mod n r1 = r2 Như vậy: a ≡ b mod n a mod n = b mod n Chúng ta tìm hiểu số tính chất quan trọng đồng dư Tính chất 2.1: Nếu a1 ≡ b1 mod n a2 ≡ b2 mod n a1 + a ≡ b1 + b2 mod n Chứng minh: Từ giả thuyết ta có a1 = nt1 + b1 a2 = nt + b2 , suy a1 + a2 =b1 +b2 + (t1 + t2 )n , điều có nghĩa a1 + a ≡ b1 + b2 mod n Tính chất 2.2: Nếu a1 ≡ b1 mod n a2 ≡ b2 mod n a1 *a ≡ b1 * b2 mod n Chứng minh: Từ giả thuyết ta có a1 = nt1 + b1 a2 = nt + b2 , suy a1 * a2 =b1 *b2 + (b1t + b2 t1 + nt1t ) n , điều có nghĩa a1 *a ≡ b1 * b2 mod n Tính chất 2.3: Nếu gcd(d , n) = 1, a ≡ b mod n, a = a1d , b = b1d , a1 ≡ b1 mod n Chứng minh: Từ giả thuyết ta có (a1 − b1 ) d | n , mà gcd(d , n) = , nên suy (a1 − b1 ) | n , hay a1 ≡ b1 mod n Ví dụ 2.13: Chứng minh 37n+2+16n+1+23n chia hết cho Giải: Rõ ràng thấy 37 ≡ mod , 16 ≡ mod 23 ≡ mod , từ tính chất 2.2 có: 37 n+ ≡ n+ mod , 16 n+1 ≡ n+1 mod , 23n ≡ n mod Từ tính chất 2.1 có: 37n+2+16n+1+23n ≡ 7.2 n mod , từ tính chất 2.3 suy điều phải chứng minh 2.3 Các số nguyên modulo n Các số nguyên modulo n (ký hiệu Z n ) tập hợp số nguyên { 0, 1, , n − 1} bao gồm phép toán cộng nhân Việc cộng nhân Z n thực giống cộng nhân số nguyên, ngoại trừ điểm kết rút gọn theo modulo n Ví dụ 2.14: Tính 11 * 13 Z16 Tương tự với số nguyên ta có 11 * 13 = 143 Để rút gọn 143 theo modulo 16, ta thực phép chia bình thường: 143 = × 16 + 15 , 143 mod16 = 15 Do 11 × 13 = 15 Z16 Các định nghĩa phép cộng phép nhân Z n thoả mãn hầu hết quy tắc quen thuộc số học Sau ta liệt kê mà không chứng minh tính chất này: o Phép cộng đóng, tức với a, b ∈ Z n , a + b ∈ Z n o Phép cộng giao hốn, tức với a, b ∈ Z n thì: a + b = b + a o Phép cộng kết hợp, tức với a, b, c ∈ Z n : (a + b) + c = a + (b + c) o phần tử đơn vị phép cộng, có nghĩa với a ∈ Z n : a + = + a = a o Phần tử nghịch đảo phép cộng phần tử a ∈ Z n m – a, nghĩa a + (m – a) = (m – a) + a = với a ∈ Z n o Phép nhân đóng, tức với a, b ∈ Z n , a * b ∈ Z n o Phép nhân giao hốn, nghĩa với a, b ∈ Z n , a * b = b * a o Phép nhân kết hợp, nghĩa với a, b, c ∈ Z n , (a * b) * c = a * (b * c) o phần tử đơn vị phép nhân, tức với a ∈ Z n : a *1=1* a = a o Phép nhân có tính chất phân phối phép cộng, tức a, b, c ∈ Z n , (a + b) * c = a * c + b * c a * (b + c) = a * b + a * c 2.4 Hàm Euler, định lý Euler định lý Fermat Định nghĩa 2.2 (Hàm Euler) Cho n số nguyên dương, đặt φ (n) số phần tử tập hợp, mà tập số nguyên khoảng [1, n] nguyên tố với n, φ (n) gọi hàm Euler Ta công nhận số tính chất quan trọng hàm Euler: φ (1) = Nếu p số nguyên tố φ ( p) = p − Nếu p q hai số nguyên tố φ ( pq) = φ ( p ) * φ ( q) φ ( p s ) = p s −1 ( p − 1) e e e Nếu n = p11 p22 pk k , p1 , p2 , …, pk số nguyên tố,       1 −  1 − φ (n) = n1 −     p1  p2   pk    Trên bảng 2.1 trình bày 30 giá trị φ (n) Giá trị φ(1) không xác định, coi Bảng 2.1: Một số giá trị hàm Euler φ (n) n φ(n) n φ(n) n φ(n) 1 11 10 21 12 12 22 10 13 12 23 22 14 24 15 25 20 16 26 12 17 16 27 18 18 28 12 19 18 29 28 10 20 30 Định lý Euler: Cho n > 1, gcd(a, n) = , φ (n) hàm Euler Khi ta có: a φ ( n ) ≡ mod n Ví dụ 2.15: a = 3, n = 10, φ(10) = 4, 34 = 81 ≡ mod 10, a = 2, n = 11, φ(11) = 10, 210 = 1024 ≡ mod 11 Chứng minh: Giả sử x1 , , xφ ( n ) – số tự nhiên khác nhau, nhỏ n nguyên tố với n Hãy xét tất khả tích xi a , với i ∈ 1, φ ( n) Bởi a nguyên tố với n xi nguyên tố với n, nên tích xi a nguyên tố với n, có xi a ≡ x j mod n Chú ý phần dư phép chia xi a cho n khác Nếu điều khơng đúng, có nghĩa tồn i1 ≠ i2 , cho xi1 a ≡ xi a mod n Cho nên ( xi1 − xi2 ) a ≡ mod n Bởi a nguyên tố với n, nên biểu thức cuối tương đương với xi1 − xi2 ≡ mod n Điều mâu thuẫn, số x1 , , xφ ( n ) cặp khác theo modulo n Hãy nhân tất đẳng thức xi a ≡ x j mod n , thu được: x1 xφ ( n ) a φ ( n ) ≡ x1 xφ ( n ) mod n Hay x1 xφ ( n ) ( aφ ( n ) − 1) ≡ mod n Bởi số x1 xφ ( n ) mod n nguyên tố với n nên đẳng thức cuối tương đương với a φ ( n ) − ≡ mod n hay a φ ( n ) ≡ mod n Ta có cơng thức quan trọng sau: aφ (n ) + ≡ a mod n Định lý Fermat nhỏ: Cho p số nguyên tố, a số nguyên dương không chia hết cho p Khi ta có a p −1 ≡ mod p Chứng minh: Ta có φ ( p) = p − , áp dụng định lý Euler ta có điều phải chứng minh Từ định lý Fermat có hệ quan trọng sau: Cho a ∈ Z , p số nguyên tố, ta có: a p ≡ a mod p Cho a, b ∈ Z , p số nguyên tố (a + b) n ≡ a n + b n mod p Ví dụ 2.16: Chứng 118 +218 +318 +418 +518 +618 ≡ –1 mod Giải: Các số 1, 2, 3, 4, 5, số nguyên tố với Nên theo định lý Fermat có phương trình sau: 16 ≡ mod ; ≡ 1mod ; 36 ≡ 1mod ; ≡ mod ; 56 ≡ mod ; 66 ≡ mod Lấy bậc ba hai vế phương trình cộng lại ta được: 118 +218 +318 +418 +518 +618 ≡ mod = −1 mod 2.5 Thuật toán Euclide thuật toán Euclide mở rộng 2.5.1 Thuật toán Euclide Định lý Euclide: Cho a, b ∈ Z , b ≠ , tồn cặp giá trị (q, r) với q ∈ Z r ∈ N thỏa mãn: a = bq + r , ≤ r < b r gọi số dư Có số ký hiệu cho số dư sau: r = Rb (a ) , r = a mod b Một số tính chất đơn giản số dư: R−b ( a) = Rb ( a) , a = qb + r  a = (− q )(−b) + r ⇔ ≤ r < b  0 ≤ r < b R b ( a + ib) = Rb ( a), ∀i ∈ Z , a + ib = ( q + i )b + r Nếu r = ta nói a chia hết cho b, ký hiệu a b Định lý 2.1: Đối với số a, b, i ∈ Z : gcd(a, b) = gcd(a + ib, b) d Chứng minh: Nếu ad bd , a = q1d , b = q2 d Lúc a + ib = d ( q1 + iq ) ⇒ (a + ib) Có nghĩa là: gcd(a, b) ≤ gcd(a + ib, b) (*) Tương tự giả sử (a + ib) d bd ⇒ a + ib = q1d , b = q2 d Lúc a = d ( q1 − iq ) ⇒ ad Có nghĩa là: gcd(a, b) ≥ gcd(a + ib, b) (**) Từ (*) (**) có đẳng thức gcd(a,b)=gcd(a+ib,b) Định lý 2.2: Đối với a, b ∈ Z , b ≠ , ta có: gcd(a, b) = gcd(b, Rb (a )) Chứng minh Bởi a = bq + Rb (a) , gcd(a, b) = gcd(a − qb, b) = gcd( Rb ( a), b) Từ định lý 2.2 ta có thuật tốn Euclide Đây thuật tốn giúp tìm UCLN hai số nguyên dương a0 a1 với a0 > a1 Thuật toán miêu tả dãy phép chia sau: a0 = a1q1 + a , < a2 < a1 a1 = a q + a3 , < a3 < a2 … ak −2 = ak −1qk −1 + ak , < ak < |ak-1| ak −1 = ak qk + Dựa vào định lý 2.1, nhận gcd(a0, a1) = gcd(a1, a2) = … = gcd(ak, 0) = ak Ví dụ 2.17 (Thuật tốn Euclide): Tìm gcd(814, 187) Giải: Khai triển dãy phép tính theo thuật tốn Euclide: 814 = * 187 + 66 187 = * 66 + 55 66 = * 55 + 11 55 = * 11 + Vậy gcd(814, 187) = 11 Thuật tốn viết sau: Vào: Hai số nguyên dương a b với a > b Ra: UCLN a b (1) While b # r ← a mod b, a ← b, b ← r (2) Return (a) 2.5.2 Thuật toán Euclide mở rộng Định nghĩa 2.3 (Phần tử nghịch đảo) Cho a ∈ Z n Phần tử nghịch đảo a phần tử b ∈ Z n cho a * b ≡ b * a ≡ mod n Kí hiệu phần tử nghịch đảo a a-1 Định lý 2.2: Cho số nguyên a > nguyên tố với n, ln tồn phần tử nghịch đảo a theo modulo n Chứng minh: Hãy xét tập hợp {1, 2, , n − 1} Nhân phần tử tập hợp với a theo modulo n, nhận tập hợp { ( a mod n), ( 2a mod n), , ((n − 1) a mod n)} , tập bao gồm số 1, 2,…, n – 1, có nghĩa số giá trị i thỏa mãn điều kiện ia mod n = Điều dẫn đến mâu thuẫn tồn hai giá trị h k thỏa mãn điều kiện trên, nghĩa mod n = ka mod n Điều dẫn đến h ≡ k mod n , gcd(a, n) = 1, suy h = k Vậy ta tìm i phần tử nghịch đảo a i Hệ 2.1: Nếu p số nguyên tố, số a, < a < p, tồn phần tử nghịch đảo theo modulo p Chúng ta tìm hiểu cách tìm phần tử nghịch đảo thơng qua thuật tốn Euclide mở rộng Từ dãy chia thuật toán Euclide a0 = a1q1 + a2 , < a2 < a1 a1 = a2 q2 + a3 , < a3 < a2 … ak − = ak −1qk −1 + ak , < ak < ak-1 Ta dễ dàng rút dãy sau: ak = ak − − qk −1ak −1 mà ak −1 = ak − − qk − ak − nên suy ak = ak − − qk −1 ( ak − − qk − ak − ) , tương tự thế, rút ak − , đến cuối có biểu thức dạng sau: ak = a0 x + a1 y (2.1) Nếu gcd(a0 , a1 ) = , có x phần tử nghịch đảo a0 theo modulo a1 Ví dụ 2.18 (Thuật tốn Euclide mở rộng): Tìm x y biểu thức (2.1) với a0 = 814 a1 = 187 Giải: Theo ví dụ 2.17 ta thu dãy: 814 = * 187 + 66 187 = * 66 + 55 66 = * 55 + 11 55 = * 11 + Suy ra: 11 = 66 – * 55 = 66 – * (187 – * 66) = * 66 – * 187 = * (814 – * 187) –187 = * 814 – 13 * 187 Vậy x = y = –13 Tìm phần tử nghịch đảo 17 theo modulo 74 Giải: Theo ví dụ ta có * 74 – 13 * 17 = Nên phần tử nghich đảo 17 –13, lấy số dương, nên phần tử nghịch đảo 17 74 – 13 = 61 2.6 Giải phương trình đồng dư nhóm thương Z n Có nhiều phương pháp giải phương trình đồng dư, chúng tơi muốn trình bày với bạn đọc phương pháp hay dựa vào định lý sau: Định lý 2.3: Cho n > 1, gcd(a, n) = Khi phương trình đồng dư ax ≡ b mod n có nghiệm nhất, nghiệm là: x = baφ ( n ) − mod n Chứng minh: Theo định lý Euler, ta có aφ ( n ) ≡ mod n , suy a.baφ ( n ) −1 ≡ b mod n Vậy nghiệm x = baφ ( n ) −1 mod n Ví dụ 2.19: Giải phương trình 7x ≡ mod 10 Chúng ta tính sau: φ (10) = 4; x ≡ 3 * 74-1 mod 10 ≡ 1029 mod 10 ≡ Thế cách khó thực bậc a đủ lớn Bởi xem cách sau Chúng ta biết định lý phần tử nghịch đảo, gcd(a, n) = 1, ln tồn phần tử nghịch đảo a-1 Nên từ phương trình ax ≡ b mod n , suy x ≡ ba −1 mod n Ví dụ 2.20: Giải phương trình x ≡ mod 10 Chúng ta thấy −1 mod 10 = Nên nghiệm phương trình x = * mod 10 = Định lý 2.4: Cho n >1, để phương trình ax ≡ b mod n có nghiệm điều kiện cần đủ gcd(a, n)| b Chứng minh: Phương trình ax ≡ b mod n viết dạng phương trình tuyến tính sau ax + kn = b, (2.2), k số nguyên Ta chứng minh điều kiện cần Giả sử hồn thành điều kiện (2.2) Bời số gcd(a, n) ước vế trái, nên phải ước vế phải Chứng minh điều kiện đủ Ứng dụng thuật toán Euclide hai số a n, tính aλ + µn = gcd(a, n) (2.3) Bởi b/gcd(a, n) số nguyên, nên nhân hai vế (2.3) cho b/gcd(a, n) nhận công thức (2.2), x = λb mod n nghiệm gcd(a, n) Dễ dàng kiểm tra phương trình có nghiệm dạng x+ ni mod n , i = 0, 1, 2, , gcd(a, n) – gcd(a, n) Tức phương trình cho có gcd(a, n) nghiệm khác nhau, nghiệm nhỏ n Ví dụ 2.21: Giải phương trình x ≡ mod 10 Vì gcd(2, 10) = 2, khơng ước nên phương trình vô nghiệm, không dựa vào định lý dễ dàng thấy 2x + 10y = vơ nghiệm, vế trái số chẳn, cịn vế phải số lẻ Điều Giải phương trình x ≡ 18 mod 36 Vì gcd(6, 36)|18 Nên phương trình có nghiệm: 3, 9, 15, 21, 27 33 2.7 Định lý phần dư Trung Hoa Định lý nhằm giúp giải hệ phương trình đồng dư thức, định lý phát biểu sau: Giả sử cho số n1, n2, …, nk số nguyên dương nguyên tố đôi c1, c2, …, ck số ngun hệ phương trình đồng dư: x ≡ c1 mod n1 x ≡ c2 mod n2 … x ≡ ck mod nk Có nghiệm theo modulo n nghiệm là: k x = ∑ ci N i ( N i−1 mod ni ) mod n (2.4) i =1 n = n1n2 nk N i = M ni Chứng minh: Nếu ta chứng minh hệ tương đương với phương trình sau: x ≡ x0 mod n k −1 x0 = ∑ ci N i ( N i mod ni ) coi chứng minh định lý i =1 Ta có Ni chia hết cho ns, s ≠ i Điều dẫn đến x0 ≡ N i ( N i−1 mod ni )ci (mod ni ) , từ x0 ≡ ci (mod ni ) Điều có nghĩa hệ tương đương với hệ sau: x ≡ x0 mod n1 x ≡ x0 mod n2 10 x ≡ x0 mod nk Điều tương đương với phương trình sau x ≡ x0 mod n Mà ta biết phương trình có nghiệm x0 mod n Ví dụ 2.22: Giải hệ phương trình đồng dư sau: x ≡ mod x ≡ mod 11 x ≡ 10 mod 13 Giải: Ta có n = * 11 * 13 = 1001; N1 = n/5 = 143; N2= n/11 = 91; N3 = n/13 = 77 Ta tính phần tử nghịch đảo Ni theo modulo ni 143-1 mod = 5; 91-1 mod 11 = 77-1 mod 13 = 12 Áp dụng công thức (2.4) ta có nghiệm hệ phương trình là: x = (5.143.5 + 3.91.4 + 10.77.12) mod 1001 = 894 2.8 Bậc nguyên thủy Định nghĩa 2.4 (Bậc) Cho gcd(a, n) = Bậc a mod n số nguyên dương nhỏ γ thỏa mãn phương trình đồng dư thức: a γ ≡ mod n , Kí hiệu bậc Ordn(a) Ví dụ 2.23: Tìm bậc mod Giải: 21 mod = 2; 22 mod = 4; 23 mod = 3; 24 mod = 1; Ord5(2) = Định nghĩa 2.5 (Căn nguyên thủy) Nếu bậc a modulo n giá trị hàm Euler n Thì a gọi nguyên thủy n Ví dụ 2.24: Số nguyên thủy Vì Ord5(2) = φ (5) = 2.9 Thặng dư bậc hai Thặng dư bậc hai đóng vai trị quan trọng lý thuyết số Ví dụ, thuật tốn phân tích số ngun thừa số Ngồi thặng dư bậc hai ứng dụng lớn mật mã giao thức mã hóa Định nghĩa 2.6 (Thặng dư bậc hai) * Cho n số nguyên n > Số từ nhóm Z n gọi thặng dư bậc hai theo modulo n, nhóm * Z n tồn số x, thỏa mãn điều kiện x ≡ a mod n , trường hợp ngược lại gọi không thặng dư bậc hai Tập hợp số thặng dư bậc hai theo modulo n ký hiệu QRn, tập hợp không thặng dư bậc hai ký hiệu QNRn Ví dụ 2.25: Tính QR11 tập tất thặng dư bậc hai theo modulo 11 11 { } Chúng ta có QR11 = 12 , 2 , 32 , , 52 , , , 82 , ,10 mod 11 = {1, 3, 4, 5, 9} , ví dụ, * tính QR11 cách lựa chọn phần tử nhóm Z11 { } Độc giả kiểm tra lại QR11 = 12 , 22 , 32 , , 52 mod 11 = {1, 3, 4, 5, 9} Điều tìm hiểu qua định lý sau: Định lý 2.5: Cho p số nguyên tố Khi khẳng định sau { } QR p = x (mod p) | < x ≤ ( p − 1) / * Nhóm Z p chia hai tập con, QRp QNRp có số phần tử Chứng minh: Chúng ta chứng minh { điều khẳng định thứ Rõ ràng } S = x (mod p) | < x ≤ ( p − 1) / ⊆ QR p Để chứng minh QR p = S , điều chứng minh QR p ⊆ S Chọn số a a ∈ QR p Tồn số x < p, thỏa mãn điều kiện x ≡ a (mod p ) Nếu x ≤ ( p − 1) / , a ∈ S Giả sử x > (p – 1)/2 Như y = p − x ≤ ( p − 1) / y ≡ ( p − x) ≡ p − px + x ≡ x ≡ a(mod p ) Chứng tỏ, QR p ⊆ S Ta chứng minh điều khẳng định thứ hai Để chứng minh # QR p = ( p − 1) / ,thì tương đương với việc chứng minh tất số x, thỏa mãn bất đẳng thức < x < y ≤ ( p − 1) / , thỏa mãn điều kiện x ≠ y (mod p ) Giả sử điều sai: x − y ≡ ( x + y )( x − y ) ≡ 0(mod p) Dẫn đến, p|(x + y) p|(x – y) Bởi x + y < p p số nguyên tố Nên x = y Điều trái ngược với giả * thuyết Vậy # QR p = ( p − 1) / Mà # Z p = p − , nên điều khẳng định thứ hai hồn tồn Thường xuất tốn, xác định xem số n có phải thặng dư bậc hai theo modulo cho hay không Vấn đề gọi toán thặng dư bậc hai Bài toán giải thông qua định lý sau: * Định lý 2.6 (Tiêu chuẩn Euler): Cho p số nguyên tố Đối với số x ∈ Z p , x thặng dư bậc hai chi thỏa mãn điều kiện sau: x ( p −1) / ≡ mod p * Chứng minh: Đối với x ∈ QR p tồn số y ∈ Z p cho y ≡ x(mod p ) Theo định lý Fermat có, x ( p −1) / ≡ y p −1 ≡ mod p Ngược lại, x ( p −1) / ≡ mod p , x nghiệm đa thức y ( p −1) / − ≡ mod p Chúng ta biết Z p trường Mà ta dễ dàng thấy phần tử trường nghiệm đa thức y p − y ≡ mod p Hay nói cách khác, phần tử khác không trường nghiệm đa thức: 12 y p −1 − ≡ ( y ( p −1) / − 1)( y ( p −1) / + 1) ≡ mod p Mà tất nghiệm phải khác nhau, đa thức có bậc p – Điều dẫn đến (p – 1)/2 nghiệm đa thức y ( p −1) / − ≡ mod p phải khác Mà theo định lý số phần tử tập thặng dư bậc hai ta có tập QRp có (p – 1)/2 phần tử, phần tử nghiệm phương trình * y ( p −1) / − ≡ mod p Và phần tử khác nhóm Z p phải thỏa mãn phương trình y ( p −1) / + ≡ mod p Vậy x ∈ QR p Khi chứng minh định lý điều khẳng định sau: Nếu x ∈ Z p mà tiêu chuẩn Euler khơng thỏa mãn thì: x ( p −1) / ≡ −1 mod p 2.10 Các ký hiệu Legendre Jacobi Ký hiệu Legendre công cụ hữu ích để xem xét liệu số nguyên a có thặng dư bậc hai theo modulo số nguyên tố p hay không? 2.10.1 Ký hiệu Legendre Định nghĩa 2.7 Nếu p số nguyên tố lẻ a số tự nhiên, ký hiệu Legendre a   xác định sau:  p   o a|p; o a ∈ QR p ; o −1 a ∈ QNR p Các tính chất ký hiệu Legendre: Cho p số nguyên tố lẻ a, b ∈ Z Khi ký hiệu Legendre có tính chất sau:  ab   a  b    ≡     p      b  p  a b Nếu a ≡ b mod p ,   =    p  p     1   =  p    1  −  = ( −1)  p   2   = ( −1)  p   p −1  p −1  p +1    3   = ( −1)   p   p ≡ mod  − p ≡ mod  p ≡ 1, mod = − p ≡ 3, mod  p ≡ 1,11 mod 12 = − p ≡ 5, mod 12 13  p−2    p ≡ 1, mod = − p ≡ 2, mod  p +1     p ≡ 1, 3, 9,19, 25, 27 mod 28 = − p ≡ 5,11,13,15,17, 23 mod 28  5   = ( −1)   p    7   = ( −1)   p    q   p Nếu p q số nguyên tố lẻ   =  ( −1)  p  q     q −1 p −1 2 Tiêu chuẩn Euler viết lại sau: Euler chứng minh với số nguyên tố p số a, 1≤ a ≤ p , a   ≡ a ( p −1) / mod p  p   Ví dụ 2.26: Tính ký hiệu Legendre  12345     331     823  =     331  331  331     161  =     331  331  331      23  =      331  331  331  331   331   331   331   331  = ( − 1)  ( − 1)  ( − 1)  ( − 1)          23       = −         23       = −         23       = −         23  = −(1)(1)(1)(1) = −1 2.10.2 Ký hiệu Jacobi Định nghĩa 2.8 α α Ký hiệu Jacobi tổng quát hóa ký hiệu Legendre cho số tự nhiên lẻ n Giả sử n = p1 p2 pαk k dạng phân tích tiêu chuẩn n Với số nguyên a bất kỳ, ký hiệu Jacobi là: α α  a a  a   a  =            p  n   p1   p2   k αk     , tất ký hiệu bên vế phải ký hiệu Legendre Các tính chất ký hiệu Jacobi: Cho n số tự nhiên lẻ a, b ∈ Z Kí hiệu Jacobi có tính chất sau: Nếu n số nguyên tố ký hiệu Jacobi ký hiệu Legendre a   ∈ { 0, 1, − 1} n 14 a   = gcd( a, n ) ≠ n  ab   a  b    ≡     n   n  n   a   a  b   a    ≡    , điều dẫn tới    mn   m  n  n  a b Nếu a ≡ b mod n ,   =   n n 1   = n  1  −  = ( −1)  n   = ( −1)   n n −1  n ≡ mod  − n ≡ mod n −1  n ≡ 1, mod = − n ≡ 3, mod ( m −1)( n −1) n m 10   = ( )( − 1) n m Ví dụ 2.27:  37035   294    147   =  = 1.    331   331   331  331   147   331   37   147  = − = = =   331   147   147   37   36       37    =   =     =   =   =1  37   37   37      Vì 331 số nguyên tố nên từ 37035 thặng dư bậc hai mod 331 Có hai tính chất với ký hiệu Legendre mở rộng cho ký hiệu Jacobi + Khác với ký hiệu Legendre, ký hiệu Jacobi khơng cho biết liệu a có phải thặng dư bậc hai a a theo modulo n hay khơng Sự thực a ∈ QRn   = Tuy nhiên   = khơng có nghĩa a ∈ n n QRn a ( p −1) / mod p với số + Tính chất thứ hai khơng thể mở rộng gắn với đồng dư thức Euler   ≡ a  p   nguyên tố p số nguyên a Một cách tự nhiên đồng dư thức Euler mở rộng từ ký hiệu Legendre a ( n −1) / mod n với hợp số lẻ dương n Tuy nhiên đồng dư thức sai sang ký hiệu Jacobi   ≡ a n  với nửa a mod n n hợp số 2.10.3 Bổ đề Gauss Nếu p q số nguyên tố khác thì: 15  q   p   =  ( −1)  p  q     q −1 p −1 2 Hay nói cách khác, số p q có dạng 4n + 1, p bình phương theo modulo q q bình phương theo modulo p Nếu số p q có dạng 4n + 3, p bình phương theo modulo q q không bình phương theo modulo p Chứng minh: Cho p ≠ q , xét trường Fp q −1 biết là nhóm cyclic Theo định lý nhỏ Fermat p q −1 − chia hết cho q, nên nhóm tồn phần tử có bậc q Chúng ta xem w, lúc w ≠ w q = F p q −1 Bây xác định tổng Gauss: x y = ∑  w x   x∈Z q  q  Chúng ta chứng minh điều khẳng định sau: Điều khẳng định 1: Ta có đẳng thức sau y = (−1) q −1 q Chứng minh:  xz   x (u − x )   y = ∑   w x + z = ∑ wu ∑  q   q x,z  u∈Z q x∈Z q    Từ tổng cuối x lấy giá trị tập Z q \ { 0} Khi x ≠ , có: q −1  − ux −1   x(u − x)   − x  − ux −1     = (−1)    =    q  q q  q         Từ (−1) với Cu = q −1 y = ∑ Cu wu , u∈Z q  − ux −1   ∑   q  x∈Z q \{ 0}   Rõ ràng C0 = 1 ∑   = q −1   x∈Z q \{ 0}  q  Nếu u ≠ , s = − ux −1 nhận giá trị tập Z q \ {1} , cho nên:  s 1 1 Cu = ∑   −   = −  , q q q s∈Z q       16 0 Bởi   = , Z q \ { 0} số lượng phần tử bình phương số lượng phần tử khơng  p   phương Từ đây: u ∑ Cu w = ( q − 1) − u∈Z q u ∑w = q u∈Z q \{ 0} Vậy chứng minh điều khẳng định 1, chứng minh tiếp điều khẳng định Khẳng định thứ 2: Ta có đẳng thức sau:  p y p −1 =   q   Chứng minh: Theo định thức Newton rút ra:  zp −1  z  p −1  x  p    y p = ∑   w xp = ∑  q    q w =  q  y =  q  y , x∈Z q   x∈Z q       Vậy điều khẳng định thứ hai chứng minh Kết hợp hai khẳng định có đẳng thức:  p   = y p−1 q   q −1   =  ( −1) q      p −1 = ( −1) q −1 p −1  2  q  p    2.11Tính bậc hai theo modulo số nguyên 2.11.1 Tính bậc hai theo modulo số nguyên tố Cho p số nguyên tố, có phương án tính sau: Phương án 1: p ≡ 3, mod Trong trường hợp số p + chia hết cho Cho a ∈ QR p Ta định nghĩa x sau: x=a p +1 mod p , Bởi theo tiêu chuẩn Euler, a ( p −1) / ≡ mod p , nên x ≡ a ( p+1) / ≡ a ( p−1) / a ≡ a mod p Như số x bậc hai a theo modulo p Phương án 2: p ≡ mod Trường hợp p + chia hết cho Bởi số (p – 1)/2 số chẵn, số –1 thỏa mãn tiêu chuẩn Euler thặng dư bậc hai Cho a ∈ QR p , ta định nghĩa x sau: x=a p+ (mod p) , Từ điều kiện a ( p −1) / ≡ mod p ⇒ a ( p −1) / ≡ ±1 mod p ⇒ x ≡ a ( p+3) / ≡ a ( p −1) / a ≡ a mod p Điều chứng tỏ x định nghĩa bậc hai a –a Nếu số dương thuật tốn giải xong, số âm thì: − x ≡ ( − 1x) ≡ a(mod p) Dẫn đến x = − 1a p+3 (mod p) số cần tìm Như tốn dẫn đến tìm − mod p 17 Cho số b số không thặng dư bậc hai theo modulo p Như theo tiêu chuẩn Euler ta có (b ( p −1) / ) ≡ b ( p −1) / ≡ −1 mod p , thay − mod p b (b−1) / mod p Bởi p − = ( p + 1)( p − 1) = (8k + 6)(8k + 4) = 8( 4k '+3)(2k "+1) Mà ta biết ∈ QNR p , nên dùng 2( p −1) / thay cho −1 Ngoài trường hợp tổng qt ta tính sau: Từ tiêu chuẩn Euler, đồng dư thức x ≡ a mod p giải a thặng dư bậc hai theo modulo p, có nghĩa: a p −1 ≡ mod p Giả sử đẳng thức cuối Cũng giả sử rằng, biết số số N không thặng dư bậc hai theo modulo p, có nghĩa biết N với tính chất: N p −1 ≡ −1 mod p Giả sử p − = s l , l số lẻ Chúng ta tìm dãy số bs−1 , , b0 cho: i (a l bi2 ) ≡ mod p i −1 Có thể đặt bs −1 = Nếu bi tìm i > , khai căn, nhận (a l bi2 ) so sánh với –1 theo modulo p Trong trường hợp thứ thiết lập quan hệ bi −1 = bi , trường hợp p −1 thứ hai b = b N 2i +1 Cuối ta có a l b0 ≡ mod p , từ (a i −1 i x ≡ ±a l +1 b l +1 b )2 ≡ a mod p , có nghĩa là: mod p 2.11.2 Tính bậc hai theo modulo hợp số * * * Chúng ta biết n = pq , p q số nguyên tố, nhóm Z n đồng cấu với không gian Z p x Z q Bởi đồng cấu đảm bảo tính chất lệnh số học nên x ≡ y mod n , thỏa mãn biểu thức với modulo p modulo q Điều có nghĩa triển khai n thừa số bậc hai theo modulo n tính theo thuật toán sau: Thuật toán 2.1: Đầu vào số nguyên tố p, q thỏa mãn điều kiện n = pq, số nguyên y ∈ QR p Đầu ra: Căn bậc hai y theo modulo n xp y (mod p) xq y (mod q) return vp * xp + vq * xq mod n v p = q −1 (mod p ) p vq = p −1 (mod q).q 18 2.12 Thuật tốn bình phương nhân Thuật tốn “bình phương nhân” để tính z = x b mod n Đây thuật toán tính hàm mũ hiệu quả, mà chương áp dụng để tính giá trị hàm mũ trường hợp số mũ lớn Trong thuật toán này, ta coi số mũ b biểu thị dạng nhị phân sau: l b = ∑ bi 2i i =0 Trong bi = 1, ≤ i ≤ l − Thuật tốn tính: z = x b mod n gồm bước sau: z = for i = l – down to z = z mod n if bi = then z = z * x mod n Ví dụ : Tính 97263533 mod 11413 3533 = 211+210+28+27+26+23+22+1 = 110111001101 z=1 i 11 10 bi 1 1 0 1 z mod 11413 12 * 9726 = 9726 97262 * 9726 = 2659 26592 = 5634 56342 * 9726 = 9167 91672 * 9726 = 4958 49582 * 9726 = 7783 77832 = 6298 62982 = 4629 46292 * 9726 = 10185 101852 * 9726 = 105 1052 = 11025 110252 * 9726 = 5761 Vậy 97263533 mod 11413 = 5761 19 ... b hai số nguyên tố gcd(a, b) = Ví dụ 2.10: Số số 15 số nguyên tố nhau, ước số 1, 2, 8, ước số 15 1, 3, 15 Như vậy, ước số chung hai số 2.1.4 Số học lớp số dư Đối với số nguyên dương n số nguyên... Định lý phần dư Trung Hoa Định lý nhằm giúp giải hệ phương trình đồng dư thức, định lý phát biểu sau: Giả sử cho số n1, n2, …, nk số nguyên dương nguyên tố đôi c1, c2, …, ck số nguyên hệ phương trình. .. ≤ = b3 2.1.3 Các số nguyên tố Chúng ta sử dụng ký hiệu gcd( a, b) để ước số chung lớn (UCLN) số a b Nói rằng, số nguyên dương c UCLN a b, nếu: o c ước số a b o Ước số a b ước số c Có thể định

Ngày đăng: 26/04/2014, 20:53

Từ khóa liên quan

Mục lục

  • 2.1 Các số nguyên tố và các số nguyên tố cùng nhau

  • 2.1.1 Các ước số

  • 2.1.2 Các số nguyên tố

  • 2.1.3 Các số nguyên tố cùng nhau

  • 2.1.4 Số học trong lớp số dư

  • 2.2 Lý thuyết về đồng dư

  • 2.3 Các số nguyên modulo n

  • 2.4 Hàm Euler, định lý Euler và định lý Fermat

  • 2.12 Thuật toán bình phương và nhân

Tài liệu cùng người dùng

Tài liệu liên quan