NGHIÊN CỨU KỸ THUẬT ẨN MÃ TRONG ẢNH DỰA TRÊN PHƯƠNG PHÁP TIẾP CẬP MỚI TRÊN KÊNH RGB

71 4 0
NGHIÊN CỨU KỸ THUẬT ẨN MÃ TRONG ẢNH DỰA TRÊN PHƯƠNG PHÁP TIẾP CẬP MỚI TRÊN KÊNH RGB

Đ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

BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT Mà ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ĐỒ ÁN TỐT NGHIỆP NGHIÊN CỨU KỸ THUẬT ẨN Mà TRONG ẢNH DỰA TRÊN PHƯƠNG PHÁP TIẾP CẬP MỚI TRÊN KÊNH RGB Ngành An toàn thông tin Mã số 7 48 0.

BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT Mà ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ĐỒ ÁN TỐT NGHIỆP NGHIÊN CỨU KỸ THUẬT ẨN Mà TRONG ẢNH DỰA TRÊN PHƯƠNG PHÁP TIẾP CẬP MỚI TRÊN KÊNH RGB Ngành: An tồn thơng tin Mã số: 7.48.02.02 Sinh viên thực hiện: Nguyễn Văn Long Lớp: AT10C Người hướng dẫn: Ths Hoàng Thu Phương KhoaAn toàn thông tin – Học viện Kỹ thuật mật mã Hà Nội, 2018 BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT Mà ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ĐỒ ÁN TỐT NGHIỆP NGHIÊN CỨU KỸ THUẬT ẨN Mà TRONG ẢNH DỰA TRÊN PHƯƠNG PHÁP TIẾP CẬP MỚI TRÊN KÊNH RGB Ngành: An tồn thơng tin Mã số: 7.48.02.02 Sinh viên thực hiện: Nguyễn Văn Long Lớp: AT10C Người hướng dẫn: Ths Hoàng Thu Phương KhoaAn tồn thơng tin – Học viện Kỹ thuật mật mã Hà Nội, 2018 LỜI CAM ĐOAN Tôi xin cam đoan đồ án t ự nghiên c ứu d ưới s ự hướng dẫn Ths Hoàng Thu Phương để hoàn thành đồ án này, sử dụng tài liệu ghi mục tài liệu tham kh ảo, ngồi khơng sử dụng tài liệu khác mà không ghi.Nếu sai, tơi xin ch ịu m ọi hình thức kỷ luật theo quy định Học viện Hà Nội, ngày tháng năm 2018 Sinh viên thực (Ký ghi rõ họ tên) Nguyễn Văn Long MỤC LỤC LỜI CAM ĐOAN i MỤC LỤC .iii DANH MỤC TỪ VIẾT TẮT v DANH MỤC HÌNH ẢNH vi DANH MỤC BẢNG BIỂU vii LỜI NÓI ĐẦU CHƯƠNG TỔNG QUAN VỀ ẨN Mà 1.1 Giới thiệu chung ẩn mã 1.2 Khái niệm ẩn mã .4 1.3 Một số thuật ngữ 1.4 Mơ hình ẩn mã 1.5 Một số kỹ thuật ẩn mã 1.5.1 Ẩn mã ảnh 1.5.2 Ẩn mã âm 1.5.3 Ẩn mã video 1.5.4 Ẩn mã tệp văn .8 1.5.5 Ẩn mã giao thức 1.6 Một số ứng dụng ẩn mã thực tế CHƯƠNG TỔNG QUAN VỀ ẨN Mà TRONG ẢNH 2.1 Các định dạng ảnh thường dùng để ẩn mã .9 2.1.1 Định dạng ảnh JPEG 2.1.2 Định dạng ảnh TIFF 10 2.1.3 Định dạng ảnh PNG 12 2.1.4 Định dạng ảnh GIF .13 2.1.5 Định dạng ảnh BITMAP .16 2.2 Một số kỹ thuật ẩn mã ảnh miền không gian 19 2.2.1 Phương pháp ẩn mã thay bit có trọng số thấp (LSB) 19 2.2.2 Phương pháp vi phân điểm ảnh (PVD) .22 2.2.3 Phương pháp vi phân đa điểm ảnh (MPD) 23 2.3 Một số kỹ thuật ẩn mã ảnh miền tần số 25 2.3.1 Kỹ thuật biến đổi Fourier rời rạc (DFT) 25 2.3.2 Kỹ thuật biến đổi trực giao Cosine rời rạc (DCT) 28 2.3.3 Kỹ thuật biến đổi sóng nhỏ rời rạc (DWT) 31 CHƯƠNG 3: NGHIÊN CỨU KỸ THUẬT ẨN Mà TRONG ẢNH DỰA TRÊN PHƯƠNG PHÁP TIẾP CẬN MỚI TRÊN KÊNH RGB 36 3.1 Giới thiệu 36 3.2 Thuật toán ẩn mã ảnh dựa kênh RGB .37 3.2.1 Thuật toán bên gửi .37 3.2.2 Thuật toán người nhận 41 3.3 Đánh giá phương pháp .43 CHƯƠNG XÂY DỰNG CHƯƠNG TRÌNH THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ .44 4.1 Nền tảng ứng dụng ngơn ngữ lập trình 44 4.2.Sơ đồ thuật toán bước thực 44 4.3.Chương trình 47 4.4.Đánh giá kết thực nghiệm 48 KẾT LUẬN HƯƠNG PHÁT TRIỂN ĐỀ TÀI 53 Kết luận 53 Hướng phát triển đề tài 54 TÀI LIỆU THAM KHẢO 58 DANH MỤC TỪ VIẾT TẮT Từ viết tắt Giải từ Mô tả BMP BITMAP DCT Discrete Cosine Transform/Transformation Biến đổi Cosine rời rạc DFT Discrete Fourier Transformation Biến đổi Fourier rời rạc DWT Discrete Wavelet Transformation Hiệu chỉnh hệ số sóng nhỏ GIF Graphics Interchange Format HAS Human Auditory System JPEG Joint Photographic Experts Group LSB Least Significant Bit Bit có trọng số thấp MPD Multi-Pixel Differencing Vi phân đa điểm ảnh PNG Portable Network Graphics PVD Pixel Value Differencing TIFF Tag Image File Format Hệ thống thính giác người Phương pháp vi phân điểm ảnh DANH MỤC HÌNH ẢNH Hình 1.1 Mơ hình ẩn mã Hình 2.1 Cấu trúc ảnh GIF87a 14 Hình 2.2 Phân tích đa phân giải sử dụng biến đổi wavelet rời rạc 32 Hình 2.3 Phép biến đổi wavelet rời rạc 2-D 33 Hình 3.1 Sơ đồ thuật tốn bên gửi 45 Hình 3.2 Sơ đồ thuật tốn bên nhận 46 Hình 4.1 Giao diện ứng dụng bên gửi 47 Hình 4.2 Giao diện ứng dụng bên nhận 48 Hình 4.3 Hình ảnh trước sau ẩn mã 49 Hình 4.4 Hình ảnh “minato.jpg” trước sau ẩn mã 51 Hình 4.5 Biểu đồ giá trị RGB trước sau ẩn mã 52 DANH MỤC BẢNG BIỂU Bảng 2.1 Chi tiết khối byte header tệp bitmap 17 Bảng 2.2 Chi tiết khối byte thông tin tệp bitmap 17 Bảng 2.3 Ví dụ ẩn giấu chữ A vào byte file gốc 20 Bảng 3.1 Ví dụ nhúng 41 Bảng 4.1 PSNR quan sát hình ảnh 50 Bảng 4.2 Tổng RGB ảnh trước nhúng ẩn mã 51 Bảng 4.3 Tổng RGB ảnh sau nhúng ẩn mã 51 * GIAO DIỆN BÊN NHẬN Hình 4.2 Giao diện ứng dụng bên nhận 4.4.Đánh giá kết thực nghiệm (a) Hình ảnh “co gai” (b) Hình ảnh stego “co gai” 47 (c) Hình ảnh “ngoi nha” (d) Hình ảnh stego “ngoi nha” (e) Hình ảnh “thien nhien” (f) Hình ảnh stego “thien nhien” (g) Hình ảnh “xuan truong” (h) Hình ảnh stego “xuan truong” Hình 4.3Hình ảnh trước sau ẩn mã * Phân tích kết Trong hình 4.3 (a) hình ảnh “co gai” chưa ẩn mã (b) hình ảnh nhúng mã có dung lượng14869bytes, (c) hình ảnh “ngoi nha” chưa ẩn mã (d) hình ảnh nhúng mã có dung lượng 20047bytes, (e) hình ảnh “thien nhien” chưa ẩn mã (f) hình ảnh “thien 48 nhien” nhúng mã có dung lượng 15039bytes, (g) hình ảnh “xuan truong” chưa ẩn mã (h) hình ảnh “xuan truong” nhúng mã có dung lượng 30079bytes Tỷ số tín hiệu cực đại nhiễu (PSNR) tải trọng khác cho hình ảnh khác đưa bảng 4.1 PSNR đo (dB) Giá trị PSNR giảm xuống 30 dB cho thấy chất lượng thấp, tức là, biến dạng gây việc nhúng dễ thấy; Tuy nhiên, hình ảnh ẩn mã chất lượng cao nên phấn đấu từ 40 dB trở lên [17] PSNR định nghĩa PSNR = 10 log 10 () Khi Cmax = giá trị pixel max, 255 cho 8-bit hình ảnh MSE gọi sai số tồn phương (hoặc bình phương) trung bình (MSE)được định nghĩa đây: Trong x y tọa độ ảnh, M N kích thước ảnh, C xy ảnh bìa Sxy, ảnh chụp tạo Bảng 4.1 PSNR quan sát hình ảnh Hình ảnh co gai ngoi nha thien nhien xuan truong Kích thước ảnh Lượng mã (trong kilo bytes) 768 1214 1050 1837 nhúng (trong bytes) 14869 20047 15039 30079 * Phân tích hiệu suất: 49 PSNR (decibels) 49,67 50,26 50,79 50.31 Ảnh “minato.jpg” trước ẩn mã Ảnh “minato.jpg” sau ẩn mã Hình 4.4 Hình ảnh “minato.jpg” trước sau ẩn mã Bảng 4.2 Tổng RGB ảnh trước nhúng ẩn mã Tổng RED Tổng Green Tổng Blue Block 4550309 4332943 3643659 Block 6427411 5756446 4112376 Block 6214819 5923724 5133241 Block 6600461 6213860 5381599 Block 4712845 5114682 4795818 Block 4351598 4516947 3887891 Block 5789109 5860364 5552692 Block 5770213 6050801 5276466 Bảng 4.3 Tổng RGB ảnh sau nhúng ẩn mã Tổng RED Tổng Green 50 Tổng Blue Block 4637652 4332989 3643749 Block 6504364 5756446 4112405 Block 6286451 5923740 5133240 Block 6674505 6213910 5381675 Block 4712793 5192313 4795807 Block 4351604 4599716 3887881 Block 5789122 5923744 5552723 Block 5770246 6130518 5276465 7000000 6000000 5000000 4000000 Tổng RED Tổng Green Tổng Blue 3000000 2000000 1000000 Block Block Block Block Block 51 Block Block Block 8000000 7000000 6000000 5000000 Tổng RED Tổng Green Tổng Blue 4000000 3000000 2000000 1000000 Block Block Block Block Block Block Block Block Hình 4.5 Biểu đồ giá trị RGB trước sau ẩn mã Nhận xét hình 4.5: Dễ thấy thay đổi tổng giá trị mã màu RGB khối trước sau nhúng nhỏ Bằng giác quan khó nhận biết điểm bất thường hai biểu đồ Điều đồng nghĩ với việc phòng chống tất cơng “thống kê biểu đồ” Hiệu suất phương pháp ẩn mã khác đánh giá ba tham số: bảo mật, dung lượng tính khơng thể nhận biết [9] Ẩn mã bị nhiều cơng chủ động bị động, kỹ thuật ẩn mã bảo đảm tồn từ công bị động chủ động Hơn tồn thơng điệp bí mật ước tính với xác suất khơng cao đốn ngẫu nhiên diện số hệ thống phân tích, ẩn mã coi an tồn theo hệ thống phân tích Dung lượng có nghĩa lượng thơng tin bị ẩn, phải cao tốt Nó đo kích thước thơng điệp bí mật, giá trị 52 tương đối gọi bit pixel, tỷ lệ thông điệp bí mật cho ảnh bìa Dưới mức độ an tồn dung lượng, cao khơng thể chấp nhận hình ảnh ẩn mã, tốt kỹ thuật Nếu hình ảnh ẩn mã kết xuất hiện,đủ vơ hại, người ta tin tưởng hài lịng Có số lưu ý đề xuất Cheddad A đơng nghiệp Đó là: (i) Để loại bỏ công việc so sánh hình ảnh gốc với hình ảnh ẩn mã, tự tạo hình ảnh phá hủy sau tạo hình ảnh ẩn mã Các hình ảnh có sẵn World Wide Web không nên sử dụng (ii) Để tránh công giác quan trực quan người, hình ảnh ẩn mã tạo khơng có tạo tác trực quan (iii) Cần tránh chất đồng mịn, nhiên khu vực lộn xộn với nhiễu tự nhiên bề mặt bật nhắm mục tiêu (iv) Dữ liệu bí mật phải tổng hợp giá trị bit cân bằng, nói chung; xác suất dự kiến bit cho ảnh bìa điển hình giống Trong trường hợp vậy, mã hóa cung cấp cân 53 KẾT LUẬN HƯỚNG PHÁT TRIỂN ĐỀ TÀI Kết luận Đồ án “Nghiên cứu kỹ thuật ẩn mã ảnh dựa phương pháp tiếp cận kênh RGB” sâu vào nghiên cứu ẩn mã – nh ững khía cạnh quan trọng giấu tin Phương pháp sử d ụng liên lạc bí mật để đảm bảo an toàn cho việc truyền tải thông tin m ật Trong đề tài em tìm hiểuđược kiến thức tổng quan ẩn mã, ẩn mã ảnh sâu vào nghiên cứu tìm hiểu mơ hình truyền tin mật kết hợp mã RSA phương pháp ẩn mã dựa kênh RGB Xây dựng chương trình thử nghiệm giúp truyền tin mật dựa mơ hình tìm hiểu, đánh giá kết thực nghiệm phuơng pháp Việc nghiên cứu xây dựng phương pháp vừa đảm bảo chất lượng hình ảnh sau nhúng tin, v ừa nâng cao hiệu suất nhúng tin lại giúp tăng cường độ an toàn cho d ữ liệu m ật ẩn ảnh Ưu điểm phương pháp ẩn mã việc nhúng tin đ ược th ực dựa tính tốn bit LSB thỏa mãn giới hạn phù h ợp c bit th ấp Điều khiến cho ảnh nhúng gần khơng thay đổi, ảnh nhìn tr ực quan ảnh gốc ban đầu Ưu điểm thứ hai phương pháp rõ mã hóa RSA sau nhúng mã vào ảnh Cho th đ ược an toàn r ất cao c phương pháp Kẻ cơng biết thuật tốn nhúng (vì kỹ thuật cơng khai), trích xuất kẻ công ch ỉ nh ận mã khối tin Và việc giải mã mã mã hóa RSA khó khăn, nói gần khơng th ể Khi ến đ ộ an toàn c phương pháp tăng lên nhiều 54 Tuy nhiên, kiến thức hạn chế thời gian nghiên cứu ngắn nên em chưa thử nhiều cách cơng để trích xuất thông điệp ẩn mã Hướng phát triển đề tài Với kiến thức có từ nghiên cứu trên, em nhận th số vấn đề cần tiếp tục nhiên cứu để cải tiến chương trình hồn thiện phát triển đề tài nữa, ngồi việc ch ương trình có th ể nhúng tin ảnh, nghiên cứu thêm việc nhúng tin video Có th ể tăng dung lượng nhúng Có thể nghĩ đến khả nhúng hình ảnh đ ược ẩn mã có kích thước vừa đủ nhúng vào ảnh gốc Và quan trọng h ơn t ối ưu thuật toán nhanh 55 PHỤ LỤC Một số đoạn code chính: * Thay đổi bit cuối kênh thị // Change indicator private static int changeIndicator(String indicatorBinary, int checkIndicatorToChange) { if (indicatorBinary.length() > NUMBER_BLOCK_CIPHER_INDICATOR) { // change bit LSB to "00" if (checkIndicatorToChange == 1) { return convertBinaryToDecimal(indicatorBinary.substring(0, NUMBER_BLOCK_CIPHER_INDICATOR) + "00"); } // change bit LSB to 01 if (checkIndicatorToChange == 2) { return convertBinaryToDecimal(indicatorBinary.substring(0, NUMBER_BLOCK_CIPHER_INDICATOR) + "01"); } // change bit LSB to 10 if (checkIndicatorToChange == 3) { 56 return convertBinaryToDecimal(indicatorBinary.substring(0, NUMBER_BLOCK_CIPHER_INDICATOR) + "10"); } // change bit LSB to 11 return convertBinaryToDecimal(indicatorBinary.substring(0, NUMBER_BLOCK_CIPHER_INDICATOR) + "11"); } return 0; } * Chuyển đổi số 10 thành số 2: private static String convertDecimalToBinary(int value) { String binaryString = "0000000" + Integer.toBinaryString(value); binaryString = binaryString.substring(binaryString.length() - 8); return binaryString; } * Chuyển số thành số 10: // Convert binary to decimal private static int convertBinaryToDecimal(String binary) { int decimal = Integer.parseInt(binary, 2); return decimal; 57 } * Tạo khóa K1: // Create K1 key random public static String createK1Key() { String keyRandom = ""; ArrayList numbersRandom = new ArrayList(); for (int i = 0; i < 8; i++) { numbersRandom.add(i); } Collections.shuffle(numbersRandom); for (int i = 0; i < numbersRandom.size(); i++) { keyRandom += numbersRandom.get(i); } return keyRandom; } * Chuyển đổi văn thành chuỗi nhị phân: // Convert text to binary public static String convertTextToBinary(String cipherText) { byte[] bytes = cipherText.getBytes(); StringBuilder binary = new StringBuilder(); for (byte b : bytes) { int value = b; 58 for (int i = 0; i < 8; i++) { binary.append((value & 128) == ? : 1); value

Ngày đăng: 12/08/2022, 17:21

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

  • Đang cập nhật ...

Tài liệu liên quan