Khả năng giấu thông tin

Một phần của tài liệu luận văn thạc sĩ tìm hiểu các kỹ thuật giấu tin trong ảnh (Trang 39)

Khả năng giấu thông tin (Hiding Capacity) hay lƣợng thông tin giấu đƣợc (dung lƣợng) trong một ảnh đƣợc tính bằng tỉ lệ giữa lƣợng thông tin giấu và kích thƣớc của ảnh. Các thuật toán giấu tin đều cố gắng đạt đƣợc mục tiêu giấu đƣợc nhiều tin và gây nhiễu không đáng kể. Thực tế, ngƣời ta luôn phải cân nhắc giữa dung lƣợng tin cần giấu với các tiêu chí khác nhƣ chất lƣợng (Quality), tính bền vững (Robustness) [13] của thông tin giấu.

2.7.3. Chất lượng của ảnh có giấu thông tin

Chất lƣợng của ảnh có giấu tin đƣợc đánh giá qua sự cảm nhận của mắt ngƣời. Nên chọn những ảnh có nhiễu, có những vùng góc cạnh hoặc có cấu trúc, làm ảnh môi trƣờng vì mắt thƣờng ít nhận biết đƣợc sự biến đổi, khi có tin giấu, trên những ảnh này.

Chất lƣợng ảnh có giấu thông tin còn đƣợc đánh giá một cách chính xác thông qua một tỷ lệ đƣợc viết tắt là PSNR (Peak Signal to Noise Ratio).

Trong đó MSE (Mean Squared Error ) là sai số bình phƣơng trung bình đƣợc tính bằng công thức

Trong đó I là ảnh gốc và K là ảnh sau khi giấu thông tin; m và n là kích thƣớc của ảnh. Nếu giá trị của PSNR giữa ảnh gốc và ảnh sau khi giấu nằm trong khoảng từ 30 đến 50 dB, thì bức ảnh sau khi giấu đƣợc đánh giá là đạt chất lƣợng. Tuy nhiên giá trị dB càng cao thì càng tốt.

2.7.4. Tính bền vững của thông tin được giấu

Tính bền vững thể hiện qua việc các thông tin giấu không bị thay đổi khi ảnh mang tin phải chịu tác động của các phép xử lý ảnh nhƣ nén, lọc, biến đổi tỉ lệ, …

Hình 19. Quan hệ giữa chất lƣợng, dung lƣợng và tính bền vững

2.7.5. Thuật toán và độ phức tạp tính toán

Cần nắm đƣợc một số kiến thức cơ bản về cấu trúc của ảnh để chọn ra thuật toán tìm miền ảnh thích hợp cho việc giấu tin. Độ phức tạp của thuật toán mã hóa và giải mã là yếu tố quan trọng để đánh giá các phƣơng pháp giấu tin trong ảnh. Yêu cầu về độ phức tạp tính toán phụ thuộc vào từng ứng dụng. Những ứng dụng theo hƣớng Watermark thƣờng có thuật toán phức tạp hơn hƣớng Steganography.

Chất lƣợng

Tính bền vững Dung lƣợng

2.8. Một số chƣơng trình giấu tin trong ảnh

2.8.1. Hide And Seek V4.1

Gồm một số chƣơng trình chạy trong môi trƣờng DOS (kèm theo mã nguồn), do Colin Maroney (1994) viết để giấu tin vào ảnh GIF. Tƣ tƣởng chủ đạo là giấu ngẫu nhiên một lƣợng thông tin, vị trí giấu tin trải đều khắp ảnh. Khi lƣợng thông tin cần giấu nhiều, mật độ thông tin quá dày, nhiễu của ảnh dễ bị phát hiện. Vì vậy, chƣơng trình chỉ cho phép giấu tối đa 19 Kb thông tin trên ảnh có kích thƣớc 320 x 480 (số điểm ảnh hiển thị trên màn hình VGA). Mỗi bit tin đƣợc giấu trong 8 bit ảnh (320 x 480 /8 = 19200 b), sử dụng kỹ thuật LSB. Phiên bản 4.1 đã cải thiện sự tán sắc đáng kể so với 3.5 và 4.0 trƣớc đó (tính toán bảng màu và cập nhật ngẫu nhiên thêm nhiều màu lân cận). Thông tin trƣớc khi giấu đƣợc mã hoá, theo tác giả, chƣơng trình có thể đảm bảo sự an toàn và bền vững của dữ liệu.

2.8.2. Stego Dos

Chƣơng trình chạy trong môi trƣờng DOS, sử dụng 320 x 200 điểm ảnh, 256 màu (ảnh 8 bit màu) để giấu tin. Stego Dos kết hợp hai kỹ thuật mã hoá và che giấu thông tin. Thuật toán che giấu thông tin áp dụng kỹ thuật LSB. Chƣơng trình dùng ảnh phủ loại BMP, WAV. Ảnh loại JPEG nếu sử dụng chƣơng trình này sẽ mất thông tin. Chƣơng trình ứg dụng để che giấu thông tin và xác nhận bản quyền của tác giả.

2.8.3. White Noise Storm

Do Ray Arachelian viết. Sử dụng đơn giản, ảnh chứa tin không cần có kích thƣớc cố định. Mắt thƣờng không phát hiện đƣợc sự thay đổi khi ảnh đƣợc giấu tin. Chƣơng trình dùng kỹ thuật LSB, cho ảnh PCX.

2.8.4. S – Tools for Windows

S - tools cho Windows, phiên bản 1.00 (1994) của Andy Brown, là chƣơng trình giấu tin đƣợc đánh giá tốt nhất. S - Tools cung cấp khả năng che đậy an toàn cho các thông tin header. Có thể giấu tin trong ảnh BMP, GIF, tệp âm thanh WAV

và có thể, lên các vùng chƣa dùng đến của đĩa mềm. Giao diện đồ họa kéo thả, thân thiện với ngƣời sử dụng. Thao tác kéo biểu tƣợng tập tin muốn giấu, thả vào ảnh môi trƣờng. Cho phép ngƣời dùng kiểm tra kết quả giấu tin bằng giác quan (nghe, nhìn).

2.9. Các kỹ thuật xử lí điểm ảnh:

Xử lí các điểm ảnh là một kỹ thuật đƣợc sử dụng thƣờng xuyên trong các kỹ thuật giấu tin trong ảnh. Các giá trị điểm ảnh đƣợc lấy ra rồi biến đổi theo thuật toán giấu tin. Tuy nhiên, miền giá trị của các điểm ảnh lại khác nhau phụ thuộc vào các loại ảnh, chính vì thế ta cần dùng đến kỹ thuật tách bit thông tin từ giá trị điểm ảnh.

Kỹ thuật này đƣợc sử dụng nhiều trong kỹ thuật giấu tin sử dụng các bit ít quan trọng nhất của điểm ảnh [15] (LSB - Least Significant Bit) sẽ đƣợc trình bày cụ thể trong chƣơng III. Kỹ thuật LSB là kỹ thuật sử dụng các bit ít quan trọng về tri giác nhất trong các bit mang giá trị điểm ảnh để giấu tin. Ví dụ nhƣ ảnh với ảnh 256 màu thì bit cuối cùng trong 8 bit biểu diễn một điểm ảnh đƣợc coi là bit ít quan trọng nhất theo nghĩa là nếu thay đổi bit này thì ảnh hƣởng ít nhất đến cảm nhận của mắt ngƣời về điểm ảnh. Hay đối với ảnh 16 bit thì 15 bit là biểu diễn ba màu RGB của điểm ảnh còn bit cuối cùng không dùng đến thì ta sẽ tách bit này ra ở mỗi điểm ảnh để giấu tin…Nhƣ vậy, kỹ thuật tách bit trong xử lí điểm ảnh đƣợc sử dụng rất nhiều trong kỹ thuật giấu tin, sau đây ta sẽ khảo sát một số kỹ thuật tách bit ít quan trọng trên một số loại ảnh phổ biến:

Tách bit cuối cùng trong 8 bit biểu diễn mỗi điểm ảnh của ảnh 256 màu

1 0 0 1 1 1 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0

Hình 20. Mỗi điểm ảnh biểu diễn bởi 8 bit; bit cuối cùng (đổi màu) đƣợc coi là bit ít quan trọng nhât.

Trong phép tách này bit cuối cùng đƣợc coi là bit ít quan trọng nhất, thay đổi giá trị của bit này sẽ tăng hoặc giảm giá trị của điểm ảnh đúng một đơn vị. Ví dụ một điểm ảnh có giá trị là 234, nếu thay đổi bit cuối cùng từ 0 thành 1, giá trị mới

của điểm ảnh là 235. Sự thay đổi nhỏ đó sẽ không làm màu của điểm ảnh thay đổi nhiều.

Với các ảnh 16, 24 bit ta cũng thực hiện tƣơng tự.

Tách phần Blue trong RGB:

Đối với ảnh 24 bit màu, mỗi mầu đƣợc biểu diễn bởi 8 bit theo thứ tự R,G, B ngƣời ta thƣờng dùng kỹ thuật tách thành phần Blue (B) ở trong RGB để giấu tin vì mắt ngƣời cảm nhận màu lam kém hơn so với hai màu còn lại. Kỹ thuật này đƣợc thực hiện đơn giản nhƣ sau: Mỗi lần đọc điểm ảnh, ta đọc vào một cấu trúc bản ghi gồm ba thành phần R,G,B sau đó thì sẽ sử dụng thành phần B và có thể lại sử dụng kỹ thuật tách bit ít quan trọng nhƣ đã trình bày ở trên đối với thành phần B.

Biến đổi không gian màu cho ảnh 24 bit màu:

Đối với ảnh 24 bit màu, ngƣời ta còn hay sử dụng kỹ thuật biến đối không gian màu, ví dụ nhƣ từ RGB sang YIQ, hay RGB sang HSV… Trong phần này, chỉ giới thiệu một biến đổi RGB sang YIQ và ngƣợc lại vì đây là kỹ thuật thƣờng đƣợc dùng nhất trong kỹ thuật giấu tin với ảnh 24 bit màu. Cũng giống nhƣ việc tách thành phần B trong tổ hợp RGB của điểm ảnh, ngƣời ta thƣờng dùng biến đổi này để lợi dụng tính chất nhìn của mắt, trong 3 thành phần Y,I,Q có thành phần Y biểu diễn độ chói của ảnh, hệ thống mắt của ngƣời cảm nhận về độ chói kém hơn cảm nhận về màu chính vì thế mà các kỹ thuật giấu tin thƣờng biến đổi không gian màu từ RGB sang YIQ rồi lấy thành phần Y ra để giấu tin.

Công thức biến đổi không gian màu từ hệ RGB sang hệ YIQ

Công thức biến đổi ngƣợc từ hệ YIQ sang RGB            B * 0.312 G * 0.523 - R * 0.211 Q B * 0.322 - G * 0.274 - R * 0.596 I B * 0.144 G * 0.587 R * 0.299 Y R1.0*Y0.956* I0.621*Q

CHƢƠNG 3. MỘT SỐ THUẬT TOÁN GIẤU THÔNG TIN

3.1. Giới thiệu

Để thực hiện việc giấu thông tin trong môi trƣờng ảnh, trƣớc hết cần số hóa các bức ảnh theo những chuẩn phổ biến nhƣ JPEG, PCX, GIF, …

Sau bƣớc số hoá, tùy thuộc cấp độ màu khác nhau, có thể phân chia các loại ảnh đen trắng, ảnh xám hay ảnh màu. Ảnh đen trắng là ảnh nhị phân có 1 bit màu. Ứng với điểm đen, bit mang giá trị 0 và ứng với điểm trắng, bit mang giá trị 1. Giấu tin trong ảnh đen trắng thƣờng gây nhiễu, dễ nhận biết đƣợc bằng mắt thƣờng, số lƣợng thông tin giấu đƣợc cũng hạn chế.

Hình 21. Ảnh đen trắng và bảng màu tƣơng ứng

Ảnh màu trong máy tính là mảng các số thể hiện cƣờng độ sáng tại mỗi điểm ảnh. Các điểm ảnh cấu trúc theo dạng ảnh mành, số điểm ảnh thay đổi tuỳ thuộc độ phân giải của màn hình máy tính.

Độ phân giải Số điểm ảnh

1600 1200 1280 1024 1024 768 800 600 640 480 Bảng 5. Bố trí các điểm ảnh trên màn hình

Khi chuyển một ảnh tƣơng tự (analog) sang ảnh số, ngƣời ta có thể chọn những cách thể hiện màu khác nhau:

Hình 22. Ảnh 8 bit màu, chỉ sử dụng 8 trong 256 màu

- Ảnh 8 bit dải xám: mỗi điểm ảnh có thể nhận 1 trong 28 (256) sắc thái xám.

Hình 23. Ảnh với 256 mức xám

Mức xám là kết quả sự mã hoá tƣơng ứng một cƣờng độ sáng của mỗi điểm ảnh với một giá trị số sau quá trình lƣợng hoá. Cách mã hoá kinh điển thƣờng dùng là 16, 32, 64 mức. Mã hoá 28 = 256 (0,1,...255) mức là phổ dụng nhất, mỗi điểm ảnh sẽ đƣợc mã hoá bởi 8 bit.

Ảnh 24 bit màu: mỗi điểm ảnh có thể nhận 1 trong 224

(trên 16 triệu) màu, mỗi màu là sự pha trộn của 3 màu cơ bản RGB, nhận một giá trị từ 0 đến 255.

Hình 24. Ảnh sử dụng 64377 màu

Đối tƣợng đầu tiên mà kỹ thuật giấu tin nhằm tới là ảnh Bitmap. Ảnh BMP phổ biến trên mạng Internet, cho dung lƣợng giấu tin cao và các phƣơng pháp giấu tin đơn giản.

3.2. Thuật toán giấu thông tin trong khối bit.

Thuật toán giấu thông tin trong khối bit thƣờng đƣợc ứng dụng cho các tệp dữ liệu môi trƣờng kiểu hai màu (đen trắng) nhƣ các bản photocopy, Fax, mã vạch hay ảnh đen trắng. Ảnh đen trắng khó giấu tin do đặc điểm mỗi điểm ảnh chỉ đƣợc biểu diễn bởi một giá trị bit (0 hoặc 1). Nếu ta thay đổi giá trị bit từ 0 sang 1 hay ngƣợc lại từ 1 sang 0 thì đều làm cho trên ảnh xuất hiện những điểm đen, điểm trắng lạ, dễ bị phát hiện.

3.2.1. Kỹ thuật giấu tin ngây thơ

Kỹ thuật giấu tin này khá đơn giản, bí mật của phƣơng pháp chỉ là kích thƣớc của khối ảnh. Bản chất của giấu tin đƣợc thực hiện trong kỹ thuật này là cách thức giấu thông tin theo quy ƣớc chẵn lẻ.

Quá trình giấu tin:

Một số bƣớc tiền xử lý sau đây đƣợc thực hiện trƣớc khi thực hiện thuật toán:

 Chuyển file thông tin cần giấu sang dạng nhị phân bởi thuật toán sẽ giấu từng bit thông tin vào trong ảnh. Quá trình giải tin là biến đổi ngƣợc, thu đƣợc file thông tin đã giấu.

 Đọc header của ảnh để lấy thông tin ảnh. Sau đó đọc toàn bộ dữ liệu ảnh vào một mảng hai chiều để sử dụng cho việc giấu tin.

Giả sử ảnh gốc ban đầu có kích thƣớc là (M  N), đƣợc chia thành các khối nhỏ (m x n), tổng số các khối nhỏ sẽ là (M  N) / (m  n) khối. Ảnh môi trƣờng chọn là đen trắng nên mỗi khối là một ma trận hai chiều gồm các giá trị 0 và 1.

Sau khi phân ảnh thành các khối nhỏ, ta chọn các khối để giấu tin. Có thể chọn ngẫu nhiên các khối, để đơn giản ta coi nhƣ các khối đƣợc chọn liên tiếp, từ khối đầu tiên và những khối tiếp theo. Mỗi khối nhỏ này sẽ đƣợc dùng để giấu một bit thông tin theo quy tắc: muốn giấu bit 1 vào một khối thì khối đó phải thoả mãn tính chất tổng số bit 1 trong khối là số lẻ. Ngƣợc lại nếu cần giấu bit 0 vào một khối thì khối đó phải thoả mãn tính chất tổng số bit 1 trong khối là chẵn.

Nhƣ vậy, mỗi lần giấu 1 bit, sẽ có hai trƣờng hợp có thể xảy ra:

- Khối đã thoả mãn tính chất để giấu một bit thông tin: chẳng hạn nhƣ khi cần giấu bit 1 vào khối thì tổng số bit 1 đã là lẻ (hình 26.a), hoặc khi cần giấu bit 0 thì khối đó đã có tổng số bit 1 là chẵn (hình 26.b). Trong những trƣờng hợp nhƣ thế, ta không cần thay đổi và ngẫu nhiên một bit thông tin đã đƣợc giấu.

- Trƣờng hợp ngƣợc lại, tính chất của khối chƣa thoả mãn yêu cầu để giấu tin. Nghĩa là, khi cần giấu bit 1 vào khối thì tổng số bit 1 có sẵn là chẵn hoặc khi cần giấu bit 0 thì tổng số bit 1 trong khối lại đang lẻ. Khi đó, ta sẽ chọn thay đổi một bit bất kì trong khối, từ 0 sang 1 hoặc từ 1 sang 0 để nhận đƣợc tổng số bit 1 trong khối thoả mãn yêu cầu (hình 26.c).

Sau khi giấu tin xong ta đƣợc một ma trận hai chiều dữ liệu ảnh mới. Bƣớc tiếp theo là xây dựng ảnh mang tin bằng cách: chép header ảnh gốc đã đọc ra lúc đầu vào file ảnh mới, chép dữ liệu ảnh mới sau khi đã giấu tin vào ảnh, ta sẽ thu đƣợc ảnh có tin mật.

0 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 a) b) c)

Hình 25. Cách giấu tin trong một khối bit

Biết kích thƣớc khối nhỏ của ảnh rất dễ dàng giải mã, lấy thông tin theo quy tắc sau:

Quá trình giải tin:

Khi nhận đƣợc ảnh có giấu tin, quá trình giải tin sẽ đƣợc thực hiện theo các bƣớc sau đây:

 Gỡ header của ảnh để biết các thông tin về ảnh.  Lấy phần dữ liệu ảnh vào mảng hai chiều.

Các bƣớc giải tin giống nhƣ quá trình giấu tin. Sau khi nhận đƣợc dữ liệu, ta lại chia ảnh thành các khối có kích thƣớc giống kích thƣớc khối nhƣ khi giấu tin. Chọn ra các khối đã giấu và giải tin theo quy tắc: đếm số bit 1 trong khối, nếu tổng số bit 1 là lẻ thì thu đƣợc bit 1, ngƣợc lại thu đƣợc bit 0. Cứ tiếp tục cho đến khi hết các khối đã giấu tin.

Duyệt lần lƣợt các khối đã giấu tin, ta thu đƣợc chuỗi bit thông tin. Bƣớc tiếp theo ta chuyển từ file nhị phân sang file văn bản.

Thuật toán đƣợc làm khó hơn bằng cách chọn ngẫu nhiên một khối chƣa giấu tin ở mỗi lần giấu. Khi đó, ta đã làm tăng đƣợc độ an toàn của thuật toán vì khoá bây giờ còn thêm cả chỉ số khối đã giấu tin cho từng bit. Hoặc ta có thể thay đổi kích thƣớc khối ở mỗi lần giấu, trong trƣờng hợp này thì khoá sẽ là kích thƣớc khối của mỗi lần giấu.

Một ý tƣởng của cải tiến dựa vào nhận xét: với các ảnh đen trắng thì việc thay đổi giá trị một bit điểm ảnh từ trắng thành đen hoặc ngƣợc lại rất dễ bị phát hiện. Nhƣng nếu ta đảo bit ở trên viền ảnh giữa miền đen và miền trắng thì bit bị đảo sẽ

0 1 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0

khó bị nhận biết hơn. Có thể áp dụng kỹ thuật xử lý ảnh [14] để xác định đƣờng biên.

a) Ảnh gốc b) ảnh giấu 70 bit tin c) Vị trí các bit tin

Hình 26. Cách giấu tin trên đƣờng biên của ảnh

Ý tƣởng này đã đƣợc hiện thực hoá với hệ số phân bố bit D. D là một đại

Một phần của tài liệu luận văn thạc sĩ tìm hiểu các kỹ thuật giấu tin trong ảnh (Trang 39)