Thông tin tài liệu
TRƯỜNG ĐẠI HỌC VINH KHOA CÔNG NGHỆ THÔNG TIN -------------------------- NGUYỄN THỊ LAN BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Tên đề tài: TÌM HIỂU MỘT SỐ THUẬT TOÁN MÃ HÓA DỮ LIỆU VÀ ỨNG DỤNG NGHỆ AN - 2012 TRƯỜNG ĐẠI HỌC VINH KHOA CÔNG NGHỆ THÔNG TIN -------------------------- BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Tên đề tài: TÌM HIỂU MỘT SỐ THUẬT TOÁN MÃ HÓA DỮ LIỆU VÀ ỨNG DỤNG Giáo viên hướng dẫn: ThS. Phạm Thị Thu Hiền Sinh viên thực hiện: Nguyễn Thị Lan Lớp: 49K - CNTT Mã số SV: 0851070255 Đồ án tốt nghiệp Đại học Nghệ An, tháng 12 năm 2012 Nguyễn Thị Lan - Lớp 49K - Tin - Khoa CNTT 2 LỜI CẢM ƠN Em xin gửi lời cảm ơn chân thành tới quý thầy cô giáo khoa Công Nghệ Thông Tin, trường Đại Học Vinh nói chung và thầy cô giáo trong bộ môn Phương pháp giảng dạy nói riêng, đã giúp đỡ, tạo điều kiện cho em trong suốt quá trình làm đồ án. Đặc biệt em xin chân thành cảm ơn cô giáo ThS. Phạm Thị Thu Hiền, người đã giúp đỡ, chỉ bảo, hướng dẫn tận tình cho em trong quá trình làm đồ án. Trong thời gian làm việc với cô, em không những học hỏi được nhiều kiến thức bổ ích về các phương pháp mã hóa và tầm quan trọng của mã hóa dữ liệu trong thời đại ngày nay mà còn học được tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc của cô. Xin gửi lời cảm ơn chân thành đến gia đình, cha mẹ và bạn bè vì đã luôn là nguồn động viên to lớn, giúp đỡ con vượt qua những khó khăn trong suốt quá trình làm việc. Mặc dù em đã cố gắng hoàn thành đề tài với tất cả nổ lực của bản thân nhưng chắc chắn sẽ không tránh khỏi những thiếu sót. Em kính mong nhận được sự cảm thông và nhận được sự đóng góp của quý thầy cô và các bạn. Một lần nữa, em xin chân thành cảm ơn! Tháng 12 năm 2012 Sinh viên thực hiện Nguyễn Thị Lan MỤC LỤC CHƯƠNG 1: TỔNG QUAN VỀ HỆ MẬT MÃ .2 1.1. Khái niệm về mã hóa thông tin .2 1.1.1. Khái niệm 2 1.1.2. Vai trò của mã hóa 2 1.1.3. Các thành phần của hệ mã hóa 2 1.2. Tiêu chuẩn để đánh giá hệ mã hóa 3 1.2.1. Độ an toàn của thuật toán 3 1.2.2. Tốc độ mã hóa và giải mã .4 1.2.3. Phân phối khóa .4 1.3. Khóa 4 1.3.1. Khái niệm 4 1.3.2. Ví dụ 4 1.4. Phân loại các thuật toán mã hóa .4 1.4.1. Phân loại theo các phương pháp 4 1.4.2. Phân loại theo số lượng khóa 5 CHƯƠNG 2: CÁC PHƯƠNG PHÁP MÃ HÓA CỔ ĐIỂN 8 2.1. Hệ mã hóa thay thế .8 2.1.1. Hệ mã hóa CEASAR 8 2.2.2. Mã hóa theo mẫu hình học . 12 3.1.2. Mô tả thuật toán DES 15 3.1.3. Giải mã DES 25 3.1.4. Độ an toàn của thuật toán 25 3.2. Thuật toán mã hóa RSA (Rivest, Shamir, Adleman) 26 3.2.1. Khái quát về RSA . 26 3.2.3. Một số phương pháp tấn công . 30 3.2.4. Đánh giá thuật toán 31 3.3. Thuật toán mã hóa MD5(Message-Digest algorithm 5) .32 3.3.1. Hàm băm MD5 .32 3.4. Ứng dụng 37 KẾT LUẬN .39 TÀI LIỆU THAM KHẢO .41 DANH MỤC VIẾT TẮT, THUẬT NGỮ STT Từ viết tắt Giải nghĩa 1 DES Data Encryption Standard 2 AES Advanced Encryption Standard 3 RC Rivest Cipher 4 CATS Carlisle Adams, and Stafford Tavares 5 MD Message Digest 6 SHA Secure Hash Alorithm 7 FIPS Federal Information Processing Standard (tiêu chuẩn xử lý thông tin liên bang) 8 RSA Rivest, Shamir, Adleman 9 MIT Học viện công nghệ Massachusetts 10 NSA Cơ quan Bảo mật quốc gia Hoa Kỳ Đồ án tốt nghiệp Đại học LỜI MỞ ĐẦU Lí do chọn đề tài: Hiện nay, nước ta đang trong giai đoạn tiến hành công nghiệp hóa, hiện đại hóa đất nước. Tin học được xem là một trong những ngành mũi nhọn. Tin học đã và đang đóng góp rất nhiều cho xã hội trong mọi khía cạnh của cuộc sống. Mã hóa thông tin là một ngành quan trọng và có nhiều ứng dụng trong đời sống xã hội. Ngày nay, các ứng dụng mã hóa và bảo mật thông tin đang được sử dụng ngày càng phổ biến hơn trong các lĩnh vực khác nhau trên thế giới, từ các lĩnh vực an ninh, quân sự, quốc phòng… cho đến các lĩnh vực dân sự như thương mại điện tử, ngân hàng… Ứng dụng mã hóa và bảo mật thông tin trong hệ thống thương mại điện tử, giao dịch chứng khoán,… đã trở nên phổ biến trên thế giới và sẽ ngày càng trở nên quen thuộc với người dân Việt Nam. Tháng 7/2000, thị trường chứng khoán lần đầu tiên được hình thành tại Việt Nam, các thẻ tín dụng bắt đầu được sử dụng, các ứng dụng hệ thống thương mại điện tử đang ở bước đầu được quan tâm và xây dựng. Do đó, mã hóa có vai trò rất quan trọng, đặc biệt là trong giao dịch điện tử. Nó giúp đảm bảo bí mật, toàn vẹn của thông tin, khi thông tin đó được truyền trên mạng. Mã hóa cũng là nền tảng của kĩ thuật chữ ký điện tử, hệ thống PKI(Public key infrastructure – Hạ tầng khóa công khai) Chính vì vậy em đã chọn “Tìm hiểu một số phương pháp mã hóa” làm đồ án tốt nghiệp của mình. Cấu trúc đồ án như sau: Chương 1: Tổng quan về hệ mật mã Chương 2: Các phương pháp mã hóa cổ điển Chương 3: Một số thuật toán mã hóa hiện đại Nguyễn Thị Lan - Lớp 49K - Tin - Khoa CNTT 1 Đồ án tốt nghiệp Đại học CHƯƠNG 1: TỔNG QUAN VỀ HỆ MẬT MÃ 1.1. Khái niệm về mã hóa thông tin 1.1.1. Khái niệm. Mã hóa thông tin là chuyển đổi thông tin từ dạng rõ (dạng đọc được) sang dạng mờ (dạng không thể đọc được) và ngược lại. Nhằm mục đích ngăn chặn nguy cơ truy cập thông tin truyền đi trên mạng một cách bất hợp pháp. Thông tin sẽ được truyền đi trên mạng dưới dạng mờ và không thể đọc được với bất kỳ ai cố tình muốn lấy thông tin đó. Khi chúng ta có nhu cầu trao đổi thông tin, thì Internet là môi trường không an toàn, đầy rủi ro và nguy hiểm, không có gì đảm bảo rằng thông tin mà chúng ta truyền đi không bị đọc trộm trên đường truyền. Vì vậy mã hóa là biện pháp giúp ta bảo vệ chính mình cũng như thông tin mà ta gửi đi. Ngoài ra mã hóa còn đảm bảo tính toàn vẹn của dữ liệu. 1.1.2. Vai trò của mã hóa. Các hệ mã hóa phải thực hiện được các vai trò sau. − Các hệ mã hóa phải che dấu được nội dung của văn bản rõ (PlainText) để đảm bảo sao cho chỉ người chủ hợp pháp của thông tin mới có quyền truy cập thông tin, hay nói cách khác là chống truy cập không đúng quyền hạn. − Tạo các yếu tố xác thực thông tin, đảm bảo thông tin lưu hành trên hệ thống đến người nhận hợp pháp xác thực. − Tổ chức các sơ đồ chữ ký điện tử, đảm bảo không có hiện tượng giả mạo, mạo danh để gửi thông tin trên mạng. Ưu điểm lớn nhất của các hệ mã hóa là có thể đánh giá được độ phức tạp của tính toán mà “kẻ địch” phải giải quyết bài toán để có thể lấy được thông tin của dữ liệu. Tuy nhiên mỗi hệ mã hóa đều có một số ưu và nhược điểm khác nhau, nhưng nhờ đánh giá được độ phức tạp tính toán, mức độ an toàn của mỗi hệ mã hóa mà ta có thể ứng dụng cụ thể tùy theo yêu cầu về độ an toàn. 1.1.3. Các thành phần của hệ mã hóa. Một hệ mã hóa là một bộ 5 (P, C, D, K, E) thõa mã các điều kiện sau: - P là một tập hợp hữu hạn các bản rõ (PlainText), nó còn được gọi là không gian bản rõ. Nguyễn Thị Lan - Lớp 49K - Tin - Khoa CNTT 2 Đồ án tốt nghiệp Đại học - C là tập hợp hữu hạn các bản mã (CipherText), nó còn được gọi là không gian bản mã. Mỗi phần tử của C có thể nhận được bằng cách áp dụng phép mã hóa E k lên một phần tử của P. - K là tập hợp hữu hạn các khóa hay còn gọi là không gian khóa. Đối với mỗi phần tử k của K được gọi là một khóa (Key). Số lượng của không gian khóa phải đủ lớn để “kẻ địch” không đủ thời gian để thử mọi khóa (phương pháp vét cạn). - E và D lần lượt là tập luật mã hóa và giải mã. Với mỗi k của K có một quy tắc mã hóa e k : PC và một quy tắc giải mã tương ứng d k € D. Mỗi e k : PC và d k : CP là những hàm mà: d k (e k (x))=x với mọi bản rõ x € P. Hình 1.1: Mô hình mã hóa 1.2. Tiêu chuẩn để đánh giá hệ mã hóa 1.2.1. Độ an toàn của thuật toán. Nguyên tắc đầu tiên trong mã hoá là “Thuật toán nào cũng có thể bị phá vỡ”. Các thuật toán khác nhau cung cấp mức độ an toàn khác nhau, phụ thuộc vào độ phức tạp để phá vỡ chúng. Một hệ mật mã được coi là an toàn nếu để phá vỡ hệ mật mã này phải dùng n phép toán, mà để giải quyết n phép toán thì cần thời gian vô cùng lớn, không thể chấp nhận được. Tại một thời điểm, độ an toàn của một thuật toán phụ thuộc. o Nếu chi phí hay phí tổn cần thiết để phá vỡ một thuật toán lớn hơn giá trị của thông tin đã mã hóa thuật toán thì thuật toán đó tạm thời được coi là an toàn. o Nếu thời gian cần thiết dùng để phá vỡ một thuật toán là quá lâu thì thuật toán đó tạm thời được coi là an toàn. o Nếu lượng dữ liệu cần thiết để phá vỡ một thuật toán quá lớn so với lượng dữ liệu đã được mã hoá thì thuật toán đó tạm thời được coi là an toàn. Nguyễn Thị Lan - Lớp 49K - Tin - Khoa CNTT 3 Đồ án tốt nghiệp Đại học 1.2.2. Tốc độ mã hóa và giải mã. Khi đánh giá hệ mã hóa phải chú ý đến tốc độ mã hóa và giải mã. Hệ mã hóa tốt thì thời gian mã hóa và giải mã nhanh. 1.2.3. Phân phối khóa. Một hệ mã hóa phụ thuộc vào khóa, khóa này được truyền công khai hay truyền bí mật. Phân phối khóa bí mật thì chi phí sẽ cao hơn so với các thuật toán mã hóa khóa công khai. Vì vậy đây cũng là một tiêu chí khi lựa chọn hệ mã hóa. 1.3. Khóa 1.3.1. Khái niệm. Một khóa mã hóa là một phần thông tin đặc biệt được kết hợp với một thuật toán để thi hành mã hóa và giải mã. Mỗi khóa khác nhau có thể tạo ra các văn bản mã hóa khác nhau, nếu không chọn đúng khóa thì không thể mở được tài liệu đã mã hóa trên, cho dù biết được thuật toán trên dùng thuật toán mã hóa gì, sử dụng khóa càng phức tạp thì độ an toàn của dữ liệu càng lớn . 1.3.2. Ví dụ. Mã hóa nội dung của một bức thư với khóa là “Thay thế mỗi ký tự xuất hiện trong bức thư bằng ký tự đứng thứ 2 sau nó”. Cùng thật toán trên nhưng sử dụng khóa là “Thay thế mỗi ký tự xuất hiện trong bức thư bằng ký tự đứng thứ 3 sau nó”. Như vậy kết quả của một bức thư có nội dung như nhau sau khi sử dụng hai khóa khác nhau sẽ có hai bản mã khác nhau. 1.4. Phân loại các thuật toán mã hóa 1.4.1. Phân loại theo các phương pháp. 1.4.1.1. Mã hoá cổ điển. Xuất hiện trong lịch sử, thuật toán sử dụng khóa đơn giản, dễ hiểu. Là phương pháp mà từng ký tự (hay từng nhóm ký tự) trong bản rỏ được thay thế bằng một ký tự (hay nhóm ký tự) khác tạo nên bản mã. Bên nhận chỉ cần đảo ngược lại trình tự thay thế trên thì sẽ nhận được bản rõ ban đầu. Mã hóa cổ điển có hai phương pháp nổi bật là: Mã hóa thay thế và mã hóa hoán vị. Các hệ mã hóa thường được sử dụng trong lịch sử là: Hệ mã hóa Ceasar, Vigenere, Hill… 1.4.1.2. Mã hóa đối xứng. Mã hóa đối xứng hay mã hóa chia sẻ khóa là mô hình mã hóa hai chiều, có nghĩa là tiến trình mã hóa và giải mã đều dùng chung một khóa. Khóa này được chuyển giao bí Nguyễn Thị Lan - Lớp 49K - Tin - Khoa CNTT 4
Ngày đăng: 14/12/2013, 00:21
Xem thêm: Tìm hiểu một số thuật toán mã hóa dữ liệu , Tìm hiểu một số thuật toán mã hóa dữ liệu