1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu xây dựng cấp số nhân cyclic vào việc tạo khóa cho các mật mã khối (tt)

25 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 587,34 KB

Nội dung

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - ĐẶNG XUÂN ĐIỆP NGHIÊN CỨU SỬ DỤNG CẤP SỐ NHÂN CYCLIC VÀO VIỆC TẠO KHÓA CHO CÁC MẬT MÃ KHỐI Chuyên ngành: Truyền liệu mạng máy tính Mã số: 60.48.15 Người hướng dẫn khoa học: TS NGƠ ĐỨC THIỆN TĨM TẮT LUẬN VĂN THẠC SĨ HÀ NỘI - 2013 MỞ ĐẦU Lý chọn đề tài Mật mã khóa bí mật hay cịn gọi mật mã cổ điển có lịch sử phát triển từ lâu đời Cho đến ngày hệ mật sử dụng rộng rãi với ưu điểm bật như: Đơn giản (thời gian nhanh, yêu cầu phần cứng không phức tạp); Hiệu quả: (Tỷ lệ mã 1) dễ sử dụng cho ứng dụng nhạy cảm với độ trễn ứng dụng di động Các phương pháp xây dựng hệ mật khóa bí mật thường xây dựng phép thay thế, hoán vị kết hợp thay hoán vị bật hệ mật chuẩn mã liệu DES Đây phương pháp mật mã tổ chức Tiêu chuẩn Xử lý Thông tin Liên bang Hoa Kỳ chọn làm chuẩn thức vào năm 1976, sau chuẩn sử dụng rộng rãi phạm vi giới Phương pháp xử lý thông tin DES theo mật mã khối Khi sử dụng DES chế độ bình thường ECB có nhược điểm khối tin rõ đầu vào giống sử dụng khóa mã đầu giống nhau, điều nguy hiểm thám mã lợi dụng để phá mã Để giải vấn đề ta sử dụng DES chế độ liên kết mã khối (CBC) chế độ có nhược điểm giải mã sai khối thơng tin tồn khối thông tin bị giải mã sai Một phương pháp khác để khắc phục điểm yếu sử dụng khóa khác cho khối thơng tin đầu vào khóa tạo cách ngẫu nhiên tốt Tuy nhiên, việc tạo lưu trữ khóa kiểu ngẫu nhiên tốn không hiệu Cấp số nhân cyclic vành đa thức đặc biệt vành đa thức có hai lớp kề cyclic có tính chất số lượng phần tử cấp số nhân lớn xuất có tính gần giống ngẫu nhiên Việc tạo cấp số nhân đơn giản, cần đa thức sinh thêm đa thức ban đầu Với tính chất ta sử dụng cấp số nhân cyclic để sinh khóa cho mật mã khối nói chung hệ mật DES nói riêng Đây hướng nghiên cứu mở mà luận văn tập trung vào nghiên cứu Các kết luận văn góp phần vào việc nâng cao tính bảo mật chống lại khả thám mã mật mã khối Mục đích nghiên cứu Đề xuất phương pháp tạo khóa cho mật mã khối hệ khóa bí mật cấp số nhân cyclic vành đa thức Mô so sánh DES tiêu chuẩn với DES có khóa xây dựng từ cấp số nhân vành đa thức, từ đưa ưu điểm phương pháp đề xuất 2 Đối tượng phạm vi nghiên cứu Đối tương nghiên cứu: Mật mã khối; Nhóm nhân cấp số nhân vành đa thức Phạm vi nghiên cứu: Sử dụng cấp số nhân cyclic vành đa thức để tạo khóa cho hệ mật DES Phương pháp nghiên cứu Sử dụng lý thuyết mật mã học, cấu trúc đại số vành đa thức Kết hợp với việc tính tốn mơ hệ mật DES với khóa đề xuất Nội dung đồ án bao gồm Chương 1: Tổng quan mật mã học Chương 2: Nghiên cứu sử dụng cấp số nhân Cyclic vào việc tạo khóa cho mật mã khối Chương 3: Một số kết mô đánh giá CHƯƠNG TỔNG QUAN VỀ MẬT MÃ HỌC 1.1 Các khái niệm mật mã học 1.1.1 Sơ lược lịch sử khoa học mật mã 1.1.2 Giới thiệu hệ mật mã - Định nghĩa hệ mật mã - Các thuật ngữ 1.1.3 Những yêu cầu hệ mật mã 1.2 Hệ mật mã khóa bí mật 1.2.1 Sơ đồ chức hệ mật khóa bí mật Hình 1.1 Sơ đồ chức hệ mật khóa bí mật [1] 1.2.2 Hệ mật thay - Các hệ mật thay đơn biểu - Các hệ mật thay đa biểu 1.2.3 Các hệ mật hoán vị - Mật mã Rail fence - Mật mã Route - Mật mã Columnar 1.2.4 Chuẩn mã liệu DES - Giới thiệu DES Hình 1.2 Sơ đồ mã DES - Mơ tả thuật tốn - Hàm mật mã f - Khối tạo khóa K 64 bit PC-1 28 bit 28 bit C0 D0 LS - LS -1 C1 D1 PC-2 C16 D16 PC-2 K1 (48 bit) K16 (48 bit) Hình 1.3 Khối tạo khóa cho vịng mã hóa DES - Giải mã DES - Sự an toàn DES 1.2.5 Chuẩn mã liệu tiên tiến (AES) - Tổng quan AES - Thiết kế tổng quát AES Hình 1.4 Thiết kế tổng quát AES [4] 1.3 Hệ mật khóa cơng khai 1.3.1 Sơ đồ chức hệ mật khóa cơng khai Thám mã Nguồn M C Mã hóa C Kênh mở M Đích Giải mã A B KCB KRB Hình 1.5 Sơ đồ chức hệ mật khóa cơng khai KCB: Khóa cơng khai B KRB: Khóa bí mật B Mã hóa: C = E (M,KCB) Giải mã: M = E -1 (C, KRB) = D (C, KRB) [1] 1.3.2 Một số tốn sử dụng hệ mật khóa cơng khai 1.3.3 Ưu nhược điểm hệ mật khóa cơng khai 1.3.4 Xây dựng chương trình ứng dụng kiến trúc PGP Hình 1.6 Chương trình ứng dụng kiến trúc PGP Với mơ hình kết hợp ưu điểm hai hệ mật khóa bí mật hệ mật khóa cơng khai 1.3.5 Sử dụng mã hóa cơng khai để truyền khóa bí mật K 1.3.6 Sử dụng hệ mật mã khóa bí mật để mã hóa tin M 7 1.4 Kết luận chương Khi thiết kế mật mã vấn đề đảm bảo độ vững thuật toán vấn đề quan trọng Đánh giá độ bền vững thuật toán vấn đề lâu khó Phương pháp mã hóa cổ điển sử dụng giải thuật đơn giản, khơng gian khóa nhỏ Phương pháp mã hố cổ điển dễ dàng bị giải mã cách đốn chữ dựa phương pháp thống kê tần xuất xuất chữ mã so sánh với bảng thống kê quan sát rõ Để dùng mã hố cổ điển bên mã hố bên giải mã phải thống với chế mã hoá giải mã Việc thay đổi mã khó dễ bị lộ Hệ mật mã khóa đối xứng có khóa lập mã khóa giải mã trùng mật mã phải giữ bí mật có người lập mã người nhận mã biết mà thơi Khóa phải gửi kênh an toàn, kẻ địch cơng kênh phát khóa Thuật tốn mã hóa cơng khai thiết kế cho khóa sử dụng vào việc mã hóa khác so với khóa giải mã Khóa giải mã khơng thể tính tốn từ khóa mã hóa Nếu kẻ cơng cố tình tìm khóa giải mã gặp phải khó khăn thời gian số phép thử vô lớn, không khả thi tin có giá trị thời gian ngắn Khóa mã hóa gọi khóa cơng khai cịn khóa giải mã gọi khóa riêng Khóa cơng khai tin mã hóa gửi kênh thông tin không an toàn 8 CHƯƠNG NGHIÊN CỨU SỬ DỤNG CẤP SỐ NHÂN CYCLIC VÀO VIỆC TẠO KHÓA CHO MẬT MÃ KHỐI 2.1 Những vấn đề cấu trúc đại số Những vấn đề trình bày mục gồm có: - Nhóm - Vành - Trường - Trường hữu hạn 2.2 Vành đa thức 2.2.1 Khái niệm đa thức Nếu R vành giao hốn đa thức biến x vành R biểu thức có dạng: n 1 f ( x)   f i x i (2.4) i 0 Trong đó: fi – hệ số thuộc R Trong trường nhị phân GF(2) nhận giá trị x – biến (ẩn hình thức) 2.2.2 Vành đa thức Nếu R vành giao hốn vành đa thức R[x] vành tạo tập tất đa thức biến x có hệ số R Hai phép toán phép cộng phép nhân đa thức thông thường với số học hệ số thực vành R [1] Trong trường nhị phân, vành đa thức ký hiệu: (f(x); f, ) = Z2[x]/xn + e(x) = gọi phần tử đơn vị, deg e(x) = (f(x), +) nhóm phép cộng, thỏa mãn tiên đề nhóm (f(x), *) nửa nhóm phép nhân, khơng tồn f(x), g(x) mà f(x).g(x) = 2.2.3 Vành đa thức có hai lớp kề cyclic Vành đa thức theo modulo xn+1 gọi vành đa thức có hai lớp kề cyclic phân tích xn+1 thành tích đa thức bất khả quy trường GF(2) có dạng sau: xn + = (x + 1) n 1 x i 0 i (2.9) n 1 Trong (1+x) eo(x) = x i đa thức bất khả quy [3] i 0 Căn vào đặc điểm vành đa thức có hai lớp kề cyclic ta có thuật tốn xác định điều kiện để vành đa thức có hai lớp kề cyclic Theo thuật tốn ta xác định số giá trị n đảm bảo vành đa thức theo mod xn+1 vành đa thức có hai lớp kề cyclic Dưới số giá trị n thỏa mãn [3]: n = 11 13 19 29 37 53 59 61 67 83 101 107 131 139 149 163 173 179 181 197 211 227 269 293 317 347 349 373 379 389 419 421 443 461 467 491 509 523 541 547 557 563 587 613 619 653 659 661 677 701 709 757 773 787 797 821 827 829 853 859 877 883 907 941 947 1019 1061 1091 1109 1117 1123 1171 1187 1213 1229 1237 1259 1277 1283 1291 1301 1307 1373 1381 1427 1451 1453 1483 1493 1499 1523 1531 1549 1571 1619 1621 1637 1667 1669 1693 1733 1741 1747 1787 1861 1867 1877 1901 1907 1931 1949 1973 1979 1987 1997 2027 2029 2053 2069 2083 2099 2131 2141 2213 2221 2237 2243 2267 2269 2293 2309 2333 2339 2357 2371 2389 2437 2459 2467 2477 2531 2539 2549 2557 2579 2621 2659 2677 2683 2693 2699 2707 2741 2789 2797 2803 2819 2837 2843 2851 2861 2909 2939 2957 2963 3011 3019 3037 3067 3083 3187 3203 3253 3299 3307 3323 3347 3371 3413 3461 3467 3469 3491 3499 3517 3533 3539 3547 3557 3571 3581 3613 3637 3643 3659 3677 3691 3701 3709 3733 3779 3797 3803 3851 3853 3877 3907 3917 3923 3931 3947 3989 4003 4013 4019 4021 4091 4093 4099 4133 4139 4157 4219 4229 4243 4253 4259 4261 4283 4349 4357 4363 4373 4397 4451 4483 4493 4507 4517 4547 4603 4621 4637 4691 4723 4787 4789 4813 4877 4933 4957 4973 4987 5003 5011 5051 5059 5077 5099 5107 5147 5171 5179 5189 5227 5261 5309 5333 5387 5443 5477 5483 5501 5507 5557 5563 5573 5651 5659 5683 5693 5701 5717 5741 5749 5779 5813 5827 5843 5851 5869 5923 5939 5987 6011 6029 6053 6067 6101 6131 6173 6197 6203 6211 6229 6269 6277 6299 6317 6323 6373 6379 6389 6397 6469 6491 6547 6619 6637 6653 6659 6691 6701 6709 6733 6763 6779 6781 6803 6827 6829 6869 6883 6899 6907 6917 6947 6949 6971 7013 7019 7027 7043 7069 7109 7187 7211 7219 7229 7237 7243 7253 7283 7307 7331 7349 7411 7451 7459 7477 7499 7507 7517 7523 7541 7547 7549 7573 7589 7603 7621 7643 7669 7691 7717 7757 7789 7829 7853 7877 7883 7901 7907 7933 7949 8053 8069 8093 8117 8123 8147 8171 8179 8219 8221 8237 8243 8269 8291 8293 8363 8387 8429 8443 8467 8539 8563 8573 8597 8627 8669 8677 8693 8699 8731 8741 8747 8803 8819 8821 8837 8861 8867 8923 8933 8963 8971 9011 9029 9059 9173 9181 9203 9221 9227 9283 9293 9323 9341 9349 9371 9397 9419 9421 9437 9467 9491 9533 9539 9547 9587 9613 9619 9629 9643 9661 9677 9733 9749 9803 9851 9859 9883 9901 9907 9923 9941 9949 10 2.3 Các nhóm nhân cyclic vành đa thức 2.3.1 Nhóm nhân vành đa thức Tập đa thức f(x) vành đa thức Z2[x]/xn+1 với phép tốn nhân đa thức tạo nên nhóm nhân G = G Nếu g(x), f(x)  G g(x).f(x) = d(x)  G Trong nhóm nhân tồn phần tử đơn vị e(x) với f(x).e(x) = f(x) Trọng số đa thức: Trọng số đa thức a(x) ký hiệu W(a(x)) tổng hệ số khác biểu diễn đa thức đó: n 1 a ( x)   xi i 0 (2.10) Với a(x) = + x ta viết a(x) = 1.x0 + 1.x1  W(a(x)) = 2.3.2 Nhóm nhân cyclic vành đa thức - Nhóm nhân cyclic (CMG – Cyclic Multiplicate Groups) - Nhóm nhân cyclic đơn vị - Nhóm nhân cyclic với phần tử sinh a(x) - Đa thức đối xứng nhóm nhân cyclic đối xứng 2.3.3 Cấp số nhân cyclic vành đa thức Xét vành đa thức Z2[x]/ xn + với n lẻ, giả sử a(x) số hạng cấp số nhân cyclic q(x) công bội cấp số nhân Định nghĩa 2.10: Cấp số nhân cyclic (CGP - Cyclic Geometic Progressions) Cấp số nhân cyclic vành đa thức tập hợp có dạng sau: A(a,q) = {a(x), a(x).q(x), a(x).q 2(x), , a(x).qm -1(x)} Trong đó: m số số hạng cấp số nhân A(x) số hạng đầu cấp số nhân q(x) công bội a(x).qm(x)  a(x) mod xn + Giá trị m xác định cấp nhóm nhân cyclic [3] Trong trường hợp ta chọn số hạng đầu a(x) = 1, cơng bội q(x) thì: A(1,q) = {1, q(x), q2(x), …, q m-1(x)}; q m(x) = q0(x) =1; (2.16) 11 cấp số nhân cyclic cấp m 2.4 Phương pháp tạo khóa cho hệ mật mã khối cấp số nhân cyclic 2.4.1 Đề xuất sử dụng cấp số nhân cyclic cho việc tạo khoá Ta nhận thấy hệ mật tuyến tính khơng an tồn Bởi vậy, để sử dụng phải liên tục thay đổi khoá Để thực điều kiện ta làm sau: - Hai bên liên lạc chọn trước phần tử nguyên thủy a(x) với: ord a(x) = 2n-1–1 (a(x) phần tử sinh nhóm nhân cyclic có cấp = 2n-1–1) - Số phần tử xác định công thức sau: M = (2n-1–1) (2.17) Ở đây, (.) hàm -Euler 2.4.2 Đề xuất sử dụng dãy m lồng ghép cho việc tạo khóa Đối với vành đa thức có hai lớp kề cyclic, phân tích vành ln có phân tích nhị thức dạng: n 1 x n   1  x  x i i 0 (2.18) Vành đa thức có hai lớp kề cyclic có hai đa thức h(x) dạng sau: + h(x) = (1+x) và: n 1 + h(x) = x i i0 Cấp lớn vành đa thức có hai lớp kề cyclic 2n-1 -1 Trên vành này, hồn tồn xây dựng dãy m có chiều dài L = n-1 -1 cấp lớn đa thức vành Cách thức xây dựng dãy m lồng ghép dựa phân hoạch theo modulo h(x), với phương pháp phân hoạch tạo cấp số nhân có chiều dài n1  vành sau: ( x) mod h( x), i  1, 2, 2n1  (2.19) (a(x) công bội cấp số nhân) Ở h(x) đóng vai trị đa thức sinh để tạo dãy m đa thức bất khả quy bậc n-1 Muốn phân hoạch có chiều dài cực đại L = n-1 -1 đa thức a(x) chọn làm cơng bội phải thỏa mãn: Max(ord (a(x)) = 2n-1 -1 (2.20) 12 Để minh họa cụ thể, ta sẽ xây dựng dãy m vành x13 + Vành có cấp cực đại là: max(ord (a(x)) = 213-1 -1 = 4095 = 3.3.5.7.13 Vành có cấp hay chiều dài phân hoạch bội số chung tổ hợp 3, 5, 7,13 Ta tạo dãy m vành có chiều dài hay chu kỳ 4095: 212 -1 = 4095 12 Ở đây, ta thấy: h(x) = x i i 0 Công bội a(x) chọn đa thức có cấp 4095, chẳng hạn ta chọn tam thức bảng sau để trở thành công bội a(x) phân hoạch tạo dãy m theo modulo h(x) 2.5 Kết luận chương Chương trình bày số khái niệm đại số trừu tượng, khái niệm về: vành đa thức, nhóm nhân, cấp số nhân cyclic vành đa thức, đặc biệt vành đa thức có hai lớp kề cyclic Đây vành đặc biệt không sử dụng xây dựng mã cổ điển, nhiên với cấu trúc cấp số nhân cyclic vành đa thức có hai lớp kề ta ứng dụng vào việc xây dựng hệ mật việc tọa khóa cho hệ mật lý thú Cấp số nhân cyclic vành đa thức đặc biệt vành đa thức có hai lớp kề cyclic có tính chất số lượng phần tử cấp số nhân lớn xuất có tính gần giống ngẫu nhiên Việc tạo cấp số nhân đơn giản, cần đa thức sinh thêm đa thức ban đầu Với tính chất ta sử dụng cấp số nhân cyclic để sinh khóa cho mật mã khối nói chung Việc đề xuất sử dụng cấp số nhân cyclic vào việc tọa khóa cho mật mã khối trình bày chương 13 CHƯƠNG MỘT SỐ CHƯƠNG TRÌNH TÍNH TỐN KHĨA VÀ MÃ HĨA 3.1 Tạo khóa mã hóa cho khối tin hệ mật khóa bí mật 3.1.2 Sử dụng cấp số nhân có cấp cực đại Sơ đồ mã hóa giải mã mơ tả hình 3.1 Các khối tin M i Mã hóa Các khối mã Ci Các khóa tương ứng Ki Ci Kênh mở Thám mã Giải mã Các khóa tương ứng Ki Trao đổi thỏa thuận khóa Tạo khóa K (cấp số nhân cyclic) Các khối tin M i Tạo khóa K (cấp số nhân cyclic) Hình 3.1 Sử dụng cấp số nhân cyclic làm khóa mã hóa cho khối tin Như phân tích chương 2, vành đa thức có hai lớp kề Z [x] / x n  có phần tử có cấp cực đại là: n1  , với n lớn ta tạo chuỗi khóa dài Dưới ví dụ tạo khóa cho hệ mật DES Ví dụ 3.1: Bước 1: Chọn n Vì DES sử dung khóa 56 bit ta chọn n  59 , sau tạo khóa ta loại bớt bit Bước 2: Chọn đa thức sinh: a( x)   x9  x18  x 27  x36  x 45  x54  (0 18 27 36 45 54) (Chú ý: (0 18 27 36 45 54) biễu diễn dạng số mũ a( x) ) Bước 3: Chọn đa thức đầu: b( x)   x  x  (012) Bước 4: Tính cấp số nhân cyclic: K  b( x) a ( x) i mod x 59  1 ; i  1, 58  Bảng 3.1 32 khóa (phần tử cấp số nhân cyclic) K 14 Bảng 3.1 Các khóa K tạo theo cấp số nhân cyclic Ki Các bit khóa tương ứng Trọng số 00000000011100000011100000011100000011100000011100000011100 18 00000000000001110011100000000001110011100000000001110011100 18 11001110111001110000001110011101110100101110111001110000001 32 00011100000001110000000000111000000011111100000001110000000 18 00010011110001111001000001001011101110010010011101110100100 28 10011100111110111110011100111111000000011100111000000011111 34 01101011001101000101100110101100101110011100000011100111010 30 00000011100001110001110000111000000000011100000000001110000 18 00010010001100001010101000011000100100000101010011001010100 20 10 01110011000100111001101100111001000110011100000110000110000 26 11 10011010110001011101001010010111010001101011001110100001011 30 12 11000011100000001111111110111111111000000011100001111111111 36 13 11111111001001100101110010101010011101001100100111111111001 36 14 00111101000100110111111101011011010111111101100100010111100 36 15 01100011111111100100000101101010101011010000010011111111100 32 16 00000000000011100001110000111000000000111000011100001110000 18 17 10101111010101110100110101101011001010011010110101100101110 34 18 01101000000101101101010000011010000010100000101100000101011 22 19 10110011011011001101000001000011100011000110001110000100000 24 20 00100011011111101100010000001110000111100000111100001110000 26 21 11100001110101101011100001111110110110011000001100110110111 34 22 10101111101110100101110111110101001010000110000011000010100 30 23 01111001000100001111000010001001111011001110010001001110011 28 24 01000111000011100000000001110000111000100100100100010010010 20 25 01100000111000110001011010001100011100000110110110000011011 26 26 00111001001000101101000110001011010001001001110010100000101 24 27 10101010110110111101000110011000101111011011010101011110111 36 28 11001111100111110001111101111110111110001111100111110011101 42 29 01001110101110010110001011001001001101000110100111010111001 30 30 01010000011001001111100011100001100001110001111100100110000 26 31 01100011000111111111001000001011011011010000010011111111100 32 32 00000000000000000111000011100001110000111000011100001110000 18 Tổng số: Với 32 giá trị K bảng 3.1, xác suất xuất bit là: p (1)  882 882   0, 4672 59  32 1888 882 15 Khi tính tốn với số lượng khóa nhiều xác suất bit “1” bit “0” tiến đến xấp xỉ 0,5 Tiến hành mã hóa DES với khóa đề xuất bảng 3.1 Mã hóa 32 khối tin đầu vào giống là: M hex  0123456789ABCDEF (16 ký tự Hexa = 64 bit) M bin  000010000 100 110000 10 10 100 1101110000110010101110 1001110 1101111111 Mỗi lần mã hóa ta sử dụng khóa khác tương ứng từ K1  K 32 Kết tính tốn bảng 3.2 Bảng 3.2 Khoảng cách Hamming từ mã dùng khóa khác mã hóa tin đầu vào Khóa Ki Mã đầu tương ứng Ci Khoảng cách Hamming với mã d(Ci ,C1 ) BDC3DAA77A681FAD AC5D74D6B38EF6BF 32 FF5279272F6F6A54 28 5081824600E3E19D 33 83E9399C8CDCEAB7 37 106FFD0B6FA45F25 27 49D08D1FE4700085 31 018694BB472D38C6 32 3BBDE9FF9D6F647E 36 10 FDD34100740B12B3 26 11 97DD8354EE53E146 38 12 5E3EB38E68A692F1 34 13 22448B335BED82D7 31 14 FF34613435986E5E 38 15 7E85C59254CA5EB7 28 16 4F9A95870F915AE6 33 17 A53609C3DC149C7D 31 18 1768B4FA17F15447 37 19 9FBBF3D8E57EDE0D 30 20 FA79FFA616815D21 27 21 92224821F91DB075 33 22 B5DBE6BB67033181 26 16 23 8B7B5E5E4E033529 29 24 FECCA9A2B11A3CAC 27 25 24EC0159B5D7DE97 42 26 BB5EA5287C67452B 32 27 40448AA6D5E2921E 32 28 69C856089CD4029F 33 29 C83EC39274FAA04E 37 30 B097BAF417E0A408 29 31 A0312383DC4A7A41 32 32 D174D0EB96AECFCD 29 Khoảng cách Hamming trung bình: d tb  32  d (C ,C )  31,93 31 i  i 3.1.2 Sử dụng cấp số nhân lấy theo modulo h(x) Như đề cập chương 2, ta sử dụng dãy m lồng ghép xây dựng từ vành đa thức có hai lớp kề lấy theo modulo đa thức h( x) cho việc tạo khóa Đối với vành đa thức có hai lớp kề cyclic, phân tích vành ln có phân tích nhị thức dạng: n 1 x n   1  x   xi i 0 (3.1) Có hai đa thức h( x) thỏa mãn [3]: n 1 h1 ( x)  (1  x); h2 ( x)   x i i 0 Chọn h2 ( x ) làm đa thức lấy moddulo, tính tốn phần tử cấp số nhân bình n2 thường ý thay thế: x n1   xi i0 Ví dụ 3.2: Sử dụng cấp số nhân cyclic vành đa thức có hai lớp kề lấy theo modulo h( x) tạo khóa cho DES Bước 1: Chọn n  59 Bước 2: Chọn đa thức sinh: a( x)   x10  x19  x 28  x37  x 46  x55  (0 10 19 28 37 46 55) 17 Bước 3: Chọn đa thức đầu: b( x)   x  x  (012) 58 Bước 4: Chọn h( x)   xi i 0 Tính cấp số nhân cyclic: K  b( x ) a ( x ) i mod h( x ) ; i  1, 58  Bảng 3.2 32 khóa (phần tử cấp số nhân cyclic) K Bảng 3.3 Các khóa K tạo từ cấp số nhân lấy theo modulo h(x) Ki Các bit khóa tương ứng Trọng số 0000000000111000000111000000111000000111000000111000000111 18 1111111111111110001100011111111110001100011111111110001100 41 0011100111011100111000000111001110111010010111011100111000 32 0000000111000000011100000000001110000000111111000000011100 18 1101111101100001110000110111110110100010001101101100010001 31 0111111001110011111011111001110011111100000001110011100000 34 0111010011010110011010001011001101011001011100111000000111 30 0111000000000011100001110001110000111000000000011100000000 18 1101010111110110111001111010101011110011101101111101010110 39 10 1111001111100011001110110001100100110001101110011000111110 33 11 0101111010001100101001110100010110101101000101110010100110 29 12 0011111111111100001110000000111111111011111111100000001110 36 13 0111111111001111111110010011001011100101010100111010011001 36 14 1101110100001111000010111011001000000010100100101000000010 23 15 0100111111111000110001111111110010000010110101010101101000 32 16 0011100001110000000000000000111000011100001110000000001110 18 17 1011010110010111010101111010101110100110101101011001010011 34 18 0001011000001010110110100000010110110101000001101000001010 22 19 0110001110000100000101100110110110011010000010000111000110 24 20 1111100001111000111111011100100000010011101111110001111000 33 21 0110000011001101101111110000111010110101110000111111011011 34 22 1111001111100111101011010100000100010110100010000010101101 29 23 1100111001000100111001101111001000100001111000010001001111 28 24 1110110110110111011011011011100011110001111111111000111100 39 25 0011111001001001111100100100111110001110011101001011100111 33 26 1000100100111001010000010100111001001000101101000110001011 24 27 1011110110110101010111101111010101011011011110100011001100 36 28 1000001110000011000001100010001100000110000011100000100000 17 29 0100110100011010011101011100101001110101110010110001011001 30 18 30 0011000011100011111001001100000101000001100100111110001110 26 31 1011011011010000010011111111100011000110001111111110010000 32 32 1111000111100011110001111000111111111111111111111000111100 41 Tổng số: 950 Xác suất xuất bit 32 khóa bảng 3.3 là: p (1)  950 882   0,5119 58  32 1856 Tương tự ta tiến hành mã hóa DES với khóa đề xuất bảng 3.3 Mã hóa 32 khối tin đầu vào giống là: M hex  0123456789ABCDEF (16 ký tự Hexa = 64 bit) M bin  000010000 100 110000 10 10 100 1101110000110010101110 1001110 1101111111 Mỗi lần mã hóa ta sử dụng khóa khác tương ứng từ K1  K 32 ; khóa có độ dài 58 bit, nên trước mã hóa ta loại bỏ bit cuối Kết tính tốn bảng 3.4 Bảng 3.4 Khoảng cách Hamming từ mã dùng khóa cấp số nhân cyclic lấy theo modulo h(x) Khóa Ki Mã đầu tương ứng Ci Khoảng cách Hamming với mã d(Ci ,C1 ) D35F50062DD316B2 A717ED35C53550A7 31 FEEB7555FD36D06D 34 FD9F239D5E8F85E3 32 233E0D88FFF30012 26 E72E217470F14BB5 30 E13D32E2147451CA 30 1AFED435214EF6B6 24 6106CE1FB643F2F7 30 10 58DA7F7C4E0A4C39 34 11 D38C0E8E0016F383 28 12 5913EE4312E50C9C 32 13 6BFF04241F981B38 24 14 70BC5F96C29B4A12 30 15 507CA10955BBE09D 33 16 9A16E4D224F43136 26 17 6DC112F8675574A9 33 19 18 FBDE13FF5A51BB96 28 19 4D49AD0C2A9DD231 30 20 3BA394D94E546B5D 41 21 ACC0BD32B8025C7D 39 22 7684A26ACE3D7A47 40 23 572D31E667C76BD9 28 24 AC1B1A745D2F68CE 36 25 1034FC69A87465B9 35 26 DF8DA9C038198154 33 27 A5F488151963C4CF 33 28 BB237CF0930AB2D8 35 29 83062A99E673F1E9 35 30 0968CCFAFAB5A0BD 39 31 80DC1226CECDA705 20 32 3BC515A5F9EAB133 30 Khoảng cách Hamming trung bình: d tb  32  d(C ,C )  31,871 31 i 2 i 3.2 Tạo khóa cho DES Sơ đồ mã hóa giải mã theo phương pháp mơ tả hình 3.2 Trong sơ đồ mã hóa DES-K giải mã DES-1-K tương tự DES DES-1 nhiên tạo khóa thay cấp số nhân Các khối tin M i DES-K Các 16 khóa K1  K16 Tạo khóa K (cấp số nhân cyclic) Các khối mã Ci Ci Kênh mở Thám mã Trao đổi thỏa thuận khóa DES-1-K Các 16 khóa K1  K16 Tạo khóa K (cấp số nhân cyclic) Hình 3.2 Sử dụng cấp số nhân tạo khóa cho DES Các khối tin M i 20 Để tạo khóa cho DES ta sử dụng cấp số nhân có cấp cực đại cấp số nhân lấy theo modulo h(x) Các bước tạo khóa tương tự mục 3.1.1 3.1.2 Chỉ có điểm khác mã hóa khối tin 64 bit, sử dụng 16 phần tử (các khóa con) cấp số nhân, ta sử dụng khóa cấp số nhân tạo khóa, tức hết 16 phần tử ta lại tiếp tục lấy 16 phần tử Chiều dài khóa đưa vào mã hóa 48 bit, nên ta xây dựng cấp số nhân vành Z [x] / x53  , sau loại bỏ bit cuối để cịn 48 bit Dưới mô hệ mật DES với khóa xây dựng từ cấp số nhân cyclic Ví dụ 3.3 Tạo khóa từ cấp số nhân cyclic có cấp cực đại Bước 1: Chọn vành Z 2[x] / x53  ( n  53 ) Bước 2: Chọn đa thức sinh: a( x)   x8  x16  x 24  x 32  x38  x 44  (0 16 24 32 38 44) Bước 3: Chọn đa thức đầu: b( x)   x 20  x 40  (0 20 40) Bước 4: Tính cấp số nhân cyclic: K  b( x) a ( x) i mod x 53  1 ; i  1, 52  Sau tính tốn phần tử cấp số nhân, ta loại bit cuối để khóa có độ dài 48 bit Bảng 3.5 64 khóa khóa K, biểu diễn dạng hexa (48 bit tương ứng 12 ký tự) Bảng 3.5 Các khóa dùng cho DES TT Khóa Ki TT Khóa Ki TT Khóa Ki TT Khóa Ki 921091391510 17 1DB0742C03F9 33 B40569F8BC2B 49 0D7CD40A6CDF D0C89D081190 18 BEE5835A7F0C 34 CD02E6729509 50 6ED3EF5776CE 270EB3A8F321 19 51 4B0D57CF0D02 11E2A50C32D4 20 2126CC7BA7B1 36 8F1D94157AB4 52 C1EE10D0F98C 507296C60D24 21 36F91A8E66AD 37 492B12F8D04D 53 2CA21FEDABDF 08969F8FA922 22 83FE14443658 38 DB26D702EE02 54 E81E9161EBDD 386EC01A374B 23 B0A1D8D36E74 39 21648F528178 55 664DA6281160 242006406851 24 478AB77D6293 40 38E822F9779A 56 69FDAEEB0FC5 C74A2CC88314 25 2A189F0266D4 41 A80514C525D7 57 B31A87E536AA 10 AD7BEF258314 26 E860F219A2F3 42 97978B7DB34E 58 5166DECE743B 1DF21442241F 35 4CAE59D1D8D5 21 11 23E61DDCD553 27 671924CD38EE 43 04BB23D8B640 59 B2CE8E2290F4 12 432534DB905B 28 4230F22F80E5 44 69FF3018394B 60 05D3E2DED55D 13 9450D1B2C58D 29 FC1728059D00 45 3FF74866905D 61 86332FCFC872 14 C7148C2173A7 30 36A48F9D3C4F 46 5A657B6F0E68 62 0F95B250C71C 15 8FED803CF554 31 6495B97005CF 47 1A13D8B804C8 63 EEBF55D9294B 16 00AB01282053 32 5182254C8015 48 D93AF3A21FB8 64 7904A7808A10 Tiến hành mã hóa 32 khối tin giống nhau, khối tin sử dụng 16 khóa ta cần đến 32 x 16 = 512 khóa từ cấp số nhân cyclic Các khối tin đầu vào chọn M hex  0123456789ABCDEF64 bit Bảng 3.6 Khoảng cách Hamming từ mã dùng khóa cấp số nhân cyclic Khóa Ki Mã đầu tương ứng Ci Khoảng cách Hamming với mã d(Ci ,C1 ) D9DAFE956E242ABA 26F9ACE1DE3F7D21 35 5FA30E9B12A23CF5 31 66E85FF80173DE4F 40 C903070BF448A8CC 32 4581EB63E18768BF 31 FB96129F395FF543 36 898C7DD6ABC040BD 27 491BB84189BEB55F 33 10 D08BA8098305DF1A 29 11 9E16B8722881D338 32 12 AFD07335ED1D106F 29 13 C274792B387343EE 35 14 240B5BE044C63DD8 34 15 C1EDC16BFC843AE7 31 16 68AAFEE99214111D 30 17 CADA444D3AEF6EC3 27 18 2A3670DA632EB11B 33 19 602757F470287766 35 20 D3F7B8EFFAAF05FD 30 21 A7DDE80EC55CF3F9 34 22 DD9F017EBF413FE0 33 22 23 0362A752E0919F04 38 24 FF81144D3BB453A6 31 25 666B5BFC5261723D 33 26 986A4264368260EA 27 27 F216DF9C010CCFC9 30 28 76AA10757A96CF48 34 29 0324928704D9D5C2 41 30 E195278E4A337967 33 31 2A434D2A7317D723 41 32 2A0223DF803FC410 39 Khoảng cách Hamming trung bình: d tb  32 d (C1 ,Ci )  1024  33, 03  31 i  31 3.3 Kết luận chương Nội dung chương đề xuất phương pháp tạo khóa cho hệ mật khóa bí mật hai phương pháp: Xây dựng khóa từ cấp số nhân cyclic có cấp cực đại khóa xây dựng theo dãy m lồng ghép vành đa thức có hai lớp kề cyclic, thực chất cấp số n 1 nhân lấy theo modulo đa thức h( x)   xi Từ tính tốn mơ khoảng cách i 0 Hamming từ mã đầu khối thông tin đầu vào cho thấy từ mã đầu có tính khuếch tán tốt, điều khắc phục hạn chế hệ mật khóa bí mật tin đầu vào giống mã đầu giống 23 KẾT LUẬN Các nghiên cứu mật mã cấp số nhân cyclic vành đa thức đồ án nhằm tận dụng tối đa đặc điểm chúng để tạo khóa cho mật mã khối Đồ án đạt số kết như: Sử dụng cấp số nhân cyclic vành đa thức có hai lớp kề từ cấu trúc đại số nhóm nhân cấp số nhân để tạo khóa cho mật mã khối nói chung hệ mật DES nói riêng cách đơn giản Số khóa tạo lớn Giải mã mã hóa cách linh hoạt Nghiên cứu cách tạo m dãy lồng ghép vành đa thức có hai lớp kề cyclic theo n 1 modulo đa thức h( x)   xi i 0 Từ tính tốn mơ cho thấy từ mã đầu có tính khuếch tán tốt, điều khắc phục hạn chế hệ mật khóa bí mật tin đầu vào giống mã đầu giống Chúng ta sử dụng cấp số nhân cyclic vành đa thức có hai lớp kề để tạo khóa cho mật mã khối để thay cho phương pháp sử dụng DES chế độ liên kết mã khối tránh lỗi giải mã sai khối thơng tin tồn khối thơng tin bị giải mã sai Do thời gian nghiên cứu hạn chế nên chắn đồ án cịn nhiều thiếu sót, mong thầy giáo, đồng nghiệp bạn bè đóng góp ý kiến bổ sung để đồ án tốt ... Thám mã Giải mã Các khóa tương ứng Ki Trao đổi thỏa thuận khóa Tạo khóa K (cấp số nhân cyclic) Các khối tin M i Tạo khóa K (cấp số nhân cyclic) Hình 3.1 Sử dụng cấp số nhân cyclic làm khóa mã hóa... Tạo khóa K (cấp số nhân cyclic) Hình 3.2 Sử dụng cấp số nhân tạo khóa cho DES Các khối tin M i 20 Để tạo khóa cho DES ta sử dụng cấp số nhân có cấp cực đại cấp số nhân lấy theo modulo h(x) Các. .. vào nghiên cứu Các kết luận văn góp phần vào việc nâng cao tính bảo mật chống lại khả thám mã mật mã khối Mục đích nghiên cứu Đề xuất phương pháp tạo khóa cho mật mã khối hệ khóa bí mật cấp số

Ngày đăng: 19/03/2021, 17:52

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN