Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 67 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
67
Dung lượng
783,96 KB
Nội dung
LỜI CẢM ƠN Em xin bày tỏ lòng biết ơn sâu sắc tới PGS.TS.Trịnh Nhật Tiến, người trực tiếp hướng dẫn, tận tình bảo em suốt q trình làm khóa luận Em xin chân thành cảm ơn tất thầy cô giáo khoa Cơng nghệ thơng tin - Trường ĐHDL Hải Phịng, người nhiệt tình giảng dạy truyền đạt kiến thức cần thiết suốt thời gian em học tập trường, để em hồn thành tốt khóa luận Cuối em xin cảm ơn tất bạn góp ý, trao đổi hỗ trợ cho em suốt thời gian vừa qua Em xin chân thành cảm ơn! Hải Phòng, ngày tháng 07 năm 2009 Sinh viên Vũ Thị Ngân MỤC LỤC LỜI CẢM ƠN………………………………………………………………………1 MỤC LỤC………………………………………………………………………… GIỚI THIỆU ĐỀ TÀI…………………………………………………………… Chương 1: MỘT SỐ KHÁI NIỆM CƠ BẢN…………………………………… 1.1 CÁC KHÁI NIỆM TOÁN HỌC…………………………………………….6 1.1.1 Một số khái niệm số học………………………………………… 1.1.1.1 Khái niệm số nguyên tố…………………………………………… 1.1.1.2 Định lý số nguyên tố…………………………………………… 1.1.1.3 Khái niệm số nguyên tố nhau……………………………… 1.1.1.4 Khái niệm đồng dư………………………………………………….7 1.1.2 Một số khái niệm đại số……………………………………………8 1.1.2.1 Khái niệm Nhóm……………………………………………………8 1.1.2.2 Khái niệm Nhóm nhóm (G, *)…………………………….9 1.1.2.3 Khái niệm Nhóm Cyclic………………………………………… 1.1.2.4 Khái niệm Tập thặng dư thu gọn theo modulo………………… 1.1.2.5 Phần tử nghịch đảo……………………………………………… 10 1.1.2.6 Cấp phần tử………………………………………………10 1.1.2.7 Phần tử nguyên thủy………………………………………………11 1.1.3 Khái niệm Độ phức tạp thuật toán……………………………… 12 1.1.3.1 Khái niệm toán……………………………………………… 12 1.1.3.2 Khái niệm Thuật toán…………………………………………… 12 1.1.3.3 Khái niệm Độ phức tạp thuật toán………………………… 13 1.1.3.4 Khái niệm “dẫn được”…………………………………………14 1.1.3.5 Khái niệm “khó tương đương”………………………………… 14 1.1.3.6 Khái niệm lớp toán P, NP…………………………………….14 1.1.3.7 Khái niệm lớp toán NP – Hard……………………………… 15 1.1.3.8 Khái niệm lớp toán NP – Complete………………………… 15 1.1.3.9 Khái niệm hàm phía hàm cửa sập phía………………15 1.2 VẤN ĐỀ MÃ HĨA………………………………………………………….16 1.2.1 Giới thiệu mã hóa…………………………………………………… 16 1.2.1.1 Khái niệm mật mã…………………………………………………16 1.2.1.2.Khái niệm mã hóa (Encryption)………………………………… 17 1.2.1.3 Khái niệm hệ mã hóa…………………………………………… 17 1.2.1.4 Những tính hệ mã hóa………………………………….18 1.2.2 Các phương pháp mã hóa……………………………………………….19 1.2.2.1 Hệ mã hóa khóa đối xứng……………………………………… 19 1.2.2.2 Hệ mã hóa khóa phi đối xứng (hệ mã hóa khóa cơng khai)…… 21 1.3 Một số toán mật mã…………………………………………… 23 1.3.1 Bài toán kiểm tra số nguyên tố lớn………………………………………23 1.3.2 Bài tốn phân tích thành thừa số ngun tố…………………………….27 1.3.3 Bài tốn tính logarit rời rạc theo modulo……………………………… 30 1.4 VẤN ĐỀ AN TỒN CỦA HỆ MÃ HĨA………………………………….32 1.4.1 Các phương pháp thám mã…………………………………………… 32 1.4.1.1.Thám mã biết mã………………………………………… 33 1.4.1.2 Thám mã biết rõ………………………………………………34 1.4.1.3 Thám mã với rõ chọn………………………………… 35 1.4.1.4 Thám mã với mã chọn ……………………………… 37 1.4.2 Tính an toàn hệ mật mã………………………………………42 1.4.2.1 An toàn chiều (One - Wayness)…………………………………… 42 1.4.2.2 An toàn ngữ nghĩa (Semantic Security)………………………… 43 1.4.2.3 Tính khơng phân biệt (Indistinguishability : IND)……… 45 1.4.2.4 An toàn ngữ nghĩa tương đương với IND……………………… 47 1.4.2.5 Khái niệm an toàn mạnh IND-CCA……………………… 48 Chương 2: TẤN CÔNG BẢN MÃ…………………………………………50 2.1 TẤN CƠNG HỆ MÃ HĨA RSA………………………………………… 50 2.1.1 Hệ mã hóa RSA………………………………………………………… 50 2.1.2 Các loại cơng vào mã hóa RSA 51 2.1.2.1 Tấn cơng loại 1: Tìm cách xác định khóa bí mật 51 2.1.2.2 Tấn công dạng 2: Tìm cách xác định rõ 53 2.2 TẤN CƠNG HỆ MÃ HĨA ELGAMAL 55 2.2.1 Hệ mã hóa ELGAMAL 55 2.2.2 Các dạng cơng vào mã hóa ELGAMAL 56 2.2.2.1 Tấn công dạng 1: Tìm cách xác định khóa bí mật .56 2.2.2.2 Tấn cơng dạng 2: Tìm cách xác định rõ 56 2.3 TẤN CÔNG HỆ MÃ HÓA: DỊCH CHUYỂN 57 2.3.1 Mã dịch chuyển 57 2.3.2 Dạng cơng vào mã dịch chuyển: Tìm cách xác định khóa k 57 2.4 TẤN CÔNG MÃ THAY THẾ .58 2.4.1 Mã thay 58 2.4.2 Dạng công vào mã thay thế: Tìm cách xác định rõ 58 2.5 TẤN CƠNG HỆ MÃ HĨA: AFFINE 62 2.5.1 Mã Affine 62 2.5.2 Dạng cơng vào mã Affine: Tìm cách xác định khóa 62 KẾT LUẬN 65 BẢNG CHỮ CÁI VIẾT TẮT .66 TÀI LIỆU THAM KHẢO .67 GIỚI THIỆU ĐỀ TÀI Khoa học mật mã từ đời tới trải qua nhiều giai đoạn phát triển, từ môn khoa học thực nghiệm nhanh chóng trở thành mơn khoa học logic đỉnh cao ngày hội tụ kiến thức tinh túy loài người Sự phát triển khoa học mật mã góp phần thúc đẩy xã hội loài người ngày tiến lên Đặc biệt thời đại ngày tác động cách mạng tin học hóa tồn cầu, hoạt động kinh tế - xã hội mơ hình kinh tế mở biến động không ngừng, đặc biệt với dự án xây dựng phủ điện tử khoa học mật mã chiếm vị trí ngày quan trọng, có đóng góp khơng nhỏ việc bảo đảm an ninh cho quốc gia, an tồn cho thơng tin kinh tế - xã hội Như biết, năm 1949 C.Shannon đưa mơ hình hệ mật mã khóa đối xứng an tồn vô điều kiện dựa sở lý thuyết thông tin Trong thời đại ngày nhiều toán mật mã thực tế đặt “ Chỉ cần giữ bí mật thời gian cho thơng tin mà thơi” Với mục đích giải vấn đề trên, vào năm 1976 W.Diffie_M.E.Hellmam đề xuất mơ hình hệ mật mã khóa phi đối xứng hay cịn gọi hệ mật mã khóa cơng khai, an tồn mặt tính tốn dựa sở lý thuyết độ phức tạp tính tốn Song song với việc ln tìm giải pháp mã hóa tốt để đảm bảo an tồn cho thơng tin truyền đi, kẻ thám mã khơng ngừng nỗ lực tìm sơ hở, điểm yếu hệ mã hóa để phá mã chúng “bắt” mã Với lý em chọn đề tài: “ Nghiên cứu số loại công mã”, để biết điểm yếu sơ hở số hệ mã hóa sử dụng, mà theo kẻ thám mã lợi dụng để “tấn cơng” vào hệ mã hóa, biết thơng tin bí mật Từ giúp ta tìm cách phịng tránh, đưa giải pháp tối ưu nhất, để đảm bảo an toàn cao sử dụng hệ mã hóa Chương 1: CÁC KHÁI NIỆM CƠ BẢN 1.1 CÁC KHÁI NIỆM TOÁN HỌC 1.1.1 Một số khái niệm số học 1.1.1.1 Khái niệm số nguyên tố Khái niệm Số nguyên tố số tự nhiên lớn có hai ước Ví dụ: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37 1.1.1.2 Định lý số nguyên tố 1/ Định lý: số nguyên dương > Một số nguyên dương n > biểu diễn dạng: n Pn Pn Pn 1 2 k k , đó: k, ni (i=1, 2,…, k) số tự nhiên, Pi số nguyên tố, đôi khác 2./ Định lý: Mersenne Cho p = 2k – 1, p số nguyên tố, k phải số nguyên tố Chứng minh Bằng phản chứng, giả sử k không số nguyên tố Khi k = a.b với < a, b < k Như p = 2k – = 2ab – = (2a)b – = (2a - 1).E (Trong E biểu thức nguyên – áp dụng công thức nhị thức Niu-tơn) Điều mâu thuẫn giả thiết p số nguyên tố Vậy giả sử sai, hay k số nguyên tố 3/ Hàm Euler Cho số nguyên dương n, số lượng số nguyên dương bé n nguyên tố với n ký hiệu (n) gọi hàm Euler Nhận xét: Nếu p số nguyên tố, (p) = p – Ví dụ: Tập số nguyên không âm nhỏ Z7 = {0, 1, 2, 3, 4, 5, 6} Do số nguyên tố, nên tập số nguyên dương nhỏ nguyên tố với Z7* = {1, 2, 3, 4, 5, 6} Khi /Z/ = (p) = p - = - = Định lý: Nếu n tích hai số nguyên tố n = p.q, (n) = (p) (q) = (p-1)(q-1) 1.1.1.3 khái niệm số nguyên tố 1/ Khái niệm Hai số nguyên a b gọi nguyên tố gcd(a, b) = 2/ Ví dụ: gcd(1, 3) = 1, gcd(2, 7) = 1, gcd(3, 10) = 1, gcd(5, 13) = 1… 1.1.1.4 Khái niệm đồng dư 1/ Khái niệm Cho n số nguyên dương Nếu a b hai số nguyên, a gọi đồng dư với b theo modulo n, viết a ≡ b (mod n) n│(a – b), n gọi modulo đồng dư 2/ Ví dụ: 24 ≡ (mod 5), 17 ≡ (mod 3) 3/ Tính chất: (i) a ≡ b (mod n), a b trả số dư đem chia chúng cho n.m I (a-b) (ii) a ≡ a (mod n) (tính phản xạ) (iii) Nếu a ≡ b (mod n) b ≡ a (mod n) (iv) Nếu a ≡ b (mod n) b ≡ c (mod n) a ≡ c (mod n) (v) Nếu a ≡ a1 (mod n) b ≡ b1 (mod n) a + b ≡ (a1 + b1) (mod n) a.b ≡ a1.b1 (mod n) 1.1.2 Một số khái niệm đại số 1.1.2.1 Khái niệm Nhóm 1/ Khái niệm Nhóm bội (G, *), G , * phép tốn hai ngơi G thỏa mãn ba tính chất sau: + Phép tốn có tính kết hợp: (x*y)*z = x*(y*z) với x, y, z + Có phần tử trung lập e + Với x với x G: x*e = e*x = x G, có phần tử nghịch đảo x’ G G G: x*x’ = x’*x = e Cấp nhóm G hiểu số phần tử nhóm, ký hiệu |G| Cấp nhóm G có vơ hạn phần tử Nhóm Abel nhóm (G, *), phép tốn hai ngơi * có tính giao hốn Tính chất: Nếu a*b = a*c, b = c Nếu a*c = b*c, a = b 2/ Ví dụ: * Tập hợp số nguyên Z với phép cộng (+) thơng thường nhóm giao hốn, có phần tử đơn vị số Gọi nhóm cộng số nguyên * Tập Q * số hữu tỷ khác (hay tập R * số thực khác 0), với phép nhân (*) thơng thường nhóm giao hốn Gọi nhóm nhân số hữu tỷ (số thực) * Tập vectơ không gian với phép tốn cộng vectơ nhóm giao hốn 1.1.2.2 Khái niệm Nhóm nhóm (G, *) Nhóm G tập S G, S , thỏa mãn tính chất sau: + Phần tử trung lập e G nằm S + S khép kín phép tính (*) G, tức x*y + S khép kín phép lấy nghịch đảo G, tức x S với x, y S với x S S 1.1.2.3 Khái niệm Nhóm Cyclic 1/ Khái niệm Nhóm (G, *) gọi Nhóm Cyclic sinh phần tử Tức có phần tử g g n =g*g* *g = a (Chú ý: G mà với a G, tồn n N để g*g* *g g*g với n lần) Nói cách khác: G gọi Nhóm Cyclic tồn g G cho phần tử G lũy thừa nguyên g 2/ Ví dụ: Nhóm (Z , +) gồm số ngun dương Cyclic với phần tử sinh g = 1.1.2.4 Khái niệm Tập thặng dư thu gọn theo modulo 1/ Khái niệm Kí hiệu Z n = {0, 1, 2, , n-1} tập số nguyên không âm < n Z n phép cộng (+) lập thành nhóm Cyclic có phần tử sinh 1, pt trung lập e = (Z n , +) gọi nhóm cộng, nhóm hữu hạn có cấp n Kí hiệu Z *n = {x Zn , x nguyên tố với n} Tức x phải Z *n gọi Tập thặng dư thu gọn theo mod n, có số phần tử (n) Z *n với phép nhân mod n lập thành nhóm (nhóm nhân), pt trung lạp e = Tổng quát (Z *n , phép nhân mod n) nhóm Cyclic Nhóm nhân Z *n Cyclic n có dạng: 2, 4, p k hay 2p k với p nguyên tố lẻ 2/ Ví dụ: Cho n = 21, Z *n = {1, 2, 4, 5, 8, 10, 11, 13, 16, 17, 19, 20} 1.1.2.5 Phần tử nghịch đảo 1/ Khái niệm Cho a Zn, tồn b Zn cho a.b ≡ (mod n), ta nói b phần tử nghịch đảo a Zn ký hiệu a-1 Một phần tử có phần tử nghịch đảo, gọi khả nghịch 2/ Ví dụ: Xét tập Z7 Phần tử khả nghịch Phần tử nghịch đảo 3/ Định lý: UCLN (a, n) = Phần tử a Zn có phần tử nghịch đảo 4/ Hệ quả: Mọi phần tử Zn* có phần tử nghịch đảo 1.1.2.6 Cấp phần tử 1/ Định nghĩa Cho a Zn*, cấp a, ký hiệu ord(a) số nguyên dương t nhỏ cho at ≡ (mod n) Zn* 2/ Ví dụ: Z21* = {1, 2, 4, 5, 8, 10, 11, 13, 16, 17, 19, 20} Z21* 10 11 13 16 17 19 20 Cấp a 6 6 6 a 10 2.1.2.2 Tấn cơng dạng 2: Tìm cách xác định rõ 1/ Dùng modul n chung Giả sử có hai người tham gia A B sử dụng modul chung n khóa cơng khai mình, chẳng hạn A chọn khóa cơng khai (n, e) giữ khóa bí mật d, B chọn khóa cơng khai (n, a) giữ khóa bí mật b Một người tham gia thứ ba C gửi văn cần bảo mật x đến A B dùng khóa cơng khai nói để gửi đến A mật mã y = xe mod n gửi đến B mật mã z = xa mod n Ta chứng tỏ người thám mã O dựa vào thông tin n, e, a, y, z đường công khai mà phát rõ x sau: (i) Tính c = e-1 mod a, (ii) Sau tính h = (ce - 1)/ a, (iii) Và ta x = yc (zh)-1 mod n Thực theo định nghĩa trên, ce – chia hết cho a, ta có: yc (zh)-1 mod n = xce.(xa(ce-1)/a)-1 mod n = xce.(xce-1)-1 mod n = x → rõ cần tìm Như vậy, trong trường hợp việc truyền tin bảo mật khơng cịn an tồn → Giải pháp phịng tránh: Dùng modul n khác cho người tham gia 2/ Dùng số mũ lập mã bé Để cho việc tính tốn hàm lập mã hiệu quả, ta dễ có xu hướng chọn số mũ b hàm lập mã số nguyên bé, chẳng hạn b = Tuy nhiên, mạng truyền tin bảo mật dùng hệ mã RSA, có nhiều người chọn số mũ lập mã b bé giống có nguy bị cơng thám mã sau: Giả sử có ba người tham gia chọn ba khóa cơng khai (n1, b), (n2, b), (n3, b) với số mũ b = Một người tham gia A muốn gửi thông báo x cho ba người đó, để bảo mật, gửi mã yi = x3 mod ni, cho người thứ i Ba modul ni khác nhau, có phần cặp nguyên tố với Một người thám mã dùng định lý số dư Trung Quốc để tìm số m (0 ≤ m ≤ n1n2n3) thỏa mãn: 53 y mod n y mod n y mod n m m m 2 3 x ≤ ni, nên x3 ≤ n1n2n3, có m = x3 Vậy thám mã đưa tốn tìm bậc ba theo nghĩa đồng dư modni tốn tìm bậc ba theo nghĩa số học thơng thường: tìm bậc ba m thám mã rõ x → Giải pháp phòng tránh: Chọn số lập mã giải mã: b a số nguyên lớn, có kích cỡ lớn gần thân số n 3/ Lợi dụng tính nhân hàm lập mã Ta ý hàm lập mã f(x) = xemodn có tính nhân (multiplicative property), nghĩa f(x.y) = f(x).f(y) Dựa vào tính chất đó, ta thấy y mật mã rõ x , y e y.u mod n mật mã rõ xu Do đó, lấy mật mã y, để phát rõ x người thám mã chọn ngẫu nhiên số u tạo mã y , người thám mã có khả thám mã theo kiểu (có mã chọn), tức có khả với y chọn tìm rõ tương ứng x = xu, rõ gốc cần phát x = x u-1 modn Tất nhiên, khả người thám mã có lực giải tốn thám mã theo kiểu có mã chọn hiếm, trường hợp mà vấn đề bảo mật dễ bị công, ta khơng thể khơng tính đến để tìm cách tránh → Giải pháp phịng tránh: Khơng để thám mã có khả thám mã theo kiểu có mã chọn 54 2.2 TẤN CƠNG HỆ MÃ HĨA ELGAMAL 2.2.1 Hệ mã hóa ELGAMAL 1/ Sơ đồ * Thuật tốn sinh khóa: + Sinh ngẫu nhiên số nguyên tố lớn p α phần tử sinh Z*p + Chọn ngẫu nhiên số nguyên a, ≤ a ≤ p-2, tính h = αa mod p + Khóa cơng khai (p, α, αa) Khóa bí mật (a) * Thuật tốn mã hóa: (i) Lập mã: + Lấy khóa cơng khai (p, α, αa) theo thuật tốn + Chọn rõ x, khoảng [0, p-1] + Chọn ngẫu nhiên số nguyên k, ≤ k ≤ p-2 + Tính γ = αk mod p δ = x.(h)k mod p + Nhận mã (γ, δ) (ii) Giải mã: + Sử dụng khóa bí mật (a) tính γp-1-a mod p + Lấy rõ: x = δ.(γa)-1 mod p Vì ( (γ-a).δ ≡ (α-ak).x.(αak) ≡ x (mod p)) 2/ Ví dụ: Chọn số nguyên tố p = 2357 phần tử sinh α = tâp Z *2357 Chọn khóa bí mật a = 1751 tính αa mod p = 2765mod 2579 = 949 Khóa cơng khai (p = 2579, α = 2, αa = 949) (i) Lập mã: Mã hóa rõ x = 1299, chọn số nguyên k = 853 γ = 2853 mod 2579 = 453 δ = 1299 * 949853 mod 2579 = 2396 Bản mã là: (453, 2396) (ii) Giải mã: x = (453-765) * 2396 mod 2579 = 1299 55 2.2.2 Các dạng cơng vào hệ mã hóa ELGAMAL 2.2.2.1 Tấn cơng dạng 1: Tìm cách xác định khóa bí mật 1/ Trường hợp 1: Sử dụng modul p nhỏ Khi sử dụng số nguyên tố p nhỏ, tập Z*p nhỏ, việc tìm phần tử sinh α Z*p khơng khó khăn Khi biết α biết giá trị α a từ khóa cơng khai thám mã tính khóa bí mật a → Giải pháp phòng tránh: Chọn modul p số nguyên tố cho p – có ước số nguyên tố lớn Điều thực số nguyên tố p chọn số nguyên tố Sophie Germain (tức có dạng 2q+1, với q số nguyên tố lớn) 2/ Trường hợp 2: Bị lộ số k dùng Do cẩu thả việc sử dụng số ngẫu nhiên k, đặc biệt để lộ số k dùng Thì khóa bí mật a tính theo cơng thức: a (x k y)y 1 mod( p 1) Như vậy, kẻ thám mã có khả cơng theo kiểu “biết rõ”, phát khóa bí mật a biết k → Giải pháp phòng tránh: Cẩn thận việc sử dụng số ngẫu nhiên k, không để lộ số k dùng 2.2.2.2 Tấn cơng dạng 2: Tìm cách xác định rõ Dùng số k cho nhiều lần lập mã: Giả sử dùng số ngẫu nhiên k cho hai lần lập mã, lần cho x1, lần cho x2, mã tương ứng (y1, y2) (z1, z2) Vì dùng số k nên y1 = z1 Và theo cơng thức lập mã ta có: z2/y2 = x2/x1, tức x2 = x1.z2/y2 Như vậy, người thám mã, lần biết rõ dễ dàng phát rõ lần sau → Giải pháp phòng tránh: Mỗi lần lập mã sử dụng số k khác 56 2.3 TẤN CƠNG HỆ MÃ HĨA: DỊCH CHUYỂN 2.3.1 Mã dịch chuyển 1./ Sơ đồ Đặt P = C = K = Z26 Bản mã y rõ x Z26 Với khóa k K, ta định nghĩa: Hàm mã hóa: y = ek(x) = (x + k) mod 26 Hàm giải mã: x = dk(y) = (y – k) mod 26 2/ Ví dụ: * Bản rõ chữ: TOI NAY THA VIRUS * Chọn khóa: k = * Bản rõ số: 19 14 26 13 24 26 19 26 21 17 20 18 * Với phép mã hóa y = ek(x) = (x + k) mod 26 = (x + 3) mod 26, ta nhận được: * Bản mã số: 22 17 11 16 * Bản mã chữ: W R L D QDB D 22 10 3 24 11 20 23 21 W K D D Y LU XV Với phép giải mã x = dk(y) = (y - k) mod 26 = (y - 3) mod 26, ta nhận lại rõ số, sau rõ chữ 2.3.2 Dạng cơng vào mã dịch chuyển: Tìm cách xác định khóa k Trong tiếng Anh khóa K = Z26 Do có 26 khóa nên việc thám mã thực phá mã theo kiểu “biết mã” duyệt khóa nhận rõ có nghĩa Ví dụ: Khi thám mã có tay mã là: “qnwcxrcqdkjh” Thám mã thực duyệt từ k =1 → k = 26 để tìm rõ Với k = rõ: “pmvbwqbpcjig” khơng có nghĩa Thám mã tiếp tục thử với k = 2, 3, Khi thử đến k = rõ: “hentoithubay” có nghĩa → thám mã thành cơng → Giải pháp phịng tránh: Mở rộng vùng khơng gian khóa lớn Ví dụ bảng chữ tiếng Việt có (gồm 94 ký tự), việc thử tất khóa lâu bảng tiếng Anh 57 2.4 TẤN CÔNG MÃ THAY THẾ 2.4.1 Mã thay 1/ Sơ đồ Đặt P = C = Z26 Bản mã y rõ x Z26 Tập khóa K tập hốn vị Z26 Với khóa k = Л K, tức hoán vị Z26, ta định nghĩa : Mã hóa : y = eЛ(x) = Л(x) Giải mã : x = dЛ(x) = Л-1(y) 2/ Ví dụ: * Bản rõ chữ : TOI NAY THA VIRUS * Chọn khóa k = Л hoán vị: A B C D E F G H I J K L M N O P Q R S T U V X Y Y X V U T S R Q P O N M L K J I H G F E D C B A * Mã hóa theo cơng thức: * Bản mã chữ: Z y = eЛ(x) = Л(x) EJP Z KYV Z EQY Z CPGDF * Giải mã theo công thức : x = dЛ(x) = Л-1(y) ta nhận lại rõ chữ 2.4.2 Dạng công vào mã thay thế: Tìm cách xác định rõ Do đặc điểm mã thay thay kí tự kí tự khác Thám mã sử dụng phương pháp thống kê ngôn ngữ để xác định rõ từ mã Ví dụ với mã tiếng Anh: Đầu tiên thám mã xác định tần suất xuất kí tự mã Sau dựa vào tần suất xuất kí tự, đơi ba mã kết hợp với tần suất xuất kí tự tiếng Anh, đôi ba thông dụng để đưa giả thiết thay Từ xác định rõ Tần suất xuất chữ tiếng Anh: E: có xác suất khoảng 0,127 T, A, O, I, N, S, H, R: kí tự có xác suất khoảng 0,06 – 0,09 D, L: kí tự có xác suất khoảng 0,04 58 C, U, M, W, F, G, Y, P, B: kí tự có xác suất khoảng 0,015 – 0,023 V, K, J, X, Q, Z: kí tự có xác suất nhỏ 0,01 Việc xét đôi ba hữu ích 30 đơi thơng dụng theo thứ tự giảm dần là: TH, HE, IN, ER, AN, RE, ED, ON, ES, ST, EN, AT, TO, NT, HA, ND, OU, EA, NG, AS, OR, TI, IS, ET, IT, AR, TE, SE, HI, OF 12 ba thông dụng theo thứ tự giảm dần là: THE, ING, AND, HER, ERE, ENT, THA, NTH, WAS, ETH, FOR, DTH Ví dụ: Thám mã có mã nhận từ mã thay thế: YIFQFMZRWQFYVECFMDZPCVMRZWNMDZVEJBTXCDDUMJ NDIFEFMDZCDMQZKCEYFCJMYRNCWJCSZREXCHZUNMXZ NZUCDRJXYYSRMTMEYIFZWDYVZVYFZUMRZCRWNZDZJJ XZWGCHSMRNMDHNCMFQCHZJMXJZWIEJYUCFWDJNZDIR Bảng tần số xuất 26 chữ mã Kí tự Tần số Kí tự Tần số A N B O C 15 P D 13 Q E R 10 F 11 S G T H U I V J 11 W K X L Y 10 M 16 Z 20 59 Do Z xuất nhiều mã nên thám mã phóng đốn dk(Z = e) C, D, F, M, R, Y kí tự xuất 10 lần Thám mã đốn chúng mã kí tự t, a, c, o, i, n, s, h, r dựa vào tần suất xuất chữ khơng đủ để có đốn thích hợp Lúc thám mã xem xét đến đôi, đặc biệt đơi có dạng –z z- Các đôi thường gặp dạng DZ WZ (4 lần bộ), NZ ZU (mỗi lần) RZ, HZ, XZ, FZ, ZR, ZV, ZC, ZD, ZI (mỗi lần) Vì ZW xuất lần cịn WZ khơng xuất lần nào, nói chung W xuất so với nhiều kí tự khác nên đốn dk(W) = d Vì DZ xuất lần ZD xuất lần nên thám mã đoán dk(D) {r, s, t} chưa xác định xác kí tự Nếu tiến hành theo giả thiết dk(Z) = e, dk(W) = d ta phải nhìn trở lại mã thấy hai ba ZRW RZW xuất gần đầu mã RW xuất lại sau Vì nd đơi thường gặp, nên thử dk(R) = n coi đoán khả thi YIFQFMZRWQFYVECFMDZPCVMRZWNMDZVEJBTXCDDUMJ -END -E NED E NDIFEFMDZCDMQZKCEYFCJMYRNCWJCSZREXCHZUNMXZ -E -E N D -EN -E -E NZUCDRJXYYSRMTMEYIFZWDYVZVYFZUMRZCRWNZDZJJ E N -N ED -E E -NE ND -E E-XZWGCHSMRNMDHNCMFQCHZJMXJZWIEJYUCFWDJNZDIR ED -N E -ED -D E -N Tiếp theo thử dk(N) = h NZ đơi thường gặp cịn ZN khơng xuất Nếu điều giả sử gợi ý dk(C) = a ne ndhe Bây xét tới M kí tự thường gặp sau Z Từ đoạn mã RNM ta giải mã thành nh Để ý sau h nguyên âm Ta sử dụng a e nên đốn d k(M) = i o Vì đôi thường gặp so với ao nên thử dk(M) = i thu được: 60 YIFQFMZRWQFYVECFMDZPCVMRZWNMDZVEJBTXCDDUMJ IEND -A I -E -I NED HI E -A NDIFEFMDZCDMQZKCEYFCJMYRNCWJCSZREXCHZUNMXZ H -I -EA -I -E A - A I -NHAD A-EN A E HI E NZUCDRJXYYSRMTMEYIFZWDYVZVYFZUMRZCRWNZDZJJ HE A N -NI I ED -E E INEANDHE E-XZWGCHSMRNMDHNCMFQCHZJMXJZWIEJYUCFWDJNZDIR ED -A -INHI HAI A E I ED -A D -HE -N Tiếp theo thử xác định chữ mã thành o Vì o chữ thường gặp nên giả định chữ tương ứng mã kí tự D, F, J, Y Trong Y xem thích hợp Vì giả thiết dk(Y) = o Ba kí tự thường gặp cịn lại mã: D, F, J ta phán đoán giải mã thành: r, s, t theo thứ tự Hai lần xuất ba NMD cho kẻ thám mã phán đoán dk(D) = s ứng với ba his rõ Đoạn mã HNCMF mã chair, điều cho dk(F) = r dk(H) = c có dk(J) = t Từ xác định rõ hồn chỉnh sau: Our friend from Paris examined his empty glass with surprise as if evaporation had taen place while he wasn’t looking I poured some more wine and he settle back in his chair face tilted up towards the sun → Giải pháp phịng tránh: Mở rộng vùng khơng gian khóa lớn Ví dụ bảng chữ tiếng Việt có (gồm 94 ký tự) Số kí tự nhiều tần suất xuất chữ cái, đôi ba không khác biệt nhiều lắm, để phát kí tự “nổi bật” khó khăn 61 2.5 TẤN CƠNG HỆ MÃ HÓA: AFFINE 2.5.1 Mã Affine 1/ Sơ đồ Đặt P = C = Z26 Bản mã y rõ x Tập khóa K = {(a, b), với a, b Với khóa k = (a, b) Z26 Z26, UCLN(a, 26) = 1} K, ta định nghĩa: Phép mã hóa: y = ek(x) = (a.x + b) mod 26 Phép giải mã: x = dk(y) = a-1(y - b) mod 26 2/ Ví dụ: * Bản rõ chữ : CHIEUNAYOVUONHOA * Chọn khóa : k = (a, b) = (3, 6) * Bản rõ số: x = 20 13 24 14 21 20 14 13 14 Mã hóa theo cơng thức: y = ek(x) = (a.x + b) mod 26 = (3x +6) mod 26 * Bản mã số: y = 12 18 14 19 22 17 14 22 19 22 * Bản mã chữ: MBESOTGAWROWTBWG Giải mã theo công thức: x = dk(y) = a-1(y - b) mod 26 = 3-1(y - 6) mod 26 = * (y - 6) mod 26 2.5.2 Dạng cơng vào mã Affine: Tìm cách xác định khóa Khóa mã Affine có dạng k = (a, b) với a, b Z26 gcd(a, 26) = Ký tự mã y kí tự rõ x tương ứng có quan hệ: y = a.x + b mod 26 Thám mã sử dụng phương pháp sắc xuất thống kê: dựa vào tần suất xuất kí tự mã tần suất xuất kí tự tiếng Anh đưa giả thiết Từ biết cặp (x, y) khác có hệ phương trình tuyến tính hai ẩn, giải hệ tìm giá trị a, b tức tìm khóa k Kết hợp với có 12 số thuộc Z26 nguyên tố với 26 nên số khóa có 12 x 26 = 312 Thám mã sử dụng máy tính thử trường hợp để tìm khóa thích hợp 62 Ví dụ: Thám mã có mật mã: FMXVEDKAPHFERBNDKRXRSREFMORUDSDKDVSHVUFEDKAPRKDLYEVLRHHRH Bảng tần số xuất 26 chữ mã Kí tự Tần số Kí tự Tần số A N B O C P D Q E R F S G T H U I V J W K X L Y M Z Bản mã có 57 kí tự Kí tự có tần suất cao mã R (8 lần), D (7 lần), E, H, K ( kí tự xuất lần) F, V (mỗi kí tự xuất lần ) + Đầu tiên thám mã giả thiết R kí tự mã chữ e D kí tự mã chữ t e t tương ứng hai chữ thông dụng Biểu thị số thám mã có: ek(4) = 17 ek(19) = Từ có hệ phương trình tuyến tính hai ẩn: 4a b 17 19a b Giải a = , b = 19 Vì UCLN (a, 26) = ≠ nên (a, b) khơng thể khóa được, giả thiết không 63 + Thám mã lại giả sử: R kí tự mã e E kí tự mã t Làm tương tự thu a = 13 Vì UCLN(13, 26) = 13 + nên giả thiết không hợp lệ Thám mã lại giả sử: R kí tự mã e H kí tự mã t Thực tương tự nhận a = → không thỏa mãn điều kiện UCLN(a, 26) =1 + Tiếp theo thám mã lại giả thiết: R kí tự mã e K kí tự mã t Theo giả thiết thám mã có hệ phương trình: 4a b 17 19a b 10 giải a = 3, b = Vì UCLN(a, 26) = nên k = (3,5) khóa cần tìm Thám mã giải mã mã trên: dk(y) = a-1(y - b) mod 26 Thay số : 9(5 - 5) mod 26 = → kí tự rõ nhận a Thực tương tự thám mã nhận rõ : algorithmsarequitegeneraldefinitionsofarithmeticprocesses Thám mã kết luận khóa K = (3, 5) dịng rõ cần tìm → Giải pháp phịng tránh: Mở rộng vùng khơng gian khóa lớn Ví dụ bảng chữ tiếng Việt có (gồm 94 ký tự) Số kí tự nhiều tần suất xuất chữ không khác biệt nhiều lắm, để phát kí tự “nổi bật” khó khăn Và số khóa có lớn 312, việc thử tất trường hợp lâu 64 KẾT LUẬN Tìm hiểu, nghiên cứu qua tài liệu để trình bày có hệ thống lại vấn đề sau: + Các khái niệm mã hóa: mã hóa, tính hệ mã hóa, phương pháp mã hóa + Một số toán mật mã: kiểm tra số nguyên tố lớn, phân tích thành thừa số nguyên tố, tính logarit rời rạc theo modulo + Các phương pháp công chủ yếu với hệ mã bao gồm: KPA, COA, CPA, CCA1, CCA2 + Các khái niệm an tồn hệ mã hóa (an tồn chiều, an tồn ngữ nghĩa, tính khơng phân biệt được, an toàn ngữ nghĩa tương đương với IND, INDCCA) + Một số loại công vào hệ mã hóa (RSA, ELGAMAL, dịch chuyển, thay thế, AFFINE) Từ giúp ta có giải pháp phịng tránh sử dụng hệ mã an toàn 65 BẢNG CHỮ CÁI VIẾT TẮT STT Chữ viết tắt Ý nghĩa COA Thám mã biết mã (Cyphertext only attack) KPA Thám mã biết rõ (Known plaintext attack) CPA Thám mã với mã chọn (Chosen plaintext attack) CCA Thám mã với mã chọn (Chosen ciphertext attack) CCA1 Thám mã với mã chọn trước (Non-adaptive chosen ciphertext attack) CCA2 Thám mã với mã chọn trước thích hợp (adaptive chosen ciphertext attack) IND Pr Tính khơng phân biệt (Indistinguishability) Xác suất 66 TÀI LIỆU THAM KHẢO [1] Phan Đình Diệu – Lý thuyết mật mã An tồn thơng tin [2] Kaoru Kurosiawa, Yvo Desmedt A New Paradigm of Hybrid Encryption Scheme.2004 [3] Security Fundamentals for E-Commerce, Vesna Hasler, Pedrick Moore [4] The Internatiional Handbook of computer Security, Jae K.Shim, Ph.D Anique A.Qureshi, Joel G.Giegel, Glenlake Publishing Company, Ltd [5] Key Encryption Schemes Secure against Adaptive Chosen Ciphertext Attack [6] Trịnh Nhật Tiến – Trường dh công nghệ – Giáo trình An tồn liệu (2008) 67 ... yếu hệ mã hóa để phá mã chúng “bắt” mã Với lý em chọn đề tài: “ Nghiên cứu số loại công mã? ??, để biết điểm yếu sơ hở số hệ mã hóa sử dụng, mà theo kẻ thám mã lợi dụng để ? ?tấn cơng” vào hệ mã hóa,... thám mã biết mật mã Y 2/ Biết rõ: Khi thám mã biết mật mã Y rõ tương ứng X 3/ Bản rõ lựa chọn: Thám mã chọn rõ X, biết mật mã tương ứng Y Điều xảy thám mã chiếm (tạm thời) máy lập mã 4/ Bản mã. .. 1.4.1.4 Thám mã với mã chọn 1/ Kiểu công CCA Thám mã với mã chọn (Chosen ciphertext attack) (CCA) mơ hình cơng để giải mã, thám mã chọn mã giải mã mã với khóa chưa biết Điều đạt thám mã giành quyền