0
Tải bản đầy đủ (.pdf) (78 trang)

Kỹ thuật nhúng thuỷ vân

Một phần của tài liệu MỘT SỐ KỸ THUẬT GIẤU DỮ LIỆU TRONG ẢNH TĨNH (Trang 49 -49 )

Phương pháp này cần ảnh gốc khi gỡ thuỷ vân (non-oblivious). Nguyên lý chung là sử dụng DCT sau đó nhúng thuỷ vân vào mô hình mãn cảm nhất của ảnh, đó chính là các hệ số cosin rời rạc điểu biến có cường độ lớn nhất. Nhằm mục đích thuỷ vân nhúng bền vững đối với nén mất mát. Phương pháp này không áp dụng cho ảnh 2 mức, áp dụng hiệu quả với các ảnh true_color.

T h u ậ t toán 2.3.1: Nhúng thuỷ vân w = Wị, w2, ... wn kích thước n bit vào ảnh.

Giai đoan nhúng thuỷ vân

+ Tách kênh Blue của ảnh gốc.

+ Tính các hệ số DCT 2 chiều của kênh Blue.

+ Lấy ra n hệ số cường độ lớn nhất (các hệ số này tương ứng với các tần số thấp).

+ Điều biến theo công thức v k = v k(l + a w k) . Trong đó v k hệ số mới, vk hệ số cũ, wk bit thứ k của thuỷ vân, tham số oc là cường độ có thể điều chỉnh để thoả hiệp giữa tính bền vững và tính vô hình.

+ Ảnh kết quả nhận được khi áp dụng nghịch đảo DCT đối với các hệ số vk\

Nếu a lớn lược đổ bển vững, nhưng lại thấy rõ sự thay đổi của ảnh bởi vì các hệ số DCT bị sửa đổi lớn. Cox đã thử nghiệm với giá trị a = 0.1

là phù hợp.

Giai đoan tách thuỷ vân

Cần ảnh gốc, ảnh kết quả, thuỷ vân w . L ược đồ N E C [9]

+ Tính DCT kênh màu Blue của ảnh gốc và ảnh kết quả được các hệ số vk và vk\

+ Chọn n hệ số lớn nhất từ hai dãy điều biến DCT. Tính ■w'i, = ——— , thuỷ vân tách đuợc là W ’ = w k , w ' 2, . . . w n .

a . v k

Cần phải đánh giá sự giống và khác nhau nhau giữa thủy vân gốc w và thuỷ vân tách từ ảnh chứa thuỷ vân w \ Ta không thể chắc chắn rằng w , W ’ giống y hột nhau. Sai số trong các phép biến đổi tính toán cũng là nguyên nhân làm sai lệch W ’ so với w . Có thể so sánh sự giống nhau w với W ’ bằng cách tính một chỉ số đồng dạng: w • w '

Sim(w , w ' )

Và độ lệch trung bình: E(W ') = a/ W - W ' Ẻ l w 'i ~ w i »«1 n

Để quyết định w , W ’ có tương ứng không, ta xác định S7m(W.W’). Hai mẫu đồng dạng tuyệt đối nếu 5ỉ'm(W.W’) = v w . w , điều mong muốn chỉ số đồng dạng càng lớn càng tốt. Thông thường không đạt được như vậy, có mức độ sai khác chấp nhận được. Chọn ngưỡng T sao cho S7m(W.W’)>T. Thiết lập ngưỡng là bài toán quyết định kinh điển trong đó vừa muốn cực tiểu hoá tỷ lệ phủ định sai và khẳng định sai. Ngoài ra còn sử dụng E(W ’) để xác định độ lệch trung bình, điều mong muốn E (W ’) càng nhỏ càng tốt.

Sau đây đề xuất một phương pháp xác định thuỷ vân có trong ảnh hay không dựa vào Sim{W ,W ’) và E(W ’). Với mỗi ảnh nhúng thuỷ vân vào dễ dàng xác định độ đồng dạng Sim0 và độ lệch trung bình E0 , trong đó Sim0 =5/m(W,W’), E0 = E(W ’) khi ảnh kết quả chưa qua biến động nào. Tính S7m(W,W’) và E (W ’) từ ảnh cần kiểm tra có thuỷ vân hay không. Khi đó:

5/m(W ,W ’) = Sim0- s 1 E (W ’) = E0 + s2

Trong đó S|, s2 là sai SỐ, sai số càng nhỏ càng tốt. Bài toán xác định sai số chấp nhận được là bài toán kiểm định giả thiết thống kê. Giả thiết H đặt ra ảnh có thuỷ vân là :

Ị5,//r2(W,W’) - Sim0|< Sị *Sim0 JE0 - E(W ’)|< S2*E0

Chọn Sị, s2 như thế nào thì chấp nhận giả thiết H. Khi chấp nhận H có thể mắc phải hai loại sai lầm:

- Sai lầm loại 1: Bác bỏ H nhưng thực tế H lại đúng. - Sai lầm loại

2:

Ta chấp nhận H nhưng thực tế H lại sai.

Người ta mong muốn chọn Sj, s2 sao cho cực tiểu hoá cả hai khả năng phạm sai lầm. Nhưng trong thực tế mong muốn trên không thể thực hiện được, do đó thông thường cho trước giới hạn trên của xác suất phạm sai lầm loại một thường là nhỏ (0 ,1 ; 0,05), xác định Sị, s2 sao cho khả năng phạm sai lầm loại hai đạt cực tiểu. Bằng một loạt thực nghiệm ta xác định được Sị và s2.

Thực nghiệm cho thấy lược đồ NEC bền vững với thao tác xử lý ảnh như lọc, nén mất mát. Các tác giả cũng kiểm tra tính bền vững của thuỷ vân bằng cách chèn nhiều thủy vân và kiểm tra sự hiện diện của tất cả chúng.

23.2.2. N húng thuỷ vân vào điểm ảnh

Thuật toán nhúng thuỷ vân vào ma trận thứ cấp của ảnh đa cấp xám hay ảnh 24 bit màu. Kỹ thuật rút LSB như đã trình bày ở phần 2.2.5.

Thuỷ vân là ma trận gồm các bit 0,1 có kích thuớc tx.ty . Thường sử dụng thuỷ vân là ảnh nhị phân có kích thước nhỏ, vì khi thuỷ vân tách từ ảnh

CÓ chứa thuỷ vân có sai khác thuỷ vân gốc, nếu chọn thuỷ vân là ảnh ít cảm nhận thấy sự sai khác này.

T h u ậ t toán 2.3.2 [15]

Thuỷ vân là ảnh 2 mức m có kích thước nhỏ, H là ảnh gốc cần nhúng thuỷ vân, I là ma trận thứ cấp của H.

Giai đoan nhúng

+ Tạo ảnh nhị phân M* bằng cách xếp liên tiếp ảnh m. M* có kích thước bằng I. Xem hình 5. Thuỷ vân m:

w M

Ảnh H: Ma trận thứ cấp I có kích thước Ix.Iy Tao M *:

w M w M w M w

w M w M w M w

w M w M w M w

LMI_M IM M IM M IMJ

I. ly

H ình 5: Xây dựng ảnh M* đ ể nhúng thuỷ vân

+ Xây dựng ảnh Im có kích thước bằng I như sau:

r ( x , y ) =

0 nếu I(x,y) = lv à I(x + l,y ) = 0 và M (x ,y ) = 0

I(x ,y ) trường hợp còn lại ?

+ Tách thuỷ vân từ ảnh kết quả Im. Ta thấy Im nếu có sai khác I thì chỉ sai ở những điểm M* bằng 0.

+ Tính I '( x ,y ) = £ P ( x + k , * t^ .y + k , » t y) k k•vx ,Ky

Xem I*(x,y) là dãy các biến ngẫu nhiên có phân phối chuẩn N (n ,ơ 2) trong đó: Uì u - _ z r (x>y) - Giá trị trung bình : |i = — ■ •—--- t*.ty ¿ ( r ( x , y ) - | ũ ) 2 - Bình phương độ lệch chuẩn: CF = —--- t .t — 1X y

Đặt : Y (x,y) = , Y(x,y) là biến ngẫu nhiên có phân phối ơ

chuẩn N (0,1). Gọi p là xác suất xuất hiện biến ngẫu nhiên Y(x,y). Cho trước giá trị p, xác định khoảng [-a,a] để P(-a < Y(x,y)<a) =p. Tra bảng phân phối chuẩn N (0 ,1) tính được a.

+ Ma trận thứ cấp của thuỷ vân xác định như sau: iv/r/ ío nếu - a < Y ( x ,y ) < a M (x,y) = í

[1 trường hợp ngược lại Một số giá trị xác suất tham khảo:

P(-0,5 < Y (x,y) < 0,5) = 0,3821 P(-0,6 < Y (x,y) < 0,6) = 0,4514 P(-0,7 < Y (x,y) < 0,7) = 0,5160 P(-0,8 < Y (x,y) < 0,8) = 0,5772 P(-0,9 < Y (x,y) < 0,9) = 0,6312 P (-l < Y (x,y) < 1) = 0 ,6 8 2 6

Về mặt lý thuyết chọn p = 0,5 là hợp lý nhất. Nhưng trong thực tế luôn có sai số, kết quả thí nghiệm cho thấy chọn 0,5 < p < 0,7 xác định thuỷ vân

khá rõ. Với p = 0,5772 , thuỷ vân tách từ ảnh true_color 800 X 600 điểm như hình 6:

H ình 6: Thuỷ vân tách từ ảnh true color 800x 600 điểm với p = 0,5772

Ta sẽ chứng minh thuỷ vân tách được sai khác thuỷ vân nhúng là không đáng kể với mức xác suất phù hợp.

Đặt: I '( x ,y ) = £ l (x + k* * t x,y + k y * t y)

k k

•Vjj ,«Vy

Dễ dành nhận thấy I*(x,y) < I‘(x,y) vì Im chỉ sai khác I tại những điểm M*(x,y) =0 do I(x,y) chuyển từ 1 thành 0. Nếu kích thước ảnh lớn hơn kích thước thuỷ vân, việc m(x,y) = 0 sẽ rơi ngẫu nhiên vào các khối ảnh làm f (x,y) sai khác l'(x,y). Xác suất I*(x,y) với m(x,y)=0 sẽ giảm hay những điểm (x,y) đen trong thuỷ vân có xác suất P(I*(x,y)) <=0.5. Chấp nhận mức xác suất p ta luôn xác định được một điểm (x,y) trong thuỷ vân là đen hay trắng. Trong thuật toán 2.3.2 P(I*(x,y)) =p thì m(x,y) là điểm đen. Độ sai lệch thuỷ vân phụ thuộc vào mức xác suất p.

Nliân xét: Kích thước ảnh lớn hơn kích thước thuỷ vân nhiều (gấp hơn

30 lần trở lên) thì các bit đen trong thuỷ vân khi nhúng phân bổ vào các khối ảnh I ngẫu nhiên theo phân phối chuẩn. Do đó kích thước ảnh lớn lấy thuỷ vân chính xác hơn.

- Lược đồ này khi tách thuỷ vân, không cần thuỷ vân, ảnh gốc và cũng không khôi phục lại ảnh gốc.

- Thực nghiệm đã chứng tỏ lược đồ trên bền vững với nhiễu ảnh, phép co giãn, làm mảnh, cắt. Với phép quay không tốt, nhưng khi quay ảnh kết quả lại đúng vị trí ban đầu vẫn xác định được thuỷ vân đã nhúng.

- An toàn của lược đồ chỉ phụ thuộc vào kích thước thuỷ vân. Muốn tăng tính bảo mật dùng một hàm khả nghịch f làm khoá hệ thống. Quá trình

thực hiện giống như trên chỉ thay:

P ( x ,y ) = Và

0 nếu I(x,y) = lvà I(x + l,y ) = 0 v à M ‘(f(x ,y )) = 0 I(x, y ) trường hợp còn lại

I * ( x , y ) = X l m(f~'(x + k x * t x,y + k y * t y))

k k •V , ,tVy

Chương 3

T h i ế t k ê ứ n g d ụ n g g i ấ u d ữ l i ệ u t r o n g ả n h ứng dụng được chia thành các phần:

+ Giấu dữ liệu vào ảnh theo hướng không bền, chủ yếu tăng lượng dữ liệu giấu và tăng tính bảo mật.

+ Giấu thuỷ vân vào ảnh, mục đích xác nhận bản quyền của ảnh tĩnh.

3 .1 . M ỏ i trư ờ n g là m v iệc và n g ô n n g ữ sử d ụ n g

ứng dụng được thiết kế làm việc trên Windows 9X và Windows 2000. Việc chọn ngôn ngữ thể hiện cũng giúp cho chương trình xử lý hiệu quả hơn. Chương trình chủ yếu làm việc trên ảnh tĩnh, thao tác trên từng bit dữ liệu nên chọn Visual C++ 6.0 để cài đặt các thuật toán.

3 .2 . T ổ ch ứ c th ự c h iện và cà i đ ặ t ch ư ơ n g trìn h

Chương trình đã thử nghiệm cài đặt tất cả các kỹ thuật trình bày:

+ Giấu bí mật một lượng dữ liệu bằng thuật toán 2.2.2 với mục đích tăng lượng thông tin giấu và tăng tính bảo mật. Áp dụng kỹ thuật rút LSB đã trình bày phần 2.2.5. Với ảnh 256 màu trở xuống rút một LSB trên một điểm ảnh và sử dụng phương pháp sắp xếp lại bảng màu. Ảnh true_color nếu lượng dữ liệu cần giấu nhiều nên rút tối đa là 4 bit thấp nhất trên 1 byte điểm ảnh, nếu rút nhiều hơn sẽ gây ra nhiễu.

+ Nhúng thuỷ vân sử dụng thuật toán 2.3.1 và thuật toán 2.3.2 vì mỗi thuật toán có ưu điểm bền vững cho một số phép biến đổi ảnh. Khi nhúng thuỷ vân vào điểm ảnh của ảnh true_color vẫn sử dụng rút 4 bit thấp trên một byte điểm ảnh.

Sử dụng thuật toán 2.2.2 . Tiến hành giấu r = 4 bit dữ liệu trong một khối cấp m X n. Quá trình thực hiện gồm:

Giai đoan nhíme dữ liêu:

+ Tách các bit LSB trong ảnh tạo ma trận thứ cấp. + Đọc ma trận khoá, ma trận trọng số cấp m X n.

+ Chuyển tệp dữ liệu sang dạng nhị phân ( giả sử có dung lượng N bit). + Tiến hành nhúng dữ liệu vào ma trận thứ cấp theo thuật toán, dữ liệu cần nhúng bao gồm:

32 bit : kích thước file dữ liệu.

8 bit : độ dài tên file ( giả sử M bit), nếu bằng 0 giấu thông điệp.

M bit : tên file.

N bit : dữ liệu cần giấu.

Tổng cộng dữ liệu giấu vào ảnh : (32 + 8 +M + N ) bit. + Chuyển ma trận thứ cấp vào ảnh thu được ảnh kết quả.

Giai đoan tách dữ liêu:

+ Tách các bit LSB trong ảnh kết quả tạo ma trận thứ cấp. + Đọc ma trận khoá, ma trận trọng số cấp m X n.

+ T ách 3 & b it dữ liệu đầu để xác định dung lượng dữ liệu đã giấu, tách tiếp độ dài tên file để tách tên file. Sau đó bắt đầu đọc dữ liệu ghi vào file có tên vừa tách được. Quá trình đọc sẽ ngừng khi dữ liệu tách ra bằng dữ liệu giấu vào hoặc hết ma trận thứ cấp.

Kết quả thử nghiệm :

Thử nghiêm L Giấu bí mật dữ liệu vào ảnh 256 màu, mỗi điểm ảnh lấy một bit thấp nhất làm bit LSB .

Ảnh môi trường 256 màu, kích thước 320 X 199, dung lượng 64 Kb. M a trận khoá cấp 4 x 4 , giấu r = 4 bit trong một khối.

Dữ liệu giấu là file dạng text dung lượng 1Kb.

Hình 7 là ảnh gốc và ảnh thu được sau khi nhúng dữ liệu.

a) Ảnh gốc b) Ảnh đã nhúng dữ liệu

H ình 7: Giấu 4 bit dữ liệu vào khối 4 x 4 trên ảnh 256 màu

Nhân xét: Nếu để nguyên ảnh mang tin (hình 7b) nhìn mắt thường cũng thấy

xuất hiện m ột số điểm nhiễu nhưng không đáng kể. Khi phóng to ảnh 200% thấy rõ sự khác nhau ở giữa hai ảnh, có nhiều chấm đen xuất hiện trên cánh hoa. Rõ ràng với những ảnh có nền sáng khó che giấu nhiễu trên ảnh kết quả. Nên sử dụng phương pháp xếp lại bảng màu để giảm nhiễu.

Thửnshiêm 2 : Giấu dữ liệu sử dụng phương pháp xếp lại bảng màu

Để thấy rõ nhiễu xuất hiện ta thí nghiệm trên ảnh 256 màu chỉ sử dụng 5 màu, nền ảnh màu trắng, chữ màu đen, đỏ, xanh, tím. Kích thước ảnh môi trường 46 kb, kích thước dữ liệu cần giấu 909 byte. Tiến hành nhúng 4 bit dữ liệu vào khối 4 x 4 . Hình 8 là ảnh sau khi nhúng dữ liệu bằng hai phương

pháp: không tạo lại bảng màu (hình 8a), tạo lại bảng màu (hình 8b). Rõ ràng không xếp lại bảng màu với những vùng có độ chênh lệch màu lớn dễ nhận thấy rõ những điểm ảnh bị thay đổi, cụ thể trên ảnh vùng màu trắng xuất hiện những chấm khác màu. Khi xếp lại bảng màu ảnh mang dữ liệu đã nhúng không khác ảnh gốc, trên ảnh chỉ xuất hiện 5 màu ban đầu (hình 8b). Như vậy xếp lại bảng màu cũng là một phương pháp chống nhiễu cho ảnh kết quả.

t .*.* • ' .*•' y ••• / »■' I. *1' 1' ' • ■«

'm'

• V ' t \ y V 8 V < . . •’ / / • "'y " ' • ~ '

em o

D a t a H i d i n g ỉ n I m a g e s a ) Ả n h kế t q u k h i gi ấ u dữ b) Ả n h k ế t q u ả k h i g i ấ u d l i ệ u , l i ệ u k h ô n g x ếp l ạ i b ản g m àu s ử d n g xế p l ạ i b ản g m àu

H ình 8:Áp dụng phương pháp xếp lại bảng màu giấu 4 bit dữ liệu vào khối 4 x 4 trên ảnh 256 màu

Thử nghiêm 3 . Tăng dung lượng nhúng dữ liệu vào ảnh true - color, rút 4 bit LSB trên một byte màu của điểm ảnh (hình 9).

Dữ liệu nhúng là file văn bản dung lượng: 47Kb ( khoảng 13 trang văn bản). Ảnh môi trường Bliss _ w kích thước 800 X 600 điểm, dung lượng 1,37 Mb. Ma trận khoá cấp 4 x 4 , giấu r = 4 bit trong một khối. Không xuất hiện nhiễu trên ảnh kết quả. So sánh ảnh gốc hình 9a và ảnh kết quả hình 9b, không nhận thấy sự khác biệt giữa hai ảnh.

a) Ảnh gốc b) Ảnh mang tin (rút 12LSB/pixel)

H ình 9 : Giấu 4 bit dữ liệu vào khối 4 x 4 trên ảnh 24 bit màu

Nhân xét: Nếu rút 4 LSB trên một điểm ảnh, khả năng nhúng tối đa khoảng 140Kb. Ảnh mang tin không bị nhiễu. Nhưng chỉ cần lấy mỗi byte màu thêm 1 bit LSB chất lượng ảnh mang tin giảm rõ rệt xem hình 10. Dữ liệu tách từ ảnh kết quả giống như dữ liệu gốc. Chúng tôi đã thử nghiệm giấu một file chương trình, khi tách dữ liệu file chương trình này vẫn hoạt động tốt. Thuật toán giấu và tách thực hiện nhanh.

H ìnhlO : Ảnh kết quả, sử dụng 5 LSB trên 1 byte màu đ ể giấu dữ liệu

3.2.2. N húng thuỷ vân vào ảnh

Sử dụng thuật toán 2.3.1. Thuỷ vân là chuỗi các bit Wị, w2 ... wn . Vì mắt thường kém nhạy với màu blue, nên ta tách kênh blue của ảnh biến đổi DCT để giấu dữ liệu vào hệ số điều biến.

Giai đoan nhúng:

+ Có ảnh gốc, thuỷ vân, cường độ nhúng a . + Tách kênh Blue của ảnh gốc

+ Tính các hệ số DCT 2 chiều của kênh Blue.

+ Lọc n hệ số mạnh nhất thay thế: Hệ s ố mới = Hệ s ố cũ x( ỉ + 0CWị) + Biến đổi DTC 2 chiều ngược từ không gian tần số về không gian màu. Chuyển các đỉnh vượt khỏi giới hạn màu về cận màu gần nhất với nó.

+ Lưu lại ảnh thu được ảnh kết quả.

Giai đoan xác đinh sư có măt thuỷ vân:

Xác định thuỷ vân thông qua sai số. Cần ảnh gốc, ảnh kết quả, thuỷ vân, cường độ nhúng a , sai số Sị, s2.

+ Tách kênh Blue của ảnh gốc, ảnh kết quả. Biến đổi DCT 2 chiều cho 2 kênh này.

+ Y ^ _ Hệ số ảnh kết quả - Hệ số ảnh gốc a.H ê số ảnh gốc

+ Tính chỉ số đồng dạng, và độ lệch trung bình:

+ Kết luận ảnh có thuỷ vân hay không với Sj, s2 cho trước.

Một phần của tài liệu MỘT SỐ KỸ THUẬT GIẤU DỮ LIỆU TRONG ẢNH TĨNH (Trang 49 -49 )

×