Luận văn, báo cáo, luận án, đồ án, tiểu luận, đề tài khoa học, đề tài nghiên cứu, đề tài báo cáo - Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công nghệ thông tin UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA CÔNG NGHỆ THÔNG TIN ---------- NGUYỄN THỊ VIỆT LY TÌM HIỂU VÀ NGHIÊN CỨU VỀ GIẤU TIN TRONG ẢNH KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC Quảng Nam, tháng 4 năm 2017 UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN ---------- KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Tên đề tài: TÌM HIỂU VÀ NGHIÊN CỨU VỀ GIẤU TIN TRONG ẢNH Sinh viên thực hiện NGUYỄN THỊ VIỆT LY MSSV: 2113021044 CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN KHÓA 2013 – 2017 Cán bộ hướng dẫn ThS.DƯƠNG PHƯƠNG HÙNG MSCB: ……… Quảng Nam, tháng 4 năm 2017 1 PHẦN 1. MỞ ĐẦU 1. Lý do chọn đề tài Ngày nay, công nghệ thông tin ngày càng phát triển mạnh mẽ tạo nên một môi trường mở và là phương tiện trao đổi thông tin, tài liệu một cách nhanh chóng, tiện lợi. Điều đó đồng nghĩa với nguy cơ khả năng những thông tin, tài liệu đó bị truy cập trái phép hay bị đánh cắp cũng tăng lên. Do đó, bảo đảm an toàn và bảo mật thông tin cho việc dữ liệu truyền trên mạng là rất cần thiết. Nhiều kĩ thuật đã được nghiên cứu nhằm đảm bảo an toàn và bí mật cho một thông điệp truyền đi chẳng hạn như kĩ thuật giấu tin trong ảnh. Không gây sự chú ý như phương pháp mã hóa dữ liệu, giấu tin trong ảnh giấu các thông tin quan trọng trong những bức ảnh thông thường. Nhìn bề ngoài, các bức ảnh có chứa thông tin cũng không khác gì với các bức ảnh khác nên khó phát hiện bằng kĩ thuật thông thường. Nhờ đó mà việc truyền thông tin mật trở nên dễ dàng và hiệu quả hơn. Bên cạnh đó, giấu tin trong ảnh là một kĩ thuật còn tương đối mới, phát triển rất nhanh và ngày càng phổ biến, thu hút được sự quan tâm của nhiều người và cũng còn khá nhiều thách thức cần tìm hiểu. Chính vì vậy, dưới sự hướng dẫn tận tình của giảng viên ThS. Dương Phương Hùng, em đã lựa chọn đề tài: “Tìm hiểu và nghiên cứu về giấu tin trong ảnh ” với mong muốn được tìm hiểu nhiều hơn nữa và nâng cao tính an toàn cho thông tin, tài liệu quan trọng. 2. Mục tiêu của đề tài Nghiên cứu các kĩ thuật giấu tin trong môi trường dữ liệu ảnh số và các phương pháp giấu tin đảm bảo tính ẩn của dữ liệu được giấu và tăng tính an toàn, bền vững cho tin đã giấu. Nghiên cứu các kĩ thuật phát hiện ảnh giấu tin tập trung vào việc phát hiện ra sự có mặt hay không các thông điệp ẩn trong dữ liệu được quan sát. 2 3. Đối tượng và phạm vi nghiên cứu - Đối tượng nghiên cứu: + Các kĩ thuật giấu tin trong ảnh + Các kĩ thuật phát hiện ảnh giấu tin - Phạm vi nghiên cứu: + Nghiên cứu về lý thuyết xử lý ảnh số. + Nghiên cứu về các kĩ thuật giấu tin trong ảnh số. + Đề xuất phương pháp giấu tin làm tăng tính an toàn cho tin giấu trước các tấn công sử dụng kĩ thuật xử lý ảnh. + Cài đặt thử nghiệm phần mềm giấu tin 4. Phương pháp nghiên cứu - Tổng hợp và phân tích cơ sở lý thuyết các phương pháp giấu tin. - So sánh, đánh giá kết quả giấu tin thông qua công thức và thực nghiệm. 5. Lịch sử nghiên cứu Đảm bảo an toàn bảo mật thông tin là một trong những vấn đề quan trọng được nhiều chuyên gia nghiên cứu trên các lĩnh vực kinh tế, chính trị… Áp dụng và kế thừa từ những bài nghiên cứu đó, em đã đi sâu vào tìm hiểu về đề tài giấu tin trong ảnh. 6. Đóng góp của đề tài Đề tài nghiên cứu đề xuất phương pháp giấu tin làm tăng tính an toàn, bền vững cho giấu tin trước các tấn công sử dụng kĩ thuật xử lí ảnh. Phương pháp đề xuất thể hiện được ưu điểm so với các phương pháp khác: làm giảm sự chú ý của các tin tặc từ đó làm giảm khả năng giải mã. Đề xuất các phương pháp, kĩ thuật lấy thông tin đã ẩn giấu từ ảnh số một cách rõ ràng để dễ dàng hơn cho những ai muốn tìm hiểu về vấn đề này. 3 7. Cấu trúc đề tài Ngoài phần mở đầu, đề tài gồm 4 chương sau: Chương 1: Tổng quan về giấu tin Chương 2: Một số kĩ thuật giấu tin trong ảnh Chương 3: Một số kĩ thuật phát hiện ảnh giấu tin Chương 4: Chương trình Demo ứng dụng 4 PHẦN 2. NỘI DUNG NGHIÊN CỨU Chương 1: TỔNG QUAN VỀ GIẤU TIN 1.1. Định nghĩa và mục đích giấu tin 1.1.1. Định nghĩa Giấu thông tin (steganography) là một kỹ thuật nhúng thông tin vào một nguồn đa phương tiện nào đó, ví dụ như văn bản, ảnh, audio, video,... Nguồn đa phương tiện này được gọi là môi trường giấu tin. Giấu tin trong ảnh: Thông tin sẽ được giấu vào dữ liệu ảnh nhưng chất lượng ảnh ít thay đổi và “khó” phát hiện mẩu tin mật đó. Trong ảnh thông tin giấu một cách vô hình. Nó là một cách truyền thông tin mật cho nhau mà người khác không thể biết được. 1.1.2. Mục đích - Mục đích của việc giấu tin đảm bảo an toàn và bảo mật thông tin. Với 2 khía cạnh cần được quan tâm: + Bảo mật cho dữ liệu được đem giấu. + Bảo mật cho chính đối tượng được đem giấu thông tin. - Ngày nay, nghệ thuật giấu tin được nghiên cứu để phục vụ cho các mục đích tích cực như: bảo vệ bản quyền các tài liệu số hóa, hay giấu các thông tin bí mật về quân sự, kinh tế. 1.2. Mô hình giấu tin Hı̀nh 1.1: Mô hình giấu tin và lấy tin 5 Mô hình trên biễu diễn quá trình giấu và lấy tin cơ bản. Trong đó, phương tiện chứa bao gồm các đối tượng được dùng để giấu tin như audio, video, hình ảnh,...Thông tin giấu là một lượng thông tin mang ý nghĩa nào đó tùy thuộc mục đích của người sử dụng. Thông tin sẽ được giấu vào trong phương tiện chứa nhờ một bộ nhúng. Bộ nhúng là những chương trình triển khai các thuật toán để giấu tin và thực hiện với một khóa bí mật giống như các hệ mã cổ điển. Sau khi giấu tin ta thu được phương tiện chứa các thông tin đã giấu và phân phối sử dụng trên mạng. Sau khi nhận được đối tượng phương tiện có giấu tin, quá trình giải mã được thực hiện thông qua một bộ giải mã tương ứng với bộ nhúng thông tin cùng với khóa của quá trình nhúng. Kết quả thu được gồm phương tiện chứa gốc và thông tin đã giấu. Bước tiếp theo thông tin giấu sẽ được xử lí, kiểm định, so sánh với thông tin giấu ban đầu. 1.3. Phân loại các kĩ thuật giấu tin Hı̀nh 1.2: Phân loại các kĩ thuật giấu tin Theo sơ đồ này, giấu tin được chia thành hai loại lớn là giấu tin mật và thủy vân số. 1.3.1. Giấu tin mật (Seganography) Giấu tin mật che giấu bản tin (đòi hỏi mật độ cao và dung lượng càng lớn càng tốt) vào môi trường (đối tượng) gốc. Giấu tin mật quan tâm 6 tới việc giấu các tin sao cho thông tin giấu được càng nhiều càng tốt và quan trọng là khó phát hiện một đối tượng có giấu tin bên trong hay không bằng kỹ thuật thông thường. Trong quá trình giấu tin để tăng tính bảo mật, có thể phải dùng khóa viết mật. Đó chính là giấu tin có xử lí. Nếu không dùng khóa viết mật, tức là chỉ giấu tin đơn thuần vào môi trường giấu tin. Đó là giấu tin đơn thuần. 1.3.2. Thủy vân số (Watermaking) Thủy vân số giấu mẩu tin ngắn nhưng đòi hỏi độ bền vững cao của thông tin cần giấu (trước các biến đổi thông thường của tệp dữ liệu môi trường). Nó đánh dấu vào đối tượng nhằm khẳng định bản quyền sở hữu hay phát hiện xuyên tạc thông tin. Thủy vân số được phân thành 2 loại: - Thủy vân bền vững: thường được ứng dụng trong bảo vệ bản quyền. Thủy vân được nhúng trong sản phẩm như một hình thức dán tem bản quyền. Trong trường hợp này, thủy vân phải tồn tại bền vững cùng với sản phẩm nhằm chống việc tẩy xóa, làm giả hay biến đổi phá hủy thủy vân. + Thủy vân ẩn: không thể nhìn thấy được bằng mắt thường. + Thủy vân hiện: là thủy vân hiện ngay trên sản phẩm và có thể nhìn thấy được bằng mắt thường. - Thủy vân dễ vỡ: là kỹ thuật nhúng thủy vân vào trong một đối tượng (sản phẩm) sao cho khi phân bố sản phẩm (trong môi trường mở) nếu có bất kì phép biến đổi nào làm thay đổi sản phẩm gốc thì thủy vân đã được giấu trong đối tượng sẽ không còn nguyên vẹn như trước khi giấu. 1.4. Các yêu cầu giấu tin - Tính bền vững: Thể hiện khả năng ít bị thay đổi (về nội dung, hình dạng) trước những tấn công từ bên ngoài. Hiện nay, chưa có kỹ thuật giấu tin nào đảm bảo được yêu cầu này một cách tuyệt đối. 7 - Khả năng không bị phát hiện: Thể hiện ở việc khó xác định được đối tượng có chứa thông tin mật hay không. Các kỹ thuật giấu tin hiện nay cố gắng đảm bảo yêu cầu này dựa vào hệ thống thị giác của con người. - Khả năng lưu trữ: Thể hiện ở lượng thông tin được lưu trữ. Do còn phải đảm bảo “khả năng không bị phát hiện” nên với những thông tin mật lớn, ta thường chia nhỏ nó ra, nhúng nhiều lần vào các đối tượng khác nhau. 1.5. Một số ứng dụng - Bảo vệ bản quyền tác giả - là ứng dụng cơ bản nhất của kỹ thuật thủy vân số. Một thông tin nào đó mang ý nghĩa sở hữu quyền tác giả (thủy vân) sẽ được nhúng vào trong các sản phẩm, thủy vân đó chỉ có một mình người chủ sở hữu hợp pháp các sản phẩm đó có và được dùng làm minh chứng cho bản quyền sản phẩm. - Điểm chỉ số: mục tiêu là để chuyển thông tin về người nhận chứ không phải chủ sở hữu sản phẩm, phương tiện số nhằm xác định đây là bản sao duy nhất của sản phẩm. Về mặt ý nghĩa, điểm chỉ số tương tự như số seri của phần mềm. - Xác thực thông tin hay xuyên tạc thông tin: một tập các thông tin sẽ được giấu trong phương tiện chứa. Sau đó, nó được sử dụng để nhận biết xem dữ liệu trên phương tiện gốc có bị thay đổi hay không. - Dấu vân tay hay dán nhãn: Thủy vân trong ứng dụng này để nhận diện người gửi hay người nhận của một thông tin nào đó. - Điều khiển truy cập: Thủy vân trong trường hợp này dùng để điều khiển truy cập đối với thông tin. Các thiết bị phát hiện ra thủy vân thường được gắn sẵn trong hệ thống đọc ghi. - Giấu tin mật: Trong nhiều trường hợp, sử dụng mật mã có thể gây ra sự chú ý ngoài mong muốn. Ngược lại, việc giấu tin trong môi trường nào 8 đó rồi gửi đi trên mạng ít gây sự chú ý. Có thể dùng nó để gửi đi một bí mật thương mại, một bản thiết kế hay các thông tin bất kì khác. 1.6. Các định dạng ảnh thông dụng Ảnh thu được sau quá trình số hóa có nhiều loại khác nhau, phụ thuộc vào kỹ thuật số hóa ảnh. 1.6.1. Định dạng ảnh IMG (Image) Ảnh IMG là ảnh đen trắng, mỗi điểm ảnh được thể hiện bởi 1bit. Toàn bộ ảnh chỉ gồm các điểm sáng và tối tương ứng với giá trị 0 hoặc 1. Tỉ lệ nén của kiểu định dạng này là khá cao. Ảnh IMG được nén theo từng dòng. Mỗi dòng bao gồm các gói (Pack). Các dòng giống nhau được nén thành một gói. 1.6.2. Định dạng ảnh PCX (Personal Computer Exchange ) Định dạng ảnh PCX là một trong những định dạng loại cổ điển nhất. Nó sử dụng phương pháp mã loạt dài RLC để nén dữ liệu ảnh. Quá trình nén và giải nén được thực hiện trên từng dòng ảnh. Thực tế phương pháp giải nén PCX kém hiệu quả hơn so với kiểu IMG. Định dạng ảnh PCX thường được dùng để lưu trữ ảnh vì thao tác đơn giản, cho phép nén và giải nén nhanh. Tuy nhiên vì cấu trúc cố định nên trong một số trường hợp nó làm tăng kích thước lưu trữ. 1.6.3. Định dạng ảnh GIF (Graphics Interchanger Format) Định ảnh GIF do hãng Computer Incorporated (Mỹ) đề xuất lần đầu tiên vào năm 1990. Ở định dạng này, khi số màu trong ảnh càng tăng, thì ưu thế của nó càng nổi trội. Những ưu thế này có được là do GIF tiếp cận các thuật toán LZW (Lampel Ziv Welch), dựa vào sự lặp lại của một nhóm điểm, người ta xây dựng từ điển lưu các chuỗi kí tự có tần suất lặp lại cao và thay thế bằng từ mã tương ứng mỗi khi gặp chúng. Dạng ảnh GIF cho chất lượng cao, độ phân giải đồ họa tốt, cho phép hiển thị trên hầu hết các phần cứng đồ họa. 9 1.6.4. Định dạng ảnh BMP (Bitmap ) Ảnh BMP (Bitmap) được phát triển bởi Microsoft Corporation, được lưu trữ dưới dạng độc lập thiết bị cho phép Windows hiển thị dữ liệu không phụ thuộc vào khung chỉ định màu trên bất kì phần cứng nào. Tên file mở rộng mặc định của một file ảnh Bitmap là BMP, nét vẽ được thể hiện là các điểm ảnh. Qui ước màu đen, trắng tương ứng với các giá trị 0, 1. Ảnh BMP được sử dụng trên Microsoft Windows và các ứng dụng chạy trên Windows từ version 3.0 trở lên. BMP thuộc loại ảnh mảnh. Có rất nhiều định dạng ảnh thuộc kiểu bitmap như BMP, PCX, GIF, JPEG, TAG, PNG,… Mỗi file ảnh BMP gồm 4 phần: - Bitmap Header (14 bytes): giúp nhận dạng tập tin bitmap. - Bitmap Information (40 bytes): chứa một số thông tin chi tiết giúp hiển thị ảnh. - Palette màu (4x bytes), x là số màu của ảnh, định nghĩa các màu sẽ được ứng dụng trong ảnh. - Bitmap Data: chứa dữ liệu ảnh. Đặc diểm nỗi bật nhất của định dạng BMP là tập tin ảnh thường không được nén bằng bất kì thuật toán nào. Khi lưu ảnh, các điểm ảnh được ghi trực tiếp vào tập tin – một điểm ảnh sẽ được mô tả bởi một hay nhiều byte tùy thuộc vào giá trị n của ảnh. Do đó, một hình ảnh lưu dưới dạng BMP thường có kích cỡ rất lớn, gấp nhiều lần so với ảnh được nén (như GIF, JPEG, PNG…) 1.6.5. Định dạng ảnh JPEG (Joint Photographic Expert Group) Ưu điểm của JPEG hơn GIF là nó có thể hiển thị hình ảnh với màu chính xác (true-colour), có thể lên đến 16 triệu màu. Điều đó cho phép JPEG được sử dụng tốt nhất cho hình ảnh chụp và hình ảnh minh họa có số lượng màu lớn. 10 Nhược điểm chính của định dạng này là chúng được nén bằng thuật toán lossy (mất dữ liệu), hình ảnh sẽ mất một số chi tiết khi chuyển sang định dạng JPEG. Đường bao của các khối màu có thể xuất hiện nhiều điểm mờ và các vùng sẽ mất sự rõ nét. Nói cách khác, định dạng JPEG thực hiện bảo quản tất cả thông tin màu trong hình ảnh. Tuy nhiên, với các hình ảnh chất lượng màu cao (high- colour), như hình ảnh chụp, thì sẽ không ảnh hưởng gì. 11 Chương 2: MỘT SỐ KĨ THUẬT GIẤU TIN TRONG ẢNH 2.1. Các kĩ thuật giấu tin trong ảnh Bitmap Việc giấu tin trong ảnh màu có rất nhiều thuận lợi so với việc giấu tin trong ảnh đen trắng, nó có ưu điểm như sau: - Giấu được nhiều thông tin hơn so với ảnh đen trắng cùng kích cỡ. - Độ an toàn cao hơn so với ảnh đen trắng vì có rất ít sự thay đổi so với ảnh gốc ban đầu. Đối với từng loại màu ta lại có kỹ thuật khác nhau: 2.1.1. Ảnh nhỏ hơn hoặc bằng 8 bit màu Không phải tất cả những ảnh nhỏ hơn hoặc bằng 8 bit màu đều có bảng màu được sắp xếp, do vậy việc sắp xếp LSB rất khó khăn. Ta cần sắp xếp lại bảng màu: - Chọn một màu bất kì, giả sử màu có dạng A(x, y, z) ta đưa vào vị trí đầu tiên. - Duyệt tất cả các màu B(m, n, p) còn lại và tính: S(A, B) = sqrt((x - m) 2 + (y - n)2 + (z - p) 2 ) - Ta sẽ chọn màu B có S(A, B) nhỏ nhất để sắp xếp cạnh màu A sau đó lại tiếp tục thực hiện như bước 2. - Quy trình được kết thúc khi bảng màu đã được sắp xếp. 2.1.2. Ảnh 16 bit màu Thực tế chỉ có 15 bit được dùng để biểu diễn cho một điểm ảnh: - 5 bit dùng để biểu diễn cường độ tương đối màu đỏ. - 5 bit dùng để biểu diễn cường độ tương đối màu xanh lơ. - 5 bit dùng để biểu diễn cường độ tương đối màu xanh lam. Còn 1 bit không dùng đến là bit cao nhất ở byte thứ 2, đó chính là bit LSB của ảnh 16 bit màu. Nếu chỉ lấy một bit này thì lượng thông tin giấu là rất ít do đó cần lấy thêm một số bit nữa. 12 2.1.3. Ảnh 24 bit màu Mỗi một điểm ảnh được biễu diễn bằng 3 byte: - 1 byte dùng để biểu diễn cường độ tương đối màu đỏ. - 1 byte dùng để biểu diễn cường độ tương đối màu xanh lơ. - 1 byte dùng để biểu diễn cường độ tương đối màu xanh lam. Trong mỗi byte các bit nằm càng về cuối càng ít ảnh hưởng đến phần dữ liệu ảnh. Thông thường để tăng lượng thông tin được giấu người ta thường lấy 4 bit cuối mỗi byte để giấu thông tin. Bằng thực nghiệm cho thấy nếu thay đổi toàn bộ bit cuối của một byte thì ảnh kết quả cũng không khác nhiều lắm so với ảnh ban đầu. Điều này vô cùng có ý nghĩa vì ta có thể giấu được nhiều thông tin trong ảnh. 2.1.4. Các phương pháp giấu tin - Phương pháp nhúng vào các bit có trọng số thấp (Least Significant Bit). - Các phương pháp dựa vào kỹ thuật biến đổi ảnh, ví dụ biến đổi từ miền không gian sang miền tần số. - Các phương pháp sử dụng mặt nạ giác quan. Phương pháp nhúng vào các bit có trọng số thấp: Nền tảng kỹ thuật Khi chuyển đổi một ảnh tương tự sang ảnh số người ta thường chọn 3 cách thể hiện màu: - 24 bit màu: mỗi điểm có thể nhận một trong 2 24 màu, mỗi màu được tạo ra từ 3 màu căn bản: red (R), green (G) và blue (B), mỗi màu nhận một giá trị từ 0 đến 255 (8 bit). - 8 bit màu: mỗi điểm có thể nhận một trong 256 màu, chọn từ một bảng màu (palette) - 8 bit dải xám: mỗi điểm nhận một trong 256 (2 8 ) sắc thái xám. 13 Phương pháp LSB chọn ra các bit ít quan trọng và thay thế chúng bằng các bit thông tin cần giấu. Để khó bị phát hiện, thông tin giấu thường được nhúng vào những vùng mắt người kém nhạy cảm với màu sắc. Từ đó, các thông tin được giấu sẽ lẫn vào đâu đó giống như nhiễu ảnh. Hı̀nh 2.1: Giấu tin vào các bit ít quan trọng của điểm ảnh Áp dụng kỹ thuật LSB, một điểm ảnh 24 bit có thể giấu được 3 bit thông tin, theo thứ tự từ trái sang phải, byte đầu tiên chứa giá trị biểu thị cường độ màu lam (B), byte thứ hai chứa giá trị biểu thị cường độ màu lục (G), byte thứ ba chứa giá trị biểu thị cường độ màu đỏ (R). Như vậy, mỗi màu được xác định bởi một số nguyên có giá trị trong khoảng 0 – 255. Ví dụ: Giả sử, tin cần giấu là chữ cái ‘A’ có mã ASCII là 65 (hệ thập phân), hệ nhị phân là 01000001. Giấu nó vào một vùng ảnh có 3 điểm ảnh các màu kề nhau là lam, lục và đỏ (B, G, R): Các điểm ảnh trước khi giấu có hệ nhị phân là: Màu lam: 11111111, 00000000, 00000000 Màu lục: 00000000, 11111111, 00000000 Màu đỏ: 00000000, 00000000, 11111111 Chèn giá trị nhị phân của chữ ‘A’ vào 3 điểm ảnh trên theo kỹ thuật LSB, lật bit bên phải nhất sẽ thu được kết quả sau: 11111110 00000001 00000000 00000000 11111110 00000000 14 00000000 00000001 11111111 Các bit được gạch chân là các bit bị lật. Dùng 4 bit có trọng số thấp để giấu tin mà chất lượng không thay đổi bao nhiêu đối với mắt thường.. Từ ví dụ trên suy ra, nếu dùng 1 LSB thì xác suất phải lật bit là 50, vậy nên lượng nhiễu gây ra cho ảnh là rất ít. Đối với ảnh màu 24 bit, ta có thể dùng 2 đến 3 bit thấp mà vẫn không để lộ tin mật. Nhưng đối với ảnh 8 bit thì không thể, vì ta chỉ có thể dùng 1 bit thấp nhất để giấu tin. 2.2. Các kĩ thuật giấu tin trong ảnh JPG Các kĩ thuật giấu tin trong ảnh JPG như kỹ thuật dùng hệ số DCT, kỹ thuật mặt nạ và lọc, kỹ thuật dùng hệ số của phép chiếu trực giao. Tuy nhiên, kĩ thuật thường được sử dụng nhiều nhất là dùng hệ số DCT để giấu tin. 2.2.1. Kĩ thuật dùng hệ số DCT - Nền tảng kỹ thuật JPEG viết tắt cho Joint Photographic Experts Group. Phần mở rộng của các file JPEG thường có dạng .jpeg, .jfif, .jpg, hay .jpe; nhưng .jpg là dạng được dùng phổ biến nhất. Các ảnh JPEG có tỉ lệ nén cao (tới vài chục lần), chất lượng tốt, do đó chúng được sử dụng nhiều trên mạng. Tuy nhiên, các tệp ảnh JPEG không phù hợp với xử lí bit như các ảnh dựa trên bảng màu, tuy vậy vẫn có thể dùng chúng để giấu dữ liệu. Ảnh JPEG dùng biến đổi Cosin rời rạc để thực hiện nén ảnh. Biến đổi Cosin rời rạc là phép biến đổi mất dữ liệu vì không thể tính chính xác các giá trị cosin, cũng như có thể có các lỗi làm tròn. Độ lệch giữa dữ liệu gốc và dữ liệu phục hồi lại sau khi biến đổi phụ thuộc vào các giá trị và phương pháp sử dụng để tính các giá trị cosin rời rạc. Thuật toán JPEG làm việc bằng cách chia ảnh ra thành các ma trận 8x8. Sau đó, tính hệ số biến đổi cosin rời rạc cho từng ma trận. Tiếp theo, các hệ số này được nhân với một ma trận lượng hóa. Kết quả sẽ được làm 15 tròn đến số nguyên gần nhất, cuối cùng các số nguyên này được nén và lưu lại. Các cấu từ DCT chính là nơi chúng ta có thể giấu dữ liệu. Cách tiếp cận phổ biến là chọn các hệ số DCT lớn và sửa đi chút ít. Vì hệ số lớn tới mức “năng lượng” cao nên ít làm thay đổi ảnh nhất. Một hướng khác là chọn các hệ số DCT trong các vùng mà mắt người không nhìn thấy. Các thuật toán JPEG nổi tiếng áp dụng trong F5 và JSteg đều dùng cách sửa DCT để nhúng dữ liệu. Cả 2 phương pháp này đều qua được mắt thường nhưng không qua được các phương pháp phân tích, thống kê. - Phép biến đổi cosin rời rạc Phép biến đổi cosin rời rạc hay DCT – Discrete Cosine Transform đã trở thành tiêu chuẩn quốc tế cho các hệ thống mã chuyển vị bởi nó có đặc tính gói năng lượng tốt, cho kết quả là số thực và có thuật toán nhanh để thực hiện chúng. Phép biến đổi DCT đã được dùng trong dạng chuẩn ảnh JPEG. Định nghĩa biến đổi cosin rời rạc 2 chiều - Biến đổi DCT 2 chiều tổng quát là biến đổi trên khối 2 chiều bất kì m x n, trong đó các khối kích thước 88, 1616 được sử dụng nhiểu nhất. Tuy nhiên, chúng ta sẽ chỉ tìm hiểu phép biến đổi DCT trên khối 88 được sử dụng trong chuẩn nén JPEG. - Phép biến đổi thuận DCT 88 được định nghĩa như sau: I(u,v) = ௦ሺ௨ሻ௦ሺ௩ሻ ସ ∑ ܺ∑ ሺ ݈,݇ሻ cosሺ ሺଶା ଵሻ௨గ ଵ ሻ cosሺ ሺଶାଵሻ௩గ ଵ ሻ ୀ ୀ ݏ - Biến đổi ngược DCT định nghĩa như sau: X(k,l) = ௦ሺ௨ሻ௦ሺ௩ሻ ସ ∑ ∑ ܫሺݑ, ݒሻ cosሺ ሺଶା ଵሻ௨గ ଵ ሻ cosሺ ሺଶାଵሻ௩గ ଵ ሻ ୀ ୀ Với ݏሺݑሻ ൌ ቊ ଵ ݄݅݇√ଶ ݑൌ 0 0 1 ݄݅݇൏ ݑ൏ 8 ቋ ݒà ݏሺݒሻ ൌ ቊ ଵ ݄݅݇ √ଶ ݒൌ 0 0 1 ݄݅݇൏ ݒ൏ 8 ቋ 16 Trong đó, I (u, v) được gọi là hệ số DCT trong miền tần số, giá trị X(k, l) biễu diễn các mức xám của ảnh trong miền không gian. Đặc điểm của phép biến đổi DCT 2 chiều - Thể hiện đặc tính nội dung về tần số thông tin ảnh. Hệ số góc trên là lớn và đặc trưng cho giá trị trung bình thành phần một chiều gọi là hệ số DC, còn các hệ số khác có giá trị nhỏ hơn biểu diễn cho các thành phần tần số cao theo hướng ngang và hướng thẳng đứng gọi là hệ số AC. - Bản thân biến đổi DCT không nén được dữ liệu vì cũng sinh ra 64 hệ số. - Theo nguyên lý chung, khi biến đổi chi tiết giữa các điểm ảnh càng lớn theo 1 hướng nào đó trong khối các điểm ảnh, hướng ngang, hướng thẳng đứng hay theo hướng đường chéo thì tương ứng theo các hướng đó, các biến đổi DCT càng lớn. - DCT làm giảm độ tương quan không gian của thông tin trong khối ảnh. Nhờ các đặc tính tần số không gian hệ thống nhìn của mắt người, các hệ số DCT có thể được mã hóa phù hợp, chỉ các hệ số DCT quan trọng nhất mới được mã hóa để truyền đi. - Khối hệ số DCT có thể chia thành 3 miền: + Miền tần số thấp: chứa các thông tin quan trọng ảnh hưởng đến tri giác. + Miền tần số cao: các thông tin thường không mang tính tri giác cao, khi nén JPEG thì thường loại bỏ thông tin trong miền này. Trong các thuật toán thủy vân, miền hệ số DCT tần số cao thường không được sử dụng do nó thường không bền vững với các phép xử lí ảnh hoặc nén ảnh JPEG. Miền tần số cao cũng khó được sử dụng do một sự thay đổi dù nhỏ trong miền này cũng ảnh hưởng đến chất lượng tri giác của ảnh. + Miền tần số giữa: thường hay được sử dụng nhất và cho kết quả tốt nhất. Trong thuật toán đề xuất cũng sử dụng miền thuật toán ở giữa. 17 2.2.2. Kỹ thuật giấu tin trong miền biến đổi DCT Thuật toán dưới đây sẽ sử dụng phương pháp nhúng thủy vân trong miền tần số của ảnh, giải tần được sử dụng để chứa tín hiệu thủy vân là miền tần số ở giữa của một khối DCT 8x8. Trong đó, các khối DCT 8x8 là những khối ảnh cùng kích thước đã được chọn ra ngẫu nhiên từ ảnh ban đầu và được áp dụng phép biến đổi cosin rời rạc DCT để chuyển sang miền tần số. Mỗi tín hiệu thủy vân sẽ được chứa trong một khối. Quá trình nhúng thủy vân Input : - Một chuỗi các bit B. - Một ảnh F. Output : - Một ảnh F’ sau khi thủy vân. - Khóa để giải mã. Bước 1: Một ảnh có kích thước m x n sẽ được chia thành (m x n)64 khối 8 x 8, mỗi bit sẽ đượcgiấu trong một khối Bk . Bước 2: Chọn một khối bất kì Bk và biến đổi DCT khối đó thu được C k với Ck = DCT(Bk ). Bước 3: Chọn hai hệ số ở vị trí bất kì trong miền tần số ở giữa của khối Ck , giả sử đó là Ck i, j và C k p, q. Bước 4: Ta tính: d = Ck i, j - Ck p, q mod a Trong đó a là một tham số thỏa mãn: a = 2(2t + 1), t là một số nguyên dương. Bước 5: Bit b k sẽ được nhúng vào Ck sau khi thỏa mãn điều kiện : ݀൜ 2 ݐ 1݊ ܾ ݑế ݀1 ൌ ൏ 2 ݐ 1݊ ܾ ݑế ൌ 0 18 Bước 6: Nếu d < 2t + 1 mà b k = 1 thì một trong hai hệ số DCT Ck i,j hoặc C k p, q có trị tuyệt đối lớn hơn sẽ bị thay đổi để thỏa mãn d 2t+1 theo công thức như sau : Max (Ck i, j, Ck p, q) + (INT (0.75a) - d) với hàm Max (Ck i, j, Ck p, q) là hàm chọn ra hệ số có trị tuyệt đối lớn hơn, hệ số được chọn sẽ được cộng thêm một lượng là (INT (0.75a) - d) hoặc cũng có thể biến đổi một trong hai hệ số theo công thức: Min(Cki, j, Ck p, q) - (INT (0.75a) + d) với hàm Min (Ck i, j, Ck p, q) là hàm chọn ra hệ số có trị tuyệt đối nhỏ hơn, hệ số được chọn sẽ bị trừ đi một lượng là (INT (0.75a) + d) INT() là hàm lấy phần nguyên của một số thực. Bước 7: Nếu d 2t + 1 mà bk = 0 thì một trong hai hệ số DCT Ck i, j hoặc C k p, q có trị tuyệt đối lớn hơn sẽ được thay đổi để thỏa mãn d Sum(F) = 0 + 1 + 1 + 1 + 0 + 0 + 0 + 1 + 1 = 5 - Phép XOR ⨁ + Cho ba ma trận A, B và C Giả sử A ⨁ B ...
UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA CÔNG NGHỆ THÔNG TIN - - NGUYỄN THỊ VIỆT LY TÌM HIỂU VÀ NGHIÊN CỨU VỀ GIẤU TIN TRONG ẢNH KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC Quảng Nam, tháng 4 năm 2017 UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN - - KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Tên đề tài: TÌM HIỂU VÀ NGHIÊN CỨU VỀ GIẤU TIN TRONG ẢNH Sinh viên thực hiện NGUYỄN THỊ VIỆT LY MSSV: 2113021044 CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN KHÓA 2013 – 2017 Cán bộ hướng dẫn ThS.DƯƠNG PHƯƠNG HÙNG MSCB: ……… Quảng Nam, tháng 4 năm 2017 PHẦN 1 MỞ ĐẦU 1 Lý do chọn đề tài Ngày nay, công nghệ thông tin ngày càng phát triển mạnh mẽ tạo nên một môi trường mở và là phương tiện trao đổi thông tin, tài liệu một cách nhanh chóng, tiện lợi Điều đó đồng nghĩa với nguy cơ khả năng những thông tin, tài liệu đó bị truy cập trái phép hay bị đánh cắp cũng tăng lên Do đó, bảo đảm an toàn và bảo mật thông tin cho việc dữ liệu truyền trên mạng là rất cần thiết Nhiều kĩ thuật đã được nghiên cứu nhằm đảm bảo an toàn và bí mật cho một thông điệp truyền đi chẳng hạn như kĩ thuật giấu tin trong ảnh Không gây sự chú ý như phương pháp mã hóa dữ liệu, giấu tin trong ảnh giấu các thông tin quan trọng trong những bức ảnh thông thường Nhìn bề ngoài, các bức ảnh có chứa thông tin cũng không khác gì với các bức ảnh khác nên khó phát hiện bằng kĩ thuật thông thường Nhờ đó mà việc truyền thông tin mật trở nên dễ dàng và hiệu quả hơn Bên cạnh đó, giấu tin trong ảnh là một kĩ thuật còn tương đối mới, phát triển rất nhanh và ngày càng phổ biến, thu hút được sự quan tâm của nhiều người và cũng còn khá nhiều thách thức cần tìm hiểu Chính vì vậy, dưới sự hướng dẫn tận tình của giảng viên ThS Dương Phương Hùng, em đã lựa chọn đề tài: “Tìm hiểu và nghiên cứu về giấu tin trong ảnh” với mong muốn được tìm hiểu nhiều hơn nữa và nâng cao tính an toàn cho thông tin, tài liệu quan trọng 2 Mục tiêu của đề tài Nghiên cứu các kĩ thuật giấu tin trong môi trường dữ liệu ảnh số và các phương pháp giấu tin đảm bảo tính ẩn của dữ liệu được giấu và tăng tính an toàn, bền vững cho tin đã giấu Nghiên cứu các kĩ thuật phát hiện ảnh giấu tin tập trung vào việc phát hiện ra sự có mặt hay không các thông điệp ẩn trong dữ liệu được quan sát 1 3 Đối tượng và phạm vi nghiên cứu - Đối tượng nghiên cứu: + Các kĩ thuật giấu tin trong ảnh + Các kĩ thuật phát hiện ảnh giấu tin - Phạm vi nghiên cứu: + Nghiên cứu về lý thuyết xử lý ảnh số + Nghiên cứu về các kĩ thuật giấu tin trong ảnh số + Đề xuất phương pháp giấu tin làm tăng tính an toàn cho tin giấu trước các tấn công sử dụng kĩ thuật xử lý ảnh + Cài đặt thử nghiệm phần mềm giấu tin 4 Phương pháp nghiên cứu - Tổng hợp và phân tích cơ sở lý thuyết các phương pháp giấu tin - So sánh, đánh giá kết quả giấu tin thông qua công thức và thực nghiệm 5 Lịch sử nghiên cứu Đảm bảo an toàn bảo mật thông tin là một trong những vấn đề quan trọng được nhiều chuyên gia nghiên cứu trên các lĩnh vực kinh tế, chính trị… Áp dụng và kế thừa từ những bài nghiên cứu đó, em đã đi sâu vào tìm hiểu về đề tài giấu tin trong ảnh 6 Đóng góp của đề tài Đề tài nghiên cứu đề xuất phương pháp giấu tin làm tăng tính an toàn, bền vững cho giấu tin trước các tấn công sử dụng kĩ thuật xử lí ảnh Phương pháp đề xuất thể hiện được ưu điểm so với các phương pháp khác: làm giảm sự chú ý của các tin tặc từ đó làm giảm khả năng giải mã Đề xuất các phương pháp, kĩ thuật lấy thông tin đã ẩn giấu từ ảnh số một cách rõ ràng để dễ dàng hơn cho những ai muốn tìm hiểu về vấn đề này 2 7 Cấu trúc đề tài Ngoài phần mở đầu, đề tài gồm 4 chương sau: Chương 1: Tổng quan về giấu tin Chương 2: Một số kĩ thuật giấu tin trong ảnh Chương 3: Một số kĩ thuật phát hiện ảnh giấu tin Chương 4: Chương trình Demo ứng dụng 3 PHẦN 2 NỘI DUNG NGHIÊN CỨU Chương 1: TỔNG QUAN VỀ GIẤU TIN 1.1 Định nghĩa và mục đích giấu tin 1.1.1 Định nghĩa Giấu thông tin (steganography) là một kỹ thuật nhúng thông tin vào một nguồn đa phương tiện nào đó, ví dụ như văn bản, ảnh, audio, video, Nguồn đa phương tiện này được gọi là môi trường giấu tin Giấu tin trong ảnh: Thông tin sẽ được giấu vào dữ liệu ảnh nhưng chất lượng ảnh ít thay đổi và “khó” phát hiện mẩu tin mật đó Trong ảnh thông tin giấu một cách vô hình Nó là một cách truyền thông tin mật cho nhau mà người khác không thể biết được 1.1.2 Mục đích - Mục đích của việc giấu tin đảm bảo an toàn và bảo mật thông tin Với 2 khía cạnh cần được quan tâm: + Bảo mật cho dữ liệu được đem giấu + Bảo mật cho chính đối tượng được đem giấu thông tin - Ngày nay, nghệ thuật giấu tin được nghiên cứu để phục vụ cho các mục đích tích cực như: bảo vệ bản quyền các tài liệu số hóa, hay giấu các thông tin bí mật về quân sự, kinh tế 1.2 Mô hình giấu tin Hı̀nh 1.1: Mô hình giấu tin và lấy tin 4 Mô hình trên biễu diễn quá trình giấu và lấy tin cơ bản Trong đó, phương tiện chứa bao gồm các đối tượng được dùng để giấu tin như audio, video, hình ảnh, Thông tin giấu là một lượng thông tin mang ý nghĩa nào đó tùy thuộc mục đích của người sử dụng Thông tin sẽ được giấu vào trong phương tiện chứa nhờ một bộ nhúng Bộ nhúng là những chương trình triển khai các thuật toán để giấu tin và thực hiện với một khóa bí mật giống như các hệ mã cổ điển Sau khi giấu tin ta thu được phương tiện chứa các thông tin đã giấu và phân phối sử dụng trên mạng Sau khi nhận được đối tượng phương tiện có giấu tin, quá trình giải mã được thực hiện thông qua một bộ giải mã tương ứng với bộ nhúng thông tin cùng với khóa của quá trình nhúng Kết quả thu được gồm phương tiện chứa gốc và thông tin đã giấu Bước tiếp theo thông tin giấu sẽ được xử lí, kiểm định, so sánh với thông tin giấu ban đầu 1.3 Phân loại các kĩ thuật giấu tin Hı̀nh 1.2: Phân loại các kĩ thuật giấu tin Theo sơ đồ này, giấu tin được chia thành hai loại lớn là giấu tin mật và thủy vân số 1.3.1 Giấu tin mật (Seganography) Giấu tin mật che giấu bản tin (đòi hỏi mật độ cao và dung lượng càng lớn càng tốt) vào môi trường (đối tượng) gốc Giấu tin mật quan tâm 5 tới việc giấu các tin sao cho thông tin giấu được càng nhiều càng tốt và quan trọng là khó phát hiện một đối tượng có giấu tin bên trong hay không bằng kỹ thuật thông thường Trong quá trình giấu tin để tăng tính bảo mật, có thể phải dùng khóa viết mật Đó chính là giấu tin có xử lí Nếu không dùng khóa viết mật, tức là chỉ giấu tin đơn thuần vào môi trường giấu tin Đó là giấu tin đơn thuần 1.3.2 Thủy vân số (Watermaking) Thủy vân số giấu mẩu tin ngắn nhưng đòi hỏi độ bền vững cao của thông tin cần giấu (trước các biến đổi thông thường của tệp dữ liệu môi trường) Nó đánh dấu vào đối tượng nhằm khẳng định bản quyền sở hữu hay phát hiện xuyên tạc thông tin Thủy vân số được phân thành 2 loại: - Thủy vân bền vững: thường được ứng dụng trong bảo vệ bản quyền Thủy vân được nhúng trong sản phẩm như một hình thức dán tem bản quyền Trong trường hợp này, thủy vân phải tồn tại bền vững cùng với sản phẩm nhằm chống việc tẩy xóa, làm giả hay biến đổi phá hủy thủy vân + Thủy vân ẩn: không thể nhìn thấy được bằng mắt thường + Thủy vân hiện: là thủy vân hiện ngay trên sản phẩm và có thể nhìn thấy được bằng mắt thường - Thủy vân dễ vỡ: là kỹ thuật nhúng thủy vân vào trong một đối tượng (sản phẩm) sao cho khi phân bố sản phẩm (trong môi trường mở) nếu có bất kì phép biến đổi nào làm thay đổi sản phẩm gốc thì thủy vân đã được giấu trong đối tượng sẽ không còn nguyên vẹn như trước khi giấu 1.4 Các yêu cầu giấu tin - Tính bền vững: Thể hiện khả năng ít bị thay đổi (về nội dung, hình dạng) trước những tấn công từ bên ngoài Hiện nay, chưa có kỹ thuật giấu tin nào đảm bảo được yêu cầu này một cách tuyệt đối 6 - Khả năng không bị phát hiện: Thể hiện ở việc khó xác định được đối tượng có chứa thông tin mật hay không Các kỹ thuật giấu tin hiện nay cố gắng đảm bảo yêu cầu này dựa vào hệ thống thị giác của con người - Khả năng lưu trữ: Thể hiện ở lượng thông tin được lưu trữ Do còn phải đảm bảo “khả năng không bị phát hiện” nên với những thông tin mật lớn, ta thường chia nhỏ nó ra, nhúng nhiều lần vào các đối tượng khác nhau 1.5 Một số ứng dụng - Bảo vệ bản quyền tác giả - là ứng dụng cơ bản nhất của kỹ thuật thủy vân số Một thông tin nào đó mang ý nghĩa sở hữu quyền tác giả (thủy vân) sẽ được nhúng vào trong các sản phẩm, thủy vân đó chỉ có một mình người chủ sở hữu hợp pháp các sản phẩm đó có và được dùng làm minh chứng cho bản quyền sản phẩm - Điểm chỉ số: mục tiêu là để chuyển thông tin về người nhận chứ không phải chủ sở hữu sản phẩm, phương tiện số nhằm xác định đây là bản sao duy nhất của sản phẩm Về mặt ý nghĩa, điểm chỉ số tương tự như số seri của phần mềm - Xác thực thông tin hay xuyên tạc thông tin: một tập các thông tin sẽ được giấu trong phương tiện chứa Sau đó, nó được sử dụng để nhận biết xem dữ liệu trên phương tiện gốc có bị thay đổi hay không - Dấu vân tay hay dán nhãn: Thủy vân trong ứng dụng này để nhận diện người gửi hay người nhận của một thông tin nào đó - Điều khiển truy cập: Thủy vân trong trường hợp này dùng để điều khiển truy cập đối với thông tin Các thiết bị phát hiện ra thủy vân thường được gắn sẵn trong hệ thống đọc ghi - Giấu tin mật: Trong nhiều trường hợp, sử dụng mật mã có thể gây ra sự chú ý ngoài mong muốn Ngược lại, việc giấu tin trong môi trường nào 7 đó rồi gửi đi trên mạng ít gây sự chú ý Có thể dùng nó để gửi đi một bí mật thương mại, một bản thiết kế hay các thông tin bất kì khác 1.6 Các định dạng ảnh thông dụng Ảnh thu được sau quá trình số hóa có nhiều loại khác nhau, phụ thuộc vào kỹ thuật số hóa ảnh 1.6.1 Định dạng ảnh IMG (Image) Ảnh IMG là ảnh đen trắng, mỗi điểm ảnh được thể hiện bởi 1bit Toàn bộ ảnh chỉ gồm các điểm sáng và tối tương ứng với giá trị 0 hoặc 1 Tỉ lệ nén của kiểu định dạng này là khá cao Ảnh IMG được nén theo từng dòng Mỗi dòng bao gồm các gói (Pack) Các dòng giống nhau được nén thành một gói 1.6.2 Định dạng ảnh PCX (Personal Computer Exchange ) Định dạng ảnh PCX là một trong những định dạng loại cổ điển nhất Nó sử dụng phương pháp mã loạt dài RLC để nén dữ liệu ảnh Quá trình nén và giải nén được thực hiện trên từng dòng ảnh Thực tế phương pháp giải nén PCX kém hiệu quả hơn so với kiểu IMG Định dạng ảnh PCX thường được dùng để lưu trữ ảnh vì thao tác đơn giản, cho phép nén và giải nén nhanh Tuy nhiên vì cấu trúc cố định nên trong một số trường hợp nó làm tăng kích thước lưu trữ 1.6.3 Định dạng ảnh GIF (Graphics Interchanger Format) Định ảnh GIF do hãng Computer Incorporated (Mỹ) đề xuất lần đầu tiên vào năm 1990 Ở định dạng này, khi số màu trong ảnh càng tăng, thì ưu thế của nó càng nổi trội Những ưu thế này có được là do GIF tiếp cận các thuật toán LZW (Lampel Ziv Welch), dựa vào sự lặp lại của một nhóm điểm, người ta xây dựng từ điển lưu các chuỗi kí tự có tần suất lặp lại cao và thay thế bằng từ mã tương ứng mỗi khi gặp chúng Dạng ảnh GIF cho chất lượng cao, độ phân giải đồ họa tốt, cho phép hiển thị trên hầu hết các phần cứng đồ họa 8