Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 71 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
71
Dung lượng
419,82 KB
Nội dung
Header Page of 166 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN - PHẠM XUÂN CÔNG ỨNG DỤNG MÃ XYCLIC CỤC BỘ XÂY DỰNG HỆ MẬT LUẬN VĂN THẠC SĨ KHOA HỌC Hà Nội – 2010 Footer Page of 166 Header Page of 166 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN - PHẠM XUÂN CÔNG ỨNG DỤNG MÃ XYCLIC CỤC BỘ XÂY DỰNG HỆ MẬT Chuyên ngành: Bảo đảm toán học cho máy tính hệ thống tính toán Mã số: 60.46.35 LUẬN VĂN THẠC SĨ KHOA HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC: TS PHẠM VIỆT TRUNG Hà Nội – 2010 Footer Page of 166 Header Page of 166 MỤC LỤC MỤC LỤC CÁC CHỮ VIẾT TẮT DANH MỤC BẢNG BIỂU DANH MỤC HÌNH VẼ MỞ ĐẦU CHƯƠNG - TỔNG QUAN VỀ HỆ MẬT 10 1.1 Khái quát chung hệ mật mã cổ điển 10 1.1.1 Mô hình hệ thống truyền tin mật 10 1.1.2 Một số hệ mật mã cổ điển điển hình 11 1.2 Hệ mật khoá công khai .13 1.2.1 Khái quát chung 13 1.2.2 Nguyên tắc chung mã hoá với khoá công khai 14 1.2.3 Quá trình phát triển hệ mật mã khoá công khai .14 1.3 Kết luận .24 CHƯƠNG - LÝ THUYẾT VỀ MÃ XYCLIC CỤC BỘ VÀ PHÂN HOẠCH VÀNH ĐA THỨC 25 2.1 Khái niệm mã xyclic vành đa thức 25 2.1.1 Mã tuyến tính 25 2.1.2 Vành đa thức .26 2.1.3 Mã xyclic 28 2.1.4 Mã hoá cho mã xyclic 30 2.1.5 Giải mã ngưỡng 31 2.1.6 Khái niệm mã xyclic cục 34 2.1.7 Mối quan hệ mã xyclic xyclic cục 34 2.1.8 Mã xyclic cục xây dựng nhóm nhân xyclic 35 2.2 Phân hoạch vành đa thức theo nhóm nhân xyclic .35 2.2.1 Phân hoạch vành theo nhóm nhân xyclic 35 2.2.2 Phân hoạch vành đa thức theo nhóm nhân xyclic đơn vị .37 2.2.3 Thuật toán xây dựng vành đa thức theo nhóm nhân xyclic đơn vị 39 2.3 Kết luận .41 CHƯƠNG - XÂY DỰNG HỆ MẬT MCELIECE TRÊN MÃ XCB 42 3.1 Tiêu chí lựa chọn mã xyclic cục mô hình toán học để xây dựng hệ mật McEliece 42 3.1.1 Tiêu chí lựa chọn mã XCB để xây dựng hệ mật McEliece 42 3.1.2 Mô hình toán học xây dựng hệ mật McEliece với mã xyclic cục 42 Footer Page of 166 Header Page of 166 3.2 Sơ đồ khối xây dựng hệ mật McEliece với mã xyclic cục .43 3.2.1 Sơ đồ mã hoá 43 3.2.2 Sơ đồ giải mã 46 3.3 Về phương pháp xây dựng hệ mật McEliece mã XCB 48 3.3.1 Phương pháp tạo khoá mã .48 3.3.2 Thuật toán mã hoá 50 3.3.3 Thuật toán giải mã 53 3.4 Nghiên cứu thử nghiệm hệ mật McEliece mã xyclic cục 59 3.4.1 Quá trình tạo khoá 59 3.4.2 Quá trình mã hoá 62 3.4.3 Quá trình giải mã 63 3.5 Đánh giá hệ mật McEliece mã xyclic cục .66 3.6 Kết luận .67 KẾT LUẬN CHUNG 68 TÀI LIỆU THAM KHẢO 69 Footer Page of 166 Header Page of 166 CÁC CHỮ VIẾT TẮT deg Bậc đa thức (degree ) UCLN Ước chung lớn (gcd) ord Cấp (order) XCB xyclic cục Footer Page of 166 Header Page of 166 DANH MỤC BẢNG BIỂU Bảng 2.1: Các mã xyclic vành Z2[x]/x7+1 Bảng 2.2: Phân hoạch vành Z2[x]/x5+1 theo nhóm nhân xyclic đơn vị Bảng 2.3: Phân hoạch vành với a(x) = + x + x2 Bảng 2.4: Kết phân hoạch vành đa thức máy tính core duo 2.26GHz Bảng 3.1: Phân hoạch vành đa thức theo nhóm nhân xyclic đơn vị với k =8 Bảng 3.2: Các lớp kề lựa chọn để xây dựng mã (64,8,32) Bảng 3.3: Ma trận G1 (8,64) Bảng 3.4: Ma trận sinh G (7,64) Bảng 3.5: Các liệu nhị phân 10 ký tự là: "1234567890" Bảng 3.6: Đánh giá hiệu suất phần mềm mã hoá giải mã Footer Page of 166 Header Page of 166 DANH MỤC HÌNH VẼ Hình 1.1: Mô hình hệ thống truyền tin mật Hình 2.1: Thiết bị mã hoá cho mã xyclic (n,k) có đa thức sinh g(x) Hình 2.2: Cấu trúc vành Z2[x] / xn+1 Hình 2.3: Sơ đồ thuật toán tính phân hoạch vành theo nhóm nhân xyclic đơn vị Hình 2.4 Chương trình tính phân hoạch vành theo nhóm nhân xyclic đơn vị Hình 3.1: Sơ đồ khối xây dựng hệ mật McEliece với mã XCB – Sơ đồ mã hoá Hình 3.2: Sơ đồ khối xây dựng hệ mật McEliece với mã XCB – Sơ đồ giải mã Hình 3.3: Sơ đồ thuật toán mã hoá Hình 3.4: Sơ đồ thuật toán giải mã Hình 3.5: Chương trình phần mềm mã hoá giải mã Footer Page of 166 Header Page of 166 MỞ ĐẦU Ngày với phát triển mạnh mẽ công nghệ thông tin truyền thông, máy tính mạng máy tính ngày đóng vai trò thiết yếu lĩnh vực hoạt động toàn xã hội Dữ liệu trao đổi mạng chứa nhiều thông tin quan trọng cần bảo vệ nên an toàn thông tin truyền mạng đóng vai trò quan trọng Trong thập kỷ 70 80 kỷ trước công nghệ mã hoá thông tin có bước phát triển vượt bậc Các công nghệ mã hoá đại không dựa vào khả giữ bí mật công nghệ mã hoá (thuật toán công khai) mà dựa vào bí mật chìa khoá giải mã, hệ mật gọi hệ mật khoá công khai Hệ mật đáp ứng đầy đủ đòi hỏi bảo mật thông tin phù hợp cho ứng dụng rộng rãi cộng đồng Trong thời gian gần đây, nhiều thuật toán tốt xây dựng song song với tốc độ phát triển công nghệ thông tin nói chung, nhiên thuật toán công nghệ mã hoá nước cung cấp, để bảo vệ thông tin, đặt biệt lĩnh vực an ninh quốc phòng, phải tự xây dựng giải pháp cho bảo mật thông tin Ý tưởng hệ mật khoá công khai Diffie Hellman đưa vào năm 1976, sau Rivesrt, Shamir Adleman đưa hệ mật tiếng RSA vào năm 1977 Tiếp theo số hệ mật dựa thuật toán khác đời, đó, quan trọng hệ mật khoá công khai sau: - Hệ mật RSA: Độ bảo mật hệ RSA dựa độ khó việc phân tích thừa số nguyên lớn - Hệ mật xếp ba lô Merkle – Hellman: Hệ hệ liên quan dựa tính khó giải toán tổng tập (bài toán NP đầy đủ) Tuy nhiên, tất hệ mật xếp ba lô khác chứng tỏ không mật (ngoại trừ hệ mật Chor-Rivest) - Hệ mật McEliece: Hệ mật dựa lý thuyết mã hoá đại số coi an toàn Hệ mật McEliece dựa toán giải mã cho mã tuyến tính (cũng toán NP đầy đủ) Footer Page of 166 Header Page of 166 - Hệ mật ElGamal: Hệ mật ElGamal dựa tính khó giải toán logarithm rời rạc trường hữu hạn - Hệ mật Chor-Rivest: Hệ mật Chor-Rivest xem hệ mật xếp ba lô, coi an toàn - Hệ mật đường cong Elliptic: Các hệ mật biến tướng hệ mật khác (chẳng hạn hệ mật ElGamal), chúng làm việc đường cong Elliptic trường hữu hạn Hệ mật đảm bảo độ mật với số khoá nhỏ hệ mật khoá công khai khác Trong hệ mật khoá công khai trên, có hệ mật McEliece dựa lý thuyết mã đại số để xây dựng hệ mật, với ứng dụng cụ thể mã Goppa Từ năm 1987, GS.TSKH Nguyễn Xuân Quỳnh PGS.TS Nguyễn Bình lần đề xuất phương pháp xây dựng mã xyclic cục (XCB) [1][2][3][4], với kết nghiên cứu nghiên cứu sinh [5][6], mở khả nghiên cứu phát triển tiếp lý thuyết mã xyclic cục Các kết nghiên cứu trước đưa phương pháp phân hoạch tổng quát vành theo nhóm nhân xyclic khác vành Phương pháp giải mã cho xyclic cục dùng phương pháp giải mã ngưỡng biểu theo đa số, giải mã ngưỡng cấp hai cấp ngưỡng Việc cải tạo mã xyclic cục thành mã tối ưu sử dụng theo phương pháp sử dụng dấu kiểm tra chẵn, sử dụng dấu thông tin giả, lớp mã xyclic cục tự trực giao có khả trực giao đưa Các ưu điểm bật mã xyclic cục khả lựa chọn mã phong phú, thuật toán mã hoá giải mã tường minh, có hướng mở cho nghiên cứu Chính vậy, chọn đề tài “Ứng dụng mã xyclic cục xây dựng hệ mật” với mục đích ứng dụng khả mã xyclíc cục để xây dựng hệ mật khoá công khai dựa hệ mật McEliece Footer Page of 166 Header Page 10 of 166 Mục đích luận văn Xây dựng hệ mật khoá công khai dựa lược đồ hệ mật McEliece sử dụng mã xyclic cục Đối tượng nghiên cứu Lý thuyết mật mã, hệ mật khoá công khai, lý thuyết số, đại số, lý thuyết mã xyclic cục Ý nghĩa khoa học thực tiễn luận văn Về khoa học: Nghiên cứu luận văn góp phần làm phong phú thêm lý thuyết mã xyclic cục bộ, chứng minh khả xây dựng hệ mật khoá công khai dựa lý thuyết mã đại số Về thực tiễn: Kết nghiên cứu đưa khả ứng dụng thực tế, góp phần nâng cao tính bảo mật thông tin đường truyền Phương pháp tiếp cận: Dựa sở toán học lý thuyết đại số, lý thuyết số học, thuật toán để xây dựng hệ mật khoá công khai, giải thuật lập trình Phương pháp nghiên cứu: Nghiên cứu lý thuyết mã xyclic cục Ứng dụng kết mã xyclic cục vào hệ mật McEliece Nội dung luận văn - Tìm hiểu hệ mật khoá công khai McEliece - Nghiên cứu mã xyclic cục bộ, tìm hiểu phương án phân hoạch tổng quát vành theo nhóm nhân xyclic đơn vị - Xây dựng hệ mật dựa lược đồ McEliece sử dụng mã xyclic cục Nội dung luận văn chia thành chương sau: Footer Page 10 of 166 Header Page 57 of 166 7 k=1 k=1 ∑ bk0 + ∑ a2k = S32 k k=1 k=1 k=1 7 k=1 k=1 k=1 k k=1 k=1 + ∑f k 7 k k=1 + ∑ g5k = S40 ∑h k k=1 ∑d k k=1 ∑d k=1 k k=1 7 + ∑ c1k = S41 ∑h k k=1 k=1 ∑h k + ∑ e5k = S50 k=1 + ∑ g1k = S51 k=1 + ∑ h1k = S52 k=1 k ∑b k k=1 k + ∑ d 7k = S55 7 k=1 k=1 ∑ d3k + ∑ c2k = S56 ∑c k + ∑ h2k = S57 k=1 ∑c k k=1 + ∑ f5k = S58 k=1 7 ∑d k k=1 + ∑ e7k = S59 k=1 7 ∑e k k=1 + ∑ f 7k = S60 k=1 7 ∑f k k=1 ∑h k k k=1 + ∑ g3k = S62 k=1 k + ∑ a1k = S63 k=1 Để giải mã cho cặp dấu từ A0 đến A7 sử dụng thuật toán: For (i = 7) { 63 N (i ) = ∑ S j (i ) j =0 if ( N(i) ≥ 33 ) A(i) = else A(i) = } Footer Page 57 of 166 55 = S61 ∑g k=1 + k=1 ∑a k=1 k=1 k=1 + ∑ h7k = S42 + ∑ e2k = S54 ∑b = S48 + ∑ d 6k = S49 k=1 k=1 k=1 ∑h = S39 k=1 ∑c + k=1 = S47 k k=1 k k k=1 ∑g k=1 ∑b k k=1 ∑h ∑g + ∑ b1k = S38 ∑ c7k = S46 k=1 + ∑ a7k = S37 k=1 ∑c + ∑ b2k + ∑ b5k = S53 k=1 k 7 = S45 k=1 ∑g k k f 2k + + ∑ a6k = S36 ∑e k=1 k=1 k=1 ∑b k=1 ∑ k + k=1 7 k k=1 ∑ d5k + ∑ a5k = S35 ∑c + ∑ g 7k = S44 k=1 ∑f k=1 k=1 k + ∑ a4k = S34 k=1 ∑e k k=1 + ∑ a3k = S33 k=1 ∑e ∑ e0k + ∑ d1k = S43 ∑f Header Page 58 of 166 Sau xây dựng 64 tổng kiểm tra cho cấp ngưỡng thứ thông qua phân hoạch vành theo nhóm nhân xyclic đơn vị với k=8 tính chất mã (512,49,64) để giải mã cho dấu thông tin: T0 = A(0) + a1 T32 = A(7) + A(6) + A(4) + b40 T1 = A(0) + A(1) + a2 T33 = A(7) + A(6) + A(3) + f60 T2 = A(7) + a7 T34 = A(7) + A(6) + A(2) + e60 T3 = A(7) + A(6) + a6 T35 = A(7) + A(6) + A(1) + d60 T4 = A(1) + b0 T36 = A(7) + A(6) + A(0) + c60 T5 = A(2) + c0 T37 = A(0) + A(1) + A(7) + f20 T6 = A(3) + d0 T38 = A(0) + A(2) + A(3) + f40 T7 = A(4) + e0 T39 = A(0) + A(3) + A(4) + g10 T8 = A(5) + f0 T40 = A(0) + A(4) + A(5) + h40 T9 = A(6) + b6 T41 = A(0) + A(5) + A(6) + g50 T10 = A(1) + A(2) + f3 T42 = A(7) + A(5) + A(4) + c40 T11 = A(2) + A(3) + g0 T43 = A(7) + A(4) + A(3) + g30 T12 = A(3) + A(4) + h3 T44 = A(7) + A(3) + A(2) + h20 T13 = A(4) + A(5) + g4 T45 = A(7) + A(2) + A(1) + g70 T14 = A(5) + A(6) + c5 T46 = A(1) + A(2) + A(3) + e40 T15 = A(7) + A(0) + b7 T47 = A(2) + A(3) + A(4) + h00 T16 = A(0) + A(2) + b1 T48 = A(3) + A(4) + A(5) + h60 T17 = A(0) + A(3) + c1 T49 = A(4) + A(5) + A(6) + d40 T18 = A(0) + A(4) + d1 T50 = a00 T51 = T19 = A(0) + A(5) + e1 ∑a k =1 Footer Page 58 of 166 56 k Header Page 59 of 166 T52 = A(0) + ∑ a1k T20 = A(0) + A(6) + f1 k =1 T53 = A(1) + T21 = A(7) + A(5) + b5 ∑b k k =1 T54 = A(2) + T22 = A(7) + A(4) + f7 ∑c k =1 k T55 = A(3) + T23 = A(7) + A(3) + e7 ∑d k k =1 T56 = A(4) + T24 = A(7) + A(2) + d7 ∑e k =1 T57 = A(5) + T25 = A(7) + A(1) + c7 ∑f k =1 T58 = A(6) + T26 = A(0) + A(1) + A(2) + a3 T59 = A(7) + k ∑b k =1 T27 = A(0) + A(1) + A(3) + b2 k k ∑a k =1 k 7 T60 = A(0) + A(1) + T28 = A(0) + A(1) + A(4) + e2 ∑a k k =1 T61 = A(0) + A(2) + T29 = A(0) + A(1) + A(5) + d2 ∑b k =1 T62 = A(0) + A(3) + T30 = A(0) + A(1) + A(6) + e2 ∑c k =1 T63 = A(0) + A(4) + T31 = A(7) + A(6) + A(5) + a5 For ( i = ) { 63 M (i) = ∑ T j (i ) j =0 if ( M(i) ≥ 33 ) a(i) = else a(i) = } 3.3.3.3 Thuật toán giải mã Footer Page 59 of 166 57 k ∑d k =1 Để giải mã cho dấu từ a0 đến a7 sử dụng thuật toán: k k Header Page 60 of 166 Bắt đầu Đọc Gi' = Si.Gi.Pi Đọc Pi-1, Si-1 Đọc ma trận tổng kiểm tra Gi K=0 Đọc tệp mã hóa Đọc kich thước tệp T Phân tích liệu theo bit M (512 bit liệu mã hóa) K=K+Len(M) Sắp xếp ma trận M1(8,64) Giải mã liệu M2 = M1 * Pi-1 M3 = Giải mã sửa sai M2 theo tổng kiểm tra cấp ngưỡng M = M3* Si-1 49 bit liệu tin Mã hóa lại liệu với Gi’ tạo Ma trận (8,64) Cộng Modulo Sắp xếp thành 512 bít Vectơ sai có chứa liệu Ghép liệu Ghi kết Đúng K