Giáo trình Bảo mật thông tin MỤC LỤC LỜI NÓI ĐẦU .5 CHƢƠNG 1: GIỚI THIỆU CHUNG VỀ MẬT MÃ. Sơ lƣợc về lịch sử mật mã. Mật mã cổ điển. Mật mã hiện đại.
Các hệ thống mật mã. Sơ đồ hệ thống mật mã. Yêu cầu của một hệ mật mã. Mã khối và mã dòng.
Mật mã khóa đối xứng và mật mã khóa công khai. Hệ mật mã khóa đối xứng. Hệ mật mã khóa công khai. Các bài toán trong an toàn thông tin.
Thám mã và tính an toàn của các hệ mật mã. Tính an toàn của một hệ mật mã .14 CHƢƠNG 2: MẬT MÃ CỔ ĐIỂN. Cơ sở toán học. Tính chia hết của các số nguyên.
Thuật toán Euclide và thuật toán Euclid mở rộng. Quan hệ đồng dƣ và số học modulo m. Phƣơng trình đồng dƣ. Một số hệ mật mã đơn giản.
Hệ mật mã dịch chuyển (Shift cipher). Hệ mật mã thay thế (substitution cipher). Hệ mật mã Affine. Hệ mật mã Vigenere.
Hệ mật mã Hill. Hệ mật mã hoán vị.36 1 Giáo trình Bảo mật thông tin 2. Các hệ mật mã dòng. Mã thám các hệ mật mã cổ điển.
Thám hệ mật mã Affine. Thám hệ mật mã thay thế. Tấn công với bản rõ đã biết trên hệ mật mã Hill. Thám mã đối với hệ mật mã Vigenère.
Thám mã hệ mã dòng xây dựng trên LFSR. 54 CHƢƠNG 3: CHUẨN MÃ DỮ LIỆU. Giới thiệu hệ mật mã chuẩn. Hệ mật mã DES.
Mô tả DES. Cách hoán vị bit. Cách tính bảng khoá từ khoá ban đầu K. Cách tính hàm f (Feistel Function).
DES trong thực tế. Phép tối ƣu hoá thời gian - bộ nhớ. Độ an toàn và việc thám mã đối với DES. Hệ mật IDEA.
Khái quát chung về hệ mật IDEA. Một số phép toán. Mô tả thuật toán IDEA. Những đặc tính quan trọng.
88 CHƢƠNG 4: CÁC HỆ MẬT MÃ KHOÁ CÔNG KHAI. Giới thiệu về mật mã khoá công khai. Một số bài toán cơ bản. Một số hệ mật mã khoá công khai quan trọng :.
Hàm cửa sập một chiều. Định nghĩa hệ mật mã khóa công khai. Kiểm tra tính nguyên tố theo xác suất. Một số khái niệm và định nghĩa.
Thuật toán kiểm tra số nguyên tố theo xác suất. Một số kiến thức toán học. Định lý phần dƣ China. Một số định lý số học.
102 2 Giáo trình Bảo mật thông tin 4. Phần tử nguyên thủy. Tính đồng dƣ của lũy thừa lớn (xe mod n). Hệ mật mã RSA.
Thực hiện hệ mật mã RSA. Tính bảo mật của hệ mật mã RSA. Các phƣơng pháp tấn công hệ mật mã RSA. Hệ mật mã Rabin.
Tính an toàn của hệ mật mã Rabin. Các thuật toán phân tích thừa số nguyên tố. Phƣơng pháp p-1. Thuật toán Dixon và sàng bậc hai.
Các thuật toán phân tích trên thực tế. Hệ mật mã Elgamal và các giải thuật rời rạc. Hệ mật Elgamal. Tính an toàn của hệ mật mã ElGamal.
Các thuật toán cho bài toán Logarithm rời rạc. Các hệ mật dựa trên các bài toán NP đầy đủ. Khái niệm độ phức tạp tính toán. Nguyên tắc chung xây dựng các hệ mật dựa trên các bài toán NP đầy đủ 129 4.
Hệ mật xếp ba lô Merkle – Hellman. Hệ mật McEliece .138 CHƢƠNG 5: CHỮ KÝ ĐIỆN TỬ HÀM HASH VÀ PHÂN PHỐI KHOÁ. Các sơ đồ chữ ký điện tử. Khái niệm sơ đồ chữ ký số.
Phân loại chữ ký số. Chuẩn chữ ký điện tử. Chữ ký một lần. Các chữ ký không chối đƣợc.
Các chữ ký và các hàm Hash.155 3 Giáo trình Bảo mật thông tin 5. Hàm Hash không va chạm. Hàm Hash logarithm rời rạc. Các hàm Hash mở rộng.
Hàm Hash MD4. Phân phối và thoả thuận về khoá. Phân phối khoá trƣớc. Trao đổi khoá Diffie - Hellman.
177 4 Giáo trình Bảo mật thông tin LỜI NÓI ĐẦU Từ khi con ngƣời có nhu cầu trao đổi thông tin với nhau thì nhu cầu giữ bí mật thông tin cũng xuất hiện. Trong thời đại ngày nay, với sự phát triển của khoa học kỹ thuật, các phƣơng tiện truyền thông ngày càng đa dạng, việc trao đổi thông tin càng trở nên dễ dàng thì việc giữ bí mật thông tin càng khó khăn. Các trao đổi thông tin qua mạng Intenet, các hình ảnh trên mặt đất, các cuộc đàm thoại hữu tuyến và vô tuyến… đều có thể dễ dàng thu đƣợc nhờ các thiết bị điện tử trên mặt đất hoặc từ vệ tinh nên an toàn thông tin đã trở thành nhu cầu bắt buộc cho mọi hệ thống ứng dụng. Từ thời xa xƣa, con ngƣời đã nghĩ ra cách che dấu thông tin bằng cách biến đổi thông tin đó thành dạng thông tin khác mà ngƣời ngoài cuộc không hiểu đƣợc, đồng thời có cách khôi phục lại nguyên dạng ban đầu để ngƣời trong cuộc hiểu đƣợc.
Phƣơng pháp thực hiện nhƣ vậy gọi là mã hóa dữ liệu, sau này phát triển thành ngành khoa học gọi là mật mã học. Đây cũng là kỹ thuật lâu đời nhất trong việc đảm bảo an toàn thông tin. Ngày nay, cùng với sự phát triển của các ngành khoa học, các kỹ thuật mã hóa cũng ngày càng đa dạng và tinh vi hơn. Công nghệ mã hóa thông tin đã thu hút rất nhiều sự quan tâm của các nhà khoa học trên thế giới.
Từ chỗ chỉ đƣợc sử dụng trong lĩnh vực chính trị, quân sự, mã hóa dữ liệu đã đƣợc đƣa vào sử dụng trong mọi lĩnh vực. Hiện nay có rất nhiều kỹ thuật mật mã khác nhau, mỗi kỹ thuật có những ƣu nhƣợc điểm riêng. Để đáp ứng nhu cầu học tập và tìm hiểu của 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ó cái nhìn tổng quan về lĩnh vực an toàn và bảo mật thông tin, tiếp cận một số phƣơng pháp mã hóa dữ liệu, làm cơ sở cho những nghiên cứu mở rộng tiếp theo. Giáo trình gồm 5 chƣơng: Chƣơng 1 giới thiệu tổng quan về mật mã, chƣơng 2 tóm tắt sơ lƣợc về mã hóa cổ điển, chƣơng 3 trình bày về chuẩn mã dữ liệu, chƣơng 4 nêu một số hệ mật mã khóa công khai, chƣơng 5 giới thiệu một số sơ đồ chữ ký điện tử, hàm Hash và 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 trên cơ sở cuốn “Cryptography: Theory and Practice” của Douglas Stinson, ngƣời dịch Nguyễn Bình. Với mục đích trang bị các kiến thức cơ sở giúp sinh viên tiếp cận với phƣơng pháp bảo vệ dữ liệu bằng cách mã hóa, giáo trình đã trình bày tóm tắt các phần lý thuyết toán học cơ bản đƣợc áp dụng trong các hệ mật mã, đƣa ra những ví dụ minh họa cụ thể, cuối mỗi chƣơng đều có bài tập. Do lần đầu biên soạn nên không tránh khỏi những sai sót và lỗi in ấn nhất định. Tác giả xin vui lòng tiếp nhận mọi sự đóng góp giúp cho giáo trình “Bảo mật thông tin” ngày càng tốt hơn.
5 Giáo trình Bảo mật thông tin CHƢƠNG 1: GIỚI THIỆU CHUNG VỀ MẬT MÃ 1. Sơ lƣợc về lịch sử mật mã Nhu cầu sử dụng mật mã xuất hiện từ rất sớm, từ khi con ngƣời biết trao đổi và truyền thông tin cho nhau, đặc biệt khi các thông tin đó đƣợc thể hiện 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 trong nền 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 trên khắp thế giới để giữ bí mật cho việc giao lƣu thông tin trong nhiều lĩnh vực hoạt động của con ngƣời và các quốc gia, đặc biệt trong các lĩnh vực chính trị, quân sự, ngoại giao.
Mật mã học là khoa học nghiên cứu mật mã: Tạo mã và Phân tích mã. Phân tích mã là kỹ thuật phân tích mật mã, kiểm tra tính bảo mật của nó hoặc phá vỡ bí mật của nó. Phân tích mã còn đƣợc gọi là Thám mã. Một số khái niệm - Mã hóa là quá trình chuyển thông tin có thể đọc đƣợc (gọi là bản rõ) thành thông tin khó có thể đọc đƣợc (gọi là bản mã) - Giải mã là quá trình chuyển đổi thông tin từ bản mã thành bản rõ - Thuật toán mã hóa hay giải mã là thủ tục tính toán để thực hiện mã hóa hay giải mã - Khóa mã hóa là một giá trị làm cho thuật toán mã hóa đƣợc thực hiện theo cách riêng biệt.
Phạm vi có thể có của khóa đƣợc gọi là Không gian khóa - Hệ mã hóa là tập các thuật toán, các khóa Mật mã học có một lịch sử phát triển dài và phức tạp, tuy nhiên có thể chia thành hai giai đoạn chính Mật mã cổ điển : là các hệ mật mã ra đời trƣớc năm 1949 chủ yếu dùng để che giấu dữ liệu. Trong giai đoạn này mật mã học đƣợc coi là một nghệ thuật nhiều hơn là một môn khoa học mặc dù đã đƣợc ứng dụng trong thực tế. Mật mã hiện đại : Lịch sử mật mã học đƣợc đánh dấu vào năm 1949 khi Claude Shannon đƣa ra lý thuyết thông tin. Mật mã hiện đại ngoài khả năng che giấu thông tin còn dùng để thực hiện ký số, tạo đại diện thông điệp, giao thức bảo toàn dữ liệu, giao thức xác định thực thể,… Kể từ đó một loạt các nghiên cứu quan trọng của ngành mật mã học đƣợc thực hiện nhƣ nghiên cứu về mã khối, sự ra đời của các hệ mật khóa công khai và chữ ký điện tử.
6 Giáo trình Bảo mật thông tin 1. Mật mã cổ điển Trong phần lớn thời gian phát triển của mình, lịch sử mật mã học chính là lịch sử của những phƣơng pháp mật mã học cổ điển chỉ cần bút và giấy. Khi các thông báo, thƣ từ đƣợc truyền đi và trao đổi với nhau thƣờng là các văn bản, tức là có dạng các dãy ký tự trong một ngôn ngữ nào đó, các thuật toán lập mã thƣờng cũng đơn giản là thuật toán xáo trộn, thay đổi các ký tự đƣợc xác định bởi các phép chuyển dịch, thay thế hay hoán vị các ký tự trong bảng ký tự của ngôn ngữ tƣơng ứng. Các cách mã hóa này rất dễ bị dò ra bằng phƣơng pháp phân tích tần suất.
Mật mã cổ điển vẫn đƣợc phổ biến đến ngày nay chủ yếu thông qua việc giải các ô đố chữ.