1.8.1. Tiếp cận trên miền quan sát
Đây là hướng tiếp cận cơ bản và tự nhiên trong số các kỹ thuật dấu tin. Miền không gian ảnh là miền dữ liệu ảnh gốc, tác động lên miền không gian ảnh chính là tác động lên các điểm ảnh, thay đổi trực tiếp của điểm ảnh. Đây là hướng tiếp cận tự nhiên bởi vì khi nói đến việc dấu tin trong ảnh người ta thường nghĩ ngay đến việc thay đổi các giá trị của điểm anh nguồn. Một phương pháp phổ biến của hướng tiếp cận này là phương pháp tác động đến bit it quan trọng nhất của mỗi điểm ảnh[12].
Ý tưởng cơ bản của phương pháp tác động đến bit ít quan trọng nhất của các điểm ảnh là chọn ra từ mỗi điểm ảnh các bit có ý nghĩa nhất về mặt tri giác để sử dụng cho việc dấu tin. Việc bít nào được coi là ít tri giác nhất và bao nhiêu bit có thể lấy được để thay thế đều phụ thuộc vào tính chất hệ thống thị giác con người và nhu cầu về chất lượng ảnh trong các ứng dụng. Ví dụ, trong ảnh 24 bit, mỗi điểm ảnh được biểu diễn bởi 24 bit tương ứng với 3 màu RGB, mỗi màu chiếm một byte. Người ta sử dụng một tính chất của mắt người là sự cảm nhận về màu B(blue) kém hơn so với màu R(Red) và G(green), chính vì thế mà người ta thường chọn bít cuối cùng trong 8 bit biểu diễn màu B của mỗi điểm ảnh để giấu tin. Thay đổi bit cuối cùng trong 8 bit
biểu diễn màu B chỉ làm cho giá trị biểu diễn màu B tăng hoặc giảm đi một đơn vị. Do vậy, các Bít ít quan trọng nhất trong trường hợp này là bit 24 của mỗi điểm ảnh. Một số thuật toán muốn giấu nhiều thông tin hơn và chấp nhận chất lượng ảnh thấp hơn một chút có thể sử dụng Bít cuối cùng của byte màu RGB làm bít ít quan trọng nhất. Trong trường hợp, đối với mỗi điểm ảnh màu 24 bit, ta sẽ chọn ra được 3 bít ít qian trọng nhất.
Tuy nhiên Phương pháp này cũng có nhiều hạn chế, chẳng hạn như không đảm bảo được tính bền vững của thông tin giấu đối với các thao tác biến đổi như quay ảnh hoặc nén ảnh Jpeg.
1.8.2. Tiếp cận trên miền tần số ảnh
Hướng tiếp cận dựa trên miền không gian ảnh như đã trình bày ở trên là cách tiến hành khảo sát tín hiệu và hệ thống rời rạc một cách trực tiếp trên miền giá trị rời rạc của các điểm ảnh gọi là trên biến số độc lập tự nhiên. Nhưng trong nhiều trường hợp, cách khảo sát trực tiếp này gặp những khó khăn nhất định hoặc rất phức tạp và hiệu quả không cao.
Ngoài phương pháp khảo sát trực tiếp thông qua các kỹ thuật biến đổi . Các biến đổi này làm nhiệm vụ chuyển miền biến số độc lập sang các miền khác và như vậy tín hiệu và hệ thống rời rạc sẽ được biểu diễn trong các miền mới với các biến số mới.
Mỗi cách biến đổi sẽ có những thuận lợi riêng, tuỳ từng trường hợp mà chúng ta dùng biến đổi nào. Sau khi khảo sát, biến đổi xong các tín hiệu và hệ thống rời rạc trong miền các biến số mới này, nếu cần thiết có thể dùng các biến đổi ngược để đưa chúng trở lại miền biến số độc lập.
Phương pháp khảo sát gián tiếp sẽ làm đơn giản rất nhiều các công việc mà chúng ta gặp phải khi dùng phương pháp khảo sát trực tiếp trong miền biến số độc lập tự nhiên. Có nhiều phép biến đổi cho dữ liệu ảnh trong đó có
một số phương pháp biến đổi được sử dụng nhiều trong các xử lý ảnh như Fourier, biến đổi cosin rời rạc, Wavelet...Đây là phép biến đổi được sử dụng nhiều trong các kỹ thuật xử lí ảnh. Trong dấu tin và đặc biệt trong thuỷ vân tiếp cận miền tần số, các phép biến đổi từ miền biến số tự nhiên của ảnh sang miền tần số như biến đổi Cosin rời rạc, biến đổi Fourier, hay biến đổi Wavelet được sử dụng phổ biến.
Chương II : Một số kỹ thuật dấu tin cho ảnh
2.1 GiớI thiệu chung
Các kỹ thuật dấu tin được trình bày trong chương này áp dụng cho ảnh đa mức xám. ĐốI vớI ảnh màu có thể dung cách biến đổI RGB Thành YUV(dành cho nén ảnh jpeg).
Hầu hết các kỹ thuật dấu tin bao gồm các vấn đề sau:
Chọn vùng của ảnh để chèn dấu tin:thong thường , các vị trí được chọn là nơi có tần số trung bình tớI các tần số cao(các biên ảnh).Như đã trình bày trong mục 1.4, các miền có tần số càng cao thì thì mắt càng kém phân biệt được sự thay đổI .Tuy nhiên các miền ảnh có tần số cao thường bị loạI bỏ qua các các phép nén ảnh có mất mát thông tin do vậy miền ảnh có tần số trung bình sẽ được chọn để chèn dấu ẩn
Chọn miền làm việc của thuật toán : thuật toán chèn tin có thể được thực hiện trực tiếp trên ma trận dữ liệu ảnh ,gọI là thuật toán chèn tin trong miền quan sát.Trong trường hợp ảnh được biến đổI từ miền quan sát sang miền khác trước khi áp dụng thuật toán chèn tin(ví dụ biến đổI Fourier, coin, Ưavelet) gọI là thuật toán chèn tin trong miền DFT,DCT,DWT. Tin được chèn vào miền này sau đó ta tiến hành biến đổI ngược về miền quan sát để nhận được ảnh đã chèn tin.
Chọn cách chèn tin vào ảnh: Tin có thể được chèn bằng cách cộng trực tiếp vào các miền giá trị được chọn của ảnh hoặc thay đổI cách biểu diễn giá trị ảnh theo cách biểu diễn giá trị của tin.
Chọn cách tách tin ra khỏI ảnh:Do năng lượng của tin được chèn vào ảnh rất nhỏ so vớI năng lượng của toàn bộ dữ liệu ảnh nên việc tách tin ra khỏI ảnh giống như tách tín hiệu trong miền truyền thông chứa rất nhiều
nhiễu. Thông thường quá trình tách tách tin khỏI ảnh phụ thuộc vào phương pháp chèn tin. Các bước tách tin sẽ giống vớI chèn tin theo thứ tự ngược lạI. Sơ đồ tổng quan mô tả các kỹ thuật dấu tin cho ảnh
Hình 2.1 Tổng quan các kỹ thuật dấu tin đốI vớI ảnh.
Các phương pháp giấu tin trong ảnh hiện nay đều thuộc vào một trong hai nhóm:
1. Dựa vào miền quan sát 2. Dựa vào miền tần số
Nhóm phương pháp dựa vào miền quan sát của ảnh hay được áp dụng trên các ảnh bitmap không nén và các ảnh dùng bảng mầu (như gif, tif). Ý tưởng chính của phương pháp này là lấy từng bít của mẩu tin mật rồi rải nó lên ảnh mang, gài vào các bít có trọng số thấp của điểm bị rải trúng.
Nhóm phương pháp dựa trên các phép biến đổi ảnh lợi dụng việc biến đổi ảnh từ miền biểu diễn này sang miền biểu diễn khác để giấu các bít tin.
Kỹ thuật dấu tin
Chọn miền đánh dấu miền quan sát miền DFT miền DCT miền DWt Chọn vị trí đánh dấu vùng tần số cao toàn bộ vùng ảnh Chọn kiểu chèn tin cộng trực tiếp thay đổI biểu diễn ảnh Chọn kiểu tách tin có sử dụng ảnh gốc để đốI chiếu không sử dụng ảnh gốc
2.2 Kỹ thuật dấu tin dựa vào miền quan sát. 2.2.1 Kỹ thuật gài vào các bít có trọng số thấp 2.2.1 Kỹ thuật gài vào các bít có trọng số thấp
a) Nền tảng kỹ thuật
Khi chuyển một ảnh tương tự sang ảnh số người ta thường chọn ba 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 từ ba mầu căn bản: red (R), green (G) và blue (B), mỗi mầu nhận một 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
Phương pháp LSB sửa bít hay các bít có trọng số thấp nhất (ít quan trong nhất để tạo nên mầu điểm ảnh), gài các thông tin mật vào đó. Các thông tin được dấu sẽ lẩn vào đâu đó giống như nhiễu ảnh.
Áp dụng kỹ thuật LSB, một điểm ảnh 24-bit có thể giấu được ba bit thông tin (vì mỗi điểm được thể hiện bằng ba byte). Mọi sự thay đổi trên điểm ảnh có trọng số thấp đều không gây nên sự chú ý của mắt người.
b) Ví dụ minh hoạ
Chữ cái A có mã ascii là 65 hệ thập phân (1000001 hệ nhị phân). Các điểm ảnh trước khi dấu. Để giấu chữ 'A' cần ba điểm ảnh liên tiếp. Ví dụ các điểm ảnh trước khi giấu là:
00100111 11101001 11001000 00100111 11001000 11101001 11001000 00100111 11101001
Chèn giá trị nhị phân của chữ 'A' vào ba điểm ảnh trên bắt đầu từ byte trên cùng bên trái sẽ cho kết quả:
00100110 11101001 11001000 00100110 11001000 11101000 11001000 00100110 11101001
Các bit được gạch chân là các bit bị lật. Có thể dùng hai bit có trọng số thấp để giấu tin mà chất lượng không thay đổi mấy đối với mắt thường.
Từ ví dụ trên ta có thể suy ra rằng nếu dùng 1 LSB thì xác suất phải lật bít 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, đôi khi chúng ta có thể dùng đến 2 hoặc thậm chí 3 bít thấp mà vẫn không để lộ thông tin mật. Đối với ảnh 8 bit thì điều này là không thể, và người ta chỉ dùng 1 bít thấp nhất để giấu tin
Nếu ta có giấu từ “dig” trong ảnh, ta lấy LSB của mỗi mầu và giấu mỗi bit các chữ của từ trong RGB. Để chèn chữ “D”, ta thay đổi ba pixel mầu bằng 3 bit trong mỗi pixel mầu, ta dùng 9 đến 10 bit để giấu chữ với một bit ở pixel thứ 10.
ASCII CODES: D- 0100 0100 I- 0110 1001 G-0110 0111
Thí dụ để dấu tin trong ảnh mầu theo phương pháp LSB thì đầu tiên ta thực hiện chọn ảnh gốc dùng để dấu tin và ảnh bí mật cần dấu. Tiếp theo chọn số bit ta muốn sử dụng để dấu ảnh bí mật, càng dùng nhiều bit trên ảnh gốc thì càng làm nó xấu đi còn ảnh bí mật lại càng rõ. Bây giờ ta tạo ra ảnh mới kết hợp giữa hai ảnh đã chọn, theo ví dụ này ta dùng 4 bit để dấu ảnh bí mật cũng có nghĩa là ảnh gốc thiếu đi 4 bit (PGM – một byte trên một pixel, JPEG – một byte cho đỏ, xanh lá cây, xanh da trời và một byte cho kênh alpha trong một số loại ảnh khác)
Host Pixel: 10110001 Secret Pixel: 00111111 New Image Pixel: 10110011
Để lấy lại ảnh gốc ta cần biết có bao nhiêu bit đã dùng để lưu ảnh bí mật. Ta quét ảnh kết hợp và ảnh gốc, tìm ra được số bit chênh lệch và dùng chúng để tạo ra ảnh mới có một thay đổi là gồm có đủ hầu hết các bit.
Host Pixel: 10110011 Bits used: 4
New Image: 00110000
c) Dung lượng giấu
Phương pháp này giấu được lượng thông tin rất lớn.
Với ảnh 24 bit/ điểm ảnh, dùng một bít có trọng số thấp có thể dấu được:
3 bít ẩn / 1 điểm ảnh (24 bít dữ liệu) = 1/8 bít ẩn / bít dữ liệu Nếu dùng 2 bít có trọng số thấp
6 bít ẩn / 1 điểm ảnh (24 bít dữ liệu) = 1/4 bít ẩn / bít dữ liệu
Trong các ảnh sặc sỡ chúng ta có thể dùng thậm chí 3 bit LSB, khi đó thu được tỷ lệ bít ẩn/bit dữ liệu là 3/8.
Đôi khi người ta hỏi ngược lại là cần bao nhiêu byte ảnh để có thể giấu 1 byte tin mật. Nếu chỉ dùng 1 bit thấp ta cần 8 byte, nếu dùng đến 2 bit, ta chỉ cần 4 byte dữ liệu là đã giấu được 1 byte thông tin.
Nếu áp dụng kỹ thuật LSB lên ảnh 8-bit, cần phải chú ý hơn vì ảnh 8- bit không đễ chấp nhận thay đổi như ảnh 24-bit. Nên tránh dùng các ảnh vẽ phức tạp (như Mona Lisa). Các ảnh đơn giản như ảnh động vật, ví dụ chó, mèo phù hợp hơn. Khi sửa bit trọng số thấp trong ảnh 8-bit, các con trỏ chỉ đến bảng mầu cũng bị thay đổi theo. Chú ý rằng đôi khi chỉ cần thay đổi 1 bit có thể dẫn đến sự khác biệt về dải Red và dải Blue. Các thay đổi như vậy sẽ bị nhận ra ngay. Vì vậy các chuyên gia về giấu tin trong ảnh khuyên nên dùng bảng mầu xám vì sự khác biệt giữa các cấp mầu không dễ thấy.
d) Tính bền vững
Phương pháp LSB rất dễ bị "tổn thương" bởi một loạt các phép biến đổi ảnh, ngay cả phép biến đổi ảnh đơn giản và thông dụng nhất.
Nén ảnh mất dữ liệu như JPEG rất dễ dàng phá huỷ toàn bộ tin mật. Vấn đề là ở chỗ, những "lỗ hổng" trong hệ thống thị giác con người - ít nhậy cảm với các nhiễu bổ sung - mà phương pháp chèn bít LSB khai thác lại cũng
chính là yếu tố mà phương pháp nén mất dữ liệu dựa lên đó để giảm mức dữ liệu của một ảnh.
Các phép biến đổi hình học như dịch chuyển hay xoay cũng dễ làm mất dữ liệu mật vì khi đó vị trí của các bít dấu sẽ bị thay đổi. Chỉ có một phép dịch chuyển đơn giản thì mới có thể phục hồi lại dữ liệu mật.
Các phép xử lý ảnh khác như làm mờ ảnh cũng sẽ làm mất dữ liệu hoàn toàn.
Tóm lại phương pháp LSB là phương pháp có tính ổn định kém nhất.
e) Khả năng phát hiện
Về điểm này phương pháp LSB cũng không phải là phương pháp tốt. Có thể dễ dàng trích ra các bit có trọng số thấp nhất với một chương trình đơn giản, sau đó kiểm tra xem liệu chúng có ý nghĩa gì không hoặc phá huỷ mẩu tin bằng cánh phá các bit này
f) Sự phù hợp cho dấu tin hay thuỷ vân
Trước hết, vì đây là kỹ thuật dễ bị tổn thương ngay cả với phép biến đổi đơn giản nên phương pháp LSB hầu như vô dụng đối với thuỷ vân số vì thuỷ vân phải chịu được sự tấn công phá huỷ và phải chịu được các phép biến đổi ảnh như nén/ giải nén hoặc chuyển đổi từ số sang tương tự và ngược lại.
Vì dung lượng giấu dữ liệu cao cho nên phương pháp này phù hợp với giấu tin, trong lĩnh vực ứng dụng này, độ ổn định không phải là một điều kiện quá khắt khe.
g) Vấn đề và giải pháp
Phương pháp LSB tốt cho ứng dụng giấu tin, chúng ta có thể tìm ra những thuật toán để cải tiến phương pháp này theo hướng khắc phục các nhược điểm của nó.
Để tăng tính bảo mật có hai cách:
Mã hoá mẩu tin gửi đi, và như vậy phải giải mã khi nhận được
Rải ngẫu nhiên các bít của mẩu tin mật lên bề mặt ảnh sử dụng một hàm ngẫu nhiên được mã hoá và như vậy hầu như không thể tái tạo lại mẩu tin nếu không có hạt giống dùng để tạo các số ngẫu nhiên.
Theo cách này, mẩu tin được bảo vệ bởi hai lần khoá, làm cho tính bí mật cao hơn nữa. Cách này cũng bảo vệ sự nguyên vẹn của mẩu tin mật, làm cho việc giả mạo tin càng khó hơn nữa, thậm chí không thể được (ít nhất về mặt tính toán). Tuy nhiên mục tiêu của chúng ta không chỉ mã hoá và xáo trộn mẩu tin mà phải giấu tin nên chúng ta cần phải cân nhắc thêm hai yếu tố nữa:
Chọn các ảnh mang
Chọn định dạng ảnh (24-bit, 8-bit, nén hay không nén)
Ảnh phủ phải được chọn sao cho nhìn thật tình cờ, nó phải là chủ đề mà cả người gửi lẫn người nhận đang quan tâm tới.
Ảnh phủ nên có nhiều mầu khác nhau, nó phải thật "sặc sỡ", để các nhiễu thêm vào sẽ bị chìm lẫn trong các mầu đã có. Các ảnh có các vùng ảnh đồng nhất rộng lớn dễ làm nổi bật lên các tạp nhiễu thêm vào.
Một vấn đề khác cần cân nhắc đó là kích thước ảnh. Nếu gửi qua lại các ảnh quá lớn sẽ gây nên sự chú ý của đối phương. Ví dụ như một ảnh cỡ 500 x 300 (150,000 điểm ảnh), là ảnh thông dụng trên Internet, với các biểu diễn mầu khác nhau:
24-bit mầu: 150,000 điểm x 24 bits/điểm/ 8 bits/byte = 90,000 Bytes