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 -
Trang 1TRƯỜ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
Trang 2TRƯỜ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
Trang 3LỜI CAM ĐOAN
Em xin cam đoan đây là đề tài nghiên cứu của riêng em và được sự hướng
dẫn khoa học của ThS Bùi Thị Thùy Các nội dung nghiên cứu, kết quả trong đề
tài này là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây Những
số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác giả thu thập từ các nguồn khác nhau có ghi rõ trong phần tài liệu tham khảo
Ngoài ra, trong đồ án còn sử dụng một số nhận xét, đánh giá cũng như số liệu của các tác giả khác, cơ quan tổ chức khác và đều có trích dẫn cụ thể Nếu phát hiện
có bất kỳ sự gian lận nào em xin hoàn toàn chịu trách nhiệm về nội dung đồ án của mình Trường đại học Tài nguyên và Môi trường Hà Nội cùng Khoa Công nghệ thông tin không liên quan đến vi phạm tác quyền, bản quyền do em gây ra trong quá trình thực hiện (nếu có)
Sinh viên
Nguyễn Việt Thắng
Trang 4LỜ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 và môi trường Hà Nội, cô đã chỉ bảo tận tình, đầy trách nhiệm, cho tôi các ý kiến chỉ đạo trong suốt quá trình làm đồ án, đã động viên, tạo điều kiện thuận lợi để tôi hoàn thành đồ án này
Tôi xin chân thành cảm ơn toàn thể các thầy cô nói chung và các thầy cô Khoa công nghệ thông tin nói riêng – Đại học tài nguyên và môi trường Hà Nộiđã truyền đạt những kiến thức bổ ích và lý thú, giúp ích cho tôi trên con đường sự nghiệp của mình
Cuối cùng, tôi xin cảm ơn sự ủng hộ của gia đình và bạn bè đã đóng góp ý kiến, động viên, giúp đỡ cho tôi hoàn thành đồ án này
Nguyễn Việt Thắng
Trang 5MỤ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 1
Trang 6DANH MỤC CÁC HÌNH VẼ
Hình 1.1: Phân cấp các lĩnh vực nghiên cứu của mật mã học 5
Hình 1.2: Quá trình mã hóa và giải mã 7
Hình 1.3: Mô hình mã hóa đối xứng 8
Hình 1.4: Mô hình mã hóa và giải mã hệ mã hóa công khai 9
Hình 1.6: Xác thực chữ ký số 13
Hình 1.7: Phân loại hàm băm 14
Hình 1.8: Phân loại các kỹ thuật ẩn mã 18
Hình 2.1: Mô hình ẩn mã thông thường 20
Hình 2.2: Mô hình tiếp kết hợp ẩn mã và mật mã 21
Hình 2.3: Mô hình ẩn mã không sử dụng vật phủ 22
Hình 2.4: Sơ đồ khối phương pháp ẩn mã kết hợp mã hóa không sửa vật phủ 25
Hình 2.5: Phép dịch chuyển cửa sổ của thuật toán Morris Pratt 33
Hình 2.6: Phép dịch chuyển Knuth-Morris-Pratt 35
Hình 2.7: Mô tả phép so khớp miss-match khi đang so sánh ở vị trí thứ j 39
Hình 2.9: Good-suffix shift, trường hợp chỉ suffix của u xuất hiện trong P 39
Hình 2.10: Good-suffix shift, trường hợp a xuất hiện trong P 40
Hình 2.10: Thuật toán Boyer-Moore-Horpool (T[s+m-1] xuất hiện trong P) 45
Hình 2.11: Thuật toán Boyer-Moore-Horpool (T[s+m-1] không xuất hiện trong P)45 Hình 2.12: Sơ đồ giải mã phương pháp ẩn mã không sửa vật phủ 55
Hình 3.1: Mô hình quá trình mã hóa 57
Hình 3.2: Mô hình quá trình mã hóa 58
Hình 3.4: Giao diện chọn file dùng làm vật phủ 60
Hình 3.5: Giao diện Load Data 61
Hình 3.6: Giao diện load Secret Message 62
Hình 3.7: Giao diện mã hóa dữ liệu 63
Hình 3.8: Mã hóa thành công, hiển thị các vector vị trí 64
Hình 3.9: Save vector output sau khi mã hóa ra dưới dạng file 65
Hình 3.10: Giao diện giải mã tệp tin 66
Trang 7Hình 3.11: Giao diện sau khi giải mã để có được chuỗi bit ban đầu 67 Hình 3.12: Giao diện save file để có được tệp tin trước khi mã hóa 68 Hình 3.13: Biểu đồ so sánh thời gian xử lý của các thuật toán đối sánh chuỗi với kích thước vật phủ cố định 69 Hình 3.14: Biểu đồ so sánh thời gian xử lý của các thuật toán đối sánh chuỗi với kích thước secret message cố định 70
Trang 8DANH SÁCH BẢNG
Bảng 1.1: Các hàm băm 14 Bảng 1.2: Phân biệt giữa Steganography và Watermarking 19 Bảng 2.1: Bảng so sánh độ phực tạp các thuật toán đối sánh chuỗi 52 Bảng 3.1: Bảng so sánh thời gian xử lý của các thuật toán đối sánh chuỗi với kích thước tệp tin được chọn làm vật phủ là cố định 69 Bảng 3.1: Bảng so sánh thời gian xử lý của các thuật toán đối sánh chuỗi với kích thước tệp tin bí mật là cố định 70
Trang 9DANH SÁCH ĐOẠN MÃ
Đoạn mã 1: Giải thuật ẩn mã 26
Đoạn mã 2: Giải thuật Brute Force 31
Đoạn mã 3: Giải thuật Morris-Pratt 34
Đoạn mã 4: Giải thuật Knuth-Morris-Pratt 37
Đoạn mã 5: Giải thuật Boyer-Moore (BM) 43
Đoạn mã 6: Giải thuật Boyer-Moore-Horspool (BMH) 46
Đoạn mã 7: Giải thuật Rabin-Karp 51
Trang 10KÍ HIỆU CÁC CỤM TỪ VIẾT TẮT
BM Boyer-Moore algorithm Thuật toán Boyer-Moore BMH Boyer-Moore-Horspool
algorithm
Thuật toán Boyer-MooreHorspool
KMP Knuth – Morris – Pratt
algorithm
Thuật toán Knuth - Morris -
Pratt
DES Data Encryption Standard Chuẩn mã hóa dữ liệu, là
một giải thuật mã hóa bí mật AES Advanced Encryption Standard Chuẩn mã hóa nâng cao, là
một giải thuật mã hóa khóa
bí mật RSA Ron Rivest, Adi Shamir và Len
Adleman
Là một thuật toán mã hóa
công khai SPS Static Parsing Steganography Phân tích cú pháp tĩnh LCS Longest Common Substring Chuỗi con chung dài nhất