Lý thuyết số trong mã hóa thông tin. tìm hiểu ứng dụng lý thuyết số trong mã hóa thông tin. Luận văn thạc sĩ đáng xem nhất Mã hóa thông tin với lý thuyết số, ứng dụng thực thực tế của lý thuyết số trong mã hóa thông tin. Mã hóa thông tin với lý thuyết số, ứng dụng thực thực tế của lý thuyết số trong mã hóa thông tin
BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG PHẠM THANH LÊ LÝ THUYẾT SỐ TRONG MÃ HÓA THÔNG TIN LUẬN VĂN THẠC SĨ KHOA HỌC Đà Nẵng - Năm 2013 BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG PHẠM THANH LÊ LÝ THUYẾT SỐ TRONG MÃ HÓA THÔNG TIN Chuyên ngành: PHƯƠNG PHÁP TOÁN SƠ CẤP Mã số : 60.46.40 LUẬN VĂN THẠC SĨ KHOA HỌC Người hướng dẫn khoa học: PGS.TS NGUYỄN GIA ĐỊNH ĐÀ NẴNG - NĂM 2013 LỜI CAM ĐOAN Tôi xin cam đoan Những nội dung trình bày luận văn thực hướng dẫn thầy giáo PGS.TS Nguyễn Gia Định Mọi tài liệu dùng luận văn trích dẫn rõ ràng trung thực tên tác giả, tên công trình, thời gian địa điểm công bố Nếu có chép không hợp lệ, vi phạm qui chế đào tạo xin chịu hoàn toàn trách nhiệm Tác giả Phạm Thanh Lê MỤC LỤC MỞ ĐẦU 1 Lý chọn đề tài Mục tiêu nghiên cứu 3 Đối tượng phạm vi nghiên cứu Phương pháp nghiên cứu Ý nghĩa khoa học thực tiễn đề tài Cấu trúc luận văn CHƯƠNG KIẾN THỨC CƠ SỞ 1.1 PHÉP TÍNH ĐỒNG DƯ VÀ CÁC VẤN ĐỀ LIÊN QUAN 1.1.1 Số nguyên tố định lý số học 1.1.2 Thuật toán Euclid mở rộng 1.1.3 Phi hàm Euler 1.1.4 Phép tính đồng dư phương trình đồng dư 1.1.5 Định lí Fermat mở rộng 10 1.1.6 Tính toán với đồng dư lũy thừa bậc lớn 11 1.1.7 Định lý Phần dư Trung Hoa 12 1.1.8 Thặng dư bình phương kí hiệu Legendre 13 1.2 LIÊN PHÂN SỐ 14 1.2.1 Khái niệm liên phân số 14 1.2.2 Giản phân 15 1.3 TRƯỜNG HỮU HẠN 19 1.3.1 Trường Fp .19 1.3.2 Cách xây dựng trường Fq từ trường Fp 19 1.4 ĐƯỜNG CONG ELLIPTIC 21 1.4.1 Khái niệm đường cong elliptic 21 1.4.2 Đường cong elliptic trường số thực 23 1.4.3 Đường cong elliptic trường hữu hạn 25 CHƯƠNG CÁC KHÁI NIỆM CƠ BẢN CỦA MÃ HÓA VÀ CÁC HỆ MÃ ĐỐI XỨNG 27 2.1 MỘT SỐ THUẬT NGỮ VÀ KHÁI NIỆM .27 2.1.1 Một số thuật ngữ 27 2.1.2 Hệ mã đối xứng hệ mã phi đối xứng .28 2.2 LịCH SỬ MẬT MÃ HỌC .29 2.3 NGUYÊN TẮC CHUNG VÀ MỘT SỐ HỆ MÃ ĐƠN GIẢN 30 2.3.1 Hệ mã Ceasar 30 2.3.2 Hệ mã khối 32 2.4 HỆ MÃ DỮ LIỆU TIÊU CHUẨN - DES 33 2.4.1 Phương án thu gọn DES 34 2.4.2 Mô hình đầy đủ DES 39 2.4.3 Các phương thức sử dụng DES .47 2.4.4 Độ an toàn DES 48 2.5 THUẬT TOÁN MÃ HÓA DỮ LIỆU QUỐC TẾ IDEA 49 2.5.1 Nhận xét chung .49 2.5.2 Mã hóa giải mã IDEA .50 2.5.3 Những đặc tính quan trọng 55 2.6 HỆ MÃ SAFER .57 2.6.1 Mô tả SAFER .57 2.6.2 Một số biến thể nâng cấp 63 CHƯƠNG CÁC HỆ MÃ MŨ VÀ MÃ PHI ĐỐI XỨNG 64 3.1 MỘT SỐ HỆ MÃ MŨ THÔNG DỤNG 64 3.1.1 Hệ mã mũ Pohlig Hellman 64 3.1.2 Giao thức trao đổi chìa khóa Diffie - Hellman 68 3.1.3 Hệ mã ElGamal 69 3.1.4 Nguyên tắc chung mã hóa với khóa công khai 69 3.2 HỆ MÃ RSA 70 3.2.1 Nguyên tắc thực 70 3.2.2 Độ an toàn 71 3.3 ĐƯỜNG CONG ELLIPTIC VÀ HỆ MÃ PHI ĐỐI XỨNG 72 3.3.1 Cơ sở Toán học 72 3.3.2 Hệ mã dùng đường cong elliptic trường hữu hạn 74 3.3.3 Mật mã khóa công khai dùng đường cong elliptic 76 3.3.4 Hệ mã tương tự mã mũ 77 3.3.5 Chọn đường cong elliptic 77 KẾT LUẬN 79 DANH MỤC TÀI LIỆU THAM KHẢO QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN (BẢN SAO) DANH MỤC CÁC CHỮ VIẾT TẮT DES – Data Encryption Standard E-Box – Expansion Box IDEA – International Encryption Algorihm IP – Initial Permutation P-Box – Permutation Box PC – Permuted Choice SAFER – Secure And Fast Encryption Routine S-Box – Substitution Box DANH MỤC CÁC HÌNH Số hiệu Tên hình hình Trang 1.1 Một ví dụ đường cong elliptic 23 1.2 Điểm vô 23 1.3 Phép cộng đường cong elliptic 24 1.4 Phép nhân đôi đường cong elliptic 24 2.1 Cấu trúc Multiplication/Additio (MA) 50 2.2 Cấu trúc IDEA 51 2.3 Mã hoá giải mã IDEA 53 2.4 Cấu trúc vòng SAFER 61 MỞ ĐẦU Lý chọn đề tài Khoa học mật mã đời cách hàng nghìn năm người áp dụng mật mã cách có hệ thống để đảm bảo bí mật thông tin quân nhà quân thiên tài La Mã cổ đại, Julius Caesar Mật mã ngành khoa học nghiên cứu kỹ thuật toán học nhằm cung cấp dịch vụ bảo vệ thông tin Đây ngành khoa học quan trọng, có nhiều ứng dụng đời sống – xã hội Tuy nhiên, suốt nhiều kỷ, kết lĩnh vực không ứng dụng lĩnh vực dân thông thường đời sống – xã hội mà chủ yếu sử dụng lĩnh vực quân sự, trị, ngoại giao Ngày nay, với phát triển ngày nhanh chóng Internet ứng dụng giao dịch điện tử mạng, nhu cầu bảo vệ thông tin hệ thống ứng dụng điện tử ngày quan tâm có ý nghĩa quan trọng Vì vậy, ứng dụng mã hóa bảo mật thông tin sử dụng ngày phổ biến lĩnh vực khác giới, từ lĩnh vực an ninh, quân sự, quốc phòng…, lĩnh vực dân thương mại điện tử, ngân hàng… Do ý nghĩa quan trọng mà đề tài thu hút quan tâm đông đảo chuyên gia khắp giới xem trọng tâm nghiên cứu quốc gia, nước phát triển Một điểm đặc biệt công nghệ mã hóa đại không dựa vào khả giữ bí mật phương pháp mã hóa, thường không người nắm giữ, mà nói chung thường có nhóm người biết Ngày nay, người ta không tin vào khả giữ bí mật tuyệt đối nhóm người, mà cho bí mật giữ người có lợi ích gắn liền với bí mật Mật mã đại có đòi hỏi mang tính nguyên tắc so với mật mã thường dùng trước Những hệ thống mật mã cũ biết khoá lập mã họ ta dễ dàng tìm khoá giải mã Hiển nhiên muốn gửi thông báo mật cho đối tượng ta cần phải biết khóa lập mã họ, người hệ mã biết bí mật Nhiều người sử dụng hệ mã không bí mật Các hệ thống mật mã đại khắc phục nhược điểm đó: công nghệ mã hóa mà phương pháp chung (thuật toán) công khai, việc triển khai cho phép thay đổi theo tham số người sử dụng tự ấn định (mỗi giá trị tham số xác định cách mã hóa riêng), việc lập mã giải mã thực biết tham số Tham số thường gọi “chìa khóa” thông tin cần phải giữ bí mật Tóm lại, hệ mã đại cần phải dựa nguyên tắc: chốt tính bảo mật vào chìa khóa, mà vào phương pháp (thuật toán) mã hóa Một hệ mã không đáp ứng đòi hỏi chuyên gia bảo mật thông tin, mà phù hợp cho ứng dụng mang tính toàn dân nơi mà người sử dụng chút nghiệp vụ bảo mật an toàn thông tin nói chung Để có hệ mã đáp ứng yêu cầu trên, người ta dựa vào công cụ Toán học, đặc biệt phương pháp Lý thuyết số Có thể nói, lý thuyết số kiến thức toán học lâu đời Từ trước tới nay, người ta thường coi lý thuyết số lĩnh vực đẹp, túy lý thuyết toán học Với phát triển khoa học máy tính công nghệ thông tin, lý thuyết số đóng góp ứng dụng thực tế bất ngờ quan trọng, đặc biệt lĩnh vực mã hóa thông tin Chính nhờ kết nghiên cứu sâu sắc toán học, người ta có phương pháp 67 q u1 u2 u3 v1 v2 v3 -1 29 38 31 94 31 -94 24 1 -94 24 -1 95 -1 95 -379 -379 -9 853 -9 853 31 -2938 Như vậy, ta có: 31.853 – 9.2938 = 1, d = 853 Để giải mã khối C ta dùng công thức: C 712853 (mod 2938) c Độ an toàn Muốn mã hóa khối P văn bản, ta cần tính Pe (mod p), phép tính bit cần thiết O((log 2p) 3) Để giải mã trước hết ta phải tìm nghịch đảo d e modulo(p – 1) điều thực với O((logp)3) phép tính bit cần làm lần Tiếp theo ta tính thặng dư nguyên dương nhỏ Cd modulo p, số phép tính bit đòi hỏi O((log2p)3) Như vậy, thuật toán lập mã giải mã thực tương đối nhanh máy tính Tuy nhiên thực tế việc tìm chìa khóa e Thật vậy, giả sử ta biết p C, ta phải xác định e từ công thức C Pe (mod p ) Khi thuật toán nhanh tìm e đòi hỏi khoảng exp( logp.loglogp ) phép tính bit Khi p có khoảng 100 chữ số thập phân, việc tìm logarit modulo p cần khoảng 74 năm, p có khoảng 200 chữ số thời gian cần thiết hàng tỉ năm Nhận xét Hệ mã mũ nêu hệ bí mật số e, d phải giữ bí mật Tuy nhiên, ý tưởng việc sử dụng định lí Fermat để thay 68 phép tính “Căn rời rạc” (của việc giải mã) phép tính lũy thừa tuyệt vời Ta gặp lại ý tưởng hệ mã công khai RSA Trước hết, làm quen với hệ mã đơn giản hơn, phần mang tính phi đối xứng hữu ích Trong hệ mã sau thường có nhiều người tham gia A, B, C, … người ta thống chung việc chọn số nguyên tố p phân tử sở g nhóm Fp* (phép tính lấy theo modulo p) Mỗi người chọn cho số làm chìa khóa bí mật, chẳng hạn kA, kB, kC, … Những giá trị g k A , g k B , g k B , … công bố công khai (thường xem chìa khóa công khai), tìm chìa khóa bí mật người, p chọn đủ lớn 3.1.2 Giao thức trao đổi chìa khóa Diffie - Hellman Nếu A B muốn có chung số để làm chìa khóa chung (cho hệ mã đối xứng đó) họ chọn số M g k A k B Cả hai người A B tính số (bằng cách lấy số mà người công bố công khai nâng lên lũy thừa với bậc chìa khóa bí mật mình) Nếu nhu cầu trao đổi thông tin lớn A B nên sử dụng số khác cho lần trao đổi thông tin khác để tránh bị lộ trước công cụ thám mã ngày mạnh Muốn vậy, A chọn ngẫu nhiên số x gửi cho B giá trị X g x , B chọn ngẫu nhiên số y gửi cho A giá trị Y g y Khi hai người dễ dàng tính số chung sau đây: K Y x (g y )x (g x ) y X y Như vậy, người “ngoài cuộc” biết X, Y tính K Nhận xét Thuật toán không cho ta phương pháp mã hóa liệu, mang lại công cụ trao đổi chìa khóa an toàn 69 3.1.3 Hệ mã ElGamal Giả sử A muốn chuyển cho B thông báo mật M (đang dạng mã hóa nằm khoảng p) Khi A cần chọn ngẫu nhiêu số nguyên s nằm khoảng (1; p – 1) gửi cho B cặp số ( g s , Mg sk B ) Cặp số A tính nhờ biết trước phần tử sở g khóa công khai g k B B Khi nhận cặp số này, B tính M thủ tục gồm hai bước sau: Lấy số thứ (trong cặp số) nâng lên lũy thừa với bậc khóa bí mật kB mình, tức nhận ( g s ) k B g skB Lấy nghịch đảo số vừa nhận theo modulo p thuật toán Euclid đem nhân với số thứ hai, tức có: ( g sk B ) 1.M g sk B ( g sk B ) 1.g sk B M M Nhận xét Hệ mã an toàn (chú ý không để lộ tham số s) Ý tưởng hệ mã ElGamal tổng quát Nó dùng cho hệ mã sử dụng hàm mũ, hàm chiều vài hệ khác Một nét chung hai hệ mã cho phép công bố công khai phần thông tin phục vụ cho việc lập mã hỗ trợ cho việc “trao đổi chìa” vốn thường thấy hệ mã đối xứng Ưu điểm hệ mã thông tin khác thuộc loại “bí mật chung” cần phải gửi Đây mô hình phát triển ngày hoàn thiện, có tên gọi chung mã hóa với khóa công khai 3.1.4 Nguyên tắc chung mã hóa với khóa công khai Giả sử hệ thống xét có n cá thể trao đổi thông tin mật Mỗi cá thể chọn cho chìa khóa lập mã k công thức mã hóa Ek thông báo công khai Như có n khóa lập mã công khai k1, k2 , , kn Khi cá thể thứ i muốn gửi thông báo cho cá thể thứ j (đã chuyển thành số, nhóm thành khối có độ dài đó) Với khối P văn 70 mã hóa khóa lập mã Ek j cá thể thứ j (đã thông báo công khai) gửi dạng C Ek j ( P ) Để giải mã thông báo này, cá thể thứ j cần dùng khóa giải mã (bí mật riêng mình) Dk j Dk j (C ) Dk j Ek j ( P) P Vì Dk j Ek j khóa lập mã giải mã cá thể thứ j Nhận xét Mã hóa với khóa công khai sử dụng hai chìa khóa khác biệt thực cho hai công việc lập mã giải mã Mỗi cá nhân cần giữ kín chìa khóa giải mã, chìa khóa lập mã thông báo công khai (để người khác mã hóa tin mật gửi cho mình) Điều then chốt từ chìa khóa lập mã tìm chìa khóa giải mã (nếu thông tin đặc biệt khác) Rõ ràng với chế này, việc bảo mật thông tin trở nên dễ dàng (mỗi người việc giữ bí mật mình) Các nguyên tắc vừa trình bày cụ thể hóa hệ mã công khai phát minh năm 1978 Rivest, Shamir Adleman mang tên RSA 3.2 HỆ MÃ RSA 3.2.1 Nguyên tắc thực Chọn hai số nguyên tố lớn p q (có độ dài cỡ 150 chữ số thập phân) Tính n p.q , ( n) ( p 1)( q 1) , e chọn cho (e, ( n)) , d e1(mod (n)) Quy trình lập mã tin P sau số hóa, thực công thức: C P e (mod n) Cặp số (d, n) dùng để giải mã (còn gọi chìa khóa bí mật) Nhờ hệ định lí Euler, ta có quy trình giải mã thực theo công thức: P C d (mod n) , e.d 1(mod ( n)) , 71 C d ( Pe ) d P de P(mod n) , theo hệ 1.5 Ví dụ 3.2 Lấy n = 53.61 = 3233 e = 17 Trong trường hợp ta có: (e, ( n)) (17,52.60) Giả sử ta cần mã hóa thông báo sau: ĐA GƯI TIÊN Trước tiên ta chuyển chữ văn thành số tương ứng nhóm chúng thành khối chữ số Ta có: 0701 1026 1224 1209 1628 Ta mã hóa khối nhờ công thức: C P17 (mod 3233) Ta lại dùng phương pháp bình phương liên tiếp Chẳng hạn, khối đầu tiên, ta nhận được: (701)17 140(mod 3233) Mã hóa toàn văn bản, ta văn mật sau đây: 140 721 1814 1819 361 Khi nhận văn mật này, để giải mã, ta phải tìm nghịch đảo d e modulo φ(3233) Ta có φ(53.61) = 52.60 = 3120 Dùng thuật toán Euclid mở rộng, ta tính d = 2753 Như vậy, để giải mã khối C ta dùng P C 2753 (mod 3233) , P 3233 công thức: Có thể thử lại: C 2743 ( P17 )2753 P( P3210 )15 P(mod 3233) , ta dùng định lí Euler để nhận P P3120 1(mod 3233) , (P, 3233) = (điều với khối thông báo chúng ta) 3.2.2 Độ an toàn Người ta công khai khóa lập mã (e, n) mà hoàn toàn yên tâm khóa giải mã (d, n) không bị phát Bởi để có khóa giải mã, ta phải tìm d, nghịch đảo e theo modulo hàm (n) Tuy nhiên, muốn tìm (n), ta phải phân tích n thừa số nguyên tố (n = p.q) Nếu ta 72 chọn hai số p, q cỡ 100 chữ số thập phân n = p.q có khoảng 200 chữ số thập phân Khi đó, để phân tích n, ta cần vài tỉ năm Sự xuất hệ mã RSA xem “cách mạng” bảo mật thông tin Sau Rivest, Shamir Adleman, công bố phát minh hệ mã nêu, tạp chí Scientific American đưa lời thách thức giải mã mẩu tin nhỏ mã hóa với: n = 1143816257578888676692357799761466120102182967212423625625 6184293570693524573389783059712356395870505898907514759929 0026879543541 e = 9007 Mẩu tin “first solver wins one hundred dollas” (Người giải thắng 100 USD) xuất dạng mã hóa (với phép “số hóa” theo tương ứng a 01, b 02, c 03, ) giải mã vào ngày 26/4/1994 (sau 16 năm) cố gắng tổng lực mang tính quốc tế qua internet với việc sử dụng 1600 workstations, mainframes, supercomputers công tháng liên tục để phân tích số nêu thừa số nguyên tố 3.3 ĐƯỜNG CONG ELLIPTIC VÀ HỆ MÃ PHI ĐỐI XỨNG 3.3.1 Cơ sở toán học Hệ mã phi đối xứng (hệ mã khóa công khai) sử dụng đường cong elliptic dựa độ phức tạp thuật toán tìm số nguyên x cho xB = P, P, B điểm cho trước đường cong (nếu số tồn tại) Chú ý rằng, điểm đường cong lập thành nhóm, ta quan niệm xB “Bx” Trước tiên, ta cần xét thuật toán tìm bội điểm đường cong 73 Định lí 3.1 Cho E đường cong elliptic trường hữu hạn Fq, P điểm đường cong Khi tính tọa độ điểm kP O(log k log3 p ) phép tính bit Chứng minh Thật vậy, giả thiết rằng, trường Fq có đặc số khác 2, Trong trường hợp q 2r q 3r , có thuật toán nhanh để tính tọa độ bội điểm cho trước Như vậy, phương trình xác định đường cong cho dạng Weierstrass sau y x ax b Khi đó, tổng P Q ( x3 , y3 ) hai điểm khác P ( x1, y1) Q ( x2 , y2 ) tính theo công thức sau: y y x3 x1 x2 , x2 x1 y y y3 y1 ( x1 x3 ) x2 x1 Trong trường hợp P = Q, ta có công thức để tính 2P sau: x2 a x3 x1, y 3x12 a y3 y1 ( x x ) y Như vậy, ta phải dùng không 20 phép nhân, chia, cộng, trừ để tính tọa độ tổng hai điểm biết tọa độ điểm Số phép tính bit đòi hỏi O (log3 p) Khi dùng phương pháp nhân đôi liên tiếp, ta phải thực O(log k ) phép tính cộng hai điểm nhân đôi điểm Như vậy, toàn số phép tính bit phải dùng O(log k log3 p ) 74 Tóm lại, ta có thuật toán thời gian đa thức để tính bội điểm Ngược lại, biết kP P, việc tìm k với thuật toán nhanh đòi hỏi thời gian mũ Điều hoàn toàn tương tự trường hợp số mũ modulo p, sở cho việc xây dựng hệ khóa công khai sử dụng đường cong elliptic 3.3.2 Hệ mã dùng đường cong elliptic trường hữu hạn Để đơn giản trình bày, ta xem thông báo cần chuyển số nguyên dương m Điều hoàn toàn tự nhiên mã hóa đại, tin “số hóa” cách Khi tin dài phân thành “khối” việc mã hóa thực riêng rẽ khối Như vậy, số m không thiết phải số đủ lớn, giả thiết giới hạn số M Việc phải chọn đường cong elliptic E trường hữu hạn Fq Sau đó, ta tìm cách tương ứng số nguyên m với điểm đường cong E Để dễ hiểu trình lập mã, ta xem đường cong E chọn Việc chọn đường cong trình bày phần sau a Tương ứng số với điểm đường cong elliptic Cho đến nay, chưa có thuật toán tất định hữu hiệu để tìm số đủ lớn điểm đường cong elliptic Thuật toán mà ta trình bày sau thuật toán xác suất với thời gian đa thức Trước hết, ta chọn số k theo yêu cầu sau: trường hợp thuật toán tiến hành không cho kết mong muốn xảy với xác suất không vượt 2-k Như vậy, nói chung k = 40 chấp nhận Giả sử, số m nằm khoảng ≤ m < M Ta chọn q cho q Mk Trước tiên, ta tương ứng số nguyên dương s không vượt q với phần tử trường hữu hạn Fq Việc dễ dàng làm cách 75 sau Giả sử q = pr, số s biểu diễn số p có dạng s (c0 , c1, , cr 1) p Khi đó, đa thức r 1 S ( X ) ci X i i 0 tương ứng với phần tử trường Fq Như vậy, với m cho, với số j khoảng từ đến k ta có mk j (m 1)k Mk q , tìm phần tử xj trường Fq tương ứng với số s j mk j (theo quy tắc trên) Ta thuật toán để, với xác suất lớn, tìm tập x j | j 1,2, , k phần tử xj cho tồn điểm có dạng (xj, yj) đường cong E Khi ta cho tương ứng số m với điểm Pm = (xj, yj) ∈ E vừa tìm b Thuật toán tìm Pm El1 Đặt j ← El2 Nếu j > k : kết thúc thuật toán Trong trường hợp ngược lại, đặt Y j x3j ax j b Nếu tồn yj ∈ Fq cho Y j y 2j , in Pm = (xj, yj) kết thúc thuật toán Ngược lại, sang bước El3 El3 Đặt j ← j + quay lại bước El2 Ta biết rằng, với phần tử x ∈ Fq, xác suất để f ( x) x ax b “chính phương” , nên thuật toán cho phép ta tìm điểm Pm với xác suất thất bại 2k Như vậy, ta có thuật toán để mã hóa m, cách tương ứng với điểm đường cong elliptic E Tuy nhiên, yêu cầu mã hóa biết đường cong E Fq, biết Pm, ta phải khôi phục m cách dễ dàng Trong trường hợp này, yêu cầu đảm bảo Thật 76 s( x) vậy, giả sử Pm = (x, y) Khi đó, m , [ ] kí hiệu phần k nguyên, s(x) số nguyên ứng với phần tử x trường Fq theo quy tắc nói Thật vậy, theo quy tắc s ( x ) mk j với số j khoảng từ đến k, mk mk j s ( x ) 1 mk (k 1) m k m m k k 3.3.3 Mật mã khóa công khai dùng đường cong elliptic Giả sử B, P điểm đường cong elliptic E, k số nguyên P kB Khi ta nói k logarit sở B P Trong trường hợp E đường cong trường Fq, q = p r, p ≠ 2, toán tìm logarit điểm đường cong đòi hỏi thời gian mũ, đó, thực khoảng thời gian chấp nhận (nếu q chọn đủ lớn) Bây giả sử có tập hợp n cá thể cần trao đổi thông tin mật với nhau: A1, A2 , , An Trước tiên, ta chọn đường cong elliptic E trường hữu hạn Fq với điểm B ∈ E dùng làm “cơ sở” Những thông tin thông báo công khai Dĩ nhiên q phải số đủ lớn Sau đó, cá thể Aj chọn cho khóa ej, số nguyên Khóa giữ bí mật, Aj thông báo công khai phần tử ejB Điều không làm lộ khóa ej độ phức tạp phép tính logarit Giả sử Aj cần gửi thông báo mật m cho Ai Trước tiên, m tương ứng với điểm Pm ∈ E trình bày Sau đó, Aj chọn ngẫu nhiên số s chuyển cho Ai cặp điểm “mã hóa” (sB, Pm + s(eiB)), tính nhờ eiB công khai Khi nhận cặp điểm này, Ai tiến hành “giải mã” việc lấy số sau trừ ei lần số trước để nhận Pm : Pm Pm s(ei B) ei (sB) 77 Chú ý rằng, có Ai làm điều ei giữ bí mật, số s tìm thấy thời gian chấp nhận biết sB, logarit (sB) sở B Trong hệ mã vừa trình bày, ta không cần biết số N đường cong E 3.3.4 Hệ mã tương tự mã mũ Trong trường hợp này, cá thể chọn chung cho đường cong elliptic E trường hữu hạn Fq với N điểm Các tham số thông báo công khai Để xây dựng hệ mã, cá thể Ai chọn cho khóa ei, số nguyên dương nằm N, cho (ei, N) = Bằng thuật toán Euclid, Ai tìm di thỏa mãn diei ≡ 1(mod N) Bây giờ, giả sử Ai cần gửi thông báo m cho Aj Cũng trước đây, Ai tìm hiểu Pm tương ứng đường cong Sau đó, Bước 1: Ai gửi cho Aj thông báo ei Pm Dĩ nhiên, nhận thông báo này, Aj chưa thể giải mã ei di Bước 2: Aj nhân thông báo nhận với ej gửi trả lại cho Ai thông báo ej(eiPm) Bước 3: Ai lại gửi cho Aj thông báo sau nhân với di: diei(eiPm) Bước 4: Nhận thông báo cuối này, Aj nhân với khóa dj để nhận P = djdieiejPm Do cách chọn ei, di, ej, dj ta có di d j ei e j 1(mod N ) , tức P (1 sN ) Pm với số nguyên s Vì N số điểm đường cong nên NPm = 0, P = Pm.Aj nhận thông báo ban đầu Để ý rằng, bước đây, khóa bí mật ei, di cá thể không bị phát 3.3.5 Chọn đường cong elliptic Có nhiều cách chọn đường cong điểm B dùng làm “cơ sở” lập mã Ở đây, ta trình bày hai cách theo hai hướng ngược Thứ nhất, chọn 78 điểm đường cong cụ thể Thứ hai, lấy đường cong trường số hữu tỉ “sửa” theo modulo p khác để thu đường cong trường hữu hạn a Chọn đường cong điểm ngẫu nhiên Ta luôn giả thiết rằng, đặc số trường Fq khác 2, (những trường hợp xét riêng) Khi đó, phương trình đường cong viết dạng Weierstrass Giả sử x, y, a ba phần tử lấy ngẫu nhiên trường Fq Ta đặt b y ( x3 ax) Có thể kiểm tra dễ dàng đa thức x3 ax b có nghiệm bội hay không (xét biệt thức 4a 27b ) Nếu đa thức nghiệm bội, ta đường cong E cho phương trình: Y X aX b điểm B = (x, y) ∈ E Nếu đa thức có nghiệm bội, ta làm lại với số a ngẫu nhiên khác b Sửa theo modulo p Ta xuất phát từ đường cong elliptic E trường số hữu tỉ, chọn B ∈ E điểm bậc vô hạn Sau đó, ta lấy số nguyên tố p đủ lớn Như nói, đường cong chọn có “sửa xấu” với số hữu hạn số nguyên tố Vì thế, p chọn đủ lớn sửa theo modulo p cho ta đường cong elliptic E “modulo” p điểm B modulo p Cuối cùng, ý là, nay, chưa có thuật toán tương đối tốt để xác định số điểm N đường cong elliptic trường hữu hạn Fq với q số lớn Trong trường hợp N tích số nguyên tố bé, có thuật toán đặc biệt để tìm “logarit” sở B, đó, hệ mã mà xét không giữ tính bảo mật Tuy nhiên, có nhiều phương pháp xác suất để tránh xảy tình trạng số điểm N đường cong tích số nguyên tố bé 79 KẾT LUẬN Qua thời gian tìm hiểu, tiếp cận nghiên cứu ứng dụng lý thuyết số mã hóa thông tin, luận văn hoàn thành đạt mục tiêu nghiên cứu đề tài với kết cụ thể sau: Tổng quan hệ thống cách đầy đủ kết phép tính đồng dư, liên phân số, trường hữu hạn đường cong elliptic Trình bày cách đầy đủ chi tiết khái niệm mã hóa hệ mã đối xứng Giới thiệu hệ mã Caesar, mã khối, hệ mã DES, thuật toán mã hóa liệu quốc tế IDEA hệ mã SAFER Khảo sát cách chi tiết có hệ thống hệ mã mũ mã phi đối xứng Cụ thể hệ mã mũ thông dụng, hệ mã RSA, đường cong elliptic hệ mã phi đối xứng Với khảo sát, luận văn tài liệu tham khảo hữu ích cho thân tiếp tục sâu nghiên cứu sau hy vọng nguồn tư liệu tốt cho quan tâm nghiên cứu lý thuyết số mã hóa thông tin Trong điều kiện thời gian khuôn khổ luận văn nên chưa nghiên cứu sâu hệ mã khóa công khai RSA, hệ mã sử dụng nhiều nay, để thấy ứng dụng lý thuyết số phép tính đồng dư liên phân số Đó hướng phát triển luận văn Trong trình làm luận văn, có nhiều cố gắng, song điều kiện khách quan lực có hạn thân nên luận văn khó tránh khỏi thiếu sót, tác giả mong nhận góp ý chân thành quý thầy cô bạn đọc để tiếp tục tìm hiểu, nghiên cứu phát triển luận văn sau DANH MỤC TÀI LIỆU THAM KHẢO TIẾNG VIỆT [1] Phạm Huy Điển, Hà Huy Khoái (2002), Số học Thuật toán: Cơ sở lý thuyết Tính toán thực hành, NXB ĐHQG Hà Nội, Hà Nội [2] Phạm Huy Điển, Hà Huy Khoái (2004), Mã hóa thông tin: Cơ sở toán học & ứng dụng, NXB ĐHQG Hà Nội, Hà Nội [3] Dương Anh Đức, Trần Minh Triết (2005), Mã hóa ứng dụng, Đại học Khoa học Tự nhiên, Đại học Quốc gia TP Hồ Chí Minh [4] Vũ Thị Thanh Hậu (2009), Một số ứng dụng số học lý thuyết mật mã, Luận văn Thạc sĩ, Đại học Khoa học, Thái Nguyên [5] Nguyễn Hữu Hoan (2003), Lý thuyết số, NXB Đại học Sư Phạm, Huế [6] Hà Huy Khoái (2006), Số học, NXB Giáo dục, Huế TIẾNG ANH [7] A Enge (1999), Elliptic Curves and their Applications to Cryptography, Kluwer Academic Publishers [8] R.A Mollin (2007), An Introduction to Cryptography, Chapman & Hall/CRC [9] FIPS 197 (2001), Announcing the Advanced Encryption Standard (AES) ĐỊA CHỈ CÁC NGUỒN TRÊN INTERNET [10] http://www.quadibloc.com/crypto/co040301.htm [11] http://www.vi.wikipedia.org/wiki/DES_(mã_hóa) [12]http://www.soict.hut.edu.vn/~vannk/AntoanThongtin/ /GTATTT_Chuong2 pdf [13]http://www.soict.hut.edu.vn/~vannk/AntoanThongtin/ /GTATTT_Chuong1 pdf [14] http://www.updatebook.org/threads/21411-Giai-thuat-ma-hoa-mat-marsa [15] http://www.myebook.vn/ebook/giao-duc hoc-tap/cao-dang dai-hoc/hemat-idea.322373.html [16] http://www.download.com.vn/docs/download/cac-phuong-phap-ma-hoava-bao-mat-thong-tin-ebook [17] http://chuyentoan.com.vn/Home/Download/6f6aafa9-332b-4469-a75335531ec8bfa5 ... = 74, v1 = 0, v2 = 1, v3 = 28 - Bước 2: q = 2, u = 0, u2 = 1, u3 = 28, v1 = 1, v2 = -2 , v3 = 18 - Bước 3: q = 1, u = 1, u2 = -2 , u3 = 18 , v1 = -1 , v2 = 3, v3 = 10 - Bước 4: q = 1, u = -1 , u2 =... [a0 ;a1 , , ak , ak 1 ] = k 1 k k 1 ak 1qk qk 1 qk 1 ak qk 1 qk ak 1 17 Ví dụ 1. 8 1) 5544 4 ;1, 1 ,1, 1 ,1, 2,2 ta có bảng giản phân 12 00 k ak 1 1 2 pk 14 23... dụ 1. 5 Tính 70923 (mod 313 7) Ta có 23 = 1+ 2+4 +16 = 20 + + 22 + 24 70 91( mod 313 7) = 709 7092(mod 313 7) = 7 61 7094(mod 313 7) = 7 61 (mod 313 7) = 19 13 7098(mod 313 7) = 19 132 (mod 313 7) = 18 27 70 916 (mod