MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii DANH SÁCH BẢNG vi DANH SÁCH ĐOẠN MÃ vii KÍ HIỆU CÁC CỤM TỪ VIẾT TẮT viii MỞ ĐẦU 1 CHƯƠNG 1: TỔNG QUAN VỀ MÃ HÓA VÀ ẨN MÃ 4 1.1. Giới thiệu chung 4 1.2. Tổng quan về mã hóa 5 1.3. Tổng quan về ẩn mã. 16 CHƯƠNG 2: PHƯƠNG PHÁP ĐỐI SÁNH CHUỖI VÀ ỨNG DỤNG VÀO KẾT HỢP MÃ HÓA VÀ ẨN MÃ 20 2.1. Phương pháp ẩn mã truyền thống 20 2.2. Phương pháp ẩn mã mới 22 2.2.1. Mô tả phương pháp ẩn mã mới 23 2.2.2. Quá trình ẩn mã của người gửi 25 2.2.3. Quá trình giải mã 54 CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG MÃ HÓA KẾT HỢP VỚI ẨN MÃ 57 3.1. Mô hình quá trình mã hóa và giải mã. 57 3.2. Cài đặt thử nghiệm chương trình. 58 3.2.1. Giới thiệu 58 3.2.2. Mô tả giao diện và các modul chính của chương trình. 59 3.3. Các kịch bản thực nghiệm 68 3.3.1. Một số kịch bản 68 3.3.2. Đánh giá kết quả 71 KẾT LUẬN VÀ KIẾN NGHỊ 73 DANH MỤC TÀI LIỆU THAM KHẢO
TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN NGHIÊN CỨU VÀ PHÁT TRIỂN PHƯƠNG PHÁP ẨN MÃ KẾT HỢP VỚI MẬT MÃ NHẰM TĂNG CƯỜNG MỨC ĐỘ AN TOÀN THÔNG TIN Hà Nội - 2017 TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN NGUYỄN VIỆT THẮNG ĐỒ ÁN TỐT NGHIỆP NGHIÊN CỨU VÀ PHÁT TRIỂN PHƯƠNG PHÁP ẨN MÃ KẾT HỢP VỚI MẬT MÃ NHẰM TĂNG CƯỜNG MỨC ĐỘ AN TOÀN THÔNG TIN Chuyên ngành : Công nghệ thông tin Mã ngành : 52480201 GIÁO VIÊN HƯỚNG DẪN: ThS BÙI THỊ THÙY Hà Nội - 2017 LỜI CAM ĐOAN Em xin cam đoan đề tài nghiên cứu riêng em hướng dẫn khoa học ThS Bùi Thị Thùy Các nội dung nghiên cứu, kết đề tài trung thực chưa công bố hình thức trước Những số liệu bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá tác giả thu thập từ nguồn khác có ghi rõ phần tài liệu tham khảo Ngoài ra, đồ án sử dụng số nhận xét, đánh số liệu tác giả khác, quan tổ chức khác có trích dẫn cụ thể Nếu phát có gian lận em xin hoàn toàn chịu trách nhiệm nội dung đồ án Trường đại học Tài nguyên Môi trường Hà Nội Khoa Công nghệ thông tin không liên quan đến vi phạm tác quyền, quyền em gây trình thực (nếu có) Sinh viên Nguyễn Việt Thắng LỜI CẢM ƠN Tôi xin cảm ơn sâu sắc đến cô giáo, ThS Bùi Thị Thùy – Khoa công nghệ thông tin – Đại học tài nguyên môi trường Hà Nội, cô bảo tận tình, đầy trách nhiệm, cho ý kiến đạo suốt trình làm đồ án, động viên, tạo điều kiện thuận lợi để hoàn thành đồ án Tôi xin chân thành cảm ơn toàn thể thầy cô nói chung thầy cô Khoa công nghệ thông tin nói riêng – Đại học tài nguyên môi trường Hà Nộiđã truyền đạt kiến thức bổ ích lý thú, giúp ích cho đường nghiệp Cuối cùng, xin cảm ơn ủng hộ gia đình bạn bè đóng góp ý kiến, động viên, giúp đỡ cho hoàn thành đồ án Nguyễn Việt Thắng MỤC LỤC DANH MỤC CÁC HÌNH VẼ DANH SÁCH BẢNG DANH SÁCH ĐOẠN MÃ KÍ HIỆU CÁC CỤM TỪ VIẾT TẮT Từ viết tắt BM BMH DES Nghĩa tiếng Anh Boyer-Moore algorithm Boyer-Moore-Horspool algorithm Knuth – Morris – Pratt algorithm Data Encryption Standard AES Advanced Encryption Standard RSA Ron Rivest, Adi Shamir Len Adleman Static Parsing Steganography Longest Common Substring KMP SPS LCS Nghĩa tiếng Việt Thuật toán Boyer-Moore Thuật toán BoyerMooreHorspool Thuật toán Knuth - Morris Pratt Chuẩn mã hóa liệu, giải thuật mã hóa bí mật Chuẩn mã hóa nâng cao, giải thuật mã hóa khóa bí mật Là thuật toán mã hóa công khai Phân tích cú pháp tĩnh Chuỗi chung dài 10 MỞ ĐẦU Lý lựa chọn đề tài Ngày vấn đề an toàn thông tin xem quan tâm hàng đầu xã hội, có ảnh hưởng nhiều đến hầu hết ngành khoa học tự nhiên, kỹ thuật, khoa học xã hội kinh tế Đặc biệt với phát triển công nghệ thông tin đặc biệt Internet, khiến việc bảo mật an toàn thông tin người sử dụng quan trọng thiết yếu Mã hóa ẩn mã hai phương pháp sử dụng phổ biến việc bảo vệ thông tin kênh truyền không tin cậy Tuy nhiên, phương pháp thường sử dụng độc lập trình truyền tin Việc lựa chọn phương pháp kết hợp ẩn mã mã hóa phát huy tối đa hiệu phương pháp Vì em lựa chọn nghiên cứu phát triển đề tài nhằm tìm hiểu phương pháp làm tăng độ tin cậy an toàn cho thông tin truyền người gửi, qua ứng dụng vào nhiều vấn đề bảo mật khác Nội dung đề tài Mã hóa ẩn mã phương pháp đảm bảo an toàn cho thông tin trao đổi kênh truyền không tin cậy Phương pháp mã hóa nhằm ẩn mã thông tin mật cách biến đổi thông tin ban đầu (bản rõ) thành dạng khác (bản mã) bí mật Phương pháp ẩn mã lại tập trung vào việc Ẩn tồn thông tin vật phủ (hình ảnh, âm thanh, văn bản,…) Mã hóa ngành khoa học có lịch sử phát triển lâu đời ứng dụng nhiều thực tế, đặc biệt chiến tranh Đây lĩnh vực nghiên cứu phương pháp truyền tin theo cách mã hóa liệu thông báo thành mã để không đọc khóa giải mã phù hợp Thông thường, mã hóa chia thành: Mã hóa khóa bí mật (hay gọi mã hóa đối xứng), mã hóa khóa công khai (mã hóa bất đối xứng), chữ kí số hàm băm Mã hóa ngày ứng dụng rộng rãi trở thành tiêu chuẩn đảm bảo truyền thông tin an toàn, tin cậy, kiểm soát truy nhập tài nguyên 68 Hình 3.5: Giao diện Load Data Với tap load secret message trình load file diễn tương tự giao diện tap load file chọn làm vật phủ 69 Hình 3.6: Giao diện load Secret Message Sau trình load file vật phủ file cần mã hóa Ta chuyển sang hình mã hóa để bắt đầu tiến hành trình mà hóa liệu hoàn tất xong trình tiền xử lý 70 Hình 3.7: Giao diện mã hóa liệu Tại tap Encrypt and Stegorygraphy ta thấy, vật phủ Secret Message load thành công Chương trình cài đặt năm giải thuật đối sánh chuỗi cho phép người dùng chọn năm giải thuật để tiến hành mã hóa liệu Giả sử ta chọn giải thuật đối sánh chuỗi giải thuật Brute Force, ta check vào ô Brute Force giao diện Khi click vào nút Run, chương trình tiến hành mã hóa liệu 71 Hình 3.8: Mã hóa thành công, hiển thị vector vị trí Khi mã hóa thành công vector lưu vị trí trùng khớp secret message so với vị trí vật phủ hộp text box hình 3.8 Để lưu kết click vào nút Save, chương trình cho phép lưu vector vị trí file để gửi sang cho người nhận thông điệp 72 Hình 3.9: Save vector output sau mã hóa dạng file Như trình mã hóa trình đơn giản với quy trình chọn vật phủ sau load vật phủ, tiếp tục chọn Secret Message sau load message Và cuối lựa chọn thuật toán đối sánh chuỗi để thực việc tìm vị trí mà secret message xuất vật phủ Cuối save vector chứa vị trí file gửi sang cho người nhận 73 b Modul giải mã Hình 3.10: Giao diện giải mã tệp tin Giải mã trình người nhận chuyển từ tệp tin vector index nhận từ người gửi sang tệp tin ban đầu Giao diện modul giải mã hình 3.10 gồm nút openObject cho phép load tệp tin chọn làm vật phủ Nút OpenCipherText cho phép load tệp tin chứa vector index 74 Hình 3.11: Giao diện sau giải mã để có chuỗi bit ban đầu Sau load object and vector index, click vào nút run để thực trình giải mã Giải mã thực chất trình truy xuất bit vật phủ tương ứng với vị trí lưu vector index Khi có chuỗi bit tương ứng ban đầu chương trình tiến hành chuyển sang dạng byte tương ứng lưu file 75 Hình 3.12: Giao diện save file để có tệp tin trước mã hóa 3.3 3.3.1 Các kịch thực nghiệm Một số kịch Kịch thử nghiệm sau: - Kịch 1: Cố định kích thước tệp tin lưa chọn làm vật phủ tệp tin 4Kb Sử dụng mẫu tệp tin với kích thươc tương ứng 4Kb, 8Kb, 16Kb, 32Kb, 64Kb làm - secret message Chạy chương trình mã hóa với thuật toán khác Tính toán thời gian xử lý đưa bảng kết • - Bảng 3.1: Bảng so sánh thời gian xử lý thuật toán đối sánh chuỗi với kích thước tệp tin chọn làm vật phủ cố định 76 Kích thước tệp tin lựa chọn làm vật phủ cố định 4KB Brute Force Mooris Pratt Krunth Morris Pratt Boyer Moore Rabin Karp Kb Kb 16 Kb 32 Kb 939ms 1110m s 1015m s 453ms 1109m s 2923ms 3862ms 11581ms 2860ms 4150ms 11430ms 2783ms 3971ms 10946ms 1047ms 1594ms 4167ms 3672ms 4201ms 14395ms 64 Kb 18173ms 19260ms 18098ms 7883ms 16582ms Hình 3.13: Biểu đồ so sánh thời gian xử lý thuật toán đối sánh chuỗi với kích thước vật phủ cố định - Kịch 2: Sử dụng mẫu tệp tin với kích thước tương ứng 4Kb, 8Kb, 16Kb, 32Kb, 64Kb làm - vật phủ Cố định kích thước tệp tin lựa chọn làm secret message Chạy chương trình mã hóa với thuật toán khác Tính toán thời gian xử lý đưa bảng kết • Bảng 3.1: Bảng so sánh thời gian xử lý thuật toán đối sánh chuỗi với kích thước tệp tin bí mật cố định Kích thước tệp tin lựa chọn làm secret message 4KB Brute Force Mooris Pratt Krunth Morris Pratt Boyer Moore Rabin Karp Kb 893ms 1175m s Kb 2479ms 16 Kb 5483ms 32 Kb 12384ms 2749ms 6241ms 13796ms 984ms 2549ms 5643ms 13319ms 516ms 1642m s 1306ms 2782ms 6184ms 4789ms 11047ms 25517ms 64 Kb 27866ms 32503ms 30318ms 15264ms 61923ms 77 Hình 3.14: Biểu đồ so sánh thời gian xử lý thuật toán đối sánh chuỗi với kích thước secret message cố định 78 3.3.2 Đánh giá kết a Đánh giá thời gian xử lý thuật toán Dựa vào kết thu trình thử nghiệm, ta nhận thấy độ phức tạp thời gian thuật toán chủ yếu phụ thuộc vào yếu tố kích thước chuỗi mẫu • Thuật toán Brute Force: Với chuỗi mẫu có kích thước ngắn, thuật toán Brute Force cho hiệu tốt Mặc dù thuật toán sơ khai chênh lệch thời gian tìm kiếm Brute Force so với thuật toán hiệu cao BM BMH không lớn Nhưng tăng kích thước chuỗi mẫu lên, thuật toán Brute Force bộc lộ rõ nhược điểm chế tiền xử lý liệu mẫu • Thuật toán Morris Partt KMP: Trong kết thống kê độ phức tạp thuật toán (thực chương 2), thuật toán MP KMP đánh giá ưu điểm trội nhiều thời gian tiền xử lý liệu mẫu độ phức tạp thuật toán nhiều cải thiện so với Brute Force Trong thử nghiệm hiệu đồ án thực hiện, ta nhận thấy thuật toán MP KMP cho kết • Thuật toán Boyer-Moore: Đây thuật toán đối sánh chuỗi hiệu cao Trong tất trường hợp thử nghiệm, hiệu BM vượt trội so với thuật toán Brute Force KMP Sở dĩ thuật toán Boyer – Moore tiền xử lý liệu nhanh, trình so khớp đạt kết cao • Thuật toán Rabin Karp: Thuật toán Rabin thuật toán sử dụng việc so sánh chuỗi băm mẫu P Tuy nhiên mẫu P có kích thước lớn (trên 1000 ký tự) việc tính chuỗi băm tốn rât nhiều thời gian xử lý Như ta thấy tất trường hợp kiểm thử Thuật toán Rabin Karp cho kết Vì liệu băm có kích thước lớn (>4Kb = 4*1024*8 = 32768 kí tự) b Đánh giá kết với kích thước liệu Dựa vào kết đạt trình kiểm thử với năm mẫu liệu có kích thước tuyến tình ta nhận thấy, kết tốt kích thước tệp tin chọn làm vật phủ so với kích thước tệp tin bí mật cho kết tốt có độ dài tương đương 79 Để có thời gian xử lý nhanh việc lựa chọn kích thước vật phủ vấn đề quan trọng Nếu chọn vật phủ có kích thước lớn việc tìm kiếm tập kí tự lớn nhiều thời gian Việc chọn vật phủ có kích thước nhỏ làm hẹp không gian đối sánh, đệ quy hai nửa trải, phải tệp tin nhiều lần Điều làm tăng thời gian xử lý Thuật toán giải mã đơn giản trình so khớp vị trí với vật phủ nên thời gian xử lý trình giải mã phụ thuộc vào kích thước vector index đầu Thử nghiệm cho thấy kích thước vector index phụ thuộc vào tương đồng bit vật phủ so với bit tệp tin bí mật Điều không quan trọng chuyển sang dạng bit chứa kí tự ‘0’ ‘1’ Việc tìm kiếm tập không gian nhiều kí tự giải Kết chương Chương đồ án trình bày cài đặt ứng ụng mã hóa kết hợp giải mã với phần xử lý giải thuật đối sánh chuỗi Đối với trình mã hóa, dựa vào thời gian xử lý thuật toán, thấy thuật toán Boyer More cho thời gian xử lý nhanh nhất, hiệu Việc lựa chọn kích thước vật phủ dùng để ẩn mã phải đủ lớn không nhỏ để trình mã hóa giải mã tối ưu 80 KẾT LUẬN VÀ KIẾN NGHỊ - Kết luận: Đồ án trình bày cách đầy đủ phương pháp kết hợp ẩn mã mật mã, tăng mức độ an toàn thông tin với việc vừa kết hợp ẩn mã sử dụng vật phủ chứa thông tin mã hóa thay đổi tin rõ thành vector index chứa vị trí xuất tệp tin bí mật vật phủ Những nội dung đồ án đạt được: • Nghiên cứu phương pháp mã hóa ẩn mã cũ, yêu cầu để đảm bảo an toàn thông tin Phân loại phương pháp mã hóa ẩn mã biết, từ đề xuất phương pháp ẩn mã kết hợp với mật mã nhằm tăng mức độ an toàn thông tin Mã hóa thông tin kết hợp với ẩn mã giống việc áp dụng bảo vệ nhiều lớp, thông báo mã hóa giấu vào vật phủ phương pháp ẩn mã mà hai bên thống • Nghiên cứu sâu vào phương pháp ẩn mã kết hợp với ẩn mã mật mã với ý tưởng Khalil Challita Hikmat Farhat, nghiên cứu thuật toán đối sánh chuỗi, phân tích ưu nhược điểm phương pháp Đồ án đề xuất số phương pháp thỏa thuận phân phối vật phủ dựa giao thức phân phối khóa có So với phương pháp kết hợp ẩn mã mã hóa thông thường Phương pháp kết hợp ẩn mã mã hóa đề xuất có ưu điểm nhanh trình ẩn mã trình mã hóa Với việc tối ưu thuật toán đối sánh chuỗi trình mã hóa thực với thời gian nhanh • Cài đặt kiểm thử thành công phương pháp ẩn mã kết hợp với mã hóa • Tiến hành thử mẫu liệu từ đánh giá thuật toán tối ưu cho phương pháp ẩn mã kết hợp mã hóa - Kiến nghị: Trên kết đạt đồ án nghiên cứu phát triển theo hướng sau: • Tiếp tục hoàn thiện phương pháp, nghiên cứu đưa giải thuật đối sánh chuỗi tối ưu để nâng cao khả xử lý phương pháp 81 • Ở Việt Nam, ẩn mã lĩnh vực chưa quan tâm nhiều mật mã Tuy nhiên, tương lai điều thay đổi phát triển để xây dựng thành công giao thức ẩn mã DANH MỤC TÀI LIỆU THAM KHẢO Tiếng Anh: [1]A Joseph Raphael, Dr V Sundaram, “Cryptography and Steganography – A Survey” [2]Joshua Silman, “Steganography and Steganalysis: An Overview”, SANS Institute Reading Room site, (tháng 8/2001) [3] Khalil Challita, Hikmat Farhat, “Combining Steganography and Cryptography: New Directions [4] Christian Charras, Thierry Lecroq, Handbook of exact string-matching algorithm, King's College Publications, 2004 [5] Alfred J Menezes, Paul C van Oorschot and Scott A.Vanstone, Handbook of Applied Cryptography, CRC Press, October 1996 Tiếng Việt: [6]TS Hoàng Xuân Dậu, Khoa ATTT HV- Công nghệ Bưu Viễn thông, giảng môn Cơ sở An toàn thông tin, tham khảo ngày 20/10/2015 [7]Nguyễn Tri Tuấn, Khoa CNTT-Đại học Khoa Học Tự Nhiên Tp.HCM, Data Structures & Algorithms Các thuật toán đối sánh chuỗi(String Searching),08/2008 Website tham khảo: [8] Giải pháp/mật mã, http://antoanthongtin.vn [9] Brute Force algorithm, http://www-igm.univ-mlv.fr/~lecroq/string/node3.html [11]Karp-Rabin algorithm, http://www-igm.univ-mlv.fr/~lecroq/string/node5.html [12] Knuth-Morris-Pratt, http://www-igm.univ-mlv.fr/~lecroq/string/node8.html [13] Wikipedia Boyer-Moore algorithm, http://en.wikipedia.org/wiki/Boyer– Moore_string_search_algorithm [14] Wikipedia Boyer-MooreHorspoo_algorithm,http://en.wikipedia.org/wiki/Boyer–Moore– Horspool_algorithm [15] Wikipedia KMP algorithm, http://en.wikipedia.org/wiki/Knuth–Morris– Pratt_algorithm [16] Wikipedia String Searching Algorithm, http://en.wikipedia.org/wiki/String_searching_algorithm ... thông tin cách bí mật kênh không an toàn Có nhiều phương pháp ẩn mã khác nhau: ẩn mã ảnh, âm thanh, video, văn bản,… Kỹ thuật ẩn thông tin nhằm hai mục đích đảm bảo an toàn bảo mật thông tin: ... steganography Nếu watermarking quan tâm nhiều đến ứng dụng ẩn mẩu tin ngắn đòi hỏi độ bền vững lớn thông tin cần ẩn (trước biến đổi thông thường tệp liệu môi trường) steganography lại quan tâm... nhằm ẩn mã thông tin mật cách biến đổi thông tin ban đầu (bản rõ) thành dạng khác (bản mã) bí mật Phương pháp ẩn mã lại tập trung vào việc Ẩn tồn thông tin vật phủ (hình ảnh, âm thanh, văn bản,…)