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
397,16 KB
Nội dung
ĐẠ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 ĐẠ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 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 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 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 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ã 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ã 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 đủ) - 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 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: 7 k=1 k=1 ∑ bk0 + ∑ a2k = S32 k k=1 k=1 k=1 ∑ k=1 k=1 7 k=1 k=1 k k=1 ∑f k k=1 k k=1 ∑d k k=1 k=1 k k=1 + ∑ g5k = S40 ∑h k k=1 ∑d ∑h 7 k + k=1 7 + ∑ c1k = S41 ∑h k k=1 k=1 k=1 + ∑ g1k = S51 k=1 + ∑ h1k = S52 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 k=1 k=1 ∑ d 2k + ∑ e7k = S59 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) = } 55 = S61 ∑g k=1 + k=1 ∑a k=1 k=1 k=1 + ∑ h7k = S42 + ∑ e2k = S54 ∑b = S48 k=1 k=1 k=1 + ∑ e5k = S50 k=1 = S47 k=1 ∑h = S39 k=1 ∑c k=1 + k ∑ g6k + ∑ d6k = S49 ∑b ∑h k k=1 ∑ c0k + ∑ b1k = S38 ∑ c7k = S46 k=1 ∑g k=1 + ∑ b2k + ∑ b5k = S53 k=1 k 7 = S45 k=1 k=1 + ∑ a7k = S37 k f 2k + ∑g k ∑e k=1 + ∑ a6k = S36 k=1 ∑b + k=1 k k k=1 k=1 k=1 ∑ d5k + ∑ a5k = S35 ∑c + ∑ g 7k = S44 ∑f k=1 k=1 k + ∑ a4k = S34 k=1 ∑e k k=1 + ∑ a3k = S33 k=1 ∑e ∑ e0k + ∑ d1k = S43 ∑f 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 56 k 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 k T57 = A(5) + T25 = A(7) + A(1) + c7 ∑f k =1 k T58 = A(6) + T26 = A(0) + A(1) + A(2) + a3 ∑b k=1 k T59 = A(7) + T27 = A(0) + A(1) + A(3) + b2 ∑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 k T62 = A(0) + A(3) + T30 = A(0) + A(1) + A(6) + e2 ∑c k=1 k T63 = A(0) + A(4) + T31 = A(7) + A(6) + A(5) + a5 ∑d k=1 Để giải mã cho dấu từ a0 đến a7 sử dụng thuật toán: 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ã 57 k 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[...]... nhược điểm của các hệ mật, chúng ta nhận thấy rằng trong các hệ mật khoá công khai chỉ có hệ mật McEliece là sử dụng lý thuyết mã đại số cụ thể là mã Goppa để xây dựng hệ mật Với sự phát triển của lý thuyết xây dựng mã xyclic cục bộ, chúng ta hoàn toàn có thể tự xây dựng một hệ mật khoá công khai dựa trên lược đồ McEliece sử dụng mã xyclic cục bộ 24 Chương 2 - LÝ THUYẾT VỀ MÃ XYCLIC CỤC BỘ VÀ PHÂN HOẠCH... bản mã và tập các bản rõ là đồng nhất, thì mỗi một hàm mã sẽ là một sự sắp xếp lại (hay hoán vị) các phần tử của tập này Hệ mật mã cổ điển (hệ mã bí mật hay hệ mã đối xứng) là hệ mã trong đó việc mã hoá và giải mã cùng sử dụng chung một khoá bí mật 1.1.2 Một số hệ mật mã cổ điển điển hình 1.1.2.1 Mã dịch vòng 11 Hệ mật được xây dựng dựa trên số học modulo Ký hiệu m là số chữ cái của bộ chữ xây dựng. .. dựa trên thuật toán McEliece Chương 3 Xây dựng hệ mật McEliece trên mã xyclic cục bộ: Về một phương pháp xây dựng hệ mật McEliece trên mã xyclic cục bộ, xây dựng thuật toán mã hoá và giải mã Xây dựng thuật toán và viết chương trình thử nghiệm hệ mật Kết luận Kết luận về kết quả nghiên cứu và kiến nghị về hướng phát triển tiếp theo 9 Chương 1 - TỔNG QUAN VỀ HỆ MẬT Chương này trình bày tổng quan về quá... quan hệ giữa mã xyclic và xyclic cục bộ Theo quan điểm xây dựng mã xyclic thông thường, mã xyclic là một Ideal của vành đa thức, trong đó mỗi từ mã là một phần tử của Ideal đó trên vành đa thức Theo quan điểm xây dựng mã xyclic cục bộ, mỗi dấu mã là một phần tử của Ideal, toàn bộ từ mã là một bộ phận của vành gồm n phần tử xác định của Ideal Như vậy, ta hoàn toàn có thể dùng lý thuyết xây dựng các đa... cứu tổng quan về hệ mật: Khái quát chung về hệ mật mã cổ điển, sự ra đời của hệ mật khoá công khai, phân tích hệ mật khoá công khai dựa trên thuật toán McEliece Chương 2 Các nghiên cứu về mã xyclic cục bộ, nghiên cứu thuật toán phân hoạch vành dựa trên nhóm nhân xyclic đơn vị Viết chương trình và chạy thử phân hoạch vành đa thức Nghiên cứu phương án sử dụng mã xyclic cục bộ xây dựng hệ mật khoá công khai... nghiên cứu và phát triển mạnh mẽ vào cuối những năm 70 của thế kỷ trước Các hệ mật điển hình đã được tập trung nghiên cứu phát triển và đưa vào ứng dụng trong thực tế là hệ mật RSA, hệ mật RABIN, hệ mật ELGAMAL, hệ mật CHOR-RIVEST, hệ mật McELIECE [11] 1.2.3.1 Hệ mật RSA Hệ RSA được xây dựng trên cơ sở mã mũ, trong đó khoá lập mã là cặp (b,n), gồm số mũ b và mod n Với n = p.q trong đó p và q là các số... I = của vành đa thức Z2[x]/xn+1 Mã xyclic là một bộ mã tuyến tính có tính chất sau: Nếu a(x) là một từ mã thì dịch vòng của a(x) cũng là một từ mã thuộc bộ mã này Ví dụ: Xét các mã xyclic trên vành Z2[x]/x7+1, ta có 7 ideal tương ứng với 7 bộ mã xyclic: Ta có: x7+1 = (1+x)(1+x+x3)(1+x2+x3) Bảng 2.1: Các mã xyclic trên vành Z2[x]/x7+1 Đa thức sinh g(x) Mã (n,k) Khoảng cách Hamming d0 1 (7,7)... về quá trình hình thành và phát triển các hệ mật cổ điển và hệ mật khoá công khai, trong đó đi sâu phân tích về hệ mật McEliece làm tiền đề cho các chương tiếp theo 1.1 Khái quát chung hệ mật mã cổ điển 1.1.1 Mô hình hệ thống truyền tin mật Nhiệm vụ cơ bản của mật mã là tạo ra khả năng liên lạc trên một kênh không mật cho hai người sử dụng sao cho người thám mã không thể hiểu được nội dung thông tin... giải mã tương ứng dz ∈ D thoả mãn dz(ez(x)) = x với mọi bản rõ x ∈ R Ta có thể coi mã khối là một trường hợp đặc biệt của mã dòng khi dùng khoá không đổi zi = K, với ∀i ≥ 1 1.2 Hệ mật khoá công khai 1.2.1 Khái quát chung Việc xây dựng các hệ mật khoá công khai là thiết kế một hệ mật sao cho khả năng tính toán để xác định quy tắc giải mã (dk) là rất thấp dù biết quy tắc mã 13 hoá ek Vì vậy quy tắc mã. .. BỘ VÀ PHÂN HOẠCH VÀNH ĐA THỨC 2.1 Khái niệm mã xyclic và vành đa thức 2.1.1 Mã tuyến tính a) Mã tuyến tính Mã tuyến tính độ dài n là mã mà từ mã của nó có các dấu mã là các dạng tuyến tính Mã tuyến tính (n,k) là mã tuyến tính độ dài n trong đó ta có thể chỉ ra được vị trí của k dấu thông tin trong từ mã Mã tuyến tính ngẫu nhiên là mã tuyến tính có các dấu mã được chọn ngẫu nhiên từ các dạng tuyến tính