Giáo trình Bảo mật thông tin: Phần 1 - ĐH Sư phạm kỹ thuật Nam Định

88 29 0
Giáo trình Bảo mật thông tin: Phần 1 - ĐH Sư phạm kỹ thuật Nam Định

Đ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

Giáo trình Bảo mật thông tin: Phần 1 cung cấp cho người học những kiến thức như: Giới thiệu chung về mật mã, Mật mã cổ điển, Chuẩn mã dữ liệu. Mời các bạn cùng tham khảo để nắm chi tiết nội dung giáo trình!

Giáo trình Bảo mật thơng tin MỤC LỤC LỜI NĨI ĐẦU CHƢƠNG 1: GIỚI THIỆU CHUNG VỀ MẬT MÃ 1.1 Sơ lƣợc lịch sử mật mã 1.1.1 Mật mã cổ điển 1.1.2 Mật mã đại .7 1.2 Các hệ thống mật mã 1.2.1 Sơ đồ hệ thống mật mã 1.2.2 Yêu cầu hệ mật mã 1.2.3 Mã khối mã dòng 1.3 Mật mã khóa đối xứng mật mã khóa cơng khai 10 1.3.1 Hệ mật mã khóa đối xứng .10 1.3.2 Hệ mật mã khóa cơng khai 11 1.4 Các tốn an tồn thơng tin 12 1.5 Thám mã tính an tồn hệ mật mã .13 1.5.1 Vấn đề thám mã .13 1.5.2 Tính an tồn hệ mật mã 14 CHƢƠNG 2: MẬT MÃ CỔ ĐIỂN 16 2.1 Giới thiệu 16 2.2 Cơ sở toán học 17 2.2.1 Tính chia hết số nguyên 17 2.2.2 Thuật toán Euclide thuật toán Euclid mở rộng 18 2.2.3 Quan hệ đồng dƣ số học modulo m 21 2.2.4 Phƣơng trình đồng dƣ 24 2.2.5 Các lớp thặng dƣ 25 2.2.6 Hàm Euler 26 2.3 Một số hệ mật mã đơn giản 26 2.3.1 Hệ mật mã dịch chuyển (Shift cipher) 26 2.3.2 Hệ mật mã thay (substitution cipher) 28 2.3.3 Hệ mật mã Affine 29 2.3.4 Hệ mật mã Vigenere 31 2.3.5 Hệ mật mã Hill 32 2.3.6 Hệ mật mã hoán vị .36 Giáo trình Bảo mật thơng tin 2.3.7 Các hệ mật mã dòng 37 2.4 Mã thám hệ mật mã cổ điển 40 2.4.1 Thám hệ mật mã Affine 42 2.4.2 Thám hệ mật mã thay 43 2.4.3 Tấn công với rõ biết hệ mật mã Hill 45 2.4.4 Thám mã hệ mật mã Vigenère 46 2.4.5 Thám mã hệ mã dòng xây dựng LFSR 51 BÀI TẬP 54 CHƢƠNG 3: CHUẨN MÃ DỮ LIỆU 58 3.1 Giới thiệu hệ mật mã chuẩn 58 3.2 Hệ mật mã DES 59 3.2.1 Mô tả DES 59 3.2.2 Cách hoán vị bit 61 3.2.3 Cách tính bảng khố từ khố ban đầu K 62 3.2.4 Cách tính hàm f (Feistel Function) 67 3.2.5 DES thực tế 76 3.2.6 Phép tối ƣu hoá thời gian - nhớ 76 3.2.7 Độ an toàn việc thám mã DES 79 3.3 Hệ mật IDEA 82 3.3.1 Khái quát chung hệ mật IDEA 82 3.3.2 Một số phép toán 82 3.3.3 Mơ tả thuật tốn IDEA 83 3.3.4 Những đặc tính quan trọng 88 CHƢƠNG 4: CÁC HỆ MẬT MÃ KHỐ CƠNG KHAI 89 4.1 Giới thiệu mật mã khố cơng khai 89 4.1.1 Một số toán 90 4.1.2 Một số hệ mật mã khố cơng khai quan trọng : 93 4.1.3 Hàm cửa sập chiều 93 4.1.4 Định nghĩa hệ mật mã khóa cơng khai 95 4.2 Kiểm tra tính nguyên tố theo xác suất 95 4.2.1 Một số khái niệm định nghĩa 96 4.2.2 Thuật toán kiểm tra số nguyên tố theo xác suất 100 4.3 Một số kiến thức toán học 101 4.3.1 Định lý phần dƣ China 101 4.3.2 Một số định lý số học 102 Giáo trình Bảo mật thông tin 4.3.3 Phần tử nguyên thủy 104 4.3.4 Tính đồng dƣ lũy thừa lớn (xe mod n) 105 4.4 Hệ mật mã RSA .107 4.4.1 Định nghĩa 107 4.4.2 Thực hệ mật mã RSA 108 4.4.3 Tính bảo mật hệ mật mã RSA .108 4.4.4 Các phƣơng pháp công hệ mật mã RSA .109 4.5 Hệ mật mã Rabin 116 4.5.1 Định nghĩa 116 4.5.2 Tính an tồn hệ mật mã Rabin 118 4.6 Các thuật tốn phân tích thừa số ngun tố .119 4.6.1 Phƣơng pháp p-1 119 4.6.2 Thuật toán Dixon sàng bậc hai 120 4.6.3 Các thuật tốn phân tích thực tế 122 4.7 Hệ mật mã Elgamal giải thuật rời rạc 123 4.7.1 Hệ mật Elgamal 123 4.7.2 Tính an tồn hệ mật mã ElGamal 124 4.7.3 Các thuật toán cho toán Logarithm rời rạc 125 4.8 Các hệ mật dựa toán NP đầy đủ 129 4.8.1 Khái niệm độ phức tạp tính toán 129 4.8.2 Nguyên tắc chung xây dựng hệ mật dựa toán NP đầy đủ 129 4.8.3 Hệ mật xếp ba lô Merkle – Hellman 130 4.8.4 Hệ mật McEliece 132 BÀI TẬP 138 CHƢƠNG 5: CHỮ KÝ ĐIỆN TỬ HÀM HASH VÀ PHÂN PHỐI KHOÁ 142 5.1 Các sơ đồ chữ ký điện tử 142 5.1.1 Khái niệm sơ đồ chữ ký số 143 5.1.2 Phân loại chữ ký số .144 5.1.3 Sơ đồ chữ ký RSA (đề xuất năm 1978) .145 5.1.4 Sơ đồ chữ ký Elgamal 146 5.1.5 Chuẩn chữ ký điện tử 150 5.1.6 Chữ ký lần 151 5.1.7 Các chữ ký không chối đƣợc .153 5.2 Các hàm Hash 155 5.2.1 Các chữ ký hàm Hash .155 Giáo trình Bảo mật thơng tin 5.2.2 Hàm Hash không va chạm 156 5.2.3 Hàm Hash logarithm rời rạc 157 5.2.4 Các hàm Hash mở rộng 159 5.2.5 Hàm Hash MD4 159 5.3 Phân phối thoả thuận khoá 165 5.3.1 Giới thiệu 165 5.3.2 Phân phối khoá trƣớc 167 5.3.3 Kerboros 170 5.3.4 Trao đổi khoá Diffie - Hellman 171 BÀI TẬP 177 Giáo trình Bảo mật thơng tin LỜI NĨI ĐẦU Từ ngƣời có nhu cầu trao đổi thơng tin với nhu cầu giữ bí mật thơng tin xuất Trong thời đại ngày nay, với phát triển khoa học kỹ thuật, phƣơng tiện truyền thông ngày đa dạng, việc trao đổi thông tin trở nên dễ dàng việc giữ bí mật thơng tin khó khăn Các trao đổi thơng tin qua mạng Intenet, hình ảnh mặt đất, đàm thoại hữu tuyến vơ tuyến… dễ dàng thu đƣợc nhờ thiết bị điện tử mặt đất từ vệ tinh nên an toàn thông tin trở thành nhu cầu bắt buộc cho hệ thống ứng dụng Từ thời xa xƣa, ngƣời nghĩ cách che dấu thông tin cách biến đổi thơng tin thành dạng thơng tin khác mà ngƣời ngồi khơng hiểu đƣợc, đồng thời có cách khơi phục lại ngun dạng ban đầu để ngƣời hiểu đƣợc Phƣơng pháp thực nhƣ gọi mã hóa liệu, sau phát triển thành ngành khoa học gọi mật mã học Đây kỹ thuật lâu đời việc đảm bảo an tồn thơng tin Ngày nay, với phát triển ngành khoa học, kỹ thuật mã hóa ngày đa dạng tinh vi Cơng nghệ mã hóa thơng tin thu hút nhiều quan tâm nhà khoa học giới Từ chỗ đƣợc sử dụng lĩnh vực trị, qn sự, mã hóa liệu đƣợc đƣa vào sử dụng lĩnh vực Hiện có nhiều kỹ thuật mật mã khác nhau, kỹ thuật có ƣu nhƣợc điểm riêng Để đáp ứng nhu cầu học tập tìm hiểu sinh viên ngành Công nghệ thông tin, giáo trình Bảo mật thơng tin đƣợc biên soạn giúp sinh viên có nhìn tổng quan lĩnh vực an tồn bảo mật thơng tin, tiếp cận số phƣơng pháp mã hóa liệu, làm sở cho nghiên cứu mở rộng Giáo trình gồm chƣơng: Chƣơng giới thiệu tổng quan mật mã, chƣơng tóm tắt sơ lƣợc mã hóa cổ điển, chƣơng trình bày chuẩn mã liệu, chƣơng nêu số hệ mật mã khóa công khai, chƣơng giới thiệu số sơ đồ chữ ký điện tử, hàm Hash phân phối khóa Giáo trình đƣợc biên soạn theo khung chƣơng trình mơn học Bảo mật thông tin, nội dung dựa sở “Cryptography: Theory and Practice” Douglas Stinson, ngƣời dịch Nguyễn Bình Với mục đích trang bị kiến thức sở giúp sinh viên tiếp cận với phƣơng pháp bảo vệ liệu cách mã hóa, giáo trình trình bày tóm tắt phần lý thuyết toán học đƣợc áp dụng hệ mật mã, đƣa ví dụ minh họa cụ thể, cuối chƣơng có tập Do lần đầu biên soạn nên khơng tránh khỏi sai sót lỗi in ấn định Tác giả xin vui lịng tiếp nhận đóng góp giúp cho giáo trình “Bảo mật thơng tin” ngày tốt Giáo trình Bảo mật thơng tin CHƢƠNG 1: GIỚI THIỆU CHUNG VỀ MẬT MÃ 1.1 Sơ lƣợc lịch sử mật mã Nhu cầu sử dụng mật mã xuất từ sớm, từ ngƣời biết trao đổi truyền thông tin cho nhau, đặc biệt thơng tin đƣợc thể dƣới hình thức ngơn ngữ, thƣ từ Các hình thức mật mã sơ khai đƣợc tìm thấy từ khoảng bốn nghìn năm trƣớc văn minh Aicập cổ đại Trải qua hàng nghìn năm lịch sử, mật mã đƣợc sử dụng rộng rãi khắp giới để giữ bí mật cho việc giao lƣu thông tin nhiều lĩnh vực hoạt động ngƣời quốc gia, đặc biệt lĩnh vực trị, quân sự, ngoại giao Mật mã học khoa học nghiên cứu mật mã: Tạo mã Phân tích mã Phân tích mã kỹ thuật phân tích mật mã, kiểm tra tính bảo mật phá vỡ bí mật Phân tích mã cịn đƣợc gọi Thám mã Một số khái niệm - Mã hóa q trình chuyển thơng tin đọc đƣợc (gọi rõ) thành thơng tin khó đọc đƣợc (gọi mã) - Giải mã trình chuyển đổi thông tin từ mã thành rõ - Thuật tốn mã hóa hay giải mã thủ tục tính tốn để thực mã hóa hay giải mã - Khóa mã hóa giá trị làm cho thuật tốn mã hóa đƣợc thực theo cách riêng biệt Phạm vi có khóa đƣợc gọi Khơng gian khóa - Hệ mã hóa tập thuật tốn, khóa Mật mã học có lịch sử phát triển dài phức tạp, nhiên chia thành hai giai đoạn Mật mã cổ điển : hệ mật mã đời trƣớc năm 1949 chủ yếu dùng để che giấu liệu Trong giai đoạn mật mã học đƣợc coi nghệ thuật nhiều môn khoa học đƣợc ứng dụng thực tế Mật mã đại : Lịch sử mật mã học đƣợc đánh dấu vào năm 1949 Claude Shannon đƣa lý thuyết thơng tin Mật mã đại ngồi khả che giấu thơng tin cịn dùng để thực ký số, tạo đại diện thông điệp, giao thức bảo toàn liệu, giao thức xác định thực thể,… Kể từ loạt nghiên cứu quan trọng ngành mật mã học đƣợc thực nhƣ nghiên cứu mã khối, đời hệ mật khóa cơng khai chữ ký điện tử Giáo trình Bảo mật thơng tin 1.1.1 Mật mã cổ điển Trong phần lớn thời gian phát triển mình, lịch sử mật mã học lịch sử phƣơng pháp mật mã học cổ điển cần bút giấy Khi thông báo, thƣ từ đƣợc truyền trao đổi với thƣờng văn bản, tức có dạng dãy ký tự ngơn ngữ đó, thuật tốn lập mã thƣờng đơn giản thuật toán xáo trộn, thay đổi ký tự đƣợc xác định phép chuyển dịch, thay hay hoán vị ký tự bảng ký tự ngôn ngữ tƣơng ứng Các cách mã hóa dễ bị dị phƣơng pháp phân tích tần suất Mật mã cổ điển đƣợc phổ biến đến ngày chủ yếu thông qua việc giải ô đố chữ Vào đầu kỷ 20, với tiến kỹ thuật tính tốn truyền thơng, ngành mật mã có tiến to lớn Một số thiết bị khí đƣợc phát minh để thực mã hóa, tiếng máy Enigma đƣợc ngƣời Đức sử dụng đại chiến giới Mật mã đƣợc thực máy móc tăng độ phức tạp lên đáng kể cơng việc phân tích mã Sau chiến thứ II trở đi, hai ngành, mật mã học phân tích mã ngày sử dụng nhiều sở toán học Tuy thế, đến máy tính phƣơng tiện truyền thơng Internet trở nên phổ biến, ngƣời ta mang tính hữu dụng mật mã học vào thói quen sử dụng ngày ngƣời, thay đƣợc dùng quyền quốc gia hay hoạt động kinh doanh lớn trƣớc 1.1.2 Mật mã đại Sau chiến tranh giới thứ II, phủ, qn đội số cơng ty lớn Mỹ riết tiến hành xây dựng cơng cụ mã hóa Đầu năm 1970 phát triển thuật tốn mã hóa khối, Lucipher sau phát triển thành DES DES sau có phát triển rực rỡ đầu năm 90 Bƣớc ngoặt có tính cách mạng lịch sử khoa học mật mã đại xẩy vào năm 1976 hai tác giả Diffie Hellman đƣa khái niệm mật mã khóa cơng khai phƣơng pháp trao đổi cơng khai để tạo khóa bí mật chung mà tính an tồn đƣợc bảo đảm độ khó toán toán học (cụ thể tốn tính "logarithm rời rạc") Hai năm sau, năm 1978, Rivest, Shamir Adleman tìm hệ mật mã khóa cơng khai sơ đồ chữ ký điện tử hồn tồn ứng dụng thực tiễn, tính bảo mật an tồn chúng đƣợc bảo đảm độ phức tạp toán số học tiếng tốn phân tích số ngun thành thừa số nguyên tố Sau phát minh hệ mật mã (nay thƣờng gọi hệ RSA), việc nghiên cứu để Giáo trình Bảo mật thơng tin phát minh hệ mật mã khóa cơng khai khác ứng dụng hệ mật mã khóa cơng khai vào tốn khác an tồn thơng tin đƣợc tiến hành rộng rãi, lý thuyết mật mã an tồn thơng tin trở thành lĩnh vực khoa học đƣợc phát triển nhanh vài ba thập niên cuối kỷ 20, lôi theo phát triển số môn toán học tin học 1.2 Các hệ thống mật mã 1.2.1 Sơ đồ hệ thống mật mã Trong hoạt động ngƣời, nhu cầu trao đổi thơng tin mật thành viên thuộc nhóm với cần thiết Trong thời đại ngày nay, với phát triển phƣơng tiện truyền thơng Internet, việc giữ bí mật ngày trở nên khó khăn Một phƣơng pháp thơng dụng để giữ bí mật thơng tin mã hóa chúng hệ mật mã trƣớc truyền Giả sử ngƣời gửi A muốn gửi đến ngƣời nhận B văn p Để bảo mật, A lập cho p mật mã c gửi c cho B, B nhận đƣợc c "giải mã" c để thu đƣợc văn p nhƣ A định gửi Để A biến p thành c B biến ngƣợc lại c thành p, A B phải thỏa thuận trƣớc với thuật tốn lập mã, giải mã khóa mật mã chung K để thực thuật tốn Ngƣời ngồi khơng biết thơng tin (đặc biệt khơng biết khóa K), cho dù có lấy trộm đƣợc c kênh truyền thông công cộng tìm đƣợc văn p mà hai ngƣời A, B muốn gửi cho Sau định nghĩa hình thức sơ đồ mật mã cách thức thực để lập mật mã giải mật mã Định nghĩa Một hệ mật mã gồm thành phần (P, C, K, E, D), Giáo trình Bảo mật thơng tin  P (Plaintext) tập hữu hạn rõ  C (Ciphertext) tập hữu hạn mã  K (Key) tập hữu hạn khoá  E (Encryption) tập quy tắc mã hóa  D (Decryption) tập hợp quy tắc giải mã Với k K có quy tắc mã ek: P  C quy tắc giải mã tƣơng ứng dk  D Mỗi ek dk hàm thỏa mãn dk(ek (x)) = x với rõ x  P Trong định nghĩa này, phép lập mật mã giải mã đƣợc định nghĩa cho ký tự rõ mã Trong thực tế, rõ thông báo thƣờng dãy ký tự rõ, tức phần tử tập P* mật mã dãy ký tự mã, tức phần tử tập C* 1.2.2 Yêu cầu hệ mật mã Độ tin cậy: cung cấp bí mật cho thông báo liệu đƣợc lƣu việc sử dụng kỹ thuật mã hố Tính tồn vẹn: cung cấp bảo đảm với tất bên thông báo không bị thay đổi từ gửi ngƣời nhận mở Tính khơng chối bỏ: cung cấp cách xác thực tài liệu đến từ họ cố gắng chối bỏ Tính xác thực: cung cấp hai dịch vụ: - Nhận dạng nguồn gốc thông báo cung cấp bảo đảm thực - Kiểm tra đặc tính ngƣời đăng nhập hệ thống Tiếp tục kiểm tra đặc tính họ trƣờng hợp cố gắng kết nối giả mạo ngƣời sử dụng 1.2.3 Mã khối mã dịng Trong mật mã học, mã hố khối thuật toán mã hoá đối xứng hoạt động khối thơng tin có độ dài xác định (block) với chuyển đổi xác định Chẳng hạn thuật tốn mã hố khối xử lý khối 128 bít đầu vào biến thành khối 128 bít đầu Q trình chuyển đổi cịn sử dụng thêm tham số nữa: khố bí mật để cá biệt hố q trình Việc giải mã diễn tƣơng ứng: xử lý khối mã hoá 128 bít với khố để trả khối 128 bít rõ ban đầu Để mã hoá khối văn có độ dài vƣợt độ dài khối, ngƣời ta sử dụng thuật toán theo chế độ mã hố khối Giáo trình Bảo mật thông tin Thực mã theo khối (block cipher): Trƣớc hết ta xác định độ dài khối (chẳng hạn m), tiếp mở rộng khơng gian khóa từ K thành Km , với K =K1 Km  Km, mở rộng eK dK thành thuật toán eK : Pm Cm dK : CmPm nhƣ sau: với x1 xk Pm y1 yk  Cm eK(x1, …, xm) = eK1(x1)…eKm(xm) dK(y1, …, ym) = dK1(y1)…dKm(ym) Giả sử rõ mà ta muốn lập mật mã dãy ký tự X P* Cắt X thành khối, khối có độ dài m, khối cuối có độ dài nhỏ m bổ sung vào phần cuối khối số ký tự qui ƣớc để có độ dài m Do giả thiết X = X1 Xm, X1, ,Xm khối có độ dài m, định nghĩa mật mã X là: eK(X) = eK(X1 Xm ) = eK(X1) eK(Xm) Đặt Y = eK(X1) eK(Xm), viết Y = Y1 Ym với Yi =eK(Xi), có dK(Y) = dK(Y1) dK(Ym) = X1 Xm = X Cách mã theo khối đơn giản thông dụng chọn độ dài khối k =1 Khi với rõ X = x1 xm  P* ta có eK(X) = eK(x1 xm ) = eK(x1) eK(xm) Với cách mã theo dòng (stream cipher), trƣớc hết phải xác định dòng khóa, tức phần tử K = K1 Km  K*, với dịng khóa ta xác định rõ X = x1 xm  P* có mã tƣơng ứng eK(X) = eK(x1,x2, …,xm) = eK1(x1)eK2(x2)… eKm(xm) Giải mã Y = eK(X) ta đƣợc dK(Y) = dK1(eK1(x1))…dKm(eKm(xm) = x1 … xm = X Để sử dụng cách lập mật mã theo dịng, ngồi sơ đồ mật mã gốc cịn phải có dịng khóa, tức dãy có độ dài tùy ý ký tự khóa Đó thƣờng dãy ký tự khóa đƣợc sinh "tạo dãy ngẫu nhiên" xuất phát từ "mầm" chọn trƣớc Trong ứng dụng thực tế, ngƣời ta thƣờng dùng cách mã theo dịng có sơ đồ mật mã gốc sơ đồ Vernam với P = C = K = {0,1} hàm lập mã giải mã đƣợc xác định eK(x) = x + K mod 2, dK(y) = y +K mod (K = 1) dịng khóa đƣợc sinh tạo dãy bit ngẫu nhiên 1.3 Mật mã khóa đối xứng mật mã khóa cơng khai 1.3.1 Hệ mật mã khóa đối xứng Mật mã khố đối xứng hệ mật mã biết đƣợc khoá lập mã (ke) tính đƣợc khố giải mã (kd) ngƣợc lại Đặc biệt số hệ mật mã có khố lập mã khố giải mã trùng nhau, nhƣ hệ mật mã dịch chuyển hay hệ mật mã DES Hệ mật mã khố đối xứng cịn gọi hệ mật mã khố bí mật hay khóa riêng, phải giữ bí mật khố Trƣớc dùng hệ mật mã khoá đối xứng, ngƣời gửi 10 Giáo trình Bảo mật thơng tin E(R2) = 111001011000000000000010101110101110100001010011 K3 = 010101011111110010001010010000101100111110011001 (R2)K3=101100000111110010001000111110000010011111001010 S-box outputs 00100111000100001110000101101111 f(R2,K3) = 01001101000101100110111010110000 L4 =R3 = 10100010010111000000101111110100 E(R3) = 01010000010000101111100000000101011111111010100 K4 = 011100101010110111010110110110110011010100011101 E(R3)K4=001000101110111100101110110111100100101010110100 S-box outputs 00100001111011011001111100111010 f(R3,K4) = 10111011001000110111011101001100 L5 = R4 = 01110111001000100000000001000101 E(R4) = 101110101110100100000100000000000000001000001010 K5 = 011111001110110000000111111010110101001110101000 E(R4)K5=110001100000010100000011111010110101000110100010 S-box outputs 01010000110010000011000111101011 f(R4,K5) = 00101000000100111010110111000011 L6 = R5 = 10001010010011111010011000110111 E(R5) = 110001010100001001011111110100001100000110101111 K6 = 011000111010010100111110010100000111101100101111 E(R5)K6=101001101110011101100001100000001011101010000000 S-box outputs 01000001111100110100110000111101 f(R5,K6) = 10011110010001011100110100101100 L7 = R6 = 11101001011001111100110101101001 E(R6) = 111101010010101100001111111001011010101101010011 K7 = 111011001000010010110111111101100001100010111100 E(R6)K7=000110011010111110111000000100111011001111101111 S- box outputs 00010000011101010100000010101101 f(R6,K7) = 10001100000001010001110000100111 L8 = R7 = 00000110010010101011101000010000 E(R7) = 000000001100001001010101010111110100000010100000 K8 = 111101111000101000111010110000010011101111111011 (R7)K8=111101110100100001101111100111100111101101011011 S-box outputs 01101100000110000111110010101110 f(R7,K8) = 00111100000011101000011011111001 L9 = R8 = 11010101011010010100101110010000 E(R8) = 011010101010101101010010101001010111110010100001 K9 = 111000001101101111101011111011011110011110000001 (R8)K9=100010100111000010111001010010001001101100100000 74 Giáo trình Bảo mật thơng tin S-box outputs 00010001000011000101011101110111 f(R8,K9) = 00100010001101100111110001101010 L10 = R9 = 00100100011111001100011001111010 E(R9) = 000100001000001111111001011000001100001111110100 K10 = 101100011111001101000111101110100100011001001111 E(R9)K10=101000010111000010111110110110101000010110111011 S-box outputs 11011010000001000101001001110101 f(R9,K10) = 01100010101111001001110000100010 L11 = R10 = 10110111110101011101011110110010 E(R10) = 010110101111111010101011111010101111110110100101 K11 = 001000010101111111010011110111101101001110000110 E(R10)K11=011110111010000101111000001101000010111000100011 S-box outputs 01110011000001011101000100000001 f(R10,K11) = 11100001000001001111101000000010 L12 = R11 = 11000101011110000011110001111000 E(R11) = 011000001010101111110000000111111000001111110001 K12 = 011101010111000111110101100101000110011111101001 E(R11)K12= 000101011101101000000101100010111110010000011000 S-box outputs 01110011000001011101000100000001 f(R11,K12) = 11000010011010001100111111101010 L13 = R12 = 01110101101111010001100001011000 E(R12)=001110101011110111111010100011110000001011110000 K13=100101111100010111010001111110101011101001000001 E(R12)K13= 101011010111100000101011011101011011100010110001 Sbox outputs 10011010110100011000101101001111 f(R12,K13) = 11011101101110110010100100100010 L14 = R13 = 00011000110000110001010101011010 E(R13 = 000011110001011000000110100010101010101011110100 K13= 010111110100001110110111111100101110011100111010 E(R13K14 = 010100000101010110110001011110000100110111001110 S-box outputs 01100100011110011001101011110001 f(R13,K14) = 10110111001100011000111001010101 L15 = R14 = 11000010100011001001011000001101 E(R14) = 111000000101010001011001010010101100000001011011 K15 = 101111111001000110001101001111010011111100001010 E(R14)K15= 010111111100010111010100011101111111111101010001 S-box outputs 10110010111010001000110100111100 f(R14,K15) = 01011011100000010010011101101110 75 Giáo trình Bảo mật thơng tin L16 = R15 = 01000011010000100011001000110100 E(R15) = 001000000110101000000100000110100100000110101000 K16 = 110010110011110110001011000011100001011111110101 E(R15)K16= 111010110101011110001111000101000101011001011101 S-box outputs 10100111100000110010010000101001 f(R15,K16) = 11001000110000000100111110011000 R16 = 00001010010011001101100110010101 Cuối áp dụng IP-1 vào L16,R16 ta nhận đƣợc mã hexa là: 85E813540F0AB405 3.2.5 DES thực tế Mặc dù việc mô tả DES dài dịng song ngƣời ta thực DES cách hữu hiệu phần cứng phần mềm Phép toán cần đƣợc thực phép loại trừ xâu bít Hàm mở rộng E, hộp S, hoán vị IP P việc tính tốn giá tri K1, … ,K16 thực đƣợc lúc tra bảng (trong phần mềm) cách nối cứng chúng thành mạch Các ứng dụng phần cứng thời đạt đƣợc tốc độ mã hố cực nhanh Cơng ty Digital Equipment thông báo hội nghị CRUPTO'92 họ chế tạo chíp có 50 ngàn tranzistor mã hố với tốc độ Gbít/s cách dùng nhịp có tốc độ 250MHz Giá chíp vào khoảng 300$ Tới năm 1991 có 45 ứng dụng phần cứng chƣơng trình sở DES đƣợc Uỷ ban tiêu Chuẩn quốc gia Mỹ (NBS) chấp thuận Một ứng dụng quan trọng DES giao dịch ngân hàng Mỹ- (ABA) DES đƣợc dùng để mã hoá số định danh cá nhân (PIN) việc chuyển tài khoản máy thủ quỹ tự động (ATM) DES đƣợc Hệ thống chi trả nhà băng Ngân hàng hối đoái (CHIPS) dùng để xác thực giao dịch vào khoảng 1,51012 USA/tuần DES đƣợc sử dụng rộng rãi tổ chức phủ Chẳng hạn nhƣ lƣợng, Bộ Tƣ pháp Hệ thống dự trữ liên bang 3.2.6 Phép tối ƣu hoá thời gian - nhớ Phần mơ tả phép tối ƣu hố thời gian – nhớ phá DES công rõ chọn lọc Trong phép công rõ chọn lọc, thám mã thu đƣợc cặp 76 Giáo trình Bảo mật thơng tin rõ - mã đƣợc tạo khoá K (chƣa biết) Bởi thám mã có x y, y = eK(x) muốn xác định đƣợc K Một đặc điểm phép tối ƣu hoá thời gian - nhớ khơng phụ thuộc vào "cấu trúc" DES phƣơng diện Khía cạnh DES có quan hệ tới phép cơng rõ mã 64 bít khố có 56 bít Trong ý tƣởng tìm khoá phƣơng pháp vét cạn: với cặp rõ - mã cho trƣớc, thử tất 256 khoá cụ thể Điều không yêu cầu nhớ, nhƣng trung bình phải thử 255 khố trƣớc tìm đƣợc khoá Mặt khác, với rõ x cho trƣớc, thám mã tính trƣớc yK = eK(x) tồn 256 khố K xây dựng bảng cặp (yK, K) đƣợc xếp theo tọa độ đầu chúng Sau thám mã thu đƣợc mã y (là kết phép mã rõ x), phải nhìn vào giá trị y bảng tìm đƣợc khố K Nhƣ trƣờng hợp việc tìm đƣợc khoá K yêu cầu thời gian cố định nhƣng cần nhớ có dung lƣợng lớn cần thời gian tính tốn trƣớc lớn (chú ý quan điểm khơng có lợi thời gian tính tốn tổng cộng cần tìm khố, việc xây dựng bảng nhiều thời gian nhƣ việc tìm khóa vét cạn Phƣơng pháp có lợi cần tìm nhiều khố khoảng thời gian ta cần dùng bảng cho tất trƣờng hợp) Phép tối ƣu hố thời gian - nhớ có thời gian tính tốn nhỏ phép tìm kiếm vét cạn có yêu cầu nhớ nhỏ việc lập bảng tra cứu Thuật tốn mơ tả theo hai tham số m t số nguyên dƣơng Thuật toán cần hàm rút gọn R để rút gọn xâu bít có độ dài 64 thành xâu bít có độ dài 56 (chẳng hạn R phải vứt bỏ 64 bít) Giả sử x xâu rõ cố định 64 bít Hãy xác định hàm g(K0) = R(eKo(x)) với xâu bít K0 có độ dài 56 Chú ý g hàm thực ánh xạ 56 bít sang 56 bít Trong giai đoạn tiền xử lý, thám mã chọn m xâu bít ngẫu nhiên có độ dài 56 đƣợc kí hiệu X(i,0), 1 i  m Thãm mã tính x(i, j) với  j  t theo quan hệ truy toán sau: X(i,j) = g(X(i,j-1)),  i x  m ,  j  t nhƣ hình dƣới 77 Giáo trình Bảo mật thơng tin Tính X(i,j) g g g X (1,0)   X (1,1)     X (1, t ) g g g X (2,0)   X (2,1)     X (2, t ) g g g X (m,0)   X (m,1)     X (m, t ) Sau thám mã xây dựng bảng cặp T = (X(i,t), X(i,0)) đƣợc xếp theo toạ độ đầu chúng( tức lƣu giữ cột đầu cột cuối X) Sau thu đƣợc mã y ( mã rõ x chọn) Oscar cần phải xác định K xác định đƣợc K nằm t cột đầu bảng X, nhiên làm điều cách nhìn vào bảng T Giả sử K = X(i, t-j) với j đó,  j  t ( tức giả sử K nằm t cột X) Khi rõ ràng gj(K) = x(i,t), gj kí hiệu hàm nhận đƣợc cách lặp g số lần j Bây ta thấy rằng: gj(K) = gj-1(g(K)) = gj-1(R(eK(x))) = gj-1(R(y)) Giả sử tính ỵj,1  j  t, từ quan hệ truy tốn Từ rút yj = X(i, t-j) K = X(i, t-j) Tuy nhiên cần ý yj = X(i,t) chƣa đủ để đảm bảo K = X(i, t-j) Sở dĩ nhƣ hàm rút gọn R đơn ánh: miền xác định R có lực lƣợng 264 giá trị R có lực lƣợng 256, tính trung bình có 28 = 256 nghịch ảnh xâu bít cho trƣớc có độ dài 56 Bởi cần phải kiểm tra xem y = eX(i,t-j)(x) hay khơng để biết liệu X(i,t-j) có thực khố hay không Ta không lƣu trữ giá trị X(i,t-j) nhƣng dễ dàng tính lại từ X(i,0) cách lặp t-j lần hàm g Thám mã thực theo thuật tốn đƣợc mơ tả nhƣ sau: Tính y1 = R(y) for j = to t 78 Giáo trình Bảo mật thơng tin if yj = X(i,t-j) với giá trị i then Tính X(i,t-j) từ X(i,0) cách lặp t-j lần hàm g if y = eX(I,t-j)(x) then đặt K = X(i,t-j) QUIT Tính yj+1 = g(yj) Bằng cách phân tích xác suất thành cơng thuật tốn, chứng tỏ mt2  N = 256 xác suất để K = X(i,t-j) với i, j vào khoảng 0,8 mơi trƣờng/N Thừa số 0,8 tính theo điều kiện khơng phải tất cácX(i,t) phân biệt Điều gợi ý cho ta nên lấy m  t  N1/3 xây dựng khoảng N1/3 bảng, bảng dùng hàm rút gọn R khác Nếu thực đƣơc điều u cầu nhớ 112N1/3 bít ( ta cần lƣu trữ 2N2/3 số nguyên, số có 56 bít) Thời gian tiền tính tốn dễ dàng thấy cỡ O(N) Việc phân tích thời gian chạy thuật tốn có khó hơn chút: Trƣớc hết ta thấy rằng, bƣớc chạy thời gian không đổi (sử dụng phép mã hash) trƣờng hợp xấu nhất, bƣớc chạy với thời gian O(logm) dùng phép tìm kiếm nhị phân Nếu bƣớc không thoả mãn (tức phép tìm kiếm khơng thành cơng) thời gian chạy O(N2/3) Các phân tích chi tiết chứng tỏ rằng, tính thời gian chạy bƣớc và5 thời gian chạy trung bình tăng lƣợng số 3.2.7 Độ an toàn việc thám mã DES Mặc dù có nhiều nghiên cứu phá mã DES phƣơng pháp mã hoá khối khác nhƣng phƣơng pháp phá mã thực tế cơng kiểu duyệt tồn Nhiều đặc tính mật mã hố DES đƣợc xác định từ ba phƣơng pháp phá mã khác đƣợc xác định với mức độ phức tạp nhỏ cơng duyệt tồn Tuy nhiên phƣơng pháp đòi hỏi số lƣợng rõ lớn (để công lựa chọn rõ) nên hầu nhƣ thực đƣợc thực tế a Tấn công kiểu duyệt tồn 79 Giáo trình Bảo mật thơng tin Đối với phƣơng pháp mã hoá nào, kiểu công đơn giản cơng kiểu duyệt tồn bộ: thử lần lƣợt tất khố tìm ta khoá Độ dài khoá xác định số lƣợng phép thử tối đa cần thực thể tính khả thi phƣơng pháp Trong trƣờng hợp DES, nghi ngờ độ an toàn đƣợc đặt từ chƣa trở thành tiêu chuẩn Ngƣời ta cho NSA ủng hộ (nếu khơng muốn nói thuyết phục) IBM giảm độ dài khố từ 128 bít xuống 64 bít tiếp tục xuống 56 bít Điều dẫn đến suy đốn NSA có hệ thống tính tốn đủ mạnh để phá vỡ khố 56 bít từ năm 1970 Trong giới nghiên cứu, nhiều đề xuất hệ thống phá mã DES đƣợc đề Năm 1977, Diffie Hellman dự thảo hệ thống có giá trị khoảng 20 triệu la Mỹ có khả phá khố DES ngày Năm 1993, Wiener dự thảo hệ thống khác có khả phá mã vịng với giá triệu đô la Mỹ Những điểm yếu DES đƣợc thực chứng minh vào cuối năm 1990 Vào năm 1997, công ty bảo mật RSA tài trợ chuỗi thi với giải thƣởng 10.000 đô la Mỹ cho đội phá mã đƣợc tin mã hoá DES Đội chiến thắng thi dự án DESCHALL với ngƣời dẫn đầu bao gồm Rocke Verser, Matt Curtin Justin Dolske Họ sử dụng hàng nghìn máy tính nối mạng để phá mã Khả phá mã DES đƣợc chứng minh thêm lần vào năm 1998 tổ chức Electronic Frontier Foundation(EEF), tổ chức hoạt động cho quyền công dân Internet, xây dựng hệ thống chuyên biệt để phá mã với giá thành 250000 đô la Mỹ Động thúc đẩy EEF hành động nhằm chứng minh DES bị phá vỡ lý thuyết nhƣ thực tế: “ Nhiều ngƣời không tin vào chân lý họ nhìn thấy việc mắt Xây dựng máy phá khố DES vòng vài ngày cách chứng tỏ với ngƣời họ đảm bảo an ninh thông tin dựa vào DES” Hệ thống tìm đƣợc khố DES phƣơng pháp duyệt tồn thời gian ngày; b Các kiểu cơng khác hiệu duyệt tồn Hiện có kiểu cơng có khả phá vỡ DES (với đủ 16 chu trình) với độ phức tạp thấp duyệt toàn bộ: phá mã vi sai (differential cryptanalysis - DC), phá 80 Giáo trình Bảo mật thơng tin mã tuyến tính (linear cryptanalysis - LC) phá mã Davies (Davies' attack) Tuy nhiên dạng công chƣa thực đƣợc thực tế Phá mã vi sai đƣợc Eli Biham Adi Shamir tìm vào cuối năm 1980 đƣợc IBM NSA biết đến trƣớc Để phá mã DES với đủ 16 chu trình, phá mã vi sai cần đến 247 văn rõ DES đƣợc thiết kế để chống lại công dạng Phá mã tuyến tính đƣợc tìm Mitsuru Matsui đòi hỏi 243 văn rõ Phƣơng pháp đƣợc Matsui thực thực nghiệm phá mã đƣợc cơng bố Khơng có chứng chứng tỏ DES có khả chống lại cơng dạng Một phƣơng pháp tổng quát hơn, phá mã tuyến tính đa chiều (multiple linear cryptanalysis) đƣợc Kaliski Robshaw nêu vào năm 1994, Biryukov cộng tiếp tục cải tiến vào năm 2004 Nghiên cứu họ cho thấy mơ tuyến tính đa chiều sử dụng để giảm độ phức tạp trình phá mã tới lần (chỉ 241 văn rõ) Kết tƣơng tự đạt đƣợc với kiểu cơng tuyến tính kết hợp với lựa chọn rõ (Knudsen and Mathiassen, 2000) Junod (2001) thực số thực nghiệm để tìm độ phức tạp thực tế phá mã tuyến tính thấy q trình thực tế nhanh dự đốn: 239x241 Phá mã Davies: phá mã vi sai phá mã tuyến tính kỹ thuật phá mã tổng quát, áp dụng cho thuật toán khác nhau, phá mã Davies kỹ thuật dành riêng cho DES Dạng công đƣợc đề xuất lần đầu Davies vào cuối năm 1980 cải tiến Biham Biryukov (1997) Dạng cơng mạnh địi hỏi 250 văn rõ, độ phức tạp 250 có tỷ lệ thành cơng 51% Ngồi cịn có kiểu cơng dựa thu gọn DES - DES với 16 chu trình Những nghiên cứu cho biết số lƣợng chu trình cần có ranh giới an toàn hệ thống Năm 1994, Langford Hellman đề xuất phá mã vi sai - tuyến tính (differential-linear cryptanalysis) kết hợp phá mã vi sai tuyến tính Một dạng cải tiến phƣơng pháp phá vỡ DES chu trình với 215.8 văn rõ có độ phức tạp 229.2 81 Giáo trình Bảo mật thơng tin 3.3 Hệ mật IDEA 3.3.1 Khái quát chung hệ mật IDEA IDEA (International Data Encryption Algorithm) đƣợc công bố lần năm 1991 Lai Học Gia James L.Massey ETH Zurich Tiền thân IDEA PES (Proposed Encryption Standard) Ban đầu IDEA cịn có tên IPES (Improved PES), đƣợc đƣa nhƣ thay DES (Data Encryption Standard) Ngày nay, IDEA thuộc quyền sở hữu MediaCrypt IDEA đƣợc sử dụng Pretty Good Privacy (PGP) V2.0, cơng cụ mã hóa thƣờng đƣợc dùng chƣơng trình email IDEA phƣơng pháp mã khối sử dụng 128 bits khoá để mã hoá khối liệu 64 bits IDEA đƣợc thừa nhận xem nhƣ chọn lựa tốt DES (Data Encrytion Standard) với tốc độ hóa cao, thực chip mã hóa tốc độ 177 Mbits/sec Giải thuật đƣợc phép sử dụng tự do, khơng địi hỏi quyền, đƣợc xem phù hợp cho thƣơng mại điện tử áp dụng cho toàn giới 3.3.2 Một số phép toán a Phép loại bit XOR Đây phép toán thực bit Nguyên tắc thực phép XOR việc thực phép cộng khơng nhớ số nhị phân Ví dụ: 10101010 XOR 11100011 01001001 b Phép toán cộng  (A+B) Mod 216 (65536): trả phần dƣ phép chia tổng (A+B) cho 216 Ví dụ: (23457 + 61245) Mod 216 = 84702 mod 16 = 29166 c Phép toán cộng nghịch đảo mod 216: Trả giá trị số mà sau cộng cho tổng số ban đầu chia hết cho 216 [(23457 + 61245) Mod 216]-1 = [84702 mod 16 ]-1 = (65536-29166) Mod 216 = 36370 82 Giáo trình Bảo mật thơng tin d Phép toán nhân mod 216 + 1: Kết trả phần dƣ phép chia tích (A*B) cho 216 + [(23457 * 61245) Mod (216 + 1)] = [1436623965 mod (216 + 1)] = 52925 e Phép toán nhân nghịch đảo mod (216 + 1): A*B Mod (216 + 1) = C Thì [A*B Mod (216 + 1)]-1 = C‟ mà (C*C‟) Mod (216 + 1) =1 3.3.3 Mơ tả thuật tốn IDEA a Tổng quan thuật toán IDEA hệ mã thao tác khối 64bit, mã khối 64bit plantext thành khối 64bit ciphertext, sử dụng 52 khoá (đƣợc sinh từ khóa ban đầu có độ dài 128bits) Mỗi khối liệu thực qua lần biến đổi (vòng) liên tiếp lần biến đổi đầu Mỗi khố có độ dài 16 bits Mỗi khối liệu có độ dài 64 bits đƣợc chia thành phần (mỗi phần 16 bit) Lần biến đổi thứ r (1

Ngày đăng: 08/06/2021, 14:10

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan