Trong cuộc sống con người luôn có nhu cầu trao đổi thông tin với nhau. Những thông tin được trao đổi rất phong phú và được truyền nhiều dạng khác nhau ví dụ như dùng thu tay, sóng điện từ hay internet. hai tháng nghiên cứu và học hỏi, đồng thời được sự giúp đỡ, chỉ bảo tận tình của thầy giáo Thạc sỹ Bùi Đức Trình đồ án tốt nghiệp của tôi đã hoàn thành. Nội dung đồ án là những gì tôi đã nghiên cứu suốt thời gian qua. Mặc dù tôi đã hết sức cố gắng, nhưng...
Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh MỤC LỤC Trang DANH MỤC HÌNH VẼ .3 DANH MỤC CÁC KÝ TỰ VIẾT TẮT .4 LỜI CẢM ƠN MỞ ĐẦU NỘI DUNG BÁO CÁO .7 CHƯƠNG I: TỔNG QUAN VỀ AN TỒN THƠNG TIN .7 1.1 Một số khái niệm 1.1.1 Khái niệm thông tin .7 1.1.2 Khái niệm an tồn, bảo mật thơng tin 1.1.3 Vai trò an tồn thơng tin 1.2 Các phương pháp bảo vệ thông tin 1.2.1 Phương pháp bảo vệ thông thường 1.2.2 Phương pháp bảo vệ vật lý 1.2.3 Phương pháp bảo vệ dùng phần mềm 1.3 Đánh giá độ an tồn bảo vệ thơng tin liệu 1.3.1 Tổng quan 1.3.2 An toàn phần mềm 1.3.3 Ảnh hưởng phát triển công nghệ đến việc bảo vệ thông tin.9 1.4 Mật mã ứng dụng mật mã 10 1.4.1 Khái niệm 10 1.4.2 Các hệ mật mã cổ điển 10 1.4.3 Các hệ mật mã khóa cơng khai 11 1.4.4 Mật mã khối mã hóa dòng 12 1.4.5 Ứng dụng thực tế mật mã 12 CHƯƠNG II : TỔNG QUAN VỀ GIẤU TIN TRONG ẢNH 13 2.1 Giới thiệu chung giấu thông tin 13 2.2 Vài nét lịch sử giấu tin 14 2.3 Các khái niệm giấu thông tin ảnh số 15 2.4 Một số đặc điểm việc giấu thông tin ảnh số 17 2.4.1 Tính vơ hình thông tin 18 2.4.2 Tính bảo mật 18 2.4.3 Tỷ lệ giấu tin 18 2.4.4 Ảnh mơi trường q trình giải mã 18 CHƯƠNG III: CÁC THUẬT TOÁN GIẤU TIN TRONG ẢNH 22 3.1 Giới thiệu chung .22 3.2 Các đặc trưng giấu thông tin ảnh 23 3.3 Sự khác giấu tin ảnh đen trắng với ảnh màu 25 3.4 Các thuật toán giấu tin ảnh 27 GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh 3.4.1 Giấu tin ảnh thứ cấp 27 3.4.1.1 Đặt toán 27 3.4.1.2 Các khái niệm 28 3.4.1.3 Các kỹ thuật giấu tin ảnh thứ cấp 31 3.4.2 Giấu tin ảnh màu ảnh đa cấp xám 42 3.4.2.1 Ảnh đa cấp xám 43 3.4.2.2 Ảnh nhỏ bit màu: .43 3.4.3 Giấu tin ảnh hi - color (16 bit màu) 46 3.4.4 Ảnh true color (24 bit màu) 47 3.5 Kết thực nghiệm đánh giá 47 CHƯƠNG IV: XÂY DỰNG ỨNG DỤNG TÍCH HỢP MẬT MÃ VÀO GIẤU TIN TRONG ẢNH 49 4.1 Môi trường làm việc .49 4.2 Ngơn ngữ thực thuật tốn 49 4.3 Tổ chức thực chương trình 49 4.3.1 Thiết kế mã hóa giải mã 50 4.3.2 Thiết kế chương trình giấu tin vào ảnh tách tin từ ảnh 52 4.3.2.1 Giấu thông tin vào ảnh 52 4.3.2.2 Phép tách ảnh thứ cấp từ ảnh môi trường .52 4.3.2.3 Giấu tin file liệu vào ảnh thứ cấp: 53 4.3.2.4 Trả ảnh thứ cấp vào ảnh môi trường .53 4.3.2.5 Lấy thông tin từ ảnh kết 53 4.4 Chương trình ứng dụng tích hợp mật mã vào giấu tin ảnh 54 4.4.1 Giao diện chương trình .54 4.4.2 Các chức chương trình .54 KẾT LUẬN 61 TÀI LIỆU THAM KHẢO 63 Các thủ tục chương trình .64 Mơ đun mã hóa: 64 Mô đun giấu tin: 101 GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh DANH MỤC HÌNH VẼ Trang Hình 1.1: Hệ thống mã hóa đối xứng .11 Hình 1.2: Hệ thống mã hóa khóa cơng khai .11 Hình 3.1 Một ảnh thẻ chứng minh được giấu tin sử dụng công tác nhận dạng 22 Hình 3.2 Ảnh màu sau giấu tin khó phát thay đổi 26 Hình 3.3 Ảnh đen trắng sau giấu lượng thông tin ảnh màu chất lượng (rất nhiều chấm đen lạ) 26 Hình 4.1: Mơ hình hoạt động chương trình .50 Hình 4.2: Mơ hình mã hóa liệu 51 Hình 4.3: Mơ hình giải mã liệu 51 Hình 4.4: Phép giấu thơng tin vào ảnh .52 Hình 4.5: Mơ hình tách thơng tin từ ảnh kết .53 Hình 4.6: Giao diện chương trình 54 Hình 4.7: Giao diện chọn file ảnh 54 Hình 4.8: Giao diện chọn file văn cần giấu .55 Hình 4.9: Giao diện chọn thuật tốn mã hóa .55 Hình 4.10: Chọn nơi lưu ảnh kết .56 Hình 4.11: Ảnh trước sau giấu tin 56 Hình 4.12: Thuộc tính khơng đổi ảnh trước sau giấu tin 57 Hình 4.13: Giao diện hồn tất q trình giấu tin vào ảnh 57 Hình 4.14: Giao diện đọc thông tin từ ảnh .58 Hình 4.15: Chương trình đọc liệu từ ảnh file .58 Hình 4.16: Chương trình phát thơng tin giấu ảnh 59 Hình 4.17: Chọn nơi lưu giữ liệu được lấy .59 Hình 4.18: Giao diện chương trình hồn thành 60 GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh DANH MỤC CÁC KÝ TỰ VIẾT TẮT C: Cipher text (bản mã) D: Decryption (giải mã) E: Encryption (mã hóa) P: Plaint text (bản rõ) RC2: R SHA: Secure Hash Algorithm (thuật tốn băm an tồn) MD2: Message Digest MD4: Message Digest MD5: Message Digest DES: Data Encryption Standard (chuẩn mã hóa liệu) AES: Advanced Encryption Standard (chuẩn mã hóa tiên tiến) GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh LỜI CẢM ƠN Qua hai tháng nghiên cứu học hỏi, đồng thời được giúp đỡ, bảo tận tình thầy giáo Thạc sỹ Bùi Đức Trình đồ án tốt nghiệp tơi hồn thành Nội dung đồ án tơi nghiên cứu suốt thời gian qua Mặc dù cố gắng, khối lượng cơng việc lớn, kiến thức thời gian nhiều mặt hạn chế nên đồ án không tránh khỏi thiếu sót, có thuật tốn, kỹ thuật chưa được đề cập đến tóm tắt, hy vọng chúng sẽ được hoàn thiện tương lai Để hồn thành tốt đồ án này, tơi xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo Thạc sỹ Bùi Đức Trình người giúp đỡ tơi nhiều trình tìm hiểu, xây dựng phát triển tốn Tơi xin chân thành cảm ơn thầy giáo ngồi trường trang bị cho tơi kiến thức để tơi hồn thành đồ án ngày hơm Hà Nội ngày 01 tháng năm 2009 Sinh viên thực Nguyễn Văn Mạnh GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh MỞ ĐẦU Ngày nay, với phát triển mạnh mẽ ngành khoa học công nghệ thông tin, internet trở thành nhu cầu, phương tiện thiếu mọi người, việc truyền tin qua mạng ngày lớn Tuy nhiên, với lượng thông tin được truyền qua mạng nhiều nguy liệu bị truy cập trái phép tăng lên vấn đề bảo đảm an tồn bảo mật thơng tin cho liệu truyền mạng cần thiết Để đảm bảo an tồn bí mật cho thông điệp truyền người ta thường dùng phương pháp truyền thống mã hóa thơng điệp theo qui tắc được thỏa thuận trước người gửi người nhận Tuy nhiên, phương thức thường gây ý đối phương tầm quan trọng thông điệp Thời gian gần xuất cách tiếp cận để truyền thông điệp bí mật, giấu thơng tin quan trọng ảnh thơng thường Nhìn bề ngồi ảnh có chứa thơng tin khơng có khác với ảnh khác nên hạn chế được tầm kiểm soát đối phương Mặt khác, dù ảnh bị phát có chứa thơng tin với khóa có độ bảo mật cao việc tìm được nội dung thơng tin khó thực được Xét theo khía cạnh tổng qt giấu thông tin hệ mã mật nhằm bảo đảm tính an tồn thơng tin, phương pháp ưu điểm chỗ giảm được khả phát được tồn tại thông tin nguồn mang Khơng giống mã hóa thơng tin chống truy cập sửa chữa cách trái phép thông tin, mục tiêu giấu thông tin làm cho thông tin trộn lẫn với điểm ảnh Điều sẽ đánh lừa được phát tin tặc làm giảm khả bị giải mã Kết hợp kỹ thuật giấu tin với kỹ thuật mã hóa ta nâng cao độ an toàn cho việc truyền tin GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh NỘI DUNG BÁO CÁO CHƯƠNG I: TỔNG QUAN VỀ AN TỒN THƠNG TIN 1.1 Một số khái niệm 1.1.1 Khái niệm thông tin Trong sống người ln có nhu cầu trao đổi thơng tin với Những thông tin được trao đổi phong phú được truyền nhiều dạng khác ví dụ dùng thư tay, sóng điện từ, hay internet,… Vậy, thơng tin gì? Theo lý thuyết thơng tin thơng tin được định nghĩa vật liệu được gia công hệ thống truyền tin Thực thơng tin tồn người cảm nhận giới xung quanh thông qua giác quan 1.1.2 Khái niệm an toàn, bảo mật thông tin Ngày nay, mà nhu cầu trao đổi thông tin liệu ngày lớn đa dạng, tiến điện tử viễn thông công nghệ thông tin không ngừng được phát triển để nâng cao chất lượng lưu lượng truyền tin biện pháp bảo vệ thơng tin ngày được đổi An tồn, bảo mật thơng tin chủ đề rộng lớn, có liên quan đến nhiều lĩnh vực khác sống Vậy, an toàn, bảo mật thơng tin gì? Đó việc đảm bảo an tồn cho thơng tin gửi thơng tin nhận, giúp xác nhận thông tin nhận đảm bảo không bị công hay thay đổi thơng tin truyền Các hệ thống an tồn hệ thống có dịch vụ có khả chống lại tai họa, lỗi tác động không mong đợi, thay đổi tác động đến độ an tồn hệ thống nhỏ Có ba đặc tính an tồn thơng tin tính bí mật, tính tồn vẹn tính sẵn sàng phục vụ Như vậy, ta hiểu, an tồn thơng tin việc đảm bảo thuộc tính Tuy nhiên, tùy vào mục đích sử dụng thơng tin, mà người ta trọng đến thuộc tính thuộc tính kia, tập trung đảm bảo thật tốt cho thuộc tính mà khơng cần đảm bảo thuộc tính Ví dụ, để cơng bố văn người ta trọng đến việc để tài liệu không bị sửa đổi, đảm bảo bí mật khơng cần thiết GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh 1.1.3 Vai trò an toàn thơng tin An tồn thơng tin vấn đề được quan tâm nay, xã hội phát triển không ngừng dẫn đến nhu cầu trao đổi thông tin không ngừng tăng lên, thơng tin đòi hỏi được đảm bảo an tồn mức tốt trước cơng để đánh cắp, sửa đổi thơng tin Ví dụ như, muốn trao đổi tiền với ngân hàng phải sử dụng thẻ tín dụng hệ thống mạng để thực giao dịch, giả sử giao dịch khơng an tồn, người dùng bị số tài khoản mã PIN tác hại lớn Hay ví dụ khác truyền thơng tin tối mật từ phủ đến quan huy quân sự, chẳng hạn thông tin không được đảm bảo tốt, để xảy tình trạng thơng tin lọt vào tay kẻ khác bị sửa đổi trước đến nơi nhận hậu thật khơn lường Từ đó, ta thấy vai trò an tồn thơng tin vơ quan trọng tất lĩnh vực sống không riêng lĩnh vực cơng nghệ thơng tin 1.2 Các phương pháp bảo vệ thông tin 1.2.1 Phương pháp bảo vệ thơng thường Đây phương pháp hành để bảo vệ thông tin, thông tin được đăng ký được bảo vệ quan hành thơng tin được bảo vệ hạn hẹp số lĩnh vực định Chẳng hạn, thông tin hồ sơ cán tình báo sẽ được đảm bảo cấp quản lý được biết, đảm bảo thơng tin được bí mật tuyệt đối không được truyền đến 1.2.2 Phương pháp bảo vệ vật lý Đây phương pháp bảo vệ thông tin dùng biện pháp kỹ thuật vật lý nhằm đảm bảo thơng tin bí mật, chống xem trộm không bị sửa đổi Chẳng hạn dùng thư có niêm phong niêm phong bị gỡ bị xem trộm Hoặc dùng khóa bảo vệ tủ tài liệu Hoặc dùng hộp mật mã bên có thơng tin viết giấy mềm bọc quanh chai dấm Nếu người mật mã mà cố tình mở ra, chai dấm sẽ vỡ phá hủy tồn thơng tin bên trong… 1.2.3 Phương pháp bảo vệ dùng phần mềm Đây phương pháp được quan tâm môi trường truyền tin môi trường mạng, môi trường dễ xâm nhập nhất, đồng thời liệu dễ xảy cố Biện pháp bảo vệ dùng phần mềm vừa đáp ứng được GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh nhu cầu an tồn thơng tin, vừa tỏ có hiệu đặc biệt mơi trường mạng Biện pháp bảo vệ thông tin sử dụng phần mềm thực dùng thuật tốn mã hóa, hay dùng thông tin khác làm vỏ bảo vệ kết hợp hai Trong phương pháp thứ hai dùng thơng tin khác làm vỏ bảo vệ sử dụng liệu đa phương tiện hình ảnh, audio, video,… để làm lớp vỏ bọc cho thông tin giấu đó, đồng thời kết hợp với phương pháp mã hóa để thơng tin được bảo vệ an toàn Đây vấn đề được trọng trình bày báo cáo 1.3 Đánh giá độ an tồn bảo vệ thơng tin liệu 1.3.1 Tổng quan Bảo vệ an tồn thơng tin liệu chủ đề khó đánh giá được tối ưu, vào nhiều yếu tố kinh tế, độ phức tạp hệ thống, mục đích sử dụng thơng tin,… Một hệ thống được chấp nhận đảm bảo an toàn nhu cầu an tồn thơng tin liệu bên nhận bên gửi được thỏa mãn Phải dự kiến được trước tình xảy ra, để có biện pháp khắc phục nhanh chóng kịp thời, hạn chế tối đa tác hại cố xảy Các phương pháp bảo vệ phụ thuộc vào chủ sở hữu thơng tin hệ thống bảo vệ có tính tương đối Khơng có phương pháp bảo vệ hiệu tuyệt mọi trường hợp, tùy theo mục đích sử dụng, mức độ quan trọng thơng tin mà ta có biện pháp bảo vệ tương ứng, phù hợp 1.3.2 An toàn phần mềm Phần mềm yếu tố đảm bảo an toàn liệu đầu tiên, phần mềm quy định phần cứng hỗ trợ cho để có khả bảo vệ hiệu thông tin liệu người dùng 1.3.3 Ảnh hưởng phát triển công nghệ đến việc bảo vệ thông tin Công nghệ thông tin ngày phát triển chóng, đồng thời gia tăng nguy xâm nhập thông tin liệu vào hệ thống thông tin Với kẻ cơng, tùy theo mục đích mà có cách thức xâm nhập ngày tinh vi hơn, đòi hỏi yêu cầu bảo vệ cần được cải tiến phải hiệu GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh Các công nghệ bảo mật cần được nghiên cứu ứng dụng vào thực tế để kịp đáp ứng nhu cầu bảo vệ an tồn thơng tin 1.4 Mật mã ứng dụng mật mã 1.4.1 Khái niệm Mã hóa q trình biến đổi thơng tin từ định dạng bình thường sang dạng thơng tin khác cho nghĩa khơng bị lộ khơng có phương tiện để giải mã Giải mã trình đưa thơng tin được mã hóa thành dạng thông tin ban đầu Định dạng ban đầu thông tin được gọi rõ (Plain text), dạng mã được gọi mã (Cipher text) Một hệ thống mã hóa bao gồm thành phần thơng tin trước mã hóa (P – Plain text), thơng tin sau mã hóa (C -Cipher text), khóa để mã (K – Keys), hàm để mã (E - Encryption), hàm giải mã (D - Decryption) Một cách hình thức, phép biến đổi rõ mã được ký hiệu C = E(P), P = D(C) => P = D(E(P)) Hệ thống mã hóa chia thành hai loại hệ thống mã hóa đối xứng hệ thống mã hóa phi đối xứng Hai loại khác số lượng khóa Mã hóa đối xứng sử dụng khóa để tiến hành mã giải mã Trong đó, mã hóa phi đối xứng sử dụng hai khóa khác để mã giải mã thông tin Mỗi loại hệ thống mã hóa có ưu, nhược điểm riêng chẳng hạn, mật mã đối xứng xử lý nhanh độ an tồn khơng cao, ngược lại mã hóa phi đối xứng có độ an tồn tính thuận tiện quản lý khóa cao xử lý thời gian nhiều Trong ứng dụng mã hóa tại người ta thường kết hợp ưu điểm hai hệ thống mã hóa chẳng hạn dùng mật mã bất đối xứng để mã thơng tin quan trọng nhỏ, thơng tin lớn dùng mã khóa đối xứng 1.4.2 Các hệ mật mã cổ điển Mật mã cổ điển dạng mật mã được sử dụng lịch sử phát triển loài người, hệ mật hoạt động sở bảng chữ được thực tay số máy móc đơn giản Ngày nay, hệ mật mã cổ điển trở nên lạc hậu phương thức mã hóa đơn giản kẻ công dễ dàng bẻ khóa qua nhiều phương thức cơng vét cạn, hay thống kê,… GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang 10 Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh Dim It As ClsFile Dim vData() As Byte, strOut() As Byte Dim Str3 As String * 3, Str10 As String * 10 Dim strShort$ On Local Error GoTo ReadAttachErr xFil = FreeFile 'Read attach file RaiseEvent StatusChanged(0, "Reading file to attach ") I=0 For Each It In colFiles 'read the files added in the image Open It.Filename For Binary As #xFil ' for each file added, build a new temp file in disc vData = InputB(LOF(xFil), #xFil) Str3 = It.TypeFile 'txt, bmp, jpg, gif, png Str10 = It.FileTitle 'the short name I=I+1 If myDoEvents Then RaiseEvent StatusChanged((I * 100 / mFilesAdded), "Reading file to attach " & Str10) strOut() = StrConv(Str3, vbFromUnicode) Put #OutFile, , strOut() Put #OutFile, , It.LenBytes strOut() = StrConv(Str10, vbFromUnicode) Put #OutFile, , strOut() Put #OutFile, , vData() Close #xFil Next Exit Sub GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang 111 Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh ReadAttachErr: RaiseEvent SomeError(Err.Description) Err.Clear End Sub Private Sub ReadHeadImg_(pFile&) Dim tmpPalette As BITMAPPalette Dim I& 'teh 1st step is read al header for the bitmap, and skip it, to going directly to the image data Get #pFile, , BmpHead 'fill head struct Get #pFile, , BmpInfo 'fill info struct 'calculate deepcolor DeepColor = ((BmpHead.lngBitmapOffset - 54) / Len(tmpPalette)) If DeepColor > Then ReDim bmpPalette(1 To DeepColor) 'Rezise For I = To DeepColor Get #pFile, , bmpPalette(I) Next I End Sub Private Sub ReadImg_() Dim xFil&, Bytes2Hide&, RestBytes&, lngCounter& Dim bytColor As Byte 'Read the Img File xFil = FreeFile Open mImageFile For Binary As #xFil RaiseEvent StatusChanged(0, "Reading Header ") ReadHeadImg_ xFil GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang 112 Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh 'Calculate len image data, without headers 'Only read the len of bytes we going to hide 'calculate the len data must be read '17= len of main header,TAG:Int21(9bytes)+filesadded(4bytes) +bytesadded(4bytes) '17=len of file header, type(3bytes)+filelen(4bytes)+filename(10byte) Bytes2Hide = (mBytesAdded + 17 + (17 * mFilesAdded) + mBytesExtra) * 'LOF(ImgFile) - Loc(ImgFile) ReDim bImg2Conv(0 To Bytes2Hide) 'NEW- bytes to hide is equal to bytes of data RestBytes = (BmpHead.lngFileSize - BmpHead.lngBitmapOffset) Bytes2Hide 'New ReDim bImgData(0 To RestBytes) RaiseEvent StatusChanged(0, "Reading Image Data ") For lngCounter = To Bytes2Hide ' this is the data where we going to hide our files If Not EOF(xFil) Then Get #xFil, , bytColor 'Read each rgb byte info bImg2Conv(lngCounter) = bytColor End If If myDoEvents Then RaiseEvent StatusChanged(lngCounter * 100 / Bytes2Hide, "Reading Image Data ") Next lngCounter For lngCounter = To RestBytes ' this is the rest data If Not EOF(xFil) Then Get #xFil, , bytColor 'Read each rgb byte info bImgData(lngCounter) = bytColor End If GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang 113 Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh If myDoEvents Then RaiseEvent StatusChanged(lngCounter * 100 / RestBytes, "Reading Image Data ") Next lngCounter Close #xFil End Sub 'Look for our tag in the image file, if doesn't exist skip all Private Function ReadTag_() As Boolean Dim binData() As tBits, binTag() As tBits Dim I&, J&, Cur&, bytColor As Byte, Ret& Dim strMyTag As String * Dim lenStruct&, xFil& Dim bBytes() As Byte RaiseEvent StatusChanged(0, "Searching header ") lenStruct = 17 'the len for the tag is always 17 bytes ReDim binTag(0 To lenStruct) xFil = FreeFile Open mImageFile For Binary As #xFil ReadHeadImg_ xFil 'Read header for bitmap lenStruct = 168 '8 bytes = extra-byte, TAG= 21 bytes * bytes = 168 bytes ReDim bImgData(0 To lenStruct) For I = To lenStruct If Not EOF(xFil) Then Get #xFil, , bytColor bImgData(I) = bytColor End If GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang 114 Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh Next I Close #xFil Call Convert2BinaryArray_(bImgData(), binData()) lenStruct = UBound(binTag()) 'len data in binary Cur = lenStruct = 'the len tag is alway 9bytes For I = To lenStruct For J = To binTag(I).Bits(J) = binData(Cur).Bits(7) Cur = Cur + Next J If Cur >= 72 Then Exit For Next I strMyTag = Binary2String(binTag) If strMyTag = "TAG:Int21" Then ReDim binTag(0 To 4) ReDim bBytes(0 To 4) Cur = 72 For I = To For J = To binTag(I).Bits(J) = binData(Cur).Bits(7) Cur = Cur + Next J If Cur >= 104 Then Exit For bBytes(I) = Bin2Asc(binTag(I)) Next I CopyMemory mFilesAdded, bBytes(0), Len(mFilesAdded) Cur = 104 GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang 115 Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh For I = To For J = To binTag(I).Bits(J) = binData(Cur).Bits(7) Cur = Cur + Next J If Cur >= 136 Then Exit For bBytes(I) = Bin2Asc(binTag(I)) Next I CopyMemory mBytesAdded, bBytes(0), Len(mBytesAdded) Cur = 136 For I = To For J = To binTag(I).Bits(J) = binData(Cur).Bits(7) Cur = Cur + Next J If Cur >= 168 Then Exit For bBytes(I) = Bin2Asc(binTag(I)) Next I CopyMemory Ret, bBytes(0), Len(Ret) mAreLock = Ret If mAreLock Then mBytesExtra = ReadTag_ = True End If 'ReadTag_ = (strMyTag = "TAG:Int21") End Function Private Sub ExtractData_() Dim OutFile&, ImgFile& Dim tmpFile& Dim dataOut() As Byte GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang 116 Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh Dim BinOut() As tBits Dim Bytes2Read&, Cur&, I&, J& Dim bytColor As Byte Dim sTAg$, lFA&, lBA&, sTF$, lLF&, sNF$ ImgFile& = FreeFile Open mImageFile$ For Binary As #ImgFile 'open the main image 'skip the bmp header, to get the real image data Call ReadHeadImg_(ImgFile) 'calculate the len data must be read '17= len of main header,TAG:Int21(9bytes)+filesadded(4bytes) +bytesadded(4bytes) '17=len of file header, type(3bytes)+filelen(4bytes)+filename(10byte) Bytes2Read = (mBytesAdded + 17 + (17 * mFilesAdded) + mBytesExtra) * 'LOF(ImgFile) - Loc(ImgFile) ReDim dataOut(0 To Bytes2Read) For I = To (Bytes2Read) If Not EOF(ImgFile) Then Get #ImgFile, , bytColor dataOut(I) = bytColor End If Next I Close #ImgFile Call Convert2BinaryArray_(dataOut(), BinaryImg()) Bytes2Read = UBound(BinaryImg()) 'len image in binary mBytesAdded = (mBytesAdded + 17 + (17 * mFilesAdded) + mBytesExtra) ReDim dataOut(0 To mBytesAdded) ReDim BinOut(0 To Bytes2Read) Cur = GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang 117 Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh 'we going to read the bytes for each byte in the image data 'and put it in other array to extract the hide data For I = To mBytesAdded For J = To If Cur >= Bytes2Read Then Exit For BinOut(I).Bits(J) = BinaryImg(Cur).Bits(7) Cur = Cur + Next J dataOut(I) = Bin2Asc(BinOut(I)) 'convert the binary hide in bytes myDoEvents Next I OutFile = FreeFile Open "c:\tmp_DD2741C.dat" For Binary As #OutFile 'tmp file to read data Put #OutFile, , dataOut() Close OutFile OutFile = FreeFile mBytesAdded = mFilesAdded = Open "c:\tmp_DD2741C.dat" For Binary As #OutFile 'tmp file to read data sTAg = ExtractItem_(OutFile, 9, 0, 1) 'Read the main tag lFA = ExtractItem_(OutFile, 4, 0, 0) 'read the number of files added lBA = ExtractItem_(OutFile, 4, 0, 0) 'read the len of bytes added mAreLock = ExtractItem_(OutFile, 4, 0, 0) 'was encryp?? Dim strFile$ Dim It As ClsFile For I = To lFA sTF = ExtractItem_(OutFile, 3, 0, 1) 'Read the type file(txt,bmp,gif,jpg,png) GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang 118 Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh lLF = ExtractItem_(OutFile, 4, 0, 0) 'read the len in bytes for this file sNF = ExtractItem_(OutFile, 10, 0, 1) 'read the short name for this file strFile = "c:\" & sNF & "DD2741C." & sTF 'build the buffer filename tmpFile = FreeFile Open strFile For Binary As tmpFile dataOut() = InputB(lLF, OutFile) 'read n-bytes, the len for this file Put tmpFile, , dataOut() 'write in disc Close tmpFile AddFile strFile, sNF, CStr("c0" & I) 'add in the class 'mBytesAdded = mBytesAdded + lLF 'counter the bytes added in the image Next Close OutFile Kill "c:\tmp_DD2741C.dat" End Sub Private Function ExtractItem_(pFile As Long, Bytes2Read As Long, Bytes2Look As Long, RetType As Integer) Dim Memo() As Byte Dim lLong& Dim strEnd$ Memo() = InputB(Bytes2Read, pFile) 'read n-bytes from disc If RetType = Then 'Numeric GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang 119 Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh CopyMemory lLong, Memo(0), Len(lLong) ExtractItem_ = lLong ElseIf RetType = Then 'String strEnd = Memo() ExtractItem_ = StrConv(strEnd, vbUnicode) End If End Function Private Sub ConvertAttach_() Dim byt As Byte Dim LenF&, I& On Local Error GoTo ErrConvert 'Read all files added and convert to binary OutFile = FreeFile Open "c:\tmp_C23F41AA.dat" For Binary As #OutFile LenF = LOF(OutFile) - ReDim bAttachData(0 To LenF) For I = To LenF If Not EOF(OutFile) Then Get OutFile, , byt bAttachData(I) = byt End If Next Close #OutFile Call Convert2BinaryArray_(bAttachData(), BinaryAttach()) Exit Sub ErrConvert: RaiseEvent SomeError(Err.Description) Err.Clear End Sub 'the magic function, joing image and files to attach in only one file Private Sub Join_Img_Files_() GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang 120 Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh Dim I&, J&, K&, LenImg&, LenF& LenImg = UBound(BinaryImg()) 'len in binary of image LenF = UBound(BinaryAttach()) 'len in binary for files to attach I=0 For J = To LenF For K = To BinaryImg(I).Bits(7) = BinaryAttach(J).Bits(K) 'put one bit from binary data to hide in the bit I=I+1 Next K If I >= LenImg Then Exit For If myDoEvents Then RaiseEvent StatusChanged((I * 100 / LenImg), "Joining files with image ") Next J End Sub 'Convert2BinaryArray_ 'Source(): the file data in bytes 'retArray(): the Binary data to be return Private Sub Convert2BinaryArray_(Source() As Byte, RetArray() As tBits) Dim LenArray&, I& Dim arrBinary() As tBits Dim Bits8 As tBits LenArray = UBound(Source()) ReDim arrBinary(0 To LenArray) For I = To LenArray Bits8 = ByteToBinary(Source(I)) 'convert byte to binary GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang 121 Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh arrBinary(I) = Bits8 If myDoEvents Then RaiseEvent StatusChanged((I * 100 / LenArray), "Convert Hex to Binary ") Next I RetArray = arrBinary End Sub Private Function FileExist(strFile As String) As Boolean Dim Rs$, Tama As Boolean Dim tm& Rs = Dir(strFile) FileExist = (Len(Rs)) End Function Public Property Get OutputImageFile() As String OutputImageFile = mOutputImageFile End Property Public Property Let OutputImageFile(ByVal sNewFile As String) mOutputImageFile = sNewFile End Property Private Sub Class_Terminate() Dim tmpClass As ClsFile For Each tmpClass In colFiles Set tmpClass = Nothing Next Set colFiles = Nothing If myEncryp.IsHashReady Then myEncryp.DestroyHash Set myEncryp = Nothing GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang 122 Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh 'free memory Erase BinaryAttach() Erase BinaryImg() Erase bImgData() Erase bImg2Conv() Erase bAttachData() End Sub Public Property Get BytesAdded() As Long BytesAdded = mBytesAdded End Property Public Property Get BytesTotal() As Variant BytesTotal = mBytesLimit End Property 'Public Property Get File2Encode() As TypeFileEncode ' File2Encode = mFile2Encode 'End Property ' 'Public Property Let File2Encode(ByVal tNewType As TypeFileEncode) ' mFile2Encode = tNewType 'End Property Public Property Get ImgSize() As String ImgSize = mImgSize End Property Public Property Get ImgRes() As Long ImgRes = mImgRes End Property Public Property Get EncrypMe() As Boolean EncrypMe = mEncrypMe End Property GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang 123 Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh Public Property Let EncrypMe(ByVal bNewEncryp As Boolean) mEncrypMe = bNewEncryp mAreLock = mEncrypMe End Property Public Property Get EncryptionAlgorithm() As EC_CRYPT_ALGO_ID EncryptionAlgorithm = myEncryp.EncryptionAlgorithm End Property Public Property Let EncryptionAlgorithm(ByVal ecEncryptID As EC_CRYPT_ALGO_ID) myEncryp.EncryptionAlgorithm = ecEncryptID End Property Public Property Get HashAlgorithm() As EC_HASH_ALG_ID HashAlgorithm = myEncryp.HashAlgorithm End Property Public Property Let HashAlgorithm(ByVal hAlgoId As EC_HASH_ALG_ID) myEncryp.HashAlgorithm = hAlgoId End Property Public Property Get Pwd() As String Pwd = myEncryp.Password End Property Public Property Let Pwd(ByVal sPassword As String) myEncryp.Password = sPassword End Property Public Property Get areLock() As Boolean areLock = mAreLock End Property Public Property Let areLock(ByVal bNewLock As Boolean) GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang 124 Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh mAreLock = bNewLock End Property Public Function UnLockMe(strLockFile As String, DestFile As String) If mAreLock Then myEncryp.DecryptToDestFile strLockFile, DestFile, 23 End Function GVHD: ThS Bùi Đức Trình SVTH: Nguyễn Văn Mạnh Trang 125 ... Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh ,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh Các hệ mật mã cổ điển gồm: - Hệ mật mã dịch vòng - Hệ mật mã Affine - Hệ mật mã hoán... 26 Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh ,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh 3.4 Các thuật toán giấu tin ảnh 3.4.1 Giấu tin ảnh thứ cấp 3.4.1.1 Đặt bài toán... 12 Đồ án tốt nghiệp Tìm hiểu kỹ thuật giấu tin ảnh ,xây dựng ứng dụng tích hợp mật mã vào giấu tin ảnh CHƯƠNG II : TỔNG QUAN VỀ GIẤU TIN TRONG ẢNH 2.1 Giới thiệu chung giấu thông tin Giấu