Bài tập Đại số nhúng chìm nửa nhóm vào nhóm, rất hay, bài tập rất hay và các bạn nên down về tham khảo thêm. tài liệu là bản tóm tắt cho các bạn tham khảo và làm luận văn tốt nghiệp, rất hay. Thể loại thuộc về toán học Đại số
Bảo Mật Thông Tin Trần Nhật Quang Khoa Công Nghệ Thông Tin – ĐH Sư Phạm Kỹ Thuật TP HCM trannhatquang4810@gmail.com Các Nội Dung Thuật toán Euclid Thuật tốn Euclid mở rộng Bảo Mật Thơng Tin Chương Lý Thuyết Số (tt) Ước Số Chung Lớn Nhất (Nhắc lại: Lý thuyết số nghiên cứu số nguyên Vì số số nguyên.) Ước số chung lớn (Greatest Common Divisor - gcd) số a, b số lớn chia hết a b Ký hiệu: gcd(a, b) hay (a, b) Thuật toán Euclid hiệu để tìm gcd Bảo Mật Thơng Tin Chương Lý Thuyết Số (tt) Thuật Toán Euclid Thuật tốn Euclid dùng để tìm ước chung lớn Ta có phép chia a/b: a = q.b + r Nếu số d: d|a d|b d|r Nên: gcd( a, b) = gcd( b, r) Thuật toán Euclid: Giả sử a ≥ b > Đặt g0 = a, g1 = b Lặp tìm số dư: gi+1 = gi-1 mod gi (gi +1 số dư gi-1 cho gi ) Cho đến gk+1 = Lúc đó: (a,b) = gk Bảo Mật Thông Tin Chương Lý Thuyết Số (tt) Ví Dụ Thuật Tốn Euclid Ví dụ 1: Tìm (8, 6) (8, 6) = (6, 2) = (2, 0) Hay: 8620 (8, 6) = Ví dụ 2: Tìm (128, 48) (128, 48) = (48, 32) = (32, 16) = (16, 0) Hay: 1284832160 (128, 48) = 16 Bảo Mật Thông Tin Chương Lý Thuyết Số (tt) Chương Lý Thuyết Số (tt) Bảo Mật Thơng Tin Thuật Tốn Euclid Mở Rộng Dùng để tìm số nghịch đảo a-1 mod n số a a-1 nghịch đảo a theo mod n a.a-1 = mod n Ví dụ: 3.7 = mod 10 = 3-1 mod 10 Nếu (a, n) = ln nghịch đảo a theo mod n (điều kiện để dùng Euclid mở rộng) Sử dụng thuật toán Euclid mở rộng để tìm giá trị gi ,ui ,vi cho gi = ui.n + vi.a (v y gi n 1) Từ = uk.n + vk.a suy vk nghịch đảo a uk.n + vk.a mod n = vk.a mod n Bảo Mật Thông Tin Chương Lý Thuyết Số (tt) Thuật Toán Euclid Mở Rộng (2) g0 = n, u0 = 1, v0 = : g1 = a, u1 = 0, v1 = : g0 = u0 n + v0 a g1 = u1 n + v1 a • y = g0 div g1 (chia lấy nguyên) g0 = u0 n + v0 a g1 = u1 n + v1 a X y (g0 – y g1) = (u0 – y u1) n + (v0 – y v1) a g2 = u2 n + v2 a (g2 = g0 mod g1) • y = g1 div g2 (g1 – y g2) = (u1 – y u2) n + (v1 – y v2) a g3 = u3 n + v3 a ………… Đến gk+1 = ta có gk = gcd(a,n) = vk = a-1(mod n) Bảo Mật Thông Tin Chương Lý Thuyết Số (tt) Thuật Toán Euclid Mở Rộng (3) TT tìm nghịch đảo a theo mod n ((a,n)=1, n>a>0) (nếu a > n lấy a = a mod n) • g0 = n, u0 = 1, v0 = • g1 = a, u1 = 0, v1 = • Lặp: y = gi-1 div gi gi+1 = gi-1 mod gi ui+1 = ui-1 – y ui vi+1 = vi-1 – y vi • Đến gk = ta có vk = a-1 mod n Bảo Mật Thông Tin Chương Lý Thuyết Số (tt) Ví Dụ Tìm 3-1 mod 460: a=3, n=460 i y g u(n) v(a) Đẳng thức tương đương 460 460 = 1*460 + 0*3 3 = 0*460 + 1*3 153 1 -153 = 1*460 + -153*3 Ở k=2 Vậy: 3-1 mod 460 = -153 = 307 mod 460 Tìm 299-1 mod 323: a=299, n=323: i y g u(n) 323 1 299 24 12 11 -12 2 25 5 -137 Vậy: 299-1 mod 323 = 148 Bảo Mật Thông Tin v(a) -1 13 -27 148 Đẳng thức tương đương 323 = 1.323 + 0.299 299 = 0.323 + 1.299 24 = 1.323 + -1.299 11 = -12.323 + 13.299 = 25.323 + -27.299 = -137.323 + 148.299 Chương Lý Thuyết Số (tt) 10 Giải Thuật Rút Gọn Tìm 299-1mod 323: (a=299, n=323) y 12 g 323 299 24 11 v -1 13 -27 148 Vậy: 299-1 mod 323 = 148 Bảo Mật Thông Tin Chương Lý Thuyết Số (tt) 11 Hàm Phi Euler Tập số dư đầy đủ theo mod n: [0 n-1] Tập số dư rút gọn theo mod n: gồm số [0 n-1] nguyên tố với n Ví dụ: n = 10 Tập số dư đầy đủ: {0,1,2,3,4,5,6,7,8,9} Tập số dư rút gọn: {1,3,7,9} Số phần tử tập số dư rút gọn gọi hàm phi Euler Ký hiệu: φ(n) Ví dụ: φ(10) = Bảo Mật Thơng Tin Chương Lý Thuyết Số (tt) 12 Hàm Phi Euler (2) Một số tính chất φ(n): Nếu n số nguyên tố thì: φ(n) = n-1 Nếu n số nguyên tố thì: φ(nr) = nr-1(n-1) : φ(a.b) = φ(a).φ(b) Phân tích n thành thừa số nguyên tố: n = pa qb (p, q… số nguyên tố) φ(n) = φ(pa qb ) = φ(pa) φ(qb)… Ví dụ: φ(2000) = φ(2.103) = φ(2.23.53) = φ(24.53) = φ(24).φ(53) = 23.(2-1) 52.(5-1) = 800 Bảo Mật Thông Tin Chương Lý Thuyết Số (tt) 13 Định Lý Nhỏ Fermat Và Định Lý Euler Định lý nhỏ Fermat Giả sử p số nguyên tố (a,p)=1 Khi đó: ap-1 = mod p Định lý Euler Là trường hợp tổng quát định lý Fermat Với số nguyên dương n (a,n)=1 Khi đó: aφ(n) = mod n Bây ta có vài cách tính nghịch đảo a-1 mod n Lần lượt tìm 1, ,n-1 số a-1 cho: a.a-1 = mod n Sử dụng thuật toán Euclid mở rộng để tìm số nghịch đảo Nếu biết φ(n) từ định lý Euler ta tìm được: Bảo Mật Thông Tin a-1 = aφ(n)-1 mod n Chương Lý Thuyết Số (tt) 14 Tìm Các Số Nguyên Tố Lớn Ta thường cần tìm số nguyên tố lớn Phương pháp cổ điển: sàng Erastosthene (Cách dùng để tìm số nguyên tố khơng lớn lắm) Ta kiểm tra (gần đúng) số nguyên tố định lý nhỏ Fermat: an-1 = mod n với (a,n)=1 Tất số nguyên tố ‘n’ thỏa đẳng thức Một vài hợp số (số số nguyên tố) thỏa đẳng thức Các hợp số gọi GIẢ NGUYÊN TỐ Để đoán số n số ngun tố hay khơng, ta làm test sau: Chọn số lượng lớn (ví dụ: 100) số ‘a‘ cho: (a,n)=1 Kiểm tra: an-1 = mod n ? • Nếu có số a khơng thỏa n khơng số nguyên tố • Nếu thỏa cho tất giá trị a kết luận gần n số nguyên tố (95%) Bảo Mật Thông Tin Chương Lý Thuyết Số (tt) 15 Bài Tập Tính logarit rời rạc sau: Tính ƯSCLN (gcd): (65,91); (102,238); (110,154); (171,285); (185,259) Tính hàm phi Euler φ(n) của: 2x = mod 5; 4x = mod 13; 5x = mod 7; 6x = 10 mod 11; 7x = mod 13; 8x = mod 11 57, 61, 65, 79, 83, 85, 2012, 323 Tính số nghịch đảo sử dụng cách sau: Thử sai; Định lý Euler; TT Euclid mở rộng 11-1 mod 35; 13-1 mod 48; 17-1 mod 199; 21-1 mod 197; Bảo Mật Thông Tin Chương Lý Thuyết Số (tt) 16 Tài Liệu Tham Khảo *1+ Đặng Trường Sơn, BMTT_06_NumberTheory.ppt, ĐH Sư Phạm Kỹ Thuật TP HCM [2] William Stallings, Cryptography and Network Security Principles and Practices, Fourth Edition, Prentice Hall, November 16, 2005 [3] Dương Anh Đức Trần Minh Triết, Mã hóa ứng dụng, Đại học Quốc gia thành phố Hồ Chí Minh, 2005 [4] http://vi.wikipedia.org/wiki/Giải_thuật_Euclid *5+ http://vi.wikipedia.org/wiki/Định_lý_nhỏ_Fermat Bảo Mật Thông Tin Chương Lý Thuyết Số (tt) 17