TỔNG QUAN KỸ THUẬT GIẤU TIN TRONG ẢNH
Định nghĩa giấu tin trong ảnh
Giấu tin trong ảnh là một kỹ thuật giấu (nhúng) một lượng thông tin số nào đó vào trong một ảnh số [4].
Mục đích của giấu tin
Có 2 mục đích chính của giấu thông tin:
Bảo mật cho những thông tin được giấu
Bảo mật cho chính các đối tượng giấu tin
Có sự khác biệt rõ rệt giữa hai mục đích, và thực tế cho thấy chúng đã phát triển thành hai lĩnh vực riêng biệt với những yêu cầu và đặc điểm khác nhau.
Hình 1.1: Hai lĩnh vực chính của kỹ thuật giấu tin
Kỹ thuật giấu tin mật (Steganography) nhằm đảm bảo an toàn và bảo mật thông tin Các phương pháp này tập trung vào việc giấu thông tin một cách hiệu quả, giúp tăng cường khả năng ẩn giấu dữ liệu trong hình ảnh, làm cho người khác khó phát hiện ra thông tin bị giấu.
Kỹ thuật thủy vân số (Watermarking) được sử dụng để bảo mật các đối tượng chứa thông tin ẩn, nhằm đảm bảo tính bền vững và khẳng định quyền sở hữu Ngoài ra, kỹ thuật này còn giúp phát hiện các hành vi xuyên tạc thông tin, góp phần bảo vệ nội dung một cách hiệu quả.
Các yêu cầu đối với giấu tin trong ảnh
Những yêu cầu cơ bản đối với giấu tin trong ảnh [1]:
Tính ẩn của giấu tin được chèn vào ảnh: Sự hiện diện của giấu tin trong ảnh không làm ảnh hưởng tới chất lượng của ảnh đã chèn tin
Giấu thông tin Data Hiding
Tính bền của giấu tin cho phép thông tin tồn tại qua các phép biến đổi ảnh, biến dạng hình học và các hình thức tấn công cố ý khác.
Tính an toàn: không thể xoá được tin ra khỏi ảnh trừ khi ảnh được biến đổi tới mức không còn mang thông tin.
Đặc trưng và tính chất của kỹ thuật giấu tin trong ảnh
Giấu tin trong ảnh là một kỹ thuật quan trọng trong lĩnh vực giấu tin, với nhiều phương tiện chứa khác nhau và các kỹ thuật tương ứng Ảnh là một dạng dữ liệu tĩnh, không thay đổi theo thời gian, và có nhiều định dạng khác nhau, mỗi định dạng sở hữu những đặc tính riêng Do đó, các kỹ thuật giấu tin trong ảnh thường tập trung vào việc khai thác những đặc trưng và tính chất cơ bản của dữ liệu ảnh.
Phương tiện có chứa dữ liệu tri giác tĩnh
Dữ liệu tĩnh trong ảnh không thay đổi theo thời gian, ngay cả khi thông tin đã được giấu vào trong ảnh Điều này khác biệt với dữ liệu âm thanh và video, vì khi nghe hoặc xem, dữ liệu gốc liên tục thay đổi theo tri giác của con người qua các đoạn, bài hay cảnh khác nhau.
Kỹ thuật giấu phụ thuộc ảnh
Kỹ thuật giấu tin được áp dụng dựa trên các loại ảnh khác nhau, bao gồm ảnh đen trắng, ảnh xám và ảnh màu, với mỗi loại ảnh có những phương pháp riêng biệt để thực hiện.
Kỹ thuật giấu tin lợi dụng tính chất hệ thống thị giác của con người
Khi giấu tin trong ảnh, việc này có thể gây ra những thay đổi nhỏ trên dữ liệu gốc Để đảm bảo an toàn cho thông tin được giấu, các kỹ thuật cần phải làm cho những thay đổi này khó nhận thấy bằng mắt thường Nhiều phương pháp đã tận dụng các đặc tính của hệ thống thị giác của con người, chẳng hạn như khả năng cảm nhận sự biến đổi về độ chói kém hơn so với sự biến đổi về màu sắc, và mắt người cảm nhận màu xanh da trời kém nhất trong ba màu cơ bản.
Giấu thông tin trong ảnh tác động lên dữ liệu ảnh nhưng không thay đổi kích thước của hình ảnh
Các thuật toán giấu tin được thực hiện trên dữ liệu ảnh, bao gồm phần header, bảng màu (nếu có) và dữ liệu ảnh, do đó kích thước ảnh trước và sau khi giấu tin không thay đổi Đảm bảo chất lượng ảnh sau khi giấu tin là yêu cầu quan trọng, nhằm tránh việc phát hiện dễ dàng so với ảnh gốc Điều này đặc biệt dễ dàng đối với ảnh màu hoặc ảnh xám, vì mỗi điểm ảnh có nhiều bit và giá trị, do đó việc thay đổi một giá trị nhỏ không làm biến đổi chất lượng ảnh quá nhiều Tuy nhiên, đối với ảnh đen trắng, mỗi điểm ảnh chỉ có hai giá trị, nên việc thay đổi một bit từ trắng sang đen hoặc ngược lại có thể dễ dàng bị phát hiện nếu không cẩn thận.
Yêu cầu đối với các thuật toán giấu thông tin trong ảnh màu, ảnh xám và ảnh đen trắng là khác nhau Đối với ảnh màu, các thuật toán tập trung vào việc giấu càng nhiều thông tin càng tốt, trong khi đối với ảnh đen trắng, mục tiêu chính là làm cho thông tin giấu khó bị phát hiện nhất.
Thông tin trong ảnh sẽ bị biến đổi nếu có bất cứ biến đổi nào trên ảnh
Phương pháp giấu thông tin trong ảnh dựa trên việc điều chỉnh các giá trị bit theo quy tắc nhất định, cho phép giải mã thông tin ẩn Tuy nhiên, nếu ảnh trải qua bất kỳ biến đổi nào làm thay đổi giá trị bit, thông tin giấu sẽ bị sai lệch Từ đó, kỹ thuật này không chỉ giúp bảo mật thông tin mà còn có khả năng nhận diện và phát hiện sự xuyên tạc thông tin hiệu quả.
Vai trò của ảnh gốc khi tách tin
Các kỹ thuật giấu tin yêu cầu xác định rõ ràng quá trình lọc ảnh để biết có cần ảnh gốc hay không Hầu hết các kỹ thuật giấu tin mật không yêu cầu ảnh gốc để giải mã Thông tin được giấu trong ảnh sẽ đi kèm với dữ liệu ảnh, và khi giải mã, chỉ cần ảnh đã chứa thông tin giấu mà không cần so sánh với ảnh gốc.
Các phương pháp giấu tin
Các phương pháp giấu tin trong ảnh hiện nay thuộc một trong ba nhóm [4]: Giấu tin trong miền không gian
Phương pháp nhúng thông tin vào các bit có trọng số thấp của ảnh, đặc biệt là trên các ảnh bitmap không nén và ảnh sử dụng bảng màu Ý tưởng chính là thay thế từng bit của tin mật vào các bit có trọng số thấp của ảnh gốc, giúp giữ nguyên chất lượng hình ảnh vì sự thay đổi này không dễ nhận thấy bằng mắt thường.
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
Mặt nạ trong bài viết này đề cập đến hiện tượng mà mắt người không thể nhận diện một tín hiệu khi nó xuất hiện cạnh một tín hiệu khác nhất định Nguyên lý này dựa trên cách mà hệ thống giác quan của con người bị đánh lừa, dẫn đến việc thiếu khả năng cảm nhận chính xác.
Có hai nhóm phương pháp phân chia theo định dạng ảnh: nhóm phụ thuộc định dạng ảnh, trong đó thông tin giấu dễ bị tổn thương bởi các phép biến đổi ảnh Nhóm này được chia nhỏ theo dạng ảnh, bao gồm các phương pháp cho ảnh dựa vào bảng màu và ảnh JPEG.
Các phương pháp độc lập với định dạng ảnh sử dụng biến đổi ảnh để giấu tin, chẳng hạn như ẩn thông tin trong các hệ số biến đổi Số lượng phương pháp giấu ảnh tương ứng với số lượng phép biến đổi ảnh có sẵn Các phép biến đổi này tạo ra nhiều cách thức khác nhau để bảo mật thông tin trong hình ảnh.
- Phương pháp biến đổi theo miền không gian
- Phương pháp biến đổi theo miền tần số (DCT)
- Các biến đổi hình học
Các phương pháp nhóm thứ hai mang lại nhiều lợi ích về tính bền vững, tuy nhiên, lượng thông tin có thể giấu được sẽ thấp hơn và quá trình cài đặt sẽ phức tạp hơn.
Nếu phân chia các phương pháp theo đặc điểm kỹ thuật có:
- Thay thế các bit dữ liệu trong bản đồ bit
Phương pháp xử lý tín hiệu
- Các phương pháp biến đổi ảnh
- Các kỹ thuật điều chế trải phổ
Các phương pháp mã hoá: Lượng hóa; mã hóa sửa lỗi
Các phương pháp thống kê - kiểm thử giả thuyết
Phương pháp sinh mặt nạ.
Mô hình kỹ thuật giấu tin trong ảnh
Kỹ thuật giấu tin trong ảnh bao gồm hai quá trình:
Quá trình 1: Giấu (nhúng) tin vào ảnh
Hình 1.2: Mô hình cơ bản giấu tin mật trong ảnh Đầu vào:
Thông tin giấu là một khái niệm linh hoạt, có thể bao gồm các loại dữ liệu như thông điệp, hình ảnh, video, hoặc âm thanh, tùy thuộc vào mục đích sử dụng của người dùng Các thuật toán và kỹ thuật giấu tin mật đóng vai trò quan trọng trong việc bảo vệ và truyền tải thông tin một cách an toàn.
Khóa che giấu Ảnh giấu tin Thông tin giấu
- Ảnh gốc: Là ảnh được chọn làm môi trường để giấu tin Đầu ra:
- Ảnh giấu đã được giấu tin
Quá trình 2: Tách tin từ ảnh giấu tin
Hình 1.3: Mô hình cơ bản tách tin mật Đầu vào:
- Khóa che giấu Đầu ra:
Quá trình giải mã sử dụng thuật toán tách tin kết hợp với kỹ thuật nhúng tin và khóa che giấu Kết quả bao gồm ảnh gốc và thông tin đã được giấu Thông tin giấu sẽ được kiểm tra và so sánh với thông tin ban đầu để đảm bảo tính chính xác.
Thuật toán/kỹ thuật tách tin
Khóa che giấu Ảnh gốc Thông tin được giấu Kiểm tra
Phân loại các kỹ thuật giấu tin trong ảnh
Có thể chia kỹ thuật giấu tin ra làm 2 loại lớn đó là thủy vân số và giấu tin mật
Hình 1.4 Phân loại các kỹ thuật giấu tin
Giấu tin mật là kỹ thuật nhúng dữ liệu hoặc thông tin bí mật vào một đối tượng gốc nhằm tạo ra một kênh truyền thông an toàn giữa hai bên Mục tiêu của phương pháp này là ngăn chặn sự phát hiện của thông tin nhúng bởi những người không liên quan, đảm bảo rằng kẻ tấn công không thể truy cập vào dữ liệu chỉ bằng cách quan sát bề ngoài của tập tin.
Hiện nay, việc giấu tin được thực hiện thông qua các phương tiện kỹ thuật số như văn bản, hình ảnh, âm thanh và video, tùy thuộc vào yêu cầu và lựa chọn của người gửi Trong số các phương tiện này, giấu tin mật là một phương pháp phổ biến.
Giấu thông tin Information hiding
Thuỷ vân hiển thị Visible Watermarking
Miền không gian trong hình ảnh hiện đang được sử dụng phổ biến, bởi vì lượng thông tin dư thừa trong hình ảnh rất lớn, cho phép dễ dàng thay đổi và ẩn giấu nhiều thông tin mật bên trong.
Một số kỹ thuật được đề xuất sử dụng tập tin hình ảnh làm đối tượng gốc, và những kỹ thuật này có thể được phân loại theo hai cách khác nhau.
- Kỹ thuật không gian miền
- Kỹ thuật thay đổi miền
Kỹ thuật không gian miền là một phương pháp nhúng dữ liệu bằng cách thay thế cẩn thận các điểm ảnh của hình ảnh gốc bằng các bit thông điệp mật Các thuật toán giấu tin mật hiệu quả nhất thường dựa trên việc sửa đổi lớp ít quan trọng của hình ảnh, được gọi là kỹ thuật LSB Kỹ thuật LSB là phương pháp phổ biến nhất để giấu tin mật trong hình ảnh, trong đó các bit ở các điểm ảnh có trọng số thấp được thay thế bằng các bit thông tin.
Kỹ thuật thay đổi miền là phương pháp nhúng dữ liệu bằng cách biến đổi miền hình ảnh gốc và giấu thông tin bên trong Trong số các thuật toán chuyển đổi miền, thuật toán DCT (Biến đổi Cosin rời rạc) được sử dụng phổ biến, cho phép thể hiện hình ảnh dưới dạng sóng tổng hợp có trọng số của các hàm cosin Dữ liệu được giấu kín thông qua việc điều chỉnh các hệ số DCT của hình ảnh.
Một kỹ thuật giấu tin mật trong hình ảnh tốt nhằm ba mục tiêu
- Dữ liệu tối đa có thể được giấu bên trong hình ảnh
Tính không nhận thấy được tin giấu là một yếu tố quan trọng, cho thấy chất lượng hình ảnh sau khi thực hiện quá trình giấu tin Khi nhìn vào ảnh đã được che giấu, người xem không thể phát hiện ra sự hiện diện của thông tin ẩn bên trong.
- Bảo mật: An ninh phải mạnh mẽ để chống lại các cuộc tấn công của những kẻ tấn công
Chỉ cần một lượng thông tin nhỏ nhưng đặc trưng cho bản quyền của người sở hữu, thông tin này cần phải có độ bền vững cao để bảo vệ quyền lợi.
Thủy vân bền vững là một giải pháp hiệu quả trong việc bảo vệ bản quyền, thường được sử dụng như một hình thức dán tem bản quyền trên sản phẩm Để đảm bảo tính hiệu quả, thủy vân cần phải tồn tại bền vững cùng với sản phẩm, giúp ngăn chặn các hành vi tẩy xóa, làm giả hoặc phá hủy thủy vân.
Thủy vân dễ vỡ là kỹ thuật nhúng thủy vân vào sản phẩm, nhằm mục đích tạo ra một lớp bảo vệ Tuy nhiên, nếu có bất kỳ biến đổi nào xảy ra với sản phẩm gốc, thủy vân sẽ không còn nguyên vẹn như ban đầu.
Thủy vân ẩn: Cũng giống như giấu tin, bằng mắt thường không thể nhìn được thủy vân ẩn
Thủy vân hiện: Là loại thủy vân hiện ngay trên sản phẩm và mọi người đều có thể nhìn thấy được.
CẤU TRÚC CHUNG CỦA ẢNH BITMAP
Tổng quan về ảnh Bitmap
Để giấu tin trong ảnh, cần nghiên cứu cấu trúc ảnh và thực hiện số hóa ảnh Quá trình số hóa các loại ảnh khác nhau không giống nhau, và có nhiều định dạng ảnh đã được chuẩn hóa như JPEG, PCX, BMP, GIF, IMG Dưới đây là cấu trúc của ảnh bitmap (*.BMP).
Mỗi file ảnh BMP gồm 3 phần:
Cấu trúc cụ thể của ảnh:
BitmapHeader (54 byte): Lưu trữ những thông tin cơ bản về tệp ảnh và thuộc tính cơ bản của ảnh
Bảng 2.1 Bảng chi tiết những thông tin trong BitmapHeader
Byte Đặt tên Ý nghĩa Giá trị
1 - 2 ID Nhận dạng file „BMP‟ hay 19778
3 – 6 File_Size Kích thước File Kiểu Long trong turbo C
7 – 10 Reserved Dành riêng Mang giá trị 0
11 – 14 OffsetBit Byte bắt đầu vùng dữ liệu
Offset của byte bắt đầu vùng dữ liệu
15 -18 Isize Số byte cho vùng info 40 byte
19 – 22 Width Chiều rộng của ảnh
23 – 26 Height Chiều cao của ảnh BMP Tính bằng pixel
27 – 28 Planes Số planes màu Cố định là 1
29 – 30 bitCount Số bit cho một pixel Có thể là 1,4,6,16,24
Byte Đặt tên Ý nghĩa Giá trị
31-34 Compression Kiểu nén dữ liệu 0: Không nén
1: Nén 8bits/pixel 2: Nén 4bits/pixel
35 -38 ImageSize Kích thước ảnh Tính bằng byte
39 – 42 XpelsPerMeter Độ phân giải ngang Tính bằng pixel/metr
43 – 46 YpelsPerMeter Độ phân giải dọc Tính bằng pixel/metr
47 – 50 ColorsUsed Số màu sử dụng trong ảnh
51 – 54 ColorsImportant Số màu được sử dụng khi hiện ảnh
Thành phần bitCount trong cấu trúc BitmapHeader xác định số bit cho mỗi điểm ảnh và số lượng màu tối đa của hình ảnh Các giá trị có thể có của bitCount bao gồm nhiều tùy chọn khác nhau.
1: Bitmap là ảnh đen trắng, mỗi bit biểu diễn 1 điểm ảnh Nếu bit mang giá trị 0 thì điểm ảnh là đen, bit mang giá trị 1 điểm ảnh là điểm trắng
4: Bitmap là ảnh 16 màu, mỗi điểm ảnh được biểu diễn bởi 4 bit
8: Bitmap là ảnh 256 màu, mỗi điểm ảnh biểu diễn bởi 1 byte
16: Bitmap là ảnh highcolor, mỗi dãy 2 byte liên tiếp trong bitmap biểu diễn cường độ tương đối của màu đỏ, xanh lá cây, xanh lơ của một điểm ảnh
24: Bitmap là ảnh true color (2 24 màu), mỗi dãy 3 byte liên tiếp trong bitmap biểu diễn cường độ tương đối của màu đỏ, xanh lá cây, xanh lơ (RGB) của một điểm ảnh
Thành phần ColorUsed trong cấu trúc BitmapHeader xác định số lượng màu trong bảng màu thực tế được sử dụng để hiển thị bitmap Nếu thành phần này được thiết lập là
0, bitmap sử dụng số màu lớn nhất tương ứng với giá trị của BitCount
Palette màu (bảng màu): bảng màu của ảnh, chỉ những ảnh lớn hơn hoặc bằng 8 bit màu mới có Palette màu
BitmapData là phần thông tin ảnh nằm ngay sau palette màu trong định dạng BMP, chứa giá trị màu của từng điểm ảnh Các dòng ảnh được lưu từ dưới lên trên, trong khi các điểm ảnh được sắp xếp từ trái sang phải Mỗi giá trị điểm ảnh là chỉ số tham chiếu tới màu tương ứng trong palette màu.
Cấu trúc ảnh PNG
PNG là một định dạng hình ảnh sử dụng công nghệ nén dữ liệu tiên tiến mà không làm mất dữ liệu gốc Định dạng này được hỗ trợ bởi thư viện libpng, một thư viện độc lập cung cấp các hàm C để quản lý hình ảnh PNG.
Tập tin PNG bắt đầu với 8 byte ký hiệu (89 50 4E 47 0D 0A 1A) trong hệ thống cơ số 16, bao gồm chữ "PNG" và hai dấu xuống dòng Cấu trúc của tập tin được tổ chức theo các thành phần, mỗi thành phần chứa thông tin về hình ảnh Thiết kế này cho phép định dạng PNG tương thích với các phiên bản cũ thông qua việc sử dụng các "thành phần" trong tập tin.
PNG là cấu trúc như một chuỗi các thành phần, mỗi thành phần chứa kích thước, kiểu, dữ liệu, và mã sửa lỗi CRC ngay trong nó
Chuỗi được đặt tên bằng 4 ký tự, phân biệt giữa chữ hoa và chữ thường Sự phân biệt này cho phép bộ giải mã xác định bản chất của chuỗi khi nó không nhận diện được.
Chữ cái đầu viết hoa trong chuỗi này là rất quan trọng, vì nó chứa thông tin cần thiết để đọc tệp Nếu bộ giải mã không nhận diện được chuỗi này, việc đọc tệp sẽ bị hủy bỏ.
Định dạng PNG mang lại nhiều ưu điểm vượt trội so với các định dạng phổ biến khác như JPG, GIF và BMP, đặc biệt trong môi trường đồ họa web.
Hình ảnh PNG là một trong những định dạng có dung lượng nhỏ nhất hiện nay, điều này rất quan trọng khi sử dụng trên môi trường web để tối ưu hóa tốc độ tải trang.
- Độ sâu của màu: Ảnh PNG hỗ trợ đến true color 48bit màu Trong khi đó ảnh gif chỉ ở mức 256 màu.
KỸ THUẬT GIẤU VĂN BẢN TRONG ẢNH SỐ
Giới thiệu
Kỹ thuật giấu tin LSB là một phương pháp bảo mật hiệu quả, cho phép ẩn nhiều dữ liệu hơn so với các kỹ thuật trước đây Mặc dù nhiều phương pháp hiện tại chưa khai thác tối đa dữ liệu từ ảnh gốc, nhưng đã có nhiều cải tiến nhằm sử dụng nhiều bit/pixel hơn để gia tăng khả năng ẩn dữ liệu Vào tháng 10/2010, Sukhpreet và Sumeet đã giới thiệu một kỹ thuật mới giấu văn bản trong hình ảnh bằng cách sử dụng 7 bit/pixel, mà không làm thay đổi hình ảnh gốc Văn bản được chuyển đổi thành mã ASCII, và 7 bit của mã ASCII được kết hợp với các giá trị điểm ảnh Để đánh dấu sự hiện diện của dữ liệu trong một điểm ảnh cụ thể, tác giả đã áp dụng kỹ thuật LSB.
Kỹ thuật giấu văn bản trong ảnh
Trong kỹ thuật này, tác giả sử dụng hình ảnh Bitmap làm nguồn gốc, vì ảnh Bitmap chứa nhiều thông tin dư thừa Điều này cho phép dễ dàng nhúng nhiều tin mật vào bên trong mà không làm thay đổi hình ảnh gốc Mục đích của phương pháp này là để giấu thông tin mật một cách hiệu quả trong hình ảnh.
Mỗi pixel trong hình ảnh BMP bao gồm ba byte, tương ứng với các màu Red, Green và Blue Để mã hóa văn bản, mỗi ký tự được chuyển đổi sang mã ASCII với 7 bit nhị phân Khi xử lý, ta sẽ so sánh từng bit của tin ẩn với các điểm ảnh.
Bài viết đề cập đến việc sử dụng 7 bit có trọng số cao (MBSs) từ ba kênh màu Red, Green, Blue để đánh dấu dữ liệu trong điểm ảnh Khi 7 bit của tin mật trùng với 7 bit MBSs của một trong ba kênh, các bit LSBs sẽ được sử dụng để xác định sự hiện diện của dữ liệu Hai kênh màu sẽ được chọn làm kênh chỉ báo, với LSB của chúng đánh dấu thông tin trong bất kỳ kênh màu nào Để quyết định kênh chỉ báo cho mỗi ký tự của tin mật, một số giả ngẫu nhiên sẽ được tạo ra và chuyển đổi thành chuỗi bit nhị phân Số lượng bit 1 và 0 sẽ được đếm để xác định tính chẵn lẻ của chuỗi, từ đó lựa chọn kênh chỉ báo phù hợp, như được thể hiện trong bảng 3.1.
Bảng 3.1 Tiêu chuẩn lựa chọn kênh chỉ báo
Trường hợp Đặt chỉ báo kênh
Loại 1 (tính chẵn lẻ là chẵn)
Loại 2 (tính chẵn lẻ là lẻ)
Số các số 1 nhiều hơn số các số 0 RG RG GR
Số các số 0 nhiều hơn số các số 1 GB GB BG
Số lượng các số 0 tương đương với số lượng các số 1 trong quá trình ẩn thông tin bằng kỹ thuật LSB Đầu tiên, chiều dài của tin được ẩn trong hàng đầu tiên của ảnh Bắt đầu từ điểm ảnh đầu tiên của hàng thứ hai, chúng ta so sánh ký tự đầu tiên của tin với 7 MSBs của ba thành phần màu Red, Green, Blue của điểm ảnh Nếu có sự tương ứng với bất kỳ kênh màu nào, giá trị của các kênh chỉ báo sẽ được thiết lập theo tiêu chí trong bảng 3.2 Thủ tục này được lặp lại cho các điểm ảnh tiếp theo của hình ảnh gốc.
Bảng 3.2 Tiêu chuẩn để đặt giá trị kênh chỉ báo
Kênh dữ liệu Chỉ báo LSB 1 Chỉ báo LSB 2
Thuật toán giấu văn bản trong ảnh
- Văn bản cần giấu Đầu ra:
Các bước thực hiện thuật toán:
Bước 1: Đọc ảnh gốc và chuyển đổi tin mật thành mã ASCII, sau đó lưu vào mảng C Bước 2: Tính chiều dài của tin và lưu vào biến L, sau đó giấu chiều dài tin vào hàng đầu tiên của ảnh gốc bằng kỹ thuật LSB.
Bước 3: Bắt đầu từ điểm ảnh đầu tiên của hàng thứ hai ảnh gốc
Bước 4: Ký tự rút ra từ C lưu trữ trong một biến tạm thời B
Bước 5: Chọn cặp kênh chỉ báo, phụ thuộc vào số giả ngẫu nhiên
Bước 6: Nếu ký tự tương ứng với 7 MSB của một trong ba kênh, thiết lập giá trị của các kênh chỉ báo và giảm L xuống 1 trước khi chuyển đến điểm ảnh tiếp theo Nếu ký tự không phù hợp với bất kỳ kênh nào, đặt giá trị của các kênh chỉ báo bằng 1 và tiếp tục đến điểm ảnh tiếp theo, quay lại bước 5.
Bước 7: Kiểm tra xem L có lớn hơn 0 hay không Nếu có đi đến bước 4 Ngược lại kết thúc thuật toán
Hình 3.1: Sơ đồ quá trình giấu tin Đọc ảnh gốc, đọc tin mật, chuyển thành mã ASCII
Rút ra chiều dài của tin mật Ẩn vào hàng đầu tiên của ảnh gốc
Bắt đầu hàng 2 của ảnh gốc
Ký tự tiếp theo của tin đặt trong
B Tiếp đến Pixel tiếp theo
Tìm cặp kênh chỉ báo, dựa trên số giả ngẫu nhiên Đặt cả 2 chỉ báo LSB 2 = 0,
L = L-1 Đặt chỉ báo LSB 1= 0 và chỉ báo LSB 2 = 1, L = L-1
Kết thúc Đặt chỉ báo LSB 1= 1và chỉ báo LSB 2 =0, L = L-1 Đi tới pixel tiếp theo Nếu L>0 Đặt LSB kênh chỉ báo =1
Thuật toán tách văn bản trong ảnh
- Ảnh giấu tin Đầu ra:
Quá trình giấu tin phụ thuộc vào giá trị của hàm tạo lập số giả ngẫu nhiên, mà hàm này sẽ sinh ra các số tương tự như trong quá trình giấu tin Từ giá trị của số giả ngẫu nhiên, chúng ta có thể xác định kênh chỉ báo Dựa vào giá trị của các kênh chỉ báo, chúng ta sẽ xác định dữ liệu nằm trong kênh màu nào bằng cách sử dụng bảng 3.2.
Các bước thực hiện thuật toán:
Để giải mã hình ảnh giấu tin, đầu tiên bạn cần đọc các LSB của hàng đầu tiên để xác định giá trị L Sau đó, tiếp tục từ điểm ảnh đầu tiên của hàng thứ hai trong hình ảnh đã được che giấu.
Bước 3: Tìm cặp kênh chỉ báo, phụ thuộc vào số giả ngẫu nhiên Và rút ra chỉ báo LSB1 và chỉ báo LSB2
Nếu giá trị LSB1 và LSB2 là 11, điều này có nghĩa là dữ liệu không tồn tại trong điểm ảnh Ngược lại, dựa vào giá trị của các kênh chỉ báo, ta sẽ rút ra dữ liệu từ các điểm ảnh và lưu vào mảng C Sau đó, giảm giá trị L xuống 1 và tiếp tục đến điểm ảnh kế tiếp.
Bước 5: Kiểm tra xem L có lớn hơn 0 hay không Nếu có đi đến bước 4 Ngược lại thì dừng
Bước 6: Chuyển đổi các giá trị trong C thành các ký tự tương đương
Hình 3.2: Sơ đồ quá trình tách tin.
Dữ liệu trong C Đọc ảnh giấu tin.
Rút ra chiều dài của tin lưu trong hàng đầu của ảnh giấu tin.
Bắt đầu hàng tiếp theo của ảnh gốc Tìm cặp chỉ báo kênh dựa trên số giả ngẫu nhiên Rút ra 2 chỉ số của LSB
Dữ liệu rút ra từ kênh Red lưu trữ trong C L=L-1
Dữliệu rút ra từ kênh Green lưu trữ trong C L=L-1 Giá trị = 01
Kết thúc Đi tới pixel tiếp theo
Dữ liệu không giấu trong điểm ảnh
Dữ liệu rút ra từ kênh Blue lưu trữ trong C L=L-1
CÀI ĐẶT VÀ THỬ NGHIỆM
Môi trường cài đặt
Hệ điều hành Windown XP/Vista/7
Cấu hình: bộ vi xử lý Core Duo trở lên, Ram 1Gb
Ngôn ngữ cài đặt: ngôn ngữ lập trình Matlab
Môi trường soạn thảo: Matlab R2008b.
Tập dữ liệu thử nghiệm
Tập dữ liệu thử nghiệm bao gồm các hình ảnh bitmap 24 bit với kích thước khác nhau, được thu thập từ mạng, gồm các tệp: bamboon.bmp, lena.bmp, banh.bmp, banhoa.bmp, hoa1.bmp, hoa2.bmp, vuonhoa.bmp, nen.bmp, conmeo.bmp, và bonghoa.bmp.
Hình 4.1 Tập hình ảnh thử nghiệm
Đo độ đánh giá PSNR
Chất lượng hình ảnh sau khi ẩn thông tin được xác định thông qua chỉ số PSNR (Tỷ số tín hiệu đỉnh trên nhiễu).
PSNR (Peak Signal-to-Noise Ratio) được xác định qua lỗi bình phương trung bình (MSE - Mean Squared Error) giữa hai hình ảnh bitmap I và K, trong đó I là hình ảnh gốc và K là hình ảnh chứa tin Đối với ảnh bitmap có kích thước m x n và 3 kênh màu RGB, công thức tính MSE được áp dụng như sau:
2 m i n j j i KR j i nR IR MSER mR
2 m i n j j i KG j i nR IG MSEG mR
2 m i n j j i KB j i nR IB MSEB mR n MSEB m
PSNR được tính như sau :
Giá trị tối đa của pixel trên ảnh, ký hiệu là MAX I, là 255 khi các pixel được biểu diễn bằng 8 bits Trong trường hợp tổng quát, khi tín hiệu được mã hóa bằng B bits trên một đơn vị lấy mẫu, giá trị MAX I sẽ được tính bằng công thức 2^B - 1.
Khi hai hình ảnh giống hệt nhau, MSE sẽ bằng 0 và PSNR đi đến vô hạn
Một số giao diện của chương trình
Hình 4.2 Hình ảnh giao diện chính
Giao diện chính gồm các chức năng:
Giao diện giấu văn bản:
Để giấu văn bản trong ảnh, người dùng cần nhập ảnh gốc và tệp văn bản, sau đó chọn vị trí lưu trữ cho ảnh đã được giấu tin và tiến hành thực hiện quá trình giấu tin.
Hình 4.4 Giao diện chọn ảnh gốc
Giao diện tách văn bản
Để tách văn bản từ ảnh giấu tin, người dùng cần chọn ảnh cần xử lý và chỉ định nơi lưu trữ văn bản đã được tách ra.
Giao diện kiểm tra PSNR
Kết quả kiểm tra PSNR
Bảng 4.1 Kết quả PSNR khi tăng kích cỡ dữ liệu mật Tên ảnh
Giấu 116 ký tự Giấu 221 ký tự Giấu 400 ký tự
Lena.bmp 83,6837 78,1351 74,4447 banhoa.bmp 70,6465 70,0484 68,7673 vuonhoa.bmp 88,0806 83,5877 80,1678
Bảng 4.1 cho thấy giá trị PSNR khác nhau khi giấu văn bản trong ảnh Số lượng ký tự ít hơn dẫn đến PSNR cao hơn, chứng tỏ chất lượng dữ liệu khôi phục tốt hơn Kết quả cho thấy PSNR > 40 cho thấy chất lượng hình ảnh sau khi giấu tin là tốt.